libp2p 0.42.2-45fc415b → 0.42.2-746e2eab

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 CHANGED
@@ -1,15 +1,15 @@
1
1
  (function (root, factory) {(typeof module === 'object' && module.exports) ? module.exports = factory() : root.Libp2P = factory()}(typeof self !== 'undefined' ? self : this, function () {
2
- "use strict";var Libp2P=(()=>{var f1=Object.create;var Ls=Object.defineProperty;var h1=Object.getOwnPropertyDescriptor;var d1=Object.getOwnPropertyNames;var p1=Object.getPrototypeOf,m1=Object.prototype.hasOwnProperty;var T=(r,t)=>()=>(t||r((t={exports:{}}).exports,t),t.exports),ce=(r,t)=>{for(var e in t)Ls(r,e,{get:t[e],enumerable:!0})},Kh=(r,t,e,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of d1(t))!m1.call(r,i)&&i!==e&&Ls(r,i,{get:()=>t[i],enumerable:!(n=h1(t,i))||n.enumerable});return r};var I=(r,t,e)=>(e=r!=null?f1(p1(r)):{},Kh(t||!r||!r.__esModule?Ls(e,"default",{value:r,enumerable:!0}):e,r)),y1=r=>Kh(Ls({},"__esModule",{value:!0}),r);var cl=T((UR,Vh)=>{var mi=1e3,yi=mi*60,gi=yi*60,Dn=gi*24,g1=Dn*7,w1=Dn*365.25;Vh.exports=function(r,t){t=t||{};var e=typeof r;if(e==="string"&&r.length>0)return E1(r);if(e==="number"&&isFinite(r))return t.long?v1(r):x1(r);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(r))};function E1(r){if(r=String(r),!(r.length>100)){var t=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(r);if(t){var e=parseFloat(t[1]),n=(t[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return e*w1;case"weeks":case"week":case"w":return e*g1;case"days":case"day":case"d":return e*Dn;case"hours":case"hour":case"hrs":case"hr":case"h":return e*gi;case"minutes":case"minute":case"mins":case"min":case"m":return e*yi;case"seconds":case"second":case"secs":case"sec":case"s":return e*mi;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return e;default:return}}}}function x1(r){var t=Math.abs(r);return t>=Dn?Math.round(r/Dn)+"d":t>=gi?Math.round(r/gi)+"h":t>=yi?Math.round(r/yi)+"m":t>=mi?Math.round(r/mi)+"s":r+"ms"}function v1(r){var t=Math.abs(r);return t>=Dn?Bs(r,t,Dn,"day"):t>=gi?Bs(r,t,gi,"hour"):t>=yi?Bs(r,t,yi,"minute"):t>=mi?Bs(r,t,mi,"second"):r+" ms"}function Bs(r,t,e,n){var i=t>=e*1.5;return Math.round(r/e)+" "+n+(i?"s":"")}});var Hh=T((FR,qh)=>{function b1(r){e.debug=e,e.default=e,e.coerce=c,e.disable=o,e.enable=i,e.enabled=s,e.humanize=cl(),e.destroy=l,Object.keys(r).forEach(u=>{e[u]=r[u]}),e.names=[],e.skips=[],e.formatters={};function t(u){let f=0;for(let d=0;d<u.length;d++)f=(f<<5)-f+u.charCodeAt(d),f|=0;return e.colors[Math.abs(f)%e.colors.length]}e.selectColor=t;function e(u){let f,d=null,h,p;function m(...y){if(!m.enabled)return;let g=m,E=Number(new Date),_=E-(f||E);g.diff=_,g.prev=f,g.curr=E,f=E,y[0]=e.coerce(y[0]),typeof y[0]!="string"&&y.unshift("%O");let k=0;y[0]=y[0].replace(/%([a-zA-Z%])/g,(D,J)=>{if(D==="%%")return"%";k++;let rt=e.formatters[J];if(typeof rt=="function"){let jt=y[k];D=rt.call(g,jt),y.splice(k,1),k--}return D}),e.formatArgs.call(g,y),(g.log||e.log).apply(g,y)}return m.namespace=u,m.useColors=e.useColors(),m.color=e.selectColor(u),m.extend=n,m.destroy=e.destroy,Object.defineProperty(m,"enabled",{enumerable:!0,configurable:!1,get:()=>d!==null?d:(h!==e.namespaces&&(h=e.namespaces,p=e.enabled(u)),p),set:y=>{d=y}}),typeof e.init=="function"&&e.init(m),m}function n(u,f){let d=e(this.namespace+(typeof f>"u"?":":f)+u);return d.log=this.log,d}function i(u){e.save(u),e.namespaces=u,e.names=[],e.skips=[];let f,d=(typeof u=="string"?u:"").split(/[\s,]+/),h=d.length;for(f=0;f<h;f++)d[f]&&(u=d[f].replace(/\*/g,".*?"),u[0]==="-"?e.skips.push(new RegExp("^"+u.slice(1)+"$")):e.names.push(new RegExp("^"+u+"$")))}function o(){let u=[...e.names.map(a),...e.skips.map(a).map(f=>"-"+f)].join(",");return e.enable(""),u}function s(u){if(u[u.length-1]==="*")return!0;let f,d;for(f=0,d=e.skips.length;f<d;f++)if(e.skips[f].test(u))return!1;for(f=0,d=e.names.length;f<d;f++)if(e.names[f].test(u))return!0;return!1}function a(u){return u.toString().substring(2,u.toString().length-2).replace(/\.\*\?$/,"*")}function c(u){return u instanceof Error?u.stack||u.message:u}function l(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return e.enable(e.load()),e}qh.exports=b1});var ll=T((ve,Ns)=>{ve.formatArgs=S1;ve.save=A1;ve.load=R1;ve.useColors=_1;ve.storage=I1();ve.destroy=(()=>{let r=!1;return()=>{r||(r=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();ve.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function _1(){return typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs)?!0:typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)?!1:typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function S1(r){if(r[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+r[0]+(this.useColors?"%c ":" ")+"+"+Ns.exports.humanize(this.diff),!this.useColors)return;let t="color: "+this.color;r.splice(1,0,t,"color: inherit");let e=0,n=0;r[0].replace(/%[a-zA-Z%]/g,i=>{i!=="%%"&&(e++,i==="%c"&&(n=e))}),r.splice(n,0,t)}ve.log=console.debug||console.log||(()=>{});function A1(r){try{r?ve.storage.setItem("debug",r):ve.storage.removeItem("debug")}catch{}}function R1(){let r;try{r=ve.storage.getItem("debug")}catch{}return!r&&typeof process<"u"&&"env"in process&&(r=process.env.DEBUG),r}function I1(){try{return localStorage}catch{}}Ns.exports=Hh()(ve);var{formatters:T1}=Ns.exports;T1.j=function(r){try{return JSON.stringify(r)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}});var xd=T(($I,Ed)=>{Ed.exports=Nl;var wd=128,Fx=127,Kx=~Fx,Vx=Math.pow(2,31);function Nl(r,t,e){if(Number.MAX_SAFE_INTEGER&&r>Number.MAX_SAFE_INTEGER)throw Nl.bytes=0,new RangeError("Could not encode varint");t=t||[],e=e||0;for(var n=e;r>=Vx;)t[e++]=r&255|wd,r/=128;for(;r&Kx;)t[e++]=r&255|wd,r>>>=7;return t[e]=r|0,Nl.bytes=e-n+1,t}});var _d=T((zI,bd)=>{bd.exports=Ol;var qx=128,vd=127;function Ol(r,n){var e=0,n=n||0,i=0,o=n,s,a=r.length;do{if(o>=a||i>49)throw Ol.bytes=0,new RangeError("Could not decode varint");s=r[o++],e+=i<28?(s&vd)<<i:(s&vd)*Math.pow(2,i),i+=7}while(s>=qx);return Ol.bytes=o-n,e}});var Ad=T((GI,Sd)=>{var Hx=Math.pow(2,7),$x=Math.pow(2,14),zx=Math.pow(2,21),Gx=Math.pow(2,28),Yx=Math.pow(2,35),Wx=Math.pow(2,42),Qx=Math.pow(2,49),Xx=Math.pow(2,56),Zx=Math.pow(2,63);Sd.exports=function(r){return r<Hx?1:r<$x?2:r<zx?3:r<Gx?4:r<Yx?5:r<Wx?6:r<Qx?7:r<Xx?8:r<Zx?9:10}});var Us=T((YI,Rd)=>{Rd.exports={encode:xd(),decode:_d(),encodingLength:Ad()}});var W=T((dT,Md)=>{"use strict";function kd(r,t){for(let e in t)Object.defineProperty(r,e,{value:t[e],enumerable:!0,configurable:!0});return r}function hv(r,t,e){if(!r||typeof r=="string")throw new TypeError("Please pass an Error to err-code");e||(e={}),typeof t=="object"&&(e=t,t=""),t&&(e.code=t);try{return kd(r,e)}catch{e.message=r.message,e.stack=r.stack;let i=function(){};return i.prototype=Object.create(Object.getPrototypeOf(r)),kd(new i,e)}}Md.exports=hv});var Yd=T((zT,Gd)=>{"use strict";Gd.exports=function(){return Date.now()}});var Wl=T((GT,Wd)=>{"use strict";var Qs=Yd(),Yl=class{constructor(t,e,n){let i=this;this._started=Qs(),this._rescheduled=0,this._scheduled=e,this._args=n,this._triggered=!1,this._timerWrapper=()=>{i._rescheduled>0?(i._scheduled=i._rescheduled-(Qs()-i._started),i._schedule(i._scheduled)):(i._triggered=!0,t.apply(null,i._args))},this._timer=setTimeout(this._timerWrapper,e)}reschedule(t){t||(t=this._scheduled);let e=Qs();e+t-(this._started+this._scheduled)<0?(clearTimeout(this._timer),this._schedule(t)):this._triggered?this._schedule(t):(this._started=e,this._rescheduled=t)}_schedule(t){this._triggered=!1,this._started=Qs(),this._rescheduled=0,this._scheduled=t,this._timer=setTimeout(this._timerWrapper,t)}clear(){clearTimeout(this._timer)}};function Ev(){if(typeof arguments[0]!="function")throw new Error("callback needed");if(typeof arguments[1]!="number")throw new Error("timeout needed");let r;if(arguments.length>0){r=new Array(arguments.length-2);for(var t=0;t<r.length;t++)r[t]=arguments[t+2]}return new Yl(arguments[0],arguments[1],r)}Wd.exports=Ev});var Nr=T((YT,Xd)=>{"use strict";var{AbortController:xv}=globalThis,Qd=Wl(),Eo=class extends xv{constructor(t){super(),this._ms=t,this._timer=Qd(()=>this.abort(),t),Object.setPrototypeOf(this,Eo.prototype)}abort(){return this._timer.clear(),super.abort()}clear(){this._timer.clear()}reset(){this._timer.clear(),this._timer=Qd(()=>this.abort(),this._ms)}};Xd.exports={TimeoutController:Eo}});var Xl=T((nC,Jd)=>{"use strict";var Ii=new Map,Sv=()=>`${Date.now()}:${Math.floor(Math.random()*1e6)}`;async function Av(r,t,e){for(;Ii.get(e);){try{await r()}catch(n){setTimeout(()=>{throw n},1);break}if(!Ii.get(e))break;await new Promise(n=>{let i=setTimeout(n,t);Ii.set(e,i)})}}function Rv(r,t,e){e=e||t;let n=Sv(),i=setTimeout(()=>{Av(r,t,n)},e);return Ii.set(n,i),n}function Iv(r){let t=Ii.get(r);t&&(clearTimeout(t),Ii.delete(r))}Jd.exports={setDelayedInterval:Rv,clearDelayedInterval:Iv}});var lr=T((iC,Zl)=>{"use strict";var Ti=typeof Reflect=="object"?Reflect:null,jd=Ti&&typeof Ti.apply=="function"?Ti.apply:function(t,e,n){return Function.prototype.apply.call(t,e,n)},Zs;Ti&&typeof Ti.ownKeys=="function"?Zs=Ti.ownKeys:Object.getOwnPropertySymbols?Zs=function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:Zs=function(t){return Object.getOwnPropertyNames(t)};function Tv(r){console&&console.warn&&console.warn(r)}var e0=Number.isNaN||function(t){return t!==t};function gt(){gt.init.call(this)}Zl.exports=gt;Zl.exports.once=Lv;gt.EventEmitter=gt;gt.prototype._events=void 0;gt.prototype._eventsCount=0;gt.prototype._maxListeners=void 0;var t0=10;function Js(r){if(typeof r!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof r)}Object.defineProperty(gt,"defaultMaxListeners",{enumerable:!0,get:function(){return t0},set:function(r){if(typeof r!="number"||r<0||e0(r))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+r+".");t0=r}});gt.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0};gt.prototype.setMaxListeners=function(t){if(typeof t!="number"||t<0||e0(t))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+t+".");return this._maxListeners=t,this};function r0(r){return r._maxListeners===void 0?gt.defaultMaxListeners:r._maxListeners}gt.prototype.getMaxListeners=function(){return r0(this)};gt.prototype.emit=function(t){for(var e=[],n=1;n<arguments.length;n++)e.push(arguments[n]);var i=t==="error",o=this._events;if(o!==void 0)i=i&&o.error===void 0;else if(!i)return!1;if(i){var s;if(e.length>0&&(s=e[0]),s instanceof Error)throw s;var a=new Error("Unhandled error."+(s?" ("+s.message+")":""));throw a.context=s,a}var c=o[t];if(c===void 0)return!1;if(typeof c=="function")jd(c,this,e);else for(var l=c.length,u=a0(c,l),n=0;n<l;++n)jd(u[n],this,e);return!0};function n0(r,t,e,n){var i,o,s;if(Js(e),o=r._events,o===void 0?(o=r._events=Object.create(null),r._eventsCount=0):(o.newListener!==void 0&&(r.emit("newListener",t,e.listener?e.listener:e),o=r._events),s=o[t]),s===void 0)s=o[t]=e,++r._eventsCount;else if(typeof s=="function"?s=o[t]=n?[e,s]:[s,e]:n?s.unshift(e):s.push(e),i=r0(r),i>0&&s.length>i&&!s.warned){s.warned=!0;var a=new Error("Possible EventEmitter memory leak detected. "+s.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");a.name="MaxListenersExceededWarning",a.emitter=r,a.type=t,a.count=s.length,Tv(a)}return r}gt.prototype.addListener=function(t,e){return n0(this,t,e,!1)};gt.prototype.on=gt.prototype.addListener;gt.prototype.prependListener=function(t,e){return n0(this,t,e,!0)};function Cv(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function i0(r,t,e){var n={fired:!1,wrapFn:void 0,target:r,type:t,listener:e},i=Cv.bind(n);return i.listener=e,n.wrapFn=i,i}gt.prototype.once=function(t,e){return Js(e),this.on(t,i0(this,t,e)),this};gt.prototype.prependOnceListener=function(t,e){return Js(e),this.prependListener(t,i0(this,t,e)),this};gt.prototype.removeListener=function(t,e){var n,i,o,s,a;if(Js(e),i=this._events,i===void 0)return this;if(n=i[t],n===void 0)return this;if(n===e||n.listener===e)--this._eventsCount===0?this._events=Object.create(null):(delete i[t],i.removeListener&&this.emit("removeListener",t,n.listener||e));else if(typeof n!="function"){for(o=-1,s=n.length-1;s>=0;s--)if(n[s]===e||n[s].listener===e){a=n[s].listener,o=s;break}if(o<0)return this;o===0?n.shift():Dv(n,o),n.length===1&&(i[t]=n[0]),i.removeListener!==void 0&&this.emit("removeListener",t,a||e)}return this};gt.prototype.off=gt.prototype.removeListener;gt.prototype.removeAllListeners=function(t){var e,n,i;if(n=this._events,n===void 0)return this;if(n.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):n[t]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete n[t]),this;if(arguments.length===0){var o=Object.keys(n),s;for(i=0;i<o.length;++i)s=o[i],s!=="removeListener"&&this.removeAllListeners(s);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if(e=n[t],typeof e=="function")this.removeListener(t,e);else if(e!==void 0)for(i=e.length-1;i>=0;i--)this.removeListener(t,e[i]);return this};function o0(r,t,e){var n=r._events;if(n===void 0)return[];var i=n[t];return i===void 0?[]:typeof i=="function"?e?[i.listener||i]:[i]:e?Pv(i):a0(i,i.length)}gt.prototype.listeners=function(t){return o0(this,t,!0)};gt.prototype.rawListeners=function(t){return o0(this,t,!1)};gt.listenerCount=function(r,t){return typeof r.listenerCount=="function"?r.listenerCount(t):s0.call(r,t)};gt.prototype.listenerCount=s0;function s0(r){var t=this._events;if(t!==void 0){var e=t[r];if(typeof e=="function")return 1;if(e!==void 0)return e.length}return 0}gt.prototype.eventNames=function(){return this._eventsCount>0?Zs(this._events):[]};function a0(r,t){for(var e=new Array(t),n=0;n<t;++n)e[n]=r[n];return e}function Dv(r,t){for(;t+1<r.length;t++)r[t]=r[t+1];r.pop()}function Pv(r){for(var t=new Array(r.length),e=0;e<t.length;++e)t[e]=r[e].listener||r[e];return t}function Lv(r,t){return new Promise(function(e,n){function i(s){r.removeListener(t,o),n(s)}function o(){typeof r.removeListener=="function"&&r.removeListener("error",i),e([].slice.call(arguments))}c0(r,t,o,{once:!0}),t!=="error"&&Bv(r,i,{once:!0})})}function Bv(r,t,e){typeof r.on=="function"&&c0(r,"error",t,e)}function c0(r,t,e,n){if(typeof r.on=="function")n.once?r.once(t,e):r.on(t,e);else if(typeof r.addEventListener=="function")r.addEventListener(t,function i(o){n.once&&r.removeEventListener(t,i),e(o)});else throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof r)}});var m0=T((OC,p0)=>{"use strict";p0.exports=r=>{if(Object.prototype.toString.call(r)!=="[object Object]")return!1;let t=Object.getPrototypeOf(r);return t===null||t===Object.prototype}});var v0=T((E0,x0)=>{"use strict";var na=m0(),{hasOwnProperty:g0}=Object.prototype,{propertyIsEnumerable:Mv}=Object,Ci=(r,t,e)=>Object.defineProperty(r,t,{value:e,writable:!0,enumerable:!0,configurable:!0}),Uv=E0,y0={concatArrays:!1,ignoreUndefined:!1},ia=r=>{let t=[];for(let e in r)g0.call(r,e)&&t.push(e);if(Object.getOwnPropertySymbols){let e=Object.getOwnPropertySymbols(r);for(let n of e)Mv.call(r,n)&&t.push(n)}return t};function Di(r){return Array.isArray(r)?Fv(r):na(r)?Kv(r):r}function Fv(r){let t=r.slice(0,0);return ia(r).forEach(e=>{Ci(t,e,Di(r[e]))}),t}function Kv(r){let t=Object.getPrototypeOf(r)===null?Object.create(null):{};return ia(r).forEach(e=>{Ci(t,e,Di(r[e]))}),t}var w0=(r,t,e,n)=>(e.forEach(i=>{typeof t[i]>"u"&&n.ignoreUndefined||(i in r&&r[i]!==Object.getPrototypeOf(r)?Ci(r,i,eu(r[i],t[i],n)):Ci(r,i,Di(t[i])))}),r),Vv=(r,t,e)=>{let n=r.slice(0,0),i=0;return[r,t].forEach(o=>{let s=[];for(let a=0;a<o.length;a++)g0.call(o,a)&&(s.push(String(a)),o===r?Ci(n,i++,o[a]):Ci(n,i++,Di(o[a])));n=w0(n,o,ia(o).filter(a=>!s.includes(a)),e)}),n};function eu(r,t,e){return e.concatArrays&&Array.isArray(r)&&Array.isArray(t)?Vv(r,t,e):!na(t)||!na(r)?Di(t):w0(r,t,ia(t),e)}x0.exports=function(...r){let t=eu(Di(y0),this!==Uv&&this||{},y0),e={_:{}};for(let n of r)if(n!==void 0){if(!na(n))throw new TypeError("`"+n+"` is not an Option Object");e=eu(e,{_:n},t)}return e._}});var _o=T((s4,A0)=>{A0.exports=class{constructor(t={}){this.points=t.points,this.duration=t.duration,this.blockDuration=t.blockDuration,this.execEvenly=t.execEvenly,this.execEvenlyMinDelayMs=t.execEvenlyMinDelayMs,this.keyPrefix=t.keyPrefix}get points(){return this._points}set points(t){this._points=t>=0?t:4}get duration(){return this._duration}set duration(t){this._duration=typeof t>"u"?1:t}get msDuration(){return this.duration*1e3}get blockDuration(){return this._blockDuration}set blockDuration(t){this._blockDuration=typeof t>"u"?0:t}get msBlockDuration(){return this.blockDuration*1e3}get execEvenly(){return this._execEvenly}set execEvenly(t){this._execEvenly=typeof t>"u"?!1:Boolean(t)}get execEvenlyMinDelayMs(){return this._execEvenlyMinDelayMs}set execEvenlyMinDelayMs(t){this._execEvenlyMinDelayMs=typeof t>"u"?Math.ceil(this.msDuration/this.points):t}get keyPrefix(){return this._keyPrefix}set keyPrefix(t){if(typeof t>"u"&&(t="rlflx"),typeof t!="string")throw new Error("keyPrefix must be string");this._keyPrefix=t}_getKeySecDuration(t={}){return t&&t.customDuration>=0?t.customDuration:this.duration}getKey(t){return this.keyPrefix.length>0?`${this.keyPrefix}:${t}`:t}parseKey(t){return t.substring(this.keyPrefix.length)}consume(){throw new Error("You have to implement the method 'consume'!")}penalty(){throw new Error("You have to implement the method 'penalty'!")}reward(){throw new Error("You have to implement the method 'reward'!")}get(){throw new Error("You have to implement the method 'get'!")}set(){throw new Error("You have to implement the method 'set'!")}block(){throw new Error("You have to implement the method 'block'!")}delete(){throw new Error("You have to implement the method 'delete'!")}}});var I0=T((c4,R0)=>{R0.exports=class{constructor(){this._keys={},this._addedKeysAmount=0}collectExpired(){let t=Date.now();Object.keys(this._keys).forEach(e=>{this._keys[e]<=t&&delete this._keys[e]}),this._addedKeysAmount=Object.keys(this._keys).length}add(t,e){this.addMs(t,e*1e3)}addMs(t,e){this._keys[t]=Date.now()+e,this._addedKeysAmount++,this._addedKeysAmount>999&&this.collectExpired()}msBeforeExpire(t){let e=this._keys[t];if(e&&e>=Date.now()){this.collectExpired();let n=Date.now();return e>=n?e-n:0}return 0}delete(t){t?delete this._keys[t]:Object.keys(this._keys).forEach(e=>{delete this._keys[e]})}}});var C0=T((l4,T0)=>{var $v=I0();T0.exports=$v});var Ae=T((f4,D0)=>{D0.exports=class{constructor(t,e,n,i){this.remainingPoints=typeof t>"u"?0:t,this.msBeforeNext=typeof e>"u"?0:e,this.consumedPoints=typeof n>"u"?0:n,this.isFirstInDuration=typeof i>"u"?!1:i}get msBeforeNext(){return this._msBeforeNext}set msBeforeNext(t){return this._msBeforeNext=t,this}get remainingPoints(){return this._remainingPoints}set remainingPoints(t){return this._remainingPoints=t,this}get consumedPoints(){return this._consumedPoints}set consumedPoints(t){return this._consumedPoints=t,this}get isFirstInDuration(){return this._isFirstInDuration}set isFirstInDuration(t){this._isFirstInDuration=Boolean(t)}_getDecoratedProperties(){return{remainingPoints:this.remainingPoints,msBeforeNext:this.msBeforeNext,consumedPoints:this.consumedPoints,isFirstInDuration:this.isFirstInDuration}}[Symbol.for("nodejs.util.inspect.custom")](){return this._getDecoratedProperties()}toString(){return JSON.stringify(this._getDecoratedProperties())}toJSON(){return this._getDecoratedProperties()}}});var Li=T((d4,L0)=>{var nu=_o(),zv=C0(),P0=Ae();L0.exports=class extends nu{constructor(t={}){super(t),this.inMemoryBlockOnConsumed=t.inMemoryBlockOnConsumed||t.inmemoryBlockOnConsumed,this.inMemoryBlockDuration=t.inMemoryBlockDuration||t.inmemoryBlockDuration,this.insuranceLimiter=t.insuranceLimiter,this._inMemoryBlockedKeys=new zv}get client(){return this._client}set client(t){if(typeof t>"u")throw new Error("storeClient is not set");this._client=t}_afterConsume(t,e,n,i,o,s={}){let a=this._getRateLimiterRes(n,i,o);if(this.inMemoryBlockOnConsumed>0&&!(this.inMemoryBlockDuration>0)&&a.consumedPoints>=this.inMemoryBlockOnConsumed)return this._inMemoryBlockedKeys.addMs(n,a.msBeforeNext),a.consumedPoints>this.points?e(a):t(a);if(a.consumedPoints>this.points){let c=Promise.resolve();this.blockDuration>0&&a.consumedPoints<=this.points+i&&(a.msBeforeNext=this.msBlockDuration,c=this._block(n,a.consumedPoints,this.msBlockDuration,s)),this.inMemoryBlockOnConsumed>0&&a.consumedPoints>=this.inMemoryBlockOnConsumed&&(this._inMemoryBlockedKeys.add(n,this.inMemoryBlockDuration),a.msBeforeNext=this.msInMemoryBlockDuration),c.then(()=>{e(a)}).catch(l=>{e(l)})}else if(this.execEvenly&&a.msBeforeNext>0&&!a.isFirstInDuration){let c=Math.ceil(a.msBeforeNext/(a.remainingPoints+2));c<this.execEvenlyMinDelayMs&&(c=a.consumedPoints*this.execEvenlyMinDelayMs),setTimeout(t,c,a)}else t(a)}_handleError(t,e,n,i,o,s=!1,a={}){this.insuranceLimiter instanceof nu?this.insuranceLimiter[e](o,s,a).then(c=>{n(c)}).catch(c=>{i(c)}):i(t)}get _inmemoryBlockedKeys(){return this._inMemoryBlockedKeys}getInmemoryBlockMsBeforeExpire(t){return this.getInMemoryBlockMsBeforeExpire(t)}get inmemoryBlockOnConsumed(){return this.inMemoryBlockOnConsumed}set inmemoryBlockOnConsumed(t){this.inMemoryBlockOnConsumed=t}get inmemoryBlockDuration(){return this.inMemoryBlockDuration}set inmemoryBlockDuration(t){this.inMemoryBlockDuration=t}get msInmemoryBlockDuration(){return this.inMemoryBlockDuration*1e3}getInMemoryBlockMsBeforeExpire(t){return this.inMemoryBlockOnConsumed>0?this._inMemoryBlockedKeys.msBeforeExpire(t):0}get inMemoryBlockOnConsumed(){return this._inMemoryBlockOnConsumed}set inMemoryBlockOnConsumed(t){if(this._inMemoryBlockOnConsumed=t?parseInt(t):0,this.inMemoryBlockOnConsumed>0&&this.points>this.inMemoryBlockOnConsumed)throw new Error('inMemoryBlockOnConsumed option must be greater or equal "points" option')}get inMemoryBlockDuration(){return this._inMemoryBlockDuration}set inMemoryBlockDuration(t){if(this._inMemoryBlockDuration=t?parseInt(t):0,this.inMemoryBlockDuration>0&&this.inMemoryBlockOnConsumed===0)throw new Error("inMemoryBlockOnConsumed option must be set up")}get msInMemoryBlockDuration(){return this._inMemoryBlockDuration*1e3}get insuranceLimiter(){return this._insuranceLimiter}set insuranceLimiter(t){if(typeof t<"u"&&!(t instanceof nu))throw new Error("insuranceLimiter must be instance of RateLimiterAbstract");this._insuranceLimiter=t,this._insuranceLimiter&&(this._insuranceLimiter.blockDuration=this.blockDuration,this._insuranceLimiter.execEvenly=this.execEvenly)}block(t,e,n={}){let i=e*1e3;return this._block(this.getKey(t),this.points+1,i,n)}set(t,e,n,i={}){let o=(n>=0?n:this.duration)*1e3;return this._block(this.getKey(t),e,o,i)}consume(t,e=1,n={}){return new Promise((i,o)=>{let s=this.getKey(t),a=this.getInMemoryBlockMsBeforeExpire(s);if(a>0)return o(new P0(0,a));this._upsert(s,e,this._getKeySecDuration(n)*1e3,!1,n).then(c=>{this._afterConsume(i,o,s,e,c)}).catch(c=>{this._handleError(c,"consume",i,o,t,e,n)})})}penalty(t,e=1,n={}){let i=this.getKey(t);return new Promise((o,s)=>{this._upsert(i,e,this._getKeySecDuration(n)*1e3,!1,n).then(a=>{o(this._getRateLimiterRes(i,e,a))}).catch(a=>{this._handleError(a,"penalty",o,s,t,e,n)})})}reward(t,e=1,n={}){let i=this.getKey(t);return new Promise((o,s)=>{this._upsert(i,-e,this._getKeySecDuration(n)*1e3,!1,n).then(a=>{o(this._getRateLimiterRes(i,-e,a))}).catch(a=>{this._handleError(a,"reward",o,s,t,e,n)})})}get(t,e={}){let n=this.getKey(t);return new Promise((i,o)=>{this._get(n,e).then(s=>{i(s===null||typeof s>"u"?null:this._getRateLimiterRes(n,0,s))}).catch(s=>{this._handleError(s,"get",i,o,t,e)})})}delete(t,e={}){let n=this.getKey(t);return new Promise((i,o)=>{this._delete(n,e).then(s=>{this._inMemoryBlockedKeys.delete(n),i(s)}).catch(s=>{this._handleError(s,"delete",i,o,t,e)})})}deleteInMemoryBlockedAll(){this._inMemoryBlockedKeys.delete()}_getRateLimiterRes(t,e,n){throw new Error("You have to implement the method '_getRateLimiterRes'!")}_block(t,e,n,i={}){return new Promise((o,s)=>{this._upsert(t,e,n,!0,i).then(()=>{o(new P0(0,n>0?n:-1,e))}).catch(a=>{this._handleError(a,"block",o,s,this.parseKey(t),n/1e3,i)})})}_get(t,e={}){throw new Error("You have to implement the method '_get'!")}_delete(t,e={}){throw new Error("You have to implement the method '_delete'!")}_upsert(t,e,n,i=!1,o={}){throw new Error("You have to implement the method '_upsert'!")}}});var O0=T((p4,N0)=>{var Gv=Li(),Yv=Ae(),B0="redis.call('set', KEYS[1], 0, 'EX', ARGV[2], 'NX') local consumed = redis.call('incrby', KEYS[1], ARGV[1]) local ttl = redis.call('pttl', KEYS[1]) if ttl == -1 then redis.call('expire', KEYS[1], ARGV[2]) ttl = 1000 * ARGV[2] end return {consumed, ttl} ",iu=class extends Gv{constructor(t){super(t),t.redis?this.client=t.redis:this.client=t.storeClient,this._rejectIfRedisNotReady=!!t.rejectIfRedisNotReady,typeof this.client.defineCommand=="function"&&this.client.defineCommand("rlflxIncr",{numberOfKeys:1,lua:B0})}_isRedisReady(){return this._rejectIfRedisNotReady?!(this.client.status&&this.client.status!=="ready"||typeof this.client.isReady=="function"&&!this.client.isReady()):!0}_getRateLimiterRes(t,e,n){let[i,o]=n;Array.isArray(i)&&([,i]=i,[,o]=o);let s=new Yv;return s.consumedPoints=parseInt(i),s.isFirstInDuration=s.consumedPoints===e,s.remainingPoints=Math.max(this.points-s.consumedPoints,0),s.msBeforeNext=o,s}_upsert(t,e,n,i=!1){return new Promise((o,s)=>{if(!this._isRedisReady())return s(new Error("Redis connection is not ready"));let a=Math.floor(n/1e3),c=this.client.multi();if(i)a>0?c.set(t,e,"EX",a):c.set(t,e),c.pttl(t).exec((l,u)=>l?s(l):o(u));else if(a>0){let l=function(u,f){return u?s(u):o(f)};typeof this.client.rlflxIncr=="function"?this.client.rlflxIncr(t,e,a,l):this.client.eval(B0,1,t,e,a,l)}else c.incrby(t,e).pttl(t).exec((l,u)=>l?s(l):o(u))})}_get(t){return new Promise((e,n)=>{if(!this._isRedisReady())return n(new Error("Redis connection is not ready"));this.client.multi().get(t).pttl(t).exec((i,o)=>{if(i)n(i);else{let[s]=o;if(s===null)return e(null);e(o)}})})}_delete(t){return new Promise((e,n)=>{this.client.del(t,(i,o)=>{i?n(i):e(o>0)})})}};N0.exports=iu});var U0=T((m4,M0)=>{var Wv=Li(),Qv=Ae();function k0(r){try{let t=r.client?r.client:r,{version:e}=t.topology.s.options.metadata.driver,n=e.split(".").map(i=>parseInt(i));return{major:n[0],feature:n[1],patch:n[2]}}catch{return{major:0,feature:0,patch:0}}}var So=class extends Wv{constructor(t){super(t),this.dbName=t.dbName,this.tableName=t.tableName,this.indexKeyPrefix=t.indexKeyPrefix,t.mongo?this.client=t.mongo:this.client=t.storeClient,typeof this.client.then=="function"?this.client.then(e=>{this.client=e,this._initCollection(),this._driverVersion=k0(this.client)}):(this._initCollection(),this._driverVersion=k0(this.client))}get dbName(){return this._dbName}set dbName(t){this._dbName=typeof t>"u"?So.getDbName():t}static getDbName(){return"node-rate-limiter-flexible"}get tableName(){return this._tableName}set tableName(t){this._tableName=typeof t>"u"?this.keyPrefix:t}get client(){return this._client}set client(t){if(typeof t>"u")throw new Error("mongo is not set");this._client=t}get indexKeyPrefix(){return this._indexKeyPrefix}set indexKeyPrefix(t){this._indexKeyPrefix=t||{}}_initCollection(){let e=(typeof this.client.db=="function"?this.client.db(this.dbName):this.client).collection(this.tableName);e.createIndex({expire:-1},{expireAfterSeconds:0}),e.createIndex(Object.assign({},this.indexKeyPrefix,{key:1}),{unique:!0}),this._collection=e}_getRateLimiterRes(t,e,n){let i=new Qv,o;return typeof n.value>"u"?o=n:o=n.value,i.isFirstInDuration=o.points===e,i.consumedPoints=o.points,i.remainingPoints=Math.max(this.points-i.consumedPoints,0),i.msBeforeNext=o.expire!==null?Math.max(new Date(o.expire).getTime()-Date.now(),0):-1,i}_upsert(t,e,n,i=!1,o={}){if(!this._collection)return Promise.reject(Error("Mongo connection is not established"));let s=o.attrs||{},a,c;i?(a={key:t},a=Object.assign(a,s),c={$set:{key:t,points:e,expire:n>0?new Date(Date.now()+n):null}},c.$set=Object.assign(c.$set,s)):(a={$or:[{expire:{$gt:new Date}},{expire:{$eq:null}}],key:t},a=Object.assign(a,s),c={$setOnInsert:{key:t,expire:n>0?new Date(Date.now()+n):null},$inc:{points:e}},c.$setOnInsert=Object.assign(c.$setOnInsert,s));let l={upsert:!0};return this._driverVersion.major>=4||this._driverVersion.major===3&&this._driverVersion.feature>=7||this._driverVersion.feature>=6&&this._driverVersion.patch>=7?l.returnDocument="after":l.returnOriginal=!1,new Promise((u,f)=>{this._collection.findOneAndUpdate(a,c,l).then(d=>{u(d)}).catch(d=>{if(d&&d.code===11e3){let h=Object.assign({$or:[{expire:{$lte:new Date}},{expire:{$eq:null}}],key:t},s),p={$set:Object.assign({key:t,points:e,expire:n>0?new Date(Date.now()+n):null},s)};this._collection.findOneAndUpdate(h,p,l).then(m=>{u(m)}).catch(m=>{m&&m.code===11e3?this._upsert(t,e,n,i).then(y=>u(y)).catch(y=>f(y)):f(m)})}else f(d)})})}_get(t,e={}){if(!this._collection)return Promise.reject(Error("Mongo connection is not established"));let n=e.attrs||{},i=Object.assign({key:t,$or:[{expire:{$gt:new Date}},{expire:{$eq:null}}]},n);return this._collection.findOne(i)}_delete(t,e={}){if(!this._collection)return Promise.reject(Error("Mongo connection is not established"));let n=e.attrs||{},i=Object.assign({key:t},n);return this._collection.deleteOne(i).then(o=>o.deletedCount>0)}};M0.exports=So});var K0=T((y4,F0)=>{var Xv=Li(),Zv=Ae(),ou=class extends Xv{constructor(t,e=null){super(t),this.client=t.storeClient,this.clientType=t.storeType,this.dbName=t.dbName,this.tableName=t.tableName,this.clearExpiredByTimeout=t.clearExpiredByTimeout,this.tableCreated=t.tableCreated,this.tableCreated?(this.clearExpiredByTimeout&&this._clearExpiredHourAgo(),typeof e=="function"&&e()):this._createDbAndTable().then(()=>{this.tableCreated=!0,this.clearExpiredByTimeout&&this._clearExpiredHourAgo(),typeof e=="function"&&e()}).catch(n=>{if(typeof e=="function")e(n);else throw n})}clearExpired(t){return new Promise(e=>{this._getConnection().then(n=>{n.query("DELETE FROM ??.?? WHERE expire < ?",[this.dbName,this.tableName,t],()=>{this._releaseConnection(n),e()})}).catch(()=>{e()})})}_clearExpiredHourAgo(){this._clearExpiredTimeoutId&&clearTimeout(this._clearExpiredTimeoutId),this._clearExpiredTimeoutId=setTimeout(()=>{this.clearExpired(Date.now()-36e5).then(()=>{this._clearExpiredHourAgo()})},3e5),this._clearExpiredTimeoutId.unref()}_getConnection(){switch(this.clientType){case"pool":return new Promise((t,e)=>{this.client.getConnection((n,i)=>{if(n)return e(n);t(i)})});case"sequelize":return this.client.connectionManager.getConnection();case"knex":return this.client.client.acquireConnection();default:return Promise.resolve(this.client)}}_releaseConnection(t){switch(this.clientType){case"pool":return t.release();case"sequelize":return this.client.connectionManager.releaseConnection(t);case"knex":return this.client.client.releaseConnection(t);default:return!0}}_createDbAndTable(){return new Promise((t,e)=>{this._getConnection().then(n=>{n.query(`CREATE DATABASE IF NOT EXISTS \`${this.dbName}\`;`,i=>{if(i)return this._releaseConnection(n),e(i);n.query(this._getCreateTableStmt(),o=>{if(o)return this._releaseConnection(n),e(o);this._releaseConnection(n),t()})})}).catch(n=>{e(n)})})}_getCreateTableStmt(){return`CREATE TABLE IF NOT EXISTS \`${this.dbName}\`.\`${this.tableName}\` (\`key\` VARCHAR(255) CHARACTER SET utf8 NOT NULL,\`points\` INT(9) NOT NULL default 0,\`expire\` BIGINT UNSIGNED,PRIMARY KEY (\`key\`)) ENGINE = INNODB;`}get clientType(){return this._clientType}set clientType(t){if(typeof t>"u")if(this.client.constructor.name==="Connection")t="connection";else if(this.client.constructor.name==="Pool")t="pool";else if(this.client.constructor.name==="Sequelize")t="sequelize";else throw new Error("storeType is not defined");this._clientType=t.toLowerCase()}get dbName(){return this._dbName}set dbName(t){this._dbName=typeof t>"u"?"rtlmtrflx":t}get tableName(){return this._tableName}set tableName(t){this._tableName=typeof t>"u"?this.keyPrefix:t}get tableCreated(){return this._tableCreated}set tableCreated(t){this._tableCreated=typeof t>"u"?!1:!!t}get clearExpiredByTimeout(){return this._clearExpiredByTimeout}set clearExpiredByTimeout(t){this._clearExpiredByTimeout=typeof t>"u"?!0:Boolean(t)}_getRateLimiterRes(t,e,n){let i=new Zv,[o]=n;return i.isFirstInDuration=e===o.points,i.consumedPoints=i.isFirstInDuration?e:o.points,i.remainingPoints=Math.max(this.points-i.consumedPoints,0),i.msBeforeNext=o.expire?Math.max(o.expire-Date.now(),0):-1,i}_upsertTransaction(t,e,n,i,o){return new Promise((s,a)=>{t.query("BEGIN",c=>{if(c)return t.rollback(),a(c);let l=Date.now(),u=i>0?l+i:null,f,d;o?(f=`INSERT INTO ??.?? VALUES (?, ?, ?)
2
+ "use strict";var Libp2P=(()=>{var s1=Object.create;var Ds=Object.defineProperty;var a1=Object.getOwnPropertyDescriptor;var c1=Object.getOwnPropertyNames;var l1=Object.getPrototypeOf,u1=Object.prototype.hasOwnProperty;var T=(r,t)=>()=>(t||r((t={exports:{}}).exports,t),t.exports),ce=(r,t)=>{for(var e in t)Ds(r,e,{get:t[e],enumerable:!0})},Oh=(r,t,e,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of c1(t))!u1.call(r,i)&&i!==e&&Ds(r,i,{get:()=>t[i],enumerable:!(n=a1(t,i))||n.enumerable});return r};var I=(r,t,e)=>(e=r!=null?s1(l1(r)):{},Oh(t||!r||!r.__esModule?Ds(e,"default",{value:r,enumerable:!0}):e,r)),f1=r=>Oh(Ds({},"__esModule",{value:!0}),r);var sl=T((BR,kh)=>{var yi=1e3,gi=yi*60,wi=gi*60,Dn=wi*24,h1=Dn*7,d1=Dn*365.25;kh.exports=function(r,t){t=t||{};var e=typeof r;if(e==="string"&&r.length>0)return p1(r);if(e==="number"&&isFinite(r))return t.long?y1(r):m1(r);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(r))};function p1(r){if(r=String(r),!(r.length>100)){var t=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(r);if(t){var e=parseFloat(t[1]),n=(t[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return e*d1;case"weeks":case"week":case"w":return e*h1;case"days":case"day":case"d":return e*Dn;case"hours":case"hour":case"hrs":case"hr":case"h":return e*wi;case"minutes":case"minute":case"mins":case"min":case"m":return e*gi;case"seconds":case"second":case"secs":case"sec":case"s":return e*yi;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return e;default:return}}}}function m1(r){var t=Math.abs(r);return t>=Dn?Math.round(r/Dn)+"d":t>=wi?Math.round(r/wi)+"h":t>=gi?Math.round(r/gi)+"m":t>=yi?Math.round(r/yi)+"s":r+"ms"}function y1(r){var t=Math.abs(r);return t>=Dn?Ps(r,t,Dn,"day"):t>=wi?Ps(r,t,wi,"hour"):t>=gi?Ps(r,t,gi,"minute"):t>=yi?Ps(r,t,yi,"second"):r+" ms"}function Ps(r,t,e,n){var i=t>=e*1.5;return Math.round(r/e)+" "+n+(i?"s":"")}});var Uh=T((NR,Mh)=>{function g1(r){e.debug=e,e.default=e,e.coerce=c,e.disable=o,e.enable=i,e.enabled=s,e.humanize=sl(),e.destroy=l,Object.keys(r).forEach(u=>{e[u]=r[u]}),e.names=[],e.skips=[],e.formatters={};function t(u){let f=0;for(let d=0;d<u.length;d++)f=(f<<5)-f+u.charCodeAt(d),f|=0;return e.colors[Math.abs(f)%e.colors.length]}e.selectColor=t;function e(u){let f,d=null,h,p;function m(...y){if(!m.enabled)return;let g=m,E=Number(new Date),_=E-(f||E);g.diff=_,g.prev=f,g.curr=E,f=E,y[0]=e.coerce(y[0]),typeof y[0]!="string"&&y.unshift("%O");let k=0;y[0]=y[0].replace(/%([a-zA-Z%])/g,(D,J)=>{if(D==="%%")return"%";k++;let rt=e.formatters[J];if(typeof rt=="function"){let jt=y[k];D=rt.call(g,jt),y.splice(k,1),k--}return D}),e.formatArgs.call(g,y),(g.log||e.log).apply(g,y)}return m.namespace=u,m.useColors=e.useColors(),m.color=e.selectColor(u),m.extend=n,m.destroy=e.destroy,Object.defineProperty(m,"enabled",{enumerable:!0,configurable:!1,get:()=>d!==null?d:(h!==e.namespaces&&(h=e.namespaces,p=e.enabled(u)),p),set:y=>{d=y}}),typeof e.init=="function"&&e.init(m),m}function n(u,f){let d=e(this.namespace+(typeof f>"u"?":":f)+u);return d.log=this.log,d}function i(u){e.save(u),e.namespaces=u,e.names=[],e.skips=[];let f,d=(typeof u=="string"?u:"").split(/[\s,]+/),h=d.length;for(f=0;f<h;f++)d[f]&&(u=d[f].replace(/\*/g,".*?"),u[0]==="-"?e.skips.push(new RegExp("^"+u.slice(1)+"$")):e.names.push(new RegExp("^"+u+"$")))}function o(){let u=[...e.names.map(a),...e.skips.map(a).map(f=>"-"+f)].join(",");return e.enable(""),u}function s(u){if(u[u.length-1]==="*")return!0;let f,d;for(f=0,d=e.skips.length;f<d;f++)if(e.skips[f].test(u))return!1;for(f=0,d=e.names.length;f<d;f++)if(e.names[f].test(u))return!0;return!1}function a(u){return u.toString().substring(2,u.toString().length-2).replace(/\.\*\?$/,"*")}function c(u){return u instanceof Error?u.stack||u.message:u}function l(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return e.enable(e.load()),e}Mh.exports=g1});var al=T((ve,Ls)=>{ve.formatArgs=E1;ve.save=x1;ve.load=v1;ve.useColors=w1;ve.storage=b1();ve.destroy=(()=>{let r=!1;return()=>{r||(r=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();ve.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function w1(){return typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs)?!0:typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)?!1:typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function E1(r){if(r[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+r[0]+(this.useColors?"%c ":" ")+"+"+Ls.exports.humanize(this.diff),!this.useColors)return;let t="color: "+this.color;r.splice(1,0,t,"color: inherit");let e=0,n=0;r[0].replace(/%[a-zA-Z%]/g,i=>{i!=="%%"&&(e++,i==="%c"&&(n=e))}),r.splice(n,0,t)}ve.log=console.debug||console.log||(()=>{});function x1(r){try{r?ve.storage.setItem("debug",r):ve.storage.removeItem("debug")}catch{}}function v1(){let r;try{r=ve.storage.getItem("debug")}catch{}return!r&&typeof process<"u"&&"env"in process&&(r=process.env.DEBUG),r}function b1(){try{return localStorage}catch{}}Ls.exports=Uh()(ve);var{formatters:_1}=Ls.exports;_1.j=function(r){try{return JSON.stringify(r)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}});var md=T((FI,pd)=>{pd.exports=Ll;var dd=128,Nx=127,Ox=~Nx,kx=Math.pow(2,31);function Ll(r,t,e){if(Number.MAX_SAFE_INTEGER&&r>Number.MAX_SAFE_INTEGER)throw Ll.bytes=0,new RangeError("Could not encode varint");t=t||[],e=e||0;for(var n=e;r>=kx;)t[e++]=r&255|dd,r/=128;for(;r&Ox;)t[e++]=r&255|dd,r>>>=7;return t[e]=r|0,Ll.bytes=e-n+1,t}});var wd=T((KI,gd)=>{gd.exports=Bl;var Mx=128,yd=127;function Bl(r,n){var e=0,n=n||0,i=0,o=n,s,a=r.length;do{if(o>=a||i>49)throw Bl.bytes=0,new RangeError("Could not decode varint");s=r[o++],e+=i<28?(s&yd)<<i:(s&yd)*Math.pow(2,i),i+=7}while(s>=Mx);return Bl.bytes=o-n,e}});var xd=T((VI,Ed)=>{var Ux=Math.pow(2,7),Fx=Math.pow(2,14),Kx=Math.pow(2,21),Vx=Math.pow(2,28),qx=Math.pow(2,35),Hx=Math.pow(2,42),$x=Math.pow(2,49),zx=Math.pow(2,56),Gx=Math.pow(2,63);Ed.exports=function(r){return r<Ux?1:r<Fx?2:r<Kx?3:r<Vx?4:r<qx?5:r<Hx?6:r<$x?7:r<zx?8:r<Gx?9:10}});var ks=T((qI,vd)=>{vd.exports={encode:md(),decode:wd(),encodingLength:xd()}});var W=T((cT,Ld)=>{"use strict";function Pd(r,t){for(let e in t)Object.defineProperty(r,e,{value:t[e],enumerable:!0,configurable:!0});return r}function av(r,t,e){if(!r||typeof r=="string")throw new TypeError("Please pass an Error to err-code");e||(e={}),typeof t=="object"&&(e=t,t=""),t&&(e.code=t);try{return Pd(r,e)}catch{e.message=r.message,e.stack=r.stack;let i=function(){};return i.prototype=Object.create(Object.getPrototypeOf(r)),Pd(new i,e)}}Ld.exports=av});var qd=T((KT,Vd)=>{"use strict";Vd.exports=function(){return Date.now()}});var Gl=T((VT,Hd)=>{"use strict";var Ys=qd(),zl=class{constructor(t,e,n){let i=this;this._started=Ys(),this._rescheduled=0,this._scheduled=e,this._args=n,this._triggered=!1,this._timerWrapper=()=>{i._rescheduled>0?(i._scheduled=i._rescheduled-(Ys()-i._started),i._schedule(i._scheduled)):(i._triggered=!0,t.apply(null,i._args))},this._timer=setTimeout(this._timerWrapper,e)}reschedule(t){t||(t=this._scheduled);let e=Ys();e+t-(this._started+this._scheduled)<0?(clearTimeout(this._timer),this._schedule(t)):this._triggered?this._schedule(t):(this._started=e,this._rescheduled=t)}_schedule(t){this._triggered=!1,this._started=Ys(),this._rescheduled=0,this._scheduled=t,this._timer=setTimeout(this._timerWrapper,t)}clear(){clearTimeout(this._timer)}};function pv(){if(typeof arguments[0]!="function")throw new Error("callback needed");if(typeof arguments[1]!="number")throw new Error("timeout needed");let r;if(arguments.length>0){r=new Array(arguments.length-2);for(var t=0;t<r.length;t++)r[t]=arguments[t+2]}return new zl(arguments[0],arguments[1],r)}Hd.exports=pv});var Nr=T((qT,zd)=>{"use strict";var{AbortController:mv}=globalThis,$d=Gl(),xo=class extends mv{constructor(t){super(),this._ms=t,this._timer=$d(()=>this.abort(),t),Object.setPrototypeOf(this,xo.prototype)}abort(){return this._timer.clear(),super.abort()}clear(){this._timer.clear()}reset(){this._timer.clear(),this._timer=$d(()=>this.abort(),this._ms)}};zd.exports={TimeoutController:xo}});var Wl=T((JT,Yd)=>{"use strict";var Ti=new Map,Ev=()=>`${Date.now()}:${Math.floor(Math.random()*1e6)}`;async function xv(r,t,e){for(;Ti.get(e);){try{await r()}catch(n){setTimeout(()=>{throw n},1);break}if(!Ti.get(e))break;await new Promise(n=>{let i=setTimeout(n,t);Ti.set(e,i)})}}function vv(r,t,e){e=e||t;let n=Ev(),i=setTimeout(()=>{xv(r,t,n)},e);return Ti.set(n,i),n}function bv(r){let t=Ti.get(r);t&&(clearTimeout(t),Ti.delete(r))}Yd.exports={setDelayedInterval:vv,clearDelayedInterval:bv}});var lr=T((jT,Ql)=>{"use strict";var Ci=typeof Reflect=="object"?Reflect:null,Wd=Ci&&typeof Ci.apply=="function"?Ci.apply:function(t,e,n){return Function.prototype.apply.call(t,e,n)},Qs;Ci&&typeof Ci.ownKeys=="function"?Qs=Ci.ownKeys:Object.getOwnPropertySymbols?Qs=function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:Qs=function(t){return Object.getOwnPropertyNames(t)};function _v(r){console&&console.warn&&console.warn(r)}var Xd=Number.isNaN||function(t){return t!==t};function gt(){gt.init.call(this)}Ql.exports=gt;Ql.exports.once=Iv;gt.EventEmitter=gt;gt.prototype._events=void 0;gt.prototype._eventsCount=0;gt.prototype._maxListeners=void 0;var Qd=10;function Xs(r){if(typeof r!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof r)}Object.defineProperty(gt,"defaultMaxListeners",{enumerable:!0,get:function(){return Qd},set:function(r){if(typeof r!="number"||r<0||Xd(r))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+r+".");Qd=r}});gt.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0};gt.prototype.setMaxListeners=function(t){if(typeof t!="number"||t<0||Xd(t))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+t+".");return this._maxListeners=t,this};function Zd(r){return r._maxListeners===void 0?gt.defaultMaxListeners:r._maxListeners}gt.prototype.getMaxListeners=function(){return Zd(this)};gt.prototype.emit=function(t){for(var e=[],n=1;n<arguments.length;n++)e.push(arguments[n]);var i=t==="error",o=this._events;if(o!==void 0)i=i&&o.error===void 0;else if(!i)return!1;if(i){var s;if(e.length>0&&(s=e[0]),s instanceof Error)throw s;var a=new Error("Unhandled error."+(s?" ("+s.message+")":""));throw a.context=s,a}var c=o[t];if(c===void 0)return!1;if(typeof c=="function")Wd(c,this,e);else for(var l=c.length,u=r0(c,l),n=0;n<l;++n)Wd(u[n],this,e);return!0};function Jd(r,t,e,n){var i,o,s;if(Xs(e),o=r._events,o===void 0?(o=r._events=Object.create(null),r._eventsCount=0):(o.newListener!==void 0&&(r.emit("newListener",t,e.listener?e.listener:e),o=r._events),s=o[t]),s===void 0)s=o[t]=e,++r._eventsCount;else if(typeof s=="function"?s=o[t]=n?[e,s]:[s,e]:n?s.unshift(e):s.push(e),i=Zd(r),i>0&&s.length>i&&!s.warned){s.warned=!0;var a=new Error("Possible EventEmitter memory leak detected. "+s.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");a.name="MaxListenersExceededWarning",a.emitter=r,a.type=t,a.count=s.length,_v(a)}return r}gt.prototype.addListener=function(t,e){return Jd(this,t,e,!1)};gt.prototype.on=gt.prototype.addListener;gt.prototype.prependListener=function(t,e){return Jd(this,t,e,!0)};function Sv(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function jd(r,t,e){var n={fired:!1,wrapFn:void 0,target:r,type:t,listener:e},i=Sv.bind(n);return i.listener=e,n.wrapFn=i,i}gt.prototype.once=function(t,e){return Xs(e),this.on(t,jd(this,t,e)),this};gt.prototype.prependOnceListener=function(t,e){return Xs(e),this.prependListener(t,jd(this,t,e)),this};gt.prototype.removeListener=function(t,e){var n,i,o,s,a;if(Xs(e),i=this._events,i===void 0)return this;if(n=i[t],n===void 0)return this;if(n===e||n.listener===e)--this._eventsCount===0?this._events=Object.create(null):(delete i[t],i.removeListener&&this.emit("removeListener",t,n.listener||e));else if(typeof n!="function"){for(o=-1,s=n.length-1;s>=0;s--)if(n[s]===e||n[s].listener===e){a=n[s].listener,o=s;break}if(o<0)return this;o===0?n.shift():Av(n,o),n.length===1&&(i[t]=n[0]),i.removeListener!==void 0&&this.emit("removeListener",t,a||e)}return this};gt.prototype.off=gt.prototype.removeListener;gt.prototype.removeAllListeners=function(t){var e,n,i;if(n=this._events,n===void 0)return this;if(n.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):n[t]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete n[t]),this;if(arguments.length===0){var o=Object.keys(n),s;for(i=0;i<o.length;++i)s=o[i],s!=="removeListener"&&this.removeAllListeners(s);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if(e=n[t],typeof e=="function")this.removeListener(t,e);else if(e!==void 0)for(i=e.length-1;i>=0;i--)this.removeListener(t,e[i]);return this};function t0(r,t,e){var n=r._events;if(n===void 0)return[];var i=n[t];return i===void 0?[]:typeof i=="function"?e?[i.listener||i]:[i]:e?Rv(i):r0(i,i.length)}gt.prototype.listeners=function(t){return t0(this,t,!0)};gt.prototype.rawListeners=function(t){return t0(this,t,!1)};gt.listenerCount=function(r,t){return typeof r.listenerCount=="function"?r.listenerCount(t):e0.call(r,t)};gt.prototype.listenerCount=e0;function e0(r){var t=this._events;if(t!==void 0){var e=t[r];if(typeof e=="function")return 1;if(e!==void 0)return e.length}return 0}gt.prototype.eventNames=function(){return this._eventsCount>0?Qs(this._events):[]};function r0(r,t){for(var e=new Array(t),n=0;n<t;++n)e[n]=r[n];return e}function Av(r,t){for(;t+1<r.length;t++)r[t]=r[t+1];r.pop()}function Rv(r){for(var t=new Array(r.length),e=0;e<t.length;++e)t[e]=r[e].listener||r[e];return t}function Iv(r,t){return new Promise(function(e,n){function i(s){r.removeListener(t,o),n(s)}function o(){typeof r.removeListener=="function"&&r.removeListener("error",i),e([].slice.call(arguments))}n0(r,t,o,{once:!0}),t!=="error"&&Tv(r,i,{once:!0})})}function Tv(r,t,e){typeof r.on=="function"&&n0(r,"error",t,e)}function n0(r,t,e,n){if(typeof r.on=="function")n.once?r.once(t,e):r.on(t,e);else if(typeof r.addEventListener=="function")r.addEventListener(t,function i(o){n.once&&r.removeEventListener(t,i),e(o)});else throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof r)}});var u0=T((DC,l0)=>{"use strict";l0.exports=r=>{if(Object.prototype.toString.call(r)!=="[object Object]")return!1;let t=Object.getPrototypeOf(r);return t===null||t===Object.prototype}});var y0=T((p0,m0)=>{"use strict";var ea=u0(),{hasOwnProperty:h0}=Object.prototype,{propertyIsEnumerable:Lv}=Object,Di=(r,t,e)=>Object.defineProperty(r,t,{value:e,writable:!0,enumerable:!0,configurable:!0}),Bv=p0,f0={concatArrays:!1,ignoreUndefined:!1},ra=r=>{let t=[];for(let e in r)h0.call(r,e)&&t.push(e);if(Object.getOwnPropertySymbols){let e=Object.getOwnPropertySymbols(r);for(let n of e)Lv.call(r,n)&&t.push(n)}return t};function Pi(r){return Array.isArray(r)?Nv(r):ea(r)?Ov(r):r}function Nv(r){let t=r.slice(0,0);return ra(r).forEach(e=>{Di(t,e,Pi(r[e]))}),t}function Ov(r){let t=Object.getPrototypeOf(r)===null?Object.create(null):{};return ra(r).forEach(e=>{Di(t,e,Pi(r[e]))}),t}var d0=(r,t,e,n)=>(e.forEach(i=>{typeof t[i]>"u"&&n.ignoreUndefined||(i in r&&r[i]!==Object.getPrototypeOf(r)?Di(r,i,jl(r[i],t[i],n)):Di(r,i,Pi(t[i])))}),r),kv=(r,t,e)=>{let n=r.slice(0,0),i=0;return[r,t].forEach(o=>{let s=[];for(let a=0;a<o.length;a++)h0.call(o,a)&&(s.push(String(a)),o===r?Di(n,i++,o[a]):Di(n,i++,Pi(o[a])));n=d0(n,o,ra(o).filter(a=>!s.includes(a)),e)}),n};function jl(r,t,e){return e.concatArrays&&Array.isArray(r)&&Array.isArray(t)?kv(r,t,e):!ea(t)||!ea(r)?Pi(t):d0(r,t,ra(t),e)}m0.exports=function(...r){let t=jl(Pi(f0),this!==Bv&&this||{},f0),e={_:{}};for(let n of r)if(n!==void 0){if(!ea(n))throw new TypeError("`"+n+"` is not an Option Object");e=jl(e,{_:n},t)}return e._}});var So=T((e4,x0)=>{x0.exports=class{constructor(t={}){this.points=t.points,this.duration=t.duration,this.blockDuration=t.blockDuration,this.execEvenly=t.execEvenly,this.execEvenlyMinDelayMs=t.execEvenlyMinDelayMs,this.keyPrefix=t.keyPrefix}get points(){return this._points}set points(t){this._points=t>=0?t:4}get duration(){return this._duration}set duration(t){this._duration=typeof t>"u"?1:t}get msDuration(){return this.duration*1e3}get blockDuration(){return this._blockDuration}set blockDuration(t){this._blockDuration=typeof t>"u"?0:t}get msBlockDuration(){return this.blockDuration*1e3}get execEvenly(){return this._execEvenly}set execEvenly(t){this._execEvenly=typeof t>"u"?!1:Boolean(t)}get execEvenlyMinDelayMs(){return this._execEvenlyMinDelayMs}set execEvenlyMinDelayMs(t){this._execEvenlyMinDelayMs=typeof t>"u"?Math.ceil(this.msDuration/this.points):t}get keyPrefix(){return this._keyPrefix}set keyPrefix(t){if(typeof t>"u"&&(t="rlflx"),typeof t!="string")throw new Error("keyPrefix must be string");this._keyPrefix=t}_getKeySecDuration(t={}){return t&&t.customDuration>=0?t.customDuration:this.duration}getKey(t){return this.keyPrefix.length>0?`${this.keyPrefix}:${t}`:t}parseKey(t){return t.substring(this.keyPrefix.length)}consume(){throw new Error("You have to implement the method 'consume'!")}penalty(){throw new Error("You have to implement the method 'penalty'!")}reward(){throw new Error("You have to implement the method 'reward'!")}get(){throw new Error("You have to implement the method 'get'!")}set(){throw new Error("You have to implement the method 'set'!")}block(){throw new Error("You have to implement the method 'block'!")}delete(){throw new Error("You have to implement the method 'delete'!")}}});var b0=T((n4,v0)=>{v0.exports=class{constructor(){this._keys={},this._addedKeysAmount=0}collectExpired(){let t=Date.now();Object.keys(this._keys).forEach(e=>{this._keys[e]<=t&&delete this._keys[e]}),this._addedKeysAmount=Object.keys(this._keys).length}add(t,e){this.addMs(t,e*1e3)}addMs(t,e){this._keys[t]=Date.now()+e,this._addedKeysAmount++,this._addedKeysAmount>999&&this.collectExpired()}msBeforeExpire(t){let e=this._keys[t];if(e&&e>=Date.now()){this.collectExpired();let n=Date.now();return e>=n?e-n:0}return 0}delete(t){t?delete this._keys[t]:Object.keys(this._keys).forEach(e=>{delete this._keys[e]})}}});var S0=T((i4,_0)=>{var Fv=b0();_0.exports=Fv});var Ae=T((s4,A0)=>{A0.exports=class{constructor(t,e,n,i){this.remainingPoints=typeof t>"u"?0:t,this.msBeforeNext=typeof e>"u"?0:e,this.consumedPoints=typeof n>"u"?0:n,this.isFirstInDuration=typeof i>"u"?!1:i}get msBeforeNext(){return this._msBeforeNext}set msBeforeNext(t){return this._msBeforeNext=t,this}get remainingPoints(){return this._remainingPoints}set remainingPoints(t){return this._remainingPoints=t,this}get consumedPoints(){return this._consumedPoints}set consumedPoints(t){return this._consumedPoints=t,this}get isFirstInDuration(){return this._isFirstInDuration}set isFirstInDuration(t){this._isFirstInDuration=Boolean(t)}_getDecoratedProperties(){return{remainingPoints:this.remainingPoints,msBeforeNext:this.msBeforeNext,consumedPoints:this.consumedPoints,isFirstInDuration:this.isFirstInDuration}}[Symbol.for("nodejs.util.inspect.custom")](){return this._getDecoratedProperties()}toString(){return JSON.stringify(this._getDecoratedProperties())}toJSON(){return this._getDecoratedProperties()}}});var Bi=T((c4,I0)=>{var eu=So(),Kv=S0(),R0=Ae();I0.exports=class extends eu{constructor(t={}){super(t),this.inMemoryBlockOnConsumed=t.inMemoryBlockOnConsumed||t.inmemoryBlockOnConsumed,this.inMemoryBlockDuration=t.inMemoryBlockDuration||t.inmemoryBlockDuration,this.insuranceLimiter=t.insuranceLimiter,this._inMemoryBlockedKeys=new Kv}get client(){return this._client}set client(t){if(typeof t>"u")throw new Error("storeClient is not set");this._client=t}_afterConsume(t,e,n,i,o,s={}){let a=this._getRateLimiterRes(n,i,o);if(this.inMemoryBlockOnConsumed>0&&!(this.inMemoryBlockDuration>0)&&a.consumedPoints>=this.inMemoryBlockOnConsumed)return this._inMemoryBlockedKeys.addMs(n,a.msBeforeNext),a.consumedPoints>this.points?e(a):t(a);if(a.consumedPoints>this.points){let c=Promise.resolve();this.blockDuration>0&&a.consumedPoints<=this.points+i&&(a.msBeforeNext=this.msBlockDuration,c=this._block(n,a.consumedPoints,this.msBlockDuration,s)),this.inMemoryBlockOnConsumed>0&&a.consumedPoints>=this.inMemoryBlockOnConsumed&&(this._inMemoryBlockedKeys.add(n,this.inMemoryBlockDuration),a.msBeforeNext=this.msInMemoryBlockDuration),c.then(()=>{e(a)}).catch(l=>{e(l)})}else if(this.execEvenly&&a.msBeforeNext>0&&!a.isFirstInDuration){let c=Math.ceil(a.msBeforeNext/(a.remainingPoints+2));c<this.execEvenlyMinDelayMs&&(c=a.consumedPoints*this.execEvenlyMinDelayMs),setTimeout(t,c,a)}else t(a)}_handleError(t,e,n,i,o,s=!1,a={}){this.insuranceLimiter instanceof eu?this.insuranceLimiter[e](o,s,a).then(c=>{n(c)}).catch(c=>{i(c)}):i(t)}get _inmemoryBlockedKeys(){return this._inMemoryBlockedKeys}getInmemoryBlockMsBeforeExpire(t){return this.getInMemoryBlockMsBeforeExpire(t)}get inmemoryBlockOnConsumed(){return this.inMemoryBlockOnConsumed}set inmemoryBlockOnConsumed(t){this.inMemoryBlockOnConsumed=t}get inmemoryBlockDuration(){return this.inMemoryBlockDuration}set inmemoryBlockDuration(t){this.inMemoryBlockDuration=t}get msInmemoryBlockDuration(){return this.inMemoryBlockDuration*1e3}getInMemoryBlockMsBeforeExpire(t){return this.inMemoryBlockOnConsumed>0?this._inMemoryBlockedKeys.msBeforeExpire(t):0}get inMemoryBlockOnConsumed(){return this._inMemoryBlockOnConsumed}set inMemoryBlockOnConsumed(t){if(this._inMemoryBlockOnConsumed=t?parseInt(t):0,this.inMemoryBlockOnConsumed>0&&this.points>this.inMemoryBlockOnConsumed)throw new Error('inMemoryBlockOnConsumed option must be greater or equal "points" option')}get inMemoryBlockDuration(){return this._inMemoryBlockDuration}set inMemoryBlockDuration(t){if(this._inMemoryBlockDuration=t?parseInt(t):0,this.inMemoryBlockDuration>0&&this.inMemoryBlockOnConsumed===0)throw new Error("inMemoryBlockOnConsumed option must be set up")}get msInMemoryBlockDuration(){return this._inMemoryBlockDuration*1e3}get insuranceLimiter(){return this._insuranceLimiter}set insuranceLimiter(t){if(typeof t<"u"&&!(t instanceof eu))throw new Error("insuranceLimiter must be instance of RateLimiterAbstract");this._insuranceLimiter=t,this._insuranceLimiter&&(this._insuranceLimiter.blockDuration=this.blockDuration,this._insuranceLimiter.execEvenly=this.execEvenly)}block(t,e,n={}){let i=e*1e3;return this._block(this.getKey(t),this.points+1,i,n)}set(t,e,n,i={}){let o=(n>=0?n:this.duration)*1e3;return this._block(this.getKey(t),e,o,i)}consume(t,e=1,n={}){return new Promise((i,o)=>{let s=this.getKey(t),a=this.getInMemoryBlockMsBeforeExpire(s);if(a>0)return o(new R0(0,a));this._upsert(s,e,this._getKeySecDuration(n)*1e3,!1,n).then(c=>{this._afterConsume(i,o,s,e,c)}).catch(c=>{this._handleError(c,"consume",i,o,t,e,n)})})}penalty(t,e=1,n={}){let i=this.getKey(t);return new Promise((o,s)=>{this._upsert(i,e,this._getKeySecDuration(n)*1e3,!1,n).then(a=>{o(this._getRateLimiterRes(i,e,a))}).catch(a=>{this._handleError(a,"penalty",o,s,t,e,n)})})}reward(t,e=1,n={}){let i=this.getKey(t);return new Promise((o,s)=>{this._upsert(i,-e,this._getKeySecDuration(n)*1e3,!1,n).then(a=>{o(this._getRateLimiterRes(i,-e,a))}).catch(a=>{this._handleError(a,"reward",o,s,t,e,n)})})}get(t,e={}){let n=this.getKey(t);return new Promise((i,o)=>{this._get(n,e).then(s=>{i(s===null||typeof s>"u"?null:this._getRateLimiterRes(n,0,s))}).catch(s=>{this._handleError(s,"get",i,o,t,e)})})}delete(t,e={}){let n=this.getKey(t);return new Promise((i,o)=>{this._delete(n,e).then(s=>{this._inMemoryBlockedKeys.delete(n),i(s)}).catch(s=>{this._handleError(s,"delete",i,o,t,e)})})}deleteInMemoryBlockedAll(){this._inMemoryBlockedKeys.delete()}_getRateLimiterRes(t,e,n){throw new Error("You have to implement the method '_getRateLimiterRes'!")}_block(t,e,n,i={}){return new Promise((o,s)=>{this._upsert(t,e,n,!0,i).then(()=>{o(new R0(0,n>0?n:-1,e))}).catch(a=>{this._handleError(a,"block",o,s,this.parseKey(t),n/1e3,i)})})}_get(t,e={}){throw new Error("You have to implement the method '_get'!")}_delete(t,e={}){throw new Error("You have to implement the method '_delete'!")}_upsert(t,e,n,i=!1,o={}){throw new Error("You have to implement the method '_upsert'!")}}});var D0=T((l4,C0)=>{var Vv=Bi(),qv=Ae(),T0="redis.call('set', KEYS[1], 0, 'EX', ARGV[2], 'NX') local consumed = redis.call('incrby', KEYS[1], ARGV[1]) local ttl = redis.call('pttl', KEYS[1]) if ttl == -1 then redis.call('expire', KEYS[1], ARGV[2]) ttl = 1000 * ARGV[2] end return {consumed, ttl} ",ru=class extends Vv{constructor(t){super(t),t.redis?this.client=t.redis:this.client=t.storeClient,this._rejectIfRedisNotReady=!!t.rejectIfRedisNotReady,typeof this.client.defineCommand=="function"&&this.client.defineCommand("rlflxIncr",{numberOfKeys:1,lua:T0})}_isRedisReady(){return this._rejectIfRedisNotReady?!(this.client.status&&this.client.status!=="ready"||typeof this.client.isReady=="function"&&!this.client.isReady()):!0}_getRateLimiterRes(t,e,n){let[i,o]=n;Array.isArray(i)&&([,i]=i,[,o]=o);let s=new qv;return s.consumedPoints=parseInt(i),s.isFirstInDuration=s.consumedPoints===e,s.remainingPoints=Math.max(this.points-s.consumedPoints,0),s.msBeforeNext=o,s}_upsert(t,e,n,i=!1){return new Promise((o,s)=>{if(!this._isRedisReady())return s(new Error("Redis connection is not ready"));let a=Math.floor(n/1e3),c=this.client.multi();if(i)a>0?c.set(t,e,"EX",a):c.set(t,e),c.pttl(t).exec((l,u)=>l?s(l):o(u));else if(a>0){let l=function(u,f){return u?s(u):o(f)};typeof this.client.rlflxIncr=="function"?this.client.rlflxIncr(t,e,a,l):this.client.eval(T0,1,t,e,a,l)}else c.incrby(t,e).pttl(t).exec((l,u)=>l?s(l):o(u))})}_get(t){return new Promise((e,n)=>{if(!this._isRedisReady())return n(new Error("Redis connection is not ready"));this.client.multi().get(t).pttl(t).exec((i,o)=>{if(i)n(i);else{let[s]=o;if(s===null)return e(null);e(o)}})})}_delete(t){return new Promise((e,n)=>{this.client.del(t,(i,o)=>{i?n(i):e(o>0)})})}};C0.exports=ru});var B0=T((u4,L0)=>{var Hv=Bi(),$v=Ae();function P0(r){try{let t=r.client?r.client:r,{version:e}=t.topology.s.options.metadata.driver,n=e.split(".").map(i=>parseInt(i));return{major:n[0],feature:n[1],patch:n[2]}}catch{return{major:0,feature:0,patch:0}}}var Ao=class extends Hv{constructor(t){super(t),this.dbName=t.dbName,this.tableName=t.tableName,this.indexKeyPrefix=t.indexKeyPrefix,t.mongo?this.client=t.mongo:this.client=t.storeClient,typeof this.client.then=="function"?this.client.then(e=>{this.client=e,this._initCollection(),this._driverVersion=P0(this.client)}):(this._initCollection(),this._driverVersion=P0(this.client))}get dbName(){return this._dbName}set dbName(t){this._dbName=typeof t>"u"?Ao.getDbName():t}static getDbName(){return"node-rate-limiter-flexible"}get tableName(){return this._tableName}set tableName(t){this._tableName=typeof t>"u"?this.keyPrefix:t}get client(){return this._client}set client(t){if(typeof t>"u")throw new Error("mongo is not set");this._client=t}get indexKeyPrefix(){return this._indexKeyPrefix}set indexKeyPrefix(t){this._indexKeyPrefix=t||{}}_initCollection(){let e=(typeof this.client.db=="function"?this.client.db(this.dbName):this.client).collection(this.tableName);e.createIndex({expire:-1},{expireAfterSeconds:0}),e.createIndex(Object.assign({},this.indexKeyPrefix,{key:1}),{unique:!0}),this._collection=e}_getRateLimiterRes(t,e,n){let i=new $v,o;return typeof n.value>"u"?o=n:o=n.value,i.isFirstInDuration=o.points===e,i.consumedPoints=o.points,i.remainingPoints=Math.max(this.points-i.consumedPoints,0),i.msBeforeNext=o.expire!==null?Math.max(new Date(o.expire).getTime()-Date.now(),0):-1,i}_upsert(t,e,n,i=!1,o={}){if(!this._collection)return Promise.reject(Error("Mongo connection is not established"));let s=o.attrs||{},a,c;i?(a={key:t},a=Object.assign(a,s),c={$set:{key:t,points:e,expire:n>0?new Date(Date.now()+n):null}},c.$set=Object.assign(c.$set,s)):(a={$or:[{expire:{$gt:new Date}},{expire:{$eq:null}}],key:t},a=Object.assign(a,s),c={$setOnInsert:{key:t,expire:n>0?new Date(Date.now()+n):null},$inc:{points:e}},c.$setOnInsert=Object.assign(c.$setOnInsert,s));let l={upsert:!0};return this._driverVersion.major>=4||this._driverVersion.major===3&&this._driverVersion.feature>=7||this._driverVersion.feature>=6&&this._driverVersion.patch>=7?l.returnDocument="after":l.returnOriginal=!1,new Promise((u,f)=>{this._collection.findOneAndUpdate(a,c,l).then(d=>{u(d)}).catch(d=>{if(d&&d.code===11e3){let h=Object.assign({$or:[{expire:{$lte:new Date}},{expire:{$eq:null}}],key:t},s),p={$set:Object.assign({key:t,points:e,expire:n>0?new Date(Date.now()+n):null},s)};this._collection.findOneAndUpdate(h,p,l).then(m=>{u(m)}).catch(m=>{m&&m.code===11e3?this._upsert(t,e,n,i).then(y=>u(y)).catch(y=>f(y)):f(m)})}else f(d)})})}_get(t,e={}){if(!this._collection)return Promise.reject(Error("Mongo connection is not established"));let n=e.attrs||{},i=Object.assign({key:t,$or:[{expire:{$gt:new Date}},{expire:{$eq:null}}]},n);return this._collection.findOne(i)}_delete(t,e={}){if(!this._collection)return Promise.reject(Error("Mongo connection is not established"));let n=e.attrs||{},i=Object.assign({key:t},n);return this._collection.deleteOne(i).then(o=>o.deletedCount>0)}};L0.exports=Ao});var O0=T((f4,N0)=>{var zv=Bi(),Gv=Ae(),nu=class extends zv{constructor(t,e=null){super(t),this.client=t.storeClient,this.clientType=t.storeType,this.dbName=t.dbName,this.tableName=t.tableName,this.clearExpiredByTimeout=t.clearExpiredByTimeout,this.tableCreated=t.tableCreated,this.tableCreated?(this.clearExpiredByTimeout&&this._clearExpiredHourAgo(),typeof e=="function"&&e()):this._createDbAndTable().then(()=>{this.tableCreated=!0,this.clearExpiredByTimeout&&this._clearExpiredHourAgo(),typeof e=="function"&&e()}).catch(n=>{if(typeof e=="function")e(n);else throw n})}clearExpired(t){return new Promise(e=>{this._getConnection().then(n=>{n.query("DELETE FROM ??.?? WHERE expire < ?",[this.dbName,this.tableName,t],()=>{this._releaseConnection(n),e()})}).catch(()=>{e()})})}_clearExpiredHourAgo(){this._clearExpiredTimeoutId&&clearTimeout(this._clearExpiredTimeoutId),this._clearExpiredTimeoutId=setTimeout(()=>{this.clearExpired(Date.now()-36e5).then(()=>{this._clearExpiredHourAgo()})},3e5),this._clearExpiredTimeoutId.unref()}_getConnection(){switch(this.clientType){case"pool":return new Promise((t,e)=>{this.client.getConnection((n,i)=>{if(n)return e(n);t(i)})});case"sequelize":return this.client.connectionManager.getConnection();case"knex":return this.client.client.acquireConnection();default:return Promise.resolve(this.client)}}_releaseConnection(t){switch(this.clientType){case"pool":return t.release();case"sequelize":return this.client.connectionManager.releaseConnection(t);case"knex":return this.client.client.releaseConnection(t);default:return!0}}_createDbAndTable(){return new Promise((t,e)=>{this._getConnection().then(n=>{n.query(`CREATE DATABASE IF NOT EXISTS \`${this.dbName}\`;`,i=>{if(i)return this._releaseConnection(n),e(i);n.query(this._getCreateTableStmt(),o=>{if(o)return this._releaseConnection(n),e(o);this._releaseConnection(n),t()})})}).catch(n=>{e(n)})})}_getCreateTableStmt(){return`CREATE TABLE IF NOT EXISTS \`${this.dbName}\`.\`${this.tableName}\` (\`key\` VARCHAR(255) CHARACTER SET utf8 NOT NULL,\`points\` INT(9) NOT NULL default 0,\`expire\` BIGINT UNSIGNED,PRIMARY KEY (\`key\`)) ENGINE = INNODB;`}get clientType(){return this._clientType}set clientType(t){if(typeof t>"u")if(this.client.constructor.name==="Connection")t="connection";else if(this.client.constructor.name==="Pool")t="pool";else if(this.client.constructor.name==="Sequelize")t="sequelize";else throw new Error("storeType is not defined");this._clientType=t.toLowerCase()}get dbName(){return this._dbName}set dbName(t){this._dbName=typeof t>"u"?"rtlmtrflx":t}get tableName(){return this._tableName}set tableName(t){this._tableName=typeof t>"u"?this.keyPrefix:t}get tableCreated(){return this._tableCreated}set tableCreated(t){this._tableCreated=typeof t>"u"?!1:!!t}get clearExpiredByTimeout(){return this._clearExpiredByTimeout}set clearExpiredByTimeout(t){this._clearExpiredByTimeout=typeof t>"u"?!0:Boolean(t)}_getRateLimiterRes(t,e,n){let i=new Gv,[o]=n;return i.isFirstInDuration=e===o.points,i.consumedPoints=i.isFirstInDuration?e:o.points,i.remainingPoints=Math.max(this.points-i.consumedPoints,0),i.msBeforeNext=o.expire?Math.max(o.expire-Date.now(),0):-1,i}_upsertTransaction(t,e,n,i,o){return new Promise((s,a)=>{t.query("BEGIN",c=>{if(c)return t.rollback(),a(c);let l=Date.now(),u=i>0?l+i:null,f,d;o?(f=`INSERT INTO ??.?? VALUES (?, ?, ?)
3
3
  ON DUPLICATE KEY UPDATE
4
4
  points = ?,
5
5
  expire = ?;`,d=[this.dbName,this.tableName,e,n,u,n,u]):(f=`INSERT INTO ??.?? VALUES (?, ?, ?)
6
6
  ON DUPLICATE KEY UPDATE
7
7
  points = IF(expire <= ?, ?, points + (?)),
8
- expire = IF(expire <= ?, ?, expire);`,d=[this.dbName,this.tableName,e,n,u,l,n,n,l,u]),t.query(f,d,h=>{if(h)return t.rollback(),a(h);t.query("SELECT points, expire FROM ??.?? WHERE `key` = ?;",[this.dbName,this.tableName,e],(p,m)=>{if(p)return t.rollback(),a(p);t.query("COMMIT",y=>{if(y)return t.rollback(),a(y);s(m)})})})})})}_upsert(t,e,n,i=!1){return this.tableCreated?new Promise((o,s)=>{this._getConnection().then(a=>{this._upsertTransaction(a,t,e,n,i).then(c=>{o(c),this._releaseConnection(a)}).catch(c=>{s(c),this._releaseConnection(a)})}).catch(a=>{s(a)})}):Promise.reject(Error("Table is not created yet"))}_get(t){return this.tableCreated?new Promise((e,n)=>{this._getConnection().then(i=>{i.query("SELECT points, expire FROM ??.?? WHERE `key` = ? AND (`expire` > ? OR `expire` IS NULL)",[this.dbName,this.tableName,t,Date.now()],(o,s)=>{o?n(o):s.length===0?e(null):e(s),this._releaseConnection(i)})}).catch(i=>{n(i)})}):Promise.reject(Error("Table is not created yet"))}_delete(t){return this.tableCreated?new Promise((e,n)=>{this._getConnection().then(i=>{i.query("DELETE FROM ??.?? WHERE `key` = ?",[this.dbName,this.tableName,t],(o,s)=>{o?n(o):e(s.affectedRows>0),this._releaseConnection(i)})}).catch(i=>{n(i)})}):Promise.reject(Error("Table is not created yet"))}};F0.exports=ou});var q0=T((g4,V0)=>{var Jv=Li(),jv=Ae(),su=class extends Jv{constructor(t,e=null){super(t),this.client=t.storeClient,this.clientType=t.storeType,this.tableName=t.tableName,this.clearExpiredByTimeout=t.clearExpiredByTimeout,this.tableCreated=t.tableCreated,this.tableCreated?typeof e=="function"&&e():this._createTable().then(()=>{this.tableCreated=!0,this.clearExpiredByTimeout&&this._clearExpiredHourAgo(),typeof e=="function"&&e()}).catch(n=>{if(typeof e=="function")e(n);else throw n})}clearExpired(t){return new Promise(e=>{let n={name:"rlflx-clear-expired",text:`DELETE FROM ${this.tableName} WHERE expire < $1`,values:[t]};this._query(n).then(()=>{e()}).catch(()=>{e()})})}_clearExpiredHourAgo(){this._clearExpiredTimeoutId&&clearTimeout(this._clearExpiredTimeoutId),this._clearExpiredTimeoutId=setTimeout(()=>{this.clearExpired(Date.now()-36e5).then(()=>{this._clearExpiredHourAgo()})},3e5),this._clearExpiredTimeoutId.unref()}_getConnection(){switch(this.clientType){case"pool":return Promise.resolve(this.client);case"sequelize":return this.client.connectionManager.getConnection();case"knex":return this.client.client.acquireConnection();case"typeorm":return Promise.resolve(this.client.driver.master);default:return Promise.resolve(this.client)}}_releaseConnection(t){switch(this.clientType){case"pool":return!0;case"sequelize":return this.client.connectionManager.releaseConnection(t);case"knex":return this.client.client.releaseConnection(t);case"typeorm":return!0;default:return!0}}_createTable(){return new Promise((t,e)=>{this._query({text:this._getCreateTableStmt()}).then(()=>{t()}).catch(n=>{n.code==="23505"?t():e(n)})})}_getCreateTableStmt(){return`CREATE TABLE IF NOT EXISTS ${this.tableName} (
8
+ expire = IF(expire <= ?, ?, expire);`,d=[this.dbName,this.tableName,e,n,u,l,n,n,l,u]),t.query(f,d,h=>{if(h)return t.rollback(),a(h);t.query("SELECT points, expire FROM ??.?? WHERE `key` = ?;",[this.dbName,this.tableName,e],(p,m)=>{if(p)return t.rollback(),a(p);t.query("COMMIT",y=>{if(y)return t.rollback(),a(y);s(m)})})})})})}_upsert(t,e,n,i=!1){return this.tableCreated?new Promise((o,s)=>{this._getConnection().then(a=>{this._upsertTransaction(a,t,e,n,i).then(c=>{o(c),this._releaseConnection(a)}).catch(c=>{s(c),this._releaseConnection(a)})}).catch(a=>{s(a)})}):Promise.reject(Error("Table is not created yet"))}_get(t){return this.tableCreated?new Promise((e,n)=>{this._getConnection().then(i=>{i.query("SELECT points, expire FROM ??.?? WHERE `key` = ? AND (`expire` > ? OR `expire` IS NULL)",[this.dbName,this.tableName,t,Date.now()],(o,s)=>{o?n(o):s.length===0?e(null):e(s),this._releaseConnection(i)})}).catch(i=>{n(i)})}):Promise.reject(Error("Table is not created yet"))}_delete(t){return this.tableCreated?new Promise((e,n)=>{this._getConnection().then(i=>{i.query("DELETE FROM ??.?? WHERE `key` = ?",[this.dbName,this.tableName,t],(o,s)=>{o?n(o):e(s.affectedRows>0),this._releaseConnection(i)})}).catch(i=>{n(i)})}):Promise.reject(Error("Table is not created yet"))}};N0.exports=nu});var M0=T((h4,k0)=>{var Yv=Bi(),Wv=Ae(),iu=class extends Yv{constructor(t,e=null){super(t),this.client=t.storeClient,this.clientType=t.storeType,this.tableName=t.tableName,this.clearExpiredByTimeout=t.clearExpiredByTimeout,this.tableCreated=t.tableCreated,this.tableCreated?typeof e=="function"&&e():this._createTable().then(()=>{this.tableCreated=!0,this.clearExpiredByTimeout&&this._clearExpiredHourAgo(),typeof e=="function"&&e()}).catch(n=>{if(typeof e=="function")e(n);else throw n})}clearExpired(t){return new Promise(e=>{let n={name:"rlflx-clear-expired",text:`DELETE FROM ${this.tableName} WHERE expire < $1`,values:[t]};this._query(n).then(()=>{e()}).catch(()=>{e()})})}_clearExpiredHourAgo(){this._clearExpiredTimeoutId&&clearTimeout(this._clearExpiredTimeoutId),this._clearExpiredTimeoutId=setTimeout(()=>{this.clearExpired(Date.now()-36e5).then(()=>{this._clearExpiredHourAgo()})},3e5),this._clearExpiredTimeoutId.unref()}_getConnection(){switch(this.clientType){case"pool":return Promise.resolve(this.client);case"sequelize":return this.client.connectionManager.getConnection();case"knex":return this.client.client.acquireConnection();case"typeorm":return Promise.resolve(this.client.driver.master);default:return Promise.resolve(this.client)}}_releaseConnection(t){switch(this.clientType){case"pool":return!0;case"sequelize":return this.client.connectionManager.releaseConnection(t);case"knex":return this.client.client.releaseConnection(t);case"typeorm":return!0;default:return!0}}_createTable(){return new Promise((t,e)=>{this._query({text:this._getCreateTableStmt()}).then(()=>{t()}).catch(n=>{n.code==="23505"?t():e(n)})})}_getCreateTableStmt(){return`CREATE TABLE IF NOT EXISTS ${this.tableName} (
9
9
  key varchar(255) PRIMARY KEY,
10
10
  points integer NOT NULL DEFAULT 0,
11
11
  expire bigint
12
- );`}get clientType(){return this._clientType}set clientType(t){let e=this.client.constructor.name;if(typeof t>"u")if(e==="Client")t="client";else if(e==="Pool"||e==="BoundPool")t="pool";else if(e==="Sequelize")t="sequelize";else throw new Error("storeType is not defined");this._clientType=t.toLowerCase()}get tableName(){return this._tableName}set tableName(t){this._tableName=typeof t>"u"?this.keyPrefix:t}get tableCreated(){return this._tableCreated}set tableCreated(t){this._tableCreated=typeof t>"u"?!1:!!t}get clearExpiredByTimeout(){return this._clearExpiredByTimeout}set clearExpiredByTimeout(t){this._clearExpiredByTimeout=typeof t>"u"?!0:Boolean(t)}_getRateLimiterRes(t,e,n){let i=new jv,o=n.rows[0];return i.isFirstInDuration=e===o.points,i.consumedPoints=i.isFirstInDuration?e:o.points,i.remainingPoints=Math.max(this.points-i.consumedPoints,0),i.msBeforeNext=o.expire?Math.max(o.expire-Date.now(),0):-1,i}_query(t){let n={name:`${this.tableName.toLowerCase()}:${t.name}`,text:t.text,values:t.values};return new Promise((i,o)=>{this._getConnection().then(s=>{s.query(n).then(a=>{i(a),this._releaseConnection(s)}).catch(a=>{o(a),this._releaseConnection(s)})}).catch(s=>{o(s)})})}_upsert(t,e,n,i=!1){if(!this.tableCreated)return Promise.reject(Error("Table is not created yet"));let o=n>0?Date.now()+n:null,s=i?" $3 ":` CASE
12
+ );`}get clientType(){return this._clientType}set clientType(t){let e=this.client.constructor.name;if(typeof t>"u")if(e==="Client")t="client";else if(e==="Pool"||e==="BoundPool")t="pool";else if(e==="Sequelize")t="sequelize";else throw new Error("storeType is not defined");this._clientType=t.toLowerCase()}get tableName(){return this._tableName}set tableName(t){this._tableName=typeof t>"u"?this.keyPrefix:t}get tableCreated(){return this._tableCreated}set tableCreated(t){this._tableCreated=typeof t>"u"?!1:!!t}get clearExpiredByTimeout(){return this._clearExpiredByTimeout}set clearExpiredByTimeout(t){this._clearExpiredByTimeout=typeof t>"u"?!0:Boolean(t)}_getRateLimiterRes(t,e,n){let i=new Wv,o=n.rows[0];return i.isFirstInDuration=e===o.points,i.consumedPoints=i.isFirstInDuration?e:o.points,i.remainingPoints=Math.max(this.points-i.consumedPoints,0),i.msBeforeNext=o.expire?Math.max(o.expire-Date.now(),0):-1,i}_query(t){let n={name:`${this.tableName.toLowerCase()}:${t.name}`,text:t.text,values:t.values};return new Promise((i,o)=>{this._getConnection().then(s=>{s.query(n).then(a=>{i(a),this._releaseConnection(s)}).catch(a=>{o(a),this._releaseConnection(s)})}).catch(s=>{o(s)})})}_upsert(t,e,n,i=!1){if(!this.tableCreated)return Promise.reject(Error("Table is not created yet"));let o=n>0?Date.now()+n:null,s=i?" $3 ":` CASE
13
13
  WHEN ${this.tableName}.expire <= $4 THEN $3
14
14
  ELSE ${this.tableName}.expire
15
15
  END `;return this._query({name:i?"rlflx-upsert-force":"rlflx-upsert",text:`
@@ -21,20 +21,20 @@
21
21
  END,
22
22
  expire = ${s}
23
23
  RETURNING points, expire;`,values:[t,e,o,Date.now()]})}_get(t){return this.tableCreated?new Promise((e,n)=>{this._query({name:"rlflx-get",text:`
24
- SELECT points, expire FROM ${this.tableName} WHERE key = $1 AND (expire > $2 OR expire IS NULL);`,values:[t,Date.now()]}).then(i=>{i.rowCount===0&&(i=null),e(i)}).catch(i=>{n(i)})}):Promise.reject(Error("Table is not created yet"))}_delete(t){return this.tableCreated?this._query({name:"rlflx-delete",text:`DELETE FROM ${this.tableName} WHERE key = $1`,values:[t]}).then(e=>e.rowCount>0):Promise.reject(Error("Table is not created yet"))}};V0.exports=su});var H0=T(()=>{});var Vn=T(()=>{});var z0=T((_4,$0)=>{$0.exports=class{constructor(t,e,n=null){this.value=t,this.expiresAt=e,this.timeoutId=n}get value(){return this._value}set value(t){this._value=parseInt(t)}get expiresAt(){return this._expiresAt}set expiresAt(t){!(t instanceof Date)&&Number.isInteger(t)&&(t=new Date(t)),this._expiresAt=t}get timeoutId(){return this._timeoutId}set timeoutId(t){this._timeoutId=t}}});var Y0=T((A4,G0)=>{var t2=z0(),au=Ae();G0.exports=class{constructor(){this._storage={}}incrby(t,e,n){if(this._storage[t]){let i=this._storage[t].expiresAt?this._storage[t].expiresAt.getTime()-new Date().getTime():-1;return i!==0?(this._storage[t].value=this._storage[t].value+e,new au(0,i,this._storage[t].value,!1)):this.set(t,e,n)}return this.set(t,e,n)}set(t,e,n){let i=n*1e3;return this._storage[t]&&this._storage[t].timeoutId&&clearTimeout(this._storage[t].timeoutId),this._storage[t]=new t2(e,i>0?new Date(Date.now()+i):null),i>0&&(this._storage[t].timeoutId=setTimeout(()=>{delete this._storage[t]},i),this._storage[t].timeoutId.unref&&this._storage[t].timeoutId.unref()),new au(0,i===0?-1:i,this._storage[t].value,!0)}get(t){if(this._storage[t]){let e=this._storage[t].expiresAt?this._storage[t].expiresAt.getTime()-new Date().getTime():-1;return new au(0,e,this._storage[t].value,!1)}return null}delete(t){return this._storage[t]?(this._storage[t].timeoutId&&clearTimeout(this._storage[t].timeoutId),delete this._storage[t],!0):!1}}});var lu=T((R4,Q0)=>{var e2=_o(),r2=Y0(),W0=Ae(),cu=class extends e2{constructor(t={}){super(t),this._memoryStorage=new r2}consume(t,e=1,n={}){return new Promise((i,o)=>{let s=this.getKey(t),a=this._getKeySecDuration(n),c=this._memoryStorage.incrby(s,e,a);if(c.remainingPoints=Math.max(this.points-c.consumedPoints,0),c.consumedPoints>this.points)this.blockDuration>0&&c.consumedPoints<=this.points+e&&(c=this._memoryStorage.set(s,c.consumedPoints,this.blockDuration)),o(c);else if(this.execEvenly&&c.msBeforeNext>0&&!c.isFirstInDuration){let l=Math.ceil(c.msBeforeNext/(c.remainingPoints+2));l<this.execEvenlyMinDelayMs&&(l=c.consumedPoints*this.execEvenlyMinDelayMs),setTimeout(i,l,c)}else i(c)})}penalty(t,e=1,n={}){let i=this.getKey(t);return new Promise(o=>{let s=this._getKeySecDuration(n),a=this._memoryStorage.incrby(i,e,s);a.remainingPoints=Math.max(this.points-a.consumedPoints,0),o(a)})}reward(t,e=1,n={}){let i=this.getKey(t);return new Promise(o=>{let s=this._getKeySecDuration(n),a=this._memoryStorage.incrby(i,-e,s);a.remainingPoints=Math.max(this.points-a.consumedPoints,0),o(a)})}block(t,e){let n=e*1e3,i=this.points+1;return this._memoryStorage.set(this.getKey(t),i,e),Promise.resolve(new W0(0,n===0?-1:n,i))}set(t,e,n){let i=(n>=0?n:this.duration)*1e3;return this._memoryStorage.set(this.getKey(t),e,n),Promise.resolve(new W0(0,i===0?-1:i,e))}get(t){let e=this._memoryStorage.get(this.getKey(t));return e!==null&&(e.remainingPoints=Math.max(this.points-e.consumedPoints,0)),Promise.resolve(e)}delete(t){return Promise.resolve(this._memoryStorage.delete(this.getKey(t)))}};Q0.exports=cu});var rp=T((I4,ep)=>{var X0=H0(),n2=Vn(),i2=_o(),J0=lu(),o2=Ae(),Oe="rate_limiter_flexible",Oi=null,Z0=function(r,t,e,n){let i;n===null||n===!0||n===!1?i=n:i={remainingPoints:n.remainingPoints,msBeforeNext:n.msBeforeNext,consumedPoints:n.consumedPoints,isFirstInDuration:n.isFirstInDuration},r.send({channel:Oe,keyPrefix:t.keyPrefix,promiseId:t.promiseId,type:e,data:i})},j0=function(r){setTimeout(()=>{this._initiated?process.send(r):typeof this._promises[r.promiseId]<"u"&&j0.call(this,r)},30)},Bi=function(r,t,e,n,i){let o={channel:Oe,keyPrefix:this.keyPrefix,func:r,promiseId:t,data:{key:e,arg:n,opts:i}};this._initiated?process.send(o):j0.call(this,o)},tp=function(r,t){if(!t||t.channel!==Oe||typeof this._rateLimiters[t.keyPrefix]>"u")return!1;let e;switch(t.func){case"consume":e=this._rateLimiters[t.keyPrefix].consume(t.data.key,t.data.arg,t.data.opts);break;case"penalty":e=this._rateLimiters[t.keyPrefix].penalty(t.data.key,t.data.arg,t.data.opts);break;case"reward":e=this._rateLimiters[t.keyPrefix].reward(t.data.key,t.data.arg,t.data.opts);break;case"block":e=this._rateLimiters[t.keyPrefix].block(t.data.key,t.data.arg,t.data.opts);break;case"get":e=this._rateLimiters[t.keyPrefix].get(t.data.key,t.data.opts);break;case"delete":e=this._rateLimiters[t.keyPrefix].delete(t.data.key,t.data.opts);break;default:return!1}e&&e.then(n=>{Z0(r,t,"resolve",n)}).catch(n=>{Z0(r,t,"reject",n)})},s2=function(r){if(!r||r.channel!==Oe||r.keyPrefix!==this.keyPrefix)return!1;if(this._promises[r.promiseId]){clearTimeout(this._promises[r.promiseId].timeoutId);let t;switch(r.data===null||r.data===!0||r.data===!1?t=r.data:t=new o2(r.data.remainingPoints,r.data.msBeforeNext,r.data.consumedPoints,r.data.isFirstInDuration),r.type){case"resolve":this._promises[r.promiseId].resolve(t);break;case"reject":this._promises[r.promiseId].reject(t);break;default:throw new Error(`RateLimiterCluster: no such message type '${r.type}'`)}delete this._promises[r.promiseId]}},a2=function(){return{points:this.points,duration:this.duration,blockDuration:this.blockDuration,execEvenly:this.execEvenly,execEvenlyMinDelayMs:this.execEvenlyMinDelayMs,keyPrefix:this.keyPrefix}},Ni=function(r,t){let e=process.hrtime(),n=e[0].toString()+e[1].toString();return typeof this._promises[n]<"u"&&(n+=n2.randomBytes(12).toString("base64")),this._promises[n]={resolve:r,reject:t,timeoutId:setTimeout(()=>{delete this._promises[n],t(new Error("RateLimiterCluster timeout: no answer from master in time"))},this.timeoutMs)},n},uu=class{constructor(){if(Oi)return Oi;this._rateLimiters={},X0.setMaxListeners(0),X0.on("message",(t,e)=>{e&&e.channel===Oe&&e.type==="init"?(typeof this._rateLimiters[e.opts.keyPrefix]>"u"&&(this._rateLimiters[e.opts.keyPrefix]=new J0(e.opts)),t.send({channel:Oe,type:"init",keyPrefix:e.opts.keyPrefix})):tp.call(this,t,e)}),Oi=this}},fu=class{constructor(t){if(Oi)return Oi;this._rateLimiters={},t.launchBus((e,n)=>{n.on("process:msg",i=>{let o=i.raw;if(o&&o.channel===Oe&&o.type==="init")typeof this._rateLimiters[o.opts.keyPrefix]>"u"&&(this._rateLimiters[o.opts.keyPrefix]=new J0(o.opts)),t.sendDataToProcessId(i.process.pm_id,{data:{},topic:Oe,channel:Oe,type:"init",keyPrefix:o.opts.keyPrefix},(s,a)=>{s&&console.log(s,a)});else{let s={send:a=>{let c=a;c.topic=Oe,typeof c.data>"u"&&(c.data={}),t.sendDataToProcessId(i.process.pm_id,c,(l,u)=>{l&&console.log(l,u)})}};tp.call(this,s,o)}})}),Oi=this}},hu=class extends i2{get timeoutMs(){return this._timeoutMs}set timeoutMs(t){this._timeoutMs=typeof t>"u"?5e3:Math.abs(parseInt(t))}constructor(t={}){super(t),process.setMaxListeners(0),this.timeoutMs=t.timeoutMs,this._initiated=!1,process.on("message",e=>{e&&e.channel===Oe&&e.type==="init"&&e.keyPrefix===this.keyPrefix?this._initiated=!0:s2.call(this,e)}),process.send({channel:Oe,type:"init",opts:a2.call(this)}),this._promises={}}consume(t,e=1,n={}){return new Promise((i,o)=>{let s=Ni.call(this,i,o);Bi.call(this,"consume",s,t,e,n)})}penalty(t,e=1,n={}){return new Promise((i,o)=>{let s=Ni.call(this,i,o);Bi.call(this,"penalty",s,t,e,n)})}reward(t,e=1,n={}){return new Promise((i,o)=>{let s=Ni.call(this,i,o);Bi.call(this,"reward",s,t,e,n)})}block(t,e,n={}){return new Promise((i,o)=>{let s=Ni.call(this,i,o);Bi.call(this,"block",s,t,e,n)})}get(t,e={}){return new Promise((n,i)=>{let o=Ni.call(this,n,i);Bi.call(this,"get",o,t,e)})}delete(t,e={}){return new Promise((n,i)=>{let o=Ni.call(this,n,i);Bi.call(this,"delete",o,t,e)})}};ep.exports={RateLimiterClusterMaster:uu,RateLimiterClusterMasterPM2:fu,RateLimiterCluster:hu}});var ip=T((T4,np)=>{var c2=Li(),l2=Ae(),du=class extends c2{constructor(t){super(t),this.client=t.storeClient}_getRateLimiterRes(t,e,n){let i=new l2;return i.consumedPoints=parseInt(n.consumedPoints),i.isFirstInDuration=n.consumedPoints===e,i.remainingPoints=Math.max(this.points-i.consumedPoints,0),i.msBeforeNext=n.msBeforeNext,i}_upsert(t,e,n,i=!1,o={}){return new Promise((s,a)=>{let c=Date.now(),l=Math.floor(n/1e3);i?this.client.set(t,e,l,u=>{u?a(u):this.client.set(`${t}_expire`,l>0?c+l*1e3:-1,l,()=>{let f={consumedPoints:e,msBeforeNext:l>0?l*1e3:-1};s(f)})}):this.client.incr(t,e,(u,f)=>{u||f===!1?this.client.add(t,e,l,(d,h)=>{if(d||!h)if(typeof o.attemptNumber>"u"||o.attemptNumber<3){let p=Object.assign({},o);p.attemptNumber=p.attemptNumber?p.attemptNumber+1:1,this._upsert(t,e,n,i,p).then(m=>s(m)).catch(m=>a(m))}else a(new Error("Can not add key"));else this.client.add(`${t}_expire`,l>0?c+l*1e3:-1,l,()=>{let p={consumedPoints:e,msBeforeNext:l>0?l*1e3:-1};s(p)})}):this.client.get(`${t}_expire`,(d,h)=>{if(d)a(d);else{let p=h===!1?0:h,m={consumedPoints:f,msBeforeNext:p>=0?Math.max(p-c,0):-1};s(m)}})})})}_get(t){return new Promise((e,n)=>{let i=Date.now();this.client.get(t,(o,s)=>{s?this.client.get(`${t}_expire`,(a,c)=>{if(a)n(a);else{let l=c===!1?0:c,u={consumedPoints:s,msBeforeNext:l>=0?Math.max(l-i,0):-1};e(u)}}):e(null)})})}_delete(t){return new Promise((e,n)=>{this.client.del(t,(i,o)=>{i?n(i):o===!1?e(o):this.client.del(`${t}_expire`,s=>{s?n(s):e(o)})})})}};np.exports=du});var ap=T((D4,sp)=>{var op=Ae();sp.exports=class{constructor(t={}){this.limiter=t.limiter,this.blackList=t.blackList,this.whiteList=t.whiteList,this.isBlackListed=t.isBlackListed,this.isWhiteListed=t.isWhiteListed,this.runActionAnyway=t.runActionAnyway}get limiter(){return this._limiter}set limiter(t){if(typeof t>"u")throw new Error("limiter is not set");this._limiter=t}get runActionAnyway(){return this._runActionAnyway}set runActionAnyway(t){this._runActionAnyway=typeof t>"u"?!1:t}get blackList(){return this._blackList}set blackList(t){this._blackList=Array.isArray(t)?t:[]}get isBlackListed(){return this._isBlackListed}set isBlackListed(t){if(typeof t>"u"&&(t=()=>!1),typeof t!="function")throw new Error("isBlackListed must be function");this._isBlackListed=t}get whiteList(){return this._whiteList}set whiteList(t){this._whiteList=Array.isArray(t)?t:[]}get isWhiteListed(){return this._isWhiteListed}set isWhiteListed(t){if(typeof t>"u"&&(t=()=>!1),typeof t!="function")throw new Error("isWhiteListed must be function");this._isWhiteListed=t}isBlackListedSomewhere(t){return this.blackList.indexOf(t)>=0||this.isBlackListed(t)}isWhiteListedSomewhere(t){return this.whiteList.indexOf(t)>=0||this.isWhiteListed(t)}getBlackRes(){return new op(0,Number.MAX_SAFE_INTEGER,0,!1)}getWhiteRes(){return new op(Number.MAX_SAFE_INTEGER,0,0,!1)}rejectBlack(){return Promise.reject(this.getBlackRes())}resolveBlack(){return Promise.resolve(this.getBlackRes())}resolveWhite(){return Promise.resolve(this.getWhiteRes())}consume(t,e=1){let n;return this.isWhiteListedSomewhere(t)?n=this.resolveWhite():this.isBlackListedSomewhere(t)&&(n=this.rejectBlack()),typeof n>"u"?this.limiter.consume(t,e):(this.runActionAnyway&&this.limiter.consume(t,e).catch(()=>{}),n)}block(t,e){let n;return this.isWhiteListedSomewhere(t)?n=this.resolveWhite():this.isBlackListedSomewhere(t)&&(n=this.resolveBlack()),typeof n>"u"?this.limiter.block(t,e):(this.runActionAnyway&&this.limiter.block(t,e).catch(()=>{}),n)}penalty(t,e){let n;return this.isWhiteListedSomewhere(t)?n=this.resolveWhite():this.isBlackListedSomewhere(t)&&(n=this.resolveBlack()),typeof n>"u"?this.limiter.penalty(t,e):(this.runActionAnyway&&this.limiter.penalty(t,e).catch(()=>{}),n)}reward(t,e){let n;return this.isWhiteListedSomewhere(t)?n=this.resolveWhite():this.isBlackListedSomewhere(t)&&(n=this.resolveBlack()),typeof n>"u"?this.limiter.reward(t,e):(this.runActionAnyway&&this.limiter.reward(t,e).catch(()=>{}),n)}get(t){let e;return this.isWhiteListedSomewhere(t)?e=this.resolveWhite():this.isBlackListedSomewhere(t)&&(e=this.resolveBlack()),typeof e>"u"||this.runActionAnyway?this.limiter.get(t):e}delete(t){return this.limiter.delete(t)}}});var lp=T((L4,cp)=>{var u2=_o();cp.exports=class{constructor(...t){if(t.length<1)throw new Error("RateLimiterUnion: at least one limiter have to be passed");t.forEach(e=>{if(!(e instanceof u2))throw new Error("RateLimiterUnion: all limiters have to be instance of RateLimiterAbstract")}),this._limiters=t}consume(t,e=1){return new Promise((n,i)=>{let o=[];this._limiters.forEach(s=>{o.push(s.consume(t,e).catch(a=>({rejected:!0,rej:a})))}),Promise.all(o).then(s=>{let a={},c=!1;s.forEach(l=>{l.rejected===!0&&(c=!0)});for(let l=0;l<s.length;l++)c&&s[l].rejected===!0?a[this._limiters[l].keyPrefix]=s[l].rej:c||(a[this._limiters[l].keyPrefix]=s[l]);c?i(a):n(a)})})}}});var fp=T((N4,up)=>{up.exports=class extends Error{constructor(t,e){super(),Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor),this.name="CustomError",this.message=t,e&&(this.extra=e)}}});var mp=T((k4,pp)=>{var hp=fp(),dp=4294967295,pu="limiter";pp.exports=class{constructor(t,e={maxQueueSize:dp}){this._queueLimiters={KEY_DEFAULT:new la(t,e)},this._limiterFlexible=t,this._maxQueueSize=e.maxQueueSize}getTokensRemaining(t=pu){return this._queueLimiters[t]?this._queueLimiters[t].getTokensRemaining():Promise.resolve(this._limiterFlexible.points)}removeTokens(t,e=pu){return this._queueLimiters[e]||(this._queueLimiters[e]=new la(this._limiterFlexible,{key:e,maxQueueSize:this._maxQueueSize})),this._queueLimiters[e].removeTokens(t)}};var la=class{constructor(t,e={maxQueueSize:dp,key:pu}){this._key=e.key,this._waitTimeout=null,this._queue=[],this._limiterFlexible=t,this._maxQueueSize=e.maxQueueSize}getTokensRemaining(){return this._limiterFlexible.get(this._key).then(t=>t!==null?t.remainingPoints:this._limiterFlexible.points)}removeTokens(t){let e=this;return new Promise((n,i)=>{if(t>e._limiterFlexible.points){i(new hp(`Requested tokens ${t} exceeds maximum ${e._limiterFlexible.points} tokens per interval`));return}e._queue.length>0?e._queueRequest.call(e,n,i,t):e._limiterFlexible.consume(e._key,t).then(o=>{n(o.remainingPoints)}).catch(o=>{o instanceof Error?i(o):(e._queueRequest.call(e,n,i,t),e._waitTimeout===null&&(e._waitTimeout=setTimeout(e._processFIFO.bind(e),o.msBeforeNext)))})})}_queueRequest(t,e,n){let i=this;i._queue.length<i._maxQueueSize?i._queue.push({resolve:t,reject:e,tokens:n}):e(new hp(`Number of requests reached it's maximum ${i._maxQueueSize}`))}_processFIFO(){let t=this;if(t._waitTimeout!==null&&(clearTimeout(t._waitTimeout),t._waitTimeout=null),t._queue.length===0)return;let e=t._queue.shift();t._limiterFlexible.consume(t._key,e.tokens).then(n=>{e.resolve(n.remainingPoints),t._processFIFO.call(t)}).catch(n=>{n instanceof Error?(e.reject(n),t._processFIFO.call(t)):(t._queue.unshift(e),t._waitTimeout===null&&(t._waitTimeout=setTimeout(t._processFIFO.bind(t),n.msBeforeNext)))})}}});var gp=T((U4,yp)=>{var mu=Ae();yp.exports=class{constructor(t,e){this._rateLimiter=t,this._burstLimiter=e}_combineRes(t,e){return new mu(t.remainingPoints,Math.min(t.msBeforeNext,e.msBeforeNext),t.consumedPoints,t.isFirstInDuration)}consume(t,e=1,n={}){return this._rateLimiter.consume(t,e,n).catch(i=>i instanceof mu?this._burstLimiter.consume(t,e,n).then(o=>Promise.resolve(this._combineRes(i,o))).catch(o=>o instanceof mu?Promise.reject(this._combineRes(i,o)):Promise.reject(o)):Promise.reject(i))}get(t){return Promise.all([this._rateLimiter.get(t),this._burstLimiter.get(t)]).then(([e,n])=>this._combineRes(e,n))}get points(){return this._rateLimiter.points}}});var Ep=T((F4,wp)=>{var f2=O0(),h2=U0(),d2=K0(),p2=q0(),{RateLimiterClusterMaster:m2,RateLimiterClusterMasterPM2:y2,RateLimiterCluster:g2}=rp(),w2=lu(),E2=ip(),x2=ap(),v2=lp(),b2=mp(),_2=gp(),S2=Ae();wp.exports={RateLimiterRedis:f2,RateLimiterMongo:h2,RateLimiterMySQL:d2,RateLimiterPostgres:p2,RateLimiterMemory:w2,RateLimiterMemcache:E2,RateLimiterClusterMaster:m2,RateLimiterClusterMasterPM2:y2,RateLimiterCluster:g2,RLWrapperBlackAndWhite:x2,RateLimiterUnion:v2,RateLimiterQueue:b2,BurstyRateLimiter:_2,RateLimiterRes:S2}});var Cp=T((lD,Tp)=>{"use strict";Tp.exports=N2;function N2(r,t){for(var e=new Array(arguments.length-1),n=0,i=2,o=!0;i<arguments.length;)e[n++]=arguments[i++];return new Promise(function(a,c){e[n]=function(u){if(o)if(o=!1,u)c(u);else{for(var f=new Array(arguments.length-1),d=0;d<f.length;)f[d++]=arguments[d];a.apply(null,f)}};try{r.apply(t||null,e)}catch(l){o&&(o=!1,c(l))}})}});var Bp=T(Lp=>{"use strict";var ya=Lp;ya.length=function(t){var e=t.length;if(!e)return 0;for(var n=0;--e%4>1&&t.charAt(e)==="=";)++n;return Math.ceil(t.length*3)/4-n};var Mi=new Array(64),Pp=new Array(123);for(We=0;We<64;)Pp[Mi[We]=We<26?We+65:We<52?We+71:We<62?We-4:We-59|43]=We++;var We;ya.encode=function(t,e,n){for(var i=null,o=[],s=0,a=0,c;e<n;){var l=t[e++];switch(a){case 0:o[s++]=Mi[l>>2],c=(l&3)<<4,a=1;break;case 1:o[s++]=Mi[c|l>>4],c=(l&15)<<2,a=2;break;case 2:o[s++]=Mi[c|l>>6],o[s++]=Mi[l&63],a=0;break}s>8191&&((i||(i=[])).push(String.fromCharCode.apply(String,o)),s=0)}return a&&(o[s++]=Mi[c],o[s++]=61,a===1&&(o[s++]=61)),i?(s&&i.push(String.fromCharCode.apply(String,o.slice(0,s))),i.join("")):String.fromCharCode.apply(String,o.slice(0,s))};var Dp="invalid encoding";ya.decode=function(t,e,n){for(var i=n,o=0,s,a=0;a<t.length;){var c=t.charCodeAt(a++);if(c===61&&o>1)break;if((c=Pp[c])===void 0)throw Error(Dp);switch(o){case 0:s=c,o=1;break;case 1:e[n++]=s<<2|(c&48)>>4,s=c,o=2;break;case 2:e[n++]=(s&15)<<4|(c&60)>>2,s=c,o=3;break;case 3:e[n++]=(s&3)<<6|c,o=0;break}}if(o===1)throw Error(Dp);return n-i};ya.test=function(t){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(t)}});var Op=T((fD,Np)=>{"use strict";Np.exports=ga;function ga(){this._listeners={}}ga.prototype.on=function(t,e,n){return(this._listeners[t]||(this._listeners[t]=[])).push({fn:e,ctx:n||this}),this};ga.prototype.off=function(t,e){if(t===void 0)this._listeners={};else if(e===void 0)this._listeners[t]=[];else for(var n=this._listeners[t],i=0;i<n.length;)n[i].fn===e?n.splice(i,1):++i;return this};ga.prototype.emit=function(t){var e=this._listeners[t];if(e){for(var n=[],i=1;i<arguments.length;)n.push(arguments[i++]);for(i=0;i<e.length;)e[i].fn.apply(e[i++].ctx,n)}return this}});var qp=T((hD,Vp)=>{"use strict";Vp.exports=kp(kp);function kp(r){return typeof Float32Array<"u"?function(){var t=new Float32Array([-0]),e=new Uint8Array(t.buffer),n=e[3]===128;function i(c,l,u){t[0]=c,l[u]=e[0],l[u+1]=e[1],l[u+2]=e[2],l[u+3]=e[3]}function o(c,l,u){t[0]=c,l[u]=e[3],l[u+1]=e[2],l[u+2]=e[1],l[u+3]=e[0]}r.writeFloatLE=n?i:o,r.writeFloatBE=n?o:i;function s(c,l){return e[0]=c[l],e[1]=c[l+1],e[2]=c[l+2],e[3]=c[l+3],t[0]}function a(c,l){return e[3]=c[l],e[2]=c[l+1],e[1]=c[l+2],e[0]=c[l+3],t[0]}r.readFloatLE=n?s:a,r.readFloatBE=n?a:s}():function(){function t(n,i,o,s){var a=i<0?1:0;if(a&&(i=-i),i===0)n(1/i>0?0:2147483648,o,s);else if(isNaN(i))n(2143289344,o,s);else if(i>34028234663852886e22)n((a<<31|2139095040)>>>0,o,s);else if(i<11754943508222875e-54)n((a<<31|Math.round(i/1401298464324817e-60))>>>0,o,s);else{var c=Math.floor(Math.log(i)/Math.LN2),l=Math.round(i*Math.pow(2,-c)*8388608)&8388607;n((a<<31|c+127<<23|l)>>>0,o,s)}}r.writeFloatLE=t.bind(null,Mp),r.writeFloatBE=t.bind(null,Up);function e(n,i,o){var s=n(i,o),a=(s>>31)*2+1,c=s>>>23&255,l=s&8388607;return c===255?l?NaN:a*(1/0):c===0?a*1401298464324817e-60*l:a*Math.pow(2,c-150)*(l+8388608)}r.readFloatLE=e.bind(null,Fp),r.readFloatBE=e.bind(null,Kp)}(),typeof Float64Array<"u"?function(){var t=new Float64Array([-0]),e=new Uint8Array(t.buffer),n=e[7]===128;function i(c,l,u){t[0]=c,l[u]=e[0],l[u+1]=e[1],l[u+2]=e[2],l[u+3]=e[3],l[u+4]=e[4],l[u+5]=e[5],l[u+6]=e[6],l[u+7]=e[7]}function o(c,l,u){t[0]=c,l[u]=e[7],l[u+1]=e[6],l[u+2]=e[5],l[u+3]=e[4],l[u+4]=e[3],l[u+5]=e[2],l[u+6]=e[1],l[u+7]=e[0]}r.writeDoubleLE=n?i:o,r.writeDoubleBE=n?o:i;function s(c,l){return e[0]=c[l],e[1]=c[l+1],e[2]=c[l+2],e[3]=c[l+3],e[4]=c[l+4],e[5]=c[l+5],e[6]=c[l+6],e[7]=c[l+7],t[0]}function a(c,l){return e[7]=c[l],e[6]=c[l+1],e[5]=c[l+2],e[4]=c[l+3],e[3]=c[l+4],e[2]=c[l+5],e[1]=c[l+6],e[0]=c[l+7],t[0]}r.readDoubleLE=n?s:a,r.readDoubleBE=n?a:s}():function(){function t(n,i,o,s,a,c){var l=s<0?1:0;if(l&&(s=-s),s===0)n(0,a,c+i),n(1/s>0?0:2147483648,a,c+o);else if(isNaN(s))n(0,a,c+i),n(2146959360,a,c+o);else if(s>17976931348623157e292)n(0,a,c+i),n((l<<31|2146435072)>>>0,a,c+o);else{var u;if(s<22250738585072014e-324)u=s/5e-324,n(u>>>0,a,c+i),n((l<<31|u/4294967296)>>>0,a,c+o);else{var f=Math.floor(Math.log(s)/Math.LN2);f===1024&&(f=1023),u=s*Math.pow(2,-f),n(u*4503599627370496>>>0,a,c+i),n((l<<31|f+1023<<20|u*1048576&1048575)>>>0,a,c+o)}}}r.writeDoubleLE=t.bind(null,Mp,0,4),r.writeDoubleBE=t.bind(null,Up,4,0);function e(n,i,o,s,a){var c=n(s,a+i),l=n(s,a+o),u=(l>>31)*2+1,f=l>>>20&2047,d=4294967296*(l&1048575)+c;return f===2047?d?NaN:u*(1/0):f===0?u*5e-324*d:u*Math.pow(2,f-1075)*(d+4503599627370496)}r.readDoubleLE=e.bind(null,Fp,0,4),r.readDoubleBE=e.bind(null,Kp,4,0)}(),r}function Mp(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 Up(r,t,e){t[e]=r>>>24,t[e+1]=r>>>16&255,t[e+2]=r>>>8&255,t[e+3]=r&255}function Fp(r,t){return(r[t]|r[t+1]<<8|r[t+2]<<16|r[t+3]<<24)>>>0}function Kp(r,t){return(r[t]<<24|r[t+1]<<16|r[t+2]<<8|r[t+3])>>>0}});var Hp=T((exports,module)=>{"use strict";module.exports=inquire;function inquire(moduleName){try{var mod=eval("quire".replace(/^/,"re"))(moduleName);if(mod&&(mod.length||Object.keys(mod).length))return mod}catch(r){}return null}});var zp=T($p=>{"use strict";var xu=$p;xu.length=function(t){for(var e=0,n=0,i=0;i<t.length;++i)n=t.charCodeAt(i),n<128?e+=1:n<2048?e+=2:(n&64512)===55296&&(t.charCodeAt(i+1)&64512)===56320?(++i,e+=4):e+=3;return e};xu.read=function(t,e,n){var i=n-e;if(i<1)return"";for(var o=null,s=[],a=0,c;e<n;)c=t[e++],c<128?s[a++]=c:c>191&&c<224?s[a++]=(c&31)<<6|t[e++]&63:c>239&&c<365?(c=((c&7)<<18|(t[e++]&63)<<12|(t[e++]&63)<<6|t[e++]&63)-65536,s[a++]=55296+(c>>10),s[a++]=56320+(c&1023)):s[a++]=(c&15)<<12|(t[e++]&63)<<6|t[e++]&63,a>8191&&((o||(o=[])).push(String.fromCharCode.apply(String,s)),a=0);return o?(a&&o.push(String.fromCharCode.apply(String,s.slice(0,a))),o.join("")):String.fromCharCode.apply(String,s.slice(0,a))};xu.write=function(t,e,n){for(var i=n,o,s,a=0;a<t.length;++a)o=t.charCodeAt(a),o<128?e[n++]=o:o<2048?(e[n++]=o>>6|192,e[n++]=o&63|128):(o&64512)===55296&&((s=t.charCodeAt(a+1))&64512)===56320?(o=65536+((o&1023)<<10)+(s&1023),++a,e[n++]=o>>18|240,e[n++]=o>>12&63|128,e[n++]=o>>6&63|128,e[n++]=o&63|128):(e[n++]=o>>12|224,e[n++]=o>>6&63|128,e[n++]=o&63|128);return n-i}});var Yp=T((pD,Gp)=>{"use strict";Gp.exports=O2;function O2(r,t,e){var n=e||8192,i=n>>>1,o=null,s=n;return function(c){if(c<1||c>i)return r(c);s+c>n&&(o=r(n),s=0);var l=t.call(o,s,s+=c);return s&7&&(s=(s|7)+1),l}}});var Qp=T((mD,Wp)=>{"use strict";Wp.exports=ne;var Co=$n();function ne(r,t){this.lo=r>>>0,this.hi=t>>>0}var Hn=ne.zero=new ne(0,0);Hn.toNumber=function(){return 0};Hn.zzEncode=Hn.zzDecode=function(){return this};Hn.length=function(){return 1};var k2=ne.zeroHash="\0\0\0\0\0\0\0\0";ne.fromNumber=function(t){if(t===0)return Hn;var e=t<0;e&&(t=-t);var n=t>>>0,i=(t-n)/4294967296>>>0;return e&&(i=~i>>>0,n=~n>>>0,++n>4294967295&&(n=0,++i>4294967295&&(i=0))),new ne(n,i)};ne.from=function(t){if(typeof t=="number")return ne.fromNumber(t);if(Co.isString(t))if(Co.Long)t=Co.Long.fromString(t);else return ne.fromNumber(parseInt(t,10));return t.low||t.high?new ne(t.low>>>0,t.high>>>0):Hn};ne.prototype.toNumber=function(t){if(!t&&this.hi>>>31){var e=~this.lo+1>>>0,n=~this.hi>>>0;return e||(n=n+1>>>0),-(e+n*4294967296)}return this.lo+this.hi*4294967296};ne.prototype.toLong=function(t){return Co.Long?new Co.Long(this.lo|0,this.hi|0,Boolean(t)):{low:this.lo|0,high:this.hi|0,unsigned:Boolean(t)}};var an=String.prototype.charCodeAt;ne.fromHash=function(t){return t===k2?Hn:new ne((an.call(t,0)|an.call(t,1)<<8|an.call(t,2)<<16|an.call(t,3)<<24)>>>0,(an.call(t,4)|an.call(t,5)<<8|an.call(t,6)<<16|an.call(t,7)<<24)>>>0)};ne.prototype.toHash=function(){return String.fromCharCode(this.lo&255,this.lo>>>8&255,this.lo>>>16&255,this.lo>>>24,this.hi&255,this.hi>>>8&255,this.hi>>>16&255,this.hi>>>24)};ne.prototype.zzEncode=function(){var t=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^t)>>>0,this.lo=(this.lo<<1^t)>>>0,this};ne.prototype.zzDecode=function(){var t=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^t)>>>0,this.hi=(this.hi>>>1^t)>>>0,this};ne.prototype.length=function(){var 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}});var $n=T(vu=>{"use strict";var M=vu;M.asPromise=Cp();M.base64=Bp();M.EventEmitter=Op();M.float=qp();M.inquire=Hp();M.utf8=zp();M.pool=Yp();M.LongBits=Qp();M.isNode=Boolean(typeof globalThis<"u"&&globalThis&&globalThis.process&&globalThis.process.versions&&globalThis.process.versions.node);M.global=M.isNode&&globalThis||typeof window<"u"&&window||typeof self<"u"&&self||vu;M.emptyArray=Object.freeze?Object.freeze([]):[];M.emptyObject=Object.freeze?Object.freeze({}):{};M.isInteger=Number.isInteger||function(t){return typeof t=="number"&&isFinite(t)&&Math.floor(t)===t};M.isString=function(t){return typeof t=="string"||t instanceof String};M.isObject=function(t){return t&&typeof t=="object"};M.isset=M.isSet=function(t,e){var n=t[e];return n!=null&&t.hasOwnProperty(e)?typeof n!="object"||(Array.isArray(n)?n.length:Object.keys(n).length)>0:!1};M.Buffer=function(){try{var r=M.inquire("buffer").Buffer;return r.prototype.utf8Write?r:null}catch{return null}}();M._Buffer_from=null;M._Buffer_allocUnsafe=null;M.newBuffer=function(t){return typeof t=="number"?M.Buffer?M._Buffer_allocUnsafe(t):new M.Array(t):M.Buffer?M._Buffer_from(t):typeof Uint8Array>"u"?t:new Uint8Array(t)};M.Array=typeof Uint8Array<"u"?Uint8Array:Array;M.Long=M.global.dcodeIO&&M.global.dcodeIO.Long||M.global.Long||M.inquire("long");M.key2Re=/^true|false|0|1$/;M.key32Re=/^-?(?:0|[1-9][0-9]*)$/;M.key64Re=/^(?:[\\x00-\\xff]{8}|-?(?:0|[1-9][0-9]*))$/;M.longToHash=function(t){return t?M.LongBits.from(t).toHash():M.LongBits.zeroHash};M.longFromHash=function(t,e){var n=M.LongBits.fromHash(t);return M.Long?M.Long.fromBits(n.lo,n.hi,e):n.toNumber(Boolean(e))};function Xp(r,t,e){for(var n=Object.keys(t),i=0;i<n.length;++i)(r[n[i]]===void 0||!e)&&(r[n[i]]=t[n[i]]);return r}M.merge=Xp;M.lcFirst=function(t){return t.charAt(0).toLowerCase()+t.substring(1)};function Zp(r){function t(e,n){if(!(this instanceof t))return new t(e,n);Object.defineProperty(this,"message",{get:function(){return e}}),Error.captureStackTrace?Error.captureStackTrace(this,t):Object.defineProperty(this,"stack",{value:new Error().stack||""}),n&&Xp(this,n)}return t.prototype=Object.create(Error.prototype,{constructor:{value:t,writable:!0,enumerable:!1,configurable:!0},name:{get:function(){return r},set:void 0,enumerable:!1,configurable:!0},toString:{value:function(){return this.name+": "+this.message},writable:!0,enumerable:!1,configurable:!0}}),t}M.newError=Zp;M.ProtocolError=Zp("ProtocolError");M.oneOfGetter=function(t){for(var e={},n=0;n<t.length;++n)e[t[n]]=1;return function(){for(var i=Object.keys(this),o=i.length-1;o>-1;--o)if(e[i[o]]===1&&this[i[o]]!==void 0&&this[i[o]]!==null)return i[o]}};M.oneOfSetter=function(t){return function(e){for(var n=0;n<t.length;++n)t[n]!==e&&delete this[t[n]]}};M.toJSONOptions={longs:String,enums:String,bytes:String,json:!0};M._configure=function(){var r=M.Buffer;if(!r){M._Buffer_from=M._Buffer_allocUnsafe=null;return}M._Buffer_from=r.from!==Uint8Array.from&&r.from||function(e,n){return new r(e,n)},M._Buffer_allocUnsafe=r.allocUnsafe||function(e){return new r(e)}}});var Su=T((gD,rm)=>{"use strict";rm.exports=$t;var ur=$n(),_u,tm=ur.LongBits,M2=ur.utf8;function Qe(r,t){return RangeError("index out of range: "+r.pos+" + "+(t||1)+" > "+r.len)}function $t(r){this.buf=r,this.pos=0,this.len=r.length}var Jp=typeof Uint8Array<"u"?function(t){if(t instanceof Uint8Array||Array.isArray(t))return new $t(t);throw Error("illegal buffer")}:function(t){if(Array.isArray(t))return new $t(t);throw Error("illegal buffer")},em=function(){return ur.Buffer?function(e){return($t.create=function(i){return ur.Buffer.isBuffer(i)?new _u(i):Jp(i)})(e)}:Jp};$t.create=em();$t.prototype._slice=ur.Array.prototype.subarray||ur.Array.prototype.slice;$t.prototype.uint32=function(){var t=4294967295;return function(){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,Qe(this,10);return t}}();$t.prototype.int32=function(){return this.uint32()|0};$t.prototype.sint32=function(){var t=this.uint32();return t>>>1^-(t&1)|0};function bu(){var r=new tm(0,0),t=0;if(this.len-this.pos>4){for(;t<4;++t)if(r.lo=(r.lo|(this.buf[this.pos]&127)<<t*7)>>>0,this.buf[this.pos++]<128)return r;if(r.lo=(r.lo|(this.buf[this.pos]&127)<<28)>>>0,r.hi=(r.hi|(this.buf[this.pos]&127)>>4)>>>0,this.buf[this.pos++]<128)return r;t=0}else{for(;t<3;++t){if(this.pos>=this.len)throw Qe(this);if(r.lo=(r.lo|(this.buf[this.pos]&127)<<t*7)>>>0,this.buf[this.pos++]<128)return r}return r.lo=(r.lo|(this.buf[this.pos++]&127)<<t*7)>>>0,r}if(this.len-this.pos>4){for(;t<5;++t)if(r.hi=(r.hi|(this.buf[this.pos]&127)<<t*7+3)>>>0,this.buf[this.pos++]<128)return r}else for(;t<5;++t){if(this.pos>=this.len)throw Qe(this);if(r.hi=(r.hi|(this.buf[this.pos]&127)<<t*7+3)>>>0,this.buf[this.pos++]<128)return r}throw Error("invalid varint encoding")}$t.prototype.bool=function(){return this.uint32()!==0};function wa(r,t){return(r[t-4]|r[t-3]<<8|r[t-2]<<16|r[t-1]<<24)>>>0}$t.prototype.fixed32=function(){if(this.pos+4>this.len)throw Qe(this,4);return wa(this.buf,this.pos+=4)};$t.prototype.sfixed32=function(){if(this.pos+4>this.len)throw Qe(this,4);return wa(this.buf,this.pos+=4)|0};function jp(){if(this.pos+8>this.len)throw Qe(this,8);return new tm(wa(this.buf,this.pos+=4),wa(this.buf,this.pos+=4))}$t.prototype.float=function(){if(this.pos+4>this.len)throw Qe(this,4);var t=ur.float.readFloatLE(this.buf,this.pos);return this.pos+=4,t};$t.prototype.double=function(){if(this.pos+8>this.len)throw Qe(this,4);var t=ur.float.readDoubleLE(this.buf,this.pos);return this.pos+=8,t};$t.prototype.bytes=function(){var t=this.uint32(),e=this.pos,n=this.pos+t;if(n>this.len)throw Qe(this,t);return this.pos+=t,Array.isArray(this.buf)?this.buf.slice(e,n):e===n?new this.buf.constructor(0):this._slice.call(this.buf,e,n)};$t.prototype.string=function(){var t=this.bytes();return M2.read(t,0,t.length)};$t.prototype.skip=function(t){if(typeof t=="number"){if(this.pos+t>this.len)throw Qe(this,t);this.pos+=t}else do if(this.pos>=this.len)throw Qe(this);while(this.buf[this.pos++]&128);return this};$t.prototype.skipType=function(r){switch(r){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;(r=this.uint32()&7)!==4;)this.skipType(r);break;case 5:this.skip(4);break;default:throw Error("invalid wire type "+r+" at offset "+this.pos)}return this};$t._configure=function(r){_u=r,$t.create=em(),_u._configure();var t=ur.Long?"toLong":"toNumber";ur.merge($t.prototype,{int64:function(){return bu.call(this)[t](!1)},uint64:function(){return bu.call(this)[t](!0)},sint64:function(){return bu.call(this).zzDecode()[t](!1)},fixed64:function(){return jp.call(this)[t](!0)},sfixed64:function(){return jp.call(this)[t](!1)}})}});var sm=T((wD,om)=>{"use strict";om.exports=zn;var im=Su();(zn.prototype=Object.create(im.prototype)).constructor=zn;var nm=$n();function zn(r){im.call(this,r)}zn._configure=function(){nm.Buffer&&(zn.prototype._slice=nm.Buffer.prototype.slice)};zn.prototype.string=function(){var t=this.uint32();return this.buf.utf8Slice?this.buf.utf8Slice(this.pos,this.pos=Math.min(this.pos+t,this.len)):this.buf.toString("utf-8",this.pos,this.pos=Math.min(this.pos+t,this.len))};zn._configure()});var Pu=T((ED,um)=>{"use strict";um.exports=ct;var ke=$n(),Au,Ea=ke.LongBits,am=ke.base64,cm=ke.utf8;function Do(r,t,e){this.fn=r,this.len=t,this.next=void 0,this.val=e}function Iu(){}function U2(r){this.head=r.head,this.tail=r.tail,this.len=r.len,this.next=r.states}function ct(){this.len=0,this.head=new Do(Iu,0,0),this.tail=this.head,this.states=null}var lm=function(){return ke.Buffer?function(){return(ct.create=function(){return new Au})()}:function(){return new ct}};ct.create=lm();ct.alloc=function(t){return new ke.Array(t)};ke.Array!==Array&&(ct.alloc=ke.pool(ct.alloc,ke.Array.prototype.subarray));ct.prototype._push=function(t,e,n){return this.tail=this.tail.next=new Do(t,e,n),this.len+=e,this};function Tu(r,t,e){t[e]=r&255}function F2(r,t,e){for(;r>127;)t[e++]=r&127|128,r>>>=7;t[e]=r}function Cu(r,t){this.len=r,this.next=void 0,this.val=t}Cu.prototype=Object.create(Do.prototype);Cu.prototype.fn=F2;ct.prototype.uint32=function(t){return this.len+=(this.tail=this.tail.next=new Cu((t=t>>>0)<128?1:t<16384?2:t<2097152?3:t<268435456?4:5,t)).len,this};ct.prototype.int32=function(t){return t<0?this._push(Du,10,Ea.fromNumber(t)):this.uint32(t)};ct.prototype.sint32=function(t){return this.uint32((t<<1^t>>31)>>>0)};function Du(r,t,e){for(;r.hi;)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}ct.prototype.uint64=function(t){var e=Ea.from(t);return this._push(Du,e.length(),e)};ct.prototype.int64=ct.prototype.uint64;ct.prototype.sint64=function(t){var e=Ea.from(t).zzEncode();return this._push(Du,e.length(),e)};ct.prototype.bool=function(t){return this._push(Tu,1,t?1:0)};function Ru(r,t,e){t[e]=r&255,t[e+1]=r>>>8&255,t[e+2]=r>>>16&255,t[e+3]=r>>>24}ct.prototype.fixed32=function(t){return this._push(Ru,4,t>>>0)};ct.prototype.sfixed32=ct.prototype.fixed32;ct.prototype.fixed64=function(t){var e=Ea.from(t);return this._push(Ru,4,e.lo)._push(Ru,4,e.hi)};ct.prototype.sfixed64=ct.prototype.fixed64;ct.prototype.float=function(t){return this._push(ke.float.writeFloatLE,4,t)};ct.prototype.double=function(t){return this._push(ke.float.writeDoubleLE,8,t)};var K2=ke.Array.prototype.set?function(t,e,n){e.set(t,n)}:function(t,e,n){for(var i=0;i<t.length;++i)e[n+i]=t[i]};ct.prototype.bytes=function(t){var e=t.length>>>0;if(!e)return this._push(Tu,1,0);if(ke.isString(t)){var n=ct.alloc(e=am.length(t));am.decode(t,n,0),t=n}return this.uint32(e)._push(K2,e,t)};ct.prototype.string=function(t){var e=cm.length(t);return e?this.uint32(e)._push(cm.write,e,t):this._push(Tu,1,0)};ct.prototype.fork=function(){return this.states=new U2(this),this.head=this.tail=new Do(Iu,0,0),this.len=0,this};ct.prototype.reset=function(){return this.states?(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 Do(Iu,0,0),this.len=0),this};ct.prototype.ldelim=function(){var t=this.head,e=this.tail,n=this.len;return this.reset().uint32(n),n&&(this.tail.next=t.next,this.tail=e,this.len+=n),this};ct.prototype.finish=function(){for(var t=this.head.next,e=this.constructor.alloc(this.len),n=0;t;)t.fn(t.val,e,n),n+=t.len,t=t.next;return e};ct._configure=function(r){Au=r,ct.create=lm(),Au._configure()}});var dm=T((xD,hm)=>{"use strict";hm.exports=fr;var fm=Pu();(fr.prototype=Object.create(fm.prototype)).constructor=fr;var cn=$n();function fr(){fm.call(this)}fr._configure=function(){fr.alloc=cn._Buffer_allocUnsafe,fr.writeBytesBuffer=cn.Buffer&&cn.Buffer.prototype instanceof Uint8Array&&cn.Buffer.prototype.set.name==="set"?function(t,e,n){e.set(t,n)}:function(t,e,n){if(t.copy)t.copy(e,n,0,t.length);else for(var i=0;i<t.length;)e[n++]=t[i++]}};fr.prototype.bytes=function(t){cn.isString(t)&&(t=cn._Buffer_from(t,"base64"));var e=t.length>>>0;return this.uint32(e),e&&this._push(fr.writeBytesBuffer,e,t),this};function V2(r,t,e){r.length<40?cn.utf8.write(r,t,e):t.utf8Write?t.utf8Write(r,e):t.write(r,e)}fr.prototype.string=function(t){var e=cn.Buffer.byteLength(t);return this.uint32(e),e&&this._push(V2,e,t),this};fr._configure()});var Om=T(Oo=>{(function(){var r,t,e,n,i,o,s,a;a=function(c){var l,u,f,d;return l=(c&255<<24)>>>24,u=(c&255<<16)>>>16,f=(c&255<<8)>>>8,d=c&255,[l,u,f,d].join(".")},s=function(c){var l,u,f,d,h,p;for(l=[],f=d=0;d<=3&&c.length!==0;f=++d){if(f>0){if(c[0]!==".")throw new Error("Invalid IP");c=c.substring(1)}p=t(c),h=p[0],u=p[1],c=c.substring(u),l.push(h)}if(c.length!==0)throw new Error("Invalid IP");switch(l.length){case 1:if(l[0]>4294967295)throw new Error("Invalid IP");return l[0]>>>0;case 2:if(l[0]>255||l[1]>16777215)throw new Error("Invalid IP");return(l[0]<<24|l[1])>>>0;case 3:if(l[0]>255||l[1]>255||l[2]>65535)throw new Error("Invalid IP");return(l[0]<<24|l[1]<<16|l[2])>>>0;case 4:if(l[0]>255||l[1]>255||l[2]>255||l[3]>255)throw new Error("Invalid IP");return(l[0]<<24|l[1]<<16|l[2]<<8|l[3])>>>0;default:throw new Error("Invalid IP")}},e=function(c){return c.charCodeAt(0)},n=e("0"),o=e("a"),i=e("A"),t=function(c){var l,u,f,d,h;for(d=0,l=10,u="9",f=0,c.length>1&&c[f]==="0"&&(c[f+1]==="x"||c[f+1]==="X"?(f+=2,l=16):"0"<=c[f+1]&&c[f+1]<="9"&&(f++,l=8,u="7")),h=f;f<c.length;){if("0"<=c[f]&&c[f]<=u)d=d*l+(e(c[f])-n)>>>0;else if(l===16)if("a"<=c[f]&&c[f]<="f")d=d*l+(10+e(c[f])-o)>>>0;else if("A"<=c[f]&&c[f]<="F")d=d*l+(10+e(c[f])-i)>>>0;else break;else break;if(d>4294967295)throw new Error("too large");f++}if(f===h)throw new Error("empty octet");return[d,f]},r=function(){function c(l,u){var f,d,h,p;if(typeof l!="string")throw new Error("Missing `net' parameter");if(u||(p=l.split("/",2),l=p[0],u=p[1]),u||(u=32),typeof u=="string"&&u.indexOf(".")>-1){try{this.maskLong=s(u)}catch(m){throw f=m,new Error("Invalid mask: "+u)}for(d=h=32;h>=0;d=--h)if(this.maskLong===4294967295<<32-d>>>0){this.bitmask=d;break}}else if(u||u===0)this.bitmask=parseInt(u,10),this.maskLong=0,this.bitmask>0&&(this.maskLong=4294967295<<32-this.bitmask>>>0);else throw new Error("Invalid mask: empty");try{this.netLong=(s(l)&this.maskLong)>>>0}catch(m){throw f=m,new Error("Invalid net address: "+l)}if(!(this.bitmask<=32))throw new Error("Invalid mask for ip4: "+u);this.size=Math.pow(2,32-this.bitmask),this.base=a(this.netLong),this.mask=a(this.maskLong),this.hostmask=a(~this.maskLong),this.first=this.bitmask<=30?a(this.netLong+1):this.base,this.last=this.bitmask<=30?a(this.netLong+this.size-2):a(this.netLong+this.size-1),this.broadcast=this.bitmask<=30?a(this.netLong+this.size-1):void 0}return c.prototype.contains=function(l){return typeof l=="string"&&(l.indexOf("/")>0||l.split(".").length!==4)&&(l=new c(l)),l instanceof c?this.contains(l.base)&&this.contains(l.broadcast||l.last):(s(l)&this.maskLong)>>>0===(this.netLong&this.maskLong)>>>0},c.prototype.next=function(l){return l==null&&(l=1),new c(a(this.netLong+this.size*l),this.mask)},c.prototype.forEach=function(l){var u,f,d;for(d=s(this.first),f=s(this.last),u=0;d<=f;)l(a(d),d,u),u++,d++},c.prototype.toString=function(){return this.base+"/"+this.bitmask},c}(),Oo.ip2long=s,Oo.long2ip=a,Oo.Netmask=r}).call(Oo)});var Fm=T((Um,Da)=>{(function(r){"use strict";let t="(0?\\d+|0x[a-f0-9]+)",e={fourOctet:new RegExp(`^${t}\\.${t}\\.${t}\\.${t}$`,"i"),threeOctet:new RegExp(`^${t}\\.${t}\\.${t}$`,"i"),twoOctet:new RegExp(`^${t}\\.${t}$`,"i"),longValue:new RegExp(`^${t}$`,"i")},n=new RegExp("^0[0-7]+$","i"),i=new RegExp("^0x[a-f0-9]+$","i"),o="%[0-9a-z]{1,}",s="(?:[0-9a-f]+::?)+",a={zoneIndex:new RegExp(o,"i"),native:new RegExp(`^(::)?(${s})?([0-9a-f]+)?(::)?(${o})?$`,"i"),deprecatedTransitional:new RegExp(`^(?:::)(${t}\\.${t}\\.${t}\\.${t}(${o})?)$`,"i"),transitional:new RegExp(`^((?:${s})|(?:::)(?:${s})?)${t}\\.${t}\\.${t}\\.${t}(${o})?$`,"i")};function c(h,p){if(h.indexOf("::")!==h.lastIndexOf("::"))return null;let m=0,y=-1,g=(h.match(a.zoneIndex)||[])[0],E,_;for(g&&(g=g.substring(1),h=h.replace(/%.+$/,""));(y=h.indexOf(":",y+1))>=0;)m++;if(h.substr(0,2)==="::"&&m--,h.substr(-2,2)==="::"&&m--,m>p)return null;for(_=p-m,E=":";_--;)E+="0:";return h=h.replace("::",E),h[0]===":"&&(h=h.slice(1)),h[h.length-1]===":"&&(h=h.slice(0,-1)),p=function(){let k=h.split(":"),C=[];for(let D=0;D<k.length;D++)C.push(parseInt(k[D],16));return C}(),{parts:p,zoneId:g}}function l(h,p,m,y){if(h.length!==p.length)throw new Error("ipaddr: cannot match CIDR for objects with different lengths");let g=0,E;for(;y>0;){if(E=m-y,E<0&&(E=0),h[g]>>E!==p[g]>>E)return!1;y-=m,g+=1}return!0}function u(h){if(i.test(h))return parseInt(h,16);if(h[0]==="0"&&!isNaN(parseInt(h[1],10))){if(n.test(h))return parseInt(h,8);throw new Error(`ipaddr: cannot parse ${h} as octal`)}return parseInt(h,10)}function f(h,p){for(;h.length<p;)h=`0${h}`;return h}let d={};d.IPv4=function(){function h(p){if(p.length!==4)throw new Error("ipaddr: ipv4 octet count should be 4");let m,y;for(m=0;m<p.length;m++)if(y=p[m],!(0<=y&&y<=255))throw new Error("ipaddr: ipv4 octet should fit in 8 bits");this.octets=p}return h.prototype.SpecialRanges={unspecified:[[new h([0,0,0,0]),8]],broadcast:[[new h([255,255,255,255]),32]],multicast:[[new h([224,0,0,0]),4]],linkLocal:[[new h([169,254,0,0]),16]],loopback:[[new h([127,0,0,0]),8]],carrierGradeNat:[[new h([100,64,0,0]),10]],private:[[new h([10,0,0,0]),8],[new h([172,16,0,0]),12],[new h([192,168,0,0]),16]],reserved:[[new h([192,0,0,0]),24],[new h([192,0,2,0]),24],[new h([192,88,99,0]),24],[new h([198,51,100,0]),24],[new h([203,0,113,0]),24],[new h([240,0,0,0]),4]]},h.prototype.kind=function(){return"ipv4"},h.prototype.match=function(p,m){let y;if(m===void 0&&(y=p,p=y[0],m=y[1]),p.kind()!=="ipv4")throw new Error("ipaddr: cannot match ipv4 address with non-ipv4 one");return l(this.octets,p.octets,8,m)},h.prototype.prefixLengthFromSubnetMask=function(){let p=0,m=!1,y={0:8,128:7,192:6,224:5,240:4,248:3,252:2,254:1,255:0},g,E,_;for(g=3;g>=0;g-=1)if(E=this.octets[g],E in y){if(_=y[E],m&&_!==0)return null;_!==8&&(m=!0),p+=_}else return null;return 32-p},h.prototype.range=function(){return d.subnetMatch(this,this.SpecialRanges)},h.prototype.toByteArray=function(){return this.octets.slice(0)},h.prototype.toIPv4MappedAddress=function(){return d.IPv6.parse(`::ffff:${this.toString()}`)},h.prototype.toNormalizedString=function(){return this.toString()},h.prototype.toString=function(){return this.octets.join(".")},h}(),d.IPv4.broadcastAddressFromCIDR=function(h){try{let p=this.parseCIDR(h),m=p[0].toByteArray(),y=this.subnetMaskFromPrefixLength(p[1]).toByteArray(),g=[],E=0;for(;E<4;)g.push(parseInt(m[E],10)|parseInt(y[E],10)^255),E++;return new this(g)}catch{throw new Error("ipaddr: the address does not have IPv4 CIDR format")}},d.IPv4.isIPv4=function(h){return this.parser(h)!==null},d.IPv4.isValid=function(h){try{return new this(this.parser(h)),!0}catch{return!1}},d.IPv4.isValidFourPartDecimal=function(h){return!!(d.IPv4.isValid(h)&&h.match(/^(0|[1-9]\d*)(\.(0|[1-9]\d*)){3}$/))},d.IPv4.networkAddressFromCIDR=function(h){let p,m,y,g,E;try{for(p=this.parseCIDR(h),y=p[0].toByteArray(),E=this.subnetMaskFromPrefixLength(p[1]).toByteArray(),g=[],m=0;m<4;)g.push(parseInt(y[m],10)&parseInt(E[m],10)),m++;return new this(g)}catch{throw new Error("ipaddr: the address does not have IPv4 CIDR format")}},d.IPv4.parse=function(h){let p=this.parser(h);if(p===null)throw new Error("ipaddr: string is not formatted like an IPv4 Address");return new this(p)},d.IPv4.parseCIDR=function(h){let p;if(p=h.match(/^(.+)\/(\d+)$/)){let m=parseInt(p[2]);if(m>=0&&m<=32){let y=[this.parse(p[1]),m];return Object.defineProperty(y,"toString",{value:function(){return this.join("/")}}),y}}throw new Error("ipaddr: string is not formatted like an IPv4 CIDR range")},d.IPv4.parser=function(h){let p,m,y;if(p=h.match(e.fourOctet))return function(){let g=p.slice(1,6),E=[];for(let _=0;_<g.length;_++)m=g[_],E.push(u(m));return E}();if(p=h.match(e.longValue)){if(y=u(p[1]),y>4294967295||y<0)throw new Error("ipaddr: address outside defined range");return function(){let g=[],E;for(E=0;E<=24;E+=8)g.push(y>>E&255);return g}().reverse()}else return(p=h.match(e.twoOctet))?function(){let g=p.slice(1,4),E=[];if(y=u(g[1]),y>16777215||y<0)throw new Error("ipaddr: address outside defined range");return E.push(u(g[0])),E.push(y>>16&255),E.push(y>>8&255),E.push(y&255),E}():(p=h.match(e.threeOctet))?function(){let g=p.slice(1,5),E=[];if(y=u(g[2]),y>65535||y<0)throw new Error("ipaddr: address outside defined range");return E.push(u(g[0])),E.push(u(g[1])),E.push(y>>8&255),E.push(y&255),E}():null},d.IPv4.subnetMaskFromPrefixLength=function(h){if(h=parseInt(h),h<0||h>32)throw new Error("ipaddr: invalid IPv4 prefix length");let p=[0,0,0,0],m=0,y=Math.floor(h/8);for(;m<y;)p[m]=255,m++;return y<4&&(p[y]=Math.pow(2,h%8)-1<<8-h%8),new this(p)},d.IPv6=function(){function h(p,m){let y,g;if(p.length===16)for(this.parts=[],y=0;y<=14;y+=2)this.parts.push(p[y]<<8|p[y+1]);else if(p.length===8)this.parts=p;else throw new Error("ipaddr: ipv6 part count should be 8 or 16");for(y=0;y<this.parts.length;y++)if(g=this.parts[y],!(0<=g&&g<=65535))throw new Error("ipaddr: ipv6 part should fit in 16 bits");m&&(this.zoneId=m)}return h.prototype.SpecialRanges={unspecified:[new h([0,0,0,0,0,0,0,0]),128],linkLocal:[new h([65152,0,0,0,0,0,0,0]),10],multicast:[new h([65280,0,0,0,0,0,0,0]),8],loopback:[new h([0,0,0,0,0,0,0,1]),128],uniqueLocal:[new h([64512,0,0,0,0,0,0,0]),7],ipv4Mapped:[new h([0,0,0,0,0,65535,0,0]),96],rfc6145:[new h([0,0,0,0,65535,0,0,0]),96],rfc6052:[new h([100,65435,0,0,0,0,0,0]),96],"6to4":[new h([8194,0,0,0,0,0,0,0]),16],teredo:[new h([8193,0,0,0,0,0,0,0]),32],reserved:[[new h([8193,3512,0,0,0,0,0,0]),32]]},h.prototype.isIPv4MappedAddress=function(){return this.range()==="ipv4Mapped"},h.prototype.kind=function(){return"ipv6"},h.prototype.match=function(p,m){let y;if(m===void 0&&(y=p,p=y[0],m=y[1]),p.kind()!=="ipv6")throw new Error("ipaddr: cannot match ipv6 address with non-ipv6 one");return l(this.parts,p.parts,16,m)},h.prototype.prefixLengthFromSubnetMask=function(){let p=0,m=!1,y={0:16,32768:15,49152:14,57344:13,61440:12,63488:11,64512:10,65024:9,65280:8,65408:7,65472:6,65504:5,65520:4,65528:3,65532:2,65534:1,65535:0},g,E;for(let _=7;_>=0;_-=1)if(g=this.parts[_],g in y){if(E=y[g],m&&E!==0)return null;E!==16&&(m=!0),p+=E}else return null;return 128-p},h.prototype.range=function(){return d.subnetMatch(this,this.SpecialRanges)},h.prototype.toByteArray=function(){let p,m=[],y=this.parts;for(let g=0;g<y.length;g++)p=y[g],m.push(p>>8),m.push(p&255);return m},h.prototype.toFixedLengthString=function(){let p=function(){let y=[];for(let g=0;g<this.parts.length;g++)y.push(f(this.parts[g].toString(16),4));return y}.call(this).join(":"),m="";return this.zoneId&&(m=`%${this.zoneId}`),p+m},h.prototype.toIPv4Address=function(){if(!this.isIPv4MappedAddress())throw new Error("ipaddr: trying to convert a generic ipv6 address to ipv4");let p=this.parts.slice(-2),m=p[0],y=p[1];return new d.IPv4([m>>8,m&255,y>>8,y&255])},h.prototype.toNormalizedString=function(){let p=function(){let y=[];for(let g=0;g<this.parts.length;g++)y.push(this.parts[g].toString(16));return y}.call(this).join(":"),m="";return this.zoneId&&(m=`%${this.zoneId}`),p+m},h.prototype.toRFC5952String=function(){let p=/((^|:)(0(:|$)){2,})/g,m=this.toNormalizedString(),y=0,g=-1,E;for(;E=p.exec(m);)E[0].length>g&&(y=E.index,g=E[0].length);return g<0?m:`${m.substring(0,y)}::${m.substring(y+g)}`},h.prototype.toString=function(){return this.toNormalizedString().replace(/((^|:)(0(:|$))+)/,"::")},h}(),d.IPv6.broadcastAddressFromCIDR=function(h){try{let p=this.parseCIDR(h),m=p[0].toByteArray(),y=this.subnetMaskFromPrefixLength(p[1]).toByteArray(),g=[],E=0;for(;E<16;)g.push(parseInt(m[E],10)|parseInt(y[E],10)^255),E++;return new this(g)}catch(p){throw new Error(`ipaddr: the address does not have IPv6 CIDR format (${p})`)}},d.IPv6.isIPv6=function(h){return this.parser(h)!==null},d.IPv6.isValid=function(h){if(typeof h=="string"&&h.indexOf(":")===-1)return!1;try{let p=this.parser(h);return new this(p.parts,p.zoneId),!0}catch{return!1}},d.IPv6.networkAddressFromCIDR=function(h){let p,m,y,g,E;try{for(p=this.parseCIDR(h),y=p[0].toByteArray(),E=this.subnetMaskFromPrefixLength(p[1]).toByteArray(),g=[],m=0;m<16;)g.push(parseInt(y[m],10)&parseInt(E[m],10)),m++;return new this(g)}catch(_){throw new Error(`ipaddr: the address does not have IPv6 CIDR format (${_})`)}},d.IPv6.parse=function(h){let p=this.parser(h);if(p.parts===null)throw new Error("ipaddr: string is not formatted like an IPv6 Address");return new this(p.parts,p.zoneId)},d.IPv6.parseCIDR=function(h){let p,m,y;if((m=h.match(/^(.+)\/(\d+)$/))&&(p=parseInt(m[2]),p>=0&&p<=128))return y=[this.parse(m[1]),p],Object.defineProperty(y,"toString",{value:function(){return this.join("/")}}),y;throw new Error("ipaddr: string is not formatted like an IPv6 CIDR range")},d.IPv6.parser=function(h){let p,m,y,g,E,_;if(y=h.match(a.deprecatedTransitional))return this.parser(`::ffff:${y[1]}`);if(a.native.test(h))return c(h,8);if((y=h.match(a.transitional))&&(_=y[6]||"",p=c(y[1].slice(0,-1)+_,6),p.parts)){for(E=[parseInt(y[2]),parseInt(y[3]),parseInt(y[4]),parseInt(y[5])],m=0;m<E.length;m++)if(g=E[m],!(0<=g&&g<=255))return null;return p.parts.push(E[0]<<8|E[1]),p.parts.push(E[2]<<8|E[3]),{parts:p.parts,zoneId:p.zoneId}}return null},d.IPv6.subnetMaskFromPrefixLength=function(h){if(h=parseInt(h),h<0||h>128)throw new Error("ipaddr: invalid IPv6 prefix length");let p=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],m=0,y=Math.floor(h/8);for(;m<y;)p[m]=255,m++;return y<16&&(p[y]=Math.pow(2,h%8)-1<<8-h%8),new this(p)},d.fromByteArray=function(h){let p=h.length;if(p===4)return new d.IPv4(h);if(p===16)return new d.IPv6(h);throw new Error("ipaddr: the binary input is neither an IPv6 nor IPv4 address")},d.isValid=function(h){return d.IPv6.isValid(h)||d.IPv4.isValid(h)},d.parse=function(h){if(d.IPv6.isValid(h))return d.IPv6.parse(h);if(d.IPv4.isValid(h))return d.IPv4.parse(h);throw new Error("ipaddr: the address has neither IPv6 nor IPv4 format")},d.parseCIDR=function(h){try{return d.IPv6.parseCIDR(h)}catch{try{return d.IPv4.parseCIDR(h)}catch{throw new Error("ipaddr: the address has neither IPv6 nor IPv4 CIDR format")}}},d.process=function(h){let p=this.parse(h);return p.kind()==="ipv6"&&p.isIPv4MappedAddress()?p.toIPv4Address():p},d.subnetMatch=function(h,p,m){let y,g,E,_;m==null&&(m="unicast");for(g in p)if(Object.prototype.hasOwnProperty.call(p,g)){for(E=p[g],E[0]&&!(E[0]instanceof Array)&&(E=[E]),y=0;y<E.length;y++)if(_=E[y],h.kind()===_[0].kind()&&h.match.apply(h,_))return g}return m},typeof Da<"u"&&Da.exports?Da.exports=d:r.ipaddr=d})(Um)});var Gm=T((HL,zm)=>{"use strict";function mb(r){return r>=55296&&r<=56319}function yb(r){return r>=56320&&r<=57343}zm.exports=function(t,e,n){if(typeof e!="string")throw new Error("Input must be string");for(var i=e.length,o=0,s,a,c=0;c<i;c+=1){if(s=e.charCodeAt(c),a=e[c],mb(s)&&yb(e.charCodeAt(c+1))&&(c+=1,a+=e[c]),o+=t(a),o===n)return e.slice(0,c+1);if(o>n)return e.slice(0,c-a.length+1)}return e}});var Wm=T(($L,Ym)=>{"use strict";function gb(r){return r>=55296&&r<=56319}function wb(r){return r>=56320&&r<=57343}Ym.exports=function(t){if(typeof t!="string")throw new Error("Input must be string");for(var e=t.length,n=0,i=null,o=null,s=0;s<e;s++)i=t.charCodeAt(s),wb(i)?o!=null&&gb(o)?n+=1:n+=3:i<=127?n+=1:i>=128&&i<=2047?n+=2:i>=2048&&i<=65535&&(n+=3),o=i;return n}});var Xm=T((zL,Qm)=>{"use strict";var Eb=Gm(),xb=Wm();Qm.exports=Eb.bind(null,xb)});var jm=T((GL,Jm)=>{"use strict";var vb=Xm(),bb=/[\/\?<>\\:\*\|"]/g,_b=/[\x00-\x1f\x80-\x9f]/g,Sb=/^\.+$/,Ab=/^(con|prn|aux|nul|com[0-9]|lpt[0-9])(\..*)?$/i,Rb=/[\. ]+$/;function Zm(r,t){if(typeof r!="string")throw new Error("Input must be string");var e=r.replace(bb,t).replace(_b,t).replace(Sb,t).replace(Ab,t).replace(Rb,t);return vb(e,255)}Jm.exports=function(r,t){var e=t&&t.replacement||"",n=Zm(r,e);return e===""?n:Zm(n,"")}});var yt=T((QL,ty)=>{ty.exports={options:{usePureJavaScript:!1}}});var ny=T((XL,ry)=>{var Yu={};ry.exports=Yu;var ey={};Yu.encode=function(r,t,e){if(typeof t!="string")throw new TypeError('"alphabet" must be a string.');if(e!==void 0&&typeof e!="number")throw new TypeError('"maxline" must be a number.');var n="";if(!(r instanceof Uint8Array))n=Ib(r,t);else{var i=0,o=t.length,s=t.charAt(0),a=[0];for(i=0;i<r.length;++i){for(var c=0,l=r[i];c<a.length;++c)l+=a[c]<<8,a[c]=l%o,l=l/o|0;for(;l>0;)a.push(l%o),l=l/o|0}for(i=0;r[i]===0&&i<r.length-1;++i)n+=s;for(i=a.length-1;i>=0;--i)n+=t[a[i]]}if(e){var u=new RegExp(".{1,"+e+"}","g");n=n.match(u).join(`\r
25
- `)}return n};Yu.decode=function(r,t){if(typeof r!="string")throw new TypeError('"input" must be a string.');if(typeof t!="string")throw new TypeError('"alphabet" must be a string.');var e=ey[t];if(!e){e=ey[t]=[];for(var n=0;n<t.length;++n)e[t.charCodeAt(n)]=n}r=r.replace(/\s/g,"");for(var i=t.length,o=t.charAt(0),s=[0],n=0;n<r.length;n++){var a=e[r.charCodeAt(n)];if(a===void 0)return;for(var c=0,l=a;c<s.length;++c)l+=s[c]*i,s[c]=l&255,l>>=8;for(;l>0;)s.push(l&255),l>>=8}for(var u=0;r[u]===o&&u<r.length-1;++u)s.push(0);return typeof Buffer<"u"?Buffer.from(s.reverse()):new Uint8Array(s.reverse())};function Ib(r,t){var e=0,n=t.length,i=t.charAt(0),o=[0];for(e=0;e<r.length();++e){for(var s=0,a=r.at(e);s<o.length;++s)a+=o[s]<<8,o[s]=a%n,a=a/n|0;for(;a>0;)o.push(a%n),a=a/n|0}var c="";for(e=0;r.at(e)===0&&e<r.length()-1;++e)c+=i;for(e=o.length-1;e>=0;--e)c+=t[o[e]];return c}});var zt=T((ZL,ay)=>{var iy=yt(),oy=ny(),w=ay.exports=iy.util=iy.util||{};(function(){if(typeof process<"u"&&process.nextTick&&!process.browser){w.nextTick=process.nextTick,typeof setImmediate=="function"?w.setImmediate=setImmediate:w.setImmediate=w.nextTick;return}if(typeof setImmediate=="function"){w.setImmediate=function(){return setImmediate.apply(void 0,arguments)},w.nextTick=function(a){return setImmediate(a)};return}if(w.setImmediate=function(a){setTimeout(a,0)},typeof window<"u"&&typeof window.postMessage=="function"){let a=function(c){if(c.source===window&&c.data===r){c.stopPropagation();var l=t.slice();t.length=0,l.forEach(function(u){u()})}};var s=a,r="forge.setImmediate",t=[];w.setImmediate=function(c){t.push(c),t.length===1&&window.postMessage(r,"*")},window.addEventListener("message",a,!0)}if(typeof MutationObserver<"u"){var e=Date.now(),n=!0,i=document.createElement("div"),t=[];new MutationObserver(function(){var c=t.slice();t.length=0,c.forEach(function(l){l()})}).observe(i,{attributes:!0});var o=w.setImmediate;w.setImmediate=function(c){Date.now()-e>15?(e=Date.now(),o(c)):(t.push(c),t.length===1&&i.setAttribute("a",n=!n))}}w.nextTick=w.setImmediate})();w.isNodejs=typeof process<"u"&&process.versions&&process.versions.node;w.globalScope=function(){return w.isNodejs?globalThis:typeof self>"u"?window:self}();w.isArray=Array.isArray||function(r){return Object.prototype.toString.call(r)==="[object Array]"};w.isArrayBuffer=function(r){return typeof ArrayBuffer<"u"&&r instanceof ArrayBuffer};w.isArrayBufferView=function(r){return r&&w.isArrayBuffer(r.buffer)&&r.byteLength!==void 0};function Mo(r){if(!(r===8||r===16||r===24||r===32))throw new Error("Only 8, 16, 24, or 32 bits supported: "+r)}w.ByteBuffer=Wu;function Wu(r){if(this.data="",this.read=0,typeof r=="string")this.data=r;else if(w.isArrayBuffer(r)||w.isArrayBufferView(r))if(typeof Buffer<"u"&&r instanceof Buffer)this.data=r.toString("binary");else{var t=new Uint8Array(r);try{this.data=String.fromCharCode.apply(null,t)}catch{for(var e=0;e<t.length;++e)this.putByte(t[e])}}else(r instanceof Wu||typeof r=="object"&&typeof r.data=="string"&&typeof r.read=="number")&&(this.data=r.data,this.read=r.read);this._constructedStringLength=0}w.ByteStringBuffer=Wu;var Tb=4096;w.ByteStringBuffer.prototype._optimizeConstructedString=function(r){this._constructedStringLength+=r,this._constructedStringLength>Tb&&(this.data.substr(0,1),this._constructedStringLength=0)};w.ByteStringBuffer.prototype.length=function(){return this.data.length-this.read};w.ByteStringBuffer.prototype.isEmpty=function(){return this.length()<=0};w.ByteStringBuffer.prototype.putByte=function(r){return this.putBytes(String.fromCharCode(r))};w.ByteStringBuffer.prototype.fillWithByte=function(r,t){r=String.fromCharCode(r);for(var e=this.data;t>0;)t&1&&(e+=r),t>>>=1,t>0&&(r+=r);return this.data=e,this._optimizeConstructedString(t),this};w.ByteStringBuffer.prototype.putBytes=function(r){return this.data+=r,this._optimizeConstructedString(r.length),this};w.ByteStringBuffer.prototype.putString=function(r){return this.putBytes(w.encodeUtf8(r))};w.ByteStringBuffer.prototype.putInt16=function(r){return this.putBytes(String.fromCharCode(r>>8&255)+String.fromCharCode(r&255))};w.ByteStringBuffer.prototype.putInt24=function(r){return this.putBytes(String.fromCharCode(r>>16&255)+String.fromCharCode(r>>8&255)+String.fromCharCode(r&255))};w.ByteStringBuffer.prototype.putInt32=function(r){return this.putBytes(String.fromCharCode(r>>24&255)+String.fromCharCode(r>>16&255)+String.fromCharCode(r>>8&255)+String.fromCharCode(r&255))};w.ByteStringBuffer.prototype.putInt16Le=function(r){return this.putBytes(String.fromCharCode(r&255)+String.fromCharCode(r>>8&255))};w.ByteStringBuffer.prototype.putInt24Le=function(r){return this.putBytes(String.fromCharCode(r&255)+String.fromCharCode(r>>8&255)+String.fromCharCode(r>>16&255))};w.ByteStringBuffer.prototype.putInt32Le=function(r){return this.putBytes(String.fromCharCode(r&255)+String.fromCharCode(r>>8&255)+String.fromCharCode(r>>16&255)+String.fromCharCode(r>>24&255))};w.ByteStringBuffer.prototype.putInt=function(r,t){Mo(t);var e="";do t-=8,e+=String.fromCharCode(r>>t&255);while(t>0);return this.putBytes(e)};w.ByteStringBuffer.prototype.putSignedInt=function(r,t){return r<0&&(r+=2<<t-1),this.putInt(r,t)};w.ByteStringBuffer.prototype.putBuffer=function(r){return this.putBytes(r.getBytes())};w.ByteStringBuffer.prototype.getByte=function(){return this.data.charCodeAt(this.read++)};w.ByteStringBuffer.prototype.getInt16=function(){var r=this.data.charCodeAt(this.read)<<8^this.data.charCodeAt(this.read+1);return this.read+=2,r};w.ByteStringBuffer.prototype.getInt24=function(){var r=this.data.charCodeAt(this.read)<<16^this.data.charCodeAt(this.read+1)<<8^this.data.charCodeAt(this.read+2);return this.read+=3,r};w.ByteStringBuffer.prototype.getInt32=function(){var r=this.data.charCodeAt(this.read)<<24^this.data.charCodeAt(this.read+1)<<16^this.data.charCodeAt(this.read+2)<<8^this.data.charCodeAt(this.read+3);return this.read+=4,r};w.ByteStringBuffer.prototype.getInt16Le=function(){var r=this.data.charCodeAt(this.read)^this.data.charCodeAt(this.read+1)<<8;return this.read+=2,r};w.ByteStringBuffer.prototype.getInt24Le=function(){var r=this.data.charCodeAt(this.read)^this.data.charCodeAt(this.read+1)<<8^this.data.charCodeAt(this.read+2)<<16;return this.read+=3,r};w.ByteStringBuffer.prototype.getInt32Le=function(){var r=this.data.charCodeAt(this.read)^this.data.charCodeAt(this.read+1)<<8^this.data.charCodeAt(this.read+2)<<16^this.data.charCodeAt(this.read+3)<<24;return this.read+=4,r};w.ByteStringBuffer.prototype.getInt=function(r){Mo(r);var t=0;do t=(t<<8)+this.data.charCodeAt(this.read++),r-=8;while(r>0);return t};w.ByteStringBuffer.prototype.getSignedInt=function(r){var t=this.getInt(r),e=2<<r-2;return t>=e&&(t-=e<<1),t};w.ByteStringBuffer.prototype.getBytes=function(r){var t;return r?(r=Math.min(this.length(),r),t=this.data.slice(this.read,this.read+r),this.read+=r):r===0?t="":(t=this.read===0?this.data:this.data.slice(this.read),this.clear()),t};w.ByteStringBuffer.prototype.bytes=function(r){return typeof r>"u"?this.data.slice(this.read):this.data.slice(this.read,this.read+r)};w.ByteStringBuffer.prototype.at=function(r){return this.data.charCodeAt(this.read+r)};w.ByteStringBuffer.prototype.setAt=function(r,t){return this.data=this.data.substr(0,this.read+r)+String.fromCharCode(t)+this.data.substr(this.read+r+1),this};w.ByteStringBuffer.prototype.last=function(){return this.data.charCodeAt(this.data.length-1)};w.ByteStringBuffer.prototype.copy=function(){var r=w.createBuffer(this.data);return r.read=this.read,r};w.ByteStringBuffer.prototype.compact=function(){return this.read>0&&(this.data=this.data.slice(this.read),this.read=0),this};w.ByteStringBuffer.prototype.clear=function(){return this.data="",this.read=0,this};w.ByteStringBuffer.prototype.truncate=function(r){var t=Math.max(0,this.length()-r);return this.data=this.data.substr(this.read,t),this.read=0,this};w.ByteStringBuffer.prototype.toHex=function(){for(var r="",t=this.read;t<this.data.length;++t){var e=this.data.charCodeAt(t);e<16&&(r+="0"),r+=e.toString(16)}return r};w.ByteStringBuffer.prototype.toString=function(){return w.decodeUtf8(this.bytes())};function Cb(r,t){t=t||{},this.read=t.readOffset||0,this.growSize=t.growSize||1024;var e=w.isArrayBuffer(r),n=w.isArrayBufferView(r);if(e||n){e?this.data=new DataView(r):this.data=new DataView(r.buffer,r.byteOffset,r.byteLength),this.write="writeOffset"in t?t.writeOffset:this.data.byteLength;return}this.data=new DataView(new ArrayBuffer(0)),this.write=0,r!=null&&this.putBytes(r),"writeOffset"in t&&(this.write=t.writeOffset)}w.DataBuffer=Cb;w.DataBuffer.prototype.length=function(){return this.write-this.read};w.DataBuffer.prototype.isEmpty=function(){return this.length()<=0};w.DataBuffer.prototype.accommodate=function(r,t){if(this.length()>=r)return this;t=Math.max(t||this.growSize,r);var e=new Uint8Array(this.data.buffer,this.data.byteOffset,this.data.byteLength),n=new Uint8Array(this.length()+t);return n.set(e),this.data=new DataView(n.buffer),this};w.DataBuffer.prototype.putByte=function(r){return this.accommodate(1),this.data.setUint8(this.write++,r),this};w.DataBuffer.prototype.fillWithByte=function(r,t){this.accommodate(t);for(var e=0;e<t;++e)this.data.setUint8(r);return this};w.DataBuffer.prototype.putBytes=function(r,t){if(w.isArrayBufferView(r)){var e=new Uint8Array(r.buffer,r.byteOffset,r.byteLength),n=e.byteLength-e.byteOffset;this.accommodate(n);var i=new Uint8Array(this.data.buffer,this.write);return i.set(e),this.write+=n,this}if(w.isArrayBuffer(r)){var e=new Uint8Array(r);this.accommodate(e.byteLength);var i=new Uint8Array(this.data.buffer);return i.set(e,this.write),this.write+=e.byteLength,this}if(r instanceof w.DataBuffer||typeof r=="object"&&typeof r.read=="number"&&typeof r.write=="number"&&w.isArrayBufferView(r.data)){var e=new Uint8Array(r.data.byteLength,r.read,r.length());this.accommodate(e.byteLength);var i=new Uint8Array(r.data.byteLength,this.write);return i.set(e),this.write+=e.byteLength,this}if(r instanceof w.ByteStringBuffer&&(r=r.data,t="binary"),t=t||"binary",typeof r=="string"){var o;if(t==="hex")return this.accommodate(Math.ceil(r.length/2)),o=new Uint8Array(this.data.buffer,this.write),this.write+=w.binary.hex.decode(r,o,this.write),this;if(t==="base64")return this.accommodate(Math.ceil(r.length/4)*3),o=new Uint8Array(this.data.buffer,this.write),this.write+=w.binary.base64.decode(r,o,this.write),this;if(t==="utf8"&&(r=w.encodeUtf8(r),t="binary"),t==="binary"||t==="raw")return this.accommodate(r.length),o=new Uint8Array(this.data.buffer,this.write),this.write+=w.binary.raw.decode(o),this;if(t==="utf16")return this.accommodate(r.length*2),o=new Uint16Array(this.data.buffer,this.write),this.write+=w.text.utf16.encode(o),this;throw new Error("Invalid encoding: "+t)}throw Error("Invalid parameter: "+r)};w.DataBuffer.prototype.putBuffer=function(r){return this.putBytes(r),r.clear(),this};w.DataBuffer.prototype.putString=function(r){return this.putBytes(r,"utf16")};w.DataBuffer.prototype.putInt16=function(r){return this.accommodate(2),this.data.setInt16(this.write,r),this.write+=2,this};w.DataBuffer.prototype.putInt24=function(r){return this.accommodate(3),this.data.setInt16(this.write,r>>8&65535),this.data.setInt8(this.write,r>>16&255),this.write+=3,this};w.DataBuffer.prototype.putInt32=function(r){return this.accommodate(4),this.data.setInt32(this.write,r),this.write+=4,this};w.DataBuffer.prototype.putInt16Le=function(r){return this.accommodate(2),this.data.setInt16(this.write,r,!0),this.write+=2,this};w.DataBuffer.prototype.putInt24Le=function(r){return this.accommodate(3),this.data.setInt8(this.write,r>>16&255),this.data.setInt16(this.write,r>>8&65535,!0),this.write+=3,this};w.DataBuffer.prototype.putInt32Le=function(r){return this.accommodate(4),this.data.setInt32(this.write,r,!0),this.write+=4,this};w.DataBuffer.prototype.putInt=function(r,t){Mo(t),this.accommodate(t/8);do t-=8,this.data.setInt8(this.write++,r>>t&255);while(t>0);return this};w.DataBuffer.prototype.putSignedInt=function(r,t){return Mo(t),this.accommodate(t/8),r<0&&(r+=2<<t-1),this.putInt(r,t)};w.DataBuffer.prototype.getByte=function(){return this.data.getInt8(this.read++)};w.DataBuffer.prototype.getInt16=function(){var r=this.data.getInt16(this.read);return this.read+=2,r};w.DataBuffer.prototype.getInt24=function(){var r=this.data.getInt16(this.read)<<8^this.data.getInt8(this.read+2);return this.read+=3,r};w.DataBuffer.prototype.getInt32=function(){var r=this.data.getInt32(this.read);return this.read+=4,r};w.DataBuffer.prototype.getInt16Le=function(){var r=this.data.getInt16(this.read,!0);return this.read+=2,r};w.DataBuffer.prototype.getInt24Le=function(){var r=this.data.getInt8(this.read)^this.data.getInt16(this.read+1,!0)<<8;return this.read+=3,r};w.DataBuffer.prototype.getInt32Le=function(){var r=this.data.getInt32(this.read,!0);return this.read+=4,r};w.DataBuffer.prototype.getInt=function(r){Mo(r);var t=0;do t=(t<<8)+this.data.getInt8(this.read++),r-=8;while(r>0);return t};w.DataBuffer.prototype.getSignedInt=function(r){var t=this.getInt(r),e=2<<r-2;return t>=e&&(t-=e<<1),t};w.DataBuffer.prototype.getBytes=function(r){var t;return r?(r=Math.min(this.length(),r),t=this.data.slice(this.read,this.read+r),this.read+=r):r===0?t="":(t=this.read===0?this.data:this.data.slice(this.read),this.clear()),t};w.DataBuffer.prototype.bytes=function(r){return typeof r>"u"?this.data.slice(this.read):this.data.slice(this.read,this.read+r)};w.DataBuffer.prototype.at=function(r){return this.data.getUint8(this.read+r)};w.DataBuffer.prototype.setAt=function(r,t){return this.data.setUint8(r,t),this};w.DataBuffer.prototype.last=function(){return this.data.getUint8(this.write-1)};w.DataBuffer.prototype.copy=function(){return new w.DataBuffer(this)};w.DataBuffer.prototype.compact=function(){if(this.read>0){var r=new Uint8Array(this.data.buffer,this.read),t=new Uint8Array(r.byteLength);t.set(r),this.data=new DataView(t),this.write-=this.read,this.read=0}return this};w.DataBuffer.prototype.clear=function(){return this.data=new DataView(new ArrayBuffer(0)),this.read=this.write=0,this};w.DataBuffer.prototype.truncate=function(r){return this.write=Math.max(0,this.length()-r),this.read=Math.min(this.read,this.write),this};w.DataBuffer.prototype.toHex=function(){for(var r="",t=this.read;t<this.data.byteLength;++t){var e=this.data.getUint8(t);e<16&&(r+="0"),r+=e.toString(16)}return r};w.DataBuffer.prototype.toString=function(r){var t=new Uint8Array(this.data,this.read,this.length());if(r=r||"utf8",r==="binary"||r==="raw")return w.binary.raw.encode(t);if(r==="hex")return w.binary.hex.encode(t);if(r==="base64")return w.binary.base64.encode(t);if(r==="utf8")return w.text.utf8.decode(t);if(r==="utf16")return w.text.utf16.decode(t);throw new Error("Invalid encoding: "+r)};w.createBuffer=function(r,t){return t=t||"raw",r!==void 0&&t==="utf8"&&(r=w.encodeUtf8(r)),new w.ByteBuffer(r)};w.fillString=function(r,t){for(var e="";t>0;)t&1&&(e+=r),t>>>=1,t>0&&(r+=r);return e};w.xorBytes=function(r,t,e){for(var n="",i="",o="",s=0,a=0;e>0;--e,++s)i=r.charCodeAt(s)^t.charCodeAt(s),a>=10&&(n+=o,o="",a=0),o+=String.fromCharCode(i),++a;return n+=o,n};w.hexToBytes=function(r){var t="",e=0;for(r.length&!0&&(e=1,t+=String.fromCharCode(parseInt(r[0],16)));e<r.length;e+=2)t+=String.fromCharCode(parseInt(r.substr(e,2),16));return t};w.bytesToHex=function(r){return w.createBuffer(r).toHex()};w.int32ToBytes=function(r){return String.fromCharCode(r>>24&255)+String.fromCharCode(r>>16&255)+String.fromCharCode(r>>8&255)+String.fromCharCode(r&255)};var hn="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",dn=[62,-1,-1,-1,63,52,53,54,55,56,57,58,59,60,61,-1,-1,-1,64,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,-1,-1,-1,-1,-1,-1,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51],sy="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";w.encode64=function(r,t){for(var e="",n="",i,o,s,a=0;a<r.length;)i=r.charCodeAt(a++),o=r.charCodeAt(a++),s=r.charCodeAt(a++),e+=hn.charAt(i>>2),e+=hn.charAt((i&3)<<4|o>>4),isNaN(o)?e+="==":(e+=hn.charAt((o&15)<<2|s>>6),e+=isNaN(s)?"=":hn.charAt(s&63)),t&&e.length>t&&(n+=e.substr(0,t)+`\r
26
- `,e=e.substr(t));return n+=e,n};w.decode64=function(r){r=r.replace(/[^A-Za-z0-9\+\/\=]/g,"");for(var t="",e,n,i,o,s=0;s<r.length;)e=dn[r.charCodeAt(s++)-43],n=dn[r.charCodeAt(s++)-43],i=dn[r.charCodeAt(s++)-43],o=dn[r.charCodeAt(s++)-43],t+=String.fromCharCode(e<<2|n>>4),i!==64&&(t+=String.fromCharCode((n&15)<<4|i>>2),o!==64&&(t+=String.fromCharCode((i&3)<<6|o)));return t};w.encodeUtf8=function(r){return unescape(encodeURIComponent(r))};w.decodeUtf8=function(r){return decodeURIComponent(escape(r))};w.binary={raw:{},hex:{},base64:{},base58:{},baseN:{encode:oy.encode,decode:oy.decode}};w.binary.raw.encode=function(r){return String.fromCharCode.apply(null,r)};w.binary.raw.decode=function(r,t,e){var n=t;n||(n=new Uint8Array(r.length)),e=e||0;for(var i=e,o=0;o<r.length;++o)n[i++]=r.charCodeAt(o);return t?i-e:n};w.binary.hex.encode=w.bytesToHex;w.binary.hex.decode=function(r,t,e){var n=t;n||(n=new Uint8Array(Math.ceil(r.length/2))),e=e||0;var i=0,o=e;for(r.length&1&&(i=1,n[o++]=parseInt(r[0],16));i<r.length;i+=2)n[o++]=parseInt(r.substr(i,2),16);return t?o-e:n};w.binary.base64.encode=function(r,t){for(var e="",n="",i,o,s,a=0;a<r.byteLength;)i=r[a++],o=r[a++],s=r[a++],e+=hn.charAt(i>>2),e+=hn.charAt((i&3)<<4|o>>4),isNaN(o)?e+="==":(e+=hn.charAt((o&15)<<2|s>>6),e+=isNaN(s)?"=":hn.charAt(s&63)),t&&e.length>t&&(n+=e.substr(0,t)+`\r
27
- `,e=e.substr(t));return n+=e,n};w.binary.base64.decode=function(r,t,e){var n=t;n||(n=new Uint8Array(Math.ceil(r.length/4)*3)),r=r.replace(/[^A-Za-z0-9\+\/\=]/g,""),e=e||0;for(var i,o,s,a,c=0,l=e;c<r.length;)i=dn[r.charCodeAt(c++)-43],o=dn[r.charCodeAt(c++)-43],s=dn[r.charCodeAt(c++)-43],a=dn[r.charCodeAt(c++)-43],n[l++]=i<<2|o>>4,s!==64&&(n[l++]=(o&15)<<4|s>>2,a!==64&&(n[l++]=(s&3)<<6|a));return t?l-e:n.subarray(0,l)};w.binary.base58.encode=function(r,t){return w.binary.baseN.encode(r,sy,t)};w.binary.base58.decode=function(r,t){return w.binary.baseN.decode(r,sy,t)};w.text={utf8:{},utf16:{}};w.text.utf8.encode=function(r,t,e){r=w.encodeUtf8(r);var n=t;n||(n=new Uint8Array(r.length)),e=e||0;for(var i=e,o=0;o<r.length;++o)n[i++]=r.charCodeAt(o);return t?i-e:n};w.text.utf8.decode=function(r){return w.decodeUtf8(String.fromCharCode.apply(null,r))};w.text.utf16.encode=function(r,t,e){var n=t;n||(n=new Uint8Array(r.length*2));var i=new Uint16Array(n.buffer);e=e||0;for(var o=e,s=e,a=0;a<r.length;++a)i[s++]=r.charCodeAt(a),o+=2;return t?o-e:n};w.text.utf16.decode=function(r){return String.fromCharCode.apply(null,new Uint16Array(r.buffer))};w.deflate=function(r,t,e){if(t=w.decode64(r.deflate(w.encode64(t)).rval),e){var n=2,i=t.charCodeAt(1);i&32&&(n=6),t=t.substring(n,t.length-4)}return t};w.inflate=function(r,t,e){var n=r.inflate(w.encode64(t)).rval;return n===null?null:w.decode64(n)};var Qu=function(r,t,e){if(!r)throw new Error("WebStorage not available.");var n;if(e===null?n=r.removeItem(t):(e=w.encode64(JSON.stringify(e)),n=r.setItem(t,e)),typeof n<"u"&&n.rval!==!0){var i=new Error(n.error.message);throw i.id=n.error.id,i.name=n.error.name,i}},Xu=function(r,t){if(!r)throw new Error("WebStorage not available.");var e=r.getItem(t);if(r.init)if(e.rval===null){if(e.error){var n=new Error(e.error.message);throw n.id=e.error.id,n.name=e.error.name,n}e=null}else e=e.rval;return e!==null&&(e=JSON.parse(w.decode64(e))),e},Db=function(r,t,e,n){var i=Xu(r,t);i===null&&(i={}),i[e]=n,Qu(r,t,i)},Pb=function(r,t,e){var n=Xu(r,t);return n!==null&&(n=e in n?n[e]:null),n},Lb=function(r,t,e){var n=Xu(r,t);if(n!==null&&e in n){delete n[e];var i=!0;for(var o in n){i=!1;break}i&&(n=null),Qu(r,t,n)}},Bb=function(r,t){Qu(r,t,null)},ka=function(r,t,e){var n=null;typeof e>"u"&&(e=["web","flash"]);var i,o=!1,s=null;for(var a in e){i=e[a];try{if(i==="flash"||i==="both"){if(t[0]===null)throw new Error("Flash local storage not available.");n=r.apply(this,t),o=i==="flash"}(i==="web"||i==="both")&&(t[0]=localStorage,n=r.apply(this,t),o=!0)}catch(c){s=c}if(o)break}if(!o)throw s;return n};w.setItem=function(r,t,e,n,i){ka(Db,arguments,i)};w.getItem=function(r,t,e,n){return ka(Pb,arguments,n)};w.removeItem=function(r,t,e,n){ka(Lb,arguments,n)};w.clearItems=function(r,t,e){ka(Bb,arguments,e)};w.isEmpty=function(r){for(var t in r)if(r.hasOwnProperty(t))return!1;return!0};w.format=function(r){for(var t=/%./g,e,n,i=0,o=[],s=0;e=t.exec(r);){n=r.substring(s,t.lastIndex-2),n.length>0&&o.push(n),s=t.lastIndex;var a=e[0][1];switch(a){case"s":case"o":i<arguments.length?o.push(arguments[i+++1]):o.push("<?>");break;case"%":o.push("%");break;default:o.push("<%"+a+"?>")}}return o.push(r.substring(s)),o.join("")};w.formatNumber=function(r,t,e,n){var i=r,o=isNaN(t=Math.abs(t))?2:t,s=e===void 0?",":e,a=n===void 0?".":n,c=i<0?"-":"",l=parseInt(i=Math.abs(+i||0).toFixed(o),10)+"",u=l.length>3?l.length%3:0;return c+(u?l.substr(0,u)+a:"")+l.substr(u).replace(/(\d{3})(?=\d)/g,"$1"+a)+(o?s+Math.abs(i-l).toFixed(o).slice(2):"")};w.formatSize=function(r){return r>=1073741824?r=w.formatNumber(r/1073741824,2,".","")+" GiB":r>=1048576?r=w.formatNumber(r/1048576,2,".","")+" MiB":r>=1024?r=w.formatNumber(r/1024,0)+" KiB":r=w.formatNumber(r,0)+" bytes",r};w.bytesFromIP=function(r){return r.indexOf(".")!==-1?w.bytesFromIPv4(r):r.indexOf(":")!==-1?w.bytesFromIPv6(r):null};w.bytesFromIPv4=function(r){if(r=r.split("."),r.length!==4)return null;for(var t=w.createBuffer(),e=0;e<r.length;++e){var n=parseInt(r[e],10);if(isNaN(n))return null;t.putByte(n)}return t.getBytes()};w.bytesFromIPv6=function(r){var t=0;r=r.split(":").filter(function(s){return s.length===0&&++t,!0});for(var e=(8-r.length+t)*2,n=w.createBuffer(),i=0;i<8;++i){if(!r[i]||r[i].length===0){n.fillWithByte(0,e),e=0;continue}var o=w.hexToBytes(r[i]);o.length<2&&n.putByte(0),n.putBytes(o)}return n.getBytes()};w.bytesToIP=function(r){return r.length===4?w.bytesToIPv4(r):r.length===16?w.bytesToIPv6(r):null};w.bytesToIPv4=function(r){if(r.length!==4)return null;for(var t=[],e=0;e<r.length;++e)t.push(r.charCodeAt(e));return t.join(".")};w.bytesToIPv6=function(r){if(r.length!==16)return null;for(var t=[],e=[],n=0,i=0;i<r.length;i+=2){for(var o=w.bytesToHex(r[i]+r[i+1]);o[0]==="0"&&o!=="0";)o=o.substr(1);if(o==="0"){var s=e[e.length-1],a=t.length;!s||a!==s.end+1?e.push({start:a,end:a}):(s.end=a,s.end-s.start>e[n].end-e[n].start&&(n=e.length-1))}t.push(o)}if(e.length>0){var c=e[n];c.end-c.start>0&&(t.splice(c.start,c.end-c.start+1,""),c.start===0&&t.unshift(""),c.end===7&&t.push(""))}return t.join(":")};w.estimateCores=function(r,t){if(typeof r=="function"&&(t=r,r={}),r=r||{},"cores"in w&&!r.update)return t(null,w.cores);if(typeof navigator<"u"&&"hardwareConcurrency"in navigator&&navigator.hardwareConcurrency>0)return w.cores=navigator.hardwareConcurrency,t(null,w.cores);if(typeof Worker>"u")return w.cores=1,t(null,w.cores);if(typeof Blob>"u")return w.cores=2,t(null,w.cores);var e=URL.createObjectURL(new Blob(["(",function(){self.addEventListener("message",function(s){for(var a=Date.now(),c=a+4;Date.now()<c;);self.postMessage({st:a,et:c})})}.toString(),")()"],{type:"application/javascript"}));n([],5,16);function n(s,a,c){if(a===0){var l=Math.floor(s.reduce(function(u,f){return u+f},0)/s.length);return w.cores=Math.max(1,l),URL.revokeObjectURL(e),t(null,w.cores)}i(c,function(u,f){s.push(o(c,f)),n(s,a-1,c)})}function i(s,a){for(var c=[],l=[],u=0;u<s;++u){var f=new Worker(e);f.addEventListener("message",function(d){if(l.push(d.data),l.length===s){for(var h=0;h<s;++h)c[h].terminate();a(null,l)}}),c.push(f)}for(var u=0;u<s;++u)c[u].postMessage(u)}function o(s,a){for(var c=[],l=0;l<s;++l)for(var u=a[l],f=c[l]=[],d=0;d<s;++d)if(l!==d){var h=a[d];(u.st>h.st&&u.st<h.et||h.st>u.st&&h.st<u.et)&&f.push(d)}return c.reduce(function(p,m){return Math.max(p,m.length)},0)}}});var Ma=T((JL,cy)=>{var Uo=yt();Uo.pki=Uo.pki||{};var Zu=cy.exports=Uo.pki.oids=Uo.oids=Uo.oids||{};function R(r,t){Zu[r]=t,Zu[t]=r}function dt(r,t){Zu[r]=t}R("1.2.840.113549.1.1.1","rsaEncryption");R("1.2.840.113549.1.1.4","md5WithRSAEncryption");R("1.2.840.113549.1.1.5","sha1WithRSAEncryption");R("1.2.840.113549.1.1.7","RSAES-OAEP");R("1.2.840.113549.1.1.8","mgf1");R("1.2.840.113549.1.1.9","pSpecified");R("1.2.840.113549.1.1.10","RSASSA-PSS");R("1.2.840.113549.1.1.11","sha256WithRSAEncryption");R("1.2.840.113549.1.1.12","sha384WithRSAEncryption");R("1.2.840.113549.1.1.13","sha512WithRSAEncryption");R("1.3.101.112","EdDSA25519");R("1.2.840.10040.4.3","dsa-with-sha1");R("1.3.14.3.2.7","desCBC");R("1.3.14.3.2.26","sha1");R("1.3.14.3.2.29","sha1WithRSASignature");R("2.16.840.1.101.3.4.2.1","sha256");R("2.16.840.1.101.3.4.2.2","sha384");R("2.16.840.1.101.3.4.2.3","sha512");R("2.16.840.1.101.3.4.2.4","sha224");R("2.16.840.1.101.3.4.2.5","sha512-224");R("2.16.840.1.101.3.4.2.6","sha512-256");R("1.2.840.113549.2.2","md2");R("1.2.840.113549.2.5","md5");R("1.2.840.113549.1.7.1","data");R("1.2.840.113549.1.7.2","signedData");R("1.2.840.113549.1.7.3","envelopedData");R("1.2.840.113549.1.7.4","signedAndEnvelopedData");R("1.2.840.113549.1.7.5","digestedData");R("1.2.840.113549.1.7.6","encryptedData");R("1.2.840.113549.1.9.1","emailAddress");R("1.2.840.113549.1.9.2","unstructuredName");R("1.2.840.113549.1.9.3","contentType");R("1.2.840.113549.1.9.4","messageDigest");R("1.2.840.113549.1.9.5","signingTime");R("1.2.840.113549.1.9.6","counterSignature");R("1.2.840.113549.1.9.7","challengePassword");R("1.2.840.113549.1.9.8","unstructuredAddress");R("1.2.840.113549.1.9.14","extensionRequest");R("1.2.840.113549.1.9.20","friendlyName");R("1.2.840.113549.1.9.21","localKeyId");R("1.2.840.113549.1.9.22.1","x509Certificate");R("1.2.840.113549.1.12.10.1.1","keyBag");R("1.2.840.113549.1.12.10.1.2","pkcs8ShroudedKeyBag");R("1.2.840.113549.1.12.10.1.3","certBag");R("1.2.840.113549.1.12.10.1.4","crlBag");R("1.2.840.113549.1.12.10.1.5","secretBag");R("1.2.840.113549.1.12.10.1.6","safeContentsBag");R("1.2.840.113549.1.5.13","pkcs5PBES2");R("1.2.840.113549.1.5.12","pkcs5PBKDF2");R("1.2.840.113549.1.12.1.1","pbeWithSHAAnd128BitRC4");R("1.2.840.113549.1.12.1.2","pbeWithSHAAnd40BitRC4");R("1.2.840.113549.1.12.1.3","pbeWithSHAAnd3-KeyTripleDES-CBC");R("1.2.840.113549.1.12.1.4","pbeWithSHAAnd2-KeyTripleDES-CBC");R("1.2.840.113549.1.12.1.5","pbeWithSHAAnd128BitRC2-CBC");R("1.2.840.113549.1.12.1.6","pbewithSHAAnd40BitRC2-CBC");R("1.2.840.113549.2.7","hmacWithSHA1");R("1.2.840.113549.2.8","hmacWithSHA224");R("1.2.840.113549.2.9","hmacWithSHA256");R("1.2.840.113549.2.10","hmacWithSHA384");R("1.2.840.113549.2.11","hmacWithSHA512");R("1.2.840.113549.3.7","des-EDE3-CBC");R("2.16.840.1.101.3.4.1.2","aes128-CBC");R("2.16.840.1.101.3.4.1.22","aes192-CBC");R("2.16.840.1.101.3.4.1.42","aes256-CBC");R("2.5.4.3","commonName");R("2.5.4.4","surname");R("2.5.4.5","serialNumber");R("2.5.4.6","countryName");R("2.5.4.7","localityName");R("2.5.4.8","stateOrProvinceName");R("2.5.4.9","streetAddress");R("2.5.4.10","organizationName");R("2.5.4.11","organizationalUnitName");R("2.5.4.12","title");R("2.5.4.13","description");R("2.5.4.15","businessCategory");R("2.5.4.17","postalCode");R("2.5.4.42","givenName");R("1.3.6.1.4.1.311.60.2.1.2","jurisdictionOfIncorporationStateOrProvinceName");R("1.3.6.1.4.1.311.60.2.1.3","jurisdictionOfIncorporationCountryName");R("2.16.840.1.113730.1.1","nsCertType");R("2.16.840.1.113730.1.13","nsComment");dt("2.5.29.1","authorityKeyIdentifier");dt("2.5.29.2","keyAttributes");dt("2.5.29.3","certificatePolicies");dt("2.5.29.4","keyUsageRestriction");dt("2.5.29.5","policyMapping");dt("2.5.29.6","subtreesConstraint");dt("2.5.29.7","subjectAltName");dt("2.5.29.8","issuerAltName");dt("2.5.29.9","subjectDirectoryAttributes");dt("2.5.29.10","basicConstraints");dt("2.5.29.11","nameConstraints");dt("2.5.29.12","policyConstraints");dt("2.5.29.13","basicConstraints");R("2.5.29.14","subjectKeyIdentifier");R("2.5.29.15","keyUsage");dt("2.5.29.16","privateKeyUsagePeriod");R("2.5.29.17","subjectAltName");R("2.5.29.18","issuerAltName");R("2.5.29.19","basicConstraints");dt("2.5.29.20","cRLNumber");dt("2.5.29.21","cRLReason");dt("2.5.29.22","expirationDate");dt("2.5.29.23","instructionCode");dt("2.5.29.24","invalidityDate");dt("2.5.29.25","cRLDistributionPoints");dt("2.5.29.26","issuingDistributionPoint");dt("2.5.29.27","deltaCRLIndicator");dt("2.5.29.28","issuingDistributionPoint");dt("2.5.29.29","certificateIssuer");dt("2.5.29.30","nameConstraints");R("2.5.29.31","cRLDistributionPoints");R("2.5.29.32","certificatePolicies");dt("2.5.29.33","policyMappings");dt("2.5.29.34","policyConstraints");R("2.5.29.35","authorityKeyIdentifier");dt("2.5.29.36","policyConstraints");R("2.5.29.37","extKeyUsage");dt("2.5.29.46","freshestCRL");dt("2.5.29.54","inhibitAnyPolicy");R("1.3.6.1.4.1.11129.2.4.2","timestampList");R("1.3.6.1.5.5.7.1.1","authorityInfoAccess");R("1.3.6.1.5.5.7.3.1","serverAuth");R("1.3.6.1.5.5.7.3.2","clientAuth");R("1.3.6.1.5.5.7.3.3","codeSigning");R("1.3.6.1.5.5.7.3.4","emailProtection");R("1.3.6.1.5.5.7.3.8","timeStamping")});var Ko=T((jL,uy)=>{var It=yt();zt();Ma();var P=uy.exports=It.asn1=It.asn1||{};P.Class={UNIVERSAL:0,APPLICATION:64,CONTEXT_SPECIFIC:128,PRIVATE:192};P.Type={NONE:0,BOOLEAN:1,INTEGER:2,BITSTRING:3,OCTETSTRING:4,NULL:5,OID:6,ODESC:7,EXTERNAL:8,REAL:9,ENUMERATED:10,EMBEDDED:11,UTF8:12,ROID:13,SEQUENCE:16,SET:17,PRINTABLESTRING:19,IA5STRING:22,UTCTIME:23,GENERALIZEDTIME:24,BMPSTRING:30};P.create=function(r,t,e,n,i){if(It.util.isArray(n)){for(var o=[],s=0;s<n.length;++s)n[s]!==void 0&&o.push(n[s]);n=o}var a={tagClass:r,type:t,constructed:e,composed:e||It.util.isArray(n),value:n};return i&&"bitStringContents"in i&&(a.bitStringContents=i.bitStringContents,a.original=P.copy(a)),a};P.copy=function(r,t){var e;if(It.util.isArray(r)){e=[];for(var n=0;n<r.length;++n)e.push(P.copy(r[n],t));return e}return typeof r=="string"?r:(e={tagClass:r.tagClass,type:r.type,constructed:r.constructed,composed:r.composed,value:P.copy(r.value,t)},t&&!t.excludeBitStringContents&&(e.bitStringContents=r.bitStringContents),e)};P.equals=function(r,t,e){if(It.util.isArray(r)){if(!It.util.isArray(t)||r.length!==t.length)return!1;for(var n=0;n<r.length;++n)if(!P.equals(r[n],t[n]))return!1;return!0}if(typeof r!=typeof t)return!1;if(typeof r=="string")return r===t;var i=r.tagClass===t.tagClass&&r.type===t.type&&r.constructed===t.constructed&&r.composed===t.composed&&P.equals(r.value,t.value);return e&&e.includeBitStringContents&&(i=i&&r.bitStringContents===t.bitStringContents),i};P.getBerValueLength=function(r){var t=r.getByte();if(t!==128){var e,n=t&128;return n?e=r.getInt((t&127)<<3):e=t,e}};function Fo(r,t,e){if(e>t){var n=new Error("Too few bytes to parse DER.");throw n.available=r.length(),n.remaining=t,n.requested=e,n}}var Nb=function(r,t){var e=r.getByte();if(t--,e!==128){var n,i=e&128;if(!i)n=e;else{var o=e&127;Fo(r,t,o),n=r.getInt(o<<3)}if(n<0)throw new Error("Negative length: "+n);return n}};P.fromDer=function(r,t){t===void 0&&(t={strict:!0,parseAllBytes:!0,decodeBitStrings:!0}),typeof t=="boolean"&&(t={strict:t,parseAllBytes:!0,decodeBitStrings:!0}),"strict"in t||(t.strict=!0),"parseAllBytes"in t||(t.parseAllBytes=!0),"decodeBitStrings"in t||(t.decodeBitStrings=!0),typeof r=="string"&&(r=It.util.createBuffer(r));var e=r.length(),n=Ua(r,r.length(),0,t);if(t.parseAllBytes&&r.length()!==0){var i=new Error("Unparsed DER bytes remain after ASN.1 parsing.");throw i.byteCount=e,i.remaining=r.length(),i}return n};function Ua(r,t,e,n){var i;Fo(r,t,2);var o=r.getByte();t--;var s=o&192,a=o&31;i=r.length();var c=Nb(r,t);if(t-=i-r.length(),c!==void 0&&c>t){if(n.strict){var l=new Error("Too few bytes to read ASN.1 value.");throw l.available=r.length(),l.remaining=t,l.requested=c,l}c=t}var u,f,d=(o&32)===32;if(d)if(u=[],c===void 0)for(;;){if(Fo(r,t,2),r.bytes(2)===String.fromCharCode(0,0)){r.getBytes(2),t-=2;break}i=r.length(),u.push(Ua(r,t,e+1,n)),t-=i-r.length()}else for(;c>0;)i=r.length(),u.push(Ua(r,c,e+1,n)),t-=i-r.length(),c-=i-r.length();if(u===void 0&&s===P.Class.UNIVERSAL&&a===P.Type.BITSTRING&&(f=r.bytes(c)),u===void 0&&n.decodeBitStrings&&s===P.Class.UNIVERSAL&&a===P.Type.BITSTRING&&c>1){var h=r.read,p=t,m=0;if(a===P.Type.BITSTRING&&(Fo(r,t,1),m=r.getByte(),t--),m===0)try{i=r.length();var y={strict:!0,decodeBitStrings:!0},g=Ua(r,t,e+1,y),E=i-r.length();t-=E,a==P.Type.BITSTRING&&E++;var _=g.tagClass;E===c&&(_===P.Class.UNIVERSAL||_===P.Class.CONTEXT_SPECIFIC)&&(u=[g])}catch{}u===void 0&&(r.read=h,t=p)}if(u===void 0){if(c===void 0){if(n.strict)throw new Error("Non-constructed ASN.1 object of indefinite length.");c=t}if(a===P.Type.BMPSTRING)for(u="";c>0;c-=2)Fo(r,t,2),u+=String.fromCharCode(r.getInt16()),t-=2;else u=r.getBytes(c),t-=c}var k=f===void 0?null:{bitStringContents:f};return P.create(s,a,d,u,k)}P.toDer=function(r){var t=It.util.createBuffer(),e=r.tagClass|r.type,n=It.util.createBuffer(),i=!1;if("bitStringContents"in r&&(i=!0,r.original&&(i=P.equals(r,r.original))),i)n.putBytes(r.bitStringContents);else if(r.composed){r.constructed?e|=32:n.putByte(0);for(var o=0;o<r.value.length;++o)r.value[o]!==void 0&&n.putBuffer(P.toDer(r.value[o]))}else if(r.type===P.Type.BMPSTRING)for(var o=0;o<r.value.length;++o)n.putInt16(r.value.charCodeAt(o));else r.type===P.Type.INTEGER&&r.value.length>1&&(r.value.charCodeAt(0)===0&&!(r.value.charCodeAt(1)&128)||r.value.charCodeAt(0)===255&&(r.value.charCodeAt(1)&128)===128)?n.putBytes(r.value.substr(1)):n.putBytes(r.value);if(t.putByte(e),n.length()<=127)t.putByte(n.length()&127);else{var s=n.length(),a="";do a+=String.fromCharCode(s&255),s=s>>>8;while(s>0);t.putByte(a.length|128);for(var o=a.length-1;o>=0;--o)t.putByte(a.charCodeAt(o))}return t.putBuffer(n),t};P.oidToDer=function(r){var t=r.split("."),e=It.util.createBuffer();e.putByte(40*parseInt(t[0],10)+parseInt(t[1],10));for(var n,i,o,s,a=2;a<t.length;++a){n=!0,i=[],o=parseInt(t[a],10);do s=o&127,o=o>>>7,n||(s|=128),i.push(s),n=!1;while(o>0);for(var c=i.length-1;c>=0;--c)e.putByte(i[c])}return e};P.derToOid=function(r){var t;typeof r=="string"&&(r=It.util.createBuffer(r));var e=r.getByte();t=Math.floor(e/40)+"."+e%40;for(var n=0;r.length()>0;)e=r.getByte(),n=n<<7,e&128?n+=e&127:(t+="."+(n+e),n=0);return t};P.utcTimeToDate=function(r){var t=new Date,e=parseInt(r.substr(0,2),10);e=e>=50?1900+e:2e3+e;var n=parseInt(r.substr(2,2),10)-1,i=parseInt(r.substr(4,2),10),o=parseInt(r.substr(6,2),10),s=parseInt(r.substr(8,2),10),a=0;if(r.length>11){var c=r.charAt(10),l=10;c!=="+"&&c!=="-"&&(a=parseInt(r.substr(10,2),10),l+=2)}if(t.setUTCFullYear(e,n,i),t.setUTCHours(o,s,a,0),l&&(c=r.charAt(l),c==="+"||c==="-")){var u=parseInt(r.substr(l+1,2),10),f=parseInt(r.substr(l+4,2),10),d=u*60+f;d*=6e4,c==="+"?t.setTime(+t-d):t.setTime(+t+d)}return t};P.generalizedTimeToDate=function(r){var t=new Date,e=parseInt(r.substr(0,4),10),n=parseInt(r.substr(4,2),10)-1,i=parseInt(r.substr(6,2),10),o=parseInt(r.substr(8,2),10),s=parseInt(r.substr(10,2),10),a=parseInt(r.substr(12,2),10),c=0,l=0,u=!1;r.charAt(r.length-1)==="Z"&&(u=!0);var f=r.length-5,d=r.charAt(f);if(d==="+"||d==="-"){var h=parseInt(r.substr(f+1,2),10),p=parseInt(r.substr(f+4,2),10);l=h*60+p,l*=6e4,d==="+"&&(l*=-1),u=!0}return r.charAt(14)==="."&&(c=parseFloat(r.substr(14),10)*1e3),u?(t.setUTCFullYear(e,n,i),t.setUTCHours(o,s,a,c),t.setTime(+t+l)):(t.setFullYear(e,n,i),t.setHours(o,s,a,c)),t};P.dateToUtcTime=function(r){if(typeof r=="string")return r;var t="",e=[];e.push((""+r.getUTCFullYear()).substr(2)),e.push(""+(r.getUTCMonth()+1)),e.push(""+r.getUTCDate()),e.push(""+r.getUTCHours()),e.push(""+r.getUTCMinutes()),e.push(""+r.getUTCSeconds());for(var n=0;n<e.length;++n)e[n].length<2&&(t+="0"),t+=e[n];return t+="Z",t};P.dateToGeneralizedTime=function(r){if(typeof r=="string")return r;var t="",e=[];e.push(""+r.getUTCFullYear()),e.push(""+(r.getUTCMonth()+1)),e.push(""+r.getUTCDate()),e.push(""+r.getUTCHours()),e.push(""+r.getUTCMinutes()),e.push(""+r.getUTCSeconds());for(var n=0;n<e.length;++n)e[n].length<2&&(t+="0"),t+=e[n];return t+="Z",t};P.integerToDer=function(r){var t=It.util.createBuffer();if(r>=-128&&r<128)return t.putSignedInt(r,8);if(r>=-32768&&r<32768)return t.putSignedInt(r,16);if(r>=-8388608&&r<8388608)return t.putSignedInt(r,24);if(r>=-2147483648&&r<2147483648)return t.putSignedInt(r,32);var e=new Error("Integer too large; max is 32-bits.");throw e.integer=r,e};P.derToInteger=function(r){typeof r=="string"&&(r=It.util.createBuffer(r));var t=r.length()*8;if(t>32)throw new Error("Integer too large; max is 32-bits.");return r.getSignedInt(t)};P.validate=function(r,t,e,n){var i=!1;if((r.tagClass===t.tagClass||typeof t.tagClass>"u")&&(r.type===t.type||typeof t.type>"u"))if(r.constructed===t.constructed||typeof t.constructed>"u"){if(i=!0,t.value&&It.util.isArray(t.value))for(var o=0,s=0;i&&s<t.value.length;++s)i=t.value[s].optional||!1,r.value[o]&&(i=P.validate(r.value[o],t.value[s],e,n),i?++o:t.value[s].optional&&(i=!0)),!i&&n&&n.push("["+t.name+'] Tag class "'+t.tagClass+'", type "'+t.type+'" expected value length "'+t.value.length+'", got "'+r.value.length+'"');if(i&&e&&(t.capture&&(e[t.capture]=r.value),t.captureAsn1&&(e[t.captureAsn1]=r),t.captureBitStringContents&&"bitStringContents"in r&&(e[t.captureBitStringContents]=r.bitStringContents),t.captureBitStringValue&&"bitStringContents"in r)){var a;if(r.bitStringContents.length<2)e[t.captureBitStringValue]="";else{var c=r.bitStringContents.charCodeAt(0);if(c!==0)throw new Error("captureBitStringValue only supported for zero unused bits");e[t.captureBitStringValue]=r.bitStringContents.slice(1)}}}else n&&n.push("["+t.name+'] Expected constructed "'+t.constructed+'", got "'+r.constructed+'"');else n&&(r.tagClass!==t.tagClass&&n.push("["+t.name+'] Expected tag class "'+t.tagClass+'", got "'+r.tagClass+'"'),r.type!==t.type&&n.push("["+t.name+'] Expected type "'+t.type+'", got "'+r.type+'"'));return i};var ly=/[^\\u0000-\\u00ff]/;P.prettyPrint=function(r,t,e){var n="";t=t||0,e=e||2,t>0&&(n+=`
24
+ SELECT points, expire FROM ${this.tableName} WHERE key = $1 AND (expire > $2 OR expire IS NULL);`,values:[t,Date.now()]}).then(i=>{i.rowCount===0&&(i=null),e(i)}).catch(i=>{n(i)})}):Promise.reject(Error("Table is not created yet"))}_delete(t){return this.tableCreated?this._query({name:"rlflx-delete",text:`DELETE FROM ${this.tableName} WHERE key = $1`,values:[t]}).then(e=>e.rowCount>0):Promise.reject(Error("Table is not created yet"))}};k0.exports=iu});var U0=T(()=>{});var Vn=T(()=>{});var K0=T((w4,F0)=>{F0.exports=class{constructor(t,e,n=null){this.value=t,this.expiresAt=e,this.timeoutId=n}get value(){return this._value}set value(t){this._value=parseInt(t)}get expiresAt(){return this._expiresAt}set expiresAt(t){!(t instanceof Date)&&Number.isInteger(t)&&(t=new Date(t)),this._expiresAt=t}get timeoutId(){return this._timeoutId}set timeoutId(t){this._timeoutId=t}}});var q0=T((x4,V0)=>{var Qv=K0(),ou=Ae();V0.exports=class{constructor(){this._storage={}}incrby(t,e,n){if(this._storage[t]){let i=this._storage[t].expiresAt?this._storage[t].expiresAt.getTime()-new Date().getTime():-1;return i!==0?(this._storage[t].value=this._storage[t].value+e,new ou(0,i,this._storage[t].value,!1)):this.set(t,e,n)}return this.set(t,e,n)}set(t,e,n){let i=n*1e3;return this._storage[t]&&this._storage[t].timeoutId&&clearTimeout(this._storage[t].timeoutId),this._storage[t]=new Qv(e,i>0?new Date(Date.now()+i):null),i>0&&(this._storage[t].timeoutId=setTimeout(()=>{delete this._storage[t]},i),this._storage[t].timeoutId.unref&&this._storage[t].timeoutId.unref()),new ou(0,i===0?-1:i,this._storage[t].value,!0)}get(t){if(this._storage[t]){let e=this._storage[t].expiresAt?this._storage[t].expiresAt.getTime()-new Date().getTime():-1;return new ou(0,e,this._storage[t].value,!1)}return null}delete(t){return this._storage[t]?(this._storage[t].timeoutId&&clearTimeout(this._storage[t].timeoutId),delete this._storage[t],!0):!1}}});var au=T((v4,$0)=>{var Xv=So(),Zv=q0(),H0=Ae(),su=class extends Xv{constructor(t={}){super(t),this._memoryStorage=new Zv}consume(t,e=1,n={}){return new Promise((i,o)=>{let s=this.getKey(t),a=this._getKeySecDuration(n),c=this._memoryStorage.incrby(s,e,a);if(c.remainingPoints=Math.max(this.points-c.consumedPoints,0),c.consumedPoints>this.points)this.blockDuration>0&&c.consumedPoints<=this.points+e&&(c=this._memoryStorage.set(s,c.consumedPoints,this.blockDuration)),o(c);else if(this.execEvenly&&c.msBeforeNext>0&&!c.isFirstInDuration){let l=Math.ceil(c.msBeforeNext/(c.remainingPoints+2));l<this.execEvenlyMinDelayMs&&(l=c.consumedPoints*this.execEvenlyMinDelayMs),setTimeout(i,l,c)}else i(c)})}penalty(t,e=1,n={}){let i=this.getKey(t);return new Promise(o=>{let s=this._getKeySecDuration(n),a=this._memoryStorage.incrby(i,e,s);a.remainingPoints=Math.max(this.points-a.consumedPoints,0),o(a)})}reward(t,e=1,n={}){let i=this.getKey(t);return new Promise(o=>{let s=this._getKeySecDuration(n),a=this._memoryStorage.incrby(i,-e,s);a.remainingPoints=Math.max(this.points-a.consumedPoints,0),o(a)})}block(t,e){let n=e*1e3,i=this.points+1;return this._memoryStorage.set(this.getKey(t),i,e),Promise.resolve(new H0(0,n===0?-1:n,i))}set(t,e,n){let i=(n>=0?n:this.duration)*1e3;return this._memoryStorage.set(this.getKey(t),e,n),Promise.resolve(new H0(0,i===0?-1:i,e))}get(t){let e=this._memoryStorage.get(this.getKey(t));return e!==null&&(e.remainingPoints=Math.max(this.points-e.consumedPoints,0)),Promise.resolve(e)}delete(t){return Promise.resolve(this._memoryStorage.delete(this.getKey(t)))}};$0.exports=su});var Z0=T((b4,X0)=>{var z0=U0(),Jv=Vn(),jv=So(),Y0=au(),t2=Ae(),Oe="rate_limiter_flexible",ki=null,G0=function(r,t,e,n){let i;n===null||n===!0||n===!1?i=n:i={remainingPoints:n.remainingPoints,msBeforeNext:n.msBeforeNext,consumedPoints:n.consumedPoints,isFirstInDuration:n.isFirstInDuration},r.send({channel:Oe,keyPrefix:t.keyPrefix,promiseId:t.promiseId,type:e,data:i})},W0=function(r){setTimeout(()=>{this._initiated?process.send(r):typeof this._promises[r.promiseId]<"u"&&W0.call(this,r)},30)},Ni=function(r,t,e,n,i){let o={channel:Oe,keyPrefix:this.keyPrefix,func:r,promiseId:t,data:{key:e,arg:n,opts:i}};this._initiated?process.send(o):W0.call(this,o)},Q0=function(r,t){if(!t||t.channel!==Oe||typeof this._rateLimiters[t.keyPrefix]>"u")return!1;let e;switch(t.func){case"consume":e=this._rateLimiters[t.keyPrefix].consume(t.data.key,t.data.arg,t.data.opts);break;case"penalty":e=this._rateLimiters[t.keyPrefix].penalty(t.data.key,t.data.arg,t.data.opts);break;case"reward":e=this._rateLimiters[t.keyPrefix].reward(t.data.key,t.data.arg,t.data.opts);break;case"block":e=this._rateLimiters[t.keyPrefix].block(t.data.key,t.data.arg,t.data.opts);break;case"get":e=this._rateLimiters[t.keyPrefix].get(t.data.key,t.data.opts);break;case"delete":e=this._rateLimiters[t.keyPrefix].delete(t.data.key,t.data.opts);break;default:return!1}e&&e.then(n=>{G0(r,t,"resolve",n)}).catch(n=>{G0(r,t,"reject",n)})},e2=function(r){if(!r||r.channel!==Oe||r.keyPrefix!==this.keyPrefix)return!1;if(this._promises[r.promiseId]){clearTimeout(this._promises[r.promiseId].timeoutId);let t;switch(r.data===null||r.data===!0||r.data===!1?t=r.data:t=new t2(r.data.remainingPoints,r.data.msBeforeNext,r.data.consumedPoints,r.data.isFirstInDuration),r.type){case"resolve":this._promises[r.promiseId].resolve(t);break;case"reject":this._promises[r.promiseId].reject(t);break;default:throw new Error(`RateLimiterCluster: no such message type '${r.type}'`)}delete this._promises[r.promiseId]}},r2=function(){return{points:this.points,duration:this.duration,blockDuration:this.blockDuration,execEvenly:this.execEvenly,execEvenlyMinDelayMs:this.execEvenlyMinDelayMs,keyPrefix:this.keyPrefix}},Oi=function(r,t){let e=process.hrtime(),n=e[0].toString()+e[1].toString();return typeof this._promises[n]<"u"&&(n+=Jv.randomBytes(12).toString("base64")),this._promises[n]={resolve:r,reject:t,timeoutId:setTimeout(()=>{delete this._promises[n],t(new Error("RateLimiterCluster timeout: no answer from master in time"))},this.timeoutMs)},n},cu=class{constructor(){if(ki)return ki;this._rateLimiters={},z0.setMaxListeners(0),z0.on("message",(t,e)=>{e&&e.channel===Oe&&e.type==="init"?(typeof this._rateLimiters[e.opts.keyPrefix]>"u"&&(this._rateLimiters[e.opts.keyPrefix]=new Y0(e.opts)),t.send({channel:Oe,type:"init",keyPrefix:e.opts.keyPrefix})):Q0.call(this,t,e)}),ki=this}},lu=class{constructor(t){if(ki)return ki;this._rateLimiters={},t.launchBus((e,n)=>{n.on("process:msg",i=>{let o=i.raw;if(o&&o.channel===Oe&&o.type==="init")typeof this._rateLimiters[o.opts.keyPrefix]>"u"&&(this._rateLimiters[o.opts.keyPrefix]=new Y0(o.opts)),t.sendDataToProcessId(i.process.pm_id,{data:{},topic:Oe,channel:Oe,type:"init",keyPrefix:o.opts.keyPrefix},(s,a)=>{s&&console.log(s,a)});else{let s={send:a=>{let c=a;c.topic=Oe,typeof c.data>"u"&&(c.data={}),t.sendDataToProcessId(i.process.pm_id,c,(l,u)=>{l&&console.log(l,u)})}};Q0.call(this,s,o)}})}),ki=this}},uu=class extends jv{get timeoutMs(){return this._timeoutMs}set timeoutMs(t){this._timeoutMs=typeof t>"u"?5e3:Math.abs(parseInt(t))}constructor(t={}){super(t),process.setMaxListeners(0),this.timeoutMs=t.timeoutMs,this._initiated=!1,process.on("message",e=>{e&&e.channel===Oe&&e.type==="init"&&e.keyPrefix===this.keyPrefix?this._initiated=!0:e2.call(this,e)}),process.send({channel:Oe,type:"init",opts:r2.call(this)}),this._promises={}}consume(t,e=1,n={}){return new Promise((i,o)=>{let s=Oi.call(this,i,o);Ni.call(this,"consume",s,t,e,n)})}penalty(t,e=1,n={}){return new Promise((i,o)=>{let s=Oi.call(this,i,o);Ni.call(this,"penalty",s,t,e,n)})}reward(t,e=1,n={}){return new Promise((i,o)=>{let s=Oi.call(this,i,o);Ni.call(this,"reward",s,t,e,n)})}block(t,e,n={}){return new Promise((i,o)=>{let s=Oi.call(this,i,o);Ni.call(this,"block",s,t,e,n)})}get(t,e={}){return new Promise((n,i)=>{let o=Oi.call(this,n,i);Ni.call(this,"get",o,t,e)})}delete(t,e={}){return new Promise((n,i)=>{let o=Oi.call(this,n,i);Ni.call(this,"delete",o,t,e)})}};X0.exports={RateLimiterClusterMaster:cu,RateLimiterClusterMasterPM2:lu,RateLimiterCluster:uu}});var j0=T((_4,J0)=>{var n2=Bi(),i2=Ae(),fu=class extends n2{constructor(t){super(t),this.client=t.storeClient}_getRateLimiterRes(t,e,n){let i=new i2;return i.consumedPoints=parseInt(n.consumedPoints),i.isFirstInDuration=n.consumedPoints===e,i.remainingPoints=Math.max(this.points-i.consumedPoints,0),i.msBeforeNext=n.msBeforeNext,i}_upsert(t,e,n,i=!1,o={}){return new Promise((s,a)=>{let c=Date.now(),l=Math.floor(n/1e3);i?this.client.set(t,e,l,u=>{u?a(u):this.client.set(`${t}_expire`,l>0?c+l*1e3:-1,l,()=>{let f={consumedPoints:e,msBeforeNext:l>0?l*1e3:-1};s(f)})}):this.client.incr(t,e,(u,f)=>{u||f===!1?this.client.add(t,e,l,(d,h)=>{if(d||!h)if(typeof o.attemptNumber>"u"||o.attemptNumber<3){let p=Object.assign({},o);p.attemptNumber=p.attemptNumber?p.attemptNumber+1:1,this._upsert(t,e,n,i,p).then(m=>s(m)).catch(m=>a(m))}else a(new Error("Can not add key"));else this.client.add(`${t}_expire`,l>0?c+l*1e3:-1,l,()=>{let p={consumedPoints:e,msBeforeNext:l>0?l*1e3:-1};s(p)})}):this.client.get(`${t}_expire`,(d,h)=>{if(d)a(d);else{let p=h===!1?0:h,m={consumedPoints:f,msBeforeNext:p>=0?Math.max(p-c,0):-1};s(m)}})})})}_get(t){return new Promise((e,n)=>{let i=Date.now();this.client.get(t,(o,s)=>{s?this.client.get(`${t}_expire`,(a,c)=>{if(a)n(a);else{let l=c===!1?0:c,u={consumedPoints:s,msBeforeNext:l>=0?Math.max(l-i,0):-1};e(u)}}):e(null)})})}_delete(t){return new Promise((e,n)=>{this.client.del(t,(i,o)=>{i?n(i):o===!1?e(o):this.client.del(`${t}_expire`,s=>{s?n(s):e(o)})})})}};J0.exports=fu});var rp=T((A4,ep)=>{var tp=Ae();ep.exports=class{constructor(t={}){this.limiter=t.limiter,this.blackList=t.blackList,this.whiteList=t.whiteList,this.isBlackListed=t.isBlackListed,this.isWhiteListed=t.isWhiteListed,this.runActionAnyway=t.runActionAnyway}get limiter(){return this._limiter}set limiter(t){if(typeof t>"u")throw new Error("limiter is not set");this._limiter=t}get runActionAnyway(){return this._runActionAnyway}set runActionAnyway(t){this._runActionAnyway=typeof t>"u"?!1:t}get blackList(){return this._blackList}set blackList(t){this._blackList=Array.isArray(t)?t:[]}get isBlackListed(){return this._isBlackListed}set isBlackListed(t){if(typeof t>"u"&&(t=()=>!1),typeof t!="function")throw new Error("isBlackListed must be function");this._isBlackListed=t}get whiteList(){return this._whiteList}set whiteList(t){this._whiteList=Array.isArray(t)?t:[]}get isWhiteListed(){return this._isWhiteListed}set isWhiteListed(t){if(typeof t>"u"&&(t=()=>!1),typeof t!="function")throw new Error("isWhiteListed must be function");this._isWhiteListed=t}isBlackListedSomewhere(t){return this.blackList.indexOf(t)>=0||this.isBlackListed(t)}isWhiteListedSomewhere(t){return this.whiteList.indexOf(t)>=0||this.isWhiteListed(t)}getBlackRes(){return new tp(0,Number.MAX_SAFE_INTEGER,0,!1)}getWhiteRes(){return new tp(Number.MAX_SAFE_INTEGER,0,0,!1)}rejectBlack(){return Promise.reject(this.getBlackRes())}resolveBlack(){return Promise.resolve(this.getBlackRes())}resolveWhite(){return Promise.resolve(this.getWhiteRes())}consume(t,e=1){let n;return this.isWhiteListedSomewhere(t)?n=this.resolveWhite():this.isBlackListedSomewhere(t)&&(n=this.rejectBlack()),typeof n>"u"?this.limiter.consume(t,e):(this.runActionAnyway&&this.limiter.consume(t,e).catch(()=>{}),n)}block(t,e){let n;return this.isWhiteListedSomewhere(t)?n=this.resolveWhite():this.isBlackListedSomewhere(t)&&(n=this.resolveBlack()),typeof n>"u"?this.limiter.block(t,e):(this.runActionAnyway&&this.limiter.block(t,e).catch(()=>{}),n)}penalty(t,e){let n;return this.isWhiteListedSomewhere(t)?n=this.resolveWhite():this.isBlackListedSomewhere(t)&&(n=this.resolveBlack()),typeof n>"u"?this.limiter.penalty(t,e):(this.runActionAnyway&&this.limiter.penalty(t,e).catch(()=>{}),n)}reward(t,e){let n;return this.isWhiteListedSomewhere(t)?n=this.resolveWhite():this.isBlackListedSomewhere(t)&&(n=this.resolveBlack()),typeof n>"u"?this.limiter.reward(t,e):(this.runActionAnyway&&this.limiter.reward(t,e).catch(()=>{}),n)}get(t){let e;return this.isWhiteListedSomewhere(t)?e=this.resolveWhite():this.isBlackListedSomewhere(t)&&(e=this.resolveBlack()),typeof e>"u"||this.runActionAnyway?this.limiter.get(t):e}delete(t){return this.limiter.delete(t)}}});var ip=T((I4,np)=>{var o2=So();np.exports=class{constructor(...t){if(t.length<1)throw new Error("RateLimiterUnion: at least one limiter have to be passed");t.forEach(e=>{if(!(e instanceof o2))throw new Error("RateLimiterUnion: all limiters have to be instance of RateLimiterAbstract")}),this._limiters=t}consume(t,e=1){return new Promise((n,i)=>{let o=[];this._limiters.forEach(s=>{o.push(s.consume(t,e).catch(a=>({rejected:!0,rej:a})))}),Promise.all(o).then(s=>{let a={},c=!1;s.forEach(l=>{l.rejected===!0&&(c=!0)});for(let l=0;l<s.length;l++)c&&s[l].rejected===!0?a[this._limiters[l].keyPrefix]=s[l].rej:c||(a[this._limiters[l].keyPrefix]=s[l]);c?i(a):n(a)})})}}});var sp=T((C4,op)=>{op.exports=class extends Error{constructor(t,e){super(),Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor),this.name="CustomError",this.message=t,e&&(this.extra=e)}}});var up=T((P4,lp)=>{var ap=sp(),cp=4294967295,hu="limiter";lp.exports=class{constructor(t,e={maxQueueSize:cp}){this._queueLimiters={KEY_DEFAULT:new aa(t,e)},this._limiterFlexible=t,this._maxQueueSize=e.maxQueueSize}getTokensRemaining(t=hu){return this._queueLimiters[t]?this._queueLimiters[t].getTokensRemaining():Promise.resolve(this._limiterFlexible.points)}removeTokens(t,e=hu){return this._queueLimiters[e]||(this._queueLimiters[e]=new aa(this._limiterFlexible,{key:e,maxQueueSize:this._maxQueueSize})),this._queueLimiters[e].removeTokens(t)}};var aa=class{constructor(t,e={maxQueueSize:cp,key:hu}){this._key=e.key,this._waitTimeout=null,this._queue=[],this._limiterFlexible=t,this._maxQueueSize=e.maxQueueSize}getTokensRemaining(){return this._limiterFlexible.get(this._key).then(t=>t!==null?t.remainingPoints:this._limiterFlexible.points)}removeTokens(t){let e=this;return new Promise((n,i)=>{if(t>e._limiterFlexible.points){i(new ap(`Requested tokens ${t} exceeds maximum ${e._limiterFlexible.points} tokens per interval`));return}e._queue.length>0?e._queueRequest.call(e,n,i,t):e._limiterFlexible.consume(e._key,t).then(o=>{n(o.remainingPoints)}).catch(o=>{o instanceof Error?i(o):(e._queueRequest.call(e,n,i,t),e._waitTimeout===null&&(e._waitTimeout=setTimeout(e._processFIFO.bind(e),o.msBeforeNext)))})})}_queueRequest(t,e,n){let i=this;i._queue.length<i._maxQueueSize?i._queue.push({resolve:t,reject:e,tokens:n}):e(new ap(`Number of requests reached it's maximum ${i._maxQueueSize}`))}_processFIFO(){let t=this;if(t._waitTimeout!==null&&(clearTimeout(t._waitTimeout),t._waitTimeout=null),t._queue.length===0)return;let e=t._queue.shift();t._limiterFlexible.consume(t._key,e.tokens).then(n=>{e.resolve(n.remainingPoints),t._processFIFO.call(t)}).catch(n=>{n instanceof Error?(e.reject(n),t._processFIFO.call(t)):(t._queue.unshift(e),t._waitTimeout===null&&(t._waitTimeout=setTimeout(t._processFIFO.bind(t),n.msBeforeNext)))})}}});var hp=T((B4,fp)=>{var du=Ae();fp.exports=class{constructor(t,e){this._rateLimiter=t,this._burstLimiter=e}_combineRes(t,e){return new du(t.remainingPoints,Math.min(t.msBeforeNext,e.msBeforeNext),t.consumedPoints,t.isFirstInDuration)}consume(t,e=1,n={}){return this._rateLimiter.consume(t,e,n).catch(i=>i instanceof du?this._burstLimiter.consume(t,e,n).then(o=>Promise.resolve(this._combineRes(i,o))).catch(o=>o instanceof du?Promise.reject(this._combineRes(i,o)):Promise.reject(o)):Promise.reject(i))}get(t){return Promise.all([this._rateLimiter.get(t),this._burstLimiter.get(t)]).then(([e,n])=>this._combineRes(e,n))}get points(){return this._rateLimiter.points}}});var pp=T((N4,dp)=>{var s2=D0(),a2=B0(),c2=O0(),l2=M0(),{RateLimiterClusterMaster:u2,RateLimiterClusterMasterPM2:f2,RateLimiterCluster:h2}=Z0(),d2=au(),p2=j0(),m2=rp(),y2=ip(),g2=up(),w2=hp(),E2=Ae();dp.exports={RateLimiterRedis:s2,RateLimiterMongo:a2,RateLimiterMySQL:c2,RateLimiterPostgres:l2,RateLimiterMemory:d2,RateLimiterMemcache:p2,RateLimiterClusterMaster:u2,RateLimiterClusterMasterPM2:f2,RateLimiterCluster:h2,RLWrapperBlackAndWhite:m2,RateLimiterUnion:y2,RateLimiterQueue:g2,BurstyRateLimiter:w2,RateLimiterRes:E2}});var Sp=T((iD,_p)=>{"use strict";_p.exports=C2;function C2(r,t){for(var e=new Array(arguments.length-1),n=0,i=2,o=!0;i<arguments.length;)e[n++]=arguments[i++];return new Promise(function(a,c){e[n]=function(u){if(o)if(o=!1,u)c(u);else{for(var f=new Array(arguments.length-1),d=0;d<f.length;)f[d++]=arguments[d];a.apply(null,f)}};try{r.apply(t||null,e)}catch(l){o&&(o=!1,c(l))}})}});var Tp=T(Ip=>{"use strict";var pa=Ip;pa.length=function(t){var e=t.length;if(!e)return 0;for(var n=0;--e%4>1&&t.charAt(e)==="=";)++n;return Math.ceil(t.length*3)/4-n};var Ui=new Array(64),Rp=new Array(123);for(We=0;We<64;)Rp[Ui[We]=We<26?We+65:We<52?We+71:We<62?We-4:We-59|43]=We++;var We;pa.encode=function(t,e,n){for(var i=null,o=[],s=0,a=0,c;e<n;){var l=t[e++];switch(a){case 0:o[s++]=Ui[l>>2],c=(l&3)<<4,a=1;break;case 1:o[s++]=Ui[c|l>>4],c=(l&15)<<2,a=2;break;case 2:o[s++]=Ui[c|l>>6],o[s++]=Ui[l&63],a=0;break}s>8191&&((i||(i=[])).push(String.fromCharCode.apply(String,o)),s=0)}return a&&(o[s++]=Ui[c],o[s++]=61,a===1&&(o[s++]=61)),i?(s&&i.push(String.fromCharCode.apply(String,o.slice(0,s))),i.join("")):String.fromCharCode.apply(String,o.slice(0,s))};var Ap="invalid encoding";pa.decode=function(t,e,n){for(var i=n,o=0,s,a=0;a<t.length;){var c=t.charCodeAt(a++);if(c===61&&o>1)break;if((c=Rp[c])===void 0)throw Error(Ap);switch(o){case 0:s=c,o=1;break;case 1:e[n++]=s<<2|(c&48)>>4,s=c,o=2;break;case 2:e[n++]=(s&15)<<4|(c&60)>>2,s=c,o=3;break;case 3:e[n++]=(s&3)<<6|c,o=0;break}}if(o===1)throw Error(Ap);return n-i};pa.test=function(t){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(t)}});var Dp=T((sD,Cp)=>{"use strict";Cp.exports=ma;function ma(){this._listeners={}}ma.prototype.on=function(t,e,n){return(this._listeners[t]||(this._listeners[t]=[])).push({fn:e,ctx:n||this}),this};ma.prototype.off=function(t,e){if(t===void 0)this._listeners={};else if(e===void 0)this._listeners[t]=[];else for(var n=this._listeners[t],i=0;i<n.length;)n[i].fn===e?n.splice(i,1):++i;return this};ma.prototype.emit=function(t){var e=this._listeners[t];if(e){for(var n=[],i=1;i<arguments.length;)n.push(arguments[i++]);for(i=0;i<e.length;)e[i].fn.apply(e[i++].ctx,n)}return this}});var Mp=T((aD,kp)=>{"use strict";kp.exports=Pp(Pp);function Pp(r){return typeof Float32Array<"u"?function(){var t=new Float32Array([-0]),e=new Uint8Array(t.buffer),n=e[3]===128;function i(c,l,u){t[0]=c,l[u]=e[0],l[u+1]=e[1],l[u+2]=e[2],l[u+3]=e[3]}function o(c,l,u){t[0]=c,l[u]=e[3],l[u+1]=e[2],l[u+2]=e[1],l[u+3]=e[0]}r.writeFloatLE=n?i:o,r.writeFloatBE=n?o:i;function s(c,l){return e[0]=c[l],e[1]=c[l+1],e[2]=c[l+2],e[3]=c[l+3],t[0]}function a(c,l){return e[3]=c[l],e[2]=c[l+1],e[1]=c[l+2],e[0]=c[l+3],t[0]}r.readFloatLE=n?s:a,r.readFloatBE=n?a:s}():function(){function t(n,i,o,s){var a=i<0?1:0;if(a&&(i=-i),i===0)n(1/i>0?0:2147483648,o,s);else if(isNaN(i))n(2143289344,o,s);else if(i>34028234663852886e22)n((a<<31|2139095040)>>>0,o,s);else if(i<11754943508222875e-54)n((a<<31|Math.round(i/1401298464324817e-60))>>>0,o,s);else{var c=Math.floor(Math.log(i)/Math.LN2),l=Math.round(i*Math.pow(2,-c)*8388608)&8388607;n((a<<31|c+127<<23|l)>>>0,o,s)}}r.writeFloatLE=t.bind(null,Lp),r.writeFloatBE=t.bind(null,Bp);function e(n,i,o){var s=n(i,o),a=(s>>31)*2+1,c=s>>>23&255,l=s&8388607;return c===255?l?NaN:a*(1/0):c===0?a*1401298464324817e-60*l:a*Math.pow(2,c-150)*(l+8388608)}r.readFloatLE=e.bind(null,Np),r.readFloatBE=e.bind(null,Op)}(),typeof Float64Array<"u"?function(){var t=new Float64Array([-0]),e=new Uint8Array(t.buffer),n=e[7]===128;function i(c,l,u){t[0]=c,l[u]=e[0],l[u+1]=e[1],l[u+2]=e[2],l[u+3]=e[3],l[u+4]=e[4],l[u+5]=e[5],l[u+6]=e[6],l[u+7]=e[7]}function o(c,l,u){t[0]=c,l[u]=e[7],l[u+1]=e[6],l[u+2]=e[5],l[u+3]=e[4],l[u+4]=e[3],l[u+5]=e[2],l[u+6]=e[1],l[u+7]=e[0]}r.writeDoubleLE=n?i:o,r.writeDoubleBE=n?o:i;function s(c,l){return e[0]=c[l],e[1]=c[l+1],e[2]=c[l+2],e[3]=c[l+3],e[4]=c[l+4],e[5]=c[l+5],e[6]=c[l+6],e[7]=c[l+7],t[0]}function a(c,l){return e[7]=c[l],e[6]=c[l+1],e[5]=c[l+2],e[4]=c[l+3],e[3]=c[l+4],e[2]=c[l+5],e[1]=c[l+6],e[0]=c[l+7],t[0]}r.readDoubleLE=n?s:a,r.readDoubleBE=n?a:s}():function(){function t(n,i,o,s,a,c){var l=s<0?1:0;if(l&&(s=-s),s===0)n(0,a,c+i),n(1/s>0?0:2147483648,a,c+o);else if(isNaN(s))n(0,a,c+i),n(2146959360,a,c+o);else if(s>17976931348623157e292)n(0,a,c+i),n((l<<31|2146435072)>>>0,a,c+o);else{var u;if(s<22250738585072014e-324)u=s/5e-324,n(u>>>0,a,c+i),n((l<<31|u/4294967296)>>>0,a,c+o);else{var f=Math.floor(Math.log(s)/Math.LN2);f===1024&&(f=1023),u=s*Math.pow(2,-f),n(u*4503599627370496>>>0,a,c+i),n((l<<31|f+1023<<20|u*1048576&1048575)>>>0,a,c+o)}}}r.writeDoubleLE=t.bind(null,Lp,0,4),r.writeDoubleBE=t.bind(null,Bp,4,0);function e(n,i,o,s,a){var c=n(s,a+i),l=n(s,a+o),u=(l>>31)*2+1,f=l>>>20&2047,d=4294967296*(l&1048575)+c;return f===2047?d?NaN:u*(1/0):f===0?u*5e-324*d:u*Math.pow(2,f-1075)*(d+4503599627370496)}r.readDoubleLE=e.bind(null,Np,0,4),r.readDoubleBE=e.bind(null,Op,4,0)}(),r}function Lp(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 Bp(r,t,e){t[e]=r>>>24,t[e+1]=r>>>16&255,t[e+2]=r>>>8&255,t[e+3]=r&255}function Np(r,t){return(r[t]|r[t+1]<<8|r[t+2]<<16|r[t+3]<<24)>>>0}function Op(r,t){return(r[t]<<24|r[t+1]<<16|r[t+2]<<8|r[t+3])>>>0}});var Up=T((exports,module)=>{"use strict";module.exports=inquire;function inquire(moduleName){try{var mod=eval("quire".replace(/^/,"re"))(moduleName);if(mod&&(mod.length||Object.keys(mod).length))return mod}catch(r){}return null}});var Kp=T(Fp=>{"use strict";var wu=Fp;wu.length=function(t){for(var e=0,n=0,i=0;i<t.length;++i)n=t.charCodeAt(i),n<128?e+=1:n<2048?e+=2:(n&64512)===55296&&(t.charCodeAt(i+1)&64512)===56320?(++i,e+=4):e+=3;return e};wu.read=function(t,e,n){var i=n-e;if(i<1)return"";for(var o=null,s=[],a=0,c;e<n;)c=t[e++],c<128?s[a++]=c:c>191&&c<224?s[a++]=(c&31)<<6|t[e++]&63:c>239&&c<365?(c=((c&7)<<18|(t[e++]&63)<<12|(t[e++]&63)<<6|t[e++]&63)-65536,s[a++]=55296+(c>>10),s[a++]=56320+(c&1023)):s[a++]=(c&15)<<12|(t[e++]&63)<<6|t[e++]&63,a>8191&&((o||(o=[])).push(String.fromCharCode.apply(String,s)),a=0);return o?(a&&o.push(String.fromCharCode.apply(String,s.slice(0,a))),o.join("")):String.fromCharCode.apply(String,s.slice(0,a))};wu.write=function(t,e,n){for(var i=n,o,s,a=0;a<t.length;++a)o=t.charCodeAt(a),o<128?e[n++]=o:o<2048?(e[n++]=o>>6|192,e[n++]=o&63|128):(o&64512)===55296&&((s=t.charCodeAt(a+1))&64512)===56320?(o=65536+((o&1023)<<10)+(s&1023),++a,e[n++]=o>>18|240,e[n++]=o>>12&63|128,e[n++]=o>>6&63|128,e[n++]=o&63|128):(e[n++]=o>>12|224,e[n++]=o>>6&63|128,e[n++]=o&63|128);return n-i}});var qp=T((lD,Vp)=>{"use strict";Vp.exports=D2;function D2(r,t,e){var n=e||8192,i=n>>>1,o=null,s=n;return function(c){if(c<1||c>i)return r(c);s+c>n&&(o=r(n),s=0);var l=t.call(o,s,s+=c);return s&7&&(s=(s|7)+1),l}}});var $p=T((uD,Hp)=>{"use strict";Hp.exports=ne;var Co=zn();function ne(r,t){this.lo=r>>>0,this.hi=t>>>0}var $n=ne.zero=new ne(0,0);$n.toNumber=function(){return 0};$n.zzEncode=$n.zzDecode=function(){return this};$n.length=function(){return 1};var P2=ne.zeroHash="\0\0\0\0\0\0\0\0";ne.fromNumber=function(t){if(t===0)return $n;var e=t<0;e&&(t=-t);var n=t>>>0,i=(t-n)/4294967296>>>0;return e&&(i=~i>>>0,n=~n>>>0,++n>4294967295&&(n=0,++i>4294967295&&(i=0))),new ne(n,i)};ne.from=function(t){if(typeof t=="number")return ne.fromNumber(t);if(Co.isString(t))if(Co.Long)t=Co.Long.fromString(t);else return ne.fromNumber(parseInt(t,10));return t.low||t.high?new ne(t.low>>>0,t.high>>>0):$n};ne.prototype.toNumber=function(t){if(!t&&this.hi>>>31){var e=~this.lo+1>>>0,n=~this.hi>>>0;return e||(n=n+1>>>0),-(e+n*4294967296)}return this.lo+this.hi*4294967296};ne.prototype.toLong=function(t){return Co.Long?new Co.Long(this.lo|0,this.hi|0,Boolean(t)):{low:this.lo|0,high:this.hi|0,unsigned:Boolean(t)}};var an=String.prototype.charCodeAt;ne.fromHash=function(t){return t===P2?$n:new ne((an.call(t,0)|an.call(t,1)<<8|an.call(t,2)<<16|an.call(t,3)<<24)>>>0,(an.call(t,4)|an.call(t,5)<<8|an.call(t,6)<<16|an.call(t,7)<<24)>>>0)};ne.prototype.toHash=function(){return String.fromCharCode(this.lo&255,this.lo>>>8&255,this.lo>>>16&255,this.lo>>>24,this.hi&255,this.hi>>>8&255,this.hi>>>16&255,this.hi>>>24)};ne.prototype.zzEncode=function(){var t=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^t)>>>0,this.lo=(this.lo<<1^t)>>>0,this};ne.prototype.zzDecode=function(){var t=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^t)>>>0,this.hi=(this.hi>>>1^t)>>>0,this};ne.prototype.length=function(){var 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}});var zn=T(Eu=>{"use strict";var M=Eu;M.asPromise=Sp();M.base64=Tp();M.EventEmitter=Dp();M.float=Mp();M.inquire=Up();M.utf8=Kp();M.pool=qp();M.LongBits=$p();M.isNode=Boolean(typeof globalThis<"u"&&globalThis&&globalThis.process&&globalThis.process.versions&&globalThis.process.versions.node);M.global=M.isNode&&globalThis||typeof window<"u"&&window||typeof self<"u"&&self||Eu;M.emptyArray=Object.freeze?Object.freeze([]):[];M.emptyObject=Object.freeze?Object.freeze({}):{};M.isInteger=Number.isInteger||function(t){return typeof t=="number"&&isFinite(t)&&Math.floor(t)===t};M.isString=function(t){return typeof t=="string"||t instanceof String};M.isObject=function(t){return t&&typeof t=="object"};M.isset=M.isSet=function(t,e){var n=t[e];return n!=null&&t.hasOwnProperty(e)?typeof n!="object"||(Array.isArray(n)?n.length:Object.keys(n).length)>0:!1};M.Buffer=function(){try{var r=M.inquire("buffer").Buffer;return r.prototype.utf8Write?r:null}catch{return null}}();M._Buffer_from=null;M._Buffer_allocUnsafe=null;M.newBuffer=function(t){return typeof t=="number"?M.Buffer?M._Buffer_allocUnsafe(t):new M.Array(t):M.Buffer?M._Buffer_from(t):typeof Uint8Array>"u"?t:new Uint8Array(t)};M.Array=typeof Uint8Array<"u"?Uint8Array:Array;M.Long=M.global.dcodeIO&&M.global.dcodeIO.Long||M.global.Long||M.inquire("long");M.key2Re=/^true|false|0|1$/;M.key32Re=/^-?(?:0|[1-9][0-9]*)$/;M.key64Re=/^(?:[\\x00-\\xff]{8}|-?(?:0|[1-9][0-9]*))$/;M.longToHash=function(t){return t?M.LongBits.from(t).toHash():M.LongBits.zeroHash};M.longFromHash=function(t,e){var n=M.LongBits.fromHash(t);return M.Long?M.Long.fromBits(n.lo,n.hi,e):n.toNumber(Boolean(e))};function zp(r,t,e){for(var n=Object.keys(t),i=0;i<n.length;++i)(r[n[i]]===void 0||!e)&&(r[n[i]]=t[n[i]]);return r}M.merge=zp;M.lcFirst=function(t){return t.charAt(0).toLowerCase()+t.substring(1)};function Gp(r){function t(e,n){if(!(this instanceof t))return new t(e,n);Object.defineProperty(this,"message",{get:function(){return e}}),Error.captureStackTrace?Error.captureStackTrace(this,t):Object.defineProperty(this,"stack",{value:new Error().stack||""}),n&&zp(this,n)}return t.prototype=Object.create(Error.prototype,{constructor:{value:t,writable:!0,enumerable:!1,configurable:!0},name:{get:function(){return r},set:void 0,enumerable:!1,configurable:!0},toString:{value:function(){return this.name+": "+this.message},writable:!0,enumerable:!1,configurable:!0}}),t}M.newError=Gp;M.ProtocolError=Gp("ProtocolError");M.oneOfGetter=function(t){for(var e={},n=0;n<t.length;++n)e[t[n]]=1;return function(){for(var i=Object.keys(this),o=i.length-1;o>-1;--o)if(e[i[o]]===1&&this[i[o]]!==void 0&&this[i[o]]!==null)return i[o]}};M.oneOfSetter=function(t){return function(e){for(var n=0;n<t.length;++n)t[n]!==e&&delete this[t[n]]}};M.toJSONOptions={longs:String,enums:String,bytes:String,json:!0};M._configure=function(){var r=M.Buffer;if(!r){M._Buffer_from=M._Buffer_allocUnsafe=null;return}M._Buffer_from=r.from!==Uint8Array.from&&r.from||function(e,n){return new r(e,n)},M._Buffer_allocUnsafe=r.allocUnsafe||function(e){return new r(e)}}});var bu=T((hD,Zp)=>{"use strict";Zp.exports=$t;var ur=zn(),vu,Qp=ur.LongBits,L2=ur.utf8;function Qe(r,t){return RangeError("index out of range: "+r.pos+" + "+(t||1)+" > "+r.len)}function $t(r){this.buf=r,this.pos=0,this.len=r.length}var Yp=typeof Uint8Array<"u"?function(t){if(t instanceof Uint8Array||Array.isArray(t))return new $t(t);throw Error("illegal buffer")}:function(t){if(Array.isArray(t))return new $t(t);throw Error("illegal buffer")},Xp=function(){return ur.Buffer?function(e){return($t.create=function(i){return ur.Buffer.isBuffer(i)?new vu(i):Yp(i)})(e)}:Yp};$t.create=Xp();$t.prototype._slice=ur.Array.prototype.subarray||ur.Array.prototype.slice;$t.prototype.uint32=function(){var t=4294967295;return function(){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,Qe(this,10);return t}}();$t.prototype.int32=function(){return this.uint32()|0};$t.prototype.sint32=function(){var t=this.uint32();return t>>>1^-(t&1)|0};function xu(){var r=new Qp(0,0),t=0;if(this.len-this.pos>4){for(;t<4;++t)if(r.lo=(r.lo|(this.buf[this.pos]&127)<<t*7)>>>0,this.buf[this.pos++]<128)return r;if(r.lo=(r.lo|(this.buf[this.pos]&127)<<28)>>>0,r.hi=(r.hi|(this.buf[this.pos]&127)>>4)>>>0,this.buf[this.pos++]<128)return r;t=0}else{for(;t<3;++t){if(this.pos>=this.len)throw Qe(this);if(r.lo=(r.lo|(this.buf[this.pos]&127)<<t*7)>>>0,this.buf[this.pos++]<128)return r}return r.lo=(r.lo|(this.buf[this.pos++]&127)<<t*7)>>>0,r}if(this.len-this.pos>4){for(;t<5;++t)if(r.hi=(r.hi|(this.buf[this.pos]&127)<<t*7+3)>>>0,this.buf[this.pos++]<128)return r}else for(;t<5;++t){if(this.pos>=this.len)throw Qe(this);if(r.hi=(r.hi|(this.buf[this.pos]&127)<<t*7+3)>>>0,this.buf[this.pos++]<128)return r}throw Error("invalid varint encoding")}$t.prototype.bool=function(){return this.uint32()!==0};function ya(r,t){return(r[t-4]|r[t-3]<<8|r[t-2]<<16|r[t-1]<<24)>>>0}$t.prototype.fixed32=function(){if(this.pos+4>this.len)throw Qe(this,4);return ya(this.buf,this.pos+=4)};$t.prototype.sfixed32=function(){if(this.pos+4>this.len)throw Qe(this,4);return ya(this.buf,this.pos+=4)|0};function Wp(){if(this.pos+8>this.len)throw Qe(this,8);return new Qp(ya(this.buf,this.pos+=4),ya(this.buf,this.pos+=4))}$t.prototype.float=function(){if(this.pos+4>this.len)throw Qe(this,4);var t=ur.float.readFloatLE(this.buf,this.pos);return this.pos+=4,t};$t.prototype.double=function(){if(this.pos+8>this.len)throw Qe(this,4);var t=ur.float.readDoubleLE(this.buf,this.pos);return this.pos+=8,t};$t.prototype.bytes=function(){var t=this.uint32(),e=this.pos,n=this.pos+t;if(n>this.len)throw Qe(this,t);return this.pos+=t,Array.isArray(this.buf)?this.buf.slice(e,n):e===n?new this.buf.constructor(0):this._slice.call(this.buf,e,n)};$t.prototype.string=function(){var t=this.bytes();return L2.read(t,0,t.length)};$t.prototype.skip=function(t){if(typeof t=="number"){if(this.pos+t>this.len)throw Qe(this,t);this.pos+=t}else do if(this.pos>=this.len)throw Qe(this);while(this.buf[this.pos++]&128);return this};$t.prototype.skipType=function(r){switch(r){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;(r=this.uint32()&7)!==4;)this.skipType(r);break;case 5:this.skip(4);break;default:throw Error("invalid wire type "+r+" at offset "+this.pos)}return this};$t._configure=function(r){vu=r,$t.create=Xp(),vu._configure();var t=ur.Long?"toLong":"toNumber";ur.merge($t.prototype,{int64:function(){return xu.call(this)[t](!1)},uint64:function(){return xu.call(this)[t](!0)},sint64:function(){return xu.call(this).zzDecode()[t](!1)},fixed64:function(){return Wp.call(this)[t](!0)},sfixed64:function(){return Wp.call(this)[t](!1)}})}});var em=T((dD,tm)=>{"use strict";tm.exports=Gn;var jp=bu();(Gn.prototype=Object.create(jp.prototype)).constructor=Gn;var Jp=zn();function Gn(r){jp.call(this,r)}Gn._configure=function(){Jp.Buffer&&(Gn.prototype._slice=Jp.Buffer.prototype.slice)};Gn.prototype.string=function(){var t=this.uint32();return this.buf.utf8Slice?this.buf.utf8Slice(this.pos,this.pos=Math.min(this.pos+t,this.len)):this.buf.toString("utf-8",this.pos,this.pos=Math.min(this.pos+t,this.len))};Gn._configure()});var Cu=T((pD,om)=>{"use strict";om.exports=ct;var ke=zn(),_u,ga=ke.LongBits,rm=ke.base64,nm=ke.utf8;function Do(r,t,e){this.fn=r,this.len=t,this.next=void 0,this.val=e}function Au(){}function B2(r){this.head=r.head,this.tail=r.tail,this.len=r.len,this.next=r.states}function ct(){this.len=0,this.head=new Do(Au,0,0),this.tail=this.head,this.states=null}var im=function(){return ke.Buffer?function(){return(ct.create=function(){return new _u})()}:function(){return new ct}};ct.create=im();ct.alloc=function(t){return new ke.Array(t)};ke.Array!==Array&&(ct.alloc=ke.pool(ct.alloc,ke.Array.prototype.subarray));ct.prototype._push=function(t,e,n){return this.tail=this.tail.next=new Do(t,e,n),this.len+=e,this};function Ru(r,t,e){t[e]=r&255}function N2(r,t,e){for(;r>127;)t[e++]=r&127|128,r>>>=7;t[e]=r}function Iu(r,t){this.len=r,this.next=void 0,this.val=t}Iu.prototype=Object.create(Do.prototype);Iu.prototype.fn=N2;ct.prototype.uint32=function(t){return this.len+=(this.tail=this.tail.next=new Iu((t=t>>>0)<128?1:t<16384?2:t<2097152?3:t<268435456?4:5,t)).len,this};ct.prototype.int32=function(t){return t<0?this._push(Tu,10,ga.fromNumber(t)):this.uint32(t)};ct.prototype.sint32=function(t){return this.uint32((t<<1^t>>31)>>>0)};function Tu(r,t,e){for(;r.hi;)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}ct.prototype.uint64=function(t){var e=ga.from(t);return this._push(Tu,e.length(),e)};ct.prototype.int64=ct.prototype.uint64;ct.prototype.sint64=function(t){var e=ga.from(t).zzEncode();return this._push(Tu,e.length(),e)};ct.prototype.bool=function(t){return this._push(Ru,1,t?1:0)};function Su(r,t,e){t[e]=r&255,t[e+1]=r>>>8&255,t[e+2]=r>>>16&255,t[e+3]=r>>>24}ct.prototype.fixed32=function(t){return this._push(Su,4,t>>>0)};ct.prototype.sfixed32=ct.prototype.fixed32;ct.prototype.fixed64=function(t){var e=ga.from(t);return this._push(Su,4,e.lo)._push(Su,4,e.hi)};ct.prototype.sfixed64=ct.prototype.fixed64;ct.prototype.float=function(t){return this._push(ke.float.writeFloatLE,4,t)};ct.prototype.double=function(t){return this._push(ke.float.writeDoubleLE,8,t)};var O2=ke.Array.prototype.set?function(t,e,n){e.set(t,n)}:function(t,e,n){for(var i=0;i<t.length;++i)e[n+i]=t[i]};ct.prototype.bytes=function(t){var e=t.length>>>0;if(!e)return this._push(Ru,1,0);if(ke.isString(t)){var n=ct.alloc(e=rm.length(t));rm.decode(t,n,0),t=n}return this.uint32(e)._push(O2,e,t)};ct.prototype.string=function(t){var e=nm.length(t);return e?this.uint32(e)._push(nm.write,e,t):this._push(Ru,1,0)};ct.prototype.fork=function(){return this.states=new B2(this),this.head=this.tail=new Do(Au,0,0),this.len=0,this};ct.prototype.reset=function(){return this.states?(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 Do(Au,0,0),this.len=0),this};ct.prototype.ldelim=function(){var t=this.head,e=this.tail,n=this.len;return this.reset().uint32(n),n&&(this.tail.next=t.next,this.tail=e,this.len+=n),this};ct.prototype.finish=function(){for(var t=this.head.next,e=this.constructor.alloc(this.len),n=0;t;)t.fn(t.val,e,n),n+=t.len,t=t.next;return e};ct._configure=function(r){_u=r,ct.create=im(),_u._configure()}});var cm=T((mD,am)=>{"use strict";am.exports=fr;var sm=Cu();(fr.prototype=Object.create(sm.prototype)).constructor=fr;var cn=zn();function fr(){sm.call(this)}fr._configure=function(){fr.alloc=cn._Buffer_allocUnsafe,fr.writeBytesBuffer=cn.Buffer&&cn.Buffer.prototype instanceof Uint8Array&&cn.Buffer.prototype.set.name==="set"?function(t,e,n){e.set(t,n)}:function(t,e,n){if(t.copy)t.copy(e,n,0,t.length);else for(var i=0;i<t.length;)e[n++]=t[i++]}};fr.prototype.bytes=function(t){cn.isString(t)&&(t=cn._Buffer_from(t,"base64"));var e=t.length>>>0;return this.uint32(e),e&&this._push(fr.writeBytesBuffer,e,t),this};function k2(r,t,e){r.length<40?cn.utf8.write(r,t,e):t.utf8Write?t.utf8Write(r,e):t.write(r,e)}fr.prototype.string=function(t){var e=cn.Buffer.byteLength(t);return this.uint32(e),e&&this._push(k2,e,t),this};fr._configure()});var Dm=T(Oo=>{(function(){var r,t,e,n,i,o,s,a;a=function(c){var l,u,f,d;return l=(c&255<<24)>>>24,u=(c&255<<16)>>>16,f=(c&255<<8)>>>8,d=c&255,[l,u,f,d].join(".")},s=function(c){var l,u,f,d,h,p;for(l=[],f=d=0;d<=3&&c.length!==0;f=++d){if(f>0){if(c[0]!==".")throw new Error("Invalid IP");c=c.substring(1)}p=t(c),h=p[0],u=p[1],c=c.substring(u),l.push(h)}if(c.length!==0)throw new Error("Invalid IP");switch(l.length){case 1:if(l[0]>4294967295)throw new Error("Invalid IP");return l[0]>>>0;case 2:if(l[0]>255||l[1]>16777215)throw new Error("Invalid IP");return(l[0]<<24|l[1])>>>0;case 3:if(l[0]>255||l[1]>255||l[2]>65535)throw new Error("Invalid IP");return(l[0]<<24|l[1]<<16|l[2])>>>0;case 4:if(l[0]>255||l[1]>255||l[2]>255||l[3]>255)throw new Error("Invalid IP");return(l[0]<<24|l[1]<<16|l[2]<<8|l[3])>>>0;default:throw new Error("Invalid IP")}},e=function(c){return c.charCodeAt(0)},n=e("0"),o=e("a"),i=e("A"),t=function(c){var l,u,f,d,h;for(d=0,l=10,u="9",f=0,c.length>1&&c[f]==="0"&&(c[f+1]==="x"||c[f+1]==="X"?(f+=2,l=16):"0"<=c[f+1]&&c[f+1]<="9"&&(f++,l=8,u="7")),h=f;f<c.length;){if("0"<=c[f]&&c[f]<=u)d=d*l+(e(c[f])-n)>>>0;else if(l===16)if("a"<=c[f]&&c[f]<="f")d=d*l+(10+e(c[f])-o)>>>0;else if("A"<=c[f]&&c[f]<="F")d=d*l+(10+e(c[f])-i)>>>0;else break;else break;if(d>4294967295)throw new Error("too large");f++}if(f===h)throw new Error("empty octet");return[d,f]},r=function(){function c(l,u){var f,d,h,p;if(typeof l!="string")throw new Error("Missing `net' parameter");if(u||(p=l.split("/",2),l=p[0],u=p[1]),u||(u=32),typeof u=="string"&&u.indexOf(".")>-1){try{this.maskLong=s(u)}catch(m){throw f=m,new Error("Invalid mask: "+u)}for(d=h=32;h>=0;d=--h)if(this.maskLong===4294967295<<32-d>>>0){this.bitmask=d;break}}else if(u||u===0)this.bitmask=parseInt(u,10),this.maskLong=0,this.bitmask>0&&(this.maskLong=4294967295<<32-this.bitmask>>>0);else throw new Error("Invalid mask: empty");try{this.netLong=(s(l)&this.maskLong)>>>0}catch(m){throw f=m,new Error("Invalid net address: "+l)}if(!(this.bitmask<=32))throw new Error("Invalid mask for ip4: "+u);this.size=Math.pow(2,32-this.bitmask),this.base=a(this.netLong),this.mask=a(this.maskLong),this.hostmask=a(~this.maskLong),this.first=this.bitmask<=30?a(this.netLong+1):this.base,this.last=this.bitmask<=30?a(this.netLong+this.size-2):a(this.netLong+this.size-1),this.broadcast=this.bitmask<=30?a(this.netLong+this.size-1):void 0}return c.prototype.contains=function(l){return typeof l=="string"&&(l.indexOf("/")>0||l.split(".").length!==4)&&(l=new c(l)),l instanceof c?this.contains(l.base)&&this.contains(l.broadcast||l.last):(s(l)&this.maskLong)>>>0===(this.netLong&this.maskLong)>>>0},c.prototype.next=function(l){return l==null&&(l=1),new c(a(this.netLong+this.size*l),this.mask)},c.prototype.forEach=function(l){var u,f,d;for(d=s(this.first),f=s(this.last),u=0;d<=f;)l(a(d),d,u),u++,d++},c.prototype.toString=function(){return this.base+"/"+this.bitmask},c}(),Oo.ip2long=s,Oo.long2ip=a,Oo.Netmask=r}).call(Oo)});var Nm=T((Bm,Ta)=>{(function(r){"use strict";let t="(0?\\d+|0x[a-f0-9]+)",e={fourOctet:new RegExp(`^${t}\\.${t}\\.${t}\\.${t}$`,"i"),threeOctet:new RegExp(`^${t}\\.${t}\\.${t}$`,"i"),twoOctet:new RegExp(`^${t}\\.${t}$`,"i"),longValue:new RegExp(`^${t}$`,"i")},n=new RegExp("^0[0-7]+$","i"),i=new RegExp("^0x[a-f0-9]+$","i"),o="%[0-9a-z]{1,}",s="(?:[0-9a-f]+::?)+",a={zoneIndex:new RegExp(o,"i"),native:new RegExp(`^(::)?(${s})?([0-9a-f]+)?(::)?(${o})?$`,"i"),deprecatedTransitional:new RegExp(`^(?:::)(${t}\\.${t}\\.${t}\\.${t}(${o})?)$`,"i"),transitional:new RegExp(`^((?:${s})|(?:::)(?:${s})?)${t}\\.${t}\\.${t}\\.${t}(${o})?$`,"i")};function c(h,p){if(h.indexOf("::")!==h.lastIndexOf("::"))return null;let m=0,y=-1,g=(h.match(a.zoneIndex)||[])[0],E,_;for(g&&(g=g.substring(1),h=h.replace(/%.+$/,""));(y=h.indexOf(":",y+1))>=0;)m++;if(h.substr(0,2)==="::"&&m--,h.substr(-2,2)==="::"&&m--,m>p)return null;for(_=p-m,E=":";_--;)E+="0:";return h=h.replace("::",E),h[0]===":"&&(h=h.slice(1)),h[h.length-1]===":"&&(h=h.slice(0,-1)),p=function(){let k=h.split(":"),C=[];for(let D=0;D<k.length;D++)C.push(parseInt(k[D],16));return C}(),{parts:p,zoneId:g}}function l(h,p,m,y){if(h.length!==p.length)throw new Error("ipaddr: cannot match CIDR for objects with different lengths");let g=0,E;for(;y>0;){if(E=m-y,E<0&&(E=0),h[g]>>E!==p[g]>>E)return!1;y-=m,g+=1}return!0}function u(h){if(i.test(h))return parseInt(h,16);if(h[0]==="0"&&!isNaN(parseInt(h[1],10))){if(n.test(h))return parseInt(h,8);throw new Error(`ipaddr: cannot parse ${h} as octal`)}return parseInt(h,10)}function f(h,p){for(;h.length<p;)h=`0${h}`;return h}let d={};d.IPv4=function(){function h(p){if(p.length!==4)throw new Error("ipaddr: ipv4 octet count should be 4");let m,y;for(m=0;m<p.length;m++)if(y=p[m],!(0<=y&&y<=255))throw new Error("ipaddr: ipv4 octet should fit in 8 bits");this.octets=p}return h.prototype.SpecialRanges={unspecified:[[new h([0,0,0,0]),8]],broadcast:[[new h([255,255,255,255]),32]],multicast:[[new h([224,0,0,0]),4]],linkLocal:[[new h([169,254,0,0]),16]],loopback:[[new h([127,0,0,0]),8]],carrierGradeNat:[[new h([100,64,0,0]),10]],private:[[new h([10,0,0,0]),8],[new h([172,16,0,0]),12],[new h([192,168,0,0]),16]],reserved:[[new h([192,0,0,0]),24],[new h([192,0,2,0]),24],[new h([192,88,99,0]),24],[new h([198,51,100,0]),24],[new h([203,0,113,0]),24],[new h([240,0,0,0]),4]]},h.prototype.kind=function(){return"ipv4"},h.prototype.match=function(p,m){let y;if(m===void 0&&(y=p,p=y[0],m=y[1]),p.kind()!=="ipv4")throw new Error("ipaddr: cannot match ipv4 address with non-ipv4 one");return l(this.octets,p.octets,8,m)},h.prototype.prefixLengthFromSubnetMask=function(){let p=0,m=!1,y={0:8,128:7,192:6,224:5,240:4,248:3,252:2,254:1,255:0},g,E,_;for(g=3;g>=0;g-=1)if(E=this.octets[g],E in y){if(_=y[E],m&&_!==0)return null;_!==8&&(m=!0),p+=_}else return null;return 32-p},h.prototype.range=function(){return d.subnetMatch(this,this.SpecialRanges)},h.prototype.toByteArray=function(){return this.octets.slice(0)},h.prototype.toIPv4MappedAddress=function(){return d.IPv6.parse(`::ffff:${this.toString()}`)},h.prototype.toNormalizedString=function(){return this.toString()},h.prototype.toString=function(){return this.octets.join(".")},h}(),d.IPv4.broadcastAddressFromCIDR=function(h){try{let p=this.parseCIDR(h),m=p[0].toByteArray(),y=this.subnetMaskFromPrefixLength(p[1]).toByteArray(),g=[],E=0;for(;E<4;)g.push(parseInt(m[E],10)|parseInt(y[E],10)^255),E++;return new this(g)}catch{throw new Error("ipaddr: the address does not have IPv4 CIDR format")}},d.IPv4.isIPv4=function(h){return this.parser(h)!==null},d.IPv4.isValid=function(h){try{return new this(this.parser(h)),!0}catch{return!1}},d.IPv4.isValidFourPartDecimal=function(h){return!!(d.IPv4.isValid(h)&&h.match(/^(0|[1-9]\d*)(\.(0|[1-9]\d*)){3}$/))},d.IPv4.networkAddressFromCIDR=function(h){let p,m,y,g,E;try{for(p=this.parseCIDR(h),y=p[0].toByteArray(),E=this.subnetMaskFromPrefixLength(p[1]).toByteArray(),g=[],m=0;m<4;)g.push(parseInt(y[m],10)&parseInt(E[m],10)),m++;return new this(g)}catch{throw new Error("ipaddr: the address does not have IPv4 CIDR format")}},d.IPv4.parse=function(h){let p=this.parser(h);if(p===null)throw new Error("ipaddr: string is not formatted like an IPv4 Address");return new this(p)},d.IPv4.parseCIDR=function(h){let p;if(p=h.match(/^(.+)\/(\d+)$/)){let m=parseInt(p[2]);if(m>=0&&m<=32){let y=[this.parse(p[1]),m];return Object.defineProperty(y,"toString",{value:function(){return this.join("/")}}),y}}throw new Error("ipaddr: string is not formatted like an IPv4 CIDR range")},d.IPv4.parser=function(h){let p,m,y;if(p=h.match(e.fourOctet))return function(){let g=p.slice(1,6),E=[];for(let _=0;_<g.length;_++)m=g[_],E.push(u(m));return E}();if(p=h.match(e.longValue)){if(y=u(p[1]),y>4294967295||y<0)throw new Error("ipaddr: address outside defined range");return function(){let g=[],E;for(E=0;E<=24;E+=8)g.push(y>>E&255);return g}().reverse()}else return(p=h.match(e.twoOctet))?function(){let g=p.slice(1,4),E=[];if(y=u(g[1]),y>16777215||y<0)throw new Error("ipaddr: address outside defined range");return E.push(u(g[0])),E.push(y>>16&255),E.push(y>>8&255),E.push(y&255),E}():(p=h.match(e.threeOctet))?function(){let g=p.slice(1,5),E=[];if(y=u(g[2]),y>65535||y<0)throw new Error("ipaddr: address outside defined range");return E.push(u(g[0])),E.push(u(g[1])),E.push(y>>8&255),E.push(y&255),E}():null},d.IPv4.subnetMaskFromPrefixLength=function(h){if(h=parseInt(h),h<0||h>32)throw new Error("ipaddr: invalid IPv4 prefix length");let p=[0,0,0,0],m=0,y=Math.floor(h/8);for(;m<y;)p[m]=255,m++;return y<4&&(p[y]=Math.pow(2,h%8)-1<<8-h%8),new this(p)},d.IPv6=function(){function h(p,m){let y,g;if(p.length===16)for(this.parts=[],y=0;y<=14;y+=2)this.parts.push(p[y]<<8|p[y+1]);else if(p.length===8)this.parts=p;else throw new Error("ipaddr: ipv6 part count should be 8 or 16");for(y=0;y<this.parts.length;y++)if(g=this.parts[y],!(0<=g&&g<=65535))throw new Error("ipaddr: ipv6 part should fit in 16 bits");m&&(this.zoneId=m)}return h.prototype.SpecialRanges={unspecified:[new h([0,0,0,0,0,0,0,0]),128],linkLocal:[new h([65152,0,0,0,0,0,0,0]),10],multicast:[new h([65280,0,0,0,0,0,0,0]),8],loopback:[new h([0,0,0,0,0,0,0,1]),128],uniqueLocal:[new h([64512,0,0,0,0,0,0,0]),7],ipv4Mapped:[new h([0,0,0,0,0,65535,0,0]),96],rfc6145:[new h([0,0,0,0,65535,0,0,0]),96],rfc6052:[new h([100,65435,0,0,0,0,0,0]),96],"6to4":[new h([8194,0,0,0,0,0,0,0]),16],teredo:[new h([8193,0,0,0,0,0,0,0]),32],reserved:[[new h([8193,3512,0,0,0,0,0,0]),32]]},h.prototype.isIPv4MappedAddress=function(){return this.range()==="ipv4Mapped"},h.prototype.kind=function(){return"ipv6"},h.prototype.match=function(p,m){let y;if(m===void 0&&(y=p,p=y[0],m=y[1]),p.kind()!=="ipv6")throw new Error("ipaddr: cannot match ipv6 address with non-ipv6 one");return l(this.parts,p.parts,16,m)},h.prototype.prefixLengthFromSubnetMask=function(){let p=0,m=!1,y={0:16,32768:15,49152:14,57344:13,61440:12,63488:11,64512:10,65024:9,65280:8,65408:7,65472:6,65504:5,65520:4,65528:3,65532:2,65534:1,65535:0},g,E;for(let _=7;_>=0;_-=1)if(g=this.parts[_],g in y){if(E=y[g],m&&E!==0)return null;E!==16&&(m=!0),p+=E}else return null;return 128-p},h.prototype.range=function(){return d.subnetMatch(this,this.SpecialRanges)},h.prototype.toByteArray=function(){let p,m=[],y=this.parts;for(let g=0;g<y.length;g++)p=y[g],m.push(p>>8),m.push(p&255);return m},h.prototype.toFixedLengthString=function(){let p=function(){let y=[];for(let g=0;g<this.parts.length;g++)y.push(f(this.parts[g].toString(16),4));return y}.call(this).join(":"),m="";return this.zoneId&&(m=`%${this.zoneId}`),p+m},h.prototype.toIPv4Address=function(){if(!this.isIPv4MappedAddress())throw new Error("ipaddr: trying to convert a generic ipv6 address to ipv4");let p=this.parts.slice(-2),m=p[0],y=p[1];return new d.IPv4([m>>8,m&255,y>>8,y&255])},h.prototype.toNormalizedString=function(){let p=function(){let y=[];for(let g=0;g<this.parts.length;g++)y.push(this.parts[g].toString(16));return y}.call(this).join(":"),m="";return this.zoneId&&(m=`%${this.zoneId}`),p+m},h.prototype.toRFC5952String=function(){let p=/((^|:)(0(:|$)){2,})/g,m=this.toNormalizedString(),y=0,g=-1,E;for(;E=p.exec(m);)E[0].length>g&&(y=E.index,g=E[0].length);return g<0?m:`${m.substring(0,y)}::${m.substring(y+g)}`},h.prototype.toString=function(){return this.toNormalizedString().replace(/((^|:)(0(:|$))+)/,"::")},h}(),d.IPv6.broadcastAddressFromCIDR=function(h){try{let p=this.parseCIDR(h),m=p[0].toByteArray(),y=this.subnetMaskFromPrefixLength(p[1]).toByteArray(),g=[],E=0;for(;E<16;)g.push(parseInt(m[E],10)|parseInt(y[E],10)^255),E++;return new this(g)}catch(p){throw new Error(`ipaddr: the address does not have IPv6 CIDR format (${p})`)}},d.IPv6.isIPv6=function(h){return this.parser(h)!==null},d.IPv6.isValid=function(h){if(typeof h=="string"&&h.indexOf(":")===-1)return!1;try{let p=this.parser(h);return new this(p.parts,p.zoneId),!0}catch{return!1}},d.IPv6.networkAddressFromCIDR=function(h){let p,m,y,g,E;try{for(p=this.parseCIDR(h),y=p[0].toByteArray(),E=this.subnetMaskFromPrefixLength(p[1]).toByteArray(),g=[],m=0;m<16;)g.push(parseInt(y[m],10)&parseInt(E[m],10)),m++;return new this(g)}catch(_){throw new Error(`ipaddr: the address does not have IPv6 CIDR format (${_})`)}},d.IPv6.parse=function(h){let p=this.parser(h);if(p.parts===null)throw new Error("ipaddr: string is not formatted like an IPv6 Address");return new this(p.parts,p.zoneId)},d.IPv6.parseCIDR=function(h){let p,m,y;if((m=h.match(/^(.+)\/(\d+)$/))&&(p=parseInt(m[2]),p>=0&&p<=128))return y=[this.parse(m[1]),p],Object.defineProperty(y,"toString",{value:function(){return this.join("/")}}),y;throw new Error("ipaddr: string is not formatted like an IPv6 CIDR range")},d.IPv6.parser=function(h){let p,m,y,g,E,_;if(y=h.match(a.deprecatedTransitional))return this.parser(`::ffff:${y[1]}`);if(a.native.test(h))return c(h,8);if((y=h.match(a.transitional))&&(_=y[6]||"",p=c(y[1].slice(0,-1)+_,6),p.parts)){for(E=[parseInt(y[2]),parseInt(y[3]),parseInt(y[4]),parseInt(y[5])],m=0;m<E.length;m++)if(g=E[m],!(0<=g&&g<=255))return null;return p.parts.push(E[0]<<8|E[1]),p.parts.push(E[2]<<8|E[3]),{parts:p.parts,zoneId:p.zoneId}}return null},d.IPv6.subnetMaskFromPrefixLength=function(h){if(h=parseInt(h),h<0||h>128)throw new Error("ipaddr: invalid IPv6 prefix length");let p=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],m=0,y=Math.floor(h/8);for(;m<y;)p[m]=255,m++;return y<16&&(p[y]=Math.pow(2,h%8)-1<<8-h%8),new this(p)},d.fromByteArray=function(h){let p=h.length;if(p===4)return new d.IPv4(h);if(p===16)return new d.IPv6(h);throw new Error("ipaddr: the binary input is neither an IPv6 nor IPv4 address")},d.isValid=function(h){return d.IPv6.isValid(h)||d.IPv4.isValid(h)},d.parse=function(h){if(d.IPv6.isValid(h))return d.IPv6.parse(h);if(d.IPv4.isValid(h))return d.IPv4.parse(h);throw new Error("ipaddr: the address has neither IPv6 nor IPv4 format")},d.parseCIDR=function(h){try{return d.IPv6.parseCIDR(h)}catch{try{return d.IPv4.parseCIDR(h)}catch{throw new Error("ipaddr: the address has neither IPv6 nor IPv4 CIDR format")}}},d.process=function(h){let p=this.parse(h);return p.kind()==="ipv6"&&p.isIPv4MappedAddress()?p.toIPv4Address():p},d.subnetMatch=function(h,p,m){let y,g,E,_;m==null&&(m="unicast");for(g in p)if(Object.prototype.hasOwnProperty.call(p,g)){for(E=p[g],E[0]&&!(E[0]instanceof Array)&&(E=[E]),y=0;y<E.length;y++)if(_=E[y],h.kind()===_[0].kind()&&h.match.apply(h,_))return g}return m},typeof Ta<"u"&&Ta.exports?Ta.exports=d:r.ipaddr=d})(Bm)});var Vm=T((UL,Km)=>{"use strict";function ub(r){return r>=55296&&r<=56319}function fb(r){return r>=56320&&r<=57343}Km.exports=function(t,e,n){if(typeof e!="string")throw new Error("Input must be string");for(var i=e.length,o=0,s,a,c=0;c<i;c+=1){if(s=e.charCodeAt(c),a=e[c],ub(s)&&fb(e.charCodeAt(c+1))&&(c+=1,a+=e[c]),o+=t(a),o===n)return e.slice(0,c+1);if(o>n)return e.slice(0,c-a.length+1)}return e}});var Hm=T((FL,qm)=>{"use strict";function hb(r){return r>=55296&&r<=56319}function db(r){return r>=56320&&r<=57343}qm.exports=function(t){if(typeof t!="string")throw new Error("Input must be string");for(var e=t.length,n=0,i=null,o=null,s=0;s<e;s++)i=t.charCodeAt(s),db(i)?o!=null&&hb(o)?n+=1:n+=3:i<=127?n+=1:i>=128&&i<=2047?n+=2:i>=2048&&i<=65535&&(n+=3),o=i;return n}});var zm=T((KL,$m)=>{"use strict";var pb=Vm(),mb=Hm();$m.exports=pb.bind(null,mb)});var Wm=T((VL,Ym)=>{"use strict";var yb=zm(),gb=/[\/\?<>\\:\*\|"]/g,wb=/[\x00-\x1f\x80-\x9f]/g,Eb=/^\.+$/,xb=/^(con|prn|aux|nul|com[0-9]|lpt[0-9])(\..*)?$/i,vb=/[\. ]+$/;function Gm(r,t){if(typeof r!="string")throw new Error("Input must be string");var e=r.replace(gb,t).replace(wb,t).replace(Eb,t).replace(xb,t).replace(vb,t);return yb(e,255)}Ym.exports=function(r,t){var e=t&&t.replacement||"",n=Gm(r,e);return e===""?n:Gm(n,"")}});var yt=T(($L,Qm)=>{Qm.exports={options:{usePureJavaScript:!1}}});var Jm=T((zL,Zm)=>{var zu={};Zm.exports=zu;var Xm={};zu.encode=function(r,t,e){if(typeof t!="string")throw new TypeError('"alphabet" must be a string.');if(e!==void 0&&typeof e!="number")throw new TypeError('"maxline" must be a number.');var n="";if(!(r instanceof Uint8Array))n=bb(r,t);else{var i=0,o=t.length,s=t.charAt(0),a=[0];for(i=0;i<r.length;++i){for(var c=0,l=r[i];c<a.length;++c)l+=a[c]<<8,a[c]=l%o,l=l/o|0;for(;l>0;)a.push(l%o),l=l/o|0}for(i=0;r[i]===0&&i<r.length-1;++i)n+=s;for(i=a.length-1;i>=0;--i)n+=t[a[i]]}if(e){var u=new RegExp(".{1,"+e+"}","g");n=n.match(u).join(`\r
25
+ `)}return n};zu.decode=function(r,t){if(typeof r!="string")throw new TypeError('"input" must be a string.');if(typeof t!="string")throw new TypeError('"alphabet" must be a string.');var e=Xm[t];if(!e){e=Xm[t]=[];for(var n=0;n<t.length;++n)e[t.charCodeAt(n)]=n}r=r.replace(/\s/g,"");for(var i=t.length,o=t.charAt(0),s=[0],n=0;n<r.length;n++){var a=e[r.charCodeAt(n)];if(a===void 0)return;for(var c=0,l=a;c<s.length;++c)l+=s[c]*i,s[c]=l&255,l>>=8;for(;l>0;)s.push(l&255),l>>=8}for(var u=0;r[u]===o&&u<r.length-1;++u)s.push(0);return typeof Buffer<"u"?Buffer.from(s.reverse()):new Uint8Array(s.reverse())};function bb(r,t){var e=0,n=t.length,i=t.charAt(0),o=[0];for(e=0;e<r.length();++e){for(var s=0,a=r.at(e);s<o.length;++s)a+=o[s]<<8,o[s]=a%n,a=a/n|0;for(;a>0;)o.push(a%n),a=a/n|0}var c="";for(e=0;r.at(e)===0&&e<r.length()-1;++e)c+=i;for(e=o.length-1;e>=0;--e)c+=t[o[e]];return c}});var zt=T((GL,ry)=>{var jm=yt(),ty=Jm(),w=ry.exports=jm.util=jm.util||{};(function(){if(typeof process<"u"&&process.nextTick&&!process.browser){w.nextTick=process.nextTick,typeof setImmediate=="function"?w.setImmediate=setImmediate:w.setImmediate=w.nextTick;return}if(typeof setImmediate=="function"){w.setImmediate=function(){return setImmediate.apply(void 0,arguments)},w.nextTick=function(a){return setImmediate(a)};return}if(w.setImmediate=function(a){setTimeout(a,0)},typeof window<"u"&&typeof window.postMessage=="function"){let a=function(c){if(c.source===window&&c.data===r){c.stopPropagation();var l=t.slice();t.length=0,l.forEach(function(u){u()})}};var s=a,r="forge.setImmediate",t=[];w.setImmediate=function(c){t.push(c),t.length===1&&window.postMessage(r,"*")},window.addEventListener("message",a,!0)}if(typeof MutationObserver<"u"){var e=Date.now(),n=!0,i=document.createElement("div"),t=[];new MutationObserver(function(){var c=t.slice();t.length=0,c.forEach(function(l){l()})}).observe(i,{attributes:!0});var o=w.setImmediate;w.setImmediate=function(c){Date.now()-e>15?(e=Date.now(),o(c)):(t.push(c),t.length===1&&i.setAttribute("a",n=!n))}}w.nextTick=w.setImmediate})();w.isNodejs=typeof process<"u"&&process.versions&&process.versions.node;w.globalScope=function(){return w.isNodejs?globalThis:typeof self>"u"?window:self}();w.isArray=Array.isArray||function(r){return Object.prototype.toString.call(r)==="[object Array]"};w.isArrayBuffer=function(r){return typeof ArrayBuffer<"u"&&r instanceof ArrayBuffer};w.isArrayBufferView=function(r){return r&&w.isArrayBuffer(r.buffer)&&r.byteLength!==void 0};function Mo(r){if(!(r===8||r===16||r===24||r===32))throw new Error("Only 8, 16, 24, or 32 bits supported: "+r)}w.ByteBuffer=Gu;function Gu(r){if(this.data="",this.read=0,typeof r=="string")this.data=r;else if(w.isArrayBuffer(r)||w.isArrayBufferView(r))if(typeof Buffer<"u"&&r instanceof Buffer)this.data=r.toString("binary");else{var t=new Uint8Array(r);try{this.data=String.fromCharCode.apply(null,t)}catch{for(var e=0;e<t.length;++e)this.putByte(t[e])}}else(r instanceof Gu||typeof r=="object"&&typeof r.data=="string"&&typeof r.read=="number")&&(this.data=r.data,this.read=r.read);this._constructedStringLength=0}w.ByteStringBuffer=Gu;var _b=4096;w.ByteStringBuffer.prototype._optimizeConstructedString=function(r){this._constructedStringLength+=r,this._constructedStringLength>_b&&(this.data.substr(0,1),this._constructedStringLength=0)};w.ByteStringBuffer.prototype.length=function(){return this.data.length-this.read};w.ByteStringBuffer.prototype.isEmpty=function(){return this.length()<=0};w.ByteStringBuffer.prototype.putByte=function(r){return this.putBytes(String.fromCharCode(r))};w.ByteStringBuffer.prototype.fillWithByte=function(r,t){r=String.fromCharCode(r);for(var e=this.data;t>0;)t&1&&(e+=r),t>>>=1,t>0&&(r+=r);return this.data=e,this._optimizeConstructedString(t),this};w.ByteStringBuffer.prototype.putBytes=function(r){return this.data+=r,this._optimizeConstructedString(r.length),this};w.ByteStringBuffer.prototype.putString=function(r){return this.putBytes(w.encodeUtf8(r))};w.ByteStringBuffer.prototype.putInt16=function(r){return this.putBytes(String.fromCharCode(r>>8&255)+String.fromCharCode(r&255))};w.ByteStringBuffer.prototype.putInt24=function(r){return this.putBytes(String.fromCharCode(r>>16&255)+String.fromCharCode(r>>8&255)+String.fromCharCode(r&255))};w.ByteStringBuffer.prototype.putInt32=function(r){return this.putBytes(String.fromCharCode(r>>24&255)+String.fromCharCode(r>>16&255)+String.fromCharCode(r>>8&255)+String.fromCharCode(r&255))};w.ByteStringBuffer.prototype.putInt16Le=function(r){return this.putBytes(String.fromCharCode(r&255)+String.fromCharCode(r>>8&255))};w.ByteStringBuffer.prototype.putInt24Le=function(r){return this.putBytes(String.fromCharCode(r&255)+String.fromCharCode(r>>8&255)+String.fromCharCode(r>>16&255))};w.ByteStringBuffer.prototype.putInt32Le=function(r){return this.putBytes(String.fromCharCode(r&255)+String.fromCharCode(r>>8&255)+String.fromCharCode(r>>16&255)+String.fromCharCode(r>>24&255))};w.ByteStringBuffer.prototype.putInt=function(r,t){Mo(t);var e="";do t-=8,e+=String.fromCharCode(r>>t&255);while(t>0);return this.putBytes(e)};w.ByteStringBuffer.prototype.putSignedInt=function(r,t){return r<0&&(r+=2<<t-1),this.putInt(r,t)};w.ByteStringBuffer.prototype.putBuffer=function(r){return this.putBytes(r.getBytes())};w.ByteStringBuffer.prototype.getByte=function(){return this.data.charCodeAt(this.read++)};w.ByteStringBuffer.prototype.getInt16=function(){var r=this.data.charCodeAt(this.read)<<8^this.data.charCodeAt(this.read+1);return this.read+=2,r};w.ByteStringBuffer.prototype.getInt24=function(){var r=this.data.charCodeAt(this.read)<<16^this.data.charCodeAt(this.read+1)<<8^this.data.charCodeAt(this.read+2);return this.read+=3,r};w.ByteStringBuffer.prototype.getInt32=function(){var r=this.data.charCodeAt(this.read)<<24^this.data.charCodeAt(this.read+1)<<16^this.data.charCodeAt(this.read+2)<<8^this.data.charCodeAt(this.read+3);return this.read+=4,r};w.ByteStringBuffer.prototype.getInt16Le=function(){var r=this.data.charCodeAt(this.read)^this.data.charCodeAt(this.read+1)<<8;return this.read+=2,r};w.ByteStringBuffer.prototype.getInt24Le=function(){var r=this.data.charCodeAt(this.read)^this.data.charCodeAt(this.read+1)<<8^this.data.charCodeAt(this.read+2)<<16;return this.read+=3,r};w.ByteStringBuffer.prototype.getInt32Le=function(){var r=this.data.charCodeAt(this.read)^this.data.charCodeAt(this.read+1)<<8^this.data.charCodeAt(this.read+2)<<16^this.data.charCodeAt(this.read+3)<<24;return this.read+=4,r};w.ByteStringBuffer.prototype.getInt=function(r){Mo(r);var t=0;do t=(t<<8)+this.data.charCodeAt(this.read++),r-=8;while(r>0);return t};w.ByteStringBuffer.prototype.getSignedInt=function(r){var t=this.getInt(r),e=2<<r-2;return t>=e&&(t-=e<<1),t};w.ByteStringBuffer.prototype.getBytes=function(r){var t;return r?(r=Math.min(this.length(),r),t=this.data.slice(this.read,this.read+r),this.read+=r):r===0?t="":(t=this.read===0?this.data:this.data.slice(this.read),this.clear()),t};w.ByteStringBuffer.prototype.bytes=function(r){return typeof r>"u"?this.data.slice(this.read):this.data.slice(this.read,this.read+r)};w.ByteStringBuffer.prototype.at=function(r){return this.data.charCodeAt(this.read+r)};w.ByteStringBuffer.prototype.setAt=function(r,t){return this.data=this.data.substr(0,this.read+r)+String.fromCharCode(t)+this.data.substr(this.read+r+1),this};w.ByteStringBuffer.prototype.last=function(){return this.data.charCodeAt(this.data.length-1)};w.ByteStringBuffer.prototype.copy=function(){var r=w.createBuffer(this.data);return r.read=this.read,r};w.ByteStringBuffer.prototype.compact=function(){return this.read>0&&(this.data=this.data.slice(this.read),this.read=0),this};w.ByteStringBuffer.prototype.clear=function(){return this.data="",this.read=0,this};w.ByteStringBuffer.prototype.truncate=function(r){var t=Math.max(0,this.length()-r);return this.data=this.data.substr(this.read,t),this.read=0,this};w.ByteStringBuffer.prototype.toHex=function(){for(var r="",t=this.read;t<this.data.length;++t){var e=this.data.charCodeAt(t);e<16&&(r+="0"),r+=e.toString(16)}return r};w.ByteStringBuffer.prototype.toString=function(){return w.decodeUtf8(this.bytes())};function Sb(r,t){t=t||{},this.read=t.readOffset||0,this.growSize=t.growSize||1024;var e=w.isArrayBuffer(r),n=w.isArrayBufferView(r);if(e||n){e?this.data=new DataView(r):this.data=new DataView(r.buffer,r.byteOffset,r.byteLength),this.write="writeOffset"in t?t.writeOffset:this.data.byteLength;return}this.data=new DataView(new ArrayBuffer(0)),this.write=0,r!=null&&this.putBytes(r),"writeOffset"in t&&(this.write=t.writeOffset)}w.DataBuffer=Sb;w.DataBuffer.prototype.length=function(){return this.write-this.read};w.DataBuffer.prototype.isEmpty=function(){return this.length()<=0};w.DataBuffer.prototype.accommodate=function(r,t){if(this.length()>=r)return this;t=Math.max(t||this.growSize,r);var e=new Uint8Array(this.data.buffer,this.data.byteOffset,this.data.byteLength),n=new Uint8Array(this.length()+t);return n.set(e),this.data=new DataView(n.buffer),this};w.DataBuffer.prototype.putByte=function(r){return this.accommodate(1),this.data.setUint8(this.write++,r),this};w.DataBuffer.prototype.fillWithByte=function(r,t){this.accommodate(t);for(var e=0;e<t;++e)this.data.setUint8(r);return this};w.DataBuffer.prototype.putBytes=function(r,t){if(w.isArrayBufferView(r)){var e=new Uint8Array(r.buffer,r.byteOffset,r.byteLength),n=e.byteLength-e.byteOffset;this.accommodate(n);var i=new Uint8Array(this.data.buffer,this.write);return i.set(e),this.write+=n,this}if(w.isArrayBuffer(r)){var e=new Uint8Array(r);this.accommodate(e.byteLength);var i=new Uint8Array(this.data.buffer);return i.set(e,this.write),this.write+=e.byteLength,this}if(r instanceof w.DataBuffer||typeof r=="object"&&typeof r.read=="number"&&typeof r.write=="number"&&w.isArrayBufferView(r.data)){var e=new Uint8Array(r.data.byteLength,r.read,r.length());this.accommodate(e.byteLength);var i=new Uint8Array(r.data.byteLength,this.write);return i.set(e),this.write+=e.byteLength,this}if(r instanceof w.ByteStringBuffer&&(r=r.data,t="binary"),t=t||"binary",typeof r=="string"){var o;if(t==="hex")return this.accommodate(Math.ceil(r.length/2)),o=new Uint8Array(this.data.buffer,this.write),this.write+=w.binary.hex.decode(r,o,this.write),this;if(t==="base64")return this.accommodate(Math.ceil(r.length/4)*3),o=new Uint8Array(this.data.buffer,this.write),this.write+=w.binary.base64.decode(r,o,this.write),this;if(t==="utf8"&&(r=w.encodeUtf8(r),t="binary"),t==="binary"||t==="raw")return this.accommodate(r.length),o=new Uint8Array(this.data.buffer,this.write),this.write+=w.binary.raw.decode(o),this;if(t==="utf16")return this.accommodate(r.length*2),o=new Uint16Array(this.data.buffer,this.write),this.write+=w.text.utf16.encode(o),this;throw new Error("Invalid encoding: "+t)}throw Error("Invalid parameter: "+r)};w.DataBuffer.prototype.putBuffer=function(r){return this.putBytes(r),r.clear(),this};w.DataBuffer.prototype.putString=function(r){return this.putBytes(r,"utf16")};w.DataBuffer.prototype.putInt16=function(r){return this.accommodate(2),this.data.setInt16(this.write,r),this.write+=2,this};w.DataBuffer.prototype.putInt24=function(r){return this.accommodate(3),this.data.setInt16(this.write,r>>8&65535),this.data.setInt8(this.write,r>>16&255),this.write+=3,this};w.DataBuffer.prototype.putInt32=function(r){return this.accommodate(4),this.data.setInt32(this.write,r),this.write+=4,this};w.DataBuffer.prototype.putInt16Le=function(r){return this.accommodate(2),this.data.setInt16(this.write,r,!0),this.write+=2,this};w.DataBuffer.prototype.putInt24Le=function(r){return this.accommodate(3),this.data.setInt8(this.write,r>>16&255),this.data.setInt16(this.write,r>>8&65535,!0),this.write+=3,this};w.DataBuffer.prototype.putInt32Le=function(r){return this.accommodate(4),this.data.setInt32(this.write,r,!0),this.write+=4,this};w.DataBuffer.prototype.putInt=function(r,t){Mo(t),this.accommodate(t/8);do t-=8,this.data.setInt8(this.write++,r>>t&255);while(t>0);return this};w.DataBuffer.prototype.putSignedInt=function(r,t){return Mo(t),this.accommodate(t/8),r<0&&(r+=2<<t-1),this.putInt(r,t)};w.DataBuffer.prototype.getByte=function(){return this.data.getInt8(this.read++)};w.DataBuffer.prototype.getInt16=function(){var r=this.data.getInt16(this.read);return this.read+=2,r};w.DataBuffer.prototype.getInt24=function(){var r=this.data.getInt16(this.read)<<8^this.data.getInt8(this.read+2);return this.read+=3,r};w.DataBuffer.prototype.getInt32=function(){var r=this.data.getInt32(this.read);return this.read+=4,r};w.DataBuffer.prototype.getInt16Le=function(){var r=this.data.getInt16(this.read,!0);return this.read+=2,r};w.DataBuffer.prototype.getInt24Le=function(){var r=this.data.getInt8(this.read)^this.data.getInt16(this.read+1,!0)<<8;return this.read+=3,r};w.DataBuffer.prototype.getInt32Le=function(){var r=this.data.getInt32(this.read,!0);return this.read+=4,r};w.DataBuffer.prototype.getInt=function(r){Mo(r);var t=0;do t=(t<<8)+this.data.getInt8(this.read++),r-=8;while(r>0);return t};w.DataBuffer.prototype.getSignedInt=function(r){var t=this.getInt(r),e=2<<r-2;return t>=e&&(t-=e<<1),t};w.DataBuffer.prototype.getBytes=function(r){var t;return r?(r=Math.min(this.length(),r),t=this.data.slice(this.read,this.read+r),this.read+=r):r===0?t="":(t=this.read===0?this.data:this.data.slice(this.read),this.clear()),t};w.DataBuffer.prototype.bytes=function(r){return typeof r>"u"?this.data.slice(this.read):this.data.slice(this.read,this.read+r)};w.DataBuffer.prototype.at=function(r){return this.data.getUint8(this.read+r)};w.DataBuffer.prototype.setAt=function(r,t){return this.data.setUint8(r,t),this};w.DataBuffer.prototype.last=function(){return this.data.getUint8(this.write-1)};w.DataBuffer.prototype.copy=function(){return new w.DataBuffer(this)};w.DataBuffer.prototype.compact=function(){if(this.read>0){var r=new Uint8Array(this.data.buffer,this.read),t=new Uint8Array(r.byteLength);t.set(r),this.data=new DataView(t),this.write-=this.read,this.read=0}return this};w.DataBuffer.prototype.clear=function(){return this.data=new DataView(new ArrayBuffer(0)),this.read=this.write=0,this};w.DataBuffer.prototype.truncate=function(r){return this.write=Math.max(0,this.length()-r),this.read=Math.min(this.read,this.write),this};w.DataBuffer.prototype.toHex=function(){for(var r="",t=this.read;t<this.data.byteLength;++t){var e=this.data.getUint8(t);e<16&&(r+="0"),r+=e.toString(16)}return r};w.DataBuffer.prototype.toString=function(r){var t=new Uint8Array(this.data,this.read,this.length());if(r=r||"utf8",r==="binary"||r==="raw")return w.binary.raw.encode(t);if(r==="hex")return w.binary.hex.encode(t);if(r==="base64")return w.binary.base64.encode(t);if(r==="utf8")return w.text.utf8.decode(t);if(r==="utf16")return w.text.utf16.decode(t);throw new Error("Invalid encoding: "+r)};w.createBuffer=function(r,t){return t=t||"raw",r!==void 0&&t==="utf8"&&(r=w.encodeUtf8(r)),new w.ByteBuffer(r)};w.fillString=function(r,t){for(var e="";t>0;)t&1&&(e+=r),t>>>=1,t>0&&(r+=r);return e};w.xorBytes=function(r,t,e){for(var n="",i="",o="",s=0,a=0;e>0;--e,++s)i=r.charCodeAt(s)^t.charCodeAt(s),a>=10&&(n+=o,o="",a=0),o+=String.fromCharCode(i),++a;return n+=o,n};w.hexToBytes=function(r){var t="",e=0;for(r.length&!0&&(e=1,t+=String.fromCharCode(parseInt(r[0],16)));e<r.length;e+=2)t+=String.fromCharCode(parseInt(r.substr(e,2),16));return t};w.bytesToHex=function(r){return w.createBuffer(r).toHex()};w.int32ToBytes=function(r){return String.fromCharCode(r>>24&255)+String.fromCharCode(r>>16&255)+String.fromCharCode(r>>8&255)+String.fromCharCode(r&255)};var hn="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",dn=[62,-1,-1,-1,63,52,53,54,55,56,57,58,59,60,61,-1,-1,-1,64,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,-1,-1,-1,-1,-1,-1,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51],ey="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";w.encode64=function(r,t){for(var e="",n="",i,o,s,a=0;a<r.length;)i=r.charCodeAt(a++),o=r.charCodeAt(a++),s=r.charCodeAt(a++),e+=hn.charAt(i>>2),e+=hn.charAt((i&3)<<4|o>>4),isNaN(o)?e+="==":(e+=hn.charAt((o&15)<<2|s>>6),e+=isNaN(s)?"=":hn.charAt(s&63)),t&&e.length>t&&(n+=e.substr(0,t)+`\r
26
+ `,e=e.substr(t));return n+=e,n};w.decode64=function(r){r=r.replace(/[^A-Za-z0-9\+\/\=]/g,"");for(var t="",e,n,i,o,s=0;s<r.length;)e=dn[r.charCodeAt(s++)-43],n=dn[r.charCodeAt(s++)-43],i=dn[r.charCodeAt(s++)-43],o=dn[r.charCodeAt(s++)-43],t+=String.fromCharCode(e<<2|n>>4),i!==64&&(t+=String.fromCharCode((n&15)<<4|i>>2),o!==64&&(t+=String.fromCharCode((i&3)<<6|o)));return t};w.encodeUtf8=function(r){return unescape(encodeURIComponent(r))};w.decodeUtf8=function(r){return decodeURIComponent(escape(r))};w.binary={raw:{},hex:{},base64:{},base58:{},baseN:{encode:ty.encode,decode:ty.decode}};w.binary.raw.encode=function(r){return String.fromCharCode.apply(null,r)};w.binary.raw.decode=function(r,t,e){var n=t;n||(n=new Uint8Array(r.length)),e=e||0;for(var i=e,o=0;o<r.length;++o)n[i++]=r.charCodeAt(o);return t?i-e:n};w.binary.hex.encode=w.bytesToHex;w.binary.hex.decode=function(r,t,e){var n=t;n||(n=new Uint8Array(Math.ceil(r.length/2))),e=e||0;var i=0,o=e;for(r.length&1&&(i=1,n[o++]=parseInt(r[0],16));i<r.length;i+=2)n[o++]=parseInt(r.substr(i,2),16);return t?o-e:n};w.binary.base64.encode=function(r,t){for(var e="",n="",i,o,s,a=0;a<r.byteLength;)i=r[a++],o=r[a++],s=r[a++],e+=hn.charAt(i>>2),e+=hn.charAt((i&3)<<4|o>>4),isNaN(o)?e+="==":(e+=hn.charAt((o&15)<<2|s>>6),e+=isNaN(s)?"=":hn.charAt(s&63)),t&&e.length>t&&(n+=e.substr(0,t)+`\r
27
+ `,e=e.substr(t));return n+=e,n};w.binary.base64.decode=function(r,t,e){var n=t;n||(n=new Uint8Array(Math.ceil(r.length/4)*3)),r=r.replace(/[^A-Za-z0-9\+\/\=]/g,""),e=e||0;for(var i,o,s,a,c=0,l=e;c<r.length;)i=dn[r.charCodeAt(c++)-43],o=dn[r.charCodeAt(c++)-43],s=dn[r.charCodeAt(c++)-43],a=dn[r.charCodeAt(c++)-43],n[l++]=i<<2|o>>4,s!==64&&(n[l++]=(o&15)<<4|s>>2,a!==64&&(n[l++]=(s&3)<<6|a));return t?l-e:n.subarray(0,l)};w.binary.base58.encode=function(r,t){return w.binary.baseN.encode(r,ey,t)};w.binary.base58.decode=function(r,t){return w.binary.baseN.decode(r,ey,t)};w.text={utf8:{},utf16:{}};w.text.utf8.encode=function(r,t,e){r=w.encodeUtf8(r);var n=t;n||(n=new Uint8Array(r.length)),e=e||0;for(var i=e,o=0;o<r.length;++o)n[i++]=r.charCodeAt(o);return t?i-e:n};w.text.utf8.decode=function(r){return w.decodeUtf8(String.fromCharCode.apply(null,r))};w.text.utf16.encode=function(r,t,e){var n=t;n||(n=new Uint8Array(r.length*2));var i=new Uint16Array(n.buffer);e=e||0;for(var o=e,s=e,a=0;a<r.length;++a)i[s++]=r.charCodeAt(a),o+=2;return t?o-e:n};w.text.utf16.decode=function(r){return String.fromCharCode.apply(null,new Uint16Array(r.buffer))};w.deflate=function(r,t,e){if(t=w.decode64(r.deflate(w.encode64(t)).rval),e){var n=2,i=t.charCodeAt(1);i&32&&(n=6),t=t.substring(n,t.length-4)}return t};w.inflate=function(r,t,e){var n=r.inflate(w.encode64(t)).rval;return n===null?null:w.decode64(n)};var Yu=function(r,t,e){if(!r)throw new Error("WebStorage not available.");var n;if(e===null?n=r.removeItem(t):(e=w.encode64(JSON.stringify(e)),n=r.setItem(t,e)),typeof n<"u"&&n.rval!==!0){var i=new Error(n.error.message);throw i.id=n.error.id,i.name=n.error.name,i}},Wu=function(r,t){if(!r)throw new Error("WebStorage not available.");var e=r.getItem(t);if(r.init)if(e.rval===null){if(e.error){var n=new Error(e.error.message);throw n.id=e.error.id,n.name=e.error.name,n}e=null}else e=e.rval;return e!==null&&(e=JSON.parse(w.decode64(e))),e},Ab=function(r,t,e,n){var i=Wu(r,t);i===null&&(i={}),i[e]=n,Yu(r,t,i)},Rb=function(r,t,e){var n=Wu(r,t);return n!==null&&(n=e in n?n[e]:null),n},Ib=function(r,t,e){var n=Wu(r,t);if(n!==null&&e in n){delete n[e];var i=!0;for(var o in n){i=!1;break}i&&(n=null),Yu(r,t,n)}},Tb=function(r,t){Yu(r,t,null)},Na=function(r,t,e){var n=null;typeof e>"u"&&(e=["web","flash"]);var i,o=!1,s=null;for(var a in e){i=e[a];try{if(i==="flash"||i==="both"){if(t[0]===null)throw new Error("Flash local storage not available.");n=r.apply(this,t),o=i==="flash"}(i==="web"||i==="both")&&(t[0]=localStorage,n=r.apply(this,t),o=!0)}catch(c){s=c}if(o)break}if(!o)throw s;return n};w.setItem=function(r,t,e,n,i){Na(Ab,arguments,i)};w.getItem=function(r,t,e,n){return Na(Rb,arguments,n)};w.removeItem=function(r,t,e,n){Na(Ib,arguments,n)};w.clearItems=function(r,t,e){Na(Tb,arguments,e)};w.isEmpty=function(r){for(var t in r)if(r.hasOwnProperty(t))return!1;return!0};w.format=function(r){for(var t=/%./g,e,n,i=0,o=[],s=0;e=t.exec(r);){n=r.substring(s,t.lastIndex-2),n.length>0&&o.push(n),s=t.lastIndex;var a=e[0][1];switch(a){case"s":case"o":i<arguments.length?o.push(arguments[i+++1]):o.push("<?>");break;case"%":o.push("%");break;default:o.push("<%"+a+"?>")}}return o.push(r.substring(s)),o.join("")};w.formatNumber=function(r,t,e,n){var i=r,o=isNaN(t=Math.abs(t))?2:t,s=e===void 0?",":e,a=n===void 0?".":n,c=i<0?"-":"",l=parseInt(i=Math.abs(+i||0).toFixed(o),10)+"",u=l.length>3?l.length%3:0;return c+(u?l.substr(0,u)+a:"")+l.substr(u).replace(/(\d{3})(?=\d)/g,"$1"+a)+(o?s+Math.abs(i-l).toFixed(o).slice(2):"")};w.formatSize=function(r){return r>=1073741824?r=w.formatNumber(r/1073741824,2,".","")+" GiB":r>=1048576?r=w.formatNumber(r/1048576,2,".","")+" MiB":r>=1024?r=w.formatNumber(r/1024,0)+" KiB":r=w.formatNumber(r,0)+" bytes",r};w.bytesFromIP=function(r){return r.indexOf(".")!==-1?w.bytesFromIPv4(r):r.indexOf(":")!==-1?w.bytesFromIPv6(r):null};w.bytesFromIPv4=function(r){if(r=r.split("."),r.length!==4)return null;for(var t=w.createBuffer(),e=0;e<r.length;++e){var n=parseInt(r[e],10);if(isNaN(n))return null;t.putByte(n)}return t.getBytes()};w.bytesFromIPv6=function(r){var t=0;r=r.split(":").filter(function(s){return s.length===0&&++t,!0});for(var e=(8-r.length+t)*2,n=w.createBuffer(),i=0;i<8;++i){if(!r[i]||r[i].length===0){n.fillWithByte(0,e),e=0;continue}var o=w.hexToBytes(r[i]);o.length<2&&n.putByte(0),n.putBytes(o)}return n.getBytes()};w.bytesToIP=function(r){return r.length===4?w.bytesToIPv4(r):r.length===16?w.bytesToIPv6(r):null};w.bytesToIPv4=function(r){if(r.length!==4)return null;for(var t=[],e=0;e<r.length;++e)t.push(r.charCodeAt(e));return t.join(".")};w.bytesToIPv6=function(r){if(r.length!==16)return null;for(var t=[],e=[],n=0,i=0;i<r.length;i+=2){for(var o=w.bytesToHex(r[i]+r[i+1]);o[0]==="0"&&o!=="0";)o=o.substr(1);if(o==="0"){var s=e[e.length-1],a=t.length;!s||a!==s.end+1?e.push({start:a,end:a}):(s.end=a,s.end-s.start>e[n].end-e[n].start&&(n=e.length-1))}t.push(o)}if(e.length>0){var c=e[n];c.end-c.start>0&&(t.splice(c.start,c.end-c.start+1,""),c.start===0&&t.unshift(""),c.end===7&&t.push(""))}return t.join(":")};w.estimateCores=function(r,t){if(typeof r=="function"&&(t=r,r={}),r=r||{},"cores"in w&&!r.update)return t(null,w.cores);if(typeof navigator<"u"&&"hardwareConcurrency"in navigator&&navigator.hardwareConcurrency>0)return w.cores=navigator.hardwareConcurrency,t(null,w.cores);if(typeof Worker>"u")return w.cores=1,t(null,w.cores);if(typeof Blob>"u")return w.cores=2,t(null,w.cores);var e=URL.createObjectURL(new Blob(["(",function(){self.addEventListener("message",function(s){for(var a=Date.now(),c=a+4;Date.now()<c;);self.postMessage({st:a,et:c})})}.toString(),")()"],{type:"application/javascript"}));n([],5,16);function n(s,a,c){if(a===0){var l=Math.floor(s.reduce(function(u,f){return u+f},0)/s.length);return w.cores=Math.max(1,l),URL.revokeObjectURL(e),t(null,w.cores)}i(c,function(u,f){s.push(o(c,f)),n(s,a-1,c)})}function i(s,a){for(var c=[],l=[],u=0;u<s;++u){var f=new Worker(e);f.addEventListener("message",function(d){if(l.push(d.data),l.length===s){for(var h=0;h<s;++h)c[h].terminate();a(null,l)}}),c.push(f)}for(var u=0;u<s;++u)c[u].postMessage(u)}function o(s,a){for(var c=[],l=0;l<s;++l)for(var u=a[l],f=c[l]=[],d=0;d<s;++d)if(l!==d){var h=a[d];(u.st>h.st&&u.st<h.et||h.st>u.st&&h.st<u.et)&&f.push(d)}return c.reduce(function(p,m){return Math.max(p,m.length)},0)}}});var Oa=T((YL,ny)=>{var Uo=yt();Uo.pki=Uo.pki||{};var Qu=ny.exports=Uo.pki.oids=Uo.oids=Uo.oids||{};function R(r,t){Qu[r]=t,Qu[t]=r}function dt(r,t){Qu[r]=t}R("1.2.840.113549.1.1.1","rsaEncryption");R("1.2.840.113549.1.1.4","md5WithRSAEncryption");R("1.2.840.113549.1.1.5","sha1WithRSAEncryption");R("1.2.840.113549.1.1.7","RSAES-OAEP");R("1.2.840.113549.1.1.8","mgf1");R("1.2.840.113549.1.1.9","pSpecified");R("1.2.840.113549.1.1.10","RSASSA-PSS");R("1.2.840.113549.1.1.11","sha256WithRSAEncryption");R("1.2.840.113549.1.1.12","sha384WithRSAEncryption");R("1.2.840.113549.1.1.13","sha512WithRSAEncryption");R("1.3.101.112","EdDSA25519");R("1.2.840.10040.4.3","dsa-with-sha1");R("1.3.14.3.2.7","desCBC");R("1.3.14.3.2.26","sha1");R("1.3.14.3.2.29","sha1WithRSASignature");R("2.16.840.1.101.3.4.2.1","sha256");R("2.16.840.1.101.3.4.2.2","sha384");R("2.16.840.1.101.3.4.2.3","sha512");R("2.16.840.1.101.3.4.2.4","sha224");R("2.16.840.1.101.3.4.2.5","sha512-224");R("2.16.840.1.101.3.4.2.6","sha512-256");R("1.2.840.113549.2.2","md2");R("1.2.840.113549.2.5","md5");R("1.2.840.113549.1.7.1","data");R("1.2.840.113549.1.7.2","signedData");R("1.2.840.113549.1.7.3","envelopedData");R("1.2.840.113549.1.7.4","signedAndEnvelopedData");R("1.2.840.113549.1.7.5","digestedData");R("1.2.840.113549.1.7.6","encryptedData");R("1.2.840.113549.1.9.1","emailAddress");R("1.2.840.113549.1.9.2","unstructuredName");R("1.2.840.113549.1.9.3","contentType");R("1.2.840.113549.1.9.4","messageDigest");R("1.2.840.113549.1.9.5","signingTime");R("1.2.840.113549.1.9.6","counterSignature");R("1.2.840.113549.1.9.7","challengePassword");R("1.2.840.113549.1.9.8","unstructuredAddress");R("1.2.840.113549.1.9.14","extensionRequest");R("1.2.840.113549.1.9.20","friendlyName");R("1.2.840.113549.1.9.21","localKeyId");R("1.2.840.113549.1.9.22.1","x509Certificate");R("1.2.840.113549.1.12.10.1.1","keyBag");R("1.2.840.113549.1.12.10.1.2","pkcs8ShroudedKeyBag");R("1.2.840.113549.1.12.10.1.3","certBag");R("1.2.840.113549.1.12.10.1.4","crlBag");R("1.2.840.113549.1.12.10.1.5","secretBag");R("1.2.840.113549.1.12.10.1.6","safeContentsBag");R("1.2.840.113549.1.5.13","pkcs5PBES2");R("1.2.840.113549.1.5.12","pkcs5PBKDF2");R("1.2.840.113549.1.12.1.1","pbeWithSHAAnd128BitRC4");R("1.2.840.113549.1.12.1.2","pbeWithSHAAnd40BitRC4");R("1.2.840.113549.1.12.1.3","pbeWithSHAAnd3-KeyTripleDES-CBC");R("1.2.840.113549.1.12.1.4","pbeWithSHAAnd2-KeyTripleDES-CBC");R("1.2.840.113549.1.12.1.5","pbeWithSHAAnd128BitRC2-CBC");R("1.2.840.113549.1.12.1.6","pbewithSHAAnd40BitRC2-CBC");R("1.2.840.113549.2.7","hmacWithSHA1");R("1.2.840.113549.2.8","hmacWithSHA224");R("1.2.840.113549.2.9","hmacWithSHA256");R("1.2.840.113549.2.10","hmacWithSHA384");R("1.2.840.113549.2.11","hmacWithSHA512");R("1.2.840.113549.3.7","des-EDE3-CBC");R("2.16.840.1.101.3.4.1.2","aes128-CBC");R("2.16.840.1.101.3.4.1.22","aes192-CBC");R("2.16.840.1.101.3.4.1.42","aes256-CBC");R("2.5.4.3","commonName");R("2.5.4.4","surname");R("2.5.4.5","serialNumber");R("2.5.4.6","countryName");R("2.5.4.7","localityName");R("2.5.4.8","stateOrProvinceName");R("2.5.4.9","streetAddress");R("2.5.4.10","organizationName");R("2.5.4.11","organizationalUnitName");R("2.5.4.12","title");R("2.5.4.13","description");R("2.5.4.15","businessCategory");R("2.5.4.17","postalCode");R("2.5.4.42","givenName");R("1.3.6.1.4.1.311.60.2.1.2","jurisdictionOfIncorporationStateOrProvinceName");R("1.3.6.1.4.1.311.60.2.1.3","jurisdictionOfIncorporationCountryName");R("2.16.840.1.113730.1.1","nsCertType");R("2.16.840.1.113730.1.13","nsComment");dt("2.5.29.1","authorityKeyIdentifier");dt("2.5.29.2","keyAttributes");dt("2.5.29.3","certificatePolicies");dt("2.5.29.4","keyUsageRestriction");dt("2.5.29.5","policyMapping");dt("2.5.29.6","subtreesConstraint");dt("2.5.29.7","subjectAltName");dt("2.5.29.8","issuerAltName");dt("2.5.29.9","subjectDirectoryAttributes");dt("2.5.29.10","basicConstraints");dt("2.5.29.11","nameConstraints");dt("2.5.29.12","policyConstraints");dt("2.5.29.13","basicConstraints");R("2.5.29.14","subjectKeyIdentifier");R("2.5.29.15","keyUsage");dt("2.5.29.16","privateKeyUsagePeriod");R("2.5.29.17","subjectAltName");R("2.5.29.18","issuerAltName");R("2.5.29.19","basicConstraints");dt("2.5.29.20","cRLNumber");dt("2.5.29.21","cRLReason");dt("2.5.29.22","expirationDate");dt("2.5.29.23","instructionCode");dt("2.5.29.24","invalidityDate");dt("2.5.29.25","cRLDistributionPoints");dt("2.5.29.26","issuingDistributionPoint");dt("2.5.29.27","deltaCRLIndicator");dt("2.5.29.28","issuingDistributionPoint");dt("2.5.29.29","certificateIssuer");dt("2.5.29.30","nameConstraints");R("2.5.29.31","cRLDistributionPoints");R("2.5.29.32","certificatePolicies");dt("2.5.29.33","policyMappings");dt("2.5.29.34","policyConstraints");R("2.5.29.35","authorityKeyIdentifier");dt("2.5.29.36","policyConstraints");R("2.5.29.37","extKeyUsage");dt("2.5.29.46","freshestCRL");dt("2.5.29.54","inhibitAnyPolicy");R("1.3.6.1.4.1.11129.2.4.2","timestampList");R("1.3.6.1.5.5.7.1.1","authorityInfoAccess");R("1.3.6.1.5.5.7.3.1","serverAuth");R("1.3.6.1.5.5.7.3.2","clientAuth");R("1.3.6.1.5.5.7.3.3","codeSigning");R("1.3.6.1.5.5.7.3.4","emailProtection");R("1.3.6.1.5.5.7.3.8","timeStamping")});var Ko=T((WL,oy)=>{var It=yt();zt();Oa();var P=oy.exports=It.asn1=It.asn1||{};P.Class={UNIVERSAL:0,APPLICATION:64,CONTEXT_SPECIFIC:128,PRIVATE:192};P.Type={NONE:0,BOOLEAN:1,INTEGER:2,BITSTRING:3,OCTETSTRING:4,NULL:5,OID:6,ODESC:7,EXTERNAL:8,REAL:9,ENUMERATED:10,EMBEDDED:11,UTF8:12,ROID:13,SEQUENCE:16,SET:17,PRINTABLESTRING:19,IA5STRING:22,UTCTIME:23,GENERALIZEDTIME:24,BMPSTRING:30};P.create=function(r,t,e,n,i){if(It.util.isArray(n)){for(var o=[],s=0;s<n.length;++s)n[s]!==void 0&&o.push(n[s]);n=o}var a={tagClass:r,type:t,constructed:e,composed:e||It.util.isArray(n),value:n};return i&&"bitStringContents"in i&&(a.bitStringContents=i.bitStringContents,a.original=P.copy(a)),a};P.copy=function(r,t){var e;if(It.util.isArray(r)){e=[];for(var n=0;n<r.length;++n)e.push(P.copy(r[n],t));return e}return typeof r=="string"?r:(e={tagClass:r.tagClass,type:r.type,constructed:r.constructed,composed:r.composed,value:P.copy(r.value,t)},t&&!t.excludeBitStringContents&&(e.bitStringContents=r.bitStringContents),e)};P.equals=function(r,t,e){if(It.util.isArray(r)){if(!It.util.isArray(t)||r.length!==t.length)return!1;for(var n=0;n<r.length;++n)if(!P.equals(r[n],t[n]))return!1;return!0}if(typeof r!=typeof t)return!1;if(typeof r=="string")return r===t;var i=r.tagClass===t.tagClass&&r.type===t.type&&r.constructed===t.constructed&&r.composed===t.composed&&P.equals(r.value,t.value);return e&&e.includeBitStringContents&&(i=i&&r.bitStringContents===t.bitStringContents),i};P.getBerValueLength=function(r){var t=r.getByte();if(t!==128){var e,n=t&128;return n?e=r.getInt((t&127)<<3):e=t,e}};function Fo(r,t,e){if(e>t){var n=new Error("Too few bytes to parse DER.");throw n.available=r.length(),n.remaining=t,n.requested=e,n}}var Cb=function(r,t){var e=r.getByte();if(t--,e!==128){var n,i=e&128;if(!i)n=e;else{var o=e&127;Fo(r,t,o),n=r.getInt(o<<3)}if(n<0)throw new Error("Negative length: "+n);return n}};P.fromDer=function(r,t){t===void 0&&(t={strict:!0,parseAllBytes:!0,decodeBitStrings:!0}),typeof t=="boolean"&&(t={strict:t,parseAllBytes:!0,decodeBitStrings:!0}),"strict"in t||(t.strict=!0),"parseAllBytes"in t||(t.parseAllBytes=!0),"decodeBitStrings"in t||(t.decodeBitStrings=!0),typeof r=="string"&&(r=It.util.createBuffer(r));var e=r.length(),n=ka(r,r.length(),0,t);if(t.parseAllBytes&&r.length()!==0){var i=new Error("Unparsed DER bytes remain after ASN.1 parsing.");throw i.byteCount=e,i.remaining=r.length(),i}return n};function ka(r,t,e,n){var i;Fo(r,t,2);var o=r.getByte();t--;var s=o&192,a=o&31;i=r.length();var c=Cb(r,t);if(t-=i-r.length(),c!==void 0&&c>t){if(n.strict){var l=new Error("Too few bytes to read ASN.1 value.");throw l.available=r.length(),l.remaining=t,l.requested=c,l}c=t}var u,f,d=(o&32)===32;if(d)if(u=[],c===void 0)for(;;){if(Fo(r,t,2),r.bytes(2)===String.fromCharCode(0,0)){r.getBytes(2),t-=2;break}i=r.length(),u.push(ka(r,t,e+1,n)),t-=i-r.length()}else for(;c>0;)i=r.length(),u.push(ka(r,c,e+1,n)),t-=i-r.length(),c-=i-r.length();if(u===void 0&&s===P.Class.UNIVERSAL&&a===P.Type.BITSTRING&&(f=r.bytes(c)),u===void 0&&n.decodeBitStrings&&s===P.Class.UNIVERSAL&&a===P.Type.BITSTRING&&c>1){var h=r.read,p=t,m=0;if(a===P.Type.BITSTRING&&(Fo(r,t,1),m=r.getByte(),t--),m===0)try{i=r.length();var y={strict:!0,decodeBitStrings:!0},g=ka(r,t,e+1,y),E=i-r.length();t-=E,a==P.Type.BITSTRING&&E++;var _=g.tagClass;E===c&&(_===P.Class.UNIVERSAL||_===P.Class.CONTEXT_SPECIFIC)&&(u=[g])}catch{}u===void 0&&(r.read=h,t=p)}if(u===void 0){if(c===void 0){if(n.strict)throw new Error("Non-constructed ASN.1 object of indefinite length.");c=t}if(a===P.Type.BMPSTRING)for(u="";c>0;c-=2)Fo(r,t,2),u+=String.fromCharCode(r.getInt16()),t-=2;else u=r.getBytes(c),t-=c}var k=f===void 0?null:{bitStringContents:f};return P.create(s,a,d,u,k)}P.toDer=function(r){var t=It.util.createBuffer(),e=r.tagClass|r.type,n=It.util.createBuffer(),i=!1;if("bitStringContents"in r&&(i=!0,r.original&&(i=P.equals(r,r.original))),i)n.putBytes(r.bitStringContents);else if(r.composed){r.constructed?e|=32:n.putByte(0);for(var o=0;o<r.value.length;++o)r.value[o]!==void 0&&n.putBuffer(P.toDer(r.value[o]))}else if(r.type===P.Type.BMPSTRING)for(var o=0;o<r.value.length;++o)n.putInt16(r.value.charCodeAt(o));else r.type===P.Type.INTEGER&&r.value.length>1&&(r.value.charCodeAt(0)===0&&!(r.value.charCodeAt(1)&128)||r.value.charCodeAt(0)===255&&(r.value.charCodeAt(1)&128)===128)?n.putBytes(r.value.substr(1)):n.putBytes(r.value);if(t.putByte(e),n.length()<=127)t.putByte(n.length()&127);else{var s=n.length(),a="";do a+=String.fromCharCode(s&255),s=s>>>8;while(s>0);t.putByte(a.length|128);for(var o=a.length-1;o>=0;--o)t.putByte(a.charCodeAt(o))}return t.putBuffer(n),t};P.oidToDer=function(r){var t=r.split("."),e=It.util.createBuffer();e.putByte(40*parseInt(t[0],10)+parseInt(t[1],10));for(var n,i,o,s,a=2;a<t.length;++a){n=!0,i=[],o=parseInt(t[a],10);do s=o&127,o=o>>>7,n||(s|=128),i.push(s),n=!1;while(o>0);for(var c=i.length-1;c>=0;--c)e.putByte(i[c])}return e};P.derToOid=function(r){var t;typeof r=="string"&&(r=It.util.createBuffer(r));var e=r.getByte();t=Math.floor(e/40)+"."+e%40;for(var n=0;r.length()>0;)e=r.getByte(),n=n<<7,e&128?n+=e&127:(t+="."+(n+e),n=0);return t};P.utcTimeToDate=function(r){var t=new Date,e=parseInt(r.substr(0,2),10);e=e>=50?1900+e:2e3+e;var n=parseInt(r.substr(2,2),10)-1,i=parseInt(r.substr(4,2),10),o=parseInt(r.substr(6,2),10),s=parseInt(r.substr(8,2),10),a=0;if(r.length>11){var c=r.charAt(10),l=10;c!=="+"&&c!=="-"&&(a=parseInt(r.substr(10,2),10),l+=2)}if(t.setUTCFullYear(e,n,i),t.setUTCHours(o,s,a,0),l&&(c=r.charAt(l),c==="+"||c==="-")){var u=parseInt(r.substr(l+1,2),10),f=parseInt(r.substr(l+4,2),10),d=u*60+f;d*=6e4,c==="+"?t.setTime(+t-d):t.setTime(+t+d)}return t};P.generalizedTimeToDate=function(r){var t=new Date,e=parseInt(r.substr(0,4),10),n=parseInt(r.substr(4,2),10)-1,i=parseInt(r.substr(6,2),10),o=parseInt(r.substr(8,2),10),s=parseInt(r.substr(10,2),10),a=parseInt(r.substr(12,2),10),c=0,l=0,u=!1;r.charAt(r.length-1)==="Z"&&(u=!0);var f=r.length-5,d=r.charAt(f);if(d==="+"||d==="-"){var h=parseInt(r.substr(f+1,2),10),p=parseInt(r.substr(f+4,2),10);l=h*60+p,l*=6e4,d==="+"&&(l*=-1),u=!0}return r.charAt(14)==="."&&(c=parseFloat(r.substr(14),10)*1e3),u?(t.setUTCFullYear(e,n,i),t.setUTCHours(o,s,a,c),t.setTime(+t+l)):(t.setFullYear(e,n,i),t.setHours(o,s,a,c)),t};P.dateToUtcTime=function(r){if(typeof r=="string")return r;var t="",e=[];e.push((""+r.getUTCFullYear()).substr(2)),e.push(""+(r.getUTCMonth()+1)),e.push(""+r.getUTCDate()),e.push(""+r.getUTCHours()),e.push(""+r.getUTCMinutes()),e.push(""+r.getUTCSeconds());for(var n=0;n<e.length;++n)e[n].length<2&&(t+="0"),t+=e[n];return t+="Z",t};P.dateToGeneralizedTime=function(r){if(typeof r=="string")return r;var t="",e=[];e.push(""+r.getUTCFullYear()),e.push(""+(r.getUTCMonth()+1)),e.push(""+r.getUTCDate()),e.push(""+r.getUTCHours()),e.push(""+r.getUTCMinutes()),e.push(""+r.getUTCSeconds());for(var n=0;n<e.length;++n)e[n].length<2&&(t+="0"),t+=e[n];return t+="Z",t};P.integerToDer=function(r){var t=It.util.createBuffer();if(r>=-128&&r<128)return t.putSignedInt(r,8);if(r>=-32768&&r<32768)return t.putSignedInt(r,16);if(r>=-8388608&&r<8388608)return t.putSignedInt(r,24);if(r>=-2147483648&&r<2147483648)return t.putSignedInt(r,32);var e=new Error("Integer too large; max is 32-bits.");throw e.integer=r,e};P.derToInteger=function(r){typeof r=="string"&&(r=It.util.createBuffer(r));var t=r.length()*8;if(t>32)throw new Error("Integer too large; max is 32-bits.");return r.getSignedInt(t)};P.validate=function(r,t,e,n){var i=!1;if((r.tagClass===t.tagClass||typeof t.tagClass>"u")&&(r.type===t.type||typeof t.type>"u"))if(r.constructed===t.constructed||typeof t.constructed>"u"){if(i=!0,t.value&&It.util.isArray(t.value))for(var o=0,s=0;i&&s<t.value.length;++s)i=t.value[s].optional||!1,r.value[o]&&(i=P.validate(r.value[o],t.value[s],e,n),i?++o:t.value[s].optional&&(i=!0)),!i&&n&&n.push("["+t.name+'] Tag class "'+t.tagClass+'", type "'+t.type+'" expected value length "'+t.value.length+'", got "'+r.value.length+'"');if(i&&e&&(t.capture&&(e[t.capture]=r.value),t.captureAsn1&&(e[t.captureAsn1]=r),t.captureBitStringContents&&"bitStringContents"in r&&(e[t.captureBitStringContents]=r.bitStringContents),t.captureBitStringValue&&"bitStringContents"in r)){var a;if(r.bitStringContents.length<2)e[t.captureBitStringValue]="";else{var c=r.bitStringContents.charCodeAt(0);if(c!==0)throw new Error("captureBitStringValue only supported for zero unused bits");e[t.captureBitStringValue]=r.bitStringContents.slice(1)}}}else n&&n.push("["+t.name+'] Expected constructed "'+t.constructed+'", got "'+r.constructed+'"');else n&&(r.tagClass!==t.tagClass&&n.push("["+t.name+'] Expected tag class "'+t.tagClass+'", got "'+r.tagClass+'"'),r.type!==t.type&&n.push("["+t.name+'] Expected type "'+t.type+'", got "'+r.type+'"'));return i};var iy=/[^\\u0000-\\u00ff]/;P.prettyPrint=function(r,t,e){var n="";t=t||0,e=e||2,t>0&&(n+=`
28
28
  `);for(var i="",o=0;o<t*e;++o)i+=" ";switch(n+=i+"Tag: ",r.tagClass){case P.Class.UNIVERSAL:n+="Universal:";break;case P.Class.APPLICATION:n+="Application:";break;case P.Class.CONTEXT_SPECIFIC:n+="Context-Specific:";break;case P.Class.PRIVATE:n+="Private:";break}if(r.tagClass===P.Class.UNIVERSAL)switch(n+=r.type,r.type){case P.Type.NONE:n+=" (None)";break;case P.Type.BOOLEAN:n+=" (Boolean)";break;case P.Type.INTEGER:n+=" (Integer)";break;case P.Type.BITSTRING:n+=" (Bit string)";break;case P.Type.OCTETSTRING:n+=" (Octet string)";break;case P.Type.NULL:n+=" (Null)";break;case P.Type.OID:n+=" (Object Identifier)";break;case P.Type.ODESC:n+=" (Object Descriptor)";break;case P.Type.EXTERNAL:n+=" (External or Instance of)";break;case P.Type.REAL:n+=" (Real)";break;case P.Type.ENUMERATED:n+=" (Enumerated)";break;case P.Type.EMBEDDED:n+=" (Embedded PDV)";break;case P.Type.UTF8:n+=" (UTF8)";break;case P.Type.ROID:n+=" (Relative Object Identifier)";break;case P.Type.SEQUENCE:n+=" (Sequence)";break;case P.Type.SET:n+=" (Set)";break;case P.Type.PRINTABLESTRING:n+=" (Printable String)";break;case P.Type.IA5String:n+=" (IA5String (ASCII))";break;case P.Type.UTCTIME:n+=" (UTC time)";break;case P.Type.GENERALIZEDTIME:n+=" (Generalized time)";break;case P.Type.BMPSTRING:n+=" (BMP String)";break}else n+=r.type;if(n+=`
29
29
  `,n+=i+"Constructed: "+r.constructed+`
30
- `,r.composed){for(var s=0,a="",o=0;o<r.value.length;++o)r.value[o]!==void 0&&(s+=1,a+=P.prettyPrint(r.value[o],t+1,e),o+1<r.value.length&&(a+=","));n+=i+"Sub values: "+s+a}else{if(n+=i+"Value: ",r.type===P.Type.OID){var c=P.derToOid(r.value);n+=c,It.pki&&It.pki.oids&&c in It.pki.oids&&(n+=" ("+It.pki.oids[c]+") ")}if(r.type===P.Type.INTEGER)try{n+=P.derToInteger(r.value)}catch{n+="0x"+It.util.bytesToHex(r.value)}else if(r.type===P.Type.BITSTRING){if(r.value.length>1?n+="0x"+It.util.bytesToHex(r.value.slice(1)):n+="(none)",r.value.length>0){var l=r.value.charCodeAt(0);l==1?n+=" (1 unused bit shown)":l>1&&(n+=" ("+l+" unused bits shown)")}}else if(r.type===P.Type.OCTETSTRING)ly.test(r.value)||(n+="("+r.value+") "),n+="0x"+It.util.bytesToHex(r.value);else if(r.type===P.Type.UTF8)try{n+=It.util.decodeUtf8(r.value)}catch(u){if(u.message==="URI malformed")n+="0x"+It.util.bytesToHex(r.value)+" (malformed UTF8)";else throw u}else r.type===P.Type.PRINTABLESTRING||r.type===P.Type.IA5String?n+=r.value:ly.test(r.value)?n+="0x"+It.util.bytesToHex(r.value):r.value.length===0?n+="[null]":n+=r.value}return n}});var ju=T((t8,fy)=>{var ie=yt();zt();fy.exports=ie.cipher=ie.cipher||{};ie.cipher.algorithms=ie.cipher.algorithms||{};ie.cipher.createCipher=function(r,t){var e=r;if(typeof e=="string"&&(e=ie.cipher.getAlgorithm(e),e&&(e=e())),!e)throw new Error("Unsupported algorithm: "+r);return new ie.cipher.BlockCipher({algorithm:e,key:t,decrypt:!1})};ie.cipher.createDecipher=function(r,t){var e=r;if(typeof e=="string"&&(e=ie.cipher.getAlgorithm(e),e&&(e=e())),!e)throw new Error("Unsupported algorithm: "+r);return new ie.cipher.BlockCipher({algorithm:e,key:t,decrypt:!0})};ie.cipher.registerAlgorithm=function(r,t){r=r.toUpperCase(),ie.cipher.algorithms[r]=t};ie.cipher.getAlgorithm=function(r){return r=r.toUpperCase(),r in ie.cipher.algorithms?ie.cipher.algorithms[r]:null};var Ju=ie.cipher.BlockCipher=function(r){this.algorithm=r.algorithm,this.mode=this.algorithm.mode,this.blockSize=this.mode.blockSize,this._finish=!1,this._input=null,this.output=null,this._op=r.decrypt?this.mode.decrypt:this.mode.encrypt,this._decrypt=r.decrypt,this.algorithm.initialize(r)};Ju.prototype.start=function(r){r=r||{};var t={};for(var e in r)t[e]=r[e];t.decrypt=this._decrypt,this._finish=!1,this._input=ie.util.createBuffer(),this.output=r.output||ie.util.createBuffer(),this.mode.start(t)};Ju.prototype.update=function(r){for(r&&this._input.putBuffer(r);!this._op.call(this.mode,this._input,this.output,this._finish)&&!this._finish;);this._input.compact()};Ju.prototype.finish=function(r){r&&(this.mode.name==="ECB"||this.mode.name==="CBC")&&(this.mode.pad=function(e){return r(this.blockSize,e,!1)},this.mode.unpad=function(e){return r(this.blockSize,e,!0)});var t={};return t.decrypt=this._decrypt,t.overflow=this._input.length()%this.blockSize,!(!this._decrypt&&this.mode.pad&&!this.mode.pad(this._input,t)||(this._finish=!0,this.update(),this._decrypt&&this.mode.unpad&&!this.mode.unpad(this.output,t))||this.mode.afterFinish&&!this.mode.afterFinish(this.output,t))}});var ef=T((e8,hy)=>{var oe=yt();zt();oe.cipher=oe.cipher||{};var Z=hy.exports=oe.cipher.modes=oe.cipher.modes||{};Z.ecb=function(r){r=r||{},this.name="ECB",this.cipher=r.cipher,this.blockSize=r.blockSize||16,this._ints=this.blockSize/4,this._inBlock=new Array(this._ints),this._outBlock=new Array(this._ints)};Z.ecb.prototype.start=function(r){};Z.ecb.prototype.encrypt=function(r,t,e){if(r.length()<this.blockSize&&!(e&&r.length()>0))return!0;for(var n=0;n<this._ints;++n)this._inBlock[n]=r.getInt32();this.cipher.encrypt(this._inBlock,this._outBlock);for(var n=0;n<this._ints;++n)t.putInt32(this._outBlock[n])};Z.ecb.prototype.decrypt=function(r,t,e){if(r.length()<this.blockSize&&!(e&&r.length()>0))return!0;for(var n=0;n<this._ints;++n)this._inBlock[n]=r.getInt32();this.cipher.decrypt(this._inBlock,this._outBlock);for(var n=0;n<this._ints;++n)t.putInt32(this._outBlock[n])};Z.ecb.prototype.pad=function(r,t){var e=r.length()===this.blockSize?this.blockSize:this.blockSize-r.length();return r.fillWithByte(e,e),!0};Z.ecb.prototype.unpad=function(r,t){if(t.overflow>0)return!1;var e=r.length(),n=r.at(e-1);return n>this.blockSize<<2?!1:(r.truncate(n),!0)};Z.cbc=function(r){r=r||{},this.name="CBC",this.cipher=r.cipher,this.blockSize=r.blockSize||16,this._ints=this.blockSize/4,this._inBlock=new Array(this._ints),this._outBlock=new Array(this._ints)};Z.cbc.prototype.start=function(r){if(r.iv===null){if(!this._prev)throw new Error("Invalid IV parameter.");this._iv=this._prev.slice(0)}else if("iv"in r)this._iv=Fa(r.iv,this.blockSize),this._prev=this._iv.slice(0);else throw new Error("Invalid IV parameter.")};Z.cbc.prototype.encrypt=function(r,t,e){if(r.length()<this.blockSize&&!(e&&r.length()>0))return!0;for(var n=0;n<this._ints;++n)this._inBlock[n]=this._prev[n]^r.getInt32();this.cipher.encrypt(this._inBlock,this._outBlock);for(var n=0;n<this._ints;++n)t.putInt32(this._outBlock[n]);this._prev=this._outBlock};Z.cbc.prototype.decrypt=function(r,t,e){if(r.length()<this.blockSize&&!(e&&r.length()>0))return!0;for(var n=0;n<this._ints;++n)this._inBlock[n]=r.getInt32();this.cipher.decrypt(this._inBlock,this._outBlock);for(var n=0;n<this._ints;++n)t.putInt32(this._prev[n]^this._outBlock[n]);this._prev=this._inBlock.slice(0)};Z.cbc.prototype.pad=function(r,t){var e=r.length()===this.blockSize?this.blockSize:this.blockSize-r.length();return r.fillWithByte(e,e),!0};Z.cbc.prototype.unpad=function(r,t){if(t.overflow>0)return!1;var e=r.length(),n=r.at(e-1);return n>this.blockSize<<2?!1:(r.truncate(n),!0)};Z.cfb=function(r){r=r||{},this.name="CFB",this.cipher=r.cipher,this.blockSize=r.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialBlock=new Array(this._ints),this._partialOutput=oe.util.createBuffer(),this._partialBytes=0};Z.cfb.prototype.start=function(r){if(!("iv"in r))throw new Error("Invalid IV parameter.");this._iv=Fa(r.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0};Z.cfb.prototype.encrypt=function(r,t,e){var n=r.length();if(n===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&n>=this.blockSize){for(var i=0;i<this._ints;++i)this._inBlock[i]=r.getInt32()^this._outBlock[i],t.putInt32(this._inBlock[i]);return}var o=(this.blockSize-n)%this.blockSize;o>0&&(o=this.blockSize-o),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialBlock[i]=r.getInt32()^this._outBlock[i],this._partialOutput.putInt32(this._partialBlock[i]);if(o>0)r.read-=this.blockSize;else for(var i=0;i<this._ints;++i)this._inBlock[i]=this._partialBlock[i];if(this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),o>0&&!e)return t.putBytes(this._partialOutput.getBytes(o-this._partialBytes)),this._partialBytes=o,!0;t.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0};Z.cfb.prototype.decrypt=function(r,t,e){var n=r.length();if(n===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&n>=this.blockSize){for(var i=0;i<this._ints;++i)this._inBlock[i]=r.getInt32(),t.putInt32(this._inBlock[i]^this._outBlock[i]);return}var o=(this.blockSize-n)%this.blockSize;o>0&&(o=this.blockSize-o),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialBlock[i]=r.getInt32(),this._partialOutput.putInt32(this._partialBlock[i]^this._outBlock[i]);if(o>0)r.read-=this.blockSize;else for(var i=0;i<this._ints;++i)this._inBlock[i]=this._partialBlock[i];if(this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),o>0&&!e)return t.putBytes(this._partialOutput.getBytes(o-this._partialBytes)),this._partialBytes=o,!0;t.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0};Z.ofb=function(r){r=r||{},this.name="OFB",this.cipher=r.cipher,this.blockSize=r.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialOutput=oe.util.createBuffer(),this._partialBytes=0};Z.ofb.prototype.start=function(r){if(!("iv"in r))throw new Error("Invalid IV parameter.");this._iv=Fa(r.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0};Z.ofb.prototype.encrypt=function(r,t,e){var n=r.length();if(r.length()===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&n>=this.blockSize){for(var i=0;i<this._ints;++i)t.putInt32(r.getInt32()^this._outBlock[i]),this._inBlock[i]=this._outBlock[i];return}var o=(this.blockSize-n)%this.blockSize;o>0&&(o=this.blockSize-o),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialOutput.putInt32(r.getInt32()^this._outBlock[i]);if(o>0)r.read-=this.blockSize;else for(var i=0;i<this._ints;++i)this._inBlock[i]=this._outBlock[i];if(this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),o>0&&!e)return t.putBytes(this._partialOutput.getBytes(o-this._partialBytes)),this._partialBytes=o,!0;t.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0};Z.ofb.prototype.decrypt=Z.ofb.prototype.encrypt;Z.ctr=function(r){r=r||{},this.name="CTR",this.cipher=r.cipher,this.blockSize=r.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialOutput=oe.util.createBuffer(),this._partialBytes=0};Z.ctr.prototype.start=function(r){if(!("iv"in r))throw new Error("Invalid IV parameter.");this._iv=Fa(r.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0};Z.ctr.prototype.encrypt=function(r,t,e){var n=r.length();if(n===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&n>=this.blockSize)for(var i=0;i<this._ints;++i)t.putInt32(r.getInt32()^this._outBlock[i]);else{var o=(this.blockSize-n)%this.blockSize;o>0&&(o=this.blockSize-o),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialOutput.putInt32(r.getInt32()^this._outBlock[i]);if(o>0&&(r.read-=this.blockSize),this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),o>0&&!e)return t.putBytes(this._partialOutput.getBytes(o-this._partialBytes)),this._partialBytes=o,!0;t.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0}Ka(this._inBlock)};Z.ctr.prototype.decrypt=Z.ctr.prototype.encrypt;Z.gcm=function(r){r=r||{},this.name="GCM",this.cipher=r.cipher,this.blockSize=r.blockSize||16,this._ints=this.blockSize/4,this._inBlock=new Array(this._ints),this._outBlock=new Array(this._ints),this._partialOutput=oe.util.createBuffer(),this._partialBytes=0,this._R=3774873600};Z.gcm.prototype.start=function(r){if(!("iv"in r))throw new Error("Invalid IV parameter.");var t=oe.util.createBuffer(r.iv);this._cipherLength=0;var e;if("additionalData"in r?e=oe.util.createBuffer(r.additionalData):e=oe.util.createBuffer(),"tagLength"in r?this._tagLength=r.tagLength:this._tagLength=128,this._tag=null,r.decrypt&&(this._tag=oe.util.createBuffer(r.tag).getBytes(),this._tag.length!==this._tagLength/8))throw new Error("Authentication tag does not match tag length.");this._hashBlock=new Array(this._ints),this.tag=null,this._hashSubkey=new Array(this._ints),this.cipher.encrypt([0,0,0,0],this._hashSubkey),this.componentBits=4,this._m=this.generateHashTable(this._hashSubkey,this.componentBits);var n=t.length();if(n===12)this._j0=[t.getInt32(),t.getInt32(),t.getInt32(),1];else{for(this._j0=[0,0,0,0];t.length()>0;)this._j0=this.ghash(this._hashSubkey,this._j0,[t.getInt32(),t.getInt32(),t.getInt32(),t.getInt32()]);this._j0=this.ghash(this._hashSubkey,this._j0,[0,0].concat(tf(n*8)))}this._inBlock=this._j0.slice(0),Ka(this._inBlock),this._partialBytes=0,e=oe.util.createBuffer(e),this._aDataLength=tf(e.length()*8);var i=e.length()%this.blockSize;for(i&&e.fillWithByte(0,this.blockSize-i),this._s=[0,0,0,0];e.length()>0;)this._s=this.ghash(this._hashSubkey,this._s,[e.getInt32(),e.getInt32(),e.getInt32(),e.getInt32()])};Z.gcm.prototype.encrypt=function(r,t,e){var n=r.length();if(n===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&n>=this.blockSize){for(var i=0;i<this._ints;++i)t.putInt32(this._outBlock[i]^=r.getInt32());this._cipherLength+=this.blockSize}else{var o=(this.blockSize-n)%this.blockSize;o>0&&(o=this.blockSize-o),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialOutput.putInt32(r.getInt32()^this._outBlock[i]);if(o<=0||e){if(e){var s=n%this.blockSize;this._cipherLength+=s,this._partialOutput.truncate(this.blockSize-s)}else this._cipherLength+=this.blockSize;for(var i=0;i<this._ints;++i)this._outBlock[i]=this._partialOutput.getInt32();this._partialOutput.read-=this.blockSize}if(this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),o>0&&!e)return r.read-=this.blockSize,t.putBytes(this._partialOutput.getBytes(o-this._partialBytes)),this._partialBytes=o,!0;t.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0}this._s=this.ghash(this._hashSubkey,this._s,this._outBlock),Ka(this._inBlock)};Z.gcm.prototype.decrypt=function(r,t,e){var n=r.length();if(n<this.blockSize&&!(e&&n>0))return!0;this.cipher.encrypt(this._inBlock,this._outBlock),Ka(this._inBlock),this._hashBlock[0]=r.getInt32(),this._hashBlock[1]=r.getInt32(),this._hashBlock[2]=r.getInt32(),this._hashBlock[3]=r.getInt32(),this._s=this.ghash(this._hashSubkey,this._s,this._hashBlock);for(var i=0;i<this._ints;++i)t.putInt32(this._outBlock[i]^this._hashBlock[i]);n<this.blockSize?this._cipherLength+=n%this.blockSize:this._cipherLength+=this.blockSize};Z.gcm.prototype.afterFinish=function(r,t){var e=!0;t.decrypt&&t.overflow&&r.truncate(this.blockSize-t.overflow),this.tag=oe.util.createBuffer();var n=this._aDataLength.concat(tf(this._cipherLength*8));this._s=this.ghash(this._hashSubkey,this._s,n);var i=[];this.cipher.encrypt(this._j0,i);for(var o=0;o<this._ints;++o)this.tag.putInt32(this._s[o]^i[o]);return this.tag.truncate(this.tag.length()%(this._tagLength/8)),t.decrypt&&this.tag.bytes()!==this._tag&&(e=!1),e};Z.gcm.prototype.multiply=function(r,t){for(var e=[0,0,0,0],n=t.slice(0),i=0;i<128;++i){var o=r[i/32|0]&1<<31-i%32;o&&(e[0]^=n[0],e[1]^=n[1],e[2]^=n[2],e[3]^=n[3]),this.pow(n,n)}return e};Z.gcm.prototype.pow=function(r,t){for(var e=r[3]&1,n=3;n>0;--n)t[n]=r[n]>>>1|(r[n-1]&1)<<31;t[0]=r[0]>>>1,e&&(t[0]^=this._R)};Z.gcm.prototype.tableMultiply=function(r){for(var t=[0,0,0,0],e=0;e<32;++e){var n=e/8|0,i=r[n]>>>(7-e%8)*4&15,o=this._m[e][i];t[0]^=o[0],t[1]^=o[1],t[2]^=o[2],t[3]^=o[3]}return t};Z.gcm.prototype.ghash=function(r,t,e){return t[0]^=e[0],t[1]^=e[1],t[2]^=e[2],t[3]^=e[3],this.tableMultiply(t)};Z.gcm.prototype.generateHashTable=function(r,t){for(var e=8/t,n=4*e,i=16*e,o=new Array(i),s=0;s<i;++s){var a=[0,0,0,0],c=s/n|0,l=(n-1-s%n)*t;a[c]=1<<t-1<<l,o[s]=this.generateSubHashTable(this.multiply(a,r),t)}return o};Z.gcm.prototype.generateSubHashTable=function(r,t){var e=1<<t,n=e>>>1,i=new Array(e);i[n]=r.slice(0);for(var o=n>>>1;o>0;)this.pow(i[2*o],i[o]=[]),o>>=1;for(o=2;o<n;){for(var s=1;s<o;++s){var a=i[o],c=i[s];i[o+s]=[a[0]^c[0],a[1]^c[1],a[2]^c[2],a[3]^c[3]]}o*=2}for(i[0]=[0,0,0,0],o=n+1;o<e;++o){var l=i[o^n];i[o]=[r[0]^l[0],r[1]^l[1],r[2]^l[2],r[3]^l[3]]}return i};function Fa(r,t){if(typeof r=="string"&&(r=oe.util.createBuffer(r)),oe.util.isArray(r)&&r.length>4){var e=r;r=oe.util.createBuffer();for(var n=0;n<e.length;++n)r.putByte(e[n])}if(r.length()<t)throw new Error("Invalid IV length; got "+r.length()+" bytes and expected "+t+" bytes.");if(!oe.util.isArray(r)){for(var i=[],o=t/4,n=0;n<o;++n)i.push(r.getInt32());r=i}return r}function Ka(r){r[r.length-1]=r[r.length-1]+1&4294967295}function tf(r){return[r/4294967296|0,r&4294967295]}});var qa=T((r8,yy)=>{var At=yt();ju();ef();zt();yy.exports=At.aes=At.aes||{};At.aes.startEncrypting=function(r,t,e,n){var i=Va({key:r,output:e,decrypt:!1,mode:n});return i.start(t),i};At.aes.createEncryptionCipher=function(r,t){return Va({key:r,output:null,decrypt:!1,mode:t})};At.aes.startDecrypting=function(r,t,e,n){var i=Va({key:r,output:e,decrypt:!0,mode:n});return i.start(t),i};At.aes.createDecryptionCipher=function(r,t){return Va({key:r,output:null,decrypt:!0,mode:t})};At.aes.Algorithm=function(r,t){of||py();var e=this;e.name=r,e.mode=new t({blockSize:16,cipher:{encrypt:function(n,i){return nf(e._w,n,i,!1)},decrypt:function(n,i){return nf(e._w,n,i,!0)}}}),e._init=!1};At.aes.Algorithm.prototype.initialize=function(r){if(!this._init){var t=r.key,e;if(typeof t=="string"&&(t.length===16||t.length===24||t.length===32))t=At.util.createBuffer(t);else if(At.util.isArray(t)&&(t.length===16||t.length===24||t.length===32)){e=t,t=At.util.createBuffer();for(var n=0;n<e.length;++n)t.putByte(e[n])}if(!At.util.isArray(t)){e=t,t=[];var i=e.length();if(i===16||i===24||i===32){i=i>>>2;for(var n=0;n<i;++n)t.push(e.getInt32())}}if(!At.util.isArray(t)||!(t.length===4||t.length===6||t.length===8))throw new Error("Invalid key parameter.");var o=this.mode.name,s=["CFB","OFB","CTR","GCM"].indexOf(o)!==-1;this._w=my(t,r.decrypt&&!s),this._init=!0}};At.aes._expandKey=function(r,t){return of||py(),my(r,t)};At.aes._updateBlock=nf;qi("AES-ECB",At.cipher.modes.ecb);qi("AES-CBC",At.cipher.modes.cbc);qi("AES-CFB",At.cipher.modes.cfb);qi("AES-OFB",At.cipher.modes.ofb);qi("AES-CTR",At.cipher.modes.ctr);qi("AES-GCM",At.cipher.modes.gcm);function qi(r,t){var e=function(){return new At.aes.Algorithm(r,t)};At.cipher.registerAlgorithm(r,e)}var of=!1,Vi=4,he,rf,dy,Wn,Je;function py(){of=!0,dy=[0,1,2,4,8,16,32,64,128,27,54];for(var r=new Array(256),t=0;t<128;++t)r[t]=t<<1,r[t+128]=t+128<<1^283;he=new Array(256),rf=new Array(256),Wn=new Array(4),Je=new Array(4);for(var t=0;t<4;++t)Wn[t]=new Array(256),Je[t]=new Array(256);for(var e=0,n=0,i,o,s,a,c,l,u,t=0;t<256;++t){a=n^n<<1^n<<2^n<<3^n<<4,a=a>>8^a&255^99,he[e]=a,rf[a]=e,c=r[a],i=r[e],o=r[i],s=r[o],l=c<<24^a<<16^a<<8^(a^c),u=(i^o^s)<<24^(e^s)<<16^(e^o^s)<<8^(e^i^s);for(var f=0;f<4;++f)Wn[f][e]=l,Je[f][a]=u,l=l<<24|l>>>8,u=u<<24|u>>>8;e===0?e=n=1:(e=i^r[r[r[i^s]]],n^=r[r[n]])}}function my(r,t){for(var e=r.slice(0),n,i=1,o=e.length,s=o+6+1,a=Vi*s,c=o;c<a;++c)n=e[c-1],c%o===0?(n=he[n>>>16&255]<<24^he[n>>>8&255]<<16^he[n&255]<<8^he[n>>>24]^dy[i]<<24,i++):o>6&&c%o===4&&(n=he[n>>>24]<<24^he[n>>>16&255]<<16^he[n>>>8&255]<<8^he[n&255]),e[c]=e[c-o]^n;if(t){var l,u=Je[0],f=Je[1],d=Je[2],h=Je[3],p=e.slice(0);a=e.length;for(var c=0,m=a-Vi;c<a;c+=Vi,m-=Vi)if(c===0||c===a-Vi)p[c]=e[m],p[c+1]=e[m+3],p[c+2]=e[m+2],p[c+3]=e[m+1];else for(var y=0;y<Vi;++y)l=e[m+y],p[c+(3&-y)]=u[he[l>>>24]]^f[he[l>>>16&255]]^d[he[l>>>8&255]]^h[he[l&255]];e=p}return e}function nf(r,t,e,n){var i=r.length/4-1,o,s,a,c,l;n?(o=Je[0],s=Je[1],a=Je[2],c=Je[3],l=rf):(o=Wn[0],s=Wn[1],a=Wn[2],c=Wn[3],l=he);var u,f,d,h,p,m,y;u=t[0]^r[0],f=t[n?3:1]^r[1],d=t[2]^r[2],h=t[n?1:3]^r[3];for(var g=3,E=1;E<i;++E)p=o[u>>>24]^s[f>>>16&255]^a[d>>>8&255]^c[h&255]^r[++g],m=o[f>>>24]^s[d>>>16&255]^a[h>>>8&255]^c[u&255]^r[++g],y=o[d>>>24]^s[h>>>16&255]^a[u>>>8&255]^c[f&255]^r[++g],h=o[h>>>24]^s[u>>>16&255]^a[f>>>8&255]^c[d&255]^r[++g],u=p,f=m,d=y;e[0]=l[u>>>24]<<24^l[f>>>16&255]<<16^l[d>>>8&255]<<8^l[h&255]^r[++g],e[n?3:1]=l[f>>>24]<<24^l[d>>>16&255]<<16^l[h>>>8&255]<<8^l[u&255]^r[++g],e[2]=l[d>>>24]<<24^l[h>>>16&255]<<16^l[u>>>8&255]<<8^l[f&255]^r[++g],e[n?1:3]=l[h>>>24]<<24^l[u>>>16&255]<<16^l[f>>>8&255]<<8^l[d&255]^r[++g]}function Va(r){r=r||{};var t=(r.mode||"CBC").toUpperCase(),e="AES-"+t,n;r.decrypt?n=At.cipher.createDecipher(e,r.key):n=At.cipher.createCipher(e,r.key);var i=n.start;return n.start=function(o,s){var a=null;s instanceof At.util.ByteBuffer&&(a=s,s={}),s=s||{},s.output=a,s.iv=o,i.call(n,s)},n}});var Ey=T((n8,wy)=>{var Nt=yt();ju();ef();zt();wy.exports=Nt.des=Nt.des||{};Nt.des.startEncrypting=function(r,t,e,n){var i=Ha({key:r,output:e,decrypt:!1,mode:n||(t===null?"ECB":"CBC")});return i.start(t),i};Nt.des.createEncryptionCipher=function(r,t){return Ha({key:r,output:null,decrypt:!1,mode:t})};Nt.des.startDecrypting=function(r,t,e,n){var i=Ha({key:r,output:e,decrypt:!0,mode:n||(t===null?"ECB":"CBC")});return i.start(t),i};Nt.des.createDecryptionCipher=function(r,t){return Ha({key:r,output:null,decrypt:!0,mode:t})};Nt.des.Algorithm=function(r,t){var e=this;e.name=r,e.mode=new t({blockSize:8,cipher:{encrypt:function(n,i){return gy(e._keys,n,i,!1)},decrypt:function(n,i){return gy(e._keys,n,i,!0)}}}),e._init=!1};Nt.des.Algorithm.prototype.initialize=function(r){if(!this._init){var t=Nt.util.createBuffer(r.key);if(this.name.indexOf("3DES")===0&&t.length()!==24)throw new Error("Invalid Triple-DES key size: "+t.length()*8);this._keys=Hb(t),this._init=!0}};mr("DES-ECB",Nt.cipher.modes.ecb);mr("DES-CBC",Nt.cipher.modes.cbc);mr("DES-CFB",Nt.cipher.modes.cfb);mr("DES-OFB",Nt.cipher.modes.ofb);mr("DES-CTR",Nt.cipher.modes.ctr);mr("3DES-ECB",Nt.cipher.modes.ecb);mr("3DES-CBC",Nt.cipher.modes.cbc);mr("3DES-CFB",Nt.cipher.modes.cfb);mr("3DES-OFB",Nt.cipher.modes.ofb);mr("3DES-CTR",Nt.cipher.modes.ctr);function mr(r,t){var e=function(){return new Nt.des.Algorithm(r,t)};Nt.cipher.registerAlgorithm(r,e)}var Ob=[16843776,0,65536,16843780,16842756,66564,4,65536,1024,16843776,16843780,1024,16778244,16842756,16777216,4,1028,16778240,16778240,66560,66560,16842752,16842752,16778244,65540,16777220,16777220,65540,0,1028,66564,16777216,65536,16843780,4,16842752,16843776,16777216,16777216,1024,16842756,65536,66560,16777220,1024,4,16778244,66564,16843780,65540,16842752,16778244,16777220,1028,66564,16843776,1028,16778240,16778240,0,65540,66560,0,16842756],kb=[-2146402272,-2147450880,32768,1081376,1048576,32,-2146435040,-2147450848,-2147483616,-2146402272,-2146402304,-2147483648,-2147450880,1048576,32,-2146435040,1081344,1048608,-2147450848,0,-2147483648,32768,1081376,-2146435072,1048608,-2147483616,0,1081344,32800,-2146402304,-2146435072,32800,0,1081376,-2146435040,1048576,-2147450848,-2146435072,-2146402304,32768,-2146435072,-2147450880,32,-2146402272,1081376,32,32768,-2147483648,32800,-2146402304,1048576,-2147483616,1048608,-2147450848,-2147483616,1048608,1081344,0,-2147450880,32800,-2147483648,-2146435040,-2146402272,1081344],Mb=[520,134349312,0,134348808,134218240,0,131592,134218240,131080,134217736,134217736,131072,134349320,131080,134348800,520,134217728,8,134349312,512,131584,134348800,134348808,131592,134218248,131584,131072,134218248,8,134349320,512,134217728,134349312,134217728,131080,520,131072,134349312,134218240,0,512,131080,134349320,134218240,134217736,512,0,134348808,134218248,131072,134217728,134349320,8,131592,131584,134217736,134348800,134218248,520,134348800,131592,8,134348808,131584],Ub=[8396801,8321,8321,128,8396928,8388737,8388609,8193,0,8396800,8396800,8396929,129,0,8388736,8388609,1,8192,8388608,8396801,128,8388608,8193,8320,8388737,1,8320,8388736,8192,8396928,8396929,129,8388736,8388609,8396800,8396929,129,0,0,8396800,8320,8388736,8388737,1,8396801,8321,8321,128,8396929,129,1,8192,8388609,8193,8396928,8388737,8193,8320,8388608,8396801,128,8388608,8192,8396928],Fb=[256,34078976,34078720,1107296512,524288,256,1073741824,34078720,1074266368,524288,33554688,1074266368,1107296512,1107820544,524544,1073741824,33554432,1074266112,1074266112,0,1073742080,1107820800,1107820800,33554688,1107820544,1073742080,0,1107296256,34078976,33554432,1107296256,524544,524288,1107296512,256,33554432,1073741824,34078720,1107296512,1074266368,33554688,1073741824,1107820544,34078976,1074266368,256,33554432,1107820544,1107820800,524544,1107296256,1107820800,34078720,0,1074266112,1107296256,524544,33554688,1073742080,524288,0,1074266112,34078976,1073742080],Kb=[536870928,541065216,16384,541081616,541065216,16,541081616,4194304,536887296,4210704,4194304,536870928,4194320,536887296,536870912,16400,0,4194320,536887312,16384,4210688,536887312,16,541065232,541065232,0,4210704,541081600,16400,4210688,541081600,536870912,536887296,16,541065232,4210688,541081616,4194304,16400,536870928,4194304,536887296,536870912,16400,536870928,541081616,4210688,541065216,4210704,541081600,0,541065232,16,16384,541065216,4210704,16384,4194320,536887312,0,541081600,536870912,4194320,536887312],Vb=[2097152,69206018,67110914,0,2048,67110914,2099202,69208064,69208066,2097152,0,67108866,2,67108864,69206018,2050,67110912,2099202,2097154,67110912,67108866,69206016,69208064,2097154,69206016,2048,2050,69208066,2099200,2,67108864,2099200,67108864,2099200,2097152,67110914,67110914,69206018,69206018,2,2097154,67108864,67110912,2097152,69208064,2050,2099202,69208064,2050,67108866,69208066,69206016,2099200,0,2,69208066,0,2099202,69206016,2048,67108866,67110912,2048,2097154],qb=[268439616,4096,262144,268701760,268435456,268439616,64,268435456,262208,268697600,268701760,266240,268701696,266304,4096,64,268697600,268435520,268439552,4160,266240,262208,268697664,268701696,4160,0,0,268697664,268435520,268439552,266304,262144,266304,262144,268701696,4096,64,268697664,4096,266304,268439552,64,268435520,268697600,268697664,268435456,262144,268439616,0,268701760,262208,268435520,268697600,268439552,268439616,0,268701760,266240,266240,4160,4160,262208,268435456,268701696];function Hb(r){for(var t=[0,4,536870912,536870916,65536,65540,536936448,536936452,512,516,536871424,536871428,66048,66052,536936960,536936964],e=[0,1,1048576,1048577,67108864,67108865,68157440,68157441,256,257,1048832,1048833,67109120,67109121,68157696,68157697],n=[0,8,2048,2056,16777216,16777224,16779264,16779272,0,8,2048,2056,16777216,16777224,16779264,16779272],i=[0,2097152,134217728,136314880,8192,2105344,134225920,136323072,131072,2228224,134348800,136445952,139264,2236416,134356992,136454144],o=[0,262144,16,262160,0,262144,16,262160,4096,266240,4112,266256,4096,266240,4112,266256],s=[0,1024,32,1056,0,1024,32,1056,33554432,33555456,33554464,33555488,33554432,33555456,33554464,33555488],a=[0,268435456,524288,268959744,2,268435458,524290,268959746,0,268435456,524288,268959744,2,268435458,524290,268959746],c=[0,65536,2048,67584,536870912,536936448,536872960,536938496,131072,196608,133120,198656,537001984,537067520,537004032,537069568],l=[0,262144,0,262144,2,262146,2,262146,33554432,33816576,33554432,33816576,33554434,33816578,33554434,33816578],u=[0,268435456,8,268435464,0,268435456,8,268435464,1024,268436480,1032,268436488,1024,268436480,1032,268436488],f=[0,32,0,32,1048576,1048608,1048576,1048608,8192,8224,8192,8224,1056768,1056800,1056768,1056800],d=[0,16777216,512,16777728,2097152,18874368,2097664,18874880,67108864,83886080,67109376,83886592,69206016,85983232,69206528,85983744],h=[0,4096,134217728,134221824,524288,528384,134742016,134746112,16,4112,134217744,134221840,524304,528400,134742032,134746128],p=[0,4,256,260,0,4,256,260,1,5,257,261,1,5,257,261],m=r.length()>8?3:1,y=[],g=[0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0],E=0,_,k=0;k<m;k++){var C=r.getInt32(),D=r.getInt32();_=(C>>>4^D)&252645135,D^=_,C^=_<<4,_=(D>>>-16^C)&65535,C^=_,D^=_<<-16,_=(C>>>2^D)&858993459,D^=_,C^=_<<2,_=(D>>>-16^C)&65535,C^=_,D^=_<<-16,_=(C>>>1^D)&1431655765,D^=_,C^=_<<1,_=(D>>>8^C)&16711935,C^=_,D^=_<<8,_=(C>>>1^D)&1431655765,D^=_,C^=_<<1,_=C<<8|D>>>20&240,C=D<<24|D<<8&16711680|D>>>8&65280|D>>>24&240,D=_;for(var J=0;J<g.length;++J){g[J]?(C=C<<2|C>>>26,D=D<<2|D>>>26):(C=C<<1|C>>>27,D=D<<1|D>>>27),C&=-15,D&=-15;var rt=t[C>>>28]|e[C>>>24&15]|n[C>>>20&15]|i[C>>>16&15]|o[C>>>12&15]|s[C>>>8&15]|a[C>>>4&15],jt=c[D>>>28]|l[D>>>24&15]|u[D>>>20&15]|f[D>>>16&15]|d[D>>>12&15]|h[D>>>8&15]|p[D>>>4&15];_=(jt>>>16^rt)&65535,y[E++]=rt^_,y[E++]=jt^_<<16}}return y}function gy(r,t,e,n){var i=r.length===32?3:9,o;i===3?o=n?[30,-2,-2]:[0,32,2]:o=n?[94,62,-2,32,64,2,30,-2,-2]:[0,32,2,62,30,-2,64,96,2];var s,a=t[0],c=t[1];s=(a>>>4^c)&252645135,c^=s,a^=s<<4,s=(a>>>16^c)&65535,c^=s,a^=s<<16,s=(c>>>2^a)&858993459,a^=s,c^=s<<2,s=(c>>>8^a)&16711935,a^=s,c^=s<<8,s=(a>>>1^c)&1431655765,c^=s,a^=s<<1,a=a<<1|a>>>31,c=c<<1|c>>>31;for(var l=0;l<i;l+=3){for(var u=o[l+1],f=o[l+2],d=o[l];d!=u;d+=f){var h=c^r[d],p=(c>>>4|c<<28)^r[d+1];s=a,a=c,c=s^(kb[h>>>24&63]|Ub[h>>>16&63]|Kb[h>>>8&63]|qb[h&63]|Ob[p>>>24&63]|Mb[p>>>16&63]|Fb[p>>>8&63]|Vb[p&63])}s=a,a=c,c=s}a=a>>>1|a<<31,c=c>>>1|c<<31,s=(a>>>1^c)&1431655765,c^=s,a^=s<<1,s=(c>>>8^a)&16711935,a^=s,c^=s<<8,s=(c>>>2^a)&858993459,a^=s,c^=s<<2,s=(a>>>16^c)&65535,c^=s,a^=s<<16,s=(a>>>4^c)&252645135,c^=s,a^=s<<4,e[0]=a,e[1]=c}function Ha(r){r=r||{};var t=(r.mode||"CBC").toUpperCase(),e="DES-"+t,n;r.decrypt?n=Nt.cipher.createDecipher(e,r.key):n=Nt.cipher.createCipher(e,r.key);var i=n.start;return n.start=function(o,s){var a=null;s instanceof Nt.util.ByteBuffer&&(a=s,s={}),s=s||{},s.output=a,s.iv=o,i.call(n,s)},n}});var Qn=T((i8,xy)=>{var $a=yt();xy.exports=$a.md=$a.md||{};$a.md.algorithms=$a.md.algorithms||{}});var by=T((o8,vy)=>{var Kr=yt();Qn();zt();var $b=vy.exports=Kr.hmac=Kr.hmac||{};$b.create=function(){var r=null,t=null,e=null,n=null,i={};return i.start=function(o,s){if(o!==null)if(typeof o=="string")if(o=o.toLowerCase(),o in Kr.md.algorithms)t=Kr.md.algorithms[o].create();else throw new Error('Unknown hash algorithm "'+o+'"');else t=o;if(s===null)s=r;else{if(typeof s=="string")s=Kr.util.createBuffer(s);else if(Kr.util.isArray(s)){var a=s;s=Kr.util.createBuffer();for(var c=0;c<a.length;++c)s.putByte(a[c])}var l=s.length();l>t.blockLength&&(t.start(),t.update(s.bytes()),s=t.digest()),e=Kr.util.createBuffer(),n=Kr.util.createBuffer(),l=s.length();for(var c=0;c<l;++c){var a=s.at(c);e.putByte(54^a),n.putByte(92^a)}if(l<t.blockLength)for(var a=t.blockLength-l,c=0;c<a;++c)e.putByte(54),n.putByte(92);r=s,e=e.bytes(),n=n.bytes()}t.start(),t.update(e)},i.update=function(o){t.update(o)},i.getMac=function(){var o=t.digest().bytes();return t.start(),t.update(n),t.update(o),t.digest()},i.digest=i.getMac,i}});var sf=T((s8,_y)=>{var de=yt();by();Qn();zt();var zb=de.pkcs5=de.pkcs5||{},Vr;de.util.isNodejs&&!de.options.usePureJavaScript&&(Vr=Vn());_y.exports=de.pbkdf2=zb.pbkdf2=function(r,t,e,n,i,o){if(typeof i=="function"&&(o=i,i=null),de.util.isNodejs&&!de.options.usePureJavaScript&&Vr.pbkdf2&&(i===null||typeof i!="object")&&(Vr.pbkdf2Sync.length>4||!i||i==="sha1"))return typeof i!="string"&&(i="sha1"),r=Buffer.from(r,"binary"),t=Buffer.from(t,"binary"),o?Vr.pbkdf2Sync.length===4?Vr.pbkdf2(r,t,e,n,function(_,k){if(_)return o(_);o(null,k.toString("binary"))}):Vr.pbkdf2(r,t,e,n,i,function(_,k){if(_)return o(_);o(null,k.toString("binary"))}):Vr.pbkdf2Sync.length===4?Vr.pbkdf2Sync(r,t,e,n).toString("binary"):Vr.pbkdf2Sync(r,t,e,n,i).toString("binary");if((typeof i>"u"||i===null)&&(i="sha1"),typeof i=="string"){if(!(i in de.md.algorithms))throw new Error("Unknown hash algorithm: "+i);i=de.md[i].create()}var s=i.digestLength;if(n>4294967295*s){var a=new Error("Derived key is too long.");if(o)return o(a);throw a}var c=Math.ceil(n/s),l=n-(c-1)*s,u=de.hmac.create();u.start(i,r);var f="",d,h,p;if(!o){for(var m=1;m<=c;++m){u.start(null,null),u.update(t),u.update(de.util.int32ToBytes(m)),d=p=u.digest().getBytes();for(var y=2;y<=e;++y)u.start(null,null),u.update(p),h=u.digest().getBytes(),d=de.util.xorBytes(d,h,s),p=h;f+=m<c?d:d.substr(0,l)}return f}var m=1,y;function g(){if(m>c)return o(null,f);u.start(null,null),u.update(t),u.update(de.util.int32ToBytes(m)),d=p=u.digest().getBytes(),y=2,E()}function E(){if(y<=e)return u.start(null,null),u.update(p),h=u.digest().getBytes(),d=de.util.xorBytes(d,h,s),p=h,++y,de.util.setImmediate(E);f+=m<c?d:d.substr(0,l),++m,g()}g()}});var Ry=T((a8,Ay)=>{var Ga=yt();zt();var Sy=Ay.exports=Ga.pem=Ga.pem||{};Sy.encode=function(r,t){t=t||{};var e="-----BEGIN "+r.type+`-----\r
31
- `,n;if(r.procType&&(n={name:"Proc-Type",values:[String(r.procType.version),r.procType.type]},e+=za(n)),r.contentDomain&&(n={name:"Content-Domain",values:[r.contentDomain]},e+=za(n)),r.dekInfo&&(n={name:"DEK-Info",values:[r.dekInfo.algorithm]},r.dekInfo.parameters&&n.values.push(r.dekInfo.parameters),e+=za(n)),r.headers)for(var i=0;i<r.headers.length;++i)e+=za(r.headers[i]);return r.procType&&(e+=`\r
32
- `),e+=Ga.util.encode64(r.body,t.maxline||64)+`\r
30
+ `,r.composed){for(var s=0,a="",o=0;o<r.value.length;++o)r.value[o]!==void 0&&(s+=1,a+=P.prettyPrint(r.value[o],t+1,e),o+1<r.value.length&&(a+=","));n+=i+"Sub values: "+s+a}else{if(n+=i+"Value: ",r.type===P.Type.OID){var c=P.derToOid(r.value);n+=c,It.pki&&It.pki.oids&&c in It.pki.oids&&(n+=" ("+It.pki.oids[c]+") ")}if(r.type===P.Type.INTEGER)try{n+=P.derToInteger(r.value)}catch{n+="0x"+It.util.bytesToHex(r.value)}else if(r.type===P.Type.BITSTRING){if(r.value.length>1?n+="0x"+It.util.bytesToHex(r.value.slice(1)):n+="(none)",r.value.length>0){var l=r.value.charCodeAt(0);l==1?n+=" (1 unused bit shown)":l>1&&(n+=" ("+l+" unused bits shown)")}}else if(r.type===P.Type.OCTETSTRING)iy.test(r.value)||(n+="("+r.value+") "),n+="0x"+It.util.bytesToHex(r.value);else if(r.type===P.Type.UTF8)try{n+=It.util.decodeUtf8(r.value)}catch(u){if(u.message==="URI malformed")n+="0x"+It.util.bytesToHex(r.value)+" (malformed UTF8)";else throw u}else r.type===P.Type.PRINTABLESTRING||r.type===P.Type.IA5String?n+=r.value:iy.test(r.value)?n+="0x"+It.util.bytesToHex(r.value):r.value.length===0?n+="[null]":n+=r.value}return n}});var Zu=T((QL,sy)=>{var ie=yt();zt();sy.exports=ie.cipher=ie.cipher||{};ie.cipher.algorithms=ie.cipher.algorithms||{};ie.cipher.createCipher=function(r,t){var e=r;if(typeof e=="string"&&(e=ie.cipher.getAlgorithm(e),e&&(e=e())),!e)throw new Error("Unsupported algorithm: "+r);return new ie.cipher.BlockCipher({algorithm:e,key:t,decrypt:!1})};ie.cipher.createDecipher=function(r,t){var e=r;if(typeof e=="string"&&(e=ie.cipher.getAlgorithm(e),e&&(e=e())),!e)throw new Error("Unsupported algorithm: "+r);return new ie.cipher.BlockCipher({algorithm:e,key:t,decrypt:!0})};ie.cipher.registerAlgorithm=function(r,t){r=r.toUpperCase(),ie.cipher.algorithms[r]=t};ie.cipher.getAlgorithm=function(r){return r=r.toUpperCase(),r in ie.cipher.algorithms?ie.cipher.algorithms[r]:null};var Xu=ie.cipher.BlockCipher=function(r){this.algorithm=r.algorithm,this.mode=this.algorithm.mode,this.blockSize=this.mode.blockSize,this._finish=!1,this._input=null,this.output=null,this._op=r.decrypt?this.mode.decrypt:this.mode.encrypt,this._decrypt=r.decrypt,this.algorithm.initialize(r)};Xu.prototype.start=function(r){r=r||{};var t={};for(var e in r)t[e]=r[e];t.decrypt=this._decrypt,this._finish=!1,this._input=ie.util.createBuffer(),this.output=r.output||ie.util.createBuffer(),this.mode.start(t)};Xu.prototype.update=function(r){for(r&&this._input.putBuffer(r);!this._op.call(this.mode,this._input,this.output,this._finish)&&!this._finish;);this._input.compact()};Xu.prototype.finish=function(r){r&&(this.mode.name==="ECB"||this.mode.name==="CBC")&&(this.mode.pad=function(e){return r(this.blockSize,e,!1)},this.mode.unpad=function(e){return r(this.blockSize,e,!0)});var t={};return t.decrypt=this._decrypt,t.overflow=this._input.length()%this.blockSize,!(!this._decrypt&&this.mode.pad&&!this.mode.pad(this._input,t)||(this._finish=!0,this.update(),this._decrypt&&this.mode.unpad&&!this.mode.unpad(this.output,t))||this.mode.afterFinish&&!this.mode.afterFinish(this.output,t))}});var ju=T((XL,ay)=>{var oe=yt();zt();oe.cipher=oe.cipher||{};var Z=ay.exports=oe.cipher.modes=oe.cipher.modes||{};Z.ecb=function(r){r=r||{},this.name="ECB",this.cipher=r.cipher,this.blockSize=r.blockSize||16,this._ints=this.blockSize/4,this._inBlock=new Array(this._ints),this._outBlock=new Array(this._ints)};Z.ecb.prototype.start=function(r){};Z.ecb.prototype.encrypt=function(r,t,e){if(r.length()<this.blockSize&&!(e&&r.length()>0))return!0;for(var n=0;n<this._ints;++n)this._inBlock[n]=r.getInt32();this.cipher.encrypt(this._inBlock,this._outBlock);for(var n=0;n<this._ints;++n)t.putInt32(this._outBlock[n])};Z.ecb.prototype.decrypt=function(r,t,e){if(r.length()<this.blockSize&&!(e&&r.length()>0))return!0;for(var n=0;n<this._ints;++n)this._inBlock[n]=r.getInt32();this.cipher.decrypt(this._inBlock,this._outBlock);for(var n=0;n<this._ints;++n)t.putInt32(this._outBlock[n])};Z.ecb.prototype.pad=function(r,t){var e=r.length()===this.blockSize?this.blockSize:this.blockSize-r.length();return r.fillWithByte(e,e),!0};Z.ecb.prototype.unpad=function(r,t){if(t.overflow>0)return!1;var e=r.length(),n=r.at(e-1);return n>this.blockSize<<2?!1:(r.truncate(n),!0)};Z.cbc=function(r){r=r||{},this.name="CBC",this.cipher=r.cipher,this.blockSize=r.blockSize||16,this._ints=this.blockSize/4,this._inBlock=new Array(this._ints),this._outBlock=new Array(this._ints)};Z.cbc.prototype.start=function(r){if(r.iv===null){if(!this._prev)throw new Error("Invalid IV parameter.");this._iv=this._prev.slice(0)}else if("iv"in r)this._iv=Ma(r.iv,this.blockSize),this._prev=this._iv.slice(0);else throw new Error("Invalid IV parameter.")};Z.cbc.prototype.encrypt=function(r,t,e){if(r.length()<this.blockSize&&!(e&&r.length()>0))return!0;for(var n=0;n<this._ints;++n)this._inBlock[n]=this._prev[n]^r.getInt32();this.cipher.encrypt(this._inBlock,this._outBlock);for(var n=0;n<this._ints;++n)t.putInt32(this._outBlock[n]);this._prev=this._outBlock};Z.cbc.prototype.decrypt=function(r,t,e){if(r.length()<this.blockSize&&!(e&&r.length()>0))return!0;for(var n=0;n<this._ints;++n)this._inBlock[n]=r.getInt32();this.cipher.decrypt(this._inBlock,this._outBlock);for(var n=0;n<this._ints;++n)t.putInt32(this._prev[n]^this._outBlock[n]);this._prev=this._inBlock.slice(0)};Z.cbc.prototype.pad=function(r,t){var e=r.length()===this.blockSize?this.blockSize:this.blockSize-r.length();return r.fillWithByte(e,e),!0};Z.cbc.prototype.unpad=function(r,t){if(t.overflow>0)return!1;var e=r.length(),n=r.at(e-1);return n>this.blockSize<<2?!1:(r.truncate(n),!0)};Z.cfb=function(r){r=r||{},this.name="CFB",this.cipher=r.cipher,this.blockSize=r.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialBlock=new Array(this._ints),this._partialOutput=oe.util.createBuffer(),this._partialBytes=0};Z.cfb.prototype.start=function(r){if(!("iv"in r))throw new Error("Invalid IV parameter.");this._iv=Ma(r.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0};Z.cfb.prototype.encrypt=function(r,t,e){var n=r.length();if(n===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&n>=this.blockSize){for(var i=0;i<this._ints;++i)this._inBlock[i]=r.getInt32()^this._outBlock[i],t.putInt32(this._inBlock[i]);return}var o=(this.blockSize-n)%this.blockSize;o>0&&(o=this.blockSize-o),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialBlock[i]=r.getInt32()^this._outBlock[i],this._partialOutput.putInt32(this._partialBlock[i]);if(o>0)r.read-=this.blockSize;else for(var i=0;i<this._ints;++i)this._inBlock[i]=this._partialBlock[i];if(this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),o>0&&!e)return t.putBytes(this._partialOutput.getBytes(o-this._partialBytes)),this._partialBytes=o,!0;t.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0};Z.cfb.prototype.decrypt=function(r,t,e){var n=r.length();if(n===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&n>=this.blockSize){for(var i=0;i<this._ints;++i)this._inBlock[i]=r.getInt32(),t.putInt32(this._inBlock[i]^this._outBlock[i]);return}var o=(this.blockSize-n)%this.blockSize;o>0&&(o=this.blockSize-o),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialBlock[i]=r.getInt32(),this._partialOutput.putInt32(this._partialBlock[i]^this._outBlock[i]);if(o>0)r.read-=this.blockSize;else for(var i=0;i<this._ints;++i)this._inBlock[i]=this._partialBlock[i];if(this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),o>0&&!e)return t.putBytes(this._partialOutput.getBytes(o-this._partialBytes)),this._partialBytes=o,!0;t.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0};Z.ofb=function(r){r=r||{},this.name="OFB",this.cipher=r.cipher,this.blockSize=r.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialOutput=oe.util.createBuffer(),this._partialBytes=0};Z.ofb.prototype.start=function(r){if(!("iv"in r))throw new Error("Invalid IV parameter.");this._iv=Ma(r.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0};Z.ofb.prototype.encrypt=function(r,t,e){var n=r.length();if(r.length()===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&n>=this.blockSize){for(var i=0;i<this._ints;++i)t.putInt32(r.getInt32()^this._outBlock[i]),this._inBlock[i]=this._outBlock[i];return}var o=(this.blockSize-n)%this.blockSize;o>0&&(o=this.blockSize-o),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialOutput.putInt32(r.getInt32()^this._outBlock[i]);if(o>0)r.read-=this.blockSize;else for(var i=0;i<this._ints;++i)this._inBlock[i]=this._outBlock[i];if(this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),o>0&&!e)return t.putBytes(this._partialOutput.getBytes(o-this._partialBytes)),this._partialBytes=o,!0;t.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0};Z.ofb.prototype.decrypt=Z.ofb.prototype.encrypt;Z.ctr=function(r){r=r||{},this.name="CTR",this.cipher=r.cipher,this.blockSize=r.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialOutput=oe.util.createBuffer(),this._partialBytes=0};Z.ctr.prototype.start=function(r){if(!("iv"in r))throw new Error("Invalid IV parameter.");this._iv=Ma(r.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0};Z.ctr.prototype.encrypt=function(r,t,e){var n=r.length();if(n===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&n>=this.blockSize)for(var i=0;i<this._ints;++i)t.putInt32(r.getInt32()^this._outBlock[i]);else{var o=(this.blockSize-n)%this.blockSize;o>0&&(o=this.blockSize-o),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialOutput.putInt32(r.getInt32()^this._outBlock[i]);if(o>0&&(r.read-=this.blockSize),this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),o>0&&!e)return t.putBytes(this._partialOutput.getBytes(o-this._partialBytes)),this._partialBytes=o,!0;t.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0}Ua(this._inBlock)};Z.ctr.prototype.decrypt=Z.ctr.prototype.encrypt;Z.gcm=function(r){r=r||{},this.name="GCM",this.cipher=r.cipher,this.blockSize=r.blockSize||16,this._ints=this.blockSize/4,this._inBlock=new Array(this._ints),this._outBlock=new Array(this._ints),this._partialOutput=oe.util.createBuffer(),this._partialBytes=0,this._R=3774873600};Z.gcm.prototype.start=function(r){if(!("iv"in r))throw new Error("Invalid IV parameter.");var t=oe.util.createBuffer(r.iv);this._cipherLength=0;var e;if("additionalData"in r?e=oe.util.createBuffer(r.additionalData):e=oe.util.createBuffer(),"tagLength"in r?this._tagLength=r.tagLength:this._tagLength=128,this._tag=null,r.decrypt&&(this._tag=oe.util.createBuffer(r.tag).getBytes(),this._tag.length!==this._tagLength/8))throw new Error("Authentication tag does not match tag length.");this._hashBlock=new Array(this._ints),this.tag=null,this._hashSubkey=new Array(this._ints),this.cipher.encrypt([0,0,0,0],this._hashSubkey),this.componentBits=4,this._m=this.generateHashTable(this._hashSubkey,this.componentBits);var n=t.length();if(n===12)this._j0=[t.getInt32(),t.getInt32(),t.getInt32(),1];else{for(this._j0=[0,0,0,0];t.length()>0;)this._j0=this.ghash(this._hashSubkey,this._j0,[t.getInt32(),t.getInt32(),t.getInt32(),t.getInt32()]);this._j0=this.ghash(this._hashSubkey,this._j0,[0,0].concat(Ju(n*8)))}this._inBlock=this._j0.slice(0),Ua(this._inBlock),this._partialBytes=0,e=oe.util.createBuffer(e),this._aDataLength=Ju(e.length()*8);var i=e.length()%this.blockSize;for(i&&e.fillWithByte(0,this.blockSize-i),this._s=[0,0,0,0];e.length()>0;)this._s=this.ghash(this._hashSubkey,this._s,[e.getInt32(),e.getInt32(),e.getInt32(),e.getInt32()])};Z.gcm.prototype.encrypt=function(r,t,e){var n=r.length();if(n===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&n>=this.blockSize){for(var i=0;i<this._ints;++i)t.putInt32(this._outBlock[i]^=r.getInt32());this._cipherLength+=this.blockSize}else{var o=(this.blockSize-n)%this.blockSize;o>0&&(o=this.blockSize-o),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialOutput.putInt32(r.getInt32()^this._outBlock[i]);if(o<=0||e){if(e){var s=n%this.blockSize;this._cipherLength+=s,this._partialOutput.truncate(this.blockSize-s)}else this._cipherLength+=this.blockSize;for(var i=0;i<this._ints;++i)this._outBlock[i]=this._partialOutput.getInt32();this._partialOutput.read-=this.blockSize}if(this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),o>0&&!e)return r.read-=this.blockSize,t.putBytes(this._partialOutput.getBytes(o-this._partialBytes)),this._partialBytes=o,!0;t.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0}this._s=this.ghash(this._hashSubkey,this._s,this._outBlock),Ua(this._inBlock)};Z.gcm.prototype.decrypt=function(r,t,e){var n=r.length();if(n<this.blockSize&&!(e&&n>0))return!0;this.cipher.encrypt(this._inBlock,this._outBlock),Ua(this._inBlock),this._hashBlock[0]=r.getInt32(),this._hashBlock[1]=r.getInt32(),this._hashBlock[2]=r.getInt32(),this._hashBlock[3]=r.getInt32(),this._s=this.ghash(this._hashSubkey,this._s,this._hashBlock);for(var i=0;i<this._ints;++i)t.putInt32(this._outBlock[i]^this._hashBlock[i]);n<this.blockSize?this._cipherLength+=n%this.blockSize:this._cipherLength+=this.blockSize};Z.gcm.prototype.afterFinish=function(r,t){var e=!0;t.decrypt&&t.overflow&&r.truncate(this.blockSize-t.overflow),this.tag=oe.util.createBuffer();var n=this._aDataLength.concat(Ju(this._cipherLength*8));this._s=this.ghash(this._hashSubkey,this._s,n);var i=[];this.cipher.encrypt(this._j0,i);for(var o=0;o<this._ints;++o)this.tag.putInt32(this._s[o]^i[o]);return this.tag.truncate(this.tag.length()%(this._tagLength/8)),t.decrypt&&this.tag.bytes()!==this._tag&&(e=!1),e};Z.gcm.prototype.multiply=function(r,t){for(var e=[0,0,0,0],n=t.slice(0),i=0;i<128;++i){var o=r[i/32|0]&1<<31-i%32;o&&(e[0]^=n[0],e[1]^=n[1],e[2]^=n[2],e[3]^=n[3]),this.pow(n,n)}return e};Z.gcm.prototype.pow=function(r,t){for(var e=r[3]&1,n=3;n>0;--n)t[n]=r[n]>>>1|(r[n-1]&1)<<31;t[0]=r[0]>>>1,e&&(t[0]^=this._R)};Z.gcm.prototype.tableMultiply=function(r){for(var t=[0,0,0,0],e=0;e<32;++e){var n=e/8|0,i=r[n]>>>(7-e%8)*4&15,o=this._m[e][i];t[0]^=o[0],t[1]^=o[1],t[2]^=o[2],t[3]^=o[3]}return t};Z.gcm.prototype.ghash=function(r,t,e){return t[0]^=e[0],t[1]^=e[1],t[2]^=e[2],t[3]^=e[3],this.tableMultiply(t)};Z.gcm.prototype.generateHashTable=function(r,t){for(var e=8/t,n=4*e,i=16*e,o=new Array(i),s=0;s<i;++s){var a=[0,0,0,0],c=s/n|0,l=(n-1-s%n)*t;a[c]=1<<t-1<<l,o[s]=this.generateSubHashTable(this.multiply(a,r),t)}return o};Z.gcm.prototype.generateSubHashTable=function(r,t){var e=1<<t,n=e>>>1,i=new Array(e);i[n]=r.slice(0);for(var o=n>>>1;o>0;)this.pow(i[2*o],i[o]=[]),o>>=1;for(o=2;o<n;){for(var s=1;s<o;++s){var a=i[o],c=i[s];i[o+s]=[a[0]^c[0],a[1]^c[1],a[2]^c[2],a[3]^c[3]]}o*=2}for(i[0]=[0,0,0,0],o=n+1;o<e;++o){var l=i[o^n];i[o]=[r[0]^l[0],r[1]^l[1],r[2]^l[2],r[3]^l[3]]}return i};function Ma(r,t){if(typeof r=="string"&&(r=oe.util.createBuffer(r)),oe.util.isArray(r)&&r.length>4){var e=r;r=oe.util.createBuffer();for(var n=0;n<e.length;++n)r.putByte(e[n])}if(r.length()<t)throw new Error("Invalid IV length; got "+r.length()+" bytes and expected "+t+" bytes.");if(!oe.util.isArray(r)){for(var i=[],o=t/4,n=0;n<o;++n)i.push(r.getInt32());r=i}return r}function Ua(r){r[r.length-1]=r[r.length-1]+1&4294967295}function Ju(r){return[r/4294967296|0,r&4294967295]}});var Ka=T((ZL,fy)=>{var At=yt();Zu();ju();zt();fy.exports=At.aes=At.aes||{};At.aes.startEncrypting=function(r,t,e,n){var i=Fa({key:r,output:e,decrypt:!1,mode:n});return i.start(t),i};At.aes.createEncryptionCipher=function(r,t){return Fa({key:r,output:null,decrypt:!1,mode:t})};At.aes.startDecrypting=function(r,t,e,n){var i=Fa({key:r,output:e,decrypt:!0,mode:n});return i.start(t),i};At.aes.createDecryptionCipher=function(r,t){return Fa({key:r,output:null,decrypt:!0,mode:t})};At.aes.Algorithm=function(r,t){rf||ly();var e=this;e.name=r,e.mode=new t({blockSize:16,cipher:{encrypt:function(n,i){return ef(e._w,n,i,!1)},decrypt:function(n,i){return ef(e._w,n,i,!0)}}}),e._init=!1};At.aes.Algorithm.prototype.initialize=function(r){if(!this._init){var t=r.key,e;if(typeof t=="string"&&(t.length===16||t.length===24||t.length===32))t=At.util.createBuffer(t);else if(At.util.isArray(t)&&(t.length===16||t.length===24||t.length===32)){e=t,t=At.util.createBuffer();for(var n=0;n<e.length;++n)t.putByte(e[n])}if(!At.util.isArray(t)){e=t,t=[];var i=e.length();if(i===16||i===24||i===32){i=i>>>2;for(var n=0;n<i;++n)t.push(e.getInt32())}}if(!At.util.isArray(t)||!(t.length===4||t.length===6||t.length===8))throw new Error("Invalid key parameter.");var o=this.mode.name,s=["CFB","OFB","CTR","GCM"].indexOf(o)!==-1;this._w=uy(t,r.decrypt&&!s),this._init=!0}};At.aes._expandKey=function(r,t){return rf||ly(),uy(r,t)};At.aes._updateBlock=ef;Hi("AES-ECB",At.cipher.modes.ecb);Hi("AES-CBC",At.cipher.modes.cbc);Hi("AES-CFB",At.cipher.modes.cfb);Hi("AES-OFB",At.cipher.modes.ofb);Hi("AES-CTR",At.cipher.modes.ctr);Hi("AES-GCM",At.cipher.modes.gcm);function Hi(r,t){var e=function(){return new At.aes.Algorithm(r,t)};At.cipher.registerAlgorithm(r,e)}var rf=!1,qi=4,he,tf,cy,Qn,Je;function ly(){rf=!0,cy=[0,1,2,4,8,16,32,64,128,27,54];for(var r=new Array(256),t=0;t<128;++t)r[t]=t<<1,r[t+128]=t+128<<1^283;he=new Array(256),tf=new Array(256),Qn=new Array(4),Je=new Array(4);for(var t=0;t<4;++t)Qn[t]=new Array(256),Je[t]=new Array(256);for(var e=0,n=0,i,o,s,a,c,l,u,t=0;t<256;++t){a=n^n<<1^n<<2^n<<3^n<<4,a=a>>8^a&255^99,he[e]=a,tf[a]=e,c=r[a],i=r[e],o=r[i],s=r[o],l=c<<24^a<<16^a<<8^(a^c),u=(i^o^s)<<24^(e^s)<<16^(e^o^s)<<8^(e^i^s);for(var f=0;f<4;++f)Qn[f][e]=l,Je[f][a]=u,l=l<<24|l>>>8,u=u<<24|u>>>8;e===0?e=n=1:(e=i^r[r[r[i^s]]],n^=r[r[n]])}}function uy(r,t){for(var e=r.slice(0),n,i=1,o=e.length,s=o+6+1,a=qi*s,c=o;c<a;++c)n=e[c-1],c%o===0?(n=he[n>>>16&255]<<24^he[n>>>8&255]<<16^he[n&255]<<8^he[n>>>24]^cy[i]<<24,i++):o>6&&c%o===4&&(n=he[n>>>24]<<24^he[n>>>16&255]<<16^he[n>>>8&255]<<8^he[n&255]),e[c]=e[c-o]^n;if(t){var l,u=Je[0],f=Je[1],d=Je[2],h=Je[3],p=e.slice(0);a=e.length;for(var c=0,m=a-qi;c<a;c+=qi,m-=qi)if(c===0||c===a-qi)p[c]=e[m],p[c+1]=e[m+3],p[c+2]=e[m+2],p[c+3]=e[m+1];else for(var y=0;y<qi;++y)l=e[m+y],p[c+(3&-y)]=u[he[l>>>24]]^f[he[l>>>16&255]]^d[he[l>>>8&255]]^h[he[l&255]];e=p}return e}function ef(r,t,e,n){var i=r.length/4-1,o,s,a,c,l;n?(o=Je[0],s=Je[1],a=Je[2],c=Je[3],l=tf):(o=Qn[0],s=Qn[1],a=Qn[2],c=Qn[3],l=he);var u,f,d,h,p,m,y;u=t[0]^r[0],f=t[n?3:1]^r[1],d=t[2]^r[2],h=t[n?1:3]^r[3];for(var g=3,E=1;E<i;++E)p=o[u>>>24]^s[f>>>16&255]^a[d>>>8&255]^c[h&255]^r[++g],m=o[f>>>24]^s[d>>>16&255]^a[h>>>8&255]^c[u&255]^r[++g],y=o[d>>>24]^s[h>>>16&255]^a[u>>>8&255]^c[f&255]^r[++g],h=o[h>>>24]^s[u>>>16&255]^a[f>>>8&255]^c[d&255]^r[++g],u=p,f=m,d=y;e[0]=l[u>>>24]<<24^l[f>>>16&255]<<16^l[d>>>8&255]<<8^l[h&255]^r[++g],e[n?3:1]=l[f>>>24]<<24^l[d>>>16&255]<<16^l[h>>>8&255]<<8^l[u&255]^r[++g],e[2]=l[d>>>24]<<24^l[h>>>16&255]<<16^l[u>>>8&255]<<8^l[f&255]^r[++g],e[n?1:3]=l[h>>>24]<<24^l[u>>>16&255]<<16^l[f>>>8&255]<<8^l[d&255]^r[++g]}function Fa(r){r=r||{};var t=(r.mode||"CBC").toUpperCase(),e="AES-"+t,n;r.decrypt?n=At.cipher.createDecipher(e,r.key):n=At.cipher.createCipher(e,r.key);var i=n.start;return n.start=function(o,s){var a=null;s instanceof At.util.ByteBuffer&&(a=s,s={}),s=s||{},s.output=a,s.iv=o,i.call(n,s)},n}});var py=T((JL,dy)=>{var Nt=yt();Zu();ju();zt();dy.exports=Nt.des=Nt.des||{};Nt.des.startEncrypting=function(r,t,e,n){var i=Va({key:r,output:e,decrypt:!1,mode:n||(t===null?"ECB":"CBC")});return i.start(t),i};Nt.des.createEncryptionCipher=function(r,t){return Va({key:r,output:null,decrypt:!1,mode:t})};Nt.des.startDecrypting=function(r,t,e,n){var i=Va({key:r,output:e,decrypt:!0,mode:n||(t===null?"ECB":"CBC")});return i.start(t),i};Nt.des.createDecryptionCipher=function(r,t){return Va({key:r,output:null,decrypt:!0,mode:t})};Nt.des.Algorithm=function(r,t){var e=this;e.name=r,e.mode=new t({blockSize:8,cipher:{encrypt:function(n,i){return hy(e._keys,n,i,!1)},decrypt:function(n,i){return hy(e._keys,n,i,!0)}}}),e._init=!1};Nt.des.Algorithm.prototype.initialize=function(r){if(!this._init){var t=Nt.util.createBuffer(r.key);if(this.name.indexOf("3DES")===0&&t.length()!==24)throw new Error("Invalid Triple-DES key size: "+t.length()*8);this._keys=Ub(t),this._init=!0}};mr("DES-ECB",Nt.cipher.modes.ecb);mr("DES-CBC",Nt.cipher.modes.cbc);mr("DES-CFB",Nt.cipher.modes.cfb);mr("DES-OFB",Nt.cipher.modes.ofb);mr("DES-CTR",Nt.cipher.modes.ctr);mr("3DES-ECB",Nt.cipher.modes.ecb);mr("3DES-CBC",Nt.cipher.modes.cbc);mr("3DES-CFB",Nt.cipher.modes.cfb);mr("3DES-OFB",Nt.cipher.modes.ofb);mr("3DES-CTR",Nt.cipher.modes.ctr);function mr(r,t){var e=function(){return new Nt.des.Algorithm(r,t)};Nt.cipher.registerAlgorithm(r,e)}var Db=[16843776,0,65536,16843780,16842756,66564,4,65536,1024,16843776,16843780,1024,16778244,16842756,16777216,4,1028,16778240,16778240,66560,66560,16842752,16842752,16778244,65540,16777220,16777220,65540,0,1028,66564,16777216,65536,16843780,4,16842752,16843776,16777216,16777216,1024,16842756,65536,66560,16777220,1024,4,16778244,66564,16843780,65540,16842752,16778244,16777220,1028,66564,16843776,1028,16778240,16778240,0,65540,66560,0,16842756],Pb=[-2146402272,-2147450880,32768,1081376,1048576,32,-2146435040,-2147450848,-2147483616,-2146402272,-2146402304,-2147483648,-2147450880,1048576,32,-2146435040,1081344,1048608,-2147450848,0,-2147483648,32768,1081376,-2146435072,1048608,-2147483616,0,1081344,32800,-2146402304,-2146435072,32800,0,1081376,-2146435040,1048576,-2147450848,-2146435072,-2146402304,32768,-2146435072,-2147450880,32,-2146402272,1081376,32,32768,-2147483648,32800,-2146402304,1048576,-2147483616,1048608,-2147450848,-2147483616,1048608,1081344,0,-2147450880,32800,-2147483648,-2146435040,-2146402272,1081344],Lb=[520,134349312,0,134348808,134218240,0,131592,134218240,131080,134217736,134217736,131072,134349320,131080,134348800,520,134217728,8,134349312,512,131584,134348800,134348808,131592,134218248,131584,131072,134218248,8,134349320,512,134217728,134349312,134217728,131080,520,131072,134349312,134218240,0,512,131080,134349320,134218240,134217736,512,0,134348808,134218248,131072,134217728,134349320,8,131592,131584,134217736,134348800,134218248,520,134348800,131592,8,134348808,131584],Bb=[8396801,8321,8321,128,8396928,8388737,8388609,8193,0,8396800,8396800,8396929,129,0,8388736,8388609,1,8192,8388608,8396801,128,8388608,8193,8320,8388737,1,8320,8388736,8192,8396928,8396929,129,8388736,8388609,8396800,8396929,129,0,0,8396800,8320,8388736,8388737,1,8396801,8321,8321,128,8396929,129,1,8192,8388609,8193,8396928,8388737,8193,8320,8388608,8396801,128,8388608,8192,8396928],Nb=[256,34078976,34078720,1107296512,524288,256,1073741824,34078720,1074266368,524288,33554688,1074266368,1107296512,1107820544,524544,1073741824,33554432,1074266112,1074266112,0,1073742080,1107820800,1107820800,33554688,1107820544,1073742080,0,1107296256,34078976,33554432,1107296256,524544,524288,1107296512,256,33554432,1073741824,34078720,1107296512,1074266368,33554688,1073741824,1107820544,34078976,1074266368,256,33554432,1107820544,1107820800,524544,1107296256,1107820800,34078720,0,1074266112,1107296256,524544,33554688,1073742080,524288,0,1074266112,34078976,1073742080],Ob=[536870928,541065216,16384,541081616,541065216,16,541081616,4194304,536887296,4210704,4194304,536870928,4194320,536887296,536870912,16400,0,4194320,536887312,16384,4210688,536887312,16,541065232,541065232,0,4210704,541081600,16400,4210688,541081600,536870912,536887296,16,541065232,4210688,541081616,4194304,16400,536870928,4194304,536887296,536870912,16400,536870928,541081616,4210688,541065216,4210704,541081600,0,541065232,16,16384,541065216,4210704,16384,4194320,536887312,0,541081600,536870912,4194320,536887312],kb=[2097152,69206018,67110914,0,2048,67110914,2099202,69208064,69208066,2097152,0,67108866,2,67108864,69206018,2050,67110912,2099202,2097154,67110912,67108866,69206016,69208064,2097154,69206016,2048,2050,69208066,2099200,2,67108864,2099200,67108864,2099200,2097152,67110914,67110914,69206018,69206018,2,2097154,67108864,67110912,2097152,69208064,2050,2099202,69208064,2050,67108866,69208066,69206016,2099200,0,2,69208066,0,2099202,69206016,2048,67108866,67110912,2048,2097154],Mb=[268439616,4096,262144,268701760,268435456,268439616,64,268435456,262208,268697600,268701760,266240,268701696,266304,4096,64,268697600,268435520,268439552,4160,266240,262208,268697664,268701696,4160,0,0,268697664,268435520,268439552,266304,262144,266304,262144,268701696,4096,64,268697664,4096,266304,268439552,64,268435520,268697600,268697664,268435456,262144,268439616,0,268701760,262208,268435520,268697600,268439552,268439616,0,268701760,266240,266240,4160,4160,262208,268435456,268701696];function Ub(r){for(var t=[0,4,536870912,536870916,65536,65540,536936448,536936452,512,516,536871424,536871428,66048,66052,536936960,536936964],e=[0,1,1048576,1048577,67108864,67108865,68157440,68157441,256,257,1048832,1048833,67109120,67109121,68157696,68157697],n=[0,8,2048,2056,16777216,16777224,16779264,16779272,0,8,2048,2056,16777216,16777224,16779264,16779272],i=[0,2097152,134217728,136314880,8192,2105344,134225920,136323072,131072,2228224,134348800,136445952,139264,2236416,134356992,136454144],o=[0,262144,16,262160,0,262144,16,262160,4096,266240,4112,266256,4096,266240,4112,266256],s=[0,1024,32,1056,0,1024,32,1056,33554432,33555456,33554464,33555488,33554432,33555456,33554464,33555488],a=[0,268435456,524288,268959744,2,268435458,524290,268959746,0,268435456,524288,268959744,2,268435458,524290,268959746],c=[0,65536,2048,67584,536870912,536936448,536872960,536938496,131072,196608,133120,198656,537001984,537067520,537004032,537069568],l=[0,262144,0,262144,2,262146,2,262146,33554432,33816576,33554432,33816576,33554434,33816578,33554434,33816578],u=[0,268435456,8,268435464,0,268435456,8,268435464,1024,268436480,1032,268436488,1024,268436480,1032,268436488],f=[0,32,0,32,1048576,1048608,1048576,1048608,8192,8224,8192,8224,1056768,1056800,1056768,1056800],d=[0,16777216,512,16777728,2097152,18874368,2097664,18874880,67108864,83886080,67109376,83886592,69206016,85983232,69206528,85983744],h=[0,4096,134217728,134221824,524288,528384,134742016,134746112,16,4112,134217744,134221840,524304,528400,134742032,134746128],p=[0,4,256,260,0,4,256,260,1,5,257,261,1,5,257,261],m=r.length()>8?3:1,y=[],g=[0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0],E=0,_,k=0;k<m;k++){var C=r.getInt32(),D=r.getInt32();_=(C>>>4^D)&252645135,D^=_,C^=_<<4,_=(D>>>-16^C)&65535,C^=_,D^=_<<-16,_=(C>>>2^D)&858993459,D^=_,C^=_<<2,_=(D>>>-16^C)&65535,C^=_,D^=_<<-16,_=(C>>>1^D)&1431655765,D^=_,C^=_<<1,_=(D>>>8^C)&16711935,C^=_,D^=_<<8,_=(C>>>1^D)&1431655765,D^=_,C^=_<<1,_=C<<8|D>>>20&240,C=D<<24|D<<8&16711680|D>>>8&65280|D>>>24&240,D=_;for(var J=0;J<g.length;++J){g[J]?(C=C<<2|C>>>26,D=D<<2|D>>>26):(C=C<<1|C>>>27,D=D<<1|D>>>27),C&=-15,D&=-15;var rt=t[C>>>28]|e[C>>>24&15]|n[C>>>20&15]|i[C>>>16&15]|o[C>>>12&15]|s[C>>>8&15]|a[C>>>4&15],jt=c[D>>>28]|l[D>>>24&15]|u[D>>>20&15]|f[D>>>16&15]|d[D>>>12&15]|h[D>>>8&15]|p[D>>>4&15];_=(jt>>>16^rt)&65535,y[E++]=rt^_,y[E++]=jt^_<<16}}return y}function hy(r,t,e,n){var i=r.length===32?3:9,o;i===3?o=n?[30,-2,-2]:[0,32,2]:o=n?[94,62,-2,32,64,2,30,-2,-2]:[0,32,2,62,30,-2,64,96,2];var s,a=t[0],c=t[1];s=(a>>>4^c)&252645135,c^=s,a^=s<<4,s=(a>>>16^c)&65535,c^=s,a^=s<<16,s=(c>>>2^a)&858993459,a^=s,c^=s<<2,s=(c>>>8^a)&16711935,a^=s,c^=s<<8,s=(a>>>1^c)&1431655765,c^=s,a^=s<<1,a=a<<1|a>>>31,c=c<<1|c>>>31;for(var l=0;l<i;l+=3){for(var u=o[l+1],f=o[l+2],d=o[l];d!=u;d+=f){var h=c^r[d],p=(c>>>4|c<<28)^r[d+1];s=a,a=c,c=s^(Pb[h>>>24&63]|Bb[h>>>16&63]|Ob[h>>>8&63]|Mb[h&63]|Db[p>>>24&63]|Lb[p>>>16&63]|Nb[p>>>8&63]|kb[p&63])}s=a,a=c,c=s}a=a>>>1|a<<31,c=c>>>1|c<<31,s=(a>>>1^c)&1431655765,c^=s,a^=s<<1,s=(c>>>8^a)&16711935,a^=s,c^=s<<8,s=(c>>>2^a)&858993459,a^=s,c^=s<<2,s=(a>>>16^c)&65535,c^=s,a^=s<<16,s=(a>>>4^c)&252645135,c^=s,a^=s<<4,e[0]=a,e[1]=c}function Va(r){r=r||{};var t=(r.mode||"CBC").toUpperCase(),e="DES-"+t,n;r.decrypt?n=Nt.cipher.createDecipher(e,r.key):n=Nt.cipher.createCipher(e,r.key);var i=n.start;return n.start=function(o,s){var a=null;s instanceof Nt.util.ByteBuffer&&(a=s,s={}),s=s||{},s.output=a,s.iv=o,i.call(n,s)},n}});var Xn=T((jL,my)=>{var qa=yt();my.exports=qa.md=qa.md||{};qa.md.algorithms=qa.md.algorithms||{}});var gy=T((t8,yy)=>{var Kr=yt();Xn();zt();var Fb=yy.exports=Kr.hmac=Kr.hmac||{};Fb.create=function(){var r=null,t=null,e=null,n=null,i={};return i.start=function(o,s){if(o!==null)if(typeof o=="string")if(o=o.toLowerCase(),o in Kr.md.algorithms)t=Kr.md.algorithms[o].create();else throw new Error('Unknown hash algorithm "'+o+'"');else t=o;if(s===null)s=r;else{if(typeof s=="string")s=Kr.util.createBuffer(s);else if(Kr.util.isArray(s)){var a=s;s=Kr.util.createBuffer();for(var c=0;c<a.length;++c)s.putByte(a[c])}var l=s.length();l>t.blockLength&&(t.start(),t.update(s.bytes()),s=t.digest()),e=Kr.util.createBuffer(),n=Kr.util.createBuffer(),l=s.length();for(var c=0;c<l;++c){var a=s.at(c);e.putByte(54^a),n.putByte(92^a)}if(l<t.blockLength)for(var a=t.blockLength-l,c=0;c<a;++c)e.putByte(54),n.putByte(92);r=s,e=e.bytes(),n=n.bytes()}t.start(),t.update(e)},i.update=function(o){t.update(o)},i.getMac=function(){var o=t.digest().bytes();return t.start(),t.update(n),t.update(o),t.digest()},i.digest=i.getMac,i}});var nf=T((e8,wy)=>{var de=yt();gy();Xn();zt();var Kb=de.pkcs5=de.pkcs5||{},Vr;de.util.isNodejs&&!de.options.usePureJavaScript&&(Vr=Vn());wy.exports=de.pbkdf2=Kb.pbkdf2=function(r,t,e,n,i,o){if(typeof i=="function"&&(o=i,i=null),de.util.isNodejs&&!de.options.usePureJavaScript&&Vr.pbkdf2&&(i===null||typeof i!="object")&&(Vr.pbkdf2Sync.length>4||!i||i==="sha1"))return typeof i!="string"&&(i="sha1"),r=Buffer.from(r,"binary"),t=Buffer.from(t,"binary"),o?Vr.pbkdf2Sync.length===4?Vr.pbkdf2(r,t,e,n,function(_,k){if(_)return o(_);o(null,k.toString("binary"))}):Vr.pbkdf2(r,t,e,n,i,function(_,k){if(_)return o(_);o(null,k.toString("binary"))}):Vr.pbkdf2Sync.length===4?Vr.pbkdf2Sync(r,t,e,n).toString("binary"):Vr.pbkdf2Sync(r,t,e,n,i).toString("binary");if((typeof i>"u"||i===null)&&(i="sha1"),typeof i=="string"){if(!(i in de.md.algorithms))throw new Error("Unknown hash algorithm: "+i);i=de.md[i].create()}var s=i.digestLength;if(n>4294967295*s){var a=new Error("Derived key is too long.");if(o)return o(a);throw a}var c=Math.ceil(n/s),l=n-(c-1)*s,u=de.hmac.create();u.start(i,r);var f="",d,h,p;if(!o){for(var m=1;m<=c;++m){u.start(null,null),u.update(t),u.update(de.util.int32ToBytes(m)),d=p=u.digest().getBytes();for(var y=2;y<=e;++y)u.start(null,null),u.update(p),h=u.digest().getBytes(),d=de.util.xorBytes(d,h,s),p=h;f+=m<c?d:d.substr(0,l)}return f}var m=1,y;function g(){if(m>c)return o(null,f);u.start(null,null),u.update(t),u.update(de.util.int32ToBytes(m)),d=p=u.digest().getBytes(),y=2,E()}function E(){if(y<=e)return u.start(null,null),u.update(p),h=u.digest().getBytes(),d=de.util.xorBytes(d,h,s),p=h,++y,de.util.setImmediate(E);f+=m<c?d:d.substr(0,l),++m,g()}g()}});var vy=T((r8,xy)=>{var $a=yt();zt();var Ey=xy.exports=$a.pem=$a.pem||{};Ey.encode=function(r,t){t=t||{};var e="-----BEGIN "+r.type+`-----\r
31
+ `,n;if(r.procType&&(n={name:"Proc-Type",values:[String(r.procType.version),r.procType.type]},e+=Ha(n)),r.contentDomain&&(n={name:"Content-Domain",values:[r.contentDomain]},e+=Ha(n)),r.dekInfo&&(n={name:"DEK-Info",values:[r.dekInfo.algorithm]},r.dekInfo.parameters&&n.values.push(r.dekInfo.parameters),e+=Ha(n)),r.headers)for(var i=0;i<r.headers.length;++i)e+=Ha(r.headers[i]);return r.procType&&(e+=`\r
32
+ `),e+=$a.util.encode64(r.body,t.maxline||64)+`\r
33
33
  `,e+="-----END "+r.type+`-----\r
34
- `,e};Sy.decode=function(r){for(var t=[],e=/\s*-----BEGIN ([A-Z0-9- ]+)-----\r?\n?([\x21-\x7e\s]+?(?:\r?\n\r?\n))?([:A-Za-z0-9+\/=\s]+?)-----END \1-----/g,n=/([\x21-\x7e]+):\s*([\x21-\x7e\s^:]+)/,i=/\r?\n/,o;o=e.exec(r),!!o;){var s=o[1];s==="NEW CERTIFICATE REQUEST"&&(s="CERTIFICATE REQUEST");var a={type:s,procType:null,contentDomain:null,dekInfo:null,headers:[],body:Ga.util.decode64(o[3])};if(t.push(a),!!o[2]){for(var c=o[2].split(i),l=0;o&&l<c.length;){for(var u=c[l].replace(/\s+$/,""),f=l+1;f<c.length;++f){var d=c[f];if(!/\s/.test(d[0]))break;u+=d,l=f}if(o=u.match(n),o){for(var h={name:o[1],values:[]},p=o[2].split(","),m=0;m<p.length;++m)h.values.push(Gb(p[m]));if(a.procType)if(!a.contentDomain&&h.name==="Content-Domain")a.contentDomain=p[0]||"";else if(!a.dekInfo&&h.name==="DEK-Info"){if(h.values.length===0)throw new Error('Invalid PEM formatted message. The "DEK-Info" header must have at least one subfield.');a.dekInfo={algorithm:p[0],parameters:p[1]||null}}else a.headers.push(h);else{if(h.name!=="Proc-Type")throw new Error('Invalid PEM formatted message. The first encapsulated header must be "Proc-Type".');if(h.values.length!==2)throw new Error('Invalid PEM formatted message. The "Proc-Type" header must have two subfields.');a.procType={version:p[0],type:p[1]}}}++l}if(a.procType==="ENCRYPTED"&&!a.dekInfo)throw new Error('Invalid PEM formatted message. The "DEK-Info" header must be present if "Proc-Type" is "ENCRYPTED".')}}if(t.length===0)throw new Error("Invalid PEM formatted message.");return t};function za(r){for(var t=r.name+": ",e=[],n=function(c,l){return" "+l},i=0;i<r.values.length;++i)e.push(r.values[i].replace(/^(\S+\r\n)/,n));t+=e.join(",")+`\r
34
+ `,e};Ey.decode=function(r){for(var t=[],e=/\s*-----BEGIN ([A-Z0-9- ]+)-----\r?\n?([\x21-\x7e\s]+?(?:\r?\n\r?\n))?([:A-Za-z0-9+\/=\s]+?)-----END \1-----/g,n=/([\x21-\x7e]+):\s*([\x21-\x7e\s^:]+)/,i=/\r?\n/,o;o=e.exec(r),!!o;){var s=o[1];s==="NEW CERTIFICATE REQUEST"&&(s="CERTIFICATE REQUEST");var a={type:s,procType:null,contentDomain:null,dekInfo:null,headers:[],body:$a.util.decode64(o[3])};if(t.push(a),!!o[2]){for(var c=o[2].split(i),l=0;o&&l<c.length;){for(var u=c[l].replace(/\s+$/,""),f=l+1;f<c.length;++f){var d=c[f];if(!/\s/.test(d[0]))break;u+=d,l=f}if(o=u.match(n),o){for(var h={name:o[1],values:[]},p=o[2].split(","),m=0;m<p.length;++m)h.values.push(Vb(p[m]));if(a.procType)if(!a.contentDomain&&h.name==="Content-Domain")a.contentDomain=p[0]||"";else if(!a.dekInfo&&h.name==="DEK-Info"){if(h.values.length===0)throw new Error('Invalid PEM formatted message. The "DEK-Info" header must have at least one subfield.');a.dekInfo={algorithm:p[0],parameters:p[1]||null}}else a.headers.push(h);else{if(h.name!=="Proc-Type")throw new Error('Invalid PEM formatted message. The first encapsulated header must be "Proc-Type".');if(h.values.length!==2)throw new Error('Invalid PEM formatted message. The "Proc-Type" header must have two subfields.');a.procType={version:p[0],type:p[1]}}}++l}if(a.procType==="ENCRYPTED"&&!a.dekInfo)throw new Error('Invalid PEM formatted message. The "DEK-Info" header must be present if "Proc-Type" is "ENCRYPTED".')}}if(t.length===0)throw new Error("Invalid PEM formatted message.");return t};function Ha(r){for(var t=r.name+": ",e=[],n=function(c,l){return" "+l},i=0;i<r.values.length;++i)e.push(r.values[i].replace(/^(\S+\r\n)/,n));t+=e.join(",")+`\r
35
35
  `;for(var o=0,s=-1,i=0;i<t.length;++i,++o)if(o>65&&s!==-1){var a=t[s];a===","?(++s,t=t.substr(0,s)+`\r
36
36
  `+t.substr(s)):t=t.substr(0,s)+`\r
37
- `+a+t.substr(s+1),o=i-s-1,s=-1,++i}else(t[i]===" "||t[i]===" "||t[i]===",")&&(s=i);return t}function Gb(r){return r.replace(/^\s+/,"")}});var Ly=T((c8,Py)=>{var yr=yt();Qn();zt();var Ty=Py.exports=yr.sha256=yr.sha256||{};yr.md.sha256=yr.md.algorithms.sha256=Ty;Ty.create=function(){Cy||Yb();var r=null,t=yr.util.createBuffer(),e=new Array(64),n={algorithm:"sha256",blockLength:64,digestLength:32,messageLength:0,fullMessageLength:null,messageLengthSize:8};return n.start=function(){n.messageLength=0,n.fullMessageLength=n.messageLength64=[];for(var i=n.messageLengthSize/4,o=0;o<i;++o)n.fullMessageLength.push(0);return t=yr.util.createBuffer(),r={h0:1779033703,h1:3144134277,h2:1013904242,h3:2773480762,h4:1359893119,h5:2600822924,h6:528734635,h7:1541459225},n},n.start(),n.update=function(i,o){o==="utf8"&&(i=yr.util.encodeUtf8(i));var s=i.length;n.messageLength+=s,s=[s/4294967296>>>0,s>>>0];for(var a=n.fullMessageLength.length-1;a>=0;--a)n.fullMessageLength[a]+=s[1],s[1]=s[0]+(n.fullMessageLength[a]/4294967296>>>0),n.fullMessageLength[a]=n.fullMessageLength[a]>>>0,s[0]=s[1]/4294967296>>>0;return t.putBytes(i),Iy(r,e,t),(t.read>2048||t.length()===0)&&t.compact(),n},n.digest=function(){var i=yr.util.createBuffer();i.putBytes(t.bytes());var o=n.fullMessageLength[n.fullMessageLength.length-1]+n.messageLengthSize,s=o&n.blockLength-1;i.putBytes(af.substr(0,n.blockLength-s));for(var a,c,l=n.fullMessageLength[0]*8,u=0;u<n.fullMessageLength.length-1;++u)a=n.fullMessageLength[u+1]*8,c=a/4294967296>>>0,l+=c,i.putInt32(l>>>0),l=a>>>0;i.putInt32(l);var f={h0:r.h0,h1:r.h1,h2:r.h2,h3:r.h3,h4:r.h4,h5:r.h5,h6:r.h6,h7:r.h7};Iy(f,e,i);var d=yr.util.createBuffer();return d.putInt32(f.h0),d.putInt32(f.h1),d.putInt32(f.h2),d.putInt32(f.h3),d.putInt32(f.h4),d.putInt32(f.h5),d.putInt32(f.h6),d.putInt32(f.h7),d},n};var af=null,Cy=!1,Dy=null;function Yb(){af=String.fromCharCode(128),af+=yr.util.fillString(String.fromCharCode(0),64),Dy=[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],Cy=!0}function Iy(r,t,e){for(var n,i,o,s,a,c,l,u,f,d,h,p,m,y,g,E=e.length();E>=64;){for(l=0;l<16;++l)t[l]=e.getInt32();for(;l<64;++l)n=t[l-2],n=(n>>>17|n<<15)^(n>>>19|n<<13)^n>>>10,i=t[l-15],i=(i>>>7|i<<25)^(i>>>18|i<<14)^i>>>3,t[l]=n+t[l-7]+i+t[l-16]|0;for(u=r.h0,f=r.h1,d=r.h2,h=r.h3,p=r.h4,m=r.h5,y=r.h6,g=r.h7,l=0;l<64;++l)s=(p>>>6|p<<26)^(p>>>11|p<<21)^(p>>>25|p<<7),a=y^p&(m^y),o=(u>>>2|u<<30)^(u>>>13|u<<19)^(u>>>22|u<<10),c=u&f|d&(u^f),n=g+s+a+Dy[l]+t[l],i=o+c,g=y,y=m,m=p,p=h+n>>>0,h=d,d=f,f=u,u=n+i>>>0;r.h0=r.h0+u|0,r.h1=r.h1+f|0,r.h2=r.h2+d|0,r.h3=r.h3+h|0,r.h4=r.h4+p|0,r.h5=r.h5+m|0,r.h6=r.h6+y|0,r.h7=r.h7+g|0,E-=64}}});var Ny=T((l8,By)=>{var gr=yt();zt();var Ya=null;gr.util.isNodejs&&!gr.options.usePureJavaScript&&!process.versions["node-webkit"]&&(Ya=Vn());var Wb=By.exports=gr.prng=gr.prng||{};Wb.create=function(r){for(var t={plugin:r,key:null,seed:null,time:null,reseeds:0,generated:0,keyBytes:""},e=r.md,n=new Array(32),i=0;i<32;++i)n[i]=e.create();t.pools=n,t.pool=0,t.generate=function(l,u){if(!u)return t.generateSync(l);var f=t.plugin.cipher,d=t.plugin.increment,h=t.plugin.formatKey,p=t.plugin.formatSeed,m=gr.util.createBuffer();t.key=null,y();function y(g){if(g)return u(g);if(m.length()>=l)return u(null,m.getBytes(l));if(t.generated>1048575&&(t.key=null),t.key===null)return gr.util.nextTick(function(){o(y)});var E=f(t.key,t.seed);t.generated+=E.length,m.putBytes(E),t.key=h(f(t.key,d(t.seed))),t.seed=p(f(t.key,t.seed)),gr.util.setImmediate(y)}},t.generateSync=function(l){var u=t.plugin.cipher,f=t.plugin.increment,d=t.plugin.formatKey,h=t.plugin.formatSeed;t.key=null;for(var p=gr.util.createBuffer();p.length()<l;){t.generated>1048575&&(t.key=null),t.key===null&&s();var m=u(t.key,t.seed);t.generated+=m.length,p.putBytes(m),t.key=d(u(t.key,f(t.seed))),t.seed=h(u(t.key,t.seed))}return p.getBytes(l)};function o(l){if(t.pools[0].messageLength>=32)return a(),l();var u=32-t.pools[0].messageLength<<5;t.seedFile(u,function(f,d){if(f)return l(f);t.collect(d),a(),l()})}function s(){if(t.pools[0].messageLength>=32)return a();var l=32-t.pools[0].messageLength<<5;t.collect(t.seedFileSync(l)),a()}function a(){t.reseeds=t.reseeds===4294967295?0:t.reseeds+1;var l=t.plugin.md.create();l.update(t.keyBytes);for(var u=1,f=0;f<32;++f)t.reseeds%u===0&&(l.update(t.pools[f].digest().getBytes()),t.pools[f].start()),u=u<<1;t.keyBytes=l.digest().getBytes(),l.start(),l.update(t.keyBytes);var d=l.digest().getBytes();t.key=t.plugin.formatKey(t.keyBytes),t.seed=t.plugin.formatSeed(d),t.generated=0}function c(l){var u=null,f=gr.util.globalScope,d=f.crypto||f.msCrypto;d&&d.getRandomValues&&(u=function(C){return d.getRandomValues(C)});var h=gr.util.createBuffer();if(u)for(;h.length()<l;){var p=Math.max(1,Math.min(l-h.length(),65536)/4),m=new Uint32Array(Math.floor(p));try{u(m);for(var y=0;y<m.length;++y)h.putInt32(m[y])}catch(C){if(!(typeof QuotaExceededError<"u"&&C instanceof QuotaExceededError))throw C}}if(h.length()<l)for(var g,E,_,k=Math.floor(Math.random()*65536);h.length()<l;){E=16807*(k&65535),g=16807*(k>>16),E+=(g&32767)<<16,E+=g>>15,E=(E&2147483647)+(E>>31),k=E&4294967295;for(var y=0;y<3;++y)_=k>>>(y<<3),_^=Math.floor(Math.random()*256),h.putByte(_&255)}return h.getBytes(l)}return Ya?(t.seedFile=function(l,u){Ya.randomBytes(l,function(f,d){if(f)return u(f);u(null,d.toString())})},t.seedFileSync=function(l){return Ya.randomBytes(l).toString()}):(t.seedFile=function(l,u){try{u(null,c(l))}catch(f){u(f)}},t.seedFileSync=c),t.collect=function(l){for(var u=l.length,f=0;f<u;++f)t.pools[t.pool].update(l.substr(f,1)),t.pool=t.pool===31?0:t.pool+1},t.collectInt=function(l,u){for(var f="",d=0;d<u;d+=8)f+=String.fromCharCode(l>>d&255);t.collect(f)},t.registerWorker=function(l){if(l===self)t.seedFile=function(f,d){function h(p){var m=p.data;m.forge&&m.forge.prng&&(self.removeEventListener("message",h),d(m.forge.prng.err,m.forge.prng.bytes))}self.addEventListener("message",h),self.postMessage({forge:{prng:{needed:f}}})};else{var u=function(f){var d=f.data;d.forge&&d.forge.prng&&t.seedFile(d.forge.prng.needed,function(h,p){l.postMessage({forge:{prng:{err:h,bytes:p}}})})};l.addEventListener("message",u)}},t}});var Vo=T((u8,cf)=>{var se=yt();qa();Ly();Ny();zt();(function(){if(se.random&&se.random.getBytes){cf.exports=se.random;return}(function(r){var t={},e=new Array(4),n=se.util.createBuffer();t.formatKey=function(f){var d=se.util.createBuffer(f);return f=new Array(4),f[0]=d.getInt32(),f[1]=d.getInt32(),f[2]=d.getInt32(),f[3]=d.getInt32(),se.aes._expandKey(f,!1)},t.formatSeed=function(f){var d=se.util.createBuffer(f);return f=new Array(4),f[0]=d.getInt32(),f[1]=d.getInt32(),f[2]=d.getInt32(),f[3]=d.getInt32(),f},t.cipher=function(f,d){return se.aes._updateBlock(f,d,e,!1),n.putInt32(e[0]),n.putInt32(e[1]),n.putInt32(e[2]),n.putInt32(e[3]),n.getBytes()},t.increment=function(f){return++f[3],f},t.md=se.md.sha256;function i(){var f=se.prng.create(t);return f.getBytes=function(d,h){return f.generate(d,h)},f.getBytesSync=function(d){return f.generate(d)},f}var o=i(),s=null,a=se.util.globalScope,c=a.crypto||a.msCrypto;if(c&&c.getRandomValues&&(s=function(f){return c.getRandomValues(f)}),se.options.usePureJavaScript||!se.util.isNodejs&&!s){if(typeof window>"u"||window.document,o.collectInt(+new Date,32),typeof navigator<"u"){var l="";for(var u in navigator)try{typeof navigator[u]=="string"&&(l+=navigator[u])}catch{}o.collect(l),l=null}r&&(r().mousemove(function(f){o.collectInt(f.clientX,16),o.collectInt(f.clientY,16)}),r().keypress(function(f){o.collectInt(f.charCode,8)}))}if(!se.random)se.random=o;else for(var u in o)se.random[u]=o[u];se.random.createInstance=i,cf.exports=se.random})(typeof jQuery<"u"?jQuery:null)})()});var Uy=T((f8,My)=>{var ge=yt();zt();var lf=[217,120,249,196,25,221,181,237,40,233,253,121,74,160,216,157,198,126,55,131,43,118,83,142,98,76,100,136,68,139,251,162,23,154,89,245,135,179,79,19,97,69,109,141,9,129,125,50,189,143,64,235,134,183,123,11,240,149,33,34,92,107,78,130,84,214,101,147,206,96,178,28,115,86,192,20,167,140,241,220,18,117,202,31,59,190,228,209,66,61,212,48,163,60,182,38,111,191,14,218,70,105,7,87,39,242,29,155,188,148,67,3,248,17,199,246,144,239,62,231,6,195,213,47,200,102,30,215,8,232,234,222,128,82,238,247,132,170,114,172,53,77,106,42,150,26,210,113,90,21,73,116,75,159,208,94,4,24,164,236,194,224,65,110,15,81,203,204,36,145,175,80,161,244,112,57,153,124,58,133,35,184,180,122,252,2,54,91,37,85,151,49,45,93,250,152,227,138,146,174,5,223,41,16,103,108,186,201,211,0,230,207,225,158,168,44,99,22,1,63,88,226,137,169,13,56,52,27,171,51,255,176,187,72,12,95,185,177,205,46,197,243,219,71,229,165,156,119,10,166,32,104,254,127,193,173],Oy=[1,2,3,5],Qb=function(r,t){return r<<t&65535|(r&65535)>>16-t},Xb=function(r,t){return(r&65535)>>t|r<<16-t&65535};My.exports=ge.rc2=ge.rc2||{};ge.rc2.expandKey=function(r,t){typeof r=="string"&&(r=ge.util.createBuffer(r)),t=t||128;var e=r,n=r.length(),i=t,o=Math.ceil(i/8),s=255>>(i&7),a;for(a=n;a<128;a++)e.putByte(lf[e.at(a-1)+e.at(a-n)&255]);for(e.setAt(128-o,lf[e.at(128-o)&s]),a=127-o;a>=0;a--)e.setAt(a,lf[e.at(a+1)^e.at(a+o)]);return e};var ky=function(r,t,e){var n=!1,i=null,o=null,s=null,a,c,l,u,f=[];for(r=ge.rc2.expandKey(r,t),l=0;l<64;l++)f.push(r.getInt16Le());e?(a=function(p){for(l=0;l<4;l++)p[l]+=f[u]+(p[(l+3)%4]&p[(l+2)%4])+(~p[(l+3)%4]&p[(l+1)%4]),p[l]=Qb(p[l],Oy[l]),u++},c=function(p){for(l=0;l<4;l++)p[l]+=f[p[(l+3)%4]&63]}):(a=function(p){for(l=3;l>=0;l--)p[l]=Xb(p[l],Oy[l]),p[l]-=f[u]+(p[(l+3)%4]&p[(l+2)%4])+(~p[(l+3)%4]&p[(l+1)%4]),u--},c=function(p){for(l=3;l>=0;l--)p[l]-=f[p[(l+3)%4]&63]});var d=function(p){var m=[];for(l=0;l<4;l++){var y=i.getInt16Le();s!==null&&(e?y^=s.getInt16Le():s.putInt16Le(y)),m.push(y&65535)}u=e?0:63;for(var g=0;g<p.length;g++)for(var E=0;E<p[g][0];E++)p[g][1](m);for(l=0;l<4;l++)s!==null&&(e?s.putInt16Le(m[l]):m[l]^=s.getInt16Le()),o.putInt16Le(m[l])},h=null;return h={start:function(p,m){p&&typeof p=="string"&&(p=ge.util.createBuffer(p)),n=!1,i=ge.util.createBuffer(),o=m||new ge.util.createBuffer,s=p,h.output=o},update:function(p){for(n||i.putBuffer(p);i.length()>=8;)d([[5,a],[1,c],[6,a],[1,c],[5,a]])},finish:function(p){var m=!0;if(e)if(p)m=p(8,i,!e);else{var y=i.length()===8?8:8-i.length();i.fillWithByte(y,y)}if(m&&(n=!0,h.update()),!e&&(m=i.length()===0,m))if(p)m=p(8,o,!e);else{var g=o.length(),E=o.at(g-1);E>g?m=!1:o.truncate(E)}return m}},h};ge.rc2.startEncrypting=function(r,t,e){var n=ge.rc2.createEncryptionCipher(r,128);return n.start(t,e),n};ge.rc2.createEncryptionCipher=function(r,t){return ky(r,t,!0)};ge.rc2.startDecrypting=function(r,t,e){var n=ge.rc2.createDecryptionCipher(r,128);return n.start(t,e),n};ge.rc2.createDecryptionCipher=function(r,t){return ky(r,t,!1)}});var Xa=T((h8,Gy)=>{var uf=yt();Gy.exports=uf.jsbn=uf.jsbn||{};var qr,Zb=0xdeadbeefcafe,Fy=(Zb&16777215)==15715070;function S(r,t,e){this.data=[],r!=null&&(typeof r=="number"?this.fromNumber(r,t,e):t==null&&typeof r!="string"?this.fromString(r,256):this.fromString(r,t))}uf.jsbn.BigInteger=S;function lt(){return new S(null)}function Jb(r,t,e,n,i,o){for(;--o>=0;){var s=t*this.data[r++]+e.data[n]+i;i=Math.floor(s/67108864),e.data[n++]=s&67108863}return i}function jb(r,t,e,n,i,o){for(var s=t&32767,a=t>>15;--o>=0;){var c=this.data[r]&32767,l=this.data[r++]>>15,u=a*c+l*s;c=s*c+((u&32767)<<15)+e.data[n]+(i&1073741823),i=(c>>>30)+(u>>>15)+a*l+(i>>>30),e.data[n++]=c&1073741823}return i}function Ky(r,t,e,n,i,o){for(var s=t&16383,a=t>>14;--o>=0;){var c=this.data[r]&16383,l=this.data[r++]>>14,u=a*c+l*s;c=s*c+((u&16383)<<14)+e.data[n]+i,i=(c>>28)+(u>>14)+a*l,e.data[n++]=c&268435455}return i}typeof navigator>"u"?(S.prototype.am=Ky,qr=28):Fy&&navigator.appName=="Microsoft Internet Explorer"?(S.prototype.am=jb,qr=30):Fy&&navigator.appName!="Netscape"?(S.prototype.am=Jb,qr=26):(S.prototype.am=Ky,qr=28);S.prototype.DB=qr;S.prototype.DM=(1<<qr)-1;S.prototype.DV=1<<qr;var ff=52;S.prototype.FV=Math.pow(2,ff);S.prototype.F1=ff-qr;S.prototype.F2=2*qr-ff;var t_="0123456789abcdefghijklmnopqrstuvwxyz",Wa=new Array,Hi,Ke;Hi="0".charCodeAt(0);for(Ke=0;Ke<=9;++Ke)Wa[Hi++]=Ke;Hi="a".charCodeAt(0);for(Ke=10;Ke<36;++Ke)Wa[Hi++]=Ke;Hi="A".charCodeAt(0);for(Ke=10;Ke<36;++Ke)Wa[Hi++]=Ke;function Vy(r){return t_.charAt(r)}function qy(r,t){var e=Wa[r.charCodeAt(t)];return e??-1}function e_(r){for(var t=this.t-1;t>=0;--t)r.data[t]=this.data[t];r.t=this.t,r.s=this.s}function r_(r){this.t=1,this.s=r<0?-1:0,r>0?this.data[0]=r:r<-1?this.data[0]=r+this.DV:this.t=0}function pn(r){var t=lt();return t.fromInt(r),t}function n_(r,t){var e;if(t==16)e=4;else if(t==8)e=3;else if(t==256)e=8;else if(t==2)e=1;else if(t==32)e=5;else if(t==4)e=2;else{this.fromRadix(r,t);return}this.t=0,this.s=0;for(var n=r.length,i=!1,o=0;--n>=0;){var s=e==8?r[n]&255:qy(r,n);if(s<0){r.charAt(n)=="-"&&(i=!0);continue}i=!1,o==0?this.data[this.t++]=s:o+e>this.DB?(this.data[this.t-1]|=(s&(1<<this.DB-o)-1)<<o,this.data[this.t++]=s>>this.DB-o):this.data[this.t-1]|=s<<o,o+=e,o>=this.DB&&(o-=this.DB)}e==8&&r[0]&128&&(this.s=-1,o>0&&(this.data[this.t-1]|=(1<<this.DB-o)-1<<o)),this.clamp(),i&&S.ZERO.subTo(this,this)}function i_(){for(var r=this.s&this.DM;this.t>0&&this.data[this.t-1]==r;)--this.t}function o_(r){if(this.s<0)return"-"+this.negate().toString(r);var t;if(r==16)t=4;else if(r==8)t=3;else if(r==2)t=1;else if(r==32)t=5;else if(r==4)t=2;else return this.toRadix(r);var e=(1<<t)-1,n,i=!1,o="",s=this.t,a=this.DB-s*this.DB%t;if(s-- >0)for(a<this.DB&&(n=this.data[s]>>a)>0&&(i=!0,o=Vy(n));s>=0;)a<t?(n=(this.data[s]&(1<<a)-1)<<t-a,n|=this.data[--s]>>(a+=this.DB-t)):(n=this.data[s]>>(a-=t)&e,a<=0&&(a+=this.DB,--s)),n>0&&(i=!0),i&&(o+=Vy(n));return i?o:"0"}function s_(){var r=lt();return S.ZERO.subTo(this,r),r}function a_(){return this.s<0?this.negate():this}function c_(r){var t=this.s-r.s;if(t!=0)return t;var e=this.t;if(t=e-r.t,t!=0)return this.s<0?-t:t;for(;--e>=0;)if((t=this.data[e]-r.data[e])!=0)return t;return 0}function Qa(r){var t=1,e;return(e=r>>>16)!=0&&(r=e,t+=16),(e=r>>8)!=0&&(r=e,t+=8),(e=r>>4)!=0&&(r=e,t+=4),(e=r>>2)!=0&&(r=e,t+=2),(e=r>>1)!=0&&(r=e,t+=1),t}function l_(){return this.t<=0?0:this.DB*(this.t-1)+Qa(this.data[this.t-1]^this.s&this.DM)}function u_(r,t){var e;for(e=this.t-1;e>=0;--e)t.data[e+r]=this.data[e];for(e=r-1;e>=0;--e)t.data[e]=0;t.t=this.t+r,t.s=this.s}function f_(r,t){for(var e=r;e<this.t;++e)t.data[e-r]=this.data[e];t.t=Math.max(this.t-r,0),t.s=this.s}function h_(r,t){var e=r%this.DB,n=this.DB-e,i=(1<<n)-1,o=Math.floor(r/this.DB),s=this.s<<e&this.DM,a;for(a=this.t-1;a>=0;--a)t.data[a+o+1]=this.data[a]>>n|s,s=(this.data[a]&i)<<e;for(a=o-1;a>=0;--a)t.data[a]=0;t.data[o]=s,t.t=this.t+o+1,t.s=this.s,t.clamp()}function d_(r,t){t.s=this.s;var e=Math.floor(r/this.DB);if(e>=this.t){t.t=0;return}var n=r%this.DB,i=this.DB-n,o=(1<<n)-1;t.data[0]=this.data[e]>>n;for(var s=e+1;s<this.t;++s)t.data[s-e-1]|=(this.data[s]&o)<<i,t.data[s-e]=this.data[s]>>n;n>0&&(t.data[this.t-e-1]|=(this.s&o)<<i),t.t=this.t-e,t.clamp()}function p_(r,t){for(var e=0,n=0,i=Math.min(r.t,this.t);e<i;)n+=this.data[e]-r.data[e],t.data[e++]=n&this.DM,n>>=this.DB;if(r.t<this.t){for(n-=r.s;e<this.t;)n+=this.data[e],t.data[e++]=n&this.DM,n>>=this.DB;n+=this.s}else{for(n+=this.s;e<r.t;)n-=r.data[e],t.data[e++]=n&this.DM,n>>=this.DB;n-=r.s}t.s=n<0?-1:0,n<-1?t.data[e++]=this.DV+n:n>0&&(t.data[e++]=n),t.t=e,t.clamp()}function m_(r,t){var e=this.abs(),n=r.abs(),i=e.t;for(t.t=i+n.t;--i>=0;)t.data[i]=0;for(i=0;i<n.t;++i)t.data[i+e.t]=e.am(0,n.data[i],t,i,0,e.t);t.s=0,t.clamp(),this.s!=r.s&&S.ZERO.subTo(t,t)}function y_(r){for(var t=this.abs(),e=r.t=2*t.t;--e>=0;)r.data[e]=0;for(e=0;e<t.t-1;++e){var n=t.am(e,t.data[e],r,2*e,0,1);(r.data[e+t.t]+=t.am(e+1,2*t.data[e],r,2*e+1,n,t.t-e-1))>=t.DV&&(r.data[e+t.t]-=t.DV,r.data[e+t.t+1]=1)}r.t>0&&(r.data[r.t-1]+=t.am(e,t.data[e],r,2*e,0,1)),r.s=0,r.clamp()}function g_(r,t,e){var n=r.abs();if(!(n.t<=0)){var i=this.abs();if(i.t<n.t){t?.fromInt(0),e!=null&&this.copyTo(e);return}e==null&&(e=lt());var o=lt(),s=this.s,a=r.s,c=this.DB-Qa(n.data[n.t-1]);c>0?(n.lShiftTo(c,o),i.lShiftTo(c,e)):(n.copyTo(o),i.copyTo(e));var l=o.t,u=o.data[l-1];if(u!=0){var f=u*(1<<this.F1)+(l>1?o.data[l-2]>>this.F2:0),d=this.FV/f,h=(1<<this.F1)/f,p=1<<this.F2,m=e.t,y=m-l,g=t??lt();for(o.dlShiftTo(y,g),e.compareTo(g)>=0&&(e.data[e.t++]=1,e.subTo(g,e)),S.ONE.dlShiftTo(l,g),g.subTo(o,o);o.t<l;)o.data[o.t++]=0;for(;--y>=0;){var E=e.data[--m]==u?this.DM:Math.floor(e.data[m]*d+(e.data[m-1]+p)*h);if((e.data[m]+=o.am(0,E,e,y,0,l))<E)for(o.dlShiftTo(y,g),e.subTo(g,e);e.data[m]<--E;)e.subTo(g,e)}t!=null&&(e.drShiftTo(l,t),s!=a&&S.ZERO.subTo(t,t)),e.t=l,e.clamp(),c>0&&e.rShiftTo(c,e),s<0&&S.ZERO.subTo(e,e)}}}function w_(r){var t=lt();return this.abs().divRemTo(r,null,t),this.s<0&&t.compareTo(S.ZERO)>0&&r.subTo(t,t),t}function Xn(r){this.m=r}function E_(r){return r.s<0||r.compareTo(this.m)>=0?r.mod(this.m):r}function x_(r){return r}function v_(r){r.divRemTo(this.m,null,r)}function b_(r,t,e){r.multiplyTo(t,e),this.reduce(e)}function __(r,t){r.squareTo(t),this.reduce(t)}Xn.prototype.convert=E_;Xn.prototype.revert=x_;Xn.prototype.reduce=v_;Xn.prototype.mulTo=b_;Xn.prototype.sqrTo=__;function S_(){if(this.t<1)return 0;var r=this.data[0];if(!(r&1))return 0;var t=r&3;return t=t*(2-(r&15)*t)&15,t=t*(2-(r&255)*t)&255,t=t*(2-((r&65535)*t&65535))&65535,t=t*(2-r*t%this.DV)%this.DV,t>0?this.DV-t:-t}function Zn(r){this.m=r,this.mp=r.invDigit(),this.mpl=this.mp&32767,this.mph=this.mp>>15,this.um=(1<<r.DB-15)-1,this.mt2=2*r.t}function A_(r){var t=lt();return r.abs().dlShiftTo(this.m.t,t),t.divRemTo(this.m,null,t),r.s<0&&t.compareTo(S.ZERO)>0&&this.m.subTo(t,t),t}function R_(r){var t=lt();return r.copyTo(t),this.reduce(t),t}function I_(r){for(;r.t<=this.mt2;)r.data[r.t++]=0;for(var t=0;t<this.m.t;++t){var e=r.data[t]&32767,n=e*this.mpl+((e*this.mph+(r.data[t]>>15)*this.mpl&this.um)<<15)&r.DM;for(e=t+this.m.t,r.data[e]+=this.m.am(0,n,r,t,0,this.m.t);r.data[e]>=r.DV;)r.data[e]-=r.DV,r.data[++e]++}r.clamp(),r.drShiftTo(this.m.t,r),r.compareTo(this.m)>=0&&r.subTo(this.m,r)}function T_(r,t){r.squareTo(t),this.reduce(t)}function C_(r,t,e){r.multiplyTo(t,e),this.reduce(e)}Zn.prototype.convert=A_;Zn.prototype.revert=R_;Zn.prototype.reduce=I_;Zn.prototype.mulTo=C_;Zn.prototype.sqrTo=T_;function D_(){return(this.t>0?this.data[0]&1:this.s)==0}function P_(r,t){if(r>4294967295||r<1)return S.ONE;var e=lt(),n=lt(),i=t.convert(this),o=Qa(r)-1;for(i.copyTo(e);--o>=0;)if(t.sqrTo(e,n),(r&1<<o)>0)t.mulTo(n,i,e);else{var s=e;e=n,n=s}return t.revert(e)}function L_(r,t){var e;return r<256||t.isEven()?e=new Xn(t):e=new Zn(t),this.exp(r,e)}S.prototype.copyTo=e_;S.prototype.fromInt=r_;S.prototype.fromString=n_;S.prototype.clamp=i_;S.prototype.dlShiftTo=u_;S.prototype.drShiftTo=f_;S.prototype.lShiftTo=h_;S.prototype.rShiftTo=d_;S.prototype.subTo=p_;S.prototype.multiplyTo=m_;S.prototype.squareTo=y_;S.prototype.divRemTo=g_;S.prototype.invDigit=S_;S.prototype.isEven=D_;S.prototype.exp=P_;S.prototype.toString=o_;S.prototype.negate=s_;S.prototype.abs=a_;S.prototype.compareTo=c_;S.prototype.bitLength=l_;S.prototype.mod=w_;S.prototype.modPowInt=L_;S.ZERO=pn(0);S.ONE=pn(1);function B_(){var r=lt();return this.copyTo(r),r}function N_(){if(this.s<0){if(this.t==1)return this.data[0]-this.DV;if(this.t==0)return-1}else{if(this.t==1)return this.data[0];if(this.t==0)return 0}return(this.data[1]&(1<<32-this.DB)-1)<<this.DB|this.data[0]}function O_(){return this.t==0?this.s:this.data[0]<<24>>24}function k_(){return this.t==0?this.s:this.data[0]<<16>>16}function M_(r){return Math.floor(Math.LN2*this.DB/Math.log(r))}function U_(){return this.s<0?-1:this.t<=0||this.t==1&&this.data[0]<=0?0:1}function F_(r){if(r==null&&(r=10),this.signum()==0||r<2||r>36)return"0";var t=this.chunkSize(r),e=Math.pow(r,t),n=pn(e),i=lt(),o=lt(),s="";for(this.divRemTo(n,i,o);i.signum()>0;)s=(e+o.intValue()).toString(r).substr(1)+s,i.divRemTo(n,i,o);return o.intValue().toString(r)+s}function K_(r,t){this.fromInt(0),t==null&&(t=10);for(var e=this.chunkSize(t),n=Math.pow(t,e),i=!1,o=0,s=0,a=0;a<r.length;++a){var c=qy(r,a);if(c<0){r.charAt(a)=="-"&&this.signum()==0&&(i=!0);continue}s=t*s+c,++o>=e&&(this.dMultiply(n),this.dAddOffset(s,0),o=0,s=0)}o>0&&(this.dMultiply(Math.pow(t,o)),this.dAddOffset(s,0)),i&&S.ZERO.subTo(this,this)}function V_(r,t,e){if(typeof t=="number")if(r<2)this.fromInt(1);else for(this.fromNumber(r,e),this.testBit(r-1)||this.bitwiseTo(S.ONE.shiftLeft(r-1),hf,this),this.isEven()&&this.dAddOffset(1,0);!this.isProbablePrime(t);)this.dAddOffset(2,0),this.bitLength()>r&&this.subTo(S.ONE.shiftLeft(r-1),this);else{var n=new Array,i=r&7;n.length=(r>>3)+1,t.nextBytes(n),i>0?n[0]&=(1<<i)-1:n[0]=0,this.fromString(n,256)}}function q_(){var r=this.t,t=new Array;t[0]=this.s;var e=this.DB-r*this.DB%8,n,i=0;if(r-- >0)for(e<this.DB&&(n=this.data[r]>>e)!=(this.s&this.DM)>>e&&(t[i++]=n|this.s<<this.DB-e);r>=0;)e<8?(n=(this.data[r]&(1<<e)-1)<<8-e,n|=this.data[--r]>>(e+=this.DB-8)):(n=this.data[r]>>(e-=8)&255,e<=0&&(e+=this.DB,--r)),n&128&&(n|=-256),i==0&&(this.s&128)!=(n&128)&&++i,(i>0||n!=this.s)&&(t[i++]=n);return t}function H_(r){return this.compareTo(r)==0}function $_(r){return this.compareTo(r)<0?this:r}function z_(r){return this.compareTo(r)>0?this:r}function G_(r,t,e){var n,i,o=Math.min(r.t,this.t);for(n=0;n<o;++n)e.data[n]=t(this.data[n],r.data[n]);if(r.t<this.t){for(i=r.s&this.DM,n=o;n<this.t;++n)e.data[n]=t(this.data[n],i);e.t=this.t}else{for(i=this.s&this.DM,n=o;n<r.t;++n)e.data[n]=t(i,r.data[n]);e.t=r.t}e.s=t(this.s,r.s),e.clamp()}function Y_(r,t){return r&t}function W_(r){var t=lt();return this.bitwiseTo(r,Y_,t),t}function hf(r,t){return r|t}function Q_(r){var t=lt();return this.bitwiseTo(r,hf,t),t}function Hy(r,t){return r^t}function X_(r){var t=lt();return this.bitwiseTo(r,Hy,t),t}function $y(r,t){return r&~t}function Z_(r){var t=lt();return this.bitwiseTo(r,$y,t),t}function J_(){for(var r=lt(),t=0;t<this.t;++t)r.data[t]=this.DM&~this.data[t];return r.t=this.t,r.s=~this.s,r}function j_(r){var t=lt();return r<0?this.rShiftTo(-r,t):this.lShiftTo(r,t),t}function tS(r){var t=lt();return r<0?this.lShiftTo(-r,t):this.rShiftTo(r,t),t}function eS(r){if(r==0)return-1;var t=0;return r&65535||(r>>=16,t+=16),r&255||(r>>=8,t+=8),r&15||(r>>=4,t+=4),r&3||(r>>=2,t+=2),r&1||++t,t}function rS(){for(var r=0;r<this.t;++r)if(this.data[r]!=0)return r*this.DB+eS(this.data[r]);return this.s<0?this.t*this.DB:-1}function nS(r){for(var t=0;r!=0;)r&=r-1,++t;return t}function iS(){for(var r=0,t=this.s&this.DM,e=0;e<this.t;++e)r+=nS(this.data[e]^t);return r}function oS(r){var t=Math.floor(r/this.DB);return t>=this.t?this.s!=0:(this.data[t]&1<<r%this.DB)!=0}function sS(r,t){var e=S.ONE.shiftLeft(r);return this.bitwiseTo(e,t,e),e}function aS(r){return this.changeBit(r,hf)}function cS(r){return this.changeBit(r,$y)}function lS(r){return this.changeBit(r,Hy)}function uS(r,t){for(var e=0,n=0,i=Math.min(r.t,this.t);e<i;)n+=this.data[e]+r.data[e],t.data[e++]=n&this.DM,n>>=this.DB;if(r.t<this.t){for(n+=r.s;e<this.t;)n+=this.data[e],t.data[e++]=n&this.DM,n>>=this.DB;n+=this.s}else{for(n+=this.s;e<r.t;)n+=r.data[e],t.data[e++]=n&this.DM,n>>=this.DB;n+=r.s}t.s=n<0?-1:0,n>0?t.data[e++]=n:n<-1&&(t.data[e++]=this.DV+n),t.t=e,t.clamp()}function fS(r){var t=lt();return this.addTo(r,t),t}function hS(r){var t=lt();return this.subTo(r,t),t}function dS(r){var t=lt();return this.multiplyTo(r,t),t}function pS(r){var t=lt();return this.divRemTo(r,t,null),t}function mS(r){var t=lt();return this.divRemTo(r,null,t),t}function yS(r){var t=lt(),e=lt();return this.divRemTo(r,t,e),new Array(t,e)}function gS(r){this.data[this.t]=this.am(0,r-1,this,0,0,this.t),++this.t,this.clamp()}function wS(r,t){if(r!=0){for(;this.t<=t;)this.data[this.t++]=0;for(this.data[t]+=r;this.data[t]>=this.DV;)this.data[t]-=this.DV,++t>=this.t&&(this.data[this.t++]=0),++this.data[t]}}function qo(){}function zy(r){return r}function ES(r,t,e){r.multiplyTo(t,e)}function xS(r,t){r.squareTo(t)}qo.prototype.convert=zy;qo.prototype.revert=zy;qo.prototype.mulTo=ES;qo.prototype.sqrTo=xS;function vS(r){return this.exp(r,new qo)}function bS(r,t,e){var n=Math.min(this.t+r.t,t);for(e.s=0,e.t=n;n>0;)e.data[--n]=0;var i;for(i=e.t-this.t;n<i;++n)e.data[n+this.t]=this.am(0,r.data[n],e,n,0,this.t);for(i=Math.min(r.t,t);n<i;++n)this.am(0,r.data[n],e,n,0,t-n);e.clamp()}function _S(r,t,e){--t;var n=e.t=this.t+r.t-t;for(e.s=0;--n>=0;)e.data[n]=0;for(n=Math.max(t-this.t,0);n<r.t;++n)e.data[this.t+n-t]=this.am(t-n,r.data[n],e,0,0,this.t+n-t);e.clamp(),e.drShiftTo(1,e)}function $i(r){this.r2=lt(),this.q3=lt(),S.ONE.dlShiftTo(2*r.t,this.r2),this.mu=this.r2.divide(r),this.m=r}function SS(r){if(r.s<0||r.t>2*this.m.t)return r.mod(this.m);if(r.compareTo(this.m)<0)return r;var t=lt();return r.copyTo(t),this.reduce(t),t}function AS(r){return r}function RS(r){for(r.drShiftTo(this.m.t-1,this.r2),r.t>this.m.t+1&&(r.t=this.m.t+1,r.clamp()),this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3),this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);r.compareTo(this.r2)<0;)r.dAddOffset(1,this.m.t+1);for(r.subTo(this.r2,r);r.compareTo(this.m)>=0;)r.subTo(this.m,r)}function IS(r,t){r.squareTo(t),this.reduce(t)}function TS(r,t,e){r.multiplyTo(t,e),this.reduce(e)}$i.prototype.convert=SS;$i.prototype.revert=AS;$i.prototype.reduce=RS;$i.prototype.mulTo=TS;$i.prototype.sqrTo=IS;function CS(r,t){var e=r.bitLength(),n,i=pn(1),o;if(e<=0)return i;e<18?n=1:e<48?n=3:e<144?n=4:e<768?n=5:n=6,e<8?o=new Xn(t):t.isEven()?o=new $i(t):o=new Zn(t);var s=new Array,a=3,c=n-1,l=(1<<n)-1;if(s[1]=o.convert(this),n>1){var u=lt();for(o.sqrTo(s[1],u);a<=l;)s[a]=lt(),o.mulTo(u,s[a-2],s[a]),a+=2}var f=r.t-1,d,h=!0,p=lt(),m;for(e=Qa(r.data[f])-1;f>=0;){for(e>=c?d=r.data[f]>>e-c&l:(d=(r.data[f]&(1<<e+1)-1)<<c-e,f>0&&(d|=r.data[f-1]>>this.DB+e-c)),a=n;!(d&1);)d>>=1,--a;if((e-=a)<0&&(e+=this.DB,--f),h)s[d].copyTo(i),h=!1;else{for(;a>1;)o.sqrTo(i,p),o.sqrTo(p,i),a-=2;a>0?o.sqrTo(i,p):(m=i,i=p,p=m),o.mulTo(p,s[d],i)}for(;f>=0&&!(r.data[f]&1<<e);)o.sqrTo(i,p),m=i,i=p,p=m,--e<0&&(e=this.DB-1,--f)}return o.revert(i)}function DS(r){var t=this.s<0?this.negate():this.clone(),e=r.s<0?r.negate():r.clone();if(t.compareTo(e)<0){var n=t;t=e,e=n}var i=t.getLowestSetBit(),o=e.getLowestSetBit();if(o<0)return t;for(i<o&&(o=i),o>0&&(t.rShiftTo(o,t),e.rShiftTo(o,e));t.signum()>0;)(i=t.getLowestSetBit())>0&&t.rShiftTo(i,t),(i=e.getLowestSetBit())>0&&e.rShiftTo(i,e),t.compareTo(e)>=0?(t.subTo(e,t),t.rShiftTo(1,t)):(e.subTo(t,e),e.rShiftTo(1,e));return o>0&&e.lShiftTo(o,e),e}function PS(r){if(r<=0)return 0;var t=this.DV%r,e=this.s<0?r-1:0;if(this.t>0)if(t==0)e=this.data[0]%r;else for(var n=this.t-1;n>=0;--n)e=(t*e+this.data[n])%r;return e}function LS(r){var t=r.isEven();if(this.isEven()&&t||r.signum()==0)return S.ZERO;for(var e=r.clone(),n=this.clone(),i=pn(1),o=pn(0),s=pn(0),a=pn(1);e.signum()!=0;){for(;e.isEven();)e.rShiftTo(1,e),t?((!i.isEven()||!o.isEven())&&(i.addTo(this,i),o.subTo(r,o)),i.rShiftTo(1,i)):o.isEven()||o.subTo(r,o),o.rShiftTo(1,o);for(;n.isEven();)n.rShiftTo(1,n),t?((!s.isEven()||!a.isEven())&&(s.addTo(this,s),a.subTo(r,a)),s.rShiftTo(1,s)):a.isEven()||a.subTo(r,a),a.rShiftTo(1,a);e.compareTo(n)>=0?(e.subTo(n,e),t&&i.subTo(s,i),o.subTo(a,o)):(n.subTo(e,n),t&&s.subTo(i,s),a.subTo(o,a))}if(n.compareTo(S.ONE)!=0)return S.ZERO;if(a.compareTo(r)>=0)return a.subtract(r);if(a.signum()<0)a.addTo(r,a);else return a;return a.signum()<0?a.add(r):a}var je=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509],BS=(1<<26)/je[je.length-1];function NS(r){var t,e=this.abs();if(e.t==1&&e.data[0]<=je[je.length-1]){for(t=0;t<je.length;++t)if(e.data[0]==je[t])return!0;return!1}if(e.isEven())return!1;for(t=1;t<je.length;){for(var n=je[t],i=t+1;i<je.length&&n<BS;)n*=je[i++];for(n=e.modInt(n);t<i;)if(n%je[t++]==0)return!1}return e.millerRabin(r)}function OS(r){var t=this.subtract(S.ONE),e=t.getLowestSetBit();if(e<=0)return!1;for(var n=t.shiftRight(e),i=kS(),o,s=0;s<r;++s){do o=new S(this.bitLength(),i);while(o.compareTo(S.ONE)<=0||o.compareTo(t)>=0);var a=o.modPow(n,this);if(a.compareTo(S.ONE)!=0&&a.compareTo(t)!=0){for(var c=1;c++<e&&a.compareTo(t)!=0;)if(a=a.modPowInt(2,this),a.compareTo(S.ONE)==0)return!1;if(a.compareTo(t)!=0)return!1}}return!0}function kS(){return{nextBytes:function(r){for(var t=0;t<r.length;++t)r[t]=Math.floor(Math.random()*256)}}}S.prototype.chunkSize=M_;S.prototype.toRadix=F_;S.prototype.fromRadix=K_;S.prototype.fromNumber=V_;S.prototype.bitwiseTo=G_;S.prototype.changeBit=sS;S.prototype.addTo=uS;S.prototype.dMultiply=gS;S.prototype.dAddOffset=wS;S.prototype.multiplyLowerTo=bS;S.prototype.multiplyUpperTo=_S;S.prototype.modInt=PS;S.prototype.millerRabin=OS;S.prototype.clone=B_;S.prototype.intValue=N_;S.prototype.byteValue=O_;S.prototype.shortValue=k_;S.prototype.signum=U_;S.prototype.toByteArray=q_;S.prototype.equals=H_;S.prototype.min=$_;S.prototype.max=z_;S.prototype.and=W_;S.prototype.or=Q_;S.prototype.xor=X_;S.prototype.andNot=Z_;S.prototype.not=J_;S.prototype.shiftLeft=j_;S.prototype.shiftRight=tS;S.prototype.getLowestSetBit=rS;S.prototype.bitCount=iS;S.prototype.testBit=oS;S.prototype.setBit=aS;S.prototype.clearBit=cS;S.prototype.flipBit=lS;S.prototype.add=fS;S.prototype.subtract=hS;S.prototype.multiply=dS;S.prototype.divide=pS;S.prototype.remainder=mS;S.prototype.divideAndRemainder=yS;S.prototype.modPow=CS;S.prototype.modInverse=LS;S.prototype.pow=vS;S.prototype.gcd=DS;S.prototype.isProbablePrime=NS});var Zy=T((d8,Xy)=>{var wr=yt();Qn();zt();var Wy=Xy.exports=wr.sha1=wr.sha1||{};wr.md.sha1=wr.md.algorithms.sha1=Wy;Wy.create=function(){Qy||MS();var r=null,t=wr.util.createBuffer(),e=new Array(80),n={algorithm:"sha1",blockLength:64,digestLength:20,messageLength:0,fullMessageLength:null,messageLengthSize:8};return n.start=function(){n.messageLength=0,n.fullMessageLength=n.messageLength64=[];for(var i=n.messageLengthSize/4,o=0;o<i;++o)n.fullMessageLength.push(0);return t=wr.util.createBuffer(),r={h0:1732584193,h1:4023233417,h2:2562383102,h3:271733878,h4:3285377520},n},n.start(),n.update=function(i,o){o==="utf8"&&(i=wr.util.encodeUtf8(i));var s=i.length;n.messageLength+=s,s=[s/4294967296>>>0,s>>>0];for(var a=n.fullMessageLength.length-1;a>=0;--a)n.fullMessageLength[a]+=s[1],s[1]=s[0]+(n.fullMessageLength[a]/4294967296>>>0),n.fullMessageLength[a]=n.fullMessageLength[a]>>>0,s[0]=s[1]/4294967296>>>0;return t.putBytes(i),Yy(r,e,t),(t.read>2048||t.length()===0)&&t.compact(),n},n.digest=function(){var i=wr.util.createBuffer();i.putBytes(t.bytes());var o=n.fullMessageLength[n.fullMessageLength.length-1]+n.messageLengthSize,s=o&n.blockLength-1;i.putBytes(df.substr(0,n.blockLength-s));for(var a,c,l=n.fullMessageLength[0]*8,u=0;u<n.fullMessageLength.length-1;++u)a=n.fullMessageLength[u+1]*8,c=a/4294967296>>>0,l+=c,i.putInt32(l>>>0),l=a>>>0;i.putInt32(l);var f={h0:r.h0,h1:r.h1,h2:r.h2,h3:r.h3,h4:r.h4};Yy(f,e,i);var d=wr.util.createBuffer();return d.putInt32(f.h0),d.putInt32(f.h1),d.putInt32(f.h2),d.putInt32(f.h3),d.putInt32(f.h4),d},n};var df=null,Qy=!1;function MS(){df=String.fromCharCode(128),df+=wr.util.fillString(String.fromCharCode(0),64),Qy=!0}function Yy(r,t,e){for(var n,i,o,s,a,c,l,u,f=e.length();f>=64;){for(i=r.h0,o=r.h1,s=r.h2,a=r.h3,c=r.h4,u=0;u<16;++u)n=e.getInt32(),t[u]=n,l=a^o&(s^a),n=(i<<5|i>>>27)+l+c+1518500249+n,c=a,a=s,s=(o<<30|o>>>2)>>>0,o=i,i=n;for(;u<20;++u)n=t[u-3]^t[u-8]^t[u-14]^t[u-16],n=n<<1|n>>>31,t[u]=n,l=a^o&(s^a),n=(i<<5|i>>>27)+l+c+1518500249+n,c=a,a=s,s=(o<<30|o>>>2)>>>0,o=i,i=n;for(;u<32;++u)n=t[u-3]^t[u-8]^t[u-14]^t[u-16],n=n<<1|n>>>31,t[u]=n,l=o^s^a,n=(i<<5|i>>>27)+l+c+1859775393+n,c=a,a=s,s=(o<<30|o>>>2)>>>0,o=i,i=n;for(;u<40;++u)n=t[u-6]^t[u-16]^t[u-28]^t[u-32],n=n<<2|n>>>30,t[u]=n,l=o^s^a,n=(i<<5|i>>>27)+l+c+1859775393+n,c=a,a=s,s=(o<<30|o>>>2)>>>0,o=i,i=n;for(;u<60;++u)n=t[u-6]^t[u-16]^t[u-28]^t[u-32],n=n<<2|n>>>30,t[u]=n,l=o&s|a&(o^s),n=(i<<5|i>>>27)+l+c+2400959708+n,c=a,a=s,s=(o<<30|o>>>2)>>>0,o=i,i=n;for(;u<80;++u)n=t[u-6]^t[u-16]^t[u-28]^t[u-32],n=n<<2|n>>>30,t[u]=n,l=o^s^a,n=(i<<5|i>>>27)+l+c+3395469782+n,c=a,a=s,s=(o<<30|o>>>2)>>>0,o=i,i=n;r.h0=r.h0+i|0,r.h1=r.h1+o|0,r.h2=r.h2+s|0,r.h3=r.h3+a|0,r.h4=r.h4+c|0,f-=64}}});var tg=T((p8,jy)=>{var Er=yt();zt();Vo();Zy();var Jy=jy.exports=Er.pkcs1=Er.pkcs1||{};Jy.encode_rsa_oaep=function(r,t,e){var n,i,o,s;typeof e=="string"?(n=e,i=arguments[3]||void 0,o=arguments[4]||void 0):e&&(n=e.label||void 0,i=e.seed||void 0,o=e.md||void 0,e.mgf1&&e.mgf1.md&&(s=e.mgf1.md)),o?o.start():o=Er.md.sha1.create(),s||(s=o);var a=Math.ceil(r.n.bitLength()/8),c=a-2*o.digestLength-2;if(t.length>c){var l=new Error("RSAES-OAEP input message length is too long.");throw l.length=t.length,l.maxLength=c,l}n||(n=""),o.update(n,"raw");for(var u=o.digest(),f="",d=c-t.length,h=0;h<d;h++)f+="\0";var p=u.getBytes()+f+""+t;if(!i)i=Er.random.getBytes(o.digestLength);else if(i.length!==o.digestLength){var l=new Error("Invalid RSAES-OAEP seed. The seed length must match the digest length.");throw l.seedLength=i.length,l.digestLength=o.digestLength,l}var m=Za(i,a-o.digestLength-1,s),y=Er.util.xorBytes(p,m,p.length),g=Za(y,o.digestLength,s),E=Er.util.xorBytes(i,g,i.length);return"\0"+E+y};Jy.decode_rsa_oaep=function(r,t,e){var n,i,o;typeof e=="string"?(n=e,i=arguments[3]||void 0):e&&(n=e.label||void 0,i=e.md||void 0,e.mgf1&&e.mgf1.md&&(o=e.mgf1.md));var s=Math.ceil(r.n.bitLength()/8);if(t.length!==s){var y=new Error("RSAES-OAEP encoded message length is invalid.");throw y.length=t.length,y.expectedLength=s,y}if(i===void 0?i=Er.md.sha1.create():i.start(),o||(o=i),s<2*i.digestLength+2)throw new Error("RSAES-OAEP key is too short for the hash function.");n||(n=""),i.update(n,"raw");for(var a=i.digest().getBytes(),c=t.charAt(0),l=t.substring(1,i.digestLength+1),u=t.substring(1+i.digestLength),f=Za(u,i.digestLength,o),d=Er.util.xorBytes(l,f,l.length),h=Za(d,s-i.digestLength-1,o),p=Er.util.xorBytes(u,h,u.length),m=p.substring(0,i.digestLength),y=c!=="\0",g=0;g<i.digestLength;++g)y|=a.charAt(g)!==m.charAt(g);for(var E=1,_=i.digestLength,k=i.digestLength;k<p.length;k++){var C=p.charCodeAt(k),D=C&1^1,J=E?65534:0;y|=C&J,E=E&D,_+=E}if(y||p.charCodeAt(_)!==1)throw new Error("Invalid RSAES-OAEP padding.");return p.substring(_+1)};function Za(r,t,e){e||(e=Er.md.sha1.create());for(var n="",i=Math.ceil(t/e.digestLength),o=0;o<i;++o){var s=String.fromCharCode(o>>24&255,o>>16&255,o>>8&255,o&255);e.start(),e.update(r+s),n+=e.digest().getBytes()}return n.substring(0,t)}});var eg=T((m8,pf)=>{var mn=yt();zt();Xa();Vo();(function(){if(mn.prime){pf.exports=mn.prime;return}var r=pf.exports=mn.prime=mn.prime||{},t=mn.jsbn.BigInteger,e=[6,4,2,4,2,4,6,2],n=new t(null);n.fromInt(30);var i=function(f,d){return f|d};r.generateProbablePrime=function(f,d,h){typeof d=="function"&&(h=d,d={}),d=d||{};var p=d.algorithm||"PRIMEINC";typeof p=="string"&&(p={name:p}),p.options=p.options||{};var m=d.prng||mn.random,y={nextBytes:function(g){for(var E=m.getBytesSync(g.length),_=0;_<g.length;++_)g[_]=E.charCodeAt(_)}};if(p.name==="PRIMEINC")return o(f,y,p.options,h);throw new Error("Invalid prime generation algorithm: "+p.name)};function o(f,d,h,p){return"workers"in h?c(f,d,h,p):s(f,d,h,p)}function s(f,d,h,p){var m=l(f,d),y=0,g=u(m.bitLength());"millerRabinTests"in h&&(g=h.millerRabinTests);var E=10;"maxBlockTime"in h&&(E=h.maxBlockTime),a(m,f,d,y,g,E,p)}function a(f,d,h,p,m,y,g){var E=+new Date;do{if(f.bitLength()>d&&(f=l(d,h)),f.isProbablePrime(m))return g(null,f);f.dAddOffset(e[p++%8],0)}while(y<0||+new Date-E<y);mn.util.setImmediate(function(){a(f,d,h,p,m,y,g)})}function c(f,d,h,p){if(typeof Worker>"u")return s(f,d,h,p);var m=l(f,d),y=h.workers,g=h.workLoad||100,E=g*30/8,_=h.workerScript||"forge/prime.worker.js";if(y===-1)return mn.util.estimateCores(function(C,D){C&&(D=2),y=D-1,k()});k();function k(){y=Math.max(1,y);for(var C=[],D=0;D<y;++D)C[D]=new Worker(_);for(var J=y,D=0;D<y;++D)C[D].addEventListener("message",jt);var rt=!1;function jt(Ge){if(!rt){--J;var xe=Ge.data;if(xe.found){for(var fe=0;fe<C.length;++fe)C[fe].terminate();return rt=!0,p(null,new t(xe.prime,16))}m.bitLength()>f&&(m=l(f,d));var pi=m.toString(16);Ge.target.postMessage({hex:pi,workLoad:g}),m.dAddOffset(E,0)}}}}function l(f,d){var h=new t(f,d),p=f-1;return h.testBit(p)||h.bitwiseTo(t.ONE.shiftLeft(p),i,h),h.dAddOffset(31-h.mod(n).byteValue(),0),h}function u(f){return f<=100?27:f<=150?18:f<=200?15:f<=250?12:f<=300?9:f<=350?8:f<=400?7:f<=500?6:f<=600?5:f<=800?4:f<=1250?3:2}})()});var ja=T((y8,cg)=>{var F=yt();Ko();Xa();Ma();tg();eg();Vo();zt();typeof it>"u"&&(it=F.jsbn.BigInteger);var it,mf=F.util.isNodejs?Vn():null,x=F.asn1,Ve=F.util;F.pki=F.pki||{};cg.exports=F.pki.rsa=F.rsa=F.rsa||{};var z=F.pki,US=[6,4,2,4,2,4,6,2],FS={name:"PrivateKeyInfo",tagClass:x.Class.UNIVERSAL,type:x.Type.SEQUENCE,constructed:!0,value:[{name:"PrivateKeyInfo.version",tagClass:x.Class.UNIVERSAL,type:x.Type.INTEGER,constructed:!1,capture:"privateKeyVersion"},{name:"PrivateKeyInfo.privateKeyAlgorithm",tagClass:x.Class.UNIVERSAL,type:x.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:x.Class.UNIVERSAL,type:x.Type.OID,constructed:!1,capture:"privateKeyOid"}]},{name:"PrivateKeyInfo",tagClass:x.Class.UNIVERSAL,type:x.Type.OCTETSTRING,constructed:!1,capture:"privateKey"}]},KS={name:"RSAPrivateKey",tagClass:x.Class.UNIVERSAL,type:x.Type.SEQUENCE,constructed:!0,value:[{name:"RSAPrivateKey.version",tagClass:x.Class.UNIVERSAL,type:x.Type.INTEGER,constructed:!1,capture:"privateKeyVersion"},{name:"RSAPrivateKey.modulus",tagClass:x.Class.UNIVERSAL,type:x.Type.INTEGER,constructed:!1,capture:"privateKeyModulus"},{name:"RSAPrivateKey.publicExponent",tagClass:x.Class.UNIVERSAL,type:x.Type.INTEGER,constructed:!1,capture:"privateKeyPublicExponent"},{name:"RSAPrivateKey.privateExponent",tagClass:x.Class.UNIVERSAL,type:x.Type.INTEGER,constructed:!1,capture:"privateKeyPrivateExponent"},{name:"RSAPrivateKey.prime1",tagClass:x.Class.UNIVERSAL,type:x.Type.INTEGER,constructed:!1,capture:"privateKeyPrime1"},{name:"RSAPrivateKey.prime2",tagClass:x.Class.UNIVERSAL,type:x.Type.INTEGER,constructed:!1,capture:"privateKeyPrime2"},{name:"RSAPrivateKey.exponent1",tagClass:x.Class.UNIVERSAL,type:x.Type.INTEGER,constructed:!1,capture:"privateKeyExponent1"},{name:"RSAPrivateKey.exponent2",tagClass:x.Class.UNIVERSAL,type:x.Type.INTEGER,constructed:!1,capture:"privateKeyExponent2"},{name:"RSAPrivateKey.coefficient",tagClass:x.Class.UNIVERSAL,type:x.Type.INTEGER,constructed:!1,capture:"privateKeyCoefficient"}]},VS={name:"RSAPublicKey",tagClass:x.Class.UNIVERSAL,type:x.Type.SEQUENCE,constructed:!0,value:[{name:"RSAPublicKey.modulus",tagClass:x.Class.UNIVERSAL,type:x.Type.INTEGER,constructed:!1,capture:"publicKeyModulus"},{name:"RSAPublicKey.exponent",tagClass:x.Class.UNIVERSAL,type:x.Type.INTEGER,constructed:!1,capture:"publicKeyExponent"}]},qS=F.pki.rsa.publicKeyValidator={name:"SubjectPublicKeyInfo",tagClass:x.Class.UNIVERSAL,type:x.Type.SEQUENCE,constructed:!0,captureAsn1:"subjectPublicKeyInfo",value:[{name:"SubjectPublicKeyInfo.AlgorithmIdentifier",tagClass:x.Class.UNIVERSAL,type:x.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:x.Class.UNIVERSAL,type:x.Type.OID,constructed:!1,capture:"publicKeyOid"}]},{name:"SubjectPublicKeyInfo.subjectPublicKey",tagClass:x.Class.UNIVERSAL,type:x.Type.BITSTRING,constructed:!1,value:[{name:"SubjectPublicKeyInfo.subjectPublicKey.RSAPublicKey",tagClass:x.Class.UNIVERSAL,type:x.Type.SEQUENCE,constructed:!0,optional:!0,captureAsn1:"rsaPublicKey"}]}]},HS={name:"DigestInfo",tagClass:x.Class.UNIVERSAL,type:x.Type.SEQUENCE,constructed:!0,value:[{name:"DigestInfo.DigestAlgorithm",tagClass:x.Class.UNIVERSAL,type:x.Type.SEQUENCE,constructed:!0,value:[{name:"DigestInfo.DigestAlgorithm.algorithmIdentifier",tagClass:x.Class.UNIVERSAL,type:x.Type.OID,constructed:!1,capture:"algorithmIdentifier"},{name:"DigestInfo.DigestAlgorithm.parameters",tagClass:x.Class.UNIVERSAL,type:x.Type.NULL,capture:"parameters",optional:!0,constructed:!1}]},{name:"DigestInfo.digest",tagClass:x.Class.UNIVERSAL,type:x.Type.OCTETSTRING,constructed:!1,capture:"digest"}]},$S=function(r){var t;if(r.algorithm in z.oids)t=z.oids[r.algorithm];else{var e=new Error("Unknown message digest algorithm.");throw e.algorithm=r.algorithm,e}var n=x.oidToDer(t).getBytes(),i=x.create(x.Class.UNIVERSAL,x.Type.SEQUENCE,!0,[]),o=x.create(x.Class.UNIVERSAL,x.Type.SEQUENCE,!0,[]);o.value.push(x.create(x.Class.UNIVERSAL,x.Type.OID,!1,n)),o.value.push(x.create(x.Class.UNIVERSAL,x.Type.NULL,!1,""));var s=x.create(x.Class.UNIVERSAL,x.Type.OCTETSTRING,!1,r.digest().getBytes());return i.value.push(o),i.value.push(s),x.toDer(i).getBytes()},sg=function(r,t,e){if(e)return r.modPow(t.e,t.n);if(!t.p||!t.q)return r.modPow(t.d,t.n);t.dP||(t.dP=t.d.mod(t.p.subtract(it.ONE))),t.dQ||(t.dQ=t.d.mod(t.q.subtract(it.ONE))),t.qInv||(t.qInv=t.q.modInverse(t.p));var n;do n=new it(F.util.bytesToHex(F.random.getBytes(t.n.bitLength()/8)),16);while(n.compareTo(t.n)>=0||!n.gcd(t.n).equals(it.ONE));r=r.multiply(n.modPow(t.e,t.n)).mod(t.n);for(var i=r.mod(t.p).modPow(t.dP,t.p),o=r.mod(t.q).modPow(t.dQ,t.q);i.compareTo(o)<0;)i=i.add(t.p);var s=i.subtract(o).multiply(t.qInv).mod(t.p).multiply(t.q).add(o);return s=s.multiply(n.modInverse(t.n)).mod(t.n),s};z.rsa.encrypt=function(r,t,e){var n=e,i,o=Math.ceil(t.n.bitLength()/8);e!==!1&&e!==!0?(n=e===2,i=ag(r,t,e)):(i=F.util.createBuffer(),i.putBytes(r));for(var s=new it(i.toHex(),16),a=sg(s,t,n),c=a.toString(16),l=F.util.createBuffer(),u=o-Math.ceil(c.length/2);u>0;)l.putByte(0),--u;return l.putBytes(F.util.hexToBytes(c)),l.getBytes()};z.rsa.decrypt=function(r,t,e,n){var i=Math.ceil(t.n.bitLength()/8);if(r.length!==i){var o=new Error("Encrypted message length is invalid.");throw o.length=r.length,o.expected=i,o}var s=new it(F.util.createBuffer(r).toHex(),16);if(s.compareTo(t.n)>=0)throw new Error("Encrypted message is invalid.");for(var a=sg(s,t,e),c=a.toString(16),l=F.util.createBuffer(),u=i-Math.ceil(c.length/2);u>0;)l.putByte(0),--u;return l.putBytes(F.util.hexToBytes(c)),n!==!1?Ja(l.getBytes(),t,e):l.getBytes()};z.rsa.createKeyPairGenerationState=function(r,t,e){typeof r=="string"&&(r=parseInt(r,10)),r=r||2048,e=e||{};var n=e.prng||F.random,i={nextBytes:function(a){for(var c=n.getBytesSync(a.length),l=0;l<a.length;++l)a[l]=c.charCodeAt(l)}},o=e.algorithm||"PRIMEINC",s;if(o==="PRIMEINC")s={algorithm:o,state:0,bits:r,rng:i,eInt:t||65537,e:new it(null),p:null,q:null,qBits:r>>1,pBits:r-(r>>1),pqState:0,num:null,keys:null},s.e.fromInt(s.eInt);else throw new Error("Invalid key generation algorithm: "+o);return s};z.rsa.stepKeyPairGenerationState=function(r,t){"algorithm"in r||(r.algorithm="PRIMEINC");var e=new it(null);e.fromInt(30);for(var n=0,i=function(f,d){return f|d},o=+new Date,s,a=0;r.keys===null&&(t<=0||a<t);){if(r.state===0){var c=r.p===null?r.pBits:r.qBits,l=c-1;r.pqState===0?(r.num=new it(c,r.rng),r.num.testBit(l)||r.num.bitwiseTo(it.ONE.shiftLeft(l),i,r.num),r.num.dAddOffset(31-r.num.mod(e).byteValue(),0),n=0,++r.pqState):r.pqState===1?r.num.bitLength()>c?r.pqState=0:r.num.isProbablePrime(GS(r.num.bitLength()))?++r.pqState:r.num.dAddOffset(US[n++%8],0):r.pqState===2?r.pqState=r.num.subtract(it.ONE).gcd(r.e).compareTo(it.ONE)===0?3:0:r.pqState===3&&(r.pqState=0,r.p===null?r.p=r.num:r.q=r.num,r.p!==null&&r.q!==null&&++r.state,r.num=null)}else if(r.state===1)r.p.compareTo(r.q)<0&&(r.num=r.p,r.p=r.q,r.q=r.num),++r.state;else if(r.state===2)r.p1=r.p.subtract(it.ONE),r.q1=r.q.subtract(it.ONE),r.phi=r.p1.multiply(r.q1),++r.state;else if(r.state===3)r.phi.gcd(r.e).compareTo(it.ONE)===0?++r.state:(r.p=null,r.q=null,r.state=0);else if(r.state===4)r.n=r.p.multiply(r.q),r.n.bitLength()===r.bits?++r.state:(r.q=null,r.state=0);else if(r.state===5){var u=r.e.modInverse(r.phi);r.keys={privateKey:z.rsa.setPrivateKey(r.n,r.e,u,r.p,r.q,u.mod(r.p1),u.mod(r.q1),r.q.modInverse(r.p)),publicKey:z.rsa.setPublicKey(r.n,r.e)}}s=+new Date,a+=s-o,o=s}return r.keys!==null};z.rsa.generateKeyPair=function(r,t,e,n){if(arguments.length===1?typeof r=="object"?(e=r,r=void 0):typeof r=="function"&&(n=r,r=void 0):arguments.length===2?typeof r=="number"?typeof t=="function"?(n=t,t=void 0):typeof t!="number"&&(e=t,t=void 0):(e=r,n=t,r=void 0,t=void 0):arguments.length===3&&(typeof t=="number"?typeof e=="function"&&(n=e,e=void 0):(n=e,e=t,t=void 0)),e=e||{},r===void 0&&(r=e.bits||2048),t===void 0&&(t=e.e||65537),!F.options.usePureJavaScript&&!e.prng&&r>=256&&r<=16384&&(t===65537||t===3)){if(n){if(rg("generateKeyPair"))return mf.generateKeyPair("rsa",{modulusLength:r,publicExponent:t,publicKeyEncoding:{type:"spki",format:"pem"},privateKeyEncoding:{type:"pkcs8",format:"pem"}},function(a,c,l){if(a)return n(a);n(null,{privateKey:z.privateKeyFromPem(l),publicKey:z.publicKeyFromPem(c)})});if(ng("generateKey")&&ng("exportKey"))return Ve.globalScope.crypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:r,publicExponent:og(t),hash:{name:"SHA-256"}},!0,["sign","verify"]).then(function(a){return Ve.globalScope.crypto.subtle.exportKey("pkcs8",a.privateKey)}).then(void 0,function(a){n(a)}).then(function(a){if(a){var c=z.privateKeyFromAsn1(x.fromDer(F.util.createBuffer(a)));n(null,{privateKey:c,publicKey:z.setRsaPublicKey(c.n,c.e)})}});if(ig("generateKey")&&ig("exportKey")){var i=Ve.globalScope.msCrypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:r,publicExponent:og(t),hash:{name:"SHA-256"}},!0,["sign","verify"]);i.oncomplete=function(a){var c=a.target.result,l=Ve.globalScope.msCrypto.subtle.exportKey("pkcs8",c.privateKey);l.oncomplete=function(u){var f=u.target.result,d=z.privateKeyFromAsn1(x.fromDer(F.util.createBuffer(f)));n(null,{privateKey:d,publicKey:z.setRsaPublicKey(d.n,d.e)})},l.onerror=function(u){n(u)}},i.onerror=function(a){n(a)};return}}else if(rg("generateKeyPairSync")){var o=mf.generateKeyPairSync("rsa",{modulusLength:r,publicExponent:t,publicKeyEncoding:{type:"spki",format:"pem"},privateKeyEncoding:{type:"pkcs8",format:"pem"}});return{privateKey:z.privateKeyFromPem(o.privateKey),publicKey:z.publicKeyFromPem(o.publicKey)}}}var s=z.rsa.createKeyPairGenerationState(r,t,e);if(!n)return z.rsa.stepKeyPairGenerationState(s,0),s.keys;zS(s,e,n)};z.setRsaPublicKey=z.rsa.setPublicKey=function(r,t){var e={n:r,e:t};return e.encrypt=function(n,i,o){if(typeof i=="string"?i=i.toUpperCase():i===void 0&&(i="RSAES-PKCS1-V1_5"),i==="RSAES-PKCS1-V1_5")i={encode:function(a,c,l){return ag(a,c,2).getBytes()}};else if(i==="RSA-OAEP"||i==="RSAES-OAEP")i={encode:function(a,c){return F.pkcs1.encode_rsa_oaep(c,a,o)}};else if(["RAW","NONE","NULL",null].indexOf(i)!==-1)i={encode:function(a){return a}};else if(typeof i=="string")throw new Error('Unsupported encryption scheme: "'+i+'".');var s=i.encode(n,e,!0);return z.rsa.encrypt(s,e,!0)},e.verify=function(n,i,o,s){typeof o=="string"?o=o.toUpperCase():o===void 0&&(o="RSASSA-PKCS1-V1_5"),s===void 0&&(s={_parseAllDigestBytes:!0}),"_parseAllDigestBytes"in s||(s._parseAllDigestBytes=!0),o==="RSASSA-PKCS1-V1_5"?o={verify:function(c,l){l=Ja(l,e,!0);var u=x.fromDer(l,{parseAllBytes:s._parseAllDigestBytes}),f={},d=[];if(!x.validate(u,HS,f,d)){var h=new Error("ASN.1 object does not contain a valid RSASSA-PKCS1-v1_5 DigestInfo value.");throw h.errors=d,h}var p=x.derToOid(f.algorithmIdentifier);if(!(p===F.oids.md2||p===F.oids.md5||p===F.oids.sha1||p===F.oids.sha224||p===F.oids.sha256||p===F.oids.sha384||p===F.oids.sha512||p===F.oids["sha512-224"]||p===F.oids["sha512-256"])){var h=new Error("Unknown RSASSA-PKCS1-v1_5 DigestAlgorithm identifier.");throw h.oid=p,h}if((p===F.oids.md2||p===F.oids.md5)&&!("parameters"in f))throw new Error("ASN.1 object does not contain a valid RSASSA-PKCS1-v1_5 DigestInfo value. Missing algorithm identifer NULL parameters.");return c===f.digest}}:(o==="NONE"||o==="NULL"||o===null)&&(o={verify:function(c,l){return l=Ja(l,e,!0),c===l}});var a=z.rsa.decrypt(i,e,!0,!1);return o.verify(n,a,e.n.bitLength())},e};z.setRsaPrivateKey=z.rsa.setPrivateKey=function(r,t,e,n,i,o,s,a){var c={n:r,e:t,d:e,p:n,q:i,dP:o,dQ:s,qInv:a};return c.decrypt=function(l,u,f){typeof u=="string"?u=u.toUpperCase():u===void 0&&(u="RSAES-PKCS1-V1_5");var d=z.rsa.decrypt(l,c,!1,!1);if(u==="RSAES-PKCS1-V1_5")u={decode:Ja};else if(u==="RSA-OAEP"||u==="RSAES-OAEP")u={decode:function(h,p){return F.pkcs1.decode_rsa_oaep(p,h,f)}};else if(["RAW","NONE","NULL",null].indexOf(u)!==-1)u={decode:function(h){return h}};else throw new Error('Unsupported encryption scheme: "'+u+'".');return u.decode(d,c,!1)},c.sign=function(l,u){var f=!1;typeof u=="string"&&(u=u.toUpperCase()),u===void 0||u==="RSASSA-PKCS1-V1_5"?(u={encode:$S},f=1):(u==="NONE"||u==="NULL"||u===null)&&(u={encode:function(){return l}},f=1);var d=u.encode(l,c.n.bitLength());return z.rsa.encrypt(d,c,f)},c};z.wrapRsaPrivateKey=function(r){return x.create(x.Class.UNIVERSAL,x.Type.SEQUENCE,!0,[x.create(x.Class.UNIVERSAL,x.Type.INTEGER,!1,x.integerToDer(0).getBytes()),x.create(x.Class.UNIVERSAL,x.Type.SEQUENCE,!0,[x.create(x.Class.UNIVERSAL,x.Type.OID,!1,x.oidToDer(z.oids.rsaEncryption).getBytes()),x.create(x.Class.UNIVERSAL,x.Type.NULL,!1,"")]),x.create(x.Class.UNIVERSAL,x.Type.OCTETSTRING,!1,x.toDer(r).getBytes())])};z.privateKeyFromAsn1=function(r){var t={},e=[];if(x.validate(r,FS,t,e)&&(r=x.fromDer(F.util.createBuffer(t.privateKey))),t={},e=[],!x.validate(r,KS,t,e)){var n=new Error("Cannot read private key. ASN.1 object does not contain an RSAPrivateKey.");throw n.errors=e,n}var i,o,s,a,c,l,u,f;return i=F.util.createBuffer(t.privateKeyModulus).toHex(),o=F.util.createBuffer(t.privateKeyPublicExponent).toHex(),s=F.util.createBuffer(t.privateKeyPrivateExponent).toHex(),a=F.util.createBuffer(t.privateKeyPrime1).toHex(),c=F.util.createBuffer(t.privateKeyPrime2).toHex(),l=F.util.createBuffer(t.privateKeyExponent1).toHex(),u=F.util.createBuffer(t.privateKeyExponent2).toHex(),f=F.util.createBuffer(t.privateKeyCoefficient).toHex(),z.setRsaPrivateKey(new it(i,16),new it(o,16),new it(s,16),new it(a,16),new it(c,16),new it(l,16),new it(u,16),new it(f,16))};z.privateKeyToAsn1=z.privateKeyToRSAPrivateKey=function(r){return x.create(x.Class.UNIVERSAL,x.Type.SEQUENCE,!0,[x.create(x.Class.UNIVERSAL,x.Type.INTEGER,!1,x.integerToDer(0).getBytes()),x.create(x.Class.UNIVERSAL,x.Type.INTEGER,!1,xr(r.n)),x.create(x.Class.UNIVERSAL,x.Type.INTEGER,!1,xr(r.e)),x.create(x.Class.UNIVERSAL,x.Type.INTEGER,!1,xr(r.d)),x.create(x.Class.UNIVERSAL,x.Type.INTEGER,!1,xr(r.p)),x.create(x.Class.UNIVERSAL,x.Type.INTEGER,!1,xr(r.q)),x.create(x.Class.UNIVERSAL,x.Type.INTEGER,!1,xr(r.dP)),x.create(x.Class.UNIVERSAL,x.Type.INTEGER,!1,xr(r.dQ)),x.create(x.Class.UNIVERSAL,x.Type.INTEGER,!1,xr(r.qInv))])};z.publicKeyFromAsn1=function(r){var t={},e=[];if(x.validate(r,qS,t,e)){var n=x.derToOid(t.publicKeyOid);if(n!==z.oids.rsaEncryption){var i=new Error("Cannot read public key. Unknown OID.");throw i.oid=n,i}r=t.rsaPublicKey}if(e=[],!x.validate(r,VS,t,e)){var i=new Error("Cannot read public key. ASN.1 object does not contain an RSAPublicKey.");throw i.errors=e,i}var o=F.util.createBuffer(t.publicKeyModulus).toHex(),s=F.util.createBuffer(t.publicKeyExponent).toHex();return z.setRsaPublicKey(new it(o,16),new it(s,16))};z.publicKeyToAsn1=z.publicKeyToSubjectPublicKeyInfo=function(r){return x.create(x.Class.UNIVERSAL,x.Type.SEQUENCE,!0,[x.create(x.Class.UNIVERSAL,x.Type.SEQUENCE,!0,[x.create(x.Class.UNIVERSAL,x.Type.OID,!1,x.oidToDer(z.oids.rsaEncryption).getBytes()),x.create(x.Class.UNIVERSAL,x.Type.NULL,!1,"")]),x.create(x.Class.UNIVERSAL,x.Type.BITSTRING,!1,[z.publicKeyToRSAPublicKey(r)])])};z.publicKeyToRSAPublicKey=function(r){return x.create(x.Class.UNIVERSAL,x.Type.SEQUENCE,!0,[x.create(x.Class.UNIVERSAL,x.Type.INTEGER,!1,xr(r.n)),x.create(x.Class.UNIVERSAL,x.Type.INTEGER,!1,xr(r.e))])};function ag(r,t,e){var n=F.util.createBuffer(),i=Math.ceil(t.n.bitLength()/8);if(r.length>i-11){var o=new Error("Message is too long for PKCS#1 v1.5 padding.");throw o.length=r.length,o.max=i-11,o}n.putByte(0),n.putByte(e);var s=i-3-r.length,a;if(e===0||e===1){a=e===0?0:255;for(var c=0;c<s;++c)n.putByte(a)}else for(;s>0;){for(var l=0,u=F.random.getBytes(s),c=0;c<s;++c)a=u.charCodeAt(c),a===0?++l:n.putByte(a);s=l}return n.putByte(0),n.putBytes(r),n}function Ja(r,t,e,n){var i=Math.ceil(t.n.bitLength()/8),o=F.util.createBuffer(r),s=o.getByte(),a=o.getByte();if(s!==0||e&&a!==0&&a!==1||!e&&a!=2||e&&a===0&&typeof n>"u")throw new Error("Encryption block is invalid.");var c=0;if(a===0){c=i-3-n;for(var l=0;l<c;++l)if(o.getByte()!==0)throw new Error("Encryption block is invalid.")}else if(a===1)for(c=0;o.length()>1;){if(o.getByte()!==255){--o.read;break}++c}else if(a===2)for(c=0;o.length()>1;){if(o.getByte()===0){--o.read;break}++c}var u=o.getByte();if(u!==0||c!==i-3-o.length())throw new Error("Encryption block is invalid.");return o.getBytes()}function zS(r,t,e){typeof t=="function"&&(e=t,t={}),t=t||{};var n={algorithm:{name:t.algorithm||"PRIMEINC",options:{workers:t.workers||2,workLoad:t.workLoad||100,workerScript:t.workerScript}}};"prng"in t&&(n.prng=t.prng),i();function i(){o(r.pBits,function(a,c){if(a)return e(a);if(r.p=c,r.q!==null)return s(a,r.q);o(r.qBits,s)})}function o(a,c){F.prime.generateProbablePrime(a,n,c)}function s(a,c){if(a)return e(a);if(r.q=c,r.p.compareTo(r.q)<0){var l=r.p;r.p=r.q,r.q=l}if(r.p.subtract(it.ONE).gcd(r.e).compareTo(it.ONE)!==0){r.p=null,i();return}if(r.q.subtract(it.ONE).gcd(r.e).compareTo(it.ONE)!==0){r.q=null,o(r.qBits,s);return}if(r.p1=r.p.subtract(it.ONE),r.q1=r.q.subtract(it.ONE),r.phi=r.p1.multiply(r.q1),r.phi.gcd(r.e).compareTo(it.ONE)!==0){r.p=r.q=null,i();return}if(r.n=r.p.multiply(r.q),r.n.bitLength()!==r.bits){r.q=null,o(r.qBits,s);return}var u=r.e.modInverse(r.phi);r.keys={privateKey:z.rsa.setPrivateKey(r.n,r.e,u,r.p,r.q,u.mod(r.p1),u.mod(r.q1),r.q.modInverse(r.p)),publicKey:z.rsa.setPublicKey(r.n,r.e)},e(null,r.keys)}}function xr(r){var t=r.toString(16);t[0]>="8"&&(t="00"+t);var e=F.util.hexToBytes(t);return e.length>1&&(e.charCodeAt(0)===0&&!(e.charCodeAt(1)&128)||e.charCodeAt(0)===255&&(e.charCodeAt(1)&128)===128)?e.substr(1):e}function GS(r){return r<=100?27:r<=150?18:r<=200?15:r<=250?12:r<=300?9:r<=350?8:r<=400?7:r<=500?6:r<=600?5:r<=800?4:r<=1250?3:2}function rg(r){return F.util.isNodejs&&typeof mf[r]=="function"}function ng(r){return typeof Ve.globalScope<"u"&&typeof Ve.globalScope.crypto=="object"&&typeof Ve.globalScope.crypto.subtle=="object"&&typeof Ve.globalScope.crypto.subtle[r]=="function"}function ig(r){return typeof Ve.globalScope<"u"&&typeof Ve.globalScope.msCrypto=="object"&&typeof Ve.globalScope.msCrypto.subtle=="object"&&typeof Ve.globalScope.msCrypto.subtle[r]=="function"}function og(r){for(var t=F.util.hexToBytes(r.toString(16)),e=new Uint8Array(t.length),n=0;n<t.length;++n)e[n]=t.charCodeAt(n);return e}});var pg=T((g8,dg)=>{var L=yt();qa();Ko();Ey();Qn();Ma();sf();Ry();Vo();Uy();ja();zt();typeof lg>"u"&&(lg=L.jsbn.BigInteger);var lg,v=L.asn1,G=L.pki=L.pki||{};dg.exports=G.pbe=L.pbe=L.pbe||{};var Jn=G.oids,YS={name:"EncryptedPrivateKeyInfo",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,value:[{name:"EncryptedPrivateKeyInfo.encryptionAlgorithm",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:v.Class.UNIVERSAL,type:v.Type.OID,constructed:!1,capture:"encryptionOid"},{name:"AlgorithmIdentifier.parameters",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,captureAsn1:"encryptionParams"}]},{name:"EncryptedPrivateKeyInfo.encryptedData",tagClass:v.Class.UNIVERSAL,type:v.Type.OCTETSTRING,constructed:!1,capture:"encryptedData"}]},WS={name:"PBES2Algorithms",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.keyDerivationFunc",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.keyDerivationFunc.oid",tagClass:v.Class.UNIVERSAL,type:v.Type.OID,constructed:!1,capture:"kdfOid"},{name:"PBES2Algorithms.params",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.params.salt",tagClass:v.Class.UNIVERSAL,type:v.Type.OCTETSTRING,constructed:!1,capture:"kdfSalt"},{name:"PBES2Algorithms.params.iterationCount",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"kdfIterationCount"},{name:"PBES2Algorithms.params.keyLength",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,optional:!0,capture:"keyLength"},{name:"PBES2Algorithms.params.prf",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,optional:!0,value:[{name:"PBES2Algorithms.params.prf.algorithm",tagClass:v.Class.UNIVERSAL,type:v.Type.OID,constructed:!1,capture:"prfOid"}]}]}]},{name:"PBES2Algorithms.encryptionScheme",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.encryptionScheme.oid",tagClass:v.Class.UNIVERSAL,type:v.Type.OID,constructed:!1,capture:"encOid"},{name:"PBES2Algorithms.encryptionScheme.iv",tagClass:v.Class.UNIVERSAL,type:v.Type.OCTETSTRING,constructed:!1,capture:"encIv"}]}]},QS={name:"pkcs-12PbeParams",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,value:[{name:"pkcs-12PbeParams.salt",tagClass:v.Class.UNIVERSAL,type:v.Type.OCTETSTRING,constructed:!1,capture:"salt"},{name:"pkcs-12PbeParams.iterations",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"iterations"}]};G.encryptPrivateKeyInfo=function(r,t,e){e=e||{},e.saltSize=e.saltSize||8,e.count=e.count||2048,e.algorithm=e.algorithm||"aes128",e.prfAlgorithm=e.prfAlgorithm||"sha1";var n=L.random.getBytesSync(e.saltSize),i=e.count,o=v.integerToDer(i),s,a,c;if(e.algorithm.indexOf("aes")===0||e.algorithm==="des"){var l,u,f;switch(e.algorithm){case"aes128":s=16,l=16,u=Jn["aes128-CBC"],f=L.aes.createEncryptionCipher;break;case"aes192":s=24,l=16,u=Jn["aes192-CBC"],f=L.aes.createEncryptionCipher;break;case"aes256":s=32,l=16,u=Jn["aes256-CBC"],f=L.aes.createEncryptionCipher;break;case"des":s=8,l=8,u=Jn.desCBC,f=L.des.createEncryptionCipher;break;default:var d=new Error("Cannot encrypt private key. Unknown encryption algorithm.");throw d.algorithm=e.algorithm,d}var h="hmacWith"+e.prfAlgorithm.toUpperCase(),p=hg(h),m=L.pkcs5.pbkdf2(t,n,i,s,p),y=L.random.getBytesSync(l),g=f(m);g.start(y),g.update(v.toDer(r)),g.finish(),c=g.output.getBytes();var E=XS(n,o,s,h);a=v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.OID,!1,v.oidToDer(Jn.pkcs5PBES2).getBytes()),v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.OID,!1,v.oidToDer(Jn.pkcs5PBKDF2).getBytes()),E]),v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.OID,!1,v.oidToDer(u).getBytes()),v.create(v.Class.UNIVERSAL,v.Type.OCTETSTRING,!1,y)])])])}else if(e.algorithm==="3des"){s=24;var _=new L.util.ByteBuffer(n),m=G.pbe.generatePkcs12Key(t,_,1,i,s),y=G.pbe.generatePkcs12Key(t,_,2,i,s),g=L.des.createEncryptionCipher(m);g.start(y),g.update(v.toDer(r)),g.finish(),c=g.output.getBytes(),a=v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.OID,!1,v.oidToDer(Jn["pbeWithSHAAnd3-KeyTripleDES-CBC"]).getBytes()),v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.OCTETSTRING,!1,n),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,o.getBytes())])])}else{var d=new Error("Cannot encrypt private key. Unknown encryption algorithm.");throw d.algorithm=e.algorithm,d}var k=v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[a,v.create(v.Class.UNIVERSAL,v.Type.OCTETSTRING,!1,c)]);return k};G.decryptPrivateKeyInfo=function(r,t){var e=null,n={},i=[];if(!v.validate(r,YS,n,i)){var o=new Error("Cannot read encrypted private key. ASN.1 object is not a supported EncryptedPrivateKeyInfo.");throw o.errors=i,o}var s=v.derToOid(n.encryptionOid),a=G.pbe.getCipher(s,n.encryptionParams,t),c=L.util.createBuffer(n.encryptedData);return a.update(c),a.finish()&&(e=v.fromDer(a.output)),e};G.encryptedPrivateKeyToPem=function(r,t){var e={type:"ENCRYPTED PRIVATE KEY",body:v.toDer(r).getBytes()};return L.pem.encode(e,{maxline:t})};G.encryptedPrivateKeyFromPem=function(r){var t=L.pem.decode(r)[0];if(t.type!=="ENCRYPTED PRIVATE KEY"){var e=new Error('Could not convert encrypted private key from PEM; PEM header type is "ENCRYPTED PRIVATE KEY".');throw e.headerType=t.type,e}if(t.procType&&t.procType.type==="ENCRYPTED")throw new Error("Could not convert encrypted private key from PEM; PEM is encrypted.");return v.fromDer(t.body)};G.encryptRsaPrivateKey=function(r,t,e){if(e=e||{},!e.legacy){var n=G.wrapRsaPrivateKey(G.privateKeyToAsn1(r));return n=G.encryptPrivateKeyInfo(n,t,e),G.encryptedPrivateKeyToPem(n)}var i,o,s,a;switch(e.algorithm){case"aes128":i="AES-128-CBC",s=16,o=L.random.getBytesSync(16),a=L.aes.createEncryptionCipher;break;case"aes192":i="AES-192-CBC",s=24,o=L.random.getBytesSync(16),a=L.aes.createEncryptionCipher;break;case"aes256":i="AES-256-CBC",s=32,o=L.random.getBytesSync(16),a=L.aes.createEncryptionCipher;break;case"3des":i="DES-EDE3-CBC",s=24,o=L.random.getBytesSync(8),a=L.des.createEncryptionCipher;break;case"des":i="DES-CBC",s=8,o=L.random.getBytesSync(8),a=L.des.createEncryptionCipher;break;default:var c=new Error('Could not encrypt RSA private key; unsupported encryption algorithm "'+e.algorithm+'".');throw c.algorithm=e.algorithm,c}var l=L.pbe.opensslDeriveBytes(t,o.substr(0,8),s),u=a(l);u.start(o),u.update(v.toDer(G.privateKeyToAsn1(r))),u.finish();var f={type:"RSA PRIVATE KEY",procType:{version:"4",type:"ENCRYPTED"},dekInfo:{algorithm:i,parameters:L.util.bytesToHex(o).toUpperCase()},body:u.output.getBytes()};return L.pem.encode(f)};G.decryptRsaPrivateKey=function(r,t){var e=null,n=L.pem.decode(r)[0];if(n.type!=="ENCRYPTED PRIVATE KEY"&&n.type!=="PRIVATE KEY"&&n.type!=="RSA PRIVATE KEY"){var i=new Error('Could not convert private key from PEM; PEM header type is not "ENCRYPTED PRIVATE KEY", "PRIVATE KEY", or "RSA PRIVATE KEY".');throw i.headerType=i,i}if(n.procType&&n.procType.type==="ENCRYPTED"){var o,s;switch(n.dekInfo.algorithm){case"DES-CBC":o=8,s=L.des.createDecryptionCipher;break;case"DES-EDE3-CBC":o=24,s=L.des.createDecryptionCipher;break;case"AES-128-CBC":o=16,s=L.aes.createDecryptionCipher;break;case"AES-192-CBC":o=24,s=L.aes.createDecryptionCipher;break;case"AES-256-CBC":o=32,s=L.aes.createDecryptionCipher;break;case"RC2-40-CBC":o=5,s=function(f){return L.rc2.createDecryptionCipher(f,40)};break;case"RC2-64-CBC":o=8,s=function(f){return L.rc2.createDecryptionCipher(f,64)};break;case"RC2-128-CBC":o=16,s=function(f){return L.rc2.createDecryptionCipher(f,128)};break;default:var i=new Error('Could not decrypt private key; unsupported encryption algorithm "'+n.dekInfo.algorithm+'".');throw i.algorithm=n.dekInfo.algorithm,i}var a=L.util.hexToBytes(n.dekInfo.parameters),c=L.pbe.opensslDeriveBytes(t,a.substr(0,8),o),l=s(c);if(l.start(a),l.update(L.util.createBuffer(n.body)),l.finish())e=l.output.getBytes();else return e}else e=n.body;return n.type==="ENCRYPTED PRIVATE KEY"?e=G.decryptPrivateKeyInfo(v.fromDer(e),t):e=v.fromDer(e),e!==null&&(e=G.privateKeyFromAsn1(e)),e};G.pbe.generatePkcs12Key=function(r,t,e,n,i,o){var s,a;if(typeof o>"u"||o===null){if(!("sha1"in L.md))throw new Error('"sha1" hash algorithm unavailable.');o=L.md.sha1.create()}var c=o.digestLength,l=o.blockLength,u=new L.util.ByteBuffer,f=new L.util.ByteBuffer;if(r!=null){for(a=0;a<r.length;a++)f.putInt16(r.charCodeAt(a));f.putInt16(0)}var d=f.length(),h=t.length(),p=new L.util.ByteBuffer;p.fillWithByte(e,l);var m=l*Math.ceil(h/l),y=new L.util.ByteBuffer;for(a=0;a<m;a++)y.putByte(t.at(a%h));var g=l*Math.ceil(d/l),E=new L.util.ByteBuffer;for(a=0;a<g;a++)E.putByte(f.at(a%d));var _=y;_.putBuffer(E);for(var k=Math.ceil(i/c),C=1;C<=k;C++){var D=new L.util.ByteBuffer;D.putBytes(p.bytes()),D.putBytes(_.bytes());for(var J=0;J<n;J++)o.start(),o.update(D.getBytes()),D=o.digest();var rt=new L.util.ByteBuffer;for(a=0;a<l;a++)rt.putByte(D.at(a%c));var jt=Math.ceil(h/l)+Math.ceil(d/l),Ge=new L.util.ByteBuffer;for(s=0;s<jt;s++){var xe=new L.util.ByteBuffer(_.getBytes(l)),fe=511;for(a=rt.length()-1;a>=0;a--)fe=fe>>8,fe+=rt.at(a)+xe.at(a),xe.setAt(a,fe&255);Ge.putBuffer(xe)}_=Ge,u.putBuffer(D)}return u.truncate(u.length()-i),u};G.pbe.getCipher=function(r,t,e){switch(r){case G.oids.pkcs5PBES2:return G.pbe.getCipherForPBES2(r,t,e);case G.oids["pbeWithSHAAnd3-KeyTripleDES-CBC"]:case G.oids["pbewithSHAAnd40BitRC2-CBC"]:return G.pbe.getCipherForPKCS12PBE(r,t,e);default:var n=new Error("Cannot read encrypted PBE data block. Unsupported OID.");throw n.oid=r,n.supportedOids=["pkcs5PBES2","pbeWithSHAAnd3-KeyTripleDES-CBC","pbewithSHAAnd40BitRC2-CBC"],n}};G.pbe.getCipherForPBES2=function(r,t,e){var n={},i=[];if(!v.validate(t,WS,n,i)){var o=new Error("Cannot read password-based-encryption algorithm parameters. ASN.1 object is not a supported EncryptedPrivateKeyInfo.");throw o.errors=i,o}if(r=v.derToOid(n.kdfOid),r!==G.oids.pkcs5PBKDF2){var o=new Error("Cannot read encrypted private key. Unsupported key derivation function OID.");throw o.oid=r,o.supportedOids=["pkcs5PBKDF2"],o}if(r=v.derToOid(n.encOid),r!==G.oids["aes128-CBC"]&&r!==G.oids["aes192-CBC"]&&r!==G.oids["aes256-CBC"]&&r!==G.oids["des-EDE3-CBC"]&&r!==G.oids.desCBC){var o=new Error("Cannot read encrypted private key. Unsupported encryption scheme OID.");throw o.oid=r,o.supportedOids=["aes128-CBC","aes192-CBC","aes256-CBC","des-EDE3-CBC","desCBC"],o}var s=n.kdfSalt,a=L.util.createBuffer(n.kdfIterationCount);a=a.getInt(a.length()<<3);var c,l;switch(G.oids[r]){case"aes128-CBC":c=16,l=L.aes.createDecryptionCipher;break;case"aes192-CBC":c=24,l=L.aes.createDecryptionCipher;break;case"aes256-CBC":c=32,l=L.aes.createDecryptionCipher;break;case"des-EDE3-CBC":c=24,l=L.des.createDecryptionCipher;break;case"desCBC":c=8,l=L.des.createDecryptionCipher;break}var u=fg(n.prfOid),f=L.pkcs5.pbkdf2(e,s,a,c,u),d=n.encIv,h=l(f);return h.start(d),h};G.pbe.getCipherForPKCS12PBE=function(r,t,e){var n={},i=[];if(!v.validate(t,QS,n,i)){var o=new Error("Cannot read password-based-encryption algorithm parameters. ASN.1 object is not a supported EncryptedPrivateKeyInfo.");throw o.errors=i,o}var s=L.util.createBuffer(n.salt),a=L.util.createBuffer(n.iterations);a=a.getInt(a.length()<<3);var c,l,u;switch(r){case G.oids["pbeWithSHAAnd3-KeyTripleDES-CBC"]:c=24,l=8,u=L.des.startDecrypting;break;case G.oids["pbewithSHAAnd40BitRC2-CBC"]:c=5,l=8,u=function(m,y){var g=L.rc2.createDecryptionCipher(m,40);return g.start(y,null),g};break;default:var o=new Error("Cannot read PKCS #12 PBE data block. Unsupported OID.");throw o.oid=r,o}var f=fg(n.prfOid),d=G.pbe.generatePkcs12Key(e,s,1,a,c,f);f.start();var h=G.pbe.generatePkcs12Key(e,s,2,a,l,f);return u(d,h)};G.pbe.opensslDeriveBytes=function(r,t,e,n){if(typeof n>"u"||n===null){if(!("md5"in L.md))throw new Error('"md5" hash algorithm unavailable.');n=L.md.md5.create()}t===null&&(t="");for(var i=[ug(n,r+t)],o=16,s=1;o<e;++s,o+=16)i.push(ug(n,i[s-1]+r+t));return i.join("").substr(0,e)};function ug(r,t){return r.start().update(t).digest().getBytes()}function fg(r){var t;if(!r)t="hmacWithSHA1";else if(t=G.oids[v.derToOid(r)],!t){var e=new Error("Unsupported PRF OID.");throw e.oid=r,e.supported=["hmacWithSHA1","hmacWithSHA224","hmacWithSHA256","hmacWithSHA384","hmacWithSHA512"],e}return hg(t)}function hg(r){var t=L.md;switch(r){case"hmacWithSHA224":t=L.md.sha512;case"hmacWithSHA1":case"hmacWithSHA256":case"hmacWithSHA384":case"hmacWithSHA512":r=r.substr(8).toLowerCase();break;default:var e=new Error("Unsupported PRF algorithm.");throw e.algorithm=r,e.supported=["hmacWithSHA1","hmacWithSHA224","hmacWithSHA256","hmacWithSHA384","hmacWithSHA512"],e}if(!t||!(r in t))throw new Error("Unknown hash algorithm: "+r);return t[r].create()}function XS(r,t,e,n){var i=v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.OCTETSTRING,!1,r),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,t.getBytes())]);return n!=="hmacWithSHA1"&&i.value.push(v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,L.util.hexToBytes(e.toString(16))),v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.OID,!1,v.oidToDer(G.oids[n]).getBytes()),v.create(v.Class.UNIVERSAL,v.Type.NULL,!1,"")])),i}});var Sg=T((X8,_g)=>{var Tt=yt();Qn();zt();var Ho=_g.exports=Tt.sha512=Tt.sha512||{};Tt.md.sha512=Tt.md.algorithms.sha512=Ho;var vg=Tt.sha384=Tt.sha512.sha384=Tt.sha512.sha384||{};vg.create=function(){return Ho.create("SHA-384")};Tt.md.sha384=Tt.md.algorithms.sha384=vg;Tt.sha512.sha256=Tt.sha512.sha256||{create:function(){return Ho.create("SHA-512/256")}};Tt.md["sha512/256"]=Tt.md.algorithms["sha512/256"]=Tt.sha512.sha256;Tt.sha512.sha224=Tt.sha512.sha224||{create:function(){return Ho.create("SHA-512/224")}};Tt.md["sha512/224"]=Tt.md.algorithms["sha512/224"]=Tt.sha512.sha224;Ho.create=function(r){if(bg||jS(),typeof r>"u"&&(r="SHA-512"),!(r in jn))throw new Error("Invalid SHA-512 algorithm: "+r);for(var t=jn[r],e=null,n=Tt.util.createBuffer(),i=new Array(80),o=0;o<80;++o)i[o]=new Array(2);var s=64;switch(r){case"SHA-384":s=48;break;case"SHA-512/256":s=32;break;case"SHA-512/224":s=28;break}var a={algorithm:r.replace("-","").toLowerCase(),blockLength:128,digestLength:s,messageLength:0,fullMessageLength:null,messageLengthSize:16};return a.start=function(){a.messageLength=0,a.fullMessageLength=a.messageLength128=[];for(var c=a.messageLengthSize/4,l=0;l<c;++l)a.fullMessageLength.push(0);n=Tt.util.createBuffer(),e=new Array(t.length);for(var l=0;l<t.length;++l)e[l]=t[l].slice(0);return a},a.start(),a.update=function(c,l){l==="utf8"&&(c=Tt.util.encodeUtf8(c));var u=c.length;a.messageLength+=u,u=[u/4294967296>>>0,u>>>0];for(var f=a.fullMessageLength.length-1;f>=0;--f)a.fullMessageLength[f]+=u[1],u[1]=u[0]+(a.fullMessageLength[f]/4294967296>>>0),a.fullMessageLength[f]=a.fullMessageLength[f]>>>0,u[0]=u[1]/4294967296>>>0;return n.putBytes(c),xg(e,i,n),(n.read>2048||n.length()===0)&&n.compact(),a},a.digest=function(){var c=Tt.util.createBuffer();c.putBytes(n.bytes());var l=a.fullMessageLength[a.fullMessageLength.length-1]+a.messageLengthSize,u=l&a.blockLength-1;c.putBytes(yf.substr(0,a.blockLength-u));for(var f,d,h=a.fullMessageLength[0]*8,p=0;p<a.fullMessageLength.length-1;++p)f=a.fullMessageLength[p+1]*8,d=f/4294967296>>>0,h+=d,c.putInt32(h>>>0),h=f>>>0;c.putInt32(h);for(var m=new Array(e.length),p=0;p<e.length;++p)m[p]=e[p].slice(0);xg(m,i,c);var y=Tt.util.createBuffer(),g;r==="SHA-512"?g=m.length:r==="SHA-384"?g=m.length-2:g=m.length-4;for(var p=0;p<g;++p)y.putInt32(m[p][0]),(p!==g-1||r!=="SHA-512/224")&&y.putInt32(m[p][1]);return y},a};var yf=null,bg=!1,gf=null,jn=null;function jS(){yf=String.fromCharCode(128),yf+=Tt.util.fillString(String.fromCharCode(0),128),gf=[[1116352408,3609767458],[1899447441,602891725],[3049323471,3964484399],[3921009573,2173295548],[961987163,4081628472],[1508970993,3053834265],[2453635748,2937671579],[2870763221,3664609560],[3624381080,2734883394],[310598401,1164996542],[607225278,1323610764],[1426881987,3590304994],[1925078388,4068182383],[2162078206,991336113],[2614888103,633803317],[3248222580,3479774868],[3835390401,2666613458],[4022224774,944711139],[264347078,2341262773],[604807628,2007800933],[770255983,1495990901],[1249150122,1856431235],[1555081692,3175218132],[1996064986,2198950837],[2554220882,3999719339],[2821834349,766784016],[2952996808,2566594879],[3210313671,3203337956],[3336571891,1034457026],[3584528711,2466948901],[113926993,3758326383],[338241895,168717936],[666307205,1188179964],[773529912,1546045734],[1294757372,1522805485],[1396182291,2643833823],[1695183700,2343527390],[1986661051,1014477480],[2177026350,1206759142],[2456956037,344077627],[2730485921,1290863460],[2820302411,3158454273],[3259730800,3505952657],[3345764771,106217008],[3516065817,3606008344],[3600352804,1432725776],[4094571909,1467031594],[275423344,851169720],[430227734,3100823752],[506948616,1363258195],[659060556,3750685593],[883997877,3785050280],[958139571,3318307427],[1322822218,3812723403],[1537002063,2003034995],[1747873779,3602036899],[1955562222,1575990012],[2024104815,1125592928],[2227730452,2716904306],[2361852424,442776044],[2428436474,593698344],[2756734187,3733110249],[3204031479,2999351573],[3329325298,3815920427],[3391569614,3928383900],[3515267271,566280711],[3940187606,3454069534],[4118630271,4000239992],[116418474,1914138554],[174292421,2731055270],[289380356,3203993006],[460393269,320620315],[685471733,587496836],[852142971,1086792851],[1017036298,365543100],[1126000580,2618297676],[1288033470,3409855158],[1501505948,4234509866],[1607167915,987167468],[1816402316,1246189591]],jn={},jn["SHA-512"]=[[1779033703,4089235720],[3144134277,2227873595],[1013904242,4271175723],[2773480762,1595750129],[1359893119,2917565137],[2600822924,725511199],[528734635,4215389547],[1541459225,327033209]],jn["SHA-384"]=[[3418070365,3238371032],[1654270250,914150663],[2438529370,812702999],[355462360,4144912697],[1731405415,4290775857],[2394180231,1750603025],[3675008525,1694076839],[1203062813,3204075428]],jn["SHA-512/256"]=[[573645204,4230739756],[2673172387,3360449730],[596883563,1867755857],[2520282905,1497426621],[2519219938,2827943907],[3193839141,1401305490],[721525244,746961066],[246885852,2177182882]],jn["SHA-512/224"]=[[2352822216,424955298],[1944164710,2312950998],[502970286,855612546],[1738396948,1479516111],[258812777,2077511080],[2011393907,79989058],[1067287976,1780299464],[286451373,2446758561]],bg=!0}function xg(r,t,e){for(var n,i,o,s,a,c,l,u,f,d,h,p,m,y,g,E,_,k,C,D,J,rt,jt,Ge,xe,fe,pi,Ps,Yt,me,K,il,ol,sl,al,Fh=e.length();Fh>=128;){for(Yt=0;Yt<16;++Yt)t[Yt][0]=e.getInt32()>>>0,t[Yt][1]=e.getInt32()>>>0;for(;Yt<80;++Yt)il=t[Yt-2],me=il[0],K=il[1],n=((me>>>19|K<<13)^(K>>>29|me<<3)^me>>>6)>>>0,i=((me<<13|K>>>19)^(K<<3|me>>>29)^(me<<26|K>>>6))>>>0,sl=t[Yt-15],me=sl[0],K=sl[1],o=((me>>>1|K<<31)^(me>>>8|K<<24)^me>>>7)>>>0,s=((me<<31|K>>>1)^(me<<24|K>>>8)^(me<<25|K>>>7))>>>0,ol=t[Yt-7],al=t[Yt-16],K=i+ol[1]+s+al[1],t[Yt][0]=n+ol[0]+o+al[0]+(K/4294967296>>>0)>>>0,t[Yt][1]=K>>>0;for(m=r[0][0],y=r[0][1],g=r[1][0],E=r[1][1],_=r[2][0],k=r[2][1],C=r[3][0],D=r[3][1],J=r[4][0],rt=r[4][1],jt=r[5][0],Ge=r[5][1],xe=r[6][0],fe=r[6][1],pi=r[7][0],Ps=r[7][1],Yt=0;Yt<80;++Yt)l=((J>>>14|rt<<18)^(J>>>18|rt<<14)^(rt>>>9|J<<23))>>>0,u=((J<<18|rt>>>14)^(J<<14|rt>>>18)^(rt<<23|J>>>9))>>>0,f=(xe^J&(jt^xe))>>>0,d=(fe^rt&(Ge^fe))>>>0,a=((m>>>28|y<<4)^(y>>>2|m<<30)^(y>>>7|m<<25))>>>0,c=((m<<4|y>>>28)^(y<<30|m>>>2)^(y<<25|m>>>7))>>>0,h=(m&g|_&(m^g))>>>0,p=(y&E|k&(y^E))>>>0,K=Ps+u+d+gf[Yt][1]+t[Yt][1],n=pi+l+f+gf[Yt][0]+t[Yt][0]+(K/4294967296>>>0)>>>0,i=K>>>0,K=c+p,o=a+h+(K/4294967296>>>0)>>>0,s=K>>>0,pi=xe,Ps=fe,xe=jt,fe=Ge,jt=J,Ge=rt,K=D+i,J=C+n+(K/4294967296>>>0)>>>0,rt=K>>>0,C=_,D=k,_=g,k=E,g=m,E=y,K=i+s,m=n+o+(K/4294967296>>>0)>>>0,y=K>>>0;K=r[0][1]+y,r[0][0]=r[0][0]+m+(K/4294967296>>>0)>>>0,r[0][1]=K>>>0,K=r[1][1]+E,r[1][0]=r[1][0]+g+(K/4294967296>>>0)>>>0,r[1][1]=K>>>0,K=r[2][1]+k,r[2][0]=r[2][0]+_+(K/4294967296>>>0)>>>0,r[2][1]=K>>>0,K=r[3][1]+D,r[3][0]=r[3][0]+C+(K/4294967296>>>0)>>>0,r[3][1]=K>>>0,K=r[4][1]+rt,r[4][0]=r[4][0]+J+(K/4294967296>>>0)>>>0,r[4][1]=K>>>0,K=r[5][1]+Ge,r[5][0]=r[5][0]+jt+(K/4294967296>>>0)>>>0,r[5][1]=K>>>0,K=r[6][1]+fe,r[6][0]=r[6][0]+xe+(K/4294967296>>>0)>>>0,r[6][1]=K>>>0,K=r[7][1]+Ps,r[7][0]=r[7][0]+pi+(K/4294967296>>>0)>>>0,r[7][1]=K>>>0,Fh-=128}}});var rE=T((MO,eE)=>{function hR(){return!!(typeof window<"u"&&typeof window.process=="object"&&window.process.type==="renderer"||typeof process<"u"&&typeof process.versions=="object"&&process.versions.electron||typeof navigator=="object"&&typeof navigator.userAgent=="string"&&navigator.userAgent.indexOf("Electron")>=0)}eE.exports=hR});var yE=T((kk,sh)=>{"use strict";var yR=Object.prototype.hasOwnProperty,pe="~";function vs(){}Object.create&&(vs.prototype=Object.create(null),new vs().__proto__||(pe=!1));function gR(r,t,e){this.fn=r,this.context=t,this.once=e||!1}function mE(r,t,e,n,i){if(typeof e!="function")throw new TypeError("The listener must be a function");var o=new gR(e,n||r,i),s=pe?pe+t:t;return r._events[s]?r._events[s].fn?r._events[s]=[r._events[s],o]:r._events[s].push(o):(r._events[s]=o,r._eventsCount++),r}function Uc(r,t){--r._eventsCount===0?r._events=new vs:delete r._events[t]}function ue(){this._events=new vs,this._eventsCount=0}ue.prototype.eventNames=function(){var t=[],e,n;if(this._eventsCount===0)return t;for(n in e=this._events)yR.call(e,n)&&t.push(pe?n.slice(1):n);return Object.getOwnPropertySymbols?t.concat(Object.getOwnPropertySymbols(e)):t};ue.prototype.listeners=function(t){var e=pe?pe+t:t,n=this._events[e];if(!n)return[];if(n.fn)return[n.fn];for(var i=0,o=n.length,s=new Array(o);i<o;i++)s[i]=n[i].fn;return s};ue.prototype.listenerCount=function(t){var e=pe?pe+t:t,n=this._events[e];return n?n.fn?1:n.length:0};ue.prototype.emit=function(t,e,n,i,o,s){var a=pe?pe+t:t;if(!this._events[a])return!1;var c=this._events[a],l=arguments.length,u,f;if(c.fn){switch(c.once&&this.removeListener(t,c.fn,void 0,!0),l){case 1:return c.fn.call(c.context),!0;case 2:return c.fn.call(c.context,e),!0;case 3:return c.fn.call(c.context,e,n),!0;case 4:return c.fn.call(c.context,e,n,i),!0;case 5:return c.fn.call(c.context,e,n,i,o),!0;case 6:return c.fn.call(c.context,e,n,i,o,s),!0}for(f=1,u=new Array(l-1);f<l;f++)u[f-1]=arguments[f];c.fn.apply(c.context,u)}else{var d=c.length,h;for(f=0;f<d;f++)switch(c[f].once&&this.removeListener(t,c[f].fn,void 0,!0),l){case 1:c[f].fn.call(c[f].context);break;case 2:c[f].fn.call(c[f].context,e);break;case 3:c[f].fn.call(c[f].context,e,n);break;case 4:c[f].fn.call(c[f].context,e,n,i);break;default:if(!u)for(h=1,u=new Array(l-1);h<l;h++)u[h-1]=arguments[h];c[f].fn.apply(c[f].context,u)}}return!0};ue.prototype.on=function(t,e,n){return mE(this,t,e,n,!1)};ue.prototype.once=function(t,e,n){return mE(this,t,e,n,!0)};ue.prototype.removeListener=function(t,e,n,i){var o=pe?pe+t:t;if(!this._events[o])return this;if(!e)return Uc(this,o),this;var s=this._events[o];if(s.fn)s.fn===e&&(!i||s.once)&&(!n||s.context===n)&&Uc(this,o);else{for(var a=0,c=[],l=s.length;a<l;a++)(s[a].fn!==e||i&&!s[a].once||n&&s[a].context!==n)&&c.push(s[a]);c.length?this._events[o]=c.length===1?c[0]:c:Uc(this,o)}return this};ue.prototype.removeAllListeners=function(t){var e;return t?(e=pe?pe+t:t,this._events[e]&&Uc(this,e)):(this._events=new vs,this._eventsCount=0),this};ue.prototype.off=ue.prototype.removeListener;ue.prototype.addListener=ue.prototype.on;ue.prefixed=pe;ue.EventEmitter=ue;typeof sh<"u"&&(sh.exports=ue)});var kE=T((R6,OE)=>{"use strict";OE.exports=NE;var vR=cl(),Cn=NE.prototype,bR=new Date%1e9;function _R(){return(Math.random()*1e9>>>0)+bR++}function NE(r){r=r||{},this.id=r.id||_R(),this.max=r.max||1/0,this.items=r.items||[],this._lookup={},this.size=this.items.length,this.lastModified=new Date(r.lastModified||new Date);for(var t,e,n=this.items.length;n--;)t=this.items[n],e=new Date(t.expires)-new Date,this._lookup[t.key]=t,e>0?this.expire(t.key,e):e<=0&&this.delete(t.key)}Cn.has=function(r){return r in this._lookup};Cn.get=function(r){if(!this.has(r))return null;var t=this._lookup[r];return t.refresh&&this.expire(r,t.refresh),this.items.splice(this.items.indexOf(t),1),this.items.push(t),t.value};Cn.meta=function(r){if(!this.has(r))return null;var t=this._lookup[r];return"meta"in t?t.meta:null};Cn.set=function(r,t,e){var n=this._lookup[r],i=this._lookup[r]={key:r,value:t};return this.lastModified=new Date,n?(clearTimeout(n.timeout),this.items.splice(this.items.indexOf(n),1,i)):(this.size>=this.max&&this.delete(this.items[0].key),this.items.push(i),this.size++),e&&("ttl"in e&&this.expire(r,e.ttl),"meta"in e&&(i.meta=e.meta),e.refresh&&(i.refresh=e.ttl)),this};Cn.delete=function(r){var t=this._lookup[r];return t?(this.lastModified=new Date,this.items.splice(this.items.indexOf(t),1),clearTimeout(t.timeout),delete this._lookup[r],this.size--,this):!1};Cn.expire=function(r,t){var e=t||0,n=this._lookup[r];if(!n)return this;if(typeof e=="string"&&(e=vR(t)),typeof e!="number")throw new TypeError("Expiration time must be a string or number.");return clearTimeout(n.timeout),n.timeout=setTimeout(this.delete.bind(this,n.key),e),n.expires=Number(new Date)+e,this};Cn.clear=function(){for(var r=this.items.length;r--;)this.delete(this.items[r].key);return this};Cn.toJSON=function(){for(var r=new Array(this.items.length),t,e=r.length;e--;)t=this.items[e],r[e]={key:t.key,meta:t.meta,value:t.value,expires:t.expires,refresh:t.refresh};return{id:this.id,max:isFinite(this.max)?this.max:void 0,lastModified:this.lastModified,items:r}}});var Oh=T((s5,Nh)=>{function GE(r){let t=new globalThis.AbortController;function e(){t.abort();for(let n of r)!n||!n.removeEventListener||n.removeEventListener("abort",e)}for(let n of r)if(!(!n||!n.addEventListener)){if(n.aborted){e();break}n.addEventListener("abort",e)}return t.signal}Nh.exports=GE;Nh.exports.anySignal=GE});var WE=T((c5,YE)=>{YE.exports=class{constructor(t){if(!(t>0)||t-1&t)throw new Error("Max size for a FixedFIFO should be a power of two");this.buffer=new Array(t),this.mask=t-1,this.top=0,this.btm=0,this.next=null}push(t){return this.buffer[this.top]!==void 0?!1:(this.buffer[this.top]=t,this.top=this.top+1&this.mask,!0)}shift(){let t=this.buffer[this.btm];if(t!==void 0)return this.buffer[this.btm]=void 0,this.btm=this.btm+1&this.mask,t}peek(){return this.buffer[this.btm]}isEmpty(){return this.buffer[this.btm]===void 0}}});var ZE=T((u5,XE)=>{var QE=WE();XE.exports=class{constructor(t){this.hwm=t||16,this.head=new QE(this.hwm),this.tail=this.head}push(t){if(!this.head.push(t)){let e=this.head;this.head=e.next=new QE(2*this.head.buffer.length),this.head.push(t)}}shift(){let t=this.tail.shift();if(t===void 0&&this.tail.next){let e=this.tail.next;return this.tail.next=null,this.tail=e,this.tail.shift()}return t}peek(){return this.tail.peek()}isEmpty(){return this.head.isEmpty()}}});var jE=T((f5,JE)=>{"use strict";var LR=()=>{let r={};return r.promise=new Promise((t,e)=>{r.resolve=t,r.reject=e}),r};JE.exports=LR});var n1=T((d5,r1)=>{var t1=ZE(),e1=jE();r1.exports=class{constructor(){this._buffer=new t1,this._waitingConsumers=new t1}push(t){let{promise:e,resolve:n}=e1();return this._buffer.push({chunk:t,resolve:n}),this._consume(),e}_consume(){for(;!this._waitingConsumers.isEmpty()&&!this._buffer.isEmpty();){let t=this._waitingConsumers.shift(),e=this._buffer.shift();t.resolve(e.chunk),e.resolve()}}shift(){let{promise:t,resolve:e}=e1();return this._waitingConsumers.push({resolve:e}),this._consume(),t}isEmpty(){return this._buffer.isEmpty()}}});var kR={};ce(kR,{createLibp2p:()=>OR});var or=I(ll(),1);var pl={};ce(pl,{base58btc:()=>Vt,base58flickr:()=>N1});function C1(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 i=0;i<r.length;i++){var o=r.charAt(i),s=o.charCodeAt(0);if(e[s]!==255)throw new TypeError(o+" is ambiguous");e[s]=i}var a=r.length,c=r.charAt(0),l=Math.log(a)/Math.log(256),u=Math.log(256)/Math.log(a);function f(p){if(p instanceof Uint8Array||(ArrayBuffer.isView(p)?p=new Uint8Array(p.buffer,p.byteOffset,p.byteLength):Array.isArray(p)&&(p=Uint8Array.from(p))),!(p instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(p.length===0)return"";for(var m=0,y=0,g=0,E=p.length;g!==E&&p[g]===0;)g++,m++;for(var _=(E-g)*u+1>>>0,k=new Uint8Array(_);g!==E;){for(var C=p[g],D=0,J=_-1;(C!==0||D<y)&&J!==-1;J--,D++)C+=256*k[J]>>>0,k[J]=C%a>>>0,C=C/a>>>0;if(C!==0)throw new Error("Non-zero carry");y=D,g++}for(var rt=_-y;rt!==_&&k[rt]===0;)rt++;for(var jt=c.repeat(m);rt<_;++rt)jt+=r.charAt(k[rt]);return jt}function d(p){if(typeof p!="string")throw new TypeError("Expected String");if(p.length===0)return new Uint8Array;var m=0;if(p[m]!==" "){for(var y=0,g=0;p[m]===c;)y++,m++;for(var E=(p.length-m)*l+1>>>0,_=new Uint8Array(E);p[m];){var k=e[p.charCodeAt(m)];if(k===255)return;for(var C=0,D=E-1;(k!==0||C<g)&&D!==-1;D--,C++)k+=a*_[D]>>>0,_[D]=k%256>>>0,k=k/256>>>0;if(k!==0)throw new Error("Non-zero carry");g=C,m++}if(p[m]!==" "){for(var J=E-g;J!==E&&_[J]===0;)J++;for(var rt=new Uint8Array(y+(E-J)),jt=y;J!==E;)rt[jt++]=_[J++];return rt}}}function h(p){var m=d(p);if(m)return m;throw new Error(`Non-${t} character`)}return{encode:f,decodeUnsafe:d,decode:h}}var D1=C1,P1=D1,$h=P1;var VR=new Uint8Array(0);var zh=(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},Ir=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")};var Gh=r=>new TextEncoder().encode(r),Yh=r=>new TextDecoder().decode(r);var ul=class{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")}},fl=class{constructor(t,e,n){if(this.name=t,this.prefix=e,e.codePointAt(0)===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=e.codePointAt(0),this.baseDecode=n}decode(t){if(typeof t=="string"){if(t.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(t)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(t.slice(this.prefix.length))}else throw Error("Can only multibase decode strings")}or(t){return Qh(this,t)}},hl=class{constructor(t){this.decoders=t}or(t){return Qh(this,t)}decode(t){let e=t[0],n=this.decoders[e];if(n)return n.decode(t);throw RangeError(`Unable to decode multibase string ${JSON.stringify(t)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}},Qh=(r,t)=>new hl({...r.decoders||{[r.prefix]:r},...t.decoders||{[t.prefix]:t}}),dl=class{constructor(t,e,n,i){this.name=t,this.prefix=e,this.baseEncode=n,this.baseDecode=i,this.encoder=new ul(t,e,n),this.decoder=new fl(t,e,i)}encode(t){return this.encoder.encode(t)}decode(t){return this.decoder.decode(t)}},wi=({name:r,prefix:t,encode:e,decode:n})=>new dl(r,t,e,n),Jr=({prefix:r,name:t,alphabet:e})=>{let{encode:n,decode:i}=$h(e,t);return wi({prefix:r,name:t,encode:n,decode:o=>Ir(i(o))})},L1=(r,t,e,n)=>{let i={};for(let u=0;u<t.length;++u)i[t[u]]=u;let o=r.length;for(;r[o-1]==="=";)--o;let s=new Uint8Array(o*e/8|0),a=0,c=0,l=0;for(let u=0;u<o;++u){let f=i[r[u]];if(f===void 0)throw new SyntaxError(`Non-${n} character`);c=c<<e|f,a+=e,a>=8&&(a-=8,s[l++]=255&c>>a)}if(a>=e||255&c<<8-a)throw new SyntaxError("Unexpected end of data");return s},B1=(r,t,e)=>{let n=t[t.length-1]==="=",i=(1<<e)-1,o="",s=0,a=0;for(let c=0;c<r.length;++c)for(a=a<<8|r[c],s+=8;s>e;)s-=e,o+=t[i&a>>s];if(s&&(o+=t[i&a<<e-s]),n)for(;o.length*e&7;)o+="=";return o},Mt=({name:r,prefix:t,bitsPerChar:e,alphabet:n})=>wi({prefix:t,name:r,encode(i){return B1(i,n,e)},decode(i){return L1(i,n,e,r)}});var Vt=Jr({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),N1=Jr({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var ml={};ce(ml,{base32:()=>be,base32hex:()=>U1,base32hexpad:()=>K1,base32hexpadupper:()=>V1,base32hexupper:()=>F1,base32pad:()=>k1,base32padupper:()=>M1,base32upper:()=>O1,base32z:()=>q1});var be=Mt({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),O1=Mt({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),k1=Mt({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),M1=Mt({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),U1=Mt({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),F1=Mt({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),K1=Mt({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),V1=Mt({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),q1=Mt({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var yl={};ce(yl,{base64:()=>Pn,base64pad:()=>H1,base64url:()=>$1,base64urlpad:()=>z1});var Pn=Mt({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),H1=Mt({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),$1=Mt({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),z1=Mt({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});or.default.formatters.b=r=>r==null?"undefined":Vt.baseEncode(r);or.default.formatters.t=r=>r==null?"undefined":be.baseEncode(r);or.default.formatters.m=r=>r==null?"undefined":Pn.baseEncode(r);or.default.formatters.p=r=>r==null?"undefined":r.toString();or.default.formatters.c=r=>r==null?"undefined":r.toString();or.default.formatters.k=r=>r==null?"undefined":r.toString();function N(r){return Object.assign((0,or.default)(r),{error:(0,or.default)(`${r}:error`),trace:(0,or.default)(`${r}:trace`)})}var Ln=function(r,t,e,n){if(e==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?r!==t||!n:!t.has(r))throw new TypeError("Cannot read private member from an object whose class did not declare it");return e==="m"?n:e==="a"?n.call(r):n?n.value:t.get(r)},Tr,Pt=class extends EventTarget{constructor(){super(...arguments),Tr.set(this,new Map)}listenerCount(t){let e=Ln(this,Tr,"f").get(t);return e==null?0:e.length}addEventListener(t,e,n){super.addEventListener(t,e,n);let i=Ln(this,Tr,"f").get(t);i==null&&(i=[],Ln(this,Tr,"f").set(t,i)),i.push({callback:e,once:(n!==!0&&n!==!1&&n?.once)??!1})}removeEventListener(t,e,n){super.removeEventListener(t.toString(),e??null,n);let i=Ln(this,Tr,"f").get(t);i!=null&&(i=i.filter(({callback:o})=>o!==e),Ln(this,Tr,"f").set(t,i))}dispatchEvent(t){let e=super.dispatchEvent(t),n=Ln(this,Tr,"f").get(t.type);return n==null||(n=n.filter(({once:i})=>!i),Ln(this,Tr,"f").set(t.type,n)),e}safeDispatchEvent(t,e){return this.dispatchEvent(new q(t,e))}};Tr=new WeakMap;var gl=class extends Event{constructor(t,e){super(t,e),this.detail=e?.detail}},q=globalThis.CustomEvent??gl;function Cr(r){return r!=null&&typeof r.start=="function"&&typeof r.stop=="function"}var Os=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,i){return this.readAtomically(()=>{let o=0,s=0,a=this.peekChar();if(a===void 0)return;let c=a==="0",l=2**(8*i)-1;for(;;){let u=this.readAtomically(()=>{let f=this.readChar();if(f===void 0)return;let d=Number.parseInt(f,t);if(!Number.isNaN(d))return d});if(u===void 0)break;if(o*=t,o+=u,o>l||(s+=1,e!==void 0&&s>e))return}if(s!==0)return!n&&c&&s>1?void 0:o})}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 i=n*2;if(n<e.length-3){let s=this.readSeparator(":",n,()=>this.readIPv4Addr());if(s!==void 0)return e[i]=s[0],e[i+1]=s[1],e[i+2]=s[2],e[i+3]=s[3],[i+4,!0]}let o=this.readSeparator(":",n,()=>this.readNumber(16,4,!0,2));if(o===void 0)return[i,!1];e[i]=o>>8,e[i+1]=o&255}return[e.length,!1]};return this.readAtomically(()=>{let e=new Uint8Array(16),[n,i]=t(e);if(n===16)return e;if(i||this.readGivenChar(":")===void 0||this.readGivenChar(":")===void 0)return;let o=new Uint8Array(14),s=16-(n+2),[a]=t(o.subarray(0,s));return e.set(o.subarray(0,a),16-a),e})}readIPAddr(){return this.readIPv4Addr()??this.readIPv6Addr()}};var Xh=45,G1=15,Ei=new Os;function Zh(r){if(!(r.length>G1))return Ei.new(r).parseWith(()=>Ei.readIPv4Addr())}function Jh(r){if(!(r.length>Xh))return Ei.new(r).parseWith(()=>Ei.readIPv6Addr())}function jh(r){if(!(r.length>Xh))return Ei.new(r).parseWith(()=>Ei.readIPAddr())}function td(r){return Boolean(Zh(r))}function ed(r){return Boolean(Jh(r))}function xi(r){return Boolean(jh(r))}var wl={};ce(wl,{identity:()=>Y1});var Y1=wi({prefix:"\0",name:"identity",encode:r=>Yh(r),decode:r=>Gh(r)});var El={};ce(El,{base2:()=>W1});var W1=Mt({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var xl={};ce(xl,{base8:()=>Q1});var Q1=Mt({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var vl={};ce(vl,{base10:()=>X1});var X1=Jr({prefix:"9",name:"base10",alphabet:"0123456789"});var bl={};ce(bl,{base16:()=>Z1,base16upper:()=>J1});var Z1=Mt({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),J1=Mt({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var _l={};ce(_l,{base36:()=>j1,base36upper:()=>tx});var j1=Jr({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),tx=Jr({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var Sl={};ce(Sl,{base256emoji:()=>ox});var rd=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}"),ex=rd.reduce((r,t,e)=>(r[e]=t,r),[]),rx=rd.reduce((r,t,e)=>(r[t.codePointAt(0)]=e,r),[]);function nx(r){return r.reduce((t,e)=>(t+=ex[e],t),"")}function ix(r){let t=[];for(let e of r){let n=rx[e.codePointAt(0)];if(n===void 0)throw new Error(`Non-base256emoji character: ${e}`);t.push(n)}return new Uint8Array(t)}var ox=wi({prefix:"\u{1F680}",name:"base256emoji",encode:nx,decode:ix});var Tl={};ce(Tl,{sha256:()=>te,sha512:()=>Sx});var sx=od,nd=128,ax=127,cx=~ax,lx=Math.pow(2,31);function od(r,t,e){t=t||[],e=e||0;for(var n=e;r>=lx;)t[e++]=r&255|nd,r/=128;for(;r&cx;)t[e++]=r&255|nd,r>>>=7;return t[e]=r|0,od.bytes=e-n+1,t}var ux=Al,fx=128,id=127;function Al(r,n){var e=0,n=n||0,i=0,o=n,s,a=r.length;do{if(o>=a)throw Al.bytes=0,new RangeError("Could not decode varint");s=r[o++],e+=i<28?(s&id)<<i:(s&id)*Math.pow(2,i),i+=7}while(s>=fx);return Al.bytes=o-n,e}var hx=Math.pow(2,7),dx=Math.pow(2,14),px=Math.pow(2,21),mx=Math.pow(2,28),yx=Math.pow(2,35),gx=Math.pow(2,42),wx=Math.pow(2,49),Ex=Math.pow(2,56),xx=Math.pow(2,63),vx=function(r){return r<hx?1:r<dx?2:r<px?3:r<mx?4:r<yx?5:r<gx?6:r<wx?7:r<Ex?8:r<xx?9:10},bx={encode:sx,decode:ux,encodingLength:vx},_x=bx,lo=_x;var uo=(r,t=0)=>[lo.decode(r,t),lo.decode.bytes],vi=(r,t,e=0)=>(lo.encode(r,t,e),t),bi=r=>lo.encodingLength(r);var sr=(r,t)=>{let e=t.byteLength,n=bi(r),i=n+bi(e),o=new Uint8Array(i+e);return vi(r,o,0),vi(e,o,n),o.set(t,i),new _i(r,e,t,o)},Bn=r=>{let t=Ir(r),[e,n]=uo(t),[i,o]=uo(t.subarray(n)),s=t.subarray(n+o);if(s.byteLength!==i)throw new Error("Incorrect length");return new _i(e,i,s,t)},sd=(r,t)=>{if(r===t)return!0;{let e=t;return r.code===e.code&&r.size===e.size&&e.bytes instanceof Uint8Array&&zh(r.bytes,e.bytes)}},_i=class{constructor(t,e,n,i){this.code=t,this.size=e,this.digest=n,this.bytes=i}};var Il=({name:r,code:t,encode:e})=>new Rl(r,t,e),Rl=class{constructor(t,e,n){this.name=t,this.code=e,this.encode=n}digest(t){if(t instanceof Uint8Array){let e=this.encode(t);return e instanceof Uint8Array?sr(this.code,e):e.then(n=>sr(this.code,n))}else throw Error("Unknown type, must be binary type")}};var cd=r=>async t=>new Uint8Array(await crypto.subtle.digest(r,t)),te=Il({name:"sha2-256",code:18,encode:cd("SHA-256")}),Sx=Il({name:"sha2-512",code:19,encode:cd("SHA-512")});var Cl={};ce(Cl,{identity:()=>jr});var ld=0,Ax="identity",ud=Ir,Rx=r=>sr(ld,ud(r)),jr={code:ld,name:Ax,encode:ud,digest:Rx};var EI=new TextEncoder,xI=new TextDecoder;var fd=(r,t)=>{let{bytes:e,version:n}=r;switch(n){case 0:return Dx(e,Dl(r),t||Vt.encoder);default:return Px(e,Dl(r),t||be.encoder)}};var hd=new WeakMap,Dl=r=>{let t=hd.get(r);if(t==null){let e=new Map;return hd.set(r,e),e}return t},pt=class{constructor(t,e,n,i){this.code=e,this.version=t,this.multihash=n,this.bytes=i,this["/"]=i}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!==fo)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(e.code!==Lx)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return pt.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=sr(t,e);return pt.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 pt.equals(this,t)}static equals(t,e){let n=e;return n&&t.code===n.code&&t.version===n.version&&sd(t.multihash,n.multihash)}toString(t){return fd(this,t)}toJSON(){return{"/":fd(this)}}link(){return this}get[Symbol.toStringTag](){return"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 pt)return e;if(e["/"]!=null&&e["/"]===e.bytes||e.asCID===e){let{version:n,code:i,multihash:o,bytes:s}=e;return new pt(n,i,o,s||dd(n,i,o.bytes))}else if(e[Bx]===!0){let{version:n,multihash:i,code:o}=e,s=Bn(i);return pt.create(n,o,s)}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!==fo)throw new Error(`Version 0 CID must use dag-pb (code: ${fo}) block encoding`);return new pt(t,e,n,n.bytes)}case 1:{let i=dd(t,e,n.bytes);return new pt(t,e,n,i)}default:throw new Error("Invalid version")}}static createV0(t){return pt.create(0,fo,t)}static createV1(t,e){return pt.create(1,t,e)}static decode(t){let[e,n]=pt.decodeFirst(t);if(n.length)throw new Error("Incorrect length");return e}static decodeFirst(t){let e=pt.inspectBytes(t),n=e.size-e.multihashSize,i=Ir(t.subarray(n,n+e.multihashSize));if(i.byteLength!==e.multihashSize)throw new Error("Incorrect length");let o=i.subarray(e.multihashSize-e.digestSize),s=new _i(e.multihashCode,e.digestSize,o,i);return[e.version===0?pt.createV0(s):pt.createV1(e.codec,s),t.subarray(e.size)]}static inspectBytes(t){let e=0,n=()=>{let[f,d]=uo(t.subarray(e));return e+=d,f},i=n(),o=fo;if(i===18?(i=0,e=0):o=n(),i!==0&&i!==1)throw new RangeError(`Invalid CID version ${i}`);let s=e,a=n(),c=n(),l=e+c,u=l-s;return{version:i,codec:o,multihashCode:a,digestSize:c,multihashSize:u,size:l}}static parse(t,e){let[n,i]=Cx(t,e),o=pt.decode(i);if(o.version===0&&t[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return Dl(o).set(n,t),o}},Cx=(r,t)=>{switch(r[0]){case"Q":{let e=t||Vt;return[Vt.prefix,e.decode(`${Vt.prefix}${r}`)]}case Vt.prefix:{let e=t||Vt;return[Vt.prefix,e.decode(r)]}case be.prefix:{let e=t||be;return[be.prefix,e.decode(r)]}default:{if(t==null)throw Error("To parse non base32 or base58btc encoded CID multibase decoder must be provided");return[r[0],t.decode(r)]}}},Dx=(r,t,e)=>{let{prefix:n}=e;if(n!==Vt.prefix)throw Error(`Cannot string encode V0 in ${e.name} encoding`);let i=t.get(n);if(i==null){let o=e.encode(r).slice(1);return t.set(n,o),o}else return i},Px=(r,t,e)=>{let{prefix:n}=e,i=t.get(n);if(i==null){let o=e.encode(r);return t.set(n,o),o}else return i},fo=112,Lx=18,dd=(r,t,e)=>{let n=bi(r),i=n+bi(t),o=new Uint8Array(i+e.byteLength);return vi(r,o,0),vi(t,o,n),o.set(e,i),o},Bx=Symbol.for("@ipld/js-cid/CID");var tn={...wl,...El,...xl,...vl,...bl,...ml,..._l,...pl,...yl,...Sl},DI={...Tl,...Cl};function On(r){return globalThis.Buffer!=null?new Uint8Array(r.buffer,r.byteOffset,r.byteLength):r}function Dr(r=0){return globalThis.Buffer?.alloc!=null?On(globalThis.Buffer.alloc(r)):new Uint8Array(r)}function Pr(r=0){return globalThis.Buffer?.allocUnsafe!=null?On(globalThis.Buffer.allocUnsafe(r)):new Uint8Array(r)}function md(r,t,e,n){return{name:r,prefix:t,encoder:{name:r,prefix:t,encode:e},decoder:{decode:n}}}var pd=md("utf8","u",r=>"u"+new TextDecoder("utf8").decode(r),r=>new TextEncoder().encode(r.substring(1))),Pl=md("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=Pr(r.length);for(let e=0;e<r.length;e++)t[e]=r.charCodeAt(e);return t}),Nx={utf8:pd,"utf-8":pd,hex:tn.base16,latin1:Pl,ascii:Pl,binary:Pl,...tn},Ms=Nx;function H(r,t="utf8"){let e=Ms[t];if(e==null)throw new Error(`Unsupported encoding "${t}"`);return(t==="utf8"||t==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?globalThis.Buffer.from(r.buffer,r.byteOffset,r.byteLength).toString("utf8"):e.encoder.encode(r).substring(1)}var yd=td,Ox=ed,Ll=function(r){let t=0;if(r=r.toString().trim(),yd(r)){let e=new Uint8Array(t+4);return r.split(/\./g).forEach(n=>{e[t++]=parseInt(n,10)&255}),e}if(Ox(r)){let e=r.split(":",8),n;for(n=0;n<e.length;n++){let o=yd(e[n]),s;o&&(s=Ll(e[n]),e[n]=H(s.slice(0,2),"base16")),s!=null&&++n<8&&e.splice(n,0,H(s.slice(2,4),"base16"))}if(e[0]==="")for(;e.length<8;)e.unshift("0");else if(e[e.length-1]==="")for(;e.length<8;)e.push("0");else if(e.length<8){for(n=0;n<e.length&&e[n]!=="";n++);let o=[n,1];for(n=9-e.length;n>0;n--)o.push("0");e.splice.apply(e,o)}let i=new Uint8Array(t+16);for(n=0;n<e.length;n++){let o=parseInt(e[n],16);i[t++]=o>>8&255,i[t++]=o&255}return i}throw new Error("invalid ip address")},gd=function(r,t=0,e){t=~~t,e=e??r.length-t;let n=new DataView(r.buffer);if(e===4){let i=[];for(let o=0;o<e;o++)i.push(r[t+o]);return i.join(".")}if(e===16){let i=[];for(let o=0;o<e;o+=2)i.push(n.getUint16(t+o).toString(16));return i.join(":").replace(/(^|:)0(:0)*:0(:|$)/,"$1::$3").replace(/:{3,4}/,"::")}return""};var ho={},Bl={},Mx=[[4,32,"ip4"],[6,16,"tcp"],[33,16,"dccp"],[41,128,"ip6"],[42,-1,"ip6zone"],[43,8,"ipcidr"],[53,-1,"dns",!0],[54,-1,"dns4",!0],[55,-1,"dns6",!0],[56,-1,"dnsaddr",!0],[132,16,"sctp"],[273,16,"udp"],[275,0,"p2p-webrtc-star"],[276,0,"p2p-webrtc-direct"],[277,0,"p2p-stardust"],[280,0,"webrtc"],[290,0,"p2p-circuit"],[301,0,"udt"],[302,0,"utp"],[400,-1,"unix",!1,!0],[421,-1,"ipfs"],[421,-1,"p2p"],[443,0,"https"],[444,96,"onion"],[445,296,"onion3"],[446,-1,"garlic64"],[448,0,"tls"],[460,0,"quic"],[461,0,"quic-v1"],[465,0,"webtransport"],[466,-1,"certhash"],[477,0,"ws"],[478,0,"wss"],[479,0,"p2p-websocket-star"],[480,0,"http"],[777,-1,"memory"]];Mx.forEach(r=>{let t=Ux(...r);Bl[t.code]=t,ho[t.name]=t});function Ux(r,t,e,n,i){return{code:r,size:t,name:e,resolvable:Boolean(n),path:Boolean(i)}}function mt(r){if(typeof r=="number"){if(Bl[r]!=null)return Bl[r];throw new Error(`no protocol with code: ${r}`)}else if(typeof r=="string"){if(ho[r]!=null)return ho[r];throw new Error(`no protocol with name: ${r}`)}throw new Error(`invalid protocol id type: ${typeof r}`)}var ar=I(Us(),1);function U(r,t="utf8"){let e=Ms[t];if(e==null)throw new Error(`Unsupported encoding "${t}"`);return(t==="utf8"||t==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?On(globalThis.Buffer.from(r,"utf-8")):e.decoder.decode(`${e.prefix}${r}`)}function qt(r,t){t==null&&(t=r.reduce((i,o)=>i+o.length,0));let e=Pr(t),n=0;for(let i of r)e.set(i,n),n+=i.length;return On(e)}function Pd(r,t){switch(mt(r).code){case 4:case 41:return jx(t);case 42:return Cd(t);case 6:case 273:case 33:case 132:return Bd(t).toString();case 53:case 54:case 55:case 56:case 400:case 777:return Cd(t);case 421:return nv(t);case 444:return Dd(t);case 445:return Dd(t);case 466:return rv(t);default:return H(t,"base16")}}function Ld(r,t){switch(mt(r).code){case 4:return Id(t);case 41:return Id(t);case 42:return Td(t);case 6:case 273:case 33:case 132:return Ml(parseInt(t,10));case 53:case 54:case 55:case 56:case 400:case 777:return Td(t);case 421:return tv(t);case 444:return iv(t);case 445:return ov(t);case 466:return ev(t);default:return U(t,"base16")}}var kl=Object.values(tn).map(r=>r.decoder),Jx=function(){let r=kl[0].or(kl[1]);return kl.slice(2).forEach(t=>r=r.or(t)),r}();function Id(r){if(!xi(r))throw new Error("invalid ip address");return Ll(r)}function jx(r){let t=gd(r,0,r.length);if(t==null)throw new Error("ipBuff is required");if(!xi(t))throw new Error("invalid ip address");return t}function Ml(r){let t=new ArrayBuffer(2);return new DataView(t).setUint16(0,r),new Uint8Array(t)}function Bd(r){return new DataView(r.buffer).getUint16(r.byteOffset)}function Td(r){let t=U(r),e=Uint8Array.from(ar.default.encode(t.length));return qt([e,t],e.length+t.length)}function Cd(r){let t=ar.default.decode(r);if(r=r.slice(ar.default.decode.bytes),r.length!==t)throw new Error("inconsistent lengths");return H(r)}function tv(r){let t;r[0]==="Q"||r[0]==="1"?t=Bn(Vt.decode(`z${r}`)).bytes:t=pt.parse(r).multihash.bytes;let e=Uint8Array.from(ar.default.encode(t.length));return qt([e,t],e.length+t.length)}function ev(r){let t=Jx.decode(r),e=Uint8Array.from(ar.default.encode(t.length));return qt([e,t],e.length+t.length)}function rv(r){let t=ar.default.decode(r),e=r.slice(ar.default.decode.bytes);if(e.length!==t)throw new Error("inconsistent lengths");return"u"+H(e,"base64url")}function nv(r){let t=ar.default.decode(r),e=r.slice(ar.default.decode.bytes);if(e.length!==t)throw new Error("inconsistent lengths");return H(e,"base58btc")}function iv(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=be.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 i=Ml(n);return qt([e,i],e.length+i.length)}function ov(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=be.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 i=Ml(n);return qt([e,i],e.length+i.length)}function Dd(r){let t=r.slice(0,r.length-2),e=r.slice(r.length-2),n=H(t,"base32"),i=Bd(e);return`${n}:${i}`}var Si=I(Us(),1);function sv(r){let t=[],e=r.split("/").slice(1);if(e.length===1&&e[0]==="")return[];for(let n=0;n<e.length;n++){let i=e[n],o=mt(i);if(o.size===0){t.push([i]);continue}if(n++,n>=e.length)throw Od("invalid address: "+r);if(o.path===!0){t.push([i,ql(e.slice(n).join("/"))]);break}t.push([i,e[n]])}return t}function av(r){let t=[];return r.map(e=>{let n=Vs(e);return t.push(n.name),e.length>1&&e[1]!=null&&t.push(e[1]),null}),ql(t.join("/"))}function cv(r){return r.map(t=>{Array.isArray(t)||(t=[t]);let e=Vs(t);return t.length>1?[e.code,Ld(e.code,t[1])]:[e.code]})}function Ul(r){return r.map(t=>{let e=Vs(t);return t[1]!=null?[e.code,Pd(e.code,t[1])]:[e.code]})}function Fl(r){return Ks(qt(r.map(t=>{let e=Vs(t),n=Uint8Array.from(Si.default.encode(e.code));return t.length>1&&t[1]!=null&&(n=qt([n,t[1]])),n})))}function Kl(r,t){return r.size>0?r.size/8:r.size===0?0:Si.default.decode(t)+(Si.default.decode.bytes??0)}function Fs(r){let t=[],e=0;for(;e<r.length;){let n=Si.default.decode(r,e),i=Si.default.decode.bytes??0,o=mt(n),s=Kl(o,r.slice(e+i));if(s===0){t.push([n]),e+=i;continue}let a=r.slice(e+i,e+i+s);if(e+=s+i,e>r.length)throw Od("Invalid address Uint8Array: "+H(r,"base16"));t.push([n,a])}return t}function Vl(r){let t=Fs(r),e=Ul(t);return av(e)}function lv(r){r=ql(r);let t=sv(r),e=cv(t);return Fl(e)}function Nd(r){return lv(r)}function Ks(r){let t=uv(r);if(t!=null)throw t;return Uint8Array.from(r)}function uv(r){try{Fs(r)}catch(t){return t}}function ql(r){return"/"+r.trim().split("/").filter(t=>t).join("/")}function Od(r){return new Error("Error parsing address: "+r)}function Vs(r){return mt(r[0])}var $l=I(Us(),1);var Fd=I(W(),1);function xt(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 Ai=function(r,t,e,n){if(e==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?r!==t||!n:!t.has(r))throw new TypeError("Cannot read private member from an object whose class did not declare it");return e==="m"?n:e==="a"?n.call(r):n?n.value:t.get(r)},Hl=function(r,t,e,n,i){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!i)throw new TypeError("Private accessor was defined without a setter");if(typeof t=="function"?r!==t||!i:!t.has(r))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?i.call(r,e):i?i.value=e:t.set(r,e),e},po,mo,yo,Ud,dv=Symbol.for("nodejs.util.inspect.custom"),pv=[mt("dns").code,mt("dns4").code,mt("dns6").code,mt("dnsaddr").code],zl=new Map,Kd=Symbol.for("@multiformats/js-multiaddr/multiaddr");function Vd(r,t){if(r==null)throw new Error("requires node address object");if(t==null)throw new Error("requires transport protocol");let e,n=r.address;switch(r.family){case 4:e="ip4";break;case 6:if(e="ip6",n.includes("%")){let i=n.split("%");if(i.length!==2)throw Error("Multiple ip6 zones in multiaddr");n=i[0],e=`/ip6zone/${i[1]}/ip6`}break;default:throw Error("Invalid addr family, should be 4 or 6.")}return new cr("/"+[e,n,t,r.port].join("/"))}function _e(r){return Boolean(r?.[Kd])}var cr=class{constructor(t){if(po.set(this,void 0),mo.set(this,void 0),yo.set(this,void 0),this[Ud]=!0,t==null&&(t=""),t instanceof Uint8Array)this.bytes=Ks(t);else if(typeof t=="string"){if(t.length>0&&t.charAt(0)!=="/")throw new Error(`multiaddr "${t}" must start with a "/"`);this.bytes=Nd(t)}else if(_e(t))this.bytes=Ks(t.bytes);else throw new Error("addr must be a string, Buffer, or another Multiaddr")}toString(){return Ai(this,po,"f")==null&&Hl(this,po,Vl(this.bytes),"f"),Ai(this,po,"f")}toJSON(){return this.toString()}toOptions(){let t,e,n,i,o="",s=mt("tcp"),a=mt("udp"),c=mt("ip4"),l=mt("ip6"),u=mt("dns6"),f=mt("ip6zone");for(let[h,p]of this.stringTuples())h===f.code&&(o=`%${p??""}`),pv.includes(h)&&(e=s.name,i=443,n=`${p??""}${o}`,t=h===u.code?6:4),(h===s.code||h===a.code)&&(e=mt(h).name,i=parseInt(p??"")),(h===c.code||h===l.code)&&(e=mt(h).name,n=`${p??""}${o}`,t=h===l.code?6:4);if(t==null||e==null||n==null||i==null)throw new Error('multiaddr must have a valid format: "/{ip4, ip6, dns4, dns6, dnsaddr}/{address}/{tcp, udp}/{port}".');return{family:t,host:n,transport:e,port:i}}protos(){return this.protoCodes().map(t=>Object.assign({},mt(t)))}protoCodes(){let t=[],e=this.bytes,n=0;for(;n<e.length;){let i=$l.default.decode(e,n),o=$l.default.decode.bytes??0,s=mt(i),a=Kl(s,e.slice(n+o));n+=a+o,t.push(i)}return t}protoNames(){return this.protos().map(t=>t.name)}tuples(){return Ai(this,mo,"f")==null&&Hl(this,mo,Fs(this.bytes),"f"),Ai(this,mo,"f")}stringTuples(){return Ai(this,yo,"f")==null&&Hl(this,yo,Ul(this.tuples()),"f"),Ai(this,yo,"f")}encapsulate(t){return t=new cr(t),new cr(this.toString()+t.toString())}decapsulate(t){let e=t.toString(),n=this.toString(),i=n.lastIndexOf(e);if(i<0)throw new Error(`Address ${this.toString()} does not contain subaddress: ${t.toString()}`);return new cr(n.slice(0,i))}decapsulateCode(t){let e=this.tuples();for(let n=e.length-1;n>=0;n--)if(e[n][0]===t)return new cr(Fl(e.slice(0,n)));return this}getPeerId(){try{let e=this.stringTuples().filter(n=>n[0]===ho.ipfs.code).pop();if(e?.[1]!=null){let n=e[1];return n[0]==="Q"||n[0]==="1"?H(Vt.decode(`z${n}`),"base58btc"):H(pt.parse(n).multihash.bytes,"base58btc")}return null}catch{return null}}getPath(){let t=null;try{t=this.stringTuples().filter(e=>mt(e[0]).path===!0)[0][1],t==null&&(t=null)}catch{t=null}return t}equals(t){return xt(this.bytes,t.bytes)}async resolve(t){let e=this.protos().find(o=>o.resolvable);if(e==null)return[this];let n=zl.get(e.name);if(n==null)throw(0,Fd.default)(new Error(`no available resolver for ${e.name}`),"ERR_NO_AVAILABLE_RESOLVER");return(await n(this,t)).map(o=>new cr(o))}nodeAddress(){let t=this.toOptions();if(t.transport!=="tcp"&&t.transport!=="udp")throw new Error(`multiaddr must have a valid format - no protocol with name: "${t.transport}". Must have a valid transport protocol: "{tcp, udp}"`);return{family:t.family,address:t.host,port:t.port}}isThinWaistAddress(t){let e=(t??this).protos();return!(e.length!==2||e[0].code!==4&&e[0].code!==41||e[1].code!==6&&e[1].code!==273)}[(po=new WeakMap,mo=new WeakMap,yo=new WeakMap,Ud=Kd,dv)](){return`Multiaddr(${Vl(this.bytes)})`}};function j(r){return new cr(r)}async function Lr(r){let t=[];for await(let e of r)t.push(e);return t}var Gl=(r,t)=>async function*(){yield*(await Lr(r)).sort(t)}();async function Ye(r){for await(let t of r);}async function*ye(r,t){for await(let e of r)await t(e)&&(yield e)}async function*qs(r,t){let e=0;if(!(t<1)){for await(let n of r)if(yield n,e++,e===t)return}}var Hs=class{open(){return Promise.reject(new Error(".open is not implemented"))}close(){return Promise.reject(new Error(".close is not implemented"))}put(t,e,n){return Promise.reject(new Error(".put is not implemented"))}get(t,e){return Promise.reject(new Error(".get is not implemented"))}has(t,e){return Promise.reject(new Error(".has is not implemented"))}delete(t,e){return Promise.reject(new Error(".delete is not implemented"))}async*putMany(t,e={}){for await(let{key:n,value:i}of t)await this.put(n,i,e),yield{key:n,value:i}}async*getMany(t,e={}){for await(let n of t)yield this.get(n,e)}async*deleteMany(t,e={}){for await(let n of t)await this.delete(n,e),yield n}batch(){let t=[],e=[];return{put(n,i){t.push({key:n,value:i})},delete(n){e.push(n)},commit:async n=>{await Ye(this.putMany(t,n)),t=[],await Ye(this.deleteMany(e,n)),e=[]}}}async*_all(t,e){throw new Error("._all is not implemented")}async*_allKeys(t,e){throw new Error("._allKeys is not implemented")}query(t,e){let n=this._all(t,e);if(t.prefix!=null&&(n=ye(n,i=>i.key.toString().startsWith(t.prefix))),Array.isArray(t.filters)&&(n=t.filters.reduce((i,o)=>ye(i,o),n)),Array.isArray(t.orders)&&(n=t.orders.reduce((i,o)=>Gl(i,o),n)),t.offset!=null){let i=0;n=ye(n,()=>i++>=t.offset)}return t.limit!=null&&(n=qs(n,t.limit)),n}queryKeys(t,e){let n=this._allKeys(t,e);if(t.prefix!=null&&(n=ye(n,i=>i.toString().startsWith(t.prefix))),Array.isArray(t.filters)&&(n=t.filters.reduce((i,o)=>ye(i,o),n)),Array.isArray(t.orders)&&(n=t.orders.reduce((i,o)=>Gl(i,o),n)),t.offset!=null){let i=0;n=ye(n,()=>i++>=t.offset)}return t.limit!=null&&(n=qs(n,t.limit)),n}};var $s=(r=21)=>crypto.getRandomValues(new Uint8Array(r)).reduce((t,e)=>(e&=63,e<36?t+=e.toString(36):e<62?t+=(e-26).toString(36).toUpperCase():e>62?t+="-":t+="_",t),"");var Br="/",qd=new TextEncoder().encode(Br),zs=qd[0],Ut=class{constructor(t,e){if(typeof t=="string")this._buf=U(t);else if(t instanceof Uint8Array)this._buf=t;else throw new Error("Invalid key, should be String of Uint8Array");if(e==null&&(e=!0),e&&this.clean(),this._buf.byteLength===0||this._buf[0]!==zs)throw new Error("Invalid key")}toString(t="utf8"){return H(this._buf,t)}uint8Array(){return this._buf}get[Symbol.toStringTag](){return`Key(${this.toString()})`}static withNamespaces(t){return new Ut(t.join(Br))}static random(){return new Ut($s().replace(/-/g,""))}static asKey(t){return t instanceof Uint8Array||typeof t=="string"?new Ut(t):typeof t.uint8Array=="function"?new Ut(t.uint8Array()):null}clean(){if((this._buf==null||this._buf.byteLength===0)&&(this._buf=qd),this._buf[0]!==zs){let t=new Uint8Array(this._buf.byteLength+1);t.fill(zs,0,1),t.set(this._buf,1),this._buf=t}for(;this._buf.byteLength>1&&this._buf[this._buf.byteLength-1]===zs;)this._buf=this._buf.subarray(0,-1)}less(t){let e=this.list(),n=t.list();for(let i=0;i<e.length;i++){if(n.length<i+1)return!1;let o=e[i],s=n[i];if(o<s)return!0;if(o>s)return!1}return e.length<n.length}reverse(){return Ut.withNamespaces(this.list().slice().reverse())}namespaces(){return this.list()}baseNamespace(){let t=this.namespaces();return t[t.length-1]}list(){return this.toString().split(Br).slice(1)}type(){return mv(this.baseNamespace())}name(){return yv(this.baseNamespace())}instance(t){return new Ut(this.toString()+":"+t)}path(){let t=this.parent().toString();return t.endsWith(Br)||(t+=Br),t+=this.type(),new Ut(t)}parent(){let t=this.list();return t.length===1?new Ut(Br):new Ut(t.slice(0,-1).join(Br))}child(t){return this.toString()===Br?t:t.toString()===Br?this:new Ut(this.toString()+t.toString(),!1)}isAncestorOf(t){return t.toString()===this.toString()?!1:t.toString().startsWith(this.toString())}isDecendantOf(t){return t.toString()===this.toString()?!1:this.toString().startsWith(t.toString())}isTopLevel(){return this.list().length===1}concat(...t){return Ut.withNamespaces([...this.namespaces(),...gv(t.map(e=>e.namespaces()))])}};function mv(r){let t=r.split(":");return t.length<2?"":t.slice(0,-1).join(":")}function yv(r){let t=r.split(":");return t[t.length-1]}function gv(r){return[].concat(...r)}var Hd=I(W(),1);function $d(r){return r=r||new Error("Not Found"),(0,Hd.default)(r,"ERR_NOT_FOUND")}var Gs=class extends Hs{constructor(){super(),this.data={}}open(){return Promise.resolve()}close(){return Promise.resolve()}async put(t,e){this.data[t.toString()]=e}async get(t){if(!await this.has(t))throw $d();return this.data[t.toString()]}async has(t){return this.data[t.toString()]!==void 0}async delete(t){delete this.data[t.toString()]}async*_all(){yield*Object.entries(this.data).map(([t,e])=>({key:new Ut(t),value:e}))}async*_allKeys(){yield*Object.entries(this.data).map(([t])=>new Ut(t))}};var xo=I(W(),1);var X;(function(r){r.NOT_STARTED_YET="The libp2p node is not started yet",r.DHT_DISABLED="DHT is not available",r.PUBSUB_DISABLED="PubSub is not available",r.CONN_ENCRYPTION_REQUIRED="At least one connection encryption module is required",r.ERR_TRANSPORTS_REQUIRED="At least one transport module is required",r.ERR_PROTECTOR_REQUIRED="Private network is enforced, but no protector was provided",r.NOT_FOUND="Not found"})(X||(X={}));var b;(function(r){r.DHT_DISABLED="ERR_DHT_DISABLED",r.ERR_PUBSUB_DISABLED="ERR_PUBSUB_DISABLED",r.PUBSUB_NOT_STARTED="ERR_PUBSUB_NOT_STARTED",r.DHT_NOT_STARTED="ERR_DHT_NOT_STARTED",r.CONN_ENCRYPTION_REQUIRED="ERR_CONN_ENCRYPTION_REQUIRED",r.ERR_TRANSPORTS_REQUIRED="ERR_TRANSPORTS_REQUIRED",r.ERR_PROTECTOR_REQUIRED="ERR_PROTECTOR_REQUIRED",r.ERR_PEER_DIAL_INTERCEPTED="ERR_PEER_DIAL_INTERCEPTED",r.ERR_CONNECTION_INTERCEPTED="ERR_CONNECTION_INTERCEPTED",r.ERR_INVALID_PROTOCOLS_FOR_STREAM="ERR_INVALID_PROTOCOLS_FOR_STREAM",r.ERR_CONNECTION_ENDED="ERR_CONNECTION_ENDED",r.ERR_CONNECTION_FAILED="ERR_CONNECTION_FAILED",r.ERR_NODE_NOT_STARTED="ERR_NODE_NOT_STARTED",r.ERR_ALREADY_ABORTED="ERR_ALREADY_ABORTED",r.ERR_TOO_MANY_ADDRESSES="ERR_TOO_MANY_ADDRESSES",r.ERR_NO_VALID_ADDRESSES="ERR_NO_VALID_ADDRESSES",r.ERR_RELAYED_DIAL="ERR_RELAYED_DIAL",r.ERR_DIALED_SELF="ERR_DIALED_SELF",r.ERR_DISCOVERED_SELF="ERR_DISCOVERED_SELF",r.ERR_DUPLICATE_TRANSPORT="ERR_DUPLICATE_TRANSPORT",r.ERR_ENCRYPTION_FAILED="ERR_ENCRYPTION_FAILED",r.ERR_HOP_REQUEST_FAILED="ERR_HOP_REQUEST_FAILED",r.ERR_INVALID_KEY="ERR_INVALID_KEY",r.ERR_INVALID_MESSAGE="ERR_INVALID_MESSAGE",r.ERR_INVALID_PARAMETERS="ERR_INVALID_PARAMETERS",r.ERR_INVALID_PEER="ERR_INVALID_PEER",r.ERR_MUXER_UNAVAILABLE="ERR_MUXER_UNAVAILABLE",r.ERR_NOT_FOUND="ERR_NOT_FOUND",r.ERR_TIMEOUT="ERR_TIMEOUT",r.ERR_TRANSPORT_UNAVAILABLE="ERR_TRANSPORT_UNAVAILABLE",r.ERR_TRANSPORT_DIAL_FAILED="ERR_TRANSPORT_DIAL_FAILED",r.ERR_UNSUPPORTED_PROTOCOL="ERR_UNSUPPORTED_PROTOCOL",r.ERR_PROTOCOL_HANDLER_ALREADY_REGISTERED="ERR_PROTOCOL_HANDLER_ALREADY_REGISTERED",r.ERR_INVALID_MULTIADDR="ERR_INVALID_MULTIADDR",r.ERR_SIGNATURE_NOT_VALID="ERR_SIGNATURE_NOT_VALID",r.ERR_FIND_SELF="ERR_FIND_SELF",r.ERR_NO_ROUTERS_AVAILABLE="ERR_NO_ROUTERS_AVAILABLE",r.ERR_CONNECTION_NOT_MULTIPLEXED="ERR_CONNECTION_NOT_MULTIPLEXED",r.ERR_NO_DIAL_TOKENS="ERR_NO_DIAL_TOKENS",r.ERR_KEYCHAIN_REQUIRED="ERR_KEYCHAIN_REQUIRED",r.ERR_INVALID_CMS="ERR_INVALID_CMS",r.ERR_MISSING_KEYS="ERR_MISSING_KEYS",r.ERR_NO_KEY="ERR_NO_KEY",r.ERR_INVALID_KEY_NAME="ERR_INVALID_KEY_NAME",r.ERR_INVALID_KEY_TYPE="ERR_INVALID_KEY_TYPE",r.ERR_KEY_ALREADY_EXISTS="ERR_KEY_ALREADY_EXISTS",r.ERR_INVALID_KEY_SIZE="ERR_INVALID_KEY_SIZE",r.ERR_KEY_NOT_FOUND="ERR_KEY_NOT_FOUND",r.ERR_OLD_KEY_NAME_INVALID="ERR_OLD_KEY_NAME_INVALID",r.ERR_NEW_KEY_NAME_INVALID="ERR_NEW_KEY_NAME_INVALID",r.ERR_PASSWORD_REQUIRED="ERR_PASSWORD_REQUIRED",r.ERR_PEM_REQUIRED="ERR_PEM_REQUIRED",r.ERR_CANNOT_READ_KEY="ERR_CANNOT_READ_KEY",r.ERR_MISSING_PRIVATE_KEY="ERR_MISSING_PRIVATE_KEY",r.ERR_MISSING_PUBLIC_KEY="ERR_MISSING_PUBLIC_KEY",r.ERR_INVALID_OLD_PASS_TYPE="ERR_INVALID_OLD_PASS_TYPE",r.ERR_INVALID_NEW_PASS_TYPE="ERR_INVALID_NEW_PASS_TYPE",r.ERR_INVALID_PASS_LENGTH="ERR_INVALID_PASS_LENGTH",r.ERR_NOT_IMPLEMENTED="ERR_NOT_IMPLEMENTED",r.ERR_WRONG_PING_ACK="ERR_WRONG_PING_ACK",r.ERR_INVALID_RECORD="ERR_INVALID_RECORD",r.ERR_ALREADY_SUCCEEDED="ERR_ALREADY_SUCCEEDED",r.ERR_NO_HANDLER_FOR_PROTOCOL="ERR_NO_HANDLER_FOR_PROTOCOL",r.ERR_TOO_MANY_OUTBOUND_PROTOCOL_STREAMS="ERR_TOO_MANY_OUTBOUND_PROTOCOL_STREAMS",r.ERR_TOO_MANY_INBOUND_PROTOCOL_STREAMS="ERR_TOO_MANY_INBOUND_PROTOCOL_STREAMS",r.ERR_CONNECTION_DENIED="ERR_CONNECTION_DENIED"})(b||(b={}));var zd=I(W(),1);async function*go(r,t){for await(let e of r)yield t(e)}async function*wo(r,t){yield*go(r,async e=>(await t.addressBook.add(e.id,e.multiaddrs),e))}function Ys(r){let t=new Set;return ye(r,e=>t.has(e.id.toString())?!1:(t.add(e.id.toString()),!0))}async function*Ws(r,t=1){let e=0;for await(let n of r)e++,yield n;if(e<t)throw(0,zd.default)(new Error("not found"),"NOT_FOUND")}var u0=I(Nr(),1);var Xs=class{constructor(t){if(!(t>0)||t-1&t)throw new Error("Max size for a FixedFIFO should be a power of two");this.buffer=new Array(t),this.mask=t-1,this.top=0,this.btm=0,this.next=null}push(t){return this.buffer[this.top]!==void 0?!1:(this.buffer[this.top]=t,this.top=this.top+1&this.mask,!0)}shift(){let t=this.buffer[this.btm];if(t!==void 0)return this.buffer[this.btm]=void 0,this.btm=this.btm+1&this.mask,t}isEmpty(){return this.buffer[this.btm]===void 0}},Ri=class{constructor(t={}){this.hwm=t.splitLimit??16,this.head=new Xs(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 Xs(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()}};function kn(r={}){return vv(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 vv(r,t){t=t??{};let e=t.onEnd,n=new Ri,i,o,s,a=async()=>n.isEmpty()?s?{done:!0}:await new Promise((m,y)=>{o=g=>{o=null,n.push(g);try{m(r(n))}catch(E){y(E)}return i}}):r(n),c=m=>o!=null?o(m):(n.push(m),i),l=m=>(n=new Ri,o!=null?o({error:m}):(n.push({error:m}),i)),u=m=>{if(s)return i;if(t?.objectMode!==!0&&m?.byteLength==null)throw new Error("objectMode was not true but tried to push non-Uint8Array value");return c({done:!1,value:m})},f=m=>s?i:(s=!0,m!=null?l(m):c({done:!0})),d=()=>(n=new Ri,f(),{done:!0}),h=m=>(f(m),{done:!0});if(i={[Symbol.asyncIterator](){return this},next:a,return:d,throw:h,push:u,end:f,get readableLength(){return n.size}},e==null)return i;let p=i;return i={[Symbol.asyncIterator](){return this},next(){return p.next()},throw(m){return p.throw(m),e!=null&&(e(m),e=void 0),{done:!0}},return(){return p.return(),e!=null&&(e(),e=void 0),{done:!0}},push:u,end(m){return p.end(m),e!=null&&(e(m),e=void 0),i},get readableLength(){return p.readableLength}},i}async function*Or(...r){let t=kn({objectMode:!0});Promise.resolve().then(async()=>{try{await Promise.all(r.map(async e=>{for await(let n of e)t.push(n)})),t.end()}catch(e){t.end(e)}}),yield*t}var bv=(...r)=>{let t;for(;r.length>0;)t=r.shift()(t);return t},Zd=r=>r!=null&&(typeof r[Symbol.asyncIterator]=="function"||typeof r[Symbol.iterator]=="function"||typeof r.next=="function"),Ql=r=>r!=null&&typeof r.sink=="function"&&Zd(r.source),_v=r=>t=>{let e=r.sink(t);if(e.then!=null){let n=kn({objectMode:!0});return e.then(()=>{n.end()},o=>{n.end(o)}),Or(n,async function*(){yield*r.source,n.end()}())}return r.source};function Lt(r,...t){if(Ql(r)){let n=r;r=()=>n.source}else if(Zd(r)){let n=r;r=()=>n}let e=[r,...t];if(e.length>1&&Ql(e[e.length-1])&&(e[e.length-1]=e[e.length-1].sink),e.length>2)for(let n=1;n<e.length-1;n++)Ql(e[n])&&(e[n]=_v(e[n]));return bv(...e)}async function Se(r){for await(let t of r)return t}var ta=I(Xl(),1),f0=I(lr(),1),l0=N("libp2p:peer-routing"),js=class{constructor(t,e){this.components=t,this.routers=e.routers??[],this.refreshManagerInit=e.refreshManager??{},this.started=!1,this._findClosestPeersTask=this._findClosestPeersTask.bind(this)}isStarted(){return this.started}async start(){this.started||this.routers.length===0||this.timeoutId!=null||this.refreshManagerInit.enabled===!1||(this.timeoutId=(0,ta.setDelayedInterval)(this._findClosestPeersTask,this.refreshManagerInit.interval,this.refreshManagerInit.bootDelay),this.started=!0)}async _findClosestPeersTask(){if(this.abortController==null)try{this.abortController=new u0.TimeoutController(this.refreshManagerInit.timeout??1e4);try{(0,f0.setMaxListeners)?.(1/0,this.abortController.signal)}catch{}await Ye(this.getClosestPeers(this.components.peerId.toBytes(),{signal:this.abortController.signal}))}catch(t){l0.error(t)}finally{this.abortController?.clear(),this.abortController=void 0}}async stop(){(0,ta.clearDelayedInterval)(this.timeoutId),this.abortController?.abort(),this.started=!1}async findPeer(t,e){if(this.routers.length===0)throw(0,xo.default)(new Error("No peer routers available"),b.ERR_NO_ROUTERS_AVAILABLE);if(t.toString()===this.components.peerId.toString())throw(0,xo.default)(new Error("Should not try to find self"),b.ERR_FIND_SELF);let n=await Lt(Or(...this.routers.map(i=>async function*(){try{yield await i.findPeer(t,e)}catch(o){l0.error(o)}}())),i=>ye(i,Boolean),i=>wo(i,this.components.peerStore),async i=>await Se(i));if(n!=null)return n;throw(0,xo.default)(new Error(X.NOT_FOUND),b.ERR_NOT_FOUND)}async*getClosestPeers(t,e){if(this.routers.length===0)throw(0,xo.default)(new Error("No peer routers available"),b.ERR_NO_ROUTERS_AVAILABLE);yield*Lt(Or(...this.routers.map(n=>n.getClosestPeers(t,e))),n=>wo(n,this.components.peerStore),n=>Ys(n),n=>Ws(n))}};var en=I(W(),1);var ea=class{constructor(t,e){this.routers=e.routers??[],this.started=!1,this.components=t}isStarted(){return this.started}async start(){this.started=!0}async stop(){this.started=!1}async*findProviders(t,e={}){if(this.routers.length===0)throw(0,en.default)(new Error("No content this.routers available"),b.ERR_NO_ROUTERS_AVAILABLE);yield*Lt(Or(...this.routers.map(n=>n.findProviders(t,e))),n=>wo(n,this.components.peerStore),n=>Ys(n),n=>Ws(n))}async provide(t,e={}){if(this.routers.length===0)throw(0,en.default)(new Error("No content routers available"),b.ERR_NO_ROUTERS_AVAILABLE);await Promise.all(this.routers.map(async n=>await n.provide(t,e)))}async put(t,e,n){if(!this.isStarted())throw(0,en.default)(new Error(X.NOT_STARTED_YET),b.DHT_NOT_STARTED);let i=this.components.dht;i!=null&&await Ye(i.put(t,e,n))}async get(t,e){if(!this.isStarted())throw(0,en.default)(new Error(X.NOT_STARTED_YET),b.DHT_NOT_STARTED);let n=this.components.dht;if(n!=null){for await(let i of n.get(t,e))if(i.name==="VALUE")return i.value}throw(0,en.default)(new Error(X.NOT_FOUND),b.ERR_NOT_FOUND)}async*getMany(t,e,n){if(!this.isStarted())throw(0,en.default)(new Error(X.NOT_STARTED_YET),b.DHT_NOT_STARTED);if(e==null||e===0)return;let i=0,o=this.components.dht;if(o!=null){for await(let s of o.get(t,n))if(s.name==="VALUE"&&(yield{from:s.from,val:s.value},i++,i===e))break}if(i===0)throw(0,en.default)(new Error(X.NOT_FOUND),b.ERR_NOT_FOUND)}};var at=class extends Error{constructor(t,e,n){super(t),this.code=e,this.name=n?.name??"CodeError",this.props=n??{}}};var Jl=Symbol.for("@libp2p/peer-id");function Mn(r){return r!=null&&Boolean(r[Jl])}var Nv=Symbol.for("nodejs.util.inspect.custom"),h0=Object.values(tn).map(r=>r.decoder).reduce((r,t)=>r.or(t),tn.identity.decoder),d0=114,jl=36,tu=37,vo=class{constructor(t){this.type=t.type,this.multihash=t.multihash,this.privateKey=t.privateKey,Object.defineProperty(this,"string",{enumerable:!1,writable:!0})}get[Symbol.toStringTag](){return`PeerId(${this.toString()})`}get[Jl](){return!0}toString(){return this.string==null&&(this.string=Vt.encode(this.multihash.bytes).slice(1)),this.string}toCID(){return pt.createV1(d0,this.multihash)}toBytes(){return this.multihash.bytes}toJSON(){return this.toString()}equals(t){if(t instanceof Uint8Array)return xt(this.multihash.bytes,t);if(typeof t=="string")return tt(t).equals(this);if(t?.multihash?.bytes!=null)return xt(this.multihash.bytes,t.multihash.bytes);throw new Error("not valid Id")}[Nv](){return`PeerId(${this.toString()})`}},Un=class extends vo{constructor(t){super({...t,type:"RSA"}),this.type="RSA",this.publicKey=t.publicKey}},Fn=class extends vo{constructor(t){super({...t,type:"Ed25519"}),this.type="Ed25519",this.publicKey=t.multihash.digest}},Kn=class extends vo{constructor(t){super({...t,type:"secp256k1"}),this.type="secp256k1",this.publicKey=t.multihash.digest}};function Ht(r){if(r.type==="RSA")return new Un(r);if(r.type==="Ed25519")return new Fn(r);if(r.type==="secp256k1")return new Kn(r);throw new at("Not a PeerId","ERR_INVALID_PARAMETERS")}function tt(r,t){if(t=t??h0,r.charAt(0)==="1"||r.charAt(0)==="Q"){let e=Bn(Vt.decode(`z${r}`));return r.startsWith("12D")?new Fn({multihash:e}):r.startsWith("16U")?new Kn({multihash:e}):new Un({multihash:e})}return rn(h0.decode(r))}function rn(r){try{let t=Bn(r);if(t.code===jr.code){if(t.digest.length===jl)return new Fn({multihash:t});if(t.digest.length===tu)return new Kn({multihash:t})}if(t.code===te.code)return new Un({multihash:t})}catch{return Ov(pt.decode(r))}throw new Error("Supplied PeerID CID is invalid")}function Ov(r){if(r==null||r.multihash==null||r.version==null||r.version===1&&r.code!==d0)throw new Error("Supplied PeerID CID is invalid");let t=r.multihash;if(t.code===te.code)return new Un({multihash:r.multihash});if(t.code===jr.code){if(t.digest.length===jl)return new Fn({multihash:r.multihash});if(t.digest.length===tu)return new Kn({multihash:r.multihash})}throw new Error("Supplied PeerID CID is invalid")}async function nn(r,t){return r.length===jl?new Fn({multihash:sr(jr.code,r),privateKey:t}):r.length===tu?new Kn({multihash:sr(jr.code,r),privateKey:t}):new Un({multihash:await te.digest(r),publicKey:r,privateKey:t})}var kv=r=>r,ra=class extends Pt{constructor(t,e){super();let{listen:n=[],announce:i=[]}=e;this.components=t,this.listen=n.map(o=>o.toString()),this.announce=new Set(i.map(o=>o.toString())),this.observed=new Set,this.announceFilter=e.announceFilter??kv}getListenAddrs(){return Array.from(this.listen).map(t=>j(t))}getAnnounceAddrs(){return Array.from(this.announce).map(t=>j(t))}getObservedAddrs(){return Array.from(this.observed).map(t=>j(t))}confirmObservedAddr(t){}removeObservedAddr(t){}addObservedAddr(t){let e=j(t),n=e.getPeerId();n!=null&&tt(n).equals(this.components.peerId)&&(e=e.decapsulate(j(`/p2p/${this.components.peerId.toString()}`)));let i=e.toString();this.observed.has(i)||(this.observed.add(i),this.dispatchEvent(new q("change:addresses")))}getAddresses(){let t=this.getAnnounceAddrs().map(n=>n.toString());t.length===0&&(t=this.components.transportManager.getAddrs().map(n=>n.toString())),t=t.concat(this.getObservedAddrs().map(n=>n.toString()));let e=new Set(t);return this.announceFilter(Array.from(e).map(n=>j(n))).map(n=>n.protos().pop()?.path===!0||n.getPeerId()===this.components.peerId.toString()?n:n.encapsulate(`/p2p/${this.components.peerId.toString()}`))}};var fa=I(W(),1);var b0=I(v0(),1),Ne=b0.default;var _0=N("libp2p:connection-manager:latency-monitor:visibility-change-emitter"),oa=class extends Pt{constructor(){super(),this.hidden="hidden",this.visibilityChange="visibilityChange",globalThis.document!=null&&(this._initializeVisibilityVarNames(),this._addVisibilityChangeListener())}_initializeVisibilityVarNames(){let t="hidden",e="visibilitychange";typeof globalThis.document.hidden<"u"?(t="hidden",e="visibilitychange"):typeof globalThis.document.mozHidden<"u"?(t="mozHidden",e="mozvisibilitychange"):typeof globalThis.document.msHidden<"u"?(t="msHidden",e="msvisibilitychange"):typeof globalThis.document.webkitHidden<"u"&&(t="webkitHidden",e="webkitvisibilitychange"),this.hidden=t,this.visibilityChange=e}_addVisibilityChangeListener(){typeof globalThis.document.addEventListener>"u"||typeof document[this.hidden]>"u"?_0("Checking page visibility requires a browser that supports the Page Visibility API."):globalThis.document.addEventListener(this.visibilityChange,this._handleVisibilityChange.bind(this),!1)}isVisible(){if(!(this.hidden===void 0||document[this.hidden]===void 0))return document[this.hidden]==null}_handleVisibilityChange(){let t=globalThis.document[this.hidden]===!1;_0(t?"Page Visible":"Page Hidden"),this.dispatchEvent(new q("visibilityChange",{detail:t}))}};var kr=N("libp2p:connection-manager:latency-monitor"),sa=class extends Pt{constructor(t={}){super();let{latencyCheckIntervalMs:e,dataEmitIntervalMs:n,asyncTestFn:i,latencyRandomPercentage:o}=t;this.latencyCheckIntervalMs=e??500,this.latencyRandomPercentage=o??10,this.latencyCheckMultiply=2*(this.latencyRandomPercentage/100)*this.latencyCheckIntervalMs,this.latencyCheckSubtract=this.latencyCheckMultiply/2,this.dataEmitIntervalMs=n===null||n===0?void 0:n??5*1e3,kr("latencyCheckIntervalMs: %s dataEmitIntervalMs: %s",this.latencyCheckIntervalMs,this.dataEmitIntervalMs),this.dataEmitIntervalMs!=null?kr("Expecting ~%s events per summary",this.latencyCheckIntervalMs/this.dataEmitIntervalMs):kr("Not emitting summaries"),this.asyncTestFn=i,globalThis.process?.hrtime!=null?(kr("Using process.hrtime for timing"),this.now=globalThis.process.hrtime,this.getDeltaMS=s=>{let a=this.now(s);return a[0]*1e3+a[1]/1e6}):typeof window<"u"&&window.performance?.now!=null?(kr("Using performance.now for timing"),this.now=window.performance.now.bind(window.performance),this.getDeltaMS=s=>Math.round(this.now()-s)):(kr("Using Date.now for timing"),this.now=Date.now,this.getDeltaMS=s=>this.now()-s),this.latencyData=this.initLatencyData()}start(){qv()&&(this.visibilityChangeEmitter=new oa,this.visibilityChangeEmitter.addEventListener("visibilityChange",t=>{let{detail:e}=t;e?this._startTimers():(this._emitSummary(),this._stopTimers())})),this.visibilityChangeEmitter?.isVisible()===!0&&this._startTimers()}stop(){this._stopTimers()}_startTimers(){this.checkLatencyID==null&&(this.checkLatency(),this.dataEmitIntervalMs!=null&&(this.emitIntervalID=setInterval(()=>this._emitSummary(),this.dataEmitIntervalMs),typeof this.emitIntervalID.unref=="function"&&this.emitIntervalID.unref()))}_stopTimers(){this.checkLatencyID!=null&&(clearTimeout(this.checkLatencyID),this.checkLatencyID=void 0),this.emitIntervalID!=null&&(clearInterval(this.emitIntervalID),this.emitIntervalID=void 0)}_emitSummary(){let t=this.getSummary();t.events>0&&this.dispatchEvent(new q("data",{detail:t}))}getSummary(){let t={events:this.latencyData.events,minMs:this.latencyData.minMs,maxMs:this.latencyData.maxMs,avgMs:this.latencyData.events>0?this.latencyData.totalMs/this.latencyData.events:Number.POSITIVE_INFINITY,lengthMs:this.getDeltaMS(this.latencyData.startTime)};return this.latencyData=this.initLatencyData(),kr.trace("Summary: %O",t),t}checkLatency(){let t=Math.random()*this.latencyCheckMultiply-this.latencyCheckSubtract,e={deltaOffset:Math.ceil(this.latencyCheckIntervalMs+t),startTime:this.now()},n=()=>{if(this.checkLatencyID==null)return;let i=this.getDeltaMS(e.startTime)-e.deltaOffset;this.checkLatency(),this.latencyData.events++,this.latencyData.minMs=Math.min(this.latencyData.minMs,i),this.latencyData.maxMs=Math.max(this.latencyData.maxMs,i),this.latencyData.totalMs+=i,kr.trace("MS: %s Data: %O",i,this.latencyData)};kr.trace("localData: %O",e),this.checkLatencyID=setTimeout(()=>{this.asyncTestFn!=null?(e.deltaOffset=0,e.startTime=this.now(),this.asyncTestFn(n)):(e.deltaOffset-=1,n())},e.deltaOffset),typeof this.checkLatencyID.unref=="function"&&this.checkLatencyID.unref()}initLatencyData(){return{startTime:this.now(),minMs:Number.POSITIVE_INFINITY,maxMs:Number.NEGATIVE_INFINITY,events:0,totalMs:0}}};function qv(){return typeof globalThis.window<"u"}var ha=I(lr(),1);var aa="OPEN",ru="CLOSING",ca="CLOSED";function Mr(r,t){let e={[Symbol.iterator]:()=>e,next:()=>{let n=r.next(),i=n.value;return n.done===!0||i==null?{done:!0,value:void 0}:{done:!1,value:t(i)}}};return e}var bo=class{constructor(t){if(this.map=new Map,t!=null)for(let[e,n]of t.entries())this.map.set(e.toString(),n)}[Symbol.iterator](){return this.entries()}clear(){this.map.clear()}delete(t){this.map.delete(t.toString())}entries(){return Mr(this.map.entries(),t=>[tt(t[0]),t[1]])}forEach(t){this.map.forEach((e,n)=>{t(e,tt(n),this)})}get(t){return this.map.get(t.toString())}has(t){return this.map.has(t.toString())}set(t,e){this.map.set(t.toString(),e)}keys(){return Mr(this.map.keys(),t=>tt(t))}values(){return this.map.values()}get size(){return this.map.size}};var Ur=class{constructor(t){if(this.set=new Set,t!=null)for(let e of t)this.set.add(e.toString())}get size(){return this.set.size}[Symbol.iterator](){return this.values()}add(t){this.set.add(t.toString())}clear(){this.set.clear()}delete(t){this.set.delete(t.toString())}entries(){return Mr(this.set.entries(),t=>{let e=tt(t[0]);return[e,e]})}forEach(t){this.set.forEach(e=>{let n=tt(e);t(n,n,this)})}has(t){return this.set.has(t.toString())}values(){return Mr(this.set.values(),t=>tt(t))}intersection(t){let e=new Ur;for(let n of t)this.has(n)&&e.add(n);return e}difference(t){let e=new Ur;for(let n of this)t.has(n)||e.add(n);return e}union(t){let e=new Ur;for(let n of t)e.add(n);for(let n of this)e.add(n);return e}};var Pi=class{constructor(t){if(this.list=[],t!=null)for(let e of t)this.list.push(e.toString())}[Symbol.iterator](){return Mr(this.list.entries(),t=>tt(t[1]))}concat(t){let e=new Pi(this);for(let n of t)e.push(n);return e}entries(){return Mr(this.list.entries(),t=>[t[0],tt(t[1])])}every(t){return this.list.every((e,n)=>t(tt(e),n,this))}filter(t){let e=new Pi;return this.list.forEach((n,i)=>{let o=tt(n);t(o,i,this)&&e.push(o)}),e}find(t){let e=this.list.find((n,i)=>t(tt(n),i,this));if(e!=null)return tt(e)}findIndex(t){return this.list.findIndex((e,n)=>t(tt(e),n,this))}forEach(t){this.list.forEach((e,n)=>{t(tt(e),n,this)})}includes(t){return this.list.includes(t.toString())}indexOf(t){return this.list.indexOf(t.toString())}pop(){let t=this.list.pop();if(t!=null)return tt(t)}push(...t){for(let e of t)this.list.push(e.toString())}shift(){let t=this.list.shift();if(t!=null)return tt(t)}unshift(...t){let e=this.list.length;for(let n=t.length-1;n>-1;n--)e=this.list.unshift(t[n].toString());return e}get length(){return this.list.length}};var yu=I(Nr(),1);var S0="keep-alive";var vp=I(Ep(),1);var xp=I(W(),1);function ua(r){if(Mn(r))return{peerId:r};if(_e(r)){let t=r.getPeerId();return{multiaddr:r,peerId:t==null?void 0:tt(t)}}throw(0,xp.default)(new Error(`${r} is not a PeerId or a Multiaddr`),b.ERR_INVALID_MULTIADDR)}var Wt=N("libp2p:connection-manager"),A2={maxConnections:1/0,minConnections:0,maxEventLoopDelay:1/0,pollInterval:2e3,autoDialInterval:1e4,inboundConnectionThreshold:5,maxIncomingPendingConnections:10},R2=6e4,da=class extends Pt{constructor(t,e){if(super(),this.opts=Ne.call({ignoreUndefined:!0},A2,e),this.opts.maxConnections<this.opts.minConnections)throw(0,fa.default)(new Error("Connection Manager maxConnections must be greater than minConnections"),b.ERR_INVALID_PARAMETERS);Wt("options: %o",this.opts),this.components=t,this.connections=new Map,this.started=!1,e.maxEventLoopDelay!=null&&e.maxEventLoopDelay>0&&e.maxEventLoopDelay!==1/0&&(this.latencyMonitor=new sa({latencyCheckIntervalMs:e.pollInterval,dataEmitIntervalMs:e.pollInterval}));try{(0,ha.setMaxListeners)?.(1/0,this)}catch{}this.onConnect=this.onConnect.bind(this),this.onDisconnect=this.onDisconnect.bind(this),this.startupReconnectTimeout=e.startupReconnectTimeout??R2,this.dialTimeout=e.dialTimeout??3e4,this.allow=(e.allow??[]).map(n=>j(n)),this.deny=(e.deny??[]).map(n=>j(n)),this.inboundConnectionRateLimiter=new vp.RateLimiterMemory({points:this.opts.inboundConnectionThreshold,duration:1}),this.incomingPendingConnections=0}isStarted(){return this.started}async start(){this.components.metrics?.registerMetricGroup("libp2p_connection_manager_connections",{calculate:()=>{let t={inbound:0,outbound:0};for(let e of this.connections.values())for(let n of e)n.stat.direction==="inbound"?t.inbound++:t.outbound++;return t}}),this.components.metrics?.registerMetricGroup("libp2p_protocol_streams_total",{label:"protocol",calculate:()=>{let t={};for(let e of this.connections.values())for(let n of e)for(let i of n.streams){let o=`${i.stat.direction} ${i.stat.protocol??"unnegotiated"}`;t[o]=(t[o]??0)+1}return t}}),this.components.metrics?.registerMetricGroup("libp2p_connection_manager_protocol_streams_per_connection_90th_percentile",{label:"protocol",calculate:()=>{let t={};for(let n of this.connections.values())for(let i of n){let o={};for(let s of i.streams){let a=`${s.stat.direction} ${s.stat.protocol??"unnegotiated"}`;o[a]=(o[a]??0)+1}for(let[s,a]of Object.entries(o))t[s]=t[s]??[],t[s].push(a)}let e={};for(let[n,i]of Object.entries(t)){i=i.sort((s,a)=>s-a);let o=Math.floor(i.length*.9);e[n]=i[o]}return e}}),this.latencyMonitor?.start(),this._onLatencyMeasure=this._onLatencyMeasure.bind(this),this.latencyMonitor?.addEventListener("data",this._onLatencyMeasure),this.started=!0,Wt("started")}async afterStart(){this.components.upgrader.addEventListener("connection",this.onConnect),this.components.upgrader.addEventListener("connectionEnd",this.onDisconnect),Promise.resolve().then(async()=>{let t=[];for(let e of await this.components.peerStore.all())(await this.components.peerStore.getTags(e.id)).filter(o=>o.name===S0).length>0&&t.push(e.id);this.connectOnStartupController?.clear(),this.connectOnStartupController=new yu.TimeoutController(this.startupReconnectTimeout);try{(0,ha.setMaxListeners)?.(1/0,this.connectOnStartupController.signal)}catch{}await Promise.all(t.map(async e=>{await this.openConnection(e,{signal:this.connectOnStartupController?.signal}).catch(n=>{Wt.error(n)})}))}).catch(t=>{Wt.error(t)}).finally(()=>{this.connectOnStartupController?.clear()})}async beforeStop(){this.connectOnStartupController?.abort(),this.components.upgrader.removeEventListener("connection",this.onConnect),this.components.upgrader.removeEventListener("connectionEnd",this.onDisconnect)}async stop(){this.latencyMonitor?.removeEventListener("data",this._onLatencyMeasure),this.latencyMonitor?.stop(),this.started=!1,await this._close(),Wt("stopped")}async _close(){let t=[];for(let e of this.connections.values())for(let n of e)t.push((async()=>{try{await n.close()}catch(i){Wt.error(i)}})());Wt("closing %d connections",t.length),await Promise.all(t),this.connections.clear()}onConnect(t){this._onConnect(t).catch(e=>{Wt.error(e)})}async _onConnect(t){let{detail:e}=t;if(!this.started){await e.close();return}let n=e.remotePeer,i=n.toString(),o=this.connections.get(i);o!=null?o.push(e):this.connections.set(i,[e]),n.publicKey!=null&&await this.components.peerStore.keyBook.set(n,n.publicKey);let s=this.getConnections().length,a=s-this.opts.maxConnections;await this._checkMaxLimit("maxConnections",s,a),this.dispatchEvent(new q("peer:connect",{detail:e}))}onDisconnect(t){let{detail:e}=t;if(!this.started)return;let n=e.remotePeer.toString(),i=this.connections.get(n);i!=null&&i.length>1?(i=i.filter(o=>o.id!==e.id),this.connections.set(n,i)):i!=null&&(this.connections.delete(n),this.dispatchEvent(new q("peer:disconnect",{detail:e})))}getConnections(t){if(t!=null)return this.connections.get(t.toString())??[];let e=[];for(let n of this.connections.values())e=e.concat(n);return e}getConnectionsMap(){return this.connections}async openConnection(t,e={}){let{peerId:n,multiaddr:i}=ua(t);if(n==null&&i==null)throw(0,fa.default)(new TypeError("Can only open connections to PeerIds or Multiaddrs"),b.ERR_INVALID_PARAMETERS);if(n!=null){Wt("dial to",n);let s=this.getConnections(n);if(s.length>0)return Wt("had an existing connection to %p",n),s[0]}let o;if(e?.signal==null){o=new yu.TimeoutController(this.dialTimeout),e.signal=o.signal;try{(0,ha.setMaxListeners)?.(1/0,o.signal)}catch{}}try{let s=await this.components.dialer.dial(t,e),a=this.connections.get(s.remotePeer.toString());a==null&&(a=[],this.connections.set(s.remotePeer.toString(),a));let c=!1;for(let l of a)l.id===s.id&&(c=!0);return c||a.push(s),s}finally{o?.clear()}}async closeConnections(t){let e=this.connections.get(t.toString())??[];await Promise.all(e.map(async n=>await n.close()))}getAll(t){if(!Mn(t))throw(0,fa.default)(new Error("peerId must be an instance of peer-id"),b.ERR_INVALID_PARAMETERS);let e=t.toString(),n=this.connections.get(e);return n!=null?n.filter(i=>i.stat.status===aa):[]}_onLatencyMeasure(t){let{detail:e}=t;this._checkMaxLimit("maxEventLoopDelay",e.avgMs,1).catch(n=>{Wt.error(n)})}async _checkMaxLimit(t,e,n=1){let i=this.opts[t];if(i==null){Wt.trace("limit %s was not set so it cannot be applied",t);return}Wt.trace("checking limit of %s. current value: %d of %d",t,e,i),e>i&&(Wt("%s: limit exceeded: %p, %d/%d, pruning %d connection(s)",this.components.peerId,t,e,i,n),await this._pruneConnections(n))}async _pruneConnections(t){let e=this.getConnections(),n=new bo;for(let s of e){let a=s.remotePeer;if(n.has(a))continue;let c=await this.components.peerStore.getTags(a);n.set(a,c.reduce((l,u)=>l+u.value,0))}let i=e.sort((s,a)=>{let c=n.get(s.remotePeer)??0,l=n.get(a.remotePeer)??0;if(c>l)return 1;if(c<l)return-1;let u=s.stat.timeline.open,f=a.stat.timeline.open;return u<f?1:u>f?-1:0}),o=[];for(let s of i)if(Wt("too many connections open - closing a connection to %p",s.remotePeer),o.push(s),o.length===t)break;await Promise.all(o.map(async s=>{try{await s.close()}catch(a){Wt.error(a)}this.onDisconnect(new q("connectionEnd",{detail:s}))}))}async acceptIncomingConnection(t){if(this.deny.some(i=>t.remoteAddr.toString().startsWith(i.toString())))return Wt("connection from %s refused - connection remote address was in deny list",t.remoteAddr),!1;if(this.allow.some(i=>t.remoteAddr.toString().startsWith(i.toString())))return this.incomingPendingConnections++,!0;if(this.incomingPendingConnections===this.opts.maxIncomingPendingConnections)return Wt("connection from %s refused - incomingPendingConnections exceeded by peer %s",t.remoteAddr),!1;if(t.remoteAddr.isThinWaistAddress()){let i=t.remoteAddr.nodeAddress().address;try{await this.inboundConnectionRateLimiter.consume(i,1)}catch{return Wt("connection from %s refused - inboundConnectionThreshold exceeded by host %s",i,t.remoteAddr),!1}}return this.getConnections().length<this.opts.maxConnections?(this.incomingPendingConnections++,!0):(Wt("connection from %s refused - maxConnections exceeded",t.remoteAddr),!1)}afterUpgradeInbound(){this.incomingPendingConnections--}};var gu=I(Wl(),1),on=N("libp2p:connection-manager:auto-dialler"),I2={enabled:!0,minConnections:0,autoDialInterval:1e4},pa=class{constructor(t,e){this.components=t,this.options=Ne.call({ignoreUndefined:!0},I2,e),this.running=!1,this._autoDial=this._autoDial.bind(this),on("options: %j",this.options)}isStarted(){return this.running}async start(){if(!this.options.enabled){on("not enabled");return}this.running=!0,this._autoDial().catch(t=>{on.error("could start autodial",t)}),on("started")}async stop(){if(!this.options.enabled){on("not enabled");return}this.running=!1,this.autoDialTimeout!=null&&this.autoDialTimeout.clear(),on("stopped")}async _autoDial(){this.autoDialTimeout!=null&&this.autoDialTimeout.clear();let t=this.options.minConnections;if(this.components.connectionManager.getConnections().length>=t){this.autoDialTimeout=(0,gu.default)(this._autoDial,this.options.autoDialInterval);return}let e=await this.components.peerStore.all();e=e.filter(n=>!(n.id.equals(this.components.peerId)||n.addresses.length===0)),e=e.sort(()=>Math.random()>.5?1:-1),e=e.sort((n,i)=>i.protocols.length>n.protocols.length||i.id.publicKey!=null&&n.id.publicKey==null?1:-1);for(let n=0;this.running&&n<e.length&&this.components.connectionManager.getConnections().length<t;n++){if(!this.running)return;let i=e[n];if(this.components.connectionManager.getConnections(i.id).length===0){on("connecting to a peerStore stored peer %p",i.id);try{await this.components.connectionManager.openConnection(i.id)}catch(o){on.error("could not connect to peerStore stored peer",o)}}}this.running&&(this.autoDialTimeout=(0,gu.default)(this._autoDial,this.options.autoDialInterval))}};var Lm=I(W(),1);var T2=V("dns4"),C2=V("dns6"),D2=V("dnsaddr"),ki=le(V("dns"),D2,T2,C2),ma=le(V("ip4"),V("ip6")),To=le(Y(ma,V("tcp")),Y(ki,V("tcp"))),_p=Y(ma,V("udp")),P2=Y(_p,V("utp")),L2=Y(_p,V("quic")),Ao=le(Y(To,V("ws")),Y(ki,V("ws"))),Ro=le(Y(To,V("wss")),Y(ki,V("wss"))),wu=le(Y(To,V("http")),Y(ma,V("http")),Y(ki,V("http"))),Eu=le(Y(To,V("https")),Y(ma,V("https")),Y(ki,V("https"))),Sp=le(Y(Ao,V("p2p-webrtc-star"),V("p2p")),Y(Ro,V("p2p-webrtc-star"),V("p2p")),Y(Ao,V("p2p-webrtc-star")),Y(Ro,V("p2p-webrtc-star"))),sD=le(Y(Ao,V("p2p-websocket-star"),V("p2p")),Y(Ro,V("p2p-websocket-star"),V("p2p")),Y(Ao,V("p2p-websocket-star")),Y(Ro,V("p2p-websocket-star"))),Ap=le(Y(wu,V("p2p-webrtc-direct"),V("p2p")),Y(Eu,V("p2p-webrtc-direct"),V("p2p")),Y(wu,V("p2p-webrtc-direct")),Y(Eu,V("p2p-webrtc-direct"))),Io=le(Ao,Ro,wu,Eu,Sp,Ap,To,P2,L2,ki),aD=le(Y(Io,V("p2p-stardust"),V("p2p")),Y(Io,V("p2p-stardust"))),sn=le(Y(Io,V("p2p")),Sp,Ap,V("p2p")),bp=le(Y(sn,V("p2p-circuit"),sn),Y(sn,V("p2p-circuit")),Y(V("p2p-circuit"),sn),Y(Io,V("p2p-circuit")),Y(V("p2p-circuit"),Io),V("p2p-circuit")),Rp=()=>le(Y(bp,Rp),bp),qn=Rp(),cD=le(Y(qn,sn,qn),Y(sn,qn),Y(qn,sn),qn,sn);function Ip(r){function t(e){let n;try{n=j(e)}catch{return!1}let i=r(n.protoNames());return i===null?!1:i===!0||i===!1?i:i.length===0}return t}function Y(...r){function t(e){if(e.length<r.length)return null;let n=e;return r.some(i=>(n=typeof i=="function"?i().partialMatch(e):i.partialMatch(e),Array.isArray(n)&&(e=n),n===null)),n}return{toString:function(){return"{ "+r.join(" ")+" }"},input:r,matches:Ip(t),partialMatch:t}}function le(...r){function t(n){let i=null;return r.some(o=>{let s=typeof o=="function"?o().partialMatch(n):o.partialMatch(n);return s!=null?(i=s,!0):!1}),i}return{toString:function(){return"{ "+r.join(" ")+" }"},input:r,matches:Ip(t),partialMatch:t}}function V(r){let t=r;function e(i){let o;try{o=j(i)}catch{return!1}let s=o.protoNames();return s.length===1&&s[0]===t}function n(i){return i.length===0?null:i[0]===t?i.slice(1):null}return{toString:function(){return t},matches:e,partialMatch:n}}var Lu=I(Su(),1),pm=I(sm(),1),Bu=I(Pu(),1),mm=I(dm(),1),ym=I($n(),1);function q2(){ym.default._configure(),Lu.default._configure(pm.default),Bu.default._configure(mm.default)}q2();var gm=["uint64","int64","sint64","fixed64","sfixed64"];function H2(r){for(let t of gm){if(r[t]==null)continue;let e=r[t];r[t]=function(){return BigInt(e.call(this).toString())}}return r}function Nu(r){return H2(new Lu.default(r))}function $2(r){for(let t of gm){if(r[t]==null)continue;let e=r[t];r[t]=function(n){return e.call(this,n.toString())}}return r}function Ou(){return $2(Bu.default.create())}function bt(r,t){let e=Nu(r instanceof Uint8Array?r:r.subarray());return t.decode(e)}function _t(r,t){let e=Ou();return t.encode(r,e,{lengthDelimited:!1}),e.finish()}var Ui;(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"})(Ui||(Ui={}));function xa(r,t,e,n){return{name:r,type:t,encode:e,decode:n}}function ln(r){function t(i){if(r[i.toString()]==null)throw new Error("Invalid enum value");return r[i]}let e=function(o,s){let a=t(o);s.int32(a)},n=function(o){let s=o.int32();return t(s)};return xa("enum",Ui.VARINT,e,n)}function St(r,t){return xa("message",Ui.LENGTH_DELIMITED,r,t)}var $;(function(r){let t;(function(a){a.SUCCESS="SUCCESS",a.HOP_SRC_ADDR_TOO_LONG="HOP_SRC_ADDR_TOO_LONG",a.HOP_DST_ADDR_TOO_LONG="HOP_DST_ADDR_TOO_LONG",a.HOP_SRC_MULTIADDR_INVALID="HOP_SRC_MULTIADDR_INVALID",a.HOP_DST_MULTIADDR_INVALID="HOP_DST_MULTIADDR_INVALID",a.HOP_NO_CONN_TO_DST="HOP_NO_CONN_TO_DST",a.HOP_CANT_DIAL_DST="HOP_CANT_DIAL_DST",a.HOP_CANT_OPEN_DST_STREAM="HOP_CANT_OPEN_DST_STREAM",a.HOP_CANT_SPEAK_RELAY="HOP_CANT_SPEAK_RELAY",a.HOP_CANT_RELAY_TO_SELF="HOP_CANT_RELAY_TO_SELF",a.STOP_SRC_ADDR_TOO_LONG="STOP_SRC_ADDR_TOO_LONG",a.STOP_DST_ADDR_TOO_LONG="STOP_DST_ADDR_TOO_LONG",a.STOP_SRC_MULTIADDR_INVALID="STOP_SRC_MULTIADDR_INVALID",a.STOP_DST_MULTIADDR_INVALID="STOP_DST_MULTIADDR_INVALID",a.STOP_RELAY_REFUSED="STOP_RELAY_REFUSED",a.MALFORMED_MESSAGE="MALFORMED_MESSAGE"})(t=r.Status||(r.Status={}));let e;(function(a){a[a.SUCCESS=100]="SUCCESS",a[a.HOP_SRC_ADDR_TOO_LONG=220]="HOP_SRC_ADDR_TOO_LONG",a[a.HOP_DST_ADDR_TOO_LONG=221]="HOP_DST_ADDR_TOO_LONG",a[a.HOP_SRC_MULTIADDR_INVALID=250]="HOP_SRC_MULTIADDR_INVALID",a[a.HOP_DST_MULTIADDR_INVALID=251]="HOP_DST_MULTIADDR_INVALID",a[a.HOP_NO_CONN_TO_DST=260]="HOP_NO_CONN_TO_DST",a[a.HOP_CANT_DIAL_DST=261]="HOP_CANT_DIAL_DST",a[a.HOP_CANT_OPEN_DST_STREAM=262]="HOP_CANT_OPEN_DST_STREAM",a[a.HOP_CANT_SPEAK_RELAY=270]="HOP_CANT_SPEAK_RELAY",a[a.HOP_CANT_RELAY_TO_SELF=280]="HOP_CANT_RELAY_TO_SELF",a[a.STOP_SRC_ADDR_TOO_LONG=320]="STOP_SRC_ADDR_TOO_LONG",a[a.STOP_DST_ADDR_TOO_LONG=321]="STOP_DST_ADDR_TOO_LONG",a[a.STOP_SRC_MULTIADDR_INVALID=350]="STOP_SRC_MULTIADDR_INVALID",a[a.STOP_DST_MULTIADDR_INVALID=351]="STOP_DST_MULTIADDR_INVALID",a[a.STOP_RELAY_REFUSED=390]="STOP_RELAY_REFUSED",a[a.MALFORMED_MESSAGE=400]="MALFORMED_MESSAGE"})(e||(e={})),function(a){a.codec=()=>ln(e)}(t=r.Status||(r.Status={}));let n;(function(a){a.HOP="HOP",a.STOP="STOP",a.STATUS="STATUS",a.CAN_HOP="CAN_HOP"})(n=r.Type||(r.Type={}));let i;(function(a){a[a.HOP=1]="HOP",a[a.STOP=2]="STOP",a[a.STATUS=3]="STATUS",a[a.CAN_HOP=4]="CAN_HOP"})(i||(i={})),function(a){a.codec=()=>ln(i)}(n=r.Type||(r.Type={}));let o;(function(a){let c;a.codec=()=>(c==null&&(c=St((l,u,f={})=>{if(f.lengthDelimited!==!1&&u.fork(),(f.writeDefaults===!0||l.id!=null&&l.id.byteLength>0)&&(u.uint32(10),u.bytes(l.id)),l.addrs!=null)for(let d of l.addrs)u.uint32(18),u.bytes(d);f.lengthDelimited!==!1&&u.ldelim()},(l,u)=>{let f={id:new Uint8Array(0),addrs:[]},d=u==null?l.len:l.pos+u;for(;l.pos<d;){let h=l.uint32();switch(h>>>3){case 1:f.id=l.bytes();break;case 2:f.addrs.push(l.bytes());break;default:l.skipType(h&7);break}}return f})),c),a.encode=l=>_t(l,a.codec()),a.decode=l=>bt(l,a.codec())})(o=r.Peer||(r.Peer={}));let s;r.codec=()=>(s==null&&(s=St((a,c,l={})=>{l.lengthDelimited!==!1&&c.fork(),a.type!=null&&(c.uint32(8),r.Type.codec().encode(a.type,c)),a.srcPeer!=null&&(c.uint32(18),r.Peer.codec().encode(a.srcPeer,c,{writeDefaults:!1})),a.dstPeer!=null&&(c.uint32(26),r.Peer.codec().encode(a.dstPeer,c,{writeDefaults:!1})),a.code!=null&&(c.uint32(32),r.Status.codec().encode(a.code,c)),l.lengthDelimited!==!1&&c.ldelim()},(a,c)=>{let l={},u=c==null?a.len:a.pos+c;for(;a.pos<u;){let f=a.uint32();switch(f>>>3){case 1:l.type=r.Type.codec().decode(a);break;case 2:l.srcPeer=r.Peer.codec().decode(a,a.uint32());break;case 3:l.dstPeer=r.Peer.codec().decode(a,a.uint32());break;case 4:l.code=r.Status.codec().decode(a);break;default:a.skipType(f&7);break}}return l})),s),r.encode=a=>_t(a,r.codec()),r.decode=a=>bt(a,r.codec())})($||($={}));var Po=class extends Error{constructor(t,e){super(t??"The operation was aborted"),this.type="aborted",this.code=e??"ABORT_ERR"}};function wm(r){if(r!=null){if(typeof r[Symbol.iterator]=="function")return r[Symbol.iterator]();if(typeof r[Symbol.asyncIterator]=="function")return r[Symbol.asyncIterator]();if(typeof r.next=="function")return r}throw new Error("argument is not an iterator or iterable")}function Gn(r,t,e){let n=e??{},i=wm(r);async function*o(){let s,a=()=>{s?.()};for(t.addEventListener("abort",a);;){let c;try{if(t.aborted){let{abortMessage:u,abortCode:f}=n;throw new Po(u,f)}let l=new Promise((u,f)=>{s=()=>{let{abortMessage:d,abortCode:h}=n;f(new Po(d,h))}});c=await Promise.race([l,i.next()]),s=null}catch(l){t.removeEventListener("abort",a);let u=l.type==="aborted"&&t.aborted;if(u&&n.onAbort!=null&&await n.onAbort(r),typeof i.return=="function")try{let f=i.return();f instanceof Promise&&f.catch(d=>{n.onReturnError!=null&&n.onReturnError(d)})}catch(f){n.onReturnError!=null&&n.onReturnError(f)}if(u&&n.returnOnAbort===!0)return;throw l}if(c.done===!0)break;yield c.value}t.removeEventListener("abort",a)}return o()}function z2(r,t,e){return n=>r(Gn(n,t,e))}function Re(r,t,e){return{sink:z2(r.sink,t,{...e,onAbort:void 0}),source:Gn(r.source,t,e)}}var G2=N("libp2p:stream:converter");function ku(r,t={}){let{stream:e,remoteAddr:n}=r,{sink:i,source:o}=e,s=async function*(){for await(let l of o)yield*l}(),a={async sink(l){t.signal!=null&&(l=Gn(l,t.signal));try{await i(l),await c()}catch(u){u.type!=="aborted"&&G2(u)}},source:t.signal!=null?Gn(s,t.signal):s,remoteAddr:n,timeline:{open:Date.now(),close:void 0},async close(){await i(async function*(){yield new Uint8Array(0)}()),await c()}};async function c(){return a.timeline.close==null&&(a.timeline.close=Date.now()),await Promise.resolve()}return a}var hr="/libp2p/circuit/relay/0.1.0";function Em(r){let t=new Map;async function e(o){let s=o.toString().split("/p2p-circuit").find(d=>d!==""),a=j(s),c=a.getPeerId();if(c==null)throw new Error("Could not determine relay peer from multiaddr");let l=tt(c);await r.peerStore.addressBook.add(l,[a]);let u=await r.connectionManager.openConnection(l),f=u.remoteAddr.encapsulate("/p2p-circuit");t.set(u.remotePeer.toString(),f),i.dispatchEvent(new q("listening"))}function n(){let o=[];for(let s of t.values())o.push(s);return o}let i=Object.assign(new Pt,{close:async()=>await Promise.resolve(),listen:e,getAddrs:n});return r.connectionManager.addEventListener("peer:disconnect",o=>{let{detail:s}=o;t.delete(s.remotePeer.toString())&&i.dispatchEvent(new q("close"))}),i}var Ku=I(W(),1);function xm(r,t){r.write({type:$.Type.STATUS,code:t})}function va(r,t){try{r.dstPeer?.addrs!=null&&r.dstPeer.addrs.forEach(e=>j(e))}catch(e){throw xm(t,r.type===$.Type.HOP?$.Status.HOP_DST_MULTIADDR_INVALID:$.Status.STOP_DST_MULTIADDR_INVALID),e}try{r.srcPeer?.addrs!=null&&r.srcPeer.addrs.forEach(e=>j(e))}catch(e){throw xm(t,r.type===$.Type.HOP?$.Status.HOP_SRC_MULTIADDR_INVALID:$.Status.STOP_SRC_MULTIADDR_INVALID),e}}var bm=Symbol.for("@achingbrain/uint8arraylist");function vm(r,t){if(t==null||t<0)throw new RangeError("index is out of bounds");let e=0;for(let n of r){let i=e+n.byteLength;if(t<i)return{buf:n,index:t-e};e=i}throw new RangeError("index is out of bounds")}function ba(r){return Boolean(r?.[bm])}var Ft=class{constructor(...t){Object.defineProperty(this,bm,{value:!0}),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(ba(n))e+=n.byteLength,this.bufs.push(...n.bufs);else throw new Error("Could not append value, must be an Uint8Array or a Uint8ArrayList");this.length+=e}prepend(...t){this.prependAll(t)}prependAll(t){let e=0;for(let n of t.reverse())if(n instanceof Uint8Array)e+=n.byteLength,this.bufs.unshift(n);else if(ba(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=vm(this.bufs,t);return e.buf[e.index]}set(t,e){let n=vm(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(ba(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:i}=this._subList(t,e);return qt(n,i)}subarray(t,e){let{bufs:n,length:i}=this._subList(t,e);return n.length===1?n[0]:qt(n,i)}sublist(t,e){let{bufs:n,length:i}=this._subList(t,e),o=new Ft;return o.length=i,o.bufs=n,o}_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=[],i=0;for(let o=0;o<this.bufs.length;o++){let s=this.bufs[o],a=i,c=a+s.byteLength;if(i=c,t>=c)continue;let l=t>=a&&t<c,u=e>a&&e<=c;if(l&&u){if(t===a&&e===c){n.push(s);break}let f=t-a;n.push(s.subarray(f,f+(e-t)));break}if(l){if(t===0){n.push(s);continue}n.push(s.subarray(t-a));continue}if(u){if(e===c){n.push(s);break}n.push(s.subarray(0,e-a));break}n.push(s)}return{bufs:n,length:e-t}}indexOf(t,e=0){if(!ba(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 i=n.byteLength;if(i===0)throw new TypeError("search must be at least 1 byte long");let o=256,s=new Int32Array(o);for(let f=0;f<o;f++)s[f]=-1;for(let f=0;f<i;f++)s[n[f]]=f;let a=s,c=this.byteLength-n.byteLength,l=n.byteLength-1,u;for(let f=e;f<=c;f+=u){u=0;for(let d=l;d>=0;d--){let h=this.get(f+d);if(n[d]!==h){u=Math.max(1,d-a[h]);break}}if(u===0)return f}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=Pr(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 i=Dr(2);new DataView(i.buffer,i.byteOffset,i.byteLength).setInt16(0,e,n),this.write(i,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 i=Dr(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setInt32(0,e,n),this.write(i,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 i=Dr(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setBigInt64(0,e,n),this.write(i,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=Pr(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 i=Dr(2);new DataView(i.buffer,i.byteOffset,i.byteLength).setUint16(0,e,n),this.write(i,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 i=Dr(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setUint32(0,e,n),this.write(i,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 i=Dr(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setBigUint64(0,e,n),this.write(i,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 i=Dr(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setFloat32(0,e,n),this.write(i,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 i=Dr(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setFloat64(0,e,n),this.write(i,t)}equals(t){if(t==null||!(t instanceof Ft)||t.bufs.length!==this.bufs.length)return!1;for(let e=0;e<this.bufs.length;e++)if(!xt(this.bufs[e],t.bufs[e]))return!1;return!0}static fromUint8Arrays(t,e){let n=new Ft;return n.bufs=t,e==null&&(e=t.reduce((i,o)=>i+o.byteLength,0)),n.length=e,n}};function _a(r){return r instanceof Uint8Array?{get(t){return r[t]},set(t,e){r[t]=e}}:{get(t){return r.get(t)},set(t,e){r.set(t,e)}}}var _m=4294967296,Ie=class{constructor(t=0,e=0){this.hi=t,this.lo=e}toBigInt(t){if(t===!0)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)}toNumber(t){return Number(this.toBigInt(t))}zzDecode(){let t=-(this.lo&1),e=((this.lo>>>1|this.hi<<31)^t)>>>0,n=(this.hi>>>1^t)>>>0;return new Ie(n,e)}zzEncode(){let t=this.hi>>31,e=((this.hi<<1|this.lo>>>31)^t)>>>0,n=(this.lo<<1^t)>>>0;return new Ie(e,n)}toBytes(t,e=0){let n=_a(t);for(;this.hi>0;)n.set(e++,this.lo&127|128),this.lo=(this.lo>>>7|this.hi<<25)>>>0,this.hi>>>=7;for(;this.lo>127;)n.set(e++,this.lo&127|128),this.lo=this.lo>>>7;n.set(e++,this.lo)}static fromBigInt(t){if(t===0n)return new Ie;let e=t<0;e&&(t=-t);let n=Number(t>>32n)|0,i=Number(t-(BigInt(n)<<32n))|0;return e&&(n=~n>>>0,i=~i>>>0,++i>_m&&(i=0,++n>_m&&(n=0))),new Ie(n,i)}static fromNumber(t){if(t===0)return new Ie;let e=t<0;e&&(t=-t);let n=t>>>0,i=(t-n)/4294967296>>>0;return e&&(i=~i>>>0,n=~n>>>0,++n>4294967295&&(n=0,++i>4294967295&&(i=0))),new Ie(i,n)}static fromBytes(t,e=0){let n=_a(t),i=new Ie,o=0;if(t.length-e>4){for(;o<4;++o)if(i.lo=(i.lo|(n.get(e)&127)<<o*7)>>>0,n.get(e++)<128)return i;if(i.lo=(i.lo|(n.get(e)&127)<<28)>>>0,i.hi=(i.hi|(n.get(e)&127)>>4)>>>0,n.get(e++)<128)return i;o=0}else for(;o<4;++o){if(e>=t.length)throw RangeError(`index out of range: ${e} > ${t.length}`);if(i.lo=(i.lo|(n.get(e)&127)<<o*7)>>>0,n.get(e++)<128)return i}if(t.length-e>4){for(;o<5;++o)if(i.hi=(i.hi|(n.get(e)&127)<<o*7+3)>>>0,n.get(e++)<128)return i}else if(e<t.byteLength)for(;o<5;++o){if(e>=t.length)throw RangeError(`index out of range: ${e} > ${t.length}`);if(i.hi=(i.hi|(n.get(e)&127)<<o*7+3)>>>0,n.get(e++)<128)return i}throw RangeError("invalid varint encoding")}};var Y2=Math.pow(2,7),W2=Math.pow(2,14),Q2=Math.pow(2,21),X2=Math.pow(2,28),Z2=Math.pow(2,35),J2=Math.pow(2,42),j2=Math.pow(2,49),tb=Math.pow(2,56),eb=Math.pow(2,63),Xe={encodingLength(r){return r<Y2?1:r<W2?2:r<Q2?3:r<X2?4:r<Z2?5:r<J2?6:r<j2?7:r<tb?8:r<eb?9:10},encode(r,t,e=0){if(Number.MAX_SAFE_INTEGER!=null&&r>Number.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return t==null&&(t=Pr(Xe.encodingLength(r))),Ie.fromNumber(r).toBytes(t,e),t},decode(r,t=0){return Ie.fromBytes(r,t).toNumber(!0)}};function Sm(r){return globalThis?.Buffer?.allocUnsafe!=null?globalThis.Buffer.allocUnsafe(r):new Uint8Array(r)}var Sa=r=>{let t=Xe.encodingLength(r),e=Sm(t);return Xe.encode(r,e),Sa.bytes=t,e};Sa.bytes=0;function Me(r){r=r??{};let t=r.lengthEncoder??Sa;return async function*(n){for await(let i of n){let o=t(i.byteLength);o instanceof Uint8Array?yield o:yield*o,i instanceof Uint8Array?yield i:yield*i}}}Me.single=(r,t)=>{t=t??{};let e=t.lengthEncoder??Sa;return new Ft(e(r.byteLength),r)};var Lo=I(W(),1),rb=8,nb=1024*1024*4,Yn;(function(r){r[r.LENGTH=0]="LENGTH",r[r.DATA=1]="DATA"})(Yn||(Yn={}));var Mu=r=>{let t=Xe.decode(r);return Mu.bytes=Xe.encodingLength(t),t};Mu.bytes=0;function Te(r){return async function*(e){let n=new Ft,i=Yn.LENGTH,o=-1,s=r?.lengthDecoder??Mu,a=r?.maxLengthLength??rb,c=r?.maxDataLength??nb;for await(let l of e)for(n.append(l);n.byteLength>0;){if(i===Yn.LENGTH)try{if(o=s(n),o<0)throw(0,Lo.default)(new Error("invalid message length"),"ERR_INVALID_MSG_LENGTH");if(o>c)throw(0,Lo.default)(new Error("message length too long"),"ERR_MSG_DATA_TOO_LONG");let u=s.bytes;n.consume(u),r?.onLength!=null&&r.onLength(o),i=Yn.DATA}catch(u){if(u instanceof RangeError){if(n.byteLength>a)throw(0,Lo.default)(new Error("message length length too long"),"ERR_MSG_LENGTH_TOO_LONG");break}throw u}if(i===Yn.DATA){if(n.byteLength<o)break;let u=n.sublist(0,o);n.consume(o),r?.onData!=null&&r.onData(u),yield u,i=Yn.LENGTH}}if(n.byteLength>0)throw(0,Lo.default)(new Error("unexpected end of input"),"ERR_UNEXPECTED_EOF")}}Te.fromReader=(r,t)=>{let e=1,n=async function*(){for(;;)try{let{done:o,value:s}=await r.next(e);if(o===!0)return;s!=null&&(yield s)}catch(o){if(o.code==="ERR_UNDER_READ")return{done:!0,value:null};throw o}finally{e=1}}();return Te({...t??{},onLength:o=>{e=o}})(n)};function Uu(r){let t=async function*(){let e=yield,n=new Ft;for await(let i of r){if(e==null){n.append(i),e=yield n,n=new Ft;continue}for(n.append(i);n.length>=e;){let o=n.sublist(0,e);if(n.consume(e),e=yield o,e==null){n.length>0&&(e=yield n,n=new Ft);break}}}if(e!=null)throw Object.assign(new Error(`stream ended before ${e} bytes became available`),{code:"ERR_UNDER_READ",buffer:n})}();return t.next(),t}function Fu(){let r={};return r.promise=new Promise((t,e)=>{r.resolve=t,r.reject=e}),r}function Fi(r){let t=kn(),e=Uu(r.source),n=Fu(),i,o=r.sink(async function*(){yield*t,yield*await n.promise}());return o.catch(a=>{i=a}),{reader:e,writer:t,stream:{sink:async a=>i!=null?await Promise.reject(i):(n.resolve(a),await o),source:e},rest:()=>t.end(),write:t.push,read:async()=>{let a=await e.next();if(a.value!=null)return a.value}}}var Bo=N("libp2p:circuit:stream-handler"),Fr=class{constructor(t){let{stream:e,maxLength:n=4096}=t;this.stream=e,this.shake=Fi(this.stream),this.decoder=Te.fromReader(this.shake.reader,{maxDataLength:n})}async read(){let t=await this.decoder.next();if(t.value!=null){let e=$.decode(t.value);return Bo("read message type",e.type),e}Bo("read received no value, closing stream"),this.close()}write(t){Bo("write message type %s",t.type),this.shake.write(Me.single($.encode(t)))}rest(){return this.shake.rest(),this.shake.stream}end(t){this.write(t),this.close()}close(){Bo("closing the stream"),this.rest().sink([]).catch(t=>{Bo.error(t)})}};var No=N("libp2p:circuit:stop");function Am(r){let{connection:t,request:e,streamHandler:n}=r;try{va(e,n)}catch(i){No.error("invalid stop request via peer %p %o",t.remotePeer,i);return}return No("stop request is valid"),n.write({type:$.Type.STATUS,code:$.Status.SUCCESS}),n.rest()}async function Rm(r){let{connection:t,request:e,signal:n}=r,i=await t.newStream(hr,{signal:n});No("starting stop request to %p",t.remotePeer);let o=new Fr({stream:i});o.write(e);let s=await o.read();if(s==null){o.close();return}if(s.code===$.Status.SUCCESS)return No("stop request to %p was successful",t.remotePeer),o.rest();No("stop request failed with code %d",s.code),o.close()}var Ue=N("libp2p:circuit:hop");async function Im(r){let{connection:t,request:e,streamHandler:n,circuit:i,connectionManager:o}=r;if(!i.hopEnabled())return Ue("HOP request received but we are not acting as a relay"),n.end({type:$.Type.STATUS,code:$.Status.HOP_CANT_SPEAK_RELAY});try{va(e,n)}catch(f){Ue.error("invalid hop request via peer %p %o",t.remotePeer,f);return}if(e.dstPeer==null){Ue("HOP request received but we do not receive a dstPeer");return}let s=rn(e.dstPeer.id),a=o.getConnections(s);if(a.length===0&&!i.hopActive())return Ue("HOP request received but we are not connected to the destination peer"),n.end({type:$.Type.STATUS,code:$.Status.HOP_NO_CONN_TO_DST});if(a.length===0)return Ue("did not have connection to remote peer"),n.end({type:$.Type.STATUS,code:$.Status.HOP_NO_CONN_TO_DST});let c={type:$.Type.STOP,dstPeer:e.dstPeer,srcPeer:e.srcPeer},l;try{Ue("performing STOP request");let f=await Rm({connection:a[0],request:c});if(f==null)throw new Error("Could not stop");l=f}catch(f){Ue.error(f);return}Ue("hop request from %p is valid",t.remotePeer),n.write({type:$.Type.STATUS,code:$.Status.SUCCESS});let u=n.rest();return Ue("creating related connections"),await Lt(u,l,u)}async function Tm(r){let{connection:t,request:e,signal:n}=r,i=await t.newStream(hr,{signal:n}),o=new Fr({stream:i});o.write(e);let s=await o.read();if(s==null)throw(0,Ku.default)(new Error("HOP request had no response"),b.ERR_HOP_REQUEST_FAILED);if(s.code===$.Status.SUCCESS)return Ue("hop request was successful"),o.rest();throw Ue("hop request failed with code %d, closing stream",s.code),o.close(),(0,Ku.default)(new Error(`HOP request failed with code "${s.code??"unknown"}"`),b.ERR_HOP_REQUEST_FAILED)}async function Cm(r){let{connection:t,signal:e}=r,n=await t.newStream(hr,{signal:e}),i=new Fr({stream:n});i.write({type:$.Type.CAN_HOP});let o=await i.read();return await i.close(),!(o==null||o.code!==$.Status.SUCCESS)}function Dm(r){let{connection:t,streamHandler:e,circuit:n}=r,i=n.hopEnabled();Ue("can hop (%s) request from %p",i,t.remotePeer),e.end({type:$.Type.STATUS,code:i?$.Status.SUCCESS:$.Status.HOP_CANT_SPEAK_RELAY})}var Pm=Symbol.for("@libp2p/transport");var un;(function(r){r[r.FATAL_ALL=0]="FATAL_ALL",r[r.NO_FATAL=1]="NO_FATAL"})(un||(un={}));var Bm=I(Nr(),1),Nm=I(lr(),1),Fe=N("libp2p:circuit"),Ra=class{constructor(t,e){this._init=e,this.components=t,this._started=!1}isStarted(){return this._started}async start(){this._started||(this._started=!0,await this.components.registrar.handle(hr,t=>{this._onProtocol(t).catch(e=>{Fe.error(e)})},{...this._init}).catch(t=>{Fe.error(t)}))}async stop(){await this.components.registrar.unhandle(hr)}hopEnabled(){return!0}hopActive(){return!0}get[Pm](){return!0}get[Symbol.toStringTag](){return"libp2p/circuit-relay-v1"}async _onProtocol(t){let{connection:e,stream:n}=t,i=new Bm.TimeoutController(this._init.hop.timeout);try{(0,Nm.setMaxListeners)?.(1/0,i.signal)}catch{}try{let o=Re(n,i.signal),s=new Fr({stream:{...n,...o}}),a=await s.read();if(a==null){Fe("request was invalid, could not read from stream"),s.write({type:$.Type.STATUS,code:$.Status.MALFORMED_MESSAGE}),s.close();return}let c;switch(a.type){case $.Type.CAN_HOP:{Fe("received CAN_HOP request from %p",e.remotePeer),await Dm({circuit:this,connection:e,streamHandler:s});break}case $.Type.HOP:{Fe("received HOP request from %p",e.remotePeer),await Im({connection:e,request:a,streamHandler:s,circuit:this,connectionManager:this.components.connectionManager});break}case $.Type.STOP:{Fe("received STOP request from %p",e.remotePeer),c=await Am({connection:e,request:a,streamHandler:s});break}default:{Fe("Request of type %s not supported",a.type),s.write({type:$.Type.STATUS,code:$.Status.MALFORMED_MESSAGE}),s.close();return}}if(c!=null){let l=e.remoteAddr.encapsulate("/p2p-circuit").encapsulate(j(a.dstPeer?.addrs[0])),u=j(a.srcPeer?.addrs[0]),f=ku({stream:c,remoteAddr:l,localAddr:u}),d=a.type===$.Type.HOP?"relay":"inbound";Fe("new %s connection %s",d,f.remoteAddr);let h=await this.components.upgrader.upgradeInbound(f);Fe("%s connection %s upgraded",d,f.remoteAddr),this.handler!=null&&this.handler(h)}}finally{i.clear()}}async dial(t,e={}){let n=t.toString().split("/p2p-circuit"),i=j(n[0]),o=j(n[n.length-1]),s=i.getPeerId(),a=o.getPeerId();if(s==null||a==null){let h="Circuit relay dial failed as addresses did not have peer id";throw Fe.error(h),(0,Lm.default)(new Error(h),b.ERR_RELAYED_DIAL)}let c=tt(s),l=tt(a),u=!1,d=this.components.connectionManager.getConnections(c)[0];d==null&&(await this.components.peerStore.addressBook.add(c,[i]),d=await this.components.connectionManager.openConnection(c,e),u=!0);try{let h=await Tm({...e,connection:d,request:{type:$.Type.HOP,srcPeer:{id:this.components.peerId.toBytes(),addrs:this.components.addressManager.getAddresses().map(y=>y.bytes)},dstPeer:{id:l.toBytes(),addrs:[j(o).bytes]}}}),p=i.encapsulate(`/p2p-circuit/p2p/${this.components.peerId.toString()}`),m=ku({stream:h,remoteAddr:t,localAddr:p});return Fe("new outbound connection %s",m.remoteAddr),await this.components.upgrader.upgradeOutbound(m)}catch(h){throw Fe.error("Circuit relay dial failed",h),u&&await d.close(),h}}createListener(t){return this.handler=t.handler,Em({connectionManager:this.components.connectionManager,peerStore:this.components.peerStore})}filter(t){return t=Array.isArray(t)?t:[t],t.filter(e=>qn.matches(e))}};var Na=I(Xl(),1);async function Ia(r){let t=new TextEncoder().encode(r),e=await te.digest(t);return pt.createV0(e)}var Vu="hop_relay",qu="true",Ta="/libp2p/relay";async function*Hu(r,t){yield*(await Lr(r)).sort(t)}var Vm=I(Om(),1);var km="[a-fA-F\\d:]",fn=r=>r&&r.includeBoundaries?`(?:(?<=\\s|^)(?=${km})|(?<=${km})(?=\\s|$))`:"",Ze="(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}",Qt="[a-fA-F\\d]{1,4}",Ca=`
37
+ `+a+t.substr(s+1),o=i-s-1,s=-1,++i}else(t[i]===" "||t[i]===" "||t[i]===",")&&(s=i);return t}function Vb(r){return r.replace(/^\s+/,"")}});var Iy=T((n8,Ry)=>{var yr=yt();Xn();zt();var _y=Ry.exports=yr.sha256=yr.sha256||{};yr.md.sha256=yr.md.algorithms.sha256=_y;_y.create=function(){Sy||qb();var r=null,t=yr.util.createBuffer(),e=new Array(64),n={algorithm:"sha256",blockLength:64,digestLength:32,messageLength:0,fullMessageLength:null,messageLengthSize:8};return n.start=function(){n.messageLength=0,n.fullMessageLength=n.messageLength64=[];for(var i=n.messageLengthSize/4,o=0;o<i;++o)n.fullMessageLength.push(0);return t=yr.util.createBuffer(),r={h0:1779033703,h1:3144134277,h2:1013904242,h3:2773480762,h4:1359893119,h5:2600822924,h6:528734635,h7:1541459225},n},n.start(),n.update=function(i,o){o==="utf8"&&(i=yr.util.encodeUtf8(i));var s=i.length;n.messageLength+=s,s=[s/4294967296>>>0,s>>>0];for(var a=n.fullMessageLength.length-1;a>=0;--a)n.fullMessageLength[a]+=s[1],s[1]=s[0]+(n.fullMessageLength[a]/4294967296>>>0),n.fullMessageLength[a]=n.fullMessageLength[a]>>>0,s[0]=s[1]/4294967296>>>0;return t.putBytes(i),by(r,e,t),(t.read>2048||t.length()===0)&&t.compact(),n},n.digest=function(){var i=yr.util.createBuffer();i.putBytes(t.bytes());var o=n.fullMessageLength[n.fullMessageLength.length-1]+n.messageLengthSize,s=o&n.blockLength-1;i.putBytes(of.substr(0,n.blockLength-s));for(var a,c,l=n.fullMessageLength[0]*8,u=0;u<n.fullMessageLength.length-1;++u)a=n.fullMessageLength[u+1]*8,c=a/4294967296>>>0,l+=c,i.putInt32(l>>>0),l=a>>>0;i.putInt32(l);var f={h0:r.h0,h1:r.h1,h2:r.h2,h3:r.h3,h4:r.h4,h5:r.h5,h6:r.h6,h7:r.h7};by(f,e,i);var d=yr.util.createBuffer();return d.putInt32(f.h0),d.putInt32(f.h1),d.putInt32(f.h2),d.putInt32(f.h3),d.putInt32(f.h4),d.putInt32(f.h5),d.putInt32(f.h6),d.putInt32(f.h7),d},n};var of=null,Sy=!1,Ay=null;function qb(){of=String.fromCharCode(128),of+=yr.util.fillString(String.fromCharCode(0),64),Ay=[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],Sy=!0}function by(r,t,e){for(var n,i,o,s,a,c,l,u,f,d,h,p,m,y,g,E=e.length();E>=64;){for(l=0;l<16;++l)t[l]=e.getInt32();for(;l<64;++l)n=t[l-2],n=(n>>>17|n<<15)^(n>>>19|n<<13)^n>>>10,i=t[l-15],i=(i>>>7|i<<25)^(i>>>18|i<<14)^i>>>3,t[l]=n+t[l-7]+i+t[l-16]|0;for(u=r.h0,f=r.h1,d=r.h2,h=r.h3,p=r.h4,m=r.h5,y=r.h6,g=r.h7,l=0;l<64;++l)s=(p>>>6|p<<26)^(p>>>11|p<<21)^(p>>>25|p<<7),a=y^p&(m^y),o=(u>>>2|u<<30)^(u>>>13|u<<19)^(u>>>22|u<<10),c=u&f|d&(u^f),n=g+s+a+Ay[l]+t[l],i=o+c,g=y,y=m,m=p,p=h+n>>>0,h=d,d=f,f=u,u=n+i>>>0;r.h0=r.h0+u|0,r.h1=r.h1+f|0,r.h2=r.h2+d|0,r.h3=r.h3+h|0,r.h4=r.h4+p|0,r.h5=r.h5+m|0,r.h6=r.h6+y|0,r.h7=r.h7+g|0,E-=64}}});var Cy=T((i8,Ty)=>{var gr=yt();zt();var za=null;gr.util.isNodejs&&!gr.options.usePureJavaScript&&!process.versions["node-webkit"]&&(za=Vn());var Hb=Ty.exports=gr.prng=gr.prng||{};Hb.create=function(r){for(var t={plugin:r,key:null,seed:null,time:null,reseeds:0,generated:0,keyBytes:""},e=r.md,n=new Array(32),i=0;i<32;++i)n[i]=e.create();t.pools=n,t.pool=0,t.generate=function(l,u){if(!u)return t.generateSync(l);var f=t.plugin.cipher,d=t.plugin.increment,h=t.plugin.formatKey,p=t.plugin.formatSeed,m=gr.util.createBuffer();t.key=null,y();function y(g){if(g)return u(g);if(m.length()>=l)return u(null,m.getBytes(l));if(t.generated>1048575&&(t.key=null),t.key===null)return gr.util.nextTick(function(){o(y)});var E=f(t.key,t.seed);t.generated+=E.length,m.putBytes(E),t.key=h(f(t.key,d(t.seed))),t.seed=p(f(t.key,t.seed)),gr.util.setImmediate(y)}},t.generateSync=function(l){var u=t.plugin.cipher,f=t.plugin.increment,d=t.plugin.formatKey,h=t.plugin.formatSeed;t.key=null;for(var p=gr.util.createBuffer();p.length()<l;){t.generated>1048575&&(t.key=null),t.key===null&&s();var m=u(t.key,t.seed);t.generated+=m.length,p.putBytes(m),t.key=d(u(t.key,f(t.seed))),t.seed=h(u(t.key,t.seed))}return p.getBytes(l)};function o(l){if(t.pools[0].messageLength>=32)return a(),l();var u=32-t.pools[0].messageLength<<5;t.seedFile(u,function(f,d){if(f)return l(f);t.collect(d),a(),l()})}function s(){if(t.pools[0].messageLength>=32)return a();var l=32-t.pools[0].messageLength<<5;t.collect(t.seedFileSync(l)),a()}function a(){t.reseeds=t.reseeds===4294967295?0:t.reseeds+1;var l=t.plugin.md.create();l.update(t.keyBytes);for(var u=1,f=0;f<32;++f)t.reseeds%u===0&&(l.update(t.pools[f].digest().getBytes()),t.pools[f].start()),u=u<<1;t.keyBytes=l.digest().getBytes(),l.start(),l.update(t.keyBytes);var d=l.digest().getBytes();t.key=t.plugin.formatKey(t.keyBytes),t.seed=t.plugin.formatSeed(d),t.generated=0}function c(l){var u=null,f=gr.util.globalScope,d=f.crypto||f.msCrypto;d&&d.getRandomValues&&(u=function(C){return d.getRandomValues(C)});var h=gr.util.createBuffer();if(u)for(;h.length()<l;){var p=Math.max(1,Math.min(l-h.length(),65536)/4),m=new Uint32Array(Math.floor(p));try{u(m);for(var y=0;y<m.length;++y)h.putInt32(m[y])}catch(C){if(!(typeof QuotaExceededError<"u"&&C instanceof QuotaExceededError))throw C}}if(h.length()<l)for(var g,E,_,k=Math.floor(Math.random()*65536);h.length()<l;){E=16807*(k&65535),g=16807*(k>>16),E+=(g&32767)<<16,E+=g>>15,E=(E&2147483647)+(E>>31),k=E&4294967295;for(var y=0;y<3;++y)_=k>>>(y<<3),_^=Math.floor(Math.random()*256),h.putByte(_&255)}return h.getBytes(l)}return za?(t.seedFile=function(l,u){za.randomBytes(l,function(f,d){if(f)return u(f);u(null,d.toString())})},t.seedFileSync=function(l){return za.randomBytes(l).toString()}):(t.seedFile=function(l,u){try{u(null,c(l))}catch(f){u(f)}},t.seedFileSync=c),t.collect=function(l){for(var u=l.length,f=0;f<u;++f)t.pools[t.pool].update(l.substr(f,1)),t.pool=t.pool===31?0:t.pool+1},t.collectInt=function(l,u){for(var f="",d=0;d<u;d+=8)f+=String.fromCharCode(l>>d&255);t.collect(f)},t.registerWorker=function(l){if(l===self)t.seedFile=function(f,d){function h(p){var m=p.data;m.forge&&m.forge.prng&&(self.removeEventListener("message",h),d(m.forge.prng.err,m.forge.prng.bytes))}self.addEventListener("message",h),self.postMessage({forge:{prng:{needed:f}}})};else{var u=function(f){var d=f.data;d.forge&&d.forge.prng&&t.seedFile(d.forge.prng.needed,function(h,p){l.postMessage({forge:{prng:{err:h,bytes:p}}})})};l.addEventListener("message",u)}},t}});var Vo=T((o8,sf)=>{var se=yt();Ka();Iy();Cy();zt();(function(){if(se.random&&se.random.getBytes){sf.exports=se.random;return}(function(r){var t={},e=new Array(4),n=se.util.createBuffer();t.formatKey=function(f){var d=se.util.createBuffer(f);return f=new Array(4),f[0]=d.getInt32(),f[1]=d.getInt32(),f[2]=d.getInt32(),f[3]=d.getInt32(),se.aes._expandKey(f,!1)},t.formatSeed=function(f){var d=se.util.createBuffer(f);return f=new Array(4),f[0]=d.getInt32(),f[1]=d.getInt32(),f[2]=d.getInt32(),f[3]=d.getInt32(),f},t.cipher=function(f,d){return se.aes._updateBlock(f,d,e,!1),n.putInt32(e[0]),n.putInt32(e[1]),n.putInt32(e[2]),n.putInt32(e[3]),n.getBytes()},t.increment=function(f){return++f[3],f},t.md=se.md.sha256;function i(){var f=se.prng.create(t);return f.getBytes=function(d,h){return f.generate(d,h)},f.getBytesSync=function(d){return f.generate(d)},f}var o=i(),s=null,a=se.util.globalScope,c=a.crypto||a.msCrypto;if(c&&c.getRandomValues&&(s=function(f){return c.getRandomValues(f)}),se.options.usePureJavaScript||!se.util.isNodejs&&!s){if(typeof window>"u"||window.document,o.collectInt(+new Date,32),typeof navigator<"u"){var l="";for(var u in navigator)try{typeof navigator[u]=="string"&&(l+=navigator[u])}catch{}o.collect(l),l=null}r&&(r().mousemove(function(f){o.collectInt(f.clientX,16),o.collectInt(f.clientY,16)}),r().keypress(function(f){o.collectInt(f.charCode,8)}))}if(!se.random)se.random=o;else for(var u in o)se.random[u]=o[u];se.random.createInstance=i,sf.exports=se.random})(typeof jQuery<"u"?jQuery:null)})()});var By=T((s8,Ly)=>{var ge=yt();zt();var af=[217,120,249,196,25,221,181,237,40,233,253,121,74,160,216,157,198,126,55,131,43,118,83,142,98,76,100,136,68,139,251,162,23,154,89,245,135,179,79,19,97,69,109,141,9,129,125,50,189,143,64,235,134,183,123,11,240,149,33,34,92,107,78,130,84,214,101,147,206,96,178,28,115,86,192,20,167,140,241,220,18,117,202,31,59,190,228,209,66,61,212,48,163,60,182,38,111,191,14,218,70,105,7,87,39,242,29,155,188,148,67,3,248,17,199,246,144,239,62,231,6,195,213,47,200,102,30,215,8,232,234,222,128,82,238,247,132,170,114,172,53,77,106,42,150,26,210,113,90,21,73,116,75,159,208,94,4,24,164,236,194,224,65,110,15,81,203,204,36,145,175,80,161,244,112,57,153,124,58,133,35,184,180,122,252,2,54,91,37,85,151,49,45,93,250,152,227,138,146,174,5,223,41,16,103,108,186,201,211,0,230,207,225,158,168,44,99,22,1,63,88,226,137,169,13,56,52,27,171,51,255,176,187,72,12,95,185,177,205,46,197,243,219,71,229,165,156,119,10,166,32,104,254,127,193,173],Dy=[1,2,3,5],$b=function(r,t){return r<<t&65535|(r&65535)>>16-t},zb=function(r,t){return(r&65535)>>t|r<<16-t&65535};Ly.exports=ge.rc2=ge.rc2||{};ge.rc2.expandKey=function(r,t){typeof r=="string"&&(r=ge.util.createBuffer(r)),t=t||128;var e=r,n=r.length(),i=t,o=Math.ceil(i/8),s=255>>(i&7),a;for(a=n;a<128;a++)e.putByte(af[e.at(a-1)+e.at(a-n)&255]);for(e.setAt(128-o,af[e.at(128-o)&s]),a=127-o;a>=0;a--)e.setAt(a,af[e.at(a+1)^e.at(a+o)]);return e};var Py=function(r,t,e){var n=!1,i=null,o=null,s=null,a,c,l,u,f=[];for(r=ge.rc2.expandKey(r,t),l=0;l<64;l++)f.push(r.getInt16Le());e?(a=function(p){for(l=0;l<4;l++)p[l]+=f[u]+(p[(l+3)%4]&p[(l+2)%4])+(~p[(l+3)%4]&p[(l+1)%4]),p[l]=$b(p[l],Dy[l]),u++},c=function(p){for(l=0;l<4;l++)p[l]+=f[p[(l+3)%4]&63]}):(a=function(p){for(l=3;l>=0;l--)p[l]=zb(p[l],Dy[l]),p[l]-=f[u]+(p[(l+3)%4]&p[(l+2)%4])+(~p[(l+3)%4]&p[(l+1)%4]),u--},c=function(p){for(l=3;l>=0;l--)p[l]-=f[p[(l+3)%4]&63]});var d=function(p){var m=[];for(l=0;l<4;l++){var y=i.getInt16Le();s!==null&&(e?y^=s.getInt16Le():s.putInt16Le(y)),m.push(y&65535)}u=e?0:63;for(var g=0;g<p.length;g++)for(var E=0;E<p[g][0];E++)p[g][1](m);for(l=0;l<4;l++)s!==null&&(e?s.putInt16Le(m[l]):m[l]^=s.getInt16Le()),o.putInt16Le(m[l])},h=null;return h={start:function(p,m){p&&typeof p=="string"&&(p=ge.util.createBuffer(p)),n=!1,i=ge.util.createBuffer(),o=m||new ge.util.createBuffer,s=p,h.output=o},update:function(p){for(n||i.putBuffer(p);i.length()>=8;)d([[5,a],[1,c],[6,a],[1,c],[5,a]])},finish:function(p){var m=!0;if(e)if(p)m=p(8,i,!e);else{var y=i.length()===8?8:8-i.length();i.fillWithByte(y,y)}if(m&&(n=!0,h.update()),!e&&(m=i.length()===0,m))if(p)m=p(8,o,!e);else{var g=o.length(),E=o.at(g-1);E>g?m=!1:o.truncate(E)}return m}},h};ge.rc2.startEncrypting=function(r,t,e){var n=ge.rc2.createEncryptionCipher(r,128);return n.start(t,e),n};ge.rc2.createEncryptionCipher=function(r,t){return Py(r,t,!0)};ge.rc2.startDecrypting=function(r,t,e){var n=ge.rc2.createDecryptionCipher(r,128);return n.start(t,e),n};ge.rc2.createDecryptionCipher=function(r,t){return Py(r,t,!1)}});var Wa=T((a8,Vy)=>{var cf=yt();Vy.exports=cf.jsbn=cf.jsbn||{};var qr,Gb=0xdeadbeefcafe,Ny=(Gb&16777215)==15715070;function S(r,t,e){this.data=[],r!=null&&(typeof r=="number"?this.fromNumber(r,t,e):t==null&&typeof r!="string"?this.fromString(r,256):this.fromString(r,t))}cf.jsbn.BigInteger=S;function lt(){return new S(null)}function Yb(r,t,e,n,i,o){for(;--o>=0;){var s=t*this.data[r++]+e.data[n]+i;i=Math.floor(s/67108864),e.data[n++]=s&67108863}return i}function Wb(r,t,e,n,i,o){for(var s=t&32767,a=t>>15;--o>=0;){var c=this.data[r]&32767,l=this.data[r++]>>15,u=a*c+l*s;c=s*c+((u&32767)<<15)+e.data[n]+(i&1073741823),i=(c>>>30)+(u>>>15)+a*l+(i>>>30),e.data[n++]=c&1073741823}return i}function Oy(r,t,e,n,i,o){for(var s=t&16383,a=t>>14;--o>=0;){var c=this.data[r]&16383,l=this.data[r++]>>14,u=a*c+l*s;c=s*c+((u&16383)<<14)+e.data[n]+i,i=(c>>28)+(u>>14)+a*l,e.data[n++]=c&268435455}return i}typeof navigator>"u"?(S.prototype.am=Oy,qr=28):Ny&&navigator.appName=="Microsoft Internet Explorer"?(S.prototype.am=Wb,qr=30):Ny&&navigator.appName!="Netscape"?(S.prototype.am=Yb,qr=26):(S.prototype.am=Oy,qr=28);S.prototype.DB=qr;S.prototype.DM=(1<<qr)-1;S.prototype.DV=1<<qr;var lf=52;S.prototype.FV=Math.pow(2,lf);S.prototype.F1=lf-qr;S.prototype.F2=2*qr-lf;var Qb="0123456789abcdefghijklmnopqrstuvwxyz",Ga=new Array,$i,Ke;$i="0".charCodeAt(0);for(Ke=0;Ke<=9;++Ke)Ga[$i++]=Ke;$i="a".charCodeAt(0);for(Ke=10;Ke<36;++Ke)Ga[$i++]=Ke;$i="A".charCodeAt(0);for(Ke=10;Ke<36;++Ke)Ga[$i++]=Ke;function ky(r){return Qb.charAt(r)}function My(r,t){var e=Ga[r.charCodeAt(t)];return e??-1}function Xb(r){for(var t=this.t-1;t>=0;--t)r.data[t]=this.data[t];r.t=this.t,r.s=this.s}function Zb(r){this.t=1,this.s=r<0?-1:0,r>0?this.data[0]=r:r<-1?this.data[0]=r+this.DV:this.t=0}function pn(r){var t=lt();return t.fromInt(r),t}function Jb(r,t){var e;if(t==16)e=4;else if(t==8)e=3;else if(t==256)e=8;else if(t==2)e=1;else if(t==32)e=5;else if(t==4)e=2;else{this.fromRadix(r,t);return}this.t=0,this.s=0;for(var n=r.length,i=!1,o=0;--n>=0;){var s=e==8?r[n]&255:My(r,n);if(s<0){r.charAt(n)=="-"&&(i=!0);continue}i=!1,o==0?this.data[this.t++]=s:o+e>this.DB?(this.data[this.t-1]|=(s&(1<<this.DB-o)-1)<<o,this.data[this.t++]=s>>this.DB-o):this.data[this.t-1]|=s<<o,o+=e,o>=this.DB&&(o-=this.DB)}e==8&&r[0]&128&&(this.s=-1,o>0&&(this.data[this.t-1]|=(1<<this.DB-o)-1<<o)),this.clamp(),i&&S.ZERO.subTo(this,this)}function jb(){for(var r=this.s&this.DM;this.t>0&&this.data[this.t-1]==r;)--this.t}function t_(r){if(this.s<0)return"-"+this.negate().toString(r);var t;if(r==16)t=4;else if(r==8)t=3;else if(r==2)t=1;else if(r==32)t=5;else if(r==4)t=2;else return this.toRadix(r);var e=(1<<t)-1,n,i=!1,o="",s=this.t,a=this.DB-s*this.DB%t;if(s-- >0)for(a<this.DB&&(n=this.data[s]>>a)>0&&(i=!0,o=ky(n));s>=0;)a<t?(n=(this.data[s]&(1<<a)-1)<<t-a,n|=this.data[--s]>>(a+=this.DB-t)):(n=this.data[s]>>(a-=t)&e,a<=0&&(a+=this.DB,--s)),n>0&&(i=!0),i&&(o+=ky(n));return i?o:"0"}function e_(){var r=lt();return S.ZERO.subTo(this,r),r}function r_(){return this.s<0?this.negate():this}function n_(r){var t=this.s-r.s;if(t!=0)return t;var e=this.t;if(t=e-r.t,t!=0)return this.s<0?-t:t;for(;--e>=0;)if((t=this.data[e]-r.data[e])!=0)return t;return 0}function Ya(r){var t=1,e;return(e=r>>>16)!=0&&(r=e,t+=16),(e=r>>8)!=0&&(r=e,t+=8),(e=r>>4)!=0&&(r=e,t+=4),(e=r>>2)!=0&&(r=e,t+=2),(e=r>>1)!=0&&(r=e,t+=1),t}function i_(){return this.t<=0?0:this.DB*(this.t-1)+Ya(this.data[this.t-1]^this.s&this.DM)}function o_(r,t){var e;for(e=this.t-1;e>=0;--e)t.data[e+r]=this.data[e];for(e=r-1;e>=0;--e)t.data[e]=0;t.t=this.t+r,t.s=this.s}function s_(r,t){for(var e=r;e<this.t;++e)t.data[e-r]=this.data[e];t.t=Math.max(this.t-r,0),t.s=this.s}function a_(r,t){var e=r%this.DB,n=this.DB-e,i=(1<<n)-1,o=Math.floor(r/this.DB),s=this.s<<e&this.DM,a;for(a=this.t-1;a>=0;--a)t.data[a+o+1]=this.data[a]>>n|s,s=(this.data[a]&i)<<e;for(a=o-1;a>=0;--a)t.data[a]=0;t.data[o]=s,t.t=this.t+o+1,t.s=this.s,t.clamp()}function c_(r,t){t.s=this.s;var e=Math.floor(r/this.DB);if(e>=this.t){t.t=0;return}var n=r%this.DB,i=this.DB-n,o=(1<<n)-1;t.data[0]=this.data[e]>>n;for(var s=e+1;s<this.t;++s)t.data[s-e-1]|=(this.data[s]&o)<<i,t.data[s-e]=this.data[s]>>n;n>0&&(t.data[this.t-e-1]|=(this.s&o)<<i),t.t=this.t-e,t.clamp()}function l_(r,t){for(var e=0,n=0,i=Math.min(r.t,this.t);e<i;)n+=this.data[e]-r.data[e],t.data[e++]=n&this.DM,n>>=this.DB;if(r.t<this.t){for(n-=r.s;e<this.t;)n+=this.data[e],t.data[e++]=n&this.DM,n>>=this.DB;n+=this.s}else{for(n+=this.s;e<r.t;)n-=r.data[e],t.data[e++]=n&this.DM,n>>=this.DB;n-=r.s}t.s=n<0?-1:0,n<-1?t.data[e++]=this.DV+n:n>0&&(t.data[e++]=n),t.t=e,t.clamp()}function u_(r,t){var e=this.abs(),n=r.abs(),i=e.t;for(t.t=i+n.t;--i>=0;)t.data[i]=0;for(i=0;i<n.t;++i)t.data[i+e.t]=e.am(0,n.data[i],t,i,0,e.t);t.s=0,t.clamp(),this.s!=r.s&&S.ZERO.subTo(t,t)}function f_(r){for(var t=this.abs(),e=r.t=2*t.t;--e>=0;)r.data[e]=0;for(e=0;e<t.t-1;++e){var n=t.am(e,t.data[e],r,2*e,0,1);(r.data[e+t.t]+=t.am(e+1,2*t.data[e],r,2*e+1,n,t.t-e-1))>=t.DV&&(r.data[e+t.t]-=t.DV,r.data[e+t.t+1]=1)}r.t>0&&(r.data[r.t-1]+=t.am(e,t.data[e],r,2*e,0,1)),r.s=0,r.clamp()}function h_(r,t,e){var n=r.abs();if(!(n.t<=0)){var i=this.abs();if(i.t<n.t){t?.fromInt(0),e!=null&&this.copyTo(e);return}e==null&&(e=lt());var o=lt(),s=this.s,a=r.s,c=this.DB-Ya(n.data[n.t-1]);c>0?(n.lShiftTo(c,o),i.lShiftTo(c,e)):(n.copyTo(o),i.copyTo(e));var l=o.t,u=o.data[l-1];if(u!=0){var f=u*(1<<this.F1)+(l>1?o.data[l-2]>>this.F2:0),d=this.FV/f,h=(1<<this.F1)/f,p=1<<this.F2,m=e.t,y=m-l,g=t??lt();for(o.dlShiftTo(y,g),e.compareTo(g)>=0&&(e.data[e.t++]=1,e.subTo(g,e)),S.ONE.dlShiftTo(l,g),g.subTo(o,o);o.t<l;)o.data[o.t++]=0;for(;--y>=0;){var E=e.data[--m]==u?this.DM:Math.floor(e.data[m]*d+(e.data[m-1]+p)*h);if((e.data[m]+=o.am(0,E,e,y,0,l))<E)for(o.dlShiftTo(y,g),e.subTo(g,e);e.data[m]<--E;)e.subTo(g,e)}t!=null&&(e.drShiftTo(l,t),s!=a&&S.ZERO.subTo(t,t)),e.t=l,e.clamp(),c>0&&e.rShiftTo(c,e),s<0&&S.ZERO.subTo(e,e)}}}function d_(r){var t=lt();return this.abs().divRemTo(r,null,t),this.s<0&&t.compareTo(S.ZERO)>0&&r.subTo(t,t),t}function Zn(r){this.m=r}function p_(r){return r.s<0||r.compareTo(this.m)>=0?r.mod(this.m):r}function m_(r){return r}function y_(r){r.divRemTo(this.m,null,r)}function g_(r,t,e){r.multiplyTo(t,e),this.reduce(e)}function w_(r,t){r.squareTo(t),this.reduce(t)}Zn.prototype.convert=p_;Zn.prototype.revert=m_;Zn.prototype.reduce=y_;Zn.prototype.mulTo=g_;Zn.prototype.sqrTo=w_;function E_(){if(this.t<1)return 0;var r=this.data[0];if(!(r&1))return 0;var t=r&3;return t=t*(2-(r&15)*t)&15,t=t*(2-(r&255)*t)&255,t=t*(2-((r&65535)*t&65535))&65535,t=t*(2-r*t%this.DV)%this.DV,t>0?this.DV-t:-t}function Jn(r){this.m=r,this.mp=r.invDigit(),this.mpl=this.mp&32767,this.mph=this.mp>>15,this.um=(1<<r.DB-15)-1,this.mt2=2*r.t}function x_(r){var t=lt();return r.abs().dlShiftTo(this.m.t,t),t.divRemTo(this.m,null,t),r.s<0&&t.compareTo(S.ZERO)>0&&this.m.subTo(t,t),t}function v_(r){var t=lt();return r.copyTo(t),this.reduce(t),t}function b_(r){for(;r.t<=this.mt2;)r.data[r.t++]=0;for(var t=0;t<this.m.t;++t){var e=r.data[t]&32767,n=e*this.mpl+((e*this.mph+(r.data[t]>>15)*this.mpl&this.um)<<15)&r.DM;for(e=t+this.m.t,r.data[e]+=this.m.am(0,n,r,t,0,this.m.t);r.data[e]>=r.DV;)r.data[e]-=r.DV,r.data[++e]++}r.clamp(),r.drShiftTo(this.m.t,r),r.compareTo(this.m)>=0&&r.subTo(this.m,r)}function __(r,t){r.squareTo(t),this.reduce(t)}function S_(r,t,e){r.multiplyTo(t,e),this.reduce(e)}Jn.prototype.convert=x_;Jn.prototype.revert=v_;Jn.prototype.reduce=b_;Jn.prototype.mulTo=S_;Jn.prototype.sqrTo=__;function A_(){return(this.t>0?this.data[0]&1:this.s)==0}function R_(r,t){if(r>4294967295||r<1)return S.ONE;var e=lt(),n=lt(),i=t.convert(this),o=Ya(r)-1;for(i.copyTo(e);--o>=0;)if(t.sqrTo(e,n),(r&1<<o)>0)t.mulTo(n,i,e);else{var s=e;e=n,n=s}return t.revert(e)}function I_(r,t){var e;return r<256||t.isEven()?e=new Zn(t):e=new Jn(t),this.exp(r,e)}S.prototype.copyTo=Xb;S.prototype.fromInt=Zb;S.prototype.fromString=Jb;S.prototype.clamp=jb;S.prototype.dlShiftTo=o_;S.prototype.drShiftTo=s_;S.prototype.lShiftTo=a_;S.prototype.rShiftTo=c_;S.prototype.subTo=l_;S.prototype.multiplyTo=u_;S.prototype.squareTo=f_;S.prototype.divRemTo=h_;S.prototype.invDigit=E_;S.prototype.isEven=A_;S.prototype.exp=R_;S.prototype.toString=t_;S.prototype.negate=e_;S.prototype.abs=r_;S.prototype.compareTo=n_;S.prototype.bitLength=i_;S.prototype.mod=d_;S.prototype.modPowInt=I_;S.ZERO=pn(0);S.ONE=pn(1);function T_(){var r=lt();return this.copyTo(r),r}function C_(){if(this.s<0){if(this.t==1)return this.data[0]-this.DV;if(this.t==0)return-1}else{if(this.t==1)return this.data[0];if(this.t==0)return 0}return(this.data[1]&(1<<32-this.DB)-1)<<this.DB|this.data[0]}function D_(){return this.t==0?this.s:this.data[0]<<24>>24}function P_(){return this.t==0?this.s:this.data[0]<<16>>16}function L_(r){return Math.floor(Math.LN2*this.DB/Math.log(r))}function B_(){return this.s<0?-1:this.t<=0||this.t==1&&this.data[0]<=0?0:1}function N_(r){if(r==null&&(r=10),this.signum()==0||r<2||r>36)return"0";var t=this.chunkSize(r),e=Math.pow(r,t),n=pn(e),i=lt(),o=lt(),s="";for(this.divRemTo(n,i,o);i.signum()>0;)s=(e+o.intValue()).toString(r).substr(1)+s,i.divRemTo(n,i,o);return o.intValue().toString(r)+s}function O_(r,t){this.fromInt(0),t==null&&(t=10);for(var e=this.chunkSize(t),n=Math.pow(t,e),i=!1,o=0,s=0,a=0;a<r.length;++a){var c=My(r,a);if(c<0){r.charAt(a)=="-"&&this.signum()==0&&(i=!0);continue}s=t*s+c,++o>=e&&(this.dMultiply(n),this.dAddOffset(s,0),o=0,s=0)}o>0&&(this.dMultiply(Math.pow(t,o)),this.dAddOffset(s,0)),i&&S.ZERO.subTo(this,this)}function k_(r,t,e){if(typeof t=="number")if(r<2)this.fromInt(1);else for(this.fromNumber(r,e),this.testBit(r-1)||this.bitwiseTo(S.ONE.shiftLeft(r-1),uf,this),this.isEven()&&this.dAddOffset(1,0);!this.isProbablePrime(t);)this.dAddOffset(2,0),this.bitLength()>r&&this.subTo(S.ONE.shiftLeft(r-1),this);else{var n=new Array,i=r&7;n.length=(r>>3)+1,t.nextBytes(n),i>0?n[0]&=(1<<i)-1:n[0]=0,this.fromString(n,256)}}function M_(){var r=this.t,t=new Array;t[0]=this.s;var e=this.DB-r*this.DB%8,n,i=0;if(r-- >0)for(e<this.DB&&(n=this.data[r]>>e)!=(this.s&this.DM)>>e&&(t[i++]=n|this.s<<this.DB-e);r>=0;)e<8?(n=(this.data[r]&(1<<e)-1)<<8-e,n|=this.data[--r]>>(e+=this.DB-8)):(n=this.data[r]>>(e-=8)&255,e<=0&&(e+=this.DB,--r)),n&128&&(n|=-256),i==0&&(this.s&128)!=(n&128)&&++i,(i>0||n!=this.s)&&(t[i++]=n);return t}function U_(r){return this.compareTo(r)==0}function F_(r){return this.compareTo(r)<0?this:r}function K_(r){return this.compareTo(r)>0?this:r}function V_(r,t,e){var n,i,o=Math.min(r.t,this.t);for(n=0;n<o;++n)e.data[n]=t(this.data[n],r.data[n]);if(r.t<this.t){for(i=r.s&this.DM,n=o;n<this.t;++n)e.data[n]=t(this.data[n],i);e.t=this.t}else{for(i=this.s&this.DM,n=o;n<r.t;++n)e.data[n]=t(i,r.data[n]);e.t=r.t}e.s=t(this.s,r.s),e.clamp()}function q_(r,t){return r&t}function H_(r){var t=lt();return this.bitwiseTo(r,q_,t),t}function uf(r,t){return r|t}function $_(r){var t=lt();return this.bitwiseTo(r,uf,t),t}function Uy(r,t){return r^t}function z_(r){var t=lt();return this.bitwiseTo(r,Uy,t),t}function Fy(r,t){return r&~t}function G_(r){var t=lt();return this.bitwiseTo(r,Fy,t),t}function Y_(){for(var r=lt(),t=0;t<this.t;++t)r.data[t]=this.DM&~this.data[t];return r.t=this.t,r.s=~this.s,r}function W_(r){var t=lt();return r<0?this.rShiftTo(-r,t):this.lShiftTo(r,t),t}function Q_(r){var t=lt();return r<0?this.lShiftTo(-r,t):this.rShiftTo(r,t),t}function X_(r){if(r==0)return-1;var t=0;return r&65535||(r>>=16,t+=16),r&255||(r>>=8,t+=8),r&15||(r>>=4,t+=4),r&3||(r>>=2,t+=2),r&1||++t,t}function Z_(){for(var r=0;r<this.t;++r)if(this.data[r]!=0)return r*this.DB+X_(this.data[r]);return this.s<0?this.t*this.DB:-1}function J_(r){for(var t=0;r!=0;)r&=r-1,++t;return t}function j_(){for(var r=0,t=this.s&this.DM,e=0;e<this.t;++e)r+=J_(this.data[e]^t);return r}function tS(r){var t=Math.floor(r/this.DB);return t>=this.t?this.s!=0:(this.data[t]&1<<r%this.DB)!=0}function eS(r,t){var e=S.ONE.shiftLeft(r);return this.bitwiseTo(e,t,e),e}function rS(r){return this.changeBit(r,uf)}function nS(r){return this.changeBit(r,Fy)}function iS(r){return this.changeBit(r,Uy)}function oS(r,t){for(var e=0,n=0,i=Math.min(r.t,this.t);e<i;)n+=this.data[e]+r.data[e],t.data[e++]=n&this.DM,n>>=this.DB;if(r.t<this.t){for(n+=r.s;e<this.t;)n+=this.data[e],t.data[e++]=n&this.DM,n>>=this.DB;n+=this.s}else{for(n+=this.s;e<r.t;)n+=r.data[e],t.data[e++]=n&this.DM,n>>=this.DB;n+=r.s}t.s=n<0?-1:0,n>0?t.data[e++]=n:n<-1&&(t.data[e++]=this.DV+n),t.t=e,t.clamp()}function sS(r){var t=lt();return this.addTo(r,t),t}function aS(r){var t=lt();return this.subTo(r,t),t}function cS(r){var t=lt();return this.multiplyTo(r,t),t}function lS(r){var t=lt();return this.divRemTo(r,t,null),t}function uS(r){var t=lt();return this.divRemTo(r,null,t),t}function fS(r){var t=lt(),e=lt();return this.divRemTo(r,t,e),new Array(t,e)}function hS(r){this.data[this.t]=this.am(0,r-1,this,0,0,this.t),++this.t,this.clamp()}function dS(r,t){if(r!=0){for(;this.t<=t;)this.data[this.t++]=0;for(this.data[t]+=r;this.data[t]>=this.DV;)this.data[t]-=this.DV,++t>=this.t&&(this.data[this.t++]=0),++this.data[t]}}function qo(){}function Ky(r){return r}function pS(r,t,e){r.multiplyTo(t,e)}function mS(r,t){r.squareTo(t)}qo.prototype.convert=Ky;qo.prototype.revert=Ky;qo.prototype.mulTo=pS;qo.prototype.sqrTo=mS;function yS(r){return this.exp(r,new qo)}function gS(r,t,e){var n=Math.min(this.t+r.t,t);for(e.s=0,e.t=n;n>0;)e.data[--n]=0;var i;for(i=e.t-this.t;n<i;++n)e.data[n+this.t]=this.am(0,r.data[n],e,n,0,this.t);for(i=Math.min(r.t,t);n<i;++n)this.am(0,r.data[n],e,n,0,t-n);e.clamp()}function wS(r,t,e){--t;var n=e.t=this.t+r.t-t;for(e.s=0;--n>=0;)e.data[n]=0;for(n=Math.max(t-this.t,0);n<r.t;++n)e.data[this.t+n-t]=this.am(t-n,r.data[n],e,0,0,this.t+n-t);e.clamp(),e.drShiftTo(1,e)}function zi(r){this.r2=lt(),this.q3=lt(),S.ONE.dlShiftTo(2*r.t,this.r2),this.mu=this.r2.divide(r),this.m=r}function ES(r){if(r.s<0||r.t>2*this.m.t)return r.mod(this.m);if(r.compareTo(this.m)<0)return r;var t=lt();return r.copyTo(t),this.reduce(t),t}function xS(r){return r}function vS(r){for(r.drShiftTo(this.m.t-1,this.r2),r.t>this.m.t+1&&(r.t=this.m.t+1,r.clamp()),this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3),this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);r.compareTo(this.r2)<0;)r.dAddOffset(1,this.m.t+1);for(r.subTo(this.r2,r);r.compareTo(this.m)>=0;)r.subTo(this.m,r)}function bS(r,t){r.squareTo(t),this.reduce(t)}function _S(r,t,e){r.multiplyTo(t,e),this.reduce(e)}zi.prototype.convert=ES;zi.prototype.revert=xS;zi.prototype.reduce=vS;zi.prototype.mulTo=_S;zi.prototype.sqrTo=bS;function SS(r,t){var e=r.bitLength(),n,i=pn(1),o;if(e<=0)return i;e<18?n=1:e<48?n=3:e<144?n=4:e<768?n=5:n=6,e<8?o=new Zn(t):t.isEven()?o=new zi(t):o=new Jn(t);var s=new Array,a=3,c=n-1,l=(1<<n)-1;if(s[1]=o.convert(this),n>1){var u=lt();for(o.sqrTo(s[1],u);a<=l;)s[a]=lt(),o.mulTo(u,s[a-2],s[a]),a+=2}var f=r.t-1,d,h=!0,p=lt(),m;for(e=Ya(r.data[f])-1;f>=0;){for(e>=c?d=r.data[f]>>e-c&l:(d=(r.data[f]&(1<<e+1)-1)<<c-e,f>0&&(d|=r.data[f-1]>>this.DB+e-c)),a=n;!(d&1);)d>>=1,--a;if((e-=a)<0&&(e+=this.DB,--f),h)s[d].copyTo(i),h=!1;else{for(;a>1;)o.sqrTo(i,p),o.sqrTo(p,i),a-=2;a>0?o.sqrTo(i,p):(m=i,i=p,p=m),o.mulTo(p,s[d],i)}for(;f>=0&&!(r.data[f]&1<<e);)o.sqrTo(i,p),m=i,i=p,p=m,--e<0&&(e=this.DB-1,--f)}return o.revert(i)}function AS(r){var t=this.s<0?this.negate():this.clone(),e=r.s<0?r.negate():r.clone();if(t.compareTo(e)<0){var n=t;t=e,e=n}var i=t.getLowestSetBit(),o=e.getLowestSetBit();if(o<0)return t;for(i<o&&(o=i),o>0&&(t.rShiftTo(o,t),e.rShiftTo(o,e));t.signum()>0;)(i=t.getLowestSetBit())>0&&t.rShiftTo(i,t),(i=e.getLowestSetBit())>0&&e.rShiftTo(i,e),t.compareTo(e)>=0?(t.subTo(e,t),t.rShiftTo(1,t)):(e.subTo(t,e),e.rShiftTo(1,e));return o>0&&e.lShiftTo(o,e),e}function RS(r){if(r<=0)return 0;var t=this.DV%r,e=this.s<0?r-1:0;if(this.t>0)if(t==0)e=this.data[0]%r;else for(var n=this.t-1;n>=0;--n)e=(t*e+this.data[n])%r;return e}function IS(r){var t=r.isEven();if(this.isEven()&&t||r.signum()==0)return S.ZERO;for(var e=r.clone(),n=this.clone(),i=pn(1),o=pn(0),s=pn(0),a=pn(1);e.signum()!=0;){for(;e.isEven();)e.rShiftTo(1,e),t?((!i.isEven()||!o.isEven())&&(i.addTo(this,i),o.subTo(r,o)),i.rShiftTo(1,i)):o.isEven()||o.subTo(r,o),o.rShiftTo(1,o);for(;n.isEven();)n.rShiftTo(1,n),t?((!s.isEven()||!a.isEven())&&(s.addTo(this,s),a.subTo(r,a)),s.rShiftTo(1,s)):a.isEven()||a.subTo(r,a),a.rShiftTo(1,a);e.compareTo(n)>=0?(e.subTo(n,e),t&&i.subTo(s,i),o.subTo(a,o)):(n.subTo(e,n),t&&s.subTo(i,s),a.subTo(o,a))}if(n.compareTo(S.ONE)!=0)return S.ZERO;if(a.compareTo(r)>=0)return a.subtract(r);if(a.signum()<0)a.addTo(r,a);else return a;return a.signum()<0?a.add(r):a}var je=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509],TS=(1<<26)/je[je.length-1];function CS(r){var t,e=this.abs();if(e.t==1&&e.data[0]<=je[je.length-1]){for(t=0;t<je.length;++t)if(e.data[0]==je[t])return!0;return!1}if(e.isEven())return!1;for(t=1;t<je.length;){for(var n=je[t],i=t+1;i<je.length&&n<TS;)n*=je[i++];for(n=e.modInt(n);t<i;)if(n%je[t++]==0)return!1}return e.millerRabin(r)}function DS(r){var t=this.subtract(S.ONE),e=t.getLowestSetBit();if(e<=0)return!1;for(var n=t.shiftRight(e),i=PS(),o,s=0;s<r;++s){do o=new S(this.bitLength(),i);while(o.compareTo(S.ONE)<=0||o.compareTo(t)>=0);var a=o.modPow(n,this);if(a.compareTo(S.ONE)!=0&&a.compareTo(t)!=0){for(var c=1;c++<e&&a.compareTo(t)!=0;)if(a=a.modPowInt(2,this),a.compareTo(S.ONE)==0)return!1;if(a.compareTo(t)!=0)return!1}}return!0}function PS(){return{nextBytes:function(r){for(var t=0;t<r.length;++t)r[t]=Math.floor(Math.random()*256)}}}S.prototype.chunkSize=L_;S.prototype.toRadix=N_;S.prototype.fromRadix=O_;S.prototype.fromNumber=k_;S.prototype.bitwiseTo=V_;S.prototype.changeBit=eS;S.prototype.addTo=oS;S.prototype.dMultiply=hS;S.prototype.dAddOffset=dS;S.prototype.multiplyLowerTo=gS;S.prototype.multiplyUpperTo=wS;S.prototype.modInt=RS;S.prototype.millerRabin=DS;S.prototype.clone=T_;S.prototype.intValue=C_;S.prototype.byteValue=D_;S.prototype.shortValue=P_;S.prototype.signum=B_;S.prototype.toByteArray=M_;S.prototype.equals=U_;S.prototype.min=F_;S.prototype.max=K_;S.prototype.and=H_;S.prototype.or=$_;S.prototype.xor=z_;S.prototype.andNot=G_;S.prototype.not=Y_;S.prototype.shiftLeft=W_;S.prototype.shiftRight=Q_;S.prototype.getLowestSetBit=Z_;S.prototype.bitCount=j_;S.prototype.testBit=tS;S.prototype.setBit=rS;S.prototype.clearBit=nS;S.prototype.flipBit=iS;S.prototype.add=sS;S.prototype.subtract=aS;S.prototype.multiply=cS;S.prototype.divide=lS;S.prototype.remainder=uS;S.prototype.divideAndRemainder=fS;S.prototype.modPow=SS;S.prototype.modInverse=IS;S.prototype.pow=yS;S.prototype.gcd=AS;S.prototype.isProbablePrime=CS});var Gy=T((c8,zy)=>{var wr=yt();Xn();zt();var Hy=zy.exports=wr.sha1=wr.sha1||{};wr.md.sha1=wr.md.algorithms.sha1=Hy;Hy.create=function(){$y||LS();var r=null,t=wr.util.createBuffer(),e=new Array(80),n={algorithm:"sha1",blockLength:64,digestLength:20,messageLength:0,fullMessageLength:null,messageLengthSize:8};return n.start=function(){n.messageLength=0,n.fullMessageLength=n.messageLength64=[];for(var i=n.messageLengthSize/4,o=0;o<i;++o)n.fullMessageLength.push(0);return t=wr.util.createBuffer(),r={h0:1732584193,h1:4023233417,h2:2562383102,h3:271733878,h4:3285377520},n},n.start(),n.update=function(i,o){o==="utf8"&&(i=wr.util.encodeUtf8(i));var s=i.length;n.messageLength+=s,s=[s/4294967296>>>0,s>>>0];for(var a=n.fullMessageLength.length-1;a>=0;--a)n.fullMessageLength[a]+=s[1],s[1]=s[0]+(n.fullMessageLength[a]/4294967296>>>0),n.fullMessageLength[a]=n.fullMessageLength[a]>>>0,s[0]=s[1]/4294967296>>>0;return t.putBytes(i),qy(r,e,t),(t.read>2048||t.length()===0)&&t.compact(),n},n.digest=function(){var i=wr.util.createBuffer();i.putBytes(t.bytes());var o=n.fullMessageLength[n.fullMessageLength.length-1]+n.messageLengthSize,s=o&n.blockLength-1;i.putBytes(ff.substr(0,n.blockLength-s));for(var a,c,l=n.fullMessageLength[0]*8,u=0;u<n.fullMessageLength.length-1;++u)a=n.fullMessageLength[u+1]*8,c=a/4294967296>>>0,l+=c,i.putInt32(l>>>0),l=a>>>0;i.putInt32(l);var f={h0:r.h0,h1:r.h1,h2:r.h2,h3:r.h3,h4:r.h4};qy(f,e,i);var d=wr.util.createBuffer();return d.putInt32(f.h0),d.putInt32(f.h1),d.putInt32(f.h2),d.putInt32(f.h3),d.putInt32(f.h4),d},n};var ff=null,$y=!1;function LS(){ff=String.fromCharCode(128),ff+=wr.util.fillString(String.fromCharCode(0),64),$y=!0}function qy(r,t,e){for(var n,i,o,s,a,c,l,u,f=e.length();f>=64;){for(i=r.h0,o=r.h1,s=r.h2,a=r.h3,c=r.h4,u=0;u<16;++u)n=e.getInt32(),t[u]=n,l=a^o&(s^a),n=(i<<5|i>>>27)+l+c+1518500249+n,c=a,a=s,s=(o<<30|o>>>2)>>>0,o=i,i=n;for(;u<20;++u)n=t[u-3]^t[u-8]^t[u-14]^t[u-16],n=n<<1|n>>>31,t[u]=n,l=a^o&(s^a),n=(i<<5|i>>>27)+l+c+1518500249+n,c=a,a=s,s=(o<<30|o>>>2)>>>0,o=i,i=n;for(;u<32;++u)n=t[u-3]^t[u-8]^t[u-14]^t[u-16],n=n<<1|n>>>31,t[u]=n,l=o^s^a,n=(i<<5|i>>>27)+l+c+1859775393+n,c=a,a=s,s=(o<<30|o>>>2)>>>0,o=i,i=n;for(;u<40;++u)n=t[u-6]^t[u-16]^t[u-28]^t[u-32],n=n<<2|n>>>30,t[u]=n,l=o^s^a,n=(i<<5|i>>>27)+l+c+1859775393+n,c=a,a=s,s=(o<<30|o>>>2)>>>0,o=i,i=n;for(;u<60;++u)n=t[u-6]^t[u-16]^t[u-28]^t[u-32],n=n<<2|n>>>30,t[u]=n,l=o&s|a&(o^s),n=(i<<5|i>>>27)+l+c+2400959708+n,c=a,a=s,s=(o<<30|o>>>2)>>>0,o=i,i=n;for(;u<80;++u)n=t[u-6]^t[u-16]^t[u-28]^t[u-32],n=n<<2|n>>>30,t[u]=n,l=o^s^a,n=(i<<5|i>>>27)+l+c+3395469782+n,c=a,a=s,s=(o<<30|o>>>2)>>>0,o=i,i=n;r.h0=r.h0+i|0,r.h1=r.h1+o|0,r.h2=r.h2+s|0,r.h3=r.h3+a|0,r.h4=r.h4+c|0,f-=64}}});var Qy=T((l8,Wy)=>{var Er=yt();zt();Vo();Gy();var Yy=Wy.exports=Er.pkcs1=Er.pkcs1||{};Yy.encode_rsa_oaep=function(r,t,e){var n,i,o,s;typeof e=="string"?(n=e,i=arguments[3]||void 0,o=arguments[4]||void 0):e&&(n=e.label||void 0,i=e.seed||void 0,o=e.md||void 0,e.mgf1&&e.mgf1.md&&(s=e.mgf1.md)),o?o.start():o=Er.md.sha1.create(),s||(s=o);var a=Math.ceil(r.n.bitLength()/8),c=a-2*o.digestLength-2;if(t.length>c){var l=new Error("RSAES-OAEP input message length is too long.");throw l.length=t.length,l.maxLength=c,l}n||(n=""),o.update(n,"raw");for(var u=o.digest(),f="",d=c-t.length,h=0;h<d;h++)f+="\0";var p=u.getBytes()+f+""+t;if(!i)i=Er.random.getBytes(o.digestLength);else if(i.length!==o.digestLength){var l=new Error("Invalid RSAES-OAEP seed. The seed length must match the digest length.");throw l.seedLength=i.length,l.digestLength=o.digestLength,l}var m=Qa(i,a-o.digestLength-1,s),y=Er.util.xorBytes(p,m,p.length),g=Qa(y,o.digestLength,s),E=Er.util.xorBytes(i,g,i.length);return"\0"+E+y};Yy.decode_rsa_oaep=function(r,t,e){var n,i,o;typeof e=="string"?(n=e,i=arguments[3]||void 0):e&&(n=e.label||void 0,i=e.md||void 0,e.mgf1&&e.mgf1.md&&(o=e.mgf1.md));var s=Math.ceil(r.n.bitLength()/8);if(t.length!==s){var y=new Error("RSAES-OAEP encoded message length is invalid.");throw y.length=t.length,y.expectedLength=s,y}if(i===void 0?i=Er.md.sha1.create():i.start(),o||(o=i),s<2*i.digestLength+2)throw new Error("RSAES-OAEP key is too short for the hash function.");n||(n=""),i.update(n,"raw");for(var a=i.digest().getBytes(),c=t.charAt(0),l=t.substring(1,i.digestLength+1),u=t.substring(1+i.digestLength),f=Qa(u,i.digestLength,o),d=Er.util.xorBytes(l,f,l.length),h=Qa(d,s-i.digestLength-1,o),p=Er.util.xorBytes(u,h,u.length),m=p.substring(0,i.digestLength),y=c!=="\0",g=0;g<i.digestLength;++g)y|=a.charAt(g)!==m.charAt(g);for(var E=1,_=i.digestLength,k=i.digestLength;k<p.length;k++){var C=p.charCodeAt(k),D=C&1^1,J=E?65534:0;y|=C&J,E=E&D,_+=E}if(y||p.charCodeAt(_)!==1)throw new Error("Invalid RSAES-OAEP padding.");return p.substring(_+1)};function Qa(r,t,e){e||(e=Er.md.sha1.create());for(var n="",i=Math.ceil(t/e.digestLength),o=0;o<i;++o){var s=String.fromCharCode(o>>24&255,o>>16&255,o>>8&255,o&255);e.start(),e.update(r+s),n+=e.digest().getBytes()}return n.substring(0,t)}});var Xy=T((u8,hf)=>{var mn=yt();zt();Wa();Vo();(function(){if(mn.prime){hf.exports=mn.prime;return}var r=hf.exports=mn.prime=mn.prime||{},t=mn.jsbn.BigInteger,e=[6,4,2,4,2,4,6,2],n=new t(null);n.fromInt(30);var i=function(f,d){return f|d};r.generateProbablePrime=function(f,d,h){typeof d=="function"&&(h=d,d={}),d=d||{};var p=d.algorithm||"PRIMEINC";typeof p=="string"&&(p={name:p}),p.options=p.options||{};var m=d.prng||mn.random,y={nextBytes:function(g){for(var E=m.getBytesSync(g.length),_=0;_<g.length;++_)g[_]=E.charCodeAt(_)}};if(p.name==="PRIMEINC")return o(f,y,p.options,h);throw new Error("Invalid prime generation algorithm: "+p.name)};function o(f,d,h,p){return"workers"in h?c(f,d,h,p):s(f,d,h,p)}function s(f,d,h,p){var m=l(f,d),y=0,g=u(m.bitLength());"millerRabinTests"in h&&(g=h.millerRabinTests);var E=10;"maxBlockTime"in h&&(E=h.maxBlockTime),a(m,f,d,y,g,E,p)}function a(f,d,h,p,m,y,g){var E=+new Date;do{if(f.bitLength()>d&&(f=l(d,h)),f.isProbablePrime(m))return g(null,f);f.dAddOffset(e[p++%8],0)}while(y<0||+new Date-E<y);mn.util.setImmediate(function(){a(f,d,h,p,m,y,g)})}function c(f,d,h,p){if(typeof Worker>"u")return s(f,d,h,p);var m=l(f,d),y=h.workers,g=h.workLoad||100,E=g*30/8,_=h.workerScript||"forge/prime.worker.js";if(y===-1)return mn.util.estimateCores(function(C,D){C&&(D=2),y=D-1,k()});k();function k(){y=Math.max(1,y);for(var C=[],D=0;D<y;++D)C[D]=new Worker(_);for(var J=y,D=0;D<y;++D)C[D].addEventListener("message",jt);var rt=!1;function jt(Ge){if(!rt){--J;var xe=Ge.data;if(xe.found){for(var fe=0;fe<C.length;++fe)C[fe].terminate();return rt=!0,p(null,new t(xe.prime,16))}m.bitLength()>f&&(m=l(f,d));var mi=m.toString(16);Ge.target.postMessage({hex:mi,workLoad:g}),m.dAddOffset(E,0)}}}}function l(f,d){var h=new t(f,d),p=f-1;return h.testBit(p)||h.bitwiseTo(t.ONE.shiftLeft(p),i,h),h.dAddOffset(31-h.mod(n).byteValue(),0),h}function u(f){return f<=100?27:f<=150?18:f<=200?15:f<=250?12:f<=300?9:f<=350?8:f<=400?7:f<=500?6:f<=600?5:f<=800?4:f<=1250?3:2}})()});var Za=T((f8,ng)=>{var K=yt();Ko();Wa();Oa();Qy();Xy();Vo();zt();typeof it>"u"&&(it=K.jsbn.BigInteger);var it,df=K.util.isNodejs?Vn():null,x=K.asn1,Ve=K.util;K.pki=K.pki||{};ng.exports=K.pki.rsa=K.rsa=K.rsa||{};var z=K.pki,BS=[6,4,2,4,2,4,6,2],NS={name:"PrivateKeyInfo",tagClass:x.Class.UNIVERSAL,type:x.Type.SEQUENCE,constructed:!0,value:[{name:"PrivateKeyInfo.version",tagClass:x.Class.UNIVERSAL,type:x.Type.INTEGER,constructed:!1,capture:"privateKeyVersion"},{name:"PrivateKeyInfo.privateKeyAlgorithm",tagClass:x.Class.UNIVERSAL,type:x.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:x.Class.UNIVERSAL,type:x.Type.OID,constructed:!1,capture:"privateKeyOid"}]},{name:"PrivateKeyInfo",tagClass:x.Class.UNIVERSAL,type:x.Type.OCTETSTRING,constructed:!1,capture:"privateKey"}]},OS={name:"RSAPrivateKey",tagClass:x.Class.UNIVERSAL,type:x.Type.SEQUENCE,constructed:!0,value:[{name:"RSAPrivateKey.version",tagClass:x.Class.UNIVERSAL,type:x.Type.INTEGER,constructed:!1,capture:"privateKeyVersion"},{name:"RSAPrivateKey.modulus",tagClass:x.Class.UNIVERSAL,type:x.Type.INTEGER,constructed:!1,capture:"privateKeyModulus"},{name:"RSAPrivateKey.publicExponent",tagClass:x.Class.UNIVERSAL,type:x.Type.INTEGER,constructed:!1,capture:"privateKeyPublicExponent"},{name:"RSAPrivateKey.privateExponent",tagClass:x.Class.UNIVERSAL,type:x.Type.INTEGER,constructed:!1,capture:"privateKeyPrivateExponent"},{name:"RSAPrivateKey.prime1",tagClass:x.Class.UNIVERSAL,type:x.Type.INTEGER,constructed:!1,capture:"privateKeyPrime1"},{name:"RSAPrivateKey.prime2",tagClass:x.Class.UNIVERSAL,type:x.Type.INTEGER,constructed:!1,capture:"privateKeyPrime2"},{name:"RSAPrivateKey.exponent1",tagClass:x.Class.UNIVERSAL,type:x.Type.INTEGER,constructed:!1,capture:"privateKeyExponent1"},{name:"RSAPrivateKey.exponent2",tagClass:x.Class.UNIVERSAL,type:x.Type.INTEGER,constructed:!1,capture:"privateKeyExponent2"},{name:"RSAPrivateKey.coefficient",tagClass:x.Class.UNIVERSAL,type:x.Type.INTEGER,constructed:!1,capture:"privateKeyCoefficient"}]},kS={name:"RSAPublicKey",tagClass:x.Class.UNIVERSAL,type:x.Type.SEQUENCE,constructed:!0,value:[{name:"RSAPublicKey.modulus",tagClass:x.Class.UNIVERSAL,type:x.Type.INTEGER,constructed:!1,capture:"publicKeyModulus"},{name:"RSAPublicKey.exponent",tagClass:x.Class.UNIVERSAL,type:x.Type.INTEGER,constructed:!1,capture:"publicKeyExponent"}]},MS=K.pki.rsa.publicKeyValidator={name:"SubjectPublicKeyInfo",tagClass:x.Class.UNIVERSAL,type:x.Type.SEQUENCE,constructed:!0,captureAsn1:"subjectPublicKeyInfo",value:[{name:"SubjectPublicKeyInfo.AlgorithmIdentifier",tagClass:x.Class.UNIVERSAL,type:x.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:x.Class.UNIVERSAL,type:x.Type.OID,constructed:!1,capture:"publicKeyOid"}]},{name:"SubjectPublicKeyInfo.subjectPublicKey",tagClass:x.Class.UNIVERSAL,type:x.Type.BITSTRING,constructed:!1,value:[{name:"SubjectPublicKeyInfo.subjectPublicKey.RSAPublicKey",tagClass:x.Class.UNIVERSAL,type:x.Type.SEQUENCE,constructed:!0,optional:!0,captureAsn1:"rsaPublicKey"}]}]},US={name:"DigestInfo",tagClass:x.Class.UNIVERSAL,type:x.Type.SEQUENCE,constructed:!0,value:[{name:"DigestInfo.DigestAlgorithm",tagClass:x.Class.UNIVERSAL,type:x.Type.SEQUENCE,constructed:!0,value:[{name:"DigestInfo.DigestAlgorithm.algorithmIdentifier",tagClass:x.Class.UNIVERSAL,type:x.Type.OID,constructed:!1,capture:"algorithmIdentifier"},{name:"DigestInfo.DigestAlgorithm.parameters",tagClass:x.Class.UNIVERSAL,type:x.Type.NULL,capture:"parameters",optional:!0,constructed:!1}]},{name:"DigestInfo.digest",tagClass:x.Class.UNIVERSAL,type:x.Type.OCTETSTRING,constructed:!1,capture:"digest"}]},FS=function(r){var t;if(r.algorithm in z.oids)t=z.oids[r.algorithm];else{var e=new Error("Unknown message digest algorithm.");throw e.algorithm=r.algorithm,e}var n=x.oidToDer(t).getBytes(),i=x.create(x.Class.UNIVERSAL,x.Type.SEQUENCE,!0,[]),o=x.create(x.Class.UNIVERSAL,x.Type.SEQUENCE,!0,[]);o.value.push(x.create(x.Class.UNIVERSAL,x.Type.OID,!1,n)),o.value.push(x.create(x.Class.UNIVERSAL,x.Type.NULL,!1,""));var s=x.create(x.Class.UNIVERSAL,x.Type.OCTETSTRING,!1,r.digest().getBytes());return i.value.push(o),i.value.push(s),x.toDer(i).getBytes()},eg=function(r,t,e){if(e)return r.modPow(t.e,t.n);if(!t.p||!t.q)return r.modPow(t.d,t.n);t.dP||(t.dP=t.d.mod(t.p.subtract(it.ONE))),t.dQ||(t.dQ=t.d.mod(t.q.subtract(it.ONE))),t.qInv||(t.qInv=t.q.modInverse(t.p));var n;do n=new it(K.util.bytesToHex(K.random.getBytes(t.n.bitLength()/8)),16);while(n.compareTo(t.n)>=0||!n.gcd(t.n).equals(it.ONE));r=r.multiply(n.modPow(t.e,t.n)).mod(t.n);for(var i=r.mod(t.p).modPow(t.dP,t.p),o=r.mod(t.q).modPow(t.dQ,t.q);i.compareTo(o)<0;)i=i.add(t.p);var s=i.subtract(o).multiply(t.qInv).mod(t.p).multiply(t.q).add(o);return s=s.multiply(n.modInverse(t.n)).mod(t.n),s};z.rsa.encrypt=function(r,t,e){var n=e,i,o=Math.ceil(t.n.bitLength()/8);e!==!1&&e!==!0?(n=e===2,i=rg(r,t,e)):(i=K.util.createBuffer(),i.putBytes(r));for(var s=new it(i.toHex(),16),a=eg(s,t,n),c=a.toString(16),l=K.util.createBuffer(),u=o-Math.ceil(c.length/2);u>0;)l.putByte(0),--u;return l.putBytes(K.util.hexToBytes(c)),l.getBytes()};z.rsa.decrypt=function(r,t,e,n){var i=Math.ceil(t.n.bitLength()/8);if(r.length!==i){var o=new Error("Encrypted message length is invalid.");throw o.length=r.length,o.expected=i,o}var s=new it(K.util.createBuffer(r).toHex(),16);if(s.compareTo(t.n)>=0)throw new Error("Encrypted message is invalid.");for(var a=eg(s,t,e),c=a.toString(16),l=K.util.createBuffer(),u=i-Math.ceil(c.length/2);u>0;)l.putByte(0),--u;return l.putBytes(K.util.hexToBytes(c)),n!==!1?Xa(l.getBytes(),t,e):l.getBytes()};z.rsa.createKeyPairGenerationState=function(r,t,e){typeof r=="string"&&(r=parseInt(r,10)),r=r||2048,e=e||{};var n=e.prng||K.random,i={nextBytes:function(a){for(var c=n.getBytesSync(a.length),l=0;l<a.length;++l)a[l]=c.charCodeAt(l)}},o=e.algorithm||"PRIMEINC",s;if(o==="PRIMEINC")s={algorithm:o,state:0,bits:r,rng:i,eInt:t||65537,e:new it(null),p:null,q:null,qBits:r>>1,pBits:r-(r>>1),pqState:0,num:null,keys:null},s.e.fromInt(s.eInt);else throw new Error("Invalid key generation algorithm: "+o);return s};z.rsa.stepKeyPairGenerationState=function(r,t){"algorithm"in r||(r.algorithm="PRIMEINC");var e=new it(null);e.fromInt(30);for(var n=0,i=function(f,d){return f|d},o=+new Date,s,a=0;r.keys===null&&(t<=0||a<t);){if(r.state===0){var c=r.p===null?r.pBits:r.qBits,l=c-1;r.pqState===0?(r.num=new it(c,r.rng),r.num.testBit(l)||r.num.bitwiseTo(it.ONE.shiftLeft(l),i,r.num),r.num.dAddOffset(31-r.num.mod(e).byteValue(),0),n=0,++r.pqState):r.pqState===1?r.num.bitLength()>c?r.pqState=0:r.num.isProbablePrime(VS(r.num.bitLength()))?++r.pqState:r.num.dAddOffset(BS[n++%8],0):r.pqState===2?r.pqState=r.num.subtract(it.ONE).gcd(r.e).compareTo(it.ONE)===0?3:0:r.pqState===3&&(r.pqState=0,r.p===null?r.p=r.num:r.q=r.num,r.p!==null&&r.q!==null&&++r.state,r.num=null)}else if(r.state===1)r.p.compareTo(r.q)<0&&(r.num=r.p,r.p=r.q,r.q=r.num),++r.state;else if(r.state===2)r.p1=r.p.subtract(it.ONE),r.q1=r.q.subtract(it.ONE),r.phi=r.p1.multiply(r.q1),++r.state;else if(r.state===3)r.phi.gcd(r.e).compareTo(it.ONE)===0?++r.state:(r.p=null,r.q=null,r.state=0);else if(r.state===4)r.n=r.p.multiply(r.q),r.n.bitLength()===r.bits?++r.state:(r.q=null,r.state=0);else if(r.state===5){var u=r.e.modInverse(r.phi);r.keys={privateKey:z.rsa.setPrivateKey(r.n,r.e,u,r.p,r.q,u.mod(r.p1),u.mod(r.q1),r.q.modInverse(r.p)),publicKey:z.rsa.setPublicKey(r.n,r.e)}}s=+new Date,a+=s-o,o=s}return r.keys!==null};z.rsa.generateKeyPair=function(r,t,e,n){if(arguments.length===1?typeof r=="object"?(e=r,r=void 0):typeof r=="function"&&(n=r,r=void 0):arguments.length===2?typeof r=="number"?typeof t=="function"?(n=t,t=void 0):typeof t!="number"&&(e=t,t=void 0):(e=r,n=t,r=void 0,t=void 0):arguments.length===3&&(typeof t=="number"?typeof e=="function"&&(n=e,e=void 0):(n=e,e=t,t=void 0)),e=e||{},r===void 0&&(r=e.bits||2048),t===void 0&&(t=e.e||65537),!K.options.usePureJavaScript&&!e.prng&&r>=256&&r<=16384&&(t===65537||t===3)){if(n){if(Zy("generateKeyPair"))return df.generateKeyPair("rsa",{modulusLength:r,publicExponent:t,publicKeyEncoding:{type:"spki",format:"pem"},privateKeyEncoding:{type:"pkcs8",format:"pem"}},function(a,c,l){if(a)return n(a);n(null,{privateKey:z.privateKeyFromPem(l),publicKey:z.publicKeyFromPem(c)})});if(Jy("generateKey")&&Jy("exportKey"))return Ve.globalScope.crypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:r,publicExponent:tg(t),hash:{name:"SHA-256"}},!0,["sign","verify"]).then(function(a){return Ve.globalScope.crypto.subtle.exportKey("pkcs8",a.privateKey)}).then(void 0,function(a){n(a)}).then(function(a){if(a){var c=z.privateKeyFromAsn1(x.fromDer(K.util.createBuffer(a)));n(null,{privateKey:c,publicKey:z.setRsaPublicKey(c.n,c.e)})}});if(jy("generateKey")&&jy("exportKey")){var i=Ve.globalScope.msCrypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:r,publicExponent:tg(t),hash:{name:"SHA-256"}},!0,["sign","verify"]);i.oncomplete=function(a){var c=a.target.result,l=Ve.globalScope.msCrypto.subtle.exportKey("pkcs8",c.privateKey);l.oncomplete=function(u){var f=u.target.result,d=z.privateKeyFromAsn1(x.fromDer(K.util.createBuffer(f)));n(null,{privateKey:d,publicKey:z.setRsaPublicKey(d.n,d.e)})},l.onerror=function(u){n(u)}},i.onerror=function(a){n(a)};return}}else if(Zy("generateKeyPairSync")){var o=df.generateKeyPairSync("rsa",{modulusLength:r,publicExponent:t,publicKeyEncoding:{type:"spki",format:"pem"},privateKeyEncoding:{type:"pkcs8",format:"pem"}});return{privateKey:z.privateKeyFromPem(o.privateKey),publicKey:z.publicKeyFromPem(o.publicKey)}}}var s=z.rsa.createKeyPairGenerationState(r,t,e);if(!n)return z.rsa.stepKeyPairGenerationState(s,0),s.keys;KS(s,e,n)};z.setRsaPublicKey=z.rsa.setPublicKey=function(r,t){var e={n:r,e:t};return e.encrypt=function(n,i,o){if(typeof i=="string"?i=i.toUpperCase():i===void 0&&(i="RSAES-PKCS1-V1_5"),i==="RSAES-PKCS1-V1_5")i={encode:function(a,c,l){return rg(a,c,2).getBytes()}};else if(i==="RSA-OAEP"||i==="RSAES-OAEP")i={encode:function(a,c){return K.pkcs1.encode_rsa_oaep(c,a,o)}};else if(["RAW","NONE","NULL",null].indexOf(i)!==-1)i={encode:function(a){return a}};else if(typeof i=="string")throw new Error('Unsupported encryption scheme: "'+i+'".');var s=i.encode(n,e,!0);return z.rsa.encrypt(s,e,!0)},e.verify=function(n,i,o,s){typeof o=="string"?o=o.toUpperCase():o===void 0&&(o="RSASSA-PKCS1-V1_5"),s===void 0&&(s={_parseAllDigestBytes:!0}),"_parseAllDigestBytes"in s||(s._parseAllDigestBytes=!0),o==="RSASSA-PKCS1-V1_5"?o={verify:function(c,l){l=Xa(l,e,!0);var u=x.fromDer(l,{parseAllBytes:s._parseAllDigestBytes}),f={},d=[];if(!x.validate(u,US,f,d)){var h=new Error("ASN.1 object does not contain a valid RSASSA-PKCS1-v1_5 DigestInfo value.");throw h.errors=d,h}var p=x.derToOid(f.algorithmIdentifier);if(!(p===K.oids.md2||p===K.oids.md5||p===K.oids.sha1||p===K.oids.sha224||p===K.oids.sha256||p===K.oids.sha384||p===K.oids.sha512||p===K.oids["sha512-224"]||p===K.oids["sha512-256"])){var h=new Error("Unknown RSASSA-PKCS1-v1_5 DigestAlgorithm identifier.");throw h.oid=p,h}if((p===K.oids.md2||p===K.oids.md5)&&!("parameters"in f))throw new Error("ASN.1 object does not contain a valid RSASSA-PKCS1-v1_5 DigestInfo value. Missing algorithm identifer NULL parameters.");return c===f.digest}}:(o==="NONE"||o==="NULL"||o===null)&&(o={verify:function(c,l){return l=Xa(l,e,!0),c===l}});var a=z.rsa.decrypt(i,e,!0,!1);return o.verify(n,a,e.n.bitLength())},e};z.setRsaPrivateKey=z.rsa.setPrivateKey=function(r,t,e,n,i,o,s,a){var c={n:r,e:t,d:e,p:n,q:i,dP:o,dQ:s,qInv:a};return c.decrypt=function(l,u,f){typeof u=="string"?u=u.toUpperCase():u===void 0&&(u="RSAES-PKCS1-V1_5");var d=z.rsa.decrypt(l,c,!1,!1);if(u==="RSAES-PKCS1-V1_5")u={decode:Xa};else if(u==="RSA-OAEP"||u==="RSAES-OAEP")u={decode:function(h,p){return K.pkcs1.decode_rsa_oaep(p,h,f)}};else if(["RAW","NONE","NULL",null].indexOf(u)!==-1)u={decode:function(h){return h}};else throw new Error('Unsupported encryption scheme: "'+u+'".');return u.decode(d,c,!1)},c.sign=function(l,u){var f=!1;typeof u=="string"&&(u=u.toUpperCase()),u===void 0||u==="RSASSA-PKCS1-V1_5"?(u={encode:FS},f=1):(u==="NONE"||u==="NULL"||u===null)&&(u={encode:function(){return l}},f=1);var d=u.encode(l,c.n.bitLength());return z.rsa.encrypt(d,c,f)},c};z.wrapRsaPrivateKey=function(r){return x.create(x.Class.UNIVERSAL,x.Type.SEQUENCE,!0,[x.create(x.Class.UNIVERSAL,x.Type.INTEGER,!1,x.integerToDer(0).getBytes()),x.create(x.Class.UNIVERSAL,x.Type.SEQUENCE,!0,[x.create(x.Class.UNIVERSAL,x.Type.OID,!1,x.oidToDer(z.oids.rsaEncryption).getBytes()),x.create(x.Class.UNIVERSAL,x.Type.NULL,!1,"")]),x.create(x.Class.UNIVERSAL,x.Type.OCTETSTRING,!1,x.toDer(r).getBytes())])};z.privateKeyFromAsn1=function(r){var t={},e=[];if(x.validate(r,NS,t,e)&&(r=x.fromDer(K.util.createBuffer(t.privateKey))),t={},e=[],!x.validate(r,OS,t,e)){var n=new Error("Cannot read private key. ASN.1 object does not contain an RSAPrivateKey.");throw n.errors=e,n}var i,o,s,a,c,l,u,f;return i=K.util.createBuffer(t.privateKeyModulus).toHex(),o=K.util.createBuffer(t.privateKeyPublicExponent).toHex(),s=K.util.createBuffer(t.privateKeyPrivateExponent).toHex(),a=K.util.createBuffer(t.privateKeyPrime1).toHex(),c=K.util.createBuffer(t.privateKeyPrime2).toHex(),l=K.util.createBuffer(t.privateKeyExponent1).toHex(),u=K.util.createBuffer(t.privateKeyExponent2).toHex(),f=K.util.createBuffer(t.privateKeyCoefficient).toHex(),z.setRsaPrivateKey(new it(i,16),new it(o,16),new it(s,16),new it(a,16),new it(c,16),new it(l,16),new it(u,16),new it(f,16))};z.privateKeyToAsn1=z.privateKeyToRSAPrivateKey=function(r){return x.create(x.Class.UNIVERSAL,x.Type.SEQUENCE,!0,[x.create(x.Class.UNIVERSAL,x.Type.INTEGER,!1,x.integerToDer(0).getBytes()),x.create(x.Class.UNIVERSAL,x.Type.INTEGER,!1,xr(r.n)),x.create(x.Class.UNIVERSAL,x.Type.INTEGER,!1,xr(r.e)),x.create(x.Class.UNIVERSAL,x.Type.INTEGER,!1,xr(r.d)),x.create(x.Class.UNIVERSAL,x.Type.INTEGER,!1,xr(r.p)),x.create(x.Class.UNIVERSAL,x.Type.INTEGER,!1,xr(r.q)),x.create(x.Class.UNIVERSAL,x.Type.INTEGER,!1,xr(r.dP)),x.create(x.Class.UNIVERSAL,x.Type.INTEGER,!1,xr(r.dQ)),x.create(x.Class.UNIVERSAL,x.Type.INTEGER,!1,xr(r.qInv))])};z.publicKeyFromAsn1=function(r){var t={},e=[];if(x.validate(r,MS,t,e)){var n=x.derToOid(t.publicKeyOid);if(n!==z.oids.rsaEncryption){var i=new Error("Cannot read public key. Unknown OID.");throw i.oid=n,i}r=t.rsaPublicKey}if(e=[],!x.validate(r,kS,t,e)){var i=new Error("Cannot read public key. ASN.1 object does not contain an RSAPublicKey.");throw i.errors=e,i}var o=K.util.createBuffer(t.publicKeyModulus).toHex(),s=K.util.createBuffer(t.publicKeyExponent).toHex();return z.setRsaPublicKey(new it(o,16),new it(s,16))};z.publicKeyToAsn1=z.publicKeyToSubjectPublicKeyInfo=function(r){return x.create(x.Class.UNIVERSAL,x.Type.SEQUENCE,!0,[x.create(x.Class.UNIVERSAL,x.Type.SEQUENCE,!0,[x.create(x.Class.UNIVERSAL,x.Type.OID,!1,x.oidToDer(z.oids.rsaEncryption).getBytes()),x.create(x.Class.UNIVERSAL,x.Type.NULL,!1,"")]),x.create(x.Class.UNIVERSAL,x.Type.BITSTRING,!1,[z.publicKeyToRSAPublicKey(r)])])};z.publicKeyToRSAPublicKey=function(r){return x.create(x.Class.UNIVERSAL,x.Type.SEQUENCE,!0,[x.create(x.Class.UNIVERSAL,x.Type.INTEGER,!1,xr(r.n)),x.create(x.Class.UNIVERSAL,x.Type.INTEGER,!1,xr(r.e))])};function rg(r,t,e){var n=K.util.createBuffer(),i=Math.ceil(t.n.bitLength()/8);if(r.length>i-11){var o=new Error("Message is too long for PKCS#1 v1.5 padding.");throw o.length=r.length,o.max=i-11,o}n.putByte(0),n.putByte(e);var s=i-3-r.length,a;if(e===0||e===1){a=e===0?0:255;for(var c=0;c<s;++c)n.putByte(a)}else for(;s>0;){for(var l=0,u=K.random.getBytes(s),c=0;c<s;++c)a=u.charCodeAt(c),a===0?++l:n.putByte(a);s=l}return n.putByte(0),n.putBytes(r),n}function Xa(r,t,e,n){var i=Math.ceil(t.n.bitLength()/8),o=K.util.createBuffer(r),s=o.getByte(),a=o.getByte();if(s!==0||e&&a!==0&&a!==1||!e&&a!=2||e&&a===0&&typeof n>"u")throw new Error("Encryption block is invalid.");var c=0;if(a===0){c=i-3-n;for(var l=0;l<c;++l)if(o.getByte()!==0)throw new Error("Encryption block is invalid.")}else if(a===1)for(c=0;o.length()>1;){if(o.getByte()!==255){--o.read;break}++c}else if(a===2)for(c=0;o.length()>1;){if(o.getByte()===0){--o.read;break}++c}var u=o.getByte();if(u!==0||c!==i-3-o.length())throw new Error("Encryption block is invalid.");return o.getBytes()}function KS(r,t,e){typeof t=="function"&&(e=t,t={}),t=t||{};var n={algorithm:{name:t.algorithm||"PRIMEINC",options:{workers:t.workers||2,workLoad:t.workLoad||100,workerScript:t.workerScript}}};"prng"in t&&(n.prng=t.prng),i();function i(){o(r.pBits,function(a,c){if(a)return e(a);if(r.p=c,r.q!==null)return s(a,r.q);o(r.qBits,s)})}function o(a,c){K.prime.generateProbablePrime(a,n,c)}function s(a,c){if(a)return e(a);if(r.q=c,r.p.compareTo(r.q)<0){var l=r.p;r.p=r.q,r.q=l}if(r.p.subtract(it.ONE).gcd(r.e).compareTo(it.ONE)!==0){r.p=null,i();return}if(r.q.subtract(it.ONE).gcd(r.e).compareTo(it.ONE)!==0){r.q=null,o(r.qBits,s);return}if(r.p1=r.p.subtract(it.ONE),r.q1=r.q.subtract(it.ONE),r.phi=r.p1.multiply(r.q1),r.phi.gcd(r.e).compareTo(it.ONE)!==0){r.p=r.q=null,i();return}if(r.n=r.p.multiply(r.q),r.n.bitLength()!==r.bits){r.q=null,o(r.qBits,s);return}var u=r.e.modInverse(r.phi);r.keys={privateKey:z.rsa.setPrivateKey(r.n,r.e,u,r.p,r.q,u.mod(r.p1),u.mod(r.q1),r.q.modInverse(r.p)),publicKey:z.rsa.setPublicKey(r.n,r.e)},e(null,r.keys)}}function xr(r){var t=r.toString(16);t[0]>="8"&&(t="00"+t);var e=K.util.hexToBytes(t);return e.length>1&&(e.charCodeAt(0)===0&&!(e.charCodeAt(1)&128)||e.charCodeAt(0)===255&&(e.charCodeAt(1)&128)===128)?e.substr(1):e}function VS(r){return r<=100?27:r<=150?18:r<=200?15:r<=250?12:r<=300?9:r<=350?8:r<=400?7:r<=500?6:r<=600?5:r<=800?4:r<=1250?3:2}function Zy(r){return K.util.isNodejs&&typeof df[r]=="function"}function Jy(r){return typeof Ve.globalScope<"u"&&typeof Ve.globalScope.crypto=="object"&&typeof Ve.globalScope.crypto.subtle=="object"&&typeof Ve.globalScope.crypto.subtle[r]=="function"}function jy(r){return typeof Ve.globalScope<"u"&&typeof Ve.globalScope.msCrypto=="object"&&typeof Ve.globalScope.msCrypto.subtle=="object"&&typeof Ve.globalScope.msCrypto.subtle[r]=="function"}function tg(r){for(var t=K.util.hexToBytes(r.toString(16)),e=new Uint8Array(t.length),n=0;n<t.length;++n)e[n]=t.charCodeAt(n);return e}});var lg=T((h8,cg)=>{var L=yt();Ka();Ko();py();Xn();Oa();nf();vy();Vo();By();Za();zt();typeof ig>"u"&&(ig=L.jsbn.BigInteger);var ig,v=L.asn1,Y=L.pki=L.pki||{};cg.exports=Y.pbe=L.pbe=L.pbe||{};var jn=Y.oids,qS={name:"EncryptedPrivateKeyInfo",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,value:[{name:"EncryptedPrivateKeyInfo.encryptionAlgorithm",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:v.Class.UNIVERSAL,type:v.Type.OID,constructed:!1,capture:"encryptionOid"},{name:"AlgorithmIdentifier.parameters",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,captureAsn1:"encryptionParams"}]},{name:"EncryptedPrivateKeyInfo.encryptedData",tagClass:v.Class.UNIVERSAL,type:v.Type.OCTETSTRING,constructed:!1,capture:"encryptedData"}]},HS={name:"PBES2Algorithms",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.keyDerivationFunc",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.keyDerivationFunc.oid",tagClass:v.Class.UNIVERSAL,type:v.Type.OID,constructed:!1,capture:"kdfOid"},{name:"PBES2Algorithms.params",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.params.salt",tagClass:v.Class.UNIVERSAL,type:v.Type.OCTETSTRING,constructed:!1,capture:"kdfSalt"},{name:"PBES2Algorithms.params.iterationCount",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"kdfIterationCount"},{name:"PBES2Algorithms.params.keyLength",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,optional:!0,capture:"keyLength"},{name:"PBES2Algorithms.params.prf",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,optional:!0,value:[{name:"PBES2Algorithms.params.prf.algorithm",tagClass:v.Class.UNIVERSAL,type:v.Type.OID,constructed:!1,capture:"prfOid"}]}]}]},{name:"PBES2Algorithms.encryptionScheme",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.encryptionScheme.oid",tagClass:v.Class.UNIVERSAL,type:v.Type.OID,constructed:!1,capture:"encOid"},{name:"PBES2Algorithms.encryptionScheme.iv",tagClass:v.Class.UNIVERSAL,type:v.Type.OCTETSTRING,constructed:!1,capture:"encIv"}]}]},$S={name:"pkcs-12PbeParams",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,value:[{name:"pkcs-12PbeParams.salt",tagClass:v.Class.UNIVERSAL,type:v.Type.OCTETSTRING,constructed:!1,capture:"salt"},{name:"pkcs-12PbeParams.iterations",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"iterations"}]};Y.encryptPrivateKeyInfo=function(r,t,e){e=e||{},e.saltSize=e.saltSize||8,e.count=e.count||2048,e.algorithm=e.algorithm||"aes128",e.prfAlgorithm=e.prfAlgorithm||"sha1";var n=L.random.getBytesSync(e.saltSize),i=e.count,o=v.integerToDer(i),s,a,c;if(e.algorithm.indexOf("aes")===0||e.algorithm==="des"){var l,u,f;switch(e.algorithm){case"aes128":s=16,l=16,u=jn["aes128-CBC"],f=L.aes.createEncryptionCipher;break;case"aes192":s=24,l=16,u=jn["aes192-CBC"],f=L.aes.createEncryptionCipher;break;case"aes256":s=32,l=16,u=jn["aes256-CBC"],f=L.aes.createEncryptionCipher;break;case"des":s=8,l=8,u=jn.desCBC,f=L.des.createEncryptionCipher;break;default:var d=new Error("Cannot encrypt private key. Unknown encryption algorithm.");throw d.algorithm=e.algorithm,d}var h="hmacWith"+e.prfAlgorithm.toUpperCase(),p=ag(h),m=L.pkcs5.pbkdf2(t,n,i,s,p),y=L.random.getBytesSync(l),g=f(m);g.start(y),g.update(v.toDer(r)),g.finish(),c=g.output.getBytes();var E=zS(n,o,s,h);a=v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.OID,!1,v.oidToDer(jn.pkcs5PBES2).getBytes()),v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.OID,!1,v.oidToDer(jn.pkcs5PBKDF2).getBytes()),E]),v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.OID,!1,v.oidToDer(u).getBytes()),v.create(v.Class.UNIVERSAL,v.Type.OCTETSTRING,!1,y)])])])}else if(e.algorithm==="3des"){s=24;var _=new L.util.ByteBuffer(n),m=Y.pbe.generatePkcs12Key(t,_,1,i,s),y=Y.pbe.generatePkcs12Key(t,_,2,i,s),g=L.des.createEncryptionCipher(m);g.start(y),g.update(v.toDer(r)),g.finish(),c=g.output.getBytes(),a=v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.OID,!1,v.oidToDer(jn["pbeWithSHAAnd3-KeyTripleDES-CBC"]).getBytes()),v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.OCTETSTRING,!1,n),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,o.getBytes())])])}else{var d=new Error("Cannot encrypt private key. Unknown encryption algorithm.");throw d.algorithm=e.algorithm,d}var k=v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[a,v.create(v.Class.UNIVERSAL,v.Type.OCTETSTRING,!1,c)]);return k};Y.decryptPrivateKeyInfo=function(r,t){var e=null,n={},i=[];if(!v.validate(r,qS,n,i)){var o=new Error("Cannot read encrypted private key. ASN.1 object is not a supported EncryptedPrivateKeyInfo.");throw o.errors=i,o}var s=v.derToOid(n.encryptionOid),a=Y.pbe.getCipher(s,n.encryptionParams,t),c=L.util.createBuffer(n.encryptedData);return a.update(c),a.finish()&&(e=v.fromDer(a.output)),e};Y.encryptedPrivateKeyToPem=function(r,t){var e={type:"ENCRYPTED PRIVATE KEY",body:v.toDer(r).getBytes()};return L.pem.encode(e,{maxline:t})};Y.encryptedPrivateKeyFromPem=function(r){var t=L.pem.decode(r)[0];if(t.type!=="ENCRYPTED PRIVATE KEY"){var e=new Error('Could not convert encrypted private key from PEM; PEM header type is "ENCRYPTED PRIVATE KEY".');throw e.headerType=t.type,e}if(t.procType&&t.procType.type==="ENCRYPTED")throw new Error("Could not convert encrypted private key from PEM; PEM is encrypted.");return v.fromDer(t.body)};Y.encryptRsaPrivateKey=function(r,t,e){if(e=e||{},!e.legacy){var n=Y.wrapRsaPrivateKey(Y.privateKeyToAsn1(r));return n=Y.encryptPrivateKeyInfo(n,t,e),Y.encryptedPrivateKeyToPem(n)}var i,o,s,a;switch(e.algorithm){case"aes128":i="AES-128-CBC",s=16,o=L.random.getBytesSync(16),a=L.aes.createEncryptionCipher;break;case"aes192":i="AES-192-CBC",s=24,o=L.random.getBytesSync(16),a=L.aes.createEncryptionCipher;break;case"aes256":i="AES-256-CBC",s=32,o=L.random.getBytesSync(16),a=L.aes.createEncryptionCipher;break;case"3des":i="DES-EDE3-CBC",s=24,o=L.random.getBytesSync(8),a=L.des.createEncryptionCipher;break;case"des":i="DES-CBC",s=8,o=L.random.getBytesSync(8),a=L.des.createEncryptionCipher;break;default:var c=new Error('Could not encrypt RSA private key; unsupported encryption algorithm "'+e.algorithm+'".');throw c.algorithm=e.algorithm,c}var l=L.pbe.opensslDeriveBytes(t,o.substr(0,8),s),u=a(l);u.start(o),u.update(v.toDer(Y.privateKeyToAsn1(r))),u.finish();var f={type:"RSA PRIVATE KEY",procType:{version:"4",type:"ENCRYPTED"},dekInfo:{algorithm:i,parameters:L.util.bytesToHex(o).toUpperCase()},body:u.output.getBytes()};return L.pem.encode(f)};Y.decryptRsaPrivateKey=function(r,t){var e=null,n=L.pem.decode(r)[0];if(n.type!=="ENCRYPTED PRIVATE KEY"&&n.type!=="PRIVATE KEY"&&n.type!=="RSA PRIVATE KEY"){var i=new Error('Could not convert private key from PEM; PEM header type is not "ENCRYPTED PRIVATE KEY", "PRIVATE KEY", or "RSA PRIVATE KEY".');throw i.headerType=i,i}if(n.procType&&n.procType.type==="ENCRYPTED"){var o,s;switch(n.dekInfo.algorithm){case"DES-CBC":o=8,s=L.des.createDecryptionCipher;break;case"DES-EDE3-CBC":o=24,s=L.des.createDecryptionCipher;break;case"AES-128-CBC":o=16,s=L.aes.createDecryptionCipher;break;case"AES-192-CBC":o=24,s=L.aes.createDecryptionCipher;break;case"AES-256-CBC":o=32,s=L.aes.createDecryptionCipher;break;case"RC2-40-CBC":o=5,s=function(f){return L.rc2.createDecryptionCipher(f,40)};break;case"RC2-64-CBC":o=8,s=function(f){return L.rc2.createDecryptionCipher(f,64)};break;case"RC2-128-CBC":o=16,s=function(f){return L.rc2.createDecryptionCipher(f,128)};break;default:var i=new Error('Could not decrypt private key; unsupported encryption algorithm "'+n.dekInfo.algorithm+'".');throw i.algorithm=n.dekInfo.algorithm,i}var a=L.util.hexToBytes(n.dekInfo.parameters),c=L.pbe.opensslDeriveBytes(t,a.substr(0,8),o),l=s(c);if(l.start(a),l.update(L.util.createBuffer(n.body)),l.finish())e=l.output.getBytes();else return e}else e=n.body;return n.type==="ENCRYPTED PRIVATE KEY"?e=Y.decryptPrivateKeyInfo(v.fromDer(e),t):e=v.fromDer(e),e!==null&&(e=Y.privateKeyFromAsn1(e)),e};Y.pbe.generatePkcs12Key=function(r,t,e,n,i,o){var s,a;if(typeof o>"u"||o===null){if(!("sha1"in L.md))throw new Error('"sha1" hash algorithm unavailable.');o=L.md.sha1.create()}var c=o.digestLength,l=o.blockLength,u=new L.util.ByteBuffer,f=new L.util.ByteBuffer;if(r!=null){for(a=0;a<r.length;a++)f.putInt16(r.charCodeAt(a));f.putInt16(0)}var d=f.length(),h=t.length(),p=new L.util.ByteBuffer;p.fillWithByte(e,l);var m=l*Math.ceil(h/l),y=new L.util.ByteBuffer;for(a=0;a<m;a++)y.putByte(t.at(a%h));var g=l*Math.ceil(d/l),E=new L.util.ByteBuffer;for(a=0;a<g;a++)E.putByte(f.at(a%d));var _=y;_.putBuffer(E);for(var k=Math.ceil(i/c),C=1;C<=k;C++){var D=new L.util.ByteBuffer;D.putBytes(p.bytes()),D.putBytes(_.bytes());for(var J=0;J<n;J++)o.start(),o.update(D.getBytes()),D=o.digest();var rt=new L.util.ByteBuffer;for(a=0;a<l;a++)rt.putByte(D.at(a%c));var jt=Math.ceil(h/l)+Math.ceil(d/l),Ge=new L.util.ByteBuffer;for(s=0;s<jt;s++){var xe=new L.util.ByteBuffer(_.getBytes(l)),fe=511;for(a=rt.length()-1;a>=0;a--)fe=fe>>8,fe+=rt.at(a)+xe.at(a),xe.setAt(a,fe&255);Ge.putBuffer(xe)}_=Ge,u.putBuffer(D)}return u.truncate(u.length()-i),u};Y.pbe.getCipher=function(r,t,e){switch(r){case Y.oids.pkcs5PBES2:return Y.pbe.getCipherForPBES2(r,t,e);case Y.oids["pbeWithSHAAnd3-KeyTripleDES-CBC"]:case Y.oids["pbewithSHAAnd40BitRC2-CBC"]:return Y.pbe.getCipherForPKCS12PBE(r,t,e);default:var n=new Error("Cannot read encrypted PBE data block. Unsupported OID.");throw n.oid=r,n.supportedOids=["pkcs5PBES2","pbeWithSHAAnd3-KeyTripleDES-CBC","pbewithSHAAnd40BitRC2-CBC"],n}};Y.pbe.getCipherForPBES2=function(r,t,e){var n={},i=[];if(!v.validate(t,HS,n,i)){var o=new Error("Cannot read password-based-encryption algorithm parameters. ASN.1 object is not a supported EncryptedPrivateKeyInfo.");throw o.errors=i,o}if(r=v.derToOid(n.kdfOid),r!==Y.oids.pkcs5PBKDF2){var o=new Error("Cannot read encrypted private key. Unsupported key derivation function OID.");throw o.oid=r,o.supportedOids=["pkcs5PBKDF2"],o}if(r=v.derToOid(n.encOid),r!==Y.oids["aes128-CBC"]&&r!==Y.oids["aes192-CBC"]&&r!==Y.oids["aes256-CBC"]&&r!==Y.oids["des-EDE3-CBC"]&&r!==Y.oids.desCBC){var o=new Error("Cannot read encrypted private key. Unsupported encryption scheme OID.");throw o.oid=r,o.supportedOids=["aes128-CBC","aes192-CBC","aes256-CBC","des-EDE3-CBC","desCBC"],o}var s=n.kdfSalt,a=L.util.createBuffer(n.kdfIterationCount);a=a.getInt(a.length()<<3);var c,l;switch(Y.oids[r]){case"aes128-CBC":c=16,l=L.aes.createDecryptionCipher;break;case"aes192-CBC":c=24,l=L.aes.createDecryptionCipher;break;case"aes256-CBC":c=32,l=L.aes.createDecryptionCipher;break;case"des-EDE3-CBC":c=24,l=L.des.createDecryptionCipher;break;case"desCBC":c=8,l=L.des.createDecryptionCipher;break}var u=sg(n.prfOid),f=L.pkcs5.pbkdf2(e,s,a,c,u),d=n.encIv,h=l(f);return h.start(d),h};Y.pbe.getCipherForPKCS12PBE=function(r,t,e){var n={},i=[];if(!v.validate(t,$S,n,i)){var o=new Error("Cannot read password-based-encryption algorithm parameters. ASN.1 object is not a supported EncryptedPrivateKeyInfo.");throw o.errors=i,o}var s=L.util.createBuffer(n.salt),a=L.util.createBuffer(n.iterations);a=a.getInt(a.length()<<3);var c,l,u;switch(r){case Y.oids["pbeWithSHAAnd3-KeyTripleDES-CBC"]:c=24,l=8,u=L.des.startDecrypting;break;case Y.oids["pbewithSHAAnd40BitRC2-CBC"]:c=5,l=8,u=function(m,y){var g=L.rc2.createDecryptionCipher(m,40);return g.start(y,null),g};break;default:var o=new Error("Cannot read PKCS #12 PBE data block. Unsupported OID.");throw o.oid=r,o}var f=sg(n.prfOid),d=Y.pbe.generatePkcs12Key(e,s,1,a,c,f);f.start();var h=Y.pbe.generatePkcs12Key(e,s,2,a,l,f);return u(d,h)};Y.pbe.opensslDeriveBytes=function(r,t,e,n){if(typeof n>"u"||n===null){if(!("md5"in L.md))throw new Error('"md5" hash algorithm unavailable.');n=L.md.md5.create()}t===null&&(t="");for(var i=[og(n,r+t)],o=16,s=1;o<e;++s,o+=16)i.push(og(n,i[s-1]+r+t));return i.join("").substr(0,e)};function og(r,t){return r.start().update(t).digest().getBytes()}function sg(r){var t;if(!r)t="hmacWithSHA1";else if(t=Y.oids[v.derToOid(r)],!t){var e=new Error("Unsupported PRF OID.");throw e.oid=r,e.supported=["hmacWithSHA1","hmacWithSHA224","hmacWithSHA256","hmacWithSHA384","hmacWithSHA512"],e}return ag(t)}function ag(r){var t=L.md;switch(r){case"hmacWithSHA224":t=L.md.sha512;case"hmacWithSHA1":case"hmacWithSHA256":case"hmacWithSHA384":case"hmacWithSHA512":r=r.substr(8).toLowerCase();break;default:var e=new Error("Unsupported PRF algorithm.");throw e.algorithm=r,e.supported=["hmacWithSHA1","hmacWithSHA224","hmacWithSHA256","hmacWithSHA384","hmacWithSHA512"],e}if(!t||!(r in t))throw new Error("Unknown hash algorithm: "+r);return t[r].create()}function zS(r,t,e,n){var i=v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.OCTETSTRING,!1,r),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,t.getBytes())]);return n!=="hmacWithSHA1"&&i.value.push(v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,L.util.hexToBytes(e.toString(16))),v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.OID,!1,v.oidToDer(Y.oids[n]).getBytes()),v.create(v.Class.UNIVERSAL,v.Type.NULL,!1,"")])),i}});var Eg=T((z8,wg)=>{var Tt=yt();Xn();zt();var Ho=wg.exports=Tt.sha512=Tt.sha512||{};Tt.md.sha512=Tt.md.algorithms.sha512=Ho;var yg=Tt.sha384=Tt.sha512.sha384=Tt.sha512.sha384||{};yg.create=function(){return Ho.create("SHA-384")};Tt.md.sha384=Tt.md.algorithms.sha384=yg;Tt.sha512.sha256=Tt.sha512.sha256||{create:function(){return Ho.create("SHA-512/256")}};Tt.md["sha512/256"]=Tt.md.algorithms["sha512/256"]=Tt.sha512.sha256;Tt.sha512.sha224=Tt.sha512.sha224||{create:function(){return Ho.create("SHA-512/224")}};Tt.md["sha512/224"]=Tt.md.algorithms["sha512/224"]=Tt.sha512.sha224;Ho.create=function(r){if(gg||WS(),typeof r>"u"&&(r="SHA-512"),!(r in ti))throw new Error("Invalid SHA-512 algorithm: "+r);for(var t=ti[r],e=null,n=Tt.util.createBuffer(),i=new Array(80),o=0;o<80;++o)i[o]=new Array(2);var s=64;switch(r){case"SHA-384":s=48;break;case"SHA-512/256":s=32;break;case"SHA-512/224":s=28;break}var a={algorithm:r.replace("-","").toLowerCase(),blockLength:128,digestLength:s,messageLength:0,fullMessageLength:null,messageLengthSize:16};return a.start=function(){a.messageLength=0,a.fullMessageLength=a.messageLength128=[];for(var c=a.messageLengthSize/4,l=0;l<c;++l)a.fullMessageLength.push(0);n=Tt.util.createBuffer(),e=new Array(t.length);for(var l=0;l<t.length;++l)e[l]=t[l].slice(0);return a},a.start(),a.update=function(c,l){l==="utf8"&&(c=Tt.util.encodeUtf8(c));var u=c.length;a.messageLength+=u,u=[u/4294967296>>>0,u>>>0];for(var f=a.fullMessageLength.length-1;f>=0;--f)a.fullMessageLength[f]+=u[1],u[1]=u[0]+(a.fullMessageLength[f]/4294967296>>>0),a.fullMessageLength[f]=a.fullMessageLength[f]>>>0,u[0]=u[1]/4294967296>>>0;return n.putBytes(c),mg(e,i,n),(n.read>2048||n.length()===0)&&n.compact(),a},a.digest=function(){var c=Tt.util.createBuffer();c.putBytes(n.bytes());var l=a.fullMessageLength[a.fullMessageLength.length-1]+a.messageLengthSize,u=l&a.blockLength-1;c.putBytes(pf.substr(0,a.blockLength-u));for(var f,d,h=a.fullMessageLength[0]*8,p=0;p<a.fullMessageLength.length-1;++p)f=a.fullMessageLength[p+1]*8,d=f/4294967296>>>0,h+=d,c.putInt32(h>>>0),h=f>>>0;c.putInt32(h);for(var m=new Array(e.length),p=0;p<e.length;++p)m[p]=e[p].slice(0);mg(m,i,c);var y=Tt.util.createBuffer(),g;r==="SHA-512"?g=m.length:r==="SHA-384"?g=m.length-2:g=m.length-4;for(var p=0;p<g;++p)y.putInt32(m[p][0]),(p!==g-1||r!=="SHA-512/224")&&y.putInt32(m[p][1]);return y},a};var pf=null,gg=!1,mf=null,ti=null;function WS(){pf=String.fromCharCode(128),pf+=Tt.util.fillString(String.fromCharCode(0),128),mf=[[1116352408,3609767458],[1899447441,602891725],[3049323471,3964484399],[3921009573,2173295548],[961987163,4081628472],[1508970993,3053834265],[2453635748,2937671579],[2870763221,3664609560],[3624381080,2734883394],[310598401,1164996542],[607225278,1323610764],[1426881987,3590304994],[1925078388,4068182383],[2162078206,991336113],[2614888103,633803317],[3248222580,3479774868],[3835390401,2666613458],[4022224774,944711139],[264347078,2341262773],[604807628,2007800933],[770255983,1495990901],[1249150122,1856431235],[1555081692,3175218132],[1996064986,2198950837],[2554220882,3999719339],[2821834349,766784016],[2952996808,2566594879],[3210313671,3203337956],[3336571891,1034457026],[3584528711,2466948901],[113926993,3758326383],[338241895,168717936],[666307205,1188179964],[773529912,1546045734],[1294757372,1522805485],[1396182291,2643833823],[1695183700,2343527390],[1986661051,1014477480],[2177026350,1206759142],[2456956037,344077627],[2730485921,1290863460],[2820302411,3158454273],[3259730800,3505952657],[3345764771,106217008],[3516065817,3606008344],[3600352804,1432725776],[4094571909,1467031594],[275423344,851169720],[430227734,3100823752],[506948616,1363258195],[659060556,3750685593],[883997877,3785050280],[958139571,3318307427],[1322822218,3812723403],[1537002063,2003034995],[1747873779,3602036899],[1955562222,1575990012],[2024104815,1125592928],[2227730452,2716904306],[2361852424,442776044],[2428436474,593698344],[2756734187,3733110249],[3204031479,2999351573],[3329325298,3815920427],[3391569614,3928383900],[3515267271,566280711],[3940187606,3454069534],[4118630271,4000239992],[116418474,1914138554],[174292421,2731055270],[289380356,3203993006],[460393269,320620315],[685471733,587496836],[852142971,1086792851],[1017036298,365543100],[1126000580,2618297676],[1288033470,3409855158],[1501505948,4234509866],[1607167915,987167468],[1816402316,1246189591]],ti={},ti["SHA-512"]=[[1779033703,4089235720],[3144134277,2227873595],[1013904242,4271175723],[2773480762,1595750129],[1359893119,2917565137],[2600822924,725511199],[528734635,4215389547],[1541459225,327033209]],ti["SHA-384"]=[[3418070365,3238371032],[1654270250,914150663],[2438529370,812702999],[355462360,4144912697],[1731405415,4290775857],[2394180231,1750603025],[3675008525,1694076839],[1203062813,3204075428]],ti["SHA-512/256"]=[[573645204,4230739756],[2673172387,3360449730],[596883563,1867755857],[2520282905,1497426621],[2519219938,2827943907],[3193839141,1401305490],[721525244,746961066],[246885852,2177182882]],ti["SHA-512/224"]=[[2352822216,424955298],[1944164710,2312950998],[502970286,855612546],[1738396948,1479516111],[258812777,2077511080],[2011393907,79989058],[1067287976,1780299464],[286451373,2446758561]],gg=!0}function mg(r,t,e){for(var n,i,o,s,a,c,l,u,f,d,h,p,m,y,g,E,_,k,C,D,J,rt,jt,Ge,xe,fe,mi,Cs,Yt,me,V,rl,nl,il,ol,Nh=e.length();Nh>=128;){for(Yt=0;Yt<16;++Yt)t[Yt][0]=e.getInt32()>>>0,t[Yt][1]=e.getInt32()>>>0;for(;Yt<80;++Yt)rl=t[Yt-2],me=rl[0],V=rl[1],n=((me>>>19|V<<13)^(V>>>29|me<<3)^me>>>6)>>>0,i=((me<<13|V>>>19)^(V<<3|me>>>29)^(me<<26|V>>>6))>>>0,il=t[Yt-15],me=il[0],V=il[1],o=((me>>>1|V<<31)^(me>>>8|V<<24)^me>>>7)>>>0,s=((me<<31|V>>>1)^(me<<24|V>>>8)^(me<<25|V>>>7))>>>0,nl=t[Yt-7],ol=t[Yt-16],V=i+nl[1]+s+ol[1],t[Yt][0]=n+nl[0]+o+ol[0]+(V/4294967296>>>0)>>>0,t[Yt][1]=V>>>0;for(m=r[0][0],y=r[0][1],g=r[1][0],E=r[1][1],_=r[2][0],k=r[2][1],C=r[3][0],D=r[3][1],J=r[4][0],rt=r[4][1],jt=r[5][0],Ge=r[5][1],xe=r[6][0],fe=r[6][1],mi=r[7][0],Cs=r[7][1],Yt=0;Yt<80;++Yt)l=((J>>>14|rt<<18)^(J>>>18|rt<<14)^(rt>>>9|J<<23))>>>0,u=((J<<18|rt>>>14)^(J<<14|rt>>>18)^(rt<<23|J>>>9))>>>0,f=(xe^J&(jt^xe))>>>0,d=(fe^rt&(Ge^fe))>>>0,a=((m>>>28|y<<4)^(y>>>2|m<<30)^(y>>>7|m<<25))>>>0,c=((m<<4|y>>>28)^(y<<30|m>>>2)^(y<<25|m>>>7))>>>0,h=(m&g|_&(m^g))>>>0,p=(y&E|k&(y^E))>>>0,V=Cs+u+d+mf[Yt][1]+t[Yt][1],n=mi+l+f+mf[Yt][0]+t[Yt][0]+(V/4294967296>>>0)>>>0,i=V>>>0,V=c+p,o=a+h+(V/4294967296>>>0)>>>0,s=V>>>0,mi=xe,Cs=fe,xe=jt,fe=Ge,jt=J,Ge=rt,V=D+i,J=C+n+(V/4294967296>>>0)>>>0,rt=V>>>0,C=_,D=k,_=g,k=E,g=m,E=y,V=i+s,m=n+o+(V/4294967296>>>0)>>>0,y=V>>>0;V=r[0][1]+y,r[0][0]=r[0][0]+m+(V/4294967296>>>0)>>>0,r[0][1]=V>>>0,V=r[1][1]+E,r[1][0]=r[1][0]+g+(V/4294967296>>>0)>>>0,r[1][1]=V>>>0,V=r[2][1]+k,r[2][0]=r[2][0]+_+(V/4294967296>>>0)>>>0,r[2][1]=V>>>0,V=r[3][1]+D,r[3][0]=r[3][0]+C+(V/4294967296>>>0)>>>0,r[3][1]=V>>>0,V=r[4][1]+rt,r[4][0]=r[4][0]+J+(V/4294967296>>>0)>>>0,r[4][1]=V>>>0,V=r[5][1]+Ge,r[5][0]=r[5][0]+jt+(V/4294967296>>>0)>>>0,r[5][1]=V>>>0,V=r[6][1]+fe,r[6][0]=r[6][0]+xe+(V/4294967296>>>0)>>>0,r[6][1]=V>>>0,V=r[7][1]+Cs,r[7][0]=r[7][0]+mi+(V/4294967296>>>0)>>>0,r[7][1]=V>>>0,Nh-=128}}});var Zw=T((SO,Xw)=>{function aR(){return!!(typeof window<"u"&&typeof window.process=="object"&&window.process.type==="renderer"||typeof process<"u"&&typeof process.versions=="object"&&process.versions.electron||typeof navigator=="object"&&typeof navigator.userAgent=="string"&&navigator.userAgent.indexOf("Electron")>=0)}Xw.exports=aR});var fE=T((_k,eh)=>{"use strict";var fR=Object.prototype.hasOwnProperty,pe="~";function Es(){}Object.create&&(Es.prototype=Object.create(null),new Es().__proto__||(pe=!1));function hR(r,t,e){this.fn=r,this.context=t,this.once=e||!1}function uE(r,t,e,n,i){if(typeof e!="function")throw new TypeError("The listener must be a function");var o=new hR(e,n||r,i),s=pe?pe+t:t;return r._events[s]?r._events[s].fn?r._events[s]=[r._events[s],o]:r._events[s].push(o):(r._events[s]=o,r._eventsCount++),r}function kc(r,t){--r._eventsCount===0?r._events=new Es:delete r._events[t]}function ue(){this._events=new Es,this._eventsCount=0}ue.prototype.eventNames=function(){var t=[],e,n;if(this._eventsCount===0)return t;for(n in e=this._events)fR.call(e,n)&&t.push(pe?n.slice(1):n);return Object.getOwnPropertySymbols?t.concat(Object.getOwnPropertySymbols(e)):t};ue.prototype.listeners=function(t){var e=pe?pe+t:t,n=this._events[e];if(!n)return[];if(n.fn)return[n.fn];for(var i=0,o=n.length,s=new Array(o);i<o;i++)s[i]=n[i].fn;return s};ue.prototype.listenerCount=function(t){var e=pe?pe+t:t,n=this._events[e];return n?n.fn?1:n.length:0};ue.prototype.emit=function(t,e,n,i,o,s){var a=pe?pe+t:t;if(!this._events[a])return!1;var c=this._events[a],l=arguments.length,u,f;if(c.fn){switch(c.once&&this.removeListener(t,c.fn,void 0,!0),l){case 1:return c.fn.call(c.context),!0;case 2:return c.fn.call(c.context,e),!0;case 3:return c.fn.call(c.context,e,n),!0;case 4:return c.fn.call(c.context,e,n,i),!0;case 5:return c.fn.call(c.context,e,n,i,o),!0;case 6:return c.fn.call(c.context,e,n,i,o,s),!0}for(f=1,u=new Array(l-1);f<l;f++)u[f-1]=arguments[f];c.fn.apply(c.context,u)}else{var d=c.length,h;for(f=0;f<d;f++)switch(c[f].once&&this.removeListener(t,c[f].fn,void 0,!0),l){case 1:c[f].fn.call(c[f].context);break;case 2:c[f].fn.call(c[f].context,e);break;case 3:c[f].fn.call(c[f].context,e,n);break;case 4:c[f].fn.call(c[f].context,e,n,i);break;default:if(!u)for(h=1,u=new Array(l-1);h<l;h++)u[h-1]=arguments[h];c[f].fn.apply(c[f].context,u)}}return!0};ue.prototype.on=function(t,e,n){return uE(this,t,e,n,!1)};ue.prototype.once=function(t,e,n){return uE(this,t,e,n,!0)};ue.prototype.removeListener=function(t,e,n,i){var o=pe?pe+t:t;if(!this._events[o])return this;if(!e)return kc(this,o),this;var s=this._events[o];if(s.fn)s.fn===e&&(!i||s.once)&&(!n||s.context===n)&&kc(this,o);else{for(var a=0,c=[],l=s.length;a<l;a++)(s[a].fn!==e||i&&!s[a].once||n&&s[a].context!==n)&&c.push(s[a]);c.length?this._events[o]=c.length===1?c[0]:c:kc(this,o)}return this};ue.prototype.removeAllListeners=function(t){var e;return t?(e=pe?pe+t:t,this._events[e]&&kc(this,e)):(this._events=new Es,this._eventsCount=0),this};ue.prototype.off=ue.prototype.removeListener;ue.prototype.addListener=ue.prototype.on;ue.prefixed=pe;ue.EventEmitter=ue;typeof eh<"u"&&(eh.exports=ue)});var PE=T((d6,DE)=>{"use strict";DE.exports=CE;var yR=sl(),Cn=CE.prototype,gR=new Date%1e9;function wR(){return(Math.random()*1e9>>>0)+gR++}function CE(r){r=r||{},this.id=r.id||wR(),this.max=r.max||1/0,this.items=r.items||[],this._lookup={},this.size=this.items.length,this.lastModified=new Date(r.lastModified||new Date);for(var t,e,n=this.items.length;n--;)t=this.items[n],e=new Date(t.expires)-new Date,this._lookup[t.key]=t,e>0?this.expire(t.key,e):e<=0&&this.delete(t.key)}Cn.has=function(r){return r in this._lookup};Cn.get=function(r){if(!this.has(r))return null;var t=this._lookup[r];return t.refresh&&this.expire(r,t.refresh),this.items.splice(this.items.indexOf(t),1),this.items.push(t),t.value};Cn.meta=function(r){if(!this.has(r))return null;var t=this._lookup[r];return"meta"in t?t.meta:null};Cn.set=function(r,t,e){var n=this._lookup[r],i=this._lookup[r]={key:r,value:t};return this.lastModified=new Date,n?(clearTimeout(n.timeout),this.items.splice(this.items.indexOf(n),1,i)):(this.size>=this.max&&this.delete(this.items[0].key),this.items.push(i),this.size++),e&&("ttl"in e&&this.expire(r,e.ttl),"meta"in e&&(i.meta=e.meta),e.refresh&&(i.refresh=e.ttl)),this};Cn.delete=function(r){var t=this._lookup[r];return t?(this.lastModified=new Date,this.items.splice(this.items.indexOf(t),1),clearTimeout(t.timeout),delete this._lookup[r],this.size--,this):!1};Cn.expire=function(r,t){var e=t||0,n=this._lookup[r];if(!n)return this;if(typeof e=="string"&&(e=yR(t)),typeof e!="number")throw new TypeError("Expiration time must be a string or number.");return clearTimeout(n.timeout),n.timeout=setTimeout(this.delete.bind(this,n.key),e),n.expires=Number(new Date)+e,this};Cn.clear=function(){for(var r=this.items.length;r--;)this.delete(this.items[r].key);return this};Cn.toJSON=function(){for(var r=new Array(this.items.length),t,e=r.length;e--;)t=this.items[e],r[e]={key:t.key,meta:t.meta,value:t.value,expires:t.expires,refresh:t.refresh};return{id:this.id,max:isFinite(this.max)?this.max:void 0,lastModified:this.lastModified,items:r}}});var Dh=T((Y6,Ch)=>{function VE(r){let t=new globalThis.AbortController;function e(){t.abort();for(let n of r)!n||!n.removeEventListener||n.removeEventListener("abort",e)}for(let n of r)if(!(!n||!n.addEventListener)){if(n.aborted){e();break}n.addEventListener("abort",e)}return t.signal}Ch.exports=VE;Ch.exports.anySignal=VE});var HE=T((Q6,qE)=>{qE.exports=class{constructor(t){if(!(t>0)||t-1&t)throw new Error("Max size for a FixedFIFO should be a power of two");this.buffer=new Array(t),this.mask=t-1,this.top=0,this.btm=0,this.next=null}push(t){return this.buffer[this.top]!==void 0?!1:(this.buffer[this.top]=t,this.top=this.top+1&this.mask,!0)}shift(){let t=this.buffer[this.btm];if(t!==void 0)return this.buffer[this.btm]=void 0,this.btm=this.btm+1&this.mask,t}peek(){return this.buffer[this.btm]}isEmpty(){return this.buffer[this.btm]===void 0}}});var GE=T((Z6,zE)=>{var $E=HE();zE.exports=class{constructor(t){this.hwm=t||16,this.head=new $E(this.hwm),this.tail=this.head}push(t){if(!this.head.push(t)){let e=this.head;this.head=e.next=new $E(2*this.head.buffer.length),this.head.push(t)}}shift(){let t=this.tail.shift();if(t===void 0&&this.tail.next){let e=this.tail.next;return this.tail.next=null,this.tail=e,this.tail.shift()}return t}peek(){return this.tail.peek()}isEmpty(){return this.head.isEmpty()}}});var WE=T((J6,YE)=>{"use strict";var IR=()=>{let r={};return r.promise=new Promise((t,e)=>{r.resolve=t,r.reject=e}),r};YE.exports=IR});var JE=T((t5,ZE)=>{var QE=GE(),XE=WE();ZE.exports=class{constructor(){this._buffer=new QE,this._waitingConsumers=new QE}push(t){let{promise:e,resolve:n}=XE();return this._buffer.push({chunk:t,resolve:n}),this._consume(),e}_consume(){for(;!this._waitingConsumers.isEmpty()&&!this._buffer.isEmpty();){let t=this._waitingConsumers.shift(),e=this._buffer.shift();t.resolve(e.chunk),e.resolve()}}shift(){let{promise:t,resolve:e}=XE();return this._waitingConsumers.push({resolve:e}),this._consume(),t}isEmpty(){return this._buffer.isEmpty()}}});var PR={};ce(PR,{createLibp2p:()=>DR});var or=I(al(),1);var hl={};ce(hl,{base58btc:()=>Vt,base58flickr:()=>C1});function S1(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 i=0;i<r.length;i++){var o=r.charAt(i),s=o.charCodeAt(0);if(e[s]!==255)throw new TypeError(o+" is ambiguous");e[s]=i}var a=r.length,c=r.charAt(0),l=Math.log(a)/Math.log(256),u=Math.log(256)/Math.log(a);function f(p){if(p instanceof Uint8Array||(ArrayBuffer.isView(p)?p=new Uint8Array(p.buffer,p.byteOffset,p.byteLength):Array.isArray(p)&&(p=Uint8Array.from(p))),!(p instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(p.length===0)return"";for(var m=0,y=0,g=0,E=p.length;g!==E&&p[g]===0;)g++,m++;for(var _=(E-g)*u+1>>>0,k=new Uint8Array(_);g!==E;){for(var C=p[g],D=0,J=_-1;(C!==0||D<y)&&J!==-1;J--,D++)C+=256*k[J]>>>0,k[J]=C%a>>>0,C=C/a>>>0;if(C!==0)throw new Error("Non-zero carry");y=D,g++}for(var rt=_-y;rt!==_&&k[rt]===0;)rt++;for(var jt=c.repeat(m);rt<_;++rt)jt+=r.charAt(k[rt]);return jt}function d(p){if(typeof p!="string")throw new TypeError("Expected String");if(p.length===0)return new Uint8Array;var m=0;if(p[m]!==" "){for(var y=0,g=0;p[m]===c;)y++,m++;for(var E=(p.length-m)*l+1>>>0,_=new Uint8Array(E);p[m];){var k=e[p.charCodeAt(m)];if(k===255)return;for(var C=0,D=E-1;(k!==0||C<g)&&D!==-1;D--,C++)k+=a*_[D]>>>0,_[D]=k%256>>>0,k=k/256>>>0;if(k!==0)throw new Error("Non-zero carry");g=C,m++}if(p[m]!==" "){for(var J=E-g;J!==E&&_[J]===0;)J++;for(var rt=new Uint8Array(y+(E-J)),jt=y;J!==E;)rt[jt++]=_[J++];return rt}}}function h(p){var m=d(p);if(m)return m;throw new Error(`Non-${t} character`)}return{encode:f,decodeUnsafe:d,decode:h}}var A1=S1,R1=A1,Fh=R1;var kR=new Uint8Array(0);var Kh=(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},Ir=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")};var Vh=r=>new TextEncoder().encode(r),qh=r=>new TextDecoder().decode(r);var cl=class{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")}},ll=class{constructor(t,e,n){if(this.name=t,this.prefix=e,e.codePointAt(0)===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=e.codePointAt(0),this.baseDecode=n}decode(t){if(typeof t=="string"){if(t.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(t)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(t.slice(this.prefix.length))}else throw Error("Can only multibase decode strings")}or(t){return $h(this,t)}},ul=class{constructor(t){this.decoders=t}or(t){return $h(this,t)}decode(t){let e=t[0],n=this.decoders[e];if(n)return n.decode(t);throw RangeError(`Unable to decode multibase string ${JSON.stringify(t)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}},$h=(r,t)=>new ul({...r.decoders||{[r.prefix]:r},...t.decoders||{[t.prefix]:t}}),fl=class{constructor(t,e,n,i){this.name=t,this.prefix=e,this.baseEncode=n,this.baseDecode=i,this.encoder=new cl(t,e,n),this.decoder=new ll(t,e,i)}encode(t){return this.encoder.encode(t)}decode(t){return this.decoder.decode(t)}},Ei=({name:r,prefix:t,encode:e,decode:n})=>new fl(r,t,e,n),Jr=({prefix:r,name:t,alphabet:e})=>{let{encode:n,decode:i}=Fh(e,t);return Ei({prefix:r,name:t,encode:n,decode:o=>Ir(i(o))})},I1=(r,t,e,n)=>{let i={};for(let u=0;u<t.length;++u)i[t[u]]=u;let o=r.length;for(;r[o-1]==="=";)--o;let s=new Uint8Array(o*e/8|0),a=0,c=0,l=0;for(let u=0;u<o;++u){let f=i[r[u]];if(f===void 0)throw new SyntaxError(`Non-${n} character`);c=c<<e|f,a+=e,a>=8&&(a-=8,s[l++]=255&c>>a)}if(a>=e||255&c<<8-a)throw new SyntaxError("Unexpected end of data");return s},T1=(r,t,e)=>{let n=t[t.length-1]==="=",i=(1<<e)-1,o="",s=0,a=0;for(let c=0;c<r.length;++c)for(a=a<<8|r[c],s+=8;s>e;)s-=e,o+=t[i&a>>s];if(s&&(o+=t[i&a<<e-s]),n)for(;o.length*e&7;)o+="=";return o},Mt=({name:r,prefix:t,bitsPerChar:e,alphabet:n})=>Ei({prefix:t,name:r,encode(i){return T1(i,n,e)},decode(i){return I1(i,n,e,r)}});var Vt=Jr({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),C1=Jr({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var dl={};ce(dl,{base32:()=>be,base32hex:()=>B1,base32hexpad:()=>O1,base32hexpadupper:()=>k1,base32hexupper:()=>N1,base32pad:()=>P1,base32padupper:()=>L1,base32upper:()=>D1,base32z:()=>M1});var be=Mt({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),D1=Mt({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),P1=Mt({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),L1=Mt({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),B1=Mt({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),N1=Mt({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),O1=Mt({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),k1=Mt({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),M1=Mt({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var pl={};ce(pl,{base64:()=>Pn,base64pad:()=>U1,base64url:()=>F1,base64urlpad:()=>K1});var Pn=Mt({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),U1=Mt({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),F1=Mt({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),K1=Mt({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});or.default.formatters.b=r=>r==null?"undefined":Vt.baseEncode(r);or.default.formatters.t=r=>r==null?"undefined":be.baseEncode(r);or.default.formatters.m=r=>r==null?"undefined":Pn.baseEncode(r);or.default.formatters.p=r=>r==null?"undefined":r.toString();or.default.formatters.c=r=>r==null?"undefined":r.toString();or.default.formatters.k=r=>r==null?"undefined":r.toString();function N(r){return Object.assign((0,or.default)(r),{error:(0,or.default)(`${r}:error`),trace:(0,or.default)(`${r}:trace`)})}var Ln=function(r,t,e,n){if(e==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?r!==t||!n:!t.has(r))throw new TypeError("Cannot read private member from an object whose class did not declare it");return e==="m"?n:e==="a"?n.call(r):n?n.value:t.get(r)},Tr,Pt=class extends EventTarget{constructor(){super(...arguments),Tr.set(this,new Map)}listenerCount(t){let e=Ln(this,Tr,"f").get(t);return e==null?0:e.length}addEventListener(t,e,n){super.addEventListener(t,e,n);let i=Ln(this,Tr,"f").get(t);i==null&&(i=[],Ln(this,Tr,"f").set(t,i)),i.push({callback:e,once:(n!==!0&&n!==!1&&n?.once)??!1})}removeEventListener(t,e,n){super.removeEventListener(t.toString(),e??null,n);let i=Ln(this,Tr,"f").get(t);i!=null&&(i=i.filter(({callback:o})=>o!==e),Ln(this,Tr,"f").set(t,i))}dispatchEvent(t){let e=super.dispatchEvent(t),n=Ln(this,Tr,"f").get(t.type);return n==null||(n=n.filter(({once:i})=>!i),Ln(this,Tr,"f").set(t.type,n)),e}safeDispatchEvent(t,e){return this.dispatchEvent(new q(t,e))}};Tr=new WeakMap;var ml=class extends Event{constructor(t,e){super(t,e),this.detail=e?.detail}},q=globalThis.CustomEvent??ml;function Cr(r){return r!=null&&typeof r.start=="function"&&typeof r.stop=="function"}var Bs=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,i){return this.readAtomically(()=>{let o=0,s=0,a=this.peekChar();if(a===void 0)return;let c=a==="0",l=2**(8*i)-1;for(;;){let u=this.readAtomically(()=>{let f=this.readChar();if(f===void 0)return;let d=Number.parseInt(f,t);if(!Number.isNaN(d))return d});if(u===void 0)break;if(o*=t,o+=u,o>l||(s+=1,e!==void 0&&s>e))return}if(s!==0)return!n&&c&&s>1?void 0:o})}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 i=n*2;if(n<e.length-3){let s=this.readSeparator(":",n,()=>this.readIPv4Addr());if(s!==void 0)return e[i]=s[0],e[i+1]=s[1],e[i+2]=s[2],e[i+3]=s[3],[i+4,!0]}let o=this.readSeparator(":",n,()=>this.readNumber(16,4,!0,2));if(o===void 0)return[i,!1];e[i]=o>>8,e[i+1]=o&255}return[e.length,!1]};return this.readAtomically(()=>{let e=new Uint8Array(16),[n,i]=t(e);if(n===16)return e;if(i||this.readGivenChar(":")===void 0||this.readGivenChar(":")===void 0)return;let o=new Uint8Array(14),s=16-(n+2),[a]=t(o.subarray(0,s));return e.set(o.subarray(0,a),16-a),e})}readIPAddr(){return this.readIPv4Addr()??this.readIPv6Addr()}};var zh=45,V1=15,xi=new Bs;function Gh(r){if(!(r.length>V1))return xi.new(r).parseWith(()=>xi.readIPv4Addr())}function Yh(r){if(!(r.length>zh))return xi.new(r).parseWith(()=>xi.readIPv6Addr())}function Wh(r){if(!(r.length>zh))return xi.new(r).parseWith(()=>xi.readIPAddr())}function Qh(r){return Boolean(Gh(r))}function Xh(r){return Boolean(Yh(r))}function vi(r){return Boolean(Wh(r))}var yl={};ce(yl,{identity:()=>q1});var q1=Ei({prefix:"\0",name:"identity",encode:r=>qh(r),decode:r=>Vh(r)});var gl={};ce(gl,{base2:()=>H1});var H1=Mt({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var wl={};ce(wl,{base8:()=>$1});var $1=Mt({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var El={};ce(El,{base10:()=>z1});var z1=Jr({prefix:"9",name:"base10",alphabet:"0123456789"});var xl={};ce(xl,{base16:()=>G1,base16upper:()=>Y1});var G1=Mt({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),Y1=Mt({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var vl={};ce(vl,{base36:()=>W1,base36upper:()=>Q1});var W1=Jr({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),Q1=Jr({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var bl={};ce(bl,{base256emoji:()=>tx});var Zh=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}"),X1=Zh.reduce((r,t,e)=>(r[e]=t,r),[]),Z1=Zh.reduce((r,t,e)=>(r[t.codePointAt(0)]=e,r),[]);function J1(r){return r.reduce((t,e)=>(t+=X1[e],t),"")}function j1(r){let t=[];for(let e of r){let n=Z1[e.codePointAt(0)];if(n===void 0)throw new Error(`Non-base256emoji character: ${e}`);t.push(n)}return new Uint8Array(t)}var tx=Ei({prefix:"\u{1F680}",name:"base256emoji",encode:J1,decode:j1});var Rl={};ce(Rl,{sha256:()=>te,sha512:()=>Ex});var ex=td,Jh=128,rx=127,nx=~rx,ix=Math.pow(2,31);function td(r,t,e){t=t||[],e=e||0;for(var n=e;r>=ix;)t[e++]=r&255|Jh,r/=128;for(;r&nx;)t[e++]=r&255|Jh,r>>>=7;return t[e]=r|0,td.bytes=e-n+1,t}var ox=_l,sx=128,jh=127;function _l(r,n){var e=0,n=n||0,i=0,o=n,s,a=r.length;do{if(o>=a)throw _l.bytes=0,new RangeError("Could not decode varint");s=r[o++],e+=i<28?(s&jh)<<i:(s&jh)*Math.pow(2,i),i+=7}while(s>=sx);return _l.bytes=o-n,e}var ax=Math.pow(2,7),cx=Math.pow(2,14),lx=Math.pow(2,21),ux=Math.pow(2,28),fx=Math.pow(2,35),hx=Math.pow(2,42),dx=Math.pow(2,49),px=Math.pow(2,56),mx=Math.pow(2,63),yx=function(r){return r<ax?1:r<cx?2:r<lx?3:r<ux?4:r<fx?5:r<hx?6:r<dx?7:r<px?8:r<mx?9:10},gx={encode:ex,decode:ox,encodingLength:yx},wx=gx,uo=wx;var fo=(r,t=0)=>[uo.decode(r,t),uo.decode.bytes],bi=(r,t,e=0)=>(uo.encode(r,t,e),t),_i=r=>uo.encodingLength(r);var sr=(r,t)=>{let e=t.byteLength,n=_i(r),i=n+_i(e),o=new Uint8Array(i+e);return bi(r,o,0),bi(e,o,n),o.set(t,i),new Si(r,e,t,o)},Bn=r=>{let t=Ir(r),[e,n]=fo(t),[i,o]=fo(t.subarray(n)),s=t.subarray(n+o);if(s.byteLength!==i)throw new Error("Incorrect length");return new Si(e,i,s,t)},ed=(r,t)=>{if(r===t)return!0;{let e=t;return r.code===e.code&&r.size===e.size&&e.bytes instanceof Uint8Array&&Kh(r.bytes,e.bytes)}},Si=class{constructor(t,e,n,i){this.code=t,this.size=e,this.digest=n,this.bytes=i}};var Al=({name:r,code:t,encode:e})=>new Sl(r,t,e),Sl=class{constructor(t,e,n){this.name=t,this.code=e,this.encode=n}digest(t){if(t instanceof Uint8Array){let e=this.encode(t);return e instanceof Uint8Array?sr(this.code,e):e.then(n=>sr(this.code,n))}else throw Error("Unknown type, must be binary type")}};var nd=r=>async t=>new Uint8Array(await crypto.subtle.digest(r,t)),te=Al({name:"sha2-256",code:18,encode:nd("SHA-256")}),Ex=Al({name:"sha2-512",code:19,encode:nd("SHA-512")});var Il={};ce(Il,{identity:()=>jr});var id=0,xx="identity",od=Ir,vx=r=>sr(id,od(r)),jr={code:id,name:xx,encode:od,digest:vx};var pI=new TextEncoder,mI=new TextDecoder;var sd=(r,t)=>{let{bytes:e,version:n}=r;switch(n){case 0:return Ax(e,Tl(r),t||Vt.encoder);default:return Rx(e,Tl(r),t||be.encoder)}};var ad=new WeakMap,Tl=r=>{let t=ad.get(r);if(t==null){let e=new Map;return ad.set(r,e),e}return t},pt=class{constructor(t,e,n,i){this.code=e,this.version=t,this.multihash=n,this.bytes=i,this["/"]=i}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!==ho)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(e.code!==Ix)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return pt.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=sr(t,e);return pt.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 pt.equals(this,t)}static equals(t,e){let n=e;return n&&t.code===n.code&&t.version===n.version&&ed(t.multihash,n.multihash)}toString(t){return sd(this,t)}toJSON(){return{"/":sd(this)}}link(){return this}get[Symbol.toStringTag](){return"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 pt)return e;if(e["/"]!=null&&e["/"]===e.bytes||e.asCID===e){let{version:n,code:i,multihash:o,bytes:s}=e;return new pt(n,i,o,s||cd(n,i,o.bytes))}else if(e[Tx]===!0){let{version:n,multihash:i,code:o}=e,s=Bn(i);return pt.create(n,o,s)}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!==ho)throw new Error(`Version 0 CID must use dag-pb (code: ${ho}) block encoding`);return new pt(t,e,n,n.bytes)}case 1:{let i=cd(t,e,n.bytes);return new pt(t,e,n,i)}default:throw new Error("Invalid version")}}static createV0(t){return pt.create(0,ho,t)}static createV1(t,e){return pt.create(1,t,e)}static decode(t){let[e,n]=pt.decodeFirst(t);if(n.length)throw new Error("Incorrect length");return e}static decodeFirst(t){let e=pt.inspectBytes(t),n=e.size-e.multihashSize,i=Ir(t.subarray(n,n+e.multihashSize));if(i.byteLength!==e.multihashSize)throw new Error("Incorrect length");let o=i.subarray(e.multihashSize-e.digestSize),s=new Si(e.multihashCode,e.digestSize,o,i);return[e.version===0?pt.createV0(s):pt.createV1(e.codec,s),t.subarray(e.size)]}static inspectBytes(t){let e=0,n=()=>{let[f,d]=fo(t.subarray(e));return e+=d,f},i=n(),o=ho;if(i===18?(i=0,e=0):o=n(),i!==0&&i!==1)throw new RangeError(`Invalid CID version ${i}`);let s=e,a=n(),c=n(),l=e+c,u=l-s;return{version:i,codec:o,multihashCode:a,digestSize:c,multihashSize:u,size:l}}static parse(t,e){let[n,i]=Sx(t,e),o=pt.decode(i);if(o.version===0&&t[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return Tl(o).set(n,t),o}},Sx=(r,t)=>{switch(r[0]){case"Q":{let e=t||Vt;return[Vt.prefix,e.decode(`${Vt.prefix}${r}`)]}case Vt.prefix:{let e=t||Vt;return[Vt.prefix,e.decode(r)]}case be.prefix:{let e=t||be;return[be.prefix,e.decode(r)]}default:{if(t==null)throw Error("To parse non base32 or base58btc encoded CID multibase decoder must be provided");return[r[0],t.decode(r)]}}},Ax=(r,t,e)=>{let{prefix:n}=e;if(n!==Vt.prefix)throw Error(`Cannot string encode V0 in ${e.name} encoding`);let i=t.get(n);if(i==null){let o=e.encode(r).slice(1);return t.set(n,o),o}else return i},Rx=(r,t,e)=>{let{prefix:n}=e,i=t.get(n);if(i==null){let o=e.encode(r);return t.set(n,o),o}else return i},ho=112,Ix=18,cd=(r,t,e)=>{let n=_i(r),i=n+_i(t),o=new Uint8Array(i+e.byteLength);return bi(r,o,0),bi(t,o,n),o.set(e,i),o},Tx=Symbol.for("@ipld/js-cid/CID");var tn={...yl,...gl,...wl,...El,...xl,...dl,...vl,...hl,...pl,...bl},AI={...Rl,...Il};function On(r){return globalThis.Buffer!=null?new Uint8Array(r.buffer,r.byteOffset,r.byteLength):r}function Dr(r=0){return globalThis.Buffer?.alloc!=null?On(globalThis.Buffer.alloc(r)):new Uint8Array(r)}function Pr(r=0){return globalThis.Buffer?.allocUnsafe!=null?On(globalThis.Buffer.allocUnsafe(r)):new Uint8Array(r)}function ud(r,t,e,n){return{name:r,prefix:t,encoder:{name:r,prefix:t,encode:e},decoder:{decode:n}}}var ld=ud("utf8","u",r=>"u"+new TextDecoder("utf8").decode(r),r=>new TextEncoder().encode(r.substring(1))),Cl=ud("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=Pr(r.length);for(let e=0;e<r.length;e++)t[e]=r.charCodeAt(e);return t}),Cx={utf8:ld,"utf-8":ld,hex:tn.base16,latin1:Cl,ascii:Cl,binary:Cl,...tn},Os=Cx;function H(r,t="utf8"){let e=Os[t];if(e==null)throw new Error(`Unsupported encoding "${t}"`);return(t==="utf8"||t==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?globalThis.Buffer.from(r.buffer,r.byteOffset,r.byteLength).toString("utf8"):e.encoder.encode(r).substring(1)}var fd=Qh,Dx=Xh,Dl=function(r){let t=0;if(r=r.toString().trim(),fd(r)){let e=new Uint8Array(t+4);return r.split(/\./g).forEach(n=>{e[t++]=parseInt(n,10)&255}),e}if(Dx(r)){let e=r.split(":",8),n;for(n=0;n<e.length;n++){let o=fd(e[n]),s;o&&(s=Dl(e[n]),e[n]=H(s.slice(0,2),"base16")),s!=null&&++n<8&&e.splice(n,0,H(s.slice(2,4),"base16"))}if(e[0]==="")for(;e.length<8;)e.unshift("0");else if(e[e.length-1]==="")for(;e.length<8;)e.push("0");else if(e.length<8){for(n=0;n<e.length&&e[n]!=="";n++);let o=[n,1];for(n=9-e.length;n>0;n--)o.push("0");e.splice.apply(e,o)}let i=new Uint8Array(t+16);for(n=0;n<e.length;n++){let o=parseInt(e[n],16);i[t++]=o>>8&255,i[t++]=o&255}return i}throw new Error("invalid ip address")},hd=function(r,t=0,e){t=~~t,e=e??r.length-t;let n=new DataView(r.buffer);if(e===4){let i=[];for(let o=0;o<e;o++)i.push(r[t+o]);return i.join(".")}if(e===16){let i=[];for(let o=0;o<e;o+=2)i.push(n.getUint16(t+o).toString(16));return i.join(":").replace(/(^|:)0(:0)*:0(:|$)/,"$1::$3").replace(/:{3,4}/,"::")}return""};var po={},Pl={},Lx=[[4,32,"ip4"],[6,16,"tcp"],[33,16,"dccp"],[41,128,"ip6"],[42,-1,"ip6zone"],[43,8,"ipcidr"],[53,-1,"dns",!0],[54,-1,"dns4",!0],[55,-1,"dns6",!0],[56,-1,"dnsaddr",!0],[132,16,"sctp"],[273,16,"udp"],[275,0,"p2p-webrtc-star"],[276,0,"p2p-webrtc-direct"],[277,0,"p2p-stardust"],[280,0,"webrtc"],[290,0,"p2p-circuit"],[301,0,"udt"],[302,0,"utp"],[400,-1,"unix",!1,!0],[421,-1,"ipfs"],[421,-1,"p2p"],[443,0,"https"],[444,96,"onion"],[445,296,"onion3"],[446,-1,"garlic64"],[448,0,"tls"],[460,0,"quic"],[461,0,"quic-v1"],[465,0,"webtransport"],[466,-1,"certhash"],[477,0,"ws"],[478,0,"wss"],[479,0,"p2p-websocket-star"],[480,0,"http"],[777,-1,"memory"]];Lx.forEach(r=>{let t=Bx(...r);Pl[t.code]=t,po[t.name]=t});function Bx(r,t,e,n,i){return{code:r,size:t,name:e,resolvable:Boolean(n),path:Boolean(i)}}function mt(r){if(typeof r=="number"){if(Pl[r]!=null)return Pl[r];throw new Error(`no protocol with code: ${r}`)}else if(typeof r=="string"){if(po[r]!=null)return po[r];throw new Error(`no protocol with name: ${r}`)}throw new Error(`invalid protocol id type: ${typeof r}`)}var ar=I(ks(),1);function U(r,t="utf8"){let e=Os[t];if(e==null)throw new Error(`Unsupported encoding "${t}"`);return(t==="utf8"||t==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?On(globalThis.Buffer.from(r,"utf-8")):e.decoder.decode(`${e.prefix}${r}`)}function qt(r,t){t==null&&(t=r.reduce((i,o)=>i+o.length,0));let e=Pr(t),n=0;for(let i of r)e.set(i,n),n+=i.length;return On(e)}function Rd(r,t){switch(mt(r).code){case 4:case 41:return Wx(t);case 42:return Sd(t);case 6:case 273:case 33:case 132:return Td(t).toString();case 53:case 54:case 55:case 56:case 400:case 777:return Sd(t);case 421:return Jx(t);case 444:return Ad(t);case 445:return Ad(t);case 466:return Zx(t);default:return H(t,"base16")}}function Id(r,t){switch(mt(r).code){case 4:return bd(t);case 41:return bd(t);case 42:return _d(t);case 6:case 273:case 33:case 132:return Ol(parseInt(t,10));case 53:case 54:case 55:case 56:case 400:case 777:return _d(t);case 421:return Qx(t);case 444:return jx(t);case 445:return tv(t);case 466:return Xx(t);default:return U(t,"base16")}}var Nl=Object.values(tn).map(r=>r.decoder),Yx=function(){let r=Nl[0].or(Nl[1]);return Nl.slice(2).forEach(t=>r=r.or(t)),r}();function bd(r){if(!vi(r))throw new Error("invalid ip address");return Dl(r)}function Wx(r){let t=hd(r,0,r.length);if(t==null)throw new Error("ipBuff is required");if(!vi(t))throw new Error("invalid ip address");return t}function Ol(r){let t=new ArrayBuffer(2);return new DataView(t).setUint16(0,r),new Uint8Array(t)}function Td(r){return new DataView(r.buffer).getUint16(r.byteOffset)}function _d(r){let t=U(r),e=Uint8Array.from(ar.default.encode(t.length));return qt([e,t],e.length+t.length)}function Sd(r){let t=ar.default.decode(r);if(r=r.slice(ar.default.decode.bytes),r.length!==t)throw new Error("inconsistent lengths");return H(r)}function Qx(r){let t;r[0]==="Q"||r[0]==="1"?t=Bn(Vt.decode(`z${r}`)).bytes:t=pt.parse(r).multihash.bytes;let e=Uint8Array.from(ar.default.encode(t.length));return qt([e,t],e.length+t.length)}function Xx(r){let t=Yx.decode(r),e=Uint8Array.from(ar.default.encode(t.length));return qt([e,t],e.length+t.length)}function Zx(r){let t=ar.default.decode(r),e=r.slice(ar.default.decode.bytes);if(e.length!==t)throw new Error("inconsistent lengths");return"u"+H(e,"base64url")}function Jx(r){let t=ar.default.decode(r),e=r.slice(ar.default.decode.bytes);if(e.length!==t)throw new Error("inconsistent lengths");return H(e,"base58btc")}function jx(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=be.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 i=Ol(n);return qt([e,i],e.length+i.length)}function tv(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=be.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 i=Ol(n);return qt([e,i],e.length+i.length)}function Ad(r){let t=r.slice(0,r.length-2),e=r.slice(r.length-2),n=H(t,"base32"),i=Td(e);return`${n}:${i}`}var Ai=I(ks(),1);function ev(r){let t=[],e=r.split("/").slice(1);if(e.length===1&&e[0]==="")return[];for(let n=0;n<e.length;n++){let i=e[n],o=mt(i);if(o.size===0){t.push([i]);continue}if(n++,n>=e.length)throw Dd("invalid address: "+r);if(o.path===!0){t.push([i,Kl(e.slice(n).join("/"))]);break}t.push([i,e[n]])}return t}function rv(r){let t=[];return r.map(e=>{let n=Fs(e);return t.push(n.name),e.length>1&&e[1]!=null&&t.push(e[1]),null}),Kl(t.join("/"))}function nv(r){return r.map(t=>{Array.isArray(t)||(t=[t]);let e=Fs(t);return t.length>1?[e.code,Id(e.code,t[1])]:[e.code]})}function kl(r){return r.map(t=>{let e=Fs(t);return t[1]!=null?[e.code,Rd(e.code,t[1])]:[e.code]})}function Ml(r){return Us(qt(r.map(t=>{let e=Fs(t),n=Uint8Array.from(Ai.default.encode(e.code));return t.length>1&&t[1]!=null&&(n=qt([n,t[1]])),n})))}function Ul(r,t){return r.size>0?r.size/8:r.size===0?0:Ai.default.decode(t)+(Ai.default.decode.bytes??0)}function Ms(r){let t=[],e=0;for(;e<r.length;){let n=Ai.default.decode(r,e),i=Ai.default.decode.bytes??0,o=mt(n),s=Ul(o,r.slice(e+i));if(s===0){t.push([n]),e+=i;continue}let a=r.slice(e+i,e+i+s);if(e+=s+i,e>r.length)throw Dd("Invalid address Uint8Array: "+H(r,"base16"));t.push([n,a])}return t}function Fl(r){let t=Ms(r),e=kl(t);return rv(e)}function iv(r){r=Kl(r);let t=ev(r),e=nv(t);return Ml(e)}function Cd(r){return iv(r)}function Us(r){let t=ov(r);if(t!=null)throw t;return Uint8Array.from(r)}function ov(r){try{Ms(r)}catch(t){return t}}function Kl(r){return"/"+r.trim().split("/").filter(t=>t).join("/")}function Dd(r){return new Error("Error parsing address: "+r)}function Fs(r){return mt(r[0])}var ql=I(ks(),1);var Nd=I(W(),1);function xt(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 Ri=function(r,t,e,n){if(e==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?r!==t||!n:!t.has(r))throw new TypeError("Cannot read private member from an object whose class did not declare it");return e==="m"?n:e==="a"?n.call(r):n?n.value:t.get(r)},Vl=function(r,t,e,n,i){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!i)throw new TypeError("Private accessor was defined without a setter");if(typeof t=="function"?r!==t||!i:!t.has(r))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?i.call(r,e):i?i.value=e:t.set(r,e),e},mo,yo,go,Bd,cv=Symbol.for("nodejs.util.inspect.custom"),lv=[mt("dns").code,mt("dns4").code,mt("dns6").code,mt("dnsaddr").code],Hl=new Map,Od=Symbol.for("@multiformats/js-multiaddr/multiaddr");function kd(r,t){if(r==null)throw new Error("requires node address object");if(t==null)throw new Error("requires transport protocol");let e,n=r.address;switch(r.family){case 4:e="ip4";break;case 6:if(e="ip6",n.includes("%")){let i=n.split("%");if(i.length!==2)throw Error("Multiple ip6 zones in multiaddr");n=i[0],e=`/ip6zone/${i[1]}/ip6`}break;default:throw Error("Invalid addr family, should be 4 or 6.")}return new cr("/"+[e,n,t,r.port].join("/"))}function _e(r){return Boolean(r?.[Od])}var cr=class{constructor(t){if(mo.set(this,void 0),yo.set(this,void 0),go.set(this,void 0),this[Bd]=!0,t==null&&(t=""),t instanceof Uint8Array)this.bytes=Us(t);else if(typeof t=="string"){if(t.length>0&&t.charAt(0)!=="/")throw new Error(`multiaddr "${t}" must start with a "/"`);this.bytes=Cd(t)}else if(_e(t))this.bytes=Us(t.bytes);else throw new Error("addr must be a string, Buffer, or another Multiaddr")}toString(){return Ri(this,mo,"f")==null&&Vl(this,mo,Fl(this.bytes),"f"),Ri(this,mo,"f")}toJSON(){return this.toString()}toOptions(){let t,e,n,i,o="",s=mt("tcp"),a=mt("udp"),c=mt("ip4"),l=mt("ip6"),u=mt("dns6"),f=mt("ip6zone");for(let[h,p]of this.stringTuples())h===f.code&&(o=`%${p??""}`),lv.includes(h)&&(e=s.name,i=443,n=`${p??""}${o}`,t=h===u.code?6:4),(h===s.code||h===a.code)&&(e=mt(h).name,i=parseInt(p??"")),(h===c.code||h===l.code)&&(e=mt(h).name,n=`${p??""}${o}`,t=h===l.code?6:4);if(t==null||e==null||n==null||i==null)throw new Error('multiaddr must have a valid format: "/{ip4, ip6, dns4, dns6, dnsaddr}/{address}/{tcp, udp}/{port}".');return{family:t,host:n,transport:e,port:i}}protos(){return this.protoCodes().map(t=>Object.assign({},mt(t)))}protoCodes(){let t=[],e=this.bytes,n=0;for(;n<e.length;){let i=ql.default.decode(e,n),o=ql.default.decode.bytes??0,s=mt(i),a=Ul(s,e.slice(n+o));n+=a+o,t.push(i)}return t}protoNames(){return this.protos().map(t=>t.name)}tuples(){return Ri(this,yo,"f")==null&&Vl(this,yo,Ms(this.bytes),"f"),Ri(this,yo,"f")}stringTuples(){return Ri(this,go,"f")==null&&Vl(this,go,kl(this.tuples()),"f"),Ri(this,go,"f")}encapsulate(t){return t=new cr(t),new cr(this.toString()+t.toString())}decapsulate(t){let e=t.toString(),n=this.toString(),i=n.lastIndexOf(e);if(i<0)throw new Error(`Address ${this.toString()} does not contain subaddress: ${t.toString()}`);return new cr(n.slice(0,i))}decapsulateCode(t){let e=this.tuples();for(let n=e.length-1;n>=0;n--)if(e[n][0]===t)return new cr(Ml(e.slice(0,n)));return this}getPeerId(){try{let e=this.stringTuples().filter(n=>n[0]===po.ipfs.code).pop();if(e?.[1]!=null){let n=e[1];return n[0]==="Q"||n[0]==="1"?H(Vt.decode(`z${n}`),"base58btc"):H(pt.parse(n).multihash.bytes,"base58btc")}return null}catch{return null}}getPath(){let t=null;try{t=this.stringTuples().filter(e=>mt(e[0]).path===!0)[0][1],t==null&&(t=null)}catch{t=null}return t}equals(t){return xt(this.bytes,t.bytes)}async resolve(t){let e=this.protos().find(o=>o.resolvable);if(e==null)return[this];let n=Hl.get(e.name);if(n==null)throw(0,Nd.default)(new Error(`no available resolver for ${e.name}`),"ERR_NO_AVAILABLE_RESOLVER");return(await n(this,t)).map(o=>new cr(o))}nodeAddress(){let t=this.toOptions();if(t.transport!=="tcp"&&t.transport!=="udp")throw new Error(`multiaddr must have a valid format - no protocol with name: "${t.transport}". Must have a valid transport protocol: "{tcp, udp}"`);return{family:t.family,address:t.host,port:t.port}}isThinWaistAddress(t){let e=(t??this).protos();return!(e.length!==2||e[0].code!==4&&e[0].code!==41||e[1].code!==6&&e[1].code!==273)}[(mo=new WeakMap,yo=new WeakMap,go=new WeakMap,Bd=Od,cv)](){return`Multiaddr(${Fl(this.bytes)})`}};function j(r){return new cr(r)}async function Lr(r){let t=[];for await(let e of r)t.push(e);return t}var $l=(r,t)=>async function*(){yield*(await Lr(r)).sort(t)}();async function Ye(r){for await(let t of r);}async function*ye(r,t){for await(let e of r)await t(e)&&(yield e)}async function*Ks(r,t){let e=0;if(!(t<1)){for await(let n of r)if(yield n,e++,e===t)return}}var Vs=class{open(){return Promise.reject(new Error(".open is not implemented"))}close(){return Promise.reject(new Error(".close is not implemented"))}put(t,e,n){return Promise.reject(new Error(".put is not implemented"))}get(t,e){return Promise.reject(new Error(".get is not implemented"))}has(t,e){return Promise.reject(new Error(".has is not implemented"))}delete(t,e){return Promise.reject(new Error(".delete is not implemented"))}async*putMany(t,e={}){for await(let{key:n,value:i}of t)await this.put(n,i,e),yield{key:n,value:i}}async*getMany(t,e={}){for await(let n of t)yield this.get(n,e)}async*deleteMany(t,e={}){for await(let n of t)await this.delete(n,e),yield n}batch(){let t=[],e=[];return{put(n,i){t.push({key:n,value:i})},delete(n){e.push(n)},commit:async n=>{await Ye(this.putMany(t,n)),t=[],await Ye(this.deleteMany(e,n)),e=[]}}}async*_all(t,e){throw new Error("._all is not implemented")}async*_allKeys(t,e){throw new Error("._allKeys is not implemented")}query(t,e){let n=this._all(t,e);if(t.prefix!=null&&(n=ye(n,i=>i.key.toString().startsWith(t.prefix))),Array.isArray(t.filters)&&(n=t.filters.reduce((i,o)=>ye(i,o),n)),Array.isArray(t.orders)&&(n=t.orders.reduce((i,o)=>$l(i,o),n)),t.offset!=null){let i=0;n=ye(n,()=>i++>=t.offset)}return t.limit!=null&&(n=Ks(n,t.limit)),n}queryKeys(t,e){let n=this._allKeys(t,e);if(t.prefix!=null&&(n=ye(n,i=>i.toString().startsWith(t.prefix))),Array.isArray(t.filters)&&(n=t.filters.reduce((i,o)=>ye(i,o),n)),Array.isArray(t.orders)&&(n=t.orders.reduce((i,o)=>$l(i,o),n)),t.offset!=null){let i=0;n=ye(n,()=>i++>=t.offset)}return t.limit!=null&&(n=Ks(n,t.limit)),n}};var qs=(r=21)=>crypto.getRandomValues(new Uint8Array(r)).reduce((t,e)=>(e&=63,e<36?t+=e.toString(36):e<62?t+=(e-26).toString(36).toUpperCase():e>62?t+="-":t+="_",t),"");var Br="/",Md=new TextEncoder().encode(Br),Hs=Md[0],Ut=class{constructor(t,e){if(typeof t=="string")this._buf=U(t);else if(t instanceof Uint8Array)this._buf=t;else throw new Error("Invalid key, should be String of Uint8Array");if(e==null&&(e=!0),e&&this.clean(),this._buf.byteLength===0||this._buf[0]!==Hs)throw new Error("Invalid key")}toString(t="utf8"){return H(this._buf,t)}uint8Array(){return this._buf}get[Symbol.toStringTag](){return`Key(${this.toString()})`}static withNamespaces(t){return new Ut(t.join(Br))}static random(){return new Ut(qs().replace(/-/g,""))}static asKey(t){return t instanceof Uint8Array||typeof t=="string"?new Ut(t):typeof t.uint8Array=="function"?new Ut(t.uint8Array()):null}clean(){if((this._buf==null||this._buf.byteLength===0)&&(this._buf=Md),this._buf[0]!==Hs){let t=new Uint8Array(this._buf.byteLength+1);t.fill(Hs,0,1),t.set(this._buf,1),this._buf=t}for(;this._buf.byteLength>1&&this._buf[this._buf.byteLength-1]===Hs;)this._buf=this._buf.subarray(0,-1)}less(t){let e=this.list(),n=t.list();for(let i=0;i<e.length;i++){if(n.length<i+1)return!1;let o=e[i],s=n[i];if(o<s)return!0;if(o>s)return!1}return e.length<n.length}reverse(){return Ut.withNamespaces(this.list().slice().reverse())}namespaces(){return this.list()}baseNamespace(){let t=this.namespaces();return t[t.length-1]}list(){return this.toString().split(Br).slice(1)}type(){return uv(this.baseNamespace())}name(){return fv(this.baseNamespace())}instance(t){return new Ut(this.toString()+":"+t)}path(){let t=this.parent().toString();return t.endsWith(Br)||(t+=Br),t+=this.type(),new Ut(t)}parent(){let t=this.list();return t.length===1?new Ut(Br):new Ut(t.slice(0,-1).join(Br))}child(t){return this.toString()===Br?t:t.toString()===Br?this:new Ut(this.toString()+t.toString(),!1)}isAncestorOf(t){return t.toString()===this.toString()?!1:t.toString().startsWith(this.toString())}isDecendantOf(t){return t.toString()===this.toString()?!1:this.toString().startsWith(t.toString())}isTopLevel(){return this.list().length===1}concat(...t){return Ut.withNamespaces([...this.namespaces(),...hv(t.map(e=>e.namespaces()))])}};function uv(r){let t=r.split(":");return t.length<2?"":t.slice(0,-1).join(":")}function fv(r){let t=r.split(":");return t[t.length-1]}function hv(r){return[].concat(...r)}var Ud=I(W(),1);function Fd(r){return r=r||new Error("Not Found"),(0,Ud.default)(r,"ERR_NOT_FOUND")}var $s=class extends Vs{constructor(){super(),this.data={}}open(){return Promise.resolve()}close(){return Promise.resolve()}async put(t,e){this.data[t.toString()]=e}async get(t){if(!await this.has(t))throw Fd();return this.data[t.toString()]}async has(t){return this.data[t.toString()]!==void 0}async delete(t){delete this.data[t.toString()]}async*_all(){yield*Object.entries(this.data).map(([t,e])=>({key:new Ut(t),value:e}))}async*_allKeys(){yield*Object.entries(this.data).map(([t])=>new Ut(t))}};var vo=I(W(),1);var X;(function(r){r.NOT_STARTED_YET="The libp2p node is not started yet",r.DHT_DISABLED="DHT is not available",r.PUBSUB_DISABLED="PubSub is not available",r.CONN_ENCRYPTION_REQUIRED="At least one connection encryption module is required",r.ERR_TRANSPORTS_REQUIRED="At least one transport module is required",r.ERR_PROTECTOR_REQUIRED="Private network is enforced, but no protector was provided",r.NOT_FOUND="Not found"})(X||(X={}));var b;(function(r){r.DHT_DISABLED="ERR_DHT_DISABLED",r.ERR_PUBSUB_DISABLED="ERR_PUBSUB_DISABLED",r.PUBSUB_NOT_STARTED="ERR_PUBSUB_NOT_STARTED",r.DHT_NOT_STARTED="ERR_DHT_NOT_STARTED",r.CONN_ENCRYPTION_REQUIRED="ERR_CONN_ENCRYPTION_REQUIRED",r.ERR_TRANSPORTS_REQUIRED="ERR_TRANSPORTS_REQUIRED",r.ERR_PROTECTOR_REQUIRED="ERR_PROTECTOR_REQUIRED",r.ERR_PEER_DIAL_INTERCEPTED="ERR_PEER_DIAL_INTERCEPTED",r.ERR_CONNECTION_INTERCEPTED="ERR_CONNECTION_INTERCEPTED",r.ERR_INVALID_PROTOCOLS_FOR_STREAM="ERR_INVALID_PROTOCOLS_FOR_STREAM",r.ERR_CONNECTION_ENDED="ERR_CONNECTION_ENDED",r.ERR_CONNECTION_FAILED="ERR_CONNECTION_FAILED",r.ERR_NODE_NOT_STARTED="ERR_NODE_NOT_STARTED",r.ERR_ALREADY_ABORTED="ERR_ALREADY_ABORTED",r.ERR_TOO_MANY_ADDRESSES="ERR_TOO_MANY_ADDRESSES",r.ERR_NO_VALID_ADDRESSES="ERR_NO_VALID_ADDRESSES",r.ERR_RELAYED_DIAL="ERR_RELAYED_DIAL",r.ERR_DIALED_SELF="ERR_DIALED_SELF",r.ERR_DISCOVERED_SELF="ERR_DISCOVERED_SELF",r.ERR_DUPLICATE_TRANSPORT="ERR_DUPLICATE_TRANSPORT",r.ERR_ENCRYPTION_FAILED="ERR_ENCRYPTION_FAILED",r.ERR_HOP_REQUEST_FAILED="ERR_HOP_REQUEST_FAILED",r.ERR_INVALID_KEY="ERR_INVALID_KEY",r.ERR_INVALID_MESSAGE="ERR_INVALID_MESSAGE",r.ERR_INVALID_PARAMETERS="ERR_INVALID_PARAMETERS",r.ERR_INVALID_PEER="ERR_INVALID_PEER",r.ERR_MUXER_UNAVAILABLE="ERR_MUXER_UNAVAILABLE",r.ERR_NOT_FOUND="ERR_NOT_FOUND",r.ERR_TIMEOUT="ERR_TIMEOUT",r.ERR_TRANSPORT_UNAVAILABLE="ERR_TRANSPORT_UNAVAILABLE",r.ERR_TRANSPORT_DIAL_FAILED="ERR_TRANSPORT_DIAL_FAILED",r.ERR_UNSUPPORTED_PROTOCOL="ERR_UNSUPPORTED_PROTOCOL",r.ERR_PROTOCOL_HANDLER_ALREADY_REGISTERED="ERR_PROTOCOL_HANDLER_ALREADY_REGISTERED",r.ERR_INVALID_MULTIADDR="ERR_INVALID_MULTIADDR",r.ERR_SIGNATURE_NOT_VALID="ERR_SIGNATURE_NOT_VALID",r.ERR_FIND_SELF="ERR_FIND_SELF",r.ERR_NO_ROUTERS_AVAILABLE="ERR_NO_ROUTERS_AVAILABLE",r.ERR_CONNECTION_NOT_MULTIPLEXED="ERR_CONNECTION_NOT_MULTIPLEXED",r.ERR_NO_DIAL_TOKENS="ERR_NO_DIAL_TOKENS",r.ERR_KEYCHAIN_REQUIRED="ERR_KEYCHAIN_REQUIRED",r.ERR_INVALID_CMS="ERR_INVALID_CMS",r.ERR_MISSING_KEYS="ERR_MISSING_KEYS",r.ERR_NO_KEY="ERR_NO_KEY",r.ERR_INVALID_KEY_NAME="ERR_INVALID_KEY_NAME",r.ERR_INVALID_KEY_TYPE="ERR_INVALID_KEY_TYPE",r.ERR_KEY_ALREADY_EXISTS="ERR_KEY_ALREADY_EXISTS",r.ERR_INVALID_KEY_SIZE="ERR_INVALID_KEY_SIZE",r.ERR_KEY_NOT_FOUND="ERR_KEY_NOT_FOUND",r.ERR_OLD_KEY_NAME_INVALID="ERR_OLD_KEY_NAME_INVALID",r.ERR_NEW_KEY_NAME_INVALID="ERR_NEW_KEY_NAME_INVALID",r.ERR_PASSWORD_REQUIRED="ERR_PASSWORD_REQUIRED",r.ERR_PEM_REQUIRED="ERR_PEM_REQUIRED",r.ERR_CANNOT_READ_KEY="ERR_CANNOT_READ_KEY",r.ERR_MISSING_PRIVATE_KEY="ERR_MISSING_PRIVATE_KEY",r.ERR_MISSING_PUBLIC_KEY="ERR_MISSING_PUBLIC_KEY",r.ERR_INVALID_OLD_PASS_TYPE="ERR_INVALID_OLD_PASS_TYPE",r.ERR_INVALID_NEW_PASS_TYPE="ERR_INVALID_NEW_PASS_TYPE",r.ERR_INVALID_PASS_LENGTH="ERR_INVALID_PASS_LENGTH",r.ERR_NOT_IMPLEMENTED="ERR_NOT_IMPLEMENTED",r.ERR_WRONG_PING_ACK="ERR_WRONG_PING_ACK",r.ERR_INVALID_RECORD="ERR_INVALID_RECORD",r.ERR_ALREADY_SUCCEEDED="ERR_ALREADY_SUCCEEDED",r.ERR_NO_HANDLER_FOR_PROTOCOL="ERR_NO_HANDLER_FOR_PROTOCOL",r.ERR_TOO_MANY_OUTBOUND_PROTOCOL_STREAMS="ERR_TOO_MANY_OUTBOUND_PROTOCOL_STREAMS",r.ERR_TOO_MANY_INBOUND_PROTOCOL_STREAMS="ERR_TOO_MANY_INBOUND_PROTOCOL_STREAMS",r.ERR_CONNECTION_DENIED="ERR_CONNECTION_DENIED"})(b||(b={}));var Kd=I(W(),1);async function*wo(r,t){for await(let e of r)yield t(e)}async function*Eo(r,t){yield*wo(r,async e=>(await t.addressBook.add(e.id,e.multiaddrs),e))}function zs(r){let t=new Set;return ye(r,e=>t.has(e.id.toString())?!1:(t.add(e.id.toString()),!0))}async function*Gs(r,t=1){let e=0;for await(let n of r)e++,yield n;if(e<t)throw(0,Kd.default)(new Error("not found"),"NOT_FOUND")}var o0=I(Nr(),1);var Ws=class{constructor(t){if(!(t>0)||t-1&t)throw new Error("Max size for a FixedFIFO should be a power of two");this.buffer=new Array(t),this.mask=t-1,this.top=0,this.btm=0,this.next=null}push(t){return this.buffer[this.top]!==void 0?!1:(this.buffer[this.top]=t,this.top=this.top+1&this.mask,!0)}shift(){let t=this.buffer[this.btm];if(t!==void 0)return this.buffer[this.btm]=void 0,this.btm=this.btm+1&this.mask,t}isEmpty(){return this.buffer[this.btm]===void 0}},Ii=class{constructor(t={}){this.hwm=t.splitLimit??16,this.head=new Ws(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 Ws(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()}};function kn(r={}){return yv(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 yv(r,t){t=t??{};let e=t.onEnd,n=new Ii,i,o,s,a=async()=>n.isEmpty()?s?{done:!0}:await new Promise((m,y)=>{o=g=>{o=null,n.push(g);try{m(r(n))}catch(E){y(E)}return i}}):r(n),c=m=>o!=null?o(m):(n.push(m),i),l=m=>(n=new Ii,o!=null?o({error:m}):(n.push({error:m}),i)),u=m=>{if(s)return i;if(t?.objectMode!==!0&&m?.byteLength==null)throw new Error("objectMode was not true but tried to push non-Uint8Array value");return c({done:!1,value:m})},f=m=>s?i:(s=!0,m!=null?l(m):c({done:!0})),d=()=>(n=new Ii,f(),{done:!0}),h=m=>(f(m),{done:!0});if(i={[Symbol.asyncIterator](){return this},next:a,return:d,throw:h,push:u,end:f,get readableLength(){return n.size}},e==null)return i;let p=i;return i={[Symbol.asyncIterator](){return this},next(){return p.next()},throw(m){return p.throw(m),e!=null&&(e(m),e=void 0),{done:!0}},return(){return p.return(),e!=null&&(e(),e=void 0),{done:!0}},push:u,end(m){return p.end(m),e!=null&&(e(m),e=void 0),i},get readableLength(){return p.readableLength}},i}async function*Or(...r){let t=kn({objectMode:!0});Promise.resolve().then(async()=>{try{await Promise.all(r.map(async e=>{for await(let n of e)t.push(n)})),t.end()}catch(e){t.end(e)}}),yield*t}var gv=(...r)=>{let t;for(;r.length>0;)t=r.shift()(t);return t},Gd=r=>r!=null&&(typeof r[Symbol.asyncIterator]=="function"||typeof r[Symbol.iterator]=="function"||typeof r.next=="function"),Yl=r=>r!=null&&typeof r.sink=="function"&&Gd(r.source),wv=r=>t=>{let e=r.sink(t);if(e.then!=null){let n=kn({objectMode:!0});return e.then(()=>{n.end()},o=>{n.end(o)}),Or(n,async function*(){yield*r.source,n.end()}())}return r.source};function Lt(r,...t){if(Yl(r)){let n=r;r=()=>n.source}else if(Gd(r)){let n=r;r=()=>n}let e=[r,...t];if(e.length>1&&Yl(e[e.length-1])&&(e[e.length-1]=e[e.length-1].sink),e.length>2)for(let n=1;n<e.length-1;n++)Yl(e[n])&&(e[n]=wv(e[n]));return gv(...e)}async function Se(r){for await(let t of r)return t}var Js=I(Wl(),1),s0=I(lr(),1),i0=N("libp2p:peer-routing"),Zs=class{constructor(t,e){this.components=t,this.routers=e.routers??[],this.refreshManagerInit=e.refreshManager??{},this.started=!1,this._findClosestPeersTask=this._findClosestPeersTask.bind(this)}isStarted(){return this.started}async start(){this.started||this.routers.length===0||this.timeoutId!=null||this.refreshManagerInit.enabled===!1||(this.timeoutId=(0,Js.setDelayedInterval)(this._findClosestPeersTask,this.refreshManagerInit.interval,this.refreshManagerInit.bootDelay),this.started=!0)}async _findClosestPeersTask(){if(this.abortController==null)try{this.abortController=new o0.TimeoutController(this.refreshManagerInit.timeout??1e4);try{(0,s0.setMaxListeners)?.(1/0,this.abortController.signal)}catch{}await Ye(this.getClosestPeers(this.components.peerId.toBytes(),{signal:this.abortController.signal}))}catch(t){i0.error(t)}finally{this.abortController?.clear(),this.abortController=void 0}}async stop(){(0,Js.clearDelayedInterval)(this.timeoutId),this.abortController?.abort(),this.started=!1}async findPeer(t,e){if(this.routers.length===0)throw(0,vo.default)(new Error("No peer routers available"),b.ERR_NO_ROUTERS_AVAILABLE);if(t.toString()===this.components.peerId.toString())throw(0,vo.default)(new Error("Should not try to find self"),b.ERR_FIND_SELF);let n=await Lt(Or(...this.routers.map(i=>async function*(){try{yield await i.findPeer(t,e)}catch(o){i0.error(o)}}())),i=>ye(i,Boolean),i=>Eo(i,this.components.peerStore),async i=>await Se(i));if(n!=null)return n;throw(0,vo.default)(new Error(X.NOT_FOUND),b.ERR_NOT_FOUND)}async*getClosestPeers(t,e){if(this.routers.length===0)throw(0,vo.default)(new Error("No peer routers available"),b.ERR_NO_ROUTERS_AVAILABLE);yield*Lt(Or(...this.routers.map(n=>n.getClosestPeers(t,e))),n=>Eo(n,this.components.peerStore),n=>zs(n),n=>Gs(n))}};var en=I(W(),1);var js=class{constructor(t,e){this.routers=e.routers??[],this.started=!1,this.components=t}isStarted(){return this.started}async start(){this.started=!0}async stop(){this.started=!1}async*findProviders(t,e={}){if(this.routers.length===0)throw(0,en.default)(new Error("No content this.routers available"),b.ERR_NO_ROUTERS_AVAILABLE);yield*Lt(Or(...this.routers.map(n=>n.findProviders(t,e))),n=>Eo(n,this.components.peerStore),n=>zs(n),n=>Gs(n))}async provide(t,e={}){if(this.routers.length===0)throw(0,en.default)(new Error("No content routers available"),b.ERR_NO_ROUTERS_AVAILABLE);await Promise.all(this.routers.map(async n=>await n.provide(t,e)))}async put(t,e,n){if(!this.isStarted())throw(0,en.default)(new Error(X.NOT_STARTED_YET),b.DHT_NOT_STARTED);let i=this.components.dht;i!=null&&await Ye(i.put(t,e,n))}async get(t,e){if(!this.isStarted())throw(0,en.default)(new Error(X.NOT_STARTED_YET),b.DHT_NOT_STARTED);let n=this.components.dht;if(n!=null){for await(let i of n.get(t,e))if(i.name==="VALUE")return i.value}throw(0,en.default)(new Error(X.NOT_FOUND),b.ERR_NOT_FOUND)}async*getMany(t,e,n){if(!this.isStarted())throw(0,en.default)(new Error(X.NOT_STARTED_YET),b.DHT_NOT_STARTED);if(e==null||e===0)return;let i=0,o=this.components.dht;if(o!=null){for await(let s of o.get(t,n))if(s.name==="VALUE"&&(yield{from:s.from,val:s.value},i++,i===e))break}if(i===0)throw(0,en.default)(new Error(X.NOT_FOUND),b.ERR_NOT_FOUND)}};var at=class extends Error{constructor(t,e,n){super(t),this.code=e,this.name=n?.name??"CodeError",this.props=n??{}}};var Xl=Symbol.for("@libp2p/peer-id");function Mn(r){return r!=null&&Boolean(r[Xl])}var Cv=Symbol.for("nodejs.util.inspect.custom"),a0=Object.values(tn).map(r=>r.decoder).reduce((r,t)=>r.or(t),tn.identity.decoder),c0=114,Zl=36,Jl=37,bo=class{constructor(t){this.type=t.type,this.multihash=t.multihash,this.privateKey=t.privateKey,Object.defineProperty(this,"string",{enumerable:!1,writable:!0})}get[Symbol.toStringTag](){return`PeerId(${this.toString()})`}get[Xl](){return!0}toString(){return this.string==null&&(this.string=Vt.encode(this.multihash.bytes).slice(1)),this.string}toCID(){return pt.createV1(c0,this.multihash)}toBytes(){return this.multihash.bytes}toJSON(){return this.toString()}equals(t){if(t instanceof Uint8Array)return xt(this.multihash.bytes,t);if(typeof t=="string")return tt(t).equals(this);if(t?.multihash?.bytes!=null)return xt(this.multihash.bytes,t.multihash.bytes);throw new Error("not valid Id")}[Cv](){return`PeerId(${this.toString()})`}},Un=class extends bo{constructor(t){super({...t,type:"RSA"}),this.type="RSA",this.publicKey=t.publicKey}},Fn=class extends bo{constructor(t){super({...t,type:"Ed25519"}),this.type="Ed25519",this.publicKey=t.multihash.digest}},Kn=class extends bo{constructor(t){super({...t,type:"secp256k1"}),this.type="secp256k1",this.publicKey=t.multihash.digest}};function Ht(r){if(r.type==="RSA")return new Un(r);if(r.type==="Ed25519")return new Fn(r);if(r.type==="secp256k1")return new Kn(r);throw new at("Not a PeerId","ERR_INVALID_PARAMETERS")}function tt(r,t){if(t=t??a0,r.charAt(0)==="1"||r.charAt(0)==="Q"){let e=Bn(Vt.decode(`z${r}`));return r.startsWith("12D")?new Fn({multihash:e}):r.startsWith("16U")?new Kn({multihash:e}):new Un({multihash:e})}return rn(a0.decode(r))}function rn(r){try{let t=Bn(r);if(t.code===jr.code){if(t.digest.length===Zl)return new Fn({multihash:t});if(t.digest.length===Jl)return new Kn({multihash:t})}if(t.code===te.code)return new Un({multihash:t})}catch{return Dv(pt.decode(r))}throw new Error("Supplied PeerID CID is invalid")}function Dv(r){if(r==null||r.multihash==null||r.version==null||r.version===1&&r.code!==c0)throw new Error("Supplied PeerID CID is invalid");let t=r.multihash;if(t.code===te.code)return new Un({multihash:r.multihash});if(t.code===jr.code){if(t.digest.length===Zl)return new Fn({multihash:r.multihash});if(t.digest.length===Jl)return new Kn({multihash:r.multihash})}throw new Error("Supplied PeerID CID is invalid")}async function nn(r,t){return r.length===Zl?new Fn({multihash:sr(jr.code,r),privateKey:t}):r.length===Jl?new Kn({multihash:sr(jr.code,r),privateKey:t}):new Un({multihash:await te.digest(r),publicKey:r,privateKey:t})}var Pv=r=>r,ta=class extends Pt{constructor(t,e){super();let{listen:n=[],announce:i=[]}=e;this.components=t,this.listen=n.map(o=>o.toString()),this.announce=new Set(i.map(o=>o.toString())),this.observed=new Set,this.announceFilter=e.announceFilter??Pv}getListenAddrs(){return Array.from(this.listen).map(t=>j(t))}getAnnounceAddrs(){return Array.from(this.announce).map(t=>j(t))}getObservedAddrs(){return Array.from(this.observed).map(t=>j(t))}confirmObservedAddr(t){}removeObservedAddr(t){}addObservedAddr(t){let e=j(t),n=e.getPeerId();n!=null&&tt(n).equals(this.components.peerId)&&(e=e.decapsulate(j(`/p2p/${this.components.peerId.toString()}`)));let i=e.toString();this.observed.has(i)||(this.observed.add(i),this.dispatchEvent(new q("change:addresses")))}getAddresses(){let t=this.getAnnounceAddrs().map(n=>n.toString());t.length===0&&(t=this.components.transportManager.getAddrs().map(n=>n.toString())),t=t.concat(this.getObservedAddrs().map(n=>n.toString()));let e=new Set(t);return this.announceFilter(Array.from(e).map(n=>j(n))).map(n=>n.protos().pop()?.path===!0||n.getPeerId()===this.components.peerId.toString()?n:n.encapsulate(`/p2p/${this.components.peerId.toString()}`))}};var la=I(W(),1);var g0=I(y0(),1),Ne=g0.default;var w0=N("libp2p:connection-manager:latency-monitor:visibility-change-emitter"),na=class extends Pt{constructor(){super(),this.hidden="hidden",this.visibilityChange="visibilityChange",globalThis.document!=null&&(this._initializeVisibilityVarNames(),this._addVisibilityChangeListener())}_initializeVisibilityVarNames(){let t="hidden",e="visibilitychange";typeof globalThis.document.hidden<"u"?(t="hidden",e="visibilitychange"):typeof globalThis.document.mozHidden<"u"?(t="mozHidden",e="mozvisibilitychange"):typeof globalThis.document.msHidden<"u"?(t="msHidden",e="msvisibilitychange"):typeof globalThis.document.webkitHidden<"u"&&(t="webkitHidden",e="webkitvisibilitychange"),this.hidden=t,this.visibilityChange=e}_addVisibilityChangeListener(){typeof globalThis.document.addEventListener>"u"||typeof document[this.hidden]>"u"?w0("Checking page visibility requires a browser that supports the Page Visibility API."):globalThis.document.addEventListener(this.visibilityChange,this._handleVisibilityChange.bind(this),!1)}isVisible(){if(!(this.hidden===void 0||document[this.hidden]===void 0))return document[this.hidden]==null}_handleVisibilityChange(){let t=globalThis.document[this.hidden]===!1;w0(t?"Page Visible":"Page Hidden"),this.dispatchEvent(new q("visibilityChange",{detail:t}))}};var kr=N("libp2p:connection-manager:latency-monitor"),ia=class extends Pt{constructor(t={}){super();let{latencyCheckIntervalMs:e,dataEmitIntervalMs:n,asyncTestFn:i,latencyRandomPercentage:o}=t;this.latencyCheckIntervalMs=e??500,this.latencyRandomPercentage=o??10,this.latencyCheckMultiply=2*(this.latencyRandomPercentage/100)*this.latencyCheckIntervalMs,this.latencyCheckSubtract=this.latencyCheckMultiply/2,this.dataEmitIntervalMs=n===null||n===0?void 0:n??5*1e3,kr("latencyCheckIntervalMs: %s dataEmitIntervalMs: %s",this.latencyCheckIntervalMs,this.dataEmitIntervalMs),this.dataEmitIntervalMs!=null?kr("Expecting ~%s events per summary",this.latencyCheckIntervalMs/this.dataEmitIntervalMs):kr("Not emitting summaries"),this.asyncTestFn=i,globalThis.process?.hrtime!=null?(kr("Using process.hrtime for timing"),this.now=globalThis.process.hrtime,this.getDeltaMS=s=>{let a=this.now(s);return a[0]*1e3+a[1]/1e6}):typeof window<"u"&&window.performance?.now!=null?(kr("Using performance.now for timing"),this.now=window.performance.now.bind(window.performance),this.getDeltaMS=s=>Math.round(this.now()-s)):(kr("Using Date.now for timing"),this.now=Date.now,this.getDeltaMS=s=>this.now()-s),this.latencyData=this.initLatencyData()}start(){Mv()&&(this.visibilityChangeEmitter=new na,this.visibilityChangeEmitter.addEventListener("visibilityChange",t=>{let{detail:e}=t;e?this._startTimers():(this._emitSummary(),this._stopTimers())})),this.visibilityChangeEmitter?.isVisible()===!0&&this._startTimers()}stop(){this._stopTimers()}_startTimers(){this.checkLatencyID==null&&(this.checkLatency(),this.dataEmitIntervalMs!=null&&(this.emitIntervalID=setInterval(()=>this._emitSummary(),this.dataEmitIntervalMs),typeof this.emitIntervalID.unref=="function"&&this.emitIntervalID.unref()))}_stopTimers(){this.checkLatencyID!=null&&(clearTimeout(this.checkLatencyID),this.checkLatencyID=void 0),this.emitIntervalID!=null&&(clearInterval(this.emitIntervalID),this.emitIntervalID=void 0)}_emitSummary(){let t=this.getSummary();t.events>0&&this.dispatchEvent(new q("data",{detail:t}))}getSummary(){let t={events:this.latencyData.events,minMs:this.latencyData.minMs,maxMs:this.latencyData.maxMs,avgMs:this.latencyData.events>0?this.latencyData.totalMs/this.latencyData.events:Number.POSITIVE_INFINITY,lengthMs:this.getDeltaMS(this.latencyData.startTime)};return this.latencyData=this.initLatencyData(),kr.trace("Summary: %O",t),t}checkLatency(){let t=Math.random()*this.latencyCheckMultiply-this.latencyCheckSubtract,e={deltaOffset:Math.ceil(this.latencyCheckIntervalMs+t),startTime:this.now()},n=()=>{if(this.checkLatencyID==null)return;let i=this.getDeltaMS(e.startTime)-e.deltaOffset;this.checkLatency(),this.latencyData.events++,this.latencyData.minMs=Math.min(this.latencyData.minMs,i),this.latencyData.maxMs=Math.max(this.latencyData.maxMs,i),this.latencyData.totalMs+=i,kr.trace("MS: %s Data: %O",i,this.latencyData)};kr.trace("localData: %O",e),this.checkLatencyID=setTimeout(()=>{this.asyncTestFn!=null?(e.deltaOffset=0,e.startTime=this.now(),this.asyncTestFn(n)):(e.deltaOffset-=1,n())},e.deltaOffset),typeof this.checkLatencyID.unref=="function"&&this.checkLatencyID.unref()}initLatencyData(){return{startTime:this.now(),minMs:Number.POSITIVE_INFINITY,maxMs:Number.NEGATIVE_INFINITY,events:0,totalMs:0}}};function Mv(){return typeof globalThis.window<"u"}var ua=I(lr(),1);var oa="OPEN",tu="CLOSING",sa="CLOSED";function Mr(r,t){let e={[Symbol.iterator]:()=>e,next:()=>{let n=r.next(),i=n.value;return n.done===!0||i==null?{done:!0,value:void 0}:{done:!1,value:t(i)}}};return e}var _o=class{constructor(t){if(this.map=new Map,t!=null)for(let[e,n]of t.entries())this.map.set(e.toString(),n)}[Symbol.iterator](){return this.entries()}clear(){this.map.clear()}delete(t){this.map.delete(t.toString())}entries(){return Mr(this.map.entries(),t=>[tt(t[0]),t[1]])}forEach(t){this.map.forEach((e,n)=>{t(e,tt(n),this)})}get(t){return this.map.get(t.toString())}has(t){return this.map.has(t.toString())}set(t,e){this.map.set(t.toString(),e)}keys(){return Mr(this.map.keys(),t=>tt(t))}values(){return this.map.values()}get size(){return this.map.size}};var Ur=class{constructor(t){if(this.set=new Set,t!=null)for(let e of t)this.set.add(e.toString())}get size(){return this.set.size}[Symbol.iterator](){return this.values()}add(t){this.set.add(t.toString())}clear(){this.set.clear()}delete(t){this.set.delete(t.toString())}entries(){return Mr(this.set.entries(),t=>{let e=tt(t[0]);return[e,e]})}forEach(t){this.set.forEach(e=>{let n=tt(e);t(n,n,this)})}has(t){return this.set.has(t.toString())}values(){return Mr(this.set.values(),t=>tt(t))}intersection(t){let e=new Ur;for(let n of t)this.has(n)&&e.add(n);return e}difference(t){let e=new Ur;for(let n of this)t.has(n)||e.add(n);return e}union(t){let e=new Ur;for(let n of t)e.add(n);for(let n of this)e.add(n);return e}};var Li=class{constructor(t){if(this.list=[],t!=null)for(let e of t)this.list.push(e.toString())}[Symbol.iterator](){return Mr(this.list.entries(),t=>tt(t[1]))}concat(t){let e=new Li(this);for(let n of t)e.push(n);return e}entries(){return Mr(this.list.entries(),t=>[t[0],tt(t[1])])}every(t){return this.list.every((e,n)=>t(tt(e),n,this))}filter(t){let e=new Li;return this.list.forEach((n,i)=>{let o=tt(n);t(o,i,this)&&e.push(o)}),e}find(t){let e=this.list.find((n,i)=>t(tt(n),i,this));if(e!=null)return tt(e)}findIndex(t){return this.list.findIndex((e,n)=>t(tt(e),n,this))}forEach(t){this.list.forEach((e,n)=>{t(tt(e),n,this)})}includes(t){return this.list.includes(t.toString())}indexOf(t){return this.list.indexOf(t.toString())}pop(){let t=this.list.pop();if(t!=null)return tt(t)}push(...t){for(let e of t)this.list.push(e.toString())}shift(){let t=this.list.shift();if(t!=null)return tt(t)}unshift(...t){let e=this.list.length;for(let n=t.length-1;n>-1;n--)e=this.list.unshift(t[n].toString());return e}get length(){return this.list.length}};var pu=I(Nr(),1);var E0="keep-alive";var yp=I(pp(),1);var mp=I(W(),1);function ca(r){if(Mn(r))return{peerId:r};if(_e(r)){let t=r.getPeerId();return{multiaddr:r,peerId:t==null?void 0:tt(t)}}throw(0,mp.default)(new Error(`${r} is not a PeerId or a Multiaddr`),b.ERR_INVALID_MULTIADDR)}var Wt=N("libp2p:connection-manager"),x2={maxConnections:1/0,minConnections:0,maxEventLoopDelay:1/0,pollInterval:2e3,autoDialInterval:1e4,inboundConnectionThreshold:5,maxIncomingPendingConnections:10},v2=6e4,fa=class extends Pt{constructor(t,e){if(super(),this.opts=Ne.call({ignoreUndefined:!0},x2,e),this.opts.maxConnections<this.opts.minConnections)throw(0,la.default)(new Error("Connection Manager maxConnections must be greater than minConnections"),b.ERR_INVALID_PARAMETERS);Wt("options: %o",this.opts),this.components=t,this.connections=new Map,this.started=!1,e.maxEventLoopDelay!=null&&e.maxEventLoopDelay>0&&e.maxEventLoopDelay!==1/0&&(this.latencyMonitor=new ia({latencyCheckIntervalMs:e.pollInterval,dataEmitIntervalMs:e.pollInterval}));try{(0,ua.setMaxListeners)?.(1/0,this)}catch{}this.onConnect=this.onConnect.bind(this),this.onDisconnect=this.onDisconnect.bind(this),this.startupReconnectTimeout=e.startupReconnectTimeout??v2,this.dialTimeout=e.dialTimeout??3e4,this.allow=(e.allow??[]).map(n=>j(n)),this.deny=(e.deny??[]).map(n=>j(n)),this.inboundConnectionRateLimiter=new yp.RateLimiterMemory({points:this.opts.inboundConnectionThreshold,duration:1}),this.incomingPendingConnections=0}isStarted(){return this.started}async start(){this.components.metrics?.registerMetricGroup("libp2p_connection_manager_connections",{calculate:()=>{let t={inbound:0,outbound:0};for(let e of this.connections.values())for(let n of e)n.stat.direction==="inbound"?t.inbound++:t.outbound++;return t}}),this.components.metrics?.registerMetricGroup("libp2p_protocol_streams_total",{label:"protocol",calculate:()=>{let t={};for(let e of this.connections.values())for(let n of e)for(let i of n.streams){let o=`${i.stat.direction} ${i.stat.protocol??"unnegotiated"}`;t[o]=(t[o]??0)+1}return t}}),this.components.metrics?.registerMetricGroup("libp2p_connection_manager_protocol_streams_per_connection_90th_percentile",{label:"protocol",calculate:()=>{let t={};for(let n of this.connections.values())for(let i of n){let o={};for(let s of i.streams){let a=`${s.stat.direction} ${s.stat.protocol??"unnegotiated"}`;o[a]=(o[a]??0)+1}for(let[s,a]of Object.entries(o))t[s]=t[s]??[],t[s].push(a)}let e={};for(let[n,i]of Object.entries(t)){i=i.sort((s,a)=>s-a);let o=Math.floor(i.length*.9);e[n]=i[o]}return e}}),this.latencyMonitor?.start(),this._onLatencyMeasure=this._onLatencyMeasure.bind(this),this.latencyMonitor?.addEventListener("data",this._onLatencyMeasure),this.started=!0,Wt("started")}async afterStart(){this.components.upgrader.addEventListener("connection",this.onConnect),this.components.upgrader.addEventListener("connectionEnd",this.onDisconnect),Promise.resolve().then(async()=>{let t=[];for(let e of await this.components.peerStore.all())(await this.components.peerStore.getTags(e.id)).filter(o=>o.name===E0).length>0&&t.push(e.id);this.connectOnStartupController?.clear(),this.connectOnStartupController=new pu.TimeoutController(this.startupReconnectTimeout);try{(0,ua.setMaxListeners)?.(1/0,this.connectOnStartupController.signal)}catch{}await Promise.all(t.map(async e=>{await this.openConnection(e,{signal:this.connectOnStartupController?.signal}).catch(n=>{Wt.error(n)})}))}).catch(t=>{Wt.error(t)}).finally(()=>{this.connectOnStartupController?.clear()})}async beforeStop(){this.connectOnStartupController?.abort(),this.components.upgrader.removeEventListener("connection",this.onConnect),this.components.upgrader.removeEventListener("connectionEnd",this.onDisconnect)}async stop(){this.latencyMonitor?.removeEventListener("data",this._onLatencyMeasure),this.latencyMonitor?.stop(),this.started=!1,await this._close(),Wt("stopped")}async _close(){let t=[];for(let e of this.connections.values())for(let n of e)t.push((async()=>{try{await n.close()}catch(i){Wt.error(i)}})());Wt("closing %d connections",t.length),await Promise.all(t),this.connections.clear()}onConnect(t){this._onConnect(t).catch(e=>{Wt.error(e)})}async _onConnect(t){let{detail:e}=t;if(!this.started){await e.close();return}let n=e.remotePeer,i=n.toString(),o=this.connections.get(i);o!=null?o.push(e):this.connections.set(i,[e]),n.publicKey!=null&&await this.components.peerStore.keyBook.set(n,n.publicKey);let s=this.getConnections().length,a=s-this.opts.maxConnections;await this._checkMaxLimit("maxConnections",s,a),this.dispatchEvent(new q("peer:connect",{detail:e}))}onDisconnect(t){let{detail:e}=t;if(!this.started)return;let n=e.remotePeer.toString(),i=this.connections.get(n);i!=null&&i.length>1?(i=i.filter(o=>o.id!==e.id),this.connections.set(n,i)):i!=null&&(this.connections.delete(n),this.dispatchEvent(new q("peer:disconnect",{detail:e})))}getConnections(t){if(t!=null)return this.connections.get(t.toString())??[];let e=[];for(let n of this.connections.values())e=e.concat(n);return e}getConnectionsMap(){return this.connections}async openConnection(t,e={}){let{peerId:n,multiaddr:i}=ca(t);if(n==null&&i==null)throw(0,la.default)(new TypeError("Can only open connections to PeerIds or Multiaddrs"),b.ERR_INVALID_PARAMETERS);if(n!=null){Wt("dial to",n);let s=this.getConnections(n);if(s.length>0)return Wt("had an existing connection to %p",n),s[0]}let o;if(e?.signal==null){o=new pu.TimeoutController(this.dialTimeout),e.signal=o.signal;try{(0,ua.setMaxListeners)?.(1/0,o.signal)}catch{}}try{let s=await this.components.dialer.dial(t,e),a=this.connections.get(s.remotePeer.toString());a==null&&(a=[],this.connections.set(s.remotePeer.toString(),a));let c=!1;for(let l of a)l.id===s.id&&(c=!0);return c||a.push(s),s}finally{o?.clear()}}async closeConnections(t){let e=this.connections.get(t.toString())??[];await Promise.all(e.map(async n=>await n.close()))}getAll(t){if(!Mn(t))throw(0,la.default)(new Error("peerId must be an instance of peer-id"),b.ERR_INVALID_PARAMETERS);let e=t.toString(),n=this.connections.get(e);return n!=null?n.filter(i=>i.stat.status===oa):[]}_onLatencyMeasure(t){let{detail:e}=t;this._checkMaxLimit("maxEventLoopDelay",e.avgMs,1).catch(n=>{Wt.error(n)})}async _checkMaxLimit(t,e,n=1){let i=this.opts[t];if(i==null){Wt.trace("limit %s was not set so it cannot be applied",t);return}Wt.trace("checking limit of %s. current value: %d of %d",t,e,i),e>i&&(Wt("%s: limit exceeded: %p, %d/%d, pruning %d connection(s)",this.components.peerId,t,e,i,n),await this._pruneConnections(n))}async _pruneConnections(t){let e=this.getConnections(),n=new _o;for(let s of e){let a=s.remotePeer;if(n.has(a))continue;let c=await this.components.peerStore.getTags(a);n.set(a,c.reduce((l,u)=>l+u.value,0))}let i=e.sort((s,a)=>{let c=n.get(s.remotePeer)??0,l=n.get(a.remotePeer)??0;if(c>l)return 1;if(c<l)return-1;let u=s.stat.timeline.open,f=a.stat.timeline.open;return u<f?1:u>f?-1:0}),o=[];for(let s of i)if(Wt("too many connections open - closing a connection to %p",s.remotePeer),o.push(s),o.length===t)break;await Promise.all(o.map(async s=>{try{await s.close()}catch(a){Wt.error(a)}this.onDisconnect(new q("connectionEnd",{detail:s}))}))}async acceptIncomingConnection(t){if(this.deny.some(i=>t.remoteAddr.toString().startsWith(i.toString())))return Wt("connection from %s refused - connection remote address was in deny list",t.remoteAddr),!1;if(this.allow.some(i=>t.remoteAddr.toString().startsWith(i.toString())))return this.incomingPendingConnections++,!0;if(this.incomingPendingConnections===this.opts.maxIncomingPendingConnections)return Wt("connection from %s refused - incomingPendingConnections exceeded by peer %s",t.remoteAddr),!1;if(t.remoteAddr.isThinWaistAddress()){let i=t.remoteAddr.nodeAddress().address;try{await this.inboundConnectionRateLimiter.consume(i,1)}catch{return Wt("connection from %s refused - inboundConnectionThreshold exceeded by host %s",i,t.remoteAddr),!1}}return this.getConnections().length<this.opts.maxConnections?(this.incomingPendingConnections++,!0):(Wt("connection from %s refused - maxConnections exceeded",t.remoteAddr),!1)}afterUpgradeInbound(){this.incomingPendingConnections--}};var mu=I(Gl(),1),on=N("libp2p:connection-manager:auto-dialler"),b2={enabled:!0,minConnections:0,autoDialInterval:1e4},ha=class{constructor(t,e){this.components=t,this.options=Ne.call({ignoreUndefined:!0},b2,e),this.running=!1,this._autoDial=this._autoDial.bind(this),on("options: %j",this.options)}isStarted(){return this.running}async start(){if(!this.options.enabled){on("not enabled");return}this.running=!0,this._autoDial().catch(t=>{on.error("could start autodial",t)}),on("started")}async stop(){if(!this.options.enabled){on("not enabled");return}this.running=!1,this.autoDialTimeout!=null&&this.autoDialTimeout.clear(),on("stopped")}async _autoDial(){this.autoDialTimeout!=null&&this.autoDialTimeout.clear();let t=this.options.minConnections;if(this.components.connectionManager.getConnections().length>=t){this.autoDialTimeout=(0,mu.default)(this._autoDial,this.options.autoDialInterval);return}let e=await this.components.peerStore.all();e=e.filter(n=>!(n.id.equals(this.components.peerId)||n.addresses.length===0)),e=e.sort(()=>Math.random()>.5?1:-1),e=e.sort((n,i)=>i.protocols.length>n.protocols.length||i.id.publicKey!=null&&n.id.publicKey==null?1:-1);for(let n=0;this.running&&n<e.length&&this.components.connectionManager.getConnections().length<t;n++){if(!this.running)return;let i=e[n];if(this.components.connectionManager.getConnections(i.id).length===0){on("connecting to a peerStore stored peer %p",i.id);try{await this.components.connectionManager.openConnection(i.id)}catch(o){on.error("could not connect to peerStore stored peer",o)}}}this.running&&(this.autoDialTimeout=(0,mu.default)(this._autoDial,this.options.autoDialInterval))}};var Im=I(W(),1);var _2=F("dns4"),S2=F("dns6"),A2=F("dnsaddr"),Hn=le(F("dns"),A2,_2,S2),da=le(F("ip4"),F("ip6")),Mi=le(G(da,F("tcp")),G(Hn,F("tcp"))),wp=G(da,F("udp")),R2=G(wp,F("utp")),I2=G(wp,F("quic")),Ro=le(G(Mi,F("ws")),G(Hn,F("ws"))),Io=le(G(Mi,F("wss")),G(Hn,F("wss")),G(Mi,F("tls"),F("ws")),G(Hn,F("tls"),F("ws"))),yu=le(G(Mi,F("http")),G(da,F("http")),G(Hn,F("http"))),gu=le(G(Mi,F("https")),G(da,F("https")),G(Hn,F("https"))),Ep=le(G(Ro,F("p2p-webrtc-star"),F("p2p")),G(Io,F("p2p-webrtc-star"),F("p2p")),G(Ro,F("p2p-webrtc-star")),G(Io,F("p2p-webrtc-star"))),eD=le(G(Ro,F("p2p-websocket-star"),F("p2p")),G(Io,F("p2p-websocket-star"),F("p2p")),G(Ro,F("p2p-websocket-star")),G(Io,F("p2p-websocket-star"))),xp=le(G(yu,F("p2p-webrtc-direct"),F("p2p")),G(gu,F("p2p-webrtc-direct"),F("p2p")),G(yu,F("p2p-webrtc-direct")),G(gu,F("p2p-webrtc-direct"))),To=le(Ro,Io,yu,gu,Ep,xp,Mi,R2,I2,Hn),rD=le(G(To,F("p2p-stardust"),F("p2p")),G(To,F("p2p-stardust"))),sn=le(G(To,F("p2p")),Ep,xp,F("p2p")),gp=le(G(sn,F("p2p-circuit"),sn),G(sn,F("p2p-circuit")),G(F("p2p-circuit"),sn),G(To,F("p2p-circuit")),G(F("p2p-circuit"),To),F("p2p-circuit")),vp=()=>le(G(gp,vp),gp),qn=vp(),nD=le(G(qn,sn,qn),G(sn,qn),G(qn,sn),qn,sn);function bp(r){function t(e){let n;try{n=j(e)}catch{return!1}let i=r(n.protoNames());return i===null?!1:i===!0||i===!1?i:i.length===0}return t}function G(...r){function t(e){if(e.length<r.length)return null;let n=e;return r.some(i=>(n=typeof i=="function"?i().partialMatch(e):i.partialMatch(e),Array.isArray(n)&&(e=n),n===null)),n}return{toString:function(){return"{ "+r.join(" ")+" }"},input:r,matches:bp(t),partialMatch:t}}function le(...r){function t(n){let i=null;return r.some(o=>{let s=typeof o=="function"?o().partialMatch(n):o.partialMatch(n);return s!=null?(i=s,!0):!1}),i}return{toString:function(){return"{ "+r.join(" ")+" }"},input:r,matches:bp(t),partialMatch:t}}function F(r){let t=r;function e(i){let o;try{o=j(i)}catch{return!1}let s=o.protoNames();return s.length===1&&s[0]===t}function n(i){return i.length===0?null:i[0]===t?i.slice(1):null}return{toString:function(){return t},matches:e,partialMatch:n}}var Du=I(bu(),1),lm=I(em(),1),Pu=I(Cu(),1),um=I(cm(),1),fm=I(zn(),1);function M2(){fm.default._configure(),Du.default._configure(lm.default),Pu.default._configure(um.default)}M2();var hm=["uint64","int64","sint64","fixed64","sfixed64"];function U2(r){for(let t of hm){if(r[t]==null)continue;let e=r[t];r[t]=function(){return BigInt(e.call(this).toString())}}return r}function Lu(r){return U2(new Du.default(r))}function F2(r){for(let t of hm){if(r[t]==null)continue;let e=r[t];r[t]=function(n){return e.call(this,n.toString())}}return r}function Bu(){return F2(Pu.default.create())}function bt(r,t){let e=Lu(r instanceof Uint8Array?r:r.subarray());return t.decode(e)}function _t(r,t){let e=Bu();return t.encode(r,e,{lengthDelimited:!1}),e.finish()}var Fi;(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"})(Fi||(Fi={}));function wa(r,t,e,n){return{name:r,type:t,encode:e,decode:n}}function ln(r){function t(i){if(r[i.toString()]==null)throw new Error("Invalid enum value");return r[i]}let e=function(o,s){let a=t(o);s.int32(a)},n=function(o){let s=o.int32();return t(s)};return wa("enum",Fi.VARINT,e,n)}function St(r,t){return wa("message",Fi.LENGTH_DELIMITED,r,t)}var $;(function(r){let t;(function(a){a.SUCCESS="SUCCESS",a.HOP_SRC_ADDR_TOO_LONG="HOP_SRC_ADDR_TOO_LONG",a.HOP_DST_ADDR_TOO_LONG="HOP_DST_ADDR_TOO_LONG",a.HOP_SRC_MULTIADDR_INVALID="HOP_SRC_MULTIADDR_INVALID",a.HOP_DST_MULTIADDR_INVALID="HOP_DST_MULTIADDR_INVALID",a.HOP_NO_CONN_TO_DST="HOP_NO_CONN_TO_DST",a.HOP_CANT_DIAL_DST="HOP_CANT_DIAL_DST",a.HOP_CANT_OPEN_DST_STREAM="HOP_CANT_OPEN_DST_STREAM",a.HOP_CANT_SPEAK_RELAY="HOP_CANT_SPEAK_RELAY",a.HOP_CANT_RELAY_TO_SELF="HOP_CANT_RELAY_TO_SELF",a.STOP_SRC_ADDR_TOO_LONG="STOP_SRC_ADDR_TOO_LONG",a.STOP_DST_ADDR_TOO_LONG="STOP_DST_ADDR_TOO_LONG",a.STOP_SRC_MULTIADDR_INVALID="STOP_SRC_MULTIADDR_INVALID",a.STOP_DST_MULTIADDR_INVALID="STOP_DST_MULTIADDR_INVALID",a.STOP_RELAY_REFUSED="STOP_RELAY_REFUSED",a.MALFORMED_MESSAGE="MALFORMED_MESSAGE"})(t=r.Status||(r.Status={}));let e;(function(a){a[a.SUCCESS=100]="SUCCESS",a[a.HOP_SRC_ADDR_TOO_LONG=220]="HOP_SRC_ADDR_TOO_LONG",a[a.HOP_DST_ADDR_TOO_LONG=221]="HOP_DST_ADDR_TOO_LONG",a[a.HOP_SRC_MULTIADDR_INVALID=250]="HOP_SRC_MULTIADDR_INVALID",a[a.HOP_DST_MULTIADDR_INVALID=251]="HOP_DST_MULTIADDR_INVALID",a[a.HOP_NO_CONN_TO_DST=260]="HOP_NO_CONN_TO_DST",a[a.HOP_CANT_DIAL_DST=261]="HOP_CANT_DIAL_DST",a[a.HOP_CANT_OPEN_DST_STREAM=262]="HOP_CANT_OPEN_DST_STREAM",a[a.HOP_CANT_SPEAK_RELAY=270]="HOP_CANT_SPEAK_RELAY",a[a.HOP_CANT_RELAY_TO_SELF=280]="HOP_CANT_RELAY_TO_SELF",a[a.STOP_SRC_ADDR_TOO_LONG=320]="STOP_SRC_ADDR_TOO_LONG",a[a.STOP_DST_ADDR_TOO_LONG=321]="STOP_DST_ADDR_TOO_LONG",a[a.STOP_SRC_MULTIADDR_INVALID=350]="STOP_SRC_MULTIADDR_INVALID",a[a.STOP_DST_MULTIADDR_INVALID=351]="STOP_DST_MULTIADDR_INVALID",a[a.STOP_RELAY_REFUSED=390]="STOP_RELAY_REFUSED",a[a.MALFORMED_MESSAGE=400]="MALFORMED_MESSAGE"})(e||(e={})),function(a){a.codec=()=>ln(e)}(t=r.Status||(r.Status={}));let n;(function(a){a.HOP="HOP",a.STOP="STOP",a.STATUS="STATUS",a.CAN_HOP="CAN_HOP"})(n=r.Type||(r.Type={}));let i;(function(a){a[a.HOP=1]="HOP",a[a.STOP=2]="STOP",a[a.STATUS=3]="STATUS",a[a.CAN_HOP=4]="CAN_HOP"})(i||(i={})),function(a){a.codec=()=>ln(i)}(n=r.Type||(r.Type={}));let o;(function(a){let c;a.codec=()=>(c==null&&(c=St((l,u,f={})=>{if(f.lengthDelimited!==!1&&u.fork(),(f.writeDefaults===!0||l.id!=null&&l.id.byteLength>0)&&(u.uint32(10),u.bytes(l.id)),l.addrs!=null)for(let d of l.addrs)u.uint32(18),u.bytes(d);f.lengthDelimited!==!1&&u.ldelim()},(l,u)=>{let f={id:new Uint8Array(0),addrs:[]},d=u==null?l.len:l.pos+u;for(;l.pos<d;){let h=l.uint32();switch(h>>>3){case 1:f.id=l.bytes();break;case 2:f.addrs.push(l.bytes());break;default:l.skipType(h&7);break}}return f})),c),a.encode=l=>_t(l,a.codec()),a.decode=l=>bt(l,a.codec())})(o=r.Peer||(r.Peer={}));let s;r.codec=()=>(s==null&&(s=St((a,c,l={})=>{l.lengthDelimited!==!1&&c.fork(),a.type!=null&&(c.uint32(8),r.Type.codec().encode(a.type,c)),a.srcPeer!=null&&(c.uint32(18),r.Peer.codec().encode(a.srcPeer,c,{writeDefaults:!1})),a.dstPeer!=null&&(c.uint32(26),r.Peer.codec().encode(a.dstPeer,c,{writeDefaults:!1})),a.code!=null&&(c.uint32(32),r.Status.codec().encode(a.code,c)),l.lengthDelimited!==!1&&c.ldelim()},(a,c)=>{let l={},u=c==null?a.len:a.pos+c;for(;a.pos<u;){let f=a.uint32();switch(f>>>3){case 1:l.type=r.Type.codec().decode(a);break;case 2:l.srcPeer=r.Peer.codec().decode(a,a.uint32());break;case 3:l.dstPeer=r.Peer.codec().decode(a,a.uint32());break;case 4:l.code=r.Status.codec().decode(a);break;default:a.skipType(f&7);break}}return l})),s),r.encode=a=>_t(a,r.codec()),r.decode=a=>bt(a,r.codec())})($||($={}));var Po=class extends Error{constructor(t,e){super(t??"The operation was aborted"),this.type="aborted",this.code=e??"ABORT_ERR"}};function dm(r){if(r!=null){if(typeof r[Symbol.iterator]=="function")return r[Symbol.iterator]();if(typeof r[Symbol.asyncIterator]=="function")return r[Symbol.asyncIterator]();if(typeof r.next=="function")return r}throw new Error("argument is not an iterator or iterable")}function Yn(r,t,e){let n=e??{},i=dm(r);async function*o(){let s,a=()=>{s?.()};for(t.addEventListener("abort",a);;){let c;try{if(t.aborted){let{abortMessage:u,abortCode:f}=n;throw new Po(u,f)}let l=new Promise((u,f)=>{s=()=>{let{abortMessage:d,abortCode:h}=n;f(new Po(d,h))}});c=await Promise.race([l,i.next()]),s=null}catch(l){t.removeEventListener("abort",a);let u=l.type==="aborted"&&t.aborted;if(u&&n.onAbort!=null&&await n.onAbort(r),typeof i.return=="function")try{let f=i.return();f instanceof Promise&&f.catch(d=>{n.onReturnError!=null&&n.onReturnError(d)})}catch(f){n.onReturnError!=null&&n.onReturnError(f)}if(u&&n.returnOnAbort===!0)return;throw l}if(c.done===!0)break;yield c.value}t.removeEventListener("abort",a)}return o()}function K2(r,t,e){return n=>r(Yn(n,t,e))}function Re(r,t,e){return{sink:K2(r.sink,t,{...e,onAbort:void 0}),source:Yn(r.source,t,e)}}var V2=N("libp2p:stream:converter");function Nu(r,t={}){let{stream:e,remoteAddr:n}=r,{sink:i,source:o}=e,s=async function*(){for await(let l of o)yield*l}(),a={async sink(l){t.signal!=null&&(l=Yn(l,t.signal));try{await i(l),await c()}catch(u){u.type!=="aborted"&&V2(u)}},source:t.signal!=null?Yn(s,t.signal):s,remoteAddr:n,timeline:{open:Date.now(),close:void 0},async close(){await i(async function*(){yield new Uint8Array(0)}()),await c()}};async function c(){return a.timeline.close==null&&(a.timeline.close=Date.now()),await Promise.resolve()}return a}var hr="/libp2p/circuit/relay/0.1.0";function pm(r){let t=new Map;async function e(o){let s=o.toString().split("/p2p-circuit").find(d=>d!==""),a=j(s),c=a.getPeerId();if(c==null)throw new Error("Could not determine relay peer from multiaddr");let l=tt(c);await r.peerStore.addressBook.add(l,[a]);let u=await r.connectionManager.openConnection(l),f=u.remoteAddr.encapsulate("/p2p-circuit");t.set(u.remotePeer.toString(),f),i.dispatchEvent(new q("listening"))}function n(){let o=[];for(let s of t.values())o.push(s);return o}let i=Object.assign(new Pt,{close:async()=>await Promise.resolve(),listen:e,getAddrs:n});return r.connectionManager.addEventListener("peer:disconnect",o=>{let{detail:s}=o;t.delete(s.remotePeer.toString())&&i.dispatchEvent(new q("close"))}),i}var Uu=I(W(),1);function mm(r,t){r.write({type:$.Type.STATUS,code:t})}function Ea(r,t){try{r.dstPeer?.addrs!=null&&r.dstPeer.addrs.forEach(e=>j(e))}catch(e){throw mm(t,r.type===$.Type.HOP?$.Status.HOP_DST_MULTIADDR_INVALID:$.Status.STOP_DST_MULTIADDR_INVALID),e}try{r.srcPeer?.addrs!=null&&r.srcPeer.addrs.forEach(e=>j(e))}catch(e){throw mm(t,r.type===$.Type.HOP?$.Status.HOP_SRC_MULTIADDR_INVALID:$.Status.STOP_SRC_MULTIADDR_INVALID),e}}var gm=Symbol.for("@achingbrain/uint8arraylist");function ym(r,t){if(t==null||t<0)throw new RangeError("index is out of bounds");let e=0;for(let n of r){let i=e+n.byteLength;if(t<i)return{buf:n,index:t-e};e=i}throw new RangeError("index is out of bounds")}function xa(r){return Boolean(r?.[gm])}var Ft=class{constructor(...t){Object.defineProperty(this,gm,{value:!0}),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(xa(n))e+=n.byteLength,this.bufs.push(...n.bufs);else throw new Error("Could not append value, must be an Uint8Array or a Uint8ArrayList");this.length+=e}prepend(...t){this.prependAll(t)}prependAll(t){let e=0;for(let n of t.reverse())if(n instanceof Uint8Array)e+=n.byteLength,this.bufs.unshift(n);else if(xa(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=ym(this.bufs,t);return e.buf[e.index]}set(t,e){let n=ym(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(xa(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:i}=this._subList(t,e);return qt(n,i)}subarray(t,e){let{bufs:n,length:i}=this._subList(t,e);return n.length===1?n[0]:qt(n,i)}sublist(t,e){let{bufs:n,length:i}=this._subList(t,e),o=new Ft;return o.length=i,o.bufs=n,o}_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=[],i=0;for(let o=0;o<this.bufs.length;o++){let s=this.bufs[o],a=i,c=a+s.byteLength;if(i=c,t>=c)continue;let l=t>=a&&t<c,u=e>a&&e<=c;if(l&&u){if(t===a&&e===c){n.push(s);break}let f=t-a;n.push(s.subarray(f,f+(e-t)));break}if(l){if(t===0){n.push(s);continue}n.push(s.subarray(t-a));continue}if(u){if(e===c){n.push(s);break}n.push(s.subarray(0,e-a));break}n.push(s)}return{bufs:n,length:e-t}}indexOf(t,e=0){if(!xa(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 i=n.byteLength;if(i===0)throw new TypeError("search must be at least 1 byte long");let o=256,s=new Int32Array(o);for(let f=0;f<o;f++)s[f]=-1;for(let f=0;f<i;f++)s[n[f]]=f;let a=s,c=this.byteLength-n.byteLength,l=n.byteLength-1,u;for(let f=e;f<=c;f+=u){u=0;for(let d=l;d>=0;d--){let h=this.get(f+d);if(n[d]!==h){u=Math.max(1,d-a[h]);break}}if(u===0)return f}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=Pr(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 i=Dr(2);new DataView(i.buffer,i.byteOffset,i.byteLength).setInt16(0,e,n),this.write(i,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 i=Dr(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setInt32(0,e,n),this.write(i,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 i=Dr(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setBigInt64(0,e,n),this.write(i,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=Pr(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 i=Dr(2);new DataView(i.buffer,i.byteOffset,i.byteLength).setUint16(0,e,n),this.write(i,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 i=Dr(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setUint32(0,e,n),this.write(i,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 i=Dr(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setBigUint64(0,e,n),this.write(i,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 i=Dr(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setFloat32(0,e,n),this.write(i,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 i=Dr(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setFloat64(0,e,n),this.write(i,t)}equals(t){if(t==null||!(t instanceof Ft)||t.bufs.length!==this.bufs.length)return!1;for(let e=0;e<this.bufs.length;e++)if(!xt(this.bufs[e],t.bufs[e]))return!1;return!0}static fromUint8Arrays(t,e){let n=new Ft;return n.bufs=t,e==null&&(e=t.reduce((i,o)=>i+o.byteLength,0)),n.length=e,n}};function va(r){return r instanceof Uint8Array?{get(t){return r[t]},set(t,e){r[t]=e}}:{get(t){return r.get(t)},set(t,e){r.set(t,e)}}}var wm=4294967296,Ie=class{constructor(t=0,e=0){this.hi=t,this.lo=e}toBigInt(t){if(t===!0)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)}toNumber(t){return Number(this.toBigInt(t))}zzDecode(){let t=-(this.lo&1),e=((this.lo>>>1|this.hi<<31)^t)>>>0,n=(this.hi>>>1^t)>>>0;return new Ie(n,e)}zzEncode(){let t=this.hi>>31,e=((this.hi<<1|this.lo>>>31)^t)>>>0,n=(this.lo<<1^t)>>>0;return new Ie(e,n)}toBytes(t,e=0){let n=va(t);for(;this.hi>0;)n.set(e++,this.lo&127|128),this.lo=(this.lo>>>7|this.hi<<25)>>>0,this.hi>>>=7;for(;this.lo>127;)n.set(e++,this.lo&127|128),this.lo=this.lo>>>7;n.set(e++,this.lo)}static fromBigInt(t){if(t===0n)return new Ie;let e=t<0;e&&(t=-t);let n=Number(t>>32n)|0,i=Number(t-(BigInt(n)<<32n))|0;return e&&(n=~n>>>0,i=~i>>>0,++i>wm&&(i=0,++n>wm&&(n=0))),new Ie(n,i)}static fromNumber(t){if(t===0)return new Ie;let e=t<0;e&&(t=-t);let n=t>>>0,i=(t-n)/4294967296>>>0;return e&&(i=~i>>>0,n=~n>>>0,++n>4294967295&&(n=0,++i>4294967295&&(i=0))),new Ie(i,n)}static fromBytes(t,e=0){let n=va(t),i=new Ie,o=0;if(t.length-e>4){for(;o<4;++o)if(i.lo=(i.lo|(n.get(e)&127)<<o*7)>>>0,n.get(e++)<128)return i;if(i.lo=(i.lo|(n.get(e)&127)<<28)>>>0,i.hi=(i.hi|(n.get(e)&127)>>4)>>>0,n.get(e++)<128)return i;o=0}else for(;o<4;++o){if(e>=t.length)throw RangeError(`index out of range: ${e} > ${t.length}`);if(i.lo=(i.lo|(n.get(e)&127)<<o*7)>>>0,n.get(e++)<128)return i}if(t.length-e>4){for(;o<5;++o)if(i.hi=(i.hi|(n.get(e)&127)<<o*7+3)>>>0,n.get(e++)<128)return i}else if(e<t.byteLength)for(;o<5;++o){if(e>=t.length)throw RangeError(`index out of range: ${e} > ${t.length}`);if(i.hi=(i.hi|(n.get(e)&127)<<o*7+3)>>>0,n.get(e++)<128)return i}throw RangeError("invalid varint encoding")}};var q2=Math.pow(2,7),H2=Math.pow(2,14),$2=Math.pow(2,21),z2=Math.pow(2,28),G2=Math.pow(2,35),Y2=Math.pow(2,42),W2=Math.pow(2,49),Q2=Math.pow(2,56),X2=Math.pow(2,63),Xe={encodingLength(r){return r<q2?1:r<H2?2:r<$2?3:r<z2?4:r<G2?5:r<Y2?6:r<W2?7:r<Q2?8:r<X2?9:10},encode(r,t,e=0){if(Number.MAX_SAFE_INTEGER!=null&&r>Number.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return t==null&&(t=Pr(Xe.encodingLength(r))),Ie.fromNumber(r).toBytes(t,e),t},decode(r,t=0){return Ie.fromBytes(r,t).toNumber(!0)}};function Em(r){return globalThis?.Buffer?.allocUnsafe!=null?globalThis.Buffer.allocUnsafe(r):new Uint8Array(r)}var ba=r=>{let t=Xe.encodingLength(r),e=Em(t);return Xe.encode(r,e),ba.bytes=t,e};ba.bytes=0;function Me(r){r=r??{};let t=r.lengthEncoder??ba;return async function*(n){for await(let i of n){let o=t(i.byteLength);o instanceof Uint8Array?yield o:yield*o,i instanceof Uint8Array?yield i:yield*i}}}Me.single=(r,t)=>{t=t??{};let e=t.lengthEncoder??ba;return new Ft(e(r.byteLength),r)};var Lo=I(W(),1),Z2=8,J2=1024*1024*4,Wn;(function(r){r[r.LENGTH=0]="LENGTH",r[r.DATA=1]="DATA"})(Wn||(Wn={}));var Ou=r=>{let t=Xe.decode(r);return Ou.bytes=Xe.encodingLength(t),t};Ou.bytes=0;function Te(r){return async function*(e){let n=new Ft,i=Wn.LENGTH,o=-1,s=r?.lengthDecoder??Ou,a=r?.maxLengthLength??Z2,c=r?.maxDataLength??J2;for await(let l of e)for(n.append(l);n.byteLength>0;){if(i===Wn.LENGTH)try{if(o=s(n),o<0)throw(0,Lo.default)(new Error("invalid message length"),"ERR_INVALID_MSG_LENGTH");if(o>c)throw(0,Lo.default)(new Error("message length too long"),"ERR_MSG_DATA_TOO_LONG");let u=s.bytes;n.consume(u),r?.onLength!=null&&r.onLength(o),i=Wn.DATA}catch(u){if(u instanceof RangeError){if(n.byteLength>a)throw(0,Lo.default)(new Error("message length length too long"),"ERR_MSG_LENGTH_TOO_LONG");break}throw u}if(i===Wn.DATA){if(n.byteLength<o)break;let u=n.sublist(0,o);n.consume(o),r?.onData!=null&&r.onData(u),yield u,i=Wn.LENGTH}}if(n.byteLength>0)throw(0,Lo.default)(new Error("unexpected end of input"),"ERR_UNEXPECTED_EOF")}}Te.fromReader=(r,t)=>{let e=1,n=async function*(){for(;;)try{let{done:o,value:s}=await r.next(e);if(o===!0)return;s!=null&&(yield s)}catch(o){if(o.code==="ERR_UNDER_READ")return{done:!0,value:null};throw o}finally{e=1}}();return Te({...t??{},onLength:o=>{e=o}})(n)};function ku(r){let t=async function*(){let e=yield,n=new Ft;for await(let i of r){if(e==null){n.append(i),e=yield n,n=new Ft;continue}for(n.append(i);n.length>=e;){let o=n.sublist(0,e);if(n.consume(e),e=yield o,e==null){n.length>0&&(e=yield n,n=new Ft);break}}}if(e!=null)throw Object.assign(new Error(`stream ended before ${e} bytes became available`),{code:"ERR_UNDER_READ",buffer:n})}();return t.next(),t}function Mu(){let r={};return r.promise=new Promise((t,e)=>{r.resolve=t,r.reject=e}),r}function Ki(r){let t=kn(),e=ku(r.source),n=Mu(),i,o=r.sink(async function*(){yield*t,yield*await n.promise}());return o.catch(a=>{i=a}),{reader:e,writer:t,stream:{sink:async a=>i!=null?await Promise.reject(i):(n.resolve(a),await o),source:e},rest:()=>t.end(),write:t.push,read:async()=>{let a=await e.next();if(a.value!=null)return a.value}}}var Bo=N("libp2p:circuit:stream-handler"),Fr=class{constructor(t){let{stream:e,maxLength:n=4096}=t;this.stream=e,this.shake=Ki(this.stream),this.decoder=Te.fromReader(this.shake.reader,{maxDataLength:n})}async read(){let t=await this.decoder.next();if(t.value!=null){let e=$.decode(t.value);return Bo("read message type",e.type),e}Bo("read received no value, closing stream"),this.close()}write(t){Bo("write message type %s",t.type),this.shake.write(Me.single($.encode(t)))}rest(){return this.shake.rest(),this.shake.stream}end(t){this.write(t),this.close()}close(){Bo("closing the stream"),this.rest().sink([]).catch(t=>{Bo.error(t)})}};var No=N("libp2p:circuit:stop");function xm(r){let{connection:t,request:e,streamHandler:n}=r;try{Ea(e,n)}catch(i){No.error("invalid stop request via peer %p %o",t.remotePeer,i);return}return No("stop request is valid"),n.write({type:$.Type.STATUS,code:$.Status.SUCCESS}),n.rest()}async function vm(r){let{connection:t,request:e,signal:n}=r,i=await t.newStream(hr,{signal:n});No("starting stop request to %p",t.remotePeer);let o=new Fr({stream:i});o.write(e);let s=await o.read();if(s==null){o.close();return}if(s.code===$.Status.SUCCESS)return No("stop request to %p was successful",t.remotePeer),o.rest();No("stop request failed with code %d",s.code),o.close()}var Ue=N("libp2p:circuit:hop");async function bm(r){let{connection:t,request:e,streamHandler:n,circuit:i,connectionManager:o}=r;if(!i.hopEnabled())return Ue("HOP request received but we are not acting as a relay"),n.end({type:$.Type.STATUS,code:$.Status.HOP_CANT_SPEAK_RELAY});try{Ea(e,n)}catch(f){Ue.error("invalid hop request via peer %p %o",t.remotePeer,f);return}if(e.dstPeer==null){Ue("HOP request received but we do not receive a dstPeer");return}let s=rn(e.dstPeer.id),a=o.getConnections(s);if(a.length===0&&!i.hopActive())return Ue("HOP request received but we are not connected to the destination peer"),n.end({type:$.Type.STATUS,code:$.Status.HOP_NO_CONN_TO_DST});if(a.length===0)return Ue("did not have connection to remote peer"),n.end({type:$.Type.STATUS,code:$.Status.HOP_NO_CONN_TO_DST});let c={type:$.Type.STOP,dstPeer:e.dstPeer,srcPeer:e.srcPeer},l;try{Ue("performing STOP request");let f=await vm({connection:a[0],request:c});if(f==null)throw new Error("Could not stop");l=f}catch(f){Ue.error(f);return}Ue("hop request from %p is valid",t.remotePeer),n.write({type:$.Type.STATUS,code:$.Status.SUCCESS});let u=n.rest();return Ue("creating related connections"),await Lt(u,l,u)}async function _m(r){let{connection:t,request:e,signal:n}=r,i=await t.newStream(hr,{signal:n}),o=new Fr({stream:i});o.write(e);let s=await o.read();if(s==null)throw(0,Uu.default)(new Error("HOP request had no response"),b.ERR_HOP_REQUEST_FAILED);if(s.code===$.Status.SUCCESS)return Ue("hop request was successful"),o.rest();throw Ue("hop request failed with code %d, closing stream",s.code),o.close(),(0,Uu.default)(new Error(`HOP request failed with code "${s.code??"unknown"}"`),b.ERR_HOP_REQUEST_FAILED)}async function Sm(r){let{connection:t,signal:e}=r,n=await t.newStream(hr,{signal:e}),i=new Fr({stream:n});i.write({type:$.Type.CAN_HOP});let o=await i.read();return await i.close(),!(o==null||o.code!==$.Status.SUCCESS)}function Am(r){let{connection:t,streamHandler:e,circuit:n}=r,i=n.hopEnabled();Ue("can hop (%s) request from %p",i,t.remotePeer),e.end({type:$.Type.STATUS,code:i?$.Status.SUCCESS:$.Status.HOP_CANT_SPEAK_RELAY})}var Rm=Symbol.for("@libp2p/transport");var un;(function(r){r[r.FATAL_ALL=0]="FATAL_ALL",r[r.NO_FATAL=1]="NO_FATAL"})(un||(un={}));var Tm=I(Nr(),1),Cm=I(lr(),1),Fe=N("libp2p:circuit"),Sa=class{constructor(t,e){this._init=e,this.components=t,this._started=!1}isStarted(){return this._started}async start(){this._started||(this._started=!0,await this.components.registrar.handle(hr,t=>{this._onProtocol(t).catch(e=>{Fe.error(e)})},{...this._init}).catch(t=>{Fe.error(t)}))}async stop(){await this.components.registrar.unhandle(hr)}hopEnabled(){return!0}hopActive(){return!0}get[Rm](){return!0}get[Symbol.toStringTag](){return"libp2p/circuit-relay-v1"}async _onProtocol(t){let{connection:e,stream:n}=t,i=new Tm.TimeoutController(this._init.hop.timeout);try{(0,Cm.setMaxListeners)?.(1/0,i.signal)}catch{}try{let o=Re(n,i.signal),s=new Fr({stream:{...n,...o}}),a=await s.read();if(a==null){Fe("request was invalid, could not read from stream"),s.write({type:$.Type.STATUS,code:$.Status.MALFORMED_MESSAGE}),s.close();return}let c;switch(a.type){case $.Type.CAN_HOP:{Fe("received CAN_HOP request from %p",e.remotePeer),await Am({circuit:this,connection:e,streamHandler:s});break}case $.Type.HOP:{Fe("received HOP request from %p",e.remotePeer),await bm({connection:e,request:a,streamHandler:s,circuit:this,connectionManager:this.components.connectionManager});break}case $.Type.STOP:{Fe("received STOP request from %p",e.remotePeer),c=await xm({connection:e,request:a,streamHandler:s});break}default:{Fe("Request of type %s not supported",a.type),s.write({type:$.Type.STATUS,code:$.Status.MALFORMED_MESSAGE}),s.close();return}}if(c!=null){let l=e.remoteAddr.encapsulate("/p2p-circuit").encapsulate(j(a.dstPeer?.addrs[0])),u=j(a.srcPeer?.addrs[0]),f=Nu({stream:c,remoteAddr:l,localAddr:u}),d=a.type===$.Type.HOP?"relay":"inbound";Fe("new %s connection %s",d,f.remoteAddr);let h=await this.components.upgrader.upgradeInbound(f);Fe("%s connection %s upgraded",d,f.remoteAddr),this.handler!=null&&this.handler(h)}}finally{i.clear()}}async dial(t,e={}){let n=t.toString().split("/p2p-circuit"),i=j(n[0]),o=j(n[n.length-1]),s=i.getPeerId(),a=o.getPeerId();if(s==null||a==null){let h="Circuit relay dial failed as addresses did not have peer id";throw Fe.error(h),(0,Im.default)(new Error(h),b.ERR_RELAYED_DIAL)}let c=tt(s),l=tt(a),u=!1,d=this.components.connectionManager.getConnections(c)[0];d==null&&(await this.components.peerStore.addressBook.add(c,[i]),d=await this.components.connectionManager.openConnection(c,e),u=!0);try{let h=await _m({...e,connection:d,request:{type:$.Type.HOP,srcPeer:{id:this.components.peerId.toBytes(),addrs:this.components.addressManager.getAddresses().map(y=>y.bytes)},dstPeer:{id:l.toBytes(),addrs:[j(o).bytes]}}}),p=i.encapsulate(`/p2p-circuit/p2p/${this.components.peerId.toString()}`),m=Nu({stream:h,remoteAddr:t,localAddr:p});return Fe("new outbound connection %s",m.remoteAddr),await this.components.upgrader.upgradeOutbound(m)}catch(h){throw Fe.error("Circuit relay dial failed",h),u&&await d.close(),h}}createListener(t){return this.handler=t.handler,pm({connectionManager:this.components.connectionManager,peerStore:this.components.peerStore})}filter(t){return t=Array.isArray(t)?t:[t],t.filter(e=>qn.matches(e))}};var La=I(Wl(),1);async function Aa(r){let t=new TextEncoder().encode(r),e=await te.digest(t);return pt.createV0(e)}var Fu="hop_relay",Ku="true",Ra="/libp2p/relay";async function*Vu(r,t){yield*(await Lr(r)).sort(t)}var km=I(Dm(),1);var Pm="[a-fA-F\\d:]",fn=r=>r&&r.includeBoundaries?`(?:(?<=\\s|^)(?=${Pm})|(?<=${Pm})(?=\\s|$))`:"",Ze="(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}",Qt="[a-fA-F\\d]{1,4}",Ia=`
38
38
  (?:
39
39
  (?:${Qt}:){7}(?:${Qt}|:)| // 1:2:3:4:5:6:7:: 1:2:3:4:5:6:7:8
40
40
  (?:${Qt}:){6}(?:${Ze}|:${Qt}|:)| // 1:2:3:4:5:6:: 1:2:3:4:5:6::8 1:2:3:4:5:6::8 1:2:3:4:5:6::1.2.3.4
@@ -45,8 +45,8 @@
45
45
  (?:${Qt}:){1}(?:(?::${Qt}){0,4}:${Ze}|(?::${Qt}){1,6}|:)| // 1:: 1::3:4:5:6:7:8 1::8 1::3:4:5:6:7:1.2.3.4
46
46
  (?::(?:(?::${Qt}){0,5}:${Ze}|(?::${Qt}){1,7}|:)) // ::2:3:4:5:6:7:8 ::2:3:4:5:6:7:8 ::8 ::1.2.3.4
47
47
  )(?:%[0-9a-zA-Z]{1,})? // %eth0 %1
48
- `.replace(/\s*\/\/.*$/gm,"").replace(/\n/g,"").trim(),ob=new RegExp(`(?:^${Ze}$)|(?:^${Ca}$)`),sb=new RegExp(`^${Ze}$`),ab=new RegExp(`^${Ca}$`),$u=r=>r&&r.exact?ob:new RegExp(`(?:${fn(r)}${Ze}${fn(r)})|(?:${fn(r)}${Ca}${fn(r)})`,"g");$u.v4=r=>r&&r.exact?sb:new RegExp(`${fn(r)}${Ze}${fn(r)}`,"g");$u.v6=r=>r&&r.exact?ab:new RegExp(`${fn(r)}${Ca}${fn(r)}`,"g");var Mm=$u;var qm=I(Fm(),1),{isValid:cb,parse:lb}=qm.default,ub=["0.0.0.0/8","10.0.0.0/8","100.64.0.0/10","127.0.0.0/8","169.254.0.0/16","172.16.0.0/12","192.0.0.0/24","192.0.0.0/29","192.0.0.8/32","192.0.0.9/32","192.0.0.10/32","192.0.0.170/32","192.0.0.171/32","192.0.2.0/24","192.31.196.0/24","192.52.193.0/24","192.88.99.0/24","192.168.0.0/16","192.175.48.0/24","198.18.0.0/15","198.51.100.0/24","203.0.113.0/24","240.0.0.0/4","255.255.255.255/32"],fb=ub.map(r=>new Vm.Netmask(r));function hb(r){for(let t of fb)if(t.contains(r))return!0;return!1}function Km(r){return/^::$/.test(r)||/^::1$/.test(r)||/^::f{4}:([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/.test(r)||/^::f{4}:0.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/.test(r)||/^64:ff9b::([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/.test(r)||/^100::([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(r)||/^2001::([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(r)||/^2001:2[0-9a-fA-F]:([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(r)||/^2001:db8:([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(r)||/^2002:([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(r)||/^f[c-d]([0-9a-fA-F]{2,2}):/i.test(r)||/^fe[8-9a-bA-B][0-9a-fA-F]:/i.test(r)||/^ff([0-9a-fA-F]{2,2}):/i.test(r)}var Hm=r=>{if(cb(r)){let t=lb(r);if(t.kind()==="ipv4")return hb(t.toNormalizedString());if(t.kind()==="ipv6")return Km(r)}else if(xi(r)&&Mm.v6().test(r))return Km(r)};var Pa=Hm;function zu(r){let{address:t}=r.nodeAddress();return Boolean(Pa(t))}function Ki(r,t){let e=zu(r.multiaddr),n=zu(t.multiaddr);return e&&!n?1:!e&&n||r.isCertified&&!t.isCertified?-1:!r.isCertified&&t.isCertified?1:0}var ko=N("libp2p:auto-relay"),pb=()=>{},La=class{constructor(t,e){this.components=t,this.addressSorter=e.addressSorter??Ki,this.maxListeners=e.maxListeners??1,this.listenRelays=new Set,this.onError=e.onError??pb,this._onProtocolChange=this._onProtocolChange.bind(this),this._onPeerDisconnected=this._onPeerDisconnected.bind(this),this.components.peerStore.addEventListener("change:protocols",n=>{this._onProtocolChange(n).catch(i=>{ko.error(i)})}),this.components.connectionManager.addEventListener("peer:disconnect",this._onPeerDisconnected)}async _onProtocolChange(t){let{peerId:e,protocols:n}=t.detail,i=e.toString();if(n.find(s=>s===hr)==null){this.listenRelays.has(i)&&await this._removeListenRelay(i);return}if(!this.listenRelays.has(i))try{let s=this.components.connectionManager.getConnections(e);if(s.length===0)return;let a=s[0];if(a.remoteAddr.protoCodes().includes(290)){ko(`relayed connection to ${i} will not be used to hop on`);return}await Cm({connection:a})&&(await this.components.peerStore.metadataBook.setValue(e,Vu,U(qu)),await this._addListenRelay(a,i))}catch(s){this.onError(s)}}_onPeerDisconnected(t){let i=t.detail.remotePeer.toString();this.listenRelays.has(i)&&this._removeListenRelay(i).catch(o=>{ko.error(o)})}async _addListenRelay(t,e){try{if(this.listenRelays.size>=this.maxListeners)return;let n=await Lt(await this.components.peerStore.addressBook.get(t.remotePeer),o=>Hu(o,this.addressSorter),async o=>await Lr(o));(await Promise.all(n.map(async o=>{try{let s=o.multiaddr;return s.getPeerId()==null&&(s=s.encapsulate(`/p2p/${t.remotePeer.toString()}`)),s=s.encapsulate("/p2p-circuit"),await this.components.transportManager.listen([s]),!0}catch(s){ko.error("error listening on circuit address",s),this.onError(s)}return!1}))).includes(!0)&&this.listenRelays.add(e)}catch(n){this.onError(n),this.listenRelays.delete(e)}}async _removeListenRelay(t){this.listenRelays.delete(t)&&await this._listenOnAvailableHopRelays([t])}async _listenOnAvailableHopRelays(t=[]){if(this.listenRelays.size>=this.maxListeners)return;let e=[],n=await this.components.peerStore.all();for(let{id:i,metadata:o}of n){let s=i.toString();if(this.listenRelays.has(s)||t.includes(s))continue;let a=o.get(Vu);if(a==null||H(a)!==qu)continue;let c=this.components.connectionManager.getConnections(i);if(c.length===0){e.push(i);continue}if(await this._addListenRelay(c[0],s),this.listenRelays.size>=this.maxListeners)return}for(let i of e)if(await this._tryToListenOnRelay(i),this.listenRelays.size>=this.maxListeners)return;try{let i=await Ia(Ta);for await(let o of this.components.contentRouting.findProviders(i)){if(o.multiaddrs.length===0)continue;let s=o.id;if(!s.equals(this.components.peerId)&&(await this.components.peerStore.addressBook.add(s,o.multiaddrs),await this._tryToListenOnRelay(s),this.listenRelays.size>=this.maxListeners))return}}catch(i){this.onError(i)}}async _tryToListenOnRelay(t){try{let e=await this.components.connectionManager.openConnection(t);await this._addListenRelay(e,t.toString())}catch(e){ko.error("Could not use %p as relay",t,e),this.onError(e,`could not connect and listen on known hop relay ${t.toString()}`)}}};var $m=N("libp2p:relay"),Ba=class{constructor(t,e){this.components=t,this.autoRelay=e.autoRelay?.enabled!==!1?new La(t,{addressSorter:e.addressSorter,...e.autoRelay}):void 0,this.started=!1,this.init=e,this._advertiseService=this._advertiseService.bind(this)}isStarted(){return this.started}async start(){this.init.hop.enabled!==!1&&this.init.advertise.enabled!==!1&&(this.timeout=(0,Na.setDelayedInterval)(this._advertiseService,this.init.advertise.ttl,this.init.advertise.bootDelay)),this.started=!0}async stop(){this.timeout!=null&&(0,Na.clearDelayedInterval)(this.timeout),this.started=!1}async _advertiseService(){try{let t=await Ia(Ta);await this.components.contentRouting.provide(t)}catch(t){t.code===b.ERR_NO_ROUTERS_AVAILABLE?($m.error("a content router, such as a DHT, must be provided in order to advertise the relay service",t),await this.stop()):$m.error(t)}}};var vw=I(jm(),1);var ft=I(W(),1);var nt;(function(r){r.ERR_INVALID_PARAMETERS="ERR_INVALID_PARAMETERS",r.ERR_INVALID_KEY_NAME="ERR_INVALID_KEY_NAME",r.ERR_INVALID_KEY_TYPE="ERR_INVALID_KEY_TYPE",r.ERR_KEY_ALREADY_EXISTS="ERR_KEY_ALREADY_EXISTS",r.ERR_INVALID_KEY_SIZE="ERR_INVALID_KEY_SIZE",r.ERR_KEY_NOT_FOUND="ERR_KEY_NOT_FOUND",r.ERR_OLD_KEY_NAME_INVALID="ERR_OLD_KEY_NAME_INVALID",r.ERR_NEW_KEY_NAME_INVALID="ERR_NEW_KEY_NAME_INVALID",r.ERR_PASSWORD_REQUIRED="ERR_PASSWORD_REQUIRED",r.ERR_PEM_REQUIRED="ERR_PEM_REQUIRED",r.ERR_CANNOT_READ_KEY="ERR_CANNOT_READ_KEY",r.ERR_MISSING_PRIVATE_KEY="ERR_MISSING_PRIVATE_KEY",r.ERR_INVALID_OLD_PASS_TYPE="ERR_INVALID_OLD_PASS_TYPE",r.ERR_INVALID_NEW_PASS_TYPE="ERR_INVALID_NEW_PASS_TYPE",r.ERR_INVALID_PASS_LENGTH="ERR_INVALID_PASS_LENGTH"})(nt||(nt={}));var Bt;(function(r){r.RSA="RSA",r.Ed25519="Ed25519",r.Secp256k1="Secp256k1"})(Bt||(Bt={}));var Gu;(function(r){r[r.RSA=0]="RSA",r[r.Ed25519=1]="Ed25519",r[r.Secp256k1=2]="Secp256k1"})(Gu||(Gu={}));(function(r){r.codec=()=>ln(Gu)})(Bt||(Bt={}));var dr;(function(r){let t;r.codec=()=>(t==null&&(t=St((e,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),e.Type!=null&&(n.uint32(8),Bt.codec().encode(e.Type,n)),e.Data!=null&&(n.uint32(18),n.bytes(e.Data)),i.lengthDelimited!==!1&&n.ldelim()},(e,n)=>{let i={},o=n==null?e.len:e.pos+n;for(;e.pos<o;){let s=e.uint32();switch(s>>>3){case 1:i.Type=Bt.codec().decode(e);break;case 2:i.Data=e.bytes();break;default:e.skipType(s&7);break}}return i})),t),r.encode=e=>_t(e,r.codec()),r.decode=e=>bt(e,r.codec())})(dr||(dr={}));var pr;(function(r){let t;r.codec=()=>(t==null&&(t=St((e,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),e.Type!=null&&(n.uint32(8),Bt.codec().encode(e.Type,n)),e.Data!=null&&(n.uint32(18),n.bytes(e.Data)),i.lengthDelimited!==!1&&n.ldelim()},(e,n)=>{let i={},o=n==null?e.len:e.pos+n;for(;e.pos<o;){let s=e.uint32();switch(s>>>3){case 1:i.Type=Bt.codec().decode(e);break;case 2:i.Data=e.bytes();break;default:e.skipType(s&7);break}}return i})),t),r.encode=e=>_t(e,r.codec()),r.decode=e=>bt(e,r.codec())})(pr||(pr={}));var FB=I(Ko(),1),KB=I(pg(),1),dc=I(yt(),1);var we={get(r=globalThis){let t=r.crypto;if(t==null||t.subtle==null)throw Object.assign(new Error("Missing Web Crypto API. The most likely cause of this error is that this page is being accessed from an insecure context (i.e. not HTTPS). For more information and possible resolutions see https://github.com/libp2p/js-libp2p-crypto/blob/master/README.md#web-crypto-api"),{code:"ERR_MISSING_WEB_CRYPTO"});return t}};var T8=I(zt(),1),C8=I(Xa(),1),yg=I(yt(),1);function tr(r,t){let e=Uint8Array.from(r.abs().toByteArray());if(e=e[0]===0?e.subarray(1):e,t!=null){if(e.length>t)throw new Error("byte array longer than desired length");e=qt([new Uint8Array(t-e.length),e])}return H(e,"base64url")}function Ce(r){let t=gg(r);return new yg.default.jsbn.BigInteger(H(t,"base16"),16)}function gg(r,t){let e=U(r,"base64urlpad");if(t!=null){if(e.length>t)throw new Error("byte array longer than desired length");e=qt([new Uint8Array(t-e.length),e])}return e}var ZS={"P-256":256,"P-384":384,"P-521":521},JS=Object.keys(ZS),K8=JS.join(" / ");function tc(r){let t=r?.algorithm??"AES-GCM",e=r?.keyLength??16,n=r?.nonceLength??12,i=r?.digest??"SHA-256",o=r?.saltLength??16,s=r?.iterations??32767,a=we.get();e*=8;async function c(f,d){let h=a.getRandomValues(new Uint8Array(o)),p=a.getRandomValues(new Uint8Array(n)),m={name:t,iv:p};typeof d=="string"&&(d=U(d));let y={name:"PBKDF2",salt:h,iterations:s,hash:{name:i}},g=await a.subtle.importKey("raw",d,{name:"PBKDF2"},!1,["deriveKey","deriveBits"]),E=await a.subtle.deriveKey(y,g,{name:t,length:e},!0,["encrypt"]),_=await a.subtle.encrypt(m,E,f);return qt([h,m.iv,new Uint8Array(_)])}async function l(f,d){let h=f.subarray(0,o),p=f.subarray(o,o+n),m=f.subarray(o+n),y={name:t,iv:p};typeof d=="string"&&(d=U(d));let g={name:"PBKDF2",salt:h,iterations:s,hash:{name:i}},E=await a.subtle.importKey("raw",d,{name:"PBKDF2"},!1,["deriveKey","deriveBits"]),_=await a.subtle.deriveKey(g,E,{name:t,length:e},!0,["decrypt"]),k=await a.subtle.decrypt(y,_,m);return new Uint8Array(k)}return{encrypt:c,decrypt:l}}async function Eg(r,t){let e=Pn.decode(r);return await tc().decrypt(e,t)}var Rf={};ce(Rf,{RsaPrivateKey:()=>Ji,RsaPublicKey:()=>Qo,fromJwk:()=>_A,generateKeyPair:()=>SA,unmarshalRsaPrivateKey:()=>vA,unmarshalRsaPublicKey:()=>bA});var vB=I(Sg(),1),Wo=I(yt(),1);var tA=I(Vn(),1);var ot=BigInt(0),Ct=BigInt(1),gn=BigInt(2),zo=BigInt(3),Ag=BigInt(8),Kt=Object.freeze({a:ot,b:BigInt(7),P:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),n:BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),h:Ct,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee")}),Rg=(r,t)=>(r+t/gn)/t,ec={beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar(r){let{n:t}=Kt,e=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),n=-Ct*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),i=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),o=e,s=BigInt("0x100000000000000000000000000000000"),a=Rg(o*r,t),c=Rg(-n*r,t),l=B(r-a*e-c*i,t),u=B(-a*n-c*o,t),f=l>s,d=u>s;if(f&&(l=t-l),d&&(u=t-u),l>s||u>s)throw new Error("splitScalarEndo: Endomorphism failed, k="+r);return{k1neg:f,k1:l,k2neg:d,k2:u}}},er=32,Yi=32,eA=32,Ig=er+1,Tg=2*er+1;function Cg(r){let{a:t,b:e}=Kt,n=B(r*r),i=B(n*r);return B(i+t*r+e)}var rc=Kt.a===ot,oc=class extends Error{constructor(t){super(t)}};function Dg(r){if(!(r instanceof ut))throw new TypeError("JacobianPoint expected")}var ut=class{constructor(t,e,n){this.x=t,this.y=e,this.z=n}static fromAffine(t){if(!(t instanceof ht))throw new TypeError("JacobianPoint#fromAffine: expected Point");return t.equals(ht.ZERO)?ut.ZERO:new ut(t.x,t.y,Ct)}static toAffineBatch(t){let e=sA(t.map(n=>n.z));return t.map((n,i)=>n.toAffine(e[i]))}static normalizeZ(t){return ut.toAffineBatch(t).map(ut.fromAffine)}equals(t){Dg(t);let{x:e,y:n,z:i}=this,{x:o,y:s,z:a}=t,c=B(i*i),l=B(a*a),u=B(e*l),f=B(o*c),d=B(B(n*a)*l),h=B(B(s*i)*c);return u===f&&d===h}negate(){return new ut(this.x,B(-this.y),this.z)}double(){let{x:t,y:e,z:n}=this,i=B(t*t),o=B(e*e),s=B(o*o),a=t+o,c=B(gn*(B(a*a)-i-s)),l=B(zo*i),u=B(l*l),f=B(u-gn*c),d=B(l*(c-f)-Ag*s),h=B(gn*e*n);return new ut(f,d,h)}add(t){Dg(t);let{x:e,y:n,z:i}=this,{x:o,y:s,z:a}=t;if(o===ot||s===ot)return this;if(e===ot||n===ot)return t;let c=B(i*i),l=B(a*a),u=B(e*l),f=B(o*c),d=B(B(n*a)*l),h=B(B(s*i)*c),p=B(f-u),m=B(h-d);if(p===ot)return m===ot?this.double():ut.ZERO;let y=B(p*p),g=B(p*y),E=B(u*y),_=B(m*m-g-gn*E),k=B(m*(E-_)-d*g),C=B(i*a*p);return new ut(_,k,C)}subtract(t){return this.add(t.negate())}multiplyUnsafe(t){let e=ut.ZERO;if(typeof t=="bigint"&&t===ot)return e;let n=Bg(t);if(n===Ct)return this;if(!rc){let f=e,d=this;for(;n>ot;)n&Ct&&(f=f.add(d)),d=d.double(),n>>=Ct;return f}let{k1neg:i,k1:o,k2neg:s,k2:a}=ec.splitScalar(n),c=e,l=e,u=this;for(;o>ot||a>ot;)o&Ct&&(c=c.add(u)),a&Ct&&(l=l.add(u)),u=u.double(),o>>=Ct,a>>=Ct;return i&&(c=c.negate()),s&&(l=l.negate()),l=new ut(B(l.x*ec.beta),l.y,l.z),c.add(l)}precomputeWindow(t){let e=rc?128/t+1:256/t+1,n=[],i=this,o=i;for(let s=0;s<e;s++){o=i,n.push(o);for(let a=1;a<2**(t-1);a++)o=o.add(i),n.push(o);i=o.double()}return n}wNAF(t,e){!e&&this.equals(ut.BASE)&&(e=ht.BASE);let n=e&&e._WINDOW_SIZE||1;if(256%n)throw new Error("Point#wNAF: Invalid precomputation window, must be power of 2");let i=e&&Ef.get(e);i||(i=this.precomputeWindow(n),e&&n!==1&&(i=ut.normalizeZ(i),Ef.set(e,i)));let o=ut.ZERO,s=ut.BASE,a=1+(rc?128/n:256/n),c=2**(n-1),l=BigInt(2**n-1),u=2**n,f=BigInt(n);for(let d=0;d<a;d++){let h=d*c,p=Number(t&l);t>>=f,p>c&&(p-=u,t+=Ct);let m=h,y=h+Math.abs(p)-1,g=d%2!==0,E=p<0;p===0?s=s.add(nc(g,i[m])):o=o.add(nc(E,i[y]))}return{p:o,f:s}}multiply(t,e){let n=Bg(t),i,o;if(rc){let{k1neg:s,k1:a,k2neg:c,k2:l}=ec.splitScalar(n),{p:u,f}=this.wNAF(a,e),{p:d,f:h}=this.wNAF(l,e);u=nc(s,u),d=nc(c,d),d=new ut(B(d.x*ec.beta),d.y,d.z),i=u.add(d),o=f.add(h)}else{let{p:s,f:a}=this.wNAF(n,e);i=s,o=a}return ut.normalizeZ([i,o])[0]}toAffine(t){let{x:e,y:n,z:i}=this,o=this.equals(ut.ZERO);t==null&&(t=o?Ag:Xi(i));let s=t,a=B(s*s),c=B(a*s),l=B(e*a),u=B(n*c),f=B(i*s);if(o)return ht.ZERO;if(f!==Ct)throw new Error("invZ was invalid");return new ht(l,u)}};ut.BASE=new ut(Kt.Gx,Kt.Gy,Ct);ut.ZERO=new ut(ot,Ct,ot);function nc(r,t){let e=t.negate();return r?e:t}var Ef=new WeakMap,ht=class{constructor(t,e){this.x=t,this.y=e}_setWindowSize(t){this._WINDOW_SIZE=t,Ef.delete(this)}hasEvenY(){return this.y%gn===ot}static fromCompressedHex(t){let e=t.length===32,n=wn(e?t:t.subarray(1));if(!wf(n))throw new Error("Point is not on curve");let i=Cg(n),o=oA(i),s=(o&Ct)===Ct;e?s&&(o=B(-o)):(t[0]&1)===1!==s&&(o=B(-o));let a=new ht(n,o);return a.assertValidity(),a}static fromUncompressedHex(t){let e=wn(t.subarray(1,er+1)),n=wn(t.subarray(er+1,er*2+1)),i=new ht(e,n);return i.assertValidity(),i}static fromHex(t){let e=Qi(t),n=e.length,i=e[0];if(n===er)return this.fromCompressedHex(e);if(n===Ig&&(i===2||i===3))return this.fromCompressedHex(e);if(n===Tg&&i===4)return this.fromUncompressedHex(e);throw new Error(`Point.fromHex: received invalid point. Expected 32-${Ig} compressed bytes or ${Tg} uncompressed bytes, not ${n}`)}static fromPrivateKey(t){return ht.BASE.multiply(ac(t))}static fromSignature(t,e,n){let{r:i,s:o}=Ng(e);if(![0,1,2,3].includes(n))throw new Error("Cannot recover: invalid recovery bit");let s=bf(Qi(t)),{n:a}=Kt,c=n===2||n===3?i+a:i,l=Xi(c,a),u=B(-s*l,a),f=B(o*l,a),d=n&1?"03":"02",h=ht.fromHex(d+zi(c)),p=ht.BASE.multiplyAndAddUnsafe(h,u,f);if(!p)throw new Error("Cannot recover signature: point at infinify");return p.assertValidity(),p}toRawBytes(t=!1){return ti(this.toHex(t))}toHex(t=!1){let e=zi(this.x);return t?`${this.hasEvenY()?"02":"03"}${e}`:`04${e}${zi(this.y)}`}toHexX(){return this.toHex(!0).slice(2)}toRawX(){return this.toRawBytes(!0).slice(1)}assertValidity(){let t="Point is not on elliptic curve",{x:e,y:n}=this;if(!wf(e)||!wf(n))throw new Error(t);let i=B(n*n),o=Cg(e);if(B(i-o)!==ot)throw new Error(t)}equals(t){return this.x===t.x&&this.y===t.y}negate(){return new ht(this.x,B(-this.y))}double(){return ut.fromAffine(this).double().toAffine()}add(t){return ut.fromAffine(this).add(ut.fromAffine(t)).toAffine()}subtract(t){return this.add(t.negate())}multiply(t){return ut.fromAffine(this).multiply(t,this).toAffine()}multiplyAndAddUnsafe(t,e,n){let i=ut.fromAffine(this),o=e===ot||e===Ct||this!==ht.BASE?i.multiplyUnsafe(e):i.multiply(e),s=ut.fromAffine(t).multiplyUnsafe(n),a=o.add(s);return a.equals(ut.ZERO)?void 0:a.toAffine()}};ht.BASE=new ht(Kt.Gx,Kt.Gy);ht.ZERO=new ht(ot,ot);function Pg(r){return Number.parseInt(r[0],16)>=8?"00"+r:r}function Lg(r){if(r.length<2||r[0]!==2)throw new Error(`Invalid signature integer tag: ${Wi(r)}`);let t=r[1],e=r.subarray(2,t+2);if(!t||e.length!==t)throw new Error("Invalid signature integer: wrong length");if(e[0]===0&&e[1]<=127)throw new Error("Invalid signature integer: trailing length");return{data:wn(e),left:r.subarray(t+2)}}function rA(r){if(r.length<2||r[0]!=48)throw new Error(`Invalid signature tag: ${Wi(r)}`);if(r[1]!==r.length-2)throw new Error("Invalid signature: incorrect length");let{data:t,left:e}=Lg(r.subarray(2)),{data:n,left:i}=Lg(e);if(i.length)throw new Error(`Invalid signature: left bytes after parsing: ${Wi(i)}`);return{r:t,s:n}}var vr=class{constructor(t,e){this.r=t,this.s=e,this.assertValidity()}static fromCompact(t){let e=t instanceof Uint8Array,n="Signature.fromCompact";if(typeof t!="string"&&!e)throw new TypeError(`${n}: Expected string or Uint8Array`);let i=e?Wi(t):t;if(i.length!==128)throw new Error(`${n}: Expected 64-byte hex`);return new vr(sc(i.slice(0,64)),sc(i.slice(64,128)))}static fromDER(t){let e=t instanceof Uint8Array;if(typeof t!="string"&&!e)throw new TypeError("Signature.fromDER: Expected string or Uint8Array");let{r:n,s:i}=rA(e?t:ti(t));return new vr(n,i)}static fromHex(t){return this.fromDER(t)}assertValidity(){let{r:t,s:e}=this;if(!Yo(t))throw new Error("Invalid Signature: r must be 0 < r < n");if(!Yo(e))throw new Error("Invalid Signature: s must be 0 < s < n")}hasHighS(){let t=Kt.n>>Ct;return this.s>t}normalizeS(){return this.hasHighS()?new vr(this.r,B(-this.s,Kt.n)):this}toDERRawBytes(){return ti(this.toDERHex())}toDERHex(){let t=Pg($o(this.s)),e=Pg($o(this.r)),n=t.length/2,i=e.length/2,o=$o(n),s=$o(i);return`30${$o(i+n+4)}02${s}${e}02${o}${t}`}toRawBytes(){return this.toDERRawBytes()}toHex(){return this.toDERHex()}toCompactRawBytes(){return ti(this.toCompactHex())}toCompactHex(){return zi(this.r)+zi(this.s)}};function yn(...r){if(!r.every(n=>n instanceof Uint8Array))throw new Error("Uint8Array list expected");if(r.length===1)return r[0];let t=r.reduce((n,i)=>n+i.length,0),e=new Uint8Array(t);for(let n=0,i=0;n<r.length;n++){let o=r[n];e.set(o,i),i+=o.length}return e}var nA=Array.from({length:256},(r,t)=>t.toString(16).padStart(2,"0"));function Wi(r){if(!(r instanceof Uint8Array))throw new Error("Expected Uint8Array");let t="";for(let e=0;e<r.length;e++)t+=nA[r[e]];return t}var iA=BigInt("0x10000000000000000000000000000000000000000000000000000000000000000");function zi(r){if(typeof r!="bigint")throw new Error("Expected bigint");if(!(ot<=r&&r<iA))throw new Error("Expected number 0 <= n < 2^256");return r.toString(16).padStart(64,"0")}function xf(r){let t=ti(zi(r));if(t.length!==32)throw new Error("Error: expected 32 bytes");return t}function $o(r){let t=r.toString(16);return t.length&1?`0${t}`:t}function sc(r){if(typeof r!="string")throw new TypeError("hexToNumber: expected string, got "+typeof r);return BigInt(`0x${r}`)}function ti(r){if(typeof r!="string")throw new TypeError("hexToBytes: expected string, got "+typeof r);if(r.length%2)throw new Error("hexToBytes: received invalid unpadded hex"+r.length);let t=new Uint8Array(r.length/2);for(let e=0;e<t.length;e++){let n=e*2,i=r.slice(n,n+2),o=Number.parseInt(i,16);if(Number.isNaN(o)||o<0)throw new Error("Invalid byte sequence");t[e]=o}return t}function wn(r){return sc(Wi(r))}function Qi(r){return r instanceof Uint8Array?Uint8Array.from(r):ti(r)}function Bg(r){if(typeof r=="number"&&Number.isSafeInteger(r)&&r>0)return BigInt(r);if(typeof r=="bigint"&&Yo(r))return r;throw new TypeError("Expected valid private scalar: 0 < scalar < curve.n")}function B(r,t=Kt.P){let e=r%t;return e>=ot?e:t+e}function qe(r,t){let{P:e}=Kt,n=r;for(;t-- >ot;)n*=n,n%=e;return n}function oA(r){let{P:t}=Kt,e=BigInt(6),n=BigInt(11),i=BigInt(22),o=BigInt(23),s=BigInt(44),a=BigInt(88),c=r*r*r%t,l=c*c*r%t,u=qe(l,zo)*l%t,f=qe(u,zo)*l%t,d=qe(f,gn)*c%t,h=qe(d,n)*d%t,p=qe(h,i)*h%t,m=qe(p,s)*p%t,y=qe(m,a)*m%t,g=qe(y,s)*p%t,E=qe(g,zo)*l%t,_=qe(E,o)*h%t,k=qe(_,e)*c%t,C=qe(k,gn);if(C*C%t!==r)throw new Error("Cannot find square root");return C}function Xi(r,t=Kt.P){if(r===ot||t<=ot)throw new Error(`invert: expected positive integers, got n=${r} mod=${t}`);let e=B(r,t),n=t,i=ot,o=Ct,s=Ct,a=ot;for(;e!==ot;){let l=n/e,u=n%e,f=i-s*l,d=o-a*l;n=e,e=u,i=s,o=a,s=f,a=d}if(n!==Ct)throw new Error("invert: does not exist");return B(i,t)}function sA(r,t=Kt.P){let e=new Array(r.length),n=r.reduce((o,s,a)=>s===ot?o:(e[a]=o,B(o*s,t)),Ct),i=Xi(n,t);return r.reduceRight((o,s,a)=>s===ot?o:(e[a]=B(o*e[a],t),B(o*s,t)),i),e}function aA(r){let t=r.length*8-Yi*8,e=wn(r);return t>0?e>>BigInt(t):e}function bf(r,t=!1){let e=aA(r);if(t)return e;let{n}=Kt;return e>=n?e-n:e}var Gi,Go,vf=class{constructor(t,e){if(this.hashLen=t,this.qByteLen=e,typeof t!="number"||t<2)throw new Error("hashLen must be a number");if(typeof e!="number"||e<2)throw new Error("qByteLen must be a number");this.v=new Uint8Array(t).fill(1),this.k=new Uint8Array(t).fill(0),this.counter=0}hmac(...t){return rr.hmacSha256(this.k,...t)}hmacSync(...t){return Go(this.k,...t)}checkSync(){if(typeof Go!="function")throw new oc("hmacSha256Sync needs to be set")}incr(){if(this.counter>=1e3)throw new Error("Tried 1,000 k values for sign(), all were invalid");this.counter+=1}async reseed(t=new Uint8Array){this.k=await this.hmac(this.v,Uint8Array.from([0]),t),this.v=await this.hmac(this.v),t.length!==0&&(this.k=await this.hmac(this.v,Uint8Array.from([1]),t),this.v=await this.hmac(this.v))}reseedSync(t=new Uint8Array){this.checkSync(),this.k=this.hmacSync(this.v,Uint8Array.from([0]),t),this.v=this.hmacSync(this.v),t.length!==0&&(this.k=this.hmacSync(this.v,Uint8Array.from([1]),t),this.v=this.hmacSync(this.v))}async generate(){this.incr();let t=0,e=[];for(;t<this.qByteLen;){this.v=await this.hmac(this.v);let n=this.v.slice();e.push(n),t+=this.v.length}return yn(...e)}generateSync(){this.checkSync(),this.incr();let t=0,e=[];for(;t<this.qByteLen;){this.v=this.hmacSync(this.v);let n=this.v.slice();e.push(n),t+=this.v.length}return yn(...e)}};function Yo(r){return ot<r&&r<Kt.n}function wf(r){return ot<r&&r<Kt.P}function cA(r,t,e,n=!0){let{n:i}=Kt,o=bf(r,!0);if(!Yo(o))return;let s=Xi(o,i),a=ht.BASE.multiply(o),c=B(a.x,i);if(c===ot)return;let l=B(s*B(t+e*c,i),i);if(l===ot)return;let u=new vr(c,l),f=(a.x===u.r?0:2)|Number(a.y&Ct);return n&&u.hasHighS()&&(u=u.normalizeS(),f^=1),{sig:u,recovery:f}}function ac(r){let t;if(typeof r=="bigint")t=r;else if(typeof r=="number"&&Number.isSafeInteger(r)&&r>0)t=BigInt(r);else if(typeof r=="string"){if(r.length!==2*Yi)throw new Error("Expected 32 bytes of private key");t=sc(r)}else if(r instanceof Uint8Array){if(r.length!==Yi)throw new Error("Expected 32 bytes of private key");t=wn(r)}else throw new TypeError("Expected valid private key");if(!Yo(t))throw new Error("Expected private key: 0 < key < n");return t}function lA(r){return r instanceof ht?(r.assertValidity(),r):ht.fromHex(r)}function Ng(r){if(r instanceof vr)return r.assertValidity(),r;try{return vr.fromDER(r)}catch{return vr.fromCompact(r)}}function _f(r,t=!1){return ht.fromPrivateKey(r).toRawBytes(t)}function Og(r){let t=r.length>er?r.slice(0,er):r;return wn(t)}function uA(r){let t=Og(r),e=B(t,Kt.n);return kg(e<ot?t:e)}function kg(r){return xf(r)}function fA(r,t,e){if(r==null)throw new Error(`sign: expected valid message hash, not "${r}"`);let n=Qi(r),i=ac(t),o=[kg(i),uA(n)];if(e!=null){e===!0&&(e=rr.randomBytes(er));let c=Qi(e);if(c.length!==er)throw new Error(`sign: Expected ${er} bytes of extra data`);o.push(c)}let s=yn(...o),a=Og(n);return{seed:s,m:a,d:i}}function hA(r,t){let{sig:e,recovery:n}=r,{der:i,recovered:o}=Object.assign({canonical:!0,der:!0},t),s=i?e.toDERRawBytes():e.toCompactRawBytes();return o?[s,n]:s}async function Mg(r,t,e={}){let{seed:n,m:i,d:o}=fA(r,t,e.extraEntropy),s=new vf(eA,Yi);await s.reseed(n);let a;for(;!(a=cA(await s.generate(),i,o,e.canonical));)await s.reseed();return hA(a,e)}var dA={strict:!0};function Ug(r,t,e,n=dA){let i;try{i=Ng(r),t=Qi(t)}catch{return!1}let{r:o,s}=i;if(n.strict&&i.hasHighS())return!1;let a=bf(t),c;try{c=lA(e)}catch{return!1}let{n:l}=Kt,u=Xi(s,l),f=B(a*u,l),d=B(o*u,l),h=ht.BASE.multiplyAndAddUnsafe(c,f,d);return h?B(h.x,l)===o:!1}ht.BASE._setWindowSize(8);var De={node:tA,web:typeof self=="object"&&"crypto"in self?self.crypto:void 0};var ic={},rr={bytesToHex:Wi,hexToBytes:ti,concatBytes:yn,mod:B,invert:Xi,isValidPrivateKey(r){try{return ac(r),!0}catch{return!1}},_bigintTo32Bytes:xf,_normalizePrivateKey:ac,hashToPrivateKey:r=>{r=Qi(r);let t=Yi+8;if(r.length<t||r.length>1024)throw new Error("Expected valid bytes of private key as per FIPS 186");let e=B(wn(r),Kt.n-Ct)+Ct;return xf(e)},randomBytes:(r=32)=>{if(De.web)return De.web.getRandomValues(new Uint8Array(r));if(De.node){let{randomBytes:t}=De.node;return Uint8Array.from(t(r))}else throw new Error("The environment doesn't have randomBytes function")},randomPrivateKey:()=>rr.hashToPrivateKey(rr.randomBytes(Yi+8)),precompute(r=8,t=ht.BASE){let e=t===ht.BASE?t:new ht(t.x,t.y);return e._setWindowSize(r),e.multiply(zo),e},sha256:async(...r)=>{if(De.web){let t=await De.web.subtle.digest("SHA-256",yn(...r));return new Uint8Array(t)}else if(De.node){let{createHash:t}=De.node,e=t("sha256");return r.forEach(n=>e.update(n)),Uint8Array.from(e.digest())}else throw new Error("The environment doesn't have sha256 function")},hmacSha256:async(r,...t)=>{if(De.web){let e=await De.web.subtle.importKey("raw",r,{name:"HMAC",hash:{name:"SHA-256"}},!1,["sign"]),n=yn(...t),i=await De.web.subtle.sign("HMAC",e,n);return new Uint8Array(i)}else if(De.node){let{createHmac:e}=De.node,n=e("sha256",r);return t.forEach(i=>n.update(i)),Uint8Array.from(n.digest())}else throw new Error("The environment doesn't have hmac-sha256 function")},sha256Sync:void 0,hmacSha256Sync:void 0,taggedHash:async(r,...t)=>{let e=ic[r];if(e===void 0){let n=await rr.sha256(Uint8Array.from(r,i=>i.charCodeAt(0)));e=yn(n,n),ic[r]=e}return rr.sha256(e,...t)},taggedHashSync:(r,...t)=>{if(typeof Gi!="function")throw new oc("sha256Sync is undefined, you need to set it");let e=ic[r];if(e===void 0){let n=Gi(Uint8Array.from(r,i=>i.charCodeAt(0)));e=yn(n,n),ic[r]=e}return Gi(e,...t)},_JacobianPoint:ut};Object.defineProperties(rr,{sha256Sync:{configurable:!1,get(){return Gi},set(r){Gi||(Gi=r)}},hmacSha256Sync:{configurable:!1,get(){return Go},set(r){Go||(Go=r)}}});function Hr(r){if(isNaN(r)||r<=0)throw new at("random bytes length must be a Number bigger than 0","ERR_INVALID_LENGTH");return rr.randomBytes(r)}var ei={};ce(ei,{jwkToPkcs1:()=>yA,jwkToPkix:()=>wA,pkcs1ToJwk:()=>mA,pkixToJwk:()=>gA});var tB=I(Ko(),1),eB=I(ja(),1),$r=I(yt(),1);function mA(r){let t=$r.default.asn1.fromDer(H(r,"ascii")),e=$r.default.pki.privateKeyFromAsn1(t);return{kty:"RSA",n:tr(e.n),e:tr(e.e),d:tr(e.d),p:tr(e.p),q:tr(e.q),dp:tr(e.dP),dq:tr(e.dQ),qi:tr(e.qInv),alg:"RS256"}}function yA(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 at("JWK was missing components","ERR_INVALID_PARAMETERS");let t=$r.default.pki.privateKeyToAsn1({n:Ce(r.n),e:Ce(r.e),d:Ce(r.d),p:Ce(r.p),q:Ce(r.q),dP:Ce(r.dp),dQ:Ce(r.dq),qInv:Ce(r.qi)});return U($r.default.asn1.toDer(t).getBytes(),"ascii")}function gA(r){let t=$r.default.asn1.fromDer(H(r,"ascii")),e=$r.default.pki.publicKeyFromAsn1(t);return{kty:"RSA",n:tr(e.n),e:tr(e.e)}}function wA(r){if(r.n==null||r.e==null)throw new at("JWK was missing components","ERR_INVALID_PARAMETERS");let t=$r.default.pki.publicKeyToAsn1({n:Ce(r.n),e:Ce(r.e)});return U($r.default.asn1.toDer(t).getBytes(),"ascii")}var sB=I(ja(),1),Sf=I(yt(),1);function Fg(r,t){return t.map(e=>Ce(r[e]))}function Kg(r){return Sf.default.pki.setRsaPrivateKey(...Fg(r,["n","e","d","p","q","dp","dq","qi"]))}function Vg(r){return Sf.default.pki.setRsaPublicKey(...Fg(r,["n","e"]))}async function qg(r){let t=await we.get().subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:r,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-256"}},!0,["sign","verify"]),e=await zg(t);return{privateKey:e[0],publicKey:e[1]}}async function Af(r){let e=[await we.get().subtle.importKey("jwk",r,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["sign"]),await EA(r)],n=await zg({privateKey:e[0],publicKey:e[1]});return{privateKey:n[0],publicKey:n[1]}}async function Hg(r,t){let e=await we.get().subtle.importKey("jwk",r,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["sign"]),n=await we.get().subtle.sign({name:"RSASSA-PKCS1-v1_5"},e,Uint8Array.from(t));return new Uint8Array(n,0,n.byteLength)}async function $g(r,t,e){let n=await we.get().subtle.importKey("jwk",r,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["verify"]);return await we.get().subtle.verify({name:"RSASSA-PKCS1-v1_5"},n,t,e)}async function zg(r){if(r.privateKey==null||r.publicKey==null)throw new at("Private and public key are required","ERR_INVALID_PARAMETERS");return await Promise.all([we.get().subtle.exportKey("jwk",r.privateKey),we.get().subtle.exportKey("jwk",r.publicKey)])}async function EA(r){return await we.get().subtle.importKey("jwk",{kty:r.kty,n:r.n,e:r.e},{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["verify"])}function Gg(r,t,e,n){let i=t?Vg(r):Kg(r),o=H(Uint8Array.from(e),"ascii"),s=n(o,i);return U(s,"ascii")}function Yg(r,t){return Gg(r,!0,t,(e,n)=>n.encrypt(e))}function Wg(r,t){return Gg(r,!1,t,(e,n)=>n.decrypt(e))}async function Zi(r,t){let n=await tc().encrypt(r,t);return Pn.encode(n)}var Qo=class{constructor(t){this._key=t}async verify(t,e){return await $g(this._key,e,t)}marshal(){return ei.jwkToPkix(this._key)}get bytes(){return dr.encode({Type:Bt.RSA,Data:this.marshal()}).subarray()}encrypt(t){return Yg(this._key,t)}equals(t){return xt(this.bytes,t.bytes)}async hash(){let{bytes:t}=await te.digest(this.bytes);return t}},Ji=class{constructor(t,e){this._key=t,this._publicKey=e}genSecret(){return Hr(16)}async sign(t){return await Hg(this._key,t)}get public(){if(this._publicKey==null)throw new at("public key not provided","ERR_PUBKEY_NOT_PROVIDED");return new Qo(this._publicKey)}decrypt(t){return Wg(this._key,t)}marshal(){return ei.jwkToPkcs1(this._key)}get bytes(){return pr.encode({Type:Bt.RSA,Data:this.marshal()}).subarray()}equals(t){return xt(this.bytes,t.bytes)}async hash(){let{bytes:t}=await te.digest(this.bytes);return t}async id(){let t=await this.public.hash();return H(t,"base58btc")}async export(t,e="pkcs-8"){if(e==="pkcs-8"){let n=new Wo.default.util.ByteBuffer(this.marshal()),i=Wo.default.asn1.fromDer(n),o=Wo.default.pki.privateKeyFromAsn1(i),s={algorithm:"aes256",count:1e4,saltSize:128/8,prfAlgorithm:"sha512"};return Wo.default.pki.encryptRsaPrivateKey(o,t,s)}else{if(e==="libp2p-key")return await Zi(this.bytes,t);throw new at(`export format '${e}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}}};async function vA(r){let t=ei.pkcs1ToJwk(r),e=await Af(t);return new Ji(e.privateKey,e.publicKey)}function bA(r){let t=ei.pkixToJwk(r);return new Qo(t)}async function _A(r){let t=await Af(r);return new Ji(t.privateKey,t.publicKey)}async function SA(r){let t=await qg(r);return new Ji(t.privateKey,t.publicKey)}var Of={};ce(Of,{Ed25519PrivateKey:()=>ni,Ed25519PublicKey:()=>ts,generateKeyPair:()=>zA,generateKeyPairFromSeed:()=>lw,unmarshalEd25519PrivateKey:()=>HA,unmarshalEd25519PublicKey:()=>$A});var AA=I(Vn(),1);var ae=BigInt(0),st=BigInt(1),vn=BigInt(2),RA=BigInt(8),Qg=BigInt("7237005577332262213973186563042994240857116359379907606001950938285454250989"),Dt=Object.freeze({a:BigInt(-1),d:BigInt("37095705934669439343138083508754565189542113879843219016388785533085940283555"),P:BigInt("57896044618658097711785492504343953926634992332820282019728792003956564819949"),l:Qg,n:Qg,h:BigInt(8),Gx:BigInt("15112221349535400772501151409588531511454012693041857206046113283949847762202"),Gy:BigInt("46316835694926478169428394003475163141307993866256225615783033603165251855960")});var tw=BigInt("0x10000000000000000000000000000000000000000000000000000000000000000"),Xo=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752"),_B=BigInt("6853475219497561581579357271197624642482790079785650197046958215289687604742"),IA=BigInt("25063068953384623474111414158702152701244531502492656460079210482610430750235"),TA=BigInt("54469307008909316920995813868745141605393597292927456921205312896311721017578"),CA=BigInt("1159843021668779879193775521855586647937357759715417654439879720876111806838"),DA=BigInt("40440834346308536858101042469323190826248399146238708352240133220865137265952"),et=class{constructor(t,e,n,i){this.x=t,this.y=e,this.z=n,this.t=i}static fromAffine(t){if(!(t instanceof Ot))throw new TypeError("ExtendedPoint#fromAffine: expected Point");return t.equals(Ot.ZERO)?et.ZERO:new et(t.x,t.y,st,A(t.x*t.y))}static toAffineBatch(t){let e=BA(t.map(n=>n.z));return t.map((n,i)=>n.toAffine(e[i]))}static normalizeZ(t){return this.toAffineBatch(t).map(this.fromAffine)}equals(t){Zg(t);let{x:e,y:n,z:i}=this,{x:o,y:s,z:a}=t,c=A(e*a),l=A(o*i),u=A(n*a),f=A(s*i);return c===l&&u===f}negate(){return new et(A(-this.x),this.y,this.z,A(-this.t))}double(){let{x:t,y:e,z:n}=this,{a:i}=Dt,o=A(t*t),s=A(e*e),a=A(vn*A(n*n)),c=A(i*o),l=t+e,u=A(A(l*l)-o-s),f=c+s,d=f-a,h=c-s,p=A(u*d),m=A(f*h),y=A(u*h),g=A(d*f);return new et(p,m,g,y)}add(t){Zg(t);let{x:e,y:n,z:i,t:o}=this,{x:s,y:a,z:c,t:l}=t,u=A((n-e)*(a+s)),f=A((n+e)*(a-s)),d=A(f-u);if(d===ae)return this.double();let h=A(i*vn*l),p=A(o*vn*c),m=p+h,y=f+u,g=p-h,E=A(m*d),_=A(y*g),k=A(m*g),C=A(d*y);return new et(E,_,C,k)}subtract(t){return this.add(t.negate())}precomputeWindow(t){let e=1+256/t,n=[],i=this,o=i;for(let s=0;s<e;s++){o=i,n.push(o);for(let a=1;a<2**(t-1);a++)o=o.add(i),n.push(o);i=o.double()}return n}wNAF(t,e){!e&&this.equals(et.BASE)&&(e=Ot.BASE);let n=e&&e._WINDOW_SIZE||1;if(256%n)throw new Error("Point#wNAF: Invalid precomputation window, must be power of 2");let i=e&&Pf.get(e);i||(i=this.precomputeWindow(n),e&&n!==1&&(i=et.normalizeZ(i),Pf.set(e,i)));let o=et.ZERO,s=et.BASE,a=1+256/n,c=2**(n-1),l=BigInt(2**n-1),u=2**n,f=BigInt(n);for(let d=0;d<a;d++){let h=d*c,p=Number(t&l);t>>=f,p>c&&(p-=u,t+=st);let m=h,y=h+Math.abs(p)-1,g=d%2!==0,E=p<0;p===0?s=s.add(Xg(g,i[m])):o=o.add(Xg(E,i[y]))}return et.normalizeZ([o,s])[0]}multiply(t,e){return this.wNAF(lc(t,Dt.l),e)}multiplyUnsafe(t){let e=lc(t,Dt.l,!1),n=et.BASE,i=et.ZERO;if(e===ae)return i;if(this.equals(i)||e===st)return this;if(this.equals(n))return this.wNAF(e);let o=i,s=this;for(;e>ae;)e&st&&(o=o.add(s)),s=s.double(),e>>=st;return o}isSmallOrder(){return this.multiplyUnsafe(Dt.h).equals(et.ZERO)}isTorsionFree(){let t=this.multiplyUnsafe(Dt.l/vn).double();return Dt.l%vn&&(t=t.add(this)),t.equals(et.ZERO)}toAffine(t){let{x:e,y:n,z:i}=this,o=this.equals(et.ZERO);t==null&&(t=o?RA:uc(i));let s=A(e*t),a=A(n*t),c=A(i*t);if(o)return Ot.ZERO;if(c!==st)throw new Error("invZ was invalid");return new Ot(s,a)}fromRistrettoBytes(){Tf()}toRistrettoBytes(){Tf()}fromRistrettoHash(){Tf()}};et.BASE=new et(Dt.Gx,Dt.Gy,st,A(Dt.Gx*Dt.Gy));et.ZERO=new et(ae,st,st,ae);function Xg(r,t){let e=t.negate();return r?e:t}function Zg(r){if(!(r instanceof et))throw new TypeError("ExtendedPoint expected")}function If(r){if(!(r instanceof Ee))throw new TypeError("RistrettoPoint expected")}function Tf(){throw new Error("Legacy method: switch to RistrettoPoint")}var Ee=class{constructor(t){this.ep=t}static calcElligatorRistrettoMap(t){let{d:e}=Dt,n=A(Xo*t*t),i=A((n+st)*CA),o=BigInt(-1),s=A((o-e*n)*A(n+e)),{isValid:a,value:c}=Bf(i,s),l=A(c*t);xn(l)||(l=A(-l)),a||(c=l),a||(o=n);let u=A(o*(n-st)*DA-s),f=c*c,d=A((c+c)*s),h=A(u*IA),p=A(st-f),m=A(st+f);return new et(A(d*m),A(p*h),A(h*m),A(d*p))}static hashToCurve(t){t=bn(t,64);let e=Cf(t.slice(0,32)),n=this.calcElligatorRistrettoMap(e),i=Cf(t.slice(32,64)),o=this.calcElligatorRistrettoMap(i);return new Ee(n.add(o))}static fromHex(t){t=bn(t,32);let{a:e,d:n}=Dt,i="RistrettoPoint.fromHex: the hex is not valid encoding of RistrettoPoint",o=Cf(t);if(!OA(Zo(o),t)||xn(o))throw new Error(i);let s=A(o*o),a=A(st+e*s),c=A(st-e*s),l=A(a*a),u=A(c*c),f=A(e*n*l-u),{isValid:d,value:h}=jg(A(f*u)),p=A(h*c),m=A(h*p*f),y=A((o+o)*p);xn(y)&&(y=A(-y));let g=A(a*m),E=A(y*g);if(!d||xn(E)||g===ae)throw new Error(i);return new Ee(new et(y,g,st,E))}toRawBytes(){let{x:t,y:e,z:n,t:i}=this.ep,o=A(A(n+e)*A(n-e)),s=A(t*e),a=A(s*s),{value:c}=jg(A(o*a)),l=A(c*o),u=A(c*s),f=A(l*u*i),d;if(xn(i*f)){let p=A(e*Xo),m=A(t*Xo);t=p,e=m,d=A(l*TA)}else d=u;xn(t*f)&&(e=A(-e));let h=A((n-e)*d);return xn(h)&&(h=A(-h)),Zo(h)}toHex(){return Jo(this.toRawBytes())}toString(){return this.toHex()}equals(t){If(t);let e=this.ep,n=t.ep,i=A(e.x*n.y)===A(e.y*n.x),o=A(e.y*n.y)===A(e.x*n.x);return i||o}add(t){return If(t),new Ee(this.ep.add(t.ep))}subtract(t){return If(t),new Ee(this.ep.subtract(t.ep))}multiply(t){return new Ee(this.ep.multiply(t))}multiplyUnsafe(t){return new Ee(this.ep.multiplyUnsafe(t))}};Ee.BASE=new Ee(et.BASE);Ee.ZERO=new Ee(et.ZERO);var Pf=new WeakMap,Ot=class{constructor(t,e){this.x=t,this.y=e}_setWindowSize(t){this._WINDOW_SIZE=t,Pf.delete(this)}static fromHex(t,e=!0){let{d:n,P:i}=Dt;t=bn(t,32);let o=t.slice();o[31]=t[31]&-129;let s=jo(o);if(e&&s>=i)throw new Error("Expected 0 < hex < P");if(!e&&s>=tw)throw new Error("Expected 0 < hex < 2**256");let a=A(s*s),c=A(a-st),l=A(n*a+st),{isValid:u,value:f}=Bf(c,l);if(!u)throw new Error("Point.fromHex: invalid y coordinate");let d=(f&st)===st;return(t[31]&128)!==0!==d&&(f=A(-f)),new Ot(f,s)}static async fromPrivateKey(t){return(await fc(t)).point}toRawBytes(){let t=Zo(this.y);return t[31]|=this.x&st?128:0,t}toHex(){return Jo(this.toRawBytes())}toX25519(){let{y:t}=this,e=A((st+t)*uc(st-t));return Zo(e)}isTorsionFree(){return et.fromAffine(this).isTorsionFree()}equals(t){return this.x===t.x&&this.y===t.y}negate(){return new Ot(A(-this.x),this.y)}add(t){return et.fromAffine(this).add(et.fromAffine(t)).toAffine()}subtract(t){return this.add(t.negate())}multiply(t){return et.fromAffine(this).multiply(t,this).toAffine()}};Ot.BASE=new Ot(Dt.Gx,Dt.Gy);Ot.ZERO=new Ot(ae,st);var ri=class{constructor(t,e){this.r=t,this.s=e,this.assertValidity()}static fromHex(t){let e=bn(t,64),n=Ot.fromHex(e.slice(0,32),!1),i=jo(e.slice(32,64));return new ri(n,i)}assertValidity(){let{r:t,s:e}=this;if(!(t instanceof Ot))throw new Error("Expected Point instance");return lc(e,Dt.l,!1),this}toRawBytes(){let t=new Uint8Array(64);return t.set(this.r.toRawBytes()),t.set(Zo(this.s),32),t}toHex(){return Jo(this.toRawBytes())}};function Jg(...r){if(!r.every(n=>n instanceof Uint8Array))throw new Error("Expected Uint8Array list");if(r.length===1)return r[0];let t=r.reduce((n,i)=>n+i.length,0),e=new Uint8Array(t);for(let n=0,i=0;n<r.length;n++){let o=r[n];e.set(o,i),i+=o.length}return e}var PA=Array.from({length:256},(r,t)=>t.toString(16).padStart(2,"0"));function Jo(r){if(!(r instanceof Uint8Array))throw new Error("Uint8Array expected");let t="";for(let e=0;e<r.length;e++)t+=PA[r[e]];return t}function Lf(r){if(typeof r!="string")throw new TypeError("hexToBytes: expected string, got "+typeof r);if(r.length%2)throw new Error("hexToBytes: received invalid unpadded hex");let t=new Uint8Array(r.length/2);for(let e=0;e<t.length;e++){let n=e*2,i=r.slice(n,n+2),o=Number.parseInt(i,16);if(Number.isNaN(o)||o<0)throw new Error("Invalid byte sequence");t[e]=o}return t}function ew(r){let e=r.toString(16).padStart(64,"0");return Lf(e)}function Zo(r){return ew(r).reverse()}function xn(r){return(A(r)&st)===st}function jo(r){if(!(r instanceof Uint8Array))throw new Error("Expected Uint8Array");return BigInt("0x"+Jo(Uint8Array.from(r).reverse()))}var LA=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");function Cf(r){return A(jo(r)&LA)}function A(r,t=Dt.P){let e=r%t;return e>=ae?e:t+e}function uc(r,t=Dt.P){if(r===ae||t<=ae)throw new Error(`invert: expected positive integers, got n=${r} mod=${t}`);let e=A(r,t),n=t,i=ae,o=st,s=st,a=ae;for(;e!==ae;){let l=n/e,u=n%e,f=i-s*l,d=o-a*l;n=e,e=u,i=s,o=a,s=f,a=d}if(n!==st)throw new Error("invert: does not exist");return A(i,t)}function BA(r,t=Dt.P){let e=new Array(r.length),n=r.reduce((o,s,a)=>s===ae?o:(e[a]=o,A(o*s,t)),st),i=uc(n,t);return r.reduceRight((o,s,a)=>s===ae?o:(e[a]=A(o*e[a],t),A(o*s,t)),i),e}function br(r,t){let{P:e}=Dt,n=r;for(;t-- >ae;)n*=n,n%=e;return n}function NA(r){let{P:t}=Dt,e=BigInt(5),n=BigInt(10),i=BigInt(20),o=BigInt(40),s=BigInt(80),c=r*r%t*r%t,l=br(c,vn)*c%t,u=br(l,st)*r%t,f=br(u,e)*u%t,d=br(f,n)*f%t,h=br(d,i)*d%t,p=br(h,o)*h%t,m=br(p,s)*p%t,y=br(m,s)*p%t,g=br(y,n)*f%t;return{pow_p_5_8:br(g,vn)*r%t,b2:c}}function Bf(r,t){let e=A(t*t*t),n=A(e*e*t),i=NA(r*n).pow_p_5_8,o=A(r*e*i),s=A(t*o*o),a=o,c=A(o*Xo),l=s===r,u=s===A(-r),f=s===A(-r*Xo);return l&&(o=a),(u||f)&&(o=c),xn(o)&&(o=A(-o)),{isValid:l||u,value:o}}function jg(r){return Bf(st,r)}function cc(r){return A(jo(r),Dt.l)}function OA(r,t){if(r.length!==t.length)return!1;for(let e=0;e<r.length;e++)if(r[e]!==t[e])return!1;return!0}function bn(r,t){let e=r instanceof Uint8Array?Uint8Array.from(r):Lf(r);if(typeof t=="number"&&e.length!==t)throw new Error(`Expected ${t} bytes`);return e}function lc(r,t,e=!0){if(!t)throw new TypeError("Specify max value");if(typeof r=="number"&&Number.isSafeInteger(r)&&(r=BigInt(r)),typeof r=="bigint"&&r<t){if(e){if(ae<r)return r}else if(ae<=r)return r}throw new TypeError("Expected valid scalar: 0 < scalar < max")}function kA(r){return r[0]&=248,r[31]&=127,r[31]|=64,r}function MA(r){if(r=typeof r=="bigint"||typeof r=="number"?ew(lc(r,tw)):bn(r),r.length!==32)throw new Error("Expected 32 bytes");return r}function UA(r){let t=kA(r.slice(0,32)),e=r.slice(32,64),n=cc(t),i=Ot.BASE.multiply(n),o=i.toRawBytes();return{head:t,prefix:e,scalar:n,point:i,pointBytes:o}}var Df;async function fc(r){return UA(await _n.sha512(MA(r)))}async function Nf(r){return(await fc(r)).pointBytes}async function rw(r,t){r=bn(r);let{prefix:e,scalar:n,pointBytes:i}=await fc(t),o=cc(await _n.sha512(e,r)),s=Ot.BASE.multiply(o),a=cc(await _n.sha512(s.toRawBytes(),i,r)),c=A(o+a*n,Dt.l);return new ri(s,c).toRawBytes()}function FA(r,t,e){t=bn(t),e instanceof Ot||(e=Ot.fromHex(e,!1));let{r:n,s:i}=r instanceof ri?r.assertValidity():ri.fromHex(r),o=et.BASE.multiplyUnsafe(i);return{r:n,s:i,SB:o,pub:e,msg:t}}function KA(r,t,e,n){let i=cc(n),o=et.fromAffine(r).multiplyUnsafe(i);return et.fromAffine(t).add(o).subtract(e).multiplyUnsafe(Dt.h).equals(et.ZERO)}async function nw(r,t,e){let{r:n,SB:i,msg:o,pub:s}=FA(r,t,e),a=await _n.sha512(n.toRawBytes(),s.toRawBytes(),o);return KA(s,n,i,a)}Ot.BASE._setWindowSize(8);var En={node:AA,web:typeof self=="object"&&"crypto"in self?self.crypto:void 0},_n={bytesToHex:Jo,hexToBytes:Lf,concatBytes:Jg,getExtendedPublicKey:fc,mod:A,invert:uc,TORSION_SUBGROUP:["0100000000000000000000000000000000000000000000000000000000000000","c7176a703d4dd84fba3c0b760d10670f2a2053fa2c39ccc64ec7fd7792ac037a","0000000000000000000000000000000000000000000000000000000000000080","26e8958fc2b227b045c3f489f2ef98f0d5dfac05d3c63339b13802886d53fc05","ecffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f","26e8958fc2b227b045c3f489f2ef98f0d5dfac05d3c63339b13802886d53fc85","0000000000000000000000000000000000000000000000000000000000000000","c7176a703d4dd84fba3c0b760d10670f2a2053fa2c39ccc64ec7fd7792ac03fa"],hashToPrivateScalar:r=>{if(r=bn(r),r.length<40||r.length>1024)throw new Error("Expected 40-1024 bytes of private key as per FIPS 186");return A(jo(r),Dt.l-st)+st},randomBytes:(r=32)=>{if(En.web)return En.web.getRandomValues(new Uint8Array(r));if(En.node){let{randomBytes:t}=En.node;return new Uint8Array(t(r).buffer)}else throw new Error("The environment doesn't have randomBytes function")},randomPrivateKey:()=>_n.randomBytes(32),sha512:async(...r)=>{let t=Jg(...r);if(En.web){let e=await En.web.subtle.digest("SHA-512",t.buffer);return new Uint8Array(e)}else{if(En.node)return Uint8Array.from(En.node.createHash("sha512").update(t).digest());throw new Error("The environment doesn't have sha512 function")}},precompute(r=8,t=Ot.BASE){let e=t.equals(Ot.BASE)?t:new Ot(t.x,t.y);return e._setWindowSize(r),e.multiply(vn),e},sha512Sync:void 0};Object.defineProperties(_n,{sha512Sync:{configurable:!1,get(){return Df},set(r){Df||(Df=r)}}});var ji=32,zr=64,hc=32;async function iw(){let r=_n.randomPrivateKey(),t=await Nf(r);return{privateKey:cw(r,t),publicKey:t}}async function ow(r){if(r.length!==hc)throw new TypeError('"seed" must be 32 bytes in length.');if(!(r instanceof Uint8Array))throw new TypeError('"seed" must be a node.js Buffer, or Uint8Array.');let t=r,e=await Nf(t);return{privateKey:cw(t,e),publicKey:e}}async function sw(r,t){let e=r.subarray(0,hc);return await rw(t,e)}async function aw(r,t,e){return await nw(t,e,r)}function cw(r,t){let e=new Uint8Array(zr);for(let n=0;n<hc;n++)e[n]=r[n],e[hc+n]=t[n];return e}var ts=class{constructor(t){this._key=to(t,ji)}async verify(t,e){return await aw(this._key,e,t)}marshal(){return this._key}get bytes(){return dr.encode({Type:Bt.Ed25519,Data:this.marshal()}).subarray()}equals(t){return xt(this.bytes,t.bytes)}async hash(){let{bytes:t}=await te.digest(this.bytes);return t}},ni=class{constructor(t,e){this._key=to(t,zr),this._publicKey=to(e,ji)}async sign(t){return await sw(this._key,t)}get public(){return new ts(this._publicKey)}marshal(){return this._key}get bytes(){return pr.encode({Type:Bt.Ed25519,Data:this.marshal()}).subarray()}equals(t){return xt(this.bytes,t.bytes)}async hash(){let{bytes:t}=await te.digest(this.bytes);return t}async id(){let t=await jr.digest(this.public.bytes);return Vt.encode(t.bytes).substring(1)}async export(t,e="libp2p-key"){if(e==="libp2p-key")return await Zi(this.bytes,t);throw new at(`export format '${e}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};function HA(r){if(r.length>zr){r=to(r,zr+ji);let n=r.subarray(0,zr),i=r.subarray(zr,r.length);return new ni(n,i)}r=to(r,zr);let t=r.subarray(0,zr),e=r.subarray(ji);return new ni(t,e)}function $A(r){return r=to(r,ji),new ts(r)}async function zA(){let{privateKey:r,publicKey:t}=await iw();return new ni(r,t)}async function lw(r){let{privateKey:t,publicKey:e}=await ow(r);return new ni(t,e)}function to(r,t){if(r=Uint8Array.from(r??[]),r.length!==t)throw new at(`Key must be a Uint8Array of length ${t}, got ${r.length}`,"ERR_INVALID_KEY_TYPE");return r}var Mf={};ce(Mf,{Secp256k1PrivateKey:()=>rs,Secp256k1PublicKey:()=>es,generateKeyPair:()=>QA,unmarshalSecp256k1PrivateKey:()=>YA,unmarshalSecp256k1PublicKey:()=>WA});function uw(){return rr.randomPrivateKey()}async function fw(r,t){let{digest:e}=await te.digest(t);try{return await Mg(e,r)}catch(n){throw new at(String(n),"ERR_INVALID_INPUT")}}async function hw(r,t,e){try{let{digest:n}=await te.digest(e);return Ug(t,n,r)}catch(n){throw new at(String(n),"ERR_INVALID_INPUT")}}function dw(r){return ht.fromHex(r).toRawBytes(!0)}function pw(r){try{_f(r,!0)}catch(t){throw new at(String(t),"ERR_INVALID_PRIVATE_KEY")}}function kf(r){try{ht.fromHex(r)}catch(t){throw new at(String(t),"ERR_INVALID_PUBLIC_KEY")}}function mw(r){try{return _f(r,!0)}catch(t){throw new at(String(t),"ERR_INVALID_PRIVATE_KEY")}}var es=class{constructor(t){kf(t),this._key=t}async verify(t,e){return await hw(this._key,e,t)}marshal(){return dw(this._key)}get bytes(){return dr.encode({Type:Bt.Secp256k1,Data:this.marshal()}).subarray()}equals(t){return xt(this.bytes,t.bytes)}async hash(){let{bytes:t}=await te.digest(this.bytes);return t}},rs=class{constructor(t,e){this._key=t,this._publicKey=e??mw(t),pw(this._key),kf(this._publicKey)}async sign(t){return await fw(this._key,t)}get public(){return new es(this._publicKey)}marshal(){return this._key}get bytes(){return pr.encode({Type:Bt.Secp256k1,Data:this.marshal()}).subarray()}equals(t){return xt(this.bytes,t.bytes)}async hash(){let{bytes:t}=await te.digest(this.bytes);return t}async id(){let t=await this.public.hash();return H(t,"base58btc")}async export(t,e="libp2p-key"){if(e==="libp2p-key")return await Zi(this.bytes,t);throw new at(`export format '${e}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};function YA(r){return new rs(r)}function WA(r){return new es(r)}async function QA(){let r=await uw();return new rs(r)}var Gr={rsa:Rf,ed25519:Of,secp256k1:Mf};function Uf(r){let t=Object.keys(Gr).join(" / ");return new at(`invalid or unsupported key type ${r}. Must be ${t}`,"ERR_UNSUPPORTED_KEY_TYPE")}function Ff(r){if(r=r.toLowerCase(),r==="rsa"||r==="ed25519"||r==="secp256k1")return Gr[r];throw Uf(r)}async function pc(r,t){return await Ff(r).generateKeyPair(t??2048)}function ns(r){let t=dr.decode(r),e=t.Data??new Uint8Array;switch(t.Type){case Bt.RSA:return Gr.rsa.unmarshalRsaPublicKey(e);case Bt.Ed25519:return Gr.ed25519.unmarshalEd25519PublicKey(e);case Bt.Secp256k1:return Gr.secp256k1.unmarshalSecp256k1PublicKey(e);default:throw Uf(t.Type??"RSA")}}function yw(r,t){return t=(t??"rsa").toLowerCase(),Ff(t),r.bytes}async function eo(r){let t=pr.decode(r),e=t.Data??new Uint8Array;switch(t.Type){case Bt.RSA:return await Gr.rsa.unmarshalRsaPrivateKey(e);case Bt.Ed25519:return Gr.ed25519.unmarshalEd25519PrivateKey(e);case Bt.Secp256k1:return Gr.secp256k1.unmarshalSecp256k1PrivateKey(e);default:throw Uf(t.Type??"RSA")}}function gw(r,t){return t=(t??"rsa").toLowerCase(),Ff(t),r.bytes}async function is(r,t){try{let i=await Eg(r,t);return await eo(i)}catch{}let e=dc.default.pki.decryptRsaPrivateKey(r,t);if(e===null)throw new at("Cannot read the key, most likely the password is wrong or not a RSA key","ERR_CANNOT_DECRYPT_PEM");let n=dc.default.asn1.toDer(dc.default.pki.privateKeyToAsn1(e));return n=U(n.getBytes(),"ascii"),await Gr.rsa.unmarshalRsaPrivateKey(n)}var GB=I(qa(),1),ZA=I(yt(),1);var Ew=I(sf(),1),xw=I(zt(),1);var ww={sha1:"sha1","sha2-256":"sha256","sha2-512":"sha512"};function os(r,t,e,n,i){if(i!=="sha1"&&i!=="sha2-256"&&i!=="sha2-512"){let a=Object.keys(ww).join(" / ");throw new at(`Hash '${i}' is unknown or not supported. Must be ${a}`,"ERR_UNSUPPORTED_HASH_TYPE")}let o=ww[i],s=(0,Ew.default)(r,t,e,n,o);return xw.default.encode64(s,null)}var mc=N("libp2p:keychain"),tR="/pkcs8/",bw="/info/",ii=new WeakMap,oi={minKeyLength:112/8,minSaltLength:128/8,minIterationCount:1e3},Kf={dek:{keyLength:512/8,iterationCount:1e4,salt:"you should override this value with a crypto secure random number",hash:"sha2-512"}};function Yr(r){return r==null||typeof r!="string"?!1:r===(0,vw.default)(r.trim())&&r.length>0}async function wt(){let e=Math.random()*800+200;await new Promise(n=>setTimeout(n,e))}function _r(r){return new Ut(tR+r)}function Sn(r){return new Ut(bw+r)}var si=class{constructor(t,e){if(this.components=t,this.init=Ne(Kf,e),this.init.pass!=null&&this.init.pass?.length<20)throw new Error("pass must be least 20 characters");if(this.init.dek?.keyLength!=null&&this.init.dek.keyLength<oi.minKeyLength)throw new Error(`dek.keyLength must be least ${oi.minKeyLength} bytes`);if(this.init.dek?.salt?.length!=null&&this.init.dek.salt.length<oi.minSaltLength)throw new Error(`dek.saltLength must be least ${oi.minSaltLength} bytes`);if(this.init.dek?.iterationCount!=null&&this.init.dek.iterationCount<oi.minIterationCount)throw new Error(`dek.iterationCount must be least ${oi.minIterationCount}`);let n=this.init.pass!=null&&this.init.dek?.salt!=null?os(this.init.pass,this.init.dek?.salt,this.init.dek?.iterationCount,this.init.dek?.keyLength,this.init.dek?.hash):"";ii.set(this,{dek:n})}static generateOptions(){let t=Object.assign({},Kf),e=Math.ceil(oi.minSaltLength/3)*3;return t.dek.salt=H(Hr(e),"base64"),t}static get options(){return Kf}async createKey(t,e,n=2048){if(!Yr(t)||t==="self")throw await wt(),(0,ft.default)(new Error("Invalid key name"),nt.ERR_INVALID_KEY_NAME);if(typeof e!="string")throw await wt(),(0,ft.default)(new Error("Invalid key type"),nt.ERR_INVALID_KEY_TYPE);let i=_r(t);if(await this.components.datastore.has(i))throw await wt(),(0,ft.default)(new Error("Key name already exists"),nt.ERR_KEY_ALREADY_EXISTS);switch(e.toLowerCase()){case"rsa":if(!Number.isSafeInteger(n)||n<2048)throw await wt(),(0,ft.default)(new Error("Invalid RSA key size"),nt.ERR_INVALID_KEY_SIZE);break;default:break}let s;try{let a=await pc(e,n),c=await a.id(),l=ii.get(this);if(l==null)throw(0,ft.default)(new Error("dek missing"),nt.ERR_INVALID_PARAMETERS);let u=l.dek,f=await a.export(u);s={name:t,id:c};let d=this.components.datastore.batch();d.put(i,U(f)),d.put(Sn(t),U(JSON.stringify(s))),await d.commit()}catch(a){throw await wt(),a}return s}async listKeys(){let t={prefix:bw},e=[];for await(let n of this.components.datastore.query(t))e.push(JSON.parse(H(n.value)));return e}async findKeyById(t){try{let n=(await this.listKeys()).find(i=>i.id===t);if(n==null)throw(0,ft.default)(new Error(`Key with id '${t}' does not exist.`),nt.ERR_KEY_NOT_FOUND);return n}catch(e){throw await wt(),e}}async findKeyByName(t){if(!Yr(t))throw await wt(),(0,ft.default)(new Error(`Invalid key name '${t}'`),nt.ERR_INVALID_KEY_NAME);let e=Sn(t);try{let n=await this.components.datastore.get(e);return JSON.parse(H(n))}catch(n){throw await wt(),mc.error(n),(0,ft.default)(new Error(`Key '${t}' does not exist.`),nt.ERR_KEY_NOT_FOUND)}}async removeKey(t){if(!Yr(t)||t==="self")throw await wt(),(0,ft.default)(new Error(`Invalid key name '${t}'`),nt.ERR_INVALID_KEY_NAME);let e=_r(t),n=await this.findKeyByName(t),i=this.components.datastore.batch();return i.delete(e),i.delete(Sn(t)),await i.commit(),n}async renameKey(t,e){if(!Yr(t)||t==="self")throw await wt(),(0,ft.default)(new Error(`Invalid old key name '${t}'`),nt.ERR_OLD_KEY_NAME_INVALID);if(!Yr(e)||e==="self")throw await wt(),(0,ft.default)(new Error(`Invalid new key name '${e}'`),nt.ERR_NEW_KEY_NAME_INVALID);let n=_r(t),i=_r(e),o=Sn(t),s=Sn(e);if(await this.components.datastore.has(i))throw await wt(),(0,ft.default)(new Error(`Key '${e}' already exists`),nt.ERR_KEY_ALREADY_EXISTS);try{let c=await this.components.datastore.get(n),l=await this.components.datastore.get(o),u=JSON.parse(H(l));u.name=e;let f=this.components.datastore.batch();return f.put(i,c),f.put(s,U(JSON.stringify(u))),f.delete(n),f.delete(o),await f.commit(),u}catch(c){throw await wt(),c}}async exportKey(t,e){if(!Yr(t))throw await wt(),(0,ft.default)(new Error(`Invalid key name '${t}'`),nt.ERR_INVALID_KEY_NAME);if(e==null)throw await wt(),(0,ft.default)(new Error("Password is required"),nt.ERR_PASSWORD_REQUIRED);let n=_r(t);try{let i=await this.components.datastore.get(n),o=H(i),s=ii.get(this);if(s==null)throw(0,ft.default)(new Error("dek missing"),nt.ERR_INVALID_PARAMETERS);let a=s.dek;return await(await is(o,a)).export(e)}catch(i){throw await wt(),i}}async exportPeerId(t){let e="temporary-password",n=await this.exportKey(t,e),i=await is(n,e);return await nn(i.public.bytes,i.bytes)}async importKey(t,e,n){if(!Yr(t)||t==="self")throw await wt(),(0,ft.default)(new Error(`Invalid key name '${t}'`),nt.ERR_INVALID_KEY_NAME);if(e==null)throw await wt(),(0,ft.default)(new Error("PEM encoded key is required"),nt.ERR_PEM_REQUIRED);let i=_r(t);if(await this.components.datastore.has(i))throw await wt(),(0,ft.default)(new Error(`Key '${t}' already exists`),nt.ERR_KEY_ALREADY_EXISTS);let s;try{s=await is(e,n)}catch{throw await wt(),(0,ft.default)(new Error("Cannot read the key, most likely the password is wrong"),nt.ERR_CANNOT_READ_KEY)}let a;try{a=await s.id();let u=ii.get(this);if(u==null)throw(0,ft.default)(new Error("dek missing"),nt.ERR_INVALID_PARAMETERS);let f=u.dek;e=await s.export(f)}catch(u){throw await wt(),u}let c={name:t,id:a},l=this.components.datastore.batch();return l.put(i,U(e)),l.put(Sn(t),U(JSON.stringify(c))),await l.commit(),c}async importPeer(t,e){try{if(!Yr(t))throw(0,ft.default)(new Error(`Invalid key name '${t}'`),nt.ERR_INVALID_KEY_NAME);if(e==null)throw(0,ft.default)(new Error("PeerId is required"),nt.ERR_MISSING_PRIVATE_KEY);if(e.privateKey==null)throw(0,ft.default)(new Error("PeerId.privKey is required"),nt.ERR_MISSING_PRIVATE_KEY);let n=await eo(e.privateKey),i=_r(t);if(await this.components.datastore.has(i))throw await wt(),(0,ft.default)(new Error(`Key '${t}' already exists`),nt.ERR_KEY_ALREADY_EXISTS);let s=ii.get(this);if(s==null)throw(0,ft.default)(new Error("dek missing"),nt.ERR_INVALID_PARAMETERS);let a=s.dek,c=await n.export(a),l={name:t,id:e.toString()},u=this.components.datastore.batch();return u.put(i,U(c)),u.put(Sn(t),U(JSON.stringify(l))),await u.commit(),l}catch(n){throw await wt(),n}}async getPrivateKey(t){if(!Yr(t))throw await wt(),(0,ft.default)(new Error(`Invalid key name '${t}'`),nt.ERR_INVALID_KEY_NAME);try{let e=_r(t),n=await this.components.datastore.get(e);return H(n)}catch(e){throw await wt(),mc.error(e),(0,ft.default)(new Error(`Key '${t}' does not exist.`),nt.ERR_KEY_NOT_FOUND)}}async rotateKeychainPass(t,e){if(typeof t!="string")throw await wt(),(0,ft.default)(new Error(`Invalid old pass type '${typeof t}'`),nt.ERR_INVALID_OLD_PASS_TYPE);if(typeof e!="string")throw await wt(),(0,ft.default)(new Error(`Invalid new pass type '${typeof e}'`),nt.ERR_INVALID_NEW_PASS_TYPE);if(e.length<20)throw await wt(),(0,ft.default)(new Error(`Invalid pass length ${e.length}`),nt.ERR_INVALID_PASS_LENGTH);mc("recreating keychain");let n=ii.get(this);if(n==null)throw(0,ft.default)(new Error("dek missing"),nt.ERR_INVALID_PARAMETERS);let i=n.dek;this.init.pass=e;let o=e!=null&&this.init.dek?.salt!=null?os(e,this.init.dek.salt,this.init.dek?.iterationCount,this.init.dek?.keyLength,this.init.dek?.hash):"";ii.set(this,{dek:o});let s=await this.listKeys();for(let a of s){let c=await this.components.datastore.get(_r(a.name)),l=H(c),u=await is(l,i),f=o.toString(),d=await u.export(f),h=this.components.datastore.batch(),p={name:a.name,id:a.id};h.put(_r(a.name),U(d)),h.put(Sn(a.name),U(JSON.stringify(p))),await h.commit()}mc("keychain reconstructed")}};async function ss(r){try{return{status:"fulfilled",value:await r,isFulfilled:!0,isRejected:!1}}catch(t){return{status:"rejected",reason:t,isFulfilled:!1,isRejected:!0}}}var Vf=class{value;next;constructor(t){this.value=t}},as=class{#t;#e;#r;constructor(){this.clear()}enqueue(t){let e=new Vf(t);this.#t?(this.#e.next=e,this.#e=e):(this.#t=e,this.#e=e),this.#r++}dequeue(){let t=this.#t;if(t)return this.#t=this.#t.next,this.#r--,t.value}clear(){this.#t=void 0,this.#e=void 0,this.#r=0}get size(){return this.#r}*[Symbol.iterator](){let t=this.#t;for(;t;)yield t.value,t=t.next}};function qf(r){if(!((Number.isInteger(r)||r===Number.POSITIVE_INFINITY)&&r>0))throw new TypeError("Expected `concurrency` to be a number from 1 and up");let t=new as,e=0,n=()=>{e--,t.size>0&&t.dequeue()()},i=async(a,c,l)=>{e++;let u=(async()=>a(...l))();c(u);try{await u}catch{}n()},o=(a,c,l)=>{t.enqueue(i.bind(void 0,a,c,l)),(async()=>(await Promise.resolve(),e<r&&t.size>0&&t.dequeue()()))()},s=(a,...c)=>new Promise(l=>{o(a,l,c)});return Object.defineProperties(s,{activeCount:{get:()=>e},pendingCount:{get:()=>t.size},clearQueue:{value:()=>{t.clear()}}}),s}async function Hf(r,t={}){let{concurrency:e=Number.POSITIVE_INFINITY}=t,n=qf(e);return Promise.all(r.map(i=>i&&typeof i.then=="function"?ss(i):typeof i=="function"?ss(n(()=>i())):ss(Promise.resolve(i))))}var ro=I(W(),1);var $f=class extends Map{constructor(t){super();let{name:e,metrics:n}=t;this.metric=n.registerMetric(e),this.updateComponentMetric()}set(t,e){return super.set(t,e),this.updateComponentMetric(),this}delete(t){let e=super.delete(t);return this.updateComponentMetric(),e}clear(){super.clear(),this.updateComponentMetric()}updateComponentMetric(){this.metric.update(this.size)}};function cs(r){let{name:t,metrics:e}=r,n;return e!=null?n=new $f({name:t,metrics:e}):n=new Map,n}var ai=N("libp2p:transports"),yc=class extends Pt{constructor(t,e={}){super(),this.components=t,this.started=!1,this.transports=new Map,this.listeners=cs({name:"libp2p_transport_manager_listeners",metrics:this.components.metrics}),this.faultTolerance=e.faultTolerance??un.FATAL_ALL}add(t){let e=t[Symbol.toStringTag];if(e==null)throw(0,ro.default)(new Error("Transport must have a valid tag"),b.ERR_INVALID_KEY);if(this.transports.has(e))throw(0,ro.default)(new Error("There is already a transport with this tag"),b.ERR_DUPLICATE_TRANSPORT);ai("adding transport %s",e),this.transports.set(e,t),this.listeners.has(e)||this.listeners.set(e,[])}isStarted(){return this.started}async start(){let t=this.components.addressManager.getListenAddrs();await this.listen(t),this.started=!0}async stop(){let t=[];for(let[e,n]of this.listeners)for(ai("closing listeners for %s",e);n.length>0;){let i=n.pop();i!=null&&t.push(i.close())}await Promise.all(t),ai("all listeners closed");for(let e of this.listeners.keys())this.listeners.set(e,[]);this.started=!1}async dial(t,e){let n=this.transportForMultiaddr(t);if(n==null)throw(0,ro.default)(new Error(`No transport available for address ${String(t)}`),b.ERR_TRANSPORT_UNAVAILABLE);try{return await n.dial(t,{...e,upgrader:this.components.upgrader})}catch(i){throw i.code==null&&(i.code=b.ERR_TRANSPORT_DIAL_FAILED),i}}getAddrs(){let t=[];for(let e of this.listeners.values())for(let n of e)t=[...t,...n.getAddrs()];return t}getTransports(){return Array.of(...this.transports.values())}transportForMultiaddr(t){for(let e of this.transports.values())if(e.filter([t]).length>0)return e}async listen(t){if(t==null||t.length===0){ai("no addresses were provided for listening, this node is dial only");return}let e=[];for(let[n,i]of this.transports.entries()){let o=i.filter(t),s=[];for(let l of o){ai("creating listener for %s on %s",n,l);let u=i.createListener({upgrader:this.components.upgrader}),f=this.listeners.get(n);f==null&&(f=[],this.listeners.set(n,f)),f.push(u),u.addEventListener("listening",()=>{this.dispatchEvent(new q("listener:listening",{detail:u}))}),u.addEventListener("close",()=>{this.dispatchEvent(new q("listener:close",{detail:u}))}),s.push(u.listen(l))}if(s.length===0){e.push(n);continue}if((await Hf(s)).find(l=>l.isFulfilled)==null&&this.faultTolerance!==un.NO_FATAL)throw(0,ro.default)(new Error(`Transport (${n}) could not listen on any available address`),b.ERR_NO_VALID_ADDRESSES)}if(e.length===this.transports.size){let n=`no valid addresses were provided for transports [${e.join(", ")}]`;if(this.faultTolerance===un.FATAL_ALL)throw(0,ro.default)(new Error(n),b.ERR_NO_VALID_ADDRESSES);ai(`libp2p in dial mode only: ${n}`)}}async remove(t){ai("removing %s",t);for(let e of this.listeners.get(t)??[])await e.close();this.transports.delete(t),this.listeners.delete(t)}async removeAll(){let t=[];for(let e of this.transports.keys())t.push(this.remove(e));await Promise.all(t)}};var ee=I(W(),1);var Wr="/multistream/1.0.0";var Rw=I(W(),1);var zf=I(W(),1);var rR=N("libp2p:mss"),_w=U(`
49
- `);function ls(r){let t=new Ft(r,_w);return Me.single(t)}function ci(r,t,e={}){let n=ls(t);e.writeBytes===!0?r.push(n.subarray()):r.push(n)}function Sw(r,t,e={}){let n=new Ft;for(let i of t)n.append(ls(i));e.writeBytes===!0?r.push(n.subarray()):r.push(n)}async function nR(r,t){let e=1,n={[Symbol.asyncIterator]:()=>n,next:async()=>await r.next(e)},i=n;t?.signal!=null&&(i=Gn(n,t.signal));let s=await Lt(i,Te({onLength:a=>{e=a},maxDataLength:1024}),async a=>await Se(a));if(s==null||s.length===0)throw(0,zf.default)(new Error("no buffer returned"),"ERR_INVALID_MULTISTREAM_SELECT_MESSAGE");if(s.get(s.byteLength-1)!==_w[0])throw rR.error("Invalid mss message - missing newline - %s",s.subarray()),(0,zf.default)(new Error("missing newline"),"ERR_INVALID_MULTISTREAM_SELECT_MESSAGE");return s.sublist(0,-1)}async function no(r,t){let e=await nR(r,t);return H(e.subarray())}var us=N("libp2p:mss:select");async function fs(r,t,e={}){t=Array.isArray(t)?[...t]:[t];let{reader:n,writer:i,rest:o,stream:s}=Fi(r),a=t.shift();if(a==null)throw new Error("At least one protocol must be specified");us('select: write ["%s", "%s"]',Wr,a);let c=U(Wr),l=U(a);Sw(i,[c,l],e);let u=await no(n,e);if(us('select: read "%s"',u),u===Wr&&(u=await no(n,e),us('select: read "%s"',u)),u===a)return o(),{stream:s,protocol:a};for(let f of t){us('select: write "%s"',f),ci(i,U(f),e);let d=await no(n,e);if(us('select: read "%s" for "%s"',d,f),d===f)return o(),{stream:s,protocol:f}}throw o(),(0,Rw.default)(new Error("protocol selection failed"),"ERR_UNSUPPORTED_PROTOCOL")}var hs=N("libp2p:mss:handle");async function ds(r,t,e){t=Array.isArray(t)?t:[t];let{writer:n,reader:i,rest:o,stream:s}=Fi(r);for(;;){let a=await no(i,e);if(hs('read "%s"',a),a===Wr){hs('respond with "%s" for "%s"',Wr,a),ci(n,U(Wr),e);continue}if(t.includes(a))return ci(n,U(a),e),hs('respond with "%s" for "%s"',a,a),o(),{stream:s,protocol:a};if(a==="ls"){ci(n,new Ft(...t.map(c=>ls(U(c)))),e),hs('respond with "%s" for %s',t,a);continue}ci(n,U("na"),e),hs('respond with "na" for "%s"',a)}}var Gf=I(W(),1);var Iw=Symbol.for("@libp2p/connection");var oR=N("libp2p:connection"),Yf=class{constructor(t){let{remoteAddr:e,remotePeer:n,newStream:i,close:o,getStreams:s,stat:a}=t;this.id=`${parseInt(String(Math.random()*1e9)).toString(36)}${Date.now()}`,this.remoteAddr=e,this.remotePeer=n,this.stat={...a,status:aa},this._newStream=i,this._close=o,this._getStreams=s,this.tags=[],this._closing=!1}get[Symbol.toStringTag](){return"Connection"}get[Iw](){return!0}get streams(){return this._getStreams()}async newStream(t,e){if(this.stat.status===ru)throw(0,Gf.default)(new Error("the connection is being closed"),"ERR_CONNECTION_BEING_CLOSED");if(this.stat.status===ca)throw(0,Gf.default)(new Error("the connection is closed"),"ERR_CONNECTION_CLOSED");Array.isArray(t)||(t=[t]);let n=await this._newStream(t,e);return n.stat.direction="outbound",n}addStream(t){t.stat.direction="inbound"}removeStream(t){}async close(){if(!(this.stat.status===ca||this._closing)){this.stat.status=ru;try{this.streams.forEach(t=>t.close())}catch(t){oR.error(t)}this._closing=!0,await this._close(),this._closing=!1,this.stat.timeline.close=Date.now(),this.stat.status=ca}}};function Tw(r){return new Yf(r)}var gc=I(W(),1);var sR=Symbol.for("@libp2p/topology");function Cw(r){return r!=null&&Boolean(r[sR])}var Wf=N("libp2p:registrar"),Qf=32,Xf=64,wc=class{constructor(t){this.topologies=new Map,this.handlers=new Map,this.components=t,this._onDisconnect=this._onDisconnect.bind(this),this._onProtocolChange=this._onProtocolChange.bind(this),this._onConnect=this._onConnect.bind(this),this.components.connectionManager.addEventListener("peer:disconnect",this._onDisconnect),this.components.connectionManager.addEventListener("peer:connect",this._onConnect),this.components.peerStore.addEventListener("change:protocols",this._onProtocolChange)}getProtocols(){return Array.from(new Set([...this.topologies.keys(),...this.handlers.keys()])).sort()}getHandler(t){let e=this.handlers.get(t);if(e==null)throw(0,gc.default)(new Error(`No handler registered for protocol ${t}`),b.ERR_NO_HANDLER_FOR_PROTOCOL);return e}getTopologies(t){let e=this.topologies.get(t);return e==null?[]:[...e.values()]}async handle(t,e,n){if(this.handlers.has(t))throw(0,gc.default)(new Error(`Handler already registered for protocol ${t}`),b.ERR_PROTOCOL_HANDLER_ALREADY_REGISTERED);let i=Ne.bind({ignoreUndefined:!0})({maxInboundStreams:Qf,maxOutboundStreams:Xf},n);this.handlers.set(t,{handler:e,options:i}),await this.components.peerStore.protoBook.add(this.components.peerId,[t])}async unhandle(t){let e=Array.isArray(t)?t:[t];e.forEach(n=>{this.handlers.delete(n)}),await this.components.peerStore.protoBook.remove(this.components.peerId,e)}async register(t,e){if(!Cw(e))throw Wf.error("topology must be an instance of interfaces/topology"),(0,gc.default)(new Error("topology must be an instance of interfaces/topology"),b.ERR_INVALID_PARAMETERS);let n=`${(Math.random()*1e9).toString(36)}${Date.now()}`,i=this.topologies.get(t);return i==null&&(i=new Map,this.topologies.set(t,i)),i.set(n,e),await e.setRegistrar(this),n}unregister(t){for(let[e,n]of this.topologies.entries())n.has(t)&&(n.delete(t),n.size===0&&this.topologies.delete(e))}_onDisconnect(t){let e=t.detail;this.components.peerStore.protoBook.get(e.remotePeer).then(n=>{for(let i of n){let o=this.topologies.get(i);if(o!=null)for(let s of o.values())s.onDisconnect(e.remotePeer)}}).catch(n=>{Wf.error(n)})}_onConnect(t){let e=t.detail;this.components.peerStore.protoBook.get(e.remotePeer).then(n=>{for(let i of n){let o=this.topologies.get(i);if(o!=null)for(let s of o.values())s.onConnect(e.remotePeer,e)}}).catch(n=>{Wf.error(n)})}_onProtocolChange(t){let{peerId:e,protocols:n,oldProtocols:i}=t.detail,o=i.filter(a=>!n.includes(a)),s=n.filter(a=>!i.includes(a));for(let a of o){let c=this.topologies.get(a);if(c!=null)for(let l of c.values())l.onDisconnect(e)}for(let a of s){let c=this.topologies.get(a);if(c!=null)for(let l of c.values()){let u=this.components.connectionManager.getConnections(e)[0];u!=null&&l.onConnect(e,u)}}}};var Zf=I(Nr(),1);var Jf=I(lr(),1),Rt=N("libp2p:upgrader");function aR(r,t){try{let{options:e}=t.getHandler(r);return e.maxInboundStreams}catch(e){if(e.code!==b.ERR_NO_HANDLER_FOR_PROTOCOL)throw e}return Qf}function cR(r,t){try{let{options:e}=t.getHandler(r);return e.maxOutboundStreams}catch(e){if(e.code!==b.ERR_NO_HANDLER_FOR_PROTOCOL)throw e}return Xf}function Dw(r,t,e){let n=0;return e.streams.forEach(i=>{i.stat.direction===t&&i.stat.protocol===r&&n++}),n}var Ec=class extends Pt{constructor(t,e){super(),this.components=t,this.connectionEncryption=new Map,e.connectionEncryption.forEach(n=>{this.connectionEncryption.set(n.protocol,n)}),this.muxers=new Map,e.muxers.forEach(n=>{this.muxers.set(n.protocol,n)}),this.inboundUpgradeTimeout=e.inboundUpgradeTimeout}async upgradeInbound(t,e){if(!await this.components.connectionManager.acceptIncomingConnection(t))throw(0,ee.default)(new Error("connection denied"),b.ERR_CONNECTION_DENIED);let i,o,s,a,c,l=new Zf.TimeoutController(this.inboundUpgradeTimeout);try{(0,Jf.setMaxListeners)?.(1/0,l.signal)}catch{}try{let u=Re(t,l.signal);if(t.source=u.source,t.sink=u.sink,await this.components.connectionGater.denyInboundConnection(t))throw(0,ee.default)(new Error("The multiaddr connection is blocked by gater.acceptConnection"),b.ERR_CONNECTION_INTERCEPTED);this.components.metrics?.trackMultiaddrConnection(t),Rt("starting the inbound connection upgrade");let f=t;if(e?.skipProtection!==!0){let d=this.components.connectionProtector;d!=null&&(Rt("protecting the inbound connection"),f=await d.protect(t))}try{if(i=f,e?.skipEncryption!==!0){if({conn:i,remotePeer:o,protocol:c}=await this._encryptInbound(f),await this.components.connectionGater.denyInboundEncryptedConnection(o,{...f,...i}))throw(0,ee.default)(new Error("The multiaddr connection is blocked by gater.acceptEncryptedConnection"),b.ERR_CONNECTION_INTERCEPTED)}else{let d=t.remoteAddr.getPeerId();if(d==null)throw(0,ee.default)(new Error("inbound connection that skipped encryption must have a peer id"),b.ERR_INVALID_MULTIADDR);let h=tt(d);c="native",o=h}if(s=i,e?.muxerFactory!=null)a=e.muxerFactory;else if(this.muxers.size>0){let d=await this._multiplexInbound({...f,...i},this.muxers);a=d.muxerFactory,s=d.stream}}catch(d){throw Rt.error("Failed to upgrade inbound connection",d),d}if(await this.components.connectionGater.denyInboundUpgradedConnection(o,{...f,...i}))throw(0,ee.default)(new Error("The multiaddr connection is blocked by gater.acceptEncryptedConnection"),b.ERR_CONNECTION_INTERCEPTED);return Rt("Successfully upgraded inbound connection"),this._createConnection({cryptoProtocol:c,direction:"inbound",maConn:t,upgradedConn:s,muxerFactory:a,remotePeer:o})}finally{this.components.connectionManager.afterUpgradeInbound(),l.clear()}}async upgradeOutbound(t,e){let n=t.remoteAddr.getPeerId(),i;if(n!=null&&(i=tt(n),await this.components.connectionGater.denyOutboundConnection(i,t)))throw(0,ee.default)(new Error("The multiaddr connection is blocked by connectionGater.denyOutboundConnection"),b.ERR_CONNECTION_INTERCEPTED);let o,s,a,c,l;this.components.metrics?.trackMultiaddrConnection(t),Rt("Starting the outbound connection upgrade");let u=t;if(e?.skipProtection!==!0){let f=this.components.connectionProtector;f!=null&&(u=await f.protect(t))}try{if(o=u,e?.skipEncryption!==!0){if({conn:o,remotePeer:s,protocol:c}=await this._encryptOutbound(u,i),await this.components.connectionGater.denyOutboundEncryptedConnection(s,{...u,...o}))throw(0,ee.default)(new Error("The multiaddr connection is blocked by gater.acceptEncryptedConnection"),b.ERR_CONNECTION_INTERCEPTED)}else{if(i==null)throw(0,ee.default)(new Error("Encryption was skipped but no peer id was passed"),b.ERR_INVALID_PEER);c="native",s=i}if(a=o,e?.muxerFactory!=null)l=e.muxerFactory;else if(this.muxers.size>0){let f=await this._multiplexOutbound({...u,...o},this.muxers);l=f.muxerFactory,a=f.stream}}catch(f){throw Rt.error("Failed to upgrade outbound connection",f),await t.close(f),f}if(await this.components.connectionGater.denyOutboundUpgradedConnection(s,{...u,...o}))throw(0,ee.default)(new Error("The multiaddr connection is blocked by gater.acceptEncryptedConnection"),b.ERR_CONNECTION_INTERCEPTED);return Rt("Successfully upgraded outbound connection"),this._createConnection({cryptoProtocol:c,direction:"outbound",maConn:t,upgradedConn:a,muxerFactory:l,remotePeer:s})}_createConnection(t){let{cryptoProtocol:e,direction:n,maConn:i,upgradedConn:o,remotePeer:s,muxerFactory:a}=t,c,l,u;a!=null&&(c=a.createStreamMuxer({direction:n,onIncomingStream:h=>{u!=null&&Promise.resolve().then(async()=>{let p=this.components.registrar.getProtocols(),{stream:m,protocol:y}=await ds(h,p);if(Rt("%s: incoming stream opened on %s",n,y),u==null)return;let g=aR(y,this.components.registrar);if(Dw(y,"inbound",u)===g){h.abort((0,ee.default)(new Error(`Too many inbound protocol streams for protocol "${y}" - limit ${g}`),b.ERR_TOO_MANY_INBOUND_PROTOCOL_STREAMS));return}h.source=m.source,h.sink=m.sink,h.stat.protocol=y,this.components.peerStore.protoBook.add(s,[y]).catch(_=>Rt.error(_)),u.addStream(h),this.components.metrics?.trackProtocolStream(h,u),this._onStream({connection:u,stream:h,protocol:y})}).catch(p=>{Rt.error(p),h.stat.timeline.close==null&&h.close()})},onStreamEnd:h=>{u?.removeStream(h.id)}}),l=async(h,p={})=>{if(c==null)throw(0,ee.default)(new Error("Stream is not multiplexed"),b.ERR_MUXER_UNAVAILABLE);Rt("%s: starting new stream on %s",n,h);let m=await c.newStream(),y;try{if(p.signal==null){Rt("No abort signal was passed while trying to negotiate protocols %s falling back to default timeout",h),y=new Zf.TimeoutController(3e4),p.signal=y.signal;try{(0,Jf.setMaxListeners)?.(1/0,y.signal)}catch{}}let{stream:g,protocol:E}=await fs(m,h,p),_=cR(E,this.components.registrar);if(Dw(E,"outbound",u)===_){let C=(0,ee.default)(new Error(`Too many outbound protocol streams for protocol "${E}" - limit ${_}`),b.ERR_TOO_MANY_OUTBOUND_PROTOCOL_STREAMS);throw m.abort(C),C}return this.components.peerStore.protoBook.add(s,[E]).catch(C=>Rt.error(C)),m.source=g.source,m.sink=g.sink,m.stat.protocol=E,this.components.metrics?.trackProtocolStream(m,u),m}catch(g){throw Rt.error("could not create new stream",g),m.stat.timeline.close==null&&m.close(),g.code!=null?g:(0,ee.default)(g,b.ERR_UNSUPPORTED_PROTOCOL)}finally{y?.clear()}},Promise.all([c.sink(o.source),o.sink(c.source)]).catch(h=>{Rt.error(h)}));let f=i.timeline;i.timeline=new Proxy(f,{set:(...h)=>(u!=null&&h[1]==="close"&&h[2]!=null&&f.close==null&&(async()=>{try{u.stat.status==="OPEN"&&await u.close()}catch(p){Rt.error(p)}finally{this.dispatchEvent(new q("connectionEnd",{detail:u}))}})().catch(p=>{Rt.error(p)}),Reflect.set(...h))}),i.timeline.upgraded=Date.now();let d=()=>{throw(0,ee.default)(new Error("connection is not multiplexed"),b.ERR_CONNECTION_NOT_MULTIPLEXED)};return u=Tw({remoteAddr:i.remoteAddr,remotePeer:s,stat:{status:"OPEN",direction:n,timeline:i.timeline,multiplexer:c?.protocol,encryption:e},newStream:l??d,getStreams:()=>c!=null?c.streams:d(),close:async()=>{await i.close(),c?.close()}}),this.dispatchEvent(new q("connection",{detail:u})),u}_onStream(t){let{connection:e,stream:n,protocol:i}=t,{handler:o}=this.components.registrar.getHandler(i);o({connection:e,stream:n})}async _encryptInbound(t){let e=Array.from(this.connectionEncryption.keys());Rt("handling inbound crypto protocol selection",e);try{let{stream:n,protocol:i}=await ds(t,e,{writeBytes:!0}),o=this.connectionEncryption.get(i);if(o==null)throw new Error(`no crypto module found for ${i}`);return Rt("encrypting inbound connection..."),{...await o.secureInbound(this.components.peerId,n),protocol:i}}catch(n){throw(0,ee.default)(n,b.ERR_ENCRYPTION_FAILED)}}async _encryptOutbound(t,e){let n=Array.from(this.connectionEncryption.keys());Rt("selecting outbound crypto protocol",n);try{let{stream:i,protocol:o}=await fs(t,n,{writeBytes:!0}),s=this.connectionEncryption.get(o);if(s==null)throw new Error(`no crypto module found for ${o}`);return Rt("encrypting outbound connection to %p",e),{...await s.secureOutbound(this.components.peerId,i,e),protocol:o}}catch(i){throw(0,ee.default)(i,b.ERR_ENCRYPTION_FAILED)}}async _multiplexOutbound(t,e){let n=Array.from(e.keys());Rt("outbound selecting muxer %s",n);try{let{stream:i,protocol:o}=await fs(t,n,{writeBytes:!0});Rt("%s selected as muxer protocol",o);let s=e.get(o);return{stream:i,muxerFactory:s}}catch(i){throw Rt.error("error multiplexing outbound stream",i),(0,ee.default)(i,b.ERR_MUXER_UNAVAILABLE)}}async _multiplexInbound(t,e){let n=Array.from(e.keys());Rt("inbound handling muxers %s",n);try{let{stream:i,protocol:o}=await ds(t,n,{writeBytes:!0}),s=e.get(o);return{stream:i,muxerFactory:s}}catch(i){throw Rt.error("error multiplexing inbound stream",i),(0,ee.default)(i,b.ERR_MUXER_UNAVAILABLE)}}};var ui=I(W(),1);var li;(function(r){let t;r.codec=()=>(t==null&&(t=St((e,n,i={})=>{if(i.lengthDelimited!==!1&&n.fork(),e.protocolVersion!=null&&(n.uint32(42),n.string(e.protocolVersion)),e.agentVersion!=null&&(n.uint32(50),n.string(e.agentVersion)),e.publicKey!=null&&(n.uint32(10),n.bytes(e.publicKey)),e.listenAddrs!=null)for(let o of e.listenAddrs)n.uint32(18),n.bytes(o);if(e.observedAddr!=null&&(n.uint32(34),n.bytes(e.observedAddr)),e.protocols!=null)for(let o of e.protocols)n.uint32(26),n.string(o);e.signedPeerRecord!=null&&(n.uint32(66),n.bytes(e.signedPeerRecord)),i.lengthDelimited!==!1&&n.ldelim()},(e,n)=>{let i={listenAddrs:[],protocols:[]},o=n==null?e.len:e.pos+n;for(;e.pos<o;){let s=e.uint32();switch(s>>>3){case 5:i.protocolVersion=e.string();break;case 6:i.agentVersion=e.string();break;case 1:i.publicKey=e.bytes();break;case 2:i.listenAddrs.push(e.bytes());break;case 4:i.observedAddr=e.bytes();break;case 3:i.protocols.push(e.string());break;case 8:i.signedPeerRecord=e.bytes();break;default:e.skipType(s&7);break}}return i})),t),r.encode=e=>_t(e,r.codec()),r.decode=e=>bt(e,r.codec())})(li||(li={}));var Lw=I(W(),1);var Pw={ERR_SIGNATURE_NOT_VALID:"ERR_SIGNATURE_NOT_VALID"};var ps;(function(r){let t;r.codec=()=>(t==null&&(t=St((e,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),(i.writeDefaults===!0||e.publicKey!=null&&e.publicKey.byteLength>0)&&(n.uint32(10),n.bytes(e.publicKey)),(i.writeDefaults===!0||e.payloadType!=null&&e.payloadType.byteLength>0)&&(n.uint32(18),n.bytes(e.payloadType)),(i.writeDefaults===!0||e.payload!=null&&e.payload.byteLength>0)&&(n.uint32(26),n.bytes(e.payload)),(i.writeDefaults===!0||e.signature!=null&&e.signature.byteLength>0)&&(n.uint32(42),n.bytes(e.signature)),i.lengthDelimited!==!1&&n.ldelim()},(e,n)=>{let i={publicKey:new Uint8Array(0),payloadType:new Uint8Array(0),payload:new Uint8Array(0),signature:new Uint8Array(0)},o=n==null?e.len:e.pos+n;for(;e.pos<o;){let s=e.uint32();switch(s>>>3){case 1:i.publicKey=e.bytes();break;case 2:i.payloadType=e.bytes();break;case 3:i.payload=e.bytes();break;case 5:i.signature=e.bytes();break;default:e.skipType(s&7);break}}return i})),t),r.encode=e=>_t(e,r.codec()),r.decode=e=>bt(e,r.codec())})(ps||(ps={}));var lR,re=class{constructor(t){let{peerId:e,payloadType:n,payload:i,signature:o}=t;this.peerId=e,this.payloadType=n,this.payload=i,this.signature=o}marshal(){if(this.peerId.publicKey==null)throw new Error("Missing public key");return this.marshaled==null&&(this.marshaled=ps.encode({publicKey:this.peerId.publicKey,payloadType:this.payloadType,payload:this.payload.subarray(),signature:this.signature})),this.marshaled}equals(t){return xt(this.marshal(),t.marshal())}async validate(t){let e=Bw(t,this.payloadType,this.payload);if(this.peerId.publicKey==null)throw new Error("Missing public key");return await ns(this.peerId.publicKey).verify(e.subarray(),this.signature)}};lR=re;re.createFromProtobuf=async r=>{let t=ps.decode(r),e=await nn(t.publicKey);return new re({peerId:e,payloadType:t.payloadType,payload:t.payload,signature:t.signature})};re.seal=async(r,t)=>{if(t.privateKey==null)throw new Error("Missing private key");let e=r.domain,n=r.codec,i=r.marshal(),o=Bw(e,n,i),a=await(await eo(t.privateKey)).sign(o.subarray());return new re({peerId:t,payloadType:n,payload:i,signature:a})};re.openAndCertify=async(r,t)=>{let e=await re.createFromProtobuf(r);if(!await e.validate(t))throw(0,Lw.default)(new Error("envelope signature is not valid for the given domain"),Pw.ERR_SIGNATURE_NOT_VALID);return e};var Bw=(r,t,e)=>{let n=U(r),i=Xe.encode(n.byteLength),o=Xe.encode(t.length),s=Xe.encode(e.length);return new Ft(i,n,o,t,s,e)};function Nw(r,t){let e=(n,i)=>n.toString().localeCompare(i.toString());return r.length!==t.length?!1:(t.sort(e),r.sort(e).every((n,i)=>t[i].equals(n)))}var ms;(function(r){let t;(function(n){let i;n.codec=()=>(i==null&&(i=St((o,s,a={})=>{a.lengthDelimited!==!1&&s.fork(),(a.writeDefaults===!0||o.multiaddr!=null&&o.multiaddr.byteLength>0)&&(s.uint32(10),s.bytes(o.multiaddr)),a.lengthDelimited!==!1&&s.ldelim()},(o,s)=>{let a={multiaddr:new Uint8Array(0)},c=s==null?o.len:o.pos+s;for(;o.pos<c;){let l=o.uint32();switch(l>>>3){case 1:a.multiaddr=o.bytes();break;default:o.skipType(l&7);break}}return a})),i),n.encode=o=>_t(o,n.codec()),n.decode=o=>bt(o,n.codec())})(t=r.AddressInfo||(r.AddressInfo={}));let e;r.codec=()=>(e==null&&(e=St((n,i,o={})=>{if(o.lengthDelimited!==!1&&i.fork(),(o.writeDefaults===!0||n.peerId!=null&&n.peerId.byteLength>0)&&(i.uint32(10),i.bytes(n.peerId)),(o.writeDefaults===!0||n.seq!==0n)&&(i.uint32(16),i.uint64(n.seq)),n.addresses!=null)for(let s of n.addresses)i.uint32(26),r.AddressInfo.codec().encode(s,i,{writeDefaults:!0});o.lengthDelimited!==!1&&i.ldelim()},(n,i)=>{let o={peerId:new Uint8Array(0),seq:0n,addresses:[]},s=i==null?n.len:n.pos+i;for(;n.pos<s;){let a=n.uint32();switch(a>>>3){case 1:o.peerId=n.bytes();break;case 2:o.seq=n.uint64();break;case 3:o.addresses.push(r.AddressInfo.codec().decode(n,n.uint32()));break;default:n.skipType(a&7);break}}return o})),e),r.encode=n=>_t(n,r.codec()),r.decode=n=>bt(n,r.codec())})(ms||(ms={}));var Ow="libp2p-peer-record",kw=Uint8Array.from([3,1]);var Xt=class{constructor(t){this.domain=Xt.DOMAIN,this.codec=Xt.CODEC;let{peerId:e,multiaddrs:n,seqNumber:i}=t;this.peerId=e,this.multiaddrs=n??[],this.seqNumber=i??BigInt(Date.now())}marshal(){return this.marshaled==null&&(this.marshaled=ms.encode({peerId:this.peerId.toBytes(),seq:BigInt(this.seqNumber),addresses:this.multiaddrs.map(t=>({multiaddr:t.bytes}))})),this.marshaled}equals(t){return!(!(t instanceof Xt)||!this.peerId.equals(t.peerId)||this.seqNumber!==t.seqNumber||!Nw(this.multiaddrs,t.multiaddrs))}};Xt.createFromProtobuf=r=>{let t=ms.decode(r),e=rn(t.peerId),n=(t.addresses??[]).map(o=>j(o.multiaddr)),i=t.seq;return new Xt({peerId:e,multiaddrs:n,seqNumber:i})};Xt.DOMAIN=Ow;Xt.CODEC=kw;var xc="0.0.0",Mw="libp2p";var jf=`js-libp2p/${xc}`;var Uw="0.1.0",Fw="id",Kw="id/push",Vw="1.0.0",qw="1.0.0";var ys=I(Nr(),1);var gs=I(lr(),1),vt=N("libp2p:identify"),Hw=1024*8,io=class{constructor(t,e){this.components=t,this.started=!1,this.init=e,this.identifyProtocolStr=`/${e.protocolPrefix}/${Fw}/${Vw}`,this.identifyPushProtocolStr=`/${e.protocolPrefix}/${Kw}/${qw}`,this.host={protocolVersion:`${e.protocolPrefix}/${Uw}`,...e.host},this.components.connectionManager.addEventListener("peer:connect",n=>{let i=n.detail;this.identify(i).catch(vt.error)}),this.components.peerStore.addEventListener("change:multiaddrs",n=>{let{peerId:i}=n.detail;this.components.peerId.equals(i)&&this.pushToPeerStore().catch(o=>vt.error(o))}),this.components.peerStore.addEventListener("change:protocols",n=>{let{peerId:i}=n.detail;this.components.peerId.equals(i)&&this.pushToPeerStore().catch(o=>vt.error(o))})}isStarted(){return this.started}async start(){this.started||(await this.components.peerStore.metadataBook.setValue(this.components.peerId,"AgentVersion",U(this.host.agentVersion)),await this.components.peerStore.metadataBook.setValue(this.components.peerId,"ProtocolVersion",U(this.host.protocolVersion)),await this.components.registrar.handle(this.identifyProtocolStr,t=>{this._handleIdentify(t).catch(e=>{vt.error(e)})},{maxInboundStreams:this.init.maxInboundStreams,maxOutboundStreams:this.init.maxOutboundStreams}),await this.components.registrar.handle(this.identifyPushProtocolStr,t=>{this._handlePush(t).catch(e=>{vt.error(e)})},{maxInboundStreams:this.init.maxPushIncomingStreams,maxOutboundStreams:this.init.maxPushOutgoingStreams}),this.started=!0)}async stop(){await this.components.registrar.unhandle(this.identifyProtocolStr),await this.components.registrar.unhandle(this.identifyPushProtocolStr),this.started=!1}async push(t){let e=await this.components.peerStore.addressBook.getRawEnvelope(this.components.peerId),n=this.components.addressManager.getAddresses().map(s=>s.bytes),i=await this.components.peerStore.protoBook.get(this.components.peerId),o=t.map(async s=>{let a,c=new ys.TimeoutController(this.init.timeout);try{(0,gs.setMaxListeners)?.(1/0,c.signal)}catch{}try{a=await s.newStream([this.identifyPushProtocolStr],{signal:c.signal}),await Re(a,c.signal).sink(Lt([li.encode({listenAddrs:n,signedPeerRecord:e,protocols:i})],Me()))}catch(l){vt.error("could not push identify update to peer",l)}finally{a?.close(),c.clear()}});await Promise.all(o)}async pushToPeerStore(){if(!this.isStarted())return;let t=[];for(let e of this.components.connectionManager.getConnections()){let n=e.remotePeer;(await this.components.peerStore.get(n)).protocols.includes(this.identifyPushProtocolStr)&&t.push(e)}await this.push(t)}async _identify(t,e={}){let n,i=e.signal,o;if(i==null){n=new ys.TimeoutController(this.init.timeout),i=n.signal;try{(0,gs.setMaxListeners)?.(1/0,n.signal)}catch{}}try{o=await t.newStream([this.identifyProtocolStr],{signal:i});let s=Re(o,i),a=await Lt([],s,Te({maxDataLength:this.init.maxIdentifyMessageSize??Hw}),async c=>await Se(c));if(a==null)throw(0,ui.default)(new Error("No data could be retrieved"),b.ERR_CONNECTION_ENDED);try{return li.decode(a)}catch(c){throw(0,ui.default)(c,b.ERR_INVALID_MESSAGE)}}finally{n?.clear(),o?.close()}}async identify(t,e={}){let n=await this._identify(t,e),{publicKey:i,listenAddrs:o,protocols:s,observedAddr:a,signedPeerRecord:c,agentVersion:l,protocolVersion:u}=n;if(i==null)throw(0,ui.default)(new Error("public key was missing from identify message"),b.ERR_MISSING_PUBLIC_KEY);let f=await nn(i);if(!t.remotePeer.equals(f))throw(0,ui.default)(new Error("identified peer does not match the expected peer"),b.ERR_INVALID_PEER);if(this.components.peerId.equals(f))throw(0,ui.default)(new Error("identified peer is our own peer id?"),b.ERR_INVALID_PEER);let d=io.getCleanMultiaddr(a);if(c!=null){vt("received signed peer record from %p",f);try{let h=await re.openAndCertify(c,Xt.DOMAIN);if(!h.peerId.equals(f))throw(0,ui.default)(new Error("identified peer does not match the expected peer"),b.ERR_INVALID_PEER);if(await this.components.peerStore.addressBook.consumePeerRecord(h)){await this.components.peerStore.protoBook.set(f,s),l!=null&&await this.components.peerStore.metadataBook.setValue(f,"AgentVersion",U(l)),u!=null&&await this.components.peerStore.metadataBook.setValue(f,"ProtocolVersion",U(u)),vt("identify completed for peer %p and protocols %o",f,s);return}}catch(h){vt("received invalid envelope, discard it and fallback to listenAddrs is available",h)}}else vt("no signed peer record received from %p",f);vt("falling back to legacy addresses from %p",f);try{await this.components.peerStore.addressBook.set(f,o.map(h=>j(h)))}catch(h){vt.error("received invalid addrs",h)}await this.components.peerStore.protoBook.set(f,s),l!=null&&await this.components.peerStore.metadataBook.setValue(f,"AgentVersion",U(l)),u!=null&&await this.components.peerStore.metadataBook.setValue(f,"ProtocolVersion",U(u)),vt("identify completed for peer %p and protocols %o",f,s),vt("received observed address of %s",d?.toString())}async _handleIdentify(t){let{connection:e,stream:n}=t,i=new ys.TimeoutController(this.init.timeout);try{(0,gs.setMaxListeners)?.(1/0,i.signal)}catch{}try{let o=this.components.peerId.publicKey??new Uint8Array(0),s=await this.components.peerStore.get(this.components.peerId),a=this.components.addressManager.getAddresses().map(d=>d.decapsulateCode(mt("p2p").code)),c=s.peerRecordEnvelope;if(a.length>0&&c==null){let d=new Xt({peerId:this.components.peerId,multiaddrs:a}),h=await re.seal(d,this.components.peerId);await this.components.peerStore.addressBook.consumePeerRecord(h),c=h.marshal().subarray()}let l=li.encode({protocolVersion:this.host.protocolVersion,agentVersion:this.host.agentVersion,publicKey:o,listenAddrs:a.map(d=>d.bytes),signedPeerRecord:c,observedAddr:e.remoteAddr.bytes,protocols:s.protocols}),u=Re(n,i.signal),f=Lt([l],Me());await u.sink(f)}catch(o){vt.error("could not respond to identify request",o)}finally{n.close(),i.clear()}}async _handlePush(t){let{connection:e,stream:n}=t,i=new ys.TimeoutController(this.init.timeout);try{(0,gs.setMaxListeners)?.(1/0,i.signal)}catch{}let o;try{let a=Re(n,i.signal),c=await Lt([],a,Te({maxDataLength:this.init.maxIdentifyMessageSize??Hw}),async l=>await Se(l));c!=null&&(o=li.decode(c))}catch(a){return vt.error("received invalid message",a)}finally{n.close(),i.clear()}if(o==null)return vt.error("received invalid message");let s=e.remotePeer;if(this.components.peerId.equals(s)){vt("received push from ourselves?");return}if(vt("received push from %p",s),o.signedPeerRecord!=null){vt("received signedPeerRecord in push");try{let a=await re.openAndCertify(o.signedPeerRecord,Xt.DOMAIN);if(await this.components.peerStore.addressBook.consumePeerRecord(a)){vt("consumed signedPeerRecord sent in push"),await this.components.peerStore.protoBook.set(s,o.protocols);return}else vt("failed to consume signedPeerRecord sent in push")}catch(a){vt("received invalid envelope, discard it and fallback to listenAddrs is available",a)}}else vt("did not receive signedPeerRecord in push");try{await this.components.peerStore.addressBook.set(s,o.listenAddrs.map(a=>j(a)))}catch(a){vt.error("received invalid addrs",a)}try{await this.components.peerStore.protoBook.set(s,o.protocols)}catch(a){vt.error("received invalid protocols",a)}vt("handled push from %p",s)}static getCleanMultiaddr(t){if(t!=null&&t.length>0)try{return j(t)}catch{}}};var oo=I(W(),1);var ws;(function(r){let t;r.codec=()=>(t==null&&(t=St((e,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),(i.writeDefaults===!0||e.identifier!=="")&&(n.uint32(10),n.string(e.identifier)),i.lengthDelimited!==!1&&n.ldelim()},(e,n)=>{let i={identifier:""},o=n==null?e.len:e.pos+n;for(;e.pos<o;){let s=e.uint32();switch(s>>>3){case 1:i.identifier=e.string();break;default:e.skipType(s&7);break}}return i})),t),r.encode=e=>_t(e,r.codec()),r.decode=e=>bt(e,r.codec())})(ws||(ws={}));var nr;(function(r){let t;(function(i){i.OK="OK",i.NOT_FOUND="NOT_FOUND",i.ERROR="ERROR"})(t=r.StatusCode||(r.StatusCode={}));let e;(function(i){i[i.OK=0]="OK",i[i.NOT_FOUND=1]="NOT_FOUND",i[i.ERROR=2]="ERROR"})(e||(e={})),function(i){i.codec=()=>ln(e)}(t=r.StatusCode||(r.StatusCode={}));let n;r.codec=()=>(n==null&&(n=St((i,o,s={})=>{s.lengthDelimited!==!1&&o.fork(),(s.writeDefaults===!0||i.status!=null&&e[i.status]!==0)&&(o.uint32(8),r.StatusCode.codec().encode(i.status,o)),(s.writeDefaults===!0||i.data!=null&&i.data.byteLength>0)&&(o.uint32(18),o.bytes(i.data)),s.lengthDelimited!==!1&&o.ldelim()},(i,o)=>{let s={status:t.OK,data:new Uint8Array(0)},a=o==null?i.len:i.pos+o;for(;i.pos<a;){let c=i.uint32();switch(c>>>3){case 1:s.status=r.StatusCode.codec().decode(i);break;case 2:s.data=i.bytes();break;default:i.skipType(c&7);break}}return s})),n),r.encode=i=>_t(i,r.codec()),r.decode=i=>bt(i,r.codec())})(nr||(nr={}));var $w="0.0.1",zw="fetch";var Gw=I(Nr(),1),Yw=I(lr(),1);var He=N("libp2p:fetch"),vc=class{constructor(t,e){this.started=!1,this.components=t,this.protocol=`/${e.protocolPrefix??"libp2p"}/${zw}/${$w}`,this.lookupFunctions=new Map,this.handleMessage=this.handleMessage.bind(this),this.init=e}async start(){await this.components.registrar.handle(this.protocol,t=>{this.handleMessage(t).catch(e=>{He.error(e)}).finally(()=>{t.stream.close()})},{maxInboundStreams:this.init.maxInboundStreams,maxOutboundStreams:this.init.maxOutboundStreams}),this.started=!0}async stop(){await this.components.registrar.unhandle(this.protocol),this.started=!1}isStarted(){return this.started}async fetch(t,e,n={}){He("dialing %s to %p",this.protocol,t);let i=await this.components.connectionManager.openConnection(t,n),o,s=n.signal,a;if(s==null){He("using default timeout of %d ms",this.init.timeout),o=new Gw.TimeoutController(this.init.timeout),s=o.signal;try{(0,Yw.setMaxListeners)?.(1/0,o.signal)}catch{}}try{a=await i.newStream(this.protocol,{signal:s});let c=Re(a,s);return He("fetch %s",e),await Lt([ws.encode({identifier:e})],Me(),c,Te(),async function(u){let f=await Se(u);if(f==null)throw(0,oo.default)(new Error("No data received"),b.ERR_INVALID_MESSAGE);let d=nr.decode(f);switch(d.status){case nr.StatusCode.OK:return He("received status for %s ok",e),d.data;case nr.StatusCode.NOT_FOUND:return He("received status for %s not found",e),null;case nr.StatusCode.ERROR:{He("received status for %s error",e);let h=H(d.data);throw(0,oo.default)(new Error("Error in fetch protocol response: "+h),b.ERR_INVALID_PARAMETERS)}default:throw He("received status for %s unknown",e),(0,oo.default)(new Error("Unknown response status"),b.ERR_INVALID_MESSAGE)}})??null}finally{o?.clear(),a?.close()}}async handleMessage(t){let{stream:e}=t,n=this;await Lt(e,Te(),async function*(i){let o=await Se(i);if(o==null)throw(0,oo.default)(new Error("No data received"),b.ERR_INVALID_MESSAGE);let s=ws.decode(o),a,c=n._getLookupFunction(s.identifier);if(c!=null){He("look up data with identifier %s",s.identifier);let l=await c(s.identifier);l!=null?(He("sending status for %s ok",s.identifier),a={status:nr.StatusCode.OK,data:l}):(He("sending status for %s not found",s.identifier),a={status:nr.StatusCode.NOT_FOUND,data:new Uint8Array(0)})}else{He("sending status for %s error",s.identifier);let l=U(`No lookup function registered for key: ${s.identifier}`);a={status:nr.StatusCode.ERROR,data:l}}yield nr.encode(a)},Me(),e)}_getLookupFunction(t){for(let e of this.lookupFunctions.keys())if(t.startsWith(e))return this.lookupFunctions.get(e)}registerLookupFunction(t,e){if(this.lookupFunctions.has(t))throw(0,oo.default)(new Error("Fetch protocol handler for key prefix '"+t+"' already registered"),b.ERR_KEY_ALREADY_EXISTS);this.lookupFunctions.set(t,e)}unregisterLookupFunction(t,e){e!=null&&this.lookupFunctions.get(t)!==e||this.lookupFunctions.delete(t)}};var Zw=I(W(),1);var Ww="1.0.0",Qw="ping";var Jw=I(Nr(),1),jw=I(lr(),1),Xw=N("libp2p:ping"),bc=class{constructor(t,e){this.components=t,this.started=!1,this.protocol=`/${e.protocolPrefix}/${Qw}/${Ww}`,this.init=e}async start(){await this.components.registrar.handle(this.protocol,this.handleMessage,{maxInboundStreams:this.init.maxInboundStreams,maxOutboundStreams:this.init.maxOutboundStreams}),this.started=!0}async stop(){await this.components.registrar.unhandle(this.protocol),this.started=!1}isStarted(){return this.started}handleMessage(t){let{stream:e}=t;Lt(e,e).catch(n=>{Xw.error(n)})}async ping(t,e={}){Xw("dialing %s to %p",this.protocol,t);let n=Date.now(),i=Hr(32),o=await this.components.connectionManager.openConnection(t,e),s,a=e.signal,c;if(a==null){s=new Jw.TimeoutController(this.init.timeout),a=s.signal;try{(0,jw.setMaxListeners)?.(1/0,s.signal)}catch{}}try{c=await o.newStream([this.protocol],{signal:a});let l=Re(c,a),u=await Lt([i],l,async d=>await Se(d)),f=Date.now();if(u==null||!xt(i,u.subarray()))throw(0,Zw.default)(new Error("Received wrong ping ack"),b.ERR_WRONG_PING_ACK);return f-n}finally{s?.clear(),c?.close()}}};async function tE(){throw new Error("Not supported in browsers")}var nE=I(rE(),1),th=typeof window=="object"&&typeof document=="object"&&document.nodeType===9,_c=(0,nE.default)(),Es=th&&!_c,iE=_c&&!th,oE=_c&&th,sE=typeof globalThis.process<"u"&&typeof globalThis.process.release<"u"&&globalThis.process.release.name==="node"&&!_c,aE=typeof importScripts=="function"&&typeof self<"u"&&typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope,UO=typeof globalThis.process<"u"&&typeof globalThis.process.env<"u"&&globalThis.process.env["NODE"+(()=>"_")()+"ENV"]==="test",cE=typeof navigator<"u"&&navigator.product==="ReactNative";var fE=I(W(),1);function lE(r){return/^127\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/i.test(r)||/^::1$/.test(r)}function uE(r){let{address:t}=r.nodeAddress();return lE(t)}var eh=N("libp2p:nat"),rh=7200;function dR(r=1024,t=65535){return Math.floor(Math.random()*(t-r+1)+r)}var Sc=class{constructor(t,e){if(this.components=t,this.started=!1,this.enabled=e.enabled,this.externalAddress=e.externalAddress,this.localAddress=e.localAddress,this.description=e.description??`${Mw}@${xc} ${this.components.peerId.toString()}`,this.ttl=e.ttl??rh,this.keepAlive=e.keepAlive??!0,this.gateway=e.gateway,this.ttl<rh)throw(0,fE.default)(new Error(`NatManager ttl should be at least ${rh} seconds`),b.ERR_INVALID_PARAMETERS)}isStarted(){return this.started}start(){}afterStart(){Es||!this.enabled||this.started||(this.started=!0,this._start().catch(t=>{eh.error(t)}))}async _start(){let t=this.components.transportManager.getAddrs();for(let e of t){let{family:n,host:i,port:o,transport:s}=e.toOptions();if(!e.isThinWaistAddress()||s!=="tcp"||uE(e)||n!==4)continue;let a=await this._getClient(),c=this.externalAddress??await a.externalIp(),l=Pa(c);if(l===!0)throw new Error(`${c} is private - please set config.nat.externalIp to an externally routable IP or ensure you are not behind a double NAT`);if(l==null)throw new Error(`${c} is not an IP address`);let u=dR();eh(`opening uPnP connection from ${c}:${u} to ${i}:${o}`),await a.map({publicPort:u,localPort:o,localAddress:this.localAddress,protocol:s.toUpperCase()==="TCP"?"TCP":"UDP"}),this.components.addressManager.addObservedAddr(Vd({family:4,address:c,port:u},s))}}async _getClient(){return this.client!=null?this.client:(this.client=await tE({description:this.description,ttl:this.ttl,keepAlive:this.keepAlive,gateway:this.gateway}),this.client)}async stop(){if(!(Es||this.client==null))try{await this.client.close(),this.client=void 0}catch(t){eh.error(t)}}};var pR=N("libp2p:peer-record-updater"),Ac=class{constructor(t){this.components=t,this.started=!1,this.update=this.update.bind(this)}isStarted(){return this.started}async start(){this.started=!0,this.components.transportManager.addEventListener("listener:listening",this.update),this.components.transportManager.addEventListener("listener:close",this.update),this.components.addressManager.addEventListener("change:addresses",this.update)}async stop(){this.started=!1,this.components.transportManager.removeEventListener("listener:listening",this.update),this.components.transportManager.removeEventListener("listener:close",this.update),this.components.addressManager.removeEventListener("change:addresses",this.update)}update(){Promise.resolve().then(async()=>{let t=new Xt({peerId:this.components.peerId,multiaddrs:this.components.addressManager.getAddresses().map(n=>n.decapsulateCode(mt("p2p").code))}),e=await re.seal(t,this.components.peerId);await this.components.peerStore.addressBook.consumePeerRecord(e)}).catch(t=>{pR.error("Could not update self peer record: %o",t)})}};var hE=I(W(),1);var Rc=class{constructor(t){this.dht=t}async findPeer(t,e={}){for await(let n of this.dht.findPeer(t,e))if(n.name==="FINAL_PEER")return n.peer;throw(0,hE.default)(new Error(X.NOT_FOUND),b.ERR_NOT_FOUND)}async*getClosestPeers(t,e={}){for await(let n of this.dht.getClosestPeers(t,e))n.name==="FINAL_PEER"&&(yield n.peer)}};var Tc=I(W(),1);var Q={ERR_INVALID_PARAMETERS:"ERR_INVALID_PARAMETERS",ERR_NOT_FOUND:"ERR_NOT_FOUND"};async function*nh(r,t){for await(let e of r)await t(e),yield e}var Et=N("libp2p:peer-store:address-book"),Ic="change:multiaddrs";async function mR(){return!0}var Cc=class{constructor(t,e,n){this.dispatchEvent=t,this.store=e,this.addressFilter=n??mR}async consumePeerRecord(t){Et.trace("consumePeerRecord await write lock");let e=await this.store.lock.writeLock();Et.trace("consumePeerRecord got write lock");let n,i,o;try{let s;try{s=Xt.createFromProtobuf(t.payload)}catch{return Et.error("invalid peer record received"),!1}n=s.peerId;let a=s.multiaddrs;if(!n.equals(t.peerId))return Et("signing key does not match PeerId in the PeerRecord"),!1;if(a==null||a.length===0)return!1;if(await this.store.has(n)&&(i=await this.store.load(n),i.peerRecordEnvelope!=null)){let l=await re.createFromProtobuf(i.peerRecordEnvelope),u=Xt.createFromProtobuf(l.payload);if(u.seqNumber>=s.seqNumber)return Et("sequence number was lower or equal to existing sequence number - stored: %d received: %d",u.seqNumber,s.seqNumber),!1}let c=await ih(n,a,this.addressFilter,!0);o=await this.store.patchOrCreate(n,{addresses:c,peerRecordEnvelope:t.marshal().subarray()}),Et("stored provided peer record for %p",s.peerId)}finally{Et.trace("consumePeerRecord release write lock"),e()}return this.dispatchEvent(new q(Ic,{detail:{peerId:n,multiaddrs:o.addresses.map(({multiaddr:s})=>s),oldMultiaddrs:i==null?[]:i.addresses.map(({multiaddr:s})=>s)}})),!0}async getRawEnvelope(t){Et.trace("getRawEnvelope await read lock");let e=await this.store.lock.readLock();Et.trace("getRawEnvelope got read lock");try{return(await this.store.load(t)).peerRecordEnvelope}catch(n){if(n.code!==Q.ERR_NOT_FOUND)throw n}finally{Et.trace("getRawEnvelope release read lock"),e()}}async getPeerRecord(t){let e=await this.getRawEnvelope(t);if(e!=null)return await re.createFromProtobuf(e)}async get(t){t=Ht(t),Et.trace("get wait for read lock");let e=await this.store.lock.readLock();Et.trace("get got read lock");try{return(await this.store.load(t)).addresses}catch(n){if(n.code!==Q.ERR_NOT_FOUND)throw n}finally{Et.trace("get release read lock"),e()}return[]}async set(t,e){if(t=Ht(t),!Array.isArray(e))throw Et.error("multiaddrs must be an array of Multiaddrs"),(0,Tc.default)(new Error("multiaddrs must be an array of Multiaddrs"),Q.ERR_INVALID_PARAMETERS);Et.trace("set await write lock");let n=await this.store.lock.writeLock();Et.trace("set got write lock");let i=!1,o,s;try{let a=await ih(t,e,this.addressFilter);if(a.length===0)return;try{if(o=await this.store.load(t),i=!0,new Set([...a.map(({multiaddr:c})=>c.toString()),...o.addresses.map(({multiaddr:c})=>c.toString())]).size===o.addresses.length&&a.length===o.addresses.length)return}catch(c){if(c.code!==Q.ERR_NOT_FOUND)throw c}s=await this.store.patchOrCreate(t,{addresses:a}),Et("set multiaddrs for %p",t)}finally{Et.trace("set multiaddrs for %p",t),Et("set release write lock"),n()}this.dispatchEvent(new q(Ic,{detail:{peerId:t,multiaddrs:s.addresses.map(a=>a.multiaddr),oldMultiaddrs:o==null?[]:o.addresses.map(({multiaddr:a})=>a)}})),i||this.dispatchEvent(new q("peer",{detail:{id:t,multiaddrs:s.addresses.map(a=>a.multiaddr),protocols:s.protocols}}))}async add(t,e){if(t=Ht(t),!Array.isArray(e))throw Et.error("multiaddrs must be an array of Multiaddrs"),(0,Tc.default)(new Error("multiaddrs must be an array of Multiaddrs"),Q.ERR_INVALID_PARAMETERS);Et.trace("add await write lock");let n=await this.store.lock.writeLock();Et.trace("add got write lock");let i,o,s;try{let a=await ih(t,e,this.addressFilter);if(a.length===0)return;try{if(o=await this.store.load(t),i=!0,new Set([...a.map(({multiaddr:c})=>c.toString()),...o.addresses.map(({multiaddr:c})=>c.toString())]).size===o.addresses.length)return}catch(c){if(c.code!==Q.ERR_NOT_FOUND)throw c}s=await this.store.mergeOrCreate(t,{addresses:a}),Et("added multiaddrs for %p",t)}finally{Et.trace("set release write lock"),n()}this.dispatchEvent(new q(Ic,{detail:{peerId:t,multiaddrs:s.addresses.map(a=>a.multiaddr),oldMultiaddrs:o==null?[]:o.addresses.map(({multiaddr:a})=>a)}})),i===!0&&this.dispatchEvent(new q("peer",{detail:{id:t,multiaddrs:s.addresses.map(a=>a.multiaddr),protocols:s.protocols}}))}async delete(t){t=Ht(t),Et.trace("delete await write lock");let e=await this.store.lock.writeLock();Et.trace("delete got write lock");let n;try{try{n=await this.store.load(t)}catch(i){if(i.code!==Q.ERR_NOT_FOUND)throw i}await this.store.patchOrCreate(t,{addresses:[]})}finally{Et.trace("delete release write lock"),e()}n!=null&&this.dispatchEvent(new q(Ic,{detail:{peerId:t,multiaddrs:[],oldMultiaddrs:n==null?[]:n.addresses.map(({multiaddr:i})=>i)}}))}};async function ih(r,t,e,n=!1){return await Lt(t,i=>nh(i,o=>{if(!_e(o))throw Et.error("multiaddr must be an instance of Multiaddr"),(0,Tc.default)(new Error("multiaddr must be an instance of Multiaddr"),Q.ERR_INVALID_PARAMETERS)}),i=>ye(i,async o=>await e(r,o)),i=>go(i,o=>({multiaddr:o,isCertified:n})),async i=>await Lr(i))}var pE=I(W(),1);var Sr=N("libp2p:peer-store:key-book"),dE="change:pubkey",Dc=class{constructor(t,e){this.dispatchEvent=t,this.store=e}async set(t,e){if(t=Ht(t),!(e instanceof Uint8Array))throw Sr.error("publicKey must be an instance of Uint8Array to store data"),(0,pE.default)(new Error("publicKey must be an instance of PublicKey"),Q.ERR_INVALID_PARAMETERS);Sr.trace("set await write lock");let n=await this.store.lock.writeLock();Sr.trace("set got write lock");let i=!1,o;try{try{if(o=await this.store.load(t),o.pubKey!=null&&xt(o.pubKey,e))return}catch(s){if(s.code!==Q.ERR_NOT_FOUND)throw s}await this.store.patchOrCreate(t,{pubKey:e}),i=!0}finally{Sr.trace("set release write lock"),n()}i&&this.dispatchEvent(new q(dE,{detail:{peerId:t,publicKey:e,oldPublicKey:o?.pubKey}}))}async get(t){t=Ht(t),Sr.trace("get await write lock");let e=await this.store.lock.readLock();Sr.trace("get got write lock");try{return(await this.store.load(t)).pubKey}catch(n){if(n.code!==Q.ERR_NOT_FOUND)throw n}finally{Sr("get release write lock"),e()}}async delete(t){t=Ht(t),Sr.trace("delete await write lock");let e=await this.store.lock.writeLock();Sr.trace("delete got write lock");let n;try{try{n=await this.store.load(t)}catch(i){if(i.code!==Q.ERR_NOT_FOUND)throw i}await this.store.patchOrCreate(t,{pubKey:void 0})}catch(i){if(i.code!==Q.ERR_NOT_FOUND)throw i}finally{Sr.trace("delete release write lock"),e()}this.dispatchEvent(new q(dE,{detail:{peerId:t,publicKey:void 0,oldPublicKey:n?.pubKey}}))}};var oh=I(W(),1);var Zt=N("libp2p:peer-store:metadata-book"),Pc="change:metadata",Lc=class{constructor(t,e){this.dispatchEvent=t,this.store=e}async get(t){t=Ht(t),Zt.trace("get await read lock");let e=await this.store.lock.readLock();Zt.trace("get got read lock");try{return(await this.store.load(t)).metadata}catch(n){if(n.code!==Q.ERR_NOT_FOUND)throw n}finally{Zt.trace("get release read lock"),e()}return new Map}async getValue(t,e){t=Ht(t),Zt.trace("getValue await read lock");let n=await this.store.lock.readLock();Zt.trace("getValue got read lock");try{return(await this.store.load(t)).metadata.get(e)}catch(i){if(i.code!==Q.ERR_NOT_FOUND)throw i}finally{Zt.trace("getValue release write lock"),n()}}async set(t,e){if(t=Ht(t),!(e instanceof Map))throw Zt.error("valid metadata must be provided to store data"),(0,oh.default)(new Error("valid metadata must be provided"),Q.ERR_INVALID_PARAMETERS);Zt.trace("set await write lock");let n=await this.store.lock.writeLock();Zt.trace("set got write lock");let i;try{try{i=await this.store.load(t)}catch(o){if(o.code!==Q.ERR_NOT_FOUND)throw o}await this.store.mergeOrCreate(t,{metadata:e})}finally{Zt.trace("set release write lock"),n()}this.dispatchEvent(new q(Pc,{detail:{peerId:t,metadata:e,oldMetadata:i==null?new Map:i.metadata}}))}async setValue(t,e,n){if(t=Ht(t),typeof e!="string"||!(n instanceof Uint8Array))throw Zt.error("valid key and value must be provided to store data"),(0,oh.default)(new Error("valid key and value must be provided"),Q.ERR_INVALID_PARAMETERS);Zt.trace("setValue await write lock");let i=await this.store.lock.writeLock();Zt.trace("setValue got write lock");let o,s;try{try{o=await this.store.load(t);let a=o.metadata.get(e);if(a!=null&&xt(n,a))return}catch(a){if(a.code!==Q.ERR_NOT_FOUND)throw a}s=await this.store.mergeOrCreate(t,{metadata:new Map([[e,n]])})}finally{Zt.trace("setValue release write lock"),i()}this.dispatchEvent(new q(Pc,{detail:{peerId:t,metadata:s.metadata,oldMetadata:o==null?new Map:o.metadata}}))}async delete(t){t=Ht(t),Zt.trace("delete await write lock");let e=await this.store.lock.writeLock();Zt.trace("delete got write lock");let n;try{try{n=await this.store.load(t)}catch(i){if(i.code!==Q.ERR_NOT_FOUND)throw i}n!=null&&await this.store.patch(t,{metadata:new Map})}finally{Zt.trace("delete release write lock"),e()}n!=null&&this.dispatchEvent(new q(Pc,{detail:{peerId:t,metadata:new Map,oldMetadata:n.metadata}}))}async deleteValue(t,e){t=Ht(t),Zt.trace("deleteValue await write lock");let n=await this.store.lock.writeLock();Zt.trace("deleteValue got write lock");let i,o;try{o=await this.store.load(t),i=o.metadata,i.delete(e),await this.store.patch(t,{metadata:i})}catch(s){if(s.code!==Q.ERR_NOT_FOUND)throw s}finally{Zt.trace("deleteValue release write lock"),n()}i!=null&&this.dispatchEvent(new q(Pc,{detail:{peerId:t,metadata:i,oldMetadata:o==null?new Map:o.metadata}}))}};var Nc=I(W(),1);var Jt=N("libp2p:peer-store:proto-book"),Bc="change:protocols",Oc=class{constructor(t,e){this.dispatchEvent=t,this.store=e}async get(t){Jt.trace("get wait for read lock");let e=await this.store.lock.readLock();Jt.trace("get got read lock");try{return(await this.store.load(t)).protocols}catch(n){if(n.code!==Q.ERR_NOT_FOUND)throw n}finally{Jt.trace("get release read lock"),e()}return[]}async set(t,e){if(t=Ht(t),!Array.isArray(e))throw Jt.error("protocols must be provided to store data"),(0,Nc.default)(new Error("protocols must be provided"),Q.ERR_INVALID_PARAMETERS);Jt.trace("set await write lock");let n=await this.store.lock.writeLock();Jt.trace("set got write lock");let i,o;try{try{if(i=await this.store.load(t),new Set([...e]).size===i.protocols.length)return}catch(s){if(s.code!==Q.ERR_NOT_FOUND)throw s}o=await this.store.patchOrCreate(t,{protocols:e}),Jt("stored provided protocols for %p",t)}finally{Jt.trace("set release write lock"),n()}this.dispatchEvent(new q(Bc,{detail:{peerId:t,protocols:o.protocols,oldProtocols:i==null?[]:i.protocols}}))}async add(t,e){if(t=Ht(t),!Array.isArray(e))throw Jt.error("protocols must be provided to store data"),(0,Nc.default)(new Error("protocols must be provided"),Q.ERR_INVALID_PARAMETERS);Jt.trace("add await write lock");let n=await this.store.lock.writeLock();Jt.trace("add got write lock");let i,o;try{try{if(i=await this.store.load(t),new Set([...i.protocols,...e]).size===i.protocols.length)return}catch(s){if(s.code!==Q.ERR_NOT_FOUND)throw s}o=await this.store.mergeOrCreate(t,{protocols:e}),Jt("added provided protocols for %p",t)}finally{Jt.trace("add release write lock"),n()}this.dispatchEvent(new q(Bc,{detail:{peerId:t,protocols:o.protocols,oldProtocols:i==null?[]:i.protocols}}))}async remove(t,e){if(t=Ht(t),!Array.isArray(e))throw Jt.error("protocols must be provided to store data"),(0,Nc.default)(new Error("protocols must be provided"),Q.ERR_INVALID_PARAMETERS);Jt.trace("remove await write lock");let n=await this.store.lock.writeLock();Jt.trace("remove got write lock");let i,o;try{try{i=await this.store.load(t);let s=new Set(i.protocols);for(let a of e)s.delete(a);if(i.protocols.length===s.size)return;e=Array.from(s)}catch(s){if(s.code!==Q.ERR_NOT_FOUND)throw s}o=await this.store.patchOrCreate(t,{protocols:e})}finally{Jt.trace("remove release write lock"),n()}this.dispatchEvent(new q(Bc,{detail:{peerId:t,protocols:o.protocols,oldProtocols:i==null?[]:i.protocols}}))}async delete(t){t=Ht(t),Jt.trace("delete await write lock");let e=await this.store.lock.writeLock();Jt.trace("delete got write lock");let n;try{try{n=await this.store.load(t)}catch(i){if(i.code!==Q.ERR_NOT_FOUND)throw i}await this.store.patchOrCreate(t,{protocols:[]})}finally{Jt.trace("delete release write lock"),e()}n!=null&&this.dispatchEvent(new q(Bc,{detail:{peerId:t,protocols:[],oldProtocols:n.protocols}}))}};var Sh=I(W(),1);var xs;(function(r){let t;r.codec=()=>(t==null&&(t=St((e,n,i={})=>{if(i.lengthDelimited!==!1&&n.fork(),e.addresses!=null)for(let o of e.addresses)n.uint32(10),kc.codec().encode(o,n,{writeDefaults:!0});if(e.protocols!=null)for(let o of e.protocols)n.uint32(18),n.string(o);if(e.metadata!=null)for(let o of e.metadata)n.uint32(26),Mc.codec().encode(o,n,{writeDefaults:!0});e.pubKey!=null&&(n.uint32(34),n.bytes(e.pubKey)),e.peerRecordEnvelope!=null&&(n.uint32(42),n.bytes(e.peerRecordEnvelope)),i.lengthDelimited!==!1&&n.ldelim()},(e,n)=>{let i={addresses:[],protocols:[],metadata:[]},o=n==null?e.len:e.pos+n;for(;e.pos<o;){let s=e.uint32();switch(s>>>3){case 1:i.addresses.push(kc.codec().decode(e,e.uint32()));break;case 2:i.protocols.push(e.string());break;case 3:i.metadata.push(Mc.codec().decode(e,e.uint32()));break;case 4:i.pubKey=e.bytes();break;case 5:i.peerRecordEnvelope=e.bytes();break;default:e.skipType(s&7);break}}return i})),t),r.encode=e=>_t(e,r.codec()),r.decode=e=>bt(e,r.codec())})(xs||(xs={}));var kc;(function(r){let t;r.codec=()=>(t==null&&(t=St((e,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),(i.writeDefaults===!0||e.multiaddr!=null&&e.multiaddr.byteLength>0)&&(n.uint32(10),n.bytes(e.multiaddr)),e.isCertified!=null&&(n.uint32(16),n.bool(e.isCertified)),i.lengthDelimited!==!1&&n.ldelim()},(e,n)=>{let i={multiaddr:new Uint8Array(0)},o=n==null?e.len:e.pos+n;for(;e.pos<o;){let s=e.uint32();switch(s>>>3){case 1:i.multiaddr=e.bytes();break;case 2:i.isCertified=e.bool();break;default:e.skipType(s&7);break}}return i})),t),r.encode=e=>_t(e,r.codec()),r.decode=e=>bt(e,r.codec())})(kc||(kc={}));var Mc;(function(r){let t;r.codec=()=>(t==null&&(t=St((e,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),(i.writeDefaults===!0||e.key!=="")&&(n.uint32(10),n.string(e.key)),(i.writeDefaults===!0||e.value!=null&&e.value.byteLength>0)&&(n.uint32(18),n.bytes(e.value)),i.lengthDelimited!==!1&&n.ldelim()},(e,n)=>{let i={key:"",value:new Uint8Array(0)},o=n==null?e.len:e.pos+n;for(;e.pos<o;){let s=e.uint32();switch(s>>>3){case 1:i.key=e.string();break;case 2:i.value=e.bytes();break;default:e.skipType(s&7);break}}return i})),t),r.encode=e=>_t(e,r.codec()),r.decode=e=>bt(e,r.codec())})(Mc||(Mc={}));var AE=I(yE(),1);var bs=class extends Error{constructor(t){super(t),this.name="TimeoutError"}},ah=class extends Error{constructor(t){super(),this.name="AbortError",this.message=t}},gE=r=>globalThis.DOMException===void 0?new ah(r):new DOMException(r),wE=r=>{let t=r.reason===void 0?gE("This operation was aborted."):r.reason;return t instanceof Error?t:gE(t)};function ch(r,t,e,n){let i,o=new Promise((s,a)=>{if(typeof t!="number"||Math.sign(t)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${t}\``);if(t===Number.POSITIVE_INFINITY){s(r);return}if(n={customTimers:{setTimeout,clearTimeout},...n},n.signal){let{signal:c}=n;c.aborted&&a(wE(c)),c.addEventListener("abort",()=>{a(wE(c))})}i=n.customTimers.setTimeout.call(void 0,()=>{if(typeof e=="function"){try{s(e())}catch(u){a(u)}return}let c=typeof e=="string"?e:`Promise timed out after ${t} milliseconds`,l=e instanceof Error?e:new bs(c);typeof r.cancel=="function"&&r.cancel(),a(l)},t),(async()=>{try{s(await r)}catch(c){a(c)}finally{n.customTimers.clearTimeout.call(void 0,i)}})()});return o.clear=()=>{clearTimeout(i),i=void 0},o}function lh(r,t,e){let n=0,i=r.length;for(;i>0;){let o=Math.trunc(i/2),s=n+o;e(r[s],t)<=0?(n=++s,i-=o+1):i=o}return n}var fi=function(r,t,e,n){if(e==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?r!==t||!n:!t.has(r))throw new TypeError("Cannot read private member from an object whose class did not declare it");return e==="m"?n:e==="a"?n.call(r):n?n.value:t.get(r)},Qr,_s=class{constructor(){Qr.set(this,[])}enqueue(t,e){e={priority:0,...e};let n={priority:e.priority,run:t};if(this.size&&fi(this,Qr,"f")[this.size-1].priority>=e.priority){fi(this,Qr,"f").push(n);return}let i=lh(fi(this,Qr,"f"),n,(o,s)=>s.priority-o.priority);fi(this,Qr,"f").splice(i,0,n)}dequeue(){let t=fi(this,Qr,"f").shift();return t?.run}filter(t){return fi(this,Qr,"f").filter(e=>e.priority===t.priority).map(e=>e.run)}get size(){return fi(this,Qr,"f").length}};Qr=new WeakMap;var kt=function(r,t,e,n,i){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!i)throw new TypeError("Private accessor was defined without a setter");if(typeof t=="function"?r!==t||!i:!t.has(r))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?i.call(r,e):i?i.value=e:t.set(r,e),e},O=function(r,t,e,n){if(e==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?r!==t||!n:!t.has(r))throw new TypeError("Cannot read private member from an object whose class did not declare it");return e==="m"?n:e==="a"?n.call(r):n?n.value:t.get(r)},Gt,As,Rs,Rn,$c,Is,Fc,ir,Ss,Pe,Kc,Le,Ts,An,Vc,EE,xE,_E,vE,bE,qc,uh,fh,zc,SE,Hc,Gc=class extends Error{},so=class extends AE.default{constructor(t){var e,n,i,o;if(super(),Gt.add(this),As.set(this,void 0),Rs.set(this,void 0),Rn.set(this,0),$c.set(this,void 0),Is.set(this,void 0),Fc.set(this,0),ir.set(this,void 0),Ss.set(this,void 0),Pe.set(this,void 0),Kc.set(this,void 0),Le.set(this,0),Ts.set(this,void 0),An.set(this,void 0),Vc.set(this,void 0),Object.defineProperty(this,"timeout",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),t={carryoverConcurrencyCount:!1,intervalCap:Number.POSITIVE_INFINITY,interval:0,concurrency:Number.POSITIVE_INFINITY,autoStart:!0,queueClass:_s,...t},!(typeof t.intervalCap=="number"&&t.intervalCap>=1))throw new TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${(n=(e=t.intervalCap)===null||e===void 0?void 0:e.toString())!==null&&n!==void 0?n:""}\` (${typeof t.intervalCap})`);if(t.interval===void 0||!(Number.isFinite(t.interval)&&t.interval>=0))throw new TypeError(`Expected \`interval\` to be a finite number >= 0, got \`${(o=(i=t.interval)===null||i===void 0?void 0:i.toString())!==null&&o!==void 0?o:""}\` (${typeof t.interval})`);kt(this,As,t.carryoverConcurrencyCount,"f"),kt(this,Rs,t.intervalCap===Number.POSITIVE_INFINITY||t.interval===0,"f"),kt(this,$c,t.intervalCap,"f"),kt(this,Is,t.interval,"f"),kt(this,Pe,new t.queueClass,"f"),kt(this,Kc,t.queueClass,"f"),this.concurrency=t.concurrency,this.timeout=t.timeout,kt(this,Vc,t.throwOnTimeout===!0,"f"),kt(this,An,t.autoStart===!1,"f")}get concurrency(){return O(this,Ts,"f")}set concurrency(t){if(!(typeof t=="number"&&t>=1))throw new TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${t}\` (${typeof t})`);kt(this,Ts,t,"f"),O(this,Gt,"m",zc).call(this)}async add(t,e={}){return e={timeout:this.timeout,throwOnTimeout:O(this,Vc,"f"),...e},new Promise((n,i)=>{O(this,Pe,"f").enqueue(async()=>{var o,s,a;kt(this,Le,(s=O(this,Le,"f"),s++,s),"f"),kt(this,Rn,(a=O(this,Rn,"f"),a++,a),"f");try{if(!((o=e.signal)===null||o===void 0)&&o.aborted)throw new Gc("The task was aborted.");let c=t({signal:e.signal});e.timeout&&(c=ch(Promise.resolve(c),e.timeout)),e.signal&&(c=Promise.race([c,O(this,Gt,"m",SE).call(this,e.signal)]));let l=await c;n(l),this.emit("completed",l)}catch(c){if(c instanceof bs&&!e.throwOnTimeout){n();return}i(c),this.emit("error",c)}finally{O(this,Gt,"m",_E).call(this)}},e),this.emit("add"),O(this,Gt,"m",qc).call(this)})}async addAll(t,e){return Promise.all(t.map(async n=>this.add(n,e)))}start(){return O(this,An,"f")?(kt(this,An,!1,"f"),O(this,Gt,"m",zc).call(this),this):this}pause(){kt(this,An,!0,"f")}clear(){kt(this,Pe,new(O(this,Kc,"f")),"f")}async onEmpty(){O(this,Pe,"f").size!==0&&await O(this,Gt,"m",Hc).call(this,"empty")}async onSizeLessThan(t){O(this,Pe,"f").size<t||await O(this,Gt,"m",Hc).call(this,"next",()=>O(this,Pe,"f").size<t)}async onIdle(){O(this,Le,"f")===0&&O(this,Pe,"f").size===0||await O(this,Gt,"m",Hc).call(this,"idle")}get size(){return O(this,Pe,"f").size}sizeBy(t){return O(this,Pe,"f").filter(t).length}get pending(){return O(this,Le,"f")}get isPaused(){return O(this,An,"f")}};As=new WeakMap,Rs=new WeakMap,Rn=new WeakMap,$c=new WeakMap,Is=new WeakMap,Fc=new WeakMap,ir=new WeakMap,Ss=new WeakMap,Pe=new WeakMap,Kc=new WeakMap,Le=new WeakMap,Ts=new WeakMap,An=new WeakMap,Vc=new WeakMap,Gt=new WeakSet,EE=function(){return O(this,Rs,"f")||O(this,Rn,"f")<O(this,$c,"f")},xE=function(){return O(this,Le,"f")<O(this,Ts,"f")},_E=function(){var t;kt(this,Le,(t=O(this,Le,"f"),t--,t),"f"),O(this,Gt,"m",qc).call(this),this.emit("next")},vE=function(){O(this,Gt,"m",fh).call(this),O(this,Gt,"m",uh).call(this),kt(this,Ss,void 0,"f")},bE=function(){let t=Date.now();if(O(this,ir,"f")===void 0){let e=O(this,Fc,"f")-t;if(e<0)kt(this,Rn,O(this,As,"f")?O(this,Le,"f"):0,"f");else return O(this,Ss,"f")===void 0&&kt(this,Ss,setTimeout(()=>{O(this,Gt,"m",vE).call(this)},e),"f"),!0}return!1},qc=function(){if(O(this,Pe,"f").size===0)return O(this,ir,"f")&&clearInterval(O(this,ir,"f")),kt(this,ir,void 0,"f"),this.emit("empty"),O(this,Le,"f")===0&&this.emit("idle"),!1;if(!O(this,An,"f")){let t=!O(this,Gt,"a",bE);if(O(this,Gt,"a",EE)&&O(this,Gt,"a",xE)){let e=O(this,Pe,"f").dequeue();return e?(this.emit("active"),e(),t&&O(this,Gt,"m",uh).call(this),!0):!1}}return!1},uh=function(){O(this,Rs,"f")||O(this,ir,"f")!==void 0||(kt(this,ir,setInterval(()=>{O(this,Gt,"m",fh).call(this)},O(this,Is,"f")),"f"),kt(this,Fc,Date.now()+O(this,Is,"f"),"f"))},fh=function(){O(this,Rn,"f")===0&&O(this,Le,"f")===0&&O(this,ir,"f")&&(clearInterval(O(this,ir,"f")),kt(this,ir,void 0,"f")),kt(this,Rn,O(this,As,"f")?O(this,Le,"f"):0,"f"),O(this,Gt,"m",zc).call(this)},zc=function(){for(;O(this,Gt,"m",qc).call(this););},SE=async function(t){return new Promise((e,n)=>{t.addEventListener("abort",()=>{n(new Gc("The task was aborted."))},{once:!0})})},Hc=async function(t,e){return new Promise(n=>{let i=()=>{e&&!e()||(this.off(t,i),n())};this.on(t,i)})};var hh=class extends Error{constructor(t){super(t),this.name="TimeoutError"}},dh=class extends Error{constructor(t){super(),this.name="AbortError",this.message=t}},RE=r=>globalThis.DOMException===void 0?new dh(r):new DOMException(r),IE=r=>{let t=r.reason===void 0?RE("This operation was aborted."):r.reason;return t instanceof Error?t:RE(t)};function ph(r,t){let{milliseconds:e,fallback:n,message:i,customTimers:o={setTimeout,clearTimeout}}=t,s,a=new Promise((c,l)=>{if(typeof e!="number"||Math.sign(e)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${e}\``);if(e===Number.POSITIVE_INFINITY){c(r);return}if(t.signal){let{signal:f}=t;f.aborted&&l(IE(f)),f.addEventListener("abort",()=>{l(IE(f))})}let u=new hh;s=o.setTimeout.call(void 0,()=>{if(n){try{c(n())}catch(f){l(f)}return}typeof r.cancel=="function"&&r.cancel(),i===!1?c():i instanceof Error?l(i):(u.message=i??`Promise timed out after ${e} milliseconds`,l(u))},e),(async()=>{try{c(await r)}catch(f){l(f)}finally{o.clearTimeout.call(void 0,s)}})()});return a.clear=()=>{o.clearTimeout.call(void 0,s),s=void 0},a}var mh="lock:worker:request-read",yh="lock:worker:release-read",gh="lock:master:grant-read",wh="lock:worker:request-write",Eh="lock:worker:release-write",xh="lock:master:grant-write";var In={},ao=r=>{r.addEventListener("message",t=>{ao.dispatchEvent("message",r,t)}),r.port!=null&&r.port.addEventListener("message",t=>{ao.dispatchEvent("message",r,t)})};ao.addEventListener=(r,t)=>{In[r]==null&&(In[r]=[]),In[r].push(t)};ao.removeEventListener=(r,t)=>{In[r]!=null&&(In[r]=In[r].filter(e=>e===t))};ao.dispatchEvent=function(r,t,e){In[r]!=null&&In[r].forEach(n=>n(t,e))};var vh=ao;var TE=(r,t,e,n,i)=>(o,s)=>{if(s.data.type!==e)return;let a={type:s.data.type,name:s.data.name,identifier:s.data.identifier};r.dispatchEvent(new MessageEvent(t,{data:{name:a.name,handler:async()=>(o.postMessage({type:i,name:a.name,identifier:a.identifier}),await new Promise(c=>{let l=u=>{if(u==null||u.data==null)return;let f={type:u.data.type,name:u.data.name,identifier:u.data.identifier};f.type===n&&f.identifier===a.identifier&&(o.removeEventListener("message",l),c())};o.addEventListener("message",l)}))}}))},CE=(r,t,e,n)=>async()=>{let i=$s();return globalThis.postMessage({type:t,identifier:i,name:r}),await new Promise(o=>{let s=a=>{if(a==null||a.data==null)return;let c={type:a.data.type,identifier:a.data.identifier};c.type===e&&c.identifier===i&&(globalThis.removeEventListener("message",s),o(()=>{globalThis.postMessage({type:n,identifier:i,name:r})}))};globalThis.addEventListener("message",s)})},wR={singleProcess:!1},DE=r=>{if(r=Object.assign({},wR,r),Boolean(globalThis.document)||r.singleProcess){let e=new EventTarget;return vh.addEventListener("message",TE(e,"requestReadLock",mh,yh,gh)),vh.addEventListener("message",TE(e,"requestWriteLock",wh,Eh,xh)),e}return{isWorker:!0,readLock:e=>CE(e,mh,gh,yh),writeLock:e=>CE(e,wh,xh,Eh)}};var hi={},Tn;async function bh(r,t){let e,n=new Promise(i=>{e=i});return r.add(async()=>await ph((async()=>await new Promise(i=>{e(()=>{i()})}))(),{milliseconds:t.timeout})),await n}var ER=(r,t)=>{if(Tn.isWorker===!0)return{readLock:Tn.readLock(r,t),writeLock:Tn.writeLock(r,t)};let e=new so({concurrency:1}),n;return{async readLock(){if(n!=null)return await bh(n,t);n=new so({concurrency:t.concurrency,autoStart:!1});let i=n,o=bh(n,t);return e.add(async()=>(i.start(),await i.onIdle().then(()=>{n===i&&(n=null)}))),await o},async writeLock(){return n=null,await bh(e,t)}}},xR={name:"lock",concurrency:1/0,timeout:846e5,singleProcess:!1};function _h(r){let t=Object.assign({},xR,r);return Tn==null&&(Tn=DE(t),Tn.isWorker!==!0&&(Tn.addEventListener("requestReadLock",e=>{hi[e.data.name]!=null&&hi[e.data.name].readLock().then(async n=>await e.data.handler().finally(()=>n()))}),Tn.addEventListener("requestWriteLock",async e=>{hi[e.data.name]!=null&&hi[e.data.name].writeLock().then(async n=>await e.data.handler().finally(()=>n()))}))),hi[t.name]==null&&(hi[t.name]=ER(t.name,t)),hi[t.name]}var PE=N("libp2p:peer-store:store"),LE="/peers/",Yc=class{constructor(t){this.components=t,this.lock=_h({name:"peer-store",singleProcess:!0})}_peerIdToDatastoreKey(t){if(t.type==null)throw PE.error("peerId must be an instance of peer-id to store data"),(0,Sh.default)(new Error("peerId must be an instance of peer-id"),Q.ERR_INVALID_PARAMETERS);let e=t.toCID().toString();return new Ut(`${LE}${e}`)}async has(t){return await this.components.datastore.has(this._peerIdToDatastoreKey(t))}async delete(t){await this.components.datastore.delete(this._peerIdToDatastoreKey(t))}async load(t){let e=await this.components.datastore.get(this._peerIdToDatastoreKey(t)),n=xs.decode(e),i=new Map;for(let o of n.metadata)i.set(o.key,o.value);return{...n,id:t,addresses:n.addresses.map(({multiaddr:o,isCertified:s})=>({multiaddr:j(o),isCertified:s??!1})),metadata:i,pubKey:n.pubKey??void 0,peerRecordEnvelope:n.peerRecordEnvelope??void 0}}async save(t){if(t.pubKey!=null&&t.id.publicKey!=null&&!xt(t.pubKey,t.id.publicKey))throw PE.error("peer publicKey bytes do not match peer id publicKey bytes"),(0,Sh.default)(new Error("publicKey bytes do not match peer id publicKey bytes"),Q.ERR_INVALID_PARAMETERS);let e=new Set,n=t.addresses.filter(s=>e.has(s.multiaddr.toString())?!1:(e.add(s.multiaddr.toString()),!0)).sort((s,a)=>s.multiaddr.toString().localeCompare(a.multiaddr.toString())).map(({multiaddr:s,isCertified:a})=>({multiaddr:s.bytes,isCertified:a})),i=[];[...t.metadata.keys()].sort().forEach(s=>{let a=t.metadata.get(s);a!=null&&i.push({key:s,value:a})});let o=xs.encode({addresses:n,protocols:t.protocols.sort(),pubKey:t.pubKey,metadata:i,peerRecordEnvelope:t.peerRecordEnvelope});return await this.components.datastore.put(this._peerIdToDatastoreKey(t.id),o.subarray()),await this.load(t.id)}async patch(t,e){let n=await this.load(t);return await this._patch(t,e,n)}async patchOrCreate(t,e){let n;try{n=await this.load(t)}catch(i){if(i.code!==Q.ERR_NOT_FOUND)throw i;n={id:t,addresses:[],protocols:[],metadata:new Map}}return await this._patch(t,e,n)}async _patch(t,e,n){return await this.save({...n,...e,id:t})}async merge(t,e){let n=await this.load(t);return await this._merge(t,e,n)}async mergeOrCreate(t,e){let n;try{n=await this.load(t)}catch(i){if(i.code!==Q.ERR_NOT_FOUND)throw i;n={id:t,addresses:[],protocols:[],metadata:new Map}}return await this._merge(t,e,n)}async _merge(t,e,n){let i=new Map;return n.addresses.forEach(o=>{i.set(o.multiaddr.toString(),o.isCertified)}),(e.addresses??[]).forEach(o=>{let s=o.multiaddr.toString(),c=Boolean(i.get(s))||o.isCertified;i.set(s,c)}),await this.save({id:t,addresses:Array.from(i.entries()).map(([o,s])=>({multiaddr:j(o),isCertified:s})),protocols:Array.from(new Set([...n.protocols??[],...e.protocols??[]])),metadata:new Map([...n.metadata?.entries()??[],...e.metadata?.entries()??[]]),pubKey:e.pubKey??n?.pubKey,peerRecordEnvelope:e.peerRecordEnvelope??n?.peerRecordEnvelope})}async*all(){for await(let t of this.components.datastore.queryKeys({prefix:LE})){let e=t.toString().split("/")[2],n=be.decode(e);yield this.load(rn(n))}}};var Ah=I(W(),1);var Xr;(function(r){let t;r.codec=()=>(t==null&&(t=St((e,n,i={})=>{if(i.lengthDelimited!==!1&&n.fork(),e.tags!=null)for(let o of e.tags)n.uint32(10),Wc.codec().encode(o,n,{writeDefaults:!0});i.lengthDelimited!==!1&&n.ldelim()},(e,n)=>{let i={tags:[]},o=n==null?e.len:e.pos+n;for(;e.pos<o;){let s=e.uint32();switch(s>>>3){case 1:i.tags.push(Wc.codec().decode(e,e.uint32()));break;default:e.skipType(s&7);break}}return i})),t),r.encode=e=>_t(e,r.codec()),r.decode=e=>bt(e,r.codec())})(Xr||(Xr={}));var Wc;(function(r){let t;r.codec=()=>(t==null&&(t=St((e,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),(i.writeDefaults===!0||e.name!=="")&&(n.uint32(10),n.string(e.name)),e.value!=null&&(n.uint32(16),n.uint32(e.value)),e.expiry!=null&&(n.uint32(24),n.uint64(e.expiry)),i.lengthDelimited!==!1&&n.ldelim()},(e,n)=>{let i={name:""},o=n==null?e.len:e.pos+n;for(;e.pos<o;){let s=e.uint32();switch(s>>>3){case 1:i.name=e.string();break;case 2:i.value=e.uint32();break;case 3:i.expiry=e.uint64();break;default:e.skipType(s&7);break}}return i})),t),r.encode=e=>_t(e,r.codec()),r.decode=e=>bt(e,r.codec())})(Wc||(Wc={}));var $e=N("libp2p:peer-store"),Qc=class extends Pt{constructor(t,e={}){super(),this.components=t,this.store=new Yc(t),this.addressBook=new Cc(this.dispatchEvent.bind(this),this.store,e.addressFilter),this.keyBook=new Dc(this.dispatchEvent.bind(this),this.store),this.metadataBook=new Lc(this.dispatchEvent.bind(this),this.store),this.protoBook=new Oc(this.dispatchEvent.bind(this),this.store)}async forEach(t){$e.trace("getPeers await read lock");let e=await this.store.lock.readLock();$e.trace("getPeers got read lock");try{for await(let n of this.store.all())n.id.equals(this.components.peerId)||t(n)}finally{$e.trace("getPeers release read lock"),e()}}async all(){let t=[];return await this.forEach(e=>{t.push(e)}),t}async delete(t){$e.trace("delete await write lock");let e=await this.store.lock.writeLock();$e.trace("delete got write lock");try{await this.store.delete(t)}finally{$e.trace("delete release write lock"),e()}}async get(t){$e.trace("get await read lock");let e=await this.store.lock.readLock();$e.trace("get got read lock");try{return await this.store.load(t)}finally{$e.trace("get release read lock"),e()}}async has(t){$e.trace("has await read lock");let e=await this.store.lock.readLock();$e.trace("has got read lock");try{return await this.store.has(t)}finally{$e.trace("has release read lock"),e()}}async tagPeer(t,e,n={}){let i=n.value??0,o=Math.round(i),s=n.ttl??void 0;if(o!==i||o<0||o>100)throw(0,Ah.default)(new Error("Tag value must be between 0-100"),"ERR_TAG_VALUE_OUT_OF_BOUNDS");let a=await this.metadataBook.getValue(t,"tags"),c=[];a!=null&&(c=Xr.decode(a).tags);for(let l of c)if(l.name===e)throw(0,Ah.default)(new Error("Peer already tagged"),"ERR_DUPLICATE_TAG");c.push({name:e,value:o,expiry:s==null?void 0:BigInt(Date.now()+s)}),await this.metadataBook.setValue(t,"tags",Xr.encode({tags:c}).subarray())}async unTagPeer(t,e){let n=await this.metadataBook.getValue(t,"tags"),i=[];n!=null&&(i=Xr.decode(n).tags),i=i.filter(o=>o.name!==e),await this.metadataBook.setValue(t,"tags",Xr.encode({tags:i}).subarray())}async getTags(t){let e=await this.metadataBook.getValue(t,"tags"),n=[];e!=null&&(n=Xr.decode(e).tags);let i=BigInt(Date.now()),o=n.filter(s=>s.expiry==null||s.expiry>i);return o.length!==n.length&&await this.metadataBook.setValue(t,"tags",Xr.encode({tags:o}).subarray()),o.map(s=>({name:s.name,value:s.value??0}))}};var BE=I(W(),1),Xc=class{constructor(t){this.dht=t}async provide(t){await Ye(this.dht.provide(t))}async*findProviders(t,e={}){for await(let n of this.dht.findProviders(t,e))n.name==="PROVIDER"&&(yield*n.providers)}async put(t,e,n){await Ye(this.dht.put(t,e,n))}async get(t,e){for await(let n of this.dht.get(t,e))if(n.name==="VALUE")return n.value;throw(0,BE.default)(new Error("Not found"),"ERR_NOT_FOUND")}};var Be=I(W(),1);var Zc=class{constructor(t={}){this._started=!1,this._peerId=t.peerId,this._addressManager=t.addressManager,this._peerStore=t.peerStore,this._upgrader=t.upgrader,this._metrics=t.metrics,this._registrar=t.registrar,this._connectionManager=t.connectionManager,this._transportManager=t.transportManager,this._connectionGater=t.connectionGater,this._contentRouting=t.contentRouting,this._peerRouting=t.peerRouting,this._datastore=t.datastore,this._connectionProtector=t.connectionProtector,this._dht=t.dht,this._pubsub=t.pubsub,this._dialer=t.dialer}isStarted(){return this._started}async beforeStart(){await Promise.all(Object.values(this).filter(t=>Cr(t)).map(async t=>{t.beforeStart!=null&&await t.beforeStart()}))}async start(){await Promise.all(Object.values(this).filter(t=>Cr(t)).map(async t=>{await t.start()})),this._started=!0}async afterStart(){await Promise.all(Object.values(this).filter(t=>Cr(t)).map(async t=>{t.afterStart!=null&&await t.afterStart()}))}async beforeStop(){await Promise.all(Object.values(this).filter(t=>Cr(t)).map(async t=>{t.beforeStop!=null&&await t.beforeStop()}))}async stop(){await Promise.all(Object.values(this).filter(t=>Cr(t)).map(async t=>{await t.stop()})),this._started=!1}async afterStop(){await Promise.all(Object.values(this).filter(t=>Cr(t)).map(async t=>{t.afterStop!=null&&await t.afterStop()}))}get peerId(){if(this._peerId==null)throw(0,Be.default)(new Error("peerId not set"),"ERR_SERVICE_MISSING");return this._peerId}set peerId(t){this._peerId=t}get addressManager(){if(this._addressManager==null)throw(0,Be.default)(new Error("addressManager not set"),"ERR_SERVICE_MISSING");return this._addressManager}set addressManager(t){this._addressManager=t}get peerStore(){if(this._peerStore==null)throw(0,Be.default)(new Error("peerStore not set"),"ERR_SERVICE_MISSING");return this._peerStore}set peerStore(t){this._peerStore=t}get upgrader(){if(this._upgrader==null)throw(0,Be.default)(new Error("upgrader not set"),"ERR_SERVICE_MISSING");return this._upgrader}set upgrader(t){this._upgrader=t}get registrar(){if(this._registrar==null)throw(0,Be.default)(new Error("registrar not set"),"ERR_SERVICE_MISSING");return this._registrar}set registrar(t){this._registrar=t}get connectionManager(){if(this._connectionManager==null)throw(0,Be.default)(new Error("connectionManager not set"),"ERR_SERVICE_MISSING");return this._connectionManager}set connectionManager(t){this._connectionManager=t}get transportManager(){if(this._transportManager==null)throw(0,Be.default)(new Error("transportManager not set"),"ERR_SERVICE_MISSING");return this._transportManager}set transportManager(t){this._transportManager=t}get connectionGater(){if(this._connectionGater==null)throw(0,Be.default)(new Error("connectionGater not set"),"ERR_SERVICE_MISSING");return this._connectionGater}set connectionGater(t){this._connectionGater=t}get contentRouting(){if(this._contentRouting==null)throw(0,Be.default)(new Error("contentRouting not set"),"ERR_SERVICE_MISSING");return this._contentRouting}set contentRouting(t){this._contentRouting=t}get peerRouting(){if(this._peerRouting==null)throw(0,Be.default)(new Error("peerRouting not set"),"ERR_SERVICE_MISSING");return this._peerRouting}set peerRouting(t){this._peerRouting=t}get datastore(){if(this._datastore==null)throw(0,Be.default)(new Error("datastore not set"),"ERR_SERVICE_MISSING");return this._datastore}set datastore(t){this._datastore=t}get connectionProtector(){return this._connectionProtector}set connectionProtector(t){this._connectionProtector=t}get dialer(){if(this._dialer==null)throw(0,Be.default)(new Error("dialer not set"),"ERR_SERVICE_MISSING");return this._dialer}set dialer(t){this._dialer=t}get metrics(){return this._metrics}set metrics(t){this._metrics=t}get dht(){return this._dht}set dht(t){this._dht=t}get pubsub(){return this._pubsub}set pubsub(t){this._pubsub=t}};var Ih=I(ll(),1),Th=I(kE(),1);var ME=globalThis.fetch,UE=globalThis.Headers,I6=globalThis.Request,T6=globalThis.Response;function Jc(r,t,e){return`${r}?name=${t}&type=${e}`}async function FE(r,t){return await(await ME(r,{headers:new UE({accept:"application/dns-json"}),signal:t})).json()}function di(r,t){return`${t}_${r}`}var Rh=Object.assign((0,Ih.default)("dns-over-http-resolver"),{error:(0,Ih.default)("dns-over-http-resolver:error")}),Ch=class{constructor(t={}){this._cache=new Th.default({max:t?.maxCache??100}),this._TXTcache=new Th.default({max:t?.maxCache??100}),this._servers=["https://cloudflare-dns.com/dns-query","https://dns.google/resolve"],this._request=t.request??FE,this._abortControllers=[]}cancel(){this._abortControllers.forEach(t=>t.abort())}getServers(){return this._servers}_getShuffledServers(){let t=[...this._servers];for(let e=t.length-1;e>0;e--){let n=Math.floor(Math.random()*e),i=t[e];t[e]=t[n],t[n]=i}return t}setServers(t){this._servers=t}async resolve(t,e="A"){switch(e){case"A":return await this.resolve4(t);case"AAAA":return await this.resolve6(t);case"TXT":return await this.resolveTxt(t);default:throw new Error(`${e} is not supported`)}}async resolve4(t){let e="A",n=this._cache.get(di(t,e));if(n!=null)return n;let i=!1;for(let o of this._getShuffledServers()){let s=new AbortController;this._abortControllers.push(s);try{let a=await this._request(Jc(o,t,e),s.signal),c=a.Answer.map(u=>u.data),l=Math.min(...a.Answer.map(u=>u.TTL));return this._cache.set(di(t,e),c,{ttl:l}),c}catch{s.signal.aborted&&(i=!0),Rh.error(`${o} could not resolve ${t} record ${e}`)}finally{this._abortControllers=this._abortControllers.filter(a=>a!==s)}}throw i?Object.assign(new Error("queryA ECANCELLED"),{code:"ECANCELLED"}):new Error(`Could not resolve ${t} record ${e}`)}async resolve6(t){let e="AAAA",n=this._cache.get(di(t,e));if(n!=null)return n;let i=!1;for(let o of this._getShuffledServers()){let s=new AbortController;this._abortControllers.push(s);try{let a=await this._request(Jc(o,t,e),s.signal),c=a.Answer.map(u=>u.data),l=Math.min(...a.Answer.map(u=>u.TTL));return this._cache.set(di(t,e),c,{ttl:l}),c}catch{s.signal.aborted&&(i=!0),Rh.error(`${o} could not resolve ${t} record ${e}`)}finally{this._abortControllers=this._abortControllers.filter(a=>a!==s)}}throw i?Object.assign(new Error("queryAaaa ECANCELLED"),{code:"ECANCELLED"}):new Error(`Could not resolve ${t} record ${e}`)}async resolveTxt(t){let e="TXT",n=this._TXTcache.get(di(t,e));if(n!=null)return n;let i=!1;for(let o of this._getShuffledServers()){let s=new AbortController;this._abortControllers.push(s);try{let a=await this._request(Jc(o,t,e),s.signal),c=a.Answer.map(u=>[u.data.replace(/['"]+/g,"")]),l=Math.min(...a.Answer.map(u=>u.TTL));return this._TXTcache.set(di(t,e),c,{ttl:l}),c}catch{s.signal.aborted&&(i=!0),Rh.error(`${o} could not resolve ${t} record ${e}`)}finally{this._abortControllers=this._abortControllers.filter(a=>a!==s)}}throw i?Object.assign(new Error("queryTxt ECANCELLED"),{code:"ECANCELLED"}):new Error(`Could not resolve ${t} record ${e}`)}clearCache(){this._cache.clear(),this._TXTcache.clear()}},KE=Ch;var VE=KE;var{code:AR}=mt("dnsaddr");async function qE(r,t={}){let e=new VE;t.signal!=null&&t.signal.addEventListener("abort",()=>{e.cancel()});let n=r.getPeerId(),[,i]=r.stringTuples().find(([a])=>a===AR)??[];if(i==null)throw new Error("No hostname found in multiaddr");let s=(await e.resolveTxt(`_dnsaddr.${i}`)).flat().map(a=>a.split("=")[1]);return n!=null&&(s=s.filter(a=>a.includes(n))),s}var jc=I(W(),1);var DR={addresses:{listen:[],announce:[],noAnnounce:[],announceFilter:r=>r},connectionManager:{maxConnections:300,minConnections:50,autoDial:!0,autoDialInterval:1e4,maxParallelDials:100,maxDialsPerPeer:4,dialTimeout:3e4,inboundUpgradeTimeout:3e4,resolvers:{dnsaddr:qE},addressSorter:Ki},connectionGater:{},transportManager:{faultTolerance:un.FATAL_ALL},peerRouting:{refreshManager:{enabled:!0,interval:6e5,bootDelay:1e4}},nat:{enabled:!0,ttl:7200,keepAlive:!0},relay:{enabled:!0,advertise:{bootDelay:9e5,enabled:!1,ttl:18e5},hop:{enabled:!1,active:!1,timeout:3e4},autoRelay:{enabled:!1,maxListeners:2}},identify:{protocolPrefix:"ipfs",host:{agentVersion:jf},timeout:6e4,maxInboundStreams:1,maxOutboundStreams:1,maxPushIncomingStreams:1,maxPushOutgoingStreams:1},ping:{protocolPrefix:"ipfs",maxInboundStreams:1,maxOutboundStreams:1,timeout:1e4},fetch:{protocolPrefix:"libp2p",maxInboundStreams:1,maxOutboundStreams:1,timeout:1e4}};function HE(r){let t=Ne(DR,r);if(t.transports==null||t.transports.length<1)throw(0,jc.default)(new Error(X.ERR_TRANSPORTS_REQUIRED),b.ERR_TRANSPORTS_REQUIRED);if(t.connectionEncryption==null||t.connectionEncryption.length===0)throw(0,jc.default)(new Error(X.CONN_ENCRYPTION_REQUIRED),b.CONN_ENCRYPTION_REQUIRED);if(t.connectionProtector===null&&globalThis.process?.env?.LIBP2P_FORCE_PNET!=null)throw(0,jc.default)(new Error(X.ERR_PROTECTOR_REQUIRED),b.ERR_PROTECTOR_REQUIRED);return t.identify.host.agentVersion===jf&&(sE||iE?t.identify.host.agentVersion+=` UserAgent=${globalThis.process.version}`:(Es||aE||oE||cE)&&(t.identify.host.agentVersion+=` UserAgent=${globalThis.navigator.userAgent}`)),t}var Bh;(function(r){let t;r.codec=()=>(t==null&&(t=St((e,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),(i.writeDefaults===!0||e.id!=null&&e.id.byteLength>0)&&(n.uint32(10),n.bytes(e.id)),e.pubKey!=null&&(n.uint32(18),n.bytes(e.pubKey)),e.privKey!=null&&(n.uint32(26),n.bytes(e.privKey)),i.lengthDelimited!==!1&&n.ldelim()},(e,n)=>{let i={id:new Uint8Array(0)},o=n==null?e.len:e.pos+n;for(;e.pos<o;){let s=e.uint32();switch(s>>>3){case 1:i.id=e.bytes();break;case 2:i.pubKey=e.bytes();break;case 3:i.privKey=e.bytes();break;default:e.skipType(s&7);break}}return i})),t),r.encode=e=>_t(e,r.codec()),r.decode=e=>bt(e,r.codec())})(Bh||(Bh={}));var $E=async()=>{let r=await pc("Ed25519"),t=await PR(r);if(t.type==="Ed25519")return t;throw new Error(`Generated unexpected PeerId type "${t.type}"`)};async function PR(r){return await nn(yw(r.public),gw(r))}var Ds=I(W(),1);var ze=I(W(),1);var zE=Symbol.for("@libp2p/peer-discovery");var tl=class extends Pt{get[zE](){return!0}get[Symbol.toStringTag](){return"@libp2p/dummy-dht"}get wan(){throw(0,ze.default)(new Error(X.DHT_DISABLED),b.DHT_DISABLED)}get lan(){throw(0,ze.default)(new Error(X.DHT_DISABLED),b.DHT_DISABLED)}get(){throw(0,ze.default)(new Error(X.DHT_DISABLED),b.DHT_DISABLED)}findProviders(){throw(0,ze.default)(new Error(X.DHT_DISABLED),b.DHT_DISABLED)}findPeer(){throw(0,ze.default)(new Error(X.DHT_DISABLED),b.DHT_DISABLED)}getClosestPeers(){throw(0,ze.default)(new Error(X.DHT_DISABLED),b.DHT_DISABLED)}provide(){throw(0,ze.default)(new Error(X.DHT_DISABLED),b.DHT_DISABLED)}put(){throw(0,ze.default)(new Error(X.DHT_DISABLED),b.DHT_DISABLED)}async getMode(){throw(0,ze.default)(new Error(X.DHT_DISABLED),b.DHT_DISABLED)}async setMode(){throw(0,ze.default)(new Error(X.DHT_DISABLED),b.DHT_DISABLED)}async refreshRoutingTable(){throw(0,ze.default)(new Error(X.DHT_DISABLED),b.DHT_DISABLED)}};var Zr=I(W(),1);var el=class extends Pt{constructor(){super(...arguments),this.topicValidators=new Map}isStarted(){return!1}start(){}stop(){}get globalSignaturePolicy(){throw(0,Zr.default)(new Error(X.PUBSUB_DISABLED),b.ERR_PUBSUB_DISABLED)}get multicodecs(){throw(0,Zr.default)(new Error(X.PUBSUB_DISABLED),b.ERR_PUBSUB_DISABLED)}getPeers(){throw(0,Zr.default)(new Error(X.PUBSUB_DISABLED),b.ERR_PUBSUB_DISABLED)}getTopics(){throw(0,Zr.default)(new Error(X.PUBSUB_DISABLED),b.ERR_PUBSUB_DISABLED)}subscribe(){throw(0,Zr.default)(new Error(X.PUBSUB_DISABLED),b.ERR_PUBSUB_DISABLED)}unsubscribe(){throw(0,Zr.default)(new Error(X.PUBSUB_DISABLED),b.ERR_PUBSUB_DISABLED)}getSubscribers(){throw(0,Zr.default)(new Error(X.PUBSUB_DISABLED),b.ERR_PUBSUB_DISABLED)}async publish(){throw(0,Zr.default)(new Error(X.PUBSUB_DISABLED),b.ERR_PUBSUB_DISABLED)}};var co=I(W(),1);var c1=I(Nr(),1),Mh=I(Oh(),1),l1=I(lr(),1);var Cs=I(W(),1),o1=I(Oh(),1),s1=I(n1(),1),kh=I(lr(),1);var i1=N("libp2p:dialer:dial-request"),rl=class{constructor(t){let{addrs:e,dialAction:n,dialer:i}=t;this.addrs=e,this.dialer=i,this.dialAction=n}async run(t={}){let e=this.dialer.getTokens(this.addrs.length);if(e.length<1)throw(0,Cs.default)(new Error("No dial tokens available"),b.ERR_NO_DIAL_TOKENS);let n=new s1.default;for(let a of e)n.push(a).catch(c=>{i1.error(c)});let i=this.addrs.map(()=>{let a=new AbortController;try{(0,kh.setMaxListeners)?.(1/0,a.signal)}catch{}return a});if(t.signal!=null)try{(0,kh.setMaxListeners)?.(1/0,t.signal)}catch{}let o=0,s=!1;try{return await Promise.any(this.addrs.map(async(a,c)=>{let l=await n.shift();if(s)throw this.dialer.releaseToken(e.splice(e.indexOf(l),1)[0]),(0,Cs.default)(new Error("dialAction already succeeded"),b.ERR_ALREADY_SUCCEEDED);let u=i[c];if(u==null)throw(0,Cs.default)(new Error("dialAction did not come with an AbortController"),b.ERR_INVALID_PARAMETERS);let f;try{let d=u.signal;f=await this.dialAction(a,{...t,signal:t.signal!=null?(0,o1.anySignal)([d,t.signal]):d}),i[c]=void 0}finally{o++,this.addrs.length-o>=e.length?n.push(l).catch(d=>{i1.error(d)}):this.dialer.releaseToken(e.splice(e.indexOf(l),1)[0])}if(f==null)throw(0,Cs.default)(new Error("dialAction led to empty object"),b.ERR_TRANSPORT_DIAL_FAILED);return s=!0,f}))}finally{i.forEach(a=>{a!==void 0&&a.abort()}),e.forEach(a=>this.dialer.releaseToken(a))}}};var Ar=N("libp2p:dialer"),nl=class{constructor(t,e={}){this.started=!1,this.addressSorter=e.addressSorter??Ki,this.maxAddrsToDial=e.maxAddrsToDial??25,this.timeout=e.dialTimeout??3e4,this.maxDialsPerPeer=e.maxDialsPerPeer??4,this.tokens=[...new Array(e.maxParallelDials??100)].map((n,i)=>i),this.components=t,this.pendingDials=cs({name:"libp2p_dialler_pending_dials",metrics:t.metrics}),this.pendingDialTargets=cs({name:"libp2p_dialler_pending_dial_targets",metrics:t.metrics});for(let[n,i]of Object.entries(e.resolvers??{}))zl.set(n,i)}isStarted(){return this.started}async start(){this.started=!0}async stop(){this.started=!1;for(let t of this.pendingDials.values())try{t.controller.abort()}catch(e){Ar.error(e)}this.pendingDials.clear();for(let t of this.pendingDialTargets.values())t.abort();this.pendingDialTargets.clear()}async dial(t,e={}){let{peerId:n,multiaddr:i}=ua(t);if(n!=null){if(this.components.peerId.equals(n))throw(0,co.default)(new Error("Tried to dial self"),b.ERR_DIALED_SELF);if(i!=null&&(Ar("storing multiaddrs %p",n,i),await this.components.peerStore.addressBook.add(n,[i])),await this.components.connectionGater.denyDialPeer(n))throw(0,co.default)(new Error("The dial request is blocked by gater.allowDialPeer"),b.ERR_PEER_DIAL_INTERCEPTED)}Ar("creating dial target for %p",n);let o=new AbortController,s=a1();this.pendingDialTargets.set(s,o);let a=o.signal;e.signal!=null&&(a=(0,Mh.anySignal)([a,e.signal]));let c;try{c=await this._createDialTarget({peerId:n,multiaddr:i},{...e,signal:a})}finally{this.pendingDialTargets.delete(s)}if(c.addrs.length===0)throw(0,co.default)(new Error("The dial request has no valid addresses"),b.ERR_NO_VALID_ADDRESSES);let l=this.pendingDials.get(c.id)??this._createPendingDial(c,e);try{let u=await l.promise;return Ar("dial succeeded to %s",c.id),u}catch(u){throw Ar("dial failed to %s",c.id,u),l.controller.signal.aborted&&(u.code=b.ERR_TIMEOUT),Ar.error(u),u}finally{l.destroy()}}getPendingDialTargets(){return this.pendingDialTargets}hasPendingDial(t){return _e(t)?this.pendingDials.has(t.getPeerId()??""):this.pendingDials.has(t.toString())}async _createDialTarget(t,e){let n=[];if(_e(t.multiaddr)&&n.push(t.multiaddr),!_e(t.multiaddr)&&Mn(t.peerId)&&n.push(...await this._loadAddresses(t.peerId)),n=(await Promise.all(n.map(async o=>await this._resolve(o,e)))).flat().filter(o=>Boolean(this.components.transportManager.transportForMultiaddr(o))),n=[...new Set(n.map(o=>o.toString()))].map(o=>j(o)),n.length>this.maxAddrsToDial)throw(0,co.default)(new Error("dial with more addresses than allowed"),b.ERR_TOO_MANY_ADDRESSES);let i=Mn(t.peerId)?t.peerId:void 0;if(i!=null){let o=`/p2p/${i.toString()}`;n=n.map(s=>{let a=s.getPeerId();return a==null||!i.equals(a)?s.encapsulate(o):s})}return{id:i==null?a1():i.toString(),addrs:n}}async _loadAddresses(t){let e=await this.components.peerStore.addressBook.get(t);return(await Promise.all(e.map(async n=>await this.components.connectionGater.denyDialMultiaddr(t,n.multiaddr)?!1:n))).filter(NR).sort(this.addressSorter).map(n=>n.multiaddr)}_createPendingDial(t,e={}){let n=async(l,u={})=>{if(u.signal?.aborted===!0)throw(0,co.default)(new Error("already aborted"),b.ERR_ALREADY_ABORTED);return await this.components.transportManager.dial(l,u).catch(f=>{throw Ar.error("dial to %s failed",l,f),f})},i=new rl({addrs:t.addrs,dialAction:n,dialer:this}),o=new c1.TimeoutController(this.timeout),s=[o.signal];e.signal!=null&&s.push(e.signal);let a=(0,Mh.anySignal)(s);try{(0,l1.setMaxListeners)?.(1/0,a)}catch{}let c={dialRequest:i,controller:o,promise:i.run({...e,signal:a}),destroy:()=>{o.clear(),this.pendingDials.delete(t.id)}};return this.pendingDials.set(t.id,c),c}getTokens(t){let e=Math.min(t,this.maxDialsPerPeer,this.tokens.length),n=this.tokens.splice(0,e);return Ar("%d tokens request, returning %d, %d remaining",t,e,this.tokens.length),n}releaseToken(t){this.tokens.includes(t)||(Ar("token %d released",t),this.tokens.push(t))}async _resolve(t,e){if(!t.protoNames().includes("dnsaddr"))return[t];let i=await this._resolveRecord(t,e);return(await Promise.all(i.map(async a=>await this._resolve(a,e)))).flat().reduce((a,c)=>(a.find(l=>l.equals(c))==null&&a.push(c),a),[])}async _resolveRecord(t,e){try{return t=j(t.toString()),await t.resolve(e)}catch(n){return Ar.error(`multiaddr ${t.toString()} could not be resolved`,n),[]}}};function NR(r){return Boolean(r)}function a1(){return`${parseInt(String(Math.random()*1e9),10).toString()}${Date.now()}`}var Rr=N("libp2p"),Uh=class extends Pt{constructor(t){super(),this.started=!1,this.peerId=t.peerId;let e=this.components=new Zc({peerId:t.peerId,datastore:t.datastore??new Gs,connectionGater:{denyDialPeer:async()=>await Promise.resolve(!1),denyDialMultiaddr:async()=>await Promise.resolve(!1),denyInboundConnection:async()=>await Promise.resolve(!1),denyOutboundConnection:async()=>await Promise.resolve(!1),denyInboundEncryptedConnection:async()=>await Promise.resolve(!1),denyOutboundEncryptedConnection:async()=>await Promise.resolve(!1),denyInboundUpgradedConnection:async()=>await Promise.resolve(!1),denyOutboundUpgradedConnection:async()=>await Promise.resolve(!1),filterMultiaddrForPeer:async()=>await Promise.resolve(!0),...t.connectionGater}});e.peerStore=new Qc(e,{addressFilter:this.components.connectionGater.filterMultiaddrForPeer,...t.peerStore}),this.services=[e],t.metrics!=null&&(this.metrics=this.components.metrics=this.configureComponent(t.metrics(this.components))),this.peerStore=this.components.peerStore,this.peerStore.addEventListener("peer",s=>{let{detail:a}=s;this.dispatchEvent(new q("peer:discovery",{detail:a}))}),t.connectionProtector!=null&&(this.components.connectionProtector=t.connectionProtector(e)),this.components.upgrader=new Ec(this.components,{connectionEncryption:(t.connectionEncryption??[]).map(s=>this.configureComponent(s(this.components))),muxers:(t.streamMuxers??[]).map(s=>this.configureComponent(s(this.components))),inboundUpgradeTimeout:t.connectionManager.inboundUpgradeTimeout}),this.components.dialer=new nl(this.components,t.connectionManager),this.connectionManager=this.components.connectionManager=new da(this.components,t.connectionManager),this.components.connectionManager.addEventListener("peer:disconnect",s=>{this.dispatchEvent(new q("peer:disconnect",{detail:s.detail}))}),this.components.connectionManager.addEventListener("peer:connect",s=>{this.dispatchEvent(new q("peer:connect",{detail:s.detail}))}),this.registrar=this.components.registrar=new wc(this.components),this.components.transportManager=new yc(this.components,t.transportManager),this.components.addressManager=new ra(this.components,t.addresses),this.configureComponent(new Ac(this.components)),this.configureComponent(new pa(this.components,{enabled:t.connectionManager.autoDial,minConnections:t.connectionManager.minConnections,autoDialInterval:t.connectionManager.autoDialInterval}));let n=si.generateOptions();this.keychain=this.configureComponent(new si(this.components,{...n,...t.keychain})),this.services.push(new Sc(this.components,t.nat)),t.transports.forEach(s=>{this.components.transportManager.add(this.configureComponent(s(this.components)))}),this.identifyService=new io(this.components,{...t.identify}),this.configureComponent(this.identifyService),t.dht!=null?this.dht=this.components.dht=t.dht(this.components):this.dht=new tl,t.pubsub!=null?this.pubsub=this.components.pubsub=t.pubsub(this.components):this.pubsub=new el;let i=(t.peerRouters??[]).map(s=>this.configureComponent(s(this.components)));t.dht!=null&&(i.push(this.configureComponent(new Rc(this.dht))),this.dht.addEventListener("peer",s=>{this.onDiscoveryPeer(s)})),this.peerRouting=this.components.peerRouting=this.configureComponent(new js(this.components,{...t.peerRouting,routers:i}));let o=(t.contentRouters??[]).map(s=>this.configureComponent(s(this.components)));t.dht!=null&&o.push(this.configureComponent(new Xc(this.dht))),this.contentRouting=this.components.contentRouting=this.configureComponent(new ea(this.components,{routers:o})),t.relay.enabled&&(this.components.transportManager.add(this.configureComponent(new Ra(this.components,t.relay))),this.configureComponent(new Ba(this.components,{addressSorter:t.connectionManager.addressSorter,...t.relay}))),this.fetchService=this.configureComponent(new vc(this.components,{...t.fetch})),this.pingService=this.configureComponent(new bc(this.components,{...t.ping}));for(let s of t.peerDiscovery??[])this.configureComponent(s(this.components)).addEventListener("peer",c=>{this.onDiscoveryPeer(c)})}configureComponent(t){return Cr(t)&&this.services.push(t),t}async start(){if(this.started)return;this.started=!0,Rr("libp2p is starting"),(await this.keychain.listKeys()).find(e=>e.name==="self")==null&&(Rr("importing self key into keychain"),await this.keychain.importPeer("self",this.components.peerId));try{await Promise.all(this.services.map(async e=>{e.beforeStart!=null&&await e.beforeStart()})),await Promise.all(this.services.map(e=>e.start())),await Promise.all(this.services.map(async e=>{e.afterStart!=null&&await e.afterStart()})),Rr("libp2p has started")}catch(e){throw Rr.error("An error occurred starting libp2p",e),await this.stop(),e}}async stop(){this.started&&(Rr("libp2p is stopping"),this.started=!1,await Promise.all(this.services.map(async t=>{t.beforeStop!=null&&await t.beforeStop()})),await Promise.all(this.services.map(t=>t.stop())),await Promise.all(this.services.map(async t=>{t.afterStop!=null&&await t.afterStop()})),Rr("libp2p has stopped"))}isStarted(){return this.started}getConnections(t){return this.components.connectionManager.getConnections(t)}getPeers(){let t=new Ur;for(let e of this.components.connectionManager.getConnections())t.add(e.remotePeer);return Array.from(t)}async dial(t,e={}){return await this.components.connectionManager.openConnection(t,e)}async dialProtocol(t,e,n={}){if(e==null)throw(0,Ds.default)(new Error("no protocols were provided to open a stream"),b.ERR_INVALID_PROTOCOLS_FOR_STREAM);if(e=Array.isArray(e)?e:[e],e.length===0)throw(0,Ds.default)(new Error("no protocols were provided to open a stream"),b.ERR_INVALID_PROTOCOLS_FOR_STREAM);return await(await this.dial(t,n)).newStream(e,n)}getMultiaddrs(){return this.components.addressManager.getAddresses()}getProtocols(){return this.components.registrar.getProtocols()}async hangUp(t){_e(t)&&(t=tt(t.getPeerId()??"")),await this.components.connectionManager.closeConnections(t)}async getPublicKey(t,e={}){if(Rr("getPublicKey %p",t),t.publicKey!=null)return t.publicKey;let n=await this.peerStore.get(t);if(n.pubKey!=null)return n.pubKey;if(this.dht==null)throw(0,Ds.default)(new Error("Public key was not in the peer store and the DHT is not enabled"),b.ERR_NO_ROUTERS_AVAILABLE);let i=qt([U("/pk/"),t.multihash.digest]);for await(let o of this.dht.get(i,e))if(o.name==="VALUE"){let s=ns(o.value);return await this.peerStore.keyBook.set(t,o.value),s.bytes}throw(0,Ds.default)(new Error(`Node not responding with its public key: ${t.toString()}`),b.ERR_INVALID_RECORD)}async fetch(t,e,n={}){if(_e(t)){let i=tt(t.getPeerId()??"");await this.components.peerStore.addressBook.add(i,[t]),t=i}return await this.fetchService.fetch(t,e,n)}async ping(t,e={}){if(_e(t)){let n=tt(t.getPeerId()??"");await this.components.peerStore.addressBook.add(n,[t]),t=n}return await this.pingService.ping(t,e)}async handle(t,e,n){Array.isArray(t)||(t=[t]),await Promise.all(t.map(async i=>{await this.components.registrar.handle(i,e,n)}))}async unhandle(t){Array.isArray(t)||(t=[t]),await Promise.all(t.map(async e=>{await this.components.registrar.unhandle(e)}))}async register(t,e){return await this.registrar.register(t,e)}unregister(t){this.registrar.unregister(t)}onDiscoveryPeer(t){let{detail:e}=t;if(e.id.toString()===this.peerId.toString()){Rr.error(new Error(b.ERR_DISCOVERED_SELF));return}e.multiaddrs.length>0&&this.components.peerStore.addressBook.add(e.id,e.multiaddrs).catch(n=>Rr.error(n)),e.protocols.length>0&&this.components.peerStore.protoBook.set(e.id,e.protocols).catch(n=>Rr.error(n)),this.dispatchEvent(new q("peer:discovery",{detail:e}))}};async function u1(r){if(r.peerId==null){let t=r.datastore;if(t!=null)try{let e=new si({datastore:t},Ne(si.generateOptions(),r.keychain));r.peerId=await e.exportPeerId("self")}catch(e){if(e.code!=="ERR_NOT_FOUND")throw e}}return r.peerId==null&&(r.peerId=await $E()),new Uh(HE(r))}async function OR(r){let t=await u1(r);return r.start!==!1&&await t.start(),t}return y1(kR);})();
48
+ `.replace(/\s*\/\/.*$/gm,"").replace(/\n/g,"").trim(),tb=new RegExp(`(?:^${Ze}$)|(?:^${Ia}$)`),eb=new RegExp(`^${Ze}$`),rb=new RegExp(`^${Ia}$`),qu=r=>r&&r.exact?tb:new RegExp(`(?:${fn(r)}${Ze}${fn(r)})|(?:${fn(r)}${Ia}${fn(r)})`,"g");qu.v4=r=>r&&r.exact?eb:new RegExp(`${fn(r)}${Ze}${fn(r)}`,"g");qu.v6=r=>r&&r.exact?rb:new RegExp(`${fn(r)}${Ia}${fn(r)}`,"g");var Lm=qu;var Mm=I(Nm(),1),{isValid:nb,parse:ib}=Mm.default,ob=["0.0.0.0/8","10.0.0.0/8","100.64.0.0/10","127.0.0.0/8","169.254.0.0/16","172.16.0.0/12","192.0.0.0/24","192.0.0.0/29","192.0.0.8/32","192.0.0.9/32","192.0.0.10/32","192.0.0.170/32","192.0.0.171/32","192.0.2.0/24","192.31.196.0/24","192.52.193.0/24","192.88.99.0/24","192.168.0.0/16","192.175.48.0/24","198.18.0.0/15","198.51.100.0/24","203.0.113.0/24","240.0.0.0/4","255.255.255.255/32"],sb=ob.map(r=>new km.Netmask(r));function ab(r){for(let t of sb)if(t.contains(r))return!0;return!1}function Om(r){return/^::$/.test(r)||/^::1$/.test(r)||/^::f{4}:([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/.test(r)||/^::f{4}:0.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/.test(r)||/^64:ff9b::([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/.test(r)||/^100::([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(r)||/^2001::([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(r)||/^2001:2[0-9a-fA-F]:([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(r)||/^2001:db8:([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(r)||/^2002:([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(r)||/^f[c-d]([0-9a-fA-F]{2,2}):/i.test(r)||/^fe[8-9a-bA-B][0-9a-fA-F]:/i.test(r)||/^ff([0-9a-fA-F]{2,2}):/i.test(r)}var Um=r=>{if(nb(r)){let t=ib(r);if(t.kind()==="ipv4")return ab(t.toNormalizedString());if(t.kind()==="ipv6")return Om(r)}else if(vi(r)&&Lm.v6().test(r))return Om(r)};var Ca=Um;function Hu(r){let{address:t}=r.nodeAddress();return Boolean(Ca(t))}function Vi(r,t){let e=Hu(r.multiaddr),n=Hu(t.multiaddr);return e&&!n?1:!e&&n||r.isCertified&&!t.isCertified?-1:!r.isCertified&&t.isCertified?1:0}var ko=N("libp2p:auto-relay"),lb=()=>{},Da=class{constructor(t,e){this.components=t,this.addressSorter=e.addressSorter??Vi,this.maxListeners=e.maxListeners??1,this.listenRelays=new Set,this.onError=e.onError??lb,this._onProtocolChange=this._onProtocolChange.bind(this),this._onPeerDisconnected=this._onPeerDisconnected.bind(this),this.components.peerStore.addEventListener("change:protocols",n=>{this._onProtocolChange(n).catch(i=>{ko.error(i)})}),this.components.connectionManager.addEventListener("peer:disconnect",this._onPeerDisconnected)}async _onProtocolChange(t){let{peerId:e,protocols:n}=t.detail,i=e.toString();if(n.find(s=>s===hr)==null){this.listenRelays.has(i)&&await this._removeListenRelay(i);return}if(!this.listenRelays.has(i))try{let s=this.components.connectionManager.getConnections(e);if(s.length===0)return;let a=s[0];if(a.remoteAddr.protoCodes().includes(290)){ko(`relayed connection to ${i} will not be used to hop on`);return}await Sm({connection:a})&&(await this.components.peerStore.metadataBook.setValue(e,Fu,U(Ku)),await this._addListenRelay(a,i))}catch(s){this.onError(s)}}_onPeerDisconnected(t){let i=t.detail.remotePeer.toString();this.listenRelays.has(i)&&this._removeListenRelay(i).catch(o=>{ko.error(o)})}async _addListenRelay(t,e){try{if(this.listenRelays.size>=this.maxListeners)return;let n=await Lt(await this.components.peerStore.addressBook.get(t.remotePeer),o=>Vu(o,this.addressSorter),async o=>await Lr(o));(await Promise.all(n.map(async o=>{try{let s=o.multiaddr;return s.getPeerId()==null&&(s=s.encapsulate(`/p2p/${t.remotePeer.toString()}`)),s=s.encapsulate("/p2p-circuit"),await this.components.transportManager.listen([s]),!0}catch(s){ko.error("error listening on circuit address",s),this.onError(s)}return!1}))).includes(!0)&&this.listenRelays.add(e)}catch(n){this.onError(n),this.listenRelays.delete(e)}}async _removeListenRelay(t){this.listenRelays.delete(t)&&await this._listenOnAvailableHopRelays([t])}async _listenOnAvailableHopRelays(t=[]){if(this.listenRelays.size>=this.maxListeners)return;let e=[],n=await this.components.peerStore.all();for(let{id:i,metadata:o}of n){let s=i.toString();if(this.listenRelays.has(s)||t.includes(s))continue;let a=o.get(Fu);if(a==null||H(a)!==Ku)continue;let c=this.components.connectionManager.getConnections(i);if(c.length===0){e.push(i);continue}if(await this._addListenRelay(c[0],s),this.listenRelays.size>=this.maxListeners)return}for(let i of e)if(await this._tryToListenOnRelay(i),this.listenRelays.size>=this.maxListeners)return;try{let i=await Aa(Ra);for await(let o of this.components.contentRouting.findProviders(i)){if(o.multiaddrs.length===0)continue;let s=o.id;if(!s.equals(this.components.peerId)&&(await this.components.peerStore.addressBook.add(s,o.multiaddrs),await this._tryToListenOnRelay(s),this.listenRelays.size>=this.maxListeners))return}}catch(i){this.onError(i)}}async _tryToListenOnRelay(t){try{let e=await this.components.connectionManager.openConnection(t);await this._addListenRelay(e,t.toString())}catch(e){ko.error("Could not use %p as relay",t,e),this.onError(e,`could not connect and listen on known hop relay ${t.toString()}`)}}};var Fm=N("libp2p:relay"),Pa=class{constructor(t,e){this.components=t,this.autoRelay=e.autoRelay?.enabled!==!1?new Da(t,{addressSorter:e.addressSorter,...e.autoRelay}):void 0,this.started=!1,this.init=e,this._advertiseService=this._advertiseService.bind(this)}isStarted(){return this.started}async start(){this.init.hop.enabled!==!1&&this.init.advertise.enabled!==!1&&(this.timeout=(0,La.setDelayedInterval)(this._advertiseService,this.init.advertise.ttl,this.init.advertise.bootDelay)),this.started=!0}async stop(){this.timeout!=null&&(0,La.clearDelayedInterval)(this.timeout),this.started=!1}async _advertiseService(){try{let t=await Aa(Ra);await this.components.contentRouting.provide(t)}catch(t){t.code===b.ERR_NO_ROUTERS_AVAILABLE?(Fm.error("a content router, such as a DHT, must be provided in order to advertise the relay service",t),await this.stop()):Fm.error(t)}}};var yw=I(Wm(),1);var ft=I(W(),1);var nt;(function(r){r.ERR_INVALID_PARAMETERS="ERR_INVALID_PARAMETERS",r.ERR_INVALID_KEY_NAME="ERR_INVALID_KEY_NAME",r.ERR_INVALID_KEY_TYPE="ERR_INVALID_KEY_TYPE",r.ERR_KEY_ALREADY_EXISTS="ERR_KEY_ALREADY_EXISTS",r.ERR_INVALID_KEY_SIZE="ERR_INVALID_KEY_SIZE",r.ERR_KEY_NOT_FOUND="ERR_KEY_NOT_FOUND",r.ERR_OLD_KEY_NAME_INVALID="ERR_OLD_KEY_NAME_INVALID",r.ERR_NEW_KEY_NAME_INVALID="ERR_NEW_KEY_NAME_INVALID",r.ERR_PASSWORD_REQUIRED="ERR_PASSWORD_REQUIRED",r.ERR_PEM_REQUIRED="ERR_PEM_REQUIRED",r.ERR_CANNOT_READ_KEY="ERR_CANNOT_READ_KEY",r.ERR_MISSING_PRIVATE_KEY="ERR_MISSING_PRIVATE_KEY",r.ERR_INVALID_OLD_PASS_TYPE="ERR_INVALID_OLD_PASS_TYPE",r.ERR_INVALID_NEW_PASS_TYPE="ERR_INVALID_NEW_PASS_TYPE",r.ERR_INVALID_PASS_LENGTH="ERR_INVALID_PASS_LENGTH"})(nt||(nt={}));var Bt;(function(r){r.RSA="RSA",r.Ed25519="Ed25519",r.Secp256k1="Secp256k1"})(Bt||(Bt={}));var $u;(function(r){r[r.RSA=0]="RSA",r[r.Ed25519=1]="Ed25519",r[r.Secp256k1=2]="Secp256k1"})($u||($u={}));(function(r){r.codec=()=>ln($u)})(Bt||(Bt={}));var dr;(function(r){let t;r.codec=()=>(t==null&&(t=St((e,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),e.Type!=null&&(n.uint32(8),Bt.codec().encode(e.Type,n)),e.Data!=null&&(n.uint32(18),n.bytes(e.Data)),i.lengthDelimited!==!1&&n.ldelim()},(e,n)=>{let i={},o=n==null?e.len:e.pos+n;for(;e.pos<o;){let s=e.uint32();switch(s>>>3){case 1:i.Type=Bt.codec().decode(e);break;case 2:i.Data=e.bytes();break;default:e.skipType(s&7);break}}return i})),t),r.encode=e=>_t(e,r.codec()),r.decode=e=>bt(e,r.codec())})(dr||(dr={}));var pr;(function(r){let t;r.codec=()=>(t==null&&(t=St((e,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),e.Type!=null&&(n.uint32(8),Bt.codec().encode(e.Type,n)),e.Data!=null&&(n.uint32(18),n.bytes(e.Data)),i.lengthDelimited!==!1&&n.ldelim()},(e,n)=>{let i={},o=n==null?e.len:e.pos+n;for(;e.pos<o;){let s=e.uint32();switch(s>>>3){case 1:i.Type=Bt.codec().decode(e);break;case 2:i.Data=e.bytes();break;default:e.skipType(s&7);break}}return i})),t),r.encode=e=>_t(e,r.codec()),r.decode=e=>bt(e,r.codec())})(pr||(pr={}));var NB=I(Ko(),1),OB=I(lg(),1),fc=I(yt(),1);var we={get(r=globalThis){let t=r.crypto;if(t==null||t.subtle==null)throw Object.assign(new Error("Missing Web Crypto API. The most likely cause of this error is that this page is being accessed from an insecure context (i.e. not HTTPS). For more information and possible resolutions see https://github.com/libp2p/js-libp2p-crypto/blob/master/README.md#web-crypto-api"),{code:"ERR_MISSING_WEB_CRYPTO"});return t}};var _8=I(zt(),1),S8=I(Wa(),1),fg=I(yt(),1);function tr(r,t){let e=Uint8Array.from(r.abs().toByteArray());if(e=e[0]===0?e.subarray(1):e,t!=null){if(e.length>t)throw new Error("byte array longer than desired length");e=qt([new Uint8Array(t-e.length),e])}return H(e,"base64url")}function Ce(r){let t=hg(r);return new fg.default.jsbn.BigInteger(H(t,"base16"),16)}function hg(r,t){let e=U(r,"base64urlpad");if(t!=null){if(e.length>t)throw new Error("byte array longer than desired length");e=qt([new Uint8Array(t-e.length),e])}return e}var GS={"P-256":256,"P-384":384,"P-521":521},YS=Object.keys(GS),O8=YS.join(" / ");function Ja(r){let t=r?.algorithm??"AES-GCM",e=r?.keyLength??16,n=r?.nonceLength??12,i=r?.digest??"SHA-256",o=r?.saltLength??16,s=r?.iterations??32767,a=we.get();e*=8;async function c(f,d){let h=a.getRandomValues(new Uint8Array(o)),p=a.getRandomValues(new Uint8Array(n)),m={name:t,iv:p};typeof d=="string"&&(d=U(d));let y={name:"PBKDF2",salt:h,iterations:s,hash:{name:i}},g=await a.subtle.importKey("raw",d,{name:"PBKDF2"},!1,["deriveKey","deriveBits"]),E=await a.subtle.deriveKey(y,g,{name:t,length:e},!0,["encrypt"]),_=await a.subtle.encrypt(m,E,f);return qt([h,m.iv,new Uint8Array(_)])}async function l(f,d){let h=f.subarray(0,o),p=f.subarray(o,o+n),m=f.subarray(o+n),y={name:t,iv:p};typeof d=="string"&&(d=U(d));let g={name:"PBKDF2",salt:h,iterations:s,hash:{name:i}},E=await a.subtle.importKey("raw",d,{name:"PBKDF2"},!1,["deriveKey","deriveBits"]),_=await a.subtle.deriveKey(g,E,{name:t,length:e},!0,["decrypt"]),k=await a.subtle.decrypt(y,_,m);return new Uint8Array(k)}return{encrypt:c,decrypt:l}}async function pg(r,t){let e=Pn.decode(r);return await Ja().decrypt(e,t)}var Sf={};ce(Sf,{RsaPrivateKey:()=>ji,RsaPublicKey:()=>Qo,fromJwk:()=>wA,generateKeyPair:()=>EA,unmarshalRsaPrivateKey:()=>yA,unmarshalRsaPublicKey:()=>gA});var yB=I(Eg(),1),Wo=I(yt(),1);var QS=I(Vn(),1);var ot=BigInt(0),Ct=BigInt(1),gn=BigInt(2),zo=BigInt(3),xg=BigInt(8),Kt=Object.freeze({a:ot,b:BigInt(7),P:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),n:BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),h:Ct,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee")}),vg=(r,t)=>(r+t/gn)/t,ja={beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar(r){let{n:t}=Kt,e=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),n=-Ct*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),i=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),o=e,s=BigInt("0x100000000000000000000000000000000"),a=vg(o*r,t),c=vg(-n*r,t),l=B(r-a*e-c*i,t),u=B(-a*n-c*o,t),f=l>s,d=u>s;if(f&&(l=t-l),d&&(u=t-u),l>s||u>s)throw new Error("splitScalarEndo: Endomorphism failed, k="+r);return{k1neg:f,k1:l,k2neg:d,k2:u}}},er=32,Wi=32,XS=32,bg=er+1,_g=2*er+1;function Sg(r){let{a:t,b:e}=Kt,n=B(r*r),i=B(n*r);return B(i+t*r+e)}var tc=Kt.a===ot,nc=class extends Error{constructor(t){super(t)}};function Ag(r){if(!(r instanceof ut))throw new TypeError("JacobianPoint expected")}var ut=class{constructor(t,e,n){this.x=t,this.y=e,this.z=n}static fromAffine(t){if(!(t instanceof ht))throw new TypeError("JacobianPoint#fromAffine: expected Point");return t.equals(ht.ZERO)?ut.ZERO:new ut(t.x,t.y,Ct)}static toAffineBatch(t){let e=eA(t.map(n=>n.z));return t.map((n,i)=>n.toAffine(e[i]))}static normalizeZ(t){return ut.toAffineBatch(t).map(ut.fromAffine)}equals(t){Ag(t);let{x:e,y:n,z:i}=this,{x:o,y:s,z:a}=t,c=B(i*i),l=B(a*a),u=B(e*l),f=B(o*c),d=B(B(n*a)*l),h=B(B(s*i)*c);return u===f&&d===h}negate(){return new ut(this.x,B(-this.y),this.z)}double(){let{x:t,y:e,z:n}=this,i=B(t*t),o=B(e*e),s=B(o*o),a=t+o,c=B(gn*(B(a*a)-i-s)),l=B(zo*i),u=B(l*l),f=B(u-gn*c),d=B(l*(c-f)-xg*s),h=B(gn*e*n);return new ut(f,d,h)}add(t){Ag(t);let{x:e,y:n,z:i}=this,{x:o,y:s,z:a}=t;if(o===ot||s===ot)return this;if(e===ot||n===ot)return t;let c=B(i*i),l=B(a*a),u=B(e*l),f=B(o*c),d=B(B(n*a)*l),h=B(B(s*i)*c),p=B(f-u),m=B(h-d);if(p===ot)return m===ot?this.double():ut.ZERO;let y=B(p*p),g=B(p*y),E=B(u*y),_=B(m*m-g-gn*E),k=B(m*(E-_)-d*g),C=B(i*a*p);return new ut(_,k,C)}subtract(t){return this.add(t.negate())}multiplyUnsafe(t){let e=ut.ZERO;if(typeof t=="bigint"&&t===ot)return e;let n=Tg(t);if(n===Ct)return this;if(!tc){let f=e,d=this;for(;n>ot;)n&Ct&&(f=f.add(d)),d=d.double(),n>>=Ct;return f}let{k1neg:i,k1:o,k2neg:s,k2:a}=ja.splitScalar(n),c=e,l=e,u=this;for(;o>ot||a>ot;)o&Ct&&(c=c.add(u)),a&Ct&&(l=l.add(u)),u=u.double(),o>>=Ct,a>>=Ct;return i&&(c=c.negate()),s&&(l=l.negate()),l=new ut(B(l.x*ja.beta),l.y,l.z),c.add(l)}precomputeWindow(t){let e=tc?128/t+1:256/t+1,n=[],i=this,o=i;for(let s=0;s<e;s++){o=i,n.push(o);for(let a=1;a<2**(t-1);a++)o=o.add(i),n.push(o);i=o.double()}return n}wNAF(t,e){!e&&this.equals(ut.BASE)&&(e=ht.BASE);let n=e&&e._WINDOW_SIZE||1;if(256%n)throw new Error("Point#wNAF: Invalid precomputation window, must be power of 2");let i=e&&gf.get(e);i||(i=this.precomputeWindow(n),e&&n!==1&&(i=ut.normalizeZ(i),gf.set(e,i)));let o=ut.ZERO,s=ut.BASE,a=1+(tc?128/n:256/n),c=2**(n-1),l=BigInt(2**n-1),u=2**n,f=BigInt(n);for(let d=0;d<a;d++){let h=d*c,p=Number(t&l);t>>=f,p>c&&(p-=u,t+=Ct);let m=h,y=h+Math.abs(p)-1,g=d%2!==0,E=p<0;p===0?s=s.add(ec(g,i[m])):o=o.add(ec(E,i[y]))}return{p:o,f:s}}multiply(t,e){let n=Tg(t),i,o;if(tc){let{k1neg:s,k1:a,k2neg:c,k2:l}=ja.splitScalar(n),{p:u,f}=this.wNAF(a,e),{p:d,f:h}=this.wNAF(l,e);u=ec(s,u),d=ec(c,d),d=new ut(B(d.x*ja.beta),d.y,d.z),i=u.add(d),o=f.add(h)}else{let{p:s,f:a}=this.wNAF(n,e);i=s,o=a}return ut.normalizeZ([i,o])[0]}toAffine(t){let{x:e,y:n,z:i}=this,o=this.equals(ut.ZERO);t==null&&(t=o?xg:Zi(i));let s=t,a=B(s*s),c=B(a*s),l=B(e*a),u=B(n*c),f=B(i*s);if(o)return ht.ZERO;if(f!==Ct)throw new Error("invZ was invalid");return new ht(l,u)}};ut.BASE=new ut(Kt.Gx,Kt.Gy,Ct);ut.ZERO=new ut(ot,Ct,ot);function ec(r,t){let e=t.negate();return r?e:t}var gf=new WeakMap,ht=class{constructor(t,e){this.x=t,this.y=e}_setWindowSize(t){this._WINDOW_SIZE=t,gf.delete(this)}hasEvenY(){return this.y%gn===ot}static fromCompressedHex(t){let e=t.length===32,n=wn(e?t:t.subarray(1));if(!yf(n))throw new Error("Point is not on curve");let i=Sg(n),o=tA(i),s=(o&Ct)===Ct;e?s&&(o=B(-o)):(t[0]&1)===1!==s&&(o=B(-o));let a=new ht(n,o);return a.assertValidity(),a}static fromUncompressedHex(t){let e=wn(t.subarray(1,er+1)),n=wn(t.subarray(er+1,er*2+1)),i=new ht(e,n);return i.assertValidity(),i}static fromHex(t){let e=Xi(t),n=e.length,i=e[0];if(n===er)return this.fromCompressedHex(e);if(n===bg&&(i===2||i===3))return this.fromCompressedHex(e);if(n===_g&&i===4)return this.fromUncompressedHex(e);throw new Error(`Point.fromHex: received invalid point. Expected 32-${bg} compressed bytes or ${_g} uncompressed bytes, not ${n}`)}static fromPrivateKey(t){return ht.BASE.multiply(oc(t))}static fromSignature(t,e,n){let{r:i,s:o}=Cg(e);if(![0,1,2,3].includes(n))throw new Error("Cannot recover: invalid recovery bit");let s=xf(Xi(t)),{n:a}=Kt,c=n===2||n===3?i+a:i,l=Zi(c,a),u=B(-s*l,a),f=B(o*l,a),d=n&1?"03":"02",h=ht.fromHex(d+Gi(c)),p=ht.BASE.multiplyAndAddUnsafe(h,u,f);if(!p)throw new Error("Cannot recover signature: point at infinify");return p.assertValidity(),p}toRawBytes(t=!1){return ei(this.toHex(t))}toHex(t=!1){let e=Gi(this.x);return t?`${this.hasEvenY()?"02":"03"}${e}`:`04${e}${Gi(this.y)}`}toHexX(){return this.toHex(!0).slice(2)}toRawX(){return this.toRawBytes(!0).slice(1)}assertValidity(){let t="Point is not on elliptic curve",{x:e,y:n}=this;if(!yf(e)||!yf(n))throw new Error(t);let i=B(n*n),o=Sg(e);if(B(i-o)!==ot)throw new Error(t)}equals(t){return this.x===t.x&&this.y===t.y}negate(){return new ht(this.x,B(-this.y))}double(){return ut.fromAffine(this).double().toAffine()}add(t){return ut.fromAffine(this).add(ut.fromAffine(t)).toAffine()}subtract(t){return this.add(t.negate())}multiply(t){return ut.fromAffine(this).multiply(t,this).toAffine()}multiplyAndAddUnsafe(t,e,n){let i=ut.fromAffine(this),o=e===ot||e===Ct||this!==ht.BASE?i.multiplyUnsafe(e):i.multiply(e),s=ut.fromAffine(t).multiplyUnsafe(n),a=o.add(s);return a.equals(ut.ZERO)?void 0:a.toAffine()}};ht.BASE=new ht(Kt.Gx,Kt.Gy);ht.ZERO=new ht(ot,ot);function Rg(r){return Number.parseInt(r[0],16)>=8?"00"+r:r}function Ig(r){if(r.length<2||r[0]!==2)throw new Error(`Invalid signature integer tag: ${Qi(r)}`);let t=r[1],e=r.subarray(2,t+2);if(!t||e.length!==t)throw new Error("Invalid signature integer: wrong length");if(e[0]===0&&e[1]<=127)throw new Error("Invalid signature integer: trailing length");return{data:wn(e),left:r.subarray(t+2)}}function ZS(r){if(r.length<2||r[0]!=48)throw new Error(`Invalid signature tag: ${Qi(r)}`);if(r[1]!==r.length-2)throw new Error("Invalid signature: incorrect length");let{data:t,left:e}=Ig(r.subarray(2)),{data:n,left:i}=Ig(e);if(i.length)throw new Error(`Invalid signature: left bytes after parsing: ${Qi(i)}`);return{r:t,s:n}}var vr=class{constructor(t,e){this.r=t,this.s=e,this.assertValidity()}static fromCompact(t){let e=t instanceof Uint8Array,n="Signature.fromCompact";if(typeof t!="string"&&!e)throw new TypeError(`${n}: Expected string or Uint8Array`);let i=e?Qi(t):t;if(i.length!==128)throw new Error(`${n}: Expected 64-byte hex`);return new vr(ic(i.slice(0,64)),ic(i.slice(64,128)))}static fromDER(t){let e=t instanceof Uint8Array;if(typeof t!="string"&&!e)throw new TypeError("Signature.fromDER: Expected string or Uint8Array");let{r:n,s:i}=ZS(e?t:ei(t));return new vr(n,i)}static fromHex(t){return this.fromDER(t)}assertValidity(){let{r:t,s:e}=this;if(!Yo(t))throw new Error("Invalid Signature: r must be 0 < r < n");if(!Yo(e))throw new Error("Invalid Signature: s must be 0 < s < n")}hasHighS(){let t=Kt.n>>Ct;return this.s>t}normalizeS(){return this.hasHighS()?new vr(this.r,B(-this.s,Kt.n)):this}toDERRawBytes(){return ei(this.toDERHex())}toDERHex(){let t=Rg($o(this.s)),e=Rg($o(this.r)),n=t.length/2,i=e.length/2,o=$o(n),s=$o(i);return`30${$o(i+n+4)}02${s}${e}02${o}${t}`}toRawBytes(){return this.toDERRawBytes()}toHex(){return this.toDERHex()}toCompactRawBytes(){return ei(this.toCompactHex())}toCompactHex(){return Gi(this.r)+Gi(this.s)}};function yn(...r){if(!r.every(n=>n instanceof Uint8Array))throw new Error("Uint8Array list expected");if(r.length===1)return r[0];let t=r.reduce((n,i)=>n+i.length,0),e=new Uint8Array(t);for(let n=0,i=0;n<r.length;n++){let o=r[n];e.set(o,i),i+=o.length}return e}var JS=Array.from({length:256},(r,t)=>t.toString(16).padStart(2,"0"));function Qi(r){if(!(r instanceof Uint8Array))throw new Error("Expected Uint8Array");let t="";for(let e=0;e<r.length;e++)t+=JS[r[e]];return t}var jS=BigInt("0x10000000000000000000000000000000000000000000000000000000000000000");function Gi(r){if(typeof r!="bigint")throw new Error("Expected bigint");if(!(ot<=r&&r<jS))throw new Error("Expected number 0 <= n < 2^256");return r.toString(16).padStart(64,"0")}function wf(r){let t=ei(Gi(r));if(t.length!==32)throw new Error("Error: expected 32 bytes");return t}function $o(r){let t=r.toString(16);return t.length&1?`0${t}`:t}function ic(r){if(typeof r!="string")throw new TypeError("hexToNumber: expected string, got "+typeof r);return BigInt(`0x${r}`)}function ei(r){if(typeof r!="string")throw new TypeError("hexToBytes: expected string, got "+typeof r);if(r.length%2)throw new Error("hexToBytes: received invalid unpadded hex"+r.length);let t=new Uint8Array(r.length/2);for(let e=0;e<t.length;e++){let n=e*2,i=r.slice(n,n+2),o=Number.parseInt(i,16);if(Number.isNaN(o)||o<0)throw new Error("Invalid byte sequence");t[e]=o}return t}function wn(r){return ic(Qi(r))}function Xi(r){return r instanceof Uint8Array?Uint8Array.from(r):ei(r)}function Tg(r){if(typeof r=="number"&&Number.isSafeInteger(r)&&r>0)return BigInt(r);if(typeof r=="bigint"&&Yo(r))return r;throw new TypeError("Expected valid private scalar: 0 < scalar < curve.n")}function B(r,t=Kt.P){let e=r%t;return e>=ot?e:t+e}function qe(r,t){let{P:e}=Kt,n=r;for(;t-- >ot;)n*=n,n%=e;return n}function tA(r){let{P:t}=Kt,e=BigInt(6),n=BigInt(11),i=BigInt(22),o=BigInt(23),s=BigInt(44),a=BigInt(88),c=r*r*r%t,l=c*c*r%t,u=qe(l,zo)*l%t,f=qe(u,zo)*l%t,d=qe(f,gn)*c%t,h=qe(d,n)*d%t,p=qe(h,i)*h%t,m=qe(p,s)*p%t,y=qe(m,a)*m%t,g=qe(y,s)*p%t,E=qe(g,zo)*l%t,_=qe(E,o)*h%t,k=qe(_,e)*c%t,C=qe(k,gn);if(C*C%t!==r)throw new Error("Cannot find square root");return C}function Zi(r,t=Kt.P){if(r===ot||t<=ot)throw new Error(`invert: expected positive integers, got n=${r} mod=${t}`);let e=B(r,t),n=t,i=ot,o=Ct,s=Ct,a=ot;for(;e!==ot;){let l=n/e,u=n%e,f=i-s*l,d=o-a*l;n=e,e=u,i=s,o=a,s=f,a=d}if(n!==Ct)throw new Error("invert: does not exist");return B(i,t)}function eA(r,t=Kt.P){let e=new Array(r.length),n=r.reduce((o,s,a)=>s===ot?o:(e[a]=o,B(o*s,t)),Ct),i=Zi(n,t);return r.reduceRight((o,s,a)=>s===ot?o:(e[a]=B(o*e[a],t),B(o*s,t)),i),e}function rA(r){let t=r.length*8-Wi*8,e=wn(r);return t>0?e>>BigInt(t):e}function xf(r,t=!1){let e=rA(r);if(t)return e;let{n}=Kt;return e>=n?e-n:e}var Yi,Go,Ef=class{constructor(t,e){if(this.hashLen=t,this.qByteLen=e,typeof t!="number"||t<2)throw new Error("hashLen must be a number");if(typeof e!="number"||e<2)throw new Error("qByteLen must be a number");this.v=new Uint8Array(t).fill(1),this.k=new Uint8Array(t).fill(0),this.counter=0}hmac(...t){return rr.hmacSha256(this.k,...t)}hmacSync(...t){return Go(this.k,...t)}checkSync(){if(typeof Go!="function")throw new nc("hmacSha256Sync needs to be set")}incr(){if(this.counter>=1e3)throw new Error("Tried 1,000 k values for sign(), all were invalid");this.counter+=1}async reseed(t=new Uint8Array){this.k=await this.hmac(this.v,Uint8Array.from([0]),t),this.v=await this.hmac(this.v),t.length!==0&&(this.k=await this.hmac(this.v,Uint8Array.from([1]),t),this.v=await this.hmac(this.v))}reseedSync(t=new Uint8Array){this.checkSync(),this.k=this.hmacSync(this.v,Uint8Array.from([0]),t),this.v=this.hmacSync(this.v),t.length!==0&&(this.k=this.hmacSync(this.v,Uint8Array.from([1]),t),this.v=this.hmacSync(this.v))}async generate(){this.incr();let t=0,e=[];for(;t<this.qByteLen;){this.v=await this.hmac(this.v);let n=this.v.slice();e.push(n),t+=this.v.length}return yn(...e)}generateSync(){this.checkSync(),this.incr();let t=0,e=[];for(;t<this.qByteLen;){this.v=this.hmacSync(this.v);let n=this.v.slice();e.push(n),t+=this.v.length}return yn(...e)}};function Yo(r){return ot<r&&r<Kt.n}function yf(r){return ot<r&&r<Kt.P}function nA(r,t,e,n=!0){let{n:i}=Kt,o=xf(r,!0);if(!Yo(o))return;let s=Zi(o,i),a=ht.BASE.multiply(o),c=B(a.x,i);if(c===ot)return;let l=B(s*B(t+e*c,i),i);if(l===ot)return;let u=new vr(c,l),f=(a.x===u.r?0:2)|Number(a.y&Ct);return n&&u.hasHighS()&&(u=u.normalizeS(),f^=1),{sig:u,recovery:f}}function oc(r){let t;if(typeof r=="bigint")t=r;else if(typeof r=="number"&&Number.isSafeInteger(r)&&r>0)t=BigInt(r);else if(typeof r=="string"){if(r.length!==2*Wi)throw new Error("Expected 32 bytes of private key");t=ic(r)}else if(r instanceof Uint8Array){if(r.length!==Wi)throw new Error("Expected 32 bytes of private key");t=wn(r)}else throw new TypeError("Expected valid private key");if(!Yo(t))throw new Error("Expected private key: 0 < key < n");return t}function iA(r){return r instanceof ht?(r.assertValidity(),r):ht.fromHex(r)}function Cg(r){if(r instanceof vr)return r.assertValidity(),r;try{return vr.fromDER(r)}catch{return vr.fromCompact(r)}}function vf(r,t=!1){return ht.fromPrivateKey(r).toRawBytes(t)}function Dg(r){let t=r.length>er?r.slice(0,er):r;return wn(t)}function oA(r){let t=Dg(r),e=B(t,Kt.n);return Pg(e<ot?t:e)}function Pg(r){return wf(r)}function sA(r,t,e){if(r==null)throw new Error(`sign: expected valid message hash, not "${r}"`);let n=Xi(r),i=oc(t),o=[Pg(i),oA(n)];if(e!=null){e===!0&&(e=rr.randomBytes(er));let c=Xi(e);if(c.length!==er)throw new Error(`sign: Expected ${er} bytes of extra data`);o.push(c)}let s=yn(...o),a=Dg(n);return{seed:s,m:a,d:i}}function aA(r,t){let{sig:e,recovery:n}=r,{der:i,recovered:o}=Object.assign({canonical:!0,der:!0},t),s=i?e.toDERRawBytes():e.toCompactRawBytes();return o?[s,n]:s}async function Lg(r,t,e={}){let{seed:n,m:i,d:o}=sA(r,t,e.extraEntropy),s=new Ef(XS,Wi);await s.reseed(n);let a;for(;!(a=nA(await s.generate(),i,o,e.canonical));)await s.reseed();return aA(a,e)}var cA={strict:!0};function Bg(r,t,e,n=cA){let i;try{i=Cg(r),t=Xi(t)}catch{return!1}let{r:o,s}=i;if(n.strict&&i.hasHighS())return!1;let a=xf(t),c;try{c=iA(e)}catch{return!1}let{n:l}=Kt,u=Zi(s,l),f=B(a*u,l),d=B(o*u,l),h=ht.BASE.multiplyAndAddUnsafe(c,f,d);return h?B(h.x,l)===o:!1}ht.BASE._setWindowSize(8);var De={node:QS,web:typeof self=="object"&&"crypto"in self?self.crypto:void 0};var rc={},rr={bytesToHex:Qi,hexToBytes:ei,concatBytes:yn,mod:B,invert:Zi,isValidPrivateKey(r){try{return oc(r),!0}catch{return!1}},_bigintTo32Bytes:wf,_normalizePrivateKey:oc,hashToPrivateKey:r=>{r=Xi(r);let t=Wi+8;if(r.length<t||r.length>1024)throw new Error("Expected valid bytes of private key as per FIPS 186");let e=B(wn(r),Kt.n-Ct)+Ct;return wf(e)},randomBytes:(r=32)=>{if(De.web)return De.web.getRandomValues(new Uint8Array(r));if(De.node){let{randomBytes:t}=De.node;return Uint8Array.from(t(r))}else throw new Error("The environment doesn't have randomBytes function")},randomPrivateKey:()=>rr.hashToPrivateKey(rr.randomBytes(Wi+8)),precompute(r=8,t=ht.BASE){let e=t===ht.BASE?t:new ht(t.x,t.y);return e._setWindowSize(r),e.multiply(zo),e},sha256:async(...r)=>{if(De.web){let t=await De.web.subtle.digest("SHA-256",yn(...r));return new Uint8Array(t)}else if(De.node){let{createHash:t}=De.node,e=t("sha256");return r.forEach(n=>e.update(n)),Uint8Array.from(e.digest())}else throw new Error("The environment doesn't have sha256 function")},hmacSha256:async(r,...t)=>{if(De.web){let e=await De.web.subtle.importKey("raw",r,{name:"HMAC",hash:{name:"SHA-256"}},!1,["sign"]),n=yn(...t),i=await De.web.subtle.sign("HMAC",e,n);return new Uint8Array(i)}else if(De.node){let{createHmac:e}=De.node,n=e("sha256",r);return t.forEach(i=>n.update(i)),Uint8Array.from(n.digest())}else throw new Error("The environment doesn't have hmac-sha256 function")},sha256Sync:void 0,hmacSha256Sync:void 0,taggedHash:async(r,...t)=>{let e=rc[r];if(e===void 0){let n=await rr.sha256(Uint8Array.from(r,i=>i.charCodeAt(0)));e=yn(n,n),rc[r]=e}return rr.sha256(e,...t)},taggedHashSync:(r,...t)=>{if(typeof Yi!="function")throw new nc("sha256Sync is undefined, you need to set it");let e=rc[r];if(e===void 0){let n=Yi(Uint8Array.from(r,i=>i.charCodeAt(0)));e=yn(n,n),rc[r]=e}return Yi(e,...t)},_JacobianPoint:ut};Object.defineProperties(rr,{sha256Sync:{configurable:!1,get(){return Yi},set(r){Yi||(Yi=r)}},hmacSha256Sync:{configurable:!1,get(){return Go},set(r){Go||(Go=r)}}});function Hr(r){if(isNaN(r)||r<=0)throw new at("random bytes length must be a Number bigger than 0","ERR_INVALID_LENGTH");return rr.randomBytes(r)}var ri={};ce(ri,{jwkToPkcs1:()=>fA,jwkToPkix:()=>dA,pkcs1ToJwk:()=>uA,pkixToJwk:()=>hA});var Q8=I(Ko(),1),X8=I(Za(),1),$r=I(yt(),1);function uA(r){let t=$r.default.asn1.fromDer(H(r,"ascii")),e=$r.default.pki.privateKeyFromAsn1(t);return{kty:"RSA",n:tr(e.n),e:tr(e.e),d:tr(e.d),p:tr(e.p),q:tr(e.q),dp:tr(e.dP),dq:tr(e.dQ),qi:tr(e.qInv),alg:"RS256"}}function fA(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 at("JWK was missing components","ERR_INVALID_PARAMETERS");let t=$r.default.pki.privateKeyToAsn1({n:Ce(r.n),e:Ce(r.e),d:Ce(r.d),p:Ce(r.p),q:Ce(r.q),dP:Ce(r.dp),dQ:Ce(r.dq),qInv:Ce(r.qi)});return U($r.default.asn1.toDer(t).getBytes(),"ascii")}function hA(r){let t=$r.default.asn1.fromDer(H(r,"ascii")),e=$r.default.pki.publicKeyFromAsn1(t);return{kty:"RSA",n:tr(e.n),e:tr(e.e)}}function dA(r){if(r.n==null||r.e==null)throw new at("JWK was missing components","ERR_INVALID_PARAMETERS");let t=$r.default.pki.publicKeyToAsn1({n:Ce(r.n),e:Ce(r.e)});return U($r.default.asn1.toDer(t).getBytes(),"ascii")}var eB=I(Za(),1),bf=I(yt(),1);function Ng(r,t){return t.map(e=>Ce(r[e]))}function Og(r){return bf.default.pki.setRsaPrivateKey(...Ng(r,["n","e","d","p","q","dp","dq","qi"]))}function kg(r){return bf.default.pki.setRsaPublicKey(...Ng(r,["n","e"]))}async function Mg(r){let t=await we.get().subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:r,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-256"}},!0,["sign","verify"]),e=await Kg(t);return{privateKey:e[0],publicKey:e[1]}}async function _f(r){let e=[await we.get().subtle.importKey("jwk",r,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["sign"]),await pA(r)],n=await Kg({privateKey:e[0],publicKey:e[1]});return{privateKey:n[0],publicKey:n[1]}}async function Ug(r,t){let e=await we.get().subtle.importKey("jwk",r,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["sign"]),n=await we.get().subtle.sign({name:"RSASSA-PKCS1-v1_5"},e,Uint8Array.from(t));return new Uint8Array(n,0,n.byteLength)}async function Fg(r,t,e){let n=await we.get().subtle.importKey("jwk",r,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["verify"]);return await we.get().subtle.verify({name:"RSASSA-PKCS1-v1_5"},n,t,e)}async function Kg(r){if(r.privateKey==null||r.publicKey==null)throw new at("Private and public key are required","ERR_INVALID_PARAMETERS");return await Promise.all([we.get().subtle.exportKey("jwk",r.privateKey),we.get().subtle.exportKey("jwk",r.publicKey)])}async function pA(r){return await we.get().subtle.importKey("jwk",{kty:r.kty,n:r.n,e:r.e},{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["verify"])}function Vg(r,t,e,n){let i=t?kg(r):Og(r),o=H(Uint8Array.from(e),"ascii"),s=n(o,i);return U(s,"ascii")}function qg(r,t){return Vg(r,!0,t,(e,n)=>n.encrypt(e))}function Hg(r,t){return Vg(r,!1,t,(e,n)=>n.decrypt(e))}async function Ji(r,t){let n=await Ja().encrypt(r,t);return Pn.encode(n)}var Qo=class{constructor(t){this._key=t}async verify(t,e){return await Fg(this._key,e,t)}marshal(){return ri.jwkToPkix(this._key)}get bytes(){return dr.encode({Type:Bt.RSA,Data:this.marshal()}).subarray()}encrypt(t){return qg(this._key,t)}equals(t){return xt(this.bytes,t.bytes)}async hash(){let{bytes:t}=await te.digest(this.bytes);return t}},ji=class{constructor(t,e){this._key=t,this._publicKey=e}genSecret(){return Hr(16)}async sign(t){return await Ug(this._key,t)}get public(){if(this._publicKey==null)throw new at("public key not provided","ERR_PUBKEY_NOT_PROVIDED");return new Qo(this._publicKey)}decrypt(t){return Hg(this._key,t)}marshal(){return ri.jwkToPkcs1(this._key)}get bytes(){return pr.encode({Type:Bt.RSA,Data:this.marshal()}).subarray()}equals(t){return xt(this.bytes,t.bytes)}async hash(){let{bytes:t}=await te.digest(this.bytes);return t}async id(){let t=await this.public.hash();return H(t,"base58btc")}async export(t,e="pkcs-8"){if(e==="pkcs-8"){let n=new Wo.default.util.ByteBuffer(this.marshal()),i=Wo.default.asn1.fromDer(n),o=Wo.default.pki.privateKeyFromAsn1(i),s={algorithm:"aes256",count:1e4,saltSize:128/8,prfAlgorithm:"sha512"};return Wo.default.pki.encryptRsaPrivateKey(o,t,s)}else{if(e==="libp2p-key")return await Ji(this.bytes,t);throw new at(`export format '${e}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}}};async function yA(r){let t=ri.pkcs1ToJwk(r),e=await _f(t);return new ji(e.privateKey,e.publicKey)}function gA(r){let t=ri.pkixToJwk(r);return new Qo(t)}async function wA(r){let t=await _f(r);return new ji(t.privateKey,t.publicKey)}async function EA(r){let t=await Mg(r);return new ji(t.privateKey,t.publicKey)}var Bf={};ce(Bf,{Ed25519PrivateKey:()=>ii,Ed25519PublicKey:()=>ts,generateKeyPair:()=>KA,generateKeyPairFromSeed:()=>iw,unmarshalEd25519PrivateKey:()=>UA,unmarshalEd25519PublicKey:()=>FA});var xA=I(Vn(),1);var ae=BigInt(0),st=BigInt(1),vn=BigInt(2),vA=BigInt(8),$g=BigInt("7237005577332262213973186563042994240857116359379907606001950938285454250989"),Dt=Object.freeze({a:BigInt(-1),d:BigInt("37095705934669439343138083508754565189542113879843219016388785533085940283555"),P:BigInt("57896044618658097711785492504343953926634992332820282019728792003956564819949"),l:$g,n:$g,h:BigInt(8),Gx:BigInt("15112221349535400772501151409588531511454012693041857206046113283949847762202"),Gy:BigInt("46316835694926478169428394003475163141307993866256225615783033603165251855960")});var Qg=BigInt("0x10000000000000000000000000000000000000000000000000000000000000000"),Xo=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752"),wB=BigInt("6853475219497561581579357271197624642482790079785650197046958215289687604742"),bA=BigInt("25063068953384623474111414158702152701244531502492656460079210482610430750235"),_A=BigInt("54469307008909316920995813868745141605393597292927456921205312896311721017578"),SA=BigInt("1159843021668779879193775521855586647937357759715417654439879720876111806838"),AA=BigInt("40440834346308536858101042469323190826248399146238708352240133220865137265952"),et=class{constructor(t,e,n,i){this.x=t,this.y=e,this.z=n,this.t=i}static fromAffine(t){if(!(t instanceof Ot))throw new TypeError("ExtendedPoint#fromAffine: expected Point");return t.equals(Ot.ZERO)?et.ZERO:new et(t.x,t.y,st,A(t.x*t.y))}static toAffineBatch(t){let e=TA(t.map(n=>n.z));return t.map((n,i)=>n.toAffine(e[i]))}static normalizeZ(t){return this.toAffineBatch(t).map(this.fromAffine)}equals(t){Gg(t);let{x:e,y:n,z:i}=this,{x:o,y:s,z:a}=t,c=A(e*a),l=A(o*i),u=A(n*a),f=A(s*i);return c===l&&u===f}negate(){return new et(A(-this.x),this.y,this.z,A(-this.t))}double(){let{x:t,y:e,z:n}=this,{a:i}=Dt,o=A(t*t),s=A(e*e),a=A(vn*A(n*n)),c=A(i*o),l=t+e,u=A(A(l*l)-o-s),f=c+s,d=f-a,h=c-s,p=A(u*d),m=A(f*h),y=A(u*h),g=A(d*f);return new et(p,m,g,y)}add(t){Gg(t);let{x:e,y:n,z:i,t:o}=this,{x:s,y:a,z:c,t:l}=t,u=A((n-e)*(a+s)),f=A((n+e)*(a-s)),d=A(f-u);if(d===ae)return this.double();let h=A(i*vn*l),p=A(o*vn*c),m=p+h,y=f+u,g=p-h,E=A(m*d),_=A(y*g),k=A(m*g),C=A(d*y);return new et(E,_,C,k)}subtract(t){return this.add(t.negate())}precomputeWindow(t){let e=1+256/t,n=[],i=this,o=i;for(let s=0;s<e;s++){o=i,n.push(o);for(let a=1;a<2**(t-1);a++)o=o.add(i),n.push(o);i=o.double()}return n}wNAF(t,e){!e&&this.equals(et.BASE)&&(e=Ot.BASE);let n=e&&e._WINDOW_SIZE||1;if(256%n)throw new Error("Point#wNAF: Invalid precomputation window, must be power of 2");let i=e&&Cf.get(e);i||(i=this.precomputeWindow(n),e&&n!==1&&(i=et.normalizeZ(i),Cf.set(e,i)));let o=et.ZERO,s=et.BASE,a=1+256/n,c=2**(n-1),l=BigInt(2**n-1),u=2**n,f=BigInt(n);for(let d=0;d<a;d++){let h=d*c,p=Number(t&l);t>>=f,p>c&&(p-=u,t+=st);let m=h,y=h+Math.abs(p)-1,g=d%2!==0,E=p<0;p===0?s=s.add(zg(g,i[m])):o=o.add(zg(E,i[y]))}return et.normalizeZ([o,s])[0]}multiply(t,e){return this.wNAF(ac(t,Dt.l),e)}multiplyUnsafe(t){let e=ac(t,Dt.l,!1),n=et.BASE,i=et.ZERO;if(e===ae)return i;if(this.equals(i)||e===st)return this;if(this.equals(n))return this.wNAF(e);let o=i,s=this;for(;e>ae;)e&st&&(o=o.add(s)),s=s.double(),e>>=st;return o}isSmallOrder(){return this.multiplyUnsafe(Dt.h).equals(et.ZERO)}isTorsionFree(){let t=this.multiplyUnsafe(Dt.l/vn).double();return Dt.l%vn&&(t=t.add(this)),t.equals(et.ZERO)}toAffine(t){let{x:e,y:n,z:i}=this,o=this.equals(et.ZERO);t==null&&(t=o?vA:cc(i));let s=A(e*t),a=A(n*t),c=A(i*t);if(o)return Ot.ZERO;if(c!==st)throw new Error("invZ was invalid");return new Ot(s,a)}fromRistrettoBytes(){Rf()}toRistrettoBytes(){Rf()}fromRistrettoHash(){Rf()}};et.BASE=new et(Dt.Gx,Dt.Gy,st,A(Dt.Gx*Dt.Gy));et.ZERO=new et(ae,st,st,ae);function zg(r,t){let e=t.negate();return r?e:t}function Gg(r){if(!(r instanceof et))throw new TypeError("ExtendedPoint expected")}function Af(r){if(!(r instanceof Ee))throw new TypeError("RistrettoPoint expected")}function Rf(){throw new Error("Legacy method: switch to RistrettoPoint")}var Ee=class{constructor(t){this.ep=t}static calcElligatorRistrettoMap(t){let{d:e}=Dt,n=A(Xo*t*t),i=A((n+st)*SA),o=BigInt(-1),s=A((o-e*n)*A(n+e)),{isValid:a,value:c}=Pf(i,s),l=A(c*t);xn(l)||(l=A(-l)),a||(c=l),a||(o=n);let u=A(o*(n-st)*AA-s),f=c*c,d=A((c+c)*s),h=A(u*bA),p=A(st-f),m=A(st+f);return new et(A(d*m),A(p*h),A(h*m),A(d*p))}static hashToCurve(t){t=bn(t,64);let e=If(t.slice(0,32)),n=this.calcElligatorRistrettoMap(e),i=If(t.slice(32,64)),o=this.calcElligatorRistrettoMap(i);return new Ee(n.add(o))}static fromHex(t){t=bn(t,32);let{a:e,d:n}=Dt,i="RistrettoPoint.fromHex: the hex is not valid encoding of RistrettoPoint",o=If(t);if(!DA(Zo(o),t)||xn(o))throw new Error(i);let s=A(o*o),a=A(st+e*s),c=A(st-e*s),l=A(a*a),u=A(c*c),f=A(e*n*l-u),{isValid:d,value:h}=Wg(A(f*u)),p=A(h*c),m=A(h*p*f),y=A((o+o)*p);xn(y)&&(y=A(-y));let g=A(a*m),E=A(y*g);if(!d||xn(E)||g===ae)throw new Error(i);return new Ee(new et(y,g,st,E))}toRawBytes(){let{x:t,y:e,z:n,t:i}=this.ep,o=A(A(n+e)*A(n-e)),s=A(t*e),a=A(s*s),{value:c}=Wg(A(o*a)),l=A(c*o),u=A(c*s),f=A(l*u*i),d;if(xn(i*f)){let p=A(e*Xo),m=A(t*Xo);t=p,e=m,d=A(l*_A)}else d=u;xn(t*f)&&(e=A(-e));let h=A((n-e)*d);return xn(h)&&(h=A(-h)),Zo(h)}toHex(){return Jo(this.toRawBytes())}toString(){return this.toHex()}equals(t){Af(t);let e=this.ep,n=t.ep,i=A(e.x*n.y)===A(e.y*n.x),o=A(e.y*n.y)===A(e.x*n.x);return i||o}add(t){return Af(t),new Ee(this.ep.add(t.ep))}subtract(t){return Af(t),new Ee(this.ep.subtract(t.ep))}multiply(t){return new Ee(this.ep.multiply(t))}multiplyUnsafe(t){return new Ee(this.ep.multiplyUnsafe(t))}};Ee.BASE=new Ee(et.BASE);Ee.ZERO=new Ee(et.ZERO);var Cf=new WeakMap,Ot=class{constructor(t,e){this.x=t,this.y=e}_setWindowSize(t){this._WINDOW_SIZE=t,Cf.delete(this)}static fromHex(t,e=!0){let{d:n,P:i}=Dt;t=bn(t,32);let o=t.slice();o[31]=t[31]&-129;let s=jo(o);if(e&&s>=i)throw new Error("Expected 0 < hex < P");if(!e&&s>=Qg)throw new Error("Expected 0 < hex < 2**256");let a=A(s*s),c=A(a-st),l=A(n*a+st),{isValid:u,value:f}=Pf(c,l);if(!u)throw new Error("Point.fromHex: invalid y coordinate");let d=(f&st)===st;return(t[31]&128)!==0!==d&&(f=A(-f)),new Ot(f,s)}static async fromPrivateKey(t){return(await lc(t)).point}toRawBytes(){let t=Zo(this.y);return t[31]|=this.x&st?128:0,t}toHex(){return Jo(this.toRawBytes())}toX25519(){let{y:t}=this,e=A((st+t)*cc(st-t));return Zo(e)}isTorsionFree(){return et.fromAffine(this).isTorsionFree()}equals(t){return this.x===t.x&&this.y===t.y}negate(){return new Ot(A(-this.x),this.y)}add(t){return et.fromAffine(this).add(et.fromAffine(t)).toAffine()}subtract(t){return this.add(t.negate())}multiply(t){return et.fromAffine(this).multiply(t,this).toAffine()}};Ot.BASE=new Ot(Dt.Gx,Dt.Gy);Ot.ZERO=new Ot(ae,st);var ni=class{constructor(t,e){this.r=t,this.s=e,this.assertValidity()}static fromHex(t){let e=bn(t,64),n=Ot.fromHex(e.slice(0,32),!1),i=jo(e.slice(32,64));return new ni(n,i)}assertValidity(){let{r:t,s:e}=this;if(!(t instanceof Ot))throw new Error("Expected Point instance");return ac(e,Dt.l,!1),this}toRawBytes(){let t=new Uint8Array(64);return t.set(this.r.toRawBytes()),t.set(Zo(this.s),32),t}toHex(){return Jo(this.toRawBytes())}};function Yg(...r){if(!r.every(n=>n instanceof Uint8Array))throw new Error("Expected Uint8Array list");if(r.length===1)return r[0];let t=r.reduce((n,i)=>n+i.length,0),e=new Uint8Array(t);for(let n=0,i=0;n<r.length;n++){let o=r[n];e.set(o,i),i+=o.length}return e}var RA=Array.from({length:256},(r,t)=>t.toString(16).padStart(2,"0"));function Jo(r){if(!(r instanceof Uint8Array))throw new Error("Uint8Array expected");let t="";for(let e=0;e<r.length;e++)t+=RA[r[e]];return t}function Df(r){if(typeof r!="string")throw new TypeError("hexToBytes: expected string, got "+typeof r);if(r.length%2)throw new Error("hexToBytes: received invalid unpadded hex");let t=new Uint8Array(r.length/2);for(let e=0;e<t.length;e++){let n=e*2,i=r.slice(n,n+2),o=Number.parseInt(i,16);if(Number.isNaN(o)||o<0)throw new Error("Invalid byte sequence");t[e]=o}return t}function Xg(r){let e=r.toString(16).padStart(64,"0");return Df(e)}function Zo(r){return Xg(r).reverse()}function xn(r){return(A(r)&st)===st}function jo(r){if(!(r instanceof Uint8Array))throw new Error("Expected Uint8Array");return BigInt("0x"+Jo(Uint8Array.from(r).reverse()))}var IA=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");function If(r){return A(jo(r)&IA)}function A(r,t=Dt.P){let e=r%t;return e>=ae?e:t+e}function cc(r,t=Dt.P){if(r===ae||t<=ae)throw new Error(`invert: expected positive integers, got n=${r} mod=${t}`);let e=A(r,t),n=t,i=ae,o=st,s=st,a=ae;for(;e!==ae;){let l=n/e,u=n%e,f=i-s*l,d=o-a*l;n=e,e=u,i=s,o=a,s=f,a=d}if(n!==st)throw new Error("invert: does not exist");return A(i,t)}function TA(r,t=Dt.P){let e=new Array(r.length),n=r.reduce((o,s,a)=>s===ae?o:(e[a]=o,A(o*s,t)),st),i=cc(n,t);return r.reduceRight((o,s,a)=>s===ae?o:(e[a]=A(o*e[a],t),A(o*s,t)),i),e}function br(r,t){let{P:e}=Dt,n=r;for(;t-- >ae;)n*=n,n%=e;return n}function CA(r){let{P:t}=Dt,e=BigInt(5),n=BigInt(10),i=BigInt(20),o=BigInt(40),s=BigInt(80),c=r*r%t*r%t,l=br(c,vn)*c%t,u=br(l,st)*r%t,f=br(u,e)*u%t,d=br(f,n)*f%t,h=br(d,i)*d%t,p=br(h,o)*h%t,m=br(p,s)*p%t,y=br(m,s)*p%t,g=br(y,n)*f%t;return{pow_p_5_8:br(g,vn)*r%t,b2:c}}function Pf(r,t){let e=A(t*t*t),n=A(e*e*t),i=CA(r*n).pow_p_5_8,o=A(r*e*i),s=A(t*o*o),a=o,c=A(o*Xo),l=s===r,u=s===A(-r),f=s===A(-r*Xo);return l&&(o=a),(u||f)&&(o=c),xn(o)&&(o=A(-o)),{isValid:l||u,value:o}}function Wg(r){return Pf(st,r)}function sc(r){return A(jo(r),Dt.l)}function DA(r,t){if(r.length!==t.length)return!1;for(let e=0;e<r.length;e++)if(r[e]!==t[e])return!1;return!0}function bn(r,t){let e=r instanceof Uint8Array?Uint8Array.from(r):Df(r);if(typeof t=="number"&&e.length!==t)throw new Error(`Expected ${t} bytes`);return e}function ac(r,t,e=!0){if(!t)throw new TypeError("Specify max value");if(typeof r=="number"&&Number.isSafeInteger(r)&&(r=BigInt(r)),typeof r=="bigint"&&r<t){if(e){if(ae<r)return r}else if(ae<=r)return r}throw new TypeError("Expected valid scalar: 0 < scalar < max")}function PA(r){return r[0]&=248,r[31]&=127,r[31]|=64,r}function LA(r){if(r=typeof r=="bigint"||typeof r=="number"?Xg(ac(r,Qg)):bn(r),r.length!==32)throw new Error("Expected 32 bytes");return r}function BA(r){let t=PA(r.slice(0,32)),e=r.slice(32,64),n=sc(t),i=Ot.BASE.multiply(n),o=i.toRawBytes();return{head:t,prefix:e,scalar:n,point:i,pointBytes:o}}var Tf;async function lc(r){return BA(await _n.sha512(LA(r)))}async function Lf(r){return(await lc(r)).pointBytes}async function Zg(r,t){r=bn(r);let{prefix:e,scalar:n,pointBytes:i}=await lc(t),o=sc(await _n.sha512(e,r)),s=Ot.BASE.multiply(o),a=sc(await _n.sha512(s.toRawBytes(),i,r)),c=A(o+a*n,Dt.l);return new ni(s,c).toRawBytes()}function NA(r,t,e){t=bn(t),e instanceof Ot||(e=Ot.fromHex(e,!1));let{r:n,s:i}=r instanceof ni?r.assertValidity():ni.fromHex(r),o=et.BASE.multiplyUnsafe(i);return{r:n,s:i,SB:o,pub:e,msg:t}}function OA(r,t,e,n){let i=sc(n),o=et.fromAffine(r).multiplyUnsafe(i);return et.fromAffine(t).add(o).subtract(e).multiplyUnsafe(Dt.h).equals(et.ZERO)}async function Jg(r,t,e){let{r:n,SB:i,msg:o,pub:s}=NA(r,t,e),a=await _n.sha512(n.toRawBytes(),s.toRawBytes(),o);return OA(s,n,i,a)}Ot.BASE._setWindowSize(8);var En={node:xA,web:typeof self=="object"&&"crypto"in self?self.crypto:void 0},_n={bytesToHex:Jo,hexToBytes:Df,concatBytes:Yg,getExtendedPublicKey:lc,mod:A,invert:cc,TORSION_SUBGROUP:["0100000000000000000000000000000000000000000000000000000000000000","c7176a703d4dd84fba3c0b760d10670f2a2053fa2c39ccc64ec7fd7792ac037a","0000000000000000000000000000000000000000000000000000000000000080","26e8958fc2b227b045c3f489f2ef98f0d5dfac05d3c63339b13802886d53fc05","ecffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f","26e8958fc2b227b045c3f489f2ef98f0d5dfac05d3c63339b13802886d53fc85","0000000000000000000000000000000000000000000000000000000000000000","c7176a703d4dd84fba3c0b760d10670f2a2053fa2c39ccc64ec7fd7792ac03fa"],hashToPrivateScalar:r=>{if(r=bn(r),r.length<40||r.length>1024)throw new Error("Expected 40-1024 bytes of private key as per FIPS 186");return A(jo(r),Dt.l-st)+st},randomBytes:(r=32)=>{if(En.web)return En.web.getRandomValues(new Uint8Array(r));if(En.node){let{randomBytes:t}=En.node;return new Uint8Array(t(r).buffer)}else throw new Error("The environment doesn't have randomBytes function")},randomPrivateKey:()=>_n.randomBytes(32),sha512:async(...r)=>{let t=Yg(...r);if(En.web){let e=await En.web.subtle.digest("SHA-512",t.buffer);return new Uint8Array(e)}else{if(En.node)return Uint8Array.from(En.node.createHash("sha512").update(t).digest());throw new Error("The environment doesn't have sha512 function")}},precompute(r=8,t=Ot.BASE){let e=t.equals(Ot.BASE)?t:new Ot(t.x,t.y);return e._setWindowSize(r),e.multiply(vn),e},sha512Sync:void 0};Object.defineProperties(_n,{sha512Sync:{configurable:!1,get(){return Tf},set(r){Tf||(Tf=r)}}});var to=32,zr=64,uc=32;async function jg(){let r=_n.randomPrivateKey(),t=await Lf(r);return{privateKey:nw(r,t),publicKey:t}}async function tw(r){if(r.length!==uc)throw new TypeError('"seed" must be 32 bytes in length.');if(!(r instanceof Uint8Array))throw new TypeError('"seed" must be a node.js Buffer, or Uint8Array.');let t=r,e=await Lf(t);return{privateKey:nw(t,e),publicKey:e}}async function ew(r,t){let e=r.subarray(0,uc);return await Zg(t,e)}async function rw(r,t,e){return await Jg(t,e,r)}function nw(r,t){let e=new Uint8Array(zr);for(let n=0;n<uc;n++)e[n]=r[n],e[uc+n]=t[n];return e}var ts=class{constructor(t){this._key=eo(t,to)}async verify(t,e){return await rw(this._key,e,t)}marshal(){return this._key}get bytes(){return dr.encode({Type:Bt.Ed25519,Data:this.marshal()}).subarray()}equals(t){return xt(this.bytes,t.bytes)}async hash(){let{bytes:t}=await te.digest(this.bytes);return t}},ii=class{constructor(t,e){this._key=eo(t,zr),this._publicKey=eo(e,to)}async sign(t){return await ew(this._key,t)}get public(){return new ts(this._publicKey)}marshal(){return this._key}get bytes(){return pr.encode({Type:Bt.Ed25519,Data:this.marshal()}).subarray()}equals(t){return xt(this.bytes,t.bytes)}async hash(){let{bytes:t}=await te.digest(this.bytes);return t}async id(){let t=await jr.digest(this.public.bytes);return Vt.encode(t.bytes).substring(1)}async export(t,e="libp2p-key"){if(e==="libp2p-key")return await Ji(this.bytes,t);throw new at(`export format '${e}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};function UA(r){if(r.length>zr){r=eo(r,zr+to);let n=r.subarray(0,zr),i=r.subarray(zr,r.length);return new ii(n,i)}r=eo(r,zr);let t=r.subarray(0,zr),e=r.subarray(to);return new ii(t,e)}function FA(r){return r=eo(r,to),new ts(r)}async function KA(){let{privateKey:r,publicKey:t}=await jg();return new ii(r,t)}async function iw(r){let{privateKey:t,publicKey:e}=await tw(r);return new ii(t,e)}function eo(r,t){if(r=Uint8Array.from(r??[]),r.length!==t)throw new at(`Key must be a Uint8Array of length ${t}, got ${r.length}`,"ERR_INVALID_KEY_TYPE");return r}var Of={};ce(Of,{Secp256k1PrivateKey:()=>rs,Secp256k1PublicKey:()=>es,generateKeyPair:()=>$A,unmarshalSecp256k1PrivateKey:()=>qA,unmarshalSecp256k1PublicKey:()=>HA});function ow(){return rr.randomPrivateKey()}async function sw(r,t){let{digest:e}=await te.digest(t);try{return await Lg(e,r)}catch(n){throw new at(String(n),"ERR_INVALID_INPUT")}}async function aw(r,t,e){try{let{digest:n}=await te.digest(e);return Bg(t,n,r)}catch(n){throw new at(String(n),"ERR_INVALID_INPUT")}}function cw(r){return ht.fromHex(r).toRawBytes(!0)}function lw(r){try{vf(r,!0)}catch(t){throw new at(String(t),"ERR_INVALID_PRIVATE_KEY")}}function Nf(r){try{ht.fromHex(r)}catch(t){throw new at(String(t),"ERR_INVALID_PUBLIC_KEY")}}function uw(r){try{return vf(r,!0)}catch(t){throw new at(String(t),"ERR_INVALID_PRIVATE_KEY")}}var es=class{constructor(t){Nf(t),this._key=t}async verify(t,e){return await aw(this._key,e,t)}marshal(){return cw(this._key)}get bytes(){return dr.encode({Type:Bt.Secp256k1,Data:this.marshal()}).subarray()}equals(t){return xt(this.bytes,t.bytes)}async hash(){let{bytes:t}=await te.digest(this.bytes);return t}},rs=class{constructor(t,e){this._key=t,this._publicKey=e??uw(t),lw(this._key),Nf(this._publicKey)}async sign(t){return await sw(this._key,t)}get public(){return new es(this._publicKey)}marshal(){return this._key}get bytes(){return pr.encode({Type:Bt.Secp256k1,Data:this.marshal()}).subarray()}equals(t){return xt(this.bytes,t.bytes)}async hash(){let{bytes:t}=await te.digest(this.bytes);return t}async id(){let t=await this.public.hash();return H(t,"base58btc")}async export(t,e="libp2p-key"){if(e==="libp2p-key")return await Ji(this.bytes,t);throw new at(`export format '${e}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};function qA(r){return new rs(r)}function HA(r){return new es(r)}async function $A(){let r=await ow();return new rs(r)}var Gr={rsa:Sf,ed25519:Bf,secp256k1:Of};function kf(r){let t=Object.keys(Gr).join(" / ");return new at(`invalid or unsupported key type ${r}. Must be ${t}`,"ERR_UNSUPPORTED_KEY_TYPE")}function Mf(r){if(r=r.toLowerCase(),r==="rsa"||r==="ed25519"||r==="secp256k1")return Gr[r];throw kf(r)}async function hc(r,t){return await Mf(r).generateKeyPair(t??2048)}function ns(r){let t=dr.decode(r),e=t.Data??new Uint8Array;switch(t.Type){case Bt.RSA:return Gr.rsa.unmarshalRsaPublicKey(e);case Bt.Ed25519:return Gr.ed25519.unmarshalEd25519PublicKey(e);case Bt.Secp256k1:return Gr.secp256k1.unmarshalSecp256k1PublicKey(e);default:throw kf(t.Type??"RSA")}}function fw(r,t){return t=(t??"rsa").toLowerCase(),Mf(t),r.bytes}async function ro(r){let t=pr.decode(r),e=t.Data??new Uint8Array;switch(t.Type){case Bt.RSA:return await Gr.rsa.unmarshalRsaPrivateKey(e);case Bt.Ed25519:return Gr.ed25519.unmarshalEd25519PrivateKey(e);case Bt.Secp256k1:return Gr.secp256k1.unmarshalSecp256k1PrivateKey(e);default:throw kf(t.Type??"RSA")}}function hw(r,t){return t=(t??"rsa").toLowerCase(),Mf(t),r.bytes}async function is(r,t){try{let i=await pg(r,t);return await ro(i)}catch{}let e=fc.default.pki.decryptRsaPrivateKey(r,t);if(e===null)throw new at("Cannot read the key, most likely the password is wrong or not a RSA key","ERR_CANNOT_DECRYPT_PEM");let n=fc.default.asn1.toDer(fc.default.pki.privateKeyToAsn1(e));return n=U(n.getBytes(),"ascii"),await Gr.rsa.unmarshalRsaPrivateKey(n)}var VB=I(Ka(),1),GA=I(yt(),1);var pw=I(nf(),1),mw=I(zt(),1);var dw={sha1:"sha1","sha2-256":"sha256","sha2-512":"sha512"};function os(r,t,e,n,i){if(i!=="sha1"&&i!=="sha2-256"&&i!=="sha2-512"){let a=Object.keys(dw).join(" / ");throw new at(`Hash '${i}' is unknown or not supported. Must be ${a}`,"ERR_UNSUPPORTED_HASH_TYPE")}let o=dw[i],s=(0,pw.default)(r,t,e,n,o);return mw.default.encode64(s,null)}var dc=N("libp2p:keychain"),QA="/pkcs8/",gw="/info/",oi=new WeakMap,si={minKeyLength:112/8,minSaltLength:128/8,minIterationCount:1e3},Uf={dek:{keyLength:512/8,iterationCount:1e4,salt:"you should override this value with a crypto secure random number",hash:"sha2-512"}};function Yr(r){return r==null||typeof r!="string"?!1:r===(0,yw.default)(r.trim())&&r.length>0}async function wt(){let e=Math.random()*800+200;await new Promise(n=>setTimeout(n,e))}function _r(r){return new Ut(QA+r)}function Sn(r){return new Ut(gw+r)}var ai=class{constructor(t,e){if(this.components=t,this.init=Ne(Uf,e),this.init.pass!=null&&this.init.pass?.length<20)throw new Error("pass must be least 20 characters");if(this.init.dek?.keyLength!=null&&this.init.dek.keyLength<si.minKeyLength)throw new Error(`dek.keyLength must be least ${si.minKeyLength} bytes`);if(this.init.dek?.salt?.length!=null&&this.init.dek.salt.length<si.minSaltLength)throw new Error(`dek.saltLength must be least ${si.minSaltLength} bytes`);if(this.init.dek?.iterationCount!=null&&this.init.dek.iterationCount<si.minIterationCount)throw new Error(`dek.iterationCount must be least ${si.minIterationCount}`);let n=this.init.pass!=null&&this.init.dek?.salt!=null?os(this.init.pass,this.init.dek?.salt,this.init.dek?.iterationCount,this.init.dek?.keyLength,this.init.dek?.hash):"";oi.set(this,{dek:n})}static generateOptions(){let t=Object.assign({},Uf),e=Math.ceil(si.minSaltLength/3)*3;return t.dek.salt=H(Hr(e),"base64"),t}static get options(){return Uf}async createKey(t,e,n=2048){if(!Yr(t)||t==="self")throw await wt(),(0,ft.default)(new Error("Invalid key name"),nt.ERR_INVALID_KEY_NAME);if(typeof e!="string")throw await wt(),(0,ft.default)(new Error("Invalid key type"),nt.ERR_INVALID_KEY_TYPE);let i=_r(t);if(await this.components.datastore.has(i))throw await wt(),(0,ft.default)(new Error("Key name already exists"),nt.ERR_KEY_ALREADY_EXISTS);switch(e.toLowerCase()){case"rsa":if(!Number.isSafeInteger(n)||n<2048)throw await wt(),(0,ft.default)(new Error("Invalid RSA key size"),nt.ERR_INVALID_KEY_SIZE);break;default:break}let s;try{let a=await hc(e,n),c=await a.id(),l=oi.get(this);if(l==null)throw(0,ft.default)(new Error("dek missing"),nt.ERR_INVALID_PARAMETERS);let u=l.dek,f=await a.export(u);s={name:t,id:c};let d=this.components.datastore.batch();d.put(i,U(f)),d.put(Sn(t),U(JSON.stringify(s))),await d.commit()}catch(a){throw await wt(),a}return s}async listKeys(){let t={prefix:gw},e=[];for await(let n of this.components.datastore.query(t))e.push(JSON.parse(H(n.value)));return e}async findKeyById(t){try{let n=(await this.listKeys()).find(i=>i.id===t);if(n==null)throw(0,ft.default)(new Error(`Key with id '${t}' does not exist.`),nt.ERR_KEY_NOT_FOUND);return n}catch(e){throw await wt(),e}}async findKeyByName(t){if(!Yr(t))throw await wt(),(0,ft.default)(new Error(`Invalid key name '${t}'`),nt.ERR_INVALID_KEY_NAME);let e=Sn(t);try{let n=await this.components.datastore.get(e);return JSON.parse(H(n))}catch(n){throw await wt(),dc.error(n),(0,ft.default)(new Error(`Key '${t}' does not exist.`),nt.ERR_KEY_NOT_FOUND)}}async removeKey(t){if(!Yr(t)||t==="self")throw await wt(),(0,ft.default)(new Error(`Invalid key name '${t}'`),nt.ERR_INVALID_KEY_NAME);let e=_r(t),n=await this.findKeyByName(t),i=this.components.datastore.batch();return i.delete(e),i.delete(Sn(t)),await i.commit(),n}async renameKey(t,e){if(!Yr(t)||t==="self")throw await wt(),(0,ft.default)(new Error(`Invalid old key name '${t}'`),nt.ERR_OLD_KEY_NAME_INVALID);if(!Yr(e)||e==="self")throw await wt(),(0,ft.default)(new Error(`Invalid new key name '${e}'`),nt.ERR_NEW_KEY_NAME_INVALID);let n=_r(t),i=_r(e),o=Sn(t),s=Sn(e);if(await this.components.datastore.has(i))throw await wt(),(0,ft.default)(new Error(`Key '${e}' already exists`),nt.ERR_KEY_ALREADY_EXISTS);try{let c=await this.components.datastore.get(n),l=await this.components.datastore.get(o),u=JSON.parse(H(l));u.name=e;let f=this.components.datastore.batch();return f.put(i,c),f.put(s,U(JSON.stringify(u))),f.delete(n),f.delete(o),await f.commit(),u}catch(c){throw await wt(),c}}async exportKey(t,e){if(!Yr(t))throw await wt(),(0,ft.default)(new Error(`Invalid key name '${t}'`),nt.ERR_INVALID_KEY_NAME);if(e==null)throw await wt(),(0,ft.default)(new Error("Password is required"),nt.ERR_PASSWORD_REQUIRED);let n=_r(t);try{let i=await this.components.datastore.get(n),o=H(i),s=oi.get(this);if(s==null)throw(0,ft.default)(new Error("dek missing"),nt.ERR_INVALID_PARAMETERS);let a=s.dek;return await(await is(o,a)).export(e)}catch(i){throw await wt(),i}}async exportPeerId(t){let e="temporary-password",n=await this.exportKey(t,e),i=await is(n,e);return await nn(i.public.bytes,i.bytes)}async importKey(t,e,n){if(!Yr(t)||t==="self")throw await wt(),(0,ft.default)(new Error(`Invalid key name '${t}'`),nt.ERR_INVALID_KEY_NAME);if(e==null)throw await wt(),(0,ft.default)(new Error("PEM encoded key is required"),nt.ERR_PEM_REQUIRED);let i=_r(t);if(await this.components.datastore.has(i))throw await wt(),(0,ft.default)(new Error(`Key '${t}' already exists`),nt.ERR_KEY_ALREADY_EXISTS);let s;try{s=await is(e,n)}catch{throw await wt(),(0,ft.default)(new Error("Cannot read the key, most likely the password is wrong"),nt.ERR_CANNOT_READ_KEY)}let a;try{a=await s.id();let u=oi.get(this);if(u==null)throw(0,ft.default)(new Error("dek missing"),nt.ERR_INVALID_PARAMETERS);let f=u.dek;e=await s.export(f)}catch(u){throw await wt(),u}let c={name:t,id:a},l=this.components.datastore.batch();return l.put(i,U(e)),l.put(Sn(t),U(JSON.stringify(c))),await l.commit(),c}async importPeer(t,e){try{if(!Yr(t))throw(0,ft.default)(new Error(`Invalid key name '${t}'`),nt.ERR_INVALID_KEY_NAME);if(e==null)throw(0,ft.default)(new Error("PeerId is required"),nt.ERR_MISSING_PRIVATE_KEY);if(e.privateKey==null)throw(0,ft.default)(new Error("PeerId.privKey is required"),nt.ERR_MISSING_PRIVATE_KEY);let n=await ro(e.privateKey),i=_r(t);if(await this.components.datastore.has(i))throw await wt(),(0,ft.default)(new Error(`Key '${t}' already exists`),nt.ERR_KEY_ALREADY_EXISTS);let s=oi.get(this);if(s==null)throw(0,ft.default)(new Error("dek missing"),nt.ERR_INVALID_PARAMETERS);let a=s.dek,c=await n.export(a),l={name:t,id:e.toString()},u=this.components.datastore.batch();return u.put(i,U(c)),u.put(Sn(t),U(JSON.stringify(l))),await u.commit(),l}catch(n){throw await wt(),n}}async getPrivateKey(t){if(!Yr(t))throw await wt(),(0,ft.default)(new Error(`Invalid key name '${t}'`),nt.ERR_INVALID_KEY_NAME);try{let e=_r(t),n=await this.components.datastore.get(e);return H(n)}catch(e){throw await wt(),dc.error(e),(0,ft.default)(new Error(`Key '${t}' does not exist.`),nt.ERR_KEY_NOT_FOUND)}}async rotateKeychainPass(t,e){if(typeof t!="string")throw await wt(),(0,ft.default)(new Error(`Invalid old pass type '${typeof t}'`),nt.ERR_INVALID_OLD_PASS_TYPE);if(typeof e!="string")throw await wt(),(0,ft.default)(new Error(`Invalid new pass type '${typeof e}'`),nt.ERR_INVALID_NEW_PASS_TYPE);if(e.length<20)throw await wt(),(0,ft.default)(new Error(`Invalid pass length ${e.length}`),nt.ERR_INVALID_PASS_LENGTH);dc("recreating keychain");let n=oi.get(this);if(n==null)throw(0,ft.default)(new Error("dek missing"),nt.ERR_INVALID_PARAMETERS);let i=n.dek;this.init.pass=e;let o=e!=null&&this.init.dek?.salt!=null?os(e,this.init.dek.salt,this.init.dek?.iterationCount,this.init.dek?.keyLength,this.init.dek?.hash):"";oi.set(this,{dek:o});let s=await this.listKeys();for(let a of s){let c=await this.components.datastore.get(_r(a.name)),l=H(c),u=await is(l,i),f=o.toString(),d=await u.export(f),h=this.components.datastore.batch(),p={name:a.name,id:a.id};h.put(_r(a.name),U(d)),h.put(Sn(a.name),U(JSON.stringify(p))),await h.commit()}dc("keychain reconstructed")}};var no=I(W(),1);var Ff=class extends Map{constructor(t){super();let{name:e,metrics:n}=t;this.metric=n.registerMetric(e),this.updateComponentMetric()}set(t,e){return super.set(t,e),this.updateComponentMetric(),this}delete(t){let e=super.delete(t);return this.updateComponentMetric(),e}clear(){super.clear(),this.updateComponentMetric()}updateComponentMetric(){this.metric.update(this.size)}};function ss(r){let{name:t,metrics:e}=r,n;return e!=null?n=new Ff({name:t,metrics:e}):n=new Map,n}var ci=N("libp2p:transports"),pc=class extends Pt{constructor(t,e={}){super(),this.components=t,this.started=!1,this.transports=new Map,this.listeners=ss({name:"libp2p_transport_manager_listeners",metrics:this.components.metrics}),this.faultTolerance=e.faultTolerance??un.FATAL_ALL}add(t){let e=t[Symbol.toStringTag];if(e==null)throw(0,no.default)(new Error("Transport must have a valid tag"),b.ERR_INVALID_KEY);if(this.transports.has(e))throw(0,no.default)(new Error("There is already a transport with this tag"),b.ERR_DUPLICATE_TRANSPORT);ci("adding transport %s",e),this.transports.set(e,t),this.listeners.has(e)||this.listeners.set(e,[])}isStarted(){return this.started}async start(){let t=this.components.addressManager.getListenAddrs();await this.listen(t),this.started=!0}async stop(){let t=[];for(let[e,n]of this.listeners)for(ci("closing listeners for %s",e);n.length>0;){let i=n.pop();i!=null&&t.push(i.close())}await Promise.all(t),ci("all listeners closed");for(let e of this.listeners.keys())this.listeners.set(e,[]);this.started=!1}async dial(t,e){let n=this.transportForMultiaddr(t);if(n==null)throw(0,no.default)(new Error(`No transport available for address ${String(t)}`),b.ERR_TRANSPORT_UNAVAILABLE);try{return await n.dial(t,{...e,upgrader:this.components.upgrader})}catch(i){throw i.code==null&&(i.code=b.ERR_TRANSPORT_DIAL_FAILED),i}}getAddrs(){let t=[];for(let e of this.listeners.values())for(let n of e)t=[...t,...n.getAddrs()];return t}getTransports(){return Array.of(...this.transports.values())}transportForMultiaddr(t){for(let e of this.transports.values())if(e.filter([t]).length>0)return e}async listen(t){if(t==null||t.length===0){ci("no addresses were provided for listening, this node is dial only");return}let e=[];for(let[n,i]of this.transports.entries()){let o=i.filter(t),s=[];for(let l of o){ci("creating listener for %s on %s",n,l);let u=i.createListener({upgrader:this.components.upgrader}),f=this.listeners.get(n);f==null&&(f=[],this.listeners.set(n,f)),f.push(u),u.addEventListener("listening",()=>{this.dispatchEvent(new q("listener:listening",{detail:u}))}),u.addEventListener("close",()=>{this.dispatchEvent(new q("listener:close",{detail:u}))}),s.push(u.listen(l))}if(s.length===0){e.push(n);continue}if((await Promise.allSettled(s)).find(l=>l.status==="fulfilled")==null&&this.faultTolerance!==un.NO_FATAL)throw(0,no.default)(new Error(`Transport (${n}) could not listen on any available address`),b.ERR_NO_VALID_ADDRESSES)}if(e.length===this.transports.size){let n=`no valid addresses were provided for transports [${e.join(", ")}]`;if(this.faultTolerance===un.FATAL_ALL)throw(0,no.default)(new Error(n),b.ERR_NO_VALID_ADDRESSES);ci(`libp2p in dial mode only: ${n}`)}}async remove(t){ci("removing %s",t);for(let e of this.listeners.get(t)??[])await e.close();this.transports.delete(t),this.listeners.delete(t)}async removeAll(){let t=[];for(let e of this.transports.keys())t.push(this.remove(e));await Promise.all(t)}};var ee=I(W(),1);var Wr="/multistream/1.0.0";var vw=I(W(),1);var Kf=I(W(),1);var ZA=N("libp2p:mss"),ww=U(`
49
+ `);function as(r){let t=new Ft(r,ww);return Me.single(t)}function li(r,t,e={}){let n=as(t);e.writeBytes===!0?r.push(n.subarray()):r.push(n)}function Ew(r,t,e={}){let n=new Ft;for(let i of t)n.append(as(i));e.writeBytes===!0?r.push(n.subarray()):r.push(n)}async function JA(r,t){let e=1,n={[Symbol.asyncIterator]:()=>n,next:async()=>await r.next(e)},i=n;t?.signal!=null&&(i=Yn(n,t.signal));let s=await Lt(i,Te({onLength:a=>{e=a},maxDataLength:1024}),async a=>await Se(a));if(s==null||s.length===0)throw(0,Kf.default)(new Error("no buffer returned"),"ERR_INVALID_MULTISTREAM_SELECT_MESSAGE");if(s.get(s.byteLength-1)!==ww[0])throw ZA.error("Invalid mss message - missing newline - %s",s.subarray()),(0,Kf.default)(new Error("missing newline"),"ERR_INVALID_MULTISTREAM_SELECT_MESSAGE");return s.sublist(0,-1)}async function io(r,t){let e=await JA(r,t);return H(e.subarray())}var cs=N("libp2p:mss:select");async function ls(r,t,e={}){t=Array.isArray(t)?[...t]:[t];let{reader:n,writer:i,rest:o,stream:s}=Ki(r),a=t.shift();if(a==null)throw new Error("At least one protocol must be specified");cs('select: write ["%s", "%s"]',Wr,a);let c=U(Wr),l=U(a);Ew(i,[c,l],e);let u=await io(n,e);if(cs('select: read "%s"',u),u===Wr&&(u=await io(n,e),cs('select: read "%s"',u)),u===a)return o(),{stream:s,protocol:a};for(let f of t){cs('select: write "%s"',f),li(i,U(f),e);let d=await io(n,e);if(cs('select: read "%s" for "%s"',d,f),d===f)return o(),{stream:s,protocol:f}}throw o(),(0,vw.default)(new Error("protocol selection failed"),"ERR_UNSUPPORTED_PROTOCOL")}var us=N("libp2p:mss:handle");async function fs(r,t,e){t=Array.isArray(t)?t:[t];let{writer:n,reader:i,rest:o,stream:s}=Ki(r);for(;;){let a=await io(i,e);if(us('read "%s"',a),a===Wr){us('respond with "%s" for "%s"',Wr,a),li(n,U(Wr),e);continue}if(t.includes(a))return li(n,U(a),e),us('respond with "%s" for "%s"',a,a),o(),{stream:s,protocol:a};if(a==="ls"){li(n,new Ft(...t.map(c=>as(U(c)))),e),us('respond with "%s" for %s',t,a);continue}li(n,U("na"),e),us('respond with "na" for "%s"',a)}}var Vf=I(W(),1);var bw=Symbol.for("@libp2p/connection");var tR=N("libp2p:connection"),qf=class{constructor(t){let{remoteAddr:e,remotePeer:n,newStream:i,close:o,getStreams:s,stat:a}=t;this.id=`${parseInt(String(Math.random()*1e9)).toString(36)}${Date.now()}`,this.remoteAddr=e,this.remotePeer=n,this.stat={...a,status:oa},this._newStream=i,this._close=o,this._getStreams=s,this.tags=[],this._closing=!1}get[Symbol.toStringTag](){return"Connection"}get[bw](){return!0}get streams(){return this._getStreams()}async newStream(t,e){if(this.stat.status===tu)throw(0,Vf.default)(new Error("the connection is being closed"),"ERR_CONNECTION_BEING_CLOSED");if(this.stat.status===sa)throw(0,Vf.default)(new Error("the connection is closed"),"ERR_CONNECTION_CLOSED");Array.isArray(t)||(t=[t]);let n=await this._newStream(t,e);return n.stat.direction="outbound",n}addStream(t){t.stat.direction="inbound"}removeStream(t){}async close(){if(!(this.stat.status===sa||this._closing)){this.stat.status=tu;try{this.streams.forEach(t=>t.close())}catch(t){tR.error(t)}this._closing=!0,await this._close(),this._closing=!1,this.stat.timeline.close=Date.now(),this.stat.status=sa}}};function _w(r){return new qf(r)}var mc=I(W(),1);var eR=Symbol.for("@libp2p/topology");function Sw(r){return r!=null&&Boolean(r[eR])}var Hf=N("libp2p:registrar"),$f=32,zf=64,yc=class{constructor(t){this.topologies=new Map,this.handlers=new Map,this.components=t,this._onDisconnect=this._onDisconnect.bind(this),this._onProtocolChange=this._onProtocolChange.bind(this),this._onConnect=this._onConnect.bind(this),this.components.connectionManager.addEventListener("peer:disconnect",this._onDisconnect),this.components.connectionManager.addEventListener("peer:connect",this._onConnect),this.components.peerStore.addEventListener("change:protocols",this._onProtocolChange)}getProtocols(){return Array.from(new Set([...this.topologies.keys(),...this.handlers.keys()])).sort()}getHandler(t){let e=this.handlers.get(t);if(e==null)throw(0,mc.default)(new Error(`No handler registered for protocol ${t}`),b.ERR_NO_HANDLER_FOR_PROTOCOL);return e}getTopologies(t){let e=this.topologies.get(t);return e==null?[]:[...e.values()]}async handle(t,e,n){if(this.handlers.has(t))throw(0,mc.default)(new Error(`Handler already registered for protocol ${t}`),b.ERR_PROTOCOL_HANDLER_ALREADY_REGISTERED);let i=Ne.bind({ignoreUndefined:!0})({maxInboundStreams:$f,maxOutboundStreams:zf},n);this.handlers.set(t,{handler:e,options:i}),await this.components.peerStore.protoBook.add(this.components.peerId,[t])}async unhandle(t){let e=Array.isArray(t)?t:[t];e.forEach(n=>{this.handlers.delete(n)}),await this.components.peerStore.protoBook.remove(this.components.peerId,e)}async register(t,e){if(!Sw(e))throw Hf.error("topology must be an instance of interfaces/topology"),(0,mc.default)(new Error("topology must be an instance of interfaces/topology"),b.ERR_INVALID_PARAMETERS);let n=`${(Math.random()*1e9).toString(36)}${Date.now()}`,i=this.topologies.get(t);return i==null&&(i=new Map,this.topologies.set(t,i)),i.set(n,e),await e.setRegistrar(this),n}unregister(t){for(let[e,n]of this.topologies.entries())n.has(t)&&(n.delete(t),n.size===0&&this.topologies.delete(e))}_onDisconnect(t){let e=t.detail;this.components.peerStore.protoBook.get(e.remotePeer).then(n=>{for(let i of n){let o=this.topologies.get(i);if(o!=null)for(let s of o.values())s.onDisconnect(e.remotePeer)}}).catch(n=>{Hf.error(n)})}_onConnect(t){let e=t.detail;this.components.peerStore.protoBook.get(e.remotePeer).then(n=>{for(let i of n){let o=this.topologies.get(i);if(o!=null)for(let s of o.values())s.onConnect(e.remotePeer,e)}}).catch(n=>{Hf.error(n)})}_onProtocolChange(t){let{peerId:e,protocols:n,oldProtocols:i}=t.detail,o=i.filter(a=>!n.includes(a)),s=n.filter(a=>!i.includes(a));for(let a of o){let c=this.topologies.get(a);if(c!=null)for(let l of c.values())l.onDisconnect(e)}for(let a of s){let c=this.topologies.get(a);if(c!=null)for(let l of c.values()){let u=this.components.connectionManager.getConnections(e)[0];u!=null&&l.onConnect(e,u)}}}};var Gf=I(Nr(),1);var Yf=I(lr(),1),Rt=N("libp2p:upgrader");function rR(r,t){try{let{options:e}=t.getHandler(r);return e.maxInboundStreams}catch(e){if(e.code!==b.ERR_NO_HANDLER_FOR_PROTOCOL)throw e}return $f}function nR(r,t){try{let{options:e}=t.getHandler(r);return e.maxOutboundStreams}catch(e){if(e.code!==b.ERR_NO_HANDLER_FOR_PROTOCOL)throw e}return zf}function Aw(r,t,e){let n=0;return e.streams.forEach(i=>{i.stat.direction===t&&i.stat.protocol===r&&n++}),n}var gc=class extends Pt{constructor(t,e){super(),this.components=t,this.connectionEncryption=new Map,e.connectionEncryption.forEach(n=>{this.connectionEncryption.set(n.protocol,n)}),this.muxers=new Map,e.muxers.forEach(n=>{this.muxers.set(n.protocol,n)}),this.inboundUpgradeTimeout=e.inboundUpgradeTimeout}async upgradeInbound(t,e){if(!await this.components.connectionManager.acceptIncomingConnection(t))throw(0,ee.default)(new Error("connection denied"),b.ERR_CONNECTION_DENIED);let i,o,s,a,c,l=new Gf.TimeoutController(this.inboundUpgradeTimeout);try{(0,Yf.setMaxListeners)?.(1/0,l.signal)}catch{}try{let u=Re(t,l.signal);if(t.source=u.source,t.sink=u.sink,await this.components.connectionGater.denyInboundConnection(t))throw(0,ee.default)(new Error("The multiaddr connection is blocked by gater.acceptConnection"),b.ERR_CONNECTION_INTERCEPTED);this.components.metrics?.trackMultiaddrConnection(t),Rt("starting the inbound connection upgrade");let f=t;if(e?.skipProtection!==!0){let d=this.components.connectionProtector;d!=null&&(Rt("protecting the inbound connection"),f=await d.protect(t))}try{if(i=f,e?.skipEncryption!==!0){if({conn:i,remotePeer:o,protocol:c}=await this._encryptInbound(f),await this.components.connectionGater.denyInboundEncryptedConnection(o,{...f,...i}))throw(0,ee.default)(new Error("The multiaddr connection is blocked by gater.acceptEncryptedConnection"),b.ERR_CONNECTION_INTERCEPTED)}else{let d=t.remoteAddr.getPeerId();if(d==null)throw(0,ee.default)(new Error("inbound connection that skipped encryption must have a peer id"),b.ERR_INVALID_MULTIADDR);let h=tt(d);c="native",o=h}if(s=i,e?.muxerFactory!=null)a=e.muxerFactory;else if(this.muxers.size>0){let d=await this._multiplexInbound({...f,...i},this.muxers);a=d.muxerFactory,s=d.stream}}catch(d){throw Rt.error("Failed to upgrade inbound connection",d),d}if(await this.components.connectionGater.denyInboundUpgradedConnection(o,{...f,...i}))throw(0,ee.default)(new Error("The multiaddr connection is blocked by gater.acceptEncryptedConnection"),b.ERR_CONNECTION_INTERCEPTED);return Rt("Successfully upgraded inbound connection"),this._createConnection({cryptoProtocol:c,direction:"inbound",maConn:t,upgradedConn:s,muxerFactory:a,remotePeer:o})}finally{this.components.connectionManager.afterUpgradeInbound(),l.clear()}}async upgradeOutbound(t,e){let n=t.remoteAddr.getPeerId(),i;if(n!=null&&(i=tt(n),await this.components.connectionGater.denyOutboundConnection(i,t)))throw(0,ee.default)(new Error("The multiaddr connection is blocked by connectionGater.denyOutboundConnection"),b.ERR_CONNECTION_INTERCEPTED);let o,s,a,c,l;this.components.metrics?.trackMultiaddrConnection(t),Rt("Starting the outbound connection upgrade");let u=t;if(e?.skipProtection!==!0){let f=this.components.connectionProtector;f!=null&&(u=await f.protect(t))}try{if(o=u,e?.skipEncryption!==!0){if({conn:o,remotePeer:s,protocol:c}=await this._encryptOutbound(u,i),await this.components.connectionGater.denyOutboundEncryptedConnection(s,{...u,...o}))throw(0,ee.default)(new Error("The multiaddr connection is blocked by gater.acceptEncryptedConnection"),b.ERR_CONNECTION_INTERCEPTED)}else{if(i==null)throw(0,ee.default)(new Error("Encryption was skipped but no peer id was passed"),b.ERR_INVALID_PEER);c="native",s=i}if(a=o,e?.muxerFactory!=null)l=e.muxerFactory;else if(this.muxers.size>0){let f=await this._multiplexOutbound({...u,...o},this.muxers);l=f.muxerFactory,a=f.stream}}catch(f){throw Rt.error("Failed to upgrade outbound connection",f),await t.close(f),f}if(await this.components.connectionGater.denyOutboundUpgradedConnection(s,{...u,...o}))throw(0,ee.default)(new Error("The multiaddr connection is blocked by gater.acceptEncryptedConnection"),b.ERR_CONNECTION_INTERCEPTED);return Rt("Successfully upgraded outbound connection"),this._createConnection({cryptoProtocol:c,direction:"outbound",maConn:t,upgradedConn:a,muxerFactory:l,remotePeer:s})}_createConnection(t){let{cryptoProtocol:e,direction:n,maConn:i,upgradedConn:o,remotePeer:s,muxerFactory:a}=t,c,l,u;a!=null&&(c=a.createStreamMuxer({direction:n,onIncomingStream:h=>{u!=null&&Promise.resolve().then(async()=>{let p=this.components.registrar.getProtocols(),{stream:m,protocol:y}=await fs(h,p);if(Rt("%s: incoming stream opened on %s",n,y),u==null)return;let g=rR(y,this.components.registrar);if(Aw(y,"inbound",u)===g){h.abort((0,ee.default)(new Error(`Too many inbound protocol streams for protocol "${y}" - limit ${g}`),b.ERR_TOO_MANY_INBOUND_PROTOCOL_STREAMS));return}h.source=m.source,h.sink=m.sink,h.stat.protocol=y,this.components.peerStore.protoBook.add(s,[y]).catch(_=>Rt.error(_)),u.addStream(h),this.components.metrics?.trackProtocolStream(h,u),this._onStream({connection:u,stream:h,protocol:y})}).catch(p=>{Rt.error(p),h.stat.timeline.close==null&&h.close()})},onStreamEnd:h=>{u?.removeStream(h.id)}}),l=async(h,p={})=>{if(c==null)throw(0,ee.default)(new Error("Stream is not multiplexed"),b.ERR_MUXER_UNAVAILABLE);Rt("%s: starting new stream on %s",n,h);let m=await c.newStream(),y;try{if(p.signal==null){Rt("No abort signal was passed while trying to negotiate protocols %s falling back to default timeout",h),y=new Gf.TimeoutController(3e4),p.signal=y.signal;try{(0,Yf.setMaxListeners)?.(1/0,y.signal)}catch{}}let{stream:g,protocol:E}=await ls(m,h,p),_=nR(E,this.components.registrar);if(Aw(E,"outbound",u)===_){let C=(0,ee.default)(new Error(`Too many outbound protocol streams for protocol "${E}" - limit ${_}`),b.ERR_TOO_MANY_OUTBOUND_PROTOCOL_STREAMS);throw m.abort(C),C}return this.components.peerStore.protoBook.add(s,[E]).catch(C=>Rt.error(C)),m.source=g.source,m.sink=g.sink,m.stat.protocol=E,this.components.metrics?.trackProtocolStream(m,u),m}catch(g){throw Rt.error("could not create new stream",g),m.stat.timeline.close==null&&m.close(),g.code!=null?g:(0,ee.default)(g,b.ERR_UNSUPPORTED_PROTOCOL)}finally{y?.clear()}},Promise.all([c.sink(o.source),o.sink(c.source)]).catch(h=>{Rt.error(h)}));let f=i.timeline;i.timeline=new Proxy(f,{set:(...h)=>(u!=null&&h[1]==="close"&&h[2]!=null&&f.close==null&&(async()=>{try{u.stat.status==="OPEN"&&await u.close()}catch(p){Rt.error(p)}finally{this.dispatchEvent(new q("connectionEnd",{detail:u}))}})().catch(p=>{Rt.error(p)}),Reflect.set(...h))}),i.timeline.upgraded=Date.now();let d=()=>{throw(0,ee.default)(new Error("connection is not multiplexed"),b.ERR_CONNECTION_NOT_MULTIPLEXED)};return u=_w({remoteAddr:i.remoteAddr,remotePeer:s,stat:{status:"OPEN",direction:n,timeline:i.timeline,multiplexer:c?.protocol,encryption:e},newStream:l??d,getStreams:()=>c!=null?c.streams:d(),close:async()=>{await i.close(),c?.close()}}),this.dispatchEvent(new q("connection",{detail:u})),u}_onStream(t){let{connection:e,stream:n,protocol:i}=t,{handler:o}=this.components.registrar.getHandler(i);o({connection:e,stream:n})}async _encryptInbound(t){let e=Array.from(this.connectionEncryption.keys());Rt("handling inbound crypto protocol selection",e);try{let{stream:n,protocol:i}=await fs(t,e,{writeBytes:!0}),o=this.connectionEncryption.get(i);if(o==null)throw new Error(`no crypto module found for ${i}`);return Rt("encrypting inbound connection..."),{...await o.secureInbound(this.components.peerId,n),protocol:i}}catch(n){throw(0,ee.default)(n,b.ERR_ENCRYPTION_FAILED)}}async _encryptOutbound(t,e){let n=Array.from(this.connectionEncryption.keys());Rt("selecting outbound crypto protocol",n);try{let{stream:i,protocol:o}=await ls(t,n,{writeBytes:!0}),s=this.connectionEncryption.get(o);if(s==null)throw new Error(`no crypto module found for ${o}`);return Rt("encrypting outbound connection to %p",e),{...await s.secureOutbound(this.components.peerId,i,e),protocol:o}}catch(i){throw(0,ee.default)(i,b.ERR_ENCRYPTION_FAILED)}}async _multiplexOutbound(t,e){let n=Array.from(e.keys());Rt("outbound selecting muxer %s",n);try{let{stream:i,protocol:o}=await ls(t,n,{writeBytes:!0});Rt("%s selected as muxer protocol",o);let s=e.get(o);return{stream:i,muxerFactory:s}}catch(i){throw Rt.error("error multiplexing outbound stream",i),(0,ee.default)(i,b.ERR_MUXER_UNAVAILABLE)}}async _multiplexInbound(t,e){let n=Array.from(e.keys());Rt("inbound handling muxers %s",n);try{let{stream:i,protocol:o}=await fs(t,n,{writeBytes:!0}),s=e.get(o);return{stream:i,muxerFactory:s}}catch(i){throw Rt.error("error multiplexing inbound stream",i),(0,ee.default)(i,b.ERR_MUXER_UNAVAILABLE)}}};var fi=I(W(),1);var ui;(function(r){let t;r.codec=()=>(t==null&&(t=St((e,n,i={})=>{if(i.lengthDelimited!==!1&&n.fork(),e.protocolVersion!=null&&(n.uint32(42),n.string(e.protocolVersion)),e.agentVersion!=null&&(n.uint32(50),n.string(e.agentVersion)),e.publicKey!=null&&(n.uint32(10),n.bytes(e.publicKey)),e.listenAddrs!=null)for(let o of e.listenAddrs)n.uint32(18),n.bytes(o);if(e.observedAddr!=null&&(n.uint32(34),n.bytes(e.observedAddr)),e.protocols!=null)for(let o of e.protocols)n.uint32(26),n.string(o);e.signedPeerRecord!=null&&(n.uint32(66),n.bytes(e.signedPeerRecord)),i.lengthDelimited!==!1&&n.ldelim()},(e,n)=>{let i={listenAddrs:[],protocols:[]},o=n==null?e.len:e.pos+n;for(;e.pos<o;){let s=e.uint32();switch(s>>>3){case 5:i.protocolVersion=e.string();break;case 6:i.agentVersion=e.string();break;case 1:i.publicKey=e.bytes();break;case 2:i.listenAddrs.push(e.bytes());break;case 4:i.observedAddr=e.bytes();break;case 3:i.protocols.push(e.string());break;case 8:i.signedPeerRecord=e.bytes();break;default:e.skipType(s&7);break}}return i})),t),r.encode=e=>_t(e,r.codec()),r.decode=e=>bt(e,r.codec())})(ui||(ui={}));var Iw=I(W(),1);var Rw={ERR_SIGNATURE_NOT_VALID:"ERR_SIGNATURE_NOT_VALID"};var hs;(function(r){let t;r.codec=()=>(t==null&&(t=St((e,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),(i.writeDefaults===!0||e.publicKey!=null&&e.publicKey.byteLength>0)&&(n.uint32(10),n.bytes(e.publicKey)),(i.writeDefaults===!0||e.payloadType!=null&&e.payloadType.byteLength>0)&&(n.uint32(18),n.bytes(e.payloadType)),(i.writeDefaults===!0||e.payload!=null&&e.payload.byteLength>0)&&(n.uint32(26),n.bytes(e.payload)),(i.writeDefaults===!0||e.signature!=null&&e.signature.byteLength>0)&&(n.uint32(42),n.bytes(e.signature)),i.lengthDelimited!==!1&&n.ldelim()},(e,n)=>{let i={publicKey:new Uint8Array(0),payloadType:new Uint8Array(0),payload:new Uint8Array(0),signature:new Uint8Array(0)},o=n==null?e.len:e.pos+n;for(;e.pos<o;){let s=e.uint32();switch(s>>>3){case 1:i.publicKey=e.bytes();break;case 2:i.payloadType=e.bytes();break;case 3:i.payload=e.bytes();break;case 5:i.signature=e.bytes();break;default:e.skipType(s&7);break}}return i})),t),r.encode=e=>_t(e,r.codec()),r.decode=e=>bt(e,r.codec())})(hs||(hs={}));var iR,re=class{constructor(t){let{peerId:e,payloadType:n,payload:i,signature:o}=t;this.peerId=e,this.payloadType=n,this.payload=i,this.signature=o}marshal(){if(this.peerId.publicKey==null)throw new Error("Missing public key");return this.marshaled==null&&(this.marshaled=hs.encode({publicKey:this.peerId.publicKey,payloadType:this.payloadType,payload:this.payload.subarray(),signature:this.signature})),this.marshaled}equals(t){return xt(this.marshal(),t.marshal())}async validate(t){let e=Tw(t,this.payloadType,this.payload);if(this.peerId.publicKey==null)throw new Error("Missing public key");return await ns(this.peerId.publicKey).verify(e.subarray(),this.signature)}};iR=re;re.createFromProtobuf=async r=>{let t=hs.decode(r),e=await nn(t.publicKey);return new re({peerId:e,payloadType:t.payloadType,payload:t.payload,signature:t.signature})};re.seal=async(r,t)=>{if(t.privateKey==null)throw new Error("Missing private key");let e=r.domain,n=r.codec,i=r.marshal(),o=Tw(e,n,i),a=await(await ro(t.privateKey)).sign(o.subarray());return new re({peerId:t,payloadType:n,payload:i,signature:a})};re.openAndCertify=async(r,t)=>{let e=await re.createFromProtobuf(r);if(!await e.validate(t))throw(0,Iw.default)(new Error("envelope signature is not valid for the given domain"),Rw.ERR_SIGNATURE_NOT_VALID);return e};var Tw=(r,t,e)=>{let n=U(r),i=Xe.encode(n.byteLength),o=Xe.encode(t.length),s=Xe.encode(e.length);return new Ft(i,n,o,t,s,e)};function Cw(r,t){let e=(n,i)=>n.toString().localeCompare(i.toString());return r.length!==t.length?!1:(t.sort(e),r.sort(e).every((n,i)=>t[i].equals(n)))}var ds;(function(r){let t;(function(n){let i;n.codec=()=>(i==null&&(i=St((o,s,a={})=>{a.lengthDelimited!==!1&&s.fork(),(a.writeDefaults===!0||o.multiaddr!=null&&o.multiaddr.byteLength>0)&&(s.uint32(10),s.bytes(o.multiaddr)),a.lengthDelimited!==!1&&s.ldelim()},(o,s)=>{let a={multiaddr:new Uint8Array(0)},c=s==null?o.len:o.pos+s;for(;o.pos<c;){let l=o.uint32();switch(l>>>3){case 1:a.multiaddr=o.bytes();break;default:o.skipType(l&7);break}}return a})),i),n.encode=o=>_t(o,n.codec()),n.decode=o=>bt(o,n.codec())})(t=r.AddressInfo||(r.AddressInfo={}));let e;r.codec=()=>(e==null&&(e=St((n,i,o={})=>{if(o.lengthDelimited!==!1&&i.fork(),(o.writeDefaults===!0||n.peerId!=null&&n.peerId.byteLength>0)&&(i.uint32(10),i.bytes(n.peerId)),(o.writeDefaults===!0||n.seq!==0n)&&(i.uint32(16),i.uint64(n.seq)),n.addresses!=null)for(let s of n.addresses)i.uint32(26),r.AddressInfo.codec().encode(s,i,{writeDefaults:!0});o.lengthDelimited!==!1&&i.ldelim()},(n,i)=>{let o={peerId:new Uint8Array(0),seq:0n,addresses:[]},s=i==null?n.len:n.pos+i;for(;n.pos<s;){let a=n.uint32();switch(a>>>3){case 1:o.peerId=n.bytes();break;case 2:o.seq=n.uint64();break;case 3:o.addresses.push(r.AddressInfo.codec().decode(n,n.uint32()));break;default:n.skipType(a&7);break}}return o})),e),r.encode=n=>_t(n,r.codec()),r.decode=n=>bt(n,r.codec())})(ds||(ds={}));var Dw="libp2p-peer-record",Pw=Uint8Array.from([3,1]);var Xt=class{constructor(t){this.domain=Xt.DOMAIN,this.codec=Xt.CODEC;let{peerId:e,multiaddrs:n,seqNumber:i}=t;this.peerId=e,this.multiaddrs=n??[],this.seqNumber=i??BigInt(Date.now())}marshal(){return this.marshaled==null&&(this.marshaled=ds.encode({peerId:this.peerId.toBytes(),seq:BigInt(this.seqNumber),addresses:this.multiaddrs.map(t=>({multiaddr:t.bytes}))})),this.marshaled}equals(t){return!(!(t instanceof Xt)||!this.peerId.equals(t.peerId)||this.seqNumber!==t.seqNumber||!Cw(this.multiaddrs,t.multiaddrs))}};Xt.createFromProtobuf=r=>{let t=ds.decode(r),e=rn(t.peerId),n=(t.addresses??[]).map(o=>j(o.multiaddr)),i=t.seq;return new Xt({peerId:e,multiaddrs:n,seqNumber:i})};Xt.DOMAIN=Dw;Xt.CODEC=Pw;var wc="0.0.0",Lw="libp2p";var Wf=`js-libp2p/${wc}`;var Bw="0.1.0",Nw="id",Ow="id/push",kw="1.0.0",Mw="1.0.0";var ps=I(Nr(),1);var ms=I(lr(),1),vt=N("libp2p:identify"),Uw=1024*8,oo=class{constructor(t,e){this.components=t,this.started=!1,this.init=e,this.identifyProtocolStr=`/${e.protocolPrefix}/${Nw}/${kw}`,this.identifyPushProtocolStr=`/${e.protocolPrefix}/${Ow}/${Mw}`,this.host={protocolVersion:`${e.protocolPrefix}/${Bw}`,...e.host},this.components.connectionManager.addEventListener("peer:connect",n=>{let i=n.detail;this.identify(i).catch(vt.error)}),this.components.peerStore.addEventListener("change:multiaddrs",n=>{let{peerId:i}=n.detail;this.components.peerId.equals(i)&&this.pushToPeerStore().catch(o=>vt.error(o))}),this.components.peerStore.addEventListener("change:protocols",n=>{let{peerId:i}=n.detail;this.components.peerId.equals(i)&&this.pushToPeerStore().catch(o=>vt.error(o))})}isStarted(){return this.started}async start(){this.started||(await this.components.peerStore.metadataBook.setValue(this.components.peerId,"AgentVersion",U(this.host.agentVersion)),await this.components.peerStore.metadataBook.setValue(this.components.peerId,"ProtocolVersion",U(this.host.protocolVersion)),await this.components.registrar.handle(this.identifyProtocolStr,t=>{this._handleIdentify(t).catch(e=>{vt.error(e)})},{maxInboundStreams:this.init.maxInboundStreams,maxOutboundStreams:this.init.maxOutboundStreams}),await this.components.registrar.handle(this.identifyPushProtocolStr,t=>{this._handlePush(t).catch(e=>{vt.error(e)})},{maxInboundStreams:this.init.maxPushIncomingStreams,maxOutboundStreams:this.init.maxPushOutgoingStreams}),this.started=!0)}async stop(){await this.components.registrar.unhandle(this.identifyProtocolStr),await this.components.registrar.unhandle(this.identifyPushProtocolStr),this.started=!1}async push(t){let e=await this.components.peerStore.addressBook.getRawEnvelope(this.components.peerId),n=this.components.addressManager.getAddresses().map(s=>s.bytes),i=await this.components.peerStore.protoBook.get(this.components.peerId),o=t.map(async s=>{let a,c=new ps.TimeoutController(this.init.timeout);try{(0,ms.setMaxListeners)?.(1/0,c.signal)}catch{}try{a=await s.newStream([this.identifyPushProtocolStr],{signal:c.signal}),await Re(a,c.signal).sink(Lt([ui.encode({listenAddrs:n,signedPeerRecord:e,protocols:i})],Me()))}catch(l){vt.error("could not push identify update to peer",l)}finally{a?.close(),c.clear()}});await Promise.all(o)}async pushToPeerStore(){if(!this.isStarted())return;let t=[];for(let e of this.components.connectionManager.getConnections()){let n=e.remotePeer;(await this.components.peerStore.get(n)).protocols.includes(this.identifyPushProtocolStr)&&t.push(e)}await this.push(t)}async _identify(t,e={}){let n,i=e.signal,o;if(i==null){n=new ps.TimeoutController(this.init.timeout),i=n.signal;try{(0,ms.setMaxListeners)?.(1/0,n.signal)}catch{}}try{o=await t.newStream([this.identifyProtocolStr],{signal:i});let s=Re(o,i),a=await Lt([],s,Te({maxDataLength:this.init.maxIdentifyMessageSize??Uw}),async c=>await Se(c));if(a==null)throw(0,fi.default)(new Error("No data could be retrieved"),b.ERR_CONNECTION_ENDED);try{return ui.decode(a)}catch(c){throw(0,fi.default)(c,b.ERR_INVALID_MESSAGE)}}finally{n?.clear(),o?.close()}}async identify(t,e={}){let n=await this._identify(t,e),{publicKey:i,listenAddrs:o,protocols:s,observedAddr:a,signedPeerRecord:c,agentVersion:l,protocolVersion:u}=n;if(i==null)throw(0,fi.default)(new Error("public key was missing from identify message"),b.ERR_MISSING_PUBLIC_KEY);let f=await nn(i);if(!t.remotePeer.equals(f))throw(0,fi.default)(new Error("identified peer does not match the expected peer"),b.ERR_INVALID_PEER);if(this.components.peerId.equals(f))throw(0,fi.default)(new Error("identified peer is our own peer id?"),b.ERR_INVALID_PEER);let d=oo.getCleanMultiaddr(a);if(c!=null){vt("received signed peer record from %p",f);try{let h=await re.openAndCertify(c,Xt.DOMAIN);if(!h.peerId.equals(f))throw(0,fi.default)(new Error("identified peer does not match the expected peer"),b.ERR_INVALID_PEER);if(await this.components.peerStore.addressBook.consumePeerRecord(h)){await this.components.peerStore.protoBook.set(f,s),l!=null&&await this.components.peerStore.metadataBook.setValue(f,"AgentVersion",U(l)),u!=null&&await this.components.peerStore.metadataBook.setValue(f,"ProtocolVersion",U(u)),vt("identify completed for peer %p and protocols %o",f,s);return}}catch(h){vt("received invalid envelope, discard it and fallback to listenAddrs is available",h)}}else vt("no signed peer record received from %p",f);vt("falling back to legacy addresses from %p",f);try{await this.components.peerStore.addressBook.set(f,o.map(h=>j(h)))}catch(h){vt.error("received invalid addrs",h)}await this.components.peerStore.protoBook.set(f,s),l!=null&&await this.components.peerStore.metadataBook.setValue(f,"AgentVersion",U(l)),u!=null&&await this.components.peerStore.metadataBook.setValue(f,"ProtocolVersion",U(u)),vt("identify completed for peer %p and protocols %o",f,s),vt("received observed address of %s",d?.toString())}async _handleIdentify(t){let{connection:e,stream:n}=t,i=new ps.TimeoutController(this.init.timeout);try{(0,ms.setMaxListeners)?.(1/0,i.signal)}catch{}try{let o=this.components.peerId.publicKey??new Uint8Array(0),s=await this.components.peerStore.get(this.components.peerId),a=this.components.addressManager.getAddresses().map(d=>d.decapsulateCode(mt("p2p").code)),c=s.peerRecordEnvelope;if(a.length>0&&c==null){let d=new Xt({peerId:this.components.peerId,multiaddrs:a}),h=await re.seal(d,this.components.peerId);await this.components.peerStore.addressBook.consumePeerRecord(h),c=h.marshal().subarray()}let l=ui.encode({protocolVersion:this.host.protocolVersion,agentVersion:this.host.agentVersion,publicKey:o,listenAddrs:a.map(d=>d.bytes),signedPeerRecord:c,observedAddr:e.remoteAddr.bytes,protocols:s.protocols}),u=Re(n,i.signal),f=Lt([l],Me());await u.sink(f)}catch(o){vt.error("could not respond to identify request",o)}finally{n.close(),i.clear()}}async _handlePush(t){let{connection:e,stream:n}=t,i=new ps.TimeoutController(this.init.timeout);try{(0,ms.setMaxListeners)?.(1/0,i.signal)}catch{}let o;try{let a=Re(n,i.signal),c=await Lt([],a,Te({maxDataLength:this.init.maxIdentifyMessageSize??Uw}),async l=>await Se(l));c!=null&&(o=ui.decode(c))}catch(a){return vt.error("received invalid message",a)}finally{n.close(),i.clear()}if(o==null)return vt.error("received invalid message");let s=e.remotePeer;if(this.components.peerId.equals(s)){vt("received push from ourselves?");return}if(vt("received push from %p",s),o.signedPeerRecord!=null){vt("received signedPeerRecord in push");try{let a=await re.openAndCertify(o.signedPeerRecord,Xt.DOMAIN);if(await this.components.peerStore.addressBook.consumePeerRecord(a)){vt("consumed signedPeerRecord sent in push"),await this.components.peerStore.protoBook.set(s,o.protocols);return}else vt("failed to consume signedPeerRecord sent in push")}catch(a){vt("received invalid envelope, discard it and fallback to listenAddrs is available",a)}}else vt("did not receive signedPeerRecord in push");try{await this.components.peerStore.addressBook.set(s,o.listenAddrs.map(a=>j(a)))}catch(a){vt.error("received invalid addrs",a)}try{await this.components.peerStore.protoBook.set(s,o.protocols)}catch(a){vt.error("received invalid protocols",a)}vt("handled push from %p",s)}static getCleanMultiaddr(t){if(t!=null&&t.length>0)try{return j(t)}catch{}}};var so=I(W(),1);var ys;(function(r){let t;r.codec=()=>(t==null&&(t=St((e,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),(i.writeDefaults===!0||e.identifier!=="")&&(n.uint32(10),n.string(e.identifier)),i.lengthDelimited!==!1&&n.ldelim()},(e,n)=>{let i={identifier:""},o=n==null?e.len:e.pos+n;for(;e.pos<o;){let s=e.uint32();switch(s>>>3){case 1:i.identifier=e.string();break;default:e.skipType(s&7);break}}return i})),t),r.encode=e=>_t(e,r.codec()),r.decode=e=>bt(e,r.codec())})(ys||(ys={}));var nr;(function(r){let t;(function(i){i.OK="OK",i.NOT_FOUND="NOT_FOUND",i.ERROR="ERROR"})(t=r.StatusCode||(r.StatusCode={}));let e;(function(i){i[i.OK=0]="OK",i[i.NOT_FOUND=1]="NOT_FOUND",i[i.ERROR=2]="ERROR"})(e||(e={})),function(i){i.codec=()=>ln(e)}(t=r.StatusCode||(r.StatusCode={}));let n;r.codec=()=>(n==null&&(n=St((i,o,s={})=>{s.lengthDelimited!==!1&&o.fork(),(s.writeDefaults===!0||i.status!=null&&e[i.status]!==0)&&(o.uint32(8),r.StatusCode.codec().encode(i.status,o)),(s.writeDefaults===!0||i.data!=null&&i.data.byteLength>0)&&(o.uint32(18),o.bytes(i.data)),s.lengthDelimited!==!1&&o.ldelim()},(i,o)=>{let s={status:t.OK,data:new Uint8Array(0)},a=o==null?i.len:i.pos+o;for(;i.pos<a;){let c=i.uint32();switch(c>>>3){case 1:s.status=r.StatusCode.codec().decode(i);break;case 2:s.data=i.bytes();break;default:i.skipType(c&7);break}}return s})),n),r.encode=i=>_t(i,r.codec()),r.decode=i=>bt(i,r.codec())})(nr||(nr={}));var Fw="0.0.1",Kw="fetch";var Vw=I(Nr(),1),qw=I(lr(),1);var He=N("libp2p:fetch"),Ec=class{constructor(t,e){this.started=!1,this.components=t,this.protocol=`/${e.protocolPrefix??"libp2p"}/${Kw}/${Fw}`,this.lookupFunctions=new Map,this.handleMessage=this.handleMessage.bind(this),this.init=e}async start(){await this.components.registrar.handle(this.protocol,t=>{this.handleMessage(t).catch(e=>{He.error(e)}).finally(()=>{t.stream.close()})},{maxInboundStreams:this.init.maxInboundStreams,maxOutboundStreams:this.init.maxOutboundStreams}),this.started=!0}async stop(){await this.components.registrar.unhandle(this.protocol),this.started=!1}isStarted(){return this.started}async fetch(t,e,n={}){He("dialing %s to %p",this.protocol,t);let i=await this.components.connectionManager.openConnection(t,n),o,s=n.signal,a;if(s==null){He("using default timeout of %d ms",this.init.timeout),o=new Vw.TimeoutController(this.init.timeout),s=o.signal;try{(0,qw.setMaxListeners)?.(1/0,o.signal)}catch{}}try{a=await i.newStream(this.protocol,{signal:s});let c=Re(a,s);return He("fetch %s",e),await Lt([ys.encode({identifier:e})],Me(),c,Te(),async function(u){let f=await Se(u);if(f==null)throw(0,so.default)(new Error("No data received"),b.ERR_INVALID_MESSAGE);let d=nr.decode(f);switch(d.status){case nr.StatusCode.OK:return He("received status for %s ok",e),d.data;case nr.StatusCode.NOT_FOUND:return He("received status for %s not found",e),null;case nr.StatusCode.ERROR:{He("received status for %s error",e);let h=H(d.data);throw(0,so.default)(new Error("Error in fetch protocol response: "+h),b.ERR_INVALID_PARAMETERS)}default:throw He("received status for %s unknown",e),(0,so.default)(new Error("Unknown response status"),b.ERR_INVALID_MESSAGE)}})??null}finally{o?.clear(),a?.close()}}async handleMessage(t){let{stream:e}=t,n=this;await Lt(e,Te(),async function*(i){let o=await Se(i);if(o==null)throw(0,so.default)(new Error("No data received"),b.ERR_INVALID_MESSAGE);let s=ys.decode(o),a,c=n._getLookupFunction(s.identifier);if(c!=null){He("look up data with identifier %s",s.identifier);let l=await c(s.identifier);l!=null?(He("sending status for %s ok",s.identifier),a={status:nr.StatusCode.OK,data:l}):(He("sending status for %s not found",s.identifier),a={status:nr.StatusCode.NOT_FOUND,data:new Uint8Array(0)})}else{He("sending status for %s error",s.identifier);let l=U(`No lookup function registered for key: ${s.identifier}`);a={status:nr.StatusCode.ERROR,data:l}}yield nr.encode(a)},Me(),e)}_getLookupFunction(t){for(let e of this.lookupFunctions.keys())if(t.startsWith(e))return this.lookupFunctions.get(e)}registerLookupFunction(t,e){if(this.lookupFunctions.has(t))throw(0,so.default)(new Error("Fetch protocol handler for key prefix '"+t+"' already registered"),b.ERR_KEY_ALREADY_EXISTS);this.lookupFunctions.set(t,e)}unregisterLookupFunction(t,e){e!=null&&this.lookupFunctions.get(t)!==e||this.lookupFunctions.delete(t)}};var Gw=I(W(),1);var Hw="1.0.0",$w="ping";var Yw=I(Nr(),1),Ww=I(lr(),1),zw=N("libp2p:ping"),xc=class{constructor(t,e){this.components=t,this.started=!1,this.protocol=`/${e.protocolPrefix}/${$w}/${Hw}`,this.init=e}async start(){await this.components.registrar.handle(this.protocol,this.handleMessage,{maxInboundStreams:this.init.maxInboundStreams,maxOutboundStreams:this.init.maxOutboundStreams}),this.started=!0}async stop(){await this.components.registrar.unhandle(this.protocol),this.started=!1}isStarted(){return this.started}handleMessage(t){let{stream:e}=t;Lt(e,e).catch(n=>{zw.error(n)})}async ping(t,e={}){zw("dialing %s to %p",this.protocol,t);let n=Date.now(),i=Hr(32),o=await this.components.connectionManager.openConnection(t,e),s,a=e.signal,c;if(a==null){s=new Yw.TimeoutController(this.init.timeout),a=s.signal;try{(0,Ww.setMaxListeners)?.(1/0,s.signal)}catch{}}try{c=await o.newStream([this.protocol],{signal:a});let l=Re(c,a),u=await Lt([i],l,async d=>await Se(d)),f=Date.now();if(u==null||!xt(i,u.subarray()))throw(0,Gw.default)(new Error("Received wrong ping ack"),b.ERR_WRONG_PING_ACK);return f-n}finally{s?.clear(),c?.close()}}};async function Qw(){throw new Error("Not supported in browsers")}var Jw=I(Zw(),1),Qf=typeof window=="object"&&typeof document=="object"&&document.nodeType===9,vc=(0,Jw.default)(),gs=Qf&&!vc,jw=vc&&!Qf,tE=vc&&Qf,eE=typeof globalThis.process<"u"&&typeof globalThis.process.release<"u"&&globalThis.process.release.name==="node"&&!vc,rE=typeof importScripts=="function"&&typeof self<"u"&&typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope,AO=typeof globalThis.process<"u"&&typeof globalThis.process.env<"u"&&globalThis.process.env["NODE"+(()=>"_")()+"ENV"]==="test",nE=typeof navigator<"u"&&navigator.product==="ReactNative";var sE=I(W(),1);function iE(r){return/^127\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/i.test(r)||/^::1$/.test(r)}function oE(r){let{address:t}=r.nodeAddress();return iE(t)}var Xf=N("libp2p:nat"),Zf=7200;function cR(r=1024,t=65535){return Math.floor(Math.random()*(t-r+1)+r)}var bc=class{constructor(t,e){if(this.components=t,this.started=!1,this.enabled=e.enabled,this.externalAddress=e.externalAddress,this.localAddress=e.localAddress,this.description=e.description??`${Lw}@${wc} ${this.components.peerId.toString()}`,this.ttl=e.ttl??Zf,this.keepAlive=e.keepAlive??!0,this.gateway=e.gateway,this.ttl<Zf)throw(0,sE.default)(new Error(`NatManager ttl should be at least ${Zf} seconds`),b.ERR_INVALID_PARAMETERS)}isStarted(){return this.started}start(){}afterStart(){gs||!this.enabled||this.started||(this.started=!0,this._start().catch(t=>{Xf.error(t)}))}async _start(){let t=this.components.transportManager.getAddrs();for(let e of t){let{family:n,host:i,port:o,transport:s}=e.toOptions();if(!e.isThinWaistAddress()||s!=="tcp"||oE(e)||n!==4)continue;let a=await this._getClient(),c=this.externalAddress??await a.externalIp(),l=Ca(c);if(l===!0)throw new Error(`${c} is private - please set config.nat.externalIp to an externally routable IP or ensure you are not behind a double NAT`);if(l==null)throw new Error(`${c} is not an IP address`);let u=cR();Xf(`opening uPnP connection from ${c}:${u} to ${i}:${o}`),await a.map({publicPort:u,localPort:o,localAddress:this.localAddress,protocol:s.toUpperCase()==="TCP"?"TCP":"UDP"}),this.components.addressManager.addObservedAddr(kd({family:4,address:c,port:u},s))}}async _getClient(){return this.client!=null?this.client:(this.client=await Qw({description:this.description,ttl:this.ttl,keepAlive:this.keepAlive,gateway:this.gateway}),this.client)}async stop(){if(!(gs||this.client==null))try{await this.client.close(),this.client=void 0}catch(t){Xf.error(t)}}};var lR=N("libp2p:peer-record-updater"),_c=class{constructor(t){this.components=t,this.started=!1,this.update=this.update.bind(this)}isStarted(){return this.started}async start(){this.started=!0,this.components.transportManager.addEventListener("listener:listening",this.update),this.components.transportManager.addEventListener("listener:close",this.update),this.components.addressManager.addEventListener("change:addresses",this.update)}async stop(){this.started=!1,this.components.transportManager.removeEventListener("listener:listening",this.update),this.components.transportManager.removeEventListener("listener:close",this.update),this.components.addressManager.removeEventListener("change:addresses",this.update)}update(){Promise.resolve().then(async()=>{let t=new Xt({peerId:this.components.peerId,multiaddrs:this.components.addressManager.getAddresses().map(n=>n.decapsulateCode(mt("p2p").code))}),e=await re.seal(t,this.components.peerId);await this.components.peerStore.addressBook.consumePeerRecord(e)}).catch(t=>{lR.error("Could not update self peer record: %o",t)})}};var aE=I(W(),1);var Sc=class{constructor(t){this.dht=t}async findPeer(t,e={}){for await(let n of this.dht.findPeer(t,e))if(n.name==="FINAL_PEER")return n.peer;throw(0,aE.default)(new Error(X.NOT_FOUND),b.ERR_NOT_FOUND)}async*getClosestPeers(t,e={}){for await(let n of this.dht.getClosestPeers(t,e))n.name==="FINAL_PEER"&&(yield n.peer)}};var Rc=I(W(),1);var Q={ERR_INVALID_PARAMETERS:"ERR_INVALID_PARAMETERS",ERR_NOT_FOUND:"ERR_NOT_FOUND"};async function*Jf(r,t){for await(let e of r)await t(e),yield e}var Et=N("libp2p:peer-store:address-book"),Ac="change:multiaddrs";async function uR(){return!0}var Ic=class{constructor(t,e,n){this.dispatchEvent=t,this.store=e,this.addressFilter=n??uR}async consumePeerRecord(t){Et.trace("consumePeerRecord await write lock");let e=await this.store.lock.writeLock();Et.trace("consumePeerRecord got write lock");let n,i,o;try{let s;try{s=Xt.createFromProtobuf(t.payload)}catch{return Et.error("invalid peer record received"),!1}n=s.peerId;let a=s.multiaddrs;if(!n.equals(t.peerId))return Et("signing key does not match PeerId in the PeerRecord"),!1;if(a==null||a.length===0)return!1;if(await this.store.has(n)&&(i=await this.store.load(n),i.peerRecordEnvelope!=null)){let l=await re.createFromProtobuf(i.peerRecordEnvelope),u=Xt.createFromProtobuf(l.payload);if(u.seqNumber>=s.seqNumber)return Et("sequence number was lower or equal to existing sequence number - stored: %d received: %d",u.seqNumber,s.seqNumber),!1}let c=await jf(n,a,this.addressFilter,!0);o=await this.store.patchOrCreate(n,{addresses:c,peerRecordEnvelope:t.marshal().subarray()}),Et("stored provided peer record for %p",s.peerId)}finally{Et.trace("consumePeerRecord release write lock"),e()}return this.dispatchEvent(new q(Ac,{detail:{peerId:n,multiaddrs:o.addresses.map(({multiaddr:s})=>s),oldMultiaddrs:i==null?[]:i.addresses.map(({multiaddr:s})=>s)}})),!0}async getRawEnvelope(t){Et.trace("getRawEnvelope await read lock");let e=await this.store.lock.readLock();Et.trace("getRawEnvelope got read lock");try{return(await this.store.load(t)).peerRecordEnvelope}catch(n){if(n.code!==Q.ERR_NOT_FOUND)throw n}finally{Et.trace("getRawEnvelope release read lock"),e()}}async getPeerRecord(t){let e=await this.getRawEnvelope(t);if(e!=null)return await re.createFromProtobuf(e)}async get(t){t=Ht(t),Et.trace("get wait for read lock");let e=await this.store.lock.readLock();Et.trace("get got read lock");try{return(await this.store.load(t)).addresses}catch(n){if(n.code!==Q.ERR_NOT_FOUND)throw n}finally{Et.trace("get release read lock"),e()}return[]}async set(t,e){if(t=Ht(t),!Array.isArray(e))throw Et.error("multiaddrs must be an array of Multiaddrs"),(0,Rc.default)(new Error("multiaddrs must be an array of Multiaddrs"),Q.ERR_INVALID_PARAMETERS);Et.trace("set await write lock");let n=await this.store.lock.writeLock();Et.trace("set got write lock");let i=!1,o,s;try{let a=await jf(t,e,this.addressFilter);if(a.length===0)return;try{if(o=await this.store.load(t),i=!0,new Set([...a.map(({multiaddr:c})=>c.toString()),...o.addresses.map(({multiaddr:c})=>c.toString())]).size===o.addresses.length&&a.length===o.addresses.length)return}catch(c){if(c.code!==Q.ERR_NOT_FOUND)throw c}s=await this.store.patchOrCreate(t,{addresses:a}),Et("set multiaddrs for %p",t)}finally{Et.trace("set multiaddrs for %p",t),Et("set release write lock"),n()}this.dispatchEvent(new q(Ac,{detail:{peerId:t,multiaddrs:s.addresses.map(a=>a.multiaddr),oldMultiaddrs:o==null?[]:o.addresses.map(({multiaddr:a})=>a)}})),i||this.dispatchEvent(new q("peer",{detail:{id:t,multiaddrs:s.addresses.map(a=>a.multiaddr),protocols:s.protocols}}))}async add(t,e){if(t=Ht(t),!Array.isArray(e))throw Et.error("multiaddrs must be an array of Multiaddrs"),(0,Rc.default)(new Error("multiaddrs must be an array of Multiaddrs"),Q.ERR_INVALID_PARAMETERS);Et.trace("add await write lock");let n=await this.store.lock.writeLock();Et.trace("add got write lock");let i,o,s;try{let a=await jf(t,e,this.addressFilter);if(a.length===0)return;try{if(o=await this.store.load(t),i=!0,new Set([...a.map(({multiaddr:c})=>c.toString()),...o.addresses.map(({multiaddr:c})=>c.toString())]).size===o.addresses.length)return}catch(c){if(c.code!==Q.ERR_NOT_FOUND)throw c}s=await this.store.mergeOrCreate(t,{addresses:a}),Et("added multiaddrs for %p",t)}finally{Et.trace("set release write lock"),n()}this.dispatchEvent(new q(Ac,{detail:{peerId:t,multiaddrs:s.addresses.map(a=>a.multiaddr),oldMultiaddrs:o==null?[]:o.addresses.map(({multiaddr:a})=>a)}})),i===!0&&this.dispatchEvent(new q("peer",{detail:{id:t,multiaddrs:s.addresses.map(a=>a.multiaddr),protocols:s.protocols}}))}async delete(t){t=Ht(t),Et.trace("delete await write lock");let e=await this.store.lock.writeLock();Et.trace("delete got write lock");let n;try{try{n=await this.store.load(t)}catch(i){if(i.code!==Q.ERR_NOT_FOUND)throw i}await this.store.patchOrCreate(t,{addresses:[]})}finally{Et.trace("delete release write lock"),e()}n!=null&&this.dispatchEvent(new q(Ac,{detail:{peerId:t,multiaddrs:[],oldMultiaddrs:n==null?[]:n.addresses.map(({multiaddr:i})=>i)}}))}};async function jf(r,t,e,n=!1){return await Lt(t,i=>Jf(i,o=>{if(!_e(o))throw Et.error("multiaddr must be an instance of Multiaddr"),(0,Rc.default)(new Error("multiaddr must be an instance of Multiaddr"),Q.ERR_INVALID_PARAMETERS)}),i=>ye(i,async o=>await e(r,o)),i=>wo(i,o=>({multiaddr:o,isCertified:n})),async i=>await Lr(i))}var lE=I(W(),1);var Sr=N("libp2p:peer-store:key-book"),cE="change:pubkey",Tc=class{constructor(t,e){this.dispatchEvent=t,this.store=e}async set(t,e){if(t=Ht(t),!(e instanceof Uint8Array))throw Sr.error("publicKey must be an instance of Uint8Array to store data"),(0,lE.default)(new Error("publicKey must be an instance of PublicKey"),Q.ERR_INVALID_PARAMETERS);Sr.trace("set await write lock");let n=await this.store.lock.writeLock();Sr.trace("set got write lock");let i=!1,o;try{try{if(o=await this.store.load(t),o.pubKey!=null&&xt(o.pubKey,e))return}catch(s){if(s.code!==Q.ERR_NOT_FOUND)throw s}await this.store.patchOrCreate(t,{pubKey:e}),i=!0}finally{Sr.trace("set release write lock"),n()}i&&this.dispatchEvent(new q(cE,{detail:{peerId:t,publicKey:e,oldPublicKey:o?.pubKey}}))}async get(t){t=Ht(t),Sr.trace("get await write lock");let e=await this.store.lock.readLock();Sr.trace("get got write lock");try{return(await this.store.load(t)).pubKey}catch(n){if(n.code!==Q.ERR_NOT_FOUND)throw n}finally{Sr("get release write lock"),e()}}async delete(t){t=Ht(t),Sr.trace("delete await write lock");let e=await this.store.lock.writeLock();Sr.trace("delete got write lock");let n;try{try{n=await this.store.load(t)}catch(i){if(i.code!==Q.ERR_NOT_FOUND)throw i}await this.store.patchOrCreate(t,{pubKey:void 0})}catch(i){if(i.code!==Q.ERR_NOT_FOUND)throw i}finally{Sr.trace("delete release write lock"),e()}this.dispatchEvent(new q(cE,{detail:{peerId:t,publicKey:void 0,oldPublicKey:n?.pubKey}}))}};var th=I(W(),1);var Zt=N("libp2p:peer-store:metadata-book"),Cc="change:metadata",Dc=class{constructor(t,e){this.dispatchEvent=t,this.store=e}async get(t){t=Ht(t),Zt.trace("get await read lock");let e=await this.store.lock.readLock();Zt.trace("get got read lock");try{return(await this.store.load(t)).metadata}catch(n){if(n.code!==Q.ERR_NOT_FOUND)throw n}finally{Zt.trace("get release read lock"),e()}return new Map}async getValue(t,e){t=Ht(t),Zt.trace("getValue await read lock");let n=await this.store.lock.readLock();Zt.trace("getValue got read lock");try{return(await this.store.load(t)).metadata.get(e)}catch(i){if(i.code!==Q.ERR_NOT_FOUND)throw i}finally{Zt.trace("getValue release write lock"),n()}}async set(t,e){if(t=Ht(t),!(e instanceof Map))throw Zt.error("valid metadata must be provided to store data"),(0,th.default)(new Error("valid metadata must be provided"),Q.ERR_INVALID_PARAMETERS);Zt.trace("set await write lock");let n=await this.store.lock.writeLock();Zt.trace("set got write lock");let i;try{try{i=await this.store.load(t)}catch(o){if(o.code!==Q.ERR_NOT_FOUND)throw o}await this.store.mergeOrCreate(t,{metadata:e})}finally{Zt.trace("set release write lock"),n()}this.dispatchEvent(new q(Cc,{detail:{peerId:t,metadata:e,oldMetadata:i==null?new Map:i.metadata}}))}async setValue(t,e,n){if(t=Ht(t),typeof e!="string"||!(n instanceof Uint8Array))throw Zt.error("valid key and value must be provided to store data"),(0,th.default)(new Error("valid key and value must be provided"),Q.ERR_INVALID_PARAMETERS);Zt.trace("setValue await write lock");let i=await this.store.lock.writeLock();Zt.trace("setValue got write lock");let o,s;try{try{o=await this.store.load(t);let a=o.metadata.get(e);if(a!=null&&xt(n,a))return}catch(a){if(a.code!==Q.ERR_NOT_FOUND)throw a}s=await this.store.mergeOrCreate(t,{metadata:new Map([[e,n]])})}finally{Zt.trace("setValue release write lock"),i()}this.dispatchEvent(new q(Cc,{detail:{peerId:t,metadata:s.metadata,oldMetadata:o==null?new Map:o.metadata}}))}async delete(t){t=Ht(t),Zt.trace("delete await write lock");let e=await this.store.lock.writeLock();Zt.trace("delete got write lock");let n;try{try{n=await this.store.load(t)}catch(i){if(i.code!==Q.ERR_NOT_FOUND)throw i}n!=null&&await this.store.patch(t,{metadata:new Map})}finally{Zt.trace("delete release write lock"),e()}n!=null&&this.dispatchEvent(new q(Cc,{detail:{peerId:t,metadata:new Map,oldMetadata:n.metadata}}))}async deleteValue(t,e){t=Ht(t),Zt.trace("deleteValue await write lock");let n=await this.store.lock.writeLock();Zt.trace("deleteValue got write lock");let i,o;try{o=await this.store.load(t),i=o.metadata,i.delete(e),await this.store.patch(t,{metadata:i})}catch(s){if(s.code!==Q.ERR_NOT_FOUND)throw s}finally{Zt.trace("deleteValue release write lock"),n()}i!=null&&this.dispatchEvent(new q(Cc,{detail:{peerId:t,metadata:i,oldMetadata:o==null?new Map:o.metadata}}))}};var Lc=I(W(),1);var Jt=N("libp2p:peer-store:proto-book"),Pc="change:protocols",Bc=class{constructor(t,e){this.dispatchEvent=t,this.store=e}async get(t){Jt.trace("get wait for read lock");let e=await this.store.lock.readLock();Jt.trace("get got read lock");try{return(await this.store.load(t)).protocols}catch(n){if(n.code!==Q.ERR_NOT_FOUND)throw n}finally{Jt.trace("get release read lock"),e()}return[]}async set(t,e){if(t=Ht(t),!Array.isArray(e))throw Jt.error("protocols must be provided to store data"),(0,Lc.default)(new Error("protocols must be provided"),Q.ERR_INVALID_PARAMETERS);Jt.trace("set await write lock");let n=await this.store.lock.writeLock();Jt.trace("set got write lock");let i,o;try{try{if(i=await this.store.load(t),new Set([...e]).size===i.protocols.length)return}catch(s){if(s.code!==Q.ERR_NOT_FOUND)throw s}o=await this.store.patchOrCreate(t,{protocols:e}),Jt("stored provided protocols for %p",t)}finally{Jt.trace("set release write lock"),n()}this.dispatchEvent(new q(Pc,{detail:{peerId:t,protocols:o.protocols,oldProtocols:i==null?[]:i.protocols}}))}async add(t,e){if(t=Ht(t),!Array.isArray(e))throw Jt.error("protocols must be provided to store data"),(0,Lc.default)(new Error("protocols must be provided"),Q.ERR_INVALID_PARAMETERS);Jt.trace("add await write lock");let n=await this.store.lock.writeLock();Jt.trace("add got write lock");let i,o;try{try{if(i=await this.store.load(t),new Set([...i.protocols,...e]).size===i.protocols.length)return}catch(s){if(s.code!==Q.ERR_NOT_FOUND)throw s}o=await this.store.mergeOrCreate(t,{protocols:e}),Jt("added provided protocols for %p",t)}finally{Jt.trace("add release write lock"),n()}this.dispatchEvent(new q(Pc,{detail:{peerId:t,protocols:o.protocols,oldProtocols:i==null?[]:i.protocols}}))}async remove(t,e){if(t=Ht(t),!Array.isArray(e))throw Jt.error("protocols must be provided to store data"),(0,Lc.default)(new Error("protocols must be provided"),Q.ERR_INVALID_PARAMETERS);Jt.trace("remove await write lock");let n=await this.store.lock.writeLock();Jt.trace("remove got write lock");let i,o;try{try{i=await this.store.load(t);let s=new Set(i.protocols);for(let a of e)s.delete(a);if(i.protocols.length===s.size)return;e=Array.from(s)}catch(s){if(s.code!==Q.ERR_NOT_FOUND)throw s}o=await this.store.patchOrCreate(t,{protocols:e})}finally{Jt.trace("remove release write lock"),n()}this.dispatchEvent(new q(Pc,{detail:{peerId:t,protocols:o.protocols,oldProtocols:i==null?[]:i.protocols}}))}async delete(t){t=Ht(t),Jt.trace("delete await write lock");let e=await this.store.lock.writeLock();Jt.trace("delete got write lock");let n;try{try{n=await this.store.load(t)}catch(i){if(i.code!==Q.ERR_NOT_FOUND)throw i}await this.store.patchOrCreate(t,{protocols:[]})}finally{Jt.trace("delete release write lock"),e()}n!=null&&this.dispatchEvent(new q(Pc,{detail:{peerId:t,protocols:[],oldProtocols:n.protocols}}))}};var Eh=I(W(),1);var ws;(function(r){let t;r.codec=()=>(t==null&&(t=St((e,n,i={})=>{if(i.lengthDelimited!==!1&&n.fork(),e.addresses!=null)for(let o of e.addresses)n.uint32(10),Nc.codec().encode(o,n,{writeDefaults:!0});if(e.protocols!=null)for(let o of e.protocols)n.uint32(18),n.string(o);if(e.metadata!=null)for(let o of e.metadata)n.uint32(26),Oc.codec().encode(o,n,{writeDefaults:!0});e.pubKey!=null&&(n.uint32(34),n.bytes(e.pubKey)),e.peerRecordEnvelope!=null&&(n.uint32(42),n.bytes(e.peerRecordEnvelope)),i.lengthDelimited!==!1&&n.ldelim()},(e,n)=>{let i={addresses:[],protocols:[],metadata:[]},o=n==null?e.len:e.pos+n;for(;e.pos<o;){let s=e.uint32();switch(s>>>3){case 1:i.addresses.push(Nc.codec().decode(e,e.uint32()));break;case 2:i.protocols.push(e.string());break;case 3:i.metadata.push(Oc.codec().decode(e,e.uint32()));break;case 4:i.pubKey=e.bytes();break;case 5:i.peerRecordEnvelope=e.bytes();break;default:e.skipType(s&7);break}}return i})),t),r.encode=e=>_t(e,r.codec()),r.decode=e=>bt(e,r.codec())})(ws||(ws={}));var Nc;(function(r){let t;r.codec=()=>(t==null&&(t=St((e,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),(i.writeDefaults===!0||e.multiaddr!=null&&e.multiaddr.byteLength>0)&&(n.uint32(10),n.bytes(e.multiaddr)),e.isCertified!=null&&(n.uint32(16),n.bool(e.isCertified)),i.lengthDelimited!==!1&&n.ldelim()},(e,n)=>{let i={multiaddr:new Uint8Array(0)},o=n==null?e.len:e.pos+n;for(;e.pos<o;){let s=e.uint32();switch(s>>>3){case 1:i.multiaddr=e.bytes();break;case 2:i.isCertified=e.bool();break;default:e.skipType(s&7);break}}return i})),t),r.encode=e=>_t(e,r.codec()),r.decode=e=>bt(e,r.codec())})(Nc||(Nc={}));var Oc;(function(r){let t;r.codec=()=>(t==null&&(t=St((e,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),(i.writeDefaults===!0||e.key!=="")&&(n.uint32(10),n.string(e.key)),(i.writeDefaults===!0||e.value!=null&&e.value.byteLength>0)&&(n.uint32(18),n.bytes(e.value)),i.lengthDelimited!==!1&&n.ldelim()},(e,n)=>{let i={key:"",value:new Uint8Array(0)},o=n==null?e.len:e.pos+n;for(;e.pos<o;){let s=e.uint32();switch(s>>>3){case 1:i.key=e.string();break;case 2:i.value=e.bytes();break;default:e.skipType(s&7);break}}return i})),t),r.encode=e=>_t(e,r.codec()),r.decode=e=>bt(e,r.codec())})(Oc||(Oc={}));var xE=I(fE(),1);var xs=class extends Error{constructor(t){super(t),this.name="TimeoutError"}},rh=class extends Error{constructor(t){super(),this.name="AbortError",this.message=t}},hE=r=>globalThis.DOMException===void 0?new rh(r):new DOMException(r),dE=r=>{let t=r.reason===void 0?hE("This operation was aborted."):r.reason;return t instanceof Error?t:hE(t)};function nh(r,t,e,n){let i,o=new Promise((s,a)=>{if(typeof t!="number"||Math.sign(t)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${t}\``);if(t===Number.POSITIVE_INFINITY){s(r);return}if(n={customTimers:{setTimeout,clearTimeout},...n},n.signal){let{signal:c}=n;c.aborted&&a(dE(c)),c.addEventListener("abort",()=>{a(dE(c))})}i=n.customTimers.setTimeout.call(void 0,()=>{if(typeof e=="function"){try{s(e())}catch(u){a(u)}return}let c=typeof e=="string"?e:`Promise timed out after ${t} milliseconds`,l=e instanceof Error?e:new xs(c);typeof r.cancel=="function"&&r.cancel(),a(l)},t),(async()=>{try{s(await r)}catch(c){a(c)}finally{n.customTimers.clearTimeout.call(void 0,i)}})()});return o.clear=()=>{clearTimeout(i),i=void 0},o}function ih(r,t,e){let n=0,i=r.length;for(;i>0;){let o=Math.trunc(i/2),s=n+o;e(r[s],t)<=0?(n=++s,i-=o+1):i=o}return n}var hi=function(r,t,e,n){if(e==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?r!==t||!n:!t.has(r))throw new TypeError("Cannot read private member from an object whose class did not declare it");return e==="m"?n:e==="a"?n.call(r):n?n.value:t.get(r)},Qr,vs=class{constructor(){Qr.set(this,[])}enqueue(t,e){e={priority:0,...e};let n={priority:e.priority,run:t};if(this.size&&hi(this,Qr,"f")[this.size-1].priority>=e.priority){hi(this,Qr,"f").push(n);return}let i=ih(hi(this,Qr,"f"),n,(o,s)=>s.priority-o.priority);hi(this,Qr,"f").splice(i,0,n)}dequeue(){let t=hi(this,Qr,"f").shift();return t?.run}filter(t){return hi(this,Qr,"f").filter(e=>e.priority===t.priority).map(e=>e.run)}get size(){return hi(this,Qr,"f").length}};Qr=new WeakMap;var kt=function(r,t,e,n,i){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!i)throw new TypeError("Private accessor was defined without a setter");if(typeof t=="function"?r!==t||!i:!t.has(r))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?i.call(r,e):i?i.value=e:t.set(r,e),e},O=function(r,t,e,n){if(e==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?r!==t||!n:!t.has(r))throw new TypeError("Cannot read private member from an object whose class did not declare it");return e==="m"?n:e==="a"?n.call(r):n?n.value:t.get(r)},Gt,_s,Ss,Rn,qc,As,Mc,ir,bs,Pe,Uc,Le,Rs,An,Fc,pE,mE,wE,yE,gE,Kc,oh,sh,Hc,EE,Vc,$c=class extends Error{},ao=class extends xE.default{constructor(t){var e,n,i,o;if(super(),Gt.add(this),_s.set(this,void 0),Ss.set(this,void 0),Rn.set(this,0),qc.set(this,void 0),As.set(this,void 0),Mc.set(this,0),ir.set(this,void 0),bs.set(this,void 0),Pe.set(this,void 0),Uc.set(this,void 0),Le.set(this,0),Rs.set(this,void 0),An.set(this,void 0),Fc.set(this,void 0),Object.defineProperty(this,"timeout",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),t={carryoverConcurrencyCount:!1,intervalCap:Number.POSITIVE_INFINITY,interval:0,concurrency:Number.POSITIVE_INFINITY,autoStart:!0,queueClass:vs,...t},!(typeof t.intervalCap=="number"&&t.intervalCap>=1))throw new TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${(n=(e=t.intervalCap)===null||e===void 0?void 0:e.toString())!==null&&n!==void 0?n:""}\` (${typeof t.intervalCap})`);if(t.interval===void 0||!(Number.isFinite(t.interval)&&t.interval>=0))throw new TypeError(`Expected \`interval\` to be a finite number >= 0, got \`${(o=(i=t.interval)===null||i===void 0?void 0:i.toString())!==null&&o!==void 0?o:""}\` (${typeof t.interval})`);kt(this,_s,t.carryoverConcurrencyCount,"f"),kt(this,Ss,t.intervalCap===Number.POSITIVE_INFINITY||t.interval===0,"f"),kt(this,qc,t.intervalCap,"f"),kt(this,As,t.interval,"f"),kt(this,Pe,new t.queueClass,"f"),kt(this,Uc,t.queueClass,"f"),this.concurrency=t.concurrency,this.timeout=t.timeout,kt(this,Fc,t.throwOnTimeout===!0,"f"),kt(this,An,t.autoStart===!1,"f")}get concurrency(){return O(this,Rs,"f")}set concurrency(t){if(!(typeof t=="number"&&t>=1))throw new TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${t}\` (${typeof t})`);kt(this,Rs,t,"f"),O(this,Gt,"m",Hc).call(this)}async add(t,e={}){return e={timeout:this.timeout,throwOnTimeout:O(this,Fc,"f"),...e},new Promise((n,i)=>{O(this,Pe,"f").enqueue(async()=>{var o,s,a;kt(this,Le,(s=O(this,Le,"f"),s++,s),"f"),kt(this,Rn,(a=O(this,Rn,"f"),a++,a),"f");try{if(!((o=e.signal)===null||o===void 0)&&o.aborted)throw new $c("The task was aborted.");let c=t({signal:e.signal});e.timeout&&(c=nh(Promise.resolve(c),e.timeout)),e.signal&&(c=Promise.race([c,O(this,Gt,"m",EE).call(this,e.signal)]));let l=await c;n(l),this.emit("completed",l)}catch(c){if(c instanceof xs&&!e.throwOnTimeout){n();return}i(c),this.emit("error",c)}finally{O(this,Gt,"m",wE).call(this)}},e),this.emit("add"),O(this,Gt,"m",Kc).call(this)})}async addAll(t,e){return Promise.all(t.map(async n=>this.add(n,e)))}start(){return O(this,An,"f")?(kt(this,An,!1,"f"),O(this,Gt,"m",Hc).call(this),this):this}pause(){kt(this,An,!0,"f")}clear(){kt(this,Pe,new(O(this,Uc,"f")),"f")}async onEmpty(){O(this,Pe,"f").size!==0&&await O(this,Gt,"m",Vc).call(this,"empty")}async onSizeLessThan(t){O(this,Pe,"f").size<t||await O(this,Gt,"m",Vc).call(this,"next",()=>O(this,Pe,"f").size<t)}async onIdle(){O(this,Le,"f")===0&&O(this,Pe,"f").size===0||await O(this,Gt,"m",Vc).call(this,"idle")}get size(){return O(this,Pe,"f").size}sizeBy(t){return O(this,Pe,"f").filter(t).length}get pending(){return O(this,Le,"f")}get isPaused(){return O(this,An,"f")}};_s=new WeakMap,Ss=new WeakMap,Rn=new WeakMap,qc=new WeakMap,As=new WeakMap,Mc=new WeakMap,ir=new WeakMap,bs=new WeakMap,Pe=new WeakMap,Uc=new WeakMap,Le=new WeakMap,Rs=new WeakMap,An=new WeakMap,Fc=new WeakMap,Gt=new WeakSet,pE=function(){return O(this,Ss,"f")||O(this,Rn,"f")<O(this,qc,"f")},mE=function(){return O(this,Le,"f")<O(this,Rs,"f")},wE=function(){var t;kt(this,Le,(t=O(this,Le,"f"),t--,t),"f"),O(this,Gt,"m",Kc).call(this),this.emit("next")},yE=function(){O(this,Gt,"m",sh).call(this),O(this,Gt,"m",oh).call(this),kt(this,bs,void 0,"f")},gE=function(){let t=Date.now();if(O(this,ir,"f")===void 0){let e=O(this,Mc,"f")-t;if(e<0)kt(this,Rn,O(this,_s,"f")?O(this,Le,"f"):0,"f");else return O(this,bs,"f")===void 0&&kt(this,bs,setTimeout(()=>{O(this,Gt,"m",yE).call(this)},e),"f"),!0}return!1},Kc=function(){if(O(this,Pe,"f").size===0)return O(this,ir,"f")&&clearInterval(O(this,ir,"f")),kt(this,ir,void 0,"f"),this.emit("empty"),O(this,Le,"f")===0&&this.emit("idle"),!1;if(!O(this,An,"f")){let t=!O(this,Gt,"a",gE);if(O(this,Gt,"a",pE)&&O(this,Gt,"a",mE)){let e=O(this,Pe,"f").dequeue();return e?(this.emit("active"),e(),t&&O(this,Gt,"m",oh).call(this),!0):!1}}return!1},oh=function(){O(this,Ss,"f")||O(this,ir,"f")!==void 0||(kt(this,ir,setInterval(()=>{O(this,Gt,"m",sh).call(this)},O(this,As,"f")),"f"),kt(this,Mc,Date.now()+O(this,As,"f"),"f"))},sh=function(){O(this,Rn,"f")===0&&O(this,Le,"f")===0&&O(this,ir,"f")&&(clearInterval(O(this,ir,"f")),kt(this,ir,void 0,"f")),kt(this,Rn,O(this,_s,"f")?O(this,Le,"f"):0,"f"),O(this,Gt,"m",Hc).call(this)},Hc=function(){for(;O(this,Gt,"m",Kc).call(this););},EE=async function(t){return new Promise((e,n)=>{t.addEventListener("abort",()=>{n(new $c("The task was aborted."))},{once:!0})})},Vc=async function(t,e){return new Promise(n=>{let i=()=>{e&&!e()||(this.off(t,i),n())};this.on(t,i)})};var ah=class extends Error{constructor(t){super(t),this.name="TimeoutError"}},ch=class extends Error{constructor(t){super(),this.name="AbortError",this.message=t}},vE=r=>globalThis.DOMException===void 0?new ch(r):new DOMException(r),bE=r=>{let t=r.reason===void 0?vE("This operation was aborted."):r.reason;return t instanceof Error?t:vE(t)};function lh(r,t){let{milliseconds:e,fallback:n,message:i,customTimers:o={setTimeout,clearTimeout}}=t,s,a=new Promise((c,l)=>{if(typeof e!="number"||Math.sign(e)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${e}\``);if(e===Number.POSITIVE_INFINITY){c(r);return}if(t.signal){let{signal:f}=t;f.aborted&&l(bE(f)),f.addEventListener("abort",()=>{l(bE(f))})}let u=new ah;s=o.setTimeout.call(void 0,()=>{if(n){try{c(n())}catch(f){l(f)}return}typeof r.cancel=="function"&&r.cancel(),i===!1?c():i instanceof Error?l(i):(u.message=i??`Promise timed out after ${e} milliseconds`,l(u))},e),(async()=>{try{c(await r)}catch(f){l(f)}finally{o.clearTimeout.call(void 0,s)}})()});return a.clear=()=>{o.clearTimeout.call(void 0,s),s=void 0},a}var uh="lock:worker:request-read",fh="lock:worker:release-read",hh="lock:master:grant-read",dh="lock:worker:request-write",ph="lock:worker:release-write",mh="lock:master:grant-write";var In={},co=r=>{r.addEventListener("message",t=>{co.dispatchEvent("message",r,t)}),r.port!=null&&r.port.addEventListener("message",t=>{co.dispatchEvent("message",r,t)})};co.addEventListener=(r,t)=>{In[r]==null&&(In[r]=[]),In[r].push(t)};co.removeEventListener=(r,t)=>{In[r]!=null&&(In[r]=In[r].filter(e=>e===t))};co.dispatchEvent=function(r,t,e){In[r]!=null&&In[r].forEach(n=>n(t,e))};var yh=co;var _E=(r,t,e,n,i)=>(o,s)=>{if(s.data.type!==e)return;let a={type:s.data.type,name:s.data.name,identifier:s.data.identifier};r.dispatchEvent(new MessageEvent(t,{data:{name:a.name,handler:async()=>(o.postMessage({type:i,name:a.name,identifier:a.identifier}),await new Promise(c=>{let l=u=>{if(u==null||u.data==null)return;let f={type:u.data.type,name:u.data.name,identifier:u.data.identifier};f.type===n&&f.identifier===a.identifier&&(o.removeEventListener("message",l),c())};o.addEventListener("message",l)}))}}))},SE=(r,t,e,n)=>async()=>{let i=qs();return globalThis.postMessage({type:t,identifier:i,name:r}),await new Promise(o=>{let s=a=>{if(a==null||a.data==null)return;let c={type:a.data.type,identifier:a.data.identifier};c.type===e&&c.identifier===i&&(globalThis.removeEventListener("message",s),o(()=>{globalThis.postMessage({type:n,identifier:i,name:r})}))};globalThis.addEventListener("message",s)})},dR={singleProcess:!1},AE=r=>{if(r=Object.assign({},dR,r),Boolean(globalThis.document)||r.singleProcess){let e=new EventTarget;return yh.addEventListener("message",_E(e,"requestReadLock",uh,fh,hh)),yh.addEventListener("message",_E(e,"requestWriteLock",dh,ph,mh)),e}return{isWorker:!0,readLock:e=>SE(e,uh,hh,fh),writeLock:e=>SE(e,dh,mh,ph)}};var di={},Tn;async function gh(r,t){let e,n=new Promise(i=>{e=i});return r.add(async()=>await lh((async()=>await new Promise(i=>{e(()=>{i()})}))(),{milliseconds:t.timeout})),await n}var pR=(r,t)=>{if(Tn.isWorker===!0)return{readLock:Tn.readLock(r,t),writeLock:Tn.writeLock(r,t)};let e=new ao({concurrency:1}),n;return{async readLock(){if(n!=null)return await gh(n,t);n=new ao({concurrency:t.concurrency,autoStart:!1});let i=n,o=gh(n,t);return e.add(async()=>(i.start(),await i.onIdle().then(()=>{n===i&&(n=null)}))),await o},async writeLock(){return n=null,await gh(e,t)}}},mR={name:"lock",concurrency:1/0,timeout:846e5,singleProcess:!1};function wh(r){let t=Object.assign({},mR,r);return Tn==null&&(Tn=AE(t),Tn.isWorker!==!0&&(Tn.addEventListener("requestReadLock",e=>{di[e.data.name]!=null&&di[e.data.name].readLock().then(async n=>await e.data.handler().finally(()=>n()))}),Tn.addEventListener("requestWriteLock",async e=>{di[e.data.name]!=null&&di[e.data.name].writeLock().then(async n=>await e.data.handler().finally(()=>n()))}))),di[t.name]==null&&(di[t.name]=pR(t.name,t)),di[t.name]}var RE=N("libp2p:peer-store:store"),IE="/peers/",zc=class{constructor(t){this.components=t,this.lock=wh({name:"peer-store",singleProcess:!0})}_peerIdToDatastoreKey(t){if(t.type==null)throw RE.error("peerId must be an instance of peer-id to store data"),(0,Eh.default)(new Error("peerId must be an instance of peer-id"),Q.ERR_INVALID_PARAMETERS);let e=t.toCID().toString();return new Ut(`${IE}${e}`)}async has(t){return await this.components.datastore.has(this._peerIdToDatastoreKey(t))}async delete(t){await this.components.datastore.delete(this._peerIdToDatastoreKey(t))}async load(t){let e=await this.components.datastore.get(this._peerIdToDatastoreKey(t)),n=ws.decode(e),i=new Map;for(let o of n.metadata)i.set(o.key,o.value);return{...n,id:t,addresses:n.addresses.map(({multiaddr:o,isCertified:s})=>({multiaddr:j(o),isCertified:s??!1})),metadata:i,pubKey:n.pubKey??void 0,peerRecordEnvelope:n.peerRecordEnvelope??void 0}}async save(t){if(t.pubKey!=null&&t.id.publicKey!=null&&!xt(t.pubKey,t.id.publicKey))throw RE.error("peer publicKey bytes do not match peer id publicKey bytes"),(0,Eh.default)(new Error("publicKey bytes do not match peer id publicKey bytes"),Q.ERR_INVALID_PARAMETERS);let e=new Set,n=t.addresses.filter(s=>e.has(s.multiaddr.toString())?!1:(e.add(s.multiaddr.toString()),!0)).sort((s,a)=>s.multiaddr.toString().localeCompare(a.multiaddr.toString())).map(({multiaddr:s,isCertified:a})=>({multiaddr:s.bytes,isCertified:a})),i=[];[...t.metadata.keys()].sort().forEach(s=>{let a=t.metadata.get(s);a!=null&&i.push({key:s,value:a})});let o=ws.encode({addresses:n,protocols:t.protocols.sort(),pubKey:t.pubKey,metadata:i,peerRecordEnvelope:t.peerRecordEnvelope});return await this.components.datastore.put(this._peerIdToDatastoreKey(t.id),o.subarray()),await this.load(t.id)}async patch(t,e){let n=await this.load(t);return await this._patch(t,e,n)}async patchOrCreate(t,e){let n;try{n=await this.load(t)}catch(i){if(i.code!==Q.ERR_NOT_FOUND)throw i;n={id:t,addresses:[],protocols:[],metadata:new Map}}return await this._patch(t,e,n)}async _patch(t,e,n){return await this.save({...n,...e,id:t})}async merge(t,e){let n=await this.load(t);return await this._merge(t,e,n)}async mergeOrCreate(t,e){let n;try{n=await this.load(t)}catch(i){if(i.code!==Q.ERR_NOT_FOUND)throw i;n={id:t,addresses:[],protocols:[],metadata:new Map}}return await this._merge(t,e,n)}async _merge(t,e,n){let i=new Map;return n.addresses.forEach(o=>{i.set(o.multiaddr.toString(),o.isCertified)}),(e.addresses??[]).forEach(o=>{let s=o.multiaddr.toString(),c=Boolean(i.get(s))||o.isCertified;i.set(s,c)}),await this.save({id:t,addresses:Array.from(i.entries()).map(([o,s])=>({multiaddr:j(o),isCertified:s})),protocols:Array.from(new Set([...n.protocols??[],...e.protocols??[]])),metadata:new Map([...n.metadata?.entries()??[],...e.metadata?.entries()??[]]),pubKey:e.pubKey??n?.pubKey,peerRecordEnvelope:e.peerRecordEnvelope??n?.peerRecordEnvelope})}async*all(){for await(let t of this.components.datastore.queryKeys({prefix:IE})){let e=t.toString().split("/")[2],n=be.decode(e);yield this.load(rn(n))}}};var xh=I(W(),1);var Xr;(function(r){let t;r.codec=()=>(t==null&&(t=St((e,n,i={})=>{if(i.lengthDelimited!==!1&&n.fork(),e.tags!=null)for(let o of e.tags)n.uint32(10),Gc.codec().encode(o,n,{writeDefaults:!0});i.lengthDelimited!==!1&&n.ldelim()},(e,n)=>{let i={tags:[]},o=n==null?e.len:e.pos+n;for(;e.pos<o;){let s=e.uint32();switch(s>>>3){case 1:i.tags.push(Gc.codec().decode(e,e.uint32()));break;default:e.skipType(s&7);break}}return i})),t),r.encode=e=>_t(e,r.codec()),r.decode=e=>bt(e,r.codec())})(Xr||(Xr={}));var Gc;(function(r){let t;r.codec=()=>(t==null&&(t=St((e,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),(i.writeDefaults===!0||e.name!=="")&&(n.uint32(10),n.string(e.name)),e.value!=null&&(n.uint32(16),n.uint32(e.value)),e.expiry!=null&&(n.uint32(24),n.uint64(e.expiry)),i.lengthDelimited!==!1&&n.ldelim()},(e,n)=>{let i={name:""},o=n==null?e.len:e.pos+n;for(;e.pos<o;){let s=e.uint32();switch(s>>>3){case 1:i.name=e.string();break;case 2:i.value=e.uint32();break;case 3:i.expiry=e.uint64();break;default:e.skipType(s&7);break}}return i})),t),r.encode=e=>_t(e,r.codec()),r.decode=e=>bt(e,r.codec())})(Gc||(Gc={}));var $e=N("libp2p:peer-store"),Yc=class extends Pt{constructor(t,e={}){super(),this.components=t,this.store=new zc(t),this.addressBook=new Ic(this.dispatchEvent.bind(this),this.store,e.addressFilter),this.keyBook=new Tc(this.dispatchEvent.bind(this),this.store),this.metadataBook=new Dc(this.dispatchEvent.bind(this),this.store),this.protoBook=new Bc(this.dispatchEvent.bind(this),this.store)}async forEach(t){$e.trace("getPeers await read lock");let e=await this.store.lock.readLock();$e.trace("getPeers got read lock");try{for await(let n of this.store.all())n.id.equals(this.components.peerId)||t(n)}finally{$e.trace("getPeers release read lock"),e()}}async all(){let t=[];return await this.forEach(e=>{t.push(e)}),t}async delete(t){$e.trace("delete await write lock");let e=await this.store.lock.writeLock();$e.trace("delete got write lock");try{await this.store.delete(t)}finally{$e.trace("delete release write lock"),e()}}async get(t){$e.trace("get await read lock");let e=await this.store.lock.readLock();$e.trace("get got read lock");try{return await this.store.load(t)}finally{$e.trace("get release read lock"),e()}}async has(t){$e.trace("has await read lock");let e=await this.store.lock.readLock();$e.trace("has got read lock");try{return await this.store.has(t)}finally{$e.trace("has release read lock"),e()}}async tagPeer(t,e,n={}){let i=n.value??0,o=Math.round(i),s=n.ttl??void 0;if(o!==i||o<0||o>100)throw(0,xh.default)(new Error("Tag value must be between 0-100"),"ERR_TAG_VALUE_OUT_OF_BOUNDS");let a=await this.metadataBook.getValue(t,"tags"),c=[];a!=null&&(c=Xr.decode(a).tags);for(let l of c)if(l.name===e)throw(0,xh.default)(new Error("Peer already tagged"),"ERR_DUPLICATE_TAG");c.push({name:e,value:o,expiry:s==null?void 0:BigInt(Date.now()+s)}),await this.metadataBook.setValue(t,"tags",Xr.encode({tags:c}).subarray())}async unTagPeer(t,e){let n=await this.metadataBook.getValue(t,"tags"),i=[];n!=null&&(i=Xr.decode(n).tags),i=i.filter(o=>o.name!==e),await this.metadataBook.setValue(t,"tags",Xr.encode({tags:i}).subarray())}async getTags(t){let e=await this.metadataBook.getValue(t,"tags"),n=[];e!=null&&(n=Xr.decode(e).tags);let i=BigInt(Date.now()),o=n.filter(s=>s.expiry==null||s.expiry>i);return o.length!==n.length&&await this.metadataBook.setValue(t,"tags",Xr.encode({tags:o}).subarray()),o.map(s=>({name:s.name,value:s.value??0}))}};var TE=I(W(),1),Wc=class{constructor(t){this.dht=t}async provide(t){await Ye(this.dht.provide(t))}async*findProviders(t,e={}){for await(let n of this.dht.findProviders(t,e))n.name==="PROVIDER"&&(yield*n.providers)}async put(t,e,n){await Ye(this.dht.put(t,e,n))}async get(t,e){for await(let n of this.dht.get(t,e))if(n.name==="VALUE")return n.value;throw(0,TE.default)(new Error("Not found"),"ERR_NOT_FOUND")}};var Be=I(W(),1);var Qc=class{constructor(t={}){this._started=!1,this._peerId=t.peerId,this._addressManager=t.addressManager,this._peerStore=t.peerStore,this._upgrader=t.upgrader,this._metrics=t.metrics,this._registrar=t.registrar,this._connectionManager=t.connectionManager,this._transportManager=t.transportManager,this._connectionGater=t.connectionGater,this._contentRouting=t.contentRouting,this._peerRouting=t.peerRouting,this._datastore=t.datastore,this._connectionProtector=t.connectionProtector,this._dht=t.dht,this._pubsub=t.pubsub,this._dialer=t.dialer}isStarted(){return this._started}async beforeStart(){await Promise.all(Object.values(this).filter(t=>Cr(t)).map(async t=>{t.beforeStart!=null&&await t.beforeStart()}))}async start(){await Promise.all(Object.values(this).filter(t=>Cr(t)).map(async t=>{await t.start()})),this._started=!0}async afterStart(){await Promise.all(Object.values(this).filter(t=>Cr(t)).map(async t=>{t.afterStart!=null&&await t.afterStart()}))}async beforeStop(){await Promise.all(Object.values(this).filter(t=>Cr(t)).map(async t=>{t.beforeStop!=null&&await t.beforeStop()}))}async stop(){await Promise.all(Object.values(this).filter(t=>Cr(t)).map(async t=>{await t.stop()})),this._started=!1}async afterStop(){await Promise.all(Object.values(this).filter(t=>Cr(t)).map(async t=>{t.afterStop!=null&&await t.afterStop()}))}get peerId(){if(this._peerId==null)throw(0,Be.default)(new Error("peerId not set"),"ERR_SERVICE_MISSING");return this._peerId}set peerId(t){this._peerId=t}get addressManager(){if(this._addressManager==null)throw(0,Be.default)(new Error("addressManager not set"),"ERR_SERVICE_MISSING");return this._addressManager}set addressManager(t){this._addressManager=t}get peerStore(){if(this._peerStore==null)throw(0,Be.default)(new Error("peerStore not set"),"ERR_SERVICE_MISSING");return this._peerStore}set peerStore(t){this._peerStore=t}get upgrader(){if(this._upgrader==null)throw(0,Be.default)(new Error("upgrader not set"),"ERR_SERVICE_MISSING");return this._upgrader}set upgrader(t){this._upgrader=t}get registrar(){if(this._registrar==null)throw(0,Be.default)(new Error("registrar not set"),"ERR_SERVICE_MISSING");return this._registrar}set registrar(t){this._registrar=t}get connectionManager(){if(this._connectionManager==null)throw(0,Be.default)(new Error("connectionManager not set"),"ERR_SERVICE_MISSING");return this._connectionManager}set connectionManager(t){this._connectionManager=t}get transportManager(){if(this._transportManager==null)throw(0,Be.default)(new Error("transportManager not set"),"ERR_SERVICE_MISSING");return this._transportManager}set transportManager(t){this._transportManager=t}get connectionGater(){if(this._connectionGater==null)throw(0,Be.default)(new Error("connectionGater not set"),"ERR_SERVICE_MISSING");return this._connectionGater}set connectionGater(t){this._connectionGater=t}get contentRouting(){if(this._contentRouting==null)throw(0,Be.default)(new Error("contentRouting not set"),"ERR_SERVICE_MISSING");return this._contentRouting}set contentRouting(t){this._contentRouting=t}get peerRouting(){if(this._peerRouting==null)throw(0,Be.default)(new Error("peerRouting not set"),"ERR_SERVICE_MISSING");return this._peerRouting}set peerRouting(t){this._peerRouting=t}get datastore(){if(this._datastore==null)throw(0,Be.default)(new Error("datastore not set"),"ERR_SERVICE_MISSING");return this._datastore}set datastore(t){this._datastore=t}get connectionProtector(){return this._connectionProtector}set connectionProtector(t){this._connectionProtector=t}get dialer(){if(this._dialer==null)throw(0,Be.default)(new Error("dialer not set"),"ERR_SERVICE_MISSING");return this._dialer}set dialer(t){this._dialer=t}get metrics(){return this._metrics}set metrics(t){this._metrics=t}get dht(){return this._dht}set dht(t){this._dht=t}get pubsub(){return this._pubsub}set pubsub(t){this._pubsub=t}};var bh=I(al(),1),_h=I(PE(),1);var LE=globalThis.fetch,BE=globalThis.Headers,p6=globalThis.Request,m6=globalThis.Response;function Xc(r,t,e){return`${r}?name=${t}&type=${e}`}async function NE(r,t){return await(await LE(r,{headers:new BE({accept:"application/dns-json"}),signal:t})).json()}function pi(r,t){return`${t}_${r}`}var vh=Object.assign((0,bh.default)("dns-over-http-resolver"),{error:(0,bh.default)("dns-over-http-resolver:error")}),Sh=class{constructor(t={}){this._cache=new _h.default({max:t?.maxCache??100}),this._TXTcache=new _h.default({max:t?.maxCache??100}),this._servers=["https://cloudflare-dns.com/dns-query","https://dns.google/resolve"],this._request=t.request??NE,this._abortControllers=[]}cancel(){this._abortControllers.forEach(t=>t.abort())}getServers(){return this._servers}_getShuffledServers(){let t=[...this._servers];for(let e=t.length-1;e>0;e--){let n=Math.floor(Math.random()*e),i=t[e];t[e]=t[n],t[n]=i}return t}setServers(t){this._servers=t}async resolve(t,e="A"){switch(e){case"A":return await this.resolve4(t);case"AAAA":return await this.resolve6(t);case"TXT":return await this.resolveTxt(t);default:throw new Error(`${e} is not supported`)}}async resolve4(t){let e="A",n=this._cache.get(pi(t,e));if(n!=null)return n;let i=!1;for(let o of this._getShuffledServers()){let s=new AbortController;this._abortControllers.push(s);try{let a=await this._request(Xc(o,t,e),s.signal),c=a.Answer.map(u=>u.data),l=Math.min(...a.Answer.map(u=>u.TTL));return this._cache.set(pi(t,e),c,{ttl:l}),c}catch{s.signal.aborted&&(i=!0),vh.error(`${o} could not resolve ${t} record ${e}`)}finally{this._abortControllers=this._abortControllers.filter(a=>a!==s)}}throw i?Object.assign(new Error("queryA ECANCELLED"),{code:"ECANCELLED"}):new Error(`Could not resolve ${t} record ${e}`)}async resolve6(t){let e="AAAA",n=this._cache.get(pi(t,e));if(n!=null)return n;let i=!1;for(let o of this._getShuffledServers()){let s=new AbortController;this._abortControllers.push(s);try{let a=await this._request(Xc(o,t,e),s.signal),c=a.Answer.map(u=>u.data),l=Math.min(...a.Answer.map(u=>u.TTL));return this._cache.set(pi(t,e),c,{ttl:l}),c}catch{s.signal.aborted&&(i=!0),vh.error(`${o} could not resolve ${t} record ${e}`)}finally{this._abortControllers=this._abortControllers.filter(a=>a!==s)}}throw i?Object.assign(new Error("queryAaaa ECANCELLED"),{code:"ECANCELLED"}):new Error(`Could not resolve ${t} record ${e}`)}async resolveTxt(t){let e="TXT",n=this._TXTcache.get(pi(t,e));if(n!=null)return n;let i=!1;for(let o of this._getShuffledServers()){let s=new AbortController;this._abortControllers.push(s);try{let a=await this._request(Xc(o,t,e),s.signal),c=a.Answer.map(u=>[u.data.replace(/['"]+/g,"")]),l=Math.min(...a.Answer.map(u=>u.TTL));return this._TXTcache.set(pi(t,e),c,{ttl:l}),c}catch{s.signal.aborted&&(i=!0),vh.error(`${o} could not resolve ${t} record ${e}`)}finally{this._abortControllers=this._abortControllers.filter(a=>a!==s)}}throw i?Object.assign(new Error("queryTxt ECANCELLED"),{code:"ECANCELLED"}):new Error(`Could not resolve ${t} record ${e}`)}clearCache(){this._cache.clear(),this._TXTcache.clear()}},OE=Sh;var kE=OE;var{code:xR}=mt("dnsaddr");async function ME(r,t={}){let e=new kE;t.signal!=null&&t.signal.addEventListener("abort",()=>{e.cancel()});let n=r.getPeerId(),[,i]=r.stringTuples().find(([a])=>a===xR)??[];if(i==null)throw new Error("No hostname found in multiaddr");let s=(await e.resolveTxt(`_dnsaddr.${i}`)).flat().map(a=>a.split("=")[1]);return n!=null&&(s=s.filter(a=>a.includes(n))),s}var Zc=I(W(),1);var AR={addresses:{listen:[],announce:[],noAnnounce:[],announceFilter:r=>r},connectionManager:{maxConnections:300,minConnections:50,autoDial:!0,autoDialInterval:1e4,maxParallelDials:100,maxDialsPerPeer:4,dialTimeout:3e4,inboundUpgradeTimeout:3e4,resolvers:{dnsaddr:ME},addressSorter:Vi},connectionGater:{},transportManager:{faultTolerance:un.FATAL_ALL},peerRouting:{refreshManager:{enabled:!0,interval:6e5,bootDelay:1e4}},nat:{enabled:!0,ttl:7200,keepAlive:!0},relay:{enabled:!0,advertise:{bootDelay:9e5,enabled:!1,ttl:18e5},hop:{enabled:!1,active:!1,timeout:3e4},autoRelay:{enabled:!1,maxListeners:2}},identify:{protocolPrefix:"ipfs",host:{agentVersion:Wf},timeout:6e4,maxInboundStreams:1,maxOutboundStreams:1,maxPushIncomingStreams:1,maxPushOutgoingStreams:1},ping:{protocolPrefix:"ipfs",maxInboundStreams:1,maxOutboundStreams:1,timeout:1e4},fetch:{protocolPrefix:"libp2p",maxInboundStreams:1,maxOutboundStreams:1,timeout:1e4}};function UE(r){let t=Ne(AR,r);if(t.transports==null||t.transports.length<1)throw(0,Zc.default)(new Error(X.ERR_TRANSPORTS_REQUIRED),b.ERR_TRANSPORTS_REQUIRED);if(t.connectionEncryption==null||t.connectionEncryption.length===0)throw(0,Zc.default)(new Error(X.CONN_ENCRYPTION_REQUIRED),b.CONN_ENCRYPTION_REQUIRED);if(t.connectionProtector===null&&globalThis.process?.env?.LIBP2P_FORCE_PNET!=null)throw(0,Zc.default)(new Error(X.ERR_PROTECTOR_REQUIRED),b.ERR_PROTECTOR_REQUIRED);return t.identify.host.agentVersion===Wf&&(eE||jw?t.identify.host.agentVersion+=` UserAgent=${globalThis.process.version}`:(gs||rE||tE||nE)&&(t.identify.host.agentVersion+=` UserAgent=${globalThis.navigator.userAgent}`)),t}var Th;(function(r){let t;r.codec=()=>(t==null&&(t=St((e,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),(i.writeDefaults===!0||e.id!=null&&e.id.byteLength>0)&&(n.uint32(10),n.bytes(e.id)),e.pubKey!=null&&(n.uint32(18),n.bytes(e.pubKey)),e.privKey!=null&&(n.uint32(26),n.bytes(e.privKey)),i.lengthDelimited!==!1&&n.ldelim()},(e,n)=>{let i={id:new Uint8Array(0)},o=n==null?e.len:e.pos+n;for(;e.pos<o;){let s=e.uint32();switch(s>>>3){case 1:i.id=e.bytes();break;case 2:i.pubKey=e.bytes();break;case 3:i.privKey=e.bytes();break;default:e.skipType(s&7);break}}return i})),t),r.encode=e=>_t(e,r.codec()),r.decode=e=>bt(e,r.codec())})(Th||(Th={}));var FE=async()=>{let r=await hc("Ed25519"),t=await RR(r);if(t.type==="Ed25519")return t;throw new Error(`Generated unexpected PeerId type "${t.type}"`)};async function RR(r){return await nn(fw(r.public),hw(r))}var Ts=I(W(),1);var ze=I(W(),1);var KE=Symbol.for("@libp2p/peer-discovery");var Jc=class extends Pt{get[KE](){return!0}get[Symbol.toStringTag](){return"@libp2p/dummy-dht"}get wan(){throw(0,ze.default)(new Error(X.DHT_DISABLED),b.DHT_DISABLED)}get lan(){throw(0,ze.default)(new Error(X.DHT_DISABLED),b.DHT_DISABLED)}get(){throw(0,ze.default)(new Error(X.DHT_DISABLED),b.DHT_DISABLED)}findProviders(){throw(0,ze.default)(new Error(X.DHT_DISABLED),b.DHT_DISABLED)}findPeer(){throw(0,ze.default)(new Error(X.DHT_DISABLED),b.DHT_DISABLED)}getClosestPeers(){throw(0,ze.default)(new Error(X.DHT_DISABLED),b.DHT_DISABLED)}provide(){throw(0,ze.default)(new Error(X.DHT_DISABLED),b.DHT_DISABLED)}put(){throw(0,ze.default)(new Error(X.DHT_DISABLED),b.DHT_DISABLED)}async getMode(){throw(0,ze.default)(new Error(X.DHT_DISABLED),b.DHT_DISABLED)}async setMode(){throw(0,ze.default)(new Error(X.DHT_DISABLED),b.DHT_DISABLED)}async refreshRoutingTable(){throw(0,ze.default)(new Error(X.DHT_DISABLED),b.DHT_DISABLED)}};var Zr=I(W(),1);var jc=class extends Pt{constructor(){super(...arguments),this.topicValidators=new Map}isStarted(){return!1}start(){}stop(){}get globalSignaturePolicy(){throw(0,Zr.default)(new Error(X.PUBSUB_DISABLED),b.ERR_PUBSUB_DISABLED)}get multicodecs(){throw(0,Zr.default)(new Error(X.PUBSUB_DISABLED),b.ERR_PUBSUB_DISABLED)}getPeers(){throw(0,Zr.default)(new Error(X.PUBSUB_DISABLED),b.ERR_PUBSUB_DISABLED)}getTopics(){throw(0,Zr.default)(new Error(X.PUBSUB_DISABLED),b.ERR_PUBSUB_DISABLED)}subscribe(){throw(0,Zr.default)(new Error(X.PUBSUB_DISABLED),b.ERR_PUBSUB_DISABLED)}unsubscribe(){throw(0,Zr.default)(new Error(X.PUBSUB_DISABLED),b.ERR_PUBSUB_DISABLED)}getSubscribers(){throw(0,Zr.default)(new Error(X.PUBSUB_DISABLED),b.ERR_PUBSUB_DISABLED)}async publish(){throw(0,Zr.default)(new Error(X.PUBSUB_DISABLED),b.ERR_PUBSUB_DISABLED)}};var lo=I(W(),1);var n1=I(Nr(),1),Lh=I(Dh(),1),i1=I(lr(),1);var Is=I(W(),1),t1=I(Dh(),1),e1=I(JE(),1),Ph=I(lr(),1);var jE=N("libp2p:dialer:dial-request"),tl=class{constructor(t){let{addrs:e,dialAction:n,dialer:i}=t;this.addrs=e,this.dialer=i,this.dialAction=n}async run(t={}){let e=this.dialer.getTokens(this.addrs.length);if(e.length<1)throw(0,Is.default)(new Error("No dial tokens available"),b.ERR_NO_DIAL_TOKENS);let n=new e1.default;for(let a of e)n.push(a).catch(c=>{jE.error(c)});let i=this.addrs.map(()=>{let a=new AbortController;try{(0,Ph.setMaxListeners)?.(1/0,a.signal)}catch{}return a});if(t.signal!=null)try{(0,Ph.setMaxListeners)?.(1/0,t.signal)}catch{}let o=0,s=!1;try{return await Promise.any(this.addrs.map(async(a,c)=>{let l=await n.shift();if(s)throw this.dialer.releaseToken(e.splice(e.indexOf(l),1)[0]),(0,Is.default)(new Error("dialAction already succeeded"),b.ERR_ALREADY_SUCCEEDED);let u=i[c];if(u==null)throw(0,Is.default)(new Error("dialAction did not come with an AbortController"),b.ERR_INVALID_PARAMETERS);let f;try{let d=u.signal;f=await this.dialAction(a,{...t,signal:t.signal!=null?(0,t1.anySignal)([d,t.signal]):d}),i[c]=void 0}finally{o++,this.addrs.length-o>=e.length?n.push(l).catch(d=>{jE.error(d)}):this.dialer.releaseToken(e.splice(e.indexOf(l),1)[0])}if(f==null)throw(0,Is.default)(new Error("dialAction led to empty object"),b.ERR_TRANSPORT_DIAL_FAILED);return s=!0,f}))}finally{i.forEach(a=>{a!==void 0&&a.abort()}),e.forEach(a=>this.dialer.releaseToken(a))}}};var Ar=N("libp2p:dialer"),el=class{constructor(t,e={}){this.started=!1,this.addressSorter=e.addressSorter??Vi,this.maxAddrsToDial=e.maxAddrsToDial??25,this.timeout=e.dialTimeout??3e4,this.maxDialsPerPeer=e.maxDialsPerPeer??4,this.tokens=[...new Array(e.maxParallelDials??100)].map((n,i)=>i),this.components=t,this.pendingDials=ss({name:"libp2p_dialler_pending_dials",metrics:t.metrics}),this.pendingDialTargets=ss({name:"libp2p_dialler_pending_dial_targets",metrics:t.metrics});for(let[n,i]of Object.entries(e.resolvers??{}))Hl.set(n,i)}isStarted(){return this.started}async start(){this.started=!0}async stop(){this.started=!1;for(let t of this.pendingDials.values())try{t.controller.abort()}catch(e){Ar.error(e)}this.pendingDials.clear();for(let t of this.pendingDialTargets.values())t.abort();this.pendingDialTargets.clear()}async dial(t,e={}){let{peerId:n,multiaddr:i}=ca(t);if(n!=null){if(this.components.peerId.equals(n))throw(0,lo.default)(new Error("Tried to dial self"),b.ERR_DIALED_SELF);if(i!=null&&(Ar("storing multiaddrs %p",n,i),await this.components.peerStore.addressBook.add(n,[i])),await this.components.connectionGater.denyDialPeer(n))throw(0,lo.default)(new Error("The dial request is blocked by gater.allowDialPeer"),b.ERR_PEER_DIAL_INTERCEPTED)}Ar("creating dial target for %p",n);let o=new AbortController,s=r1();this.pendingDialTargets.set(s,o);let a=o.signal;e.signal!=null&&(a=(0,Lh.anySignal)([a,e.signal]));let c;try{c=await this._createDialTarget({peerId:n,multiaddr:i},{...e,signal:a})}finally{this.pendingDialTargets.delete(s)}if(c.addrs.length===0)throw(0,lo.default)(new Error("The dial request has no valid addresses"),b.ERR_NO_VALID_ADDRESSES);let l=this.pendingDials.get(c.id)??this._createPendingDial(c,e);try{let u=await l.promise;return Ar("dial succeeded to %s",c.id),u}catch(u){throw Ar("dial failed to %s",c.id,u),l.controller.signal.aborted&&(u.code=b.ERR_TIMEOUT),Ar.error(u),u}finally{l.destroy()}}getPendingDialTargets(){return this.pendingDialTargets}hasPendingDial(t){return _e(t)?this.pendingDials.has(t.getPeerId()??""):this.pendingDials.has(t.toString())}async _createDialTarget(t,e){let n=[];if(_e(t.multiaddr)&&n.push(t.multiaddr),!_e(t.multiaddr)&&Mn(t.peerId)&&n.push(...await this._loadAddresses(t.peerId)),n=(await Promise.all(n.map(async o=>await this._resolve(o,e)))).flat().filter(o=>Boolean(this.components.transportManager.transportForMultiaddr(o))),n=[...new Set(n.map(o=>o.toString()))].map(o=>j(o)),n.length>this.maxAddrsToDial)throw(0,lo.default)(new Error("dial with more addresses than allowed"),b.ERR_TOO_MANY_ADDRESSES);let i=Mn(t.peerId)?t.peerId:void 0;if(i!=null){let o=`/p2p/${i.toString()}`;n=n.map(s=>{let a=s.getPeerId();return a==null||!i.equals(a)?s.encapsulate(o):s})}return{id:i==null?r1():i.toString(),addrs:n}}async _loadAddresses(t){let e=await this.components.peerStore.addressBook.get(t);return(await Promise.all(e.map(async n=>await this.components.connectionGater.denyDialMultiaddr(t,n.multiaddr)?!1:n))).filter(CR).sort(this.addressSorter).map(n=>n.multiaddr)}_createPendingDial(t,e={}){let n=async(l,u={})=>{if(u.signal?.aborted===!0)throw(0,lo.default)(new Error("already aborted"),b.ERR_ALREADY_ABORTED);return await this.components.transportManager.dial(l,u).catch(f=>{throw Ar.error("dial to %s failed",l,f),f})},i=new tl({addrs:t.addrs,dialAction:n,dialer:this}),o=new n1.TimeoutController(this.timeout),s=[o.signal];e.signal!=null&&s.push(e.signal);let a=(0,Lh.anySignal)(s);try{(0,i1.setMaxListeners)?.(1/0,a)}catch{}let c={dialRequest:i,controller:o,promise:i.run({...e,signal:a}),destroy:()=>{o.clear(),this.pendingDials.delete(t.id)}};return this.pendingDials.set(t.id,c),c}getTokens(t){let e=Math.min(t,this.maxDialsPerPeer,this.tokens.length),n=this.tokens.splice(0,e);return Ar("%d tokens request, returning %d, %d remaining",t,e,this.tokens.length),n}releaseToken(t){this.tokens.includes(t)||(Ar("token %d released",t),this.tokens.push(t))}async _resolve(t,e){if(!t.protoNames().includes("dnsaddr"))return[t];let i=await this._resolveRecord(t,e);return(await Promise.all(i.map(async a=>await this._resolve(a,e)))).flat().reduce((a,c)=>(a.find(l=>l.equals(c))==null&&a.push(c),a),[])}async _resolveRecord(t,e){try{return t=j(t.toString()),await t.resolve(e)}catch(n){return Ar.error(`multiaddr ${t.toString()} could not be resolved`,n),[]}}};function CR(r){return Boolean(r)}function r1(){return`${parseInt(String(Math.random()*1e9),10).toString()}${Date.now()}`}var Rr=N("libp2p"),Bh=class extends Pt{constructor(t){super(),this.started=!1,this.peerId=t.peerId;let e=this.components=new Qc({peerId:t.peerId,datastore:t.datastore??new $s,connectionGater:{denyDialPeer:async()=>await Promise.resolve(!1),denyDialMultiaddr:async()=>await Promise.resolve(!1),denyInboundConnection:async()=>await Promise.resolve(!1),denyOutboundConnection:async()=>await Promise.resolve(!1),denyInboundEncryptedConnection:async()=>await Promise.resolve(!1),denyOutboundEncryptedConnection:async()=>await Promise.resolve(!1),denyInboundUpgradedConnection:async()=>await Promise.resolve(!1),denyOutboundUpgradedConnection:async()=>await Promise.resolve(!1),filterMultiaddrForPeer:async()=>await Promise.resolve(!0),...t.connectionGater}});e.peerStore=new Yc(e,{addressFilter:this.components.connectionGater.filterMultiaddrForPeer,...t.peerStore}),this.services=[e],t.metrics!=null&&(this.metrics=this.components.metrics=this.configureComponent(t.metrics(this.components))),this.peerStore=this.components.peerStore,this.peerStore.addEventListener("peer",s=>{let{detail:a}=s;this.dispatchEvent(new q("peer:discovery",{detail:a}))}),t.connectionProtector!=null&&(this.components.connectionProtector=t.connectionProtector(e)),this.components.upgrader=new gc(this.components,{connectionEncryption:(t.connectionEncryption??[]).map(s=>this.configureComponent(s(this.components))),muxers:(t.streamMuxers??[]).map(s=>this.configureComponent(s(this.components))),inboundUpgradeTimeout:t.connectionManager.inboundUpgradeTimeout}),this.components.dialer=new el(this.components,t.connectionManager),this.connectionManager=this.components.connectionManager=new fa(this.components,t.connectionManager),this.components.connectionManager.addEventListener("peer:disconnect",s=>{this.dispatchEvent(new q("peer:disconnect",{detail:s.detail}))}),this.components.connectionManager.addEventListener("peer:connect",s=>{this.dispatchEvent(new q("peer:connect",{detail:s.detail}))}),this.registrar=this.components.registrar=new yc(this.components),this.components.transportManager=new pc(this.components,t.transportManager),this.components.addressManager=new ta(this.components,t.addresses),this.configureComponent(new _c(this.components)),this.configureComponent(new ha(this.components,{enabled:t.connectionManager.autoDial,minConnections:t.connectionManager.minConnections,autoDialInterval:t.connectionManager.autoDialInterval}));let n=ai.generateOptions();this.keychain=this.configureComponent(new ai(this.components,{...n,...t.keychain})),this.services.push(new bc(this.components,t.nat)),t.transports.forEach(s=>{this.components.transportManager.add(this.configureComponent(s(this.components)))}),this.identifyService=new oo(this.components,{...t.identify}),this.configureComponent(this.identifyService),t.dht!=null?this.dht=this.components.dht=t.dht(this.components):this.dht=new Jc,t.pubsub!=null?this.pubsub=this.components.pubsub=t.pubsub(this.components):this.pubsub=new jc;let i=(t.peerRouters??[]).map(s=>this.configureComponent(s(this.components)));t.dht!=null&&(i.push(this.configureComponent(new Sc(this.dht))),this.dht.addEventListener("peer",s=>{this.onDiscoveryPeer(s)})),this.peerRouting=this.components.peerRouting=this.configureComponent(new Zs(this.components,{...t.peerRouting,routers:i}));let o=(t.contentRouters??[]).map(s=>this.configureComponent(s(this.components)));t.dht!=null&&o.push(this.configureComponent(new Wc(this.dht))),this.contentRouting=this.components.contentRouting=this.configureComponent(new js(this.components,{routers:o})),t.relay.enabled&&(this.components.transportManager.add(this.configureComponent(new Sa(this.components,t.relay))),this.configureComponent(new Pa(this.components,{addressSorter:t.connectionManager.addressSorter,...t.relay}))),this.fetchService=this.configureComponent(new Ec(this.components,{...t.fetch})),this.pingService=this.configureComponent(new xc(this.components,{...t.ping}));for(let s of t.peerDiscovery??[])this.configureComponent(s(this.components)).addEventListener("peer",c=>{this.onDiscoveryPeer(c)})}configureComponent(t){return Cr(t)&&this.services.push(t),t}async start(){if(this.started)return;this.started=!0,Rr("libp2p is starting"),(await this.keychain.listKeys()).find(e=>e.name==="self")==null&&(Rr("importing self key into keychain"),await this.keychain.importPeer("self",this.components.peerId));try{await Promise.all(this.services.map(async e=>{e.beforeStart!=null&&await e.beforeStart()})),await Promise.all(this.services.map(async e=>await e.start())),await Promise.all(this.services.map(async e=>{e.afterStart!=null&&await e.afterStart()})),Rr("libp2p has started")}catch(e){throw Rr.error("An error occurred starting libp2p",e),await this.stop(),e}}async stop(){this.started&&(Rr("libp2p is stopping"),this.started=!1,await Promise.all(this.services.map(async t=>{t.beforeStop!=null&&await t.beforeStop()})),await Promise.all(this.services.map(async t=>await t.stop())),await Promise.all(this.services.map(async t=>{t.afterStop!=null&&await t.afterStop()})),Rr("libp2p has stopped"))}isStarted(){return this.started}getConnections(t){return this.components.connectionManager.getConnections(t)}getPeers(){let t=new Ur;for(let e of this.components.connectionManager.getConnections())t.add(e.remotePeer);return Array.from(t)}async dial(t,e={}){return await this.components.connectionManager.openConnection(t,e)}async dialProtocol(t,e,n={}){if(e==null)throw(0,Ts.default)(new Error("no protocols were provided to open a stream"),b.ERR_INVALID_PROTOCOLS_FOR_STREAM);if(e=Array.isArray(e)?e:[e],e.length===0)throw(0,Ts.default)(new Error("no protocols were provided to open a stream"),b.ERR_INVALID_PROTOCOLS_FOR_STREAM);return await(await this.dial(t,n)).newStream(e,n)}getMultiaddrs(){return this.components.addressManager.getAddresses()}getProtocols(){return this.components.registrar.getProtocols()}async hangUp(t){_e(t)&&(t=tt(t.getPeerId()??"")),await this.components.connectionManager.closeConnections(t)}async getPublicKey(t,e={}){if(Rr("getPublicKey %p",t),t.publicKey!=null)return t.publicKey;let n=await this.peerStore.get(t);if(n.pubKey!=null)return n.pubKey;if(this.dht==null)throw(0,Ts.default)(new Error("Public key was not in the peer store and the DHT is not enabled"),b.ERR_NO_ROUTERS_AVAILABLE);let i=qt([U("/pk/"),t.multihash.digest]);for await(let o of this.dht.get(i,e))if(o.name==="VALUE"){let s=ns(o.value);return await this.peerStore.keyBook.set(t,o.value),s.bytes}throw(0,Ts.default)(new Error(`Node not responding with its public key: ${t.toString()}`),b.ERR_INVALID_RECORD)}async fetch(t,e,n={}){if(_e(t)){let i=tt(t.getPeerId()??"");await this.components.peerStore.addressBook.add(i,[t]),t=i}return await this.fetchService.fetch(t,e,n)}async ping(t,e={}){if(_e(t)){let n=tt(t.getPeerId()??"");await this.components.peerStore.addressBook.add(n,[t]),t=n}return await this.pingService.ping(t,e)}async handle(t,e,n){Array.isArray(t)||(t=[t]),await Promise.all(t.map(async i=>{await this.components.registrar.handle(i,e,n)}))}async unhandle(t){Array.isArray(t)||(t=[t]),await Promise.all(t.map(async e=>{await this.components.registrar.unhandle(e)}))}async register(t,e){return await this.registrar.register(t,e)}unregister(t){this.registrar.unregister(t)}onDiscoveryPeer(t){let{detail:e}=t;if(e.id.toString()===this.peerId.toString()){Rr.error(new Error(b.ERR_DISCOVERED_SELF));return}e.multiaddrs.length>0&&this.components.peerStore.addressBook.add(e.id,e.multiaddrs).catch(n=>Rr.error(n)),e.protocols.length>0&&this.components.peerStore.protoBook.set(e.id,e.protocols).catch(n=>Rr.error(n)),this.dispatchEvent(new q("peer:discovery",{detail:e}))}};async function o1(r){if(r.peerId==null){let t=r.datastore;if(t!=null)try{let e=new ai({datastore:t},Ne(ai.generateOptions(),r.keychain));r.peerId=await e.exportPeerId("self")}catch(e){if(e.code!=="ERR_NOT_FOUND")throw e}}return r.peerId==null&&(r.peerId=await FE()),new Bh(UE(r))}async function DR(r){let t=await o1(r);return r.start!==!1&&await t.start(),t}return f1(PR);})();
50
50
  /*! Bundled license information:
51
51
 
52
52
  @noble/secp256k1/lib/esm/index.js: