mirror of
https://github.com/logos-messaging/examples.waku.org.git
synced 2026-01-04 22:03:10 +00:00
3 lines
1.4 MiB
3 lines
1.4 MiB
/*! For license information please see main.091ffc30.js.LICENSE.txt */
|
|
(()=>{var __webpack_modules__={7206:e=>{"use strict";e.exports=function(e,t){var r=new Array(arguments.length-1),n=0,i=2,o=!0;for(;i<arguments.length;)r[n++]=arguments[i++];return new Promise((function(i,s){r[n]=function(e){if(o)if(o=!1,e)s(e);else{for(var t=new Array(arguments.length-1),r=0;r<t.length;)t[r++]=arguments[r];i.apply(null,t)}};try{e.apply(t||null,r)}catch(a){o&&(o=!1,s(a))}}))}},1:(e,t)=>{"use strict";var r=t;r.length=function(e){var t=e.length;if(!t)return 0;for(var r=0;--t%4>1&&"="===e.charAt(t);)++r;return Math.ceil(3*e.length)/4-r};for(var n=new Array(64),i=new Array(123),o=0;o<64;)i[n[o]=o<26?o+65:o<52?o+71:o<62?o-4:o-59|43]=o++;r.encode=function(e,t,r){for(var i,o=null,s=[],a=0,c=0;t<r;){var l=e[t++];switch(c){case 0:s[a++]=n[l>>2],i=(3&l)<<4,c=1;break;case 1:s[a++]=n[i|l>>4],i=(15&l)<<2,c=2;break;case 2:s[a++]=n[i|l>>6],s[a++]=n[63&l],c=0}a>8191&&((o||(o=[])).push(String.fromCharCode.apply(String,s)),a=0)}return c&&(s[a++]=n[i],s[a++]=61,1===c&&(s[a++]=61)),o?(a&&o.push(String.fromCharCode.apply(String,s.slice(0,a))),o.join("")):String.fromCharCode.apply(String,s.slice(0,a))};var s="invalid encoding";r.decode=function(e,t,r){for(var n,o=r,a=0,c=0;c<e.length;){var l=e.charCodeAt(c++);if(61===l&&a>1)break;if(void 0===(l=i[l]))throw Error(s);switch(a){case 0:n=l,a=1;break;case 1:t[r++]=n<<2|(48&l)>>4,n=l,a=2;break;case 2:t[r++]=(15&n)<<4|(60&l)>>2,n=l,a=3;break;case 3:t[r++]=(3&n)<<6|l,a=0}}if(1===a)throw Error(s);return r-o},r.test=function(e){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(e)}},7111:e=>{"use strict";function t(){this._listeners={}}e.exports=t,t.prototype.on=function(e,t,r){return(this._listeners[e]||(this._listeners[e]=[])).push({fn:t,ctx:r||this}),this},t.prototype.off=function(e,t){if(void 0===e)this._listeners={};else if(void 0===t)this._listeners[e]=[];else for(var r=this._listeners[e],n=0;n<r.length;)r[n].fn===t?r.splice(n,1):++n;return this},t.prototype.emit=function(e){var t=this._listeners[e];if(t){for(var r=[],n=1;n<arguments.length;)r.push(arguments[n++]);for(n=0;n<t.length;)t[n].fn.apply(t[n++].ctx,r)}return this}},802:e=>{"use strict";function t(e){return"undefined"!==typeof Float32Array?function(){var t=new Float32Array([-0]),r=new Uint8Array(t.buffer),n=128===r[3];function i(e,n,i){t[0]=e,n[i]=r[0],n[i+1]=r[1],n[i+2]=r[2],n[i+3]=r[3]}function o(e,n,i){t[0]=e,n[i]=r[3],n[i+1]=r[2],n[i+2]=r[1],n[i+3]=r[0]}function s(e,n){return r[0]=e[n],r[1]=e[n+1],r[2]=e[n+2],r[3]=e[n+3],t[0]}function a(e,n){return r[3]=e[n],r[2]=e[n+1],r[1]=e[n+2],r[0]=e[n+3],t[0]}e.writeFloatLE=n?i:o,e.writeFloatBE=n?o:i,e.readFloatLE=n?s:a,e.readFloatBE=n?a:s}():function(){function t(e,t,r,n){var i=t<0?1:0;if(i&&(t=-t),0===t)e(1/t>0?0:2147483648,r,n);else if(isNaN(t))e(2143289344,r,n);else if(t>34028234663852886e22)e((i<<31|2139095040)>>>0,r,n);else if(t<11754943508222875e-54)e((i<<31|Math.round(t/1401298464324817e-60))>>>0,r,n);else{var o=Math.floor(Math.log(t)/Math.LN2);e((i<<31|o+127<<23|8388607&Math.round(t*Math.pow(2,-o)*8388608))>>>0,r,n)}}function s(e,t,r){var n=e(t,r),i=2*(n>>31)+1,o=n>>>23&255,s=8388607&n;return 255===o?s?NaN:i*(1/0):0===o?1401298464324817e-60*i*s:i*Math.pow(2,o-150)*(s+8388608)}e.writeFloatLE=t.bind(null,r),e.writeFloatBE=t.bind(null,n),e.readFloatLE=s.bind(null,i),e.readFloatBE=s.bind(null,o)}(),"undefined"!==typeof Float64Array?function(){var t=new Float64Array([-0]),r=new Uint8Array(t.buffer),n=128===r[7];function i(e,n,i){t[0]=e,n[i]=r[0],n[i+1]=r[1],n[i+2]=r[2],n[i+3]=r[3],n[i+4]=r[4],n[i+5]=r[5],n[i+6]=r[6],n[i+7]=r[7]}function o(e,n,i){t[0]=e,n[i]=r[7],n[i+1]=r[6],n[i+2]=r[5],n[i+3]=r[4],n[i+4]=r[3],n[i+5]=r[2],n[i+6]=r[1],n[i+7]=r[0]}function s(e,n){return r[0]=e[n],r[1]=e[n+1],r[2]=e[n+2],r[3]=e[n+3],r[4]=e[n+4],r[5]=e[n+5],r[6]=e[n+6],r[7]=e[n+7],t[0]}function a(e,n){return r[7]=e[n],r[6]=e[n+1],r[5]=e[n+2],r[4]=e[n+3],r[3]=e[n+4],r[2]=e[n+5],r[1]=e[n+6],r[0]=e[n+7],t[0]}e.writeDoubleLE=n?i:o,e.writeDoubleBE=n?o:i,e.readDoubleLE=n?s:a,e.readDoubleBE=n?a:s}():function(){function t(e,t,r,n,i,o){var s=n<0?1:0;if(s&&(n=-n),0===n)e(0,i,o+t),e(1/n>0?0:2147483648,i,o+r);else if(isNaN(n))e(0,i,o+t),e(2146959360,i,o+r);else if(n>17976931348623157e292)e(0,i,o+t),e((s<<31|2146435072)>>>0,i,o+r);else{var a;if(n<22250738585072014e-324)e((a=n/5e-324)>>>0,i,o+t),e((s<<31|a/4294967296)>>>0,i,o+r);else{var c=Math.floor(Math.log(n)/Math.LN2);1024===c&&(c=1023),e(4503599627370496*(a=n*Math.pow(2,-c))>>>0,i,o+t),e((s<<31|c+1023<<20|1048576*a&1048575)>>>0,i,o+r)}}}function s(e,t,r,n,i){var o=e(n,i+t),s=e(n,i+r),a=2*(s>>31)+1,c=s>>>20&2047,l=4294967296*(1048575&s)+o;return 2047===c?l?NaN:a*(1/0):0===c?5e-324*a*l:a*Math.pow(2,c-1075)*(l+4503599627370496)}e.writeDoubleLE=t.bind(null,r,0,4),e.writeDoubleBE=t.bind(null,n,4,0),e.readDoubleLE=s.bind(null,i,0,4),e.readDoubleBE=s.bind(null,o,4,0)}(),e}function r(e,t,r){t[r]=255&e,t[r+1]=e>>>8&255,t[r+2]=e>>>16&255,t[r+3]=e>>>24}function n(e,t,r){t[r]=e>>>24,t[r+1]=e>>>16&255,t[r+2]=e>>>8&255,t[r+3]=255&e}function i(e,t){return(e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24)>>>0}function o(e,t){return(e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3])>>>0}e.exports=t(t)},7172:module=>{"use strict";function inquire(moduleName){try{var mod=eval("quire".replace(/^/,"re"))(moduleName);if(mod&&(mod.length||Object.keys(mod).length))return mod}catch(e){}return null}module.exports=inquire},8236:e=>{"use strict";e.exports=function(e,t,r){var n=r||8192,i=n>>>1,o=null,s=n;return function(r){if(r<1||r>i)return e(r);s+r>n&&(o=e(n),s=0);var a=t.call(o,s,s+=r);return 7&s&&(s=1+(7|s)),a}}},3861:(e,t)=>{"use strict";var r=t;r.length=function(e){for(var t=0,r=0,n=0;n<e.length;++n)(r=e.charCodeAt(n))<128?t+=1:r<2048?t+=2:55296===(64512&r)&&56320===(64512&e.charCodeAt(n+1))?(++n,t+=4):t+=3;return t},r.read=function(e,t,r){if(r-t<1)return"";for(var n,i=null,o=[],s=0;t<r;)(n=e[t++])<128?o[s++]=n:n>191&&n<224?o[s++]=(31&n)<<6|63&e[t++]:n>239&&n<365?(n=((7&n)<<18|(63&e[t++])<<12|(63&e[t++])<<6|63&e[t++])-65536,o[s++]=55296+(n>>10),o[s++]=56320+(1023&n)):o[s++]=(15&n)<<12|(63&e[t++])<<6|63&e[t++],s>8191&&((i||(i=[])).push(String.fromCharCode.apply(String,o)),s=0);return i?(s&&i.push(String.fromCharCode.apply(String,o.slice(0,s))),i.join("")):String.fromCharCode.apply(String,o.slice(0,s))},r.write=function(e,t,r){for(var n,i,o=r,s=0;s<e.length;++s)(n=e.charCodeAt(s))<128?t[r++]=n:n<2048?(t[r++]=n>>6|192,t[r++]=63&n|128):55296===(64512&n)&&56320===(64512&(i=e.charCodeAt(s+1)))?(n=65536+((1023&n)<<10)+(1023&i),++s,t[r++]=n>>18|240,t[r++]=n>>12&63|128,t[r++]=n>>6&63|128,t[r++]=63&n|128):(t[r++]=n>>12|224,t[r++]=n>>6&63|128,t[r++]=63&n|128);return r-o}},8392:(e,t,r)=>{t.formatArgs=function(t){if(t[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+t[0]+(this.useColors?"%c ":" ")+"+"+e.exports.humanize(this.diff),!this.useColors)return;const r="color: "+this.color;t.splice(1,0,r,"color: inherit");let n=0,i=0;t[0].replace(/%[a-zA-Z%]/g,(e=>{"%%"!==e&&(n++,"%c"===e&&(i=n))})),t.splice(i,0,r)},t.save=function(e){try{e?t.storage.setItem("debug",e):t.storage.removeItem("debug")}catch(r){}},t.load=function(){let e;try{e=t.storage.getItem("debug")}catch(r){}!e&&"undefined"!==typeof process&&"env"in process&&(e={NODE_ENV:"production",PUBLIC_URL:"/web-chat",WDS_SOCKET_HOST:void 0,WDS_SOCKET_PATH:void 0,WDS_SOCKET_PORT:void 0,FAST_REFRESH:!0}.DEBUG);return e},t.useColors=function(){if("undefined"!==typeof window&&window.process&&("renderer"===window.process.type||window.process.__nwjs))return!0;if("undefined"!==typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;return"undefined"!==typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||"undefined"!==typeof window&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||"undefined"!==typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||"undefined"!==typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)},t.storage=function(){try{return localStorage}catch(e){}}(),t.destroy=(()=>{let e=!1;return()=>{e||(e=!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`."))}})(),t.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"],t.log=console.debug||console.log||(()=>{}),e.exports=r(8472)(t);const{formatters:n}=e.exports;n.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}},8472:(e,t,r)=>{e.exports=function(e){function t(e){let r,i,o,s=null;function a(){for(var e=arguments.length,n=new Array(e),i=0;i<e;i++)n[i]=arguments[i];if(!a.enabled)return;const o=a,s=Number(new Date),c=s-(r||s);o.diff=c,o.prev=r,o.curr=s,r=s,n[0]=t.coerce(n[0]),"string"!==typeof n[0]&&n.unshift("%O");let l=0;n[0]=n[0].replace(/%([a-zA-Z%])/g,((e,r)=>{if("%%"===e)return"%";l++;const i=t.formatters[r];if("function"===typeof i){const t=n[l];e=i.call(o,t),n.splice(l,1),l--}return e})),t.formatArgs.call(o,n);(o.log||t.log).apply(o,n)}return a.namespace=e,a.useColors=t.useColors(),a.color=t.selectColor(e),a.extend=n,a.destroy=t.destroy,Object.defineProperty(a,"enabled",{enumerable:!0,configurable:!1,get:()=>null!==s?s:(i!==t.namespaces&&(i=t.namespaces,o=t.enabled(e)),o),set:e=>{s=e}}),"function"===typeof t.init&&t.init(a),a}function n(e,r){const n=t(this.namespace+("undefined"===typeof r?":":r)+e);return n.log=this.log,n}function i(e){return e.toString().substring(2,e.toString().length-2).replace(/\.\*\?$/,"*")}return t.debug=t,t.default=t,t.coerce=function(e){if(e instanceof Error)return e.stack||e.message;return e},t.disable=function(){const e=[...t.names.map(i),...t.skips.map(i).map((e=>"-"+e))].join(",");return t.enable(""),e},t.enable=function(e){let r;t.save(e),t.namespaces=e,t.names=[],t.skips=[];const n=("string"===typeof e?e:"").split(/[\s,]+/),i=n.length;for(r=0;r<i;r++)n[r]&&("-"===(e=n[r].replace(/\*/g,".*?"))[0]?t.skips.push(new RegExp("^"+e.slice(1)+"$")):t.names.push(new RegExp("^"+e+"$")))},t.enabled=function(e){if("*"===e[e.length-1])return!0;let r,n;for(r=0,n=t.skips.length;r<n;r++)if(t.skips[r].test(e))return!1;for(r=0,n=t.names.length;r<n;r++)if(t.names[r].test(e))return!0;return!1},t.humanize=r(8193),t.destroy=function(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")},Object.keys(e).forEach((r=>{t[r]=e[r]})),t.names=[],t.skips=[],t.formatters={},t.selectColor=function(e){let r=0;for(let t=0;t<e.length;t++)r=(r<<5)-r+e.charCodeAt(t),r|=0;return t.colors[Math.abs(r)%t.colors.length]},t.enable(t.load()),t}},8718:e=>{"use strict";function t(e,t){t=t||{};this._capacity=t.capacity,this._head=0,this._tail=0,Array.isArray(e)?this._fromArray(e):(this._capacityMask=3,this._list=new Array(4))}t.prototype.peekAt=function(e){var t=e;if(t===(0|t)){var r=this.size();if(!(t>=r||t<-r))return t<0&&(t+=r),t=this._head+t&this._capacityMask,this._list[t]}},t.prototype.get=function(e){return this.peekAt(e)},t.prototype.peek=function(){if(this._head!==this._tail)return this._list[this._head]},t.prototype.peekFront=function(){return this.peek()},t.prototype.peekBack=function(){return this.peekAt(-1)},Object.defineProperty(t.prototype,"length",{get:function(){return this.size()}}),t.prototype.size=function(){return this._head===this._tail?0:this._head<this._tail?this._tail-this._head:this._capacityMask+1-(this._head-this._tail)},t.prototype.unshift=function(e){if(0===arguments.length)return this.size();var t=this._list.length;return this._head=this._head-1+t&this._capacityMask,this._list[this._head]=e,this._tail===this._head&&this._growArray(),this._capacity&&this.size()>this._capacity&&this.pop(),this._head<this._tail?this._tail-this._head:this._capacityMask+1-(this._head-this._tail)},t.prototype.shift=function(){var e=this._head;if(e!==this._tail){var t=this._list[e];return this._list[e]=void 0,this._head=e+1&this._capacityMask,e<2&&this._tail>1e4&&this._tail<=this._list.length>>>2&&this._shrinkArray(),t}},t.prototype.push=function(e){if(0===arguments.length)return this.size();var t=this._tail;return this._list[t]=e,this._tail=t+1&this._capacityMask,this._tail===this._head&&this._growArray(),this._capacity&&this.size()>this._capacity&&this.shift(),this._head<this._tail?this._tail-this._head:this._capacityMask+1-(this._head-this._tail)},t.prototype.pop=function(){var e=this._tail;if(e!==this._head){var t=this._list.length;this._tail=e-1+t&this._capacityMask;var r=this._list[this._tail];return this._list[this._tail]=void 0,this._head<2&&e>1e4&&e<=t>>>2&&this._shrinkArray(),r}},t.prototype.removeOne=function(e){var t=e;if(t===(0|t)&&this._head!==this._tail){var r=this.size(),n=this._list.length;if(!(t>=r||t<-r)){t<0&&(t+=r),t=this._head+t&this._capacityMask;var i,o=this._list[t];if(e<r/2){for(i=e;i>0;i--)this._list[t]=this._list[t=t-1+n&this._capacityMask];this._list[t]=void 0,this._head=this._head+1+n&this._capacityMask}else{for(i=r-1-e;i>0;i--)this._list[t]=this._list[t=t+1+n&this._capacityMask];this._list[t]=void 0,this._tail=this._tail-1+n&this._capacityMask}return o}}},t.prototype.remove=function(e,t){var r,n=e,i=t;if(n===(0|n)&&this._head!==this._tail){var o=this.size(),s=this._list.length;if(!(n>=o||n<-o||t<1)){if(n<0&&(n+=o),1===t||!t)return(r=new Array(1))[0]=this.removeOne(n),r;if(0===n&&n+t>=o)return r=this.toArray(),this.clear(),r;var a;for(n+t>o&&(t=o-n),r=new Array(t),a=0;a<t;a++)r[a]=this._list[this._head+n+a&this._capacityMask];if(n=this._head+n&this._capacityMask,e+t===o){for(this._tail=this._tail-t+s&this._capacityMask,a=t;a>0;a--)this._list[n=n+1+s&this._capacityMask]=void 0;return r}if(0===e){for(this._head=this._head+t+s&this._capacityMask,a=t-1;a>0;a--)this._list[n=n+1+s&this._capacityMask]=void 0;return r}if(n<o/2){for(this._head=this._head+e+t+s&this._capacityMask,a=e;a>0;a--)this.unshift(this._list[n=n-1+s&this._capacityMask]);for(n=this._head-1+s&this._capacityMask;i>0;)this._list[n=n-1+s&this._capacityMask]=void 0,i--;e<0&&(this._tail=n)}else{for(this._tail=n,n=n+t+s&this._capacityMask,a=o-(t+e);a>0;a--)this.push(this._list[n++]);for(n=this._tail;i>0;)this._list[n=n+1+s&this._capacityMask]=void 0,i--}return this._head<2&&this._tail>1e4&&this._tail<=s>>>2&&this._shrinkArray(),r}}},t.prototype.splice=function(e,t){var r=e;if(r===(0|r)){var n=this.size();if(r<0&&(r+=n),!(r>n)){if(arguments.length>2){var i,o,s,a=arguments.length,c=this._list.length,l=2;if(!n||r<n/2){for(o=new Array(r),i=0;i<r;i++)o[i]=this._list[this._head+i&this._capacityMask];for(0===t?(s=[],r>0&&(this._head=this._head+r+c&this._capacityMask)):(s=this.remove(r,t),this._head=this._head+r+c&this._capacityMask);a>l;)this.unshift(arguments[--a]);for(i=r;i>0;i--)this.unshift(o[i-1])}else{var u=(o=new Array(n-(r+t))).length;for(i=0;i<u;i++)o[i]=this._list[this._head+r+t+i&this._capacityMask];for(0===t?(s=[],r!=n&&(this._tail=this._head+r+c&this._capacityMask)):(s=this.remove(r,t),this._tail=this._tail-u+c&this._capacityMask);l<a;)this.push(arguments[l++]);for(i=0;i<u;i++)this.push(o[i])}return s}return this.remove(r,t)}}},t.prototype.clear=function(){this._list=new Array(this._list.length),this._head=0,this._tail=0},t.prototype.isEmpty=function(){return this._head===this._tail},t.prototype.toArray=function(){return this._copyArray(!1)},t.prototype._fromArray=function(e){var t=e.length,r=this._nextPowerOf2(t);this._list=new Array(r),this._capacityMask=r-1,this._tail=t;for(var n=0;n<t;n++)this._list[n]=e[n]},t.prototype._copyArray=function(e,t){var r=this._list,n=r.length,i=this.length;if((t|=i)==i&&this._head<this._tail)return this._list.slice(this._head,this._tail);var o,s=new Array(t),a=0;if(e||this._head>this._tail){for(o=this._head;o<n;o++)s[a++]=r[o];for(o=0;o<this._tail;o++)s[a++]=r[o]}else for(o=this._head;o<this._tail;o++)s[a++]=r[o];return s},t.prototype._growArray=function(){if(0!=this._head){var e=this._copyArray(!0,this._list.length<<1);this._tail=this._list.length,this._head=0,this._list=e}else this._tail=this._list.length,this._list.length<<=1;this._capacityMask=this._capacityMask<<1|1},t.prototype._shrinkArray=function(){this._list.length>>>=1,this._capacityMask>>>=1},t.prototype._nextPowerOf2=function(e){var t=1<<Math.log(e)/Math.log(2)+1;return Math.max(t,4)},e.exports=t},7963:e=>{"use strict";function t(e,t){for(const r in t)Object.defineProperty(e,r,{value:t[r],enumerable:!0,configurable:!0});return e}e.exports=function(e,r,n){if(!e||"string"===typeof e)throw new TypeError("Please pass an Error to err-code");n||(n={}),"object"===typeof r&&(n=r,r=""),r&&(n.code=r);try{return t(e,n)}catch(i){n.message=e.message,n.stack=e.stack;const r=function(){};r.prototype=Object.create(Object.getPrototypeOf(e));return t(new r,n)}}},3634:(e,t,r)=>{"use strict";const n=r(5413);t.zN=n.EventIterator,n.EventIterator},5413:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});class r{constructor(){this.pullQueue=[],this.pushQueue=[],this.eventHandlers={},this.isPaused=!1,this.isStopped=!1}push(e){if(this.isStopped)return;const t={value:e,done:!1};if(this.pullQueue.length){const e=this.pullQueue.shift();e&&e.resolve(t)}else this.pushQueue.push(Promise.resolve(t)),void 0!==this.highWaterMark&&this.pushQueue.length>=this.highWaterMark&&!this.isPaused&&(this.isPaused=!0,this.eventHandlers.highWater?this.eventHandlers.highWater():console&&console.warn("EventIterator queue reached ".concat(this.pushQueue.length," items")))}stop(){if(!this.isStopped){this.isStopped=!0,this.remove();for(const e of this.pullQueue)e.resolve({value:void 0,done:!0});this.pullQueue.length=0}}fail(e){if(!this.isStopped)if(this.isStopped=!0,this.remove(),this.pullQueue.length){for(const t of this.pullQueue)t.reject(e);this.pullQueue.length=0}else{const t=Promise.reject(e);t.catch((()=>{})),this.pushQueue.push(t)}}remove(){Promise.resolve().then((()=>{this.removeCallback&&this.removeCallback()}))}[Symbol.asyncIterator](){return{next:e=>{const t=this.pushQueue.shift();return t?(void 0!==this.lowWaterMark&&this.pushQueue.length<=this.lowWaterMark&&this.isPaused&&(this.isPaused=!1,this.eventHandlers.lowWater&&this.eventHandlers.lowWater()),t):this.isStopped?Promise.resolve({value:void 0,done:!0}):new Promise(((e,t)=>{this.pullQueue.push({resolve:e,reject:t})}))},return:()=>(this.isStopped=!0,this.pushQueue.length=0,this.remove(),Promise.resolve({value:void 0,done:!0}))}}}class n{constructor(e){let{highWaterMark:t=100,lowWaterMark:n=1}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const i=new r;i.highWaterMark=t,i.lowWaterMark=n,i.removeCallback=e({push:e=>i.push(e),stop:()=>i.stop(),fail:e=>i.fail(e),on:(e,t)=>{i.eventHandlers[e]=t}})||(()=>{}),this[Symbol.asyncIterator]=()=>i[Symbol.asyncIterator](),Object.freeze(this)}}t.EventIterator=n,t.default=n},7465:e=>{"use strict";var t,r="object"===typeof Reflect?Reflect:null,n=r&&"function"===typeof r.apply?r.apply:function(e,t,r){return Function.prototype.apply.call(e,t,r)};t=r&&"function"===typeof r.ownKeys?r.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};var i=Number.isNaN||function(e){return e!==e};function o(){o.init.call(this)}e.exports=o,e.exports.once=function(e,t){return new Promise((function(r,n){function i(r){e.removeListener(t,o),n(r)}function o(){"function"===typeof e.removeListener&&e.removeListener("error",i),r([].slice.call(arguments))}y(e,t,o,{once:!0}),"error"!==t&&function(e,t,r){"function"===typeof e.on&&y(e,"error",t,r)}(e,i,{once:!0})}))},o.EventEmitter=o,o.prototype._events=void 0,o.prototype._eventsCount=0,o.prototype._maxListeners=void 0;var s=10;function a(e){if("function"!==typeof e)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}function c(e){return void 0===e._maxListeners?o.defaultMaxListeners:e._maxListeners}function l(e,t,r,n){var i,o,s,l;if(a(r),void 0===(o=e._events)?(o=e._events=Object.create(null),e._eventsCount=0):(void 0!==o.newListener&&(e.emit("newListener",t,r.listener?r.listener:r),o=e._events),s=o[t]),void 0===s)s=o[t]=r,++e._eventsCount;else if("function"===typeof s?s=o[t]=n?[r,s]:[s,r]:n?s.unshift(r):s.push(r),(i=c(e))>0&&s.length>i&&!s.warned){s.warned=!0;var u=new Error("Possible EventEmitter memory leak detected. "+s.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");u.name="MaxListenersExceededWarning",u.emitter=e,u.type=t,u.count=s.length,l=u,console&&console.warn&&console.warn(l)}return e}function u(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function h(e,t,r){var n={fired:!1,wrapFn:void 0,target:e,type:t,listener:r},i=u.bind(n);return i.listener=r,n.wrapFn=i,i}function d(e,t,r){var n=e._events;if(void 0===n)return[];var i=n[t];return void 0===i?[]:"function"===typeof i?r?[i.listener||i]:[i]:r?function(e){for(var t=new Array(e.length),r=0;r<t.length;++r)t[r]=e[r].listener||e[r];return t}(i):f(i,i.length)}function p(e){var t=this._events;if(void 0!==t){var r=t[e];if("function"===typeof r)return 1;if(void 0!==r)return r.length}return 0}function f(e,t){for(var r=new Array(t),n=0;n<t;++n)r[n]=e[n];return r}function y(e,t,r,n){if("function"===typeof e.on)n.once?e.once(t,r):e.on(t,r);else{if("function"!==typeof e.addEventListener)throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof e);e.addEventListener(t,(function i(o){n.once&&e.removeEventListener(t,i),r(o)}))}}Object.defineProperty(o,"defaultMaxListeners",{enumerable:!0,get:function(){return s},set:function(e){if("number"!==typeof e||e<0||i(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");s=e}}),o.init=function(){void 0!==this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},o.prototype.setMaxListeners=function(e){if("number"!==typeof e||e<0||i(e))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+e+".");return this._maxListeners=e,this},o.prototype.getMaxListeners=function(){return c(this)},o.prototype.emit=function(e){for(var t=[],r=1;r<arguments.length;r++)t.push(arguments[r]);var i="error"===e,o=this._events;if(void 0!==o)i=i&&void 0===o.error;else if(!i)return!1;if(i){var s;if(t.length>0&&(s=t[0]),s instanceof Error)throw s;var a=new Error("Unhandled error."+(s?" ("+s.message+")":""));throw a.context=s,a}var c=o[e];if(void 0===c)return!1;if("function"===typeof c)n(c,this,t);else{var l=c.length,u=f(c,l);for(r=0;r<l;++r)n(u[r],this,t)}return!0},o.prototype.addListener=function(e,t){return l(this,e,t,!1)},o.prototype.on=o.prototype.addListener,o.prototype.prependListener=function(e,t){return l(this,e,t,!0)},o.prototype.once=function(e,t){return a(t),this.on(e,h(this,e,t)),this},o.prototype.prependOnceListener=function(e,t){return a(t),this.prependListener(e,h(this,e,t)),this},o.prototype.removeListener=function(e,t){var r,n,i,o,s;if(a(t),void 0===(n=this._events))return this;if(void 0===(r=n[e]))return this;if(r===t||r.listener===t)0===--this._eventsCount?this._events=Object.create(null):(delete n[e],n.removeListener&&this.emit("removeListener",e,r.listener||t));else if("function"!==typeof r){for(i=-1,o=r.length-1;o>=0;o--)if(r[o]===t||r[o].listener===t){s=r[o].listener,i=o;break}if(i<0)return this;0===i?r.shift():function(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}(r,i),1===r.length&&(n[e]=r[0]),void 0!==n.removeListener&&this.emit("removeListener",e,s||t)}return this},o.prototype.off=o.prototype.removeListener,o.prototype.removeAllListeners=function(e){var t,r,n;if(void 0===(r=this._events))return this;if(void 0===r.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==r[e]&&(0===--this._eventsCount?this._events=Object.create(null):delete r[e]),this;if(0===arguments.length){var i,o=Object.keys(r);for(n=0;n<o.length;++n)"removeListener"!==(i=o[n])&&this.removeAllListeners(i);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if("function"===typeof(t=r[e]))this.removeListener(e,t);else if(void 0!==t)for(n=t.length-1;n>=0;n--)this.removeListener(e,t[n]);return this},o.prototype.listeners=function(e){return d(this,e,!0)},o.prototype.rawListeners=function(e){return d(this,e,!1)},o.listenerCount=function(e,t){return"function"===typeof e.listenerCount?e.listenerCount(t):p.call(e,t)},o.prototype.listenerCount=p,o.prototype.eventNames=function(){return this._eventsCount>0?t(this._events):[]}},9437:(e,t,r)=>{var n;!function(){"use strict";var t="object"===typeof window?window:{};!t.HI_BASE32_NO_NODE_JS&&"object"===typeof process&&process.versions&&process.versions.node&&(t=r.g);var i=!t.HI_BASE32_NO_COMMON_JS&&e.exports,o=r.amdO,s="ABCDEFGHIJKLMNOPQRSTUVWXYZ234567".split(""),a={A:0,B:1,C:2,D:3,E:4,F:5,G:6,H:7,I:8,J:9,K:10,L:11,M:12,N:13,O:14,P:15,Q:16,R:17,S:18,T:19,U:20,V:21,W:22,X:23,Y:24,Z:25,2:26,3:27,4:28,5:29,6:30,7:31},c=[0,0,0,0,0,0,0,0],l=function(e,t){t.length>10&&(t="..."+t.substr(-10));var r=new Error("Decoded data is not valid UTF-8. Maybe try base32.decode.asBytes()? Partial data after reading "+e+" bytes: "+t+" <-");throw r.position=e,r},u=function(e){if(""===e)return[];if(!/^[A-Z2-7=]+$/.test(e))throw new Error("Invalid base32 characters");for(var t,r,n,i,o,s,c,l,u=[],h=0,d=(e=e.replace(/=/g,"")).length,p=0,f=d>>3<<3;p<f;)t=a[e.charAt(p++)],r=a[e.charAt(p++)],n=a[e.charAt(p++)],i=a[e.charAt(p++)],o=a[e.charAt(p++)],s=a[e.charAt(p++)],c=a[e.charAt(p++)],l=a[e.charAt(p++)],u[h++]=255&(t<<3|r>>>2),u[h++]=255&(r<<6|n<<1|i>>>4),u[h++]=255&(i<<4|o>>>1),u[h++]=255&(o<<7|s<<2|c>>>3),u[h++]=255&(c<<5|l);var y=d-f;return 2===y?(t=a[e.charAt(p++)],r=a[e.charAt(p++)],u[h++]=255&(t<<3|r>>>2)):4===y?(t=a[e.charAt(p++)],r=a[e.charAt(p++)],n=a[e.charAt(p++)],i=a[e.charAt(p++)],u[h++]=255&(t<<3|r>>>2),u[h++]=255&(r<<6|n<<1|i>>>4)):5===y?(t=a[e.charAt(p++)],r=a[e.charAt(p++)],n=a[e.charAt(p++)],i=a[e.charAt(p++)],o=a[e.charAt(p++)],u[h++]=255&(t<<3|r>>>2),u[h++]=255&(r<<6|n<<1|i>>>4),u[h++]=255&(i<<4|o>>>1)):7===y&&(t=a[e.charAt(p++)],r=a[e.charAt(p++)],n=a[e.charAt(p++)],i=a[e.charAt(p++)],o=a[e.charAt(p++)],s=a[e.charAt(p++)],c=a[e.charAt(p++)],u[h++]=255&(t<<3|r>>>2),u[h++]=255&(r<<6|n<<1|i>>>4),u[h++]=255&(i<<4|o>>>1),u[h++]=255&(o<<7|s<<2|c>>>3)),u},h=function(e,t){if(!t)return function(e){for(var t,r,n="",i=e.length,o=0,s=0;o<i;)if((t=e[o++])<=127)n+=String.fromCharCode(t);else{t>191&&t<=223?(r=31&t,s=1):t<=239?(r=15&t,s=2):t<=247?(r=7&t,s=3):l(o,n);for(var a=0;a<s;++a)((t=e[o++])<128||t>191)&&l(o,n),r<<=6,r+=63&t;r>=55296&&r<=57343&&l(o,n),r>1114111&&l(o,n),r<=65535?n+=String.fromCharCode(r):(r-=65536,n+=String.fromCharCode(55296+(r>>10)),n+=String.fromCharCode(56320+(1023&r)))}return n}(u(e));if(""===e)return"";if(!/^[A-Z2-7=]+$/.test(e))throw new Error("Invalid base32 characters");var r,n,i,o,s,c,h,d,p="",f=e.indexOf("=");-1===f&&(f=e.length);for(var y=0,g=f>>3<<3;y<g;)r=a[e.charAt(y++)],n=a[e.charAt(y++)],i=a[e.charAt(y++)],o=a[e.charAt(y++)],s=a[e.charAt(y++)],c=a[e.charAt(y++)],h=a[e.charAt(y++)],d=a[e.charAt(y++)],p+=String.fromCharCode(255&(r<<3|n>>>2))+String.fromCharCode(255&(n<<6|i<<1|o>>>4))+String.fromCharCode(255&(o<<4|s>>>1))+String.fromCharCode(255&(s<<7|c<<2|h>>>3))+String.fromCharCode(255&(h<<5|d));var m=f-g;return 2===m?(r=a[e.charAt(y++)],n=a[e.charAt(y++)],p+=String.fromCharCode(255&(r<<3|n>>>2))):4===m?(r=a[e.charAt(y++)],n=a[e.charAt(y++)],i=a[e.charAt(y++)],o=a[e.charAt(y++)],p+=String.fromCharCode(255&(r<<3|n>>>2))+String.fromCharCode(255&(n<<6|i<<1|o>>>4))):5===m?(r=a[e.charAt(y++)],n=a[e.charAt(y++)],i=a[e.charAt(y++)],o=a[e.charAt(y++)],s=a[e.charAt(y++)],p+=String.fromCharCode(255&(r<<3|n>>>2))+String.fromCharCode(255&(n<<6|i<<1|o>>>4))+String.fromCharCode(255&(o<<4|s>>>1))):7===m&&(r=a[e.charAt(y++)],n=a[e.charAt(y++)],i=a[e.charAt(y++)],o=a[e.charAt(y++)],s=a[e.charAt(y++)],c=a[e.charAt(y++)],h=a[e.charAt(y++)],p+=String.fromCharCode(255&(r<<3|n>>>2))+String.fromCharCode(255&(n<<6|i<<1|o>>>4))+String.fromCharCode(255&(o<<4|s>>>1))+String.fromCharCode(255&(s<<7|c<<2|h>>>3))),p},d={encode:function(e,t){var r="string"!==typeof e;return r&&e.constructor===ArrayBuffer&&(e=new Uint8Array(e)),r?function(e){for(var t,r,n,i,o,a="",c=e.length,l=0,u=5*parseInt(c/5);l<u;)t=e[l++],r=e[l++],n=e[l++],i=e[l++],o=e[l++],a+=s[t>>>3]+s[31&(t<<2|r>>>6)]+s[r>>>1&31]+s[31&(r<<4|n>>>4)]+s[31&(n<<1|i>>>7)]+s[i>>>2&31]+s[31&(i<<3|o>>>5)]+s[31&o];var h=c-u;return 1===h?(t=e[l],a+=s[t>>>3]+s[t<<2&31]+"======"):2===h?(t=e[l++],r=e[l],a+=s[t>>>3]+s[31&(t<<2|r>>>6)]+s[r>>>1&31]+s[r<<4&31]+"===="):3===h?(t=e[l++],r=e[l++],n=e[l],a+=s[t>>>3]+s[31&(t<<2|r>>>6)]+s[r>>>1&31]+s[31&(r<<4|n>>>4)]+s[n<<1&31]+"==="):4===h&&(t=e[l++],r=e[l++],n=e[l++],i=e[l],a+=s[t>>>3]+s[31&(t<<2|r>>>6)]+s[r>>>1&31]+s[31&(r<<4|n>>>4)]+s[31&(n<<1|i>>>7)]+s[i>>>2&31]+s[i<<3&31]+"="),a}(e):t?function(e){for(var t,r,n,i,o,a="",c=e.length,l=0,u=5*parseInt(c/5);l<u;)t=e.charCodeAt(l++),r=e.charCodeAt(l++),n=e.charCodeAt(l++),i=e.charCodeAt(l++),o=e.charCodeAt(l++),a+=s[t>>>3]+s[31&(t<<2|r>>>6)]+s[r>>>1&31]+s[31&(r<<4|n>>>4)]+s[31&(n<<1|i>>>7)]+s[i>>>2&31]+s[31&(i<<3|o>>>5)]+s[31&o];var h=c-u;return 1===h?(t=e.charCodeAt(l),a+=s[t>>>3]+s[t<<2&31]+"======"):2===h?(t=e.charCodeAt(l++),r=e.charCodeAt(l),a+=s[t>>>3]+s[31&(t<<2|r>>>6)]+s[r>>>1&31]+s[r<<4&31]+"===="):3===h?(t=e.charCodeAt(l++),r=e.charCodeAt(l++),n=e.charCodeAt(l),a+=s[t>>>3]+s[31&(t<<2|r>>>6)]+s[r>>>1&31]+s[31&(r<<4|n>>>4)]+s[n<<1&31]+"==="):4===h&&(t=e.charCodeAt(l++),r=e.charCodeAt(l++),n=e.charCodeAt(l++),i=e.charCodeAt(l),a+=s[t>>>3]+s[31&(t<<2|r>>>6)]+s[r>>>1&31]+s[31&(r<<4|n>>>4)]+s[31&(n<<1|i>>>7)]+s[i>>>2&31]+s[i<<3&31]+"="),a}(e):function(e){var t,r,n,i,o,a,l,u=!1,h="",d=0,p=0,f=e.length;if(""===e)return h;do{for(c[0]=c[5],c[1]=c[6],c[2]=c[7],l=p;d<f&&l<5;++d)(a=e.charCodeAt(d))<128?c[l++]=a:a<2048?(c[l++]=192|a>>6,c[l++]=128|63&a):a<55296||a>=57344?(c[l++]=224|a>>12,c[l++]=128|a>>6&63,c[l++]=128|63&a):(a=65536+((1023&a)<<10|1023&e.charCodeAt(++d)),c[l++]=240|a>>18,c[l++]=128|a>>12&63,c[l++]=128|a>>6&63,c[l++]=128|63&a);p=l-5,d===f&&++d,d>f&&l<6&&(u=!0),t=c[0],l>4?(r=c[1],n=c[2],i=c[3],o=c[4],h+=s[t>>>3]+s[31&(t<<2|r>>>6)]+s[r>>>1&31]+s[31&(r<<4|n>>>4)]+s[31&(n<<1|i>>>7)]+s[i>>>2&31]+s[31&(i<<3|o>>>5)]+s[31&o]):1===l?h+=s[t>>>3]+s[t<<2&31]+"======":2===l?(r=c[1],h+=s[t>>>3]+s[31&(t<<2|r>>>6)]+s[r>>>1&31]+s[r<<4&31]+"===="):3===l?(r=c[1],n=c[2],h+=s[t>>>3]+s[31&(t<<2|r>>>6)]+s[r>>>1&31]+s[31&(r<<4|n>>>4)]+s[n<<1&31]+"==="):(r=c[1],n=c[2],i=c[3],h+=s[t>>>3]+s[31&(t<<2|r>>>6)]+s[r>>>1&31]+s[31&(r<<4|n>>>4)]+s[31&(n<<1|i>>>7)]+s[i>>>2&31]+s[i<<3&31]+"=")}while(!u);return h}(e)},decode:h};h.asBytes=u,i?e.exports=d:(t.base32=d,o&&(void 0===(n=function(){return d}.call(d,r,d,e))||(e.exports=n)))}()},7201:function(e){!function(t){"use strict";const r="(0?\\d+|0x[a-f0-9]+)",n={fourOctet:new RegExp("^".concat(r,"\\.").concat(r,"\\.").concat(r,"\\.").concat(r,"$"),"i"),threeOctet:new RegExp("^".concat(r,"\\.").concat(r,"\\.").concat(r,"$"),"i"),twoOctet:new RegExp("^".concat(r,"\\.").concat(r,"$"),"i"),longValue:new RegExp("^".concat(r,"$"),"i")},i=new RegExp("^0[0-7]+$","i"),o=new RegExp("^0x[a-f0-9]+$","i"),s="%[0-9a-z]{1,}",a="(?:[0-9a-f]+::?)+",c={zoneIndex:new RegExp(s,"i"),native:new RegExp("^(::)?(".concat(a,")?([0-9a-f]+)?(::)?(").concat(s,")?$"),"i"),deprecatedTransitional:new RegExp("^(?:::)(".concat(r,"\\.").concat(r,"\\.").concat(r,"\\.").concat(r,"(").concat(s,")?)$"),"i"),transitional:new RegExp("^((?:".concat(a,")|(?:::)(?:").concat(a,")?)").concat(r,"\\.").concat(r,"\\.").concat(r,"\\.").concat(r,"(").concat(s,")?$"),"i")};function l(e,t){if(e.indexOf("::")!==e.lastIndexOf("::"))return null;let r,n,i=0,o=-1,s=(e.match(c.zoneIndex)||[])[0];for(s&&(s=s.substring(1),e=e.replace(/%.+$/,""));(o=e.indexOf(":",o+1))>=0;)i++;if("::"===e.substr(0,2)&&i--,"::"===e.substr(-2,2)&&i--,i>t)return null;for(n=t-i,r=":";n--;)r+="0:";return":"===(e=e.replace("::",r))[0]&&(e=e.slice(1)),":"===e[e.length-1]&&(e=e.slice(0,-1)),{parts:t=function(){const t=e.split(":"),r=[];for(let e=0;e<t.length;e++)r.push(parseInt(t[e],16));return r}(),zoneId:s}}function u(e,t,r,n){if(e.length!==t.length)throw new Error("ipaddr: cannot match CIDR for objects with different lengths");let i,o=0;for(;n>0;){if(i=r-n,i<0&&(i=0),e[o]>>i!==t[o]>>i)return!1;n-=r,o+=1}return!0}function h(e){if(o.test(e))return parseInt(e,16);if("0"===e[0]&&!isNaN(parseInt(e[1],10))){if(i.test(e))return parseInt(e,8);throw new Error("ipaddr: cannot parse ".concat(e," as octal"))}return parseInt(e,10)}function d(e,t){for(;e.length<t;)e="0".concat(e);return e}const p={};p.IPv4=function(){function e(e){if(4!==e.length)throw new Error("ipaddr: ipv4 octet count should be 4");let t,r;for(t=0;t<e.length;t++)if(r=e[t],!(0<=r&&r<=255))throw new Error("ipaddr: ipv4 octet should fit in 8 bits");this.octets=e}return e.prototype.SpecialRanges={unspecified:[[new e([0,0,0,0]),8]],broadcast:[[new e([255,255,255,255]),32]],multicast:[[new e([224,0,0,0]),4]],linkLocal:[[new e([169,254,0,0]),16]],loopback:[[new e([127,0,0,0]),8]],carrierGradeNat:[[new e([100,64,0,0]),10]],private:[[new e([10,0,0,0]),8],[new e([172,16,0,0]),12],[new e([192,168,0,0]),16]],reserved:[[new e([192,0,0,0]),24],[new e([192,0,2,0]),24],[new e([192,88,99,0]),24],[new e([198,18,0,0]),15],[new e([198,51,100,0]),24],[new e([203,0,113,0]),24],[new e([240,0,0,0]),4]]},e.prototype.kind=function(){return"ipv4"},e.prototype.match=function(e,t){let r;if(void 0===t&&(r=e,e=r[0],t=r[1]),"ipv4"!==e.kind())throw new Error("ipaddr: cannot match ipv4 address with non-ipv4 one");return u(this.octets,e.octets,8,t)},e.prototype.prefixLengthFromSubnetMask=function(){let e=0,t=!1;const r={0:8,128:7,192:6,224:5,240:4,248:3,252:2,254:1,255:0};let n,i,o;for(n=3;n>=0;n-=1){if(i=this.octets[n],!(i in r))return null;if(o=r[i],t&&0!==o)return null;8!==o&&(t=!0),e+=o}return 32-e},e.prototype.range=function(){return p.subnetMatch(this,this.SpecialRanges)},e.prototype.toByteArray=function(){return this.octets.slice(0)},e.prototype.toIPv4MappedAddress=function(){return p.IPv6.parse("::ffff:".concat(this.toString()))},e.prototype.toNormalizedString=function(){return this.toString()},e.prototype.toString=function(){return this.octets.join(".")},e}(),p.IPv4.broadcastAddressFromCIDR=function(e){try{const t=this.parseCIDR(e),r=t[0].toByteArray(),n=this.subnetMaskFromPrefixLength(t[1]).toByteArray(),i=[];let o=0;for(;o<4;)i.push(parseInt(r[o],10)|255^parseInt(n[o],10)),o++;return new this(i)}catch(t){throw new Error("ipaddr: the address does not have IPv4 CIDR format")}},p.IPv4.isIPv4=function(e){return null!==this.parser(e)},p.IPv4.isValid=function(e){try{return new this(this.parser(e)),!0}catch(t){return!1}},p.IPv4.isValidFourPartDecimal=function(e){return!(!p.IPv4.isValid(e)||!e.match(/^(0|[1-9]\d*)(\.(0|[1-9]\d*)){3}$/))},p.IPv4.networkAddressFromCIDR=function(e){let t,r,n,i,o;try{for(t=this.parseCIDR(e),n=t[0].toByteArray(),o=this.subnetMaskFromPrefixLength(t[1]).toByteArray(),i=[],r=0;r<4;)i.push(parseInt(n[r],10)&parseInt(o[r],10)),r++;return new this(i)}catch(s){throw new Error("ipaddr: the address does not have IPv4 CIDR format")}},p.IPv4.parse=function(e){const t=this.parser(e);if(null===t)throw new Error("ipaddr: string is not formatted like an IPv4 Address");return new this(t)},p.IPv4.parseCIDR=function(e){let t;if(t=e.match(/^(.+)\/(\d+)$/)){const e=parseInt(t[2]);if(e>=0&&e<=32){const r=[this.parse(t[1]),e];return Object.defineProperty(r,"toString",{value:function(){return this.join("/")}}),r}}throw new Error("ipaddr: string is not formatted like an IPv4 CIDR range")},p.IPv4.parser=function(e){let t,r,i;if(t=e.match(n.fourOctet))return function(){const e=t.slice(1,6),n=[];for(let t=0;t<e.length;t++)r=e[t],n.push(h(r));return n}();if(t=e.match(n.longValue)){if(i=h(t[1]),i>4294967295||i<0)throw new Error("ipaddr: address outside defined range");return function(){const e=[];let t;for(t=0;t<=24;t+=8)e.push(i>>t&255);return e}().reverse()}return(t=e.match(n.twoOctet))?function(){const e=t.slice(1,4),r=[];if(i=h(e[1]),i>16777215||i<0)throw new Error("ipaddr: address outside defined range");return r.push(h(e[0])),r.push(i>>16&255),r.push(i>>8&255),r.push(255&i),r}():(t=e.match(n.threeOctet))?function(){const e=t.slice(1,5),r=[];if(i=h(e[2]),i>65535||i<0)throw new Error("ipaddr: address outside defined range");return r.push(h(e[0])),r.push(h(e[1])),r.push(i>>8&255),r.push(255&i),r}():null},p.IPv4.subnetMaskFromPrefixLength=function(e){if((e=parseInt(e))<0||e>32)throw new Error("ipaddr: invalid IPv4 prefix length");const t=[0,0,0,0];let r=0;const n=Math.floor(e/8);for(;r<n;)t[r]=255,r++;return n<4&&(t[n]=Math.pow(2,e%8)-1<<8-e%8),new this(t)},p.IPv6=function(){function e(e,t){let r,n;if(16===e.length)for(this.parts=[],r=0;r<=14;r+=2)this.parts.push(e[r]<<8|e[r+1]);else{if(8!==e.length)throw new Error("ipaddr: ipv6 part count should be 8 or 16");this.parts=e}for(r=0;r<this.parts.length;r++)if(n=this.parts[r],!(0<=n&&n<=65535))throw new Error("ipaddr: ipv6 part should fit in 16 bits");t&&(this.zoneId=t)}return e.prototype.SpecialRanges={unspecified:[new e([0,0,0,0,0,0,0,0]),128],linkLocal:[new e([65152,0,0,0,0,0,0,0]),10],multicast:[new e([65280,0,0,0,0,0,0,0]),8],loopback:[new e([0,0,0,0,0,0,0,1]),128],uniqueLocal:[new e([64512,0,0,0,0,0,0,0]),7],ipv4Mapped:[new e([0,0,0,0,0,65535,0,0]),96],rfc6145:[new e([0,0,0,0,65535,0,0,0]),96],rfc6052:[new e([100,65435,0,0,0,0,0,0]),96],"6to4":[new e([8194,0,0,0,0,0,0,0]),16],teredo:[new e([8193,0,0,0,0,0,0,0]),32],reserved:[[new e([8193,3512,0,0,0,0,0,0]),32]],benchmarking:[new e([8193,2,0,0,0,0,0,0]),48],amt:[new e([8193,3,0,0,0,0,0,0]),32],as112v6:[new e([8193,4,274,0,0,0,0,0]),48],deprecated:[new e([8193,16,0,0,0,0,0,0]),28],orchid2:[new e([8193,32,0,0,0,0,0,0]),28]},e.prototype.isIPv4MappedAddress=function(){return"ipv4Mapped"===this.range()},e.prototype.kind=function(){return"ipv6"},e.prototype.match=function(e,t){let r;if(void 0===t&&(r=e,e=r[0],t=r[1]),"ipv6"!==e.kind())throw new Error("ipaddr: cannot match ipv6 address with non-ipv6 one");return u(this.parts,e.parts,16,t)},e.prototype.prefixLengthFromSubnetMask=function(){let e=0,t=!1;const r={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};let n,i;for(let o=7;o>=0;o-=1){if(n=this.parts[o],!(n in r))return null;if(i=r[n],t&&0!==i)return null;16!==i&&(t=!0),e+=i}return 128-e},e.prototype.range=function(){return p.subnetMatch(this,this.SpecialRanges)},e.prototype.toByteArray=function(){let e;const t=[],r=this.parts;for(let n=0;n<r.length;n++)e=r[n],t.push(e>>8),t.push(255&e);return t},e.prototype.toFixedLengthString=function(){const e=function(){const e=[];for(let t=0;t<this.parts.length;t++)e.push(d(this.parts[t].toString(16),4));return e}.call(this).join(":");let t="";return this.zoneId&&(t="%".concat(this.zoneId)),e+t},e.prototype.toIPv4Address=function(){if(!this.isIPv4MappedAddress())throw new Error("ipaddr: trying to convert a generic ipv6 address to ipv4");const e=this.parts.slice(-2),t=e[0],r=e[1];return new p.IPv4([t>>8,255&t,r>>8,255&r])},e.prototype.toNormalizedString=function(){const e=function(){const e=[];for(let t=0;t<this.parts.length;t++)e.push(this.parts[t].toString(16));return e}.call(this).join(":");let t="";return this.zoneId&&(t="%".concat(this.zoneId)),e+t},e.prototype.toRFC5952String=function(){const e=/((^|:)(0(:|$)){2,})/g,t=this.toNormalizedString();let r,n=0,i=-1;for(;r=e.exec(t);)r[0].length>i&&(n=r.index,i=r[0].length);return i<0?t:"".concat(t.substring(0,n),"::").concat(t.substring(n+i))},e.prototype.toString=function(){return this.toRFC5952String()},e}(),p.IPv6.broadcastAddressFromCIDR=function(e){try{const t=this.parseCIDR(e),r=t[0].toByteArray(),n=this.subnetMaskFromPrefixLength(t[1]).toByteArray(),i=[];let o=0;for(;o<16;)i.push(parseInt(r[o],10)|255^parseInt(n[o],10)),o++;return new this(i)}catch(t){throw new Error("ipaddr: the address does not have IPv6 CIDR format (".concat(t,")"))}},p.IPv6.isIPv6=function(e){return null!==this.parser(e)},p.IPv6.isValid=function(e){if("string"===typeof e&&-1===e.indexOf(":"))return!1;try{const t=this.parser(e);return new this(t.parts,t.zoneId),!0}catch(t){return!1}},p.IPv6.networkAddressFromCIDR=function(e){let t,r,n,i,o;try{for(t=this.parseCIDR(e),n=t[0].toByteArray(),o=this.subnetMaskFromPrefixLength(t[1]).toByteArray(),i=[],r=0;r<16;)i.push(parseInt(n[r],10)&parseInt(o[r],10)),r++;return new this(i)}catch(s){throw new Error("ipaddr: the address does not have IPv6 CIDR format (".concat(s,")"))}},p.IPv6.parse=function(e){const t=this.parser(e);if(null===t.parts)throw new Error("ipaddr: string is not formatted like an IPv6 Address");return new this(t.parts,t.zoneId)},p.IPv6.parseCIDR=function(e){let t,r,n;if((r=e.match(/^(.+)\/(\d+)$/))&&(t=parseInt(r[2]),t>=0&&t<=128))return n=[this.parse(r[1]),t],Object.defineProperty(n,"toString",{value:function(){return this.join("/")}}),n;throw new Error("ipaddr: string is not formatted like an IPv6 CIDR range")},p.IPv6.parser=function(e){let t,r,n,i,o,s;if(n=e.match(c.deprecatedTransitional))return this.parser("::ffff:".concat(n[1]));if(c.native.test(e))return l(e,8);if((n=e.match(c.transitional))&&(s=n[6]||"",t=l(n[1].slice(0,-1)+s,6),t.parts)){for(o=[parseInt(n[2]),parseInt(n[3]),parseInt(n[4]),parseInt(n[5])],r=0;r<o.length;r++)if(i=o[r],!(0<=i&&i<=255))return null;return t.parts.push(o[0]<<8|o[1]),t.parts.push(o[2]<<8|o[3]),{parts:t.parts,zoneId:t.zoneId}}return null},p.IPv6.subnetMaskFromPrefixLength=function(e){if((e=parseInt(e))<0||e>128)throw new Error("ipaddr: invalid IPv6 prefix length");const t=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];let r=0;const n=Math.floor(e/8);for(;r<n;)t[r]=255,r++;return n<16&&(t[n]=Math.pow(2,e%8)-1<<8-e%8),new this(t)},p.fromByteArray=function(e){const t=e.length;if(4===t)return new p.IPv4(e);if(16===t)return new p.IPv6(e);throw new Error("ipaddr: the binary input is neither an IPv6 nor IPv4 address")},p.isValid=function(e){return p.IPv6.isValid(e)||p.IPv4.isValid(e)},p.parse=function(e){if(p.IPv6.isValid(e))return p.IPv6.parse(e);if(p.IPv4.isValid(e))return p.IPv4.parse(e);throw new Error("ipaddr: the address has neither IPv6 nor IPv4 format")},p.parseCIDR=function(e){try{return p.IPv6.parseCIDR(e)}catch(t){try{return p.IPv4.parseCIDR(e)}catch(r){throw new Error("ipaddr: the address has neither IPv6 nor IPv4 CIDR format")}}},p.process=function(e){const t=this.parse(e);return"ipv6"===t.kind()&&t.isIPv4MappedAddress()?t.toIPv4Address():t},p.subnetMatch=function(e,t,r){let n,i,o,s;for(i in void 0!==r&&null!==r||(r="unicast"),t)if(Object.prototype.hasOwnProperty.call(t,i))for(o=t[i],!o[0]||o[0]instanceof Array||(o=[o]),n=0;n<o.length;n++)if(s=o[n],e.kind()===s[0].kind()&&e.match.apply(e,s))return i;return r},e.exports?e.exports=p:t.ipaddr=p}(this)},2193:e=>{e.exports=function(){return"undefined"!==typeof window&&"object"===typeof window.process&&"renderer"===window.process.type||(!("undefined"===typeof process||"object"!==typeof process.versions||!process.versions.electron)||"object"===typeof navigator&&"string"===typeof navigator.userAgent&&navigator.userAgent.indexOf("Electron")>=0)}},887:e=>{"use strict";e.exports=e=>{if("[object Object]"!==Object.prototype.toString.call(e))return!1;const t=Object.getPrototypeOf(e);return null===t||t===Object.prototype}},6791:(e,t,r)=>{"use strict";const{URLWithLegacySupport:n,format:i,URLSearchParams:o,defaultBase:s}=r(5732),a=r(9640);e.exports={URL:n,URLSearchParams:o,format:i,relative:a,defaultBase:s}},9640:(e,t,r)=>{"use strict";const{URLWithLegacySupport:n,format:i}=r(5732);e.exports=function(e){let t,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},s=arguments.length>3?arguments[3]:void 0,a=r.protocol?r.protocol.replace(":",""):"http";a=(o[a]||s||a)+":";try{t=new n(e)}catch(l){t={}}const c=Object.assign({},r,{protocol:a||t.protocol,host:r.host||t.host});return new n(e,i(c)).toString()}},5732:e=>{"use strict";const t="undefined"!==typeof navigator&&"ReactNative"===navigator.product;const r=self.URL,n=t?"http://localhost":self.location?self.location.protocol+"//"+self.location.host:"";e.exports={URLWithLegacySupport:class{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:n;this.super=new r(e,t),this.path=this.pathname+this.search,this.auth=this.username&&this.password?this.username+":"+this.password:null,this.query=this.search&&this.search.startsWith("?")?this.search.slice(1):null}get hash(){return this.super.hash}get host(){return this.super.host}get hostname(){return this.super.hostname}get href(){return this.super.href}get origin(){return this.super.origin}get password(){return this.super.password}get pathname(){return this.super.pathname}get port(){return this.super.port}get protocol(){return this.super.protocol}get search(){return this.super.search}get searchParams(){return this.super.searchParams}get username(){return this.super.username}set hash(e){this.super.hash=e}set host(e){this.super.host=e}set hostname(e){this.super.hostname=e}set href(e){this.super.href=e}set password(e){this.super.password=e}set pathname(e){this.super.pathname=e}set port(e){this.super.port=e}set protocol(e){this.super.protocol=e}set search(e){this.super.search=e}set username(e){this.super.username=e}static createObjectURL(e){return r.createObjectURL(e)}static revokeObjectURL(e){r.revokeObjectURL(e)}toJSON(){return this.super.toJSON()}toString(){return this.super.toString()}format(){return this.toString()}},URLSearchParams:self.URLSearchParams,defaultBase:n,format:function(e){if("string"===typeof e){return new r(e).toString()}if(!(e instanceof r)){const t=e.username&&e.password?"".concat(e.username,":").concat(e.password,"@"):"",r=e.auth?e.auth+"@":"",n=e.port?":"+e.port:"",i=e.protocol?e.protocol+"//":"",o=e.host||"",s=e.hostname||"",a=e.search||(e.query?"?"+e.query:""),c=e.hash||"",l=e.pathname||"",u=e.path||l+a;return"".concat(i).concat(t||r).concat(o||s+n).concat(u).concat(c)}}}},7898:(e,t,r)=>{var n;!function(){"use strict";var i="input is invalid type",o="object"===typeof window,s=o?window:{};s.JS_SHA3_NO_WINDOW&&(o=!1);var a=!o&&"object"===typeof self;!s.JS_SHA3_NO_NODE_JS&&"object"===typeof process&&process.versions&&process.versions.node?s=r.g:a&&(s=self);var c=!s.JS_SHA3_NO_COMMON_JS&&e.exports,l=r.amdO,u=!s.JS_SHA3_NO_ARRAY_BUFFER&&"undefined"!==typeof ArrayBuffer,h="0123456789abcdef".split(""),d=[4,1024,262144,67108864],p=[0,8,16,24],f=[1,0,32898,0,32906,2147483648,2147516416,2147483648,32907,0,2147483649,0,2147516545,2147483648,32777,2147483648,138,0,136,0,2147516425,0,2147483658,0,2147516555,0,139,2147483648,32905,2147483648,32771,2147483648,32770,2147483648,128,2147483648,32778,0,2147483658,2147483648,2147516545,2147483648,32896,2147483648,2147483649,0,2147516424,2147483648],y=[224,256,384,512],g=[128,256],m=["hex","buffer","arrayBuffer","array","digest"],b={128:168,256:136};!s.JS_SHA3_NO_NODE_JS&&Array.isArray||(Array.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),!u||!s.JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW&&ArrayBuffer.isView||(ArrayBuffer.isView=function(e){return"object"===typeof e&&e.buffer&&e.buffer.constructor===ArrayBuffer});for(var w=function(e,t,r){return function(n){return new L(e,t,e).update(n)[r]()}},v=function(e,t,r){return function(n,i){return new L(e,t,i).update(n)[r]()}},_=function(e,t,r){return function(t,n,i,o){return I["cshake"+e].update(t,n,i,o)[r]()}},E=function(e,t,r){return function(t,n,i,o){return I["kmac"+e].update(t,n,i,o)[r]()}},S=function(e,t,r,n){for(var i=0;i<m.length;++i){var o=m[i];e[o]=t(r,n,o)}return e},A=function(e,t){var r=w(e,t,"hex");return r.create=function(){return new L(e,t,e)},r.update=function(e){return r.create().update(e)},S(r,w,e,t)},k=[{name:"keccak",padding:[1,256,65536,16777216],bits:y,createMethod:A},{name:"sha3",padding:[6,1536,393216,100663296],bits:y,createMethod:A},{name:"shake",padding:[31,7936,2031616,520093696],bits:g,createMethod:function(e,t){var r=v(e,t,"hex");return r.create=function(r){return new L(e,t,r)},r.update=function(e,t){return r.create(t).update(e)},S(r,v,e,t)}},{name:"cshake",padding:d,bits:g,createMethod:function(e,t){var r=b[e],n=_(e,0,"hex");return n.create=function(n,i,o){return i||o?new L(e,t,n).bytepad([i,o],r):I["shake"+e].create(n)},n.update=function(e,t,r,i){return n.create(t,r,i).update(e)},S(n,_,e,t)}},{name:"kmac",padding:d,bits:g,createMethod:function(e,t){var r=b[e],n=E(e,0,"hex");return n.create=function(n,i,o){return new B(e,t,i).bytepad(["KMAC",o],r).bytepad([n],r)},n.update=function(e,t,r,i){return n.create(e,r,i).update(t)},S(n,E,e,t)}}],I={},R=[],P=0;P<k.length;++P)for(var C=k[P],T=C.bits,x=0;x<T.length;++x){var D=C.name+"_"+T[x];if(R.push(D),I[D]=C.createMethod(T[x],C.padding),"sha3"!==C.name){var N=C.name+T[x];R.push(N),I[N]=I[D]}}function L(e,t,r){this.blocks=[],this.s=[],this.padding=t,this.outputBits=r,this.reset=!0,this.finalized=!1,this.block=0,this.start=0,this.blockCount=1600-(e<<1)>>5,this.byteCount=this.blockCount<<2,this.outputBlocks=r>>5,this.extraBytes=(31&r)>>3;for(var n=0;n<50;++n)this.s[n]=0}function B(e,t,r){L.call(this,e,t,r)}L.prototype.update=function(e){if(this.finalized)throw new Error("finalize already called");var t,r=typeof e;if("string"!==r){if("object"!==r)throw new Error(i);if(null===e)throw new Error(i);if(u&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!Array.isArray(e)&&(!u||!ArrayBuffer.isView(e)))throw new Error(i);t=!0}for(var n,o,s=this.blocks,a=this.byteCount,c=e.length,l=this.blockCount,h=0,d=this.s;h<c;){if(this.reset)for(this.reset=!1,s[0]=this.block,n=1;n<l+1;++n)s[n]=0;if(t)for(n=this.start;h<c&&n<a;++h)s[n>>2]|=e[h]<<p[3&n++];else for(n=this.start;h<c&&n<a;++h)(o=e.charCodeAt(h))<128?s[n>>2]|=o<<p[3&n++]:o<2048?(s[n>>2]|=(192|o>>6)<<p[3&n++],s[n>>2]|=(128|63&o)<<p[3&n++]):o<55296||o>=57344?(s[n>>2]|=(224|o>>12)<<p[3&n++],s[n>>2]|=(128|o>>6&63)<<p[3&n++],s[n>>2]|=(128|63&o)<<p[3&n++]):(o=65536+((1023&o)<<10|1023&e.charCodeAt(++h)),s[n>>2]|=(240|o>>18)<<p[3&n++],s[n>>2]|=(128|o>>12&63)<<p[3&n++],s[n>>2]|=(128|o>>6&63)<<p[3&n++],s[n>>2]|=(128|63&o)<<p[3&n++]);if(this.lastByteIndex=n,n>=a){for(this.start=n-a,this.block=s[l],n=0;n<l;++n)d[n]^=s[n];M(d),this.reset=!0}else this.start=n}return this},L.prototype.encode=function(e,t){var r=255&e,n=1,i=[r];for(r=255&(e>>=8);r>0;)i.unshift(r),r=255&(e>>=8),++n;return t?i.push(n):i.unshift(n),this.update(i),i.length},L.prototype.encodeString=function(e){var t,r=typeof e;if("string"!==r){if("object"!==r)throw new Error(i);if(null===e)throw new Error(i);if(u&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!Array.isArray(e)&&(!u||!ArrayBuffer.isView(e)))throw new Error(i);t=!0}var n=0,o=e.length;if(t)n=o;else for(var s=0;s<e.length;++s){var a=e.charCodeAt(s);a<128?n+=1:a<2048?n+=2:a<55296||a>=57344?n+=3:(a=65536+((1023&a)<<10|1023&e.charCodeAt(++s)),n+=4)}return n+=this.encode(8*n),this.update(e),n},L.prototype.bytepad=function(e,t){for(var r=this.encode(t),n=0;n<e.length;++n)r+=this.encodeString(e[n]);var i=t-r%t,o=[];return o.length=i,this.update(o),this},L.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var e=this.blocks,t=this.lastByteIndex,r=this.blockCount,n=this.s;if(e[t>>2]|=this.padding[3&t],this.lastByteIndex===this.byteCount)for(e[0]=e[r],t=1;t<r+1;++t)e[t]=0;for(e[r-1]|=2147483648,t=0;t<r;++t)n[t]^=e[t];M(n)}},L.prototype.toString=L.prototype.hex=function(){this.finalize();for(var e,t=this.blockCount,r=this.s,n=this.outputBlocks,i=this.extraBytes,o=0,s=0,a="";s<n;){for(o=0;o<t&&s<n;++o,++s)e=r[o],a+=h[e>>4&15]+h[15&e]+h[e>>12&15]+h[e>>8&15]+h[e>>20&15]+h[e>>16&15]+h[e>>28&15]+h[e>>24&15];s%t===0&&(M(r),o=0)}return i&&(e=r[o],a+=h[e>>4&15]+h[15&e],i>1&&(a+=h[e>>12&15]+h[e>>8&15]),i>2&&(a+=h[e>>20&15]+h[e>>16&15])),a},L.prototype.arrayBuffer=function(){this.finalize();var e,t=this.blockCount,r=this.s,n=this.outputBlocks,i=this.extraBytes,o=0,s=0,a=this.outputBits>>3;e=i?new ArrayBuffer(n+1<<2):new ArrayBuffer(a);for(var c=new Uint32Array(e);s<n;){for(o=0;o<t&&s<n;++o,++s)c[s]=r[o];s%t===0&&M(r)}return i&&(c[o]=r[o],e=e.slice(0,a)),e},L.prototype.buffer=L.prototype.arrayBuffer,L.prototype.digest=L.prototype.array=function(){this.finalize();for(var e,t,r=this.blockCount,n=this.s,i=this.outputBlocks,o=this.extraBytes,s=0,a=0,c=[];a<i;){for(s=0;s<r&&a<i;++s,++a)e=a<<2,t=n[s],c[e]=255&t,c[e+1]=t>>8&255,c[e+2]=t>>16&255,c[e+3]=t>>24&255;a%r===0&&M(n)}return o&&(e=a<<2,t=n[s],c[e]=255&t,o>1&&(c[e+1]=t>>8&255),o>2&&(c[e+2]=t>>16&255)),c},B.prototype=new L,B.prototype.finalize=function(){return this.encode(this.outputBits,!0),L.prototype.finalize.call(this)};var M=function(e){var t,r,n,i,o,s,a,c,l,u,h,d,p,y,g,m,b,w,v,_,E,S,A,k,I,R,P,C,T,x,D,N,L,B,M,O,U,K,q,F,V,z,j,H,G,W,Y,Q,X,J,Z,$,ee,te,re,ne,ie,oe,se,ae,ce,le,ue;for(n=0;n<48;n+=2)i=e[0]^e[10]^e[20]^e[30]^e[40],o=e[1]^e[11]^e[21]^e[31]^e[41],s=e[2]^e[12]^e[22]^e[32]^e[42],a=e[3]^e[13]^e[23]^e[33]^e[43],c=e[4]^e[14]^e[24]^e[34]^e[44],l=e[5]^e[15]^e[25]^e[35]^e[45],u=e[6]^e[16]^e[26]^e[36]^e[46],h=e[7]^e[17]^e[27]^e[37]^e[47],t=(d=e[8]^e[18]^e[28]^e[38]^e[48])^(s<<1|a>>>31),r=(p=e[9]^e[19]^e[29]^e[39]^e[49])^(a<<1|s>>>31),e[0]^=t,e[1]^=r,e[10]^=t,e[11]^=r,e[20]^=t,e[21]^=r,e[30]^=t,e[31]^=r,e[40]^=t,e[41]^=r,t=i^(c<<1|l>>>31),r=o^(l<<1|c>>>31),e[2]^=t,e[3]^=r,e[12]^=t,e[13]^=r,e[22]^=t,e[23]^=r,e[32]^=t,e[33]^=r,e[42]^=t,e[43]^=r,t=s^(u<<1|h>>>31),r=a^(h<<1|u>>>31),e[4]^=t,e[5]^=r,e[14]^=t,e[15]^=r,e[24]^=t,e[25]^=r,e[34]^=t,e[35]^=r,e[44]^=t,e[45]^=r,t=c^(d<<1|p>>>31),r=l^(p<<1|d>>>31),e[6]^=t,e[7]^=r,e[16]^=t,e[17]^=r,e[26]^=t,e[27]^=r,e[36]^=t,e[37]^=r,e[46]^=t,e[47]^=r,t=u^(i<<1|o>>>31),r=h^(o<<1|i>>>31),e[8]^=t,e[9]^=r,e[18]^=t,e[19]^=r,e[28]^=t,e[29]^=r,e[38]^=t,e[39]^=r,e[48]^=t,e[49]^=r,y=e[0],g=e[1],W=e[11]<<4|e[10]>>>28,Y=e[10]<<4|e[11]>>>28,C=e[20]<<3|e[21]>>>29,T=e[21]<<3|e[20]>>>29,ae=e[31]<<9|e[30]>>>23,ce=e[30]<<9|e[31]>>>23,z=e[40]<<18|e[41]>>>14,j=e[41]<<18|e[40]>>>14,B=e[2]<<1|e[3]>>>31,M=e[3]<<1|e[2]>>>31,m=e[13]<<12|e[12]>>>20,b=e[12]<<12|e[13]>>>20,Q=e[22]<<10|e[23]>>>22,X=e[23]<<10|e[22]>>>22,x=e[33]<<13|e[32]>>>19,D=e[32]<<13|e[33]>>>19,le=e[42]<<2|e[43]>>>30,ue=e[43]<<2|e[42]>>>30,te=e[5]<<30|e[4]>>>2,re=e[4]<<30|e[5]>>>2,O=e[14]<<6|e[15]>>>26,U=e[15]<<6|e[14]>>>26,w=e[25]<<11|e[24]>>>21,v=e[24]<<11|e[25]>>>21,J=e[34]<<15|e[35]>>>17,Z=e[35]<<15|e[34]>>>17,N=e[45]<<29|e[44]>>>3,L=e[44]<<29|e[45]>>>3,k=e[6]<<28|e[7]>>>4,I=e[7]<<28|e[6]>>>4,ne=e[17]<<23|e[16]>>>9,ie=e[16]<<23|e[17]>>>9,K=e[26]<<25|e[27]>>>7,q=e[27]<<25|e[26]>>>7,_=e[36]<<21|e[37]>>>11,E=e[37]<<21|e[36]>>>11,$=e[47]<<24|e[46]>>>8,ee=e[46]<<24|e[47]>>>8,H=e[8]<<27|e[9]>>>5,G=e[9]<<27|e[8]>>>5,R=e[18]<<20|e[19]>>>12,P=e[19]<<20|e[18]>>>12,oe=e[29]<<7|e[28]>>>25,se=e[28]<<7|e[29]>>>25,F=e[38]<<8|e[39]>>>24,V=e[39]<<8|e[38]>>>24,S=e[48]<<14|e[49]>>>18,A=e[49]<<14|e[48]>>>18,e[0]=y^~m&w,e[1]=g^~b&v,e[10]=k^~R&C,e[11]=I^~P&T,e[20]=B^~O&K,e[21]=M^~U&q,e[30]=H^~W&Q,e[31]=G^~Y&X,e[40]=te^~ne&oe,e[41]=re^~ie&se,e[2]=m^~w&_,e[3]=b^~v&E,e[12]=R^~C&x,e[13]=P^~T&D,e[22]=O^~K&F,e[23]=U^~q&V,e[32]=W^~Q&J,e[33]=Y^~X&Z,e[42]=ne^~oe&ae,e[43]=ie^~se&ce,e[4]=w^~_&S,e[5]=v^~E&A,e[14]=C^~x&N,e[15]=T^~D&L,e[24]=K^~F&z,e[25]=q^~V&j,e[34]=Q^~J&$,e[35]=X^~Z&ee,e[44]=oe^~ae&le,e[45]=se^~ce&ue,e[6]=_^~S&y,e[7]=E^~A&g,e[16]=x^~N&k,e[17]=D^~L&I,e[26]=F^~z&B,e[27]=V^~j&M,e[36]=J^~$&H,e[37]=Z^~ee&G,e[46]=ae^~le&te,e[47]=ce^~ue&re,e[8]=S^~y&m,e[9]=A^~g&b,e[18]=N^~k&R,e[19]=L^~I&P,e[28]=z^~B&O,e[29]=j^~M&U,e[38]=$^~H&W,e[39]=ee^~G&Y,e[48]=le^~te&ne,e[49]=ue^~re&ie,e[0]^=f[n],e[1]^=f[n+1]};if(c)e.exports=I;else{for(P=0;P<R.length;++P)s[R[P]]=I[R[P]];l&&(void 0===(n=function(){return I}.call(t,r,t,e))||(e.exports=n))}}()},6110:(e,t,r)=>{const n=r(9238),i=r(3065),o=r(7610),s=r(4299),{RateLimiterClusterMaster:a,RateLimiterClusterMasterPM2:c,RateLimiterCluster:l}=r(2409),u=r(3848),h=r(7147),d=r(2079),p=r(6612),f=r(6966),y=r(4931),g=r(9150);e.exports={RateLimiterRedis:n,RateLimiterMongo:i,RateLimiterMySQL:o,RateLimiterPostgres:s,RateLimiterMemory:u,RateLimiterMemcache:h,RateLimiterClusterMaster:a,RateLimiterClusterMasterPM2:c,RateLimiterCluster:l,RLWrapperBlackAndWhite:d,RateLimiterUnion:p,RateLimiterQueue:f,BurstyRateLimiter:y,RateLimiterRes:g}},4931:(e,t,r)=>{const n=r(9150);e.exports=class{constructor(e,t){this._rateLimiter=e,this._burstLimiter=t}_combineRes(e,t){return e?new n(e.remainingPoints,Math.min(e.msBeforeNext,t?t.msBeforeNext:0),e.consumedPoints,e.isFirstInDuration):null}consume(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this._rateLimiter.consume(e,t,r).catch((i=>i instanceof n?this._burstLimiter.consume(e,t,r).then((e=>Promise.resolve(this._combineRes(i,e)))).catch((e=>e instanceof n?Promise.reject(this._combineRes(i,e)):Promise.reject(e))):Promise.reject(i)))}get(e){return Promise.all([this._rateLimiter.get(e),this._burstLimiter.get(e)]).then((e=>{let[t,r]=e;return this._combineRes(t,r)}))}get points(){return this._rateLimiter.points}}},2079:(e,t,r)=>{const n=r(9150);e.exports=class{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.limiter=e.limiter,this.blackList=e.blackList,this.whiteList=e.whiteList,this.isBlackListed=e.isBlackListed,this.isWhiteListed=e.isWhiteListed,this.runActionAnyway=e.runActionAnyway}get limiter(){return this._limiter}set limiter(e){if("undefined"===typeof e)throw new Error("limiter is not set");this._limiter=e}get runActionAnyway(){return this._runActionAnyway}set runActionAnyway(e){this._runActionAnyway="undefined"!==typeof e&&e}get blackList(){return this._blackList}set blackList(e){this._blackList=Array.isArray(e)?e:[]}get isBlackListed(){return this._isBlackListed}set isBlackListed(e){if("undefined"===typeof e&&(e=()=>!1),"function"!==typeof e)throw new Error("isBlackListed must be function");this._isBlackListed=e}get whiteList(){return this._whiteList}set whiteList(e){this._whiteList=Array.isArray(e)?e:[]}get isWhiteListed(){return this._isWhiteListed}set isWhiteListed(e){if("undefined"===typeof e&&(e=()=>!1),"function"!==typeof e)throw new Error("isWhiteListed must be function");this._isWhiteListed=e}isBlackListedSomewhere(e){return this.blackList.indexOf(e)>=0||this.isBlackListed(e)}isWhiteListedSomewhere(e){return this.whiteList.indexOf(e)>=0||this.isWhiteListed(e)}getBlackRes(){return new n(0,Number.MAX_SAFE_INTEGER,0,!1)}getWhiteRes(){return new n(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(e){let t,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;return this.isWhiteListedSomewhere(e)?t=this.resolveWhite():this.isBlackListedSomewhere(e)&&(t=this.rejectBlack()),"undefined"===typeof t?this.limiter.consume(e,r):(this.runActionAnyway&&this.limiter.consume(e,r).catch((()=>{})),t)}block(e,t){let r;return this.isWhiteListedSomewhere(e)?r=this.resolveWhite():this.isBlackListedSomewhere(e)&&(r=this.resolveBlack()),"undefined"===typeof r?this.limiter.block(e,t):(this.runActionAnyway&&this.limiter.block(e,t).catch((()=>{})),r)}penalty(e,t){let r;return this.isWhiteListedSomewhere(e)?r=this.resolveWhite():this.isBlackListedSomewhere(e)&&(r=this.resolveBlack()),"undefined"===typeof r?this.limiter.penalty(e,t):(this.runActionAnyway&&this.limiter.penalty(e,t).catch((()=>{})),r)}reward(e,t){let r;return this.isWhiteListedSomewhere(e)?r=this.resolveWhite():this.isBlackListedSomewhere(e)&&(r=this.resolveBlack()),"undefined"===typeof r?this.limiter.reward(e,t):(this.runActionAnyway&&this.limiter.reward(e,t).catch((()=>{})),r)}get(e){let t;return this.isWhiteListedSomewhere(e)?t=this.resolveWhite():this.isBlackListedSomewhere(e)&&(t=this.resolveBlack()),"undefined"===typeof t||this.runActionAnyway?this.limiter.get(e):t}delete(e){return this.limiter.delete(e)}}},2881:e=>{e.exports=class{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.points=e.points,this.duration=e.duration,this.blockDuration=e.blockDuration,this.execEvenly=e.execEvenly,this.execEvenlyMinDelayMs=e.execEvenlyMinDelayMs,this.keyPrefix=e.keyPrefix}get points(){return this._points}set points(e){this._points=e>=0?e:4}get duration(){return this._duration}set duration(e){this._duration="undefined"===typeof e?1:e}get msDuration(){return 1e3*this.duration}get blockDuration(){return this._blockDuration}set blockDuration(e){this._blockDuration="undefined"===typeof e?0:e}get msBlockDuration(){return 1e3*this.blockDuration}get execEvenly(){return this._execEvenly}set execEvenly(e){this._execEvenly="undefined"!==typeof e&&Boolean(e)}get execEvenlyMinDelayMs(){return this._execEvenlyMinDelayMs}set execEvenlyMinDelayMs(e){this._execEvenlyMinDelayMs="undefined"===typeof e?Math.ceil(this.msDuration/this.points):e}get keyPrefix(){return this._keyPrefix}set keyPrefix(e){if("undefined"===typeof e&&(e="rlflx"),"string"!==typeof e)throw new Error("keyPrefix must be string");this._keyPrefix=e}_getKeySecDuration(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return e&&e.customDuration>=0?e.customDuration:this.duration}getKey(e){return this.keyPrefix.length>0?"".concat(this.keyPrefix,":").concat(e):e}parseKey(e){return e.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'!")}}},2409:(e,t,r)=>{const n=r(3886),i=r(52),o=r(2881),s=r(3848),a=r(9150),c="rate_limiter_flexible";let l=null;const u=function(e,t,r,n){let i;i=null===n||!0===n||!1===n?n:{remainingPoints:n.remainingPoints,msBeforeNext:n.msBeforeNext,consumedPoints:n.consumedPoints,isFirstInDuration:n.isFirstInDuration},e.send({channel:c,keyPrefix:t.keyPrefix,promiseId:t.promiseId,type:r,data:i})},h=function(e){setTimeout((()=>{this._initiated?process.send(e):"undefined"!==typeof this._promises[e.promiseId]&&h.call(this,e)}),30)},d=function(e,t,r,n,i){const o={channel:c,keyPrefix:this.keyPrefix,func:e,promiseId:t,data:{key:r,arg:n,opts:i}};this._initiated?process.send(o):h.call(this,o)},p=function(e,t){if(!t||t.channel!==c||"undefined"===typeof this._rateLimiters[t.keyPrefix])return!1;let r;switch(t.func){case"consume":r=this._rateLimiters[t.keyPrefix].consume(t.data.key,t.data.arg,t.data.opts);break;case"penalty":r=this._rateLimiters[t.keyPrefix].penalty(t.data.key,t.data.arg,t.data.opts);break;case"reward":r=this._rateLimiters[t.keyPrefix].reward(t.data.key,t.data.arg,t.data.opts);break;case"block":r=this._rateLimiters[t.keyPrefix].block(t.data.key,t.data.arg,t.data.opts);break;case"get":r=this._rateLimiters[t.keyPrefix].get(t.data.key,t.data.opts);break;case"delete":r=this._rateLimiters[t.keyPrefix].delete(t.data.key,t.data.opts);break;default:return!1}r&&r.then((r=>{u(e,t,"resolve",r)})).catch((r=>{u(e,t,"reject",r)}))},f=function(e){if(!e||e.channel!==c||e.keyPrefix!==this.keyPrefix)return!1;if(this._promises[e.promiseId]){let t;switch(clearTimeout(this._promises[e.promiseId].timeoutId),t=null===e.data||!0===e.data||!1===e.data?e.data:new a(e.data.remainingPoints,e.data.msBeforeNext,e.data.consumedPoints,e.data.isFirstInDuration),e.type){case"resolve":this._promises[e.promiseId].resolve(t);break;case"reject":this._promises[e.promiseId].reject(t);break;default:throw new Error("RateLimiterCluster: no such message type '".concat(e.type,"'"))}delete this._promises[e.promiseId]}},y=function(){return{points:this.points,duration:this.duration,blockDuration:this.blockDuration,execEvenly:this.execEvenly,execEvenlyMinDelayMs:this.execEvenlyMinDelayMs,keyPrefix:this.keyPrefix}},g=function(e,t){const r=process.hrtime();let n=r[0].toString()+r[1].toString();return"undefined"!==typeof this._promises[n]&&(n+=i.randomBytes(12).toString("base64")),this._promises[n]={resolve:e,reject:t,timeoutId:setTimeout((()=>{delete this._promises[n],t(new Error("RateLimiterCluster timeout: no answer from master in time"))}),this.timeoutMs)},n};e.exports={RateLimiterClusterMaster:class{constructor(){if(l)return l;this._rateLimiters={},n.setMaxListeners(0),n.on("message",((e,t)=>{t&&t.channel===c&&"init"===t.type?("undefined"===typeof this._rateLimiters[t.opts.keyPrefix]&&(this._rateLimiters[t.opts.keyPrefix]=new s(t.opts)),e.send({channel:c,type:"init",keyPrefix:t.opts.keyPrefix})):p.call(this,e,t)})),l=this}},RateLimiterClusterMasterPM2:class{constructor(e){if(l)return l;this._rateLimiters={},e.launchBus(((t,r)=>{r.on("process:msg",(t=>{const r=t.raw;if(r&&r.channel===c&&"init"===r.type)"undefined"===typeof this._rateLimiters[r.opts.keyPrefix]&&(this._rateLimiters[r.opts.keyPrefix]=new s(r.opts)),e.sendDataToProcessId(t.process.pm_id,{data:{},topic:c,channel:c,type:"init",keyPrefix:r.opts.keyPrefix},((e,t)=>{e&&console.log(e,t)}));else{p.call(this,{send:r=>{const n=r;n.topic=c,"undefined"===typeof n.data&&(n.data={}),e.sendDataToProcessId(t.process.pm_id,n,((e,t)=>{e&&console.log(e,t)}))}},r)}}))})),l=this}},RateLimiterCluster:class extends o{get timeoutMs(){return this._timeoutMs}set timeoutMs(e){this._timeoutMs="undefined"===typeof e?5e3:Math.abs(parseInt(e))}constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};super(e),process.setMaxListeners(0),this.timeoutMs=e.timeoutMs,this._initiated=!1,process.on("message",(e=>{e&&e.channel===c&&"init"===e.type&&e.keyPrefix===this.keyPrefix?this._initiated=!0:f.call(this,e)})),process.send({channel:c,type:"init",opts:y.call(this)}),this._promises={}}consume(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return new Promise(((n,i)=>{const o=g.call(this,n,i);d.call(this,"consume",o,e,t,r)}))}penalty(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return new Promise(((n,i)=>{const o=g.call(this,n,i);d.call(this,"penalty",o,e,t,r)}))}reward(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return new Promise(((n,i)=>{const o=g.call(this,n,i);d.call(this,"reward",o,e,t,r)}))}block(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return new Promise(((n,i)=>{const o=g.call(this,n,i);d.call(this,"block",o,e,t,r)}))}get(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new Promise(((r,n)=>{const i=g.call(this,r,n);d.call(this,"get",i,e,t)}))}delete(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new Promise(((r,n)=>{const i=g.call(this,r,n);d.call(this,"delete",i,e,t)}))}}}},7147:(e,t,r)=>{const n=r(5103),i=r(9150);e.exports=class extends n{constructor(e){super(e),this.client=e.storeClient}_getRateLimiterRes(e,t,r){const n=new i;return n.consumedPoints=parseInt(r.consumedPoints),n.isFirstInDuration=r.consumedPoints===t,n.remainingPoints=Math.max(this.points-n.consumedPoints,0),n.msBeforeNext=r.msBeforeNext,n}_upsert(e,t,r){let n=arguments.length>3&&void 0!==arguments[3]&&arguments[3],i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};return new Promise(((o,s)=>{const a=Date.now(),c=Math.floor(r/1e3);n?this.client.set(e,t,c,(r=>{r?s(r):this.client.set("".concat(e,"_expire"),c>0?a+1e3*c:-1,c,(()=>{o({consumedPoints:t,msBeforeNext:c>0?1e3*c:-1})}))})):this.client.incr(e,t,((l,u)=>{l||!1===u?this.client.add(e,t,c,((l,u)=>{if(l||!u)if("undefined"===typeof i.attemptNumber||i.attemptNumber<3){const a=Object.assign({},i);a.attemptNumber=a.attemptNumber?a.attemptNumber+1:1,this._upsert(e,t,r,n,a).then((e=>o(e))).catch((e=>s(e)))}else s(new Error("Can not add key"));else this.client.add("".concat(e,"_expire"),c>0?a+1e3*c:-1,c,(()=>{o({consumedPoints:t,msBeforeNext:c>0?1e3*c:-1})}))})):this.client.get("".concat(e,"_expire"),((e,t)=>{if(e)s(e);else{const e=!1===t?0:t,r={consumedPoints:u,msBeforeNext:e>=0?Math.max(e-a,0):-1};o(r)}}))}))}))}_get(e){return new Promise(((t,r)=>{const n=Date.now();this.client.get(e,((i,o)=>{o?this.client.get("".concat(e,"_expire"),((e,i)=>{if(e)r(e);else{const e=!1===i?0:i,r={consumedPoints:o,msBeforeNext:e>=0?Math.max(e-n,0):-1};t(r)}})):t(null)}))}))}_delete(e){return new Promise(((t,r)=>{this.client.del(e,((n,i)=>{n?r(n):!1===i?t(i):this.client.del("".concat(e,"_expire"),(e=>{e?r(e):t(i)}))}))}))}}},3848:(e,t,r)=>{const n=r(2881),i=r(338),o=r(9150);e.exports=class extends n{constructor(){super(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}),this._memoryStorage=new i}consume(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return new Promise(((n,i)=>{const o=this.getKey(e),s=this._getKeySecDuration(r);let a=this._memoryStorage.incrby(o,t,s);if(a.remainingPoints=Math.max(this.points-a.consumedPoints,0),a.consumedPoints>this.points)this.blockDuration>0&&a.consumedPoints<=this.points+t&&(a=this._memoryStorage.set(o,a.consumedPoints,this.blockDuration)),i(a);else if(this.execEvenly&&a.msBeforeNext>0&&!a.isFirstInDuration){let e=Math.ceil(a.msBeforeNext/(a.remainingPoints+2));e<this.execEvenlyMinDelayMs&&(e=a.consumedPoints*this.execEvenlyMinDelayMs),setTimeout(n,e,a)}else n(a)}))}penalty(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const n=this.getKey(e);return new Promise((e=>{const i=this._getKeySecDuration(r),o=this._memoryStorage.incrby(n,t,i);o.remainingPoints=Math.max(this.points-o.consumedPoints,0),e(o)}))}reward(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const n=this.getKey(e);return new Promise((e=>{const i=this._getKeySecDuration(r),o=this._memoryStorage.incrby(n,-t,i);o.remainingPoints=Math.max(this.points-o.consumedPoints,0),e(o)}))}block(e,t){const r=1e3*t,n=this.points+1;return this._memoryStorage.set(this.getKey(e),n,t),Promise.resolve(new o(0,0===r?-1:r,n))}set(e,t,r){const n=1e3*(r>=0?r:this.duration);return this._memoryStorage.set(this.getKey(e),t,r),Promise.resolve(new o(0,0===n?-1:n,t))}get(e){const t=this._memoryStorage.get(this.getKey(e));return null!==t&&(t.remainingPoints=Math.max(this.points-t.consumedPoints,0)),Promise.resolve(t)}delete(e){return Promise.resolve(this._memoryStorage.delete(this.getKey(e)))}}},3065:(e,t,r)=>{const n=r(5103),i=r(9150);function o(e){try{const t=e.client?e.client:e,{version:r}=t.topology.s.options.metadata.driver,n=r.split(".").map((e=>parseInt(e)));return{major:n[0],feature:n[1],patch:n[2]}}catch(t){return{major:0,feature:0,patch:0}}}class s extends n{constructor(e){super(e),this.dbName=e.dbName,this.tableName=e.tableName,this.indexKeyPrefix=e.indexKeyPrefix,e.mongo?this.client=e.mongo:this.client=e.storeClient,"function"===typeof this.client.then?this.client.then((e=>{this.client=e,this._initCollection(),this._driverVersion=o(this.client)})):(this._initCollection(),this._driverVersion=o(this.client))}get dbName(){return this._dbName}set dbName(e){this._dbName="undefined"===typeof e?s.getDbName():e}static getDbName(){return"node-rate-limiter-flexible"}get tableName(){return this._tableName}set tableName(e){this._tableName="undefined"===typeof e?this.keyPrefix:e}get client(){return this._client}set client(e){if("undefined"===typeof e)throw new Error("mongo is not set");this._client=e}get indexKeyPrefix(){return this._indexKeyPrefix}set indexKeyPrefix(e){this._indexKeyPrefix=e||{}}_initCollection(){const e=("function"===typeof this.client.db?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(e,t,r){const n=new i;let o;return o="undefined"===typeof r.value?r:r.value,n.isFirstInDuration=o.points===t,n.consumedPoints=o.points,n.remainingPoints=Math.max(this.points-n.consumedPoints,0),n.msBeforeNext=null!==o.expire?Math.max(new Date(o.expire).getTime()-Date.now(),0):-1,n}_upsert(e,t,r){let n=arguments.length>3&&void 0!==arguments[3]&&arguments[3],i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};if(!this._collection)return Promise.reject(Error("Mongo connection is not established"));const o=i.attrs||{};let s,a;n?(s={key:e},s=Object.assign(s,o),a={$set:{key:e,points:t,expire:r>0?new Date(Date.now()+r):null}},a.$set=Object.assign(a.$set,o)):(s={$or:[{expire:{$gt:new Date}},{expire:{$eq:null}}],key:e},s=Object.assign(s,o),a={$setOnInsert:{key:e,expire:r>0?new Date(Date.now()+r):null},$inc:{points:t}},a.$setOnInsert=Object.assign(a.$setOnInsert,o));const c={upsert:!0};return this._driverVersion.major>=4||3===this._driverVersion.major&&this._driverVersion.feature>=7||this._driverVersion.feature>=6&&this._driverVersion.patch>=7?c.returnDocument="after":c.returnOriginal=!1,new Promise(((i,l)=>{this._collection.findOneAndUpdate(s,a,c).then((e=>{i(e)})).catch((s=>{if(s&&11e3===s.code){const s=Object.assign({$or:[{expire:{$lte:new Date}},{expire:{$eq:null}}],key:e},o),a={$set:Object.assign({key:e,points:t,expire:r>0?new Date(Date.now()+r):null},o)};this._collection.findOneAndUpdate(s,a,c).then((e=>{i(e)})).catch((o=>{o&&11e3===o.code?this._upsert(e,t,r,n).then((e=>i(e))).catch((e=>l(e))):l(o)}))}else l(s)}))}))}_get(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!this._collection)return Promise.reject(Error("Mongo connection is not established"));const r=t.attrs||{},n=Object.assign({key:e,$or:[{expire:{$gt:new Date}},{expire:{$eq:null}}]},r);return this._collection.findOne(n)}_delete(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!this._collection)return Promise.reject(Error("Mongo connection is not established"));const r=t.attrs||{},n=Object.assign({key:e},r);return this._collection.deleteOne(n).then((e=>e.deletedCount>0))}}e.exports=s},7610:(e,t,r)=>{const n=r(5103),i=r(9150);e.exports=class extends n{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;super(e),this.client=e.storeClient,this.clientType=e.storeType,this.dbName=e.dbName,this.tableName=e.tableName,this.clearExpiredByTimeout=e.clearExpiredByTimeout,this.tableCreated=e.tableCreated,this.tableCreated?(this.clearExpiredByTimeout&&this._clearExpiredHourAgo(),"function"===typeof t&&t()):this._createDbAndTable().then((()=>{this.tableCreated=!0,this.clearExpiredByTimeout&&this._clearExpiredHourAgo(),"function"===typeof t&&t()})).catch((e=>{if("function"!==typeof t)throw e;t(e)}))}clearExpired(e){return new Promise((t=>{this._getConnection().then((r=>{r.query("DELETE FROM ??.?? WHERE expire < ?",[this.dbName,this.tableName,e],(()=>{this._releaseConnection(r),t()}))})).catch((()=>{t()}))}))}_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(((e,t)=>{this.client.getConnection(((r,n)=>{if(r)return t(r);e(n)}))}));case"sequelize":return this.client.connectionManager.getConnection();case"knex":return this.client.client.acquireConnection();default:return Promise.resolve(this.client)}}_releaseConnection(e){switch(this.clientType){case"pool":return e.release();case"sequelize":return this.client.connectionManager.releaseConnection(e);case"knex":return this.client.client.releaseConnection(e);default:return!0}}_createDbAndTable(){return new Promise(((e,t)=>{this._getConnection().then((r=>{r.query("CREATE DATABASE IF NOT EXISTS `".concat(this.dbName,"`;"),(n=>{if(n)return this._releaseConnection(r),t(n);r.query(this._getCreateTableStmt(),(n=>{if(n)return this._releaseConnection(r),t(n);this._releaseConnection(r),e()}))}))})).catch((e=>{t(e)}))}))}_getCreateTableStmt(){return"CREATE TABLE IF NOT EXISTS `".concat(this.dbName,"`.`").concat(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(e){if("undefined"===typeof e)if("Connection"===this.client.constructor.name)e="connection";else if("Pool"===this.client.constructor.name)e="pool";else{if("Sequelize"!==this.client.constructor.name)throw new Error("storeType is not defined");e="sequelize"}this._clientType=e.toLowerCase()}get dbName(){return this._dbName}set dbName(e){this._dbName="undefined"===typeof e?"rtlmtrflx":e}get tableName(){return this._tableName}set tableName(e){this._tableName="undefined"===typeof e?this.keyPrefix:e}get tableCreated(){return this._tableCreated}set tableCreated(e){this._tableCreated="undefined"!==typeof e&&!!e}get clearExpiredByTimeout(){return this._clearExpiredByTimeout}set clearExpiredByTimeout(e){this._clearExpiredByTimeout="undefined"===typeof e||Boolean(e)}_getRateLimiterRes(e,t,r){const n=new i,[o]=r;return n.isFirstInDuration=t===o.points,n.consumedPoints=n.isFirstInDuration?t:o.points,n.remainingPoints=Math.max(this.points-n.consumedPoints,0),n.msBeforeNext=o.expire?Math.max(o.expire-Date.now(),0):-1,n}_upsertTransaction(e,t,r,n,i){return new Promise(((o,s)=>{e.query("BEGIN",(a=>{if(a)return e.rollback(),s(a);const c=Date.now(),l=n>0?c+n:null;let u,h;i?(u="INSERT INTO ??.?? VALUES (?, ?, ?)\n ON DUPLICATE KEY UPDATE \n points = ?, \n expire = ?;",h=[this.dbName,this.tableName,t,r,l,r,l]):(u="INSERT INTO ??.?? VALUES (?, ?, ?)\n ON DUPLICATE KEY UPDATE \n points = IF(expire <= ?, ?, points + (?)), \n expire = IF(expire <= ?, ?, expire);",h=[this.dbName,this.tableName,t,r,l,c,r,r,c,l]),e.query(u,h,(r=>{if(r)return e.rollback(),s(r);e.query("SELECT points, expire FROM ??.?? WHERE `key` = ?;",[this.dbName,this.tableName,t],((t,r)=>{if(t)return e.rollback(),s(t);e.query("COMMIT",(t=>{if(t)return e.rollback(),s(t);o(r)}))}))}))}))}))}_upsert(e,t,r){let n=arguments.length>3&&void 0!==arguments[3]&&arguments[3];return this.tableCreated?new Promise(((i,o)=>{this._getConnection().then((s=>{this._upsertTransaction(s,e,t,r,n).then((e=>{i(e),this._releaseConnection(s)})).catch((e=>{o(e),this._releaseConnection(s)}))})).catch((e=>{o(e)}))})):Promise.reject(Error("Table is not created yet"))}_get(e){return this.tableCreated?new Promise(((t,r)=>{this._getConnection().then((n=>{n.query("SELECT points, expire FROM ??.?? WHERE `key` = ? AND (`expire` > ? OR `expire` IS NULL)",[this.dbName,this.tableName,e,Date.now()],((e,i)=>{e?r(e):0===i.length?t(null):t(i),this._releaseConnection(n)}))})).catch((e=>{r(e)}))})):Promise.reject(Error("Table is not created yet"))}_delete(e){return this.tableCreated?new Promise(((t,r)=>{this._getConnection().then((n=>{n.query("DELETE FROM ??.?? WHERE `key` = ?",[this.dbName,this.tableName,e],((e,i)=>{e?r(e):t(i.affectedRows>0),this._releaseConnection(n)}))})).catch((e=>{r(e)}))})):Promise.reject(Error("Table is not created yet"))}}},4299:(e,t,r)=>{const n=r(5103),i=r(9150);e.exports=class extends n{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;super(e),this.client=e.storeClient,this.clientType=e.storeType,this.tableName=e.tableName,this.clearExpiredByTimeout=e.clearExpiredByTimeout,this.tableCreated=e.tableCreated,this.tableCreated?"function"===typeof t&&t():this._createTable().then((()=>{this.tableCreated=!0,this.clearExpiredByTimeout&&this._clearExpiredHourAgo(),"function"===typeof t&&t()})).catch((e=>{if("function"!==typeof t)throw e;t(e)}))}clearExpired(e){return new Promise((t=>{const r={name:"rlflx-clear-expired",text:"DELETE FROM ".concat(this.tableName," WHERE expire < $1"),values:[e]};this._query(r).then((()=>{t()})).catch((()=>{t()}))}))}_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":default: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)}}_releaseConnection(e){switch(this.clientType){case"pool":case"typeorm":default:return!0;case"sequelize":return this.client.connectionManager.releaseConnection(e);case"knex":return this.client.client.releaseConnection(e)}}_createTable(){return new Promise(((e,t)=>{this._query({text:this._getCreateTableStmt()}).then((()=>{e()})).catch((r=>{"23505"===r.code?e():t(r)}))}))}_getCreateTableStmt(){return"CREATE TABLE IF NOT EXISTS ".concat(this.tableName," ( \n key varchar(255) PRIMARY KEY,\n points integer NOT NULL DEFAULT 0,\n expire bigint\n );")}get clientType(){return this._clientType}set clientType(e){const t=this.client.constructor.name;if("undefined"===typeof e)if("Client"===t)e="client";else if("Pool"===t||"BoundPool"===t)e="pool";else{if("Sequelize"!==t)throw new Error("storeType is not defined");e="sequelize"}this._clientType=e.toLowerCase()}get tableName(){return this._tableName}set tableName(e){this._tableName="undefined"===typeof e?this.keyPrefix:e}get tableCreated(){return this._tableCreated}set tableCreated(e){this._tableCreated="undefined"!==typeof e&&!!e}get clearExpiredByTimeout(){return this._clearExpiredByTimeout}set clearExpiredByTimeout(e){this._clearExpiredByTimeout="undefined"===typeof e||Boolean(e)}_getRateLimiterRes(e,t,r){const n=new i,o=r.rows[0];return n.isFirstInDuration=t===o.points,n.consumedPoints=n.isFirstInDuration?t:o.points,n.remainingPoints=Math.max(this.points-n.consumedPoints,0),n.msBeforeNext=o.expire?Math.max(o.expire-Date.now(),0):-1,n}_query(e){const t=this.tableName.toLowerCase(),r={name:"".concat(t,":").concat(e.name),text:e.text,values:e.values};return new Promise(((e,t)=>{this._getConnection().then((n=>{n.query(r).then((t=>{e(t),this._releaseConnection(n)})).catch((e=>{t(e),this._releaseConnection(n)}))})).catch((e=>{t(e)}))}))}_upsert(e,t,r){let n=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(!this.tableCreated)return Promise.reject(Error("Table is not created yet"));const i=r>0?Date.now()+r:null,o=n?" $3 ":" CASE\n WHEN ".concat(this.tableName,".expire <= $4 THEN $3\n ELSE ").concat(this.tableName,".expire\n END ");return this._query({name:n?"rlflx-upsert-force":"rlflx-upsert",text:"\n INSERT INTO ".concat(this.tableName," VALUES ($1, $2, $3)\n ON CONFLICT(key) DO UPDATE SET\n points = CASE\n WHEN (").concat(this.tableName,".expire <= $4 OR 1=").concat(n?1:0,") THEN $2\n ELSE ").concat(this.tableName,".points + ($2)\n END,\n expire = ").concat(o,"\n RETURNING points, expire;"),values:[e,t,i,Date.now()]})}_get(e){return this.tableCreated?new Promise(((t,r)=>{this._query({name:"rlflx-get",text:"\n SELECT points, expire FROM ".concat(this.tableName," WHERE key = $1 AND (expire > $2 OR expire IS NULL);"),values:[e,Date.now()]}).then((e=>{0===e.rowCount&&(e=null),t(e)})).catch((e=>{r(e)}))})):Promise.reject(Error("Table is not created yet"))}_delete(e){return this.tableCreated?this._query({name:"rlflx-delete",text:"DELETE FROM ".concat(this.tableName," WHERE key = $1"),values:[e]}).then((e=>e.rowCount>0)):Promise.reject(Error("Table is not created yet"))}}},6966:(e,t,r)=>{const n=r(2747),i=4294967295,o="limiter";e.exports=class{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{maxQueueSize:i};this._queueLimiters={KEY_DEFAULT:new s(e,t)},this._limiterFlexible=e,this._maxQueueSize=t.maxQueueSize}getTokensRemaining(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:o;return this._queueLimiters[e]?this._queueLimiters[e].getTokensRemaining():Promise.resolve(this._limiterFlexible.points)}removeTokens(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:o;return this._queueLimiters[t]||(this._queueLimiters[t]=new s(this._limiterFlexible,{key:t,maxQueueSize:this._maxQueueSize})),this._queueLimiters[t].removeTokens(e)}};class s{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{maxQueueSize:i,key:o};this._key=t.key,this._waitTimeout=null,this._queue=[],this._limiterFlexible=e,this._maxQueueSize=t.maxQueueSize}getTokensRemaining(){return this._limiterFlexible.get(this._key).then((e=>null!==e?e.remainingPoints:this._limiterFlexible.points))}removeTokens(e){const t=this;return new Promise(((r,i)=>{e>t._limiterFlexible.points?i(new n("Requested tokens ".concat(e," exceeds maximum ").concat(t._limiterFlexible.points," tokens per interval"))):t._queue.length>0?t._queueRequest.call(t,r,i,e):t._limiterFlexible.consume(t._key,e).then((e=>{r(e.remainingPoints)})).catch((n=>{n instanceof Error?i(n):(t._queueRequest.call(t,r,i,e),null===t._waitTimeout&&(t._waitTimeout=setTimeout(t._processFIFO.bind(t),n.msBeforeNext)))}))}))}_queueRequest(e,t,r){const i=this;i._queue.length<i._maxQueueSize?i._queue.push({resolve:e,reject:t,tokens:r}):t(new n("Number of requests reached it's maximum ".concat(i._maxQueueSize)))}_processFIFO(){const e=this;if(null!==e._waitTimeout&&(clearTimeout(e._waitTimeout),e._waitTimeout=null),0===e._queue.length)return;const t=e._queue.shift();e._limiterFlexible.consume(e._key,t.tokens).then((r=>{t.resolve(r.remainingPoints),e._processFIFO.call(e)})).catch((r=>{r instanceof Error?(t.reject(r),e._processFIFO.call(e)):(e._queue.unshift(t),null===e._waitTimeout&&(e._waitTimeout=setTimeout(e._processFIFO.bind(e),r.msBeforeNext)))}))}}},9238:(e,t,r)=>{const n=r(5103),i=r(9150),o="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} ";e.exports=class extends n{constructor(e){super(e),this.client=e.storeClient,this._rejectIfRedisNotReady=!!e.rejectIfRedisNotReady,this.useRedisPackage=e.useRedisPackage,this.useRedis3AndLowerPackage=e.useRedis3AndLowerPackage,"function"===typeof this.client.defineCommand&&this.client.defineCommand("rlflxIncr",{numberOfKeys:1,lua:o})}_isRedisReady(){return!this._rejectIfRedisNotReady||(!this.client.status||"ready"===this.client.status)&&!("function"===typeof this.client.isReady&&!this.client.isReady())}_getRateLimiterRes(e,t,r){let[n,o]=r;Array.isArray(n)&&([,n]=n,[,o]=o);const s=new i;return s.consumedPoints=parseInt(n),s.isFirstInDuration=s.consumedPoints===t,s.remainingPoints=Math.max(this.points-s.consumedPoints,0),s.msBeforeNext=o,s}async _upsert(e,t,r){let n=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(!this._isRedisReady())throw new Error("Redis connection is not ready");const i=Math.floor(r/1e3),s=this.client.multi();return n?(i>0?this.useRedisPackage||this.useRedis3AndLowerPackage?s.set(e,t,{EX:i}):s.set(e,t,"EX",i):s.set(e,t),this.useRedisPackage||this.useRedis3AndLowerPackage?s.pTTL(e).exec(!0):s.pttl(e).exec(!0)):i>0?this.useRedisPackage||this.useRedis3AndLowerPackage?this.useRedis3AndLowerPackage?new Promise(((r,n)=>{const s=function(e,t){return e?n(e):r(t)};"function"===typeof this.client.rlflxIncr?this.client.rlflxIncr(e,t,i,s):this.client.eval(o,1,e,t,i,s)})):this.client.eval(o,{keys:[e],arguments:[String(t),String(i)]}):this.client.rlflxIncr([e].concat([String(t),String(i)])):this.useRedisPackage||this.useRedis3AndLowerPackage?s.incrBy(e,t).pTTL(e).exec(!0):s.incrby(e,t).pttl(e).exec(!0)}async _get(e){if(!this._isRedisReady())throw new Error("Redis connection is not ready");return this.useRedisPackage||this.useRedis3AndLowerPackage?this.client.multi().get(e).pTTL(e).exec(!0).then((e=>{const[t]=e;return null===t?null:e})):this.client.multi().get(e).pttl(e).exec().then((e=>{const[[,t]]=e;return null===t?null:e}))}_delete(e){return this.client.del(e).then((e=>e>0))}}},9150:e=>{e.exports=class{constructor(e,t,r,n){this.remainingPoints="undefined"===typeof e?0:e,this.msBeforeNext="undefined"===typeof t?0:t,this.consumedPoints="undefined"===typeof r?0:r,this.isFirstInDuration="undefined"!==typeof n&&n}get msBeforeNext(){return this._msBeforeNext}set msBeforeNext(e){return this._msBeforeNext=e,this}get remainingPoints(){return this._remainingPoints}set remainingPoints(e){return this._remainingPoints=e,this}get consumedPoints(){return this._consumedPoints}set consumedPoints(e){return this._consumedPoints=e,this}get isFirstInDuration(){return this._isFirstInDuration}set isFirstInDuration(e){this._isFirstInDuration=Boolean(e)}_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()}}},5103:(e,t,r)=>{const n=r(2881),i=r(9187),o=r(9150);e.exports=class extends n{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};super(e),this.inMemoryBlockOnConsumed=e.inMemoryBlockOnConsumed,this.inMemoryBlockDuration=e.inMemoryBlockDuration,this.insuranceLimiter=e.insuranceLimiter,this._inMemoryBlockedKeys=new i}get client(){return this._client}set client(e){if("undefined"===typeof e)throw new Error("storeClient is not set");this._client=e}_afterConsume(e,t,r,n,i){let o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};const s=this._getRateLimiterRes(r,n,i);if(this.inMemoryBlockOnConsumed>0&&!(this.inMemoryBlockDuration>0)&&s.consumedPoints>=this.inMemoryBlockOnConsumed)return this._inMemoryBlockedKeys.addMs(r,s.msBeforeNext),s.consumedPoints>this.points?t(s):e(s);if(s.consumedPoints>this.points){let e=Promise.resolve();this.blockDuration>0&&s.consumedPoints<=this.points+n&&(s.msBeforeNext=this.msBlockDuration,e=this._block(r,s.consumedPoints,this.msBlockDuration,o)),this.inMemoryBlockOnConsumed>0&&s.consumedPoints>=this.inMemoryBlockOnConsumed&&(this._inMemoryBlockedKeys.add(r,this.inMemoryBlockDuration),s.msBeforeNext=this.msInMemoryBlockDuration),e.then((()=>{t(s)})).catch((e=>{t(e)}))}else if(this.execEvenly&&s.msBeforeNext>0&&!s.isFirstInDuration){let t=Math.ceil(s.msBeforeNext/(s.remainingPoints+2));t<this.execEvenlyMinDelayMs&&(t=s.consumedPoints*this.execEvenlyMinDelayMs),setTimeout(e,t,s)}else e(s)}_handleError(e,t,r,i,o){let s=arguments.length>5&&void 0!==arguments[5]&&arguments[5],a=arguments.length>6&&void 0!==arguments[6]?arguments[6]:{};this.insuranceLimiter instanceof n?this.insuranceLimiter[t](o,s,a).then((e=>{r(e)})).catch((e=>{i(e)})):i(e)}getInMemoryBlockMsBeforeExpire(e){return this.inMemoryBlockOnConsumed>0?this._inMemoryBlockedKeys.msBeforeExpire(e):0}get inMemoryBlockOnConsumed(){return this._inMemoryBlockOnConsumed}set inMemoryBlockOnConsumed(e){if(this._inMemoryBlockOnConsumed=e?parseInt(e):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(e){if(this._inMemoryBlockDuration=e?parseInt(e):0,this.inMemoryBlockDuration>0&&0===this.inMemoryBlockOnConsumed)throw new Error("inMemoryBlockOnConsumed option must be set up")}get msInMemoryBlockDuration(){return 1e3*this._inMemoryBlockDuration}get insuranceLimiter(){return this._insuranceLimiter}set insuranceLimiter(e){if("undefined"!==typeof e&&!(e instanceof n))throw new Error("insuranceLimiter must be instance of RateLimiterAbstract");this._insuranceLimiter=e,this._insuranceLimiter&&(this._insuranceLimiter.blockDuration=this.blockDuration,this._insuranceLimiter.execEvenly=this.execEvenly)}block(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const n=1e3*t;return this._block(this.getKey(e),this.points+1,n,r)}set(e,t,r){let n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};const i=1e3*(r>=0?r:this.duration);return this._block(this.getKey(e),t,i,n)}consume(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return new Promise(((n,i)=>{const s=this.getKey(e),a=this.getInMemoryBlockMsBeforeExpire(s);if(a>0)return i(new o(0,a));this._upsert(s,t,1e3*this._getKeySecDuration(r),!1,r).then((e=>{this._afterConsume(n,i,s,t,e)})).catch((o=>{this._handleError(o,"consume",n,i,e,t,r)}))}))}penalty(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const n=this.getKey(e);return new Promise(((i,o)=>{this._upsert(n,t,1e3*this._getKeySecDuration(r),!1,r).then((e=>{i(this._getRateLimiterRes(n,t,e))})).catch((n=>{this._handleError(n,"penalty",i,o,e,t,r)}))}))}reward(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const n=this.getKey(e);return new Promise(((i,o)=>{this._upsert(n,-t,1e3*this._getKeySecDuration(r),!1,r).then((e=>{i(this._getRateLimiterRes(n,-t,e))})).catch((n=>{this._handleError(n,"reward",i,o,e,t,r)}))}))}get(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const r=this.getKey(e);return new Promise(((n,i)=>{this._get(r,t).then((e=>{n(null===e||"undefined"===typeof e?null:this._getRateLimiterRes(r,0,e))})).catch((r=>{this._handleError(r,"get",n,i,e,t)}))}))}delete(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const r=this.getKey(e);return new Promise(((n,i)=>{this._delete(r,t).then((e=>{this._inMemoryBlockedKeys.delete(r),n(e)})).catch((r=>{this._handleError(r,"delete",n,i,e,t)}))}))}deleteInMemoryBlockedAll(){this._inMemoryBlockedKeys.delete()}_getRateLimiterRes(e,t,r){throw new Error("You have to implement the method '_getRateLimiterRes'!")}_block(e,t,r){let n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return new Promise(((i,s)=>{this._upsert(e,t,r,!0,n).then((()=>{i(new o(0,r>0?r:-1,t))})).catch((t=>{this._handleError(t,"block",i,s,this.parseKey(e),r/1e3,n)}))}))}_get(e){throw new Error("You have to implement the method '_get'!")}_delete(e){throw new Error("You have to implement the method '_delete'!")}_upsert(e,t,r){throw new Error("You have to implement the method '_upsert'!")}}},6612:(e,t,r)=>{const n=r(2881);e.exports=class{constructor(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];if(t.length<1)throw new Error("RateLimiterUnion: at least one limiter have to be passed");t.forEach((e=>{if(!(e instanceof n))throw new Error("RateLimiterUnion: all limiters have to be instance of RateLimiterAbstract")})),this._limiters=t}consume(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;return new Promise(((r,n)=>{const i=[];this._limiters.forEach((r=>{i.push(r.consume(e,t).catch((e=>({rejected:!0,rej:e}))))})),Promise.all(i).then((e=>{const t={};let i=!1;e.forEach((e=>{!0===e.rejected&&(i=!0)}));for(let r=0;r<e.length;r++)i&&!0===e[r].rejected?t[this._limiters[r].keyPrefix]=e[r].rej:i||(t[this._limiters[r].keyPrefix]=e[r]);i?n(t):r(t)}))}))}}},3360:e=>{e.exports=class{constructor(){this._keys={},this._addedKeysAmount=0}collectExpired(){const e=Date.now();Object.keys(this._keys).forEach((t=>{this._keys[t]<=e&&delete this._keys[t]})),this._addedKeysAmount=Object.keys(this._keys).length}add(e,t){this.addMs(e,1e3*t)}addMs(e,t){this._keys[e]=Date.now()+t,this._addedKeysAmount++,this._addedKeysAmount>999&&this.collectExpired()}msBeforeExpire(e){const t=this._keys[e];if(t&&t>=Date.now()){this.collectExpired();const e=Date.now();return t>=e?t-e:0}return 0}delete(e){e?delete this._keys[e]:Object.keys(this._keys).forEach((e=>{delete this._keys[e]}))}}},9187:(e,t,r)=>{const n=r(3360);e.exports=n},338:(e,t,r)=>{const n=r(2274),i=r(9150);e.exports=class{constructor(){this._storage={}}incrby(e,t,r){if(this._storage[e]){const n=this._storage[e].expiresAt?this._storage[e].expiresAt.getTime()-(new Date).getTime():-1;return 0!==n?(this._storage[e].value=this._storage[e].value+t,new i(0,n,this._storage[e].value,!1)):this.set(e,t,r)}return this.set(e,t,r)}set(e,t,r){const o=1e3*r;return this._storage[e]&&this._storage[e].timeoutId&&clearTimeout(this._storage[e].timeoutId),this._storage[e]=new n(t,o>0?new Date(Date.now()+o):null),o>0&&(this._storage[e].timeoutId=setTimeout((()=>{delete this._storage[e]}),o),this._storage[e].timeoutId.unref&&this._storage[e].timeoutId.unref()),new i(0,0===o?-1:o,this._storage[e].value,!0)}get(e){if(this._storage[e]){const t=this._storage[e].expiresAt?this._storage[e].expiresAt.getTime()-(new Date).getTime():-1;return new i(0,t,this._storage[e].value,!1)}return null}delete(e){return!!this._storage[e]&&(this._storage[e].timeoutId&&clearTimeout(this._storage[e].timeoutId),delete this._storage[e],!0)}}},2274:e=>{e.exports=class{constructor(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;this.value=e,this.expiresAt=t,this.timeoutId=r}get value(){return this._value}set value(e){this._value=parseInt(e)}get expiresAt(){return this._expiresAt}set expiresAt(e){e instanceof Date||!Number.isInteger(e)||(e=new Date(e)),this._expiresAt=e}get timeoutId(){return this._timeoutId}set timeoutId(e){this._timeoutId=e}}},2747:e=>{e.exports=class extends Error{constructor(e,t){super(),Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor),this.name="CustomError",this.message=e,t&&(this.extra=t)}}},9842:function(e,t,r){"use strict";const n=r(887),{hasOwnProperty:i}=Object.prototype,{propertyIsEnumerable:o}=Object,s=(e,t,r)=>Object.defineProperty(e,t,{value:r,writable:!0,enumerable:!0,configurable:!0}),a=this,c={concatArrays:!1,ignoreUndefined:!1},l=e=>{const t=[];for(const r in e)i.call(e,r)&&t.push(r);if(Object.getOwnPropertySymbols){const r=Object.getOwnPropertySymbols(e);for(const n of r)o.call(e,n)&&t.push(n)}return t};function u(e){return Array.isArray(e)?function(e){const t=e.slice(0,0);return l(e).forEach((r=>{s(t,r,u(e[r]))})),t}(e):n(e)?function(e){const t=null===Object.getPrototypeOf(e)?Object.create(null):{};return l(e).forEach((r=>{s(t,r,u(e[r]))})),t}(e):e}const h=(e,t,r,n)=>(r.forEach((r=>{"undefined"===typeof t[r]&&n.ignoreUndefined||(r in e&&e[r]!==Object.getPrototypeOf(e)?s(e,r,p(e[r],t[r],n)):s(e,r,u(t[r])))})),e),d=(e,t,r)=>{let n=e.slice(0,0),o=0;return[e,t].forEach((t=>{const a=[];for(let r=0;r<t.length;r++)i.call(t,r)&&(a.push(String(r)),s(n,o++,t===e?t[r]:u(t[r])));n=h(n,t,l(t).filter((e=>!a.includes(e))),r)})),n};function p(e,t,r){return r.concatArrays&&Array.isArray(e)&&Array.isArray(t)?d(e,t,r):n(t)&&n(e)?h(e,t,l(t),r):u(t)}e.exports=function(){const e=p(u(c),this!==a&&this||{},c);let t={_:{}};for(var r=arguments.length,i=new Array(r),o=0;o<r;o++)i[o]=arguments[o];for(const s of i)if(void 0!==s){if(!n(s))throw new TypeError("`"+s+"` is not an Option Object");t=p(t,{_:s},e)}return t._}},8193:e=>{var t=1e3,r=60*t,n=60*r,i=24*n,o=7*i,s=365.25*i;function a(e,t,r,n){var i=t>=1.5*r;return Math.round(e/r)+" "+n+(i?"s":"")}e.exports=function(e,c){c=c||{};var l=typeof e;if("string"===l&&e.length>0)return function(e){if((e=String(e)).length>100)return;var a=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(!a)return;var c=parseFloat(a[1]);switch((a[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return c*s;case"weeks":case"week":case"w":return c*o;case"days":case"day":case"d":return c*i;case"hours":case"hour":case"hrs":case"hr":case"h":return c*n;case"minutes":case"minute":case"mins":case"min":case"m":return c*r;case"seconds":case"second":case"secs":case"sec":case"s":return c*t;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return c;default:return}}(e);if("number"===l&&isFinite(e))return c.long?function(e){var o=Math.abs(e);if(o>=i)return a(e,o,i,"day");if(o>=n)return a(e,o,n,"hour");if(o>=r)return a(e,o,r,"minute");if(o>=t)return a(e,o,t,"second");return e+" ms"}(e):function(e){var o=Math.abs(e);if(o>=i)return Math.round(e/i)+"d";if(o>=n)return Math.round(e/n)+"h";if(o>=r)return Math.round(e/r)+"m";if(o>=t)return Math.round(e/t)+"s";return e+"ms"}(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))}},7922:function(e,t){(function(){var e,r,n,i,o,s,a,c;c=function(e){return[(e&255<<24)>>>24,(e&255<<16)>>>16,(65280&e)>>>8,255&e].join(".")},a=function(e){var t,n,i,o,s,a;for(t=[],i=o=0;o<=3&&0!==e.length;i=++o){if(i>0){if("."!==e[0])throw new Error("Invalid IP");e=e.substring(1)}s=(a=r(e))[0],n=a[1],e=e.substring(n),t.push(s)}if(0!==e.length)throw new Error("Invalid IP");switch(t.length){case 1:if(t[0]>4294967295)throw new Error("Invalid IP");return t[0]>>>0;case 2:if(t[0]>255||t[1]>16777215)throw new Error("Invalid IP");return(t[0]<<24|t[1])>>>0;case 3:if(t[0]>255||t[1]>255||t[2]>65535)throw new Error("Invalid IP");return(t[0]<<24|t[1]<<16|t[2])>>>0;case 4:if(t[0]>255||t[1]>255||t[2]>255||t[3]>255)throw new Error("Invalid IP");return(t[0]<<24|t[1]<<16|t[2]<<8|t[3])>>>0;default:throw new Error("Invalid IP")}},i=(n=function(e){return e.charCodeAt(0)})("0"),s=n("a"),o=n("A"),r=function(e){var t,r,a,c,l;for(c=0,t=10,r="9",a=0,e.length>1&&"0"===e[a]&&("x"===e[a+1]||"X"===e[a+1]?(a+=2,t=16):"0"<=e[a+1]&&e[a+1]<="9"&&(a++,t=8,r="7")),l=a;a<e.length;){if("0"<=e[a]&&e[a]<=r)c=c*t+(n(e[a])-i)>>>0;else{if(16!==t)break;if("a"<=e[a]&&e[a]<="f")c=c*t+(10+n(e[a])-s)>>>0;else{if(!("A"<=e[a]&&e[a]<="F"))break;c=c*t+(10+n(e[a])-o)>>>0}}if(c>4294967295)throw new Error("too large");a++}if(a===l)throw new Error("empty octet");return[c,a]},e=function(){function e(e,t){var r,n,i;if("string"!==typeof e)throw new Error("Missing `net' parameter");if(t||(i=e.split("/",2),e=i[0],t=i[1]),t||(t=32),"string"===typeof t&&t.indexOf(".")>-1){try{this.maskLong=a(t)}catch(o){throw o,new Error("Invalid mask: "+t)}for(r=n=32;n>=0;r=--n)if(this.maskLong===4294967295<<32-r>>>0){this.bitmask=r;break}}else{if(!t&&0!==t)throw new Error("Invalid mask: empty");this.bitmask=parseInt(t,10),this.maskLong=0,this.bitmask>0&&(this.maskLong=4294967295<<32-this.bitmask>>>0)}try{this.netLong=(a(e)&this.maskLong)>>>0}catch(o){throw o,new Error("Invalid net address: "+e)}if(!(this.bitmask<=32))throw new Error("Invalid mask for ip4: "+t);this.size=Math.pow(2,32-this.bitmask),this.base=c(this.netLong),this.mask=c(this.maskLong),this.hostmask=c(~this.maskLong),this.first=this.bitmask<=30?c(this.netLong+1):this.base,this.last=this.bitmask<=30?c(this.netLong+this.size-2):c(this.netLong+this.size-1),this.broadcast=this.bitmask<=30?c(this.netLong+this.size-1):void 0}return e.prototype.contains=function(t){return"string"===typeof t&&(t.indexOf("/")>0||4!==t.split(".").length)&&(t=new e(t)),t instanceof e?this.contains(t.base)&&this.contains(t.broadcast||t.last):(a(t)&this.maskLong)>>>0===(this.netLong&this.maskLong)>>>0},e.prototype.next=function(t){return null==t&&(t=1),new e(c(this.netLong+this.size*t),this.mask)},e.prototype.forEach=function(e){var t,r,n;for(n=a(this.first),r=a(this.last),t=0;n<=r;)e(c(n),n,t),t++,n++},e.prototype.toString=function(){return this.base+"/"+this.bitmask},e}(),t.ip2long=a,t.long2ip=c,t.Netmask=e}).call(this)},8605:(e,t,r)=>{var n=r(392);function i(e,t){n.cipher.registerAlgorithm(e,(function(){return new n.aes.Algorithm(e,t)}))}r(3397),r(4533),r(3877),e.exports=n.aes=n.aes||{},n.aes.startEncrypting=function(e,t,r,n){var i=y({key:e,output:r,decrypt:!1,mode:n});return i.start(t),i},n.aes.createEncryptionCipher=function(e,t){return y({key:e,output:null,decrypt:!1,mode:t})},n.aes.startDecrypting=function(e,t,r,n){var i=y({key:e,output:r,decrypt:!0,mode:n});return i.start(t),i},n.aes.createDecryptionCipher=function(e,t){return y({key:e,output:null,decrypt:!0,mode:t})},n.aes.Algorithm=function(e,t){u||d();var r=this;r.name=e,r.mode=new t({blockSize:16,cipher:{encrypt:function(e,t){return f(r._w,e,t,!1)},decrypt:function(e,t){return f(r._w,e,t,!0)}}}),r._init=!1},n.aes.Algorithm.prototype.initialize=function(e){if(!this._init){var t,r=e.key;if("string"!==typeof r||16!==r.length&&24!==r.length&&32!==r.length){if(n.util.isArray(r)&&(16===r.length||24===r.length||32===r.length)){t=r,r=n.util.createBuffer();for(var i=0;i<t.length;++i)r.putByte(t[i])}}else r=n.util.createBuffer(r);if(!n.util.isArray(r)){t=r,r=[];var o=t.length();if(16===o||24===o||32===o){o>>>=2;for(i=0;i<o;++i)r.push(t.getInt32())}}if(!n.util.isArray(r)||4!==r.length&&6!==r.length&&8!==r.length)throw new Error("Invalid key parameter.");var s=this.mode.name,a=-1!==["CFB","OFB","CTR","GCM"].indexOf(s);this._w=p(r,e.decrypt&&!a),this._init=!0}},n.aes._expandKey=function(e,t){return u||d(),p(e,t)},n.aes._updateBlock=f,i("AES-ECB",n.cipher.modes.ecb),i("AES-CBC",n.cipher.modes.cbc),i("AES-CFB",n.cipher.modes.cfb),i("AES-OFB",n.cipher.modes.ofb),i("AES-CTR",n.cipher.modes.ctr),i("AES-GCM",n.cipher.modes.gcm);var o,s,a,c,l,u=!1,h=4;function d(){u=!0,a=[0,1,2,4,8,16,32,64,128,27,54];for(var e=new Array(256),t=0;t<128;++t)e[t]=t<<1,e[t+128]=t+128<<1^283;o=new Array(256),s=new Array(256),c=new Array(4),l=new Array(4);for(t=0;t<4;++t)c[t]=new Array(256),l[t]=new Array(256);var r,n,i,h,d,p,f,y=0,g=0;for(t=0;t<256;++t){h=(h=g^g<<1^g<<2^g<<3^g<<4)>>8^255&h^99,o[y]=h,s[h]=y,p=(d=e[h])<<24^h<<16^h<<8^h^d,f=((r=e[y])^(n=e[r])^(i=e[n]))<<24^(y^i)<<16^(y^n^i)<<8^y^r^i;for(var m=0;m<4;++m)c[m][y]=p,l[m][h]=f,p=p<<24|p>>>8,f=f<<24|f>>>8;0===y?y=g=1:(y=r^e[e[e[r^i]]],g^=e[e[g]])}}function p(e,t){for(var r,n=e.slice(0),i=1,s=n.length,c=h*(s+6+1),u=s;u<c;++u)r=n[u-1],u%s===0?(r=o[r>>>16&255]<<24^o[r>>>8&255]<<16^o[255&r]<<8^o[r>>>24]^a[i]<<24,i++):s>6&&u%s===4&&(r=o[r>>>24]<<24^o[r>>>16&255]<<16^o[r>>>8&255]<<8^o[255&r]),n[u]=n[u-s]^r;if(t){for(var d,p=l[0],f=l[1],y=l[2],g=l[3],m=n.slice(0),b=(u=0,(c=n.length)-h);u<c;u+=h,b-=h)if(0===u||u===c-h)m[u]=n[b],m[u+1]=n[b+3],m[u+2]=n[b+2],m[u+3]=n[b+1];else for(var w=0;w<h;++w)d=n[b+w],m[u+(3&-w)]=p[o[d>>>24]]^f[o[d>>>16&255]]^y[o[d>>>8&255]]^g[o[255&d]];n=m}return n}function f(e,t,r,n){var i,a,u,h,d,p,f,y,g,m,b,w,v=e.length/4-1;n?(i=l[0],a=l[1],u=l[2],h=l[3],d=s):(i=c[0],a=c[1],u=c[2],h=c[3],d=o),p=t[0]^e[0],f=t[n?3:1]^e[1],y=t[2]^e[2],g=t[n?1:3]^e[3];for(var _=3,E=1;E<v;++E)m=i[p>>>24]^a[f>>>16&255]^u[y>>>8&255]^h[255&g]^e[++_],b=i[f>>>24]^a[y>>>16&255]^u[g>>>8&255]^h[255&p]^e[++_],w=i[y>>>24]^a[g>>>16&255]^u[p>>>8&255]^h[255&f]^e[++_],g=i[g>>>24]^a[p>>>16&255]^u[f>>>8&255]^h[255&y]^e[++_],p=m,f=b,y=w;r[0]=d[p>>>24]<<24^d[f>>>16&255]<<16^d[y>>>8&255]<<8^d[255&g]^e[++_],r[n?3:1]=d[f>>>24]<<24^d[y>>>16&255]<<16^d[g>>>8&255]<<8^d[255&p]^e[++_],r[2]=d[y>>>24]<<24^d[g>>>16&255]<<16^d[p>>>8&255]<<8^d[255&f]^e[++_],r[n?1:3]=d[g>>>24]<<24^d[p>>>16&255]<<16^d[f>>>8&255]<<8^d[255&y]^e[++_]}function y(e){var t,r="AES-"+((e=e||{}).mode||"CBC").toUpperCase(),i=(t=e.decrypt?n.cipher.createDecipher(r,e.key):n.cipher.createCipher(r,e.key)).start;return t.start=function(e,r){var o=null;r instanceof n.util.ByteBuffer&&(o=r,r={}),(r=r||{}).output=o,r.iv=e,i.call(t,r)},t}},5049:(e,t,r)=>{var n=r(392);r(3877),r(2886);var i=e.exports=n.asn1=n.asn1||{};function o(e,t,r){if(r>t){var n=new Error("Too few bytes to parse DER.");throw n.available=e.length(),n.remaining=t,n.requested=r,n}}i.Class={UNIVERSAL:0,APPLICATION:64,CONTEXT_SPECIFIC:128,PRIVATE:192},i.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},i.create=function(e,t,r,o,s){if(n.util.isArray(o)){for(var a=[],c=0;c<o.length;++c)void 0!==o[c]&&a.push(o[c]);o=a}var l={tagClass:e,type:t,constructed:r,composed:r||n.util.isArray(o),value:o};return s&&"bitStringContents"in s&&(l.bitStringContents=s.bitStringContents,l.original=i.copy(l)),l},i.copy=function(e,t){var r;if(n.util.isArray(e)){r=[];for(var o=0;o<e.length;++o)r.push(i.copy(e[o],t));return r}return"string"===typeof e?e:(r={tagClass:e.tagClass,type:e.type,constructed:e.constructed,composed:e.composed,value:i.copy(e.value,t)},t&&!t.excludeBitStringContents&&(r.bitStringContents=e.bitStringContents),r)},i.equals=function(e,t,r){if(n.util.isArray(e)){if(!n.util.isArray(t))return!1;if(e.length!==t.length)return!1;for(var o=0;o<e.length;++o)if(!i.equals(e[o],t[o]))return!1;return!0}if(typeof e!==typeof t)return!1;if("string"===typeof e)return e===t;var s=e.tagClass===t.tagClass&&e.type===t.type&&e.constructed===t.constructed&&e.composed===t.composed&&i.equals(e.value,t.value);return r&&r.includeBitStringContents&&(s=s&&e.bitStringContents===t.bitStringContents),s},i.getBerValueLength=function(e){var t=e.getByte();if(128!==t)return 128&t?e.getInt((127&t)<<3):t};var s=function(e,t){var r=e.getByte();if(t--,128!==r){var n;if(128&r){var i=127&r;o(e,t,i),n=e.getInt(i<<3)}else n=r;if(n<0)throw new Error("Negative length: "+n);return n}};function a(e,t,r,n){var c;o(e,t,2);var l=e.getByte();t--;var u=192&l,h=31&l;c=e.length();var d,p,f=s(e,t);if(t-=c-e.length(),void 0!==f&&f>t){if(n.strict){var y=new Error("Too few bytes to read ASN.1 value.");throw y.available=e.length(),y.remaining=t,y.requested=f,y}f=t}var g=32===(32&l);if(g)if(d=[],void 0===f)for(;;){if(o(e,t,2),e.bytes(2)===String.fromCharCode(0,0)){e.getBytes(2),t-=2;break}c=e.length(),d.push(a(e,t,r+1,n)),t-=c-e.length()}else for(;f>0;)c=e.length(),d.push(a(e,f,r+1,n)),t-=c-e.length(),f-=c-e.length();if(void 0===d&&u===i.Class.UNIVERSAL&&h===i.Type.BITSTRING&&(p=e.bytes(f)),void 0===d&&n.decodeBitStrings&&u===i.Class.UNIVERSAL&&h===i.Type.BITSTRING&&f>1){var m=e.read,b=t,w=0;if(h===i.Type.BITSTRING&&(o(e,t,1),w=e.getByte(),t--),0===w)try{c=e.length();var v=a(e,t,r+1,{strict:!0,decodeBitStrings:!0}),_=c-e.length();t-=_,h==i.Type.BITSTRING&&_++;var E=v.tagClass;_!==f||E!==i.Class.UNIVERSAL&&E!==i.Class.CONTEXT_SPECIFIC||(d=[v])}catch(A){}void 0===d&&(e.read=m,t=b)}if(void 0===d){if(void 0===f){if(n.strict)throw new Error("Non-constructed ASN.1 object of indefinite length.");f=t}if(h===i.Type.BMPSTRING)for(d="";f>0;f-=2)o(e,t,2),d+=String.fromCharCode(e.getInt16()),t-=2;else d=e.getBytes(f),t-=f}var S=void 0===p?null:{bitStringContents:p};return i.create(u,h,g,d,S)}i.fromDer=function(e,t){void 0===t&&(t={strict:!0,parseAllBytes:!0,decodeBitStrings:!0}),"boolean"===typeof t&&(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),"string"===typeof e&&(e=n.util.createBuffer(e));var r=e.length(),i=a(e,e.length(),0,t);if(t.parseAllBytes&&0!==e.length()){var o=new Error("Unparsed DER bytes remain after ASN.1 parsing.");throw o.byteCount=r,o.remaining=e.length(),o}return i},i.toDer=function(e){var t=n.util.createBuffer(),r=e.tagClass|e.type,o=n.util.createBuffer(),s=!1;if("bitStringContents"in e&&(s=!0,e.original&&(s=i.equals(e,e.original))),s)o.putBytes(e.bitStringContents);else if(e.composed){e.constructed?r|=32:o.putByte(0);for(var a=0;a<e.value.length;++a)void 0!==e.value[a]&&o.putBuffer(i.toDer(e.value[a]))}else if(e.type===i.Type.BMPSTRING)for(a=0;a<e.value.length;++a)o.putInt16(e.value.charCodeAt(a));else e.type===i.Type.INTEGER&&e.value.length>1&&(0===e.value.charCodeAt(0)&&0===(128&e.value.charCodeAt(1))||255===e.value.charCodeAt(0)&&128===(128&e.value.charCodeAt(1)))?o.putBytes(e.value.substr(1)):o.putBytes(e.value);if(t.putByte(r),o.length()<=127)t.putByte(127&o.length());else{var c=o.length(),l="";do{l+=String.fromCharCode(255&c),c>>>=8}while(c>0);t.putByte(128|l.length);for(a=l.length-1;a>=0;--a)t.putByte(l.charCodeAt(a))}return t.putBuffer(o),t},i.oidToDer=function(e){var t,r,i,o,s=e.split("."),a=n.util.createBuffer();a.putByte(40*parseInt(s[0],10)+parseInt(s[1],10));for(var c=2;c<s.length;++c){t=!0,r=[],i=parseInt(s[c],10);do{o=127&i,i>>>=7,t||(o|=128),r.push(o),t=!1}while(i>0);for(var l=r.length-1;l>=0;--l)a.putByte(r[l])}return a},i.derToOid=function(e){var t;"string"===typeof e&&(e=n.util.createBuffer(e));var r=e.getByte();t=Math.floor(r/40)+"."+r%40;for(var i=0;e.length()>0;)i<<=7,128&(r=e.getByte())?i+=127&r:(t+="."+(i+r),i=0);return t},i.utcTimeToDate=function(e){var t=new Date,r=parseInt(e.substr(0,2),10);r=r>=50?1900+r:2e3+r;var n=parseInt(e.substr(2,2),10)-1,i=parseInt(e.substr(4,2),10),o=parseInt(e.substr(6,2),10),s=parseInt(e.substr(8,2),10),a=0;if(e.length>11){var c=e.charAt(10),l=10;"+"!==c&&"-"!==c&&(a=parseInt(e.substr(10,2),10),l+=2)}if(t.setUTCFullYear(r,n,i),t.setUTCHours(o,s,a,0),l&&("+"===(c=e.charAt(l))||"-"===c)){var u=60*parseInt(e.substr(l+1,2),10)+parseInt(e.substr(l+4,2),10);u*=6e4,"+"===c?t.setTime(+t-u):t.setTime(+t+u)}return t},i.generalizedTimeToDate=function(e){var t=new Date,r=parseInt(e.substr(0,4),10),n=parseInt(e.substr(4,2),10)-1,i=parseInt(e.substr(6,2),10),o=parseInt(e.substr(8,2),10),s=parseInt(e.substr(10,2),10),a=parseInt(e.substr(12,2),10),c=0,l=0,u=!1;"Z"===e.charAt(e.length-1)&&(u=!0);var h=e.length-5,d=e.charAt(h);"+"!==d&&"-"!==d||(l=60*parseInt(e.substr(h+1,2),10)+parseInt(e.substr(h+4,2),10),l*=6e4,"+"===d&&(l*=-1),u=!0);return"."===e.charAt(14)&&(c=1e3*parseFloat(e.substr(14),10)),u?(t.setUTCFullYear(r,n,i),t.setUTCHours(o,s,a,c),t.setTime(+t+l)):(t.setFullYear(r,n,i),t.setHours(o,s,a,c)),t},i.dateToUtcTime=function(e){if("string"===typeof e)return e;var t="",r=[];r.push((""+e.getUTCFullYear()).substr(2)),r.push(""+(e.getUTCMonth()+1)),r.push(""+e.getUTCDate()),r.push(""+e.getUTCHours()),r.push(""+e.getUTCMinutes()),r.push(""+e.getUTCSeconds());for(var n=0;n<r.length;++n)r[n].length<2&&(t+="0"),t+=r[n];return t+="Z"},i.dateToGeneralizedTime=function(e){if("string"===typeof e)return e;var t="",r=[];r.push(""+e.getUTCFullYear()),r.push(""+(e.getUTCMonth()+1)),r.push(""+e.getUTCDate()),r.push(""+e.getUTCHours()),r.push(""+e.getUTCMinutes()),r.push(""+e.getUTCSeconds());for(var n=0;n<r.length;++n)r[n].length<2&&(t+="0"),t+=r[n];return t+="Z"},i.integerToDer=function(e){var t=n.util.createBuffer();if(e>=-128&&e<128)return t.putSignedInt(e,8);if(e>=-32768&&e<32768)return t.putSignedInt(e,16);if(e>=-8388608&&e<8388608)return t.putSignedInt(e,24);if(e>=-2147483648&&e<2147483648)return t.putSignedInt(e,32);var r=new Error("Integer too large; max is 32-bits.");throw r.integer=e,r},i.derToInteger=function(e){"string"===typeof e&&(e=n.util.createBuffer(e));var t=8*e.length();if(t>32)throw new Error("Integer too large; max is 32-bits.");return e.getSignedInt(t)},i.validate=function(e,t,r,o){var s=!1;if(e.tagClass!==t.tagClass&&"undefined"!==typeof t.tagClass||e.type!==t.type&&"undefined"!==typeof t.type)o&&(e.tagClass!==t.tagClass&&o.push("["+t.name+'] Expected tag class "'+t.tagClass+'", got "'+e.tagClass+'"'),e.type!==t.type&&o.push("["+t.name+'] Expected type "'+t.type+'", got "'+e.type+'"'));else if(e.constructed===t.constructed||"undefined"===typeof t.constructed){if(s=!0,t.value&&n.util.isArray(t.value))for(var a=0,c=0;s&&c<t.value.length;++c)s=t.value[c].optional||!1,e.value[a]&&((s=i.validate(e.value[a],t.value[c],r,o))?++a:t.value[c].optional&&(s=!0)),!s&&o&&o.push("["+t.name+'] Tag class "'+t.tagClass+'", type "'+t.type+'" expected value length "'+t.value.length+'", got "'+e.value.length+'"');if(s&&r)if(t.capture&&(r[t.capture]=e.value),t.captureAsn1&&(r[t.captureAsn1]=e),t.captureBitStringContents&&"bitStringContents"in e&&(r[t.captureBitStringContents]=e.bitStringContents),t.captureBitStringValue&&"bitStringContents"in e)if(e.bitStringContents.length<2)r[t.captureBitStringValue]="";else{if(0!==e.bitStringContents.charCodeAt(0))throw new Error("captureBitStringValue only supported for zero unused bits");r[t.captureBitStringValue]=e.bitStringContents.slice(1)}}else o&&o.push("["+t.name+'] Expected constructed "'+t.constructed+'", got "'+e.constructed+'"');return s};var c=/[^\\u0000-\\u00ff]/;i.prettyPrint=function(e,t,r){var o="";r=r||2,(t=t||0)>0&&(o+="\n");for(var s="",a=0;a<t*r;++a)s+=" ";switch(o+=s+"Tag: ",e.tagClass){case i.Class.UNIVERSAL:o+="Universal:";break;case i.Class.APPLICATION:o+="Application:";break;case i.Class.CONTEXT_SPECIFIC:o+="Context-Specific:";break;case i.Class.PRIVATE:o+="Private:"}if(e.tagClass===i.Class.UNIVERSAL)switch(o+=e.type,e.type){case i.Type.NONE:o+=" (None)";break;case i.Type.BOOLEAN:o+=" (Boolean)";break;case i.Type.INTEGER:o+=" (Integer)";break;case i.Type.BITSTRING:o+=" (Bit string)";break;case i.Type.OCTETSTRING:o+=" (Octet string)";break;case i.Type.NULL:o+=" (Null)";break;case i.Type.OID:o+=" (Object Identifier)";break;case i.Type.ODESC:o+=" (Object Descriptor)";break;case i.Type.EXTERNAL:o+=" (External or Instance of)";break;case i.Type.REAL:o+=" (Real)";break;case i.Type.ENUMERATED:o+=" (Enumerated)";break;case i.Type.EMBEDDED:o+=" (Embedded PDV)";break;case i.Type.UTF8:o+=" (UTF8)";break;case i.Type.ROID:o+=" (Relative Object Identifier)";break;case i.Type.SEQUENCE:o+=" (Sequence)";break;case i.Type.SET:o+=" (Set)";break;case i.Type.PRINTABLESTRING:o+=" (Printable String)";break;case i.Type.IA5String:o+=" (IA5String (ASCII))";break;case i.Type.UTCTIME:o+=" (UTC time)";break;case i.Type.GENERALIZEDTIME:o+=" (Generalized time)";break;case i.Type.BMPSTRING:o+=" (BMP String)"}else o+=e.type;if(o+="\n",o+=s+"Constructed: "+e.constructed+"\n",e.composed){var l=0,u="";for(a=0;a<e.value.length;++a)void 0!==e.value[a]&&(l+=1,u+=i.prettyPrint(e.value[a],t+1,r),a+1<e.value.length&&(u+=","));o+=s+"Sub values: "+l+u}else{if(o+=s+"Value: ",e.type===i.Type.OID){var h=i.derToOid(e.value);o+=h,n.pki&&n.pki.oids&&h in n.pki.oids&&(o+=" ("+n.pki.oids[h]+") ")}if(e.type===i.Type.INTEGER)try{o+=i.derToInteger(e.value)}catch(p){o+="0x"+n.util.bytesToHex(e.value)}else if(e.type===i.Type.BITSTRING){if(e.value.length>1?o+="0x"+n.util.bytesToHex(e.value.slice(1)):o+="(none)",e.value.length>0){var d=e.value.charCodeAt(0);1==d?o+=" (1 unused bit shown)":d>1&&(o+=" ("+d+" unused bits shown)")}}else if(e.type===i.Type.OCTETSTRING)c.test(e.value)||(o+="("+e.value+") "),o+="0x"+n.util.bytesToHex(e.value);else if(e.type===i.Type.UTF8)try{o+=n.util.decodeUtf8(e.value)}catch(f){if("URI malformed"!==f.message)throw f;o+="0x"+n.util.bytesToHex(e.value)+" (malformed UTF8)"}else e.type===i.Type.PRINTABLESTRING||e.type===i.Type.IA5String?o+=e.value:c.test(e.value)?o+="0x"+n.util.bytesToHex(e.value):0===e.value.length?o+="[null]":o+=e.value}return o}},5754:e=>{var t={};e.exports=t;var r={};t.encode=function(e,t,r){if("string"!==typeof t)throw new TypeError('"alphabet" must be a string.');if(void 0!==r&&"number"!==typeof r)throw new TypeError('"maxline" must be a number.');var n="";if(e instanceof Uint8Array){var i=0,o=t.length,s=t.charAt(0),a=[0];for(i=0;i<e.length;++i){for(var c=0,l=e[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;0===e[i]&&i<e.length-1;++i)n+=s;for(i=a.length-1;i>=0;--i)n+=t[a[i]]}else n=function(e,t){var r=0,n=t.length,i=t.charAt(0),o=[0];for(r=0;r<e.length();++r){for(var s=0,a=e.at(r);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(r=0;0===e.at(r)&&r<e.length()-1;++r)c+=i;for(r=o.length-1;r>=0;--r)c+=t[o[r]];return c}(e,t);if(r){var u=new RegExp(".{1,"+r+"}","g");n=n.match(u).join("\r\n")}return n},t.decode=function(e,t){if("string"!==typeof e)throw new TypeError('"input" must be a string.');if("string"!==typeof t)throw new TypeError('"alphabet" must be a string.');var n=r[t];if(!n){n=r[t]=[];for(var i=0;i<t.length;++i)n[t.charCodeAt(i)]=i}e=e.replace(/\s/g,"");var o=t.length,s=t.charAt(0),a=[0];for(i=0;i<e.length;i++){var c=n[e.charCodeAt(i)];if(void 0===c)return;for(var l=0,u=c;l<a.length;++l)u+=a[l]*o,a[l]=255&u,u>>=8;for(;u>0;)a.push(255&u),u>>=8}for(var h=0;e[h]===s&&h<e.length-1;++h)a.push(0);return"undefined"!==typeof Buffer?Buffer.from(a.reverse()):new Uint8Array(a.reverse())}},3397:(e,t,r)=>{var n=r(392);r(3877),e.exports=n.cipher=n.cipher||{},n.cipher.algorithms=n.cipher.algorithms||{},n.cipher.createCipher=function(e,t){var r=e;if("string"===typeof r&&(r=n.cipher.getAlgorithm(r))&&(r=r()),!r)throw new Error("Unsupported algorithm: "+e);return new n.cipher.BlockCipher({algorithm:r,key:t,decrypt:!1})},n.cipher.createDecipher=function(e,t){var r=e;if("string"===typeof r&&(r=n.cipher.getAlgorithm(r))&&(r=r()),!r)throw new Error("Unsupported algorithm: "+e);return new n.cipher.BlockCipher({algorithm:r,key:t,decrypt:!0})},n.cipher.registerAlgorithm=function(e,t){e=e.toUpperCase(),n.cipher.algorithms[e]=t},n.cipher.getAlgorithm=function(e){return(e=e.toUpperCase())in n.cipher.algorithms?n.cipher.algorithms[e]:null};var i=n.cipher.BlockCipher=function(e){this.algorithm=e.algorithm,this.mode=this.algorithm.mode,this.blockSize=this.mode.blockSize,this._finish=!1,this._input=null,this.output=null,this._op=e.decrypt?this.mode.decrypt:this.mode.encrypt,this._decrypt=e.decrypt,this.algorithm.initialize(e)};i.prototype.start=function(e){e=e||{};var t={};for(var r in e)t[r]=e[r];t.decrypt=this._decrypt,this._finish=!1,this._input=n.util.createBuffer(),this.output=e.output||n.util.createBuffer(),this.mode.start(t)},i.prototype.update=function(e){for(e&&this._input.putBuffer(e);!this._op.call(this.mode,this._input,this.output,this._finish)&&!this._finish;);this._input.compact()},i.prototype.finish=function(e){!e||"ECB"!==this.mode.name&&"CBC"!==this.mode.name||(this.mode.pad=function(t){return e(this.blockSize,t,!1)},this.mode.unpad=function(t){return e(this.blockSize,t,!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)))}},4533:(e,t,r)=>{var n=r(392);r(3877),n.cipher=n.cipher||{};var i=e.exports=n.cipher.modes=n.cipher.modes||{};function o(e,t){if("string"===typeof e&&(e=n.util.createBuffer(e)),n.util.isArray(e)&&e.length>4){var r=e;e=n.util.createBuffer();for(var i=0;i<r.length;++i)e.putByte(r[i])}if(e.length()<t)throw new Error("Invalid IV length; got "+e.length()+" bytes and expected "+t+" bytes.");if(!n.util.isArray(e)){var o=[],s=t/4;for(i=0;i<s;++i)o.push(e.getInt32());e=o}return e}function s(e){e[e.length-1]=e[e.length-1]+1&4294967295}function a(e){return[e/4294967296|0,4294967295&e]}i.ecb=function(e){e=e||{},this.name="ECB",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=new Array(this._ints),this._outBlock=new Array(this._ints)},i.ecb.prototype.start=function(e){},i.ecb.prototype.encrypt=function(e,t,r){if(e.length()<this.blockSize&&!(r&&e.length()>0))return!0;for(var n=0;n<this._ints;++n)this._inBlock[n]=e.getInt32();this.cipher.encrypt(this._inBlock,this._outBlock);for(n=0;n<this._ints;++n)t.putInt32(this._outBlock[n])},i.ecb.prototype.decrypt=function(e,t,r){if(e.length()<this.blockSize&&!(r&&e.length()>0))return!0;for(var n=0;n<this._ints;++n)this._inBlock[n]=e.getInt32();this.cipher.decrypt(this._inBlock,this._outBlock);for(n=0;n<this._ints;++n)t.putInt32(this._outBlock[n])},i.ecb.prototype.pad=function(e,t){var r=e.length()===this.blockSize?this.blockSize:this.blockSize-e.length();return e.fillWithByte(r,r),!0},i.ecb.prototype.unpad=function(e,t){if(t.overflow>0)return!1;var r=e.length(),n=e.at(r-1);return!(n>this.blockSize<<2)&&(e.truncate(n),!0)},i.cbc=function(e){e=e||{},this.name="CBC",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=new Array(this._ints),this._outBlock=new Array(this._ints)},i.cbc.prototype.start=function(e){if(null===e.iv){if(!this._prev)throw new Error("Invalid IV parameter.");this._iv=this._prev.slice(0)}else{if(!("iv"in e))throw new Error("Invalid IV parameter.");this._iv=o(e.iv,this.blockSize),this._prev=this._iv.slice(0)}},i.cbc.prototype.encrypt=function(e,t,r){if(e.length()<this.blockSize&&!(r&&e.length()>0))return!0;for(var n=0;n<this._ints;++n)this._inBlock[n]=this._prev[n]^e.getInt32();this.cipher.encrypt(this._inBlock,this._outBlock);for(n=0;n<this._ints;++n)t.putInt32(this._outBlock[n]);this._prev=this._outBlock},i.cbc.prototype.decrypt=function(e,t,r){if(e.length()<this.blockSize&&!(r&&e.length()>0))return!0;for(var n=0;n<this._ints;++n)this._inBlock[n]=e.getInt32();this.cipher.decrypt(this._inBlock,this._outBlock);for(n=0;n<this._ints;++n)t.putInt32(this._prev[n]^this._outBlock[n]);this._prev=this._inBlock.slice(0)},i.cbc.prototype.pad=function(e,t){var r=e.length()===this.blockSize?this.blockSize:this.blockSize-e.length();return e.fillWithByte(r,r),!0},i.cbc.prototype.unpad=function(e,t){if(t.overflow>0)return!1;var r=e.length(),n=e.at(r-1);return!(n>this.blockSize<<2)&&(e.truncate(n),!0)},i.cfb=function(e){e=e||{},this.name="CFB",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialBlock=new Array(this._ints),this._partialOutput=n.util.createBuffer(),this._partialBytes=0},i.cfb.prototype.start=function(e){if(!("iv"in e))throw new Error("Invalid IV parameter.");this._iv=o(e.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0},i.cfb.prototype.encrypt=function(e,t,r){var n=e.length();if(0===n)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),0===this._partialBytes&&n>=this.blockSize)for(var i=0;i<this._ints;++i)this._inBlock[i]=e.getInt32()^this._outBlock[i],t.putInt32(this._inBlock[i]);else{var o=(this.blockSize-n)%this.blockSize;o>0&&(o=this.blockSize-o),this._partialOutput.clear();for(i=0;i<this._ints;++i)this._partialBlock[i]=e.getInt32()^this._outBlock[i],this._partialOutput.putInt32(this._partialBlock[i]);if(o>0)e.read-=this.blockSize;else for(i=0;i<this._ints;++i)this._inBlock[i]=this._partialBlock[i];if(this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),o>0&&!r)return t.putBytes(this._partialOutput.getBytes(o-this._partialBytes)),this._partialBytes=o,!0;t.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0}},i.cfb.prototype.decrypt=function(e,t,r){var n=e.length();if(0===n)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),0===this._partialBytes&&n>=this.blockSize)for(var i=0;i<this._ints;++i)this._inBlock[i]=e.getInt32(),t.putInt32(this._inBlock[i]^this._outBlock[i]);else{var o=(this.blockSize-n)%this.blockSize;o>0&&(o=this.blockSize-o),this._partialOutput.clear();for(i=0;i<this._ints;++i)this._partialBlock[i]=e.getInt32(),this._partialOutput.putInt32(this._partialBlock[i]^this._outBlock[i]);if(o>0)e.read-=this.blockSize;else for(i=0;i<this._ints;++i)this._inBlock[i]=this._partialBlock[i];if(this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),o>0&&!r)return t.putBytes(this._partialOutput.getBytes(o-this._partialBytes)),this._partialBytes=o,!0;t.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0}},i.ofb=function(e){e=e||{},this.name="OFB",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialOutput=n.util.createBuffer(),this._partialBytes=0},i.ofb.prototype.start=function(e){if(!("iv"in e))throw new Error("Invalid IV parameter.");this._iv=o(e.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0},i.ofb.prototype.encrypt=function(e,t,r){var n=e.length();if(0===e.length())return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),0===this._partialBytes&&n>=this.blockSize)for(var i=0;i<this._ints;++i)t.putInt32(e.getInt32()^this._outBlock[i]),this._inBlock[i]=this._outBlock[i];else{var o=(this.blockSize-n)%this.blockSize;o>0&&(o=this.blockSize-o),this._partialOutput.clear();for(i=0;i<this._ints;++i)this._partialOutput.putInt32(e.getInt32()^this._outBlock[i]);if(o>0)e.read-=this.blockSize;else for(i=0;i<this._ints;++i)this._inBlock[i]=this._outBlock[i];if(this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),o>0&&!r)return t.putBytes(this._partialOutput.getBytes(o-this._partialBytes)),this._partialBytes=o,!0;t.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0}},i.ofb.prototype.decrypt=i.ofb.prototype.encrypt,i.ctr=function(e){e=e||{},this.name="CTR",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialOutput=n.util.createBuffer(),this._partialBytes=0},i.ctr.prototype.start=function(e){if(!("iv"in e))throw new Error("Invalid IV parameter.");this._iv=o(e.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0},i.ctr.prototype.encrypt=function(e,t,r){var n=e.length();if(0===n)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),0===this._partialBytes&&n>=this.blockSize)for(var i=0;i<this._ints;++i)t.putInt32(e.getInt32()^this._outBlock[i]);else{var o=(this.blockSize-n)%this.blockSize;o>0&&(o=this.blockSize-o),this._partialOutput.clear();for(i=0;i<this._ints;++i)this._partialOutput.putInt32(e.getInt32()^this._outBlock[i]);if(o>0&&(e.read-=this.blockSize),this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),o>0&&!r)return t.putBytes(this._partialOutput.getBytes(o-this._partialBytes)),this._partialBytes=o,!0;t.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0}s(this._inBlock)},i.ctr.prototype.decrypt=i.ctr.prototype.encrypt,i.gcm=function(e){e=e||{},this.name="GCM",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=new Array(this._ints),this._outBlock=new Array(this._ints),this._partialOutput=n.util.createBuffer(),this._partialBytes=0,this._R=3774873600},i.gcm.prototype.start=function(e){if(!("iv"in e))throw new Error("Invalid IV parameter.");var t,r=n.util.createBuffer(e.iv);if(this._cipherLength=0,t="additionalData"in e?n.util.createBuffer(e.additionalData):n.util.createBuffer(),this._tagLength="tagLength"in e?e.tagLength:128,this._tag=null,e.decrypt&&(this._tag=n.util.createBuffer(e.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 i=r.length();if(12===i)this._j0=[r.getInt32(),r.getInt32(),r.getInt32(),1];else{for(this._j0=[0,0,0,0];r.length()>0;)this._j0=this.ghash(this._hashSubkey,this._j0,[r.getInt32(),r.getInt32(),r.getInt32(),r.getInt32()]);this._j0=this.ghash(this._hashSubkey,this._j0,[0,0].concat(a(8*i)))}this._inBlock=this._j0.slice(0),s(this._inBlock),this._partialBytes=0,t=n.util.createBuffer(t),this._aDataLength=a(8*t.length());var o=t.length()%this.blockSize;for(o&&t.fillWithByte(0,this.blockSize-o),this._s=[0,0,0,0];t.length()>0;)this._s=this.ghash(this._hashSubkey,this._s,[t.getInt32(),t.getInt32(),t.getInt32(),t.getInt32()])},i.gcm.prototype.encrypt=function(e,t,r){var n=e.length();if(0===n)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),0===this._partialBytes&&n>=this.blockSize){for(var i=0;i<this._ints;++i)t.putInt32(this._outBlock[i]^=e.getInt32());this._cipherLength+=this.blockSize}else{var o=(this.blockSize-n)%this.blockSize;o>0&&(o=this.blockSize-o),this._partialOutput.clear();for(i=0;i<this._ints;++i)this._partialOutput.putInt32(e.getInt32()^this._outBlock[i]);if(o<=0||r){if(r){var a=n%this.blockSize;this._cipherLength+=a,this._partialOutput.truncate(this.blockSize-a)}else this._cipherLength+=this.blockSize;for(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&&!r)return e.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),s(this._inBlock)},i.gcm.prototype.decrypt=function(e,t,r){var n=e.length();if(n<this.blockSize&&!(r&&n>0))return!0;this.cipher.encrypt(this._inBlock,this._outBlock),s(this._inBlock),this._hashBlock[0]=e.getInt32(),this._hashBlock[1]=e.getInt32(),this._hashBlock[2]=e.getInt32(),this._hashBlock[3]=e.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},i.gcm.prototype.afterFinish=function(e,t){var r=!0;t.decrypt&&t.overflow&&e.truncate(this.blockSize-t.overflow),this.tag=n.util.createBuffer();var i=this._aDataLength.concat(a(8*this._cipherLength));this._s=this.ghash(this._hashSubkey,this._s,i);var o=[];this.cipher.encrypt(this._j0,o);for(var s=0;s<this._ints;++s)this.tag.putInt32(this._s[s]^o[s]);return this.tag.truncate(this.tag.length()%(this._tagLength/8)),t.decrypt&&this.tag.bytes()!==this._tag&&(r=!1),r},i.gcm.prototype.multiply=function(e,t){for(var r=[0,0,0,0],n=t.slice(0),i=0;i<128;++i){e[i/32|0]&1<<31-i%32&&(r[0]^=n[0],r[1]^=n[1],r[2]^=n[2],r[3]^=n[3]),this.pow(n,n)}return r},i.gcm.prototype.pow=function(e,t){for(var r=1&e[3],n=3;n>0;--n)t[n]=e[n]>>>1|(1&e[n-1])<<31;t[0]=e[0]>>>1,r&&(t[0]^=this._R)},i.gcm.prototype.tableMultiply=function(e){for(var t=[0,0,0,0],r=0;r<32;++r){var n=e[r/8|0]>>>4*(7-r%8)&15,i=this._m[r][n];t[0]^=i[0],t[1]^=i[1],t[2]^=i[2],t[3]^=i[3]}return t},i.gcm.prototype.ghash=function(e,t,r){return t[0]^=r[0],t[1]^=r[1],t[2]^=r[2],t[3]^=r[3],this.tableMultiply(t)},i.gcm.prototype.generateHashTable=function(e,t){for(var r=8/t,n=4*r,i=16*r,o=new Array(i),s=0;s<i;++s){var a=[0,0,0,0],c=(n-1-s%n)*t;a[s/n|0]=1<<t-1<<c,o[s]=this.generateSubHashTable(this.multiply(a,e),t)}return o},i.gcm.prototype.generateSubHashTable=function(e,t){var r=1<<t,n=r>>>1,i=new Array(r);i[n]=e.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<r;++o){var l=i[o^n];i[o]=[e[0]^l[0],e[1]^l[1],e[2]^l[2],e[3]^l[3]]}return i}},1400:(e,t,r)=>{var n=r(392);function i(e,t){n.cipher.registerAlgorithm(e,(function(){return new n.des.Algorithm(e,t)}))}r(3397),r(4533),r(3877),e.exports=n.des=n.des||{},n.des.startEncrypting=function(e,t,r,n){var i=f({key:e,output:r,decrypt:!1,mode:n||(null===t?"ECB":"CBC")});return i.start(t),i},n.des.createEncryptionCipher=function(e,t){return f({key:e,output:null,decrypt:!1,mode:t})},n.des.startDecrypting=function(e,t,r,n){var i=f({key:e,output:r,decrypt:!0,mode:n||(null===t?"ECB":"CBC")});return i.start(t),i},n.des.createDecryptionCipher=function(e,t){return f({key:e,output:null,decrypt:!0,mode:t})},n.des.Algorithm=function(e,t){var r=this;r.name=e,r.mode=new t({blockSize:8,cipher:{encrypt:function(e,t){return p(r._keys,e,t,!1)},decrypt:function(e,t){return p(r._keys,e,t,!0)}}}),r._init=!1},n.des.Algorithm.prototype.initialize=function(e){if(!this._init){var t=n.util.createBuffer(e.key);if(0===this.name.indexOf("3DES")&&24!==t.length())throw new Error("Invalid Triple-DES key size: "+8*t.length());this._keys=function(e){for(var t,r=[0,4,536870912,536870916,65536,65540,536936448,536936452,512,516,536871424,536871428,66048,66052,536936960,536936964],n=[0,1,1048576,1048577,67108864,67108865,68157440,68157441,256,257,1048832,1048833,67109120,67109121,68157696,68157697],i=[0,8,2048,2056,16777216,16777224,16779264,16779272,0,8,2048,2056,16777216,16777224,16779264,16779272],o=[0,2097152,134217728,136314880,8192,2105344,134225920,136323072,131072,2228224,134348800,136445952,139264,2236416,134356992,136454144],s=[0,262144,16,262160,0,262144,16,262160,4096,266240,4112,266256,4096,266240,4112,266256],a=[0,1024,32,1056,0,1024,32,1056,33554432,33555456,33554464,33555488,33554432,33555456,33554464,33555488],c=[0,268435456,524288,268959744,2,268435458,524290,268959746,0,268435456,524288,268959744,2,268435458,524290,268959746],l=[0,65536,2048,67584,536870912,536936448,536872960,536938496,131072,196608,133120,198656,537001984,537067520,537004032,537069568],u=[0,262144,0,262144,2,262146,2,262146,33554432,33816576,33554432,33816576,33554434,33816578,33554434,33816578],h=[0,268435456,8,268435464,0,268435456,8,268435464,1024,268436480,1032,268436488,1024,268436480,1032,268436488],d=[0,32,0,32,1048576,1048608,1048576,1048608,8192,8224,8192,8224,1056768,1056800,1056768,1056800],p=[0,16777216,512,16777728,2097152,18874368,2097664,18874880,67108864,83886080,67109376,83886592,69206016,85983232,69206528,85983744],f=[0,4096,134217728,134221824,524288,528384,134742016,134746112,16,4112,134217744,134221840,524304,528400,134742032,134746128],y=[0,4,256,260,0,4,256,260,1,5,257,261,1,5,257,261],g=e.length()>8?3:1,m=[],b=[0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0],w=0,v=0;v<g;v++){var _=e.getInt32(),E=e.getInt32();_^=(t=252645135&(_>>>4^E))<<4,_^=t=65535&((E^=t)>>>-16^_),_^=(t=858993459&(_>>>2^(E^=t<<-16)))<<2,_^=t=65535&((E^=t)>>>-16^_),_^=(t=1431655765&(_>>>1^(E^=t<<-16)))<<1,_^=t=16711935&((E^=t)>>>8^_),t=(_^=(t=1431655765&(_>>>1^(E^=t<<8)))<<1)<<8|(E^=t)>>>20&240,_=E<<24|E<<8&16711680|E>>>8&65280|E>>>24&240,E=t;for(var S=0;S<b.length;++S){b[S]?(_=_<<2|_>>>26,E=E<<2|E>>>26):(_=_<<1|_>>>27,E=E<<1|E>>>27),E&=-15;var A=r[(_&=-15)>>>28]|n[_>>>24&15]|i[_>>>20&15]|o[_>>>16&15]|s[_>>>12&15]|a[_>>>8&15]|c[_>>>4&15],k=l[E>>>28]|u[E>>>24&15]|h[E>>>20&15]|d[E>>>16&15]|p[E>>>12&15]|f[E>>>8&15]|y[E>>>4&15];t=65535&(k>>>16^A),m[w++]=A^t,m[w++]=k^t<<16}}return m}(t),this._init=!0}},i("DES-ECB",n.cipher.modes.ecb),i("DES-CBC",n.cipher.modes.cbc),i("DES-CFB",n.cipher.modes.cfb),i("DES-OFB",n.cipher.modes.ofb),i("DES-CTR",n.cipher.modes.ctr),i("3DES-ECB",n.cipher.modes.ecb),i("3DES-CBC",n.cipher.modes.cbc),i("3DES-CFB",n.cipher.modes.cfb),i("3DES-OFB",n.cipher.modes.ofb),i("3DES-CTR",n.cipher.modes.ctr);var o=[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],s=[-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],a=[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],c=[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],l=[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],u=[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],h=[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],d=[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 p(e,t,r,n){var i,p,f=32===e.length?3:9;i=3===f?n?[30,-2,-2]:[0,32,2]:n?[94,62,-2,32,64,2,30,-2,-2]:[0,32,2,62,30,-2,64,96,2];var y=t[0],g=t[1];y^=(p=252645135&(y>>>4^g))<<4,y^=(p=65535&(y>>>16^(g^=p)))<<16,y^=p=858993459&((g^=p)>>>2^y),y^=p=16711935&((g^=p<<2)>>>8^y),y=(y^=(p=1431655765&(y>>>1^(g^=p<<8)))<<1)<<1|y>>>31,g=(g^=p)<<1|g>>>31;for(var m=0;m<f;m+=3){for(var b=i[m+1],w=i[m+2],v=i[m];v!=b;v+=w){var _=g^e[v],E=(g>>>4|g<<28)^e[v+1];p=y,y=g,g=p^(s[_>>>24&63]|c[_>>>16&63]|u[_>>>8&63]|d[63&_]|o[E>>>24&63]|a[E>>>16&63]|l[E>>>8&63]|h[63&E])}p=y,y=g,g=p}g=g>>>1|g<<31,g^=p=1431655765&((y=y>>>1|y<<31)>>>1^g),g^=(p=16711935&(g>>>8^(y^=p<<1)))<<8,g^=(p=858993459&(g>>>2^(y^=p)))<<2,g^=p=65535&((y^=p)>>>16^g),g^=p=252645135&((y^=p<<16)>>>4^g),y^=p<<4,r[0]=y,r[1]=g}function f(e){var t,r="DES-"+((e=e||{}).mode||"CBC").toUpperCase(),i=(t=e.decrypt?n.cipher.createDecipher(r,e.key):n.cipher.createCipher(r,e.key)).start;return t.start=function(e,r){var o=null;r instanceof n.util.ByteBuffer&&(o=r,r={}),(r=r||{}).output=o,r.iv=e,i.call(t,r)},t}},392:e=>{e.exports={options:{usePureJavaScript:!1}}},878:(e,t,r)=>{var n=r(392);r(29),r(3877),(e.exports=n.hmac=n.hmac||{}).create=function(){var e=null,t=null,r=null,i=null,o={start:function(o,s){if(null!==o)if("string"===typeof o){if(!((o=o.toLowerCase())in n.md.algorithms))throw new Error('Unknown hash algorithm "'+o+'"');t=n.md.algorithms[o].create()}else t=o;if(null===s)s=e;else{if("string"===typeof s)s=n.util.createBuffer(s);else if(n.util.isArray(s)){var a=s;s=n.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()),r=n.util.createBuffer(),i=n.util.createBuffer(),l=s.length();for(c=0;c<l;++c){a=s.at(c);r.putByte(54^a),i.putByte(92^a)}if(l<t.blockLength)for(a=t.blockLength-l,c=0;c<a;++c)r.putByte(54),i.putByte(92);e=s,r=r.bytes(),i=i.bytes()}t.start(),t.update(r)},update:function(e){t.update(e)},getMac:function(){var e=t.digest().bytes();return t.start(),t.update(i),t.update(e),t.digest()}};return o.digest=o.getMac,o}},3055:(e,t,r)=>{var n,i=r(392);e.exports=i.jsbn=i.jsbn||{};function o(e,t,r){this.data=[],null!=e&&("number"==typeof e?this.fromNumber(e,t,r):null==t&&"string"!=typeof e?this.fromString(e,256):this.fromString(e,t))}function s(){return new o(null)}function a(e,t,r,n,i,o){for(var s=16383&t,a=t>>14;--o>=0;){var c=16383&this.data[e],l=this.data[e++]>>14,u=a*c+l*s;i=((c=s*c+((16383&u)<<14)+r.data[n]+i)>>28)+(u>>14)+a*l,r.data[n++]=268435455&c}return i}i.jsbn.BigInteger=o,"undefined"===typeof navigator?(o.prototype.am=a,n=28):"Microsoft Internet Explorer"==navigator.appName?(o.prototype.am=function(e,t,r,n,i,o){for(var s=32767&t,a=t>>15;--o>=0;){var c=32767&this.data[e],l=this.data[e++]>>15,u=a*c+l*s;i=((c=s*c+((32767&u)<<15)+r.data[n]+(1073741823&i))>>>30)+(u>>>15)+a*l+(i>>>30),r.data[n++]=1073741823&c}return i},n=30):"Netscape"!=navigator.appName?(o.prototype.am=function(e,t,r,n,i,o){for(;--o>=0;){var s=t*this.data[e++]+r.data[n]+i;i=Math.floor(s/67108864),r.data[n++]=67108863&s}return i},n=26):(o.prototype.am=a,n=28),o.prototype.DB=n,o.prototype.DM=(1<<n)-1,o.prototype.DV=1<<n;o.prototype.FV=Math.pow(2,52),o.prototype.F1=52-n,o.prototype.F2=2*n-52;var c,l,u="0123456789abcdefghijklmnopqrstuvwxyz",h=new Array;for(c="0".charCodeAt(0),l=0;l<=9;++l)h[c++]=l;for(c="a".charCodeAt(0),l=10;l<36;++l)h[c++]=l;for(c="A".charCodeAt(0),l=10;l<36;++l)h[c++]=l;function d(e){return u.charAt(e)}function p(e,t){var r=h[e.charCodeAt(t)];return null==r?-1:r}function f(e){var t=s();return t.fromInt(e),t}function y(e){var t,r=1;return 0!=(t=e>>>16)&&(e=t,r+=16),0!=(t=e>>8)&&(e=t,r+=8),0!=(t=e>>4)&&(e=t,r+=4),0!=(t=e>>2)&&(e=t,r+=2),0!=(t=e>>1)&&(e=t,r+=1),r}function g(e){this.m=e}function m(e){this.m=e,this.mp=e.invDigit(),this.mpl=32767&this.mp,this.mph=this.mp>>15,this.um=(1<<e.DB-15)-1,this.mt2=2*e.t}function b(e,t){return e&t}function w(e,t){return e|t}function v(e,t){return e^t}function _(e,t){return e&~t}function E(e){if(0==e)return-1;var t=0;return 0==(65535&e)&&(e>>=16,t+=16),0==(255&e)&&(e>>=8,t+=8),0==(15&e)&&(e>>=4,t+=4),0==(3&e)&&(e>>=2,t+=2),0==(1&e)&&++t,t}function S(e){for(var t=0;0!=e;)e&=e-1,++t;return t}function A(){}function k(e){return e}function I(e){this.r2=s(),this.q3=s(),o.ONE.dlShiftTo(2*e.t,this.r2),this.mu=this.r2.divide(e),this.m=e}g.prototype.convert=function(e){return e.s<0||e.compareTo(this.m)>=0?e.mod(this.m):e},g.prototype.revert=function(e){return e},g.prototype.reduce=function(e){e.divRemTo(this.m,null,e)},g.prototype.mulTo=function(e,t,r){e.multiplyTo(t,r),this.reduce(r)},g.prototype.sqrTo=function(e,t){e.squareTo(t),this.reduce(t)},m.prototype.convert=function(e){var t=s();return e.abs().dlShiftTo(this.m.t,t),t.divRemTo(this.m,null,t),e.s<0&&t.compareTo(o.ZERO)>0&&this.m.subTo(t,t),t},m.prototype.revert=function(e){var t=s();return e.copyTo(t),this.reduce(t),t},m.prototype.reduce=function(e){for(;e.t<=this.mt2;)e.data[e.t++]=0;for(var t=0;t<this.m.t;++t){var r=32767&e.data[t],n=r*this.mpl+((r*this.mph+(e.data[t]>>15)*this.mpl&this.um)<<15)&e.DM;for(r=t+this.m.t,e.data[r]+=this.m.am(0,n,e,t,0,this.m.t);e.data[r]>=e.DV;)e.data[r]-=e.DV,e.data[++r]++}e.clamp(),e.drShiftTo(this.m.t,e),e.compareTo(this.m)>=0&&e.subTo(this.m,e)},m.prototype.mulTo=function(e,t,r){e.multiplyTo(t,r),this.reduce(r)},m.prototype.sqrTo=function(e,t){e.squareTo(t),this.reduce(t)},o.prototype.copyTo=function(e){for(var t=this.t-1;t>=0;--t)e.data[t]=this.data[t];e.t=this.t,e.s=this.s},o.prototype.fromInt=function(e){this.t=1,this.s=e<0?-1:0,e>0?this.data[0]=e:e<-1?this.data[0]=e+this.DV:this.t=0},o.prototype.fromString=function(e,t){var r;if(16==t)r=4;else if(8==t)r=3;else if(256==t)r=8;else if(2==t)r=1;else if(32==t)r=5;else{if(4!=t)return void this.fromRadix(e,t);r=2}this.t=0,this.s=0;for(var n=e.length,i=!1,s=0;--n>=0;){var a=8==r?255&e[n]:p(e,n);a<0?"-"==e.charAt(n)&&(i=!0):(i=!1,0==s?this.data[this.t++]=a:s+r>this.DB?(this.data[this.t-1]|=(a&(1<<this.DB-s)-1)<<s,this.data[this.t++]=a>>this.DB-s):this.data[this.t-1]|=a<<s,(s+=r)>=this.DB&&(s-=this.DB))}8==r&&0!=(128&e[0])&&(this.s=-1,s>0&&(this.data[this.t-1]|=(1<<this.DB-s)-1<<s)),this.clamp(),i&&o.ZERO.subTo(this,this)},o.prototype.clamp=function(){for(var e=this.s&this.DM;this.t>0&&this.data[this.t-1]==e;)--this.t},o.prototype.dlShiftTo=function(e,t){var r;for(r=this.t-1;r>=0;--r)t.data[r+e]=this.data[r];for(r=e-1;r>=0;--r)t.data[r]=0;t.t=this.t+e,t.s=this.s},o.prototype.drShiftTo=function(e,t){for(var r=e;r<this.t;++r)t.data[r-e]=this.data[r];t.t=Math.max(this.t-e,0),t.s=this.s},o.prototype.lShiftTo=function(e,t){var r,n=e%this.DB,i=this.DB-n,o=(1<<i)-1,s=Math.floor(e/this.DB),a=this.s<<n&this.DM;for(r=this.t-1;r>=0;--r)t.data[r+s+1]=this.data[r]>>i|a,a=(this.data[r]&o)<<n;for(r=s-1;r>=0;--r)t.data[r]=0;t.data[s]=a,t.t=this.t+s+1,t.s=this.s,t.clamp()},o.prototype.rShiftTo=function(e,t){t.s=this.s;var r=Math.floor(e/this.DB);if(r>=this.t)t.t=0;else{var n=e%this.DB,i=this.DB-n,o=(1<<n)-1;t.data[0]=this.data[r]>>n;for(var s=r+1;s<this.t;++s)t.data[s-r-1]|=(this.data[s]&o)<<i,t.data[s-r]=this.data[s]>>n;n>0&&(t.data[this.t-r-1]|=(this.s&o)<<i),t.t=this.t-r,t.clamp()}},o.prototype.subTo=function(e,t){for(var r=0,n=0,i=Math.min(e.t,this.t);r<i;)n+=this.data[r]-e.data[r],t.data[r++]=n&this.DM,n>>=this.DB;if(e.t<this.t){for(n-=e.s;r<this.t;)n+=this.data[r],t.data[r++]=n&this.DM,n>>=this.DB;n+=this.s}else{for(n+=this.s;r<e.t;)n-=e.data[r],t.data[r++]=n&this.DM,n>>=this.DB;n-=e.s}t.s=n<0?-1:0,n<-1?t.data[r++]=this.DV+n:n>0&&(t.data[r++]=n),t.t=r,t.clamp()},o.prototype.multiplyTo=function(e,t){var r=this.abs(),n=e.abs(),i=r.t;for(t.t=i+n.t;--i>=0;)t.data[i]=0;for(i=0;i<n.t;++i)t.data[i+r.t]=r.am(0,n.data[i],t,i,0,r.t);t.s=0,t.clamp(),this.s!=e.s&&o.ZERO.subTo(t,t)},o.prototype.squareTo=function(e){for(var t=this.abs(),r=e.t=2*t.t;--r>=0;)e.data[r]=0;for(r=0;r<t.t-1;++r){var n=t.am(r,t.data[r],e,2*r,0,1);(e.data[r+t.t]+=t.am(r+1,2*t.data[r],e,2*r+1,n,t.t-r-1))>=t.DV&&(e.data[r+t.t]-=t.DV,e.data[r+t.t+1]=1)}e.t>0&&(e.data[e.t-1]+=t.am(r,t.data[r],e,2*r,0,1)),e.s=0,e.clamp()},o.prototype.divRemTo=function(e,t,r){var n=e.abs();if(!(n.t<=0)){var i=this.abs();if(i.t<n.t)return null!=t&&t.fromInt(0),void(null!=r&&this.copyTo(r));null==r&&(r=s());var a=s(),c=this.s,l=e.s,u=this.DB-y(n.data[n.t-1]);u>0?(n.lShiftTo(u,a),i.lShiftTo(u,r)):(n.copyTo(a),i.copyTo(r));var h=a.t,d=a.data[h-1];if(0!=d){var p=d*(1<<this.F1)+(h>1?a.data[h-2]>>this.F2:0),f=this.FV/p,g=(1<<this.F1)/p,m=1<<this.F2,b=r.t,w=b-h,v=null==t?s():t;for(a.dlShiftTo(w,v),r.compareTo(v)>=0&&(r.data[r.t++]=1,r.subTo(v,r)),o.ONE.dlShiftTo(h,v),v.subTo(a,a);a.t<h;)a.data[a.t++]=0;for(;--w>=0;){var _=r.data[--b]==d?this.DM:Math.floor(r.data[b]*f+(r.data[b-1]+m)*g);if((r.data[b]+=a.am(0,_,r,w,0,h))<_)for(a.dlShiftTo(w,v),r.subTo(v,r);r.data[b]<--_;)r.subTo(v,r)}null!=t&&(r.drShiftTo(h,t),c!=l&&o.ZERO.subTo(t,t)),r.t=h,r.clamp(),u>0&&r.rShiftTo(u,r),c<0&&o.ZERO.subTo(r,r)}}},o.prototype.invDigit=function(){if(this.t<1)return 0;var e=this.data[0];if(0==(1&e))return 0;var t=3&e;return(t=(t=(t=(t=t*(2-(15&e)*t)&15)*(2-(255&e)*t)&255)*(2-((65535&e)*t&65535))&65535)*(2-e*t%this.DV)%this.DV)>0?this.DV-t:-t},o.prototype.isEven=function(){return 0==(this.t>0?1&this.data[0]:this.s)},o.prototype.exp=function(e,t){if(e>4294967295||e<1)return o.ONE;var r=s(),n=s(),i=t.convert(this),a=y(e)-1;for(i.copyTo(r);--a>=0;)if(t.sqrTo(r,n),(e&1<<a)>0)t.mulTo(n,i,r);else{var c=r;r=n,n=c}return t.revert(r)},o.prototype.toString=function(e){if(this.s<0)return"-"+this.negate().toString(e);var t;if(16==e)t=4;else if(8==e)t=3;else if(2==e)t=1;else if(32==e)t=5;else{if(4!=e)return this.toRadix(e);t=2}var r,n=(1<<t)-1,i=!1,o="",s=this.t,a=this.DB-s*this.DB%t;if(s-- >0)for(a<this.DB&&(r=this.data[s]>>a)>0&&(i=!0,o=d(r));s>=0;)a<t?(r=(this.data[s]&(1<<a)-1)<<t-a,r|=this.data[--s]>>(a+=this.DB-t)):(r=this.data[s]>>(a-=t)&n,a<=0&&(a+=this.DB,--s)),r>0&&(i=!0),i&&(o+=d(r));return i?o:"0"},o.prototype.negate=function(){var e=s();return o.ZERO.subTo(this,e),e},o.prototype.abs=function(){return this.s<0?this.negate():this},o.prototype.compareTo=function(e){var t=this.s-e.s;if(0!=t)return t;var r=this.t;if(0!=(t=r-e.t))return this.s<0?-t:t;for(;--r>=0;)if(0!=(t=this.data[r]-e.data[r]))return t;return 0},o.prototype.bitLength=function(){return this.t<=0?0:this.DB*(this.t-1)+y(this.data[this.t-1]^this.s&this.DM)},o.prototype.mod=function(e){var t=s();return this.abs().divRemTo(e,null,t),this.s<0&&t.compareTo(o.ZERO)>0&&e.subTo(t,t),t},o.prototype.modPowInt=function(e,t){var r;return r=e<256||t.isEven()?new g(t):new m(t),this.exp(e,r)},o.ZERO=f(0),o.ONE=f(1),A.prototype.convert=k,A.prototype.revert=k,A.prototype.mulTo=function(e,t,r){e.multiplyTo(t,r)},A.prototype.sqrTo=function(e,t){e.squareTo(t)},I.prototype.convert=function(e){if(e.s<0||e.t>2*this.m.t)return e.mod(this.m);if(e.compareTo(this.m)<0)return e;var t=s();return e.copyTo(t),this.reduce(t),t},I.prototype.revert=function(e){return e},I.prototype.reduce=function(e){for(e.drShiftTo(this.m.t-1,this.r2),e.t>this.m.t+1&&(e.t=this.m.t+1,e.clamp()),this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3),this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);e.compareTo(this.r2)<0;)e.dAddOffset(1,this.m.t+1);for(e.subTo(this.r2,e);e.compareTo(this.m)>=0;)e.subTo(this.m,e)},I.prototype.mulTo=function(e,t,r){e.multiplyTo(t,r),this.reduce(r)},I.prototype.sqrTo=function(e,t){e.squareTo(t),this.reduce(t)};var R=[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],P=(1<<26)/R[R.length-1];o.prototype.chunkSize=function(e){return Math.floor(Math.LN2*this.DB/Math.log(e))},o.prototype.toRadix=function(e){if(null==e&&(e=10),0==this.signum()||e<2||e>36)return"0";var t=this.chunkSize(e),r=Math.pow(e,t),n=f(r),i=s(),o=s(),a="";for(this.divRemTo(n,i,o);i.signum()>0;)a=(r+o.intValue()).toString(e).substr(1)+a,i.divRemTo(n,i,o);return o.intValue().toString(e)+a},o.prototype.fromRadix=function(e,t){this.fromInt(0),null==t&&(t=10);for(var r=this.chunkSize(t),n=Math.pow(t,r),i=!1,s=0,a=0,c=0;c<e.length;++c){var l=p(e,c);l<0?"-"==e.charAt(c)&&0==this.signum()&&(i=!0):(a=t*a+l,++s>=r&&(this.dMultiply(n),this.dAddOffset(a,0),s=0,a=0))}s>0&&(this.dMultiply(Math.pow(t,s)),this.dAddOffset(a,0)),i&&o.ZERO.subTo(this,this)},o.prototype.fromNumber=function(e,t,r){if("number"==typeof t)if(e<2)this.fromInt(1);else for(this.fromNumber(e,r),this.testBit(e-1)||this.bitwiseTo(o.ONE.shiftLeft(e-1),w,this),this.isEven()&&this.dAddOffset(1,0);!this.isProbablePrime(t);)this.dAddOffset(2,0),this.bitLength()>e&&this.subTo(o.ONE.shiftLeft(e-1),this);else{var n=new Array,i=7&e;n.length=1+(e>>3),t.nextBytes(n),i>0?n[0]&=(1<<i)-1:n[0]=0,this.fromString(n,256)}},o.prototype.bitwiseTo=function(e,t,r){var n,i,o=Math.min(e.t,this.t);for(n=0;n<o;++n)r.data[n]=t(this.data[n],e.data[n]);if(e.t<this.t){for(i=e.s&this.DM,n=o;n<this.t;++n)r.data[n]=t(this.data[n],i);r.t=this.t}else{for(i=this.s&this.DM,n=o;n<e.t;++n)r.data[n]=t(i,e.data[n]);r.t=e.t}r.s=t(this.s,e.s),r.clamp()},o.prototype.changeBit=function(e,t){var r=o.ONE.shiftLeft(e);return this.bitwiseTo(r,t,r),r},o.prototype.addTo=function(e,t){for(var r=0,n=0,i=Math.min(e.t,this.t);r<i;)n+=this.data[r]+e.data[r],t.data[r++]=n&this.DM,n>>=this.DB;if(e.t<this.t){for(n+=e.s;r<this.t;)n+=this.data[r],t.data[r++]=n&this.DM,n>>=this.DB;n+=this.s}else{for(n+=this.s;r<e.t;)n+=e.data[r],t.data[r++]=n&this.DM,n>>=this.DB;n+=e.s}t.s=n<0?-1:0,n>0?t.data[r++]=n:n<-1&&(t.data[r++]=this.DV+n),t.t=r,t.clamp()},o.prototype.dMultiply=function(e){this.data[this.t]=this.am(0,e-1,this,0,0,this.t),++this.t,this.clamp()},o.prototype.dAddOffset=function(e,t){if(0!=e){for(;this.t<=t;)this.data[this.t++]=0;for(this.data[t]+=e;this.data[t]>=this.DV;)this.data[t]-=this.DV,++t>=this.t&&(this.data[this.t++]=0),++this.data[t]}},o.prototype.multiplyLowerTo=function(e,t,r){var n,i=Math.min(this.t+e.t,t);for(r.s=0,r.t=i;i>0;)r.data[--i]=0;for(n=r.t-this.t;i<n;++i)r.data[i+this.t]=this.am(0,e.data[i],r,i,0,this.t);for(n=Math.min(e.t,t);i<n;++i)this.am(0,e.data[i],r,i,0,t-i);r.clamp()},o.prototype.multiplyUpperTo=function(e,t,r){--t;var n=r.t=this.t+e.t-t;for(r.s=0;--n>=0;)r.data[n]=0;for(n=Math.max(t-this.t,0);n<e.t;++n)r.data[this.t+n-t]=this.am(t-n,e.data[n],r,0,0,this.t+n-t);r.clamp(),r.drShiftTo(1,r)},o.prototype.modInt=function(e){if(e<=0)return 0;var t=this.DV%e,r=this.s<0?e-1:0;if(this.t>0)if(0==t)r=this.data[0]%e;else for(var n=this.t-1;n>=0;--n)r=(t*r+this.data[n])%e;return r},o.prototype.millerRabin=function(e){var t=this.subtract(o.ONE),r=t.getLowestSetBit();if(r<=0)return!1;for(var n,i=t.shiftRight(r),s={nextBytes:function(e){for(var t=0;t<e.length;++t)e[t]=Math.floor(256*Math.random())}},a=0;a<e;++a){do{n=new o(this.bitLength(),s)}while(n.compareTo(o.ONE)<=0||n.compareTo(t)>=0);var c=n.modPow(i,this);if(0!=c.compareTo(o.ONE)&&0!=c.compareTo(t)){for(var l=1;l++<r&&0!=c.compareTo(t);)if(0==(c=c.modPowInt(2,this)).compareTo(o.ONE))return!1;if(0!=c.compareTo(t))return!1}}return!0},o.prototype.clone=function(){var e=s();return this.copyTo(e),e},o.prototype.intValue=function(){if(this.s<0){if(1==this.t)return this.data[0]-this.DV;if(0==this.t)return-1}else{if(1==this.t)return this.data[0];if(0==this.t)return 0}return(this.data[1]&(1<<32-this.DB)-1)<<this.DB|this.data[0]},o.prototype.byteValue=function(){return 0==this.t?this.s:this.data[0]<<24>>24},o.prototype.shortValue=function(){return 0==this.t?this.s:this.data[0]<<16>>16},o.prototype.signum=function(){return this.s<0?-1:this.t<=0||1==this.t&&this.data[0]<=0?0:1},o.prototype.toByteArray=function(){var e=this.t,t=new Array;t[0]=this.s;var r,n=this.DB-e*this.DB%8,i=0;if(e-- >0)for(n<this.DB&&(r=this.data[e]>>n)!=(this.s&this.DM)>>n&&(t[i++]=r|this.s<<this.DB-n);e>=0;)n<8?(r=(this.data[e]&(1<<n)-1)<<8-n,r|=this.data[--e]>>(n+=this.DB-8)):(r=this.data[e]>>(n-=8)&255,n<=0&&(n+=this.DB,--e)),0!=(128&r)&&(r|=-256),0==i&&(128&this.s)!=(128&r)&&++i,(i>0||r!=this.s)&&(t[i++]=r);return t},o.prototype.equals=function(e){return 0==this.compareTo(e)},o.prototype.min=function(e){return this.compareTo(e)<0?this:e},o.prototype.max=function(e){return this.compareTo(e)>0?this:e},o.prototype.and=function(e){var t=s();return this.bitwiseTo(e,b,t),t},o.prototype.or=function(e){var t=s();return this.bitwiseTo(e,w,t),t},o.prototype.xor=function(e){var t=s();return this.bitwiseTo(e,v,t),t},o.prototype.andNot=function(e){var t=s();return this.bitwiseTo(e,_,t),t},o.prototype.not=function(){for(var e=s(),t=0;t<this.t;++t)e.data[t]=this.DM&~this.data[t];return e.t=this.t,e.s=~this.s,e},o.prototype.shiftLeft=function(e){var t=s();return e<0?this.rShiftTo(-e,t):this.lShiftTo(e,t),t},o.prototype.shiftRight=function(e){var t=s();return e<0?this.lShiftTo(-e,t):this.rShiftTo(e,t),t},o.prototype.getLowestSetBit=function(){for(var e=0;e<this.t;++e)if(0!=this.data[e])return e*this.DB+E(this.data[e]);return this.s<0?this.t*this.DB:-1},o.prototype.bitCount=function(){for(var e=0,t=this.s&this.DM,r=0;r<this.t;++r)e+=S(this.data[r]^t);return e},o.prototype.testBit=function(e){var t=Math.floor(e/this.DB);return t>=this.t?0!=this.s:0!=(this.data[t]&1<<e%this.DB)},o.prototype.setBit=function(e){return this.changeBit(e,w)},o.prototype.clearBit=function(e){return this.changeBit(e,_)},o.prototype.flipBit=function(e){return this.changeBit(e,v)},o.prototype.add=function(e){var t=s();return this.addTo(e,t),t},o.prototype.subtract=function(e){var t=s();return this.subTo(e,t),t},o.prototype.multiply=function(e){var t=s();return this.multiplyTo(e,t),t},o.prototype.divide=function(e){var t=s();return this.divRemTo(e,t,null),t},o.prototype.remainder=function(e){var t=s();return this.divRemTo(e,null,t),t},o.prototype.divideAndRemainder=function(e){var t=s(),r=s();return this.divRemTo(e,t,r),new Array(t,r)},o.prototype.modPow=function(e,t){var r,n,i=e.bitLength(),o=f(1);if(i<=0)return o;r=i<18?1:i<48?3:i<144?4:i<768?5:6,n=i<8?new g(t):t.isEven()?new I(t):new m(t);var a=new Array,c=3,l=r-1,u=(1<<r)-1;if(a[1]=n.convert(this),r>1){var h=s();for(n.sqrTo(a[1],h);c<=u;)a[c]=s(),n.mulTo(h,a[c-2],a[c]),c+=2}var d,p,b=e.t-1,w=!0,v=s();for(i=y(e.data[b])-1;b>=0;){for(i>=l?d=e.data[b]>>i-l&u:(d=(e.data[b]&(1<<i+1)-1)<<l-i,b>0&&(d|=e.data[b-1]>>this.DB+i-l)),c=r;0==(1&d);)d>>=1,--c;if((i-=c)<0&&(i+=this.DB,--b),w)a[d].copyTo(o),w=!1;else{for(;c>1;)n.sqrTo(o,v),n.sqrTo(v,o),c-=2;c>0?n.sqrTo(o,v):(p=o,o=v,v=p),n.mulTo(v,a[d],o)}for(;b>=0&&0==(e.data[b]&1<<i);)n.sqrTo(o,v),p=o,o=v,v=p,--i<0&&(i=this.DB-1,--b)}return n.revert(o)},o.prototype.modInverse=function(e){var t=e.isEven();if(this.isEven()&&t||0==e.signum())return o.ZERO;for(var r=e.clone(),n=this.clone(),i=f(1),s=f(0),a=f(0),c=f(1);0!=r.signum();){for(;r.isEven();)r.rShiftTo(1,r),t?(i.isEven()&&s.isEven()||(i.addTo(this,i),s.subTo(e,s)),i.rShiftTo(1,i)):s.isEven()||s.subTo(e,s),s.rShiftTo(1,s);for(;n.isEven();)n.rShiftTo(1,n),t?(a.isEven()&&c.isEven()||(a.addTo(this,a),c.subTo(e,c)),a.rShiftTo(1,a)):c.isEven()||c.subTo(e,c),c.rShiftTo(1,c);r.compareTo(n)>=0?(r.subTo(n,r),t&&i.subTo(a,i),s.subTo(c,s)):(n.subTo(r,n),t&&a.subTo(i,a),c.subTo(s,c))}return 0!=n.compareTo(o.ONE)?o.ZERO:c.compareTo(e)>=0?c.subtract(e):c.signum()<0?(c.addTo(e,c),c.signum()<0?c.add(e):c):c},o.prototype.pow=function(e){return this.exp(e,new A)},o.prototype.gcd=function(e){var t=this.s<0?this.negate():this.clone(),r=e.s<0?e.negate():e.clone();if(t.compareTo(r)<0){var n=t;t=r,r=n}var i=t.getLowestSetBit(),o=r.getLowestSetBit();if(o<0)return t;for(i<o&&(o=i),o>0&&(t.rShiftTo(o,t),r.rShiftTo(o,r));t.signum()>0;)(i=t.getLowestSetBit())>0&&t.rShiftTo(i,t),(i=r.getLowestSetBit())>0&&r.rShiftTo(i,r),t.compareTo(r)>=0?(t.subTo(r,t),t.rShiftTo(1,t)):(r.subTo(t,r),r.rShiftTo(1,r));return o>0&&r.lShiftTo(o,r),r},o.prototype.isProbablePrime=function(e){var t,r=this.abs();if(1==r.t&&r.data[0]<=R[R.length-1]){for(t=0;t<R.length;++t)if(r.data[0]==R[t])return!0;return!1}if(r.isEven())return!1;for(t=1;t<R.length;){for(var n=R[t],i=t+1;i<R.length&&n<P;)n*=R[i++];for(n=r.modInt(n);t<i;)if(n%R[t++]==0)return!1}return r.millerRabin(e)}},29:(e,t,r)=>{var n=r(392);e.exports=n.md=n.md||{},n.md.algorithms=n.md.algorithms||{}},2886:(e,t,r)=>{var n=r(392);n.pki=n.pki||{};var i=e.exports=n.pki.oids=n.oids=n.oids||{};function o(e,t){i[e]=t,i[t]=e}function s(e,t){i[e]=t}o("1.2.840.113549.1.1.1","rsaEncryption"),o("1.2.840.113549.1.1.4","md5WithRSAEncryption"),o("1.2.840.113549.1.1.5","sha1WithRSAEncryption"),o("1.2.840.113549.1.1.7","RSAES-OAEP"),o("1.2.840.113549.1.1.8","mgf1"),o("1.2.840.113549.1.1.9","pSpecified"),o("1.2.840.113549.1.1.10","RSASSA-PSS"),o("1.2.840.113549.1.1.11","sha256WithRSAEncryption"),o("1.2.840.113549.1.1.12","sha384WithRSAEncryption"),o("1.2.840.113549.1.1.13","sha512WithRSAEncryption"),o("1.3.101.112","EdDSA25519"),o("1.2.840.10040.4.3","dsa-with-sha1"),o("1.3.14.3.2.7","desCBC"),o("1.3.14.3.2.26","sha1"),o("1.3.14.3.2.29","sha1WithRSASignature"),o("2.16.840.1.101.3.4.2.1","sha256"),o("2.16.840.1.101.3.4.2.2","sha384"),o("2.16.840.1.101.3.4.2.3","sha512"),o("2.16.840.1.101.3.4.2.4","sha224"),o("2.16.840.1.101.3.4.2.5","sha512-224"),o("2.16.840.1.101.3.4.2.6","sha512-256"),o("1.2.840.113549.2.2","md2"),o("1.2.840.113549.2.5","md5"),o("1.2.840.113549.1.7.1","data"),o("1.2.840.113549.1.7.2","signedData"),o("1.2.840.113549.1.7.3","envelopedData"),o("1.2.840.113549.1.7.4","signedAndEnvelopedData"),o("1.2.840.113549.1.7.5","digestedData"),o("1.2.840.113549.1.7.6","encryptedData"),o("1.2.840.113549.1.9.1","emailAddress"),o("1.2.840.113549.1.9.2","unstructuredName"),o("1.2.840.113549.1.9.3","contentType"),o("1.2.840.113549.1.9.4","messageDigest"),o("1.2.840.113549.1.9.5","signingTime"),o("1.2.840.113549.1.9.6","counterSignature"),o("1.2.840.113549.1.9.7","challengePassword"),o("1.2.840.113549.1.9.8","unstructuredAddress"),o("1.2.840.113549.1.9.14","extensionRequest"),o("1.2.840.113549.1.9.20","friendlyName"),o("1.2.840.113549.1.9.21","localKeyId"),o("1.2.840.113549.1.9.22.1","x509Certificate"),o("1.2.840.113549.1.12.10.1.1","keyBag"),o("1.2.840.113549.1.12.10.1.2","pkcs8ShroudedKeyBag"),o("1.2.840.113549.1.12.10.1.3","certBag"),o("1.2.840.113549.1.12.10.1.4","crlBag"),o("1.2.840.113549.1.12.10.1.5","secretBag"),o("1.2.840.113549.1.12.10.1.6","safeContentsBag"),o("1.2.840.113549.1.5.13","pkcs5PBES2"),o("1.2.840.113549.1.5.12","pkcs5PBKDF2"),o("1.2.840.113549.1.12.1.1","pbeWithSHAAnd128BitRC4"),o("1.2.840.113549.1.12.1.2","pbeWithSHAAnd40BitRC4"),o("1.2.840.113549.1.12.1.3","pbeWithSHAAnd3-KeyTripleDES-CBC"),o("1.2.840.113549.1.12.1.4","pbeWithSHAAnd2-KeyTripleDES-CBC"),o("1.2.840.113549.1.12.1.5","pbeWithSHAAnd128BitRC2-CBC"),o("1.2.840.113549.1.12.1.6","pbewithSHAAnd40BitRC2-CBC"),o("1.2.840.113549.2.7","hmacWithSHA1"),o("1.2.840.113549.2.8","hmacWithSHA224"),o("1.2.840.113549.2.9","hmacWithSHA256"),o("1.2.840.113549.2.10","hmacWithSHA384"),o("1.2.840.113549.2.11","hmacWithSHA512"),o("1.2.840.113549.3.7","des-EDE3-CBC"),o("2.16.840.1.101.3.4.1.2","aes128-CBC"),o("2.16.840.1.101.3.4.1.22","aes192-CBC"),o("2.16.840.1.101.3.4.1.42","aes256-CBC"),o("2.5.4.3","commonName"),o("2.5.4.4","surname"),o("2.5.4.5","serialNumber"),o("2.5.4.6","countryName"),o("2.5.4.7","localityName"),o("2.5.4.8","stateOrProvinceName"),o("2.5.4.9","streetAddress"),o("2.5.4.10","organizationName"),o("2.5.4.11","organizationalUnitName"),o("2.5.4.12","title"),o("2.5.4.13","description"),o("2.5.4.15","businessCategory"),o("2.5.4.17","postalCode"),o("2.5.4.42","givenName"),o("1.3.6.1.4.1.311.60.2.1.2","jurisdictionOfIncorporationStateOrProvinceName"),o("1.3.6.1.4.1.311.60.2.1.3","jurisdictionOfIncorporationCountryName"),o("2.16.840.1.113730.1.1","nsCertType"),o("2.16.840.1.113730.1.13","nsComment"),s("2.5.29.1","authorityKeyIdentifier"),s("2.5.29.2","keyAttributes"),s("2.5.29.3","certificatePolicies"),s("2.5.29.4","keyUsageRestriction"),s("2.5.29.5","policyMapping"),s("2.5.29.6","subtreesConstraint"),s("2.5.29.7","subjectAltName"),s("2.5.29.8","issuerAltName"),s("2.5.29.9","subjectDirectoryAttributes"),s("2.5.29.10","basicConstraints"),s("2.5.29.11","nameConstraints"),s("2.5.29.12","policyConstraints"),s("2.5.29.13","basicConstraints"),o("2.5.29.14","subjectKeyIdentifier"),o("2.5.29.15","keyUsage"),s("2.5.29.16","privateKeyUsagePeriod"),o("2.5.29.17","subjectAltName"),o("2.5.29.18","issuerAltName"),o("2.5.29.19","basicConstraints"),s("2.5.29.20","cRLNumber"),s("2.5.29.21","cRLReason"),s("2.5.29.22","expirationDate"),s("2.5.29.23","instructionCode"),s("2.5.29.24","invalidityDate"),s("2.5.29.25","cRLDistributionPoints"),s("2.5.29.26","issuingDistributionPoint"),s("2.5.29.27","deltaCRLIndicator"),s("2.5.29.28","issuingDistributionPoint"),s("2.5.29.29","certificateIssuer"),s("2.5.29.30","nameConstraints"),o("2.5.29.31","cRLDistributionPoints"),o("2.5.29.32","certificatePolicies"),s("2.5.29.33","policyMappings"),s("2.5.29.34","policyConstraints"),o("2.5.29.35","authorityKeyIdentifier"),s("2.5.29.36","policyConstraints"),o("2.5.29.37","extKeyUsage"),s("2.5.29.46","freshestCRL"),s("2.5.29.54","inhibitAnyPolicy"),o("1.3.6.1.4.1.11129.2.4.2","timestampList"),o("1.3.6.1.5.5.7.1.1","authorityInfoAccess"),o("1.3.6.1.5.5.7.3.1","serverAuth"),o("1.3.6.1.5.5.7.3.2","clientAuth"),o("1.3.6.1.5.5.7.3.3","codeSigning"),o("1.3.6.1.5.5.7.3.4","emailProtection"),o("1.3.6.1.5.5.7.3.8","timeStamping")},9835:(e,t,r)=>{var n=r(392);if(r(8605),r(5049),r(1400),r(29),r(2886),r(6019),r(6193),r(3860),r(654),r(5493),r(3877),"undefined"===typeof i)var i=n.jsbn.BigInteger;var o=n.asn1,s=n.pki=n.pki||{};e.exports=s.pbe=n.pbe=n.pbe||{};var a=s.oids,c={name:"EncryptedPrivateKeyInfo",tagClass:o.Class.UNIVERSAL,type:o.Type.SEQUENCE,constructed:!0,value:[{name:"EncryptedPrivateKeyInfo.encryptionAlgorithm",tagClass:o.Class.UNIVERSAL,type:o.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:o.Class.UNIVERSAL,type:o.Type.OID,constructed:!1,capture:"encryptionOid"},{name:"AlgorithmIdentifier.parameters",tagClass:o.Class.UNIVERSAL,type:o.Type.SEQUENCE,constructed:!0,captureAsn1:"encryptionParams"}]},{name:"EncryptedPrivateKeyInfo.encryptedData",tagClass:o.Class.UNIVERSAL,type:o.Type.OCTETSTRING,constructed:!1,capture:"encryptedData"}]},l={name:"PBES2Algorithms",tagClass:o.Class.UNIVERSAL,type:o.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.keyDerivationFunc",tagClass:o.Class.UNIVERSAL,type:o.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.keyDerivationFunc.oid",tagClass:o.Class.UNIVERSAL,type:o.Type.OID,constructed:!1,capture:"kdfOid"},{name:"PBES2Algorithms.params",tagClass:o.Class.UNIVERSAL,type:o.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.params.salt",tagClass:o.Class.UNIVERSAL,type:o.Type.OCTETSTRING,constructed:!1,capture:"kdfSalt"},{name:"PBES2Algorithms.params.iterationCount",tagClass:o.Class.UNIVERSAL,type:o.Type.INTEGER,constructed:!1,capture:"kdfIterationCount"},{name:"PBES2Algorithms.params.keyLength",tagClass:o.Class.UNIVERSAL,type:o.Type.INTEGER,constructed:!1,optional:!0,capture:"keyLength"},{name:"PBES2Algorithms.params.prf",tagClass:o.Class.UNIVERSAL,type:o.Type.SEQUENCE,constructed:!0,optional:!0,value:[{name:"PBES2Algorithms.params.prf.algorithm",tagClass:o.Class.UNIVERSAL,type:o.Type.OID,constructed:!1,capture:"prfOid"}]}]}]},{name:"PBES2Algorithms.encryptionScheme",tagClass:o.Class.UNIVERSAL,type:o.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.encryptionScheme.oid",tagClass:o.Class.UNIVERSAL,type:o.Type.OID,constructed:!1,capture:"encOid"},{name:"PBES2Algorithms.encryptionScheme.iv",tagClass:o.Class.UNIVERSAL,type:o.Type.OCTETSTRING,constructed:!1,capture:"encIv"}]}]},u={name:"pkcs-12PbeParams",tagClass:o.Class.UNIVERSAL,type:o.Type.SEQUENCE,constructed:!0,value:[{name:"pkcs-12PbeParams.salt",tagClass:o.Class.UNIVERSAL,type:o.Type.OCTETSTRING,constructed:!1,capture:"salt"},{name:"pkcs-12PbeParams.iterations",tagClass:o.Class.UNIVERSAL,type:o.Type.INTEGER,constructed:!1,capture:"iterations"}]};function h(e,t){return e.start().update(t).digest().getBytes()}function d(e){var t;if(e){if(!(t=s.oids[o.derToOid(e)])){var r=new Error("Unsupported PRF OID.");throw r.oid=e,r.supported=["hmacWithSHA1","hmacWithSHA224","hmacWithSHA256","hmacWithSHA384","hmacWithSHA512"],r}}else t="hmacWithSHA1";return p(t)}function p(e){var t=n.md;switch(e){case"hmacWithSHA224":t=n.md.sha512;case"hmacWithSHA1":case"hmacWithSHA256":case"hmacWithSHA384":case"hmacWithSHA512":e=e.substr(8).toLowerCase();break;default:var r=new Error("Unsupported PRF algorithm.");throw r.algorithm=e,r.supported=["hmacWithSHA1","hmacWithSHA224","hmacWithSHA256","hmacWithSHA384","hmacWithSHA512"],r}if(!t||!(e in t))throw new Error("Unknown hash algorithm: "+e);return t[e].create()}s.encryptPrivateKeyInfo=function(e,t,r){(r=r||{}).saltSize=r.saltSize||8,r.count=r.count||2048,r.algorithm=r.algorithm||"aes128",r.prfAlgorithm=r.prfAlgorithm||"sha1";var i,c,l,u=n.random.getBytesSync(r.saltSize),h=r.count,d=o.integerToDer(h);if(0===r.algorithm.indexOf("aes")||"des"===r.algorithm){var f,y,g;switch(r.algorithm){case"aes128":i=16,f=16,y=a["aes128-CBC"],g=n.aes.createEncryptionCipher;break;case"aes192":i=24,f=16,y=a["aes192-CBC"],g=n.aes.createEncryptionCipher;break;case"aes256":i=32,f=16,y=a["aes256-CBC"],g=n.aes.createEncryptionCipher;break;case"des":i=8,f=8,y=a.desCBC,g=n.des.createEncryptionCipher;break;default:throw(E=new Error("Cannot encrypt private key. Unknown encryption algorithm.")).algorithm=r.algorithm,E}var m="hmacWith"+r.prfAlgorithm.toUpperCase(),b=p(m),w=n.pkcs5.pbkdf2(t,u,h,i,b),v=n.random.getBytesSync(f);(S=g(w)).start(v),S.update(o.toDer(e)),S.finish(),l=S.output.getBytes();var _=function(e,t,r,i){var a=o.create(o.Class.UNIVERSAL,o.Type.SEQUENCE,!0,[o.create(o.Class.UNIVERSAL,o.Type.OCTETSTRING,!1,e),o.create(o.Class.UNIVERSAL,o.Type.INTEGER,!1,t.getBytes())]);"hmacWithSHA1"!==i&&a.value.push(o.create(o.Class.UNIVERSAL,o.Type.INTEGER,!1,n.util.hexToBytes(r.toString(16))),o.create(o.Class.UNIVERSAL,o.Type.SEQUENCE,!0,[o.create(o.Class.UNIVERSAL,o.Type.OID,!1,o.oidToDer(s.oids[i]).getBytes()),o.create(o.Class.UNIVERSAL,o.Type.NULL,!1,"")]));return a}(u,d,i,m);c=o.create(o.Class.UNIVERSAL,o.Type.SEQUENCE,!0,[o.create(o.Class.UNIVERSAL,o.Type.OID,!1,o.oidToDer(a.pkcs5PBES2).getBytes()),o.create(o.Class.UNIVERSAL,o.Type.SEQUENCE,!0,[o.create(o.Class.UNIVERSAL,o.Type.SEQUENCE,!0,[o.create(o.Class.UNIVERSAL,o.Type.OID,!1,o.oidToDer(a.pkcs5PBKDF2).getBytes()),_]),o.create(o.Class.UNIVERSAL,o.Type.SEQUENCE,!0,[o.create(o.Class.UNIVERSAL,o.Type.OID,!1,o.oidToDer(y).getBytes()),o.create(o.Class.UNIVERSAL,o.Type.OCTETSTRING,!1,v)])])])}else{var E;if("3des"!==r.algorithm)throw(E=new Error("Cannot encrypt private key. Unknown encryption algorithm.")).algorithm=r.algorithm,E;i=24;var S,A=new n.util.ByteBuffer(u);w=s.pbe.generatePkcs12Key(t,A,1,h,i),v=s.pbe.generatePkcs12Key(t,A,2,h,i);(S=n.des.createEncryptionCipher(w)).start(v),S.update(o.toDer(e)),S.finish(),l=S.output.getBytes(),c=o.create(o.Class.UNIVERSAL,o.Type.SEQUENCE,!0,[o.create(o.Class.UNIVERSAL,o.Type.OID,!1,o.oidToDer(a["pbeWithSHAAnd3-KeyTripleDES-CBC"]).getBytes()),o.create(o.Class.UNIVERSAL,o.Type.SEQUENCE,!0,[o.create(o.Class.UNIVERSAL,o.Type.OCTETSTRING,!1,u),o.create(o.Class.UNIVERSAL,o.Type.INTEGER,!1,d.getBytes())])])}return o.create(o.Class.UNIVERSAL,o.Type.SEQUENCE,!0,[c,o.create(o.Class.UNIVERSAL,o.Type.OCTETSTRING,!1,l)])},s.decryptPrivateKeyInfo=function(e,t){var r=null,i={},a=[];if(!o.validate(e,c,i,a)){var l=new Error("Cannot read encrypted private key. ASN.1 object is not a supported EncryptedPrivateKeyInfo.");throw l.errors=a,l}var u=o.derToOid(i.encryptionOid),h=s.pbe.getCipher(u,i.encryptionParams,t),d=n.util.createBuffer(i.encryptedData);return h.update(d),h.finish()&&(r=o.fromDer(h.output)),r},s.encryptedPrivateKeyToPem=function(e,t){var r={type:"ENCRYPTED PRIVATE KEY",body:o.toDer(e).getBytes()};return n.pem.encode(r,{maxline:t})},s.encryptedPrivateKeyFromPem=function(e){var t=n.pem.decode(e)[0];if("ENCRYPTED PRIVATE KEY"!==t.type){var r=new Error('Could not convert encrypted private key from PEM; PEM header type is "ENCRYPTED PRIVATE KEY".');throw r.headerType=t.type,r}if(t.procType&&"ENCRYPTED"===t.procType.type)throw new Error("Could not convert encrypted private key from PEM; PEM is encrypted.");return o.fromDer(t.body)},s.encryptRsaPrivateKey=function(e,t,r){if(!(r=r||{}).legacy){var i=s.wrapRsaPrivateKey(s.privateKeyToAsn1(e));return i=s.encryptPrivateKeyInfo(i,t,r),s.encryptedPrivateKeyToPem(i)}var a,c,l,u;switch(r.algorithm){case"aes128":a="AES-128-CBC",l=16,c=n.random.getBytesSync(16),u=n.aes.createEncryptionCipher;break;case"aes192":a="AES-192-CBC",l=24,c=n.random.getBytesSync(16),u=n.aes.createEncryptionCipher;break;case"aes256":a="AES-256-CBC",l=32,c=n.random.getBytesSync(16),u=n.aes.createEncryptionCipher;break;case"3des":a="DES-EDE3-CBC",l=24,c=n.random.getBytesSync(8),u=n.des.createEncryptionCipher;break;case"des":a="DES-CBC",l=8,c=n.random.getBytesSync(8),u=n.des.createEncryptionCipher;break;default:var h=new Error('Could not encrypt RSA private key; unsupported encryption algorithm "'+r.algorithm+'".');throw h.algorithm=r.algorithm,h}var d=u(n.pbe.opensslDeriveBytes(t,c.substr(0,8),l));d.start(c),d.update(o.toDer(s.privateKeyToAsn1(e))),d.finish();var p={type:"RSA PRIVATE KEY",procType:{version:"4",type:"ENCRYPTED"},dekInfo:{algorithm:a,parameters:n.util.bytesToHex(c).toUpperCase()},body:d.output.getBytes()};return n.pem.encode(p)},s.decryptRsaPrivateKey=function(e,t){var r=null,i=n.pem.decode(e)[0];if("ENCRYPTED PRIVATE KEY"!==i.type&&"PRIVATE KEY"!==i.type&&"RSA PRIVATE KEY"!==i.type)throw(l=new Error('Could not convert private key from PEM; PEM header type is not "ENCRYPTED PRIVATE KEY", "PRIVATE KEY", or "RSA PRIVATE KEY".')).headerType=l,l;if(i.procType&&"ENCRYPTED"===i.procType.type){var a,c;switch(i.dekInfo.algorithm){case"DES-CBC":a=8,c=n.des.createDecryptionCipher;break;case"DES-EDE3-CBC":a=24,c=n.des.createDecryptionCipher;break;case"AES-128-CBC":a=16,c=n.aes.createDecryptionCipher;break;case"AES-192-CBC":a=24,c=n.aes.createDecryptionCipher;break;case"AES-256-CBC":a=32,c=n.aes.createDecryptionCipher;break;case"RC2-40-CBC":a=5,c=function(e){return n.rc2.createDecryptionCipher(e,40)};break;case"RC2-64-CBC":a=8,c=function(e){return n.rc2.createDecryptionCipher(e,64)};break;case"RC2-128-CBC":a=16,c=function(e){return n.rc2.createDecryptionCipher(e,128)};break;default:var l;throw(l=new Error('Could not decrypt private key; unsupported encryption algorithm "'+i.dekInfo.algorithm+'".')).algorithm=i.dekInfo.algorithm,l}var u=n.util.hexToBytes(i.dekInfo.parameters),h=c(n.pbe.opensslDeriveBytes(t,u.substr(0,8),a));if(h.start(u),h.update(n.util.createBuffer(i.body)),!h.finish())return r;r=h.output.getBytes()}else r=i.body;return null!==(r="ENCRYPTED PRIVATE KEY"===i.type?s.decryptPrivateKeyInfo(o.fromDer(r),t):o.fromDer(r))&&(r=s.privateKeyFromAsn1(r)),r},s.pbe.generatePkcs12Key=function(e,t,r,i,o,s){var a,c;if("undefined"===typeof s||null===s){if(!("sha1"in n.md))throw new Error('"sha1" hash algorithm unavailable.');s=n.md.sha1.create()}var l=s.digestLength,u=s.blockLength,h=new n.util.ByteBuffer,d=new n.util.ByteBuffer;if(null!==e&&void 0!==e){for(c=0;c<e.length;c++)d.putInt16(e.charCodeAt(c));d.putInt16(0)}var p=d.length(),f=t.length(),y=new n.util.ByteBuffer;y.fillWithByte(r,u);var g=u*Math.ceil(f/u),m=new n.util.ByteBuffer;for(c=0;c<g;c++)m.putByte(t.at(c%f));var b=u*Math.ceil(p/u),w=new n.util.ByteBuffer;for(c=0;c<b;c++)w.putByte(d.at(c%p));var v=m;v.putBuffer(w);for(var _=Math.ceil(o/l),E=1;E<=_;E++){var S=new n.util.ByteBuffer;S.putBytes(y.bytes()),S.putBytes(v.bytes());for(var A=0;A<i;A++)s.start(),s.update(S.getBytes()),S=s.digest();var k=new n.util.ByteBuffer;for(c=0;c<u;c++)k.putByte(S.at(c%l));var I=Math.ceil(f/u)+Math.ceil(p/u),R=new n.util.ByteBuffer;for(a=0;a<I;a++){var P=new n.util.ByteBuffer(v.getBytes(u)),C=511;for(c=k.length()-1;c>=0;c--)C>>=8,C+=k.at(c)+P.at(c),P.setAt(c,255&C);R.putBuffer(P)}v=R,h.putBuffer(S)}return h.truncate(h.length()-o),h},s.pbe.getCipher=function(e,t,r){switch(e){case s.oids.pkcs5PBES2:return s.pbe.getCipherForPBES2(e,t,r);case s.oids["pbeWithSHAAnd3-KeyTripleDES-CBC"]:case s.oids["pbewithSHAAnd40BitRC2-CBC"]:return s.pbe.getCipherForPKCS12PBE(e,t,r);default:var n=new Error("Cannot read encrypted PBE data block. Unsupported OID.");throw n.oid=e,n.supportedOids=["pkcs5PBES2","pbeWithSHAAnd3-KeyTripleDES-CBC","pbewithSHAAnd40BitRC2-CBC"],n}},s.pbe.getCipherForPBES2=function(e,t,r){var i,a={},c=[];if(!o.validate(t,l,a,c))throw(i=new Error("Cannot read password-based-encryption algorithm parameters. ASN.1 object is not a supported EncryptedPrivateKeyInfo.")).errors=c,i;if((e=o.derToOid(a.kdfOid))!==s.oids.pkcs5PBKDF2)throw(i=new Error("Cannot read encrypted private key. Unsupported key derivation function OID.")).oid=e,i.supportedOids=["pkcs5PBKDF2"],i;if((e=o.derToOid(a.encOid))!==s.oids["aes128-CBC"]&&e!==s.oids["aes192-CBC"]&&e!==s.oids["aes256-CBC"]&&e!==s.oids["des-EDE3-CBC"]&&e!==s.oids.desCBC)throw(i=new Error("Cannot read encrypted private key. Unsupported encryption scheme OID.")).oid=e,i.supportedOids=["aes128-CBC","aes192-CBC","aes256-CBC","des-EDE3-CBC","desCBC"],i;var u,h,p=a.kdfSalt,f=n.util.createBuffer(a.kdfIterationCount);switch(f=f.getInt(f.length()<<3),s.oids[e]){case"aes128-CBC":u=16,h=n.aes.createDecryptionCipher;break;case"aes192-CBC":u=24,h=n.aes.createDecryptionCipher;break;case"aes256-CBC":u=32,h=n.aes.createDecryptionCipher;break;case"des-EDE3-CBC":u=24,h=n.des.createDecryptionCipher;break;case"desCBC":u=8,h=n.des.createDecryptionCipher}var y=d(a.prfOid),g=n.pkcs5.pbkdf2(r,p,f,u,y),m=a.encIv,b=h(g);return b.start(m),b},s.pbe.getCipherForPKCS12PBE=function(e,t,r){var i={},a=[];if(!o.validate(t,u,i,a))throw(y=new Error("Cannot read password-based-encryption algorithm parameters. ASN.1 object is not a supported EncryptedPrivateKeyInfo.")).errors=a,y;var c,l,h,p=n.util.createBuffer(i.salt),f=n.util.createBuffer(i.iterations);switch(f=f.getInt(f.length()<<3),e){case s.oids["pbeWithSHAAnd3-KeyTripleDES-CBC"]:c=24,l=8,h=n.des.startDecrypting;break;case s.oids["pbewithSHAAnd40BitRC2-CBC"]:c=5,l=8,h=function(e,t){var r=n.rc2.createDecryptionCipher(e,40);return r.start(t,null),r};break;default:var y;throw(y=new Error("Cannot read PKCS #12 PBE data block. Unsupported OID.")).oid=e,y}var g=d(i.prfOid),m=s.pbe.generatePkcs12Key(r,p,1,f,c,g);return g.start(),h(m,s.pbe.generatePkcs12Key(r,p,2,f,l,g))},s.pbe.opensslDeriveBytes=function(e,t,r,i){if("undefined"===typeof i||null===i){if(!("md5"in n.md))throw new Error('"md5" hash algorithm unavailable.');i=n.md.md5.create()}null===t&&(t="");for(var o=[h(i,e+t)],s=16,a=1;s<r;++a,s+=16)o.push(h(i,o[a-1]+e+t));return o.join("").substr(0,r)}},6019:(e,t,r)=>{var n=r(392);r(878),r(29),r(3877);var i,o=n.pkcs5=n.pkcs5||{};n.util.isNodejs&&!n.options.usePureJavaScript&&(i=r(5819)),e.exports=n.pbkdf2=o.pbkdf2=function(e,t,r,o,s,a){if("function"===typeof s&&(a=s,s=null),n.util.isNodejs&&!n.options.usePureJavaScript&&i.pbkdf2&&(null===s||"object"!==typeof s)&&(i.pbkdf2Sync.length>4||!s||"sha1"===s))return"string"!==typeof s&&(s="sha1"),e=Buffer.from(e,"binary"),t=Buffer.from(t,"binary"),a?4===i.pbkdf2Sync.length?i.pbkdf2(e,t,r,o,(function(e,t){if(e)return a(e);a(null,t.toString("binary"))})):i.pbkdf2(e,t,r,o,s,(function(e,t){if(e)return a(e);a(null,t.toString("binary"))})):4===i.pbkdf2Sync.length?i.pbkdf2Sync(e,t,r,o).toString("binary"):i.pbkdf2Sync(e,t,r,o,s).toString("binary");if("undefined"!==typeof s&&null!==s||(s="sha1"),"string"===typeof s){if(!(s in n.md.algorithms))throw new Error("Unknown hash algorithm: "+s);s=n.md[s].create()}var c=s.digestLength;if(o>4294967295*c){var l=new Error("Derived key is too long.");if(a)return a(l);throw l}var u=Math.ceil(o/c),h=o-(u-1)*c,d=n.hmac.create();d.start(s,e);var p,f,y,g="";if(!a){for(var m=1;m<=u;++m){d.start(null,null),d.update(t),d.update(n.util.int32ToBytes(m)),p=y=d.digest().getBytes();for(var b=2;b<=r;++b)d.start(null,null),d.update(y),f=d.digest().getBytes(),p=n.util.xorBytes(p,f,c),y=f;g+=m<u?p:p.substr(0,h)}return g}m=1;function w(){if(m>u)return a(null,g);d.start(null,null),d.update(t),d.update(n.util.int32ToBytes(m)),p=y=d.digest().getBytes(),b=2,v()}function v(){if(b<=r)return d.start(null,null),d.update(y),f=d.digest().getBytes(),p=n.util.xorBytes(p,f,c),y=f,++b,n.util.setImmediate(v);g+=m<u?p:p.substr(0,h),++m,w()}w()}},6193:(e,t,r)=>{var n=r(392);r(3877);var i=e.exports=n.pem=n.pem||{};function o(e){for(var t=e.name+": ",r=[],n=function(e,t){return" "+t},i=0;i<e.values.length;++i)r.push(e.values[i].replace(/^(\S+\r\n)/,n));t+=r.join(",")+"\r\n";var o=0,s=-1;for(i=0;i<t.length;++i,++o)if(o>65&&-1!==s){var a=t[s];","===a?(++s,t=t.substr(0,s)+"\r\n "+t.substr(s)):t=t.substr(0,s)+"\r\n"+a+t.substr(s+1),o=i-s-1,s=-1,++i}else" "!==t[i]&&"\t"!==t[i]&&","!==t[i]||(s=i);return t}function s(e){return e.replace(/^\s+/,"")}i.encode=function(e,t){t=t||{};var r,i="-----BEGIN "+e.type+"-----\r\n";if(e.procType&&(i+=o(r={name:"Proc-Type",values:[String(e.procType.version),e.procType.type]})),e.contentDomain&&(i+=o(r={name:"Content-Domain",values:[e.contentDomain]})),e.dekInfo&&(r={name:"DEK-Info",values:[e.dekInfo.algorithm]},e.dekInfo.parameters&&r.values.push(e.dekInfo.parameters),i+=o(r)),e.headers)for(var s=0;s<e.headers.length;++s)i+=o(e.headers[s]);return e.procType&&(i+="\r\n"),i+=n.util.encode64(e.body,t.maxline||64)+"\r\n",i+="-----END "+e.type+"-----\r\n"},i.decode=function(e){for(var t,r=[],i=/\s*-----BEGIN ([A-Z0-9- ]+)-----\r?\n?([\x21-\x7e\s]+?(?:\r?\n\r?\n))?([:A-Za-z0-9+\/=\s]+?)-----END \1-----/g,o=/([\x21-\x7e]+):\s*([\x21-\x7e\s^:]+)/,a=/\r?\n/;t=i.exec(e);){var c=t[1];"NEW CERTIFICATE REQUEST"===c&&(c="CERTIFICATE REQUEST");var l={type:c,procType:null,contentDomain:null,dekInfo:null,headers:[],body:n.util.decode64(t[3])};if(r.push(l),t[2]){for(var u=t[2].split(a),h=0;t&&h<u.length;){for(var d=u[h].replace(/\s+$/,""),p=h+1;p<u.length;++p){var f=u[p];if(!/\s/.test(f[0]))break;d+=f,h=p}if(t=d.match(o)){for(var y={name:t[1],values:[]},g=t[2].split(","),m=0;m<g.length;++m)y.values.push(s(g[m]));if(l.procType)if(l.contentDomain||"Content-Domain"!==y.name)if(l.dekInfo||"DEK-Info"!==y.name)l.headers.push(y);else{if(0===y.values.length)throw new Error('Invalid PEM formatted message. The "DEK-Info" header must have at least one subfield.');l.dekInfo={algorithm:g[0],parameters:g[1]||null}}else l.contentDomain=g[0]||"";else{if("Proc-Type"!==y.name)throw new Error('Invalid PEM formatted message. The first encapsulated header must be "Proc-Type".');if(2!==y.values.length)throw new Error('Invalid PEM formatted message. The "Proc-Type" header must have two subfields.');l.procType={version:g[0],type:g[1]}}}++h}if("ENCRYPTED"===l.procType&&!l.dekInfo)throw new Error('Invalid PEM formatted message. The "DEK-Info" header must be present if "Proc-Type" is "ENCRYPTED".')}}if(0===r.length)throw new Error("Invalid PEM formatted message.");return r}},2627:(e,t,r)=>{var n=r(392);r(3877),r(3860),r(928);var i=e.exports=n.pkcs1=n.pkcs1||{};function o(e,t,r){r||(r=n.md.sha1.create());for(var i="",o=Math.ceil(t/r.digestLength),s=0;s<o;++s){var a=String.fromCharCode(s>>24&255,s>>16&255,s>>8&255,255&s);r.start(),r.update(e+a),i+=r.digest().getBytes()}return i.substring(0,t)}i.encode_rsa_oaep=function(e,t,r){var i,s,a,c;"string"===typeof r?(i=r,s=arguments[3]||void 0,a=arguments[4]||void 0):r&&(i=r.label||void 0,s=r.seed||void 0,a=r.md||void 0,r.mgf1&&r.mgf1.md&&(c=r.mgf1.md)),a?a.start():a=n.md.sha1.create(),c||(c=a);var l=Math.ceil(e.n.bitLength()/8),u=l-2*a.digestLength-2;if(t.length>u)throw(g=new Error("RSAES-OAEP input message length is too long.")).length=t.length,g.maxLength=u,g;i||(i=""),a.update(i,"raw");for(var h=a.digest(),d="",p=u-t.length,f=0;f<p;f++)d+="\0";var y=h.getBytes()+d+"\x01"+t;if(s){if(s.length!==a.digestLength){var g;throw(g=new Error("Invalid RSAES-OAEP seed. The seed length must match the digest length.")).seedLength=s.length,g.digestLength=a.digestLength,g}}else s=n.random.getBytes(a.digestLength);var m=o(s,l-a.digestLength-1,c),b=n.util.xorBytes(y,m,y.length),w=o(b,a.digestLength,c);return"\0"+n.util.xorBytes(s,w,s.length)+b},i.decode_rsa_oaep=function(e,t,r){var i,s,a;"string"===typeof r?(i=r,s=arguments[3]||void 0):r&&(i=r.label||void 0,s=r.md||void 0,r.mgf1&&r.mgf1.md&&(a=r.mgf1.md));var c=Math.ceil(e.n.bitLength()/8);if(t.length!==c)throw(m=new Error("RSAES-OAEP encoded message length is invalid.")).length=t.length,m.expectedLength=c,m;if(void 0===s?s=n.md.sha1.create():s.start(),a||(a=s),c<2*s.digestLength+2)throw new Error("RSAES-OAEP key is too short for the hash function.");i||(i=""),s.update(i,"raw");for(var l=s.digest().getBytes(),u=t.charAt(0),h=t.substring(1,s.digestLength+1),d=t.substring(1+s.digestLength),p=o(d,s.digestLength,a),f=o(n.util.xorBytes(h,p,h.length),c-s.digestLength-1,a),y=n.util.xorBytes(d,f,d.length),g=y.substring(0,s.digestLength),m="\0"!==u,b=0;b<s.digestLength;++b)m|=l.charAt(b)!==g.charAt(b);for(var w=1,v=s.digestLength,_=s.digestLength;_<y.length;_++){var E=y.charCodeAt(_);m|=E&(w?65534:0),v+=w&=1&E^1}if(m||1!==y.charCodeAt(v))throw new Error("Invalid RSAES-OAEP padding.");return y.substring(v+1)}},5132:(e,t,r)=>{var n=r(392);r(3877),r(3055),r(3860),function(){if(n.prime)e.exports=n.prime;else{var t=e.exports=n.prime=n.prime||{},r=n.jsbn.BigInteger,i=[6,4,2,4,2,4,6,2],o=new r(null);o.fromInt(30);var s=function(e,t){return e|t};t.generateProbablePrime=function(e,t,i){"function"===typeof t&&(i=t,t={});var o=(t=t||{}).algorithm||"PRIMEINC";"string"===typeof o&&(o={name:o}),o.options=o.options||{};var s=t.prng||n.random,c={nextBytes:function(e){for(var t=s.getBytesSync(e.length),r=0;r<e.length;++r)e[r]=t.charCodeAt(r)}};if("PRIMEINC"===o.name)return function(e,t,i,o){if("workers"in i)return function(e,t,i,o){if("undefined"===typeof Worker)return a(e,t,i,o);var s=l(e,t),c=i.workers,u=i.workLoad||100,h=30*u/8,d=i.workerScript||"forge/prime.worker.js";if(-1===c)return n.util.estimateCores((function(e,t){e&&(t=2),c=t-1,p()}));function p(){c=Math.max(1,c);for(var n=[],i=0;i<c;++i)n[i]=new Worker(d);for(i=0;i<c;++i)n[i].addEventListener("message",p);var a=!1;function p(i){if(!a){0;var c=i.data;if(c.found){for(var d=0;d<n.length;++d)n[d].terminate();return a=!0,o(null,new r(c.prime,16))}s.bitLength()>e&&(s=l(e,t));var p=s.toString(16);i.target.postMessage({hex:p,workLoad:u}),s.dAddOffset(h,0)}}}p()}(e,t,i,o);return a(e,t,i,o)}(e,c,o.options,i);throw new Error("Invalid prime generation algorithm: "+o.name)}}function a(e,t,r,n){var i=l(e,t),o=function(e){return e<=100?27:e<=150?18:e<=200?15:e<=250?12:e<=300?9:e<=350?8:e<=400?7:e<=500?6:e<=600?5:e<=800?4:e<=1250?3:2}(i.bitLength());"millerRabinTests"in r&&(o=r.millerRabinTests);var s=10;"maxBlockTime"in r&&(s=r.maxBlockTime),c(i,e,t,0,o,s,n)}function c(e,t,r,o,s,a,u){var h=+new Date;do{if(e.bitLength()>t&&(e=l(t,r)),e.isProbablePrime(s))return u(null,e);e.dAddOffset(i[o++%8],0)}while(a<0||+new Date-h<a);n.util.setImmediate((function(){c(e,t,r,o,s,a,u)}))}function l(e,t){var n=new r(e,t),i=e-1;return n.testBit(i)||n.bitwiseTo(r.ONE.shiftLeft(i),s,n),n.dAddOffset(31-n.mod(o).byteValue(),0),n}}()},6140:(e,t,r)=>{var n=r(392);r(3877);var i=null;!n.util.isNodejs||n.options.usePureJavaScript||process.versions["node-webkit"]||(i=r(5819)),(e.exports=n.prng=n.prng||{}).create=function(e){for(var t={plugin:e,key:null,seed:null,time:null,reseeds:0,generated:0,keyBytes:""},r=e.md,o=new Array(32),s=0;s<32;++s)o[s]=r.create();function a(){if(t.pools[0].messageLength>=32)return c();var e=32-t.pools[0].messageLength<<5;t.collect(t.seedFileSync(e)),c()}function c(){t.reseeds=4294967295===t.reseeds?0:t.reseeds+1;var e=t.plugin.md.create();e.update(t.keyBytes);for(var r=1,n=0;n<32;++n)t.reseeds%r===0&&(e.update(t.pools[n].digest().getBytes()),t.pools[n].start()),r<<=1;t.keyBytes=e.digest().getBytes(),e.start(),e.update(t.keyBytes);var i=e.digest().getBytes();t.key=t.plugin.formatKey(t.keyBytes),t.seed=t.plugin.formatSeed(i),t.generated=0}function l(e){var t=null,r=n.util.globalScope,i=r.crypto||r.msCrypto;i&&i.getRandomValues&&(t=function(e){return i.getRandomValues(e)});var o=n.util.createBuffer();if(t)for(;o.length()<e;){var s=Math.max(1,Math.min(e-o.length(),65536)/4),a=new Uint32Array(Math.floor(s));try{t(a);for(var c=0;c<a.length;++c)o.putInt32(a[c])}catch(p){if(!("undefined"!==typeof QuotaExceededError&&p instanceof QuotaExceededError))throw p}}if(o.length()<e)for(var l,u,h,d=Math.floor(65536*Math.random());o.length()<e;){u=16807*(65535&d),u+=(32767&(l=16807*(d>>16)))<<16,d=4294967295&(u=(2147483647&(u+=l>>15))+(u>>31));for(c=0;c<3;++c)h=d>>>(c<<3),h^=Math.floor(256*Math.random()),o.putByte(255&h)}return o.getBytes(e)}return t.pools=o,t.pool=0,t.generate=function(e,r){if(!r)return t.generateSync(e);var i=t.plugin.cipher,o=t.plugin.increment,s=t.plugin.formatKey,a=t.plugin.formatSeed,l=n.util.createBuffer();t.key=null,function u(h){if(h)return r(h);if(l.length()>=e)return r(null,l.getBytes(e));t.generated>1048575&&(t.key=null);if(null===t.key)return n.util.nextTick((function(){!function(e){if(t.pools[0].messageLength>=32)return c(),e();var r=32-t.pools[0].messageLength<<5;t.seedFile(r,(function(r,n){if(r)return e(r);t.collect(n),c(),e()}))}(u)}));var d=i(t.key,t.seed);t.generated+=d.length,l.putBytes(d),t.key=s(i(t.key,o(t.seed))),t.seed=a(i(t.key,t.seed)),n.util.setImmediate(u)}()},t.generateSync=function(e){var r=t.plugin.cipher,i=t.plugin.increment,o=t.plugin.formatKey,s=t.plugin.formatSeed;t.key=null;for(var c=n.util.createBuffer();c.length()<e;){t.generated>1048575&&(t.key=null),null===t.key&&a();var l=r(t.key,t.seed);t.generated+=l.length,c.putBytes(l),t.key=o(r(t.key,i(t.seed))),t.seed=s(r(t.key,t.seed))}return c.getBytes(e)},i?(t.seedFile=function(e,t){i.randomBytes(e,(function(e,r){if(e)return t(e);t(null,r.toString())}))},t.seedFileSync=function(e){return i.randomBytes(e).toString()}):(t.seedFile=function(e,t){try{t(null,l(e))}catch(r){t(r)}},t.seedFileSync=l),t.collect=function(e){for(var r=e.length,n=0;n<r;++n)t.pools[t.pool].update(e.substr(n,1)),t.pool=31===t.pool?0:t.pool+1},t.collectInt=function(e,r){for(var n="",i=0;i<r;i+=8)n+=String.fromCharCode(e>>i&255);t.collect(n)},t.registerWorker=function(e){if(e===self)t.seedFile=function(e,t){self.addEventListener("message",(function e(r){var n=r.data;n.forge&&n.forge.prng&&(self.removeEventListener("message",e),t(n.forge.prng.err,n.forge.prng.bytes))})),self.postMessage({forge:{prng:{needed:e}}})};else{e.addEventListener("message",(function(r){var n=r.data;n.forge&&n.forge.prng&&t.seedFile(n.forge.prng.needed,(function(t,r){e.postMessage({forge:{prng:{err:t,bytes:r}}})}))}))}},t}},3860:(e,t,r)=>{var n=r(392);r(8605),r(7404),r(6140),r(3877),n.random&&n.random.getBytes?e.exports=n.random:function(t){var r={},i=new Array(4),o=n.util.createBuffer();function s(){var e=n.prng.create(r);return e.getBytes=function(t,r){return e.generate(t,r)},e.getBytesSync=function(t){return e.generate(t)},e}r.formatKey=function(e){var t=n.util.createBuffer(e);return(e=new Array(4))[0]=t.getInt32(),e[1]=t.getInt32(),e[2]=t.getInt32(),e[3]=t.getInt32(),n.aes._expandKey(e,!1)},r.formatSeed=function(e){var t=n.util.createBuffer(e);return(e=new Array(4))[0]=t.getInt32(),e[1]=t.getInt32(),e[2]=t.getInt32(),e[3]=t.getInt32(),e},r.cipher=function(e,t){return n.aes._updateBlock(e,t,i,!1),o.putInt32(i[0]),o.putInt32(i[1]),o.putInt32(i[2]),o.putInt32(i[3]),o.getBytes()},r.increment=function(e){return++e[3],e},r.md=n.md.sha256;var a=s(),c=null,l=n.util.globalScope,u=l.crypto||l.msCrypto;if(u&&u.getRandomValues&&(c=function(e){return u.getRandomValues(e)}),n.options.usePureJavaScript||!n.util.isNodejs&&!c){if("undefined"===typeof window||window.document,a.collectInt(+new Date,32),"undefined"!==typeof navigator){var h="";for(var d in navigator)try{"string"==typeof navigator[d]&&(h+=navigator[d])}catch(p){}a.collect(h),h=null}t&&(t().mousemove((function(e){a.collectInt(e.clientX,16),a.collectInt(e.clientY,16)})),t().keypress((function(e){a.collectInt(e.charCode,8)})))}if(n.random)for(var d in a)n.random[d]=a[d];else n.random=a;n.random.createInstance=s,e.exports=n.random}("undefined"!==typeof jQuery?jQuery:null)},654:(e,t,r)=>{var n=r(392);r(3877);var i=[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],o=[1,2,3,5],s=function(e,t){return e<<t&65535|(65535&e)>>16-t},a=function(e,t){return(65535&e)>>t|e<<16-t&65535};e.exports=n.rc2=n.rc2||{},n.rc2.expandKey=function(e,t){"string"===typeof e&&(e=n.util.createBuffer(e)),t=t||128;var r,o=e,s=e.length(),a=t,c=Math.ceil(a/8),l=255>>(7&a);for(r=s;r<128;r++)o.putByte(i[o.at(r-1)+o.at(r-s)&255]);for(o.setAt(128-c,i[o.at(128-c)&l]),r=127-c;r>=0;r--)o.setAt(r,i[o.at(r+1)^o.at(r+c)]);return o};var c=function(e,t,r){var i,c,l,u,h=!1,d=null,p=null,f=null,y=[];for(e=n.rc2.expandKey(e,t),l=0;l<64;l++)y.push(e.getInt16Le());r?(i=function(e){for(l=0;l<4;l++)e[l]+=y[u]+(e[(l+3)%4]&e[(l+2)%4])+(~e[(l+3)%4]&e[(l+1)%4]),e[l]=s(e[l],o[l]),u++},c=function(e){for(l=0;l<4;l++)e[l]+=y[63&e[(l+3)%4]]}):(i=function(e){for(l=3;l>=0;l--)e[l]=a(e[l],o[l]),e[l]-=y[u]+(e[(l+3)%4]&e[(l+2)%4])+(~e[(l+3)%4]&e[(l+1)%4]),u--},c=function(e){for(l=3;l>=0;l--)e[l]-=y[63&e[(l+3)%4]]});var g=function(e){var t=[];for(l=0;l<4;l++){var n=d.getInt16Le();null!==f&&(r?n^=f.getInt16Le():f.putInt16Le(n)),t.push(65535&n)}u=r?0:63;for(var i=0;i<e.length;i++)for(var o=0;o<e[i][0];o++)e[i][1](t);for(l=0;l<4;l++)null!==f&&(r?f.putInt16Le(t[l]):t[l]^=f.getInt16Le()),p.putInt16Le(t[l])},m=null;return m={start:function(e,t){e&&"string"===typeof e&&(e=n.util.createBuffer(e)),h=!1,d=n.util.createBuffer(),p=t||new n.util.createBuffer,f=e,m.output=p},update:function(e){for(h||d.putBuffer(e);d.length()>=8;)g([[5,i],[1,c],[6,i],[1,c],[5,i]])},finish:function(e){var t=!0;if(r)if(e)t=e(8,d,!r);else{var n=8===d.length()?8:8-d.length();d.fillWithByte(n,n)}if(t&&(h=!0,m.update()),!r&&(t=0===d.length()))if(e)t=e(8,p,!r);else{var i=p.length(),o=p.at(i-1);o>i?t=!1:p.truncate(o)}return t}}};n.rc2.startEncrypting=function(e,t,r){var i=n.rc2.createEncryptionCipher(e,128);return i.start(t,r),i},n.rc2.createEncryptionCipher=function(e,t){return c(e,t,!0)},n.rc2.startDecrypting=function(e,t,r){var i=n.rc2.createDecryptionCipher(e,128);return i.start(t,r),i},n.rc2.createDecryptionCipher=function(e,t){return c(e,t,!1)}},5493:(e,t,r)=>{var n=r(392);if(r(5049),r(3055),r(2886),r(2627),r(5132),r(3860),r(3877),"undefined"===typeof i)var i=n.jsbn.BigInteger;var o=n.util.isNodejs?r(5819):null,s=n.asn1,a=n.util;n.pki=n.pki||{},e.exports=n.pki.rsa=n.rsa=n.rsa||{};var c=n.pki,l=[6,4,2,4,2,4,6,2],u={name:"PrivateKeyInfo",tagClass:s.Class.UNIVERSAL,type:s.Type.SEQUENCE,constructed:!0,value:[{name:"PrivateKeyInfo.version",tagClass:s.Class.UNIVERSAL,type:s.Type.INTEGER,constructed:!1,capture:"privateKeyVersion"},{name:"PrivateKeyInfo.privateKeyAlgorithm",tagClass:s.Class.UNIVERSAL,type:s.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:s.Class.UNIVERSAL,type:s.Type.OID,constructed:!1,capture:"privateKeyOid"}]},{name:"PrivateKeyInfo",tagClass:s.Class.UNIVERSAL,type:s.Type.OCTETSTRING,constructed:!1,capture:"privateKey"}]},h={name:"RSAPrivateKey",tagClass:s.Class.UNIVERSAL,type:s.Type.SEQUENCE,constructed:!0,value:[{name:"RSAPrivateKey.version",tagClass:s.Class.UNIVERSAL,type:s.Type.INTEGER,constructed:!1,capture:"privateKeyVersion"},{name:"RSAPrivateKey.modulus",tagClass:s.Class.UNIVERSAL,type:s.Type.INTEGER,constructed:!1,capture:"privateKeyModulus"},{name:"RSAPrivateKey.publicExponent",tagClass:s.Class.UNIVERSAL,type:s.Type.INTEGER,constructed:!1,capture:"privateKeyPublicExponent"},{name:"RSAPrivateKey.privateExponent",tagClass:s.Class.UNIVERSAL,type:s.Type.INTEGER,constructed:!1,capture:"privateKeyPrivateExponent"},{name:"RSAPrivateKey.prime1",tagClass:s.Class.UNIVERSAL,type:s.Type.INTEGER,constructed:!1,capture:"privateKeyPrime1"},{name:"RSAPrivateKey.prime2",tagClass:s.Class.UNIVERSAL,type:s.Type.INTEGER,constructed:!1,capture:"privateKeyPrime2"},{name:"RSAPrivateKey.exponent1",tagClass:s.Class.UNIVERSAL,type:s.Type.INTEGER,constructed:!1,capture:"privateKeyExponent1"},{name:"RSAPrivateKey.exponent2",tagClass:s.Class.UNIVERSAL,type:s.Type.INTEGER,constructed:!1,capture:"privateKeyExponent2"},{name:"RSAPrivateKey.coefficient",tagClass:s.Class.UNIVERSAL,type:s.Type.INTEGER,constructed:!1,capture:"privateKeyCoefficient"}]},d={name:"RSAPublicKey",tagClass:s.Class.UNIVERSAL,type:s.Type.SEQUENCE,constructed:!0,value:[{name:"RSAPublicKey.modulus",tagClass:s.Class.UNIVERSAL,type:s.Type.INTEGER,constructed:!1,capture:"publicKeyModulus"},{name:"RSAPublicKey.exponent",tagClass:s.Class.UNIVERSAL,type:s.Type.INTEGER,constructed:!1,capture:"publicKeyExponent"}]},p=n.pki.rsa.publicKeyValidator={name:"SubjectPublicKeyInfo",tagClass:s.Class.UNIVERSAL,type:s.Type.SEQUENCE,constructed:!0,captureAsn1:"subjectPublicKeyInfo",value:[{name:"SubjectPublicKeyInfo.AlgorithmIdentifier",tagClass:s.Class.UNIVERSAL,type:s.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:s.Class.UNIVERSAL,type:s.Type.OID,constructed:!1,capture:"publicKeyOid"}]},{name:"SubjectPublicKeyInfo.subjectPublicKey",tagClass:s.Class.UNIVERSAL,type:s.Type.BITSTRING,constructed:!1,value:[{name:"SubjectPublicKeyInfo.subjectPublicKey.RSAPublicKey",tagClass:s.Class.UNIVERSAL,type:s.Type.SEQUENCE,constructed:!0,optional:!0,captureAsn1:"rsaPublicKey"}]}]},f={name:"DigestInfo",tagClass:s.Class.UNIVERSAL,type:s.Type.SEQUENCE,constructed:!0,value:[{name:"DigestInfo.DigestAlgorithm",tagClass:s.Class.UNIVERSAL,type:s.Type.SEQUENCE,constructed:!0,value:[{name:"DigestInfo.DigestAlgorithm.algorithmIdentifier",tagClass:s.Class.UNIVERSAL,type:s.Type.OID,constructed:!1,capture:"algorithmIdentifier"},{name:"DigestInfo.DigestAlgorithm.parameters",tagClass:s.Class.UNIVERSAL,type:s.Type.NULL,capture:"parameters",optional:!0,constructed:!1}]},{name:"DigestInfo.digest",tagClass:s.Class.UNIVERSAL,type:s.Type.OCTETSTRING,constructed:!1,capture:"digest"}]},y=function(e){var t;if(!(e.algorithm in c.oids)){var r=new Error("Unknown message digest algorithm.");throw r.algorithm=e.algorithm,r}t=c.oids[e.algorithm];var n=s.oidToDer(t).getBytes(),i=s.create(s.Class.UNIVERSAL,s.Type.SEQUENCE,!0,[]),o=s.create(s.Class.UNIVERSAL,s.Type.SEQUENCE,!0,[]);o.value.push(s.create(s.Class.UNIVERSAL,s.Type.OID,!1,n)),o.value.push(s.create(s.Class.UNIVERSAL,s.Type.NULL,!1,""));var a=s.create(s.Class.UNIVERSAL,s.Type.OCTETSTRING,!1,e.digest().getBytes());return i.value.push(o),i.value.push(a),s.toDer(i).getBytes()},g=function(e,t,r){if(r)return e.modPow(t.e,t.n);if(!t.p||!t.q)return e.modPow(t.d,t.n);var o;t.dP||(t.dP=t.d.mod(t.p.subtract(i.ONE))),t.dQ||(t.dQ=t.d.mod(t.q.subtract(i.ONE))),t.qInv||(t.qInv=t.q.modInverse(t.p));do{o=new i(n.util.bytesToHex(n.random.getBytes(t.n.bitLength()/8)),16)}while(o.compareTo(t.n)>=0||!o.gcd(t.n).equals(i.ONE));for(var s=(e=e.multiply(o.modPow(t.e,t.n)).mod(t.n)).mod(t.p).modPow(t.dP,t.p),a=e.mod(t.q).modPow(t.dQ,t.q);s.compareTo(a)<0;)s=s.add(t.p);var c=s.subtract(a).multiply(t.qInv).mod(t.p).multiply(t.q).add(a);return c=c.multiply(o.modInverse(t.n)).mod(t.n)};function m(e,t,r){var i=n.util.createBuffer(),o=Math.ceil(t.n.bitLength()/8);if(e.length>o-11){var s=new Error("Message is too long for PKCS#1 v1.5 padding.");throw s.length=e.length,s.max=o-11,s}i.putByte(0),i.putByte(r);var a,c=o-3-e.length;if(0===r||1===r){a=0===r?0:255;for(var l=0;l<c;++l)i.putByte(a)}else for(;c>0;){var u=0,h=n.random.getBytes(c);for(l=0;l<c;++l)0===(a=h.charCodeAt(l))?++u:i.putByte(a);c=u}return i.putByte(0),i.putBytes(e),i}function b(e,t,r,i){var o=Math.ceil(t.n.bitLength()/8),s=n.util.createBuffer(e),a=s.getByte(),c=s.getByte();if(0!==a||r&&0!==c&&1!==c||!r&&2!=c||r&&0===c&&"undefined"===typeof i)throw new Error("Encryption block is invalid.");var l=0;if(0===c){l=o-3-i;for(var u=0;u<l;++u)if(0!==s.getByte())throw new Error("Encryption block is invalid.")}else if(1===c)for(l=0;s.length()>1;){if(255!==s.getByte()){--s.read;break}++l}else if(2===c)for(l=0;s.length()>1;){if(0===s.getByte()){--s.read;break}++l}if(0!==s.getByte()||l!==o-3-s.length())throw new Error("Encryption block is invalid.");return s.getBytes()}function w(e){var t=e.toString(16);t[0]>="8"&&(t="00"+t);var r=n.util.hexToBytes(t);return r.length>1&&(0===r.charCodeAt(0)&&0===(128&r.charCodeAt(1))||255===r.charCodeAt(0)&&128===(128&r.charCodeAt(1)))?r.substr(1):r}function v(e){return e<=100?27:e<=150?18:e<=200?15:e<=250?12:e<=300?9:e<=350?8:e<=400?7:e<=500?6:e<=600?5:e<=800?4:e<=1250?3:2}function _(e){return n.util.isNodejs&&"function"===typeof o[e]}function E(e){return"undefined"!==typeof a.globalScope&&"object"===typeof a.globalScope.crypto&&"object"===typeof a.globalScope.crypto.subtle&&"function"===typeof a.globalScope.crypto.subtle[e]}function S(e){return"undefined"!==typeof a.globalScope&&"object"===typeof a.globalScope.msCrypto&&"object"===typeof a.globalScope.msCrypto.subtle&&"function"===typeof a.globalScope.msCrypto.subtle[e]}function A(e){for(var t=n.util.hexToBytes(e.toString(16)),r=new Uint8Array(t.length),i=0;i<t.length;++i)r[i]=t.charCodeAt(i);return r}c.rsa.encrypt=function(e,t,r){var o,s=r,a=Math.ceil(t.n.bitLength()/8);!1!==r&&!0!==r?(s=2===r,o=m(e,t,r)):(o=n.util.createBuffer()).putBytes(e);for(var c=new i(o.toHex(),16),l=g(c,t,s).toString(16),u=n.util.createBuffer(),h=a-Math.ceil(l.length/2);h>0;)u.putByte(0),--h;return u.putBytes(n.util.hexToBytes(l)),u.getBytes()},c.rsa.decrypt=function(e,t,r,o){var s=Math.ceil(t.n.bitLength()/8);if(e.length!==s){var a=new Error("Encrypted message length is invalid.");throw a.length=e.length,a.expected=s,a}var c=new i(n.util.createBuffer(e).toHex(),16);if(c.compareTo(t.n)>=0)throw new Error("Encrypted message is invalid.");for(var l=g(c,t,r).toString(16),u=n.util.createBuffer(),h=s-Math.ceil(l.length/2);h>0;)u.putByte(0),--h;return u.putBytes(n.util.hexToBytes(l)),!1!==o?b(u.getBytes(),t,r):u.getBytes()},c.rsa.createKeyPairGenerationState=function(e,t,r){"string"===typeof e&&(e=parseInt(e,10)),e=e||2048;var o,s=(r=r||{}).prng||n.random,a={nextBytes:function(e){for(var t=s.getBytesSync(e.length),r=0;r<e.length;++r)e[r]=t.charCodeAt(r)}},c=r.algorithm||"PRIMEINC";if("PRIMEINC"!==c)throw new Error("Invalid key generation algorithm: "+c);return(o={algorithm:c,state:0,bits:e,rng:a,eInt:t||65537,e:new i(null),p:null,q:null,qBits:e>>1,pBits:e-(e>>1),pqState:0,num:null,keys:null}).e.fromInt(o.eInt),o},c.rsa.stepKeyPairGenerationState=function(e,t){"algorithm"in e||(e.algorithm="PRIMEINC");var r=new i(null);r.fromInt(30);for(var n,o=0,s=function(e,t){return e|t},a=+new Date,u=0;null===e.keys&&(t<=0||u<t);){if(0===e.state){var h=null===e.p?e.pBits:e.qBits,d=h-1;0===e.pqState?(e.num=new i(h,e.rng),e.num.testBit(d)||e.num.bitwiseTo(i.ONE.shiftLeft(d),s,e.num),e.num.dAddOffset(31-e.num.mod(r).byteValue(),0),o=0,++e.pqState):1===e.pqState?e.num.bitLength()>h?e.pqState=0:e.num.isProbablePrime(v(e.num.bitLength()))?++e.pqState:e.num.dAddOffset(l[o++%8],0):2===e.pqState?e.pqState=0===e.num.subtract(i.ONE).gcd(e.e).compareTo(i.ONE)?3:0:3===e.pqState&&(e.pqState=0,null===e.p?e.p=e.num:e.q=e.num,null!==e.p&&null!==e.q&&++e.state,e.num=null)}else if(1===e.state)e.p.compareTo(e.q)<0&&(e.num=e.p,e.p=e.q,e.q=e.num),++e.state;else if(2===e.state)e.p1=e.p.subtract(i.ONE),e.q1=e.q.subtract(i.ONE),e.phi=e.p1.multiply(e.q1),++e.state;else if(3===e.state)0===e.phi.gcd(e.e).compareTo(i.ONE)?++e.state:(e.p=null,e.q=null,e.state=0);else if(4===e.state)e.n=e.p.multiply(e.q),e.n.bitLength()===e.bits?++e.state:(e.q=null,e.state=0);else if(5===e.state){var p=e.e.modInverse(e.phi);e.keys={privateKey:c.rsa.setPrivateKey(e.n,e.e,p,e.p,e.q,p.mod(e.p1),p.mod(e.q1),e.q.modInverse(e.p)),publicKey:c.rsa.setPublicKey(e.n,e.e)}}u+=(n=+new Date)-a,a=n}return null!==e.keys},c.rsa.generateKeyPair=function(e,t,r,l){if(1===arguments.length?"object"===typeof e?(r=e,e=void 0):"function"===typeof e&&(l=e,e=void 0):2===arguments.length?"number"===typeof e?"function"===typeof t?(l=t,t=void 0):"number"!==typeof t&&(r=t,t=void 0):(r=e,l=t,e=void 0,t=void 0):3===arguments.length&&("number"===typeof t?"function"===typeof r&&(l=r,r=void 0):(l=r,r=t,t=void 0)),r=r||{},void 0===e&&(e=r.bits||2048),void 0===t&&(t=r.e||65537),!n.options.usePureJavaScript&&!r.prng&&e>=256&&e<=16384&&(65537===t||3===t))if(l){if(_("generateKeyPair"))return o.generateKeyPair("rsa",{modulusLength:e,publicExponent:t,publicKeyEncoding:{type:"spki",format:"pem"},privateKeyEncoding:{type:"pkcs8",format:"pem"}},(function(e,t,r){if(e)return l(e);l(null,{privateKey:c.privateKeyFromPem(r),publicKey:c.publicKeyFromPem(t)})}));if(E("generateKey")&&E("exportKey"))return a.globalScope.crypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:e,publicExponent:A(t),hash:{name:"SHA-256"}},!0,["sign","verify"]).then((function(e){return a.globalScope.crypto.subtle.exportKey("pkcs8",e.privateKey)})).then(void 0,(function(e){l(e)})).then((function(e){if(e){var t=c.privateKeyFromAsn1(s.fromDer(n.util.createBuffer(e)));l(null,{privateKey:t,publicKey:c.setRsaPublicKey(t.n,t.e)})}}));if(S("generateKey")&&S("exportKey")){var u=a.globalScope.msCrypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:e,publicExponent:A(t),hash:{name:"SHA-256"}},!0,["sign","verify"]);return u.oncomplete=function(e){var t=e.target.result,r=a.globalScope.msCrypto.subtle.exportKey("pkcs8",t.privateKey);r.oncomplete=function(e){var t=e.target.result,r=c.privateKeyFromAsn1(s.fromDer(n.util.createBuffer(t)));l(null,{privateKey:r,publicKey:c.setRsaPublicKey(r.n,r.e)})},r.onerror=function(e){l(e)}},void(u.onerror=function(e){l(e)})}}else if(_("generateKeyPairSync")){var h=o.generateKeyPairSync("rsa",{modulusLength:e,publicExponent:t,publicKeyEncoding:{type:"spki",format:"pem"},privateKeyEncoding:{type:"pkcs8",format:"pem"}});return{privateKey:c.privateKeyFromPem(h.privateKey),publicKey:c.publicKeyFromPem(h.publicKey)}}var d=c.rsa.createKeyPairGenerationState(e,t,r);if(!l)return c.rsa.stepKeyPairGenerationState(d,0),d.keys;!function(e,t,r){"function"===typeof t&&(r=t,t={});t=t||{};var o={algorithm:{name:t.algorithm||"PRIMEINC",options:{workers:t.workers||2,workLoad:t.workLoad||100,workerScript:t.workerScript}}};"prng"in t&&(o.prng=t.prng);function s(){a(e.pBits,(function(t,n){return t?r(t):(e.p=n,null!==e.q?l(t,e.q):void a(e.qBits,l))}))}function a(e,t){n.prime.generateProbablePrime(e,o,t)}function l(t,n){if(t)return r(t);if(e.q=n,e.p.compareTo(e.q)<0){var o=e.p;e.p=e.q,e.q=o}if(0!==e.p.subtract(i.ONE).gcd(e.e).compareTo(i.ONE))return e.p=null,void s();if(0!==e.q.subtract(i.ONE).gcd(e.e).compareTo(i.ONE))return e.q=null,void a(e.qBits,l);if(e.p1=e.p.subtract(i.ONE),e.q1=e.q.subtract(i.ONE),e.phi=e.p1.multiply(e.q1),0!==e.phi.gcd(e.e).compareTo(i.ONE))return e.p=e.q=null,void s();if(e.n=e.p.multiply(e.q),e.n.bitLength()!==e.bits)return e.q=null,void a(e.qBits,l);var u=e.e.modInverse(e.phi);e.keys={privateKey:c.rsa.setPrivateKey(e.n,e.e,u,e.p,e.q,u.mod(e.p1),u.mod(e.q1),e.q.modInverse(e.p)),publicKey:c.rsa.setPublicKey(e.n,e.e)},r(null,e.keys)}s()}(d,r,l)},c.setRsaPublicKey=c.rsa.setPublicKey=function(e,t){var r={n:e,e:t,encrypt:function(e,t,i){if("string"===typeof t?t=t.toUpperCase():void 0===t&&(t="RSAES-PKCS1-V1_5"),"RSAES-PKCS1-V1_5"===t)t={encode:function(e,t,r){return m(e,t,2).getBytes()}};else if("RSA-OAEP"===t||"RSAES-OAEP"===t)t={encode:function(e,t){return n.pkcs1.encode_rsa_oaep(t,e,i)}};else if(-1!==["RAW","NONE","NULL",null].indexOf(t))t={encode:function(e){return e}};else if("string"===typeof t)throw new Error('Unsupported encryption scheme: "'+t+'".');var o=t.encode(e,r,!0);return c.rsa.encrypt(o,r,!0)},verify:function(e,t,i,o){"string"===typeof i?i=i.toUpperCase():void 0===i&&(i="RSASSA-PKCS1-V1_5"),void 0===o&&(o={_parseAllDigestBytes:!0}),"_parseAllDigestBytes"in o||(o._parseAllDigestBytes=!0),"RSASSA-PKCS1-V1_5"===i?i={verify:function(e,t){t=b(t,r,!0);var i=s.fromDer(t,{parseAllBytes:o._parseAllDigestBytes}),a={},c=[];if(!s.validate(i,f,a,c))throw(l=new Error("ASN.1 object does not contain a valid RSASSA-PKCS1-v1_5 DigestInfo value.")).errors=c,l;var l,u=s.derToOid(a.algorithmIdentifier);if(u!==n.oids.md2&&u!==n.oids.md5&&u!==n.oids.sha1&&u!==n.oids.sha224&&u!==n.oids.sha256&&u!==n.oids.sha384&&u!==n.oids.sha512&&u!==n.oids["sha512-224"]&&u!==n.oids["sha512-256"])throw(l=new Error("Unknown RSASSA-PKCS1-v1_5 DigestAlgorithm identifier.")).oid=u,l;if((u===n.oids.md2||u===n.oids.md5)&&!("parameters"in a))throw new Error("ASN.1 object does not contain a valid RSASSA-PKCS1-v1_5 DigestInfo value. Missing algorithm identifer NULL parameters.");return e===a.digest}}:"NONE"!==i&&"NULL"!==i&&null!==i||(i={verify:function(e,t){return e===(t=b(t,r,!0))}});var a=c.rsa.decrypt(t,r,!0,!1);return i.verify(e,a,r.n.bitLength())}};return r},c.setRsaPrivateKey=c.rsa.setPrivateKey=function(e,t,r,i,o,s,a,l){var u={n:e,e:t,d:r,p:i,q:o,dP:s,dQ:a,qInv:l,decrypt:function(e,t,r){"string"===typeof t?t=t.toUpperCase():void 0===t&&(t="RSAES-PKCS1-V1_5");var i=c.rsa.decrypt(e,u,!1,!1);if("RSAES-PKCS1-V1_5"===t)t={decode:b};else if("RSA-OAEP"===t||"RSAES-OAEP"===t)t={decode:function(e,t){return n.pkcs1.decode_rsa_oaep(t,e,r)}};else{if(-1===["RAW","NONE","NULL",null].indexOf(t))throw new Error('Unsupported encryption scheme: "'+t+'".');t={decode:function(e){return e}}}return t.decode(i,u,!1)},sign:function(e,t){var r=!1;"string"===typeof t&&(t=t.toUpperCase()),void 0===t||"RSASSA-PKCS1-V1_5"===t?(t={encode:y},r=1):"NONE"!==t&&"NULL"!==t&&null!==t||(t={encode:function(){return e}},r=1);var n=t.encode(e,u.n.bitLength());return c.rsa.encrypt(n,u,r)}};return u},c.wrapRsaPrivateKey=function(e){return s.create(s.Class.UNIVERSAL,s.Type.SEQUENCE,!0,[s.create(s.Class.UNIVERSAL,s.Type.INTEGER,!1,s.integerToDer(0).getBytes()),s.create(s.Class.UNIVERSAL,s.Type.SEQUENCE,!0,[s.create(s.Class.UNIVERSAL,s.Type.OID,!1,s.oidToDer(c.oids.rsaEncryption).getBytes()),s.create(s.Class.UNIVERSAL,s.Type.NULL,!1,"")]),s.create(s.Class.UNIVERSAL,s.Type.OCTETSTRING,!1,s.toDer(e).getBytes())])},c.privateKeyFromAsn1=function(e){var t,r,o,a,l,d,p,f,y={},g=[];if(s.validate(e,u,y,g)&&(e=s.fromDer(n.util.createBuffer(y.privateKey))),y={},g=[],!s.validate(e,h,y,g)){var m=new Error("Cannot read private key. ASN.1 object does not contain an RSAPrivateKey.");throw m.errors=g,m}return t=n.util.createBuffer(y.privateKeyModulus).toHex(),r=n.util.createBuffer(y.privateKeyPublicExponent).toHex(),o=n.util.createBuffer(y.privateKeyPrivateExponent).toHex(),a=n.util.createBuffer(y.privateKeyPrime1).toHex(),l=n.util.createBuffer(y.privateKeyPrime2).toHex(),d=n.util.createBuffer(y.privateKeyExponent1).toHex(),p=n.util.createBuffer(y.privateKeyExponent2).toHex(),f=n.util.createBuffer(y.privateKeyCoefficient).toHex(),c.setRsaPrivateKey(new i(t,16),new i(r,16),new i(o,16),new i(a,16),new i(l,16),new i(d,16),new i(p,16),new i(f,16))},c.privateKeyToAsn1=c.privateKeyToRSAPrivateKey=function(e){return s.create(s.Class.UNIVERSAL,s.Type.SEQUENCE,!0,[s.create(s.Class.UNIVERSAL,s.Type.INTEGER,!1,s.integerToDer(0).getBytes()),s.create(s.Class.UNIVERSAL,s.Type.INTEGER,!1,w(e.n)),s.create(s.Class.UNIVERSAL,s.Type.INTEGER,!1,w(e.e)),s.create(s.Class.UNIVERSAL,s.Type.INTEGER,!1,w(e.d)),s.create(s.Class.UNIVERSAL,s.Type.INTEGER,!1,w(e.p)),s.create(s.Class.UNIVERSAL,s.Type.INTEGER,!1,w(e.q)),s.create(s.Class.UNIVERSAL,s.Type.INTEGER,!1,w(e.dP)),s.create(s.Class.UNIVERSAL,s.Type.INTEGER,!1,w(e.dQ)),s.create(s.Class.UNIVERSAL,s.Type.INTEGER,!1,w(e.qInv))])},c.publicKeyFromAsn1=function(e){var t={},r=[];if(s.validate(e,p,t,r)){var o,a=s.derToOid(t.publicKeyOid);if(a!==c.oids.rsaEncryption)throw(o=new Error("Cannot read public key. Unknown OID.")).oid=a,o;e=t.rsaPublicKey}if(r=[],!s.validate(e,d,t,r))throw(o=new Error("Cannot read public key. ASN.1 object does not contain an RSAPublicKey.")).errors=r,o;var l=n.util.createBuffer(t.publicKeyModulus).toHex(),u=n.util.createBuffer(t.publicKeyExponent).toHex();return c.setRsaPublicKey(new i(l,16),new i(u,16))},c.publicKeyToAsn1=c.publicKeyToSubjectPublicKeyInfo=function(e){return s.create(s.Class.UNIVERSAL,s.Type.SEQUENCE,!0,[s.create(s.Class.UNIVERSAL,s.Type.SEQUENCE,!0,[s.create(s.Class.UNIVERSAL,s.Type.OID,!1,s.oidToDer(c.oids.rsaEncryption).getBytes()),s.create(s.Class.UNIVERSAL,s.Type.NULL,!1,"")]),s.create(s.Class.UNIVERSAL,s.Type.BITSTRING,!1,[c.publicKeyToRSAPublicKey(e)])])},c.publicKeyToRSAPublicKey=function(e){return s.create(s.Class.UNIVERSAL,s.Type.SEQUENCE,!0,[s.create(s.Class.UNIVERSAL,s.Type.INTEGER,!1,w(e.n)),s.create(s.Class.UNIVERSAL,s.Type.INTEGER,!1,w(e.e))])}},928:(e,t,r)=>{var n=r(392);r(29),r(3877);var i=e.exports=n.sha1=n.sha1||{};n.md.sha1=n.md.algorithms.sha1=i,i.create=function(){s||(o=String.fromCharCode(128),o+=n.util.fillString(String.fromCharCode(0),64),s=!0);var e=null,t=n.util.createBuffer(),r=new Array(80),i={algorithm:"sha1",blockLength:64,digestLength:20,messageLength:0,fullMessageLength:null,messageLengthSize:8,start:function(){i.messageLength=0,i.fullMessageLength=i.messageLength64=[];for(var r=i.messageLengthSize/4,o=0;o<r;++o)i.fullMessageLength.push(0);return t=n.util.createBuffer(),e={h0:1732584193,h1:4023233417,h2:2562383102,h3:271733878,h4:3285377520},i}};return i.start(),i.update=function(o,s){"utf8"===s&&(o=n.util.encodeUtf8(o));var c=o.length;i.messageLength+=c,c=[c/4294967296>>>0,c>>>0];for(var l=i.fullMessageLength.length-1;l>=0;--l)i.fullMessageLength[l]+=c[1],c[1]=c[0]+(i.fullMessageLength[l]/4294967296>>>0),i.fullMessageLength[l]=i.fullMessageLength[l]>>>0,c[0]=c[1]/4294967296>>>0;return t.putBytes(o),a(e,r,t),(t.read>2048||0===t.length())&&t.compact(),i},i.digest=function(){var s=n.util.createBuffer();s.putBytes(t.bytes());var c,l=i.fullMessageLength[i.fullMessageLength.length-1]+i.messageLengthSize&i.blockLength-1;s.putBytes(o.substr(0,i.blockLength-l));for(var u=8*i.fullMessageLength[0],h=0;h<i.fullMessageLength.length-1;++h)u+=(c=8*i.fullMessageLength[h+1])/4294967296>>>0,s.putInt32(u>>>0),u=c>>>0;s.putInt32(u);var d={h0:e.h0,h1:e.h1,h2:e.h2,h3:e.h3,h4:e.h4};a(d,r,s);var p=n.util.createBuffer();return p.putInt32(d.h0),p.putInt32(d.h1),p.putInt32(d.h2),p.putInt32(d.h3),p.putInt32(d.h4),p},i};var o=null,s=!1;function a(e,t,r){for(var n,i,o,s,a,c,l,u=r.length();u>=64;){for(i=e.h0,o=e.h1,s=e.h2,a=e.h3,c=e.h4,l=0;l<16;++l)n=r.getInt32(),t[l]=n,n=(i<<5|i>>>27)+(a^o&(s^a))+c+1518500249+n,c=a,a=s,s=(o<<30|o>>>2)>>>0,o=i,i=n;for(;l<20;++l)n=(n=t[l-3]^t[l-8]^t[l-14]^t[l-16])<<1|n>>>31,t[l]=n,n=(i<<5|i>>>27)+(a^o&(s^a))+c+1518500249+n,c=a,a=s,s=(o<<30|o>>>2)>>>0,o=i,i=n;for(;l<32;++l)n=(n=t[l-3]^t[l-8]^t[l-14]^t[l-16])<<1|n>>>31,t[l]=n,n=(i<<5|i>>>27)+(o^s^a)+c+1859775393+n,c=a,a=s,s=(o<<30|o>>>2)>>>0,o=i,i=n;for(;l<40;++l)n=(n=t[l-6]^t[l-16]^t[l-28]^t[l-32])<<2|n>>>30,t[l]=n,n=(i<<5|i>>>27)+(o^s^a)+c+1859775393+n,c=a,a=s,s=(o<<30|o>>>2)>>>0,o=i,i=n;for(;l<60;++l)n=(n=t[l-6]^t[l-16]^t[l-28]^t[l-32])<<2|n>>>30,t[l]=n,n=(i<<5|i>>>27)+(o&s|a&(o^s))+c+2400959708+n,c=a,a=s,s=(o<<30|o>>>2)>>>0,o=i,i=n;for(;l<80;++l)n=(n=t[l-6]^t[l-16]^t[l-28]^t[l-32])<<2|n>>>30,t[l]=n,n=(i<<5|i>>>27)+(o^s^a)+c+3395469782+n,c=a,a=s,s=(o<<30|o>>>2)>>>0,o=i,i=n;e.h0=e.h0+i|0,e.h1=e.h1+o|0,e.h2=e.h2+s|0,e.h3=e.h3+a|0,e.h4=e.h4+c|0,u-=64}}},7404:(e,t,r)=>{var n=r(392);r(29),r(3877);var i=e.exports=n.sha256=n.sha256||{};n.md.sha256=n.md.algorithms.sha256=i,i.create=function(){s||(o=String.fromCharCode(128),o+=n.util.fillString(String.fromCharCode(0),64),a=[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],s=!0);var e=null,t=n.util.createBuffer(),r=new Array(64),i={algorithm:"sha256",blockLength:64,digestLength:32,messageLength:0,fullMessageLength:null,messageLengthSize:8,start:function(){i.messageLength=0,i.fullMessageLength=i.messageLength64=[];for(var r=i.messageLengthSize/4,o=0;o<r;++o)i.fullMessageLength.push(0);return t=n.util.createBuffer(),e={h0:1779033703,h1:3144134277,h2:1013904242,h3:2773480762,h4:1359893119,h5:2600822924,h6:528734635,h7:1541459225},i}};return i.start(),i.update=function(o,s){"utf8"===s&&(o=n.util.encodeUtf8(o));var a=o.length;i.messageLength+=a,a=[a/4294967296>>>0,a>>>0];for(var l=i.fullMessageLength.length-1;l>=0;--l)i.fullMessageLength[l]+=a[1],a[1]=a[0]+(i.fullMessageLength[l]/4294967296>>>0),i.fullMessageLength[l]=i.fullMessageLength[l]>>>0,a[0]=a[1]/4294967296>>>0;return t.putBytes(o),c(e,r,t),(t.read>2048||0===t.length())&&t.compact(),i},i.digest=function(){var s=n.util.createBuffer();s.putBytes(t.bytes());var a,l=i.fullMessageLength[i.fullMessageLength.length-1]+i.messageLengthSize&i.blockLength-1;s.putBytes(o.substr(0,i.blockLength-l));for(var u=8*i.fullMessageLength[0],h=0;h<i.fullMessageLength.length-1;++h)u+=(a=8*i.fullMessageLength[h+1])/4294967296>>>0,s.putInt32(u>>>0),u=a>>>0;s.putInt32(u);var d={h0:e.h0,h1:e.h1,h2:e.h2,h3:e.h3,h4:e.h4,h5:e.h5,h6:e.h6,h7:e.h7};c(d,r,s);var p=n.util.createBuffer();return p.putInt32(d.h0),p.putInt32(d.h1),p.putInt32(d.h2),p.putInt32(d.h3),p.putInt32(d.h4),p.putInt32(d.h5),p.putInt32(d.h6),p.putInt32(d.h7),p},i};var o=null,s=!1,a=null;function c(e,t,r){for(var n,i,o,s,c,l,u,h,d,p,f,y,g,m=r.length();m>=64;){for(c=0;c<16;++c)t[c]=r.getInt32();for(;c<64;++c)n=((n=t[c-2])>>>17|n<<15)^(n>>>19|n<<13)^n>>>10,i=((i=t[c-15])>>>7|i<<25)^(i>>>18|i<<14)^i>>>3,t[c]=n+t[c-7]+i+t[c-16]|0;for(l=e.h0,u=e.h1,h=e.h2,d=e.h3,p=e.h4,f=e.h5,y=e.h6,g=e.h7,c=0;c<64;++c)o=(l>>>2|l<<30)^(l>>>13|l<<19)^(l>>>22|l<<10),s=l&u|h&(l^u),n=g+((p>>>6|p<<26)^(p>>>11|p<<21)^(p>>>25|p<<7))+(y^p&(f^y))+a[c]+t[c],g=y,y=f,f=p,p=d+n>>>0,d=h,h=u,u=l,l=n+(i=o+s)>>>0;e.h0=e.h0+l|0,e.h1=e.h1+u|0,e.h2=e.h2+h|0,e.h3=e.h3+d|0,e.h4=e.h4+p|0,e.h5=e.h5+f|0,e.h6=e.h6+y|0,e.h7=e.h7+g|0,m-=64}}},4770:(e,t,r)=>{var n=r(392);r(29),r(3877);var i=e.exports=n.sha512=n.sha512||{};n.md.sha512=n.md.algorithms.sha512=i;var o=n.sha384=n.sha512.sha384=n.sha512.sha384||{};o.create=function(){return i.create("SHA-384")},n.md.sha384=n.md.algorithms.sha384=o,n.sha512.sha256=n.sha512.sha256||{create:function(){return i.create("SHA-512/256")}},n.md["sha512/256"]=n.md.algorithms["sha512/256"]=n.sha512.sha256,n.sha512.sha224=n.sha512.sha224||{create:function(){return i.create("SHA-512/224")}},n.md["sha512/224"]=n.md.algorithms["sha512/224"]=n.sha512.sha224,i.create=function(e){if(a||(s=String.fromCharCode(128),s+=n.util.fillString(String.fromCharCode(0),128),c=[[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]],(l={})["SHA-512"]=[[1779033703,4089235720],[3144134277,2227873595],[1013904242,4271175723],[2773480762,1595750129],[1359893119,2917565137],[2600822924,725511199],[528734635,4215389547],[1541459225,327033209]],l["SHA-384"]=[[3418070365,3238371032],[1654270250,914150663],[2438529370,812702999],[355462360,4144912697],[1731405415,4290775857],[2394180231,1750603025],[3675008525,1694076839],[1203062813,3204075428]],l["SHA-512/256"]=[[573645204,4230739756],[2673172387,3360449730],[596883563,1867755857],[2520282905,1497426621],[2519219938,2827943907],[3193839141,1401305490],[721525244,746961066],[246885852,2177182882]],l["SHA-512/224"]=[[2352822216,424955298],[1944164710,2312950998],[502970286,855612546],[1738396948,1479516111],[258812777,2077511080],[2011393907,79989058],[1067287976,1780299464],[286451373,2446758561]],a=!0),"undefined"===typeof e&&(e="SHA-512"),!(e in l))throw new Error("Invalid SHA-512 algorithm: "+e);for(var t=l[e],r=null,i=n.util.createBuffer(),o=new Array(80),h=0;h<80;++h)o[h]=new Array(2);var d=64;switch(e){case"SHA-384":d=48;break;case"SHA-512/256":d=32;break;case"SHA-512/224":d=28}var p={algorithm:e.replace("-","").toLowerCase(),blockLength:128,digestLength:d,messageLength:0,fullMessageLength:null,messageLengthSize:16,start:function(){p.messageLength=0,p.fullMessageLength=p.messageLength128=[];for(var e=p.messageLengthSize/4,o=0;o<e;++o)p.fullMessageLength.push(0);i=n.util.createBuffer(),r=new Array(t.length);for(o=0;o<t.length;++o)r[o]=t[o].slice(0);return p}};return p.start(),p.update=function(e,t){"utf8"===t&&(e=n.util.encodeUtf8(e));var s=e.length;p.messageLength+=s,s=[s/4294967296>>>0,s>>>0];for(var a=p.fullMessageLength.length-1;a>=0;--a)p.fullMessageLength[a]+=s[1],s[1]=s[0]+(p.fullMessageLength[a]/4294967296>>>0),p.fullMessageLength[a]=p.fullMessageLength[a]>>>0,s[0]=s[1]/4294967296>>>0;return i.putBytes(e),u(r,o,i),(i.read>2048||0===i.length())&&i.compact(),p},p.digest=function(){var t=n.util.createBuffer();t.putBytes(i.bytes());var a,c=p.fullMessageLength[p.fullMessageLength.length-1]+p.messageLengthSize&p.blockLength-1;t.putBytes(s.substr(0,p.blockLength-c));for(var l=8*p.fullMessageLength[0],h=0;h<p.fullMessageLength.length-1;++h)l+=(a=8*p.fullMessageLength[h+1])/4294967296>>>0,t.putInt32(l>>>0),l=a>>>0;t.putInt32(l);var d=new Array(r.length);for(h=0;h<r.length;++h)d[h]=r[h].slice(0);u(d,o,t);var f,y=n.util.createBuffer();f="SHA-512"===e?d.length:"SHA-384"===e?d.length-2:d.length-4;for(h=0;h<f;++h)y.putInt32(d[h][0]),h===f-1&&"SHA-512/224"===e||y.putInt32(d[h][1]);return y},p};var s=null,a=!1,c=null,l=null;function u(e,t,r){for(var n,i,o,s,a,l,u,h,d,p,f,y,g,m,b,w,v,_,E,S,A,k,I,R,P,C,T,x,D,N,L,B,M,O=r.length();O>=128;){for(T=0;T<16;++T)t[T][0]=r.getInt32()>>>0,t[T][1]=r.getInt32()>>>0;for(;T<80;++T)n=(((x=(N=t[T-2])[0])>>>19|(D=N[1])<<13)^(D>>>29|x<<3)^x>>>6)>>>0,i=((x<<13|D>>>19)^(D<<3|x>>>29)^(x<<26|D>>>6))>>>0,o=(((x=(B=t[T-15])[0])>>>1|(D=B[1])<<31)^(x>>>8|D<<24)^x>>>7)>>>0,s=((x<<31|D>>>1)^(x<<24|D>>>8)^(x<<25|D>>>7))>>>0,L=t[T-7],M=t[T-16],D=i+L[1]+s+M[1],t[T][0]=n+L[0]+o+M[0]+(D/4294967296>>>0)>>>0,t[T][1]=D>>>0;for(f=e[0][0],y=e[0][1],g=e[1][0],m=e[1][1],b=e[2][0],w=e[2][1],v=e[3][0],_=e[3][1],E=e[4][0],S=e[4][1],A=e[5][0],k=e[5][1],I=e[6][0],R=e[6][1],P=e[7][0],C=e[7][1],T=0;T<80;++T)u=((E>>>14|S<<18)^(E>>>18|S<<14)^(S>>>9|E<<23))>>>0,h=(I^E&(A^I))>>>0,a=((f>>>28|y<<4)^(y>>>2|f<<30)^(y>>>7|f<<25))>>>0,l=((f<<4|y>>>28)^(y<<30|f>>>2)^(y<<25|f>>>7))>>>0,d=(f&g|b&(f^g))>>>0,p=(y&m|w&(y^m))>>>0,D=C+(((E<<18|S>>>14)^(E<<14|S>>>18)^(S<<23|E>>>9))>>>0)+((R^S&(k^R))>>>0)+c[T][1]+t[T][1],n=P+u+h+c[T][0]+t[T][0]+(D/4294967296>>>0)>>>0,i=D>>>0,o=a+d+((D=l+p)/4294967296>>>0)>>>0,s=D>>>0,P=I,C=R,I=A,R=k,A=E,k=S,E=v+n+((D=_+i)/4294967296>>>0)>>>0,S=D>>>0,v=b,_=w,b=g,w=m,g=f,m=y,f=n+o+((D=i+s)/4294967296>>>0)>>>0,y=D>>>0;D=e[0][1]+y,e[0][0]=e[0][0]+f+(D/4294967296>>>0)>>>0,e[0][1]=D>>>0,D=e[1][1]+m,e[1][0]=e[1][0]+g+(D/4294967296>>>0)>>>0,e[1][1]=D>>>0,D=e[2][1]+w,e[2][0]=e[2][0]+b+(D/4294967296>>>0)>>>0,e[2][1]=D>>>0,D=e[3][1]+_,e[3][0]=e[3][0]+v+(D/4294967296>>>0)>>>0,e[3][1]=D>>>0,D=e[4][1]+S,e[4][0]=e[4][0]+E+(D/4294967296>>>0)>>>0,e[4][1]=D>>>0,D=e[5][1]+k,e[5][0]=e[5][0]+A+(D/4294967296>>>0)>>>0,e[5][1]=D>>>0,D=e[6][1]+R,e[6][0]=e[6][0]+I+(D/4294967296>>>0)>>>0,e[6][1]=D>>>0,D=e[7][1]+C,e[7][0]=e[7][0]+P+(D/4294967296>>>0)>>>0,e[7][1]=D>>>0,O-=128}}},3877:(e,t,r)=>{var n=r(392),i=r(5754),o=e.exports=n.util=n.util||{};function s(e){if(8!==e&&16!==e&&24!==e&&32!==e)throw new Error("Only 8, 16, 24, or 32 bits supported: "+e)}function a(e){if(this.data="",this.read=0,"string"===typeof e)this.data=e;else if(o.isArrayBuffer(e)||o.isArrayBufferView(e))if("undefined"!==typeof Buffer&&e instanceof Buffer)this.data=e.toString("binary");else{var t=new Uint8Array(e);try{this.data=String.fromCharCode.apply(null,t)}catch(n){for(var r=0;r<t.length;++r)this.putByte(t[r])}}else(e instanceof a||"object"===typeof e&&"string"===typeof e.data&&"number"===typeof e.read)&&(this.data=e.data,this.read=e.read);this._constructedStringLength=0}!function(){if("undefined"!==typeof process&&process.nextTick&&!process.browser)return o.nextTick=process.nextTick,void("function"===typeof setImmediate?o.setImmediate=setImmediate:o.setImmediate=o.nextTick);if("function"===typeof setImmediate)return o.setImmediate=function(){return setImmediate.apply(void 0,arguments)},void(o.nextTick=function(e){return setImmediate(e)});if(o.setImmediate=function(e){setTimeout(e,0)},"undefined"!==typeof window&&"function"===typeof window.postMessage){var e="forge.setImmediate",t=[];o.setImmediate=function(r){t.push(r),1===t.length&&window.postMessage(e,"*")},window.addEventListener("message",(function(r){if(r.source===window&&r.data===e){r.stopPropagation();var n=t.slice();t.length=0,n.forEach((function(e){e()}))}}),!0)}if("undefined"!==typeof MutationObserver){var r=Date.now(),n=!0,i=document.createElement("div");t=[];new MutationObserver((function(){var e=t.slice();t.length=0,e.forEach((function(e){e()}))})).observe(i,{attributes:!0});var s=o.setImmediate;o.setImmediate=function(e){Date.now()-r>15?(r=Date.now(),s(e)):(t.push(e),1===t.length&&i.setAttribute("a",n=!n))}}o.nextTick=o.setImmediate}(),o.isNodejs="undefined"!==typeof process&&process.versions&&process.versions.node,o.globalScope=o.isNodejs?r.g:"undefined"===typeof self?window:self,o.isArray=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},o.isArrayBuffer=function(e){return"undefined"!==typeof ArrayBuffer&&e instanceof ArrayBuffer},o.isArrayBufferView=function(e){return e&&o.isArrayBuffer(e.buffer)&&void 0!==e.byteLength},o.ByteBuffer=a,o.ByteStringBuffer=a;o.ByteStringBuffer.prototype._optimizeConstructedString=function(e){this._constructedStringLength+=e,this._constructedStringLength>4096&&(this.data.substr(0,1),this._constructedStringLength=0)},o.ByteStringBuffer.prototype.length=function(){return this.data.length-this.read},o.ByteStringBuffer.prototype.isEmpty=function(){return this.length()<=0},o.ByteStringBuffer.prototype.putByte=function(e){return this.putBytes(String.fromCharCode(e))},o.ByteStringBuffer.prototype.fillWithByte=function(e,t){e=String.fromCharCode(e);for(var r=this.data;t>0;)1&t&&(r+=e),(t>>>=1)>0&&(e+=e);return this.data=r,this._optimizeConstructedString(t),this},o.ByteStringBuffer.prototype.putBytes=function(e){return this.data+=e,this._optimizeConstructedString(e.length),this},o.ByteStringBuffer.prototype.putString=function(e){return this.putBytes(o.encodeUtf8(e))},o.ByteStringBuffer.prototype.putInt16=function(e){return this.putBytes(String.fromCharCode(e>>8&255)+String.fromCharCode(255&e))},o.ByteStringBuffer.prototype.putInt24=function(e){return this.putBytes(String.fromCharCode(e>>16&255)+String.fromCharCode(e>>8&255)+String.fromCharCode(255&e))},o.ByteStringBuffer.prototype.putInt32=function(e){return this.putBytes(String.fromCharCode(e>>24&255)+String.fromCharCode(e>>16&255)+String.fromCharCode(e>>8&255)+String.fromCharCode(255&e))},o.ByteStringBuffer.prototype.putInt16Le=function(e){return this.putBytes(String.fromCharCode(255&e)+String.fromCharCode(e>>8&255))},o.ByteStringBuffer.prototype.putInt24Le=function(e){return this.putBytes(String.fromCharCode(255&e)+String.fromCharCode(e>>8&255)+String.fromCharCode(e>>16&255))},o.ByteStringBuffer.prototype.putInt32Le=function(e){return this.putBytes(String.fromCharCode(255&e)+String.fromCharCode(e>>8&255)+String.fromCharCode(e>>16&255)+String.fromCharCode(e>>24&255))},o.ByteStringBuffer.prototype.putInt=function(e,t){s(t);var r="";do{t-=8,r+=String.fromCharCode(e>>t&255)}while(t>0);return this.putBytes(r)},o.ByteStringBuffer.prototype.putSignedInt=function(e,t){return e<0&&(e+=2<<t-1),this.putInt(e,t)},o.ByteStringBuffer.prototype.putBuffer=function(e){return this.putBytes(e.getBytes())},o.ByteStringBuffer.prototype.getByte=function(){return this.data.charCodeAt(this.read++)},o.ByteStringBuffer.prototype.getInt16=function(){var e=this.data.charCodeAt(this.read)<<8^this.data.charCodeAt(this.read+1);return this.read+=2,e},o.ByteStringBuffer.prototype.getInt24=function(){var e=this.data.charCodeAt(this.read)<<16^this.data.charCodeAt(this.read+1)<<8^this.data.charCodeAt(this.read+2);return this.read+=3,e},o.ByteStringBuffer.prototype.getInt32=function(){var e=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,e},o.ByteStringBuffer.prototype.getInt16Le=function(){var e=this.data.charCodeAt(this.read)^this.data.charCodeAt(this.read+1)<<8;return this.read+=2,e},o.ByteStringBuffer.prototype.getInt24Le=function(){var e=this.data.charCodeAt(this.read)^this.data.charCodeAt(this.read+1)<<8^this.data.charCodeAt(this.read+2)<<16;return this.read+=3,e},o.ByteStringBuffer.prototype.getInt32Le=function(){var e=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,e},o.ByteStringBuffer.prototype.getInt=function(e){s(e);var t=0;do{t=(t<<8)+this.data.charCodeAt(this.read++),e-=8}while(e>0);return t},o.ByteStringBuffer.prototype.getSignedInt=function(e){var t=this.getInt(e),r=2<<e-2;return t>=r&&(t-=r<<1),t},o.ByteStringBuffer.prototype.getBytes=function(e){var t;return e?(e=Math.min(this.length(),e),t=this.data.slice(this.read,this.read+e),this.read+=e):0===e?t="":(t=0===this.read?this.data:this.data.slice(this.read),this.clear()),t},o.ByteStringBuffer.prototype.bytes=function(e){return"undefined"===typeof e?this.data.slice(this.read):this.data.slice(this.read,this.read+e)},o.ByteStringBuffer.prototype.at=function(e){return this.data.charCodeAt(this.read+e)},o.ByteStringBuffer.prototype.setAt=function(e,t){return this.data=this.data.substr(0,this.read+e)+String.fromCharCode(t)+this.data.substr(this.read+e+1),this},o.ByteStringBuffer.prototype.last=function(){return this.data.charCodeAt(this.data.length-1)},o.ByteStringBuffer.prototype.copy=function(){var e=o.createBuffer(this.data);return e.read=this.read,e},o.ByteStringBuffer.prototype.compact=function(){return this.read>0&&(this.data=this.data.slice(this.read),this.read=0),this},o.ByteStringBuffer.prototype.clear=function(){return this.data="",this.read=0,this},o.ByteStringBuffer.prototype.truncate=function(e){var t=Math.max(0,this.length()-e);return this.data=this.data.substr(this.read,t),this.read=0,this},o.ByteStringBuffer.prototype.toHex=function(){for(var e="",t=this.read;t<this.data.length;++t){var r=this.data.charCodeAt(t);r<16&&(e+="0"),e+=r.toString(16)}return e},o.ByteStringBuffer.prototype.toString=function(){return o.decodeUtf8(this.bytes())},o.DataBuffer=function(e,t){t=t||{},this.read=t.readOffset||0,this.growSize=t.growSize||1024;var r=o.isArrayBuffer(e),n=o.isArrayBufferView(e);if(r||n)return this.data=r?new DataView(e):new DataView(e.buffer,e.byteOffset,e.byteLength),void(this.write="writeOffset"in t?t.writeOffset:this.data.byteLength);this.data=new DataView(new ArrayBuffer(0)),this.write=0,null!==e&&void 0!==e&&this.putBytes(e),"writeOffset"in t&&(this.write=t.writeOffset)},o.DataBuffer.prototype.length=function(){return this.write-this.read},o.DataBuffer.prototype.isEmpty=function(){return this.length()<=0},o.DataBuffer.prototype.accommodate=function(e,t){if(this.length()>=e)return this;t=Math.max(t||this.growSize,e);var r=new Uint8Array(this.data.buffer,this.data.byteOffset,this.data.byteLength),n=new Uint8Array(this.length()+t);return n.set(r),this.data=new DataView(n.buffer),this},o.DataBuffer.prototype.putByte=function(e){return this.accommodate(1),this.data.setUint8(this.write++,e),this},o.DataBuffer.prototype.fillWithByte=function(e,t){this.accommodate(t);for(var r=0;r<t;++r)this.data.setUint8(e);return this},o.DataBuffer.prototype.putBytes=function(e,t){if(o.isArrayBufferView(e)){var r=(n=new Uint8Array(e.buffer,e.byteOffset,e.byteLength)).byteLength-n.byteOffset;return this.accommodate(r),new Uint8Array(this.data.buffer,this.write).set(n),this.write+=r,this}if(o.isArrayBuffer(e)){var n=new Uint8Array(e);return this.accommodate(n.byteLength),new Uint8Array(this.data.buffer).set(n,this.write),this.write+=n.byteLength,this}if(e instanceof o.DataBuffer||"object"===typeof e&&"number"===typeof e.read&&"number"===typeof e.write&&o.isArrayBufferView(e.data)){n=new Uint8Array(e.data.byteLength,e.read,e.length());return this.accommodate(n.byteLength),new Uint8Array(e.data.byteLength,this.write).set(n),this.write+=n.byteLength,this}if(e instanceof o.ByteStringBuffer&&(e=e.data,t="binary"),t=t||"binary","string"===typeof e){var i;if("hex"===t)return this.accommodate(Math.ceil(e.length/2)),i=new Uint8Array(this.data.buffer,this.write),this.write+=o.binary.hex.decode(e,i,this.write),this;if("base64"===t)return this.accommodate(3*Math.ceil(e.length/4)),i=new Uint8Array(this.data.buffer,this.write),this.write+=o.binary.base64.decode(e,i,this.write),this;if("utf8"===t&&(e=o.encodeUtf8(e),t="binary"),"binary"===t||"raw"===t)return this.accommodate(e.length),i=new Uint8Array(this.data.buffer,this.write),this.write+=o.binary.raw.decode(i),this;if("utf16"===t)return this.accommodate(2*e.length),i=new Uint16Array(this.data.buffer,this.write),this.write+=o.text.utf16.encode(i),this;throw new Error("Invalid encoding: "+t)}throw Error("Invalid parameter: "+e)},o.DataBuffer.prototype.putBuffer=function(e){return this.putBytes(e),e.clear(),this},o.DataBuffer.prototype.putString=function(e){return this.putBytes(e,"utf16")},o.DataBuffer.prototype.putInt16=function(e){return this.accommodate(2),this.data.setInt16(this.write,e),this.write+=2,this},o.DataBuffer.prototype.putInt24=function(e){return this.accommodate(3),this.data.setInt16(this.write,e>>8&65535),this.data.setInt8(this.write,e>>16&255),this.write+=3,this},o.DataBuffer.prototype.putInt32=function(e){return this.accommodate(4),this.data.setInt32(this.write,e),this.write+=4,this},o.DataBuffer.prototype.putInt16Le=function(e){return this.accommodate(2),this.data.setInt16(this.write,e,!0),this.write+=2,this},o.DataBuffer.prototype.putInt24Le=function(e){return this.accommodate(3),this.data.setInt8(this.write,e>>16&255),this.data.setInt16(this.write,e>>8&65535,!0),this.write+=3,this},o.DataBuffer.prototype.putInt32Le=function(e){return this.accommodate(4),this.data.setInt32(this.write,e,!0),this.write+=4,this},o.DataBuffer.prototype.putInt=function(e,t){s(t),this.accommodate(t/8);do{t-=8,this.data.setInt8(this.write++,e>>t&255)}while(t>0);return this},o.DataBuffer.prototype.putSignedInt=function(e,t){return s(t),this.accommodate(t/8),e<0&&(e+=2<<t-1),this.putInt(e,t)},o.DataBuffer.prototype.getByte=function(){return this.data.getInt8(this.read++)},o.DataBuffer.prototype.getInt16=function(){var e=this.data.getInt16(this.read);return this.read+=2,e},o.DataBuffer.prototype.getInt24=function(){var e=this.data.getInt16(this.read)<<8^this.data.getInt8(this.read+2);return this.read+=3,e},o.DataBuffer.prototype.getInt32=function(){var e=this.data.getInt32(this.read);return this.read+=4,e},o.DataBuffer.prototype.getInt16Le=function(){var e=this.data.getInt16(this.read,!0);return this.read+=2,e},o.DataBuffer.prototype.getInt24Le=function(){var e=this.data.getInt8(this.read)^this.data.getInt16(this.read+1,!0)<<8;return this.read+=3,e},o.DataBuffer.prototype.getInt32Le=function(){var e=this.data.getInt32(this.read,!0);return this.read+=4,e},o.DataBuffer.prototype.getInt=function(e){s(e);var t=0;do{t=(t<<8)+this.data.getInt8(this.read++),e-=8}while(e>0);return t},o.DataBuffer.prototype.getSignedInt=function(e){var t=this.getInt(e),r=2<<e-2;return t>=r&&(t-=r<<1),t},o.DataBuffer.prototype.getBytes=function(e){var t;return e?(e=Math.min(this.length(),e),t=this.data.slice(this.read,this.read+e),this.read+=e):0===e?t="":(t=0===this.read?this.data:this.data.slice(this.read),this.clear()),t},o.DataBuffer.prototype.bytes=function(e){return"undefined"===typeof e?this.data.slice(this.read):this.data.slice(this.read,this.read+e)},o.DataBuffer.prototype.at=function(e){return this.data.getUint8(this.read+e)},o.DataBuffer.prototype.setAt=function(e,t){return this.data.setUint8(e,t),this},o.DataBuffer.prototype.last=function(){return this.data.getUint8(this.write-1)},o.DataBuffer.prototype.copy=function(){return new o.DataBuffer(this)},o.DataBuffer.prototype.compact=function(){if(this.read>0){var e=new Uint8Array(this.data.buffer,this.read),t=new Uint8Array(e.byteLength);t.set(e),this.data=new DataView(t),this.write-=this.read,this.read=0}return this},o.DataBuffer.prototype.clear=function(){return this.data=new DataView(new ArrayBuffer(0)),this.read=this.write=0,this},o.DataBuffer.prototype.truncate=function(e){return this.write=Math.max(0,this.length()-e),this.read=Math.min(this.read,this.write),this},o.DataBuffer.prototype.toHex=function(){for(var e="",t=this.read;t<this.data.byteLength;++t){var r=this.data.getUint8(t);r<16&&(e+="0"),e+=r.toString(16)}return e},o.DataBuffer.prototype.toString=function(e){var t=new Uint8Array(this.data,this.read,this.length());if("binary"===(e=e||"utf8")||"raw"===e)return o.binary.raw.encode(t);if("hex"===e)return o.binary.hex.encode(t);if("base64"===e)return o.binary.base64.encode(t);if("utf8"===e)return o.text.utf8.decode(t);if("utf16"===e)return o.text.utf16.decode(t);throw new Error("Invalid encoding: "+e)},o.createBuffer=function(e,t){return t=t||"raw",void 0!==e&&"utf8"===t&&(e=o.encodeUtf8(e)),new o.ByteBuffer(e)},o.fillString=function(e,t){for(var r="";t>0;)1&t&&(r+=e),(t>>>=1)>0&&(e+=e);return r},o.xorBytes=function(e,t,r){for(var n="",i="",o="",s=0,a=0;r>0;--r,++s)i=e.charCodeAt(s)^t.charCodeAt(s),a>=10&&(n+=o,o="",a=0),o+=String.fromCharCode(i),++a;return n+=o},o.hexToBytes=function(e){var t="",r=0;for(!0&e.length&&(r=1,t+=String.fromCharCode(parseInt(e[0],16)));r<e.length;r+=2)t+=String.fromCharCode(parseInt(e.substr(r,2),16));return t},o.bytesToHex=function(e){return o.createBuffer(e).toHex()},o.int32ToBytes=function(e){return String.fromCharCode(e>>24&255)+String.fromCharCode(e>>16&255)+String.fromCharCode(e>>8&255)+String.fromCharCode(255&e)};var c="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",l=[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],u="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";o.encode64=function(e,t){for(var r,n,i,o="",s="",a=0;a<e.length;)r=e.charCodeAt(a++),n=e.charCodeAt(a++),i=e.charCodeAt(a++),o+=c.charAt(r>>2),o+=c.charAt((3&r)<<4|n>>4),isNaN(n)?o+="==":(o+=c.charAt((15&n)<<2|i>>6),o+=isNaN(i)?"=":c.charAt(63&i)),t&&o.length>t&&(s+=o.substr(0,t)+"\r\n",o=o.substr(t));return s+=o},o.decode64=function(e){e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");for(var t,r,n,i,o="",s=0;s<e.length;)t=l[e.charCodeAt(s++)-43],r=l[e.charCodeAt(s++)-43],n=l[e.charCodeAt(s++)-43],i=l[e.charCodeAt(s++)-43],o+=String.fromCharCode(t<<2|r>>4),64!==n&&(o+=String.fromCharCode((15&r)<<4|n>>2),64!==i&&(o+=String.fromCharCode((3&n)<<6|i)));return o},o.encodeUtf8=function(e){return unescape(encodeURIComponent(e))},o.decodeUtf8=function(e){return decodeURIComponent(escape(e))},o.binary={raw:{},hex:{},base64:{},base58:{},baseN:{encode:i.encode,decode:i.decode}},o.binary.raw.encode=function(e){return String.fromCharCode.apply(null,e)},o.binary.raw.decode=function(e,t,r){var n=t;n||(n=new Uint8Array(e.length));for(var i=r=r||0,o=0;o<e.length;++o)n[i++]=e.charCodeAt(o);return t?i-r:n},o.binary.hex.encode=o.bytesToHex,o.binary.hex.decode=function(e,t,r){var n=t;n||(n=new Uint8Array(Math.ceil(e.length/2)));var i=0,o=r=r||0;for(1&e.length&&(i=1,n[o++]=parseInt(e[0],16));i<e.length;i+=2)n[o++]=parseInt(e.substr(i,2),16);return t?o-r:n},o.binary.base64.encode=function(e,t){for(var r,n,i,o="",s="",a=0;a<e.byteLength;)r=e[a++],n=e[a++],i=e[a++],o+=c.charAt(r>>2),o+=c.charAt((3&r)<<4|n>>4),isNaN(n)?o+="==":(o+=c.charAt((15&n)<<2|i>>6),o+=isNaN(i)?"=":c.charAt(63&i)),t&&o.length>t&&(s+=o.substr(0,t)+"\r\n",o=o.substr(t));return s+=o},o.binary.base64.decode=function(e,t,r){var n,i,o,s,a=t;a||(a=new Uint8Array(3*Math.ceil(e.length/4))),e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");for(var c=0,u=r=r||0;c<e.length;)n=l[e.charCodeAt(c++)-43],i=l[e.charCodeAt(c++)-43],o=l[e.charCodeAt(c++)-43],s=l[e.charCodeAt(c++)-43],a[u++]=n<<2|i>>4,64!==o&&(a[u++]=(15&i)<<4|o>>2,64!==s&&(a[u++]=(3&o)<<6|s));return t?u-r:a.subarray(0,u)},o.binary.base58.encode=function(e,t){return o.binary.baseN.encode(e,u,t)},o.binary.base58.decode=function(e,t){return o.binary.baseN.decode(e,u,t)},o.text={utf8:{},utf16:{}},o.text.utf8.encode=function(e,t,r){e=o.encodeUtf8(e);var n=t;n||(n=new Uint8Array(e.length));for(var i=r=r||0,s=0;s<e.length;++s)n[i++]=e.charCodeAt(s);return t?i-r:n},o.text.utf8.decode=function(e){return o.decodeUtf8(String.fromCharCode.apply(null,e))},o.text.utf16.encode=function(e,t,r){var n=t;n||(n=new Uint8Array(2*e.length));for(var i=new Uint16Array(n.buffer),o=r=r||0,s=r,a=0;a<e.length;++a)i[s++]=e.charCodeAt(a),o+=2;return t?o-r:n},o.text.utf16.decode=function(e){return String.fromCharCode.apply(null,new Uint16Array(e.buffer))},o.deflate=function(e,t,r){if(t=o.decode64(e.deflate(o.encode64(t)).rval),r){var n=2;32&t.charCodeAt(1)&&(n=6),t=t.substring(n,t.length-4)}return t},o.inflate=function(e,t,r){var n=e.inflate(o.encode64(t)).rval;return null===n?null:o.decode64(n)};var h=function(e,t,r){if(!e)throw new Error("WebStorage not available.");var n;if(null===r?n=e.removeItem(t):(r=o.encode64(JSON.stringify(r)),n=e.setItem(t,r)),"undefined"!==typeof n&&!0!==n.rval){var i=new Error(n.error.message);throw i.id=n.error.id,i.name=n.error.name,i}},d=function(e,t){if(!e)throw new Error("WebStorage not available.");var r=e.getItem(t);if(e.init)if(null===r.rval){if(r.error){var n=new Error(r.error.message);throw n.id=r.error.id,n.name=r.error.name,n}r=null}else r=r.rval;return null!==r&&(r=JSON.parse(o.decode64(r))),r},p=function(e,t,r,n){var i=d(e,t);null===i&&(i={}),i[r]=n,h(e,t,i)},f=function(e,t,r){var n=d(e,t);return null!==n&&(n=r in n?n[r]:null),n},y=function(e,t,r){var n=d(e,t);if(null!==n&&r in n){delete n[r];var i=!0;for(var o in n){i=!1;break}i&&(n=null),h(e,t,n)}},g=function(e,t){h(e,t,null)},m=function(e,t,r){var n,i=null;"undefined"===typeof r&&(r=["web","flash"]);var o=!1,s=null;for(var a in r){n=r[a];try{if("flash"===n||"both"===n){if(null===t[0])throw new Error("Flash local storage not available.");i=e.apply(this,t),o="flash"===n}"web"!==n&&"both"!==n||(t[0]=localStorage,i=e.apply(this,t),o=!0)}catch(c){s=c}if(o)break}if(!o)throw s;return i};o.setItem=function(e,t,r,n,i){m(p,arguments,i)},o.getItem=function(e,t,r,n){return m(f,arguments,n)},o.removeItem=function(e,t,r,n){m(y,arguments,n)},o.clearItems=function(e,t,r){m(g,arguments,r)},o.isEmpty=function(e){for(var t in e)if(e.hasOwnProperty(t))return!1;return!0},o.format=function(e){for(var t,r,n=/%./g,i=0,o=[],s=0;t=n.exec(e);){(r=e.substring(s,n.lastIndex-2)).length>0&&o.push(r),s=n.lastIndex;var a=t[0][1];switch(a){case"s":case"o":i<arguments.length?o.push(arguments[1+i++]):o.push("<?>");break;case"%":o.push("%");break;default:o.push("<%"+a+"?>")}}return o.push(e.substring(s)),o.join("")},o.formatNumber=function(e,t,r,n){var i=e,o=isNaN(t=Math.abs(t))?2:t,s=void 0===r?",":r,a=void 0===n?".":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):"")},o.formatSize=function(e){return e=e>=1073741824?o.formatNumber(e/1073741824,2,".","")+" GiB":e>=1048576?o.formatNumber(e/1048576,2,".","")+" MiB":e>=1024?o.formatNumber(e/1024,0)+" KiB":o.formatNumber(e,0)+" bytes"},o.bytesFromIP=function(e){return-1!==e.indexOf(".")?o.bytesFromIPv4(e):-1!==e.indexOf(":")?o.bytesFromIPv6(e):null},o.bytesFromIPv4=function(e){if(4!==(e=e.split(".")).length)return null;for(var t=o.createBuffer(),r=0;r<e.length;++r){var n=parseInt(e[r],10);if(isNaN(n))return null;t.putByte(n)}return t.getBytes()},o.bytesFromIPv6=function(e){for(var t=0,r=2*(8-(e=e.split(":").filter((function(e){return 0===e.length&&++t,!0}))).length+t),n=o.createBuffer(),i=0;i<8;++i)if(e[i]&&0!==e[i].length){var s=o.hexToBytes(e[i]);s.length<2&&n.putByte(0),n.putBytes(s)}else n.fillWithByte(0,r),r=0;return n.getBytes()},o.bytesToIP=function(e){return 4===e.length?o.bytesToIPv4(e):16===e.length?o.bytesToIPv6(e):null},o.bytesToIPv4=function(e){if(4!==e.length)return null;for(var t=[],r=0;r<e.length;++r)t.push(e.charCodeAt(r));return t.join(".")},o.bytesToIPv6=function(e){if(16!==e.length)return null;for(var t=[],r=[],n=0,i=0;i<e.length;i+=2){for(var s=o.bytesToHex(e[i]+e[i+1]);"0"===s[0]&&"0"!==s;)s=s.substr(1);if("0"===s){var a=r[r.length-1],c=t.length;a&&c===a.end+1?(a.end=c,a.end-a.start>r[n].end-r[n].start&&(n=r.length-1)):r.push({start:c,end:c})}t.push(s)}if(r.length>0){var l=r[n];l.end-l.start>0&&(t.splice(l.start,l.end-l.start+1,""),0===l.start&&t.unshift(""),7===l.end&&t.push(""))}return t.join(":")},o.estimateCores=function(e,t){if("function"===typeof e&&(t=e,e={}),e=e||{},"cores"in o&&!e.update)return t(null,o.cores);if("undefined"!==typeof navigator&&"hardwareConcurrency"in navigator&&navigator.hardwareConcurrency>0)return o.cores=navigator.hardwareConcurrency,t(null,o.cores);if("undefined"===typeof Worker)return o.cores=1,t(null,o.cores);if("undefined"===typeof Blob)return o.cores=2,t(null,o.cores);var r=URL.createObjectURL(new Blob(["(",function(){self.addEventListener("message",(function(e){for(var t=Date.now(),r=t+4;Date.now()<r;);self.postMessage({st:t,et:r})}))}.toString(),")()"],{type:"application/javascript"}));!function e(n,i,s){if(0===i){var a=Math.floor(n.reduce((function(e,t){return e+t}),0)/n.length);return o.cores=Math.max(1,a),URL.revokeObjectURL(r),t(null,o.cores)}!function(e,t){for(var n=[],i=[],o=0;o<e;++o){var s=new Worker(r);s.addEventListener("message",(function(r){if(i.push(r.data),i.length===e){for(var o=0;o<e;++o)n[o].terminate();t(null,i)}})),n.push(s)}for(o=0;o<e;++o)n[o].postMessage(o)}(s,(function(t,r){n.push(function(e,t){for(var r=[],n=0;n<e;++n)for(var i=t[n],o=r[n]=[],s=0;s<e;++s)if(n!==s){var a=t[s];(i.st>a.st&&i.st<a.et||a.st>i.st&&a.st<i.et)&&o.push(s)}return r.reduce((function(e,t){return Math.max(e,t.length)}),0)}(s,r)),e(n,i-1,s)}))}([],5,16)}},1725:e=>{"use strict";var t=Object.getOwnPropertySymbols,r=Object.prototype.hasOwnProperty,n=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},r=0;r<10;r++)t["_"+String.fromCharCode(r)]=r;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var n={};return"abcdefghijklmnopqrst".split("").forEach((function(e){n[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},n)).join("")}catch(i){return!1}}()?Object.assign:function(e,i){for(var o,s,a=function(e){if(null===e||void 0===e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}(e),c=1;c<arguments.length;c++){for(var l in o=Object(arguments[c]))r.call(o,l)&&(a[l]=o[l]);if(t){s=t(o);for(var u=0;u<s.length;u++)n.call(o,s[u])&&(a[s[u]]=o[s[u]])}}return a}},9174:e=>{"use strict";var t=Object.prototype.hasOwnProperty,r="~";function n(){}function i(e,t,r){this.fn=e,this.context=t,this.once=r||!1}function o(e,t,n,o,s){if("function"!==typeof n)throw new TypeError("The listener must be a function");var a=new i(n,o||e,s),c=r?r+t:t;return e._events[c]?e._events[c].fn?e._events[c]=[e._events[c],a]:e._events[c].push(a):(e._events[c]=a,e._eventsCount++),e}function s(e,t){0===--e._eventsCount?e._events=new n:delete e._events[t]}function a(){this._events=new n,this._eventsCount=0}Object.create&&(n.prototype=Object.create(null),(new n).__proto__||(r=!1)),a.prototype.eventNames=function(){var e,n,i=[];if(0===this._eventsCount)return i;for(n in e=this._events)t.call(e,n)&&i.push(r?n.slice(1):n);return Object.getOwnPropertySymbols?i.concat(Object.getOwnPropertySymbols(e)):i},a.prototype.listeners=function(e){var t=r?r+e:e,n=this._events[t];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},a.prototype.listenerCount=function(e){var t=r?r+e:e,n=this._events[t];return n?n.fn?1:n.length:0},a.prototype.emit=function(e,t,n,i,o,s){var a=r?r+e:e;if(!this._events[a])return!1;var c,l,u=this._events[a],h=arguments.length;if(u.fn){switch(u.once&&this.removeListener(e,u.fn,void 0,!0),h){case 1:return u.fn.call(u.context),!0;case 2:return u.fn.call(u.context,t),!0;case 3:return u.fn.call(u.context,t,n),!0;case 4:return u.fn.call(u.context,t,n,i),!0;case 5:return u.fn.call(u.context,t,n,i,o),!0;case 6:return u.fn.call(u.context,t,n,i,o,s),!0}for(l=1,c=new Array(h-1);l<h;l++)c[l-1]=arguments[l];u.fn.apply(u.context,c)}else{var d,p=u.length;for(l=0;l<p;l++)switch(u[l].once&&this.removeListener(e,u[l].fn,void 0,!0),h){case 1:u[l].fn.call(u[l].context);break;case 2:u[l].fn.call(u[l].context,t);break;case 3:u[l].fn.call(u[l].context,t,n);break;case 4:u[l].fn.call(u[l].context,t,n,i);break;default:if(!c)for(d=1,c=new Array(h-1);d<h;d++)c[d-1]=arguments[d];u[l].fn.apply(u[l].context,c)}}return!0},a.prototype.on=function(e,t,r){return o(this,e,t,r,!1)},a.prototype.once=function(e,t,r){return o(this,e,t,r,!0)},a.prototype.removeListener=function(e,t,n,i){var o=r?r+e:e;if(!this._events[o])return this;if(!t)return s(this,o),this;var a=this._events[o];if(a.fn)a.fn!==t||i&&!a.once||n&&a.context!==n||s(this,o);else{for(var c=0,l=[],u=a.length;c<u;c++)(a[c].fn!==t||i&&!a[c].once||n&&a[c].context!==n)&&l.push(a[c]);l.length?this._events[o]=1===l.length?l[0]:l:s(this,o)}return this},a.prototype.removeAllListeners=function(e){var t;return e?(t=r?r+e:e,this._events[t]&&s(this,t)):(this._events=new n,this._eventsCount=0),this},a.prototype.off=a.prototype.removeListener,a.prototype.addListener=a.prototype.on,a.prefixed=r,a.EventEmitter=a,e.exports=a},886:(e,t,r)=>{"use strict";e.exports=r(4722)},4722:(e,t,r)=>{"use strict";var n=t;function i(){n.util._configure(),n.Writer._configure(n.BufferWriter),n.Reader._configure(n.BufferReader)}n.build="minimal",n.Writer=r(7063),n.BufferWriter=r(2815),n.Reader=r(6216),n.BufferReader=r(3557),n.util=r(3097),n.rpc=r(9994),n.roots=r(7907),n.configure=i,i()},6216:(e,t,r)=>{"use strict";e.exports=c;var n,i=r(3097),o=i.LongBits,s=i.utf8;function a(e,t){return RangeError("index out of range: "+e.pos+" + "+(t||1)+" > "+e.len)}function c(e){this.buf=e,this.pos=0,this.len=e.length}var l="undefined"!==typeof Uint8Array?function(e){if(e instanceof Uint8Array||Array.isArray(e))return new c(e);throw Error("illegal buffer")}:function(e){if(Array.isArray(e))return new c(e);throw Error("illegal buffer")},u=function(){return i.Buffer?function(e){return(c.create=function(e){return i.Buffer.isBuffer(e)?new n(e):l(e)})(e)}:l};function h(){var e=new o(0,0),t=0;if(!(this.len-this.pos>4)){for(;t<3;++t){if(this.pos>=this.len)throw a(this);if(e.lo=(e.lo|(127&this.buf[this.pos])<<7*t)>>>0,this.buf[this.pos++]<128)return e}return e.lo=(e.lo|(127&this.buf[this.pos++])<<7*t)>>>0,e}for(;t<4;++t)if(e.lo=(e.lo|(127&this.buf[this.pos])<<7*t)>>>0,this.buf[this.pos++]<128)return e;if(e.lo=(e.lo|(127&this.buf[this.pos])<<28)>>>0,e.hi=(e.hi|(127&this.buf[this.pos])>>4)>>>0,this.buf[this.pos++]<128)return e;if(t=0,this.len-this.pos>4){for(;t<5;++t)if(e.hi=(e.hi|(127&this.buf[this.pos])<<7*t+3)>>>0,this.buf[this.pos++]<128)return e}else for(;t<5;++t){if(this.pos>=this.len)throw a(this);if(e.hi=(e.hi|(127&this.buf[this.pos])<<7*t+3)>>>0,this.buf[this.pos++]<128)return e}throw Error("invalid varint encoding")}function d(e,t){return(e[t-4]|e[t-3]<<8|e[t-2]<<16|e[t-1]<<24)>>>0}function p(){if(this.pos+8>this.len)throw a(this,8);return new o(d(this.buf,this.pos+=4),d(this.buf,this.pos+=4))}c.create=u(),c.prototype._slice=i.Array.prototype.subarray||i.Array.prototype.slice,c.prototype.uint32=function(){var e=4294967295;return function(){if(e=(127&this.buf[this.pos])>>>0,this.buf[this.pos++]<128)return e;if(e=(e|(127&this.buf[this.pos])<<7)>>>0,this.buf[this.pos++]<128)return e;if(e=(e|(127&this.buf[this.pos])<<14)>>>0,this.buf[this.pos++]<128)return e;if(e=(e|(127&this.buf[this.pos])<<21)>>>0,this.buf[this.pos++]<128)return e;if(e=(e|(15&this.buf[this.pos])<<28)>>>0,this.buf[this.pos++]<128)return e;if((this.pos+=5)>this.len)throw this.pos=this.len,a(this,10);return e}}(),c.prototype.int32=function(){return 0|this.uint32()},c.prototype.sint32=function(){var e=this.uint32();return e>>>1^-(1&e)|0},c.prototype.bool=function(){return 0!==this.uint32()},c.prototype.fixed32=function(){if(this.pos+4>this.len)throw a(this,4);return d(this.buf,this.pos+=4)},c.prototype.sfixed32=function(){if(this.pos+4>this.len)throw a(this,4);return 0|d(this.buf,this.pos+=4)},c.prototype.float=function(){if(this.pos+4>this.len)throw a(this,4);var e=i.float.readFloatLE(this.buf,this.pos);return this.pos+=4,e},c.prototype.double=function(){if(this.pos+8>this.len)throw a(this,4);var e=i.float.readDoubleLE(this.buf,this.pos);return this.pos+=8,e},c.prototype.bytes=function(){var e=this.uint32(),t=this.pos,r=this.pos+e;if(r>this.len)throw a(this,e);if(this.pos+=e,Array.isArray(this.buf))return this.buf.slice(t,r);if(t===r){var n=i.Buffer;return n?n.alloc(0):new this.buf.constructor(0)}return this._slice.call(this.buf,t,r)},c.prototype.string=function(){var e=this.bytes();return s.read(e,0,e.length)},c.prototype.skip=function(e){if("number"===typeof e){if(this.pos+e>this.len)throw a(this,e);this.pos+=e}else do{if(this.pos>=this.len)throw a(this)}while(128&this.buf[this.pos++]);return this},c.prototype.skipType=function(e){switch(e){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;4!==(e=7&this.uint32());)this.skipType(e);break;case 5:this.skip(4);break;default:throw Error("invalid wire type "+e+" at offset "+this.pos)}return this},c._configure=function(e){n=e,c.create=u(),n._configure();var t=i.Long?"toLong":"toNumber";i.merge(c.prototype,{int64:function(){return h.call(this)[t](!1)},uint64:function(){return h.call(this)[t](!0)},sint64:function(){return h.call(this).zzDecode()[t](!1)},fixed64:function(){return p.call(this)[t](!0)},sfixed64:function(){return p.call(this)[t](!1)}})}},3557:(e,t,r)=>{"use strict";e.exports=o;var n=r(6216);(o.prototype=Object.create(n.prototype)).constructor=o;var i=r(3097);function o(e){n.call(this,e)}o._configure=function(){i.Buffer&&(o.prototype._slice=i.Buffer.prototype.slice)},o.prototype.string=function(){var e=this.uint32();return this.buf.utf8Slice?this.buf.utf8Slice(this.pos,this.pos=Math.min(this.pos+e,this.len)):this.buf.toString("utf-8",this.pos,this.pos=Math.min(this.pos+e,this.len))},o._configure()},7907:e=>{"use strict";e.exports={}},9994:(e,t,r)=>{"use strict";t.Service=r(4281)},4281:(e,t,r)=>{"use strict";e.exports=i;var n=r(3097);function i(e,t,r){if("function"!==typeof e)throw TypeError("rpcImpl must be a function");n.EventEmitter.call(this),this.rpcImpl=e,this.requestDelimited=Boolean(t),this.responseDelimited=Boolean(r)}(i.prototype=Object.create(n.EventEmitter.prototype)).constructor=i,i.prototype.rpcCall=function e(t,r,i,o,s){if(!o)throw TypeError("request must be specified");var a=this;if(!s)return n.asPromise(e,a,t,r,i,o);if(a.rpcImpl)try{return a.rpcImpl(t,r[a.requestDelimited?"encodeDelimited":"encode"](o).finish(),(function(e,r){if(e)return a.emit("error",e,t),s(e);if(null!==r){if(!(r instanceof i))try{r=i[a.responseDelimited?"decodeDelimited":"decode"](r)}catch(e){return a.emit("error",e,t),s(e)}return a.emit("data",r,t),s(null,r)}a.end(!0)}))}catch(c){return a.emit("error",c,t),void setTimeout((function(){s(c)}),0)}else setTimeout((function(){s(Error("already ended"))}),0)},i.prototype.end=function(e){return this.rpcImpl&&(e||this.rpcImpl(null,null,null),this.rpcImpl=null,this.emit("end").off()),this}},9351:(e,t,r)=>{"use strict";e.exports=i;var n=r(3097);function i(e,t){this.lo=e>>>0,this.hi=t>>>0}var o=i.zero=new i(0,0);o.toNumber=function(){return 0},o.zzEncode=o.zzDecode=function(){return this},o.length=function(){return 1};var s=i.zeroHash="\0\0\0\0\0\0\0\0";i.fromNumber=function(e){if(0===e)return o;var t=e<0;t&&(e=-e);var r=e>>>0,n=(e-r)/4294967296>>>0;return t&&(n=~n>>>0,r=~r>>>0,++r>4294967295&&(r=0,++n>4294967295&&(n=0))),new i(r,n)},i.from=function(e){if("number"===typeof e)return i.fromNumber(e);if(n.isString(e)){if(!n.Long)return i.fromNumber(parseInt(e,10));e=n.Long.fromString(e)}return e.low||e.high?new i(e.low>>>0,e.high>>>0):o},i.prototype.toNumber=function(e){if(!e&&this.hi>>>31){var t=1+~this.lo>>>0,r=~this.hi>>>0;return t||(r=r+1>>>0),-(t+4294967296*r)}return this.lo+4294967296*this.hi},i.prototype.toLong=function(e){return n.Long?new n.Long(0|this.lo,0|this.hi,Boolean(e)):{low:0|this.lo,high:0|this.hi,unsigned:Boolean(e)}};var a=String.prototype.charCodeAt;i.fromHash=function(e){return e===s?o:new i((a.call(e,0)|a.call(e,1)<<8|a.call(e,2)<<16|a.call(e,3)<<24)>>>0,(a.call(e,4)|a.call(e,5)<<8|a.call(e,6)<<16|a.call(e,7)<<24)>>>0)},i.prototype.toHash=function(){return String.fromCharCode(255&this.lo,this.lo>>>8&255,this.lo>>>16&255,this.lo>>>24,255&this.hi,this.hi>>>8&255,this.hi>>>16&255,this.hi>>>24)},i.prototype.zzEncode=function(){var e=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^e)>>>0,this.lo=(this.lo<<1^e)>>>0,this},i.prototype.zzDecode=function(){var e=-(1&this.lo);return this.lo=((this.lo>>>1|this.hi<<31)^e)>>>0,this.hi=(this.hi>>>1^e)>>>0,this},i.prototype.length=function(){var e=this.lo,t=(this.lo>>>28|this.hi<<4)>>>0,r=this.hi>>>24;return 0===r?0===t?e<16384?e<128?1:2:e<2097152?3:4:t<16384?t<128?5:6:t<2097152?7:8:r<128?9:10}},3097:function(e,t,r){"use strict";var n=t;function i(e,t,r){for(var n=Object.keys(t),i=0;i<n.length;++i)void 0!==e[n[i]]&&r||(e[n[i]]=t[n[i]]);return e}function o(e){function t(e,r){if(!(this instanceof t))return new t(e,r);Object.defineProperty(this,"message",{get:function(){return e}}),Error.captureStackTrace?Error.captureStackTrace(this,t):Object.defineProperty(this,"stack",{value:(new Error).stack||""}),r&&i(this,r)}return t.prototype=Object.create(Error.prototype,{constructor:{value:t,writable:!0,enumerable:!1,configurable:!0},name:{get:function(){return e},set:void 0,enumerable:!1,configurable:!0},toString:{value:function(){return this.name+": "+this.message},writable:!0,enumerable:!1,configurable:!0}}),t}n.asPromise=r(7206),n.base64=r(1),n.EventEmitter=r(7111),n.float=r(802),n.inquire=r(7172),n.utf8=r(3861),n.pool=r(8236),n.LongBits=r(9351),n.isNode=Boolean("undefined"!==typeof r.g&&r.g&&r.g.process&&r.g.process.versions&&r.g.process.versions.node),n.global=n.isNode&&r.g||"undefined"!==typeof window&&window||"undefined"!==typeof self&&self||this,n.emptyArray=Object.freeze?Object.freeze([]):[],n.emptyObject=Object.freeze?Object.freeze({}):{},n.isInteger=Number.isInteger||function(e){return"number"===typeof e&&isFinite(e)&&Math.floor(e)===e},n.isString=function(e){return"string"===typeof e||e instanceof String},n.isObject=function(e){return e&&"object"===typeof e},n.isset=n.isSet=function(e,t){var r=e[t];return!(null==r||!e.hasOwnProperty(t))&&("object"!==typeof r||(Array.isArray(r)?r.length:Object.keys(r).length)>0)},n.Buffer=function(){try{var e=n.inquire("buffer").Buffer;return e.prototype.utf8Write?e:null}catch(t){return null}}(),n._Buffer_from=null,n._Buffer_allocUnsafe=null,n.newBuffer=function(e){return"number"===typeof e?n.Buffer?n._Buffer_allocUnsafe(e):new n.Array(e):n.Buffer?n._Buffer_from(e):"undefined"===typeof Uint8Array?e:new Uint8Array(e)},n.Array="undefined"!==typeof Uint8Array?Uint8Array:Array,n.Long=n.global.dcodeIO&&n.global.dcodeIO.Long||n.global.Long||n.inquire("long"),n.key2Re=/^true|false|0|1$/,n.key32Re=/^-?(?:0|[1-9][0-9]*)$/,n.key64Re=/^(?:[\\x00-\\xff]{8}|-?(?:0|[1-9][0-9]*))$/,n.longToHash=function(e){return e?n.LongBits.from(e).toHash():n.LongBits.zeroHash},n.longFromHash=function(e,t){var r=n.LongBits.fromHash(e);return n.Long?n.Long.fromBits(r.lo,r.hi,t):r.toNumber(Boolean(t))},n.merge=i,n.lcFirst=function(e){return e.charAt(0).toLowerCase()+e.substring(1)},n.newError=o,n.ProtocolError=o("ProtocolError"),n.oneOfGetter=function(e){for(var t={},r=0;r<e.length;++r)t[e[r]]=1;return function(){for(var e=Object.keys(this),r=e.length-1;r>-1;--r)if(1===t[e[r]]&&void 0!==this[e[r]]&&null!==this[e[r]])return e[r]}},n.oneOfSetter=function(e){return function(t){for(var r=0;r<e.length;++r)e[r]!==t&&delete this[e[r]]}},n.toJSONOptions={longs:String,enums:String,bytes:String,json:!0},n._configure=function(){var e=n.Buffer;e?(n._Buffer_from=e.from!==Uint8Array.from&&e.from||function(t,r){return new e(t,r)},n._Buffer_allocUnsafe=e.allocUnsafe||function(t){return new e(t)}):n._Buffer_from=n._Buffer_allocUnsafe=null}},7063:(e,t,r)=>{"use strict";e.exports=h;var n,i=r(3097),o=i.LongBits,s=i.base64,a=i.utf8;function c(e,t,r){this.fn=e,this.len=t,this.next=void 0,this.val=r}function l(){}function u(e){this.head=e.head,this.tail=e.tail,this.len=e.len,this.next=e.states}function h(){this.len=0,this.head=new c(l,0,0),this.tail=this.head,this.states=null}var d=function(){return i.Buffer?function(){return(h.create=function(){return new n})()}:function(){return new h}};function p(e,t,r){t[r]=255&e}function f(e,t){this.len=e,this.next=void 0,this.val=t}function y(e,t,r){for(;e.hi;)t[r++]=127&e.lo|128,e.lo=(e.lo>>>7|e.hi<<25)>>>0,e.hi>>>=7;for(;e.lo>127;)t[r++]=127&e.lo|128,e.lo=e.lo>>>7;t[r++]=e.lo}function g(e,t,r){t[r]=255&e,t[r+1]=e>>>8&255,t[r+2]=e>>>16&255,t[r+3]=e>>>24}h.create=d(),h.alloc=function(e){return new i.Array(e)},i.Array!==Array&&(h.alloc=i.pool(h.alloc,i.Array.prototype.subarray)),h.prototype._push=function(e,t,r){return this.tail=this.tail.next=new c(e,t,r),this.len+=t,this},f.prototype=Object.create(c.prototype),f.prototype.fn=function(e,t,r){for(;e>127;)t[r++]=127&e|128,e>>>=7;t[r]=e},h.prototype.uint32=function(e){return this.len+=(this.tail=this.tail.next=new f((e>>>=0)<128?1:e<16384?2:e<2097152?3:e<268435456?4:5,e)).len,this},h.prototype.int32=function(e){return e<0?this._push(y,10,o.fromNumber(e)):this.uint32(e)},h.prototype.sint32=function(e){return this.uint32((e<<1^e>>31)>>>0)},h.prototype.uint64=function(e){var t=o.from(e);return this._push(y,t.length(),t)},h.prototype.int64=h.prototype.uint64,h.prototype.sint64=function(e){var t=o.from(e).zzEncode();return this._push(y,t.length(),t)},h.prototype.bool=function(e){return this._push(p,1,e?1:0)},h.prototype.fixed32=function(e){return this._push(g,4,e>>>0)},h.prototype.sfixed32=h.prototype.fixed32,h.prototype.fixed64=function(e){var t=o.from(e);return this._push(g,4,t.lo)._push(g,4,t.hi)},h.prototype.sfixed64=h.prototype.fixed64,h.prototype.float=function(e){return this._push(i.float.writeFloatLE,4,e)},h.prototype.double=function(e){return this._push(i.float.writeDoubleLE,8,e)};var m=i.Array.prototype.set?function(e,t,r){t.set(e,r)}:function(e,t,r){for(var n=0;n<e.length;++n)t[r+n]=e[n]};h.prototype.bytes=function(e){var t=e.length>>>0;if(!t)return this._push(p,1,0);if(i.isString(e)){var r=h.alloc(t=s.length(e));s.decode(e,r,0),e=r}return this.uint32(t)._push(m,t,e)},h.prototype.string=function(e){var t=a.length(e);return t?this.uint32(t)._push(a.write,t,e):this._push(p,1,0)},h.prototype.fork=function(){return this.states=new u(this),this.head=this.tail=new c(l,0,0),this.len=0,this},h.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 c(l,0,0),this.len=0),this},h.prototype.ldelim=function(){var e=this.head,t=this.tail,r=this.len;return this.reset().uint32(r),r&&(this.tail.next=e.next,this.tail=t,this.len+=r),this},h.prototype.finish=function(){for(var e=this.head.next,t=this.constructor.alloc(this.len),r=0;e;)e.fn(e.val,t,r),r+=e.len,e=e.next;return t},h._configure=function(e){n=e,h.create=d(),n._configure()}},2815:(e,t,r)=>{"use strict";e.exports=o;var n=r(7063);(o.prototype=Object.create(n.prototype)).constructor=o;var i=r(3097);function o(){n.call(this)}function s(e,t,r){e.length<40?i.utf8.write(e,t,r):t.utf8Write?t.utf8Write(e,r):t.write(e,r)}o._configure=function(){o.alloc=i._Buffer_allocUnsafe,o.writeBytesBuffer=i.Buffer&&i.Buffer.prototype instanceof Uint8Array&&"set"===i.Buffer.prototype.set.name?function(e,t,r){t.set(e,r)}:function(e,t,r){if(e.copy)e.copy(t,r,0,e.length);else for(var n=0;n<e.length;)t[r++]=e[n++]}},o.prototype.bytes=function(e){i.isString(e)&&(e=i._Buffer_from(e,"base64"));var t=e.length>>>0;return this.uint32(t),t&&this._push(o.writeBytesBuffer,t,e),this},o.prototype.string=function(e){var t=i.Buffer.byteLength(e);return this.uint32(t),t&&this._push(s,t,e),this},o._configure()},7896:(e,t,r)=>{const n=r(8139),i=r(5339),o=r(4052),s=r(3654),{RateLimiterClusterMaster:a,RateLimiterClusterMasterPM2:c,RateLimiterCluster:l}=r(5503),u=r(2408),h=r(8134),d=r(5e3),p=r(4066),f=r(3081),y=r(438),g=r(4819);e.exports={RateLimiterRedis:n,RateLimiterMongo:i,RateLimiterMySQL:o,RateLimiterPostgres:s,RateLimiterMemory:u,RateLimiterMemcache:h,RateLimiterClusterMaster:a,RateLimiterClusterMasterPM2:c,RateLimiterCluster:l,RLWrapperBlackAndWhite:d,RateLimiterUnion:p,RateLimiterQueue:f,BurstyRateLimiter:y,RateLimiterRes:g}},438:(e,t,r)=>{const n=r(4819);e.exports=class{constructor(e,t){this._rateLimiter=e,this._burstLimiter=t}_combineRes(e,t){return e?new n(e.remainingPoints,Math.min(e.msBeforeNext,t?t.msBeforeNext:0),e.consumedPoints,e.isFirstInDuration):null}consume(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this._rateLimiter.consume(e,t,r).catch((i=>i instanceof n?this._burstLimiter.consume(e,t,r).then((e=>Promise.resolve(this._combineRes(i,e)))).catch((e=>e instanceof n?Promise.reject(this._combineRes(i,e)):Promise.reject(e))):Promise.reject(i)))}get(e){return Promise.all([this._rateLimiter.get(e),this._burstLimiter.get(e)]).then((e=>{let[t,r]=e;return this._combineRes(t,r)}))}get points(){return this._rateLimiter.points}}},5e3:(e,t,r)=>{const n=r(4819);e.exports=class{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.limiter=e.limiter,this.blackList=e.blackList,this.whiteList=e.whiteList,this.isBlackListed=e.isBlackListed,this.isWhiteListed=e.isWhiteListed,this.runActionAnyway=e.runActionAnyway}get limiter(){return this._limiter}set limiter(e){if("undefined"===typeof e)throw new Error("limiter is not set");this._limiter=e}get runActionAnyway(){return this._runActionAnyway}set runActionAnyway(e){this._runActionAnyway="undefined"!==typeof e&&e}get blackList(){return this._blackList}set blackList(e){this._blackList=Array.isArray(e)?e:[]}get isBlackListed(){return this._isBlackListed}set isBlackListed(e){if("undefined"===typeof e&&(e=()=>!1),"function"!==typeof e)throw new Error("isBlackListed must be function");this._isBlackListed=e}get whiteList(){return this._whiteList}set whiteList(e){this._whiteList=Array.isArray(e)?e:[]}get isWhiteListed(){return this._isWhiteListed}set isWhiteListed(e){if("undefined"===typeof e&&(e=()=>!1),"function"!==typeof e)throw new Error("isWhiteListed must be function");this._isWhiteListed=e}isBlackListedSomewhere(e){return this.blackList.indexOf(e)>=0||this.isBlackListed(e)}isWhiteListedSomewhere(e){return this.whiteList.indexOf(e)>=0||this.isWhiteListed(e)}getBlackRes(){return new n(0,Number.MAX_SAFE_INTEGER,0,!1)}getWhiteRes(){return new n(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(e){let t,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;return this.isWhiteListedSomewhere(e)?t=this.resolveWhite():this.isBlackListedSomewhere(e)&&(t=this.rejectBlack()),"undefined"===typeof t?this.limiter.consume(e,r):(this.runActionAnyway&&this.limiter.consume(e,r).catch((()=>{})),t)}block(e,t){let r;return this.isWhiteListedSomewhere(e)?r=this.resolveWhite():this.isBlackListedSomewhere(e)&&(r=this.resolveBlack()),"undefined"===typeof r?this.limiter.block(e,t):(this.runActionAnyway&&this.limiter.block(e,t).catch((()=>{})),r)}penalty(e,t){let r;return this.isWhiteListedSomewhere(e)?r=this.resolveWhite():this.isBlackListedSomewhere(e)&&(r=this.resolveBlack()),"undefined"===typeof r?this.limiter.penalty(e,t):(this.runActionAnyway&&this.limiter.penalty(e,t).catch((()=>{})),r)}reward(e,t){let r;return this.isWhiteListedSomewhere(e)?r=this.resolveWhite():this.isBlackListedSomewhere(e)&&(r=this.resolveBlack()),"undefined"===typeof r?this.limiter.reward(e,t):(this.runActionAnyway&&this.limiter.reward(e,t).catch((()=>{})),r)}get(e){let t;return this.isWhiteListedSomewhere(e)?t=this.resolveWhite():this.isBlackListedSomewhere(e)&&(t=this.resolveBlack()),"undefined"===typeof t||this.runActionAnyway?this.limiter.get(e):t}delete(e){return this.limiter.delete(e)}}},8855:e=>{e.exports=class{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.points=e.points,this.duration=e.duration,this.blockDuration=e.blockDuration,this.execEvenly=e.execEvenly,this.execEvenlyMinDelayMs=e.execEvenlyMinDelayMs,this.keyPrefix=e.keyPrefix}get points(){return this._points}set points(e){this._points=e>=0?e:4}get duration(){return this._duration}set duration(e){this._duration="undefined"===typeof e?1:e}get msDuration(){return 1e3*this.duration}get blockDuration(){return this._blockDuration}set blockDuration(e){this._blockDuration="undefined"===typeof e?0:e}get msBlockDuration(){return 1e3*this.blockDuration}get execEvenly(){return this._execEvenly}set execEvenly(e){this._execEvenly="undefined"!==typeof e&&Boolean(e)}get execEvenlyMinDelayMs(){return this._execEvenlyMinDelayMs}set execEvenlyMinDelayMs(e){this._execEvenlyMinDelayMs="undefined"===typeof e?Math.ceil(this.msDuration/this.points):e}get keyPrefix(){return this._keyPrefix}set keyPrefix(e){if("undefined"===typeof e&&(e="rlflx"),"string"!==typeof e)throw new Error("keyPrefix must be string");this._keyPrefix=e}_getKeySecDuration(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return e&&e.customDuration>=0?e.customDuration:this.duration}getKey(e){return this.keyPrefix.length>0?"".concat(this.keyPrefix,":").concat(e):e}parseKey(e){return e.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'!")}}},5503:(e,t,r)=>{const n=r(1265),i=r(5539),o=r(8855),s=r(2408),a=r(4819),c="rate_limiter_flexible";let l=null;const u=function(e,t,r,n){let i;i=null===n||!0===n||!1===n?n:{remainingPoints:n.remainingPoints,msBeforeNext:n.msBeforeNext,consumedPoints:n.consumedPoints,isFirstInDuration:n.isFirstInDuration},e.send({channel:c,keyPrefix:t.keyPrefix,promiseId:t.promiseId,type:r,data:i})},h=function(e){setTimeout((()=>{this._initiated?process.send(e):"undefined"!==typeof this._promises[e.promiseId]&&h.call(this,e)}),30)},d=function(e,t,r,n,i){const o={channel:c,keyPrefix:this.keyPrefix,func:e,promiseId:t,data:{key:r,arg:n,opts:i}};this._initiated?process.send(o):h.call(this,o)},p=function(e,t){if(!t||t.channel!==c||"undefined"===typeof this._rateLimiters[t.keyPrefix])return!1;let r;switch(t.func){case"consume":r=this._rateLimiters[t.keyPrefix].consume(t.data.key,t.data.arg,t.data.opts);break;case"penalty":r=this._rateLimiters[t.keyPrefix].penalty(t.data.key,t.data.arg,t.data.opts);break;case"reward":r=this._rateLimiters[t.keyPrefix].reward(t.data.key,t.data.arg,t.data.opts);break;case"block":r=this._rateLimiters[t.keyPrefix].block(t.data.key,t.data.arg,t.data.opts);break;case"get":r=this._rateLimiters[t.keyPrefix].get(t.data.key,t.data.opts);break;case"delete":r=this._rateLimiters[t.keyPrefix].delete(t.data.key,t.data.opts);break;default:return!1}r&&r.then((r=>{u(e,t,"resolve",r)})).catch((r=>{u(e,t,"reject",r)}))},f=function(e){if(!e||e.channel!==c||e.keyPrefix!==this.keyPrefix)return!1;if(this._promises[e.promiseId]){let t;switch(clearTimeout(this._promises[e.promiseId].timeoutId),t=null===e.data||!0===e.data||!1===e.data?e.data:new a(e.data.remainingPoints,e.data.msBeforeNext,e.data.consumedPoints,e.data.isFirstInDuration),e.type){case"resolve":this._promises[e.promiseId].resolve(t);break;case"reject":this._promises[e.promiseId].reject(t);break;default:throw new Error("RateLimiterCluster: no such message type '".concat(e.type,"'"))}delete this._promises[e.promiseId]}},y=function(){return{points:this.points,duration:this.duration,blockDuration:this.blockDuration,execEvenly:this.execEvenly,execEvenlyMinDelayMs:this.execEvenlyMinDelayMs,keyPrefix:this.keyPrefix}},g=function(e,t){const r=process.hrtime();let n=r[0].toString()+r[1].toString();return"undefined"!==typeof this._promises[n]&&(n+=i.randomBytes(12).toString("base64")),this._promises[n]={resolve:e,reject:t,timeoutId:setTimeout((()=>{delete this._promises[n],t(new Error("RateLimiterCluster timeout: no answer from master in time"))}),this.timeoutMs)},n};e.exports={RateLimiterClusterMaster:class{constructor(){if(l)return l;this._rateLimiters={},n.setMaxListeners(0),n.on("message",((e,t)=>{t&&t.channel===c&&"init"===t.type?("undefined"===typeof this._rateLimiters[t.opts.keyPrefix]&&(this._rateLimiters[t.opts.keyPrefix]=new s(t.opts)),e.send({channel:c,type:"init",keyPrefix:t.opts.keyPrefix})):p.call(this,e,t)})),l=this}},RateLimiterClusterMasterPM2:class{constructor(e){if(l)return l;this._rateLimiters={},e.launchBus(((t,r)=>{r.on("process:msg",(t=>{const r=t.raw;if(r&&r.channel===c&&"init"===r.type)"undefined"===typeof this._rateLimiters[r.opts.keyPrefix]&&(this._rateLimiters[r.opts.keyPrefix]=new s(r.opts)),e.sendDataToProcessId(t.process.pm_id,{data:{},topic:c,channel:c,type:"init",keyPrefix:r.opts.keyPrefix},((e,t)=>{e&&console.log(e,t)}));else{p.call(this,{send:r=>{const n=r;n.topic=c,"undefined"===typeof n.data&&(n.data={}),e.sendDataToProcessId(t.process.pm_id,n,((e,t)=>{e&&console.log(e,t)}))}},r)}}))})),l=this}},RateLimiterCluster:class extends o{get timeoutMs(){return this._timeoutMs}set timeoutMs(e){this._timeoutMs="undefined"===typeof e?5e3:Math.abs(parseInt(e))}constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};super(e),process.setMaxListeners(0),this.timeoutMs=e.timeoutMs,this._initiated=!1,process.on("message",(e=>{e&&e.channel===c&&"init"===e.type&&e.keyPrefix===this.keyPrefix?this._initiated=!0:f.call(this,e)})),process.send({channel:c,type:"init",opts:y.call(this)}),this._promises={}}consume(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return new Promise(((n,i)=>{const o=g.call(this,n,i);d.call(this,"consume",o,e,t,r)}))}penalty(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return new Promise(((n,i)=>{const o=g.call(this,n,i);d.call(this,"penalty",o,e,t,r)}))}reward(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return new Promise(((n,i)=>{const o=g.call(this,n,i);d.call(this,"reward",o,e,t,r)}))}block(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return new Promise(((n,i)=>{const o=g.call(this,n,i);d.call(this,"block",o,e,t,r)}))}get(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new Promise(((r,n)=>{const i=g.call(this,r,n);d.call(this,"get",i,e,t)}))}delete(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new Promise(((r,n)=>{const i=g.call(this,r,n);d.call(this,"delete",i,e,t)}))}}}},8134:(e,t,r)=>{const n=r(1434),i=r(4819);e.exports=class extends n{constructor(e){super(e),this.client=e.storeClient}_getRateLimiterRes(e,t,r){const n=new i;return n.consumedPoints=parseInt(r.consumedPoints),n.isFirstInDuration=r.consumedPoints===t,n.remainingPoints=Math.max(this.points-n.consumedPoints,0),n.msBeforeNext=r.msBeforeNext,n}_upsert(e,t,r){let n=arguments.length>3&&void 0!==arguments[3]&&arguments[3],i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};return new Promise(((o,s)=>{const a=Date.now(),c=Math.floor(r/1e3);n?this.client.set(e,t,c,(r=>{r?s(r):this.client.set("".concat(e,"_expire"),c>0?a+1e3*c:-1,c,(()=>{o({consumedPoints:t,msBeforeNext:c>0?1e3*c:-1})}))})):this.client.incr(e,t,((l,u)=>{l||!1===u?this.client.add(e,t,c,((l,u)=>{if(l||!u)if("undefined"===typeof i.attemptNumber||i.attemptNumber<3){const a=Object.assign({},i);a.attemptNumber=a.attemptNumber?a.attemptNumber+1:1,this._upsert(e,t,r,n,a).then((e=>o(e))).catch((e=>s(e)))}else s(new Error("Can not add key"));else this.client.add("".concat(e,"_expire"),c>0?a+1e3*c:-1,c,(()=>{o({consumedPoints:t,msBeforeNext:c>0?1e3*c:-1})}))})):this.client.get("".concat(e,"_expire"),((e,t)=>{if(e)s(e);else{const e=!1===t?0:t,r={consumedPoints:u,msBeforeNext:e>=0?Math.max(e-a,0):-1};o(r)}}))}))}))}_get(e){return new Promise(((t,r)=>{const n=Date.now();this.client.get(e,((i,o)=>{o?this.client.get("".concat(e,"_expire"),((e,i)=>{if(e)r(e);else{const e=!1===i?0:i,r={consumedPoints:o,msBeforeNext:e>=0?Math.max(e-n,0):-1};t(r)}})):t(null)}))}))}_delete(e){return new Promise(((t,r)=>{this.client.del(e,((n,i)=>{n?r(n):!1===i?t(i):this.client.del("".concat(e,"_expire"),(e=>{e?r(e):t(i)}))}))}))}}},2408:(e,t,r)=>{const n=r(8855),i=r(4327),o=r(4819);e.exports=class extends n{constructor(){super(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}),this._memoryStorage=new i}consume(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return new Promise(((n,i)=>{const o=this.getKey(e),s=this._getKeySecDuration(r);let a=this._memoryStorage.incrby(o,t,s);if(a.remainingPoints=Math.max(this.points-a.consumedPoints,0),a.consumedPoints>this.points)this.blockDuration>0&&a.consumedPoints<=this.points+t&&(a=this._memoryStorage.set(o,a.consumedPoints,this.blockDuration)),i(a);else if(this.execEvenly&&a.msBeforeNext>0&&!a.isFirstInDuration){let e=Math.ceil(a.msBeforeNext/(a.remainingPoints+2));e<this.execEvenlyMinDelayMs&&(e=a.consumedPoints*this.execEvenlyMinDelayMs),setTimeout(n,e,a)}else n(a)}))}penalty(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const n=this.getKey(e);return new Promise((e=>{const i=this._getKeySecDuration(r),o=this._memoryStorage.incrby(n,t,i);o.remainingPoints=Math.max(this.points-o.consumedPoints,0),e(o)}))}reward(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const n=this.getKey(e);return new Promise((e=>{const i=this._getKeySecDuration(r),o=this._memoryStorage.incrby(n,-t,i);o.remainingPoints=Math.max(this.points-o.consumedPoints,0),e(o)}))}block(e,t){const r=1e3*t,n=this.points+1;return this._memoryStorage.set(this.getKey(e),n,t),Promise.resolve(new o(0,0===r?-1:r,n))}set(e,t,r){const n=1e3*(r>=0?r:this.duration);return this._memoryStorage.set(this.getKey(e),t,r),Promise.resolve(new o(0,0===n?-1:n,t))}get(e){const t=this._memoryStorage.get(this.getKey(e));return null!==t&&(t.remainingPoints=Math.max(this.points-t.consumedPoints,0)),Promise.resolve(t)}delete(e){return Promise.resolve(this._memoryStorage.delete(this.getKey(e)))}}},5339:(e,t,r)=>{const n=r(1434),i=r(4819);function o(e){try{const t=e.client?e.client:e,{version:r}=t.topology.s.options.metadata.driver,n=r.split(".").map((e=>parseInt(e)));return{major:n[0],feature:n[1],patch:n[2]}}catch(t){return{major:0,feature:0,patch:0}}}class s extends n{constructor(e){super(e),this.dbName=e.dbName,this.tableName=e.tableName,this.indexKeyPrefix=e.indexKeyPrefix,e.mongo?this.client=e.mongo:this.client=e.storeClient,"function"===typeof this.client.then?this.client.then((e=>{this.client=e,this._initCollection(),this._driverVersion=o(this.client)})):(this._initCollection(),this._driverVersion=o(this.client))}get dbName(){return this._dbName}set dbName(e){this._dbName="undefined"===typeof e?s.getDbName():e}static getDbName(){return"node-rate-limiter-flexible"}get tableName(){return this._tableName}set tableName(e){this._tableName="undefined"===typeof e?this.keyPrefix:e}get client(){return this._client}set client(e){if("undefined"===typeof e)throw new Error("mongo is not set");this._client=e}get indexKeyPrefix(){return this._indexKeyPrefix}set indexKeyPrefix(e){this._indexKeyPrefix=e||{}}_initCollection(){const e=("function"===typeof this.client.db?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(e,t,r){const n=new i;let o;return o="undefined"===typeof r.value?r:r.value,n.isFirstInDuration=o.points===t,n.consumedPoints=o.points,n.remainingPoints=Math.max(this.points-n.consumedPoints,0),n.msBeforeNext=null!==o.expire?Math.max(new Date(o.expire).getTime()-Date.now(),0):-1,n}_upsert(e,t,r){let n=arguments.length>3&&void 0!==arguments[3]&&arguments[3],i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};if(!this._collection)return Promise.reject(Error("Mongo connection is not established"));const o=i.attrs||{};let s,a;n?(s={key:e},s=Object.assign(s,o),a={$set:{key:e,points:t,expire:r>0?new Date(Date.now()+r):null}},a.$set=Object.assign(a.$set,o)):(s={$or:[{expire:{$gt:new Date}},{expire:{$eq:null}}],key:e},s=Object.assign(s,o),a={$setOnInsert:{key:e,expire:r>0?new Date(Date.now()+r):null},$inc:{points:t}},a.$setOnInsert=Object.assign(a.$setOnInsert,o));const c={upsert:!0};return this._driverVersion.major>=4||3===this._driverVersion.major&&this._driverVersion.feature>=7||this._driverVersion.feature>=6&&this._driverVersion.patch>=7?c.returnDocument="after":c.returnOriginal=!1,new Promise(((i,l)=>{this._collection.findOneAndUpdate(s,a,c).then((e=>{i(e)})).catch((s=>{if(s&&11e3===s.code){const s=Object.assign({$or:[{expire:{$lte:new Date}},{expire:{$eq:null}}],key:e},o),a={$set:Object.assign({key:e,points:t,expire:r>0?new Date(Date.now()+r):null},o)};this._collection.findOneAndUpdate(s,a,c).then((e=>{i(e)})).catch((o=>{o&&11e3===o.code?this._upsert(e,t,r,n).then((e=>i(e))).catch((e=>l(e))):l(o)}))}else l(s)}))}))}_get(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!this._collection)return Promise.reject(Error("Mongo connection is not established"));const r=t.attrs||{},n=Object.assign({key:e,$or:[{expire:{$gt:new Date}},{expire:{$eq:null}}]},r);return this._collection.findOne(n)}_delete(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!this._collection)return Promise.reject(Error("Mongo connection is not established"));const r=t.attrs||{},n=Object.assign({key:e},r);return this._collection.deleteOne(n).then((e=>e.deletedCount>0))}}e.exports=s},4052:(e,t,r)=>{const n=r(1434),i=r(4819);e.exports=class extends n{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;super(e),this.client=e.storeClient,this.clientType=e.storeType,this.dbName=e.dbName,this.tableName=e.tableName,this.clearExpiredByTimeout=e.clearExpiredByTimeout,this.tableCreated=e.tableCreated,this.tableCreated?(this.clearExpiredByTimeout&&this._clearExpiredHourAgo(),"function"===typeof t&&t()):this._createDbAndTable().then((()=>{this.tableCreated=!0,this.clearExpiredByTimeout&&this._clearExpiredHourAgo(),"function"===typeof t&&t()})).catch((e=>{if("function"!==typeof t)throw e;t(e)}))}clearExpired(e){return new Promise((t=>{this._getConnection().then((r=>{r.query("DELETE FROM ??.?? WHERE expire < ?",[this.dbName,this.tableName,e],(()=>{this._releaseConnection(r),t()}))})).catch((()=>{t()}))}))}_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(((e,t)=>{this.client.getConnection(((r,n)=>{if(r)return t(r);e(n)}))}));case"sequelize":return this.client.connectionManager.getConnection();case"knex":return this.client.client.acquireConnection();default:return Promise.resolve(this.client)}}_releaseConnection(e){switch(this.clientType){case"pool":return e.release();case"sequelize":return this.client.connectionManager.releaseConnection(e);case"knex":return this.client.client.releaseConnection(e);default:return!0}}_createDbAndTable(){return new Promise(((e,t)=>{this._getConnection().then((r=>{r.query("CREATE DATABASE IF NOT EXISTS `".concat(this.dbName,"`;"),(n=>{if(n)return this._releaseConnection(r),t(n);r.query(this._getCreateTableStmt(),(n=>{if(n)return this._releaseConnection(r),t(n);this._releaseConnection(r),e()}))}))})).catch((e=>{t(e)}))}))}_getCreateTableStmt(){return"CREATE TABLE IF NOT EXISTS `".concat(this.dbName,"`.`").concat(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(e){if("undefined"===typeof e)if("Connection"===this.client.constructor.name)e="connection";else if("Pool"===this.client.constructor.name)e="pool";else{if("Sequelize"!==this.client.constructor.name)throw new Error("storeType is not defined");e="sequelize"}this._clientType=e.toLowerCase()}get dbName(){return this._dbName}set dbName(e){this._dbName="undefined"===typeof e?"rtlmtrflx":e}get tableName(){return this._tableName}set tableName(e){this._tableName="undefined"===typeof e?this.keyPrefix:e}get tableCreated(){return this._tableCreated}set tableCreated(e){this._tableCreated="undefined"!==typeof e&&!!e}get clearExpiredByTimeout(){return this._clearExpiredByTimeout}set clearExpiredByTimeout(e){this._clearExpiredByTimeout="undefined"===typeof e||Boolean(e)}_getRateLimiterRes(e,t,r){const n=new i,[o]=r;return n.isFirstInDuration=t===o.points,n.consumedPoints=n.isFirstInDuration?t:o.points,n.remainingPoints=Math.max(this.points-n.consumedPoints,0),n.msBeforeNext=o.expire?Math.max(o.expire-Date.now(),0):-1,n}_upsertTransaction(e,t,r,n,i){return new Promise(((o,s)=>{e.query("BEGIN",(a=>{if(a)return e.rollback(),s(a);const c=Date.now(),l=n>0?c+n:null;let u,h;i?(u="INSERT INTO ??.?? VALUES (?, ?, ?)\n ON DUPLICATE KEY UPDATE \n points = ?, \n expire = ?;",h=[this.dbName,this.tableName,t,r,l,r,l]):(u="INSERT INTO ??.?? VALUES (?, ?, ?)\n ON DUPLICATE KEY UPDATE \n points = IF(expire <= ?, ?, points + (?)), \n expire = IF(expire <= ?, ?, expire);",h=[this.dbName,this.tableName,t,r,l,c,r,r,c,l]),e.query(u,h,(r=>{if(r)return e.rollback(),s(r);e.query("SELECT points, expire FROM ??.?? WHERE `key` = ?;",[this.dbName,this.tableName,t],((t,r)=>{if(t)return e.rollback(),s(t);e.query("COMMIT",(t=>{if(t)return e.rollback(),s(t);o(r)}))}))}))}))}))}_upsert(e,t,r){let n=arguments.length>3&&void 0!==arguments[3]&&arguments[3];return this.tableCreated?new Promise(((i,o)=>{this._getConnection().then((s=>{this._upsertTransaction(s,e,t,r,n).then((e=>{i(e),this._releaseConnection(s)})).catch((e=>{o(e),this._releaseConnection(s)}))})).catch((e=>{o(e)}))})):Promise.reject(Error("Table is not created yet"))}_get(e){return this.tableCreated?new Promise(((t,r)=>{this._getConnection().then((n=>{n.query("SELECT points, expire FROM ??.?? WHERE `key` = ? AND (`expire` > ? OR `expire` IS NULL)",[this.dbName,this.tableName,e,Date.now()],((e,i)=>{e?r(e):0===i.length?t(null):t(i),this._releaseConnection(n)}))})).catch((e=>{r(e)}))})):Promise.reject(Error("Table is not created yet"))}_delete(e){return this.tableCreated?new Promise(((t,r)=>{this._getConnection().then((n=>{n.query("DELETE FROM ??.?? WHERE `key` = ?",[this.dbName,this.tableName,e],((e,i)=>{e?r(e):t(i.affectedRows>0),this._releaseConnection(n)}))})).catch((e=>{r(e)}))})):Promise.reject(Error("Table is not created yet"))}}},3654:(e,t,r)=>{const n=r(1434),i=r(4819);e.exports=class extends n{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;super(e),this.client=e.storeClient,this.clientType=e.storeType,this.tableName=e.tableName,this.clearExpiredByTimeout=e.clearExpiredByTimeout,this.tableCreated=e.tableCreated,this.tableCreated?"function"===typeof t&&t():this._createTable().then((()=>{this.tableCreated=!0,this.clearExpiredByTimeout&&this._clearExpiredHourAgo(),"function"===typeof t&&t()})).catch((e=>{if("function"!==typeof t)throw e;t(e)}))}clearExpired(e){return new Promise((t=>{const r={name:"rlflx-clear-expired",text:"DELETE FROM ".concat(this.tableName," WHERE expire < $1"),values:[e]};this._query(r).then((()=>{t()})).catch((()=>{t()}))}))}_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":default: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)}}_releaseConnection(e){switch(this.clientType){case"pool":case"typeorm":default:return!0;case"sequelize":return this.client.connectionManager.releaseConnection(e);case"knex":return this.client.client.releaseConnection(e)}}_createTable(){return new Promise(((e,t)=>{this._query({text:this._getCreateTableStmt()}).then((()=>{e()})).catch((r=>{"23505"===r.code?e():t(r)}))}))}_getCreateTableStmt(){return"CREATE TABLE IF NOT EXISTS ".concat(this.tableName," ( \n key varchar(255) PRIMARY KEY,\n points integer NOT NULL DEFAULT 0,\n expire bigint\n );")}get clientType(){return this._clientType}set clientType(e){const t=this.client.constructor.name;if("undefined"===typeof e)if("Client"===t)e="client";else if("Pool"===t||"BoundPool"===t)e="pool";else{if("Sequelize"!==t)throw new Error("storeType is not defined");e="sequelize"}this._clientType=e.toLowerCase()}get tableName(){return this._tableName}set tableName(e){this._tableName="undefined"===typeof e?this.keyPrefix:e}get tableCreated(){return this._tableCreated}set tableCreated(e){this._tableCreated="undefined"!==typeof e&&!!e}get clearExpiredByTimeout(){return this._clearExpiredByTimeout}set clearExpiredByTimeout(e){this._clearExpiredByTimeout="undefined"===typeof e||Boolean(e)}_getRateLimiterRes(e,t,r){const n=new i,o=r.rows[0];return n.isFirstInDuration=t===o.points,n.consumedPoints=n.isFirstInDuration?t:o.points,n.remainingPoints=Math.max(this.points-n.consumedPoints,0),n.msBeforeNext=o.expire?Math.max(o.expire-Date.now(),0):-1,n}_query(e){const t=this.tableName.toLowerCase(),r={name:"".concat(t,":").concat(e.name),text:e.text,values:e.values};return new Promise(((e,t)=>{this._getConnection().then((n=>{n.query(r).then((t=>{e(t),this._releaseConnection(n)})).catch((e=>{t(e),this._releaseConnection(n)}))})).catch((e=>{t(e)}))}))}_upsert(e,t,r){let n=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(!this.tableCreated)return Promise.reject(Error("Table is not created yet"));const i=r>0?Date.now()+r:null,o=n?" $3 ":" CASE\n WHEN ".concat(this.tableName,".expire <= $4 THEN $3\n ELSE ").concat(this.tableName,".expire\n END ");return this._query({name:n?"rlflx-upsert-force":"rlflx-upsert",text:"\n INSERT INTO ".concat(this.tableName," VALUES ($1, $2, $3)\n ON CONFLICT(key) DO UPDATE SET\n points = CASE\n WHEN (").concat(this.tableName,".expire <= $4 OR 1=").concat(n?1:0,") THEN $2\n ELSE ").concat(this.tableName,".points + ($2)\n END,\n expire = ").concat(o,"\n RETURNING points, expire;"),values:[e,t,i,Date.now()]})}_get(e){return this.tableCreated?new Promise(((t,r)=>{this._query({name:"rlflx-get",text:"\n SELECT points, expire FROM ".concat(this.tableName," WHERE key = $1 AND (expire > $2 OR expire IS NULL);"),values:[e,Date.now()]}).then((e=>{0===e.rowCount&&(e=null),t(e)})).catch((e=>{r(e)}))})):Promise.reject(Error("Table is not created yet"))}_delete(e){return this.tableCreated?this._query({name:"rlflx-delete",text:"DELETE FROM ".concat(this.tableName," WHERE key = $1"),values:[e]}).then((e=>e.rowCount>0)):Promise.reject(Error("Table is not created yet"))}}},3081:(e,t,r)=>{const n=r(4688),i=4294967295,o="limiter";e.exports=class{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{maxQueueSize:i};this._queueLimiters={KEY_DEFAULT:new s(e,t)},this._limiterFlexible=e,this._maxQueueSize=t.maxQueueSize}getTokensRemaining(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:o;return this._queueLimiters[e]?this._queueLimiters[e].getTokensRemaining():Promise.resolve(this._limiterFlexible.points)}removeTokens(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:o;return this._queueLimiters[t]||(this._queueLimiters[t]=new s(this._limiterFlexible,{key:t,maxQueueSize:this._maxQueueSize})),this._queueLimiters[t].removeTokens(e)}};class s{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{maxQueueSize:i,key:o};this._key=t.key,this._waitTimeout=null,this._queue=[],this._limiterFlexible=e,this._maxQueueSize=t.maxQueueSize}getTokensRemaining(){return this._limiterFlexible.get(this._key).then((e=>null!==e?e.remainingPoints:this._limiterFlexible.points))}removeTokens(e){const t=this;return new Promise(((r,i)=>{e>t._limiterFlexible.points?i(new n("Requested tokens ".concat(e," exceeds maximum ").concat(t._limiterFlexible.points," tokens per interval"))):t._queue.length>0?t._queueRequest.call(t,r,i,e):t._limiterFlexible.consume(t._key,e).then((e=>{r(e.remainingPoints)})).catch((n=>{n instanceof Error?i(n):(t._queueRequest.call(t,r,i,e),null===t._waitTimeout&&(t._waitTimeout=setTimeout(t._processFIFO.bind(t),n.msBeforeNext)))}))}))}_queueRequest(e,t,r){const i=this;i._queue.length<i._maxQueueSize?i._queue.push({resolve:e,reject:t,tokens:r}):t(new n("Number of requests reached it's maximum ".concat(i._maxQueueSize)))}_processFIFO(){const e=this;if(null!==e._waitTimeout&&(clearTimeout(e._waitTimeout),e._waitTimeout=null),0===e._queue.length)return;const t=e._queue.shift();e._limiterFlexible.consume(e._key,t.tokens).then((r=>{t.resolve(r.remainingPoints),e._processFIFO.call(e)})).catch((r=>{r instanceof Error?(t.reject(r),e._processFIFO.call(e)):(e._queue.unshift(t),null===e._waitTimeout&&(e._waitTimeout=setTimeout(e._processFIFO.bind(e),r.msBeforeNext)))}))}}},8139:(e,t,r)=>{const n=r(1434),i=r(4819),o="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} ";e.exports=class extends n{constructor(e){super(e),e.redis?this.client=e.redis:this.client=e.storeClient,this._rejectIfRedisNotReady=!!e.rejectIfRedisNotReady,"function"===typeof this.client.defineCommand&&this.client.defineCommand("rlflxIncr",{numberOfKeys:1,lua:o})}_isRedisReady(){return!this._rejectIfRedisNotReady||(!this.client.status||"ready"===this.client.status)&&!("function"===typeof this.client.isReady&&!this.client.isReady())}_getRateLimiterRes(e,t,r){let[n,o]=r;Array.isArray(n)&&([,n]=n,[,o]=o);const s=new i;return s.consumedPoints=parseInt(n),s.isFirstInDuration=s.consumedPoints===t,s.remainingPoints=Math.max(this.points-s.consumedPoints,0),s.msBeforeNext=o,s}_upsert(e,t,r){let n=arguments.length>3&&void 0!==arguments[3]&&arguments[3];return new Promise(((i,s)=>{if(!this._isRedisReady())return s(new Error("Redis connection is not ready"));const a=Math.floor(r/1e3),c=this.client.multi();if(n)a>0?c.set(e,t,"EX",a):c.set(e,t),c.pttl(e).exec(((e,t)=>e?s(e):i(t)));else if(a>0){const r=function(e,t){return e?s(e):i(t)};"function"===typeof this.client.rlflxIncr?this.client.rlflxIncr(e,t,a,r):this.client.eval(o,1,e,t,a,r)}else c.incrby(e,t).pttl(e).exec(((e,t)=>e?s(e):i(t)))}))}_get(e){return new Promise(((t,r)=>{if(!this._isRedisReady())return r(new Error("Redis connection is not ready"));this.client.multi().get(e).pttl(e).exec(((e,n)=>{if(e)r(e);else{const[e]=n;if(null===e)return t(null);t(n)}}))}))}_delete(e){return new Promise(((t,r)=>{this.client.del(e,((e,n)=>{e?r(e):t(n>0)}))}))}}},4819:e=>{e.exports=class{constructor(e,t,r,n){this.remainingPoints="undefined"===typeof e?0:e,this.msBeforeNext="undefined"===typeof t?0:t,this.consumedPoints="undefined"===typeof r?0:r,this.isFirstInDuration="undefined"!==typeof n&&n}get msBeforeNext(){return this._msBeforeNext}set msBeforeNext(e){return this._msBeforeNext=e,this}get remainingPoints(){return this._remainingPoints}set remainingPoints(e){return this._remainingPoints=e,this}get consumedPoints(){return this._consumedPoints}set consumedPoints(e){return this._consumedPoints=e,this}get isFirstInDuration(){return this._isFirstInDuration}set isFirstInDuration(e){this._isFirstInDuration=Boolean(e)}_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()}}},1434:(e,t,r)=>{const n=r(8855),i=r(6704),o=r(4819);e.exports=class extends n{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};super(e),this.inMemoryBlockOnConsumed=e.inMemoryBlockOnConsumed||e.inmemoryBlockOnConsumed,this.inMemoryBlockDuration=e.inMemoryBlockDuration||e.inmemoryBlockDuration,this.insuranceLimiter=e.insuranceLimiter,this._inMemoryBlockedKeys=new i}get client(){return this._client}set client(e){if("undefined"===typeof e)throw new Error("storeClient is not set");this._client=e}_afterConsume(e,t,r,n,i){let o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};const s=this._getRateLimiterRes(r,n,i);if(this.inMemoryBlockOnConsumed>0&&!(this.inMemoryBlockDuration>0)&&s.consumedPoints>=this.inMemoryBlockOnConsumed)return this._inMemoryBlockedKeys.addMs(r,s.msBeforeNext),s.consumedPoints>this.points?t(s):e(s);if(s.consumedPoints>this.points){let e=Promise.resolve();this.blockDuration>0&&s.consumedPoints<=this.points+n&&(s.msBeforeNext=this.msBlockDuration,e=this._block(r,s.consumedPoints,this.msBlockDuration,o)),this.inMemoryBlockOnConsumed>0&&s.consumedPoints>=this.inMemoryBlockOnConsumed&&(this._inMemoryBlockedKeys.add(r,this.inMemoryBlockDuration),s.msBeforeNext=this.msInMemoryBlockDuration),e.then((()=>{t(s)})).catch((e=>{t(e)}))}else if(this.execEvenly&&s.msBeforeNext>0&&!s.isFirstInDuration){let t=Math.ceil(s.msBeforeNext/(s.remainingPoints+2));t<this.execEvenlyMinDelayMs&&(t=s.consumedPoints*this.execEvenlyMinDelayMs),setTimeout(e,t,s)}else e(s)}_handleError(e,t,r,i,o){let s=arguments.length>5&&void 0!==arguments[5]&&arguments[5],a=arguments.length>6&&void 0!==arguments[6]?arguments[6]:{};this.insuranceLimiter instanceof n?this.insuranceLimiter[t](o,s,a).then((e=>{r(e)})).catch((e=>{i(e)})):i(e)}get _inmemoryBlockedKeys(){return this._inMemoryBlockedKeys}getInmemoryBlockMsBeforeExpire(e){return this.getInMemoryBlockMsBeforeExpire(e)}get inmemoryBlockOnConsumed(){return this.inMemoryBlockOnConsumed}set inmemoryBlockOnConsumed(e){this.inMemoryBlockOnConsumed=e}get inmemoryBlockDuration(){return this.inMemoryBlockDuration}set inmemoryBlockDuration(e){this.inMemoryBlockDuration=e}get msInmemoryBlockDuration(){return 1e3*this.inMemoryBlockDuration}getInMemoryBlockMsBeforeExpire(e){return this.inMemoryBlockOnConsumed>0?this._inMemoryBlockedKeys.msBeforeExpire(e):0}get inMemoryBlockOnConsumed(){return this._inMemoryBlockOnConsumed}set inMemoryBlockOnConsumed(e){if(this._inMemoryBlockOnConsumed=e?parseInt(e):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(e){if(this._inMemoryBlockDuration=e?parseInt(e):0,this.inMemoryBlockDuration>0&&0===this.inMemoryBlockOnConsumed)throw new Error("inMemoryBlockOnConsumed option must be set up")}get msInMemoryBlockDuration(){return 1e3*this._inMemoryBlockDuration}get insuranceLimiter(){return this._insuranceLimiter}set insuranceLimiter(e){if("undefined"!==typeof e&&!(e instanceof n))throw new Error("insuranceLimiter must be instance of RateLimiterAbstract");this._insuranceLimiter=e,this._insuranceLimiter&&(this._insuranceLimiter.blockDuration=this.blockDuration,this._insuranceLimiter.execEvenly=this.execEvenly)}block(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const n=1e3*t;return this._block(this.getKey(e),this.points+1,n,r)}set(e,t,r){let n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};const i=1e3*(r>=0?r:this.duration);return this._block(this.getKey(e),t,i,n)}consume(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return new Promise(((n,i)=>{const s=this.getKey(e),a=this.getInMemoryBlockMsBeforeExpire(s);if(a>0)return i(new o(0,a));this._upsert(s,t,1e3*this._getKeySecDuration(r),!1,r).then((e=>{this._afterConsume(n,i,s,t,e)})).catch((o=>{this._handleError(o,"consume",n,i,e,t,r)}))}))}penalty(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const n=this.getKey(e);return new Promise(((i,o)=>{this._upsert(n,t,1e3*this._getKeySecDuration(r),!1,r).then((e=>{i(this._getRateLimiterRes(n,t,e))})).catch((n=>{this._handleError(n,"penalty",i,o,e,t,r)}))}))}reward(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const n=this.getKey(e);return new Promise(((i,o)=>{this._upsert(n,-t,1e3*this._getKeySecDuration(r),!1,r).then((e=>{i(this._getRateLimiterRes(n,-t,e))})).catch((n=>{this._handleError(n,"reward",i,o,e,t,r)}))}))}get(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const r=this.getKey(e);return new Promise(((n,i)=>{this._get(r,t).then((e=>{n(null===e||"undefined"===typeof e?null:this._getRateLimiterRes(r,0,e))})).catch((r=>{this._handleError(r,"get",n,i,e,t)}))}))}delete(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const r=this.getKey(e);return new Promise(((n,i)=>{this._delete(r,t).then((e=>{this._inMemoryBlockedKeys.delete(r),n(e)})).catch((r=>{this._handleError(r,"delete",n,i,e,t)}))}))}deleteInMemoryBlockedAll(){this._inMemoryBlockedKeys.delete()}_getRateLimiterRes(e,t,r){throw new Error("You have to implement the method '_getRateLimiterRes'!")}_block(e,t,r){let n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return new Promise(((i,s)=>{this._upsert(e,t,r,!0,n).then((()=>{i(new o(0,r>0?r:-1,t))})).catch((t=>{this._handleError(t,"block",i,s,this.parseKey(e),r/1e3,n)}))}))}_get(e){throw new Error("You have to implement the method '_get'!")}_delete(e){throw new Error("You have to implement the method '_delete'!")}_upsert(e,t,r){throw new Error("You have to implement the method '_upsert'!")}}},4066:(e,t,r)=>{const n=r(8855);e.exports=class{constructor(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];if(t.length<1)throw new Error("RateLimiterUnion: at least one limiter have to be passed");t.forEach((e=>{if(!(e instanceof n))throw new Error("RateLimiterUnion: all limiters have to be instance of RateLimiterAbstract")})),this._limiters=t}consume(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;return new Promise(((r,n)=>{const i=[];this._limiters.forEach((r=>{i.push(r.consume(e,t).catch((e=>({rejected:!0,rej:e}))))})),Promise.all(i).then((e=>{const t={};let i=!1;e.forEach((e=>{!0===e.rejected&&(i=!0)}));for(let r=0;r<e.length;r++)i&&!0===e[r].rejected?t[this._limiters[r].keyPrefix]=e[r].rej:i||(t[this._limiters[r].keyPrefix]=e[r]);i?n(t):r(t)}))}))}}},9682:e=>{e.exports=class{constructor(){this._keys={},this._addedKeysAmount=0}collectExpired(){const e=Date.now();Object.keys(this._keys).forEach((t=>{this._keys[t]<=e&&delete this._keys[t]})),this._addedKeysAmount=Object.keys(this._keys).length}add(e,t){this.addMs(e,1e3*t)}addMs(e,t){this._keys[e]=Date.now()+t,this._addedKeysAmount++,this._addedKeysAmount>999&&this.collectExpired()}msBeforeExpire(e){const t=this._keys[e];if(t&&t>=Date.now()){this.collectExpired();const e=Date.now();return t>=e?t-e:0}return 0}delete(e){e?delete this._keys[e]:Object.keys(this._keys).forEach((e=>{delete this._keys[e]}))}}},6704:(e,t,r)=>{const n=r(9682);e.exports=n},4327:(e,t,r)=>{const n=r(9359),i=r(4819);e.exports=class{constructor(){this._storage={}}incrby(e,t,r){if(this._storage[e]){const n=this._storage[e].expiresAt?this._storage[e].expiresAt.getTime()-(new Date).getTime():-1;return 0!==n?(this._storage[e].value=this._storage[e].value+t,new i(0,n,this._storage[e].value,!1)):this.set(e,t,r)}return this.set(e,t,r)}set(e,t,r){const o=1e3*r;return this._storage[e]&&this._storage[e].timeoutId&&clearTimeout(this._storage[e].timeoutId),this._storage[e]=new n(t,o>0?new Date(Date.now()+o):null),o>0&&(this._storage[e].timeoutId=setTimeout((()=>{delete this._storage[e]}),o),this._storage[e].timeoutId.unref&&this._storage[e].timeoutId.unref()),new i(0,0===o?-1:o,this._storage[e].value,!0)}get(e){if(this._storage[e]){const t=this._storage[e].expiresAt?this._storage[e].expiresAt.getTime()-(new Date).getTime():-1;return new i(0,t,this._storage[e].value,!1)}return null}delete(e){return!!this._storage[e]&&(this._storage[e].timeoutId&&clearTimeout(this._storage[e].timeoutId),delete this._storage[e],!0)}}},9359:e=>{e.exports=class{constructor(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;this.value=e,this.expiresAt=t,this.timeoutId=r}get value(){return this._value}set value(e){this._value=parseInt(e)}get expiresAt(){return this._expiresAt}set expiresAt(e){e instanceof Date||!Number.isInteger(e)||(e=new Date(e)),this._expiresAt=e}get timeoutId(){return this._timeoutId}set timeoutId(e){this._timeoutId=e}}},4688:e=>{e.exports=class extends Error{constructor(e,t){super(),Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor),this.name="CustomError",this.message=e,t&&(this.extra=t)}}},4463:(e,t,r)=>{"use strict";var n=r(2791),i=r(1725),o=r(5296);function s(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,r=1;r<arguments.length;r++)t+="&args[]="+encodeURIComponent(arguments[r]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}if(!n)throw Error(s(227));var a=new Set,c={};function l(e,t){u(e,t),u(e+"Capture",t)}function u(e,t){for(c[e]=t,e=0;e<t.length;e++)a.add(t[e])}var h=!("undefined"===typeof window||"undefined"===typeof window.document||"undefined"===typeof window.document.createElement),d=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,p=Object.prototype.hasOwnProperty,f={},y={};function g(e,t,r,n,i,o,s){this.acceptsBooleans=2===t||3===t||4===t,this.attributeName=n,this.attributeNamespace=i,this.mustUseProperty=r,this.propertyName=e,this.type=t,this.sanitizeURL=o,this.removeEmptyString=s}var m={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach((function(e){m[e]=new g(e,0,!1,e,null,!1,!1)})),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach((function(e){var t=e[0];m[t]=new g(t,1,!1,e[1],null,!1,!1)})),["contentEditable","draggable","spellCheck","value"].forEach((function(e){m[e]=new g(e,2,!1,e.toLowerCase(),null,!1,!1)})),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach((function(e){m[e]=new g(e,2,!1,e,null,!1,!1)})),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach((function(e){m[e]=new g(e,3,!1,e.toLowerCase(),null,!1,!1)})),["checked","multiple","muted","selected"].forEach((function(e){m[e]=new g(e,3,!0,e,null,!1,!1)})),["capture","download"].forEach((function(e){m[e]=new g(e,4,!1,e,null,!1,!1)})),["cols","rows","size","span"].forEach((function(e){m[e]=new g(e,6,!1,e,null,!1,!1)})),["rowSpan","start"].forEach((function(e){m[e]=new g(e,5,!1,e.toLowerCase(),null,!1,!1)}));var b=/[\-:]([a-z])/g;function w(e){return e[1].toUpperCase()}function v(e,t,r,n){var i=m.hasOwnProperty(t)?m[t]:null;(null!==i?0===i.type:!n&&(2<t.length&&("o"===t[0]||"O"===t[0])&&("n"===t[1]||"N"===t[1])))||(function(e,t,r,n){if(null===t||"undefined"===typeof t||function(e,t,r,n){if(null!==r&&0===r.type)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return!n&&(null!==r?!r.acceptsBooleans:"data-"!==(e=e.toLowerCase().slice(0,5))&&"aria-"!==e);default:return!1}}(e,t,r,n))return!0;if(n)return!1;if(null!==r)switch(r.type){case 3:return!t;case 4:return!1===t;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}(t,r,i,n)&&(r=null),n||null===i?function(e){return!!p.call(y,e)||!p.call(f,e)&&(d.test(e)?y[e]=!0:(f[e]=!0,!1))}(t)&&(null===r?e.removeAttribute(t):e.setAttribute(t,""+r)):i.mustUseProperty?e[i.propertyName]=null===r?3!==i.type&&"":r:(t=i.attributeName,n=i.attributeNamespace,null===r?e.removeAttribute(t):(r=3===(i=i.type)||4===i&&!0===r?"":""+r,n?e.setAttributeNS(n,t,r):e.setAttribute(t,r))))}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach((function(e){var t=e.replace(b,w);m[t]=new g(t,1,!1,e,null,!1,!1)})),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach((function(e){var t=e.replace(b,w);m[t]=new g(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)})),["xml:base","xml:lang","xml:space"].forEach((function(e){var t=e.replace(b,w);m[t]=new g(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)})),["tabIndex","crossOrigin"].forEach((function(e){m[e]=new g(e,1,!1,e.toLowerCase(),null,!1,!1)})),m.xlinkHref=new g("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach((function(e){m[e]=new g(e,1,!1,e.toLowerCase(),null,!0,!0)}));var _=n.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,E=60103,S=60106,A=60107,k=60108,I=60114,R=60109,P=60110,C=60112,T=60113,x=60120,D=60115,N=60116,L=60121,B=60128,M=60129,O=60130,U=60131;if("function"===typeof Symbol&&Symbol.for){var K=Symbol.for;E=K("react.element"),S=K("react.portal"),A=K("react.fragment"),k=K("react.strict_mode"),I=K("react.profiler"),R=K("react.provider"),P=K("react.context"),C=K("react.forward_ref"),T=K("react.suspense"),x=K("react.suspense_list"),D=K("react.memo"),N=K("react.lazy"),L=K("react.block"),K("react.scope"),B=K("react.opaque.id"),M=K("react.debug_trace_mode"),O=K("react.offscreen"),U=K("react.legacy_hidden")}var q,F="function"===typeof Symbol&&Symbol.iterator;function V(e){return null===e||"object"!==typeof e?null:"function"===typeof(e=F&&e[F]||e["@@iterator"])?e:null}function z(e){if(void 0===q)try{throw Error()}catch(r){var t=r.stack.trim().match(/\n( *(at )?)/);q=t&&t[1]||""}return"\n"+q+e}var j=!1;function H(e,t){if(!e||j)return"";j=!0;var r=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),"object"===typeof Reflect&&Reflect.construct){try{Reflect.construct(t,[])}catch(c){var n=c}Reflect.construct(e,[],t)}else{try{t.call()}catch(c){n=c}e.call(t.prototype)}else{try{throw Error()}catch(c){n=c}e()}}catch(c){if(c&&n&&"string"===typeof c.stack){for(var i=c.stack.split("\n"),o=n.stack.split("\n"),s=i.length-1,a=o.length-1;1<=s&&0<=a&&i[s]!==o[a];)a--;for(;1<=s&&0<=a;s--,a--)if(i[s]!==o[a]){if(1!==s||1!==a)do{if(s--,0>--a||i[s]!==o[a])return"\n"+i[s].replace(" at new "," at ")}while(1<=s&&0<=a);break}}}finally{j=!1,Error.prepareStackTrace=r}return(e=e?e.displayName||e.name:"")?z(e):""}function G(e){switch(e.tag){case 5:return z(e.type);case 16:return z("Lazy");case 13:return z("Suspense");case 19:return z("SuspenseList");case 0:case 2:case 15:return e=H(e.type,!1);case 11:return e=H(e.type.render,!1);case 22:return e=H(e.type._render,!1);case 1:return e=H(e.type,!0);default:return""}}function W(e){if(null==e)return null;if("function"===typeof e)return e.displayName||e.name||null;if("string"===typeof e)return e;switch(e){case A:return"Fragment";case S:return"Portal";case I:return"Profiler";case k:return"StrictMode";case T:return"Suspense";case x:return"SuspenseList"}if("object"===typeof e)switch(e.$$typeof){case P:return(e.displayName||"Context")+".Consumer";case R:return(e._context.displayName||"Context")+".Provider";case C:var t=e.render;return t=t.displayName||t.name||"",e.displayName||(""!==t?"ForwardRef("+t+")":"ForwardRef");case D:return W(e.type);case L:return W(e._render);case N:t=e._payload,e=e._init;try{return W(e(t))}catch(r){}}return null}function Y(e){switch(typeof e){case"boolean":case"number":case"object":case"string":case"undefined":return e;default:return""}}function Q(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function X(e){e._valueTracker||(e._valueTracker=function(e){var t=Q(e)?"checked":"value",r=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),n=""+e[t];if(!e.hasOwnProperty(t)&&"undefined"!==typeof r&&"function"===typeof r.get&&"function"===typeof r.set){var i=r.get,o=r.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return i.call(this)},set:function(e){n=""+e,o.call(this,e)}}),Object.defineProperty(e,t,{enumerable:r.enumerable}),{getValue:function(){return n},setValue:function(e){n=""+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}(e))}function J(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var r=t.getValue(),n="";return e&&(n=Q(e)?e.checked?"true":"false":e.value),(e=n)!==r&&(t.setValue(e),!0)}function Z(e){if("undefined"===typeof(e=e||("undefined"!==typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}function $(e,t){var r=t.checked;return i({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=r?r:e._wrapperState.initialChecked})}function ee(e,t){var r=null==t.defaultValue?"":t.defaultValue,n=null!=t.checked?t.checked:t.defaultChecked;r=Y(null!=t.value?t.value:r),e._wrapperState={initialChecked:n,initialValue:r,controlled:"checkbox"===t.type||"radio"===t.type?null!=t.checked:null!=t.value}}function te(e,t){null!=(t=t.checked)&&v(e,"checked",t,!1)}function re(e,t){te(e,t);var r=Y(t.value),n=t.type;if(null!=r)"number"===n?(0===r&&""===e.value||e.value!=r)&&(e.value=""+r):e.value!==""+r&&(e.value=""+r);else if("submit"===n||"reset"===n)return void e.removeAttribute("value");t.hasOwnProperty("value")?ie(e,t.type,r):t.hasOwnProperty("defaultValue")&&ie(e,t.type,Y(t.defaultValue)),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked)}function ne(e,t,r){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var n=t.type;if(!("submit"!==n&&"reset"!==n||void 0!==t.value&&null!==t.value))return;t=""+e._wrapperState.initialValue,r||t===e.value||(e.value=t),e.defaultValue=t}""!==(r=e.name)&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,""!==r&&(e.name=r)}function ie(e,t,r){"number"===t&&Z(e.ownerDocument)===e||(null==r?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+r&&(e.defaultValue=""+r))}function oe(e,t){return e=i({children:void 0},t),(t=function(e){var t="";return n.Children.forEach(e,(function(e){null!=e&&(t+=e)})),t}(t.children))&&(e.children=t),e}function se(e,t,r,n){if(e=e.options,t){t={};for(var i=0;i<r.length;i++)t["$"+r[i]]=!0;for(r=0;r<e.length;r++)i=t.hasOwnProperty("$"+e[r].value),e[r].selected!==i&&(e[r].selected=i),i&&n&&(e[r].defaultSelected=!0)}else{for(r=""+Y(r),t=null,i=0;i<e.length;i++){if(e[i].value===r)return e[i].selected=!0,void(n&&(e[i].defaultSelected=!0));null!==t||e[i].disabled||(t=e[i])}null!==t&&(t.selected=!0)}}function ae(e,t){if(null!=t.dangerouslySetInnerHTML)throw Error(s(91));return i({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function ce(e,t){var r=t.value;if(null==r){if(r=t.children,t=t.defaultValue,null!=r){if(null!=t)throw Error(s(92));if(Array.isArray(r)){if(!(1>=r.length))throw Error(s(93));r=r[0]}t=r}null==t&&(t=""),r=t}e._wrapperState={initialValue:Y(r)}}function le(e,t){var r=Y(t.value),n=Y(t.defaultValue);null!=r&&((r=""+r)!==e.value&&(e.value=r),null==t.defaultValue&&e.defaultValue!==r&&(e.defaultValue=r)),null!=n&&(e.defaultValue=""+n)}function ue(e){var t=e.textContent;t===e._wrapperState.initialValue&&""!==t&&null!==t&&(e.value=t)}var he={html:"http://www.w3.org/1999/xhtml",mathml:"http://www.w3.org/1998/Math/MathML",svg:"http://www.w3.org/2000/svg"};function de(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function pe(e,t){return null==e||"http://www.w3.org/1999/xhtml"===e?de(t):"http://www.w3.org/2000/svg"===e&&"foreignObject"===t?"http://www.w3.org/1999/xhtml":e}var fe,ye,ge=(ye=function(e,t){if(e.namespaceURI!==he.svg||"innerHTML"in e)e.innerHTML=t;else{for((fe=fe||document.createElement("div")).innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=fe.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}},"undefined"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(e,t,r,n){MSApp.execUnsafeLocalFunction((function(){return ye(e,t)}))}:ye);function me(e,t){if(t){var r=e.firstChild;if(r&&r===e.lastChild&&3===r.nodeType)return void(r.nodeValue=t)}e.textContent=t}var be={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},we=["Webkit","ms","Moz","O"];function ve(e,t,r){return null==t||"boolean"===typeof t||""===t?"":r||"number"!==typeof t||0===t||be.hasOwnProperty(e)&&be[e]?(""+t).trim():t+"px"}function _e(e,t){for(var r in e=e.style,t)if(t.hasOwnProperty(r)){var n=0===r.indexOf("--"),i=ve(r,t[r],n);"float"===r&&(r="cssFloat"),n?e.setProperty(r,i):e[r]=i}}Object.keys(be).forEach((function(e){we.forEach((function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),be[t]=be[e]}))}));var Ee=i({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Se(e,t){if(t){if(Ee[e]&&(null!=t.children||null!=t.dangerouslySetInnerHTML))throw Error(s(137,e));if(null!=t.dangerouslySetInnerHTML){if(null!=t.children)throw Error(s(60));if("object"!==typeof t.dangerouslySetInnerHTML||!("__html"in t.dangerouslySetInnerHTML))throw Error(s(61))}if(null!=t.style&&"object"!==typeof t.style)throw Error(s(62))}}function Ae(e,t){if(-1===e.indexOf("-"))return"string"===typeof t.is;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}function ke(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}var Ie=null,Re=null,Pe=null;function Ce(e){if(e=ri(e)){if("function"!==typeof Ie)throw Error(s(280));var t=e.stateNode;t&&(t=ii(t),Ie(e.stateNode,e.type,t))}}function Te(e){Re?Pe?Pe.push(e):Pe=[e]:Re=e}function xe(){if(Re){var e=Re,t=Pe;if(Pe=Re=null,Ce(e),t)for(e=0;e<t.length;e++)Ce(t[e])}}function De(e,t){return e(t)}function Ne(e,t,r,n,i){return e(t,r,n,i)}function Le(){}var Be=De,Me=!1,Oe=!1;function Ue(){null===Re&&null===Pe||(Le(),xe())}function Ke(e,t){var r=e.stateNode;if(null===r)return null;var n=ii(r);if(null===n)return null;r=n[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(n=!n.disabled)||(n=!("button"===(e=e.type)||"input"===e||"select"===e||"textarea"===e)),e=!n;break e;default:e=!1}if(e)return null;if(r&&"function"!==typeof r)throw Error(s(231,t,typeof r));return r}var qe=!1;if(h)try{var Fe={};Object.defineProperty(Fe,"passive",{get:function(){qe=!0}}),window.addEventListener("test",Fe,Fe),window.removeEventListener("test",Fe,Fe)}catch(ye){qe=!1}function Ve(e,t,r,n,i,o,s,a,c){var l=Array.prototype.slice.call(arguments,3);try{t.apply(r,l)}catch(u){this.onError(u)}}var ze=!1,je=null,He=!1,Ge=null,We={onError:function(e){ze=!0,je=e}};function Ye(e,t,r,n,i,o,s,a,c){ze=!1,je=null,Ve.apply(We,arguments)}function Qe(e){var t=e,r=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do{0!==(1026&(t=e).flags)&&(r=t.return),e=t.return}while(e)}return 3===t.tag?r:null}function Xe(e){if(13===e.tag){var t=e.memoizedState;if(null===t&&(null!==(e=e.alternate)&&(t=e.memoizedState)),null!==t)return t.dehydrated}return null}function Je(e){if(Qe(e)!==e)throw Error(s(188))}function Ze(e){if(e=function(e){var t=e.alternate;if(!t){if(null===(t=Qe(e)))throw Error(s(188));return t!==e?null:e}for(var r=e,n=t;;){var i=r.return;if(null===i)break;var o=i.alternate;if(null===o){if(null!==(n=i.return)){r=n;continue}break}if(i.child===o.child){for(o=i.child;o;){if(o===r)return Je(i),e;if(o===n)return Je(i),t;o=o.sibling}throw Error(s(188))}if(r.return!==n.return)r=i,n=o;else{for(var a=!1,c=i.child;c;){if(c===r){a=!0,r=i,n=o;break}if(c===n){a=!0,n=i,r=o;break}c=c.sibling}if(!a){for(c=o.child;c;){if(c===r){a=!0,r=o,n=i;break}if(c===n){a=!0,n=o,r=i;break}c=c.sibling}if(!a)throw Error(s(189))}}if(r.alternate!==n)throw Error(s(190))}if(3!==r.tag)throw Error(s(188));return r.stateNode.current===r?e:t}(e),!e)return null;for(var t=e;;){if(5===t.tag||6===t.tag)return t;if(t.child)t.child.return=t,t=t.child;else{if(t===e)break;for(;!t.sibling;){if(!t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}}return null}function $e(e,t){for(var r=e.alternate;null!==t;){if(t===e||t===r)return!0;t=t.return}return!1}var et,tt,rt,nt,it=!1,ot=[],st=null,at=null,ct=null,lt=new Map,ut=new Map,ht=[],dt="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function pt(e,t,r,n,i){return{blockedOn:e,domEventName:t,eventSystemFlags:16|r,nativeEvent:i,targetContainers:[n]}}function ft(e,t){switch(e){case"focusin":case"focusout":st=null;break;case"dragenter":case"dragleave":at=null;break;case"mouseover":case"mouseout":ct=null;break;case"pointerover":case"pointerout":lt.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":ut.delete(t.pointerId)}}function yt(e,t,r,n,i,o){return null===e||e.nativeEvent!==o?(e=pt(t,r,n,i,o),null!==t&&(null!==(t=ri(t))&&tt(t)),e):(e.eventSystemFlags|=n,t=e.targetContainers,null!==i&&-1===t.indexOf(i)&&t.push(i),e)}function gt(e){var t=ti(e.target);if(null!==t){var r=Qe(t);if(null!==r)if(13===(t=r.tag)){if(null!==(t=Xe(r)))return e.blockedOn=t,void nt(e.lanePriority,(function(){o.unstable_runWithPriority(e.priority,(function(){rt(r)}))}))}else if(3===t&&r.stateNode.hydrate)return void(e.blockedOn=3===r.tag?r.stateNode.containerInfo:null)}e.blockedOn=null}function mt(e){if(null!==e.blockedOn)return!1;for(var t=e.targetContainers;0<t.length;){var r=Zt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==r)return null!==(t=ri(r))&&tt(t),e.blockedOn=r,!1;t.shift()}return!0}function bt(e,t,r){mt(e)&&r.delete(t)}function wt(){for(it=!1;0<ot.length;){var e=ot[0];if(null!==e.blockedOn){null!==(e=ri(e.blockedOn))&&et(e);break}for(var t=e.targetContainers;0<t.length;){var r=Zt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==r){e.blockedOn=r;break}t.shift()}null===e.blockedOn&&ot.shift()}null!==st&&mt(st)&&(st=null),null!==at&&mt(at)&&(at=null),null!==ct&&mt(ct)&&(ct=null),lt.forEach(bt),ut.forEach(bt)}function vt(e,t){e.blockedOn===t&&(e.blockedOn=null,it||(it=!0,o.unstable_scheduleCallback(o.unstable_NormalPriority,wt)))}function _t(e){function t(t){return vt(t,e)}if(0<ot.length){vt(ot[0],e);for(var r=1;r<ot.length;r++){var n=ot[r];n.blockedOn===e&&(n.blockedOn=null)}}for(null!==st&&vt(st,e),null!==at&&vt(at,e),null!==ct&&vt(ct,e),lt.forEach(t),ut.forEach(t),r=0;r<ht.length;r++)(n=ht[r]).blockedOn===e&&(n.blockedOn=null);for(;0<ht.length&&null===(r=ht[0]).blockedOn;)gt(r),null===r.blockedOn&&ht.shift()}function Et(e,t){var r={};return r[e.toLowerCase()]=t.toLowerCase(),r["Webkit"+e]="webkit"+t,r["Moz"+e]="moz"+t,r}var St={animationend:Et("Animation","AnimationEnd"),animationiteration:Et("Animation","AnimationIteration"),animationstart:Et("Animation","AnimationStart"),transitionend:Et("Transition","TransitionEnd")},At={},kt={};function It(e){if(At[e])return At[e];if(!St[e])return e;var t,r=St[e];for(t in r)if(r.hasOwnProperty(t)&&t in kt)return At[e]=r[t];return e}h&&(kt=document.createElement("div").style,"AnimationEvent"in window||(delete St.animationend.animation,delete St.animationiteration.animation,delete St.animationstart.animation),"TransitionEvent"in window||delete St.transitionend.transition);var Rt=It("animationend"),Pt=It("animationiteration"),Ct=It("animationstart"),Tt=It("transitionend"),xt=new Map,Dt=new Map,Nt=["abort","abort",Rt,"animationEnd",Pt,"animationIteration",Ct,"animationStart","canplay","canPlay","canplaythrough","canPlayThrough","durationchange","durationChange","emptied","emptied","encrypted","encrypted","ended","ended","error","error","gotpointercapture","gotPointerCapture","load","load","loadeddata","loadedData","loadedmetadata","loadedMetadata","loadstart","loadStart","lostpointercapture","lostPointerCapture","playing","playing","progress","progress","seeking","seeking","stalled","stalled","suspend","suspend","timeupdate","timeUpdate",Tt,"transitionEnd","waiting","waiting"];function Lt(e,t){for(var r=0;r<e.length;r+=2){var n=e[r],i=e[r+1];i="on"+(i[0].toUpperCase()+i.slice(1)),Dt.set(n,t),xt.set(n,i),l(i,[n])}}(0,o.unstable_now)();var Bt=8;function Mt(e){if(0!==(1&e))return Bt=15,1;if(0!==(2&e))return Bt=14,2;if(0!==(4&e))return Bt=13,4;var t=24&e;return 0!==t?(Bt=12,t):0!==(32&e)?(Bt=11,32):0!==(t=192&e)?(Bt=10,t):0!==(256&e)?(Bt=9,256):0!==(t=3584&e)?(Bt=8,t):0!==(4096&e)?(Bt=7,4096):0!==(t=4186112&e)?(Bt=6,t):0!==(t=62914560&e)?(Bt=5,t):67108864&e?(Bt=4,67108864):0!==(134217728&e)?(Bt=3,134217728):0!==(t=805306368&e)?(Bt=2,t):0!==(1073741824&e)?(Bt=1,1073741824):(Bt=8,e)}function Ot(e,t){var r=e.pendingLanes;if(0===r)return Bt=0;var n=0,i=0,o=e.expiredLanes,s=e.suspendedLanes,a=e.pingedLanes;if(0!==o)n=o,i=Bt=15;else if(0!==(o=134217727&r)){var c=o&~s;0!==c?(n=Mt(c),i=Bt):0!==(a&=o)&&(n=Mt(a),i=Bt)}else 0!==(o=r&~s)?(n=Mt(o),i=Bt):0!==a&&(n=Mt(a),i=Bt);if(0===n)return 0;if(n=r&((0>(n=31-zt(n))?0:1<<n)<<1)-1,0!==t&&t!==n&&0===(t&s)){if(Mt(t),i<=Bt)return t;Bt=i}if(0!==(t=e.entangledLanes))for(e=e.entanglements,t&=n;0<t;)i=1<<(r=31-zt(t)),n|=e[r],t&=~i;return n}function Ut(e){return 0!==(e=-1073741825&e.pendingLanes)?e:1073741824&e?1073741824:0}function Kt(e,t){switch(e){case 15:return 1;case 14:return 2;case 12:return 0===(e=qt(24&~t))?Kt(10,t):e;case 10:return 0===(e=qt(192&~t))?Kt(8,t):e;case 8:return 0===(e=qt(3584&~t))&&(0===(e=qt(4186112&~t))&&(e=512)),e;case 2:return 0===(t=qt(805306368&~t))&&(t=268435456),t}throw Error(s(358,e))}function qt(e){return e&-e}function Ft(e){for(var t=[],r=0;31>r;r++)t.push(e);return t}function Vt(e,t,r){e.pendingLanes|=t;var n=t-1;e.suspendedLanes&=n,e.pingedLanes&=n,(e=e.eventTimes)[t=31-zt(t)]=r}var zt=Math.clz32?Math.clz32:function(e){return 0===e?32:31-(jt(e)/Ht|0)|0},jt=Math.log,Ht=Math.LN2;var Gt=o.unstable_UserBlockingPriority,Wt=o.unstable_runWithPriority,Yt=!0;function Qt(e,t,r,n){Me||Le();var i=Jt,o=Me;Me=!0;try{Ne(i,e,t,r,n)}finally{(Me=o)||Ue()}}function Xt(e,t,r,n){Wt(Gt,Jt.bind(null,e,t,r,n))}function Jt(e,t,r,n){var i;if(Yt)if((i=0===(4&t))&&0<ot.length&&-1<dt.indexOf(e))e=pt(null,e,t,r,n),ot.push(e);else{var o=Zt(e,t,r,n);if(null===o)i&&ft(e,n);else{if(i){if(-1<dt.indexOf(e))return e=pt(o,e,t,r,n),void ot.push(e);if(function(e,t,r,n,i){switch(t){case"focusin":return st=yt(st,e,t,r,n,i),!0;case"dragenter":return at=yt(at,e,t,r,n,i),!0;case"mouseover":return ct=yt(ct,e,t,r,n,i),!0;case"pointerover":var o=i.pointerId;return lt.set(o,yt(lt.get(o)||null,e,t,r,n,i)),!0;case"gotpointercapture":return o=i.pointerId,ut.set(o,yt(ut.get(o)||null,e,t,r,n,i)),!0}return!1}(o,e,t,r,n))return;ft(e,n)}Ln(e,t,n,null,r)}}}function Zt(e,t,r,n){var i=ke(n);if(null!==(i=ti(i))){var o=Qe(i);if(null===o)i=null;else{var s=o.tag;if(13===s){if(null!==(i=Xe(o)))return i;i=null}else if(3===s){if(o.stateNode.hydrate)return 3===o.tag?o.stateNode.containerInfo:null;i=null}else o!==i&&(i=null)}}return Ln(e,t,n,i,r),null}var $t=null,er=null,tr=null;function rr(){if(tr)return tr;var e,t,r=er,n=r.length,i="value"in $t?$t.value:$t.textContent,o=i.length;for(e=0;e<n&&r[e]===i[e];e++);var s=n-e;for(t=1;t<=s&&r[n-t]===i[o-t];t++);return tr=i.slice(e,1<t?1-t:void 0)}function nr(e){var t=e.keyCode;return"charCode"in e?0===(e=e.charCode)&&13===t&&(e=13):e=t,10===e&&(e=13),32<=e||13===e?e:0}function ir(){return!0}function or(){return!1}function sr(e){function t(t,r,n,i,o){for(var s in this._reactName=t,this._targetInst=n,this.type=r,this.nativeEvent=i,this.target=o,this.currentTarget=null,e)e.hasOwnProperty(s)&&(t=e[s],this[s]=t?t(i):i[s]);return this.isDefaultPrevented=(null!=i.defaultPrevented?i.defaultPrevented:!1===i.returnValue)?ir:or,this.isPropagationStopped=or,this}return i(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!==typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=ir)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!==typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=ir)},persist:function(){},isPersistent:ir}),t}var ar,cr,lr,ur={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},hr=sr(ur),dr=i({},ur,{view:0,detail:0}),pr=sr(dr),fr=i({},dr,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Ir,button:0,buttons:0,relatedTarget:function(e){return void 0===e.relatedTarget?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==lr&&(lr&&"mousemove"===e.type?(ar=e.screenX-lr.screenX,cr=e.screenY-lr.screenY):cr=ar=0,lr=e),ar)},movementY:function(e){return"movementY"in e?e.movementY:cr}}),yr=sr(fr),gr=sr(i({},fr,{dataTransfer:0})),mr=sr(i({},dr,{relatedTarget:0})),br=sr(i({},ur,{animationName:0,elapsedTime:0,pseudoElement:0})),wr=i({},ur,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),vr=sr(wr),_r=sr(i({},ur,{data:0})),Er={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},Sr={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},Ar={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function kr(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=Ar[e])&&!!t[e]}function Ir(){return kr}var Rr=i({},dr,{key:function(e){if(e.key){var t=Er[e.key]||e.key;if("Unidentified"!==t)return t}return"keypress"===e.type?13===(e=nr(e))?"Enter":String.fromCharCode(e):"keydown"===e.type||"keyup"===e.type?Sr[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Ir,charCode:function(e){return"keypress"===e.type?nr(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?nr(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}}),Pr=sr(Rr),Cr=sr(i({},fr,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),Tr=sr(i({},dr,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Ir})),xr=sr(i({},ur,{propertyName:0,elapsedTime:0,pseudoElement:0})),Dr=i({},fr,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),Nr=sr(Dr),Lr=[9,13,27,32],Br=h&&"CompositionEvent"in window,Mr=null;h&&"documentMode"in document&&(Mr=document.documentMode);var Or=h&&"TextEvent"in window&&!Mr,Ur=h&&(!Br||Mr&&8<Mr&&11>=Mr),Kr=String.fromCharCode(32),qr=!1;function Fr(e,t){switch(e){case"keyup":return-1!==Lr.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Vr(e){return"object"===typeof(e=e.detail)&&"data"in e?e.data:null}var zr=!1;var jr={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Hr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!jr[e.type]:"textarea"===t}function Gr(e,t,r,n){Te(n),0<(t=Mn(t,"onChange")).length&&(r=new hr("onChange","change",null,r,n),e.push({event:r,listeners:t}))}var Wr=null,Yr=null;function Qr(e){Pn(e,0)}function Xr(e){if(J(ni(e)))return e}function Jr(e,t){if("change"===e)return t}var Zr=!1;if(h){var $r;if(h){var en="oninput"in document;if(!en){var tn=document.createElement("div");tn.setAttribute("oninput","return;"),en="function"===typeof tn.oninput}$r=en}else $r=!1;Zr=$r&&(!document.documentMode||9<document.documentMode)}function rn(){Wr&&(Wr.detachEvent("onpropertychange",nn),Yr=Wr=null)}function nn(e){if("value"===e.propertyName&&Xr(Yr)){var t=[];if(Gr(t,Yr,e,ke(e)),e=Qr,Me)e(t);else{Me=!0;try{De(e,t)}finally{Me=!1,Ue()}}}}function on(e,t,r){"focusin"===e?(rn(),Yr=r,(Wr=t).attachEvent("onpropertychange",nn)):"focusout"===e&&rn()}function sn(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return Xr(Yr)}function an(e,t){if("click"===e)return Xr(t)}function cn(e,t){if("input"===e||"change"===e)return Xr(t)}var ln="function"===typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e===1/t)||e!==e&&t!==t},un=Object.prototype.hasOwnProperty;function hn(e,t){if(ln(e,t))return!0;if("object"!==typeof e||null===e||"object"!==typeof t||null===t)return!1;var r=Object.keys(e),n=Object.keys(t);if(r.length!==n.length)return!1;for(n=0;n<r.length;n++)if(!un.call(t,r[n])||!ln(e[r[n]],t[r[n]]))return!1;return!0}function dn(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function pn(e,t){var r,n=dn(e);for(e=0;n;){if(3===n.nodeType){if(r=e+n.textContent.length,e<=t&&r>=t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=dn(n)}}function fn(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?fn(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function yn(){for(var e=window,t=Z();t instanceof e.HTMLIFrameElement;){try{var r="string"===typeof t.contentWindow.location.href}catch(n){r=!1}if(!r)break;t=Z((e=t.contentWindow).document)}return t}function gn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}var mn=h&&"documentMode"in document&&11>=document.documentMode,bn=null,wn=null,vn=null,_n=!1;function En(e,t,r){var n=r.window===r?r.document:9===r.nodeType?r:r.ownerDocument;_n||null==bn||bn!==Z(n)||("selectionStart"in(n=bn)&&gn(n)?n={start:n.selectionStart,end:n.selectionEnd}:n={anchorNode:(n=(n.ownerDocument&&n.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:n.anchorOffset,focusNode:n.focusNode,focusOffset:n.focusOffset},vn&&hn(vn,n)||(vn=n,0<(n=Mn(wn,"onSelect")).length&&(t=new hr("onSelect","select",null,t,r),e.push({event:t,listeners:n}),t.target=bn)))}Lt("cancel cancel click click close close contextmenu contextMenu copy copy cut cut auxclick auxClick dblclick doubleClick dragend dragEnd dragstart dragStart drop drop focusin focus focusout blur input input invalid invalid keydown keyDown keypress keyPress keyup keyUp mousedown mouseDown mouseup mouseUp paste paste pause pause play play pointercancel pointerCancel pointerdown pointerDown pointerup pointerUp ratechange rateChange reset reset seeked seeked submit submit touchcancel touchCancel touchend touchEnd touchstart touchStart volumechange volumeChange".split(" "),0),Lt("drag drag dragenter dragEnter dragexit dragExit dragleave dragLeave dragover dragOver mousemove mouseMove mouseout mouseOut mouseover mouseOver pointermove pointerMove pointerout pointerOut pointerover pointerOver scroll scroll toggle toggle touchmove touchMove wheel wheel".split(" "),1),Lt(Nt,2);for(var Sn="change selectionchange textInput compositionstart compositionend compositionupdate".split(" "),An=0;An<Sn.length;An++)Dt.set(Sn[An],0);u("onMouseEnter",["mouseout","mouseover"]),u("onMouseLeave",["mouseout","mouseover"]),u("onPointerEnter",["pointerout","pointerover"]),u("onPointerLeave",["pointerout","pointerover"]),l("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),l("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),l("onBeforeInput",["compositionend","keypress","textInput","paste"]),l("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),l("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),l("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var kn="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),In=new Set("cancel close invalid load scroll toggle".split(" ").concat(kn));function Rn(e,t,r){var n=e.type||"unknown-event";e.currentTarget=r,function(e,t,r,n,i,o,a,c,l){if(Ye.apply(this,arguments),ze){if(!ze)throw Error(s(198));var u=je;ze=!1,je=null,He||(He=!0,Ge=u)}}(n,t,void 0,e),e.currentTarget=null}function Pn(e,t){t=0!==(4&t);for(var r=0;r<e.length;r++){var n=e[r],i=n.event;n=n.listeners;e:{var o=void 0;if(t)for(var s=n.length-1;0<=s;s--){var a=n[s],c=a.instance,l=a.currentTarget;if(a=a.listener,c!==o&&i.isPropagationStopped())break e;Rn(i,a,l),o=c}else for(s=0;s<n.length;s++){if(c=(a=n[s]).instance,l=a.currentTarget,a=a.listener,c!==o&&i.isPropagationStopped())break e;Rn(i,a,l),o=c}}}if(He)throw e=Ge,He=!1,Ge=null,e}function Cn(e,t){var r=oi(t),n=e+"__bubble";r.has(n)||(Nn(t,e,2,!1),r.add(n))}var Tn="_reactListening"+Math.random().toString(36).slice(2);function xn(e){e[Tn]||(e[Tn]=!0,a.forEach((function(t){In.has(t)||Dn(t,!1,e,null),Dn(t,!0,e,null)})))}function Dn(e,t,r,n){var i=4<arguments.length&&void 0!==arguments[4]?arguments[4]:0,o=r;if("selectionchange"===e&&9!==r.nodeType&&(o=r.ownerDocument),null!==n&&!t&&In.has(e)){if("scroll"!==e)return;i|=2,o=n}var s=oi(o),a=e+"__"+(t?"capture":"bubble");s.has(a)||(t&&(i|=4),Nn(o,e,i,t),s.add(a))}function Nn(e,t,r,n){var i=Dt.get(t);switch(void 0===i?2:i){case 0:i=Qt;break;case 1:i=Xt;break;default:i=Jt}r=i.bind(null,t,r,e),i=void 0,!qe||"touchstart"!==t&&"touchmove"!==t&&"wheel"!==t||(i=!0),n?void 0!==i?e.addEventListener(t,r,{capture:!0,passive:i}):e.addEventListener(t,r,!0):void 0!==i?e.addEventListener(t,r,{passive:i}):e.addEventListener(t,r,!1)}function Ln(e,t,r,n,i){var o=n;if(0===(1&t)&&0===(2&t)&&null!==n)e:for(;;){if(null===n)return;var s=n.tag;if(3===s||4===s){var a=n.stateNode.containerInfo;if(a===i||8===a.nodeType&&a.parentNode===i)break;if(4===s)for(s=n.return;null!==s;){var c=s.tag;if((3===c||4===c)&&((c=s.stateNode.containerInfo)===i||8===c.nodeType&&c.parentNode===i))return;s=s.return}for(;null!==a;){if(null===(s=ti(a)))return;if(5===(c=s.tag)||6===c){n=o=s;continue e}a=a.parentNode}}n=n.return}!function(e,t,r){if(Oe)return e(t,r);Oe=!0;try{return Be(e,t,r)}finally{Oe=!1,Ue()}}((function(){var n=o,i=ke(r),s=[];e:{var a=xt.get(e);if(void 0!==a){var c=hr,l=e;switch(e){case"keypress":if(0===nr(r))break e;case"keydown":case"keyup":c=Pr;break;case"focusin":l="focus",c=mr;break;case"focusout":l="blur",c=mr;break;case"beforeblur":case"afterblur":c=mr;break;case"click":if(2===r.button)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":c=yr;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":c=gr;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":c=Tr;break;case Rt:case Pt:case Ct:c=br;break;case Tt:c=xr;break;case"scroll":c=pr;break;case"wheel":c=Nr;break;case"copy":case"cut":case"paste":c=vr;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":c=Cr}var u=0!==(4&t),h=!u&&"scroll"===e,d=u?null!==a?a+"Capture":null:a;u=[];for(var p,f=n;null!==f;){var y=(p=f).stateNode;if(5===p.tag&&null!==y&&(p=y,null!==d&&(null!=(y=Ke(f,d))&&u.push(Bn(f,y,p)))),h)break;f=f.return}0<u.length&&(a=new c(a,l,null,r,i),s.push({event:a,listeners:u}))}}if(0===(7&t)){if(c="mouseout"===e||"pointerout"===e,(!(a="mouseover"===e||"pointerover"===e)||0!==(16&t)||!(l=r.relatedTarget||r.fromElement)||!ti(l)&&!l[$n])&&(c||a)&&(a=i.window===i?i:(a=i.ownerDocument)?a.defaultView||a.parentWindow:window,c?(c=n,null!==(l=(l=r.relatedTarget||r.toElement)?ti(l):null)&&(l!==(h=Qe(l))||5!==l.tag&&6!==l.tag)&&(l=null)):(c=null,l=n),c!==l)){if(u=yr,y="onMouseLeave",d="onMouseEnter",f="mouse","pointerout"!==e&&"pointerover"!==e||(u=Cr,y="onPointerLeave",d="onPointerEnter",f="pointer"),h=null==c?a:ni(c),p=null==l?a:ni(l),(a=new u(y,f+"leave",c,r,i)).target=h,a.relatedTarget=p,y=null,ti(i)===n&&((u=new u(d,f+"enter",l,r,i)).target=p,u.relatedTarget=h,y=u),h=y,c&&l)e:{for(d=l,f=0,p=u=c;p;p=On(p))f++;for(p=0,y=d;y;y=On(y))p++;for(;0<f-p;)u=On(u),f--;for(;0<p-f;)d=On(d),p--;for(;f--;){if(u===d||null!==d&&u===d.alternate)break e;u=On(u),d=On(d)}u=null}else u=null;null!==c&&Un(s,a,c,u,!1),null!==l&&null!==h&&Un(s,h,l,u,!0)}if("select"===(c=(a=n?ni(n):window).nodeName&&a.nodeName.toLowerCase())||"input"===c&&"file"===a.type)var g=Jr;else if(Hr(a))if(Zr)g=cn;else{g=sn;var m=on}else(c=a.nodeName)&&"input"===c.toLowerCase()&&("checkbox"===a.type||"radio"===a.type)&&(g=an);switch(g&&(g=g(e,n))?Gr(s,g,r,i):(m&&m(e,a,n),"focusout"===e&&(m=a._wrapperState)&&m.controlled&&"number"===a.type&&ie(a,"number",a.value)),m=n?ni(n):window,e){case"focusin":(Hr(m)||"true"===m.contentEditable)&&(bn=m,wn=n,vn=null);break;case"focusout":vn=wn=bn=null;break;case"mousedown":_n=!0;break;case"contextmenu":case"mouseup":case"dragend":_n=!1,En(s,r,i);break;case"selectionchange":if(mn)break;case"keydown":case"keyup":En(s,r,i)}var b;if(Br)e:{switch(e){case"compositionstart":var w="onCompositionStart";break e;case"compositionend":w="onCompositionEnd";break e;case"compositionupdate":w="onCompositionUpdate";break e}w=void 0}else zr?Fr(e,r)&&(w="onCompositionEnd"):"keydown"===e&&229===r.keyCode&&(w="onCompositionStart");w&&(Ur&&"ko"!==r.locale&&(zr||"onCompositionStart"!==w?"onCompositionEnd"===w&&zr&&(b=rr()):(er="value"in($t=i)?$t.value:$t.textContent,zr=!0)),0<(m=Mn(n,w)).length&&(w=new _r(w,e,null,r,i),s.push({event:w,listeners:m}),b?w.data=b:null!==(b=Vr(r))&&(w.data=b))),(b=Or?function(e,t){switch(e){case"compositionend":return Vr(t);case"keypress":return 32!==t.which?null:(qr=!0,Kr);case"textInput":return(e=t.data)===Kr&&qr?null:e;default:return null}}(e,r):function(e,t){if(zr)return"compositionend"===e||!Br&&Fr(e,t)?(e=rr(),tr=er=$t=null,zr=!1,e):null;switch(e){case"paste":default:return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return Ur&&"ko"!==t.locale?null:t.data}}(e,r))&&(0<(n=Mn(n,"onBeforeInput")).length&&(i=new _r("onBeforeInput","beforeinput",null,r,i),s.push({event:i,listeners:n}),i.data=b))}Pn(s,t)}))}function Bn(e,t,r){return{instance:e,listener:t,currentTarget:r}}function Mn(e,t){for(var r=t+"Capture",n=[];null!==e;){var i=e,o=i.stateNode;5===i.tag&&null!==o&&(i=o,null!=(o=Ke(e,r))&&n.unshift(Bn(e,o,i)),null!=(o=Ke(e,t))&&n.push(Bn(e,o,i))),e=e.return}return n}function On(e){if(null===e)return null;do{e=e.return}while(e&&5!==e.tag);return e||null}function Un(e,t,r,n,i){for(var o=t._reactName,s=[];null!==r&&r!==n;){var a=r,c=a.alternate,l=a.stateNode;if(null!==c&&c===n)break;5===a.tag&&null!==l&&(a=l,i?null!=(c=Ke(r,o))&&s.unshift(Bn(r,c,a)):i||null!=(c=Ke(r,o))&&s.push(Bn(r,c,a))),r=r.return}0!==s.length&&e.push({event:t,listeners:s})}function Kn(){}var qn=null,Fn=null;function Vn(e,t){switch(e){case"button":case"input":case"select":case"textarea":return!!t.autoFocus}return!1}function zn(e,t){return"textarea"===e||"option"===e||"noscript"===e||"string"===typeof t.children||"number"===typeof t.children||"object"===typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&null!=t.dangerouslySetInnerHTML.__html}var jn="function"===typeof setTimeout?setTimeout:void 0,Hn="function"===typeof clearTimeout?clearTimeout:void 0;function Gn(e){1===e.nodeType?e.textContent="":9===e.nodeType&&(null!=(e=e.body)&&(e.textContent=""))}function Wn(e){for(;null!=e;e=e.nextSibling){var t=e.nodeType;if(1===t||3===t)break}return e}function Yn(e){e=e.previousSibling;for(var t=0;e;){if(8===e.nodeType){var r=e.data;if("$"===r||"$!"===r||"$?"===r){if(0===t)return e;t--}else"/$"===r&&t++}e=e.previousSibling}return null}var Qn=0;var Xn=Math.random().toString(36).slice(2),Jn="__reactFiber$"+Xn,Zn="__reactProps$"+Xn,$n="__reactContainer$"+Xn,ei="__reactEvents$"+Xn;function ti(e){var t=e[Jn];if(t)return t;for(var r=e.parentNode;r;){if(t=r[$n]||r[Jn]){if(r=t.alternate,null!==t.child||null!==r&&null!==r.child)for(e=Yn(e);null!==e;){if(r=e[Jn])return r;e=Yn(e)}return t}r=(e=r).parentNode}return null}function ri(e){return!(e=e[Jn]||e[$n])||5!==e.tag&&6!==e.tag&&13!==e.tag&&3!==e.tag?null:e}function ni(e){if(5===e.tag||6===e.tag)return e.stateNode;throw Error(s(33))}function ii(e){return e[Zn]||null}function oi(e){var t=e[ei];return void 0===t&&(t=e[ei]=new Set),t}var si=[],ai=-1;function ci(e){return{current:e}}function li(e){0>ai||(e.current=si[ai],si[ai]=null,ai--)}function ui(e,t){ai++,si[ai]=e.current,e.current=t}var hi={},di=ci(hi),pi=ci(!1),fi=hi;function yi(e,t){var r=e.type.contextTypes;if(!r)return hi;var n=e.stateNode;if(n&&n.__reactInternalMemoizedUnmaskedChildContext===t)return n.__reactInternalMemoizedMaskedChildContext;var i,o={};for(i in r)o[i]=t[i];return n&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=o),o}function gi(e){return null!==(e=e.childContextTypes)&&void 0!==e}function mi(){li(pi),li(di)}function bi(e,t,r){if(di.current!==hi)throw Error(s(168));ui(di,t),ui(pi,r)}function wi(e,t,r){var n=e.stateNode;if(e=t.childContextTypes,"function"!==typeof n.getChildContext)return r;for(var o in n=n.getChildContext())if(!(o in e))throw Error(s(108,W(t)||"Unknown",o));return i({},r,n)}function vi(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||hi,fi=di.current,ui(di,e),ui(pi,pi.current),!0}function _i(e,t,r){var n=e.stateNode;if(!n)throw Error(s(169));r?(e=wi(e,t,fi),n.__reactInternalMemoizedMergedChildContext=e,li(pi),li(di),ui(di,e)):li(pi),ui(pi,r)}var Ei=null,Si=null,Ai=o.unstable_runWithPriority,ki=o.unstable_scheduleCallback,Ii=o.unstable_cancelCallback,Ri=o.unstable_shouldYield,Pi=o.unstable_requestPaint,Ci=o.unstable_now,Ti=o.unstable_getCurrentPriorityLevel,xi=o.unstable_ImmediatePriority,Di=o.unstable_UserBlockingPriority,Ni=o.unstable_NormalPriority,Li=o.unstable_LowPriority,Bi=o.unstable_IdlePriority,Mi={},Oi=void 0!==Pi?Pi:function(){},Ui=null,Ki=null,qi=!1,Fi=Ci(),Vi=1e4>Fi?Ci:function(){return Ci()-Fi};function zi(){switch(Ti()){case xi:return 99;case Di:return 98;case Ni:return 97;case Li:return 96;case Bi:return 95;default:throw Error(s(332))}}function ji(e){switch(e){case 99:return xi;case 98:return Di;case 97:return Ni;case 96:return Li;case 95:return Bi;default:throw Error(s(332))}}function Hi(e,t){return e=ji(e),Ai(e,t)}function Gi(e,t,r){return e=ji(e),ki(e,t,r)}function Wi(){if(null!==Ki){var e=Ki;Ki=null,Ii(e)}Yi()}function Yi(){if(!qi&&null!==Ui){qi=!0;var e=0;try{var t=Ui;Hi(99,(function(){for(;e<t.length;e++){var r=t[e];do{r=r(!0)}while(null!==r)}})),Ui=null}catch(r){throw null!==Ui&&(Ui=Ui.slice(e+1)),ki(xi,Wi),r}finally{qi=!1}}}var Qi=_.ReactCurrentBatchConfig;function Xi(e,t){if(e&&e.defaultProps){for(var r in t=i({},t),e=e.defaultProps)void 0===t[r]&&(t[r]=e[r]);return t}return t}var Ji=ci(null),Zi=null,$i=null,eo=null;function to(){eo=$i=Zi=null}function ro(e){var t=Ji.current;li(Ji),e.type._context._currentValue=t}function no(e,t){for(;null!==e;){var r=e.alternate;if((e.childLanes&t)===t){if(null===r||(r.childLanes&t)===t)break;r.childLanes|=t}else e.childLanes|=t,null!==r&&(r.childLanes|=t);e=e.return}}function io(e,t){Zi=e,eo=$i=null,null!==(e=e.dependencies)&&null!==e.firstContext&&(0!==(e.lanes&t)&&(Ms=!0),e.firstContext=null)}function oo(e,t){if(eo!==e&&!1!==t&&0!==t)if("number"===typeof t&&1073741823!==t||(eo=e,t=1073741823),t={context:e,observedBits:t,next:null},null===$i){if(null===Zi)throw Error(s(308));$i=t,Zi.dependencies={lanes:0,firstContext:t,responders:null}}else $i=$i.next=t;return e._currentValue}var so=!1;function ao(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null},effects:null}}function co(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function lo(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function uo(e,t){if(null!==(e=e.updateQueue)){var r=(e=e.shared).pending;null===r?t.next=t:(t.next=r.next,r.next=t),e.pending=t}}function ho(e,t){var r=e.updateQueue,n=e.alternate;if(null!==n&&r===(n=n.updateQueue)){var i=null,o=null;if(null!==(r=r.firstBaseUpdate)){do{var s={eventTime:r.eventTime,lane:r.lane,tag:r.tag,payload:r.payload,callback:r.callback,next:null};null===o?i=o=s:o=o.next=s,r=r.next}while(null!==r);null===o?i=o=t:o=o.next=t}else i=o=t;return r={baseState:n.baseState,firstBaseUpdate:i,lastBaseUpdate:o,shared:n.shared,effects:n.effects},void(e.updateQueue=r)}null===(e=r.lastBaseUpdate)?r.firstBaseUpdate=t:e.next=t,r.lastBaseUpdate=t}function po(e,t,r,n){var o=e.updateQueue;so=!1;var s=o.firstBaseUpdate,a=o.lastBaseUpdate,c=o.shared.pending;if(null!==c){o.shared.pending=null;var l=c,u=l.next;l.next=null,null===a?s=u:a.next=u,a=l;var h=e.alternate;if(null!==h){var d=(h=h.updateQueue).lastBaseUpdate;d!==a&&(null===d?h.firstBaseUpdate=u:d.next=u,h.lastBaseUpdate=l)}}if(null!==s){for(d=o.baseState,a=0,h=u=l=null;;){c=s.lane;var p=s.eventTime;if((n&c)===c){null!==h&&(h=h.next={eventTime:p,lane:0,tag:s.tag,payload:s.payload,callback:s.callback,next:null});e:{var f=e,y=s;switch(c=t,p=r,y.tag){case 1:if("function"===typeof(f=y.payload)){d=f.call(p,d,c);break e}d=f;break e;case 3:f.flags=-4097&f.flags|64;case 0:if(null===(c="function"===typeof(f=y.payload)?f.call(p,d,c):f)||void 0===c)break e;d=i({},d,c);break e;case 2:so=!0}}null!==s.callback&&(e.flags|=32,null===(c=o.effects)?o.effects=[s]:c.push(s))}else p={eventTime:p,lane:c,tag:s.tag,payload:s.payload,callback:s.callback,next:null},null===h?(u=h=p,l=d):h=h.next=p,a|=c;if(null===(s=s.next)){if(null===(c=o.shared.pending))break;s=c.next,c.next=null,o.lastBaseUpdate=c,o.shared.pending=null}}null===h&&(l=d),o.baseState=l,o.firstBaseUpdate=u,o.lastBaseUpdate=h,Fa|=a,e.lanes=a,e.memoizedState=d}}function fo(e,t,r){if(e=t.effects,t.effects=null,null!==e)for(t=0;t<e.length;t++){var n=e[t],i=n.callback;if(null!==i){if(n.callback=null,n=r,"function"!==typeof i)throw Error(s(191,i));i.call(n)}}}var yo=(new n.Component).refs;function go(e,t,r,n){r=null===(r=r(n,t=e.memoizedState))||void 0===r?t:i({},t,r),e.memoizedState=r,0===e.lanes&&(e.updateQueue.baseState=r)}var mo={isMounted:function(e){return!!(e=e._reactInternals)&&Qe(e)===e},enqueueSetState:function(e,t,r){e=e._reactInternals;var n=dc(),i=pc(e),o=lo(n,i);o.payload=t,void 0!==r&&null!==r&&(o.callback=r),uo(e,o),fc(e,i,n)},enqueueReplaceState:function(e,t,r){e=e._reactInternals;var n=dc(),i=pc(e),o=lo(n,i);o.tag=1,o.payload=t,void 0!==r&&null!==r&&(o.callback=r),uo(e,o),fc(e,i,n)},enqueueForceUpdate:function(e,t){e=e._reactInternals;var r=dc(),n=pc(e),i=lo(r,n);i.tag=2,void 0!==t&&null!==t&&(i.callback=t),uo(e,i),fc(e,n,r)}};function bo(e,t,r,n,i,o,s){return"function"===typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(n,o,s):!t.prototype||!t.prototype.isPureReactComponent||(!hn(r,n)||!hn(i,o))}function wo(e,t,r){var n=!1,i=hi,o=t.contextType;return"object"===typeof o&&null!==o?o=oo(o):(i=gi(t)?fi:di.current,o=(n=null!==(n=t.contextTypes)&&void 0!==n)?yi(e,i):hi),t=new t(r,o),e.memoizedState=null!==t.state&&void 0!==t.state?t.state:null,t.updater=mo,e.stateNode=t,t._reactInternals=e,n&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=i,e.__reactInternalMemoizedMaskedChildContext=o),t}function vo(e,t,r,n){e=t.state,"function"===typeof t.componentWillReceiveProps&&t.componentWillReceiveProps(r,n),"function"===typeof t.UNSAFE_componentWillReceiveProps&&t.UNSAFE_componentWillReceiveProps(r,n),t.state!==e&&mo.enqueueReplaceState(t,t.state,null)}function _o(e,t,r,n){var i=e.stateNode;i.props=r,i.state=e.memoizedState,i.refs=yo,ao(e);var o=t.contextType;"object"===typeof o&&null!==o?i.context=oo(o):(o=gi(t)?fi:di.current,i.context=yi(e,o)),po(e,r,i,n),i.state=e.memoizedState,"function"===typeof(o=t.getDerivedStateFromProps)&&(go(e,t,o,r),i.state=e.memoizedState),"function"===typeof t.getDerivedStateFromProps||"function"===typeof i.getSnapshotBeforeUpdate||"function"!==typeof i.UNSAFE_componentWillMount&&"function"!==typeof i.componentWillMount||(t=i.state,"function"===typeof i.componentWillMount&&i.componentWillMount(),"function"===typeof i.UNSAFE_componentWillMount&&i.UNSAFE_componentWillMount(),t!==i.state&&mo.enqueueReplaceState(i,i.state,null),po(e,r,i,n),i.state=e.memoizedState),"function"===typeof i.componentDidMount&&(e.flags|=4)}var Eo=Array.isArray;function So(e,t,r){if(null!==(e=r.ref)&&"function"!==typeof e&&"object"!==typeof e){if(r._owner){if(r=r._owner){if(1!==r.tag)throw Error(s(309));var n=r.stateNode}if(!n)throw Error(s(147,e));var i=""+e;return null!==t&&null!==t.ref&&"function"===typeof t.ref&&t.ref._stringRef===i?t.ref:(t=function(e){var t=n.refs;t===yo&&(t=n.refs={}),null===e?delete t[i]:t[i]=e},t._stringRef=i,t)}if("string"!==typeof e)throw Error(s(284));if(!r._owner)throw Error(s(290,e))}return e}function Ao(e,t){if("textarea"!==e.type)throw Error(s(31,"[object Object]"===Object.prototype.toString.call(t)?"object with keys {"+Object.keys(t).join(", ")+"}":t))}function ko(e){function t(t,r){if(e){var n=t.lastEffect;null!==n?(n.nextEffect=r,t.lastEffect=r):t.firstEffect=t.lastEffect=r,r.nextEffect=null,r.flags=8}}function r(r,n){if(!e)return null;for(;null!==n;)t(r,n),n=n.sibling;return null}function n(e,t){for(e=new Map;null!==t;)null!==t.key?e.set(t.key,t):e.set(t.index,t),t=t.sibling;return e}function i(e,t){return(e=Gc(e,t)).index=0,e.sibling=null,e}function o(t,r,n){return t.index=n,e?null!==(n=t.alternate)?(n=n.index)<r?(t.flags=2,r):n:(t.flags=2,r):r}function a(t){return e&&null===t.alternate&&(t.flags=2),t}function c(e,t,r,n){return null===t||6!==t.tag?((t=Xc(r,e.mode,n)).return=e,t):((t=i(t,r)).return=e,t)}function l(e,t,r,n){return null!==t&&t.elementType===r.type?((n=i(t,r.props)).ref=So(e,t,r),n.return=e,n):((n=Wc(r.type,r.key,r.props,null,e.mode,n)).ref=So(e,t,r),n.return=e,n)}function u(e,t,r,n){return null===t||4!==t.tag||t.stateNode.containerInfo!==r.containerInfo||t.stateNode.implementation!==r.implementation?((t=Jc(r,e.mode,n)).return=e,t):((t=i(t,r.children||[])).return=e,t)}function h(e,t,r,n,o){return null===t||7!==t.tag?((t=Yc(r,e.mode,n,o)).return=e,t):((t=i(t,r)).return=e,t)}function d(e,t,r){if("string"===typeof t||"number"===typeof t)return(t=Xc(""+t,e.mode,r)).return=e,t;if("object"===typeof t&&null!==t){switch(t.$$typeof){case E:return(r=Wc(t.type,t.key,t.props,null,e.mode,r)).ref=So(e,null,t),r.return=e,r;case S:return(t=Jc(t,e.mode,r)).return=e,t}if(Eo(t)||V(t))return(t=Yc(t,e.mode,r,null)).return=e,t;Ao(e,t)}return null}function p(e,t,r,n){var i=null!==t?t.key:null;if("string"===typeof r||"number"===typeof r)return null!==i?null:c(e,t,""+r,n);if("object"===typeof r&&null!==r){switch(r.$$typeof){case E:return r.key===i?r.type===A?h(e,t,r.props.children,n,i):l(e,t,r,n):null;case S:return r.key===i?u(e,t,r,n):null}if(Eo(r)||V(r))return null!==i?null:h(e,t,r,n,null);Ao(e,r)}return null}function f(e,t,r,n,i){if("string"===typeof n||"number"===typeof n)return c(t,e=e.get(r)||null,""+n,i);if("object"===typeof n&&null!==n){switch(n.$$typeof){case E:return e=e.get(null===n.key?r:n.key)||null,n.type===A?h(t,e,n.props.children,i,n.key):l(t,e,n,i);case S:return u(t,e=e.get(null===n.key?r:n.key)||null,n,i)}if(Eo(n)||V(n))return h(t,e=e.get(r)||null,n,i,null);Ao(t,n)}return null}function y(i,s,a,c){for(var l=null,u=null,h=s,y=s=0,g=null;null!==h&&y<a.length;y++){h.index>y?(g=h,h=null):g=h.sibling;var m=p(i,h,a[y],c);if(null===m){null===h&&(h=g);break}e&&h&&null===m.alternate&&t(i,h),s=o(m,s,y),null===u?l=m:u.sibling=m,u=m,h=g}if(y===a.length)return r(i,h),l;if(null===h){for(;y<a.length;y++)null!==(h=d(i,a[y],c))&&(s=o(h,s,y),null===u?l=h:u.sibling=h,u=h);return l}for(h=n(i,h);y<a.length;y++)null!==(g=f(h,i,y,a[y],c))&&(e&&null!==g.alternate&&h.delete(null===g.key?y:g.key),s=o(g,s,y),null===u?l=g:u.sibling=g,u=g);return e&&h.forEach((function(e){return t(i,e)})),l}function g(i,a,c,l){var u=V(c);if("function"!==typeof u)throw Error(s(150));if(null==(c=u.call(c)))throw Error(s(151));for(var h=u=null,y=a,g=a=0,m=null,b=c.next();null!==y&&!b.done;g++,b=c.next()){y.index>g?(m=y,y=null):m=y.sibling;var w=p(i,y,b.value,l);if(null===w){null===y&&(y=m);break}e&&y&&null===w.alternate&&t(i,y),a=o(w,a,g),null===h?u=w:h.sibling=w,h=w,y=m}if(b.done)return r(i,y),u;if(null===y){for(;!b.done;g++,b=c.next())null!==(b=d(i,b.value,l))&&(a=o(b,a,g),null===h?u=b:h.sibling=b,h=b);return u}for(y=n(i,y);!b.done;g++,b=c.next())null!==(b=f(y,i,g,b.value,l))&&(e&&null!==b.alternate&&y.delete(null===b.key?g:b.key),a=o(b,a,g),null===h?u=b:h.sibling=b,h=b);return e&&y.forEach((function(e){return t(i,e)})),u}return function(e,n,o,c){var l="object"===typeof o&&null!==o&&o.type===A&&null===o.key;l&&(o=o.props.children);var u="object"===typeof o&&null!==o;if(u)switch(o.$$typeof){case E:e:{for(u=o.key,l=n;null!==l;){if(l.key===u){if(7===l.tag){if(o.type===A){r(e,l.sibling),(n=i(l,o.props.children)).return=e,e=n;break e}}else if(l.elementType===o.type){r(e,l.sibling),(n=i(l,o.props)).ref=So(e,l,o),n.return=e,e=n;break e}r(e,l);break}t(e,l),l=l.sibling}o.type===A?((n=Yc(o.props.children,e.mode,c,o.key)).return=e,e=n):((c=Wc(o.type,o.key,o.props,null,e.mode,c)).ref=So(e,n,o),c.return=e,e=c)}return a(e);case S:e:{for(l=o.key;null!==n;){if(n.key===l){if(4===n.tag&&n.stateNode.containerInfo===o.containerInfo&&n.stateNode.implementation===o.implementation){r(e,n.sibling),(n=i(n,o.children||[])).return=e,e=n;break e}r(e,n);break}t(e,n),n=n.sibling}(n=Jc(o,e.mode,c)).return=e,e=n}return a(e)}if("string"===typeof o||"number"===typeof o)return o=""+o,null!==n&&6===n.tag?(r(e,n.sibling),(n=i(n,o)).return=e,e=n):(r(e,n),(n=Xc(o,e.mode,c)).return=e,e=n),a(e);if(Eo(o))return y(e,n,o,c);if(V(o))return g(e,n,o,c);if(u&&Ao(e,o),"undefined"===typeof o&&!l)switch(e.tag){case 1:case 22:case 0:case 11:case 15:throw Error(s(152,W(e.type)||"Component"))}return r(e,n)}}var Io=ko(!0),Ro=ko(!1),Po={},Co=ci(Po),To=ci(Po),xo=ci(Po);function Do(e){if(e===Po)throw Error(s(174));return e}function No(e,t){switch(ui(xo,t),ui(To,e),ui(Co,Po),e=t.nodeType){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:pe(null,"");break;default:t=pe(t=(e=8===e?t.parentNode:t).namespaceURI||null,e=e.tagName)}li(Co),ui(Co,t)}function Lo(){li(Co),li(To),li(xo)}function Bo(e){Do(xo.current);var t=Do(Co.current),r=pe(t,e.type);t!==r&&(ui(To,e),ui(Co,r))}function Mo(e){To.current===e&&(li(Co),li(To))}var Oo=ci(0);function Uo(e){for(var t=e;null!==t;){if(13===t.tag){var r=t.memoizedState;if(null!==r&&(null===(r=r.dehydrated)||"$?"===r.data||"$!"===r.data))return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(0!==(64&t.flags))return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var Ko=null,qo=null,Fo=!1;function Vo(e,t){var r=jc(5,null,null,0);r.elementType="DELETED",r.type="DELETED",r.stateNode=t,r.return=e,r.flags=8,null!==e.lastEffect?(e.lastEffect.nextEffect=r,e.lastEffect=r):e.firstEffect=e.lastEffect=r}function zo(e,t){switch(e.tag){case 5:var r=e.type;return null!==(t=1!==t.nodeType||r.toLowerCase()!==t.nodeName.toLowerCase()?null:t)&&(e.stateNode=t,!0);case 6:return null!==(t=""===e.pendingProps||3!==t.nodeType?null:t)&&(e.stateNode=t,!0);default:return!1}}function jo(e){if(Fo){var t=qo;if(t){var r=t;if(!zo(e,t)){if(!(t=Wn(r.nextSibling))||!zo(e,t))return e.flags=-1025&e.flags|2,Fo=!1,void(Ko=e);Vo(Ko,r)}Ko=e,qo=Wn(t.firstChild)}else e.flags=-1025&e.flags|2,Fo=!1,Ko=e}}function Ho(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&13!==e.tag;)e=e.return;Ko=e}function Go(e){if(e!==Ko)return!1;if(!Fo)return Ho(e),Fo=!0,!1;var t=e.type;if(5!==e.tag||"head"!==t&&"body"!==t&&!zn(t,e.memoizedProps))for(t=qo;t;)Vo(e,t),t=Wn(t.nextSibling);if(Ho(e),13===e.tag){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(s(317));e:{for(e=e.nextSibling,t=0;e;){if(8===e.nodeType){var r=e.data;if("/$"===r){if(0===t){qo=Wn(e.nextSibling);break e}t--}else"$"!==r&&"$!"!==r&&"$?"!==r||t++}e=e.nextSibling}qo=null}}else qo=Ko?Wn(e.stateNode.nextSibling):null;return!0}function Wo(){qo=Ko=null,Fo=!1}var Yo=[];function Qo(){for(var e=0;e<Yo.length;e++)Yo[e]._workInProgressVersionPrimary=null;Yo.length=0}var Xo=_.ReactCurrentDispatcher,Jo=_.ReactCurrentBatchConfig,Zo=0,$o=null,es=null,ts=null,rs=!1,ns=!1;function is(){throw Error(s(321))}function os(e,t){if(null===t)return!1;for(var r=0;r<t.length&&r<e.length;r++)if(!ln(e[r],t[r]))return!1;return!0}function ss(e,t,r,n,i,o){if(Zo=o,$o=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,Xo.current=null===e||null===e.memoizedState?Ds:Ns,e=r(n,i),ns){o=0;do{if(ns=!1,!(25>o))throw Error(s(301));o+=1,ts=es=null,t.updateQueue=null,Xo.current=Ls,e=r(n,i)}while(ns)}if(Xo.current=xs,t=null!==es&&null!==es.next,Zo=0,ts=es=$o=null,rs=!1,t)throw Error(s(300));return e}function as(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===ts?$o.memoizedState=ts=e:ts=ts.next=e,ts}function cs(){if(null===es){var e=$o.alternate;e=null!==e?e.memoizedState:null}else e=es.next;var t=null===ts?$o.memoizedState:ts.next;if(null!==t)ts=t,es=e;else{if(null===e)throw Error(s(310));e={memoizedState:(es=e).memoizedState,baseState:es.baseState,baseQueue:es.baseQueue,queue:es.queue,next:null},null===ts?$o.memoizedState=ts=e:ts=ts.next=e}return ts}function ls(e,t){return"function"===typeof t?t(e):t}function us(e){var t=cs(),r=t.queue;if(null===r)throw Error(s(311));r.lastRenderedReducer=e;var n=es,i=n.baseQueue,o=r.pending;if(null!==o){if(null!==i){var a=i.next;i.next=o.next,o.next=a}n.baseQueue=i=o,r.pending=null}if(null!==i){i=i.next,n=n.baseState;var c=a=o=null,l=i;do{var u=l.lane;if((Zo&u)===u)null!==c&&(c=c.next={lane:0,action:l.action,eagerReducer:l.eagerReducer,eagerState:l.eagerState,next:null}),n=l.eagerReducer===e?l.eagerState:e(n,l.action);else{var h={lane:u,action:l.action,eagerReducer:l.eagerReducer,eagerState:l.eagerState,next:null};null===c?(a=c=h,o=n):c=c.next=h,$o.lanes|=u,Fa|=u}l=l.next}while(null!==l&&l!==i);null===c?o=n:c.next=a,ln(n,t.memoizedState)||(Ms=!0),t.memoizedState=n,t.baseState=o,t.baseQueue=c,r.lastRenderedState=n}return[t.memoizedState,r.dispatch]}function hs(e){var t=cs(),r=t.queue;if(null===r)throw Error(s(311));r.lastRenderedReducer=e;var n=r.dispatch,i=r.pending,o=t.memoizedState;if(null!==i){r.pending=null;var a=i=i.next;do{o=e(o,a.action),a=a.next}while(a!==i);ln(o,t.memoizedState)||(Ms=!0),t.memoizedState=o,null===t.baseQueue&&(t.baseState=o),r.lastRenderedState=o}return[o,n]}function ds(e,t,r){var n=t._getVersion;n=n(t._source);var i=t._workInProgressVersionPrimary;if(null!==i?e=i===n:(e=e.mutableReadLanes,(e=(Zo&e)===e)&&(t._workInProgressVersionPrimary=n,Yo.push(t))),e)return r(t._source);throw Yo.push(t),Error(s(350))}function ps(e,t,r,n){var i=Na;if(null===i)throw Error(s(349));var o=t._getVersion,a=o(t._source),c=Xo.current,l=c.useState((function(){return ds(i,t,r)})),u=l[1],h=l[0];l=ts;var d=e.memoizedState,p=d.refs,f=p.getSnapshot,y=d.source;d=d.subscribe;var g=$o;return e.memoizedState={refs:p,source:t,subscribe:n},c.useEffect((function(){p.getSnapshot=r,p.setSnapshot=u;var e=o(t._source);if(!ln(a,e)){e=r(t._source),ln(h,e)||(u(e),e=pc(g),i.mutableReadLanes|=e&i.pendingLanes),e=i.mutableReadLanes,i.entangledLanes|=e;for(var n=i.entanglements,s=e;0<s;){var c=31-zt(s),l=1<<c;n[c]|=e,s&=~l}}}),[r,t,n]),c.useEffect((function(){return n(t._source,(function(){var e=p.getSnapshot,r=p.setSnapshot;try{r(e(t._source));var n=pc(g);i.mutableReadLanes|=n&i.pendingLanes}catch(o){r((function(){throw o}))}}))}),[t,n]),ln(f,r)&&ln(y,t)&&ln(d,n)||((e={pending:null,dispatch:null,lastRenderedReducer:ls,lastRenderedState:h}).dispatch=u=Ts.bind(null,$o,e),l.queue=e,l.baseQueue=null,h=ds(i,t,r),l.memoizedState=l.baseState=h),h}function fs(e,t,r){return ps(cs(),e,t,r)}function ys(e){var t=as();return"function"===typeof e&&(e=e()),t.memoizedState=t.baseState=e,e=(e=t.queue={pending:null,dispatch:null,lastRenderedReducer:ls,lastRenderedState:e}).dispatch=Ts.bind(null,$o,e),[t.memoizedState,e]}function gs(e,t,r,n){return e={tag:e,create:t,destroy:r,deps:n,next:null},null===(t=$o.updateQueue)?(t={lastEffect:null},$o.updateQueue=t,t.lastEffect=e.next=e):null===(r=t.lastEffect)?t.lastEffect=e.next=e:(n=r.next,r.next=e,e.next=n,t.lastEffect=e),e}function ms(e){return e={current:e},as().memoizedState=e}function bs(){return cs().memoizedState}function ws(e,t,r,n){var i=as();$o.flags|=e,i.memoizedState=gs(1|t,r,void 0,void 0===n?null:n)}function vs(e,t,r,n){var i=cs();n=void 0===n?null:n;var o=void 0;if(null!==es){var s=es.memoizedState;if(o=s.destroy,null!==n&&os(n,s.deps))return void gs(t,r,o,n)}$o.flags|=e,i.memoizedState=gs(1|t,r,o,n)}function _s(e,t){return ws(516,4,e,t)}function Es(e,t){return vs(516,4,e,t)}function Ss(e,t){return vs(4,2,e,t)}function As(e,t){return"function"===typeof t?(e=e(),t(e),function(){t(null)}):null!==t&&void 0!==t?(e=e(),t.current=e,function(){t.current=null}):void 0}function ks(e,t,r){return r=null!==r&&void 0!==r?r.concat([e]):null,vs(4,2,As.bind(null,t,e),r)}function Is(){}function Rs(e,t){var r=cs();t=void 0===t?null:t;var n=r.memoizedState;return null!==n&&null!==t&&os(t,n[1])?n[0]:(r.memoizedState=[e,t],e)}function Ps(e,t){var r=cs();t=void 0===t?null:t;var n=r.memoizedState;return null!==n&&null!==t&&os(t,n[1])?n[0]:(e=e(),r.memoizedState=[e,t],e)}function Cs(e,t){var r=zi();Hi(98>r?98:r,(function(){e(!0)})),Hi(97<r?97:r,(function(){var r=Jo.transition;Jo.transition=1;try{e(!1),t()}finally{Jo.transition=r}}))}function Ts(e,t,r){var n=dc(),i=pc(e),o={lane:i,action:r,eagerReducer:null,eagerState:null,next:null},s=t.pending;if(null===s?o.next=o:(o.next=s.next,s.next=o),t.pending=o,s=e.alternate,e===$o||null!==s&&s===$o)ns=rs=!0;else{if(0===e.lanes&&(null===s||0===s.lanes)&&null!==(s=t.lastRenderedReducer))try{var a=t.lastRenderedState,c=s(a,r);if(o.eagerReducer=s,o.eagerState=c,ln(c,a))return}catch(l){}fc(e,i,n)}}var xs={readContext:oo,useCallback:is,useContext:is,useEffect:is,useImperativeHandle:is,useLayoutEffect:is,useMemo:is,useReducer:is,useRef:is,useState:is,useDebugValue:is,useDeferredValue:is,useTransition:is,useMutableSource:is,useOpaqueIdentifier:is,unstable_isNewReconciler:!1},Ds={readContext:oo,useCallback:function(e,t){return as().memoizedState=[e,void 0===t?null:t],e},useContext:oo,useEffect:_s,useImperativeHandle:function(e,t,r){return r=null!==r&&void 0!==r?r.concat([e]):null,ws(4,2,As.bind(null,t,e),r)},useLayoutEffect:function(e,t){return ws(4,2,e,t)},useMemo:function(e,t){var r=as();return t=void 0===t?null:t,e=e(),r.memoizedState=[e,t],e},useReducer:function(e,t,r){var n=as();return t=void 0!==r?r(t):t,n.memoizedState=n.baseState=t,e=(e=n.queue={pending:null,dispatch:null,lastRenderedReducer:e,lastRenderedState:t}).dispatch=Ts.bind(null,$o,e),[n.memoizedState,e]},useRef:ms,useState:ys,useDebugValue:Is,useDeferredValue:function(e){var t=ys(e),r=t[0],n=t[1];return _s((function(){var t=Jo.transition;Jo.transition=1;try{n(e)}finally{Jo.transition=t}}),[e]),r},useTransition:function(){var e=ys(!1),t=e[0];return ms(e=Cs.bind(null,e[1])),[e,t]},useMutableSource:function(e,t,r){var n=as();return n.memoizedState={refs:{getSnapshot:t,setSnapshot:null},source:e,subscribe:r},ps(n,e,t,r)},useOpaqueIdentifier:function(){if(Fo){var e=!1,t=function(e){return{$$typeof:B,toString:e,valueOf:e}}((function(){throw e||(e=!0,r("r:"+(Qn++).toString(36))),Error(s(355))})),r=ys(t)[1];return 0===(2&$o.mode)&&($o.flags|=516,gs(5,(function(){r("r:"+(Qn++).toString(36))}),void 0,null)),t}return ys(t="r:"+(Qn++).toString(36)),t},unstable_isNewReconciler:!1},Ns={readContext:oo,useCallback:Rs,useContext:oo,useEffect:Es,useImperativeHandle:ks,useLayoutEffect:Ss,useMemo:Ps,useReducer:us,useRef:bs,useState:function(){return us(ls)},useDebugValue:Is,useDeferredValue:function(e){var t=us(ls),r=t[0],n=t[1];return Es((function(){var t=Jo.transition;Jo.transition=1;try{n(e)}finally{Jo.transition=t}}),[e]),r},useTransition:function(){var e=us(ls)[0];return[bs().current,e]},useMutableSource:fs,useOpaqueIdentifier:function(){return us(ls)[0]},unstable_isNewReconciler:!1},Ls={readContext:oo,useCallback:Rs,useContext:oo,useEffect:Es,useImperativeHandle:ks,useLayoutEffect:Ss,useMemo:Ps,useReducer:hs,useRef:bs,useState:function(){return hs(ls)},useDebugValue:Is,useDeferredValue:function(e){var t=hs(ls),r=t[0],n=t[1];return Es((function(){var t=Jo.transition;Jo.transition=1;try{n(e)}finally{Jo.transition=t}}),[e]),r},useTransition:function(){var e=hs(ls)[0];return[bs().current,e]},useMutableSource:fs,useOpaqueIdentifier:function(){return hs(ls)[0]},unstable_isNewReconciler:!1},Bs=_.ReactCurrentOwner,Ms=!1;function Os(e,t,r,n){t.child=null===e?Ro(t,null,r,n):Io(t,e.child,r,n)}function Us(e,t,r,n,i){r=r.render;var o=t.ref;return io(t,i),n=ss(e,t,r,n,o,i),null===e||Ms?(t.flags|=1,Os(e,t,n,i),t.child):(t.updateQueue=e.updateQueue,t.flags&=-517,e.lanes&=~i,oa(e,t,i))}function Ks(e,t,r,n,i,o){if(null===e){var s=r.type;return"function"!==typeof s||Hc(s)||void 0!==s.defaultProps||null!==r.compare||void 0!==r.defaultProps?((e=Wc(r.type,null,n,t,t.mode,o)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=s,qs(e,t,s,n,i,o))}return s=e.child,0===(i&o)&&(i=s.memoizedProps,(r=null!==(r=r.compare)?r:hn)(i,n)&&e.ref===t.ref)?oa(e,t,o):(t.flags|=1,(e=Gc(s,n)).ref=t.ref,e.return=t,t.child=e)}function qs(e,t,r,n,i,o){if(null!==e&&hn(e.memoizedProps,n)&&e.ref===t.ref){if(Ms=!1,0===(o&i))return t.lanes=e.lanes,oa(e,t,o);0!==(16384&e.flags)&&(Ms=!0)}return zs(e,t,r,n,o)}function Fs(e,t,r){var n=t.pendingProps,i=n.children,o=null!==e?e.memoizedState:null;if("hidden"===n.mode||"unstable-defer-without-hiding"===n.mode)if(0===(4&t.mode))t.memoizedState={baseLanes:0},Ec(t,r);else{if(0===(1073741824&r))return e=null!==o?o.baseLanes|r:r,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e},Ec(t,e),null;t.memoizedState={baseLanes:0},Ec(t,null!==o?o.baseLanes:r)}else null!==o?(n=o.baseLanes|r,t.memoizedState=null):n=r,Ec(t,n);return Os(e,t,i,r),t.child}function Vs(e,t){var r=t.ref;(null===e&&null!==r||null!==e&&e.ref!==r)&&(t.flags|=128)}function zs(e,t,r,n,i){var o=gi(r)?fi:di.current;return o=yi(t,o),io(t,i),r=ss(e,t,r,n,o,i),null===e||Ms?(t.flags|=1,Os(e,t,r,i),t.child):(t.updateQueue=e.updateQueue,t.flags&=-517,e.lanes&=~i,oa(e,t,i))}function js(e,t,r,n,i){if(gi(r)){var o=!0;vi(t)}else o=!1;if(io(t,i),null===t.stateNode)null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),wo(t,r,n),_o(t,r,n,i),n=!0;else if(null===e){var s=t.stateNode,a=t.memoizedProps;s.props=a;var c=s.context,l=r.contextType;"object"===typeof l&&null!==l?l=oo(l):l=yi(t,l=gi(r)?fi:di.current);var u=r.getDerivedStateFromProps,h="function"===typeof u||"function"===typeof s.getSnapshotBeforeUpdate;h||"function"!==typeof s.UNSAFE_componentWillReceiveProps&&"function"!==typeof s.componentWillReceiveProps||(a!==n||c!==l)&&vo(t,s,n,l),so=!1;var d=t.memoizedState;s.state=d,po(t,n,s,i),c=t.memoizedState,a!==n||d!==c||pi.current||so?("function"===typeof u&&(go(t,r,u,n),c=t.memoizedState),(a=so||bo(t,r,a,n,d,c,l))?(h||"function"!==typeof s.UNSAFE_componentWillMount&&"function"!==typeof s.componentWillMount||("function"===typeof s.componentWillMount&&s.componentWillMount(),"function"===typeof s.UNSAFE_componentWillMount&&s.UNSAFE_componentWillMount()),"function"===typeof s.componentDidMount&&(t.flags|=4)):("function"===typeof s.componentDidMount&&(t.flags|=4),t.memoizedProps=n,t.memoizedState=c),s.props=n,s.state=c,s.context=l,n=a):("function"===typeof s.componentDidMount&&(t.flags|=4),n=!1)}else{s=t.stateNode,co(e,t),a=t.memoizedProps,l=t.type===t.elementType?a:Xi(t.type,a),s.props=l,h=t.pendingProps,d=s.context,"object"===typeof(c=r.contextType)&&null!==c?c=oo(c):c=yi(t,c=gi(r)?fi:di.current);var p=r.getDerivedStateFromProps;(u="function"===typeof p||"function"===typeof s.getSnapshotBeforeUpdate)||"function"!==typeof s.UNSAFE_componentWillReceiveProps&&"function"!==typeof s.componentWillReceiveProps||(a!==h||d!==c)&&vo(t,s,n,c),so=!1,d=t.memoizedState,s.state=d,po(t,n,s,i);var f=t.memoizedState;a!==h||d!==f||pi.current||so?("function"===typeof p&&(go(t,r,p,n),f=t.memoizedState),(l=so||bo(t,r,l,n,d,f,c))?(u||"function"!==typeof s.UNSAFE_componentWillUpdate&&"function"!==typeof s.componentWillUpdate||("function"===typeof s.componentWillUpdate&&s.componentWillUpdate(n,f,c),"function"===typeof s.UNSAFE_componentWillUpdate&&s.UNSAFE_componentWillUpdate(n,f,c)),"function"===typeof s.componentDidUpdate&&(t.flags|=4),"function"===typeof s.getSnapshotBeforeUpdate&&(t.flags|=256)):("function"!==typeof s.componentDidUpdate||a===e.memoizedProps&&d===e.memoizedState||(t.flags|=4),"function"!==typeof s.getSnapshotBeforeUpdate||a===e.memoizedProps&&d===e.memoizedState||(t.flags|=256),t.memoizedProps=n,t.memoizedState=f),s.props=n,s.state=f,s.context=c,n=l):("function"!==typeof s.componentDidUpdate||a===e.memoizedProps&&d===e.memoizedState||(t.flags|=4),"function"!==typeof s.getSnapshotBeforeUpdate||a===e.memoizedProps&&d===e.memoizedState||(t.flags|=256),n=!1)}return Hs(e,t,r,n,o,i)}function Hs(e,t,r,n,i,o){Vs(e,t);var s=0!==(64&t.flags);if(!n&&!s)return i&&_i(t,r,!1),oa(e,t,o);n=t.stateNode,Bs.current=t;var a=s&&"function"!==typeof r.getDerivedStateFromError?null:n.render();return t.flags|=1,null!==e&&s?(t.child=Io(t,e.child,null,o),t.child=Io(t,null,a,o)):Os(e,t,a,o),t.memoizedState=n.state,i&&_i(t,r,!0),t.child}function Gs(e){var t=e.stateNode;t.pendingContext?bi(0,t.pendingContext,t.pendingContext!==t.context):t.context&&bi(0,t.context,!1),No(e,t.containerInfo)}var Ws,Ys,Qs,Xs,Js={dehydrated:null,retryLane:0};function Zs(e,t,r){var n,i=t.pendingProps,o=Oo.current,s=!1;return(n=0!==(64&t.flags))||(n=(null===e||null!==e.memoizedState)&&0!==(2&o)),n?(s=!0,t.flags&=-65):null!==e&&null===e.memoizedState||void 0===i.fallback||!0===i.unstable_avoidThisFallback||(o|=1),ui(Oo,1&o),null===e?(void 0!==i.fallback&&jo(t),e=i.children,o=i.fallback,s?(e=$s(t,e,o,r),t.child.memoizedState={baseLanes:r},t.memoizedState=Js,e):"number"===typeof i.unstable_expectedLoadTime?(e=$s(t,e,o,r),t.child.memoizedState={baseLanes:r},t.memoizedState=Js,t.lanes=33554432,e):((r=Qc({mode:"visible",children:e},t.mode,r,null)).return=t,t.child=r)):(e.memoizedState,s?(i=ta(e,t,i.children,i.fallback,r),s=t.child,o=e.child.memoizedState,s.memoizedState=null===o?{baseLanes:r}:{baseLanes:o.baseLanes|r},s.childLanes=e.childLanes&~r,t.memoizedState=Js,i):(r=ea(e,t,i.children,r),t.memoizedState=null,r))}function $s(e,t,r,n){var i=e.mode,o=e.child;return t={mode:"hidden",children:t},0===(2&i)&&null!==o?(o.childLanes=0,o.pendingProps=t):o=Qc(t,i,0,null),r=Yc(r,i,n,null),o.return=e,r.return=e,o.sibling=r,e.child=o,r}function ea(e,t,r,n){var i=e.child;return e=i.sibling,r=Gc(i,{mode:"visible",children:r}),0===(2&t.mode)&&(r.lanes=n),r.return=t,r.sibling=null,null!==e&&(e.nextEffect=null,e.flags=8,t.firstEffect=t.lastEffect=e),t.child=r}function ta(e,t,r,n,i){var o=t.mode,s=e.child;e=s.sibling;var a={mode:"hidden",children:r};return 0===(2&o)&&t.child!==s?((r=t.child).childLanes=0,r.pendingProps=a,null!==(s=r.lastEffect)?(t.firstEffect=r.firstEffect,t.lastEffect=s,s.nextEffect=null):t.firstEffect=t.lastEffect=null):r=Gc(s,a),null!==e?n=Gc(e,n):(n=Yc(n,o,i,null)).flags|=2,n.return=t,r.return=t,r.sibling=n,t.child=r,n}function ra(e,t){e.lanes|=t;var r=e.alternate;null!==r&&(r.lanes|=t),no(e.return,t)}function na(e,t,r,n,i,o){var s=e.memoizedState;null===s?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:n,tail:r,tailMode:i,lastEffect:o}:(s.isBackwards=t,s.rendering=null,s.renderingStartTime=0,s.last=n,s.tail=r,s.tailMode=i,s.lastEffect=o)}function ia(e,t,r){var n=t.pendingProps,i=n.revealOrder,o=n.tail;if(Os(e,t,n.children,r),0!==(2&(n=Oo.current)))n=1&n|2,t.flags|=64;else{if(null!==e&&0!==(64&e.flags))e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&ra(e,r);else if(19===e.tag)ra(e,r);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;null===e.sibling;){if(null===e.return||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}n&=1}if(ui(Oo,n),0===(2&t.mode))t.memoizedState=null;else switch(i){case"forwards":for(r=t.child,i=null;null!==r;)null!==(e=r.alternate)&&null===Uo(e)&&(i=r),r=r.sibling;null===(r=i)?(i=t.child,t.child=null):(i=r.sibling,r.sibling=null),na(t,!1,i,r,o,t.lastEffect);break;case"backwards":for(r=null,i=t.child,t.child=null;null!==i;){if(null!==(e=i.alternate)&&null===Uo(e)){t.child=i;break}e=i.sibling,i.sibling=r,r=i,i=e}na(t,!0,r,null,o,t.lastEffect);break;case"together":na(t,!1,null,null,void 0,t.lastEffect);break;default:t.memoizedState=null}return t.child}function oa(e,t,r){if(null!==e&&(t.dependencies=e.dependencies),Fa|=t.lanes,0!==(r&t.childLanes)){if(null!==e&&t.child!==e.child)throw Error(s(153));if(null!==t.child){for(r=Gc(e=t.child,e.pendingProps),t.child=r,r.return=t;null!==e.sibling;)e=e.sibling,(r=r.sibling=Gc(e,e.pendingProps)).return=t;r.sibling=null}return t.child}return null}function sa(e,t){if(!Fo)switch(e.tailMode){case"hidden":t=e.tail;for(var r=null;null!==t;)null!==t.alternate&&(r=t),t=t.sibling;null===r?e.tail=null:r.sibling=null;break;case"collapsed":r=e.tail;for(var n=null;null!==r;)null!==r.alternate&&(n=r),r=r.sibling;null===n?t||null===e.tail?e.tail=null:e.tail.sibling=null:n.sibling=null}}function aa(e,t,r){var n=t.pendingProps;switch(t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return null;case 1:case 17:return gi(t.type)&&mi(),null;case 3:return Lo(),li(pi),li(di),Qo(),(n=t.stateNode).pendingContext&&(n.context=n.pendingContext,n.pendingContext=null),null!==e&&null!==e.child||(Go(t)?t.flags|=4:n.hydrate||(t.flags|=256)),Ys(t),null;case 5:Mo(t);var o=Do(xo.current);if(r=t.type,null!==e&&null!=t.stateNode)Qs(e,t,r,n,o),e.ref!==t.ref&&(t.flags|=128);else{if(!n){if(null===t.stateNode)throw Error(s(166));return null}if(e=Do(Co.current),Go(t)){n=t.stateNode,r=t.type;var a=t.memoizedProps;switch(n[Jn]=t,n[Zn]=a,r){case"dialog":Cn("cancel",n),Cn("close",n);break;case"iframe":case"object":case"embed":Cn("load",n);break;case"video":case"audio":for(e=0;e<kn.length;e++)Cn(kn[e],n);break;case"source":Cn("error",n);break;case"img":case"image":case"link":Cn("error",n),Cn("load",n);break;case"details":Cn("toggle",n);break;case"input":ee(n,a),Cn("invalid",n);break;case"select":n._wrapperState={wasMultiple:!!a.multiple},Cn("invalid",n);break;case"textarea":ce(n,a),Cn("invalid",n)}for(var l in Se(r,a),e=null,a)a.hasOwnProperty(l)&&(o=a[l],"children"===l?"string"===typeof o?n.textContent!==o&&(e=["children",o]):"number"===typeof o&&n.textContent!==""+o&&(e=["children",""+o]):c.hasOwnProperty(l)&&null!=o&&"onScroll"===l&&Cn("scroll",n));switch(r){case"input":X(n),ne(n,a,!0);break;case"textarea":X(n),ue(n);break;case"select":case"option":break;default:"function"===typeof a.onClick&&(n.onclick=Kn)}n=e,t.updateQueue=n,null!==n&&(t.flags|=4)}else{switch(l=9===o.nodeType?o:o.ownerDocument,e===he.html&&(e=de(r)),e===he.html?"script"===r?((e=l.createElement("div")).innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):"string"===typeof n.is?e=l.createElement(r,{is:n.is}):(e=l.createElement(r),"select"===r&&(l=e,n.multiple?l.multiple=!0:n.size&&(l.size=n.size))):e=l.createElementNS(e,r),e[Jn]=t,e[Zn]=n,Ws(e,t,!1,!1),t.stateNode=e,l=Ae(r,n),r){case"dialog":Cn("cancel",e),Cn("close",e),o=n;break;case"iframe":case"object":case"embed":Cn("load",e),o=n;break;case"video":case"audio":for(o=0;o<kn.length;o++)Cn(kn[o],e);o=n;break;case"source":Cn("error",e),o=n;break;case"img":case"image":case"link":Cn("error",e),Cn("load",e),o=n;break;case"details":Cn("toggle",e),o=n;break;case"input":ee(e,n),o=$(e,n),Cn("invalid",e);break;case"option":o=oe(e,n);break;case"select":e._wrapperState={wasMultiple:!!n.multiple},o=i({},n,{value:void 0}),Cn("invalid",e);break;case"textarea":ce(e,n),o=ae(e,n),Cn("invalid",e);break;default:o=n}Se(r,o);var u=o;for(a in u)if(u.hasOwnProperty(a)){var h=u[a];"style"===a?_e(e,h):"dangerouslySetInnerHTML"===a?null!=(h=h?h.__html:void 0)&&ge(e,h):"children"===a?"string"===typeof h?("textarea"!==r||""!==h)&&me(e,h):"number"===typeof h&&me(e,""+h):"suppressContentEditableWarning"!==a&&"suppressHydrationWarning"!==a&&"autoFocus"!==a&&(c.hasOwnProperty(a)?null!=h&&"onScroll"===a&&Cn("scroll",e):null!=h&&v(e,a,h,l))}switch(r){case"input":X(e),ne(e,n,!1);break;case"textarea":X(e),ue(e);break;case"option":null!=n.value&&e.setAttribute("value",""+Y(n.value));break;case"select":e.multiple=!!n.multiple,null!=(a=n.value)?se(e,!!n.multiple,a,!1):null!=n.defaultValue&&se(e,!!n.multiple,n.defaultValue,!0);break;default:"function"===typeof o.onClick&&(e.onclick=Kn)}Vn(r,n)&&(t.flags|=4)}null!==t.ref&&(t.flags|=128)}return null;case 6:if(e&&null!=t.stateNode)Xs(e,t,e.memoizedProps,n);else{if("string"!==typeof n&&null===t.stateNode)throw Error(s(166));r=Do(xo.current),Do(Co.current),Go(t)?(n=t.stateNode,r=t.memoizedProps,n[Jn]=t,n.nodeValue!==r&&(t.flags|=4)):((n=(9===r.nodeType?r:r.ownerDocument).createTextNode(n))[Jn]=t,t.stateNode=n)}return null;case 13:return li(Oo),n=t.memoizedState,0!==(64&t.flags)?(t.lanes=r,t):(n=null!==n,r=!1,null===e?void 0!==t.memoizedProps.fallback&&Go(t):r=null!==e.memoizedState,n&&!r&&0!==(2&t.mode)&&(null===e&&!0!==t.memoizedProps.unstable_avoidThisFallback||0!==(1&Oo.current)?0===Ua&&(Ua=3):(0!==Ua&&3!==Ua||(Ua=4),null===Na||0===(134217727&Fa)&&0===(134217727&Va)||bc(Na,Ba))),(n||r)&&(t.flags|=4),null);case 4:return Lo(),Ys(t),null===e&&xn(t.stateNode.containerInfo),null;case 10:return ro(t),null;case 19:if(li(Oo),null===(n=t.memoizedState))return null;if(a=0!==(64&t.flags),null===(l=n.rendering))if(a)sa(n,!1);else{if(0!==Ua||null!==e&&0!==(64&e.flags))for(e=t.child;null!==e;){if(null!==(l=Uo(e))){for(t.flags|=64,sa(n,!1),null!==(a=l.updateQueue)&&(t.updateQueue=a,t.flags|=4),null===n.lastEffect&&(t.firstEffect=null),t.lastEffect=n.lastEffect,n=r,r=t.child;null!==r;)e=n,(a=r).flags&=2,a.nextEffect=null,a.firstEffect=null,a.lastEffect=null,null===(l=a.alternate)?(a.childLanes=0,a.lanes=e,a.child=null,a.memoizedProps=null,a.memoizedState=null,a.updateQueue=null,a.dependencies=null,a.stateNode=null):(a.childLanes=l.childLanes,a.lanes=l.lanes,a.child=l.child,a.memoizedProps=l.memoizedProps,a.memoizedState=l.memoizedState,a.updateQueue=l.updateQueue,a.type=l.type,e=l.dependencies,a.dependencies=null===e?null:{lanes:e.lanes,firstContext:e.firstContext}),r=r.sibling;return ui(Oo,1&Oo.current|2),t.child}e=e.sibling}null!==n.tail&&Vi()>Ga&&(t.flags|=64,a=!0,sa(n,!1),t.lanes=33554432)}else{if(!a)if(null!==(e=Uo(l))){if(t.flags|=64,a=!0,null!==(r=e.updateQueue)&&(t.updateQueue=r,t.flags|=4),sa(n,!0),null===n.tail&&"hidden"===n.tailMode&&!l.alternate&&!Fo)return null!==(t=t.lastEffect=n.lastEffect)&&(t.nextEffect=null),null}else 2*Vi()-n.renderingStartTime>Ga&&1073741824!==r&&(t.flags|=64,a=!0,sa(n,!1),t.lanes=33554432);n.isBackwards?(l.sibling=t.child,t.child=l):(null!==(r=n.last)?r.sibling=l:t.child=l,n.last=l)}return null!==n.tail?(r=n.tail,n.rendering=r,n.tail=r.sibling,n.lastEffect=t.lastEffect,n.renderingStartTime=Vi(),r.sibling=null,t=Oo.current,ui(Oo,a?1&t|2:1&t),r):null;case 23:case 24:return Sc(),null!==e&&null!==e.memoizedState!==(null!==t.memoizedState)&&"unstable-defer-without-hiding"!==n.mode&&(t.flags|=4),null}throw Error(s(156,t.tag))}function ca(e){switch(e.tag){case 1:gi(e.type)&&mi();var t=e.flags;return 4096&t?(e.flags=-4097&t|64,e):null;case 3:if(Lo(),li(pi),li(di),Qo(),0!==(64&(t=e.flags)))throw Error(s(285));return e.flags=-4097&t|64,e;case 5:return Mo(e),null;case 13:return li(Oo),4096&(t=e.flags)?(e.flags=-4097&t|64,e):null;case 19:return li(Oo),null;case 4:return Lo(),null;case 10:return ro(e),null;case 23:case 24:return Sc(),null;default:return null}}function la(e,t){try{var r="",n=t;do{r+=G(n),n=n.return}while(n);var i=r}catch(o){i="\nError generating stack: "+o.message+"\n"+o.stack}return{value:e,source:t,stack:i}}function ua(e,t){try{console.error(t.value)}catch(r){setTimeout((function(){throw r}))}}Ws=function(e,t){for(var r=t.child;null!==r;){if(5===r.tag||6===r.tag)e.appendChild(r.stateNode);else if(4!==r.tag&&null!==r.child){r.child.return=r,r=r.child;continue}if(r===t)break;for(;null===r.sibling;){if(null===r.return||r.return===t)return;r=r.return}r.sibling.return=r.return,r=r.sibling}},Ys=function(){},Qs=function(e,t,r,n){var o=e.memoizedProps;if(o!==n){e=t.stateNode,Do(Co.current);var s,a=null;switch(r){case"input":o=$(e,o),n=$(e,n),a=[];break;case"option":o=oe(e,o),n=oe(e,n),a=[];break;case"select":o=i({},o,{value:void 0}),n=i({},n,{value:void 0}),a=[];break;case"textarea":o=ae(e,o),n=ae(e,n),a=[];break;default:"function"!==typeof o.onClick&&"function"===typeof n.onClick&&(e.onclick=Kn)}for(h in Se(r,n),r=null,o)if(!n.hasOwnProperty(h)&&o.hasOwnProperty(h)&&null!=o[h])if("style"===h){var l=o[h];for(s in l)l.hasOwnProperty(s)&&(r||(r={}),r[s]="")}else"dangerouslySetInnerHTML"!==h&&"children"!==h&&"suppressContentEditableWarning"!==h&&"suppressHydrationWarning"!==h&&"autoFocus"!==h&&(c.hasOwnProperty(h)?a||(a=[]):(a=a||[]).push(h,null));for(h in n){var u=n[h];if(l=null!=o?o[h]:void 0,n.hasOwnProperty(h)&&u!==l&&(null!=u||null!=l))if("style"===h)if(l){for(s in l)!l.hasOwnProperty(s)||u&&u.hasOwnProperty(s)||(r||(r={}),r[s]="");for(s in u)u.hasOwnProperty(s)&&l[s]!==u[s]&&(r||(r={}),r[s]=u[s])}else r||(a||(a=[]),a.push(h,r)),r=u;else"dangerouslySetInnerHTML"===h?(u=u?u.__html:void 0,l=l?l.__html:void 0,null!=u&&l!==u&&(a=a||[]).push(h,u)):"children"===h?"string"!==typeof u&&"number"!==typeof u||(a=a||[]).push(h,""+u):"suppressContentEditableWarning"!==h&&"suppressHydrationWarning"!==h&&(c.hasOwnProperty(h)?(null!=u&&"onScroll"===h&&Cn("scroll",e),a||l===u||(a=[])):"object"===typeof u&&null!==u&&u.$$typeof===B?u.toString():(a=a||[]).push(h,u))}r&&(a=a||[]).push("style",r);var h=a;(t.updateQueue=h)&&(t.flags|=4)}},Xs=function(e,t,r,n){r!==n&&(t.flags|=4)};var ha="function"===typeof WeakMap?WeakMap:Map;function da(e,t,r){(r=lo(-1,r)).tag=3,r.payload={element:null};var n=t.value;return r.callback=function(){Xa||(Xa=!0,Ja=n),ua(0,t)},r}function pa(e,t,r){(r=lo(-1,r)).tag=3;var n=e.type.getDerivedStateFromError;if("function"===typeof n){var i=t.value;r.payload=function(){return ua(0,t),n(i)}}var o=e.stateNode;return null!==o&&"function"===typeof o.componentDidCatch&&(r.callback=function(){"function"!==typeof n&&(null===Za?Za=new Set([this]):Za.add(this),ua(0,t));var e=t.stack;this.componentDidCatch(t.value,{componentStack:null!==e?e:""})}),r}var fa="function"===typeof WeakSet?WeakSet:Set;function ya(e){var t=e.ref;if(null!==t)if("function"===typeof t)try{t(null)}catch(r){qc(e,r)}else t.current=null}function ga(e,t){switch(t.tag){case 0:case 11:case 15:case 22:case 5:case 6:case 4:case 17:return;case 1:if(256&t.flags&&null!==e){var r=e.memoizedProps,n=e.memoizedState;t=(e=t.stateNode).getSnapshotBeforeUpdate(t.elementType===t.type?r:Xi(t.type,r),n),e.__reactInternalSnapshotBeforeUpdate=t}return;case 3:return void(256&t.flags&&Gn(t.stateNode.containerInfo))}throw Error(s(163))}function ma(e,t,r){switch(r.tag){case 0:case 11:case 15:case 22:if(null!==(t=null!==(t=r.updateQueue)?t.lastEffect:null)){e=t=t.next;do{if(3===(3&e.tag)){var n=e.create;e.destroy=n()}e=e.next}while(e!==t)}if(null!==(t=null!==(t=r.updateQueue)?t.lastEffect:null)){e=t=t.next;do{var i=e;n=i.next,0!==(4&(i=i.tag))&&0!==(1&i)&&(Oc(r,e),Mc(r,e)),e=n}while(e!==t)}return;case 1:return e=r.stateNode,4&r.flags&&(null===t?e.componentDidMount():(n=r.elementType===r.type?t.memoizedProps:Xi(r.type,t.memoizedProps),e.componentDidUpdate(n,t.memoizedState,e.__reactInternalSnapshotBeforeUpdate))),void(null!==(t=r.updateQueue)&&fo(r,t,e));case 3:if(null!==(t=r.updateQueue)){if(e=null,null!==r.child)switch(r.child.tag){case 5:case 1:e=r.child.stateNode}fo(r,t,e)}return;case 5:return e=r.stateNode,void(null===t&&4&r.flags&&Vn(r.type,r.memoizedProps)&&e.focus());case 6:case 4:case 12:case 19:case 17:case 20:case 21:case 23:case 24:return;case 13:return void(null===r.memoizedState&&(r=r.alternate,null!==r&&(r=r.memoizedState,null!==r&&(r=r.dehydrated,null!==r&&_t(r)))))}throw Error(s(163))}function ba(e,t){for(var r=e;;){if(5===r.tag){var n=r.stateNode;if(t)"function"===typeof(n=n.style).setProperty?n.setProperty("display","none","important"):n.display="none";else{n=r.stateNode;var i=r.memoizedProps.style;i=void 0!==i&&null!==i&&i.hasOwnProperty("display")?i.display:null,n.style.display=ve("display",i)}}else if(6===r.tag)r.stateNode.nodeValue=t?"":r.memoizedProps;else if((23!==r.tag&&24!==r.tag||null===r.memoizedState||r===e)&&null!==r.child){r.child.return=r,r=r.child;continue}if(r===e)break;for(;null===r.sibling;){if(null===r.return||r.return===e)return;r=r.return}r.sibling.return=r.return,r=r.sibling}}function wa(e,t){if(Si&&"function"===typeof Si.onCommitFiberUnmount)try{Si.onCommitFiberUnmount(Ei,t)}catch(o){}switch(t.tag){case 0:case 11:case 14:case 15:case 22:if(null!==(e=t.updateQueue)&&null!==(e=e.lastEffect)){var r=e=e.next;do{var n=r,i=n.destroy;if(n=n.tag,void 0!==i)if(0!==(4&n))Oc(t,r);else{n=t;try{i()}catch(o){qc(n,o)}}r=r.next}while(r!==e)}break;case 1:if(ya(t),"function"===typeof(e=t.stateNode).componentWillUnmount)try{e.props=t.memoizedProps,e.state=t.memoizedState,e.componentWillUnmount()}catch(o){qc(t,o)}break;case 5:ya(t);break;case 4:ka(e,t)}}function va(e){e.alternate=null,e.child=null,e.dependencies=null,e.firstEffect=null,e.lastEffect=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.return=null,e.updateQueue=null}function _a(e){return 5===e.tag||3===e.tag||4===e.tag}function Ea(e){e:{for(var t=e.return;null!==t;){if(_a(t))break e;t=t.return}throw Error(s(160))}var r=t;switch(t=r.stateNode,r.tag){case 5:var n=!1;break;case 3:case 4:t=t.containerInfo,n=!0;break;default:throw Error(s(161))}16&r.flags&&(me(t,""),r.flags&=-17);e:t:for(r=e;;){for(;null===r.sibling;){if(null===r.return||_a(r.return)){r=null;break e}r=r.return}for(r.sibling.return=r.return,r=r.sibling;5!==r.tag&&6!==r.tag&&18!==r.tag;){if(2&r.flags)continue t;if(null===r.child||4===r.tag)continue t;r.child.return=r,r=r.child}if(!(2&r.flags)){r=r.stateNode;break e}}n?Sa(e,r,t):Aa(e,r,t)}function Sa(e,t,r){var n=e.tag,i=5===n||6===n;if(i)e=i?e.stateNode:e.stateNode.instance,t?8===r.nodeType?r.parentNode.insertBefore(e,t):r.insertBefore(e,t):(8===r.nodeType?(t=r.parentNode).insertBefore(e,r):(t=r).appendChild(e),null!==(r=r._reactRootContainer)&&void 0!==r||null!==t.onclick||(t.onclick=Kn));else if(4!==n&&null!==(e=e.child))for(Sa(e,t,r),e=e.sibling;null!==e;)Sa(e,t,r),e=e.sibling}function Aa(e,t,r){var n=e.tag,i=5===n||6===n;if(i)e=i?e.stateNode:e.stateNode.instance,t?r.insertBefore(e,t):r.appendChild(e);else if(4!==n&&null!==(e=e.child))for(Aa(e,t,r),e=e.sibling;null!==e;)Aa(e,t,r),e=e.sibling}function ka(e,t){for(var r,n,i=t,o=!1;;){if(!o){o=i.return;e:for(;;){if(null===o)throw Error(s(160));switch(r=o.stateNode,o.tag){case 5:n=!1;break e;case 3:case 4:r=r.containerInfo,n=!0;break e}o=o.return}o=!0}if(5===i.tag||6===i.tag){e:for(var a=e,c=i,l=c;;)if(wa(a,l),null!==l.child&&4!==l.tag)l.child.return=l,l=l.child;else{if(l===c)break e;for(;null===l.sibling;){if(null===l.return||l.return===c)break e;l=l.return}l.sibling.return=l.return,l=l.sibling}n?(a=r,c=i.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):r.removeChild(i.stateNode)}else if(4===i.tag){if(null!==i.child){r=i.stateNode.containerInfo,n=!0,i.child.return=i,i=i.child;continue}}else if(wa(e,i),null!==i.child){i.child.return=i,i=i.child;continue}if(i===t)break;for(;null===i.sibling;){if(null===i.return||i.return===t)return;4===(i=i.return).tag&&(o=!1)}i.sibling.return=i.return,i=i.sibling}}function Ia(e,t){switch(t.tag){case 0:case 11:case 14:case 15:case 22:var r=t.updateQueue;if(null!==(r=null!==r?r.lastEffect:null)){var n=r=r.next;do{3===(3&n.tag)&&(e=n.destroy,n.destroy=void 0,void 0!==e&&e()),n=n.next}while(n!==r)}return;case 1:case 12:case 17:return;case 5:if(null!=(r=t.stateNode)){n=t.memoizedProps;var i=null!==e?e.memoizedProps:n;e=t.type;var o=t.updateQueue;if(t.updateQueue=null,null!==o){for(r[Zn]=n,"input"===e&&"radio"===n.type&&null!=n.name&&te(r,n),Ae(e,i),t=Ae(e,n),i=0;i<o.length;i+=2){var a=o[i],c=o[i+1];"style"===a?_e(r,c):"dangerouslySetInnerHTML"===a?ge(r,c):"children"===a?me(r,c):v(r,a,c,t)}switch(e){case"input":re(r,n);break;case"textarea":le(r,n);break;case"select":e=r._wrapperState.wasMultiple,r._wrapperState.wasMultiple=!!n.multiple,null!=(o=n.value)?se(r,!!n.multiple,o,!1):e!==!!n.multiple&&(null!=n.defaultValue?se(r,!!n.multiple,n.defaultValue,!0):se(r,!!n.multiple,n.multiple?[]:"",!1))}}}return;case 6:if(null===t.stateNode)throw Error(s(162));return void(t.stateNode.nodeValue=t.memoizedProps);case 3:return void((r=t.stateNode).hydrate&&(r.hydrate=!1,_t(r.containerInfo)));case 13:return null!==t.memoizedState&&(Ha=Vi(),ba(t.child,!0)),void Ra(t);case 19:return void Ra(t);case 23:case 24:return void ba(t,null!==t.memoizedState)}throw Error(s(163))}function Ra(e){var t=e.updateQueue;if(null!==t){e.updateQueue=null;var r=e.stateNode;null===r&&(r=e.stateNode=new fa),t.forEach((function(t){var n=Vc.bind(null,e,t);r.has(t)||(r.add(t),t.then(n,n))}))}}function Pa(e,t){return null!==e&&(null===(e=e.memoizedState)||null!==e.dehydrated)&&(null!==(t=t.memoizedState)&&null===t.dehydrated)}var Ca=Math.ceil,Ta=_.ReactCurrentDispatcher,xa=_.ReactCurrentOwner,Da=0,Na=null,La=null,Ba=0,Ma=0,Oa=ci(0),Ua=0,Ka=null,qa=0,Fa=0,Va=0,za=0,ja=null,Ha=0,Ga=1/0;function Wa(){Ga=Vi()+500}var Ya,Qa=null,Xa=!1,Ja=null,Za=null,$a=!1,ec=null,tc=90,rc=[],nc=[],ic=null,oc=0,sc=null,ac=-1,cc=0,lc=0,uc=null,hc=!1;function dc(){return 0!==(48&Da)?Vi():-1!==ac?ac:ac=Vi()}function pc(e){if(0===(2&(e=e.mode)))return 1;if(0===(4&e))return 99===zi()?1:2;if(0===cc&&(cc=qa),0!==Qi.transition){0!==lc&&(lc=null!==ja?ja.pendingLanes:0),e=cc;var t=4186112&~lc;return 0===(t&=-t)&&(0===(t=(e=4186112&~e)&-e)&&(t=8192)),t}return e=zi(),0!==(4&Da)&&98===e?e=Kt(12,cc):e=Kt(e=function(e){switch(e){case 99:return 15;case 98:return 10;case 97:case 96:return 8;case 95:return 2;default:return 0}}(e),cc),e}function fc(e,t,r){if(50<oc)throw oc=0,sc=null,Error(s(185));if(null===(e=yc(e,t)))return null;Vt(e,t,r),e===Na&&(Va|=t,4===Ua&&bc(e,Ba));var n=zi();1===t?0!==(8&Da)&&0===(48&Da)?wc(e):(gc(e,r),0===Da&&(Wa(),Wi())):(0===(4&Da)||98!==n&&99!==n||(null===ic?ic=new Set([e]):ic.add(e)),gc(e,r)),ja=e}function yc(e,t){e.lanes|=t;var r=e.alternate;for(null!==r&&(r.lanes|=t),r=e,e=e.return;null!==e;)e.childLanes|=t,null!==(r=e.alternate)&&(r.childLanes|=t),r=e,e=e.return;return 3===r.tag?r.stateNode:null}function gc(e,t){for(var r=e.callbackNode,n=e.suspendedLanes,i=e.pingedLanes,o=e.expirationTimes,a=e.pendingLanes;0<a;){var c=31-zt(a),l=1<<c,u=o[c];if(-1===u){if(0===(l&n)||0!==(l&i)){u=t,Mt(l);var h=Bt;o[c]=10<=h?u+250:6<=h?u+5e3:-1}}else u<=t&&(e.expiredLanes|=l);a&=~l}if(n=Ot(e,e===Na?Ba:0),t=Bt,0===n)null!==r&&(r!==Mi&&Ii(r),e.callbackNode=null,e.callbackPriority=0);else{if(null!==r){if(e.callbackPriority===t)return;r!==Mi&&Ii(r)}15===t?(r=wc.bind(null,e),null===Ui?(Ui=[r],Ki=ki(xi,Yi)):Ui.push(r),r=Mi):14===t?r=Gi(99,wc.bind(null,e)):(r=function(e){switch(e){case 15:case 14:return 99;case 13:case 12:case 11:case 10:return 98;case 9:case 8:case 7:case 6:case 4:case 5:return 97;case 3:case 2:case 1:return 95;case 0:return 90;default:throw Error(s(358,e))}}(t),r=Gi(r,mc.bind(null,e))),e.callbackPriority=t,e.callbackNode=r}}function mc(e){if(ac=-1,lc=cc=0,0!==(48&Da))throw Error(s(327));var t=e.callbackNode;if(Bc()&&e.callbackNode!==t)return null;var r=Ot(e,e===Na?Ba:0);if(0===r)return null;var n=r,i=Da;Da|=16;var o=Ic();for(Na===e&&Ba===n||(Wa(),Ac(e,n));;)try{Cc();break}catch(c){kc(e,c)}if(to(),Ta.current=o,Da=i,null!==La?n=0:(Na=null,Ba=0,n=Ua),0!==(qa&Va))Ac(e,0);else if(0!==n){if(2===n&&(Da|=64,e.hydrate&&(e.hydrate=!1,Gn(e.containerInfo)),0!==(r=Ut(e))&&(n=Rc(e,r))),1===n)throw t=Ka,Ac(e,0),bc(e,r),gc(e,Vi()),t;switch(e.finishedWork=e.current.alternate,e.finishedLanes=r,n){case 0:case 1:throw Error(s(345));case 2:case 5:Dc(e);break;case 3:if(bc(e,r),(62914560&r)===r&&10<(n=Ha+500-Vi())){if(0!==Ot(e,0))break;if(((i=e.suspendedLanes)&r)!==r){dc(),e.pingedLanes|=e.suspendedLanes&i;break}e.timeoutHandle=jn(Dc.bind(null,e),n);break}Dc(e);break;case 4:if(bc(e,r),(4186112&r)===r)break;for(n=e.eventTimes,i=-1;0<r;){var a=31-zt(r);o=1<<a,(a=n[a])>i&&(i=a),r&=~o}if(r=i,10<(r=(120>(r=Vi()-r)?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*Ca(r/1960))-r)){e.timeoutHandle=jn(Dc.bind(null,e),r);break}Dc(e);break;default:throw Error(s(329))}}return gc(e,Vi()),e.callbackNode===t?mc.bind(null,e):null}function bc(e,t){for(t&=~za,t&=~Va,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var r=31-zt(t),n=1<<r;e[r]=-1,t&=~n}}function wc(e){if(0!==(48&Da))throw Error(s(327));if(Bc(),e===Na&&0!==(e.expiredLanes&Ba)){var t=Ba,r=Rc(e,t);0!==(qa&Va)&&(r=Rc(e,t=Ot(e,t)))}else r=Rc(e,t=Ot(e,0));if(0!==e.tag&&2===r&&(Da|=64,e.hydrate&&(e.hydrate=!1,Gn(e.containerInfo)),0!==(t=Ut(e))&&(r=Rc(e,t))),1===r)throw r=Ka,Ac(e,0),bc(e,t),gc(e,Vi()),r;return e.finishedWork=e.current.alternate,e.finishedLanes=t,Dc(e),gc(e,Vi()),null}function vc(e,t){var r=Da;Da|=1;try{return e(t)}finally{0===(Da=r)&&(Wa(),Wi())}}function _c(e,t){var r=Da;Da&=-2,Da|=8;try{return e(t)}finally{0===(Da=r)&&(Wa(),Wi())}}function Ec(e,t){ui(Oa,Ma),Ma|=t,qa|=t}function Sc(){Ma=Oa.current,li(Oa)}function Ac(e,t){e.finishedWork=null,e.finishedLanes=0;var r=e.timeoutHandle;if(-1!==r&&(e.timeoutHandle=-1,Hn(r)),null!==La)for(r=La.return;null!==r;){var n=r;switch(n.tag){case 1:null!==(n=n.type.childContextTypes)&&void 0!==n&&mi();break;case 3:Lo(),li(pi),li(di),Qo();break;case 5:Mo(n);break;case 4:Lo();break;case 13:case 19:li(Oo);break;case 10:ro(n);break;case 23:case 24:Sc()}r=r.return}Na=e,La=Gc(e.current,null),Ba=Ma=qa=t,Ua=0,Ka=null,za=Va=Fa=0}function kc(e,t){for(;;){var r=La;try{if(to(),Xo.current=xs,rs){for(var n=$o.memoizedState;null!==n;){var i=n.queue;null!==i&&(i.pending=null),n=n.next}rs=!1}if(Zo=0,ts=es=$o=null,ns=!1,xa.current=null,null===r||null===r.return){Ua=1,Ka=t,La=null;break}e:{var o=e,s=r.return,a=r,c=t;if(t=Ba,a.flags|=2048,a.firstEffect=a.lastEffect=null,null!==c&&"object"===typeof c&&"function"===typeof c.then){var l=c;if(0===(2&a.mode)){var u=a.alternate;u?(a.updateQueue=u.updateQueue,a.memoizedState=u.memoizedState,a.lanes=u.lanes):(a.updateQueue=null,a.memoizedState=null)}var h=0!==(1&Oo.current),d=s;do{var p;if(p=13===d.tag){var f=d.memoizedState;if(null!==f)p=null!==f.dehydrated;else{var y=d.memoizedProps;p=void 0!==y.fallback&&(!0!==y.unstable_avoidThisFallback||!h)}}if(p){var g=d.updateQueue;if(null===g){var m=new Set;m.add(l),d.updateQueue=m}else g.add(l);if(0===(2&d.mode)){if(d.flags|=64,a.flags|=16384,a.flags&=-2981,1===a.tag)if(null===a.alternate)a.tag=17;else{var b=lo(-1,1);b.tag=2,uo(a,b)}a.lanes|=1;break e}c=void 0,a=t;var w=o.pingCache;if(null===w?(w=o.pingCache=new ha,c=new Set,w.set(l,c)):void 0===(c=w.get(l))&&(c=new Set,w.set(l,c)),!c.has(a)){c.add(a);var v=Fc.bind(null,o,l,a);l.then(v,v)}d.flags|=4096,d.lanes=t;break e}d=d.return}while(null!==d);c=Error((W(a.type)||"A React component")+" suspended while rendering, but no fallback UI was specified.\n\nAdd a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display.")}5!==Ua&&(Ua=2),c=la(c,a),d=s;do{switch(d.tag){case 3:o=c,d.flags|=4096,t&=-t,d.lanes|=t,ho(d,da(0,o,t));break e;case 1:o=c;var _=d.type,E=d.stateNode;if(0===(64&d.flags)&&("function"===typeof _.getDerivedStateFromError||null!==E&&"function"===typeof E.componentDidCatch&&(null===Za||!Za.has(E)))){d.flags|=4096,t&=-t,d.lanes|=t,ho(d,pa(d,o,t));break e}}d=d.return}while(null!==d)}xc(r)}catch(S){t=S,La===r&&null!==r&&(La=r=r.return);continue}break}}function Ic(){var e=Ta.current;return Ta.current=xs,null===e?xs:e}function Rc(e,t){var r=Da;Da|=16;var n=Ic();for(Na===e&&Ba===t||Ac(e,t);;)try{Pc();break}catch(i){kc(e,i)}if(to(),Da=r,Ta.current=n,null!==La)throw Error(s(261));return Na=null,Ba=0,Ua}function Pc(){for(;null!==La;)Tc(La)}function Cc(){for(;null!==La&&!Ri();)Tc(La)}function Tc(e){var t=Ya(e.alternate,e,Ma);e.memoizedProps=e.pendingProps,null===t?xc(e):La=t,xa.current=null}function xc(e){var t=e;do{var r=t.alternate;if(e=t.return,0===(2048&t.flags)){if(null!==(r=aa(r,t,Ma)))return void(La=r);if(24!==(r=t).tag&&23!==r.tag||null===r.memoizedState||0!==(1073741824&Ma)||0===(4&r.mode)){for(var n=0,i=r.child;null!==i;)n|=i.lanes|i.childLanes,i=i.sibling;r.childLanes=n}null!==e&&0===(2048&e.flags)&&(null===e.firstEffect&&(e.firstEffect=t.firstEffect),null!==t.lastEffect&&(null!==e.lastEffect&&(e.lastEffect.nextEffect=t.firstEffect),e.lastEffect=t.lastEffect),1<t.flags&&(null!==e.lastEffect?e.lastEffect.nextEffect=t:e.firstEffect=t,e.lastEffect=t))}else{if(null!==(r=ca(t)))return r.flags&=2047,void(La=r);null!==e&&(e.firstEffect=e.lastEffect=null,e.flags|=2048)}if(null!==(t=t.sibling))return void(La=t);La=t=e}while(null!==t);0===Ua&&(Ua=5)}function Dc(e){var t=zi();return Hi(99,Nc.bind(null,e,t)),null}function Nc(e,t){do{Bc()}while(null!==ec);if(0!==(48&Da))throw Error(s(327));var r=e.finishedWork;if(null===r)return null;if(e.finishedWork=null,e.finishedLanes=0,r===e.current)throw Error(s(177));e.callbackNode=null;var n=r.lanes|r.childLanes,i=n,o=e.pendingLanes&~i;e.pendingLanes=i,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=i,e.mutableReadLanes&=i,e.entangledLanes&=i,i=e.entanglements;for(var a=e.eventTimes,c=e.expirationTimes;0<o;){var l=31-zt(o),u=1<<l;i[l]=0,a[l]=-1,c[l]=-1,o&=~u}if(null!==ic&&0===(24&n)&&ic.has(e)&&ic.delete(e),e===Na&&(La=Na=null,Ba=0),1<r.flags?null!==r.lastEffect?(r.lastEffect.nextEffect=r,n=r.firstEffect):n=r:n=r.firstEffect,null!==n){if(i=Da,Da|=32,xa.current=null,qn=Yt,gn(a=yn())){if("selectionStart"in a)c={start:a.selectionStart,end:a.selectionEnd};else e:if(c=(c=a.ownerDocument)&&c.defaultView||window,(u=c.getSelection&&c.getSelection())&&0!==u.rangeCount){c=u.anchorNode,o=u.anchorOffset,l=u.focusNode,u=u.focusOffset;try{c.nodeType,l.nodeType}catch(I){c=null;break e}var h=0,d=-1,p=-1,f=0,y=0,g=a,m=null;t:for(;;){for(var b;g!==c||0!==o&&3!==g.nodeType||(d=h+o),g!==l||0!==u&&3!==g.nodeType||(p=h+u),3===g.nodeType&&(h+=g.nodeValue.length),null!==(b=g.firstChild);)m=g,g=b;for(;;){if(g===a)break t;if(m===c&&++f===o&&(d=h),m===l&&++y===u&&(p=h),null!==(b=g.nextSibling))break;m=(g=m).parentNode}g=b}c=-1===d||-1===p?null:{start:d,end:p}}else c=null;c=c||{start:0,end:0}}else c=null;Fn={focusedElem:a,selectionRange:c},Yt=!1,uc=null,hc=!1,Qa=n;do{try{Lc()}catch(I){if(null===Qa)throw Error(s(330));qc(Qa,I),Qa=Qa.nextEffect}}while(null!==Qa);uc=null,Qa=n;do{try{for(a=e;null!==Qa;){var w=Qa.flags;if(16&w&&me(Qa.stateNode,""),128&w){var v=Qa.alternate;if(null!==v){var _=v.ref;null!==_&&("function"===typeof _?_(null):_.current=null)}}switch(1038&w){case 2:Ea(Qa),Qa.flags&=-3;break;case 6:Ea(Qa),Qa.flags&=-3,Ia(Qa.alternate,Qa);break;case 1024:Qa.flags&=-1025;break;case 1028:Qa.flags&=-1025,Ia(Qa.alternate,Qa);break;case 4:Ia(Qa.alternate,Qa);break;case 8:ka(a,c=Qa);var E=c.alternate;va(c),null!==E&&va(E)}Qa=Qa.nextEffect}}catch(I){if(null===Qa)throw Error(s(330));qc(Qa,I),Qa=Qa.nextEffect}}while(null!==Qa);if(_=Fn,v=yn(),w=_.focusedElem,a=_.selectionRange,v!==w&&w&&w.ownerDocument&&fn(w.ownerDocument.documentElement,w)){null!==a&&gn(w)&&(v=a.start,void 0===(_=a.end)&&(_=v),"selectionStart"in w?(w.selectionStart=v,w.selectionEnd=Math.min(_,w.value.length)):(_=(v=w.ownerDocument||document)&&v.defaultView||window).getSelection&&(_=_.getSelection(),c=w.textContent.length,E=Math.min(a.start,c),a=void 0===a.end?E:Math.min(a.end,c),!_.extend&&E>a&&(c=a,a=E,E=c),c=pn(w,E),o=pn(w,a),c&&o&&(1!==_.rangeCount||_.anchorNode!==c.node||_.anchorOffset!==c.offset||_.focusNode!==o.node||_.focusOffset!==o.offset)&&((v=v.createRange()).setStart(c.node,c.offset),_.removeAllRanges(),E>a?(_.addRange(v),_.extend(o.node,o.offset)):(v.setEnd(o.node,o.offset),_.addRange(v))))),v=[];for(_=w;_=_.parentNode;)1===_.nodeType&&v.push({element:_,left:_.scrollLeft,top:_.scrollTop});for("function"===typeof w.focus&&w.focus(),w=0;w<v.length;w++)(_=v[w]).element.scrollLeft=_.left,_.element.scrollTop=_.top}Yt=!!qn,Fn=qn=null,e.current=r,Qa=n;do{try{for(w=e;null!==Qa;){var S=Qa.flags;if(36&S&&ma(w,Qa.alternate,Qa),128&S){v=void 0;var A=Qa.ref;if(null!==A){var k=Qa.stateNode;Qa.tag,v=k,"function"===typeof A?A(v):A.current=v}}Qa=Qa.nextEffect}}catch(I){if(null===Qa)throw Error(s(330));qc(Qa,I),Qa=Qa.nextEffect}}while(null!==Qa);Qa=null,Oi(),Da=i}else e.current=r;if($a)$a=!1,ec=e,tc=t;else for(Qa=n;null!==Qa;)t=Qa.nextEffect,Qa.nextEffect=null,8&Qa.flags&&((S=Qa).sibling=null,S.stateNode=null),Qa=t;if(0===(n=e.pendingLanes)&&(Za=null),1===n?e===sc?oc++:(oc=0,sc=e):oc=0,r=r.stateNode,Si&&"function"===typeof Si.onCommitFiberRoot)try{Si.onCommitFiberRoot(Ei,r,void 0,64===(64&r.current.flags))}catch(I){}if(gc(e,Vi()),Xa)throw Xa=!1,e=Ja,Ja=null,e;return 0!==(8&Da)||Wi(),null}function Lc(){for(;null!==Qa;){var e=Qa.alternate;hc||null===uc||(0!==(8&Qa.flags)?$e(Qa,uc)&&(hc=!0):13===Qa.tag&&Pa(e,Qa)&&$e(Qa,uc)&&(hc=!0));var t=Qa.flags;0!==(256&t)&&ga(e,Qa),0===(512&t)||$a||($a=!0,Gi(97,(function(){return Bc(),null}))),Qa=Qa.nextEffect}}function Bc(){if(90!==tc){var e=97<tc?97:tc;return tc=90,Hi(e,Uc)}return!1}function Mc(e,t){rc.push(t,e),$a||($a=!0,Gi(97,(function(){return Bc(),null})))}function Oc(e,t){nc.push(t,e),$a||($a=!0,Gi(97,(function(){return Bc(),null})))}function Uc(){if(null===ec)return!1;var e=ec;if(ec=null,0!==(48&Da))throw Error(s(331));var t=Da;Da|=32;var r=nc;nc=[];for(var n=0;n<r.length;n+=2){var i=r[n],o=r[n+1],a=i.destroy;if(i.destroy=void 0,"function"===typeof a)try{a()}catch(l){if(null===o)throw Error(s(330));qc(o,l)}}for(r=rc,rc=[],n=0;n<r.length;n+=2){i=r[n],o=r[n+1];try{var c=i.create;i.destroy=c()}catch(l){if(null===o)throw Error(s(330));qc(o,l)}}for(c=e.current.firstEffect;null!==c;)e=c.nextEffect,c.nextEffect=null,8&c.flags&&(c.sibling=null,c.stateNode=null),c=e;return Da=t,Wi(),!0}function Kc(e,t,r){uo(e,t=da(0,t=la(r,t),1)),t=dc(),null!==(e=yc(e,1))&&(Vt(e,1,t),gc(e,t))}function qc(e,t){if(3===e.tag)Kc(e,e,t);else for(var r=e.return;null!==r;){if(3===r.tag){Kc(r,e,t);break}if(1===r.tag){var n=r.stateNode;if("function"===typeof r.type.getDerivedStateFromError||"function"===typeof n.componentDidCatch&&(null===Za||!Za.has(n))){var i=pa(r,e=la(t,e),1);if(uo(r,i),i=dc(),null!==(r=yc(r,1)))Vt(r,1,i),gc(r,i);else if("function"===typeof n.componentDidCatch&&(null===Za||!Za.has(n)))try{n.componentDidCatch(t,e)}catch(o){}break}}r=r.return}}function Fc(e,t,r){var n=e.pingCache;null!==n&&n.delete(t),t=dc(),e.pingedLanes|=e.suspendedLanes&r,Na===e&&(Ba&r)===r&&(4===Ua||3===Ua&&(62914560&Ba)===Ba&&500>Vi()-Ha?Ac(e,0):za|=r),gc(e,t)}function Vc(e,t){var r=e.stateNode;null!==r&&r.delete(t),0===(t=0)&&(0===(2&(t=e.mode))?t=1:0===(4&t)?t=99===zi()?1:2:(0===cc&&(cc=qa),0===(t=qt(62914560&~cc))&&(t=4194304))),r=dc(),null!==(e=yc(e,t))&&(Vt(e,t,r),gc(e,r))}function zc(e,t,r,n){this.tag=e,this.key=r,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=n,this.flags=0,this.lastEffect=this.firstEffect=this.nextEffect=null,this.childLanes=this.lanes=0,this.alternate=null}function jc(e,t,r,n){return new zc(e,t,r,n)}function Hc(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Gc(e,t){var r=e.alternate;return null===r?((r=jc(e.tag,t,e.key,e.mode)).elementType=e.elementType,r.type=e.type,r.stateNode=e.stateNode,r.alternate=e,e.alternate=r):(r.pendingProps=t,r.type=e.type,r.flags=0,r.nextEffect=null,r.firstEffect=null,r.lastEffect=null),r.childLanes=e.childLanes,r.lanes=e.lanes,r.child=e.child,r.memoizedProps=e.memoizedProps,r.memoizedState=e.memoizedState,r.updateQueue=e.updateQueue,t=e.dependencies,r.dependencies=null===t?null:{lanes:t.lanes,firstContext:t.firstContext},r.sibling=e.sibling,r.index=e.index,r.ref=e.ref,r}function Wc(e,t,r,n,i,o){var a=2;if(n=e,"function"===typeof e)Hc(e)&&(a=1);else if("string"===typeof e)a=5;else e:switch(e){case A:return Yc(r.children,i,o,t);case M:a=8,i|=16;break;case k:a=8,i|=1;break;case I:return(e=jc(12,r,t,8|i)).elementType=I,e.type=I,e.lanes=o,e;case T:return(e=jc(13,r,t,i)).type=T,e.elementType=T,e.lanes=o,e;case x:return(e=jc(19,r,t,i)).elementType=x,e.lanes=o,e;case O:return Qc(r,i,o,t);case U:return(e=jc(24,r,t,i)).elementType=U,e.lanes=o,e;default:if("object"===typeof e&&null!==e)switch(e.$$typeof){case R:a=10;break e;case P:a=9;break e;case C:a=11;break e;case D:a=14;break e;case N:a=16,n=null;break e;case L:a=22;break e}throw Error(s(130,null==e?e:typeof e,""))}return(t=jc(a,r,t,i)).elementType=e,t.type=n,t.lanes=o,t}function Yc(e,t,r,n){return(e=jc(7,e,n,t)).lanes=r,e}function Qc(e,t,r,n){return(e=jc(23,e,n,t)).elementType=O,e.lanes=r,e}function Xc(e,t,r){return(e=jc(6,e,null,t)).lanes=r,e}function Jc(e,t,r){return(t=jc(4,null!==e.children?e.children:[],e.key,t)).lanes=r,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Zc(e,t,r){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.pendingContext=this.context=null,this.hydrate=r,this.callbackNode=null,this.callbackPriority=0,this.eventTimes=Ft(0),this.expirationTimes=Ft(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Ft(0),this.mutableSourceEagerHydrationData=null}function $c(e,t,r,n){var i=t.current,o=dc(),a=pc(i);e:if(r){t:{if(Qe(r=r._reactInternals)!==r||1!==r.tag)throw Error(s(170));var c=r;do{switch(c.tag){case 3:c=c.stateNode.context;break t;case 1:if(gi(c.type)){c=c.stateNode.__reactInternalMemoizedMergedChildContext;break t}}c=c.return}while(null!==c);throw Error(s(171))}if(1===r.tag){var l=r.type;if(gi(l)){r=wi(r,l,c);break e}}r=c}else r=hi;return null===t.context?t.context=r:t.pendingContext=r,(t=lo(o,a)).payload={element:e},null!==(n=void 0===n?null:n)&&(t.callback=n),uo(i,t),fc(i,a,o),a}function el(e){return(e=e.current).child?(e.child.tag,e.child.stateNode):null}function tl(e,t){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var r=e.retryLane;e.retryLane=0!==r&&r<t?r:t}}function rl(e,t){tl(e,t),(e=e.alternate)&&tl(e,t)}function nl(e,t,r){var n=null!=r&&null!=r.hydrationOptions&&r.hydrationOptions.mutableSources||null;if(r=new Zc(e,t,null!=r&&!0===r.hydrate),t=jc(3,null,null,2===t?7:1===t?3:0),r.current=t,t.stateNode=r,ao(t),e[$n]=r.current,xn(8===e.nodeType?e.parentNode:e),n)for(e=0;e<n.length;e++){var i=(t=n[e])._getVersion;i=i(t._source),null==r.mutableSourceEagerHydrationData?r.mutableSourceEagerHydrationData=[t,i]:r.mutableSourceEagerHydrationData.push(t,i)}this._internalRoot=r}function il(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType&&(8!==e.nodeType||" react-mount-point-unstable "!==e.nodeValue))}function ol(e,t,r,n,i){var o=r._reactRootContainer;if(o){var s=o._internalRoot;if("function"===typeof i){var a=i;i=function(){var e=el(s);a.call(e)}}$c(t,s,e,i)}else{if(o=r._reactRootContainer=function(e,t){if(t||(t=!(!(t=e?9===e.nodeType?e.documentElement:e.firstChild:null)||1!==t.nodeType||!t.hasAttribute("data-reactroot"))),!t)for(var r;r=e.lastChild;)e.removeChild(r);return new nl(e,0,t?{hydrate:!0}:void 0)}(r,n),s=o._internalRoot,"function"===typeof i){var c=i;i=function(){var e=el(s);c.call(e)}}_c((function(){$c(t,s,e,i)}))}return el(s)}function sl(e,t){var r=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!il(t))throw Error(s(200));return function(e,t,r){var n=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:S,key:null==n?null:""+n,children:e,containerInfo:t,implementation:r}}(e,t,null,r)}Ya=function(e,t,r){var n=t.lanes;if(null!==e)if(e.memoizedProps!==t.pendingProps||pi.current)Ms=!0;else{if(0===(r&n)){switch(Ms=!1,t.tag){case 3:Gs(t),Wo();break;case 5:Bo(t);break;case 1:gi(t.type)&&vi(t);break;case 4:No(t,t.stateNode.containerInfo);break;case 10:n=t.memoizedProps.value;var i=t.type._context;ui(Ji,i._currentValue),i._currentValue=n;break;case 13:if(null!==t.memoizedState)return 0!==(r&t.child.childLanes)?Zs(e,t,r):(ui(Oo,1&Oo.current),null!==(t=oa(e,t,r))?t.sibling:null);ui(Oo,1&Oo.current);break;case 19:if(n=0!==(r&t.childLanes),0!==(64&e.flags)){if(n)return ia(e,t,r);t.flags|=64}if(null!==(i=t.memoizedState)&&(i.rendering=null,i.tail=null,i.lastEffect=null),ui(Oo,Oo.current),n)break;return null;case 23:case 24:return t.lanes=0,Fs(e,t,r)}return oa(e,t,r)}Ms=0!==(16384&e.flags)}else Ms=!1;switch(t.lanes=0,t.tag){case 2:if(n=t.type,null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,i=yi(t,di.current),io(t,r),i=ss(null,t,n,e,i,r),t.flags|=1,"object"===typeof i&&null!==i&&"function"===typeof i.render&&void 0===i.$$typeof){if(t.tag=1,t.memoizedState=null,t.updateQueue=null,gi(n)){var o=!0;vi(t)}else o=!1;t.memoizedState=null!==i.state&&void 0!==i.state?i.state:null,ao(t);var a=n.getDerivedStateFromProps;"function"===typeof a&&go(t,n,a,e),i.updater=mo,t.stateNode=i,i._reactInternals=t,_o(t,n,e,r),t=Hs(null,t,n,!0,o,r)}else t.tag=0,Os(null,t,i,r),t=t.child;return t;case 16:i=t.elementType;e:{switch(null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,i=(o=i._init)(i._payload),t.type=i,o=t.tag=function(e){if("function"===typeof e)return Hc(e)?1:0;if(void 0!==e&&null!==e){if((e=e.$$typeof)===C)return 11;if(e===D)return 14}return 2}(i),e=Xi(i,e),o){case 0:t=zs(null,t,i,e,r);break e;case 1:t=js(null,t,i,e,r);break e;case 11:t=Us(null,t,i,e,r);break e;case 14:t=Ks(null,t,i,Xi(i.type,e),n,r);break e}throw Error(s(306,i,""))}return t;case 0:return n=t.type,i=t.pendingProps,zs(e,t,n,i=t.elementType===n?i:Xi(n,i),r);case 1:return n=t.type,i=t.pendingProps,js(e,t,n,i=t.elementType===n?i:Xi(n,i),r);case 3:if(Gs(t),n=t.updateQueue,null===e||null===n)throw Error(s(282));if(n=t.pendingProps,i=null!==(i=t.memoizedState)?i.element:null,co(e,t),po(t,n,null,r),(n=t.memoizedState.element)===i)Wo(),t=oa(e,t,r);else{if((o=(i=t.stateNode).hydrate)&&(qo=Wn(t.stateNode.containerInfo.firstChild),Ko=t,o=Fo=!0),o){if(null!=(e=i.mutableSourceEagerHydrationData))for(i=0;i<e.length;i+=2)(o=e[i])._workInProgressVersionPrimary=e[i+1],Yo.push(o);for(r=Ro(t,null,n,r),t.child=r;r;)r.flags=-3&r.flags|1024,r=r.sibling}else Os(e,t,n,r),Wo();t=t.child}return t;case 5:return Bo(t),null===e&&jo(t),n=t.type,i=t.pendingProps,o=null!==e?e.memoizedProps:null,a=i.children,zn(n,i)?a=null:null!==o&&zn(n,o)&&(t.flags|=16),Vs(e,t),Os(e,t,a,r),t.child;case 6:return null===e&&jo(t),null;case 13:return Zs(e,t,r);case 4:return No(t,t.stateNode.containerInfo),n=t.pendingProps,null===e?t.child=Io(t,null,n,r):Os(e,t,n,r),t.child;case 11:return n=t.type,i=t.pendingProps,Us(e,t,n,i=t.elementType===n?i:Xi(n,i),r);case 7:return Os(e,t,t.pendingProps,r),t.child;case 8:case 12:return Os(e,t,t.pendingProps.children,r),t.child;case 10:e:{n=t.type._context,i=t.pendingProps,a=t.memoizedProps,o=i.value;var c=t.type._context;if(ui(Ji,c._currentValue),c._currentValue=o,null!==a)if(c=a.value,0===(o=ln(c,o)?0:0|("function"===typeof n._calculateChangedBits?n._calculateChangedBits(c,o):1073741823))){if(a.children===i.children&&!pi.current){t=oa(e,t,r);break e}}else for(null!==(c=t.child)&&(c.return=t);null!==c;){var l=c.dependencies;if(null!==l){a=c.child;for(var u=l.firstContext;null!==u;){if(u.context===n&&0!==(u.observedBits&o)){1===c.tag&&((u=lo(-1,r&-r)).tag=2,uo(c,u)),c.lanes|=r,null!==(u=c.alternate)&&(u.lanes|=r),no(c.return,r),l.lanes|=r;break}u=u.next}}else a=10===c.tag&&c.type===t.type?null:c.child;if(null!==a)a.return=c;else for(a=c;null!==a;){if(a===t){a=null;break}if(null!==(c=a.sibling)){c.return=a.return,a=c;break}a=a.return}c=a}Os(e,t,i.children,r),t=t.child}return t;case 9:return i=t.type,n=(o=t.pendingProps).children,io(t,r),n=n(i=oo(i,o.unstable_observedBits)),t.flags|=1,Os(e,t,n,r),t.child;case 14:return o=Xi(i=t.type,t.pendingProps),Ks(e,t,i,o=Xi(i.type,o),n,r);case 15:return qs(e,t,t.type,t.pendingProps,n,r);case 17:return n=t.type,i=t.pendingProps,i=t.elementType===n?i:Xi(n,i),null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),t.tag=1,gi(n)?(e=!0,vi(t)):e=!1,io(t,r),wo(t,n,i),_o(t,n,i,r),Hs(null,t,n,!0,e,r);case 19:return ia(e,t,r);case 23:case 24:return Fs(e,t,r)}throw Error(s(156,t.tag))},nl.prototype.render=function(e){$c(e,this._internalRoot,null,null)},nl.prototype.unmount=function(){var e=this._internalRoot,t=e.containerInfo;$c(null,e,null,(function(){t[$n]=null}))},et=function(e){13===e.tag&&(fc(e,4,dc()),rl(e,4))},tt=function(e){13===e.tag&&(fc(e,67108864,dc()),rl(e,67108864))},rt=function(e){if(13===e.tag){var t=dc(),r=pc(e);fc(e,r,t),rl(e,r)}},nt=function(e,t){return t()},Ie=function(e,t,r){switch(t){case"input":if(re(e,r),t=r.name,"radio"===r.type&&null!=t){for(r=e;r.parentNode;)r=r.parentNode;for(r=r.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<r.length;t++){var n=r[t];if(n!==e&&n.form===e.form){var i=ii(n);if(!i)throw Error(s(90));J(n),re(n,i)}}}break;case"textarea":le(e,r);break;case"select":null!=(t=r.value)&&se(e,!!r.multiple,t,!1)}},De=vc,Ne=function(e,t,r,n,i){var o=Da;Da|=4;try{return Hi(98,e.bind(null,t,r,n,i))}finally{0===(Da=o)&&(Wa(),Wi())}},Le=function(){0===(49&Da)&&(function(){if(null!==ic){var e=ic;ic=null,e.forEach((function(e){e.expiredLanes|=24&e.pendingLanes,gc(e,Vi())}))}Wi()}(),Bc())},Be=function(e,t){var r=Da;Da|=2;try{return e(t)}finally{0===(Da=r)&&(Wa(),Wi())}};var al={Events:[ri,ni,ii,Te,xe,Bc,{current:!1}]},cl={findFiberByHostInstance:ti,bundleType:0,version:"17.0.2",rendererPackageName:"react-dom"},ll={bundleType:cl.bundleType,version:cl.version,rendererPackageName:cl.rendererPackageName,rendererConfig:cl.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:_.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return null===(e=Ze(e))?null:e.stateNode},findFiberByHostInstance:cl.findFiberByHostInstance||function(){return null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null};if("undefined"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var ul=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!ul.isDisabled&&ul.supportsFiber)try{Ei=ul.inject(ll),Si=ul}catch(ye){}}t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=al,t.createPortal=sl,t.findDOMNode=function(e){if(null==e)return null;if(1===e.nodeType)return e;var t=e._reactInternals;if(void 0===t){if("function"===typeof e.render)throw Error(s(188));throw Error(s(268,Object.keys(e)))}return e=null===(e=Ze(t))?null:e.stateNode},t.flushSync=function(e,t){var r=Da;if(0!==(48&r))return e(t);Da|=1;try{if(e)return Hi(99,e.bind(null,t))}finally{Da=r,Wi()}},t.hydrate=function(e,t,r){if(!il(t))throw Error(s(200));return ol(null,e,t,!0,r)},t.render=function(e,t,r){if(!il(t))throw Error(s(200));return ol(null,e,t,!1,r)},t.unmountComponentAtNode=function(e){if(!il(e))throw Error(s(40));return!!e._reactRootContainer&&(_c((function(){ol(null,null,e,!1,(function(){e._reactRootContainer=null,e[$n]=null}))})),!0)},t.unstable_batchedUpdates=vc,t.unstable_createPortal=function(e,t){return sl(e,t,2<arguments.length&&void 0!==arguments[2]?arguments[2]:null)},t.unstable_renderSubtreeIntoContainer=function(e,t,r,n){if(!il(r))throw Error(s(200));if(null==e||void 0===e._reactInternals)throw Error(s(38));return ol(e,t,r,!1,n)},t.version="17.0.2"},4164:(e,t,r)=>{"use strict";!function e(){if("undefined"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"===typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}(),e.exports=r(4463)},6374:(e,t,r)=>{"use strict";r(1725);var n=r(2791),i=60103;if(60107,"function"===typeof Symbol&&Symbol.for){var o=Symbol.for;i=o("react.element"),o("react.fragment")}var s=n.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,a=Object.prototype.hasOwnProperty,c={key:!0,ref:!0,__self:!0,__source:!0};function l(e,t,r){var n,o={},l=null,u=null;for(n in void 0!==r&&(l=""+r),void 0!==t.key&&(l=""+t.key),void 0!==t.ref&&(u=t.ref),t)a.call(t,n)&&!c.hasOwnProperty(n)&&(o[n]=t[n]);if(e&&e.defaultProps)for(n in t=e.defaultProps)void 0===o[n]&&(o[n]=t[n]);return{$$typeof:i,type:e,key:l,ref:u,props:o,_owner:s.current}}t.jsx=l,t.jsxs=l},9117:(e,t,r)=>{"use strict";var n=r(1725),i=60103,o=60106;t.Fragment=60107,t.StrictMode=60108,t.Profiler=60114;var s=60109,a=60110,c=60112;t.Suspense=60113;var l=60115,u=60116;if("function"===typeof Symbol&&Symbol.for){var h=Symbol.for;i=h("react.element"),o=h("react.portal"),t.Fragment=h("react.fragment"),t.StrictMode=h("react.strict_mode"),t.Profiler=h("react.profiler"),s=h("react.provider"),a=h("react.context"),c=h("react.forward_ref"),t.Suspense=h("react.suspense"),l=h("react.memo"),u=h("react.lazy")}var d="function"===typeof Symbol&&Symbol.iterator;function p(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,r=1;r<arguments.length;r++)t+="&args[]="+encodeURIComponent(arguments[r]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var f={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},y={};function g(e,t,r){this.props=e,this.context=t,this.refs=y,this.updater=r||f}function m(){}function b(e,t,r){this.props=e,this.context=t,this.refs=y,this.updater=r||f}g.prototype.isReactComponent={},g.prototype.setState=function(e,t){if("object"!==typeof e&&"function"!==typeof e&&null!=e)throw Error(p(85));this.updater.enqueueSetState(this,e,t,"setState")},g.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},m.prototype=g.prototype;var w=b.prototype=new m;w.constructor=b,n(w,g.prototype),w.isPureReactComponent=!0;var v={current:null},_=Object.prototype.hasOwnProperty,E={key:!0,ref:!0,__self:!0,__source:!0};function S(e,t,r){var n,o={},s=null,a=null;if(null!=t)for(n in void 0!==t.ref&&(a=t.ref),void 0!==t.key&&(s=""+t.key),t)_.call(t,n)&&!E.hasOwnProperty(n)&&(o[n]=t[n]);var c=arguments.length-2;if(1===c)o.children=r;else if(1<c){for(var l=Array(c),u=0;u<c;u++)l[u]=arguments[u+2];o.children=l}if(e&&e.defaultProps)for(n in c=e.defaultProps)void 0===o[n]&&(o[n]=c[n]);return{$$typeof:i,type:e,key:s,ref:a,props:o,_owner:v.current}}function A(e){return"object"===typeof e&&null!==e&&e.$$typeof===i}var k=/\/+/g;function I(e,t){return"object"===typeof e&&null!==e&&null!=e.key?function(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,(function(e){return t[e]}))}(""+e.key):t.toString(36)}function R(e,t,r,n,s){var a=typeof e;"undefined"!==a&&"boolean"!==a||(e=null);var c=!1;if(null===e)c=!0;else switch(a){case"string":case"number":c=!0;break;case"object":switch(e.$$typeof){case i:case o:c=!0}}if(c)return s=s(c=e),e=""===n?"."+I(c,0):n,Array.isArray(s)?(r="",null!=e&&(r=e.replace(k,"$&/")+"/"),R(s,t,r,"",(function(e){return e}))):null!=s&&(A(s)&&(s=function(e,t){return{$$typeof:i,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(s,r+(!s.key||c&&c.key===s.key?"":(""+s.key).replace(k,"$&/")+"/")+e)),t.push(s)),1;if(c=0,n=""===n?".":n+":",Array.isArray(e))for(var l=0;l<e.length;l++){var u=n+I(a=e[l],l);c+=R(a,t,r,u,s)}else if(u=function(e){return null===e||"object"!==typeof e?null:"function"===typeof(e=d&&e[d]||e["@@iterator"])?e:null}(e),"function"===typeof u)for(e=u.call(e),l=0;!(a=e.next()).done;)c+=R(a=a.value,t,r,u=n+I(a,l++),s);else if("object"===a)throw t=""+e,Error(p(31,"[object Object]"===t?"object with keys {"+Object.keys(e).join(", ")+"}":t));return c}function P(e,t,r){if(null==e)return e;var n=[],i=0;return R(e,n,"","",(function(e){return t.call(r,e,i++)})),n}function C(e){if(-1===e._status){var t=e._result;t=t(),e._status=0,e._result=t,t.then((function(t){0===e._status&&(t=t.default,e._status=1,e._result=t)}),(function(t){0===e._status&&(e._status=2,e._result=t)}))}if(1===e._status)return e._result;throw e._result}var T={current:null};function x(){var e=T.current;if(null===e)throw Error(p(321));return e}var D={ReactCurrentDispatcher:T,ReactCurrentBatchConfig:{transition:0},ReactCurrentOwner:v,IsSomeRendererActing:{current:!1},assign:n};t.Children={map:P,forEach:function(e,t,r){P(e,(function(){t.apply(this,arguments)}),r)},count:function(e){var t=0;return P(e,(function(){t++})),t},toArray:function(e){return P(e,(function(e){return e}))||[]},only:function(e){if(!A(e))throw Error(p(143));return e}},t.Component=g,t.PureComponent=b,t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=D,t.cloneElement=function(e,t,r){if(null===e||void 0===e)throw Error(p(267,e));var o=n({},e.props),s=e.key,a=e.ref,c=e._owner;if(null!=t){if(void 0!==t.ref&&(a=t.ref,c=v.current),void 0!==t.key&&(s=""+t.key),e.type&&e.type.defaultProps)var l=e.type.defaultProps;for(u in t)_.call(t,u)&&!E.hasOwnProperty(u)&&(o[u]=void 0===t[u]&&void 0!==l?l[u]:t[u])}var u=arguments.length-2;if(1===u)o.children=r;else if(1<u){l=Array(u);for(var h=0;h<u;h++)l[h]=arguments[h+2];o.children=l}return{$$typeof:i,type:e.type,key:s,ref:a,props:o,_owner:c}},t.createContext=function(e,t){return void 0===t&&(t=null),(e={$$typeof:a,_calculateChangedBits:t,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null}).Provider={$$typeof:s,_context:e},e.Consumer=e},t.createElement=S,t.createFactory=function(e){var t=S.bind(null,e);return t.type=e,t},t.createRef=function(){return{current:null}},t.forwardRef=function(e){return{$$typeof:c,render:e}},t.isValidElement=A,t.lazy=function(e){return{$$typeof:u,_payload:{_status:-1,_result:e},_init:C}},t.memo=function(e,t){return{$$typeof:l,type:e,compare:void 0===t?null:t}},t.useCallback=function(e,t){return x().useCallback(e,t)},t.useContext=function(e,t){return x().useContext(e,t)},t.useDebugValue=function(){},t.useEffect=function(e,t){return x().useEffect(e,t)},t.useImperativeHandle=function(e,t,r){return x().useImperativeHandle(e,t,r)},t.useLayoutEffect=function(e,t){return x().useLayoutEffect(e,t)},t.useMemo=function(e,t){return x().useMemo(e,t)},t.useReducer=function(e,t,r){return x().useReducer(e,t,r)},t.useRef=function(e){return x().useRef(e)},t.useState=function(e){return x().useState(e)},t.version="17.0.2"},2791:(e,t,r)=>{"use strict";e.exports=r(9117)},184:(e,t,r)=>{"use strict";e.exports=r(6374)},449:(e,t,r)=>{"use strict";e.exports=s;var n=r(8193),i=s.prototype,o=new Date%1e9;function s(e){e=e||{},this.id=e.id||(1e9*Math.random()>>>0)+o++,this.max=e.max||1/0,this.items=e.items||[],this._lookup={},this.size=this.items.length,this.lastModified=new Date(e.lastModified||new Date);for(var t,r,n=this.items.length;n--;)t=this.items[n],r=new Date(t.expires)-new Date,this._lookup[t.key]=t,r>0?this.expire(t.key,r):r<=0&&this.delete(t.key)}i.has=function(e){return e in this._lookup},i.get=function(e){if(!this.has(e))return null;var t=this._lookup[e];return t.refresh&&this.expire(e,t.refresh),this.items.splice(this.items.indexOf(t),1),this.items.push(t),t.value},i.meta=function(e){if(!this.has(e))return null;var t=this._lookup[e];return"meta"in t?t.meta:null},i.set=function(e,t,r){var n=this._lookup[e],i=this._lookup[e]={key:e,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++),r&&("ttl"in r&&this.expire(e,r.ttl),"meta"in r&&(i.meta=r.meta),r.refresh&&(i.refresh=r.ttl)),this},i.delete=function(e){var t=this._lookup[e];return!!t&&(this.lastModified=new Date,this.items.splice(this.items.indexOf(t),1),clearTimeout(t.timeout),delete this._lookup[e],this.size--,this)},i.expire=function(e,t){var r=t||0,i=this._lookup[e];if(!i)return this;if("string"===typeof r&&(r=n(t)),"number"!==typeof r)throw new TypeError("Expiration time must be a string or number.");return clearTimeout(i.timeout),i.timeout=setTimeout(this.delete.bind(this,i.key),r),i.expires=Number(new Date)+r,this},i.clear=function(){for(var e=this.items.length;e--;)this.delete(this.items[e].key);return this},i.toJSON=function(){for(var e,t=new Array(this.items.length),r=t.length;r--;)e=this.items[r],t[r]={key:e.key,meta:e.meta,value:e.value,expires:e.expires,refresh:e.refresh};return{id:this.id,max:isFinite(this.max)?this.max:void 0,lastModified:this.lastModified,items:t}}},6327:(e,t,r)=>{"use strict";var n=r(206),i=/[\/\?<>\\:\*\|"]/g,o=/[\x00-\x1f\x80-\x9f]/g,s=/^\.+$/,a=/^(con|prn|aux|nul|com[0-9]|lpt[0-9])(\..*)?$/i,c=/[\. ]+$/;function l(e,t){if("string"!==typeof e)throw new Error("Input must be string");var r=e.replace(i,t).replace(o,t).replace(s,t).replace(a,t).replace(c,t);return n(r,255)}e.exports=function(e,t){var r=t&&t.replacement||"",n=l(e,r);return""===r?n:l(n,"")}},6813:(e,t)=>{"use strict";var r,n,i,o;if("object"===typeof performance&&"function"===typeof performance.now){var s=performance;t.unstable_now=function(){return s.now()}}else{var a=Date,c=a.now();t.unstable_now=function(){return a.now()-c}}if("undefined"===typeof window||"function"!==typeof MessageChannel){var l=null,u=null,h=function(){if(null!==l)try{var e=t.unstable_now();l(!0,e),l=null}catch(r){throw setTimeout(h,0),r}};r=function(e){null!==l?setTimeout(r,0,e):(l=e,setTimeout(h,0))},n=function(e,t){u=setTimeout(e,t)},i=function(){clearTimeout(u)},t.unstable_shouldYield=function(){return!1},o=t.unstable_forceFrameRate=function(){}}else{var d=window.setTimeout,p=window.clearTimeout;if("undefined"!==typeof console){var f=window.cancelAnimationFrame;"function"!==typeof window.requestAnimationFrame&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills"),"function"!==typeof f&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills")}var y=!1,g=null,m=-1,b=5,w=0;t.unstable_shouldYield=function(){return t.unstable_now()>=w},o=function(){},t.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):b=0<e?Math.floor(1e3/e):5};var v=new MessageChannel,_=v.port2;v.port1.onmessage=function(){if(null!==g){var e=t.unstable_now();w=e+b;try{g(!0,e)?_.postMessage(null):(y=!1,g=null)}catch(r){throw _.postMessage(null),r}}else y=!1},r=function(e){g=e,y||(y=!0,_.postMessage(null))},n=function(e,r){m=d((function(){e(t.unstable_now())}),r)},i=function(){p(m),m=-1}}function E(e,t){var r=e.length;e.push(t);e:for(;;){var n=r-1>>>1,i=e[n];if(!(void 0!==i&&0<k(i,t)))break e;e[n]=t,e[r]=i,r=n}}function S(e){return void 0===(e=e[0])?null:e}function A(e){var t=e[0];if(void 0!==t){var r=e.pop();if(r!==t){e[0]=r;e:for(var n=0,i=e.length;n<i;){var o=2*(n+1)-1,s=e[o],a=o+1,c=e[a];if(void 0!==s&&0>k(s,r))void 0!==c&&0>k(c,s)?(e[n]=c,e[a]=r,n=a):(e[n]=s,e[o]=r,n=o);else{if(!(void 0!==c&&0>k(c,r)))break e;e[n]=c,e[a]=r,n=a}}}return t}return null}function k(e,t){var r=e.sortIndex-t.sortIndex;return 0!==r?r:e.id-t.id}var I=[],R=[],P=1,C=null,T=3,x=!1,D=!1,N=!1;function L(e){for(var t=S(R);null!==t;){if(null===t.callback)A(R);else{if(!(t.startTime<=e))break;A(R),t.sortIndex=t.expirationTime,E(I,t)}t=S(R)}}function B(e){if(N=!1,L(e),!D)if(null!==S(I))D=!0,r(M);else{var t=S(R);null!==t&&n(B,t.startTime-e)}}function M(e,r){D=!1,N&&(N=!1,i()),x=!0;var o=T;try{for(L(r),C=S(I);null!==C&&(!(C.expirationTime>r)||e&&!t.unstable_shouldYield());){var s=C.callback;if("function"===typeof s){C.callback=null,T=C.priorityLevel;var a=s(C.expirationTime<=r);r=t.unstable_now(),"function"===typeof a?C.callback=a:C===S(I)&&A(I),L(r)}else A(I);C=S(I)}if(null!==C)var c=!0;else{var l=S(R);null!==l&&n(B,l.startTime-r),c=!1}return c}finally{C=null,T=o,x=!1}}var O=o;t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_continueExecution=function(){D||x||(D=!0,r(M))},t.unstable_getCurrentPriorityLevel=function(){return T},t.unstable_getFirstCallbackNode=function(){return S(I)},t.unstable_next=function(e){switch(T){case 1:case 2:case 3:var t=3;break;default:t=T}var r=T;T=t;try{return e()}finally{T=r}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=O,t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var r=T;T=e;try{return t()}finally{T=r}},t.unstable_scheduleCallback=function(e,o,s){var a=t.unstable_now();switch("object"===typeof s&&null!==s?s="number"===typeof(s=s.delay)&&0<s?a+s:a:s=a,e){case 1:var c=-1;break;case 2:c=250;break;case 5:c=1073741823;break;case 4:c=1e4;break;default:c=5e3}return e={id:P++,callback:o,priorityLevel:e,startTime:s,expirationTime:c=s+c,sortIndex:-1},s>a?(e.sortIndex=s,E(R,e),null===S(I)&&e===S(R)&&(N?i():N=!0,n(B,s-a))):(e.sortIndex=c,E(I,e),D||x||(D=!0,r(M))),e},t.unstable_wrapCallback=function(e){var t=T;return function(){var r=T;T=t;try{return e.apply(this,arguments)}finally{T=r}}}},5296:(e,t,r)=>{"use strict";e.exports=r(6813)},2145:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Nouns=t.Adjectives=void 0,t.Adjectives=["Adorable","Adventurous","Agressive","Alert","Alive","Amused","Angry","Annoyed","Annoying","silent","empty","dry","dark","summer","icy","delicate","quiet","white","cool","spring","winter","patient","twilight","dawn","crimson","wispy","weathered","blue","billowing","broken","cold","damp","falling","frosty","green","long","late","lingering","bold","little","morning","muddy","old","red","rough","still","small","sparkling","throbbing","shy","wandering","withered","wild","black","young","holy","solitary","fragrant","aged","snowy","proud","floral","restless","divine","polished","ancient","purple","lively","nameless"],t.Nouns=["waterfall","river","breeze","moon","rain","wind","sea","morning","snow","lake","sunset","pine","shadow","leaf","dawn","glitter","forest","hill","cloud","meadow","sun","glade","bird","brook","butterfly","bush","dew","dust","field","fire","flower","firefly","feather","grass","haze","mountain","night","pond","darkness","snowflake","silence","sound","sky","shape","surf","thunder","violet","water","wildflower","wave","water","resonance","sun","wood","dream","cherry","tree","fog","frost","voice","paper","frog","smoke","star"]},2861:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(2145);t.default=()=>n.Adjectives[Math.floor(Math.random()*n.Adjectives.length)]+" "+n.Nouns[Math.floor(Math.random()*n.Nouns.length)]},8555:(e,t,r)=>{"use strict";var n=r(2861);Object.defineProperty(t,"R",{enumerable:!0,get:function(){return n.default}})},206:(e,t,r)=>{"use strict";var n=r(9022),i=r(4847);e.exports=n.bind(null,i)},9022:e=>{"use strict";function t(e){return e>=55296&&e<=56319}function r(e){return e>=56320&&e<=57343}e.exports=function(e,n,i){if("string"!==typeof n)throw new Error("Input must be string");for(var o,s,a=n.length,c=0,l=0;l<a;l+=1){if(o=n.charCodeAt(l),s=n[l],t(o)&&r(n.charCodeAt(l+1))&&(s+=n[l+=1]),(c+=e(s))===i)return n.slice(0,l+1);if(c>i)return n.slice(0,l-s.length+1)}return n}},4847:e=>{"use strict";function t(e){return e>=55296&&e<=56319}function r(e){return e>=56320&&e<=57343}e.exports=function(e){if("string"!==typeof e)throw new Error("Input must be string");for(var n=e.length,i=0,o=null,s=null,a=0;a<n;a++)r(o=e.charCodeAt(a))?null!=s&&t(s)?i+=1:i+=3:o<=127?i+=1:o>=128&&o<=2047?i+=2:o>=2048&&o<=65535&&(i+=3),s=o;return i}},3522:e=>{e.exports=function e(n,i){var o,s=0,a=0,c=i=i||0,l=n.length;do{if(c>=l||a>49)throw e.bytes=0,new RangeError("Could not decode varint");o=n[c++],s+=a<28?(o&r)<<a:(o&r)*Math.pow(2,a),a+=7}while(o>=t);return e.bytes=c-i,s};var t=128,r=127},6993:e=>{e.exports=function e(i,o,s){if(Number.MAX_SAFE_INTEGER&&i>Number.MAX_SAFE_INTEGER)throw e.bytes=0,new RangeError("Could not encode varint");o=o||[];var a=s=s||0;for(;i>=n;)o[s++]=255&i|t,i/=128;for(;i&r;)o[s++]=255&i|t,i>>>=7;return o[s]=0|i,e.bytes=s-a+1,o};var t=128,r=-128,n=Math.pow(2,31)},4561:(e,t,r)=>{e.exports={encode:r(6993),decode:r(3522),encodingLength:r(2570)}},2570:e=>{var t=Math.pow(2,7),r=Math.pow(2,14),n=Math.pow(2,21),i=Math.pow(2,28),o=Math.pow(2,35),s=Math.pow(2,42),a=Math.pow(2,49),c=Math.pow(2,56),l=Math.pow(2,63);e.exports=function(e){return e<t?1:e<r?2:e<n?3:e<i?4:e<o?5:e<s?6:e<a?7:e<c?8:e<l?9:10}},7420:()=>{},5856:()=>{},3886:()=>{},52:()=>{},5819:()=>{},1265:()=>{},5539:()=>{}},__webpack_module_cache__={};function __webpack_require__(e){var t=__webpack_module_cache__[e];if(void 0!==t)return t.exports;var r=__webpack_module_cache__[e]={exports:{}};return __webpack_modules__[e].call(r.exports,r,r.exports,__webpack_require__),r.exports}__webpack_require__.amdO={},(()=>{var e,t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__;__webpack_require__.t=function(r,n){if(1&n&&(r=this(r)),8&n)return r;if("object"===typeof r&&r){if(4&n&&r.__esModule)return r;if(16&n&&"function"===typeof r.then)return r}var i=Object.create(null);__webpack_require__.r(i);var o={};e=e||[null,t({}),t([]),t(t)];for(var s=2&n&&r;"object"==typeof s&&!~e.indexOf(s);s=t(s))Object.getOwnPropertyNames(s).forEach((e=>o[e]=()=>r[e]));return o.default=()=>r,__webpack_require__.d(i,o),i}})(),__webpack_require__.d=(e,t)=>{for(var r in t)__webpack_require__.o(t,r)&&!__webpack_require__.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},__webpack_require__.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"===typeof window)return window}}(),__webpack_require__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),__webpack_require__.r=e=>{"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},__webpack_require__.p="/web-chat/";var __webpack_exports__={};(()=>{"use strict";var e={};__webpack_require__.r(e),__webpack_require__.d(e,{base58btc:()=>rn,base58flickr:()=>nn});var t={};__webpack_require__.r(t),__webpack_require__.d(t,{base32:()=>Pn,base32hex:()=>Dn,base32hexpad:()=>Ln,base32hexpadupper:()=>Bn,base32hexupper:()=>Nn,base32pad:()=>Tn,base32padupper:()=>xn,base32upper:()=>Cn,base32z:()=>Mn});var r={};__webpack_require__.r(r),__webpack_require__.d(r,{base10:()=>si});var n={};__webpack_require__.r(n),__webpack_require__.d(n,{base16:()=>ai,base16upper:()=>ci});var i={};__webpack_require__.r(i),__webpack_require__.d(i,{base2:()=>li});var o={};__webpack_require__.r(o),__webpack_require__.d(o,{base256emoji:()=>pi});var s={};__webpack_require__.r(s),__webpack_require__.d(s,{base32:()=>fi,base32hex:()=>bi,base32hexpad:()=>vi,base32hexpadupper:()=>_i,base32hexupper:()=>wi,base32pad:()=>gi,base32padupper:()=>mi,base32upper:()=>yi,base32z:()=>Ei});var a={};__webpack_require__.r(a),__webpack_require__.d(a,{base36:()=>Si,base36upper:()=>Ai});var c={};__webpack_require__.r(c),__webpack_require__.d(c,{base58btc:()=>ki,base58flickr:()=>Ii});var l={};__webpack_require__.r(l),__webpack_require__.d(l,{base64:()=>Ri,base64pad:()=>Pi,base64url:()=>Ci,base64urlpad:()=>Ti});var u={};__webpack_require__.r(u),__webpack_require__.d(u,{base8:()=>xi});var h={};__webpack_require__.r(h),__webpack_require__.d(h,{identity:()=>Di});var d={};__webpack_require__.r(d),__webpack_require__.d(d,{code:()=>Mi,decode:()=>Ui,encode:()=>Oi,name:()=>Bi});var p={};__webpack_require__.r(p),__webpack_require__.d(p,{code:()=>qi,decode:()=>Vi,encode:()=>Fi,name:()=>Ki});var f={};__webpack_require__.r(f),__webpack_require__.d(f,{identity:()=>ho});var y={};__webpack_require__.r(y),__webpack_require__.d(y,{sha256:()=>go,sha512:()=>mo});var g={};__webpack_require__.r(g),__webpack_require__.d(g,{identity:()=>No});var m={};__webpack_require__.r(m),__webpack_require__.d(m,{base2:()=>Lo});var b={};__webpack_require__.r(b),__webpack_require__.d(b,{base8:()=>Bo});var w={};__webpack_require__.r(w),__webpack_require__.d(w,{base10:()=>Mo});var v={};__webpack_require__.r(v),__webpack_require__.d(v,{base16:()=>Oo,base16upper:()=>Uo});var _={};__webpack_require__.r(_),__webpack_require__.d(_,{base36:()=>Ko,base36upper:()=>qo});var E={};__webpack_require__.r(E),__webpack_require__.d(E,{base64:()=>Fo,base64pad:()=>Vo,base64url:()=>zo,base64urlpad:()=>jo});var S={};__webpack_require__.r(S),__webpack_require__.d(S,{base256emoji:()=>Yo});var A={};__webpack_require__.r(A),__webpack_require__.d(A,{sha256:()=>Zo,sha512:()=>$o});var k={};__webpack_require__.r(k),__webpack_require__.d(k,{identity:()=>ts});var I={};__webpack_require__.r(I),__webpack_require__.d(I,{code:()=>ns,decode:()=>os,encode:()=>is,name:()=>rs});var R={};__webpack_require__.r(R),__webpack_require__.d(R,{code:()=>ls,decode:()=>hs,encode:()=>us,name:()=>cs});var P={};__webpack_require__.r(P),__webpack_require__.d(P,{bitGet:()=>Mh,bitLen:()=>Bh,bitMask:()=>Uh,bitSet:()=>Oh,bytesToHex:()=>Eh,bytesToNumberBE:()=>Ih,bytesToNumberLE:()=>Rh,concatBytes:()=>Dh,createHmacDrbg:()=>Fh,ensureBytes:()=>xh,equalBytes:()=>Nh,hexToBytes:()=>kh,hexToNumber:()=>Ah,numberToBytesBE:()=>Ph,numberToBytesLE:()=>Ch,numberToHexUnpadded:()=>Sh,numberToVarBytesBE:()=>Th,utf8ToBytes:()=>Lh,validateObject:()=>zh});var C={};__webpack_require__.r(C),__webpack_require__.d(C,{base58btc:()=>bp,base58flickr:()=>wp});var T={};__webpack_require__.r(T),__webpack_require__.d(T,{identity:()=>jp});var x={};__webpack_require__.r(x),__webpack_require__.d(x,{sha256:()=>Yp,sha512:()=>Qp});var D={};__webpack_require__.r(D),__webpack_require__.d(D,{base64:()=>ef,base64pad:()=>tf,base64url:()=>rf,base64urlpad:()=>nf});var N={};__webpack_require__.r(N),__webpack_require__.d(N,{Ed25519PrivateKey:()=>_f,Ed25519PublicKey:()=>vf,generateKeyPair:()=>Af,generateKeyPairFromSeed:()=>kf,unmarshalEd25519PrivateKey:()=>Ef,unmarshalEd25519PublicKey:()=>Sf});var L={};__webpack_require__.r(L),__webpack_require__.d(L,{MAX_KEY_SIZE:()=>Of,RsaPrivateKey:()=>Kf,RsaPublicKey:()=>Uf,fromJwk:()=>Vf,generateKeyPair:()=>zf,unmarshalRsaPrivateKey:()=>qf,unmarshalRsaPublicKey:()=>Ff});var B={};__webpack_require__.r(B),__webpack_require__.d(B,{Secp256k1PrivateKey:()=>ly,Secp256k1PublicKey:()=>cy,generateKeyPair:()=>dy,unmarshalSecp256k1PrivateKey:()=>uy,unmarshalSecp256k1PublicKey:()=>hy});var M={};__webpack_require__.r(M),__webpack_require__.d(M,{base10:()=>gy});var O={};__webpack_require__.r(O),__webpack_require__.d(O,{base16:()=>my,base16upper:()=>by});var U={};__webpack_require__.r(U),__webpack_require__.d(U,{base2:()=>wy});var K={};__webpack_require__.r(K),__webpack_require__.d(K,{base256emoji:()=>Sy});var q={};__webpack_require__.r(q),__webpack_require__.d(q,{base32:()=>Ay,base32hex:()=>Py,base32hexpad:()=>Ty,base32hexpadupper:()=>xy,base32hexupper:()=>Cy,base32pad:()=>Iy,base32padupper:()=>Ry,base32upper:()=>ky,base32z:()=>Dy});var F={};__webpack_require__.r(F),__webpack_require__.d(F,{base36:()=>Ny,base36upper:()=>Ly});var V={};__webpack_require__.r(V),__webpack_require__.d(V,{base8:()=>By});var z={};__webpack_require__.r(z),__webpack_require__.d(z,{identity:()=>My});var j={};__webpack_require__.r(j),__webpack_require__.d(j,{code:()=>qy,decode:()=>Vy,encode:()=>Fy,name:()=>Ky});var H={};__webpack_require__.r(H),__webpack_require__.d(H,{code:()=>jy,decode:()=>Gy,encode:()=>Hy,name:()=>zy});var G={};__webpack_require__.r(G),__webpack_require__.d(G,{Ed25519PrivateKey:()=>TE,Ed25519PublicKey:()=>CE,generateKeyPair:()=>NE,generateKeyPairFromSeed:()=>LE,unmarshalEd25519PrivateKey:()=>xE,unmarshalEd25519PublicKey:()=>DE});var W={};__webpack_require__.r(W),__webpack_require__.d(W,{RsaPrivateKey:()=>HE,RsaPublicKey:()=>jE,fromJwk:()=>YE,generateKeyPair:()=>QE,unmarshalRsaPrivateKey:()=>GE,unmarshalRsaPublicKey:()=>WE});var Y={};__webpack_require__.r(Y),__webpack_require__.d(Y,{Secp256k1PrivateKey:()=>ZE,Secp256k1PublicKey:()=>JE,generateKeyPair:()=>tS,unmarshalSecp256k1PrivateKey:()=>$E,unmarshalSecp256k1PublicKey:()=>eS});var Q={};__webpack_require__.r(Q),__webpack_require__.d(Q,{base58btc:()=>fS,base58flickr:()=>yS});var X={};__webpack_require__.r(X),__webpack_require__.d(X,{base10:()=>gS});var J={};__webpack_require__.r(J),__webpack_require__.d(J,{base16:()=>mS,base16upper:()=>bS});var Z={};__webpack_require__.r(Z),__webpack_require__.d(Z,{base2:()=>wS});var $={};__webpack_require__.r($),__webpack_require__.d($,{base256emoji:()=>SS});var ee={};__webpack_require__.r(ee),__webpack_require__.d(ee,{base32:()=>AS,base32hex:()=>PS,base32hexpad:()=>TS,base32hexpadupper:()=>xS,base32hexupper:()=>CS,base32pad:()=>IS,base32padupper:()=>RS,base32upper:()=>kS,base32z:()=>DS});var te={};__webpack_require__.r(te),__webpack_require__.d(te,{base36:()=>NS,base36upper:()=>LS});var re={};__webpack_require__.r(re),__webpack_require__.d(re,{base64:()=>BS,base64pad:()=>MS,base64url:()=>OS,base64urlpad:()=>US});var ne={};__webpack_require__.r(ne),__webpack_require__.d(ne,{base8:()=>KS});var ie={};__webpack_require__.r(ie),__webpack_require__.d(ie,{identity:()=>qS});var oe={};__webpack_require__.r(oe),__webpack_require__.d(oe,{code:()=>jS,decode:()=>GS,encode:()=>HS,name:()=>zS});var se={};__webpack_require__.r(se),__webpack_require__.d(se,{code:()=>YS,decode:()=>XS,encode:()=>QS,name:()=>WS});var ae={};__webpack_require__.r(ae),__webpack_require__.d(ae,{identity:()=>_A});var ce={};__webpack_require__.r(ce),__webpack_require__.d(ce,{sha256:()=>kA,sha512:()=>IA});var le={};__webpack_require__.r(le),__webpack_require__.d(le,{base58btc:()=>bP,base58flickr:()=>wP});var ue={};__webpack_require__.r(ue),__webpack_require__.d(ue,{base10:()=>vP});var he={};__webpack_require__.r(he),__webpack_require__.d(he,{base16:()=>_P,base16upper:()=>EP});var de={};__webpack_require__.r(de),__webpack_require__.d(de,{base2:()=>SP});var pe={};__webpack_require__.r(pe),__webpack_require__.d(pe,{base256emoji:()=>RP});var fe={};__webpack_require__.r(fe),__webpack_require__.d(fe,{base32:()=>PP,base32hex:()=>DP,base32hexpad:()=>LP,base32hexpadupper:()=>BP,base32hexupper:()=>NP,base32pad:()=>TP,base32padupper:()=>xP,base32upper:()=>CP,base32z:()=>MP});var ye={};__webpack_require__.r(ye),__webpack_require__.d(ye,{base36:()=>OP,base36upper:()=>UP});var ge={};__webpack_require__.r(ge),__webpack_require__.d(ge,{base64:()=>KP,base64pad:()=>qP,base64url:()=>FP,base64urlpad:()=>VP});var me={};__webpack_require__.r(me),__webpack_require__.d(me,{base8:()=>zP});var be={};__webpack_require__.r(be),__webpack_require__.d(be,{identity:()=>jP});var we={};__webpack_require__.r(we),__webpack_require__.d(we,{code:()=>YP,decode:()=>XP,encode:()=>QP,name:()=>WP});var ve={};__webpack_require__.r(ve),__webpack_require__.d(ve,{code:()=>ZP,decode:()=>eC,encode:()=>$P,name:()=>JP});var _e={};__webpack_require__.r(_e),__webpack_require__.d(_e,{identity:()=>kC});var Ee={};__webpack_require__.r(Ee),__webpack_require__.d(Ee,{sha256:()=>CC,sha512:()=>TC});var Se={};__webpack_require__.r(Se),__webpack_require__.d(Se,{Ed25519PrivateKey:()=>xT,Ed25519PublicKey:()=>TT,generateKeyPair:()=>LT,generateKeyPairFromSeed:()=>BT,unmarshalEd25519PrivateKey:()=>DT,unmarshalEd25519PublicKey:()=>NT});var Ae={};__webpack_require__.r(Ae),__webpack_require__.d(Ae,{MAX_KEY_SIZE:()=>WT,RsaPrivateKey:()=>QT,RsaPublicKey:()=>YT,fromJwk:()=>ZT,generateKeyPair:()=>$T,unmarshalRsaPrivateKey:()=>XT,unmarshalRsaPublicKey:()=>JT});var ke={};__webpack_require__.r(ke),__webpack_require__.d(ke,{Secp256k1PrivateKey:()=>rx,Secp256k1PublicKey:()=>tx,generateKeyPair:()=>ox,unmarshalSecp256k1PrivateKey:()=>nx,unmarshalSecp256k1PublicKey:()=>ix});var Ie={};__webpack_require__.r(Ie),__webpack_require__.d(Ie,{base58btc:()=>iD,base58flickr:()=>oD});var Re={};__webpack_require__.r(Re),__webpack_require__.d(Re,{identity:()=>PD});var Pe={};__webpack_require__.r(Pe),__webpack_require__.d(Pe,{sha256:()=>DD,sha512:()=>ND});var Ce={};__webpack_require__.r(Ce),__webpack_require__.d(Ce,{base64:()=>UD,base64pad:()=>KD,base64url:()=>qD,base64urlpad:()=>FD});var Te={};__webpack_require__.r(Te),__webpack_require__.d(Te,{Ed25519PrivateKey:()=>nN,Ed25519PublicKey:()=>rN,generateKeyPair:()=>sN,generateKeyPairFromSeed:()=>aN,unmarshalEd25519PrivateKey:()=>iN,unmarshalEd25519PublicKey:()=>oN});var xe={};__webpack_require__.r(xe),__webpack_require__.d(xe,{MAX_KEY_SIZE:()=>bN,RsaPrivateKey:()=>vN,RsaPublicKey:()=>wN,fromJwk:()=>SN,generateKeyPair:()=>AN,unmarshalRsaPrivateKey:()=>_N,unmarshalRsaPublicKey:()=>EN});var De={};__webpack_require__.r(De),__webpack_require__.d(De,{Secp256k1PrivateKey:()=>RN,Secp256k1PublicKey:()=>IN,generateKeyPair:()=>TN,unmarshalSecp256k1PrivateKey:()=>PN,unmarshalSecp256k1PublicKey:()=>CN});var Ne={};__webpack_require__.r(Ne),__webpack_require__.d(Ne,{base10:()=>xN});var Le={};__webpack_require__.r(Le),__webpack_require__.d(Le,{base16:()=>DN,base16upper:()=>NN});var Be={};__webpack_require__.r(Be),__webpack_require__.d(Be,{base2:()=>LN});var Me={};__webpack_require__.r(Me),__webpack_require__.d(Me,{base256emoji:()=>UN});var Oe={};__webpack_require__.r(Oe),__webpack_require__.d(Oe,{base32:()=>KN,base32hex:()=>zN,base32hexpad:()=>HN,base32hexpadupper:()=>GN,base32hexupper:()=>jN,base32pad:()=>FN,base32padupper:()=>VN,base32upper:()=>qN,base32z:()=>WN});var Ue={};__webpack_require__.r(Ue),__webpack_require__.d(Ue,{base36:()=>YN,base36upper:()=>QN});var Ke={};__webpack_require__.r(Ke),__webpack_require__.d(Ke,{base8:()=>XN});var qe={};__webpack_require__.r(qe),__webpack_require__.d(qe,{identity:()=>JN});var Fe={};__webpack_require__.r(Fe),__webpack_require__.d(Fe,{code:()=>tL,decode:()=>nL,encode:()=>rL,name:()=>eL});var Ve={};__webpack_require__.r(Ve),__webpack_require__.d(Ve,{code:()=>oL,decode:()=>aL,encode:()=>sL,name:()=>iL});var ze={};__webpack_require__.r(ze),__webpack_require__.d(ze,{base58btc:()=>tB,base58flickr:()=>rB});var je={};__webpack_require__.r(je),__webpack_require__.d(je,{identity:()=>RB});var He={};__webpack_require__.r(He),__webpack_require__.d(He,{sha256:()=>xB,sha512:()=>DB});var Ge={};__webpack_require__.r(Ge),__webpack_require__.d(Ge,{base64:()=>OB,base64pad:()=>UB,base64url:()=>KB,base64urlpad:()=>qB});var We={};__webpack_require__.r(We),__webpack_require__.d(We,{Ed25519PrivateKey:()=>nM,Ed25519PublicKey:()=>rM,generateKeyPair:()=>sM,generateKeyPairFromSeed:()=>aM,unmarshalEd25519PrivateKey:()=>iM,unmarshalEd25519PublicKey:()=>oM});var Ye={};__webpack_require__.r(Ye),__webpack_require__.d(Ye,{MAX_KEY_SIZE:()=>wM,RsaPrivateKey:()=>_M,RsaPublicKey:()=>vM,fromJwk:()=>AM,generateKeyPair:()=>kM,unmarshalRsaPrivateKey:()=>EM,unmarshalRsaPublicKey:()=>SM});var Qe={};__webpack_require__.r(Qe),__webpack_require__.d(Qe,{Secp256k1PrivateKey:()=>PM,Secp256k1PublicKey:()=>RM,generateKeyPair:()=>xM,unmarshalSecp256k1PrivateKey:()=>CM,unmarshalSecp256k1PublicKey:()=>TM});var Xe={};__webpack_require__.r(Xe),__webpack_require__.d(Xe,{base58btc:()=>YM,base58flickr:()=>QM});var Je={};__webpack_require__.r(Je),__webpack_require__.d(Je,{identity:()=>vO});var Ze={};__webpack_require__.r(Ze),__webpack_require__.d(Ze,{sha256:()=>AO,sha512:()=>kO});var $e={};__webpack_require__.r($e),__webpack_require__.d($e,{base64:()=>TO,base64pad:()=>xO,base64url:()=>DO,base64urlpad:()=>NO});var et={};__webpack_require__.r(et),__webpack_require__.d(et,{Ed25519PrivateKey:()=>XO,Ed25519PublicKey:()=>QO,generateKeyPair:()=>$O,generateKeyPairFromSeed:()=>eU,unmarshalEd25519PrivateKey:()=>JO,unmarshalEd25519PublicKey:()=>ZO});var tt={};__webpack_require__.r(tt),__webpack_require__.d(tt,{MAX_KEY_SIZE:()=>dU,RsaPrivateKey:()=>fU,RsaPublicKey:()=>pU,fromJwk:()=>mU,generateKeyPair:()=>bU,unmarshalRsaPrivateKey:()=>yU,unmarshalRsaPublicKey:()=>gU});var rt={};__webpack_require__.r(rt),__webpack_require__.d(rt,{Secp256k1PrivateKey:()=>_U,Secp256k1PublicKey:()=>vU,generateKeyPair:()=>AU,unmarshalSecp256k1PrivateKey:()=>EU,unmarshalSecp256k1PublicKey:()=>SU});var nt={};__webpack_require__.r(nt),__webpack_require__.d(nt,{base32:()=>DU,base32hex:()=>MU,base32hexpad:()=>UU,base32hexpadupper:()=>KU,base32hexupper:()=>OU,base32pad:()=>LU,base32padupper:()=>BU,base32upper:()=>NU,base32z:()=>qU});var it={};__webpack_require__.r(it),__webpack_require__.d(it,{base10:()=>FU});var ot={};__webpack_require__.r(ot),__webpack_require__.d(ot,{base16:()=>VU,base16upper:()=>zU});var st={};__webpack_require__.r(st),__webpack_require__.d(st,{base2:()=>jU});var at={};__webpack_require__.r(at),__webpack_require__.d(at,{base256emoji:()=>YU});var ct={};__webpack_require__.r(ct),__webpack_require__.d(ct,{base36:()=>QU,base36upper:()=>XU});var lt={};__webpack_require__.r(lt),__webpack_require__.d(lt,{base8:()=>JU});var ut={};__webpack_require__.r(ut),__webpack_require__.d(ut,{identity:()=>ZU});var ht={};__webpack_require__.r(ht),__webpack_require__.d(ht,{code:()=>rK,decode:()=>iK,encode:()=>nK,name:()=>tK});var dt={};__webpack_require__.r(dt),__webpack_require__.d(dt,{code:()=>sK,decode:()=>cK,encode:()=>aK,name:()=>oK});var pt={};__webpack_require__.r(pt),__webpack_require__.d(pt,{base32:()=>$K,base32hex:()=>nq,base32hexpad:()=>oq,base32hexpadupper:()=>sq,base32hexupper:()=>iq,base32pad:()=>tq,base32padupper:()=>rq,base32upper:()=>eq,base32z:()=>aq});var ft={};__webpack_require__.r(ft),__webpack_require__.d(ft,{base58btc:()=>vq,base58flickr:()=>_q});var yt={};__webpack_require__.r(yt),__webpack_require__.d(yt,{base10:()=>Eq});var gt={};__webpack_require__.r(gt),__webpack_require__.d(gt,{base16:()=>Sq,base16upper:()=>Aq});var mt={};__webpack_require__.r(mt),__webpack_require__.d(mt,{base2:()=>kq});var bt={};__webpack_require__.r(bt),__webpack_require__.d(bt,{base256emoji:()=>Cq});var wt={};__webpack_require__.r(wt),__webpack_require__.d(wt,{base32:()=>Tq,base32hex:()=>Lq,base32hexpad:()=>Mq,base32hexpadupper:()=>Oq,base32hexupper:()=>Bq,base32pad:()=>Dq,base32padupper:()=>Nq,base32upper:()=>xq,base32z:()=>Uq});var vt={};__webpack_require__.r(vt),__webpack_require__.d(vt,{base36:()=>Kq,base36upper:()=>qq});var _t={};__webpack_require__.r(_t),__webpack_require__.d(_t,{base64:()=>Fq,base64pad:()=>Vq,base64url:()=>zq,base64urlpad:()=>jq});var Et={};__webpack_require__.r(Et),__webpack_require__.d(Et,{base8:()=>Hq});var St={};__webpack_require__.r(St),__webpack_require__.d(St,{identity:()=>Gq});var At={};__webpack_require__.r(At),__webpack_require__.d(At,{code:()=>Xq,decode:()=>Zq,encode:()=>Jq,name:()=>Qq});var kt={};__webpack_require__.r(kt),__webpack_require__.d(kt,{code:()=>eF,decode:()=>rF,encode:()=>tF,name:()=>$q});var It={};__webpack_require__.r(It),__webpack_require__.d(It,{identity:()=>RF});var Rt={};__webpack_require__.r(Rt),__webpack_require__.d(Rt,{sha256:()=>xF,sha512:()=>DF});var Pt={};__webpack_require__.r(Pt),__webpack_require__.d(Pt,{base10:()=>cV});var Ct={};__webpack_require__.r(Ct),__webpack_require__.d(Ct,{base16:()=>lV,base16upper:()=>uV});var Tt={};__webpack_require__.r(Tt),__webpack_require__.d(Tt,{base2:()=>hV});var xt={};__webpack_require__.r(xt),__webpack_require__.d(xt,{base256emoji:()=>yV});var Dt={};__webpack_require__.r(Dt),__webpack_require__.d(Dt,{base36:()=>gV,base36upper:()=>mV});var Nt={};__webpack_require__.r(Nt),__webpack_require__.d(Nt,{base8:()=>bV});var Lt={};__webpack_require__.r(Lt),__webpack_require__.d(Lt,{identity:()=>wV});var Bt={};__webpack_require__.r(Bt),__webpack_require__.d(Bt,{code:()=>SV,decode:()=>kV,encode:()=>AV,name:()=>EV});var Mt={};__webpack_require__.r(Mt),__webpack_require__.d(Mt,{code:()=>RV,decode:()=>CV,encode:()=>PV,name:()=>IV});var Ot={};__webpack_require__.r(Ot),__webpack_require__.d(Ot,{base58btc:()=>uz,base58flickr:()=>hz});var Ut={};__webpack_require__.r(Ut),__webpack_require__.d(Ut,{identity:()=>Mz});var Kt={};__webpack_require__.r(Kt),__webpack_require__.d(Kt,{sha256:()=>qz,sha512:()=>Fz});var qt={};__webpack_require__.r(qt),__webpack_require__.d(qt,{base64:()=>Gz,base64pad:()=>Wz,base64url:()=>Yz,base64urlpad:()=>Qz});var Ft={};__webpack_require__.r(Ft),__webpack_require__.d(Ft,{Ed25519PrivateKey:()=>dj,Ed25519PublicKey:()=>hj,generateKeyPair:()=>yj,generateKeyPairFromSeed:()=>gj,unmarshalEd25519PrivateKey:()=>pj,unmarshalEd25519PublicKey:()=>fj});var Vt={};__webpack_require__.r(Vt),__webpack_require__.d(Vt,{MAX_KEY_SIZE:()=>Rj,RsaPrivateKey:()=>Cj,RsaPublicKey:()=>Pj,fromJwk:()=>Dj,generateKeyPair:()=>Nj,unmarshalRsaPrivateKey:()=>Tj,unmarshalRsaPublicKey:()=>xj});var zt={};__webpack_require__.r(zt),__webpack_require__.d(zt,{Secp256k1PrivateKey:()=>Mj,Secp256k1PublicKey:()=>Bj,generateKeyPair:()=>Kj,unmarshalSecp256k1PrivateKey:()=>Oj,unmarshalSecp256k1PublicKey:()=>Uj});var jt={};__webpack_require__.r(jt),__webpack_require__.d(jt,{base10:()=>zj});var Ht={};__webpack_require__.r(Ht),__webpack_require__.d(Ht,{base16:()=>jj,base16upper:()=>Hj});var Gt={};__webpack_require__.r(Gt),__webpack_require__.d(Gt,{base2:()=>Gj});var Wt={};__webpack_require__.r(Wt),__webpack_require__.d(Wt,{base256emoji:()=>Xj});var Yt={};__webpack_require__.r(Yt),__webpack_require__.d(Yt,{base32:()=>Jj,base32hex:()=>tH,base32hexpad:()=>nH,base32hexpadupper:()=>iH,base32hexupper:()=>rH,base32pad:()=>$j,base32padupper:()=>eH,base32upper:()=>Zj,base32z:()=>oH});var Qt={};__webpack_require__.r(Qt),__webpack_require__.d(Qt,{base36:()=>sH,base36upper:()=>aH});var Xt={};__webpack_require__.r(Xt),__webpack_require__.d(Xt,{base8:()=>cH});var Jt={};__webpack_require__.r(Jt),__webpack_require__.d(Jt,{identity:()=>lH});var Zt={};__webpack_require__.r(Zt),__webpack_require__.d(Zt,{code:()=>pH,decode:()=>yH,encode:()=>fH,name:()=>dH});var $t={};__webpack_require__.r($t),__webpack_require__.d($t,{code:()=>mH,decode:()=>wH,encode:()=>bH,name:()=>gH});var er={};__webpack_require__.r(er),__webpack_require__.d(er,{base32:()=>rG,base32hex:()=>sG,base32hexpad:()=>cG,base32hexpadupper:()=>lG,base32hexupper:()=>aG,base32pad:()=>iG,base32padupper:()=>oG,base32upper:()=>nG,base32z:()=>uG});var tr={};__webpack_require__.r(tr),__webpack_require__.d(tr,{base58btc:()=>hG,base58flickr:()=>dG});var rr={};__webpack_require__.r(rr),__webpack_require__.d(rr,{base64:()=>pG,base64pad:()=>fG,base64url:()=>yG,base64urlpad:()=>gG});var nr={};__webpack_require__.r(nr),__webpack_require__.d(nr,{base58btc:()=>PG,base58flickr:()=>CG});var ir={};__webpack_require__.r(ir),__webpack_require__.d(ir,{identity:()=>eW});var or={};__webpack_require__.r(or),__webpack_require__.d(or,{sha256:()=>iW,sha512:()=>oW});var sr={};__webpack_require__.r(sr),__webpack_require__.d(sr,{base64:()=>uW,base64pad:()=>hW,base64url:()=>dW,base64urlpad:()=>pW});var ar={};__webpack_require__.r(ar),__webpack_require__.d(ar,{Ed25519PrivateKey:()=>TW,Ed25519PublicKey:()=>CW,generateKeyPair:()=>NW,generateKeyPairFromSeed:()=>LW,unmarshalEd25519PrivateKey:()=>xW,unmarshalEd25519PublicKey:()=>DW});var cr={};__webpack_require__.r(cr),__webpack_require__.d(cr,{MAX_KEY_SIZE:()=>HW,RsaPrivateKey:()=>WW,RsaPublicKey:()=>GW,fromJwk:()=>XW,generateKeyPair:()=>JW,unmarshalRsaPrivateKey:()=>YW,unmarshalRsaPublicKey:()=>QW});var lr={};__webpack_require__.r(lr),__webpack_require__.d(lr,{Secp256k1PrivateKey:()=>eY,Secp256k1PublicKey:()=>$W,generateKeyPair:()=>nY,unmarshalSecp256k1PrivateKey:()=>tY,unmarshalSecp256k1PublicKey:()=>rY});var ur={};__webpack_require__.r(ur),__webpack_require__.d(ur,{base10:()=>aY});var hr={};__webpack_require__.r(hr),__webpack_require__.d(hr,{base16:()=>cY,base16upper:()=>lY});var dr={};__webpack_require__.r(dr),__webpack_require__.d(dr,{base2:()=>uY});var pr={};__webpack_require__.r(pr),__webpack_require__.d(pr,{base256emoji:()=>fY});var fr={};__webpack_require__.r(fr),__webpack_require__.d(fr,{base32:()=>yY,base32hex:()=>wY,base32hexpad:()=>_Y,base32hexpadupper:()=>EY,base32hexupper:()=>vY,base32pad:()=>mY,base32padupper:()=>bY,base32upper:()=>gY,base32z:()=>SY});var yr={};__webpack_require__.r(yr),__webpack_require__.d(yr,{base36:()=>AY,base36upper:()=>kY});var gr={};__webpack_require__.r(gr),__webpack_require__.d(gr,{base8:()=>IY});var mr={};__webpack_require__.r(mr),__webpack_require__.d(mr,{identity:()=>RY});var br={};__webpack_require__.r(br),__webpack_require__.d(br,{code:()=>xY,decode:()=>NY,encode:()=>DY,name:()=>TY});var wr={};__webpack_require__.r(wr),__webpack_require__.d(wr,{code:()=>BY,decode:()=>OY,encode:()=>MY,name:()=>LY});var vr={};__webpack_require__.r(vr),__webpack_require__.d(vr,{base10:()=>AQ});var _r={};__webpack_require__.r(_r),__webpack_require__.d(_r,{base16:()=>kQ,base16upper:()=>IQ});var Er={};__webpack_require__.r(Er),__webpack_require__.d(Er,{base2:()=>RQ});var Sr={};__webpack_require__.r(Sr),__webpack_require__.d(Sr,{base256emoji:()=>xQ});var Ar={};__webpack_require__.r(Ar),__webpack_require__.d(Ar,{base36:()=>DQ,base36upper:()=>NQ});var kr={};__webpack_require__.r(kr),__webpack_require__.d(kr,{base8:()=>LQ});var Ir={};__webpack_require__.r(Ir),__webpack_require__.d(Ir,{identity:()=>BQ});var Rr={};__webpack_require__.r(Rr),__webpack_require__.d(Rr,{code:()=>KQ,decode:()=>FQ,encode:()=>qQ,name:()=>UQ});var Pr={};__webpack_require__.r(Pr),__webpack_require__.d(Pr,{code:()=>zQ,decode:()=>HQ,encode:()=>jQ,name:()=>VQ});var Cr={};__webpack_require__.r(Cr),__webpack_require__.d(Cr,{identity:()=>gX});var Tr={};__webpack_require__.r(Tr),__webpack_require__.d(Tr,{sha256:()=>vX,sha512:()=>_X});var xr=__webpack_require__(2791),Dr=__webpack_require__(4164);function Nr(e){return Nr="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Nr(e)}function Lr(e){var t=function(e,t){if("object"!==Nr(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==Nr(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===Nr(t)?t:String(t)}function Br(e,t,r){return(t=Lr(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}const Mr=Symbol.for("@libp2p/peer-id");function Or(e){return null!=e&&Boolean(e[Mr])}function Ur(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}function Kr(e,t,r){Ur(e,t),t.set(e,r)}function qr(e,t,r){if(!t.has(e))throw new TypeError("attempted to "+r+" private field on non-instance");return t.get(e)}function Fr(e,t){return function(e,t){return t.get?t.get.call(e):t.value}(e,qr(e,t,"get"))}function Vr(e,t,r){return function(e,t,r){if(t.set)t.set.call(e,r);else{if(!t.writable)throw new TypeError("attempted to set read only private field");t.value=r}}(e,qr(e,t,"set"),r),r}class zr extends Error{constructor(){super(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"The operation was aborted"),Br(this,"code",void 0),Br(this,"type",void 0),this.code=zr.code,this.type=zr.type}}Br(zr,"code","ABORT_ERR"),Br(zr,"type","aborted");class jr extends Error{constructor(e,t,r){var n;super(e),Br(this,"code",void 0),Br(this,"props",void 0),this.code=t,this.name=null!==(n=null===r||void 0===r?void 0:r.name)&&void 0!==n?n:"CodeError",this.props=null!==r&&void 0!==r?r:{}}}var Hr=function(e,t){if(e.length>=255)throw new TypeError("Alphabet too long");for(var r=new Uint8Array(256),n=0;n<r.length;n++)r[n]=255;for(var i=0;i<e.length;i++){var o=e.charAt(i),s=o.charCodeAt(0);if(255!==r[s])throw new TypeError(o+" is ambiguous");r[s]=i}var a=e.length,c=e.charAt(0),l=Math.log(a)/Math.log(256),u=Math.log(256)/Math.log(a);function h(e){if("string"!==typeof e)throw new TypeError("Expected String");if(0===e.length)return new Uint8Array;var t=0;if(" "!==e[t]){for(var n=0,i=0;e[t]===c;)n++,t++;for(var o=(e.length-t)*l+1>>>0,s=new Uint8Array(o);e[t];){var u=r[e.charCodeAt(t)];if(255===u)return;for(var h=0,d=o-1;(0!==u||h<i)&&-1!==d;d--,h++)u+=a*s[d]>>>0,s[d]=u%256>>>0,u=u/256>>>0;if(0!==u)throw new Error("Non-zero carry");i=h,t++}if(" "!==e[t]){for(var p=o-i;p!==o&&0===s[p];)p++;for(var f=new Uint8Array(n+(o-p)),y=n;p!==o;)f[y++]=s[p++];return f}}}return{encode:function(t){if(t instanceof Uint8Array||(ArrayBuffer.isView(t)?t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength):Array.isArray(t)&&(t=Uint8Array.from(t))),!(t instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(0===t.length)return"";for(var r=0,n=0,i=0,o=t.length;i!==o&&0===t[i];)i++,r++;for(var s=(o-i)*u+1>>>0,l=new Uint8Array(s);i!==o;){for(var h=t[i],d=0,p=s-1;(0!==h||d<n)&&-1!==p;p--,d++)h+=256*l[p]>>>0,l[p]=h%a>>>0,h=h/a>>>0;if(0!==h)throw new Error("Non-zero carry");n=d,i++}for(var f=s-n;f!==s&&0===l[f];)f++;for(var y=c.repeat(r);f<s;++f)y+=e.charAt(l[f]);return y},decodeUnsafe:h,decode:function(e){var r=h(e);if(r)return r;throw new Error("Non-".concat(t," character"))}}};const Gr=Hr,Wr=(new Uint8Array(0),e=>{if(e instanceof Uint8Array&&"Uint8Array"===e.constructor.name)return e;if(e instanceof ArrayBuffer)return new Uint8Array(e);if(ArrayBuffer.isView(e))return new Uint8Array(e.buffer,e.byteOffset,e.byteLength);throw new Error("Unknown type, must be binary type")});class Yr{constructor(e,t,r){this.name=e,this.prefix=t,this.baseEncode=r}encode(e){if(e instanceof Uint8Array)return"".concat(this.prefix).concat(this.baseEncode(e));throw Error("Unknown type, must be binary type")}}class Qr{constructor(e,t,r){if(this.name=e,this.prefix=t,void 0===t.codePointAt(0))throw new Error("Invalid prefix character");this.prefixCodePoint=t.codePointAt(0),this.baseDecode=r}decode(e){if("string"===typeof e){if(e.codePointAt(0)!==this.prefixCodePoint)throw Error("Unable to decode multibase string ".concat(JSON.stringify(e),", ").concat(this.name," decoder only supports inputs prefixed with ").concat(this.prefix));return this.baseDecode(e.slice(this.prefix.length))}throw Error("Can only multibase decode strings")}or(e){return Jr(this,e)}}class Xr{constructor(e){this.decoders=e}or(e){return Jr(this,e)}decode(e){const t=e[0],r=this.decoders[t];if(r)return r.decode(e);throw RangeError("Unable to decode multibase string ".concat(JSON.stringify(e),", only inputs prefixed with ").concat(Object.keys(this.decoders)," are supported"))}}const Jr=(e,t)=>new Xr({...e.decoders||{[e.prefix]:e},...t.decoders||{[t.prefix]:t}});class Zr{constructor(e,t,r,n){this.name=e,this.prefix=t,this.baseEncode=r,this.baseDecode=n,this.encoder=new Yr(e,t,r),this.decoder=new Qr(e,t,n)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}}const $r=e=>{let{name:t,prefix:r,encode:n,decode:i}=e;return new Zr(t,r,n,i)},en=e=>{let{prefix:t,name:r,alphabet:n}=e;const{encode:i,decode:o}=Gr(n,r);return $r({prefix:t,name:r,encode:i,decode:e=>Wr(o(e))})},tn=e=>{let{name:t,prefix:r,bitsPerChar:n,alphabet:i}=e;return $r({prefix:r,name:t,encode:e=>((e,t,r)=>{const n="="===t[t.length-1],i=(1<<r)-1;let o="",s=0,a=0;for(let c=0;c<e.length;++c)for(a=a<<8|e[c],s+=8;s>r;)s-=r,o+=t[i&a>>s];if(s&&(o+=t[i&a<<r-s]),n)for(;o.length*r&7;)o+="=";return o})(e,i,n),decode:e=>((e,t,r,n)=>{const i={};for(let u=0;u<t.length;++u)i[t[u]]=u;let o=e.length;for(;"="===e[o-1];)--o;const s=new Uint8Array(o*r/8|0);let a=0,c=0,l=0;for(let u=0;u<o;++u){const t=i[e[u]];if(void 0===t)throw new SyntaxError("Non-".concat(n," character"));c=c<<r|t,a+=r,a>=8&&(a-=8,s[l++]=255&c>>a)}if(a>=r||255&c<<8-a)throw new SyntaxError("Unexpected end of data");return s})(e,i,n,t)})},rn=en({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),nn=en({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var on=function e(t,r,n){r=r||[];var i=n=n||0;for(;t>=cn;)r[n++]=255&t|sn,t/=128;for(;t&an;)r[n++]=255&t|sn,t>>>=7;return r[n]=0|t,e.bytes=n-i+1,r},sn=128,an=-128,cn=Math.pow(2,31);var ln=function e(t,r){var n,i=0,o=0,s=r=r||0,a=t.length;do{if(s>=a)throw e.bytes=0,new RangeError("Could not decode varint");n=t[s++],i+=o<28?(n&hn)<<o:(n&hn)*Math.pow(2,o),o+=7}while(n>=un);return e.bytes=s-r,i},un=128,hn=127;var dn=Math.pow(2,7),pn=Math.pow(2,14),fn=Math.pow(2,21),yn=Math.pow(2,28),gn=Math.pow(2,35),mn=Math.pow(2,42),bn=Math.pow(2,49),wn=Math.pow(2,56),vn=Math.pow(2,63);const _n={encode:on,decode:ln,encodingLength:function(e){return e<dn?1:e<pn?2:e<fn?3:e<yn?4:e<gn?5:e<mn?6:e<bn?7:e<wn?8:e<vn?9:10}},En=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return[_n.decode(e,t),_n.decode.bytes]},Sn=function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;return _n.encode(e,t,r),t},An=e=>_n.encodingLength(e),kn=(e,t)=>{const r=t.byteLength,n=An(e),i=n+An(r),o=new Uint8Array(i+r);return Sn(e,o,0),Sn(r,o,n),o.set(t,i),new Rn(e,r,t,o)},In=e=>{const t=Wr(e),[r,n]=En(t),[i,o]=En(t.subarray(n)),s=t.subarray(n+o);if(s.byteLength!==i)throw new Error("Incorrect length");return new Rn(r,i,s,t)};class Rn{constructor(e,t,r,n){this.code=e,this.size=t,this.digest=r,this.bytes=n}}const Pn=tn({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),Cn=tn({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),Tn=tn({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),xn=tn({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),Dn=tn({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),Nn=tn({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),Ln=tn({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),Bn=tn({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),Mn=tn({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5}),On=(e,t)=>{const{bytes:r,version:n}=e;return 0===n?Vn(r,Kn(e),t||rn.encoder):zn(r,Kn(e),t||Pn.encoder)},Un=new WeakMap,Kn=e=>{const t=Un.get(e);if(null==t){const t=new Map;return Un.set(e,t),t}return t};class qn{constructor(e,t,r,n){this.code=t,this.version=e,this.multihash=r,this.bytes=n,this["/"]=n}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:{const{code:e,multihash:t}=this;if(e!==jn)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(t.code!==Hn)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return qn.createV0(t)}default:throw Error("Can not convert CID version ".concat(this.version," to version 0. This is a bug please report"))}}toV1(){switch(this.version){case 0:{const{code:e,digest:t}=this.multihash,r=kn(e,t);return qn.createV1(this.code,r)}case 1:return this;default:throw Error("Can not convert CID version ".concat(this.version," to version 1. This is a bug please report"))}}equals(e){return qn.equals(this,e)}static equals(e,t){const r=t;return r&&e.code===r.code&&e.version===r.version&&((e,t)=>{if(e===t)return!0;{const r=t;return e.code===r.code&&e.size===r.size&&r.bytes instanceof Uint8Array&&((e,t)=>{if(e===t)return!0;if(e.byteLength!==t.byteLength)return!1;for(let r=0;r<e.byteLength;r++)if(e[r]!==t[r])return!1;return!0})(e.bytes,r.bytes)}})(e.multihash,r.multihash)}toString(e){return On(this,e)}toJSON(){return{"/":On(this)}}link(){return this}get[Symbol.toStringTag](){return"CID"}[Symbol.for("nodejs.util.inspect.custom")](){return"CID(".concat(this.toString(),")")}static asCID(e){if(null==e)return null;const t=e;if(t instanceof qn)return t;if(null!=t["/"]&&t["/"]===t.bytes||t.asCID===t){const{version:e,code:r,multihash:n,bytes:i}=t;return new qn(e,r,n,i||Gn(e,r,n.bytes))}if(!0===t[Wn]){const{version:e,multihash:r,code:n}=t,i=In(r);return qn.create(e,n,i)}return null}static create(e,t,r){if("number"!==typeof t)throw new Error("String codecs are no longer supported");if(!(r.bytes instanceof Uint8Array))throw new Error("Invalid digest");switch(e){case 0:if(t!==jn)throw new Error("Version 0 CID must use dag-pb (code: ".concat(jn,") block encoding"));return new qn(e,t,r,r.bytes);case 1:{const n=Gn(e,t,r.bytes);return new qn(e,t,r,n)}default:throw new Error("Invalid version")}}static createV0(e){return qn.create(0,jn,e)}static createV1(e,t){return qn.create(1,e,t)}static decode(e){const[t,r]=qn.decodeFirst(e);if(r.length)throw new Error("Incorrect length");return t}static decodeFirst(e){const t=qn.inspectBytes(e),r=t.size-t.multihashSize,n=Wr(e.subarray(r,r+t.multihashSize));if(n.byteLength!==t.multihashSize)throw new Error("Incorrect length");const i=n.subarray(t.multihashSize-t.digestSize),o=new Rn(t.multihashCode,t.digestSize,i,n);return[0===t.version?qn.createV0(o):qn.createV1(t.codec,o),e.subarray(t.size)]}static inspectBytes(e){let t=0;const r=()=>{const[r,n]=En(e.subarray(t));return t+=n,r};let n=r(),i=jn;if(18===n?(n=0,t=0):i=r(),0!==n&&1!==n)throw new RangeError("Invalid CID version ".concat(n));const o=t,s=r(),a=r(),c=t+a;return{version:n,codec:i,multihashCode:s,digestSize:a,multihashSize:c-o,size:c}}static parse(e,t){const[r,n]=Fn(e,t),i=qn.decode(n);if(0===i.version&&"Q"!==e[0])throw Error("Version 0 CID string must not include multibase prefix");return Kn(i).set(r,e),i}}const Fn=(e,t)=>{switch(e[0]){case"Q":{const r=t||rn;return[rn.prefix,r.decode("".concat(rn.prefix).concat(e))]}case rn.prefix:{const r=t||rn;return[rn.prefix,r.decode(e)]}case Pn.prefix:{const r=t||Pn;return[Pn.prefix,r.decode(e)]}default:if(null==t)throw Error("To parse non base32 or base58btc encoded CID multibase decoder must be provided");return[e[0],t.decode(e)]}},Vn=(e,t,r)=>{const{prefix:n}=r;if(n!==rn.prefix)throw Error("Cannot string encode V0 in ".concat(r.name," encoding"));const i=t.get(n);if(null==i){const i=r.encode(e).slice(1);return t.set(n,i),i}return i},zn=(e,t,r)=>{const{prefix:n}=r,i=t.get(n);if(null==i){const i=r.encode(e);return t.set(n,i),i}return i},jn=112,Hn=18,Gn=(e,t,r)=>{const n=An(e),i=n+An(t),o=new Uint8Array(i+r.byteLength);return Sn(e,o,0),Sn(t,o,n),o.set(r,i),o},Wn=Symbol.for("@ipld/js-cid/CID");function Yn(e,t){if(e===t)return!0;if(e.byteLength!==t.byteLength)return!1;for(let r=0;r<e.byteLength;r++)if(e[r]!==t[r])return!1;return!0}var Qn=function(e,t){if(e.length>=255)throw new TypeError("Alphabet too long");for(var r=new Uint8Array(256),n=0;n<r.length;n++)r[n]=255;for(var i=0;i<e.length;i++){var o=e.charAt(i),s=o.charCodeAt(0);if(255!==r[s])throw new TypeError(o+" is ambiguous");r[s]=i}var a=e.length,c=e.charAt(0),l=Math.log(a)/Math.log(256),u=Math.log(256)/Math.log(a);function h(e){if("string"!==typeof e)throw new TypeError("Expected String");if(0===e.length)return new Uint8Array;var t=0;if(" "!==e[t]){for(var n=0,i=0;e[t]===c;)n++,t++;for(var o=(e.length-t)*l+1>>>0,s=new Uint8Array(o);e[t];){var u=r[e.charCodeAt(t)];if(255===u)return;for(var h=0,d=o-1;(0!==u||h<i)&&-1!==d;d--,h++)u+=a*s[d]>>>0,s[d]=u%256>>>0,u=u/256>>>0;if(0!==u)throw new Error("Non-zero carry");i=h,t++}if(" "!==e[t]){for(var p=o-i;p!==o&&0===s[p];)p++;for(var f=new Uint8Array(n+(o-p)),y=n;p!==o;)f[y++]=s[p++];return f}}}return{encode:function(t){if(t instanceof Uint8Array||(ArrayBuffer.isView(t)?t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength):Array.isArray(t)&&(t=Uint8Array.from(t))),!(t instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(0===t.length)return"";for(var r=0,n=0,i=0,o=t.length;i!==o&&0===t[i];)i++,r++;for(var s=(o-i)*u+1>>>0,l=new Uint8Array(s);i!==o;){for(var h=t[i],d=0,p=s-1;(0!==h||d<n)&&-1!==p;p--,d++)h+=256*l[p]>>>0,l[p]=h%a>>>0,h=h/a>>>0;if(0!==h)throw new Error("Non-zero carry");n=d,i++}for(var f=s-n;f!==s&&0===l[f];)f++;for(var y=c.repeat(r);f<s;++f)y+=e.charAt(l[f]);return y},decodeUnsafe:h,decode:function(e){var r=h(e);if(r)return r;throw new Error("Non-".concat(t," character"))}}};const Xn=Qn,Jn=(new Uint8Array(0),e=>{if(e instanceof Uint8Array&&"Uint8Array"===e.constructor.name)return e;if(e instanceof ArrayBuffer)return new Uint8Array(e);if(ArrayBuffer.isView(e))return new Uint8Array(e.buffer,e.byteOffset,e.byteLength);throw new Error("Unknown type, must be binary type")});class Zn{constructor(e,t,r){this.name=e,this.prefix=t,this.baseEncode=r}encode(e){if(e instanceof Uint8Array)return"".concat(this.prefix).concat(this.baseEncode(e));throw Error("Unknown type, must be binary type")}}class $n{constructor(e,t,r){if(this.name=e,this.prefix=t,void 0===t.codePointAt(0))throw new Error("Invalid prefix character");this.prefixCodePoint=t.codePointAt(0),this.baseDecode=r}decode(e){if("string"===typeof e){if(e.codePointAt(0)!==this.prefixCodePoint)throw Error("Unable to decode multibase string ".concat(JSON.stringify(e),", ").concat(this.name," decoder only supports inputs prefixed with ").concat(this.prefix));return this.baseDecode(e.slice(this.prefix.length))}throw Error("Can only multibase decode strings")}or(e){return ti(this,e)}}class ei{constructor(e){this.decoders=e}or(e){return ti(this,e)}decode(e){const t=e[0],r=this.decoders[t];if(r)return r.decode(e);throw RangeError("Unable to decode multibase string ".concat(JSON.stringify(e),", only inputs prefixed with ").concat(Object.keys(this.decoders)," are supported"))}}const ti=(e,t)=>new ei({...e.decoders||{[e.prefix]:e},...t.decoders||{[t.prefix]:t}});class ri{constructor(e,t,r,n){this.name=e,this.prefix=t,this.baseEncode=r,this.baseDecode=n,this.encoder=new Zn(e,t,r),this.decoder=new $n(e,t,n)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}}const ni=e=>{let{name:t,prefix:r,encode:n,decode:i}=e;return new ri(t,r,n,i)},ii=e=>{let{prefix:t,name:r,alphabet:n}=e;const{encode:i,decode:o}=Xn(n,r);return ni({prefix:t,name:r,encode:i,decode:e=>Jn(o(e))})},oi=e=>{let{name:t,prefix:r,bitsPerChar:n,alphabet:i}=e;return ni({prefix:r,name:t,encode:e=>((e,t,r)=>{const n="="===t[t.length-1],i=(1<<r)-1;let o="",s=0,a=0;for(let c=0;c<e.length;++c)for(a=a<<8|e[c],s+=8;s>r;)s-=r,o+=t[i&a>>s];if(s&&(o+=t[i&a<<r-s]),n)for(;o.length*r&7;)o+="=";return o})(e,i,n),decode:e=>((e,t,r,n)=>{const i={};for(let u=0;u<t.length;++u)i[t[u]]=u;let o=e.length;for(;"="===e[o-1];)--o;const s=new Uint8Array(o*r/8|0);let a=0,c=0,l=0;for(let u=0;u<o;++u){const t=i[e[u]];if(void 0===t)throw new SyntaxError("Non-".concat(n," character"));c=c<<r|t,a+=r,a>=8&&(a-=8,s[l++]=255&c>>a)}if(a>=r||255&c<<8-a)throw new SyntaxError("Unexpected end of data");return s})(e,i,n,t)})},si=ii({prefix:"9",name:"base10",alphabet:"0123456789"}),ai=oi({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),ci=oi({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4}),li=oi({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1}),ui=Array.from("\ud83d\ude80\ud83e\ude90\u2604\ud83d\udef0\ud83c\udf0c\ud83c\udf11\ud83c\udf12\ud83c\udf13\ud83c\udf14\ud83c\udf15\ud83c\udf16\ud83c\udf17\ud83c\udf18\ud83c\udf0d\ud83c\udf0f\ud83c\udf0e\ud83d\udc09\u2600\ud83d\udcbb\ud83d\udda5\ud83d\udcbe\ud83d\udcbf\ud83d\ude02\u2764\ud83d\ude0d\ud83e\udd23\ud83d\ude0a\ud83d\ude4f\ud83d\udc95\ud83d\ude2d\ud83d\ude18\ud83d\udc4d\ud83d\ude05\ud83d\udc4f\ud83d\ude01\ud83d\udd25\ud83e\udd70\ud83d\udc94\ud83d\udc96\ud83d\udc99\ud83d\ude22\ud83e\udd14\ud83d\ude06\ud83d\ude44\ud83d\udcaa\ud83d\ude09\u263a\ud83d\udc4c\ud83e\udd17\ud83d\udc9c\ud83d\ude14\ud83d\ude0e\ud83d\ude07\ud83c\udf39\ud83e\udd26\ud83c\udf89\ud83d\udc9e\u270c\u2728\ud83e\udd37\ud83d\ude31\ud83d\ude0c\ud83c\udf38\ud83d\ude4c\ud83d\ude0b\ud83d\udc97\ud83d\udc9a\ud83d\ude0f\ud83d\udc9b\ud83d\ude42\ud83d\udc93\ud83e\udd29\ud83d\ude04\ud83d\ude00\ud83d\udda4\ud83d\ude03\ud83d\udcaf\ud83d\ude48\ud83d\udc47\ud83c\udfb6\ud83d\ude12\ud83e\udd2d\u2763\ud83d\ude1c\ud83d\udc8b\ud83d\udc40\ud83d\ude2a\ud83d\ude11\ud83d\udca5\ud83d\ude4b\ud83d\ude1e\ud83d\ude29\ud83d\ude21\ud83e\udd2a\ud83d\udc4a\ud83e\udd73\ud83d\ude25\ud83e\udd24\ud83d\udc49\ud83d\udc83\ud83d\ude33\u270b\ud83d\ude1a\ud83d\ude1d\ud83d\ude34\ud83c\udf1f\ud83d\ude2c\ud83d\ude43\ud83c\udf40\ud83c\udf37\ud83d\ude3b\ud83d\ude13\u2b50\u2705\ud83e\udd7a\ud83c\udf08\ud83d\ude08\ud83e\udd18\ud83d\udca6\u2714\ud83d\ude23\ud83c\udfc3\ud83d\udc90\u2639\ud83c\udf8a\ud83d\udc98\ud83d\ude20\u261d\ud83d\ude15\ud83c\udf3a\ud83c\udf82\ud83c\udf3b\ud83d\ude10\ud83d\udd95\ud83d\udc9d\ud83d\ude4a\ud83d\ude39\ud83d\udde3\ud83d\udcab\ud83d\udc80\ud83d\udc51\ud83c\udfb5\ud83e\udd1e\ud83d\ude1b\ud83d\udd34\ud83d\ude24\ud83c\udf3c\ud83d\ude2b\u26bd\ud83e\udd19\u2615\ud83c\udfc6\ud83e\udd2b\ud83d\udc48\ud83d\ude2e\ud83d\ude46\ud83c\udf7b\ud83c\udf43\ud83d\udc36\ud83d\udc81\ud83d\ude32\ud83c\udf3f\ud83e\udde1\ud83c\udf81\u26a1\ud83c\udf1e\ud83c\udf88\u274c\u270a\ud83d\udc4b\ud83d\ude30\ud83e\udd28\ud83d\ude36\ud83e\udd1d\ud83d\udeb6\ud83d\udcb0\ud83c\udf53\ud83d\udca2\ud83e\udd1f\ud83d\ude41\ud83d\udea8\ud83d\udca8\ud83e\udd2c\u2708\ud83c\udf80\ud83c\udf7a\ud83e\udd13\ud83d\ude19\ud83d\udc9f\ud83c\udf31\ud83d\ude16\ud83d\udc76\ud83e\udd74\u25b6\u27a1\u2753\ud83d\udc8e\ud83d\udcb8\u2b07\ud83d\ude28\ud83c\udf1a\ud83e\udd8b\ud83d\ude37\ud83d\udd7a\u26a0\ud83d\ude45\ud83d\ude1f\ud83d\ude35\ud83d\udc4e\ud83e\udd32\ud83e\udd20\ud83e\udd27\ud83d\udccc\ud83d\udd35\ud83d\udc85\ud83e\uddd0\ud83d\udc3e\ud83c\udf52\ud83d\ude17\ud83e\udd11\ud83c\udf0a\ud83e\udd2f\ud83d\udc37\u260e\ud83d\udca7\ud83d\ude2f\ud83d\udc86\ud83d\udc46\ud83c\udfa4\ud83d\ude47\ud83c\udf51\u2744\ud83c\udf34\ud83d\udca3\ud83d\udc38\ud83d\udc8c\ud83d\udccd\ud83e\udd40\ud83e\udd22\ud83d\udc45\ud83d\udca1\ud83d\udca9\ud83d\udc50\ud83d\udcf8\ud83d\udc7b\ud83e\udd10\ud83e\udd2e\ud83c\udfbc\ud83e\udd75\ud83d\udea9\ud83c\udf4e\ud83c\udf4a\ud83d\udc7c\ud83d\udc8d\ud83d\udce3\ud83e\udd42"),hi=ui.reduce(((e,t,r)=>(e[r]=t,e)),[]),di=ui.reduce(((e,t,r)=>(e[t.codePointAt(0)]=r,e)),[]);const pi=ni({prefix:"\ud83d\ude80",name:"base256emoji",encode:function(e){return e.reduce(((e,t)=>e+=hi[t]),"")},decode:function(e){const t=[];for(const r of e){const e=di[r.codePointAt(0)];if(void 0===e)throw new Error("Non-base256emoji character: ".concat(r));t.push(e)}return new Uint8Array(t)}}),fi=oi({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),yi=oi({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),gi=oi({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),mi=oi({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),bi=oi({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),wi=oi({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),vi=oi({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),_i=oi({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),Ei=oi({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5}),Si=ii({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),Ai=ii({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"}),ki=ii({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),Ii=ii({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"}),Ri=oi({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),Pi=oi({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),Ci=oi({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),Ti=oi({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6}),xi=oi({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3}),Di=ni({prefix:"\0",name:"identity",encode:e=>{return t=e,(new TextDecoder).decode(t);var t},decode:e=>(e=>(new TextEncoder).encode(e))(e)}),Ni=new TextEncoder,Li=new TextDecoder,Bi="json",Mi=512,Oi=e=>Ni.encode(JSON.stringify(e)),Ui=e=>JSON.parse(Li.decode(e)),Ki="raw",qi=85,Fi=e=>Jn(e),Vi=e=>Jn(e);var zi=function e(t,r,n){r=r||[];var i=n=n||0;for(;t>=Gi;)r[n++]=255&t|ji,t/=128;for(;t&Hi;)r[n++]=255&t|ji,t>>>=7;return r[n]=0|t,e.bytes=n-i+1,r},ji=128,Hi=-128,Gi=Math.pow(2,31);var Wi=function e(t,r){var n,i=0,o=0,s=r=r||0,a=t.length;do{if(s>=a)throw e.bytes=0,new RangeError("Could not decode varint");n=t[s++],i+=o<28?(n&Qi)<<o:(n&Qi)*Math.pow(2,o),o+=7}while(n>=Yi);return e.bytes=s-r,i},Yi=128,Qi=127;var Xi=Math.pow(2,7),Ji=Math.pow(2,14),Zi=Math.pow(2,21),$i=Math.pow(2,28),eo=Math.pow(2,35),to=Math.pow(2,42),ro=Math.pow(2,49),no=Math.pow(2,56),io=Math.pow(2,63);const oo={encode:zi,decode:Wi,encodingLength:function(e){return e<Xi?1:e<Ji?2:e<Zi?3:e<$i?4:e<eo?5:e<to?6:e<ro?7:e<no?8:e<io?9:10}},so=function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;return oo.encode(e,t,r),t},ao=e=>oo.encodingLength(e),co=(e,t)=>{const r=t.byteLength,n=ao(e),i=n+ao(r),o=new Uint8Array(i+r);return so(e,o,0),so(r,o,n),o.set(t,i),new lo(e,r,t,o)};class lo{constructor(e,t,r,n){this.code=e,this.size=t,this.digest=r,this.bytes=n}}const uo=Jn,ho={code:0,name:"identity",encode:uo,digest:e=>co(0,uo(e))},po=e=>{let{name:t,code:r,encode:n}=e;return new fo(t,r,n)};class fo{constructor(e,t,r){this.name=e,this.code=t,this.encode=r}digest(e){if(e instanceof Uint8Array){const t=this.encode(e);return t instanceof Uint8Array?co(this.code,t):t.then((e=>co(this.code,e)))}throw Error("Unknown type, must be binary type")}}const yo=e=>async t=>new Uint8Array(await crypto.subtle.digest(e,t)),go=po({name:"sha2-256",code:18,encode:yo("SHA-256")}),mo=po({name:"sha2-512",code:19,encode:yo("SHA-512")});new WeakMap;class bo{constructor(e,t,r,n){this.code=t,this.version=e,this.multihash=r,this.bytes=n,this["/"]=n}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:{const{code:e,multihash:t}=this;if(e!==cid_DAG_PB_CODE)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(t.code!==cid_SHA_256_CODE)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return bo.createV0(t)}default:throw Error("Can not convert CID version ".concat(this.version," to version 0. This is a bug please report"))}}toV1(){switch(this.version){case 0:{const{code:e,digest:t}=this.multihash,r=Digest.create(e,t);return bo.createV1(this.code,r)}case 1:return this;default:throw Error("Can not convert CID version ".concat(this.version," to version 1. This is a bug please report"))}}equals(e){return bo.equals(this,e)}static equals(e,t){const r=t;return r&&e.code===r.code&&e.version===r.version&&Digest.equals(e.multihash,r.multihash)}toString(e){return cid_format(this,e)}toJSON(){return{"/":cid_format(this)}}link(){return this}get[Symbol.toStringTag](){return"CID"}[Symbol.for("nodejs.util.inspect.custom")](){return"CID(".concat(this.toString(),")")}static asCID(e){if(null==e)return null;const t=e;if(t instanceof bo)return t;if(null!=t["/"]&&t["/"]===t.bytes||t.asCID===t){const{version:e,code:r,multihash:n,bytes:i}=t;return new bo(e,r,n,i||cid_encodeCID(e,r,n.bytes))}if(!0===t[cid_cidSymbol]){const{version:e,multihash:r,code:n}=t,i=Digest.decode(r);return bo.create(e,n,i)}return null}static create(e,t,r){if("number"!==typeof t)throw new Error("String codecs are no longer supported");if(!(r.bytes instanceof Uint8Array))throw new Error("Invalid digest");switch(e){case 0:if(t!==cid_DAG_PB_CODE)throw new Error("Version 0 CID must use dag-pb (code: ".concat(cid_DAG_PB_CODE,") block encoding"));return new bo(e,t,r,r.bytes);case 1:{const n=cid_encodeCID(e,t,r.bytes);return new bo(e,t,r,n)}default:throw new Error("Invalid version")}}static createV0(e){return bo.create(0,cid_DAG_PB_CODE,e)}static createV1(e,t){return bo.create(1,e,t)}static decode(e){const[t,r]=bo.decodeFirst(e);if(r.length)throw new Error("Incorrect length");return t}static decodeFirst(e){const t=bo.inspectBytes(e),r=t.size-t.multihashSize,n=coerce(e.subarray(r,r+t.multihashSize));if(n.byteLength!==t.multihashSize)throw new Error("Incorrect length");const i=n.subarray(t.multihashSize-t.digestSize),o=new Digest.Digest(t.multihashCode,t.digestSize,i,n);return[0===t.version?bo.createV0(o):bo.createV1(t.codec,o),e.subarray(t.size)]}static inspectBytes(e){let t=0;const r=()=>{const[r,n]=varint.decode(e.subarray(t));return n,r};let n=r(),i=cid_DAG_PB_CODE;if(18===n?(0,0):r(),0!==n&&1!==n)throw new RangeError("Invalid CID version ".concat(n));const o=t,s=r(),a=r(),c=t+a;return{version:n,codec:i,multihashCode:s,digestSize:a,multihashSize:c-o,size:c}}static parse(e,t){const[r,n]=cid_parseCIDtoBytes(e,t),i=bo.decode(n);if(0===i.version&&"Q"!==e[0])throw Error("Version 0 CID string must not include multibase prefix");return cid_baseCache(i).set(r,e),i}}Symbol.for("@ipld/js-cid/CID");const wo={...h,...i,...u,...r,...n,...s,...a,...c,...l,...o};function vo(e){return null!=globalThis.Buffer?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):e}function _o(){var e;let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return null!=(null===(e=globalThis.Buffer)||void 0===e?void 0:e.alloc)?vo(globalThis.Buffer.alloc(t)):new Uint8Array(t)}function Eo(){var e;let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return null!=(null===(e=globalThis.Buffer)||void 0===e?void 0:e.allocUnsafe)?vo(globalThis.Buffer.allocUnsafe(t)):new Uint8Array(t)}function So(e,t,r,n){return{name:e,prefix:t,encoder:{name:e,prefix:t,encode:r},decoder:{decode:n}}}const Ao=So("utf8","u",(e=>"u"+new TextDecoder("utf8").decode(e)),(e=>(new TextEncoder).encode(e.substring(1)))),ko=So("ascii","a",(e=>{let t="a";for(let r=0;r<e.length;r++)t+=String.fromCharCode(e[r]);return t}),(e=>{const t=Eo((e=e.substring(1)).length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t})),Io={utf8:Ao,"utf-8":Ao,hex:wo.base16,latin1:ko,ascii:ko,binary:ko,...wo};function Ro(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"utf8";const r=Io[t];if(null==r)throw new Error('Unsupported encoding "'.concat(t,'"'));return"utf8"!==t&&"utf-8"!==t||null==globalThis.Buffer||null==globalThis.Buffer.from?r.encoder.encode(e).substring(1):globalThis.Buffer.from(e.buffer,e.byteOffset,e.byteLength).toString("utf8")}function Po(e,t){null==t&&(t=e.reduce(((e,t)=>e+t.length),0));const r=Eo(t);let n=0;for(const i of e)r.set(i,n),n+=i.length;return vo(r)}var Co=__webpack_require__(4561);const To=45,xo=15,Do=new class{constructor(){Br(this,"index",0),Br(this,"input","")}new(e){return this.index=0,this.input=e,this}readAtomically(e){const t=this.index,r=e();return void 0===r&&(this.index=t),r}parseWith(e){const t=e();if(this.index===this.input.length)return t}peekChar(){if(!(this.index>=this.input.length))return this.input[this.index]}readChar(){if(!(this.index>=this.input.length))return this.input[this.index++]}readGivenChar(e){return this.readAtomically((()=>{const t=this.readChar();if(t===e)return t}))}readSeparator(e,t,r){return this.readAtomically((()=>{if(!(t>0&&void 0===this.readGivenChar(e)))return r()}))}readNumber(e,t,r,n){return this.readAtomically((()=>{let i=0,o=0;const s=this.peekChar();if(void 0===s)return;const a="0"===s,c=2**(8*n)-1;for(;;){const r=this.readAtomically((()=>{const t=this.readChar();if(void 0===t)return;const r=Number.parseInt(t,e);return Number.isNaN(r)?void 0:r}));if(void 0===r)break;if(i*=e,i+=r,i>c)return;if(o+=1,void 0!==t&&o>t)return}return 0===o||!r&&a&&o>1?void 0:i}))}readIPv4Addr(){return this.readAtomically((()=>{const e=new Uint8Array(4);for(let t=0;t<e.length;t++){const r=this.readSeparator(".",t,(()=>this.readNumber(10,3,!1,1)));if(void 0===r)return;e[t]=r}return e}))}readIPv6Addr(){const e=e=>{for(let t=0;t<e.length/2;t++){const r=2*t;if(t<e.length-3){const n=this.readSeparator(":",t,(()=>this.readIPv4Addr()));if(void 0!==n)return e[r]=n[0],e[r+1]=n[1],e[r+2]=n[2],e[r+3]=n[3],[r+4,!0]}const n=this.readSeparator(":",t,(()=>this.readNumber(16,4,!0,2)));if(void 0===n)return[r,!1];e[r]=n>>8,e[r+1]=255&n}return[e.length,!1]};return this.readAtomically((()=>{const t=new Uint8Array(16),[r,n]=e(t);if(16===r)return t;if(n)return;if(void 0===this.readGivenChar(":"))return;if(void 0===this.readGivenChar(":"))return;const i=new Uint8Array(14),o=16-(r+2),[s]=e(i.subarray(0,o));return t.set(i.subarray(0,s),16-s),t}))}readIPAddr(){var e;return null!==(e=this.readIPv4Addr())&&void 0!==e?e:this.readIPv6Addr()}};parseInt("0xFFFF",16),new Uint8Array([0,0,0,0,0,0,0,0,0,0,255,255]);const No=$r({prefix:"\0",name:"identity",encode:e=>{return t=e,(new TextDecoder).decode(t);var t},decode:e=>(e=>(new TextEncoder).encode(e))(e)}),Lo=tn({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1}),Bo=tn({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3}),Mo=en({prefix:"9",name:"base10",alphabet:"0123456789"}),Oo=tn({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),Uo=tn({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4}),Ko=en({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),qo=en({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"}),Fo=tn({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),Vo=tn({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),zo=tn({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),jo=tn({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6}),Ho=Array.from("\ud83d\ude80\ud83e\ude90\u2604\ud83d\udef0\ud83c\udf0c\ud83c\udf11\ud83c\udf12\ud83c\udf13\ud83c\udf14\ud83c\udf15\ud83c\udf16\ud83c\udf17\ud83c\udf18\ud83c\udf0d\ud83c\udf0f\ud83c\udf0e\ud83d\udc09\u2600\ud83d\udcbb\ud83d\udda5\ud83d\udcbe\ud83d\udcbf\ud83d\ude02\u2764\ud83d\ude0d\ud83e\udd23\ud83d\ude0a\ud83d\ude4f\ud83d\udc95\ud83d\ude2d\ud83d\ude18\ud83d\udc4d\ud83d\ude05\ud83d\udc4f\ud83d\ude01\ud83d\udd25\ud83e\udd70\ud83d\udc94\ud83d\udc96\ud83d\udc99\ud83d\ude22\ud83e\udd14\ud83d\ude06\ud83d\ude44\ud83d\udcaa\ud83d\ude09\u263a\ud83d\udc4c\ud83e\udd17\ud83d\udc9c\ud83d\ude14\ud83d\ude0e\ud83d\ude07\ud83c\udf39\ud83e\udd26\ud83c\udf89\ud83d\udc9e\u270c\u2728\ud83e\udd37\ud83d\ude31\ud83d\ude0c\ud83c\udf38\ud83d\ude4c\ud83d\ude0b\ud83d\udc97\ud83d\udc9a\ud83d\ude0f\ud83d\udc9b\ud83d\ude42\ud83d\udc93\ud83e\udd29\ud83d\ude04\ud83d\ude00\ud83d\udda4\ud83d\ude03\ud83d\udcaf\ud83d\ude48\ud83d\udc47\ud83c\udfb6\ud83d\ude12\ud83e\udd2d\u2763\ud83d\ude1c\ud83d\udc8b\ud83d\udc40\ud83d\ude2a\ud83d\ude11\ud83d\udca5\ud83d\ude4b\ud83d\ude1e\ud83d\ude29\ud83d\ude21\ud83e\udd2a\ud83d\udc4a\ud83e\udd73\ud83d\ude25\ud83e\udd24\ud83d\udc49\ud83d\udc83\ud83d\ude33\u270b\ud83d\ude1a\ud83d\ude1d\ud83d\ude34\ud83c\udf1f\ud83d\ude2c\ud83d\ude43\ud83c\udf40\ud83c\udf37\ud83d\ude3b\ud83d\ude13\u2b50\u2705\ud83e\udd7a\ud83c\udf08\ud83d\ude08\ud83e\udd18\ud83d\udca6\u2714\ud83d\ude23\ud83c\udfc3\ud83d\udc90\u2639\ud83c\udf8a\ud83d\udc98\ud83d\ude20\u261d\ud83d\ude15\ud83c\udf3a\ud83c\udf82\ud83c\udf3b\ud83d\ude10\ud83d\udd95\ud83d\udc9d\ud83d\ude4a\ud83d\ude39\ud83d\udde3\ud83d\udcab\ud83d\udc80\ud83d\udc51\ud83c\udfb5\ud83e\udd1e\ud83d\ude1b\ud83d\udd34\ud83d\ude24\ud83c\udf3c\ud83d\ude2b\u26bd\ud83e\udd19\u2615\ud83c\udfc6\ud83e\udd2b\ud83d\udc48\ud83d\ude2e\ud83d\ude46\ud83c\udf7b\ud83c\udf43\ud83d\udc36\ud83d\udc81\ud83d\ude32\ud83c\udf3f\ud83e\udde1\ud83c\udf81\u26a1\ud83c\udf1e\ud83c\udf88\u274c\u270a\ud83d\udc4b\ud83d\ude30\ud83e\udd28\ud83d\ude36\ud83e\udd1d\ud83d\udeb6\ud83d\udcb0\ud83c\udf53\ud83d\udca2\ud83e\udd1f\ud83d\ude41\ud83d\udea8\ud83d\udca8\ud83e\udd2c\u2708\ud83c\udf80\ud83c\udf7a\ud83e\udd13\ud83d\ude19\ud83d\udc9f\ud83c\udf31\ud83d\ude16\ud83d\udc76\ud83e\udd74\u25b6\u27a1\u2753\ud83d\udc8e\ud83d\udcb8\u2b07\ud83d\ude28\ud83c\udf1a\ud83e\udd8b\ud83d\ude37\ud83d\udd7a\u26a0\ud83d\ude45\ud83d\ude1f\ud83d\ude35\ud83d\udc4e\ud83e\udd32\ud83e\udd20\ud83e\udd27\ud83d\udccc\ud83d\udd35\ud83d\udc85\ud83e\uddd0\ud83d\udc3e\ud83c\udf52\ud83d\ude17\ud83e\udd11\ud83c\udf0a\ud83e\udd2f\ud83d\udc37\u260e\ud83d\udca7\ud83d\ude2f\ud83d\udc86\ud83d\udc46\ud83c\udfa4\ud83d\ude47\ud83c\udf51\u2744\ud83c\udf34\ud83d\udca3\ud83d\udc38\ud83d\udc8c\ud83d\udccd\ud83e\udd40\ud83e\udd22\ud83d\udc45\ud83d\udca1\ud83d\udca9\ud83d\udc50\ud83d\udcf8\ud83d\udc7b\ud83e\udd10\ud83e\udd2e\ud83c\udfbc\ud83e\udd75\ud83d\udea9\ud83c\udf4e\ud83c\udf4a\ud83d\udc7c\ud83d\udc8d\ud83d\udce3\ud83e\udd42"),Go=Ho.reduce(((e,t,r)=>(e[r]=t,e)),[]),Wo=Ho.reduce(((e,t,r)=>(e[t.codePointAt(0)]=r,e)),[]);const Yo=$r({prefix:"\ud83d\ude80",name:"base256emoji",encode:function(e){return e.reduce(((e,t)=>e+=Go[t]),"")},decode:function(e){const t=[];for(const r of e){const e=Wo[r.codePointAt(0)];if(void 0===e)throw new Error("Non-base256emoji character: ".concat(r));t.push(e)}return new Uint8Array(t)}}),Qo=e=>{let{name:t,code:r,encode:n}=e;return new Xo(t,r,n)};class Xo{constructor(e,t,r){this.name=e,this.code=t,this.encode=r}digest(e){if(e instanceof Uint8Array){const t=this.encode(e);return t instanceof Uint8Array?kn(this.code,t):t.then((e=>kn(this.code,e)))}throw Error("Unknown type, must be binary type")}}const Jo=e=>async t=>new Uint8Array(await crypto.subtle.digest(e,t)),Zo=Qo({name:"sha2-256",code:18,encode:Jo("SHA-256")}),$o=Qo({name:"sha2-512",code:19,encode:Jo("SHA-512")}),es=Wr,ts={code:0,name:"identity",encode:es,digest:e=>kn(0,es(e))},rs="raw",ns=85,is=e=>Wr(e),os=e=>Wr(e),ss=new TextEncoder,as=new TextDecoder,cs="json",ls=512,us=e=>ss.encode(JSON.stringify(e)),hs=e=>JSON.parse(as.decode(e)),ds={...g,...m,...b,...w,...v,...t,..._,...e,...E,...S};function ps(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"utf8";const r=Io[t];if(null==r)throw new Error('Unsupported encoding "'.concat(t,'"'));return"utf8"!==t&&"utf-8"!==t||null==globalThis.Buffer||null==globalThis.Buffer.from?r.decoder.decode("".concat(r.prefix).concat(e)):vo(globalThis.Buffer.from(e,"utf-8"))}function fs(e){return Boolean(function(e){if(!(e.length>xo))return Do.new(e).parseWith((()=>Do.readIPv4Addr()))}(e))}function ys(e){return Boolean(function(e){if(e.includes("%")&&(e=e.split("%")[0]),!(e.length>To))return Do.new(e).parseWith((()=>Do.readIPv6Addr()))}(e))}function gs(e){return Boolean(function(e){if(e.includes("%")&&(e=e.split("%")[0]),!(e.length>To))return Do.new(e).parseWith((()=>Do.readIPAddr()))}(e))}const ms=fs,bs=ys,ws=function(e){let t=0;if(e=e.toString().trim(),ms(e)){const r=new Uint8Array(t+4);return e.split(/\./g).forEach((e=>{r[t++]=255&parseInt(e,10)})),r}if(bs(e)){const r=e.split(":",8);let n;for(n=0;n<r.length;n++){let e;ms(r[n])&&(e=ws(r[n]),r[n]=Ro(e.slice(0,2),"base16")),null!=e&&++n<8&&r.splice(n,0,Ro(e.slice(2,4),"base16"))}if(""===r[0])for(;r.length<8;)r.unshift("0");else if(""===r[r.length-1])for(;r.length<8;)r.push("0");else if(r.length<8){for(n=0;n<r.length&&""!==r[n];n++);const e=[n,1];for(n=9-r.length;n>0;n--)e.push("0");r.splice.apply(r,e)}const i=new Uint8Array(t+16);for(n=0;n<r.length;n++){const e=parseInt(r[n],16);i[t++]=e>>8&255,i[t++]=255&e}return i}throw new Error("invalid ip address")},vs=function(e){var t;let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2?arguments[2]:void 0;r=~~r,n=null!==(t=n)&&void 0!==t?t:e.length-r;const i=new DataView(e.buffer);if(4===n){const t=[];for(let i=0;i<n;i++)t.push(e[r+i]);return t.join(".")}if(16===n){const e=[];for(let t=0;t<n;t+=2)e.push(i.getUint16(r+t).toString(16));return e.join(":").replace(/(^|:)0(:0)*:0(:|$)/,"$1::$3").replace(/:{3,4}/,"::")}return""},_s=-1,Es={},Ss={};function As(e){if("number"===typeof e){if(null!=Ss[e])return Ss[e];throw new Error("no protocol with code: ".concat(e))}if("string"===typeof e){if(null!=Es[e])return Es[e];throw new Error("no protocol with name: ".concat(e))}throw new Error("invalid protocol id type: ".concat(typeof e))}[[4,32,"ip4"],[6,16,"tcp"],[33,16,"dccp"],[41,128,"ip6"],[42,_s,"ip6zone"],[43,8,"ipcidr"],[53,_s,"dns",!0],[54,_s,"dns4",!0],[55,_s,"dns6",!0],[56,_s,"dnsaddr",!0],[132,16,"sctp"],[273,16,"udp"],[275,0,"p2p-webrtc-star"],[276,0,"p2p-webrtc-direct"],[277,0,"p2p-stardust"],[280,0,"webrtc-direct"],[281,0,"webrtc"],[290,0,"p2p-circuit"],[301,0,"udt"],[302,0,"utp"],[400,_s,"unix",!1,!0],[421,_s,"ipfs"],[421,_s,"p2p"],[443,0,"https"],[444,96,"onion"],[445,296,"onion3"],[446,_s,"garlic64"],[448,0,"tls"],[449,_s,"sni"],[460,0,"quic"],[461,0,"quic-v1"],[465,0,"webtransport"],[466,_s,"certhash"],[477,0,"ws"],[478,0,"wss"],[479,0,"p2p-websocket-star"],[480,0,"http"],[777,_s,"memory"]].forEach((e=>{const t=function(e,t,r,n,i){return{code:e,size:t,name:r,resolvable:Boolean(n),path:Boolean(i)}}(...e);Ss[t.code]=t,Es[t.name]=t}));As("ip4"),As("ip6"),As("ipcidr");function ks(e,t){switch(As(e).code){case 4:case 41:return function(e){const t=vs(e,0,e.length);if(null==t)throw new Error("ipBuff is required");if(!gs(t))throw new Error("invalid ip address");return t}(t);case 42:case 53:case 54:case 55:case 56:case 400:case 449:case 777:return Ns(t);case 6:case 273:case 33:case 132:return xs(t).toString();case 421:return function(e){const t=Co.decode(e),r=e.slice(Co.decode.bytes);if(r.length!==t)throw new Error("inconsistent lengths");return Ro(r,"base58btc")}(t);case 444:case 445:return Ls(t);case 466:return function(e){const t=Co.decode(e),r=e.slice(Co.decode.bytes);if(r.length!==t)throw new Error("inconsistent lengths");return"u"+Ro(r,"base64url")}(t);default:return Ro(t,"base16")}}function Is(e,t){switch(As(e).code){case 4:case 41:return Cs(t);case 42:case 53:case 54:case 55:case 56:case 400:case 449:case 777:return Ds(t);case 6:case 273:case 33:case 132:return Ts(parseInt(t,10));case 421:return function(e){let t;t="Q"===e[0]||"1"===e[0]?In(rn.decode("z".concat(e))).bytes:qn.parse(e).multihash.bytes;const r=Uint8Array.from(Co.encode(t.length));return Po([r,t],r.length+t.length)}(t);case 444:return function(e){const t=e.split(":");if(2!==t.length)throw new Error("failed to parse onion addr: [\"'".concat(t.join('", "'),"'\"]' does not contain a port number"));if(16!==t[0].length)throw new Error("failed to parse onion addr: ".concat(t[0]," not a Tor onion address."));const r=Pn.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)");const i=Ts(n);return Po([r,i],r.length+i.length)}(t);case 445:return function(e){const t=e.split(":");if(2!==t.length)throw new Error("failed to parse onion addr: [\"'".concat(t.join('", "'),"'\"]' does not contain a port number"));if(56!==t[0].length)throw new Error("failed to parse onion addr: ".concat(t[0]," not a Tor onion3 address."));const r=Pn.decode("b".concat(t[0])),n=parseInt(t[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");const i=Ts(n);return Po([r,i],r.length+i.length)}(t);case 466:return function(e){const t=Ps.decode(e),r=Uint8Array.from(Co.encode(t.length));return Po([r,t],r.length+t.length)}(t);default:return ps(t,"base16")}}const Rs=Object.values(ds).map((e=>e.decoder)),Ps=function(){let e=Rs[0].or(Rs[1]);return Rs.slice(2).forEach((t=>e=e.or(t))),e}();function Cs(e){if(!gs(e))throw new Error("invalid ip address");return ws(e)}function Ts(e){const t=new ArrayBuffer(2);return new DataView(t).setUint16(0,e),new Uint8Array(t)}function xs(e){return new DataView(e.buffer).getUint16(e.byteOffset)}function Ds(e){const t=ps(e),r=Uint8Array.from(Co.encode(t.length));return Po([r,t],r.length+t.length)}function Ns(e){const t=Co.decode(e);if((e=e.slice(Co.decode.bytes)).length!==t)throw new Error("inconsistent lengths");return Ro(e)}function Ls(e){const t=e.slice(0,e.length-2),r=e.slice(e.length-2),n=Ro(t,"base32"),i=xs(r);return"".concat(n,":").concat(i)}function Bs(e){const t=[],r=[];let n=null,i=0;for(;i<e.length;){var o;const s=Co.decode(e,i),a=null!==(o=Co.decode.bytes)&&void 0!==o?o:0,c=As(s),l=Us(c,e.slice(i+a));if(0===l){t.push([s]),r.push([s]),i+=a;continue}const u=e.slice(i+a,i+a+l);if(i+=l+a,i>e.length)throw qs("Invalid address Uint8Array: "+Ro(e,"base16"));t.push([s,u]);const h=ks(s,u);if(r.push([s,h]),!0===c.path){n=h;break}}return{bytes:Uint8Array.from(e),string:Ms(r),tuples:t,stringTuples:r,path:n}}function Ms(e){const t=[];return e.map((e=>{const r=As(e[0]);return t.push(r.name),e.length>1&&null!=e[1]&&t.push(e[1]),null})),Ks(t.join("/"))}function Os(e){return Po(e.map((e=>{const t=As(e[0]);let r=Uint8Array.from(Co.encode(t.code));return e.length>1&&null!=e[1]&&(r=Po([r,e[1]])),r})))}function Us(e,t){if(e.size>0)return e.size/8;if(0===e.size)return 0;var r;return Co.decode(t)+(null!==(r=Co.decode.bytes)&&void 0!==r?r:0)}function Ks(e){return"/"+e.trim().split("/").filter((e=>e)).join("/")}function qs(e){return new Error("Error parsing address: "+e)}const Fs=Symbol.for("nodejs.util.inspect.custom"),Vs=[As("dns").code,As("dns4").code,As("dns6").code,As("dnsaddr").code],zs=new Map,js=Symbol.for("@multiformats/js-multiaddr/multiaddr");function Hs(e){return Boolean(null===e||void 0===e?void 0:e[js])}var Gs,Ws,Ys,Qs,Xs,Js=new WeakMap,Zs=new WeakMap,$s=new WeakMap,ea=new WeakMap;class ta{constructor(e){let t;if(Br(this,"bytes",void 0),Kr(this,Js,{writable:!0,value:void 0}),Kr(this,Zs,{writable:!0,value:void 0}),Kr(this,$s,{writable:!0,value:void 0}),Kr(this,ea,{writable:!0,value:void 0}),Br(this,js,!0),null==e&&(e=""),e instanceof Uint8Array)t=Bs(e);else if("string"===typeof e){if(e.length>0&&"/"!==e.charAt(0))throw new Error('multiaddr "'.concat(e,'" must start with a "/"'));t=function(e){const t=[],r=[];let n=null;const i=(e=Ks(e)).split("/").slice(1);if(1===i.length&&""===i[0])return{bytes:new Uint8Array,string:"/",tuples:[],stringTuples:[],path:null};for(let o=0;o<i.length;o++){const s=As(i[o]);if(0===s.size){t.push([s.code]),r.push([s.code]);continue}if(o++,o>=i.length)throw qs("invalid address: "+e);if(!0===s.path){n=Ks(i.slice(o).join("/")),t.push([s.code,Is(s.code,n)]),r.push([s.code,n]);break}const a=Is(s.code,i[o]);t.push([s.code,a]),r.push([s.code,ks(s.code,a)])}return{string:Ms(r),bytes:Os(t),tuples:t,stringTuples:r,path:n}}(e)}else{if(!Hs(e))throw new Error("addr must be a string, Buffer, or another Multiaddr");t=Bs(e.bytes)}this.bytes=t.bytes,Vr(this,Js,t.string),Vr(this,Zs,t.tuples),Vr(this,$s,t.stringTuples),Vr(this,ea,t.path)}toString(){return Fr(this,Js)}toJSON(){return this.toString()}toOptions(){let e,t,r,n,i="";const o=As("tcp"),s=As("udp"),a=As("ip4"),c=As("ip6"),l=As("dns6"),u=As("ip6zone");for(const[h,d]of this.stringTuples())h===u.code&&(i="%".concat(null!==d&&void 0!==d?d:"")),Vs.includes(h)&&(t=o.name,n=443,r="".concat(null!==d&&void 0!==d?d:"").concat(i),e=h===l.code?6:4),h!==o.code&&h!==s.code||(t=As(h).name,n=parseInt(null!==d&&void 0!==d?d:"")),h!==a.code&&h!==c.code||(t=As(h).name,r="".concat(null!==d&&void 0!==d?d:"").concat(i),e=h===c.code?6:4);if(null==e||null==t||null==r||null==n)throw new Error('multiaddr must have a valid format: "/{ip4, ip6, dns4, dns6, dnsaddr}/{address}/{tcp, udp}/{port}".');return{family:e,host:r,transport:t,port:n}}protos(){return Fr(this,Zs).map((e=>{let[t]=e;return Object.assign({},As(t))}))}protoCodes(){return Fr(this,Zs).map((e=>{let[t]=e;return t}))}protoNames(){return Fr(this,Zs).map((e=>{let[t]=e;return As(t).name}))}tuples(){return Fr(this,Zs)}stringTuples(){return Fr(this,$s)}encapsulate(e){return e=new ta(e),new ta(this.toString()+e.toString())}decapsulate(e){const t=e.toString(),r=this.toString(),n=r.lastIndexOf(t);if(n<0)throw new Error("Address ".concat(this.toString()," does not contain subaddress: ").concat(e.toString()));return new ta(r.slice(0,n))}decapsulateCode(e){const t=this.tuples();for(let r=t.length-1;r>=0;r--)if(t[r][0]===e)return new ta(Os(t.slice(0,r)));return this}getPeerId(){try{let e=[];this.stringTuples().forEach((t=>{let[r,n]=t;r===Es.p2p.code&&e.push([r,n]),r===Es["p2p-circuit"].code&&(e=[])}));const t=e.pop();if(null!=(null===t||void 0===t?void 0:t[1])){const e=t[1];return"Q"===e[0]||"1"===e[0]?Ro(rn.decode("z".concat(e)),"base58btc"):Ro(qn.parse(e).multihash.bytes,"base58btc")}return null}catch(e){return null}}getPath(){return Fr(this,ea)}equals(e){return Yn(this.bytes,e.bytes)}async resolve(e){const t=this.protos().find((e=>e.resolvable));if(null==t)return[this];const r=zs.get(t.name);if(null==r)throw new jr("no available resolver for ".concat(t.name),"ERR_NO_AVAILABLE_RESOLVER");return(await r(this,e)).map((e=>new ta(e)))}nodeAddress(){const e=this.toOptions();if("tcp"!==e.transport&&"udp"!==e.transport)throw new Error('multiaddr must have a valid format - no protocol with name: "'.concat(e.transport,'". Must have a valid transport protocol: "{tcp, udp}"'));return{family:e.family,address:e.host,port:e.port}}isThinWaistAddress(e){const t=(null!==e&&void 0!==e?e:this).protos();return 2===t.length&&((4===t[0].code||41===t[0].code)&&(6===t[1].code||273===t[1].code))}[Fs](){return"Multiaddr(".concat(Fr(this,Js),")")}}function ra(e){return new ta(e)}!function(e){e.Relay="relay",e.Store="store",e.LightPush="lightpush",e.Filter="filter"}(Gs||(Gs={})),function(e){e.GENERIC_FAIL="Generic error",e.ENCODE_FAILED="Failed to encode",e.DECODE_FAILED="Failed to decode",e.SIZE_TOO_BIG="Size is too big",e.NO_RPC_RESPONSE="No RPC response"}(Ws||(Ws={})),function(e){e.BACKWARD="backward",e.FORWARD="forward"}(Ys||(Ys={})),function(e){e.BOOTSTRAP="bootstrap",e.PEER_EXCHANGE="peer-exchange"}(Qs||(Qs={})),function(e){e.PEER_DISCOVERY_BOOTSTRAP="peer:discovery:bootstrap",e.PEER_DISCOVERY_PEER_EXCHANGE="peer:discovery:peer-exchange",e.PEER_CONNECT_BOOTSTRAP="peer:connected:bootstrap",e.PEER_CONNECT_PEER_EXCHANGE="peer:connected:peer-exchange"}(Xs||(Xs={}));var na,ia=__webpack_require__(8392),oa=new WeakMap;class sa extends EventTarget{constructor(){super(...arguments),Kr(this,oa,{writable:!0,value:new Map})}listenerCount(e){const t=Fr(this,oa).get(e);return null==t?0:t.length}addEventListener(e,t,r){var n;super.addEventListener(e,t,r);let i=Fr(this,oa).get(e);null==i&&(i=[],Fr(this,oa).set(e,i)),i.push({callback:t,once:null!==(n=!0!==r&&!1!==r&&(null===r||void 0===r?void 0:r.once))&&void 0!==n&&n})}removeEventListener(e,t,r){super.removeEventListener(e.toString(),null!==t&&void 0!==t?t:null,r);let n=Fr(this,oa).get(e);null!=n&&(n=n.filter((e=>{let{callback:r}=e;return r!==t})),Fr(this,oa).set(e,n))}dispatchEvent(e){const t=super.dispatchEvent(e);let r=Fr(this,oa).get(e.type);return null==r||(r=r.filter((e=>{let{once:t}=e;return!t})),Fr(this,oa).set(e.type,r)),t}safeDispatchEvent(e,t){return this.dispatchEvent(new ca(e,t))}}class aa extends Event{constructor(e,t){super(e,t),Br(this,"detail",void 0),this.detail=null===t||void 0===t?void 0:t.detail}}const ca=null!==(na=globalThis.CustomEvent)&&void 0!==na?na:aa;function la(e){if("string"===typeof e){return ps(e.replace(/^0x/i,"").toLowerCase(),"base16")}return e}const ua=e=>Ro(e,"base16"),ha=e=>Ro(e,"utf8"),da=e=>ps(e,"utf8");var pa=__webpack_require__(6216),fa=__webpack_require__(3557),ya=__webpack_require__(3097),ga=__webpack_require__(7063),ma=__webpack_require__(2815);ya._configure(),pa._configure(fa),ga._configure(ma);const ba=["uint64","int64","sint64","fixed64","sfixed64"];function wa(e){return function(e){for(const t of ba){if(null==e[t])continue;const r=e[t];e[t]=function(){return BigInt(r.call(this).toString())}}return e}(new pa(e))}function va(){return function(e){for(const t of ba){if(null==e[t])continue;const r=e[t];e[t]=function(e){return r.call(this,e.toString())}}return e}(ga.create())}function _a(e,t){const r=wa(e instanceof Uint8Array?e:e.subarray());return t.decode(r)}function Ea(e,t){const r=va();return t.encode(e,r,{lengthDelimited:!1}),r.finish()}var Sa,Aa,ka,Ia,Ra,Pa,Ca,Ta,xa,Da,Na,La,Ba,Ma,Oa,Ua,Ka,qa,Fa,Va,za,ja,Ha,Ga,Wa,Ya,Qa,Xa,Ja,Za,$a;function ec(e,t,r,n){return{name:e,type:t,encode:r,decode:n}}function tc(e){function t(t){if(null==e[t.toString()])throw new Error("Invalid enum value");return e[t]}return ec("enum",Sa.VARINT,(function(e,r){const n=t(e);r.int32(n)}),(function(e){return t(e.int32())}))}function rc(e,t){return ec("message",Sa.LENGTH_DELIMITED,e,t)}!function(e){e[e.VARINT=0]="VARINT",e[e.BIT64=1]="BIT64",e[e.LENGTH_DELIMITED=2]="LENGTH_DELIMITED",e[e.START_GROUP=3]="START_GROUP",e[e.END_GROUP=4]="END_GROUP",e[e.BIT32=5]="BIT32"}(Sa||(Sa={})),function(e){let t;e.codec=()=>(null==t&&(t=rc((function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};!1!==r.lengthDelimited&&t.fork(),null!=e.proof&&e.proof.byteLength>0&&(t.uint32(10),t.bytes(e.proof)),null!=e.merkleRoot&&e.merkleRoot.byteLength>0&&(t.uint32(18),t.bytes(e.merkleRoot)),null!=e.epoch&&e.epoch.byteLength>0&&(t.uint32(26),t.bytes(e.epoch)),null!=e.shareX&&e.shareX.byteLength>0&&(t.uint32(34),t.bytes(e.shareX)),null!=e.shareY&&e.shareY.byteLength>0&&(t.uint32(42),t.bytes(e.shareY)),null!=e.nullifier&&e.nullifier.byteLength>0&&(t.uint32(50),t.bytes(e.nullifier)),null!=e.rlnIdentifier&&e.rlnIdentifier.byteLength>0&&(t.uint32(58),t.bytes(e.rlnIdentifier)),!1!==r.lengthDelimited&&t.ldelim()}),((e,t)=>{const r={proof:new Uint8Array(0),merkleRoot:new Uint8Array(0),epoch:new Uint8Array(0),shareX:new Uint8Array(0),shareY:new Uint8Array(0),nullifier:new Uint8Array(0),rlnIdentifier:new Uint8Array(0)},n=null==t?e.len:e.pos+t;for(;e.pos<n;){const t=e.uint32();switch(t>>>3){case 1:r.proof=e.bytes();break;case 2:r.merkleRoot=e.bytes();break;case 3:r.epoch=e.bytes();break;case 4:r.shareX=e.bytes();break;case 5:r.shareY=e.bytes();break;case 6:r.nullifier=e.bytes();break;case 7:r.rlnIdentifier=e.bytes();break;default:e.skipType(7&t)}}return r}))),t),e.encode=t=>Ea(t,e.codec()),e.decode=t=>_a(t,e.codec())}(Aa||(Aa={})),function(e){let t;e.codec=()=>(null==t&&(t=rc((function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};!1!==r.lengthDelimited&&t.fork(),null!=e.payload&&e.payload.byteLength>0&&(t.uint32(10),t.bytes(e.payload)),null!=e.contentTopic&&""!==e.contentTopic&&(t.uint32(18),t.string(e.contentTopic)),null!=e.version&&(t.uint32(24),t.uint32(e.version)),null!=e.timestamp&&(t.uint32(80),t.sint64(e.timestamp)),null!=e.meta&&(t.uint32(90),t.bytes(e.meta)),null!=e.rateLimitProof&&(t.uint32(170),Aa.codec().encode(e.rateLimitProof,t)),null!=e.ephemeral&&(t.uint32(248),t.bool(e.ephemeral)),!1!==r.lengthDelimited&&t.ldelim()}),((e,t)=>{const r={payload:new Uint8Array(0),contentTopic:""},n=null==t?e.len:e.pos+t;for(;e.pos<n;){const t=e.uint32();switch(t>>>3){case 1:r.payload=e.bytes();break;case 2:r.contentTopic=e.string();break;case 3:r.version=e.uint32();break;case 10:r.timestamp=e.sint64();break;case 11:r.meta=e.bytes();break;case 21:r.rateLimitProof=Aa.codec().decode(e,e.uint32());break;case 31:r.ephemeral=e.bool();break;default:e.skipType(7&t)}}return r}))),t),e.encode=t=>Ea(t,e.codec()),e.decode=t=>_a(t,e.codec())}(ka||(ka={})),function(e){let t,r;!function(e){let t;e.codec=()=>(null==t&&(t=rc((function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};!1!==r.lengthDelimited&&t.fork(),null!=e.contentTopic&&""!==e.contentTopic&&(t.uint32(10),t.string(e.contentTopic)),!1!==r.lengthDelimited&&t.ldelim()}),((e,t)=>{const r={contentTopic:""},n=null==t?e.len:e.pos+t;for(;e.pos<n;){const t=e.uint32();if(t>>>3===1)r.contentTopic=e.string();else e.skipType(7&t)}return r}))),t),e.encode=t=>Ea(t,e.codec()),e.decode=t=>_a(t,e.codec())}(t=e.ContentFilter||(e.ContentFilter={})),e.codec=()=>(null==r&&(r=rc((function(t,r){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!1!==n.lengthDelimited&&r.fork(),null!=t.subscribe&&!1!==t.subscribe&&(r.uint32(8),r.bool(t.subscribe)),null!=t.topic&&""!==t.topic&&(r.uint32(18),r.string(t.topic)),null!=t.contentFilters)for(const i of t.contentFilters)r.uint32(26),e.ContentFilter.codec().encode(i,r);!1!==n.lengthDelimited&&r.ldelim()}),((t,r)=>{const n={subscribe:!1,topic:"",contentFilters:[]},i=null==r?t.len:t.pos+r;for(;t.pos<i;){const r=t.uint32();switch(r>>>3){case 1:n.subscribe=t.bool();break;case 2:n.topic=t.string();break;case 3:n.contentFilters.push(e.ContentFilter.codec().decode(t,t.uint32()));break;default:t.skipType(7&r)}}return n}))),r),e.encode=t=>Ea(t,e.codec()),e.decode=t=>_a(t,e.codec())}(Ia||(Ia={})),function(e){let t;e.codec=()=>(null==t&&(t=rc((function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!1!==r.lengthDelimited&&t.fork(),null!=e.messages)for(const n of e.messages)t.uint32(10),Ta.codec().encode(n,t);!1!==r.lengthDelimited&&t.ldelim()}),((e,t)=>{const r={messages:[]},n=null==t?e.len:e.pos+t;for(;e.pos<n;){const t=e.uint32();if(t>>>3===1)r.messages.push(Ta.codec().decode(e,e.uint32()));else e.skipType(7&t)}return r}))),t),e.encode=t=>Ea(t,e.codec()),e.decode=t=>_a(t,e.codec())}(Ra||(Ra={})),function(e){let t;e.codec=()=>(null==t&&(t=rc((function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};!1!==r.lengthDelimited&&t.fork(),null!=e.requestId&&""!==e.requestId&&(t.uint32(10),t.string(e.requestId)),null!=e.request&&(t.uint32(18),Ia.codec().encode(e.request,t)),null!=e.push&&(t.uint32(26),Ra.codec().encode(e.push,t)),!1!==r.lengthDelimited&&t.ldelim()}),((e,t)=>{const r={requestId:""},n=null==t?e.len:e.pos+t;for(;e.pos<n;){const t=e.uint32();switch(t>>>3){case 1:r.requestId=e.string();break;case 2:r.request=Ia.codec().decode(e,e.uint32());break;case 3:r.push=Ra.codec().decode(e,e.uint32());break;default:e.skipType(7&t)}}return r}))),t),e.encode=t=>Ea(t,e.codec()),e.decode=t=>_a(t,e.codec())}(Pa||(Pa={})),function(e){let t;e.codec=()=>(null==t&&(t=rc((function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};!1!==r.lengthDelimited&&t.fork(),null!=e.proof&&e.proof.byteLength>0&&(t.uint32(10),t.bytes(e.proof)),null!=e.merkleRoot&&e.merkleRoot.byteLength>0&&(t.uint32(18),t.bytes(e.merkleRoot)),null!=e.epoch&&e.epoch.byteLength>0&&(t.uint32(26),t.bytes(e.epoch)),null!=e.shareX&&e.shareX.byteLength>0&&(t.uint32(34),t.bytes(e.shareX)),null!=e.shareY&&e.shareY.byteLength>0&&(t.uint32(42),t.bytes(e.shareY)),null!=e.nullifier&&e.nullifier.byteLength>0&&(t.uint32(50),t.bytes(e.nullifier)),null!=e.rlnIdentifier&&e.rlnIdentifier.byteLength>0&&(t.uint32(58),t.bytes(e.rlnIdentifier)),!1!==r.lengthDelimited&&t.ldelim()}),((e,t)=>{const r={proof:new Uint8Array(0),merkleRoot:new Uint8Array(0),epoch:new Uint8Array(0),shareX:new Uint8Array(0),shareY:new Uint8Array(0),nullifier:new Uint8Array(0),rlnIdentifier:new Uint8Array(0)},n=null==t?e.len:e.pos+t;for(;e.pos<n;){const t=e.uint32();switch(t>>>3){case 1:r.proof=e.bytes();break;case 2:r.merkleRoot=e.bytes();break;case 3:r.epoch=e.bytes();break;case 4:r.shareX=e.bytes();break;case 5:r.shareY=e.bytes();break;case 6:r.nullifier=e.bytes();break;case 7:r.rlnIdentifier=e.bytes();break;default:e.skipType(7&t)}}return r}))),t),e.encode=t=>Ea(t,e.codec()),e.decode=t=>_a(t,e.codec())}(Ca||(Ca={})),function(e){let t;e.codec=()=>(null==t&&(t=rc((function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};!1!==r.lengthDelimited&&t.fork(),null!=e.payload&&e.payload.byteLength>0&&(t.uint32(10),t.bytes(e.payload)),null!=e.contentTopic&&""!==e.contentTopic&&(t.uint32(18),t.string(e.contentTopic)),null!=e.version&&(t.uint32(24),t.uint32(e.version)),null!=e.timestamp&&(t.uint32(80),t.sint64(e.timestamp)),null!=e.meta&&(t.uint32(90),t.bytes(e.meta)),null!=e.rateLimitProof&&(t.uint32(170),Ca.codec().encode(e.rateLimitProof,t)),null!=e.ephemeral&&(t.uint32(248),t.bool(e.ephemeral)),!1!==r.lengthDelimited&&t.ldelim()}),((e,t)=>{const r={payload:new Uint8Array(0),contentTopic:""},n=null==t?e.len:e.pos+t;for(;e.pos<n;){const t=e.uint32();switch(t>>>3){case 1:r.payload=e.bytes();break;case 2:r.contentTopic=e.string();break;case 3:r.version=e.uint32();break;case 10:r.timestamp=e.sint64();break;case 11:r.meta=e.bytes();break;case 21:r.rateLimitProof=Ca.codec().decode(e,e.uint32());break;case 31:r.ephemeral=e.bool();break;default:e.skipType(7&t)}}return r}))),t),e.encode=t=>Ea(t,e.codec()),e.decode=t=>_a(t,e.codec())}(Ta||(Ta={})),function(e){let t;e.codec=()=>(null==t&&(t=rc((function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};!1!==r.lengthDelimited&&t.fork(),null!=e.contentTopic&&""!==e.contentTopic&&(t.uint32(18),t.string(e.contentTopic)),!1!==r.lengthDelimited&&t.ldelim()}),((e,t)=>{const r={contentTopic:""},n=null==t?e.len:e.pos+t;for(;e.pos<n;){const t=e.uint32();if(t>>>3===2)r.contentTopic=e.string();else e.skipType(7&t)}return r}))),t),e.encode=t=>Ea(t,e.codec()),e.decode=t=>_a(t,e.codec())}(xa||(xa={})),function(e){let t,r,n;!function(e){e.SUBSCRIBER_PING="SUBSCRIBER_PING",e.SUBSCRIBE="SUBSCRIBE",e.UNSUBSCRIBE="UNSUBSCRIBE",e.UNSUBSCRIBE_ALL="UNSUBSCRIBE_ALL"}(t=e.FilterSubscribeType||(e.FilterSubscribeType={})),function(e){e[e.SUBSCRIBER_PING=0]="SUBSCRIBER_PING",e[e.SUBSCRIBE=1]="SUBSCRIBE",e[e.UNSUBSCRIBE=2]="UNSUBSCRIBE",e[e.UNSUBSCRIBE_ALL=3]="UNSUBSCRIBE_ALL"}(r||(r={})),function(e){e.codec=()=>tc(r)}(t=e.FilterSubscribeType||(e.FilterSubscribeType={})),e.codec=()=>(null==n&&(n=rc((function(t,n){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!1!==i.lengthDelimited&&n.fork(),null!=t.requestId&&""!==t.requestId&&(n.uint32(10),n.string(t.requestId)),null!=t.filterSubscribeType&&0!==r[t.filterSubscribeType]&&(n.uint32(16),e.FilterSubscribeType.codec().encode(t.filterSubscribeType,n)),null!=t.pubsubTopic&&(n.uint32(82),n.string(t.pubsubTopic)),null!=t.contentTopics)for(const e of t.contentTopics)n.uint32(90),n.string(e);!1!==i.lengthDelimited&&n.ldelim()}),((r,n)=>{const i={requestId:"",filterSubscribeType:t.SUBSCRIBER_PING,contentTopics:[]},o=null==n?r.len:r.pos+n;for(;r.pos<o;){const t=r.uint32();switch(t>>>3){case 1:i.requestId=r.string();break;case 2:i.filterSubscribeType=e.FilterSubscribeType.codec().decode(r);break;case 10:i.pubsubTopic=r.string();break;case 11:i.contentTopics.push(r.string());break;default:r.skipType(7&t)}}return i}))),n),e.encode=t=>Ea(t,e.codec()),e.decode=t=>_a(t,e.codec())}(Da||(Da={})),function(e){let t;e.codec=()=>(null==t&&(t=rc((function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};!1!==r.lengthDelimited&&t.fork(),null!=e.requestId&&""!==e.requestId&&(t.uint32(10),t.string(e.requestId)),null!=e.statusCode&&0!==e.statusCode&&(t.uint32(80),t.uint32(e.statusCode)),null!=e.statusDesc&&(t.uint32(90),t.string(e.statusDesc)),!1!==r.lengthDelimited&&t.ldelim()}),((e,t)=>{const r={requestId:"",statusCode:0},n=null==t?e.len:e.pos+t;for(;e.pos<n;){const t=e.uint32();switch(t>>>3){case 1:r.requestId=e.string();break;case 10:r.statusCode=e.uint32();break;case 11:r.statusDesc=e.string();break;default:e.skipType(7&t)}}return r}))),t),e.encode=t=>Ea(t,e.codec()),e.decode=t=>_a(t,e.codec())}(Na||(Na={})),function(e){let t;e.codec=()=>(null==t&&(t=rc((function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};!1!==r.lengthDelimited&&t.fork(),null!=e.wakuMessage&&(t.uint32(10),Ma.codec().encode(e.wakuMessage,t)),null!=e.pubsubTopic&&(t.uint32(18),t.string(e.pubsubTopic)),!1!==r.lengthDelimited&&t.ldelim()}),((e,t)=>{const r={},n=null==t?e.len:e.pos+t;for(;e.pos<n;){const t=e.uint32();switch(t>>>3){case 1:r.wakuMessage=Ma.codec().decode(e,e.uint32());break;case 2:r.pubsubTopic=e.string();break;default:e.skipType(7&t)}}return r}))),t),e.encode=t=>Ea(t,e.codec()),e.decode=t=>_a(t,e.codec())}(La||(La={})),function(e){let t;e.codec=()=>(null==t&&(t=rc((function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};!1!==r.lengthDelimited&&t.fork(),null!=e.proof&&e.proof.byteLength>0&&(t.uint32(10),t.bytes(e.proof)),null!=e.merkleRoot&&e.merkleRoot.byteLength>0&&(t.uint32(18),t.bytes(e.merkleRoot)),null!=e.epoch&&e.epoch.byteLength>0&&(t.uint32(26),t.bytes(e.epoch)),null!=e.shareX&&e.shareX.byteLength>0&&(t.uint32(34),t.bytes(e.shareX)),null!=e.shareY&&e.shareY.byteLength>0&&(t.uint32(42),t.bytes(e.shareY)),null!=e.nullifier&&e.nullifier.byteLength>0&&(t.uint32(50),t.bytes(e.nullifier)),null!=e.rlnIdentifier&&e.rlnIdentifier.byteLength>0&&(t.uint32(58),t.bytes(e.rlnIdentifier)),!1!==r.lengthDelimited&&t.ldelim()}),((e,t)=>{const r={proof:new Uint8Array(0),merkleRoot:new Uint8Array(0),epoch:new Uint8Array(0),shareX:new Uint8Array(0),shareY:new Uint8Array(0),nullifier:new Uint8Array(0),rlnIdentifier:new Uint8Array(0)},n=null==t?e.len:e.pos+t;for(;e.pos<n;){const t=e.uint32();switch(t>>>3){case 1:r.proof=e.bytes();break;case 2:r.merkleRoot=e.bytes();break;case 3:r.epoch=e.bytes();break;case 4:r.shareX=e.bytes();break;case 5:r.shareY=e.bytes();break;case 6:r.nullifier=e.bytes();break;case 7:r.rlnIdentifier=e.bytes();break;default:e.skipType(7&t)}}return r}))),t),e.encode=t=>Ea(t,e.codec()),e.decode=t=>_a(t,e.codec())}(Ba||(Ba={})),function(e){let t;e.codec=()=>(null==t&&(t=rc((function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};!1!==r.lengthDelimited&&t.fork(),null!=e.payload&&e.payload.byteLength>0&&(t.uint32(10),t.bytes(e.payload)),null!=e.contentTopic&&""!==e.contentTopic&&(t.uint32(18),t.string(e.contentTopic)),null!=e.version&&(t.uint32(24),t.uint32(e.version)),null!=e.timestamp&&(t.uint32(80),t.sint64(e.timestamp)),null!=e.meta&&(t.uint32(90),t.bytes(e.meta)),null!=e.rateLimitProof&&(t.uint32(170),Ba.codec().encode(e.rateLimitProof,t)),null!=e.ephemeral&&(t.uint32(248),t.bool(e.ephemeral)),!1!==r.lengthDelimited&&t.ldelim()}),((e,t)=>{const r={payload:new Uint8Array(0),contentTopic:""},n=null==t?e.len:e.pos+t;for(;e.pos<n;){const t=e.uint32();switch(t>>>3){case 1:r.payload=e.bytes();break;case 2:r.contentTopic=e.string();break;case 3:r.version=e.uint32();break;case 10:r.timestamp=e.sint64();break;case 11:r.meta=e.bytes();break;case 21:r.rateLimitProof=Ba.codec().decode(e,e.uint32());break;case 31:r.ephemeral=e.bool();break;default:e.skipType(7&t)}}return r}))),t),e.encode=t=>Ea(t,e.codec()),e.decode=t=>_a(t,e.codec())}(Ma||(Ma={})),function(e){let t;e.codec=()=>(null==t&&(t=rc((function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};!1!==r.lengthDelimited&&t.fork(),null!=e.pubsubTopic&&""!==e.pubsubTopic&&(t.uint32(10),t.string(e.pubsubTopic)),null!=e.message&&(t.uint32(18),Fa.codec().encode(e.message,t)),!1!==r.lengthDelimited&&t.ldelim()}),((e,t)=>{const r={pubsubTopic:""},n=null==t?e.len:e.pos+t;for(;e.pos<n;){const t=e.uint32();switch(t>>>3){case 1:r.pubsubTopic=e.string();break;case 2:r.message=Fa.codec().decode(e,e.uint32());break;default:e.skipType(7&t)}}return r}))),t),e.encode=t=>Ea(t,e.codec()),e.decode=t=>_a(t,e.codec())}(Oa||(Oa={})),function(e){let t;e.codec=()=>(null==t&&(t=rc((function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};!1!==r.lengthDelimited&&t.fork(),null!=e.isSuccess&&!1!==e.isSuccess&&(t.uint32(8),t.bool(e.isSuccess)),null!=e.info&&(t.uint32(18),t.string(e.info)),!1!==r.lengthDelimited&&t.ldelim()}),((e,t)=>{const r={isSuccess:!1},n=null==t?e.len:e.pos+t;for(;e.pos<n;){const t=e.uint32();switch(t>>>3){case 1:r.isSuccess=e.bool();break;case 2:r.info=e.string();break;default:e.skipType(7&t)}}return r}))),t),e.encode=t=>Ea(t,e.codec()),e.decode=t=>_a(t,e.codec())}(Ua||(Ua={})),function(e){let t;e.codec=()=>(null==t&&(t=rc((function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};!1!==r.lengthDelimited&&t.fork(),null!=e.requestId&&""!==e.requestId&&(t.uint32(10),t.string(e.requestId)),null!=e.request&&(t.uint32(18),Oa.codec().encode(e.request,t)),null!=e.response&&(t.uint32(26),Ua.codec().encode(e.response,t)),!1!==r.lengthDelimited&&t.ldelim()}),((e,t)=>{const r={requestId:""},n=null==t?e.len:e.pos+t;for(;e.pos<n;){const t=e.uint32();switch(t>>>3){case 1:r.requestId=e.string();break;case 2:r.request=Oa.codec().decode(e,e.uint32());break;case 3:r.response=Ua.codec().decode(e,e.uint32());break;default:e.skipType(7&t)}}return r}))),t),e.encode=t=>Ea(t,e.codec()),e.decode=t=>_a(t,e.codec())}(Ka||(Ka={})),function(e){let t;e.codec=()=>(null==t&&(t=rc((function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};!1!==r.lengthDelimited&&t.fork(),null!=e.proof&&e.proof.byteLength>0&&(t.uint32(10),t.bytes(e.proof)),null!=e.merkleRoot&&e.merkleRoot.byteLength>0&&(t.uint32(18),t.bytes(e.merkleRoot)),null!=e.epoch&&e.epoch.byteLength>0&&(t.uint32(26),t.bytes(e.epoch)),null!=e.shareX&&e.shareX.byteLength>0&&(t.uint32(34),t.bytes(e.shareX)),null!=e.shareY&&e.shareY.byteLength>0&&(t.uint32(42),t.bytes(e.shareY)),null!=e.nullifier&&e.nullifier.byteLength>0&&(t.uint32(50),t.bytes(e.nullifier)),null!=e.rlnIdentifier&&e.rlnIdentifier.byteLength>0&&(t.uint32(58),t.bytes(e.rlnIdentifier)),!1!==r.lengthDelimited&&t.ldelim()}),((e,t)=>{const r={proof:new Uint8Array(0),merkleRoot:new Uint8Array(0),epoch:new Uint8Array(0),shareX:new Uint8Array(0),shareY:new Uint8Array(0),nullifier:new Uint8Array(0),rlnIdentifier:new Uint8Array(0)},n=null==t?e.len:e.pos+t;for(;e.pos<n;){const t=e.uint32();switch(t>>>3){case 1:r.proof=e.bytes();break;case 2:r.merkleRoot=e.bytes();break;case 3:r.epoch=e.bytes();break;case 4:r.shareX=e.bytes();break;case 5:r.shareY=e.bytes();break;case 6:r.nullifier=e.bytes();break;case 7:r.rlnIdentifier=e.bytes();break;default:e.skipType(7&t)}}return r}))),t),e.encode=t=>Ea(t,e.codec()),e.decode=t=>_a(t,e.codec())}(qa||(qa={})),function(e){let t;e.codec=()=>(null==t&&(t=rc((function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};!1!==r.lengthDelimited&&t.fork(),null!=e.payload&&e.payload.byteLength>0&&(t.uint32(10),t.bytes(e.payload)),null!=e.contentTopic&&""!==e.contentTopic&&(t.uint32(18),t.string(e.contentTopic)),null!=e.version&&(t.uint32(24),t.uint32(e.version)),null!=e.timestamp&&(t.uint32(80),t.sint64(e.timestamp)),null!=e.meta&&(t.uint32(90),t.bytes(e.meta)),null!=e.rateLimitProof&&(t.uint32(170),qa.codec().encode(e.rateLimitProof,t)),null!=e.ephemeral&&(t.uint32(248),t.bool(e.ephemeral)),!1!==r.lengthDelimited&&t.ldelim()}),((e,t)=>{const r={payload:new Uint8Array(0),contentTopic:""},n=null==t?e.len:e.pos+t;for(;e.pos<n;){const t=e.uint32();switch(t>>>3){case 1:r.payload=e.bytes();break;case 2:r.contentTopic=e.string();break;case 3:r.version=e.uint32();break;case 10:r.timestamp=e.sint64();break;case 11:r.meta=e.bytes();break;case 21:r.rateLimitProof=qa.codec().decode(e,e.uint32());break;case 31:r.ephemeral=e.bool();break;default:e.skipType(7&t)}}return r}))),t),e.encode=t=>Ea(t,e.codec()),e.decode=t=>_a(t,e.codec())}(Fa||(Fa={})),function(e){let t;e.codec=()=>(null==t&&(t=rc((function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};!1!==r.lengthDelimited&&t.fork(),null!=e.digest&&e.digest.byteLength>0&&(t.uint32(10),t.bytes(e.digest)),null!=e.receiverTime&&0n!==e.receiverTime&&(t.uint32(16),t.sint64(e.receiverTime)),null!=e.senderTime&&0n!==e.senderTime&&(t.uint32(24),t.sint64(e.senderTime)),null!=e.pubsubTopic&&""!==e.pubsubTopic&&(t.uint32(34),t.string(e.pubsubTopic)),!1!==r.lengthDelimited&&t.ldelim()}),((e,t)=>{const r={digest:new Uint8Array(0),receiverTime:0n,senderTime:0n,pubsubTopic:""},n=null==t?e.len:e.pos+t;for(;e.pos<n;){const t=e.uint32();switch(t>>>3){case 1:r.digest=e.bytes();break;case 2:r.receiverTime=e.sint64();break;case 3:r.senderTime=e.sint64();break;case 4:r.pubsubTopic=e.string();break;default:e.skipType(7&t)}}return r}))),t),e.encode=t=>Ea(t,e.codec()),e.decode=t=>_a(t,e.codec())}(Va||(Va={})),function(e){let t,r,n;!function(e){e.BACKWARD="BACKWARD",e.FORWARD="FORWARD"}(t=e.Direction||(e.Direction={})),function(e){e[e.BACKWARD=0]="BACKWARD",e[e.FORWARD=1]="FORWARD"}(r||(r={})),function(e){e.codec=()=>tc(r)}(t=e.Direction||(e.Direction={})),e.codec=()=>(null==n&&(n=rc((function(t,r){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};!1!==n.lengthDelimited&&r.fork(),null!=t.pageSize&&(r.uint32(8),r.uint64(t.pageSize)),null!=t.cursor&&(r.uint32(18),Va.codec().encode(t.cursor,r)),null!=t.direction&&(r.uint32(24),e.Direction.codec().encode(t.direction,r)),!1!==n.lengthDelimited&&r.ldelim()}),((t,r)=>{const n={},i=null==r?t.len:t.pos+r;for(;t.pos<i;){const r=t.uint32();switch(r>>>3){case 1:n.pageSize=t.uint64();break;case 2:n.cursor=Va.codec().decode(t,t.uint32());break;case 3:n.direction=e.Direction.codec().decode(t);break;default:t.skipType(7&r)}}return n}))),n),e.encode=t=>Ea(t,e.codec()),e.decode=t=>_a(t,e.codec())}(za||(za={})),function(e){let t;e.codec=()=>(null==t&&(t=rc((function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};!1!==r.lengthDelimited&&t.fork(),null!=e.contentTopic&&""!==e.contentTopic&&(t.uint32(10),t.string(e.contentTopic)),!1!==r.lengthDelimited&&t.ldelim()}),((e,t)=>{const r={contentTopic:""},n=null==t?e.len:e.pos+t;for(;e.pos<n;){const t=e.uint32();if(t>>>3===1)r.contentTopic=e.string();else e.skipType(7&t)}return r}))),t),e.encode=t=>Ea(t,e.codec()),e.decode=t=>_a(t,e.codec())}(ja||(ja={})),function(e){let t;e.codec=()=>(null==t&&(t=rc((function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!1!==r.lengthDelimited&&t.fork(),null!=e.pubsubTopic&&(t.uint32(18),t.string(e.pubsubTopic)),null!=e.contentFilters)for(const n of e.contentFilters)t.uint32(26),ja.codec().encode(n,t);null!=e.pagingInfo&&(t.uint32(34),za.codec().encode(e.pagingInfo,t)),null!=e.startTime&&(t.uint32(40),t.sint64(e.startTime)),null!=e.endTime&&(t.uint32(48),t.sint64(e.endTime)),!1!==r.lengthDelimited&&t.ldelim()}),((e,t)=>{const r={contentFilters:[]},n=null==t?e.len:e.pos+t;for(;e.pos<n;){const t=e.uint32();switch(t>>>3){case 2:r.pubsubTopic=e.string();break;case 3:r.contentFilters.push(ja.codec().decode(e,e.uint32()));break;case 4:r.pagingInfo=za.codec().decode(e,e.uint32());break;case 5:r.startTime=e.sint64();break;case 6:r.endTime=e.sint64();break;default:e.skipType(7&t)}}return r}))),t),e.encode=t=>Ea(t,e.codec()),e.decode=t=>_a(t,e.codec())}(Ha||(Ha={})),function(e){let t,r,n;!function(e){e.NONE="NONE",e.INVALID_CURSOR="INVALID_CURSOR"}(t=e.HistoryError||(e.HistoryError={})),function(e){e[e.NONE=0]="NONE",e[e.INVALID_CURSOR=1]="INVALID_CURSOR"}(r||(r={})),function(e){e.codec=()=>tc(r)}(t=e.HistoryError||(e.HistoryError={})),e.codec=()=>(null==n&&(n=rc((function(t,n){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!1!==i.lengthDelimited&&n.fork(),null!=t.messages)for(const e of t.messages)n.uint32(18),Qa.codec().encode(e,n);null!=t.pagingInfo&&(n.uint32(26),za.codec().encode(t.pagingInfo,n)),null!=t.error&&0!==r[t.error]&&(n.uint32(32),e.HistoryError.codec().encode(t.error,n)),!1!==i.lengthDelimited&&n.ldelim()}),((r,n)=>{const i={messages:[],error:t.NONE},o=null==n?r.len:r.pos+n;for(;r.pos<o;){const t=r.uint32();switch(t>>>3){case 2:i.messages.push(Qa.codec().decode(r,r.uint32()));break;case 3:i.pagingInfo=za.codec().decode(r,r.uint32());break;case 4:i.error=e.HistoryError.codec().decode(r);break;default:r.skipType(7&t)}}return i}))),n),e.encode=t=>Ea(t,e.codec()),e.decode=t=>_a(t,e.codec())}(Ga||(Ga={})),function(e){let t;e.codec=()=>(null==t&&(t=rc((function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};!1!==r.lengthDelimited&&t.fork(),null!=e.requestId&&""!==e.requestId&&(t.uint32(10),t.string(e.requestId)),null!=e.query&&(t.uint32(18),Ha.codec().encode(e.query,t)),null!=e.response&&(t.uint32(26),Ga.codec().encode(e.response,t)),!1!==r.lengthDelimited&&t.ldelim()}),((e,t)=>{const r={requestId:""},n=null==t?e.len:e.pos+t;for(;e.pos<n;){const t=e.uint32();switch(t>>>3){case 1:r.requestId=e.string();break;case 2:r.query=Ha.codec().decode(e,e.uint32());break;case 3:r.response=Ga.codec().decode(e,e.uint32());break;default:e.skipType(7&t)}}return r}))),t),e.encode=t=>Ea(t,e.codec()),e.decode=t=>_a(t,e.codec())}(Wa||(Wa={})),function(e){let t;e.codec=()=>(null==t&&(t=rc((function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};!1!==r.lengthDelimited&&t.fork(),null!=e.proof&&e.proof.byteLength>0&&(t.uint32(10),t.bytes(e.proof)),null!=e.merkleRoot&&e.merkleRoot.byteLength>0&&(t.uint32(18),t.bytes(e.merkleRoot)),null!=e.epoch&&e.epoch.byteLength>0&&(t.uint32(26),t.bytes(e.epoch)),null!=e.shareX&&e.shareX.byteLength>0&&(t.uint32(34),t.bytes(e.shareX)),null!=e.shareY&&e.shareY.byteLength>0&&(t.uint32(42),t.bytes(e.shareY)),null!=e.nullifier&&e.nullifier.byteLength>0&&(t.uint32(50),t.bytes(e.nullifier)),null!=e.rlnIdentifier&&e.rlnIdentifier.byteLength>0&&(t.uint32(58),t.bytes(e.rlnIdentifier)),!1!==r.lengthDelimited&&t.ldelim()}),((e,t)=>{const r={proof:new Uint8Array(0),merkleRoot:new Uint8Array(0),epoch:new Uint8Array(0),shareX:new Uint8Array(0),shareY:new Uint8Array(0),nullifier:new Uint8Array(0),rlnIdentifier:new Uint8Array(0)},n=null==t?e.len:e.pos+t;for(;e.pos<n;){const t=e.uint32();switch(t>>>3){case 1:r.proof=e.bytes();break;case 2:r.merkleRoot=e.bytes();break;case 3:r.epoch=e.bytes();break;case 4:r.shareX=e.bytes();break;case 5:r.shareY=e.bytes();break;case 6:r.nullifier=e.bytes();break;case 7:r.rlnIdentifier=e.bytes();break;default:e.skipType(7&t)}}return r}))),t),e.encode=t=>Ea(t,e.codec()),e.decode=t=>_a(t,e.codec())}(Ya||(Ya={})),function(e){let t;e.codec=()=>(null==t&&(t=rc((function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};!1!==r.lengthDelimited&&t.fork(),null!=e.payload&&e.payload.byteLength>0&&(t.uint32(10),t.bytes(e.payload)),null!=e.contentTopic&&""!==e.contentTopic&&(t.uint32(18),t.string(e.contentTopic)),null!=e.version&&(t.uint32(24),t.uint32(e.version)),null!=e.timestamp&&(t.uint32(80),t.sint64(e.timestamp)),null!=e.meta&&(t.uint32(90),t.bytes(e.meta)),null!=e.rateLimitProof&&(t.uint32(170),Ya.codec().encode(e.rateLimitProof,t)),null!=e.ephemeral&&(t.uint32(248),t.bool(e.ephemeral)),!1!==r.lengthDelimited&&t.ldelim()}),((e,t)=>{const r={payload:new Uint8Array(0),contentTopic:""},n=null==t?e.len:e.pos+t;for(;e.pos<n;){const t=e.uint32();switch(t>>>3){case 1:r.payload=e.bytes();break;case 2:r.contentTopic=e.string();break;case 3:r.version=e.uint32();break;case 10:r.timestamp=e.sint64();break;case 11:r.meta=e.bytes();break;case 21:r.rateLimitProof=Ya.codec().decode(e,e.uint32());break;case 31:r.ephemeral=e.bool();break;default:e.skipType(7&t)}}return r}))),t),e.encode=t=>Ea(t,e.codec()),e.decode=t=>_a(t,e.codec())}(Qa||(Qa={})),function(e){let t;e.codec=()=>(null==t&&(t=rc((function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};!1!==r.lengthDelimited&&t.fork(),null!=e.enr&&(t.uint32(10),t.bytes(e.enr)),!1!==r.lengthDelimited&&t.ldelim()}),((e,t)=>{const r={},n=null==t?e.len:e.pos+t;for(;e.pos<n;){const t=e.uint32();if(t>>>3===1)r.enr=e.bytes();else e.skipType(7&t)}return r}))),t),e.encode=t=>Ea(t,e.codec()),e.decode=t=>_a(t,e.codec())}(Xa||(Xa={})),function(e){let t;e.codec=()=>(null==t&&(t=rc((function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};!1!==r.lengthDelimited&&t.fork(),null!=e.numPeers&&(t.uint32(8),t.uint64(e.numPeers)),!1!==r.lengthDelimited&&t.ldelim()}),((e,t)=>{const r={},n=null==t?e.len:e.pos+t;for(;e.pos<n;){const t=e.uint32();if(t>>>3===1)r.numPeers=e.uint64();else e.skipType(7&t)}return r}))),t),e.encode=t=>Ea(t,e.codec()),e.decode=t=>_a(t,e.codec())}(Ja||(Ja={})),function(e){let t;e.codec=()=>(null==t&&(t=rc((function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!1!==r.lengthDelimited&&t.fork(),null!=e.peerInfos)for(const n of e.peerInfos)t.uint32(10),Xa.codec().encode(n,t);!1!==r.lengthDelimited&&t.ldelim()}),((e,t)=>{const r={peerInfos:[]},n=null==t?e.len:e.pos+t;for(;e.pos<n;){const t=e.uint32();if(t>>>3===1)r.peerInfos.push(Xa.codec().decode(e,e.uint32()));else e.skipType(7&t)}return r}))),t),e.encode=t=>Ea(t,e.codec()),e.decode=t=>_a(t,e.codec())}(Za||(Za={})),function(e){let t;e.codec=()=>(null==t&&(t=rc((function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};!1!==r.lengthDelimited&&t.fork(),null!=e.query&&(t.uint32(10),Ja.codec().encode(e.query,t)),null!=e.response&&(t.uint32(18),Za.codec().encode(e.response,t)),!1!==r.lengthDelimited&&t.ldelim()}),((e,t)=>{const r={},n=null==t?e.len:e.pos+t;for(;e.pos<n;){const t=e.uint32();switch(t>>>3){case 1:r.query=Ja.codec().decode(e,e.uint32());break;case 2:r.response=Za.codec().decode(e,e.uint32());break;default:e.skipType(7&t)}}return r}))),t),e.encode=t=>Ea(t,e.codec()),e.decode=t=>_a(t,e.codec())}($a||($a={}));const nc=ia("waku:message:version-0"),ic=BigInt(1e6);class oc{constructor(e,t){Br(this,"pubSubTopic",void 0),Br(this,"proto",void 0),this.pubSubTopic=e,this.proto=t}get ephemeral(){return Boolean(this.proto.ephemeral)}get payload(){return this.proto.payload}get contentTopic(){return this.proto.contentTopic}get _rawTimestamp(){return this.proto.timestamp}get timestamp(){try{if(this.proto.timestamp){const e=this.proto.timestamp/ic;return new Date(Number(e))}return}catch(e){return}}get meta(){return this.proto.meta}get version(){var e;return null!==(e=this.proto.version)&&void 0!==e?e:0}get rateLimitProof(){return this.proto.rateLimitProof}}class sc{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=arguments.length>2?arguments[2]:void 0;if(Br(this,"contentTopic",void 0),Br(this,"ephemeral",void 0),Br(this,"metaSetter",void 0),this.contentTopic=e,this.ephemeral=t,this.metaSetter=r,!e||""===e)throw new Error("Content topic must be specified")}async toWire(e){return ka.encode(await this.toProtoObj(e))}async toProtoObj(e){var t;const r=null!==(t=e.timestamp)&&void 0!==t?t:new Date,n={payload:e.payload,version:0,contentTopic:this.contentTopic,timestamp:BigInt(r.valueOf())*ic,meta:void 0,rateLimitProof:e.rateLimitProof,ephemeral:this.ephemeral};if(this.metaSetter){const e=this.metaSetter(n);return{...n,meta:e}}return n}}function ac(e){let{contentTopic:t,ephemeral:r,metaSetter:n}=e;return new sc(t,r,n)}class cc{constructor(e){if(Br(this,"contentTopic",void 0),this.contentTopic=e,!e||""===e)throw new Error("Content topic must be specified")}fromWireToProtoObj(e){var t,r,n,i,o;const s=ka.decode(e);return nc("Message decoded",s),Promise.resolve({payload:s.payload,contentTopic:s.contentTopic,version:null!==(t=s.version)&&void 0!==t?t:void 0,timestamp:null!==(r=s.timestamp)&&void 0!==r?r:void 0,meta:null!==(n=s.meta)&&void 0!==n?n:void 0,rateLimitProof:null!==(i=s.rateLimitProof)&&void 0!==i?i:void 0,ephemeral:null!==(o=s.ephemeral)&&void 0!==o&&o})}async fromProtoObj(e,t){var r;return null!==(r=t.version)&&void 0!==r&&r?(nc("Failed to decode due to incorrect version, expected:",0,", actual:",t.version),Promise.resolve(void 0)):new oc(e,t)}}function lc(e){return new cc(e)}const uc=ia("waku:keep-alive");class hc{constructor(e,t){Br(this,"pingKeepAliveTimers",void 0),Br(this,"relayKeepAliveTimers",void 0),Br(this,"options",void 0),Br(this,"relay",void 0),this.pingKeepAliveTimers=new Map,this.relayKeepAliveTimers=new Map,this.options=e,this.relay=t}start(e,t,r){this.stop(e);const{pingKeepAlive:n,relayKeepAlive:i}=this.options,o=e.toString();if(0!==n){const i=setInterval((()=>{(async()=>{try{const i=await t.ping(e);uc("Ping succeeded (".concat(o,")"),i);try{await r.patch(e,{metadata:{ping:da(i.toString())}})}catch(n){uc("Failed to update ping",n)}}catch(n){uc("Ping failed (".concat(o,")"),n)}})()}),1e3*n);this.pingKeepAliveTimers.set(o,i)}const s=this.relay;if(s&&0!==i){const t=ac({contentTopic:"/relay-ping/1/ping/null",ephemeral:!0}),r=setInterval((()=>{uc("Sending Waku Relay ping message"),s.send(t,{payload:new Uint8Array([1])}).catch((e=>uc("Failed to send relay ping",e)))}),1e3*i);this.relayKeepAliveTimers.set(e,r)}}stop(e){const t=e.toString();this.pingKeepAliveTimers.has(t)&&(clearInterval(this.pingKeepAliveTimers.get(t)),this.pingKeepAliveTimers.delete(t)),this.relayKeepAliveTimers.has(e)&&(clearInterval(this.relayKeepAliveTimers.get(e)),this.relayKeepAliveTimers.delete(e))}stopAll(){for(const e of[...Object.values(this.pingKeepAliveTimers),...Object.values(this.relayKeepAliveTimers)])clearInterval(e);this.pingKeepAliveTimers.clear(),this.relayKeepAliveTimers.clear()}}const dc=ia("waku:connection-manager");class pc extends sa{static create(e,t,r,n,i){let o=pc.instances.get(e);return o||(o=new pc(t,r,n,i),pc.instances.set(e,o)),o}async getPeersByDiscovery(){const e=await this.libp2p.peerStore.all(),t=this.libp2p.getConnections().map((e=>e.remotePeer)),r=[],n=[],i=[],o=[];for(const s of e){const e=await this.getTagNamesForPeer(s.id);e.includes(Qs.BOOTSTRAP)?r.push(s):e.includes(Qs.PEER_EXCHANGE)&&n.push(s)}for(const s of t){const e=await this.libp2p.peerStore.get(s),t=await this.getTagNamesForPeer(s);t.includes(Qs.BOOTSTRAP)?i.push(e):t.includes(Qs.PEER_EXCHANGE)&&o.push(e)}return{DISCOVERED:{[Qs.BOOTSTRAP]:r,[Qs.PEER_EXCHANGE]:n},CONNECTED:{[Qs.BOOTSTRAP]:i,[Qs.PEER_EXCHANGE]:o}}}constructor(e,t,r,n){super(),Br(this,"keepAliveManager",void 0),Br(this,"options",void 0),Br(this,"libp2p",void 0),Br(this,"dialAttemptsForPeer",new Map),Br(this,"dialErrorsForPeer",new Map),Br(this,"currentActiveDialCount",0),Br(this,"pendingPeerDialQueue",[]),Br(this,"onEventHandlers",{"peer:discovery":e=>{(async()=>{const{id:t}=e.detail,r=(await this.getTagNamesForPeer(t)).includes(Qs.BOOTSTRAP);this.dispatchEvent(new ca(r?Xs.PEER_DISCOVERY_BOOTSTRAP:Xs.PEER_DISCOVERY_PEER_EXCHANGE,{detail:t}));try{await this.attemptDial(t)}catch(n){dc("Error dialing peer ".concat(t.toString()," : ").concat(n))}})()},"peer:connect":e=>{(async()=>{const t=e.detail;this.keepAliveManager.start(t,this.libp2p.services.ping,this.libp2p.peerStore);if((await this.getTagNamesForPeer(t)).includes(Qs.BOOTSTRAP)){this.libp2p.getConnections().filter((e=>e.tags.includes(Qs.BOOTSTRAP))).length>this.options.maxBootstrapPeersAllowed?await this.dropConnection(t):this.dispatchEvent(new ca(Xs.PEER_CONNECT_BOOTSTRAP,{detail:t}))}else this.dispatchEvent(new ca(Xs.PEER_CONNECT_PEER_EXCHANGE,{detail:t}))})()},"peer:disconnect":()=>e=>{this.keepAliveManager.stop(e.detail)}}),this.libp2p=e,this.options={maxDialAttemptsForPeer:3,maxBootstrapPeersAllowed:1,maxParallelDials:3,...n},this.keepAliveManager=new hc(t,r),this.run().then((()=>dc("Connection Manager is now running"))).catch((e=>dc("Unexpected error while running service",e))),this.dialPeerStorePeers().catch((e=>dc("Unexpected error while dialing peer store peers",e)))}async dialPeerStorePeers(){const e=await this.libp2p.peerStore.all(),t=[];for(const n of e)this.libp2p.getConnections().find((e=>e.remotePeer===n.id))||t.push(this.attemptDial(n.id));try{await Promise.all(t)}catch(r){dc("Unexpected error while dialing peer store peers",r)}}async run(){this.startPeerDiscoveryListener(),this.startPeerConnectionListener(),this.startPeerDisconnectionListener()}stop(){this.keepAliveManager.stopAll(),this.libp2p.removeEventListener("peer:connect",this.onEventHandlers["peer:connect"]),this.libp2p.removeEventListener("peer:disconnect",this.onEventHandlers["peer:disconnect"]),this.libp2p.removeEventListener("peer:discovery",this.onEventHandlers["peer:discovery"])}async dialPeer(e){this.currentActiveDialCount+=1;let t=0;for(;t<this.options.maxDialAttemptsForPeer;)try{dc("Dialing peer ".concat(e.toString()," on attempt ").concat(t+1)),await this.libp2p.dial(e);const r=await this.getTagNamesForPeer(e);this.libp2p.getConnections(e).forEach((e=>{e.tags=Array.from(new Set([...e.tags,...r]))})),this.dialAttemptsForPeer.delete(e.toString());break}catch(r){r instanceof AggregateError?dc("Error dialing peer ".concat(e.toString()," - ").concat(r.errors)):dc("Error dialing peer ".concat(e.toString()," - ").concat(r.message)),this.dialErrorsForPeer.set(e.toString(),r),t++,this.dialAttemptsForPeer.set(e.toString(),t)}if(this.currentActiveDialCount--,this.processDialQueue(),t===this.options.maxDialAttemptsForPeer)try{const t=this.dialErrorsForPeer.get(e.toString());let r;r=t instanceof AggregateError?JSON.stringify(t.errors[0]):t.message,dc("Deleting undialable peer ".concat(e.toString()," from peer store. Error: ").concat(r)),this.dialErrorsForPeer.delete(e.toString()),await this.libp2p.peerStore.delete(e)}catch(r){throw new Error("Error deleting undialable peer ".concat(e.toString()," from peer store - ").concat(r))}}async dropConnection(e){try{this.keepAliveManager.stop(e),await this.libp2p.hangUp(e),dc("Dropped connection with peer ".concat(e.toString()))}catch(t){dc("Error dropping connection with peer ".concat(e.toString()," - ").concat(t))}}processDialQueue(){if(this.pendingPeerDialQueue.length>0&&this.currentActiveDialCount<this.options.maxParallelDials){const e=this.pendingPeerDialQueue.shift();if(!e)return;this.attemptDial(e).catch((e=>{dc(e)}))}}startPeerDiscoveryListener(){this.libp2p.addEventListener("peer:discovery",this.onEventHandlers["peer:discovery"])}startPeerConnectionListener(){this.libp2p.addEventListener("peer:connect",this.onEventHandlers["peer:connect"])}startPeerDisconnectionListener(){this.libp2p.addEventListener("peer:disconnect",this.onEventHandlers["peer:disconnect"])}async attemptDial(e){this.currentActiveDialCount>=this.options.maxParallelDials?this.pendingPeerDialQueue.push(e):await this.shouldDialPeer(e)&&this.dialPeer(e).catch((t=>{throw"Error dialing peer ".concat(e.toString()," : ").concat(t)}))}async shouldDialPeer(e){if(this.libp2p.getConnections(e).length>0)return!1;if(!(await this.getTagNamesForPeer(e)).some((e=>e===Qs.BOOTSTRAP)))return!0;if(this.libp2p.getConnections().filter((e=>e.tags.find((e=>e===Qs.BOOTSTRAP)))).length<this.options.maxBootstrapPeersAllowed)return!0;return!1}async getTagNamesForPeer(e){try{const t=await this.libp2p.peerStore.get(e);return Array.from(t.tags.keys())}catch(t){return dc("Failed to get peer ".concat(e,", error: ").concat(t)),[]}}}Br(pc,"instances",new Map);const fc="js-waku",yc=ia("waku:waku");class gc{constructor(e,t,r,n,i,o){Br(this,"libp2p",void 0),Br(this,"relay",void 0),Br(this,"store",void 0),Br(this,"filter",void 0),Br(this,"lightPush",void 0),Br(this,"connectionManager",void 0),this.libp2p=t,r&&(this.store=r(t)),i&&(this.filter=i(t)),n&&(this.lightPush=n(t)),o&&(this.relay=o(t));const s=e.pingKeepAlive||0,a=this.relay?e.relayKeepAlive||300:0,c=this.libp2p.peerId.toString();this.connectionManager=pc.create(c,t,{pingKeepAlive:s,relayKeepAlive:a},this.relay),yc("Waku node created",c,"relay: ".concat(!!this.relay,", store: ").concat(!!this.store,", light push: ").concat(!!this.lightPush,", filter: ").concat(!!this.filter))}async dial(e,t){const r=null!==t&&void 0!==t?t:[],n=function(e){return Or(e)?e:ra(e)}(e);"undefined"===typeof t&&(this.relay&&r.push(Gs.Relay),this.store&&r.push(Gs.Store),this.filter&&r.push(Gs.Filter),this.lightPush&&r.push(Gs.LightPush));const i=[];return r.includes(Gs.Relay)&&(this.relay?this.relay.gossipSub.multicodecs.forEach((e=>i.push(e))):yc("Relay codec not included in dial codec: protocol not mounted locally")),r.includes(Gs.Store)&&(this.store?i.push(this.store.multicodec):yc("Store codec not included in dial codec: protocol not mounted locally")),r.includes(Gs.LightPush)&&(this.lightPush?i.push(this.lightPush.multicodec):yc("Light Push codec not included in dial codec: protocol not mounted locally")),r.includes(Gs.Filter)&&(this.filter?i.push(this.filter.multicodec):yc("Filter codec not included in dial codec: protocol not mounted locally")),yc("Dialing to ".concat(n.toString()," with protocols ").concat(r)),this.libp2p.dialProtocol(n,i)}async start(){await this.libp2p.start()}async stop(){this.connectionManager.stop(),await this.libp2p.stop()}isStarted(){return this.libp2p.isStarted()}getLocalMultiaddrWithID(){const e=this.libp2p.getMultiaddrs().find((e=>e.toString().match(/127\.0\.0\.1/)));if(!e||""===e.toString())throw"Not listening on localhost";return e+"/p2p/"+this.libp2p.peerId.toString()}}const mc="/waku/2/default-waku/proto";function bc(e){const t=new Map;return e.forEach((e=>{let r=t.get(e.contentTopic);r||(t.set(e.contentTopic,[]),r=t.get(e.contentTopic)),r.push(e)})),t}const wc=60;async function vc(e,t,r){var n,i;const o=null!==(n=null===r||void 0===r?void 0:r.iteratorDelay)&&void 0!==n?n:wc,s=[];let a;a=await e.subscribe(t,(e=>{s.push(e)}));const c=Number.isInteger(null===r||void 0===r?void 0:r.timeoutMs),l=null!==(i=null===r||void 0===r?void 0:r.timeoutMs)&&void 0!==i?i:0,u=Date.now();return{iterator:async function*(){for(;;){if(c&&Date.now()-u>=l)return;await _c(o);const e=s.shift();if(!a&&0===s.length)return e;!e&&a||(yield e)}}(),async stop(){a&&(await a(),a=void 0)}}}function _c(e){return new Promise((t=>{setTimeout(t,e)}))}const Ec=function(e){if(null!=e[Symbol.asyncIterator])return(async()=>{const t=[];for await(const r of e)t.push(r);return t})();const t=[];for(const r of e)t.push(r);return t},Sc=Symbol.for("@achingbrain/uint8arraylist");function Ac(e,t){if(null==t||t<0)throw new RangeError("index is out of bounds");let r=0;for(const n of e){const e=r+n.byteLength;if(t<e)return{buf:n,index:t-r};r=e}throw new RangeError("index is out of bounds")}function kc(e){return Boolean(null===e||void 0===e?void 0:e[Sc])}class Ic{constructor(){Object.defineProperty(this,Sc,{value:!0}),this.bufs=[],this.length=0;for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];t.length>0&&this.appendAll(t)}*[Symbol.iterator](){yield*this.bufs}get byteLength(){return this.length}append(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];this.appendAll(t)}appendAll(e){let t=0;for(const r of e)if(r instanceof Uint8Array)t+=r.byteLength,this.bufs.push(r);else{if(!kc(r))throw new Error("Could not append value, must be an Uint8Array or a Uint8ArrayList");t+=r.byteLength,this.bufs.push(...r.bufs)}this.length+=t}prepend(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];this.prependAll(t)}prependAll(e){let t=0;for(const r of e.reverse())if(r instanceof Uint8Array)t+=r.byteLength,this.bufs.unshift(r);else{if(!kc(r))throw new Error("Could not prepend value, must be an Uint8Array or a Uint8ArrayList");t+=r.byteLength,this.bufs.unshift(...r.bufs)}this.length+=t}get(e){const t=Ac(this.bufs,e);return t.buf[t.index]}set(e,t){const r=Ac(this.bufs,e);r.buf[r.index]=t}write(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if(e instanceof Uint8Array)for(let r=0;r<e.length;r++)this.set(t+r,e[r]);else{if(!kc(e))throw new Error("Could not write value, must be an Uint8Array or a Uint8ArrayList");for(let r=0;r<e.length;r++)this.set(t+r,e.get(r))}}consume(e){if(e=Math.trunc(e),!(Number.isNaN(e)||e<=0)){if(e===this.byteLength)return this.bufs=[],void(this.length=0);for(;this.bufs.length>0;){if(!(e>=this.bufs[0].byteLength)){this.bufs[0]=this.bufs[0].subarray(e),this.length-=e;break}e-=this.bufs[0].byteLength,this.length-=this.bufs[0].byteLength,this.bufs.shift()}}}slice(e,t){const{bufs:r,length:n}=this._subList(e,t);return Po(r,n)}subarray(e,t){const{bufs:r,length:n}=this._subList(e,t);return 1===r.length?r[0]:Po(r,n)}sublist(e,t){const{bufs:r,length:n}=this._subList(e,t),i=new Ic;return i.length=n,i.bufs=r,i}_subList(e,t){var r,n;if(e=null!==(r=e)&&void 0!==r?r:0,t=null!==(n=t)&&void 0!==n?n:this.length,e<0&&(e=this.length+e),t<0&&(t=this.length+t),e<0||t>this.length)throw new RangeError("index is out of bounds");if(e===t)return{bufs:[],length:0};if(0===e&&t===this.length)return{bufs:[...this.bufs],length:this.length};const i=[];let o=0;for(let s=0;s<this.bufs.length;s++){const r=this.bufs[s],n=o,a=n+r.byteLength;if(o=a,e>=a)continue;const c=e>=n&&e<a,l=t>n&&t<=a;if(c&&l){if(e===n&&t===a){i.push(r);break}const o=e-n;i.push(r.subarray(o,o+(t-e)));break}if(c){if(0===e){i.push(r);continue}i.push(r.subarray(e-n))}else{if(l){if(t===a){i.push(r);break}i.push(r.subarray(0,t-n));break}i.push(r)}}return{bufs:i,length:t-e}}indexOf(e){var t;let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if(!kc(e)&&!(e instanceof Uint8Array))throw new TypeError('The "value" argument must be a Uint8ArrayList or Uint8Array');const n=e instanceof Uint8Array?e:e.subarray();if(r=Number(null!==(t=r)&&void 0!==t?t:0),isNaN(r)&&(r=0),r<0&&(r=this.length+r),r<0&&(r=0),0===e.length)return r>this.length?this.length:r;const i=n.byteLength;if(0===i)throw new TypeError("search must be at least 1 byte long");const o=new Int32Array(256);for(let u=0;u<256;u++)o[u]=-1;for(let u=0;u<i;u++)o[n[u]]=u;const s=o,a=this.byteLength-n.byteLength,c=n.byteLength-1;let l;for(let u=r;u<=a;u+=l){l=0;for(let e=c;e>=0;e--){const t=this.get(u+e);if(n[e]!==t){l=Math.max(1,e-s[t]);break}}if(0===l)return u}return-1}getInt8(e){const t=this.subarray(e,e+1);return new DataView(t.buffer,t.byteOffset,t.byteLength).getInt8(0)}setInt8(e,t){const r=Eo(1);new DataView(r.buffer,r.byteOffset,r.byteLength).setInt8(0,t),this.write(r,e)}getInt16(e,t){const r=this.subarray(e,e+2);return new DataView(r.buffer,r.byteOffset,r.byteLength).getInt16(0,t)}setInt16(e,t,r){const n=_o(2);new DataView(n.buffer,n.byteOffset,n.byteLength).setInt16(0,t,r),this.write(n,e)}getInt32(e,t){const r=this.subarray(e,e+4);return new DataView(r.buffer,r.byteOffset,r.byteLength).getInt32(0,t)}setInt32(e,t,r){const n=_o(4);new DataView(n.buffer,n.byteOffset,n.byteLength).setInt32(0,t,r),this.write(n,e)}getBigInt64(e,t){const r=this.subarray(e,e+8);return new DataView(r.buffer,r.byteOffset,r.byteLength).getBigInt64(0,t)}setBigInt64(e,t,r){const n=_o(8);new DataView(n.buffer,n.byteOffset,n.byteLength).setBigInt64(0,t,r),this.write(n,e)}getUint8(e){const t=this.subarray(e,e+1);return new DataView(t.buffer,t.byteOffset,t.byteLength).getUint8(0)}setUint8(e,t){const r=Eo(1);new DataView(r.buffer,r.byteOffset,r.byteLength).setUint8(0,t),this.write(r,e)}getUint16(e,t){const r=this.subarray(e,e+2);return new DataView(r.buffer,r.byteOffset,r.byteLength).getUint16(0,t)}setUint16(e,t,r){const n=_o(2);new DataView(n.buffer,n.byteOffset,n.byteLength).setUint16(0,t,r),this.write(n,e)}getUint32(e,t){const r=this.subarray(e,e+4);return new DataView(r.buffer,r.byteOffset,r.byteLength).getUint32(0,t)}setUint32(e,t,r){const n=_o(4);new DataView(n.buffer,n.byteOffset,n.byteLength).setUint32(0,t,r),this.write(n,e)}getBigUint64(e,t){const r=this.subarray(e,e+8);return new DataView(r.buffer,r.byteOffset,r.byteLength).getBigUint64(0,t)}setBigUint64(e,t,r){const n=_o(8);new DataView(n.buffer,n.byteOffset,n.byteLength).setBigUint64(0,t,r),this.write(n,e)}getFloat32(e,t){const r=this.subarray(e,e+4);return new DataView(r.buffer,r.byteOffset,r.byteLength).getFloat32(0,t)}setFloat32(e,t,r){const n=_o(4);new DataView(n.buffer,n.byteOffset,n.byteLength).setFloat32(0,t,r),this.write(n,e)}getFloat64(e,t){const r=this.subarray(e,e+8);return new DataView(r.buffer,r.byteOffset,r.byteLength).getFloat64(0,t)}setFloat64(e,t,r){const n=_o(8);new DataView(n.buffer,n.byteOffset,n.byteLength).setFloat64(0,t,r),this.write(n,e)}equals(e){if(null==e)return!1;if(!(e instanceof Ic))return!1;if(e.bufs.length!==this.bufs.length)return!1;for(let t=0;t<this.bufs.length;t++)if(!Yn(this.bufs[t],e.bufs[t]))return!1;return!0}static fromUint8Arrays(e,t){const r=new Ic;return r.bufs=e,null==t&&(t=e.reduce(((e,t)=>e+t.byteLength),0)),r.length=t,r}}function Rc(e){return e instanceof Uint8Array?{get:t=>e[t],set(t,r){e[t]=r}}:{get:t=>e.get(t),set(t,r){e.set(t,r)}}}const Pc=4294967296;class Cc{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this.hi=e,this.lo=t}toBigInt(e){if(!0===e)return BigInt(this.lo>>>0)+(BigInt(this.hi>>>0)<<32n);if(this.hi>>>31!==0){const e=1+~this.lo>>>0;let t=~this.hi>>>0;return 0===e&&(t=t+1>>>0),-(BigInt(e)+(BigInt(t)<<32n))}return BigInt(this.lo>>>0)+(BigInt(this.hi>>>0)<<32n)}toNumber(e){return Number(this.toBigInt(e))}zzDecode(){const e=-(1&this.lo),t=((this.lo>>>1|this.hi<<31)^e)>>>0,r=(this.hi>>>1^e)>>>0;return new Cc(r,t)}zzEncode(){const e=this.hi>>31,t=((this.hi<<1|this.lo>>>31)^e)>>>0,r=(this.lo<<1^e)>>>0;return new Cc(t,r)}toBytes(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;const r=Rc(e);for(;this.hi>0;)r.set(t++,127&this.lo|128),this.lo=(this.lo>>>7|this.hi<<25)>>>0,this.hi>>>=7;for(;this.lo>127;)r.set(t++,127&this.lo|128),this.lo=this.lo>>>7;r.set(t++,this.lo)}static fromBigInt(e){if(0n===e)return new Cc;const t=e<0;t&&(e=-e);let r=0|Number(e>>32n),n=0|Number(e-(BigInt(r)<<32n));return t&&(r=~r>>>0,n=~n>>>0,++n>Pc&&(n=0,++r>Pc&&(r=0))),new Cc(r,n)}static fromNumber(e){if(0===e)return new Cc;const t=e<0;t&&(e=-e);let r=e>>>0,n=(e-r)/4294967296>>>0;return t&&(n=~n>>>0,r=~r>>>0,++r>4294967295&&(r=0,++n>4294967295&&(n=0))),new Cc(n,r)}static fromBytes(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;const r=Rc(e),n=new Cc;let i=0;if(e.length-t>4){for(;i<4;++i)if(n.lo=(n.lo|(127&r.get(t))<<7*i)>>>0,r.get(t++)<128)return n;if(n.lo=(n.lo|(127&r.get(t))<<28)>>>0,n.hi=(n.hi|(127&r.get(t))>>4)>>>0,r.get(t++)<128)return n;i=0}else for(;i<4;++i){if(t>=e.length)throw RangeError("index out of range: ".concat(t," > ").concat(e.length));if(n.lo=(n.lo|(127&r.get(t))<<7*i)>>>0,r.get(t++)<128)return n}if(e.length-t>4){for(;i<5;++i)if(n.hi=(n.hi|(127&r.get(t))<<7*i+3)>>>0,r.get(t++)<128)return n}else if(t<e.byteLength)for(;i<5;++i){if(t>=e.length)throw RangeError("index out of range: ".concat(t," > ").concat(e.length));if(n.hi=(n.hi|(127&r.get(t))<<7*i+3)>>>0,r.get(t++)<128)return n}throw RangeError("invalid varint encoding")}}const Tc=Math.pow(2,7),xc=Math.pow(2,14),Dc=Math.pow(2,21),Nc=Math.pow(2,28),Lc=Math.pow(2,35),Bc=Math.pow(2,42),Mc=Math.pow(2,49),Oc=Math.pow(2,56),Uc=Math.pow(2,63),Kc={encodingLength:e=>e<Tc?1:e<xc?2:e<Dc?3:e<Nc?4:e<Lc?5:e<Bc?6:e<Mc?7:e<Oc?8:e<Uc?9:10,encode(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;if(null!=Number.MAX_SAFE_INTEGER&&e>Number.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return null==t&&(t=Eo(Kc.encodingLength(e))),Cc.fromNumber(e).toBytes(t,r),t},decode(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return Cc.fromBytes(e,t).toNumber(!0)}};function qc(e){return null!=e[Symbol.asyncIterator]}const Fc=e=>{const t=Kc.encodingLength(e),r=Eo(t);return Kc.encode(e,r),Fc.bytes=t,r};function Vc(e,t){var r,n;const i=null!==(n=(t=null!==(r=t)&&void 0!==r?r:{}).lengthEncoder)&&void 0!==n?n:Fc;function*o(e){const t=i(e.byteLength);t instanceof Uint8Array?yield t:yield*t,e instanceof Uint8Array?yield e:yield*e}return qc(e)?async function*(){for await(const t of e)yield*o(t)}():function*(){for(const t of e)yield*o(t)}()}Fc.bytes=0,Vc.single=(e,t)=>{var r,n;const i=null!==(n=(t=null!==(r=t)&&void 0!==r?r:{}).lengthEncoder)&&void 0!==n?n:Fc;return new Ic(i(e.byteLength),e)};var zc=__webpack_require__(7963);const jc=8,Hc=4194304;var Gc;!function(e){e[e.LENGTH=0]="LENGTH",e[e.DATA=1]="DATA"}(Gc||(Gc={}));const Wc=e=>{const t=Kc.decode(e);return Wc.bytes=Kc.encodingLength(t),t};function Yc(e,t){var r,n,i;const o=new Ic;let s=Gc.LENGTH,a=-1;const c=null!==(r=null===t||void 0===t?void 0:t.lengthDecoder)&&void 0!==r?r:Wc,l=null!==(n=null===t||void 0===t?void 0:t.maxLengthLength)&&void 0!==n?n:jc,u=null!==(i=null===t||void 0===t?void 0:t.maxDataLength)&&void 0!==i?i:Hc;function*h(){for(;o.byteLength>0;){if(s===Gc.LENGTH)try{if(a=c(o),a<0)throw zc(new Error("invalid message length"),"ERR_INVALID_MSG_LENGTH");if(a>u)throw zc(new Error("message length too long"),"ERR_MSG_DATA_TOO_LONG");const e=c.bytes;o.consume(e),null!=(null===t||void 0===t?void 0:t.onLength)&&t.onLength(a),s=Gc.DATA}catch(e){if(e instanceof RangeError){if(o.byteLength>l)throw zc(new Error("message length length too long"),"ERR_MSG_LENGTH_TOO_LONG");break}throw e}if(s===Gc.DATA){if(o.byteLength<a)break;const e=o.sublist(0,a);o.consume(a),null!=(null===t||void 0===t?void 0:t.onData)&&t.onData(e),yield e,s=Gc.LENGTH}}}return qc(e)?async function*(){for await(const t of e)o.append(t),yield*h();if(o.byteLength>0)throw zc(new Error("unexpected end of input"),"ERR_UNEXPECTED_EOF")}():function*(){for(const t of e)o.append(t),yield*h();if(o.byteLength>0)throw zc(new Error("unexpected end of input"),"ERR_UNEXPECTED_EOF")}()}function Qc(){const e={};return e.promise=new Promise(((t,r)=>{e.resolve=t,e.reject=r})),e}Wc.bytes=0,Yc.fromReader=(e,t)=>{let r=1;return Yc(async function*(){for(;;)try{const{done:t,value:n}=await e.next(r);if(!0===t)return;null!=n&&(yield n)}catch(t){if("ERR_UNDER_READ"===t.code)return{done:!0,value:null};throw t}finally{r=1}}(),{...null!==t&&void 0!==t?t:{},onLength:e=>{r=e}})};class Xc{constructor(e){if(Br(this,"buffer",void 0),Br(this,"mask",void 0),Br(this,"top",void 0),Br(this,"btm",void 0),Br(this,"next",void 0),!(e>0)||0!==(e-1&e))throw new Error("Max size for a FixedFIFO should be a power of two");this.buffer=new Array(e),this.mask=e-1,this.top=0,this.btm=0,this.next=null}push(e){return void 0===this.buffer[this.top]&&(this.buffer[this.top]=e,this.top=this.top+1&this.mask,!0)}shift(){const e=this.buffer[this.btm];if(void 0!==e)return this.buffer[this.btm]=void 0,this.btm=this.btm+1&this.mask,e}isEmpty(){return void 0===this.buffer[this.btm]}}class Jc{constructor(){var e;let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};Br(this,"size",void 0),Br(this,"hwm",void 0),Br(this,"head",void 0),Br(this,"tail",void 0),this.hwm=null!==(e=t.splitLimit)&&void 0!==e?e:16,this.head=new Xc(this.hwm),this.tail=this.head,this.size=0}calculateSize(e){return null!=(null===e||void 0===e?void 0:e.byteLength)?e.byteLength:1}push(e){if(null!=(null===e||void 0===e?void 0:e.value)&&(this.size+=this.calculateSize(e.value)),!this.head.push(e)){const t=this.head;this.head=t.next=new Xc(2*this.head.buffer.length),this.head.push(e)}}shift(){var e;let t=this.tail.shift();if(void 0===t&&null!=this.tail.next){const e=this.tail.next;this.tail.next=null,this.tail=e,t=this.tail.shift()}return null!=(null===(e=t)||void 0===e?void 0:e.value)&&(this.size-=this.calculateSize(t.value)),t}isEmpty(){return this.head.isEmpty()}}class Zc extends Error{constructor(e,t){super(null!==e&&void 0!==e?e:"The operation was aborted"),Br(this,"type",void 0),Br(this,"code",void 0),this.type="aborted",this.code=null!==t&&void 0!==t?t:"ABORT_ERR"}}function $c(){return el((e=>{const t=e.shift();if(null==t)return{done:!0};if(null!=t.error)throw t.error;return{done:!0===t.done,value:t.value}}),arguments.length>0&&void 0!==arguments[0]?arguments[0]:{})}function el(e,t){var r;let n,i,o,s=(t=null!==(r=t)&&void 0!==r?r:{}).onEnd,a=new Jc,c=Qc();const l=e=>null!=i?i(e):(a.push(e),n),u=e=>{var r;if(o)return n;if(!0!==(null===(r=t)||void 0===r?void 0:r.objectMode)&&null==(null===e||void 0===e?void 0:e.byteLength))throw new Error("objectMode was not true but tried to push non-Uint8Array value");return l({done:!1,value:e})},h=e=>o?n:(o=!0,null!=e?(e=>(a=new Jc,null!=i?i({error:e}):(a.push({error:e}),n)))(e):l({done:!0}));if(n={[Symbol.asyncIterator](){return this},next:async()=>{try{return a.isEmpty()?o?{done:!0}:await new Promise(((t,r)=>{i=o=>{i=null,a.push(o);try{t(e(a))}catch(s){r(s)}return n}})):e(a)}finally{a.isEmpty()&&queueMicrotask((()=>{c.resolve(),c=Qc()}))}},return:()=>(a=new Jc,h(),{done:!0}),throw:e=>(h(e),{done:!0}),push:u,end:h,get readableLength(){return a.size},onEmpty:async e=>{const t=null===e||void 0===e?void 0:e.signal;if(null===t||void 0===t||t.throwIfAborted(),a.isEmpty())return;let r,n;null!=t&&(r=new Promise(((e,r)=>{n=()=>{r(new Zc)},t.addEventListener("abort",n)})));try{await Promise.race([c.promise,r])}finally{null!=n&&null!=t&&(null===t||void 0===t||t.removeEventListener("abort",n))}}},null==s)return n;const d=n;return n={[Symbol.asyncIterator](){return this},next:()=>d.next(),throw:e=>(d.throw(e),null!=s&&(s(e),s=void 0),{done:!0}),return:()=>(d.return(),null!=s&&(s(),s=void 0),{done:!0}),push:u,end:e=>(d.end(e),null!=s&&(s(e),s=void 0),n),get readableLength(){return d.readableLength}},n}const tl=function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];const n=[];for(const i of t)null==i[Symbol.asyncIterator]&&n.push(i);return n.length===t.length?function*(){for(const e of n)yield*e}():async function*(){const e=$c({objectMode:!0});Promise.resolve().then((async()=>{try{await Promise.all(t.map((async t=>{for await(const r of t)e.push(r)}))),e.end()}catch(r){e.end(r)}})),yield*e}()};function rl(e){if(null==e)throw new Error("Empty pipeline");if(sl(e)){const t=e;e=()=>t.source}else if(ol(e)||il(e)){const t=e;e=()=>t}for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];const i=[e,...r];if(i.length>1&&sl(i[i.length-1])&&(i[i.length-1]=i[i.length-1].sink),i.length>2)for(let o=1;o<i.length-1;o++)sl(i[o])&&(i[o]=al(i[o]));return nl(...i)}const nl=function(){let e;for(var t=arguments.length,r=new Array(t),n=0;n<t;n++)r[n]=arguments[n];for(;r.length>0;)e=r.shift()(e);return e},il=e=>null!=(null===e||void 0===e?void 0:e[Symbol.asyncIterator]),ol=e=>null!=(null===e||void 0===e?void 0:e[Symbol.iterator]),sl=e=>null!=e&&(null!=e.sink&&null!=e.source),al=e=>t=>{const r=e.sink(t);if(null!=(null===r||void 0===r?void 0:r.then)){const t=$c({objectMode:!0});let n;r.then((()=>{t.end()}),(e=>{t.end(e)}));const i=e.source;if(il(i))n=async function*(){yield*i,t.end()};else{if(!ol(i))throw new Error("Unknown duplex source type - must be Iterable or AsyncIterable");n=function*(){yield*i,t.end()}}return tl(t,n())}return e.source},cl=ia("waku:libp2p-utils");async function ll(e,t){const r=[];return await e.forEach((e=>{for(let n=0;n<t.length;n++)if(e.protocols.includes(t[n])){r.push(e);break}})),r}async function ul(e,t,r){let n,i;if(r){if(n=await e.get(r),!n)throw new Error("Failed to retrieve connection details for provided peer in peer store: ".concat(r.toString()))}else{const r=await ll(e,t);if(n=await async function(e,t){if(0===t.length)return;const r=(await Promise.all(t.map((async t=>{var r;const n=(await e.get(t.id)).metadata.get("ping");return n?{peer:t,ping:null!==(r=Number(ha(n)))&&void 0!==r?r:1/0}:{peer:t,ping:1/0}})))).sort(((e,t)=>e.ping-t.ping))[0];return r&&r.ping!==1/0?r.peer:void 0}(e,r),!n&&(n=function(e){if(0===e.length)return;return e[Math.round(Math.random()*(e.length-1))]}(r),!n))throw new Error("Failed to find known peer that registers protocols: ".concat(t))}for(const o of t)n.protocols.includes(o)&&(i=o);if(cl("Using codec ".concat(i)),!i)throw new Error("Peer does not register required protocols (".concat(n.id.toString(),"): ").concat(t));return{peer:n,protocol:i}}class hl{constructor(e,t,r){Br(this,"multicodec",void 0),Br(this,"getConnections",void 0),Br(this,"addEventListener",void 0),Br(this,"streamPool",void 0),Br(this,"log",void 0),Br(this,"handlePeerUpdateStreamPool",(e=>{const t=e.detail.peer;t.protocols.includes(this.multicodec)&&(this.log("Preemptively opening a stream to ".concat(t.id.toString())),this.prepareNewStream(t))})),this.multicodec=e,this.getConnections=t,this.addEventListener=r,this.log=ia("waku:stream-manager:".concat(e)),this.addEventListener("peer:update",this.handlePeerUpdateStreamPool.bind(this)),this.getStream=this.getStream.bind(this),this.streamPool=new Map}async getStream(e){const t=e.id.toString(),r=this.streamPool.get(t);if(!r)return this.newStream(e);this.streamPool.delete(t),this.prepareNewStream(e);const n=await r;return"closed"===n.status?this.newStream(e):n}async newStream(e){const t=function(e){if(!e.length)return;if(1===e.length)return e[0];let t;return e.forEach((e=>{"open"===e.status&&(t?e.timeline.open>t.timeline.open&&(t=e):t=e)})),t}(this.getConnections(e.id));if(!t)throw new Error("Failed to get a connection to the peer");return t.newStream(this.multicodec)}prepareNewStream(e){const t=this.newStream(e);this.streamPool.set(e.id.toString(),t)}}class dl{constructor(e,t){Br(this,"multicodec",void 0),Br(this,"components",void 0),Br(this,"addLibp2pEventListener",void 0),Br(this,"removeLibp2pEventListener",void 0),Br(this,"streamManager",void 0),this.multicodec=e,this.components=t,this.addLibp2pEventListener=t.events.addEventListener.bind(t.events),this.removeLibp2pEventListener=t.events.removeEventListener.bind(t.events),this.streamManager=new hl(e,t.connectionManager.getConnections.bind(t.connectionManager),this.addLibp2pEventListener)}async getStream(e){return this.streamManager.getStream(e)}get peerStore(){return this.components.peerStore}async peers(){return ll(this.peerStore,[this.multicodec])}async getPeer(e){const{peer:t}=await ul(this.peerStore,[this.multicodec],e);return t}async getPeers(){let{numPeers:e,maxBootstrapPeers:t}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{maxBootstrapPeers:1,numPeers:0};return async function(e,t,r){const n=e.filter((e=>e.tags.has(Qs.BOOTSTRAP))).slice(0,r),i=e.filter((e=>!e.tags.has(Qs.BOOTSTRAP)));if(0===t)return[...n,...i];const o=[...n];for(;o.length<t&&i.length>0;){const e=Math.floor(Math.random()*i.length),t=i.splice(e,1)[0];o.push(t)}return o}(await ll(this.peerStore,[this.multicodec]),e,t)}}const pl={randomUUID:"undefined"!==typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};let fl;const yl=new Uint8Array(16);function gl(){if(!fl&&(fl="undefined"!==typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!fl))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return fl(yl)}const ml=[];for(let M2=0;M2<256;++M2)ml.push((M2+256).toString(16).slice(1));function bl(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return(ml[e[t+0]]+ml[e[t+1]]+ml[e[t+2]]+ml[e[t+3]]+"-"+ml[e[t+4]]+ml[e[t+5]]+"-"+ml[e[t+6]]+ml[e[t+7]]+"-"+ml[e[t+8]]+ml[e[t+9]]+"-"+ml[e[t+10]]+ml[e[t+11]]+ml[e[t+12]]+ml[e[t+13]]+ml[e[t+14]]+ml[e[t+15]]).toLowerCase()}const wl=function(e,t,r){if(pl.randomUUID&&!t&&!e)return pl.randomUUID();const n=(e=e||{}).random||(e.rng||gl)();if(n[6]=15&n[6]|64,n[8]=63&n[8]|128,t){r=r||0;for(let e=0;e<16;++e)t[r+e]=n[e];return t}return bl(n)};class vl{constructor(e){Br(this,"proto",void 0),this.proto=e}static decode(e){const t=La.decode(e);return new vl(t)}encode(){return La.encode(this.proto)}get wakuMessage(){return this.proto.wakuMessage}get pubsubTopic(){return this.proto.pubsubTopic}}class _l{constructor(e){Br(this,"proto",void 0),this.proto=e}static createSubscribeRequest(e,t){return new _l({requestId:wl(),filterSubscribeType:Da.FilterSubscribeType.SUBSCRIBE,pubsubTopic:e,contentTopics:t})}static createUnsubscribeRequest(e,t){return new _l({requestId:wl(),filterSubscribeType:Da.FilterSubscribeType.UNSUBSCRIBE,pubsubTopic:e,contentTopics:t})}static createUnsubscribeAllRequest(e){return new _l({requestId:wl(),filterSubscribeType:Da.FilterSubscribeType.UNSUBSCRIBE_ALL,pubsubTopic:e,contentTopics:[]})}static createSubscriberPingRequest(){return new _l({requestId:wl(),filterSubscribeType:Da.FilterSubscribeType.SUBSCRIBER_PING,pubsubTopic:"",contentTopics:[]})}static decode(e){const t=Da.decode(e);return new _l(t)}encode(){return Da.encode(this.proto)}get filterSubscribeType(){return this.proto.filterSubscribeType}get requestId(){return this.proto.requestId}get pubsubTopic(){return this.proto.pubsubTopic}get contentTopics(){return this.proto.contentTopics}}class El{constructor(e){Br(this,"proto",void 0),this.proto=e}static decode(e){const t=Na.decode(e);return new El(t)}encode(){return Na.encode(this.proto)}get statusCode(){return this.proto.statusCode}get statusDesc(){return this.proto.statusDesc}get requestId(){return this.proto.requestId}}const Sl=ia("waku:filter:v2"),Al="/vac/waku/filter-subscribe/2.0.0-beta1",kl="/vac/waku/filter-push/2.0.0-beta1";class Il{constructor(e,t,r){Br(this,"peer",void 0),Br(this,"pubSubTopic",void 0),Br(this,"newStream",void 0),Br(this,"subscriptionCallbacks",void 0),this.peer=t,this.pubSubTopic=e,this.newStream=r,this.subscriptionCallbacks=new Map}async subscribe(e,t){const r=bc(Array.isArray(e)?e:[e]),n=Array.from(r.keys()),i=await this.newStream(this.peer),o=_l.createSubscribeRequest(this.pubSubTopic,n);try{const e=await rl([o.encode()],Vc,i,Yc,(async e=>await Ec(e))),{statusCode:t,requestId:r,statusDesc:s}=El.decode(e[0].slice());if(t<200||t>=300)throw new Error("Filter subscribe request ".concat(r," failed with status code ").concat(t,": ").concat(s));Sl("Subscribed to peer ",this.peer.id.toString(),"for content topics",n)}catch(s){throw new Error("Error subscribing to peer: "+this.peer.id.toString()+" for content topics: "+n+": "+s)}r.forEach(((e,r)=>{const n={decoders:e,callback:t};this.subscriptionCallbacks.set(r,n)}))}async unsubscribe(e){const t=await this.newStream(this.peer),r=_l.createUnsubscribeRequest(this.pubSubTopic,e);try{await rl([r.encode()],Vc,t.sink)}catch(n){throw new Error("Error subscribing: "+n)}e.forEach((e=>{this.subscriptionCallbacks.delete(e)}))}async ping(){const e=await this.newStream(this.peer),t=_l.createSubscriberPingRequest();try{const r=await rl([t.encode()],Vc,e,Yc,(async e=>await Ec(e))),{statusCode:n,requestId:i,statusDesc:o}=El.decode(r[0].slice());if(n<200||n>=300)throw new Error("Filter ping request ".concat(i," failed with status code ").concat(n,": ").concat(o));Sl("Ping successful")}catch(r){throw Sl("Error pinging: ",r),new Error("Error pinging: "+r)}}async unsubscribeAll(){const e=await this.newStream(this.peer),t=_l.createUnsubscribeAllRequest(this.pubSubTopic);try{const r=await rl([t.encode()],Vc,e,Yc,(async e=>await Ec(e))),{statusCode:n,requestId:i,statusDesc:o}=El.decode(r[0].slice());if(n<200||n>=300)throw new Error("Filter unsubscribe all request ".concat(i," failed with status code ").concat(n,": ").concat(o));this.subscriptionCallbacks.clear(),Sl("Unsubscribed from all content topics")}catch(r){throw new Error("Error unsubscribing from all content topics: "+r)}}async processMessage(e){const t=e.contentTopic,r=this.subscriptionCallbacks.get(t);r?await async function(e,t,r){const{decoders:n,callback:i}=e,{contentTopic:o}=r;if(!o)return void Sl("Message has no content topic, skipping");try{const e=n.map((e=>e.fromProtoObj(t,r).then((e=>e||Promise.reject("Decoding failed"))))),o=await Promise.any(e);await i(o)}catch(s){Sl("Error decoding message",s)}}(r,this.pubSubTopic,e):Sl("No subscription callback available for ",t)}}class Rl extends dl{getActiveSubscription(e,t){return this.activeSubscriptions.get("".concat(e,"_").concat(t))}setActiveSubscription(e,t,r){return this.activeSubscriptions.set("".concat(e,"_").concat(t),r),r}constructor(e,t){super(Al,e.components),Br(this,"options",void 0),Br(this,"activeSubscriptions",new Map),Br(this,"NUM_PEERS_PROTOCOL",1),e.handle(kl,this.onRequest.bind(this)).catch((e=>{Sl("Failed to register ",kl,e)})),this.activeSubscriptions=new Map,this.options=null!==t&&void 0!==t?t:{}}async createSubscription(e){var t,r;const n=null!==(t=null!==e&&void 0!==e?e:this.options.pubSubTopic)&&void 0!==t?t:mc,i=(await this.getPeers({maxBootstrapPeers:1,numPeers:this.NUM_PEERS_PROTOCOL}))[0];return null!==(r=this.getActiveSubscription(n,i.id.toString()))&&void 0!==r?r:this.setActiveSubscription(n,i.id.toString(),new Il(n,i,this.getStream.bind(this,i)))}toSubscriptionIterator(e){return vc(this,e)}async subscribe(e,t){const r=await this.createSubscription();await r.subscribe(e,t);const n=Array.from(bc(Array.isArray(e)?e:[e]).keys());return async()=>{await r.unsubscribe(n)}}onRequest(e){Sl("Receiving message push");try{rl(e.stream,Yc,(async t=>{for await(const r of t){const t=vl.decode(r.slice()),{pubsubTopic:n,wakuMessage:i}=t;if(!i)return void Sl("Received empty message");if(!n)return void Sl("PubSub topic missing from push message");const o=e.connection.remotePeer.toString(),s=this.getActiveSubscription(n,o);if(!s)return void Sl("No subscription locally registered for topic ".concat(n));await s.processMessage(i)}})).then((()=>{Sl("Receiving pipe closed.")}),(e=>{Sl("Error with receiving pipe",e)}))}catch(t){Sl("Error decoding message",t)}}}const Pl=e=>!(e.length/1048576>1);class Cl{constructor(e){Br(this,"proto",void 0),this.proto=e}static createRequest(e,t){return new Cl({requestId:wl(),request:{message:e,pubsubTopic:t},response:void 0})}static decode(e){const t=Ka.decode(e);return new Cl(t)}encode(){return Ka.encode(this.proto)}get query(){return this.proto.request}get response(){return this.proto.response}}const Tl=ia("waku:light-push");class xl extends dl{constructor(e,t){super("/vac/waku/lightpush/2.0.0-beta1",e.components),Br(this,"options",void 0),Br(this,"NUM_PEERS_PROTOCOL",1),this.options=t||{}}async preparePushMessage(e,t,r){try{if(!Pl(t.payload))return Tl("Failed to send waku light push: message is bigger than 1MB"),{query:null,error:Ws.SIZE_TOO_BIG};const n=await e.toProtoObj(t);if(!n)return Tl("Failed to encode to protoMessage, aborting push"),{query:null,error:Ws.ENCODE_FAILED};return{query:Cl.createRequest(n,r),error:null}}catch(n){return Tl("Failed to prepare push message",n),{query:null,error:Ws.GENERIC_FAIL}}}async send(e,t){const{pubSubTopic:r=mc}=this.options,n=[],{query:i,error:o}=await this.preparePushMessage(e,t,r);if(o||!i)return{recipients:n,errors:[o]};const s=(await this.getPeers({maxBootstrapPeers:1,numPeers:this.NUM_PEERS_PROTOCOL})).map((async e=>{let t;const r=await this.getStream(e);try{const s=await rl([i.encode()],Vc,r,Yc,(async e=>await Ec(e)));try{const r=new Ic;s.forEach((e=>{r.append(e)}));const i=Cl.decode(r).response;null!==i&&void 0!==i&&i.isSuccess?n.some((t=>t.equals(e.id)))||n.push(e.id):(Tl("No response in PushRPC"),t=Ws.NO_RPC_RESPONSE)}catch(o){Tl("Failed to decode push reply",o),t=Ws.DECODE_FAILED}}catch(o){Tl("Failed to send waku light push request",o),t=Ws.GENERIC_FAIL}return{recipients:n,error:t}})),a=(await Promise.allSettled(s)).filter((e=>"fulfilled"===e.status)).map((e=>e.value.error)).filter((e=>void 0!==e));return{recipients:n,errors:a}}}function Dl(e){return Boolean(e)}const Nl={payload:new Uint8Array,contentTopic:"",version:void 0,timestamp:void 0,meta:void 0,rateLimitProof:void 0,ephemeral:void 0};function Ll(e){return{...Nl,...e}}const Bl=BigInt(1e6);var Ml;!function(e){e.BACKWARD="backward",e.FORWARD="forward"}(Ml||(Ml={}));class Ol{constructor(e){Br(this,"proto",void 0),this.proto=e}get query(){return this.proto.query}get response(){return this.proto.response}static createQuery(e){const t=e.contentTopics.map((e=>({contentTopic:e}))),r=function(e){switch(e){case Ml.BACKWARD:return za.Direction.BACKWARD;case Ml.FORWARD:return za.Direction.FORWARD;default:return za.Direction.BACKWARD}}(e.pageDirection),n={pageSize:BigInt(e.pageSize),cursor:e.cursor,direction:r};let i,o;return e.startTime&&(i=BigInt(e.startTime.valueOf())*Bl),e.endTime&&(o=BigInt(e.endTime.valueOf())*Bl),new Ol({requestId:wl(),query:{pubsubTopic:e.pubSubTopic,contentFilters:t,pagingInfo:n,startTime:i,endTime:o},response:void 0})}decode(e){const t=Wa.decode(e);return new Ol(t)}encode(){return Wa.encode(this.proto)}}var Ul=Ga.HistoryError;const Kl=ia("waku:store"),ql="/vac/waku/store/2.0.0-beta4";class Fl extends dl{constructor(e,t){super(ql,e.components),Br(this,"options",void 0),Br(this,"NUM_PEERS_PROTOCOL",1),Br(this,"queryOrderedCallback",this.queryWithOrderedCallback),this.options=null!==t&&void 0!==t?t:{}}async processMessages(e,t,r){let n=!1;let i=(await Promise.all(e)).filter(Dl);return this.shouldReverseOrder(r)&&(i=i.reverse()),await Promise.all(i.map((async e=>{e&&!n&&(n=Boolean(await t(e)))}))),n}shouldReverseOrder(e){return"undefined"===typeof(null===e||void 0===e?void 0:e.pageDirection)||(null===e||void 0===e?void 0:e.pageDirection)===Ml.BACKWARD}async queryWithOrderedCallback(e,t,r){for await(const n of this.queryGenerator(e,r))if(await this.processMessages(n,t,r))break}async queryWithPromiseCallback(e,t,r){let n=!1;for await(const i of this.queryGenerator(e,r)){const e=i.map((async e=>{n||(n=Boolean(await t(e)))}));if(await Promise.all(e),n)break}}async*queryGenerator(e,t){const{pubSubTopic:r=mc}=this.options;let n,i;null!==t&&void 0!==t&&t.timeFilter&&(n=t.timeFilter.startTime,i=t.timeFilter.endTime);const o=new Map;e.forEach((e=>{if(o.has(e.contentTopic))throw new Error("API does not support different decoder per content topic");o.set(e.contentTopic,e)}));const s=e.map((e=>e.contentTopic)),a=Object.assign({pubSubTopic:r,pageDirection:Ml.BACKWARD,pageSize:10},t,{contentTopics:s,startTime:n,endTime:i});Kl("Querying history with the following options",t);const c=(await this.getPeers({numPeers:this.NUM_PEERS_PROTOCOL,maxBootstrapPeers:1}))[0];for await(const l of async function*(e,t,r,n){if(t.contentTopics.toString()!==Array.from(r.keys()).toString())throw new Error("Internal error, the decoders should match the query's content topics");let i=n;for(;;){var o,s,a,c;t.cursor=i;const n=Ol.createQuery(t);Kl("Querying store peer","for (".concat(t.pubSubTopic,")"),t.contentTopics);const l=await e(),u=await rl([n.encode()],Vc,l,Yc,(async e=>await Ec(e))),h=new Ic;u.forEach((e=>{h.append(e)}));const d=n.decode(h);if(!d.response){Kl("Stopping pagination due to store `response` field missing");break}const p=d.response;if(p.error&&p.error!==Ul.NONE)throw"History response contains an Error: "+p.error;if(!p.messages||!p.messages.length){Kl("Stopping pagination due to store `response.messages` field missing or empty");break}Kl("".concat(p.messages.length," messages retrieved from store")),yield p.messages.map((e=>{const n=e.contentTopic;if("undefined"!==typeof n){const i=r.get(n);if(i)return i.fromProtoObj(t.pubSubTopic,Ll(e))}return Promise.resolve(void 0)}));const f=null===(o=p.pagingInfo)||void 0===o?void 0:o.cursor;if("undefined"===typeof f){Kl("Stopping pagination due to `response.pagingInfo.cursor` missing from store response");break}i=f;const y=null===(s=p.pagingInfo)||void 0===s?void 0:s.pageSize,g=null===(a=n.query)||void 0===a||null===(c=a.pagingInfo)||void 0===c?void 0:c.pageSize;if(y&&g&&y<g)break}}(this.getStream.bind(this,c),a,o,null===t||void 0===t?void 0:t.cursor))yield l}}class Vl extends Error{constructor(e){super(e),this.name="TimeoutError"}}class zl extends Error{constructor(e){super(),this.name="AbortError",this.message=e}}const jl=e=>void 0===globalThis.DOMException?new zl(e):new DOMException(e),Hl=e=>{const t=void 0===e.reason?jl("This operation was aborted."):e.reason;return t instanceof Error?t:jl(t)};const Gl=e=>{const t=e.on||e.addListener||e.addEventListener,r=e.off||e.removeListener||e.removeEventListener;if(!t||!r)throw new TypeError("Emitter is not compatible");return{addListener:t.bind(e),removeListener:r.bind(e)}};function Wl(e,t,r){let n;const i=new Promise(((i,o)=>{if(!((r={rejectionEvents:["error"],multiArgs:!1,resolveImmediately:!1,...r}).count>=0)||r.count!==Number.POSITIVE_INFINITY&&!Number.isInteger(r.count))throw new TypeError("The `count` option should be at least 0 or more");const s=[t].flat(),a=[],{addListener:c,removeListener:l}=Gl(e),u=function(){for(var e=arguments.length,t=new Array(e),o=0;o<e;o++)t[o]=arguments[o];const s=r.multiArgs?t:t[0];r.filter&&!r.filter(s)||(a.push(s),r.count===a.length&&(n(),i(a)))},h=e=>{n(),o(e)};n=()=>{for(const e of s)l(e,u);for(const e of r.rejectionEvents)l(e,h)};for(const e of s)c(e,u);for(const e of r.rejectionEvents)c(e,h);r.resolveImmediately&&i(a)}));if(i.cancel=n,"number"===typeof r.timeout){const e=function(e,t,r,n){let i;const o=new Promise(((o,s)=>{if("number"!==typeof t||1!==Math.sign(t))throw new TypeError("Expected `milliseconds` to be a positive number, got `".concat(t,"`"));if(t!==Number.POSITIVE_INFINITY){if((n={customTimers:{setTimeout:setTimeout,clearTimeout:clearTimeout},...n}).signal){const{signal:e}=n;e.aborted&&s(Hl(e)),e.addEventListener("abort",(()=>{s(Hl(e))}))}i=n.customTimers.setTimeout.call(void 0,(()=>{if("function"===typeof r){try{o(r())}catch(a){s(a)}return}const n="string"===typeof r?r:"Promise timed out after ".concat(t," milliseconds"),i=r instanceof Error?r:new Vl(n);"function"===typeof e.cancel&&e.cancel(),s(i)}),t),(async()=>{try{o(await e)}catch(t){s(t)}finally{n.customTimers.clearTimeout.call(void 0,i)}})()}else o(e)}));return o.clear=()=>{clearTimeout(i),i=void 0},o}(i,r.timeout);return e.cancel=n,e}return i}function Yl(e,t,r){"function"===typeof r&&(r={filter:r});const n=Wl(e,t,r={...r,count:1,resolveImmediately:!1}),i=n.then((e=>e[0]));return i.cancel=n.cancel,i}const Ql=ia("waku:wait-for-remote-peer");async function Xl(e,t,r){var n;if(t=null!==(n=t)&&void 0!==n?n:function(e){const t=[];e.relay&&t.push(Gs.Relay);e.filter&&t.push(Gs.Filter);e.store&&t.push(Gs.Store);e.lightPush&&t.push(Gs.LightPush);return t}(e),!e.isStarted())return Promise.reject("Waku node is not started");const i=[];if(t.includes(Gs.Relay)){if(!e.relay)throw new Error("Cannot wait for Relay peer: protocol not mounted");i.push(async function(e){let t=e.getMeshPeers();for(;0==t.length;)await Yl(e.gossipSub,"gossipsub:heartbeat"),t=e.getMeshPeers()}(e.relay))}if(t.includes(Gs.Store)){if(!e.store)throw new Error("Cannot wait for Store peer: protocol not mounted");i.push(Jl(e.store))}if(t.includes(Gs.LightPush)){if(!e.lightPush)throw new Error("Cannot wait for LightPush peer: protocol not mounted");i.push(Jl(e.lightPush))}if(t.includes(Gs.Filter)){if(!e.filter)throw new Error("Cannot wait for Filter peer: protocol not mounted");i.push(Jl(e.filter))}r?await async function(e,t,r){await Promise.race([e,Zl(t,r)])}(Promise.all(i),r,"Timed out waiting for a remote peer."):await Promise.all(i)}async function Jl(e){const t=e.multicodec,r=await e.peers();r.length?Ql("".concat(t," peer found: "),r[0].id.toString()):await new Promise((r=>{const n=i=>{var o,s;null!==(o=i.detail)&&void 0!==o&&null!==(s=o.protocols)&&void 0!==s&&s.includes(t)&&(Ql("Resolving for",t,i.detail.protocols),e.removeLibp2pEventListener("peer:identify",n),r())};e.addLibp2pEventListener("peer:identify",n)}))}const Zl=(e,t)=>new Promise(((r,n)=>setTimeout((()=>n(t)),e)));class $l extends Error{constructor(e,t){super(e),Br(this,"code",void 0),this.code=t}}class eu extends $l{constructor(e){super(e,"ABORT_ERR"),Br(this,"type",void 0),this.type="aborted"}}Math.pow(2,7),Math.pow(2,14),Math.pow(2,21);const tu=Math.pow(2,28),ru=Math.pow(2,35),nu=Math.pow(2,42),iu=Math.pow(2,49),ou=128,su=127;function au(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return e instanceof Uint8Array?function(e,t){let r=e[t],n=0;if(n+=r&su,r<ou)return n;if(r=e[t+1],n+=(r&su)<<7,r<ou)return n;if(r=e[t+2],n+=(r&su)<<14,r<ou)return n;if(r=e[t+3],n+=(r&su)<<21,r<ou)return n;if(r=e[t+4],n+=(r&su)*tu,r<ou)return n;if(r=e[t+5],n+=(r&su)*ru,r<ou)return n;if(r=e[t+6],n+=(r&su)*nu,r<ou)return n;if(r=e[t+7],n+=(r&su)*iu,r<ou)return n;throw new RangeError("Could not decode varint")}(e,t):function(e,t){let r=e.get(t),n=0;if(n+=r&su,r<ou)return n;if(r=e.get(t+1),n+=(r&su)<<7,r<ou)return n;if(r=e.get(t+2),n+=(r&su)<<14,r<ou)return n;if(r=e.get(t+3),n+=(r&su)<<21,r<ou)return n;if(r=e.get(t+4),n+=(r&su)*tu,r<ou)return n;if(r=e.get(t+5),n+=(r&su)*ru,r<ou)return n;if(r=e.get(t+6),n+=(r&su)*nu,r<ou)return n;if(r=e.get(t+7),n+=(r&su)*iu,r<ou)return n;throw new RangeError("Could not decode varint")}(e,t)}class cu extends Error{constructor(e,t){super(e),Br(this,"code",void 0),this.code=t}}const lu=e=>au(e);function uu(e,t){const r=function(e){const t=$c();e.sink(t).catch((e=>{t.end(e)})),e.sink=async e=>{for await(const r of e)t.push(r);t.end()};let r=e.source;null!=e.source[Symbol.iterator]?r=e.source[Symbol.iterator]():null!=e.source[Symbol.asyncIterator]&&(r=e.source[Symbol.asyncIterator]());const n=new Ic,i={read:async(e,t)=>{var i;let o;null===t||void 0===t||null===(i=t.signal)||void 0===i||i.throwIfAborted();const s=new Promise(((e,r)=>{var n;o=()=>{r(new eu("Read aborted"))},null===t||void 0===t||null===(n=t.signal)||void 0===n||n.addEventListener("abort",o)}));try{if(null==e){const{done:e,value:t}=await Promise.race([r.next(),s]);return!0===e?new Ic:t}for(;n.byteLength<e;){const{value:e,done:t}=await Promise.race([r.next(),s]);if(!0===t)throw new $l("unexpected end of input","ERR_UNEXPECTED_EOF");n.append(e)}const t=n.sublist(0,e);return n.consume(e),t}finally{var a;null!=o&&(null===t||void 0===t||null===(a=t.signal)||void 0===a||a.removeEventListener("abort",o))}},write:async(e,r)=>{var n;null===r||void 0===r||null===(n=r.signal)||void 0===n||n.throwIfAborted(),e instanceof Uint8Array?t.push(e):t.push(e.subarray()),await t.onEmpty(r)},unwrap:()=>{const t=e.source;return e.source=async function*(){yield*n,yield*t}(),e}};return i}(e);return{read:async e=>{var n;let i=-1;const o=new Ic,s=null!==(n=null===t||void 0===t?void 0:t.lengthDecoder)&&void 0!==n?n:lu;for(;;){o.append(await r.read(1,e));try{i=s(o)}catch(a){if(a instanceof RangeError)continue;throw a}if(i>-1)break;if(null!=(null===t||void 0===t?void 0:t.maxLengthLength)&&o.byteLength>t.maxLengthLength)throw new cu("message length length too long","ERR_MSG_LENGTH_TOO_LONG")}if(null!=(null===t||void 0===t?void 0:t.maxDataLength)&&i>t.maxDataLength)throw new cu("message length too long","ERR_MSG_DATA_TOO_LONG");return r.read(i,e)},write:async(e,n)=>{await r.write(Vc.single(e,t),n)},unwrap:()=>r.unwrap()}}function hu(){const e=Qc();let t=!1;return{sink:async r=>{if(t)throw new Error("already piped");t=!0,e.resolve(r)},source:async function*(){const t=await e.promise;yield*t}()}}var du,pu;lu.bytes=0;const fu=65535,yu=fu-16,gu=Boolean(null===(du=globalThis.process)||void 0===du||null===(pu=du.env)||void 0===pu?void 0:pu.DUMP_SESSION_KEYS),mu=e=>e instanceof Uint8Array,bu=e=>new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4));if(!(68===new Uint8Array(new Uint32Array([287454020]).buffer)[0]))throw new Error("Non little-endian hardware is not supported");function wu(e){if("string"!==typeof e)throw new Error("utf8ToBytes expected string, got ".concat(typeof e));return new Uint8Array((new TextEncoder).encode(e))}function vu(e){if("string"===typeof e&&(e=wu(e)),!mu(e))throw new Error("expected Uint8Array, got ".concat(typeof e));return e}const _u=e=>"[object Object]"===Object.prototype.toString.call(e)&&e.constructor===Object;function Eu(e,t){if(!(e instanceof Uint8Array))throw new Error("Uint8Array expected");if("number"===typeof t&&e.length!==t)throw new Error("Uint8Array length ".concat(t," expected"))}function Su(e,t,r,n){if("function"===typeof e.setBigUint64)return e.setBigUint64(t,r,n);const i=BigInt(32),o=BigInt(4294967295),s=Number(r>>i&o),a=Number(r&o),c=n?4:0,l=n?0:4;e.setUint32(t+c,s,n),e.setUint32(t+l,a,n)}function Au(e){if(!Number.isSafeInteger(e)||e<0)throw new Error("Wrong positive integer: ".concat(e))}function ku(e){if(!(e instanceof Uint8Array))throw new Error("Expected Uint8Array");for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];if(r.length>0&&!r.includes(e.length))throw new Error("Expected Uint8Array of length ".concat(r,", not of length=").concat(e.length))}const Iu={number:Au,bool:function(e){if("boolean"!==typeof e)throw new Error("Expected boolean, not ".concat(e))},bytes:ku,hash:function(e){if("function"!==typeof e||"function"!==typeof e.create)throw new Error("hash must be wrapped by utils.wrapConstructor");Au(e.outputLen),Au(e.blockLen)},exists:function(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")},output:function(e,t){ku(e);const r=t.outputLen;if(e.length<r)throw new Error("digestInto() expects output buffer of length at least ".concat(r))}},Ru=Iu,Pu=(e,t)=>255&e[t++]|(255&e[t++])<<8;class Cu{constructor(e){this.blockLen=16,this.outputLen=16,this.buffer=new Uint8Array(16),this.r=new Uint16Array(10),this.h=new Uint16Array(10),this.pad=new Uint16Array(8),this.pos=0,this.finished=!1,Eu(e=vu(e),32);const t=Pu(e,0),r=Pu(e,2),n=Pu(e,4),i=Pu(e,6),o=Pu(e,8),s=Pu(e,10),a=Pu(e,12),c=Pu(e,14);this.r[0]=8191&t,this.r[1]=8191&(t>>>13|r<<3),this.r[2]=7939&(r>>>10|n<<6),this.r[3]=8191&(n>>>7|i<<9),this.r[4]=255&(i>>>4|o<<12),this.r[5]=o>>>1&8190,this.r[6]=8191&(o>>>14|s<<2),this.r[7]=8065&(s>>>11|a<<5),this.r[8]=8191&(a>>>8|c<<8),this.r[9]=c>>>5&127;for(let l=0;l<8;l++)this.pad[l]=Pu(e,16+2*l)}process(e,t){const r=arguments.length>2&&void 0!==arguments[2]&&arguments[2]?0:2048,{h:n,r:i}=this,o=i[0],s=i[1],a=i[2],c=i[3],l=i[4],u=i[5],h=i[6],d=i[7],p=i[8],f=i[9],y=Pu(e,t+0),g=Pu(e,t+2),m=Pu(e,t+4),b=Pu(e,t+6),w=Pu(e,t+8),v=Pu(e,t+10),_=Pu(e,t+12),E=Pu(e,t+14);let S=n[0]+(8191&y),A=n[1]+(8191&(y>>>13|g<<3)),k=n[2]+(8191&(g>>>10|m<<6)),I=n[3]+(8191&(m>>>7|b<<9)),R=n[4]+(8191&(b>>>4|w<<12)),P=n[5]+(w>>>1&8191),C=n[6]+(8191&(w>>>14|v<<2)),T=n[7]+(8191&(v>>>11|_<<5)),x=n[8]+(8191&(_>>>8|E<<8)),D=n[9]+(E>>>5|r),N=0,L=N+S*o+A*(5*f)+k*(5*p)+I*(5*d)+R*(5*h);N=L>>>13,L&=8191,L+=P*(5*u)+C*(5*l)+T*(5*c)+x*(5*a)+D*(5*s),N+=L>>>13,L&=8191;let B=N+S*s+A*o+k*(5*f)+I*(5*p)+R*(5*d);N=B>>>13,B&=8191,B+=P*(5*h)+C*(5*u)+T*(5*l)+x*(5*c)+D*(5*a),N+=B>>>13,B&=8191;let M=N+S*a+A*s+k*o+I*(5*f)+R*(5*p);N=M>>>13,M&=8191,M+=P*(5*d)+C*(5*h)+T*(5*u)+x*(5*l)+D*(5*c),N+=M>>>13,M&=8191;let O=N+S*c+A*a+k*s+I*o+R*(5*f);N=O>>>13,O&=8191,O+=P*(5*p)+C*(5*d)+T*(5*h)+x*(5*u)+D*(5*l),N+=O>>>13,O&=8191;let U=N+S*l+A*c+k*a+I*s+R*o;N=U>>>13,U&=8191,U+=P*(5*f)+C*(5*p)+T*(5*d)+x*(5*h)+D*(5*u),N+=U>>>13,U&=8191;let K=N+S*u+A*l+k*c+I*a+R*s;N=K>>>13,K&=8191,K+=P*o+C*(5*f)+T*(5*p)+x*(5*d)+D*(5*h),N+=K>>>13,K&=8191;let q=N+S*h+A*u+k*l+I*c+R*a;N=q>>>13,q&=8191,q+=P*s+C*o+T*(5*f)+x*(5*p)+D*(5*d),N+=q>>>13,q&=8191;let F=N+S*d+A*h+k*u+I*l+R*c;N=F>>>13,F&=8191,F+=P*a+C*s+T*o+x*(5*f)+D*(5*p),N+=F>>>13,F&=8191;let V=N+S*p+A*d+k*h+I*u+R*l;N=V>>>13,V&=8191,V+=P*c+C*a+T*s+x*o+D*(5*f),N+=V>>>13,V&=8191;let z=N+S*f+A*p+k*d+I*h+R*u;N=z>>>13,z&=8191,z+=P*l+C*c+T*a+x*s+D*o,N+=z>>>13,z&=8191,N=(N<<2)+N|0,N=N+L|0,L=8191&N,N>>>=13,B+=N,n[0]=L,n[1]=B,n[2]=M,n[3]=O,n[4]=U,n[5]=K,n[6]=q,n[7]=F,n[8]=V,n[9]=z}finalize(){const{h:e,pad:t}=this,r=new Uint16Array(10);let n=e[1]>>>13;e[1]&=8191;for(let s=2;s<10;s++)e[s]+=n,n=e[s]>>>13,e[s]&=8191;e[0]+=5*n,n=e[0]>>>13,e[0]&=8191,e[1]+=n,n=e[1]>>>13,e[1]&=8191,e[2]+=n,r[0]=e[0]+5,n=r[0]>>>13,r[0]&=8191;for(let s=1;s<10;s++)r[s]=e[s]+n,n=r[s]>>>13,r[s]&=8191;r[9]-=8192;let i=(1^n)-1;for(let s=0;s<10;s++)r[s]&=i;i=~i;for(let s=0;s<10;s++)e[s]=e[s]&i|r[s];e[0]=65535&(e[0]|e[1]<<13),e[1]=65535&(e[1]>>>3|e[2]<<10),e[2]=65535&(e[2]>>>6|e[3]<<7),e[3]=65535&(e[3]>>>9|e[4]<<4),e[4]=65535&(e[4]>>>12|e[5]<<1|e[6]<<14),e[5]=65535&(e[6]>>>2|e[7]<<11),e[6]=65535&(e[7]>>>5|e[8]<<8),e[7]=65535&(e[8]>>>8|e[9]<<5);let o=e[0]+t[0];e[0]=65535&o;for(let s=1;s<8;s++)o=(e[s]+t[s]|0)+(o>>>16)|0,e[s]=65535&o}update(e){Ru.exists(this);const{buffer:t,blockLen:r}=this,n=(e=vu(e)).length;for(let i=0;i<n;){const o=Math.min(r-this.pos,n-i);if(o!==r)t.set(e.subarray(i,i+o),this.pos),this.pos+=o,i+=o,this.pos===r&&(this.process(t,0,!1),this.pos=0);else for(;r<=n-i;i+=r)this.process(e,i)}return this}destroy(){this.h.fill(0),this.r.fill(0),this.buffer.fill(0),this.pad.fill(0)}digestInto(e){Ru.exists(this),Ru.output(e,this),this.finished=!0;const{buffer:t,h:r}=this;let{pos:n}=this;if(n){for(t[n++]=1;n<16;n++)t[n]=0;this.process(t,0,!0)}this.finalize();let i=0;for(let o=0;o<8;o++)e[i++]=r[o]>>>0,e[i++]=r[o]>>>8;return e}digest(){const{buffer:e,outputLen:t}=this;this.digestInto(e);const r=e.slice(0,t);return this.destroy(),r}}const Tu=function(e){const t=(t,r)=>e(r).update(vu(t)).digest(),r=e(new Uint8Array(32));return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=t=>e(t),t}((e=>new Cu(e))),xu=wu("expand 16-byte k"),Du=wu("expand 32-byte k"),Nu=bu(xu),Lu=bu(Du),Bu=e=>!(e.byteOffset%4),Mu=e=>{const{core:t,rounds:r,counterRight:n,counterLen:i,allow128bitKeys:o,extendNonceFn:s,blockLen:a}=function(e,t){if(void 0!==t&&("object"!==typeof t||!_u(t)))throw new Error("options must be object or undefined");return Object.assign(e,t)}({rounds:20,counterRight:!1,counterLen:8,allow128bitKeys:!0,blockLen:64},e);Ru.number(i),Ru.number(r),Ru.number(a),Ru.bool(n),Ru.bool(o);const c=a/4;if(a%4!==0)throw new Error("Salsa/ChaCha: blockLen must be aligned to 4 bytes");return function(e,l,u,h){let d=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0;if(Ru.bytes(e),Ru.bytes(l),Ru.bytes(u),h||(h=new Uint8Array(u.length)),Ru.bytes(h),Ru.number(d),d<0||d>=2**32-1)throw new Error("Salsa/ChaCha: counter overflow");if(h.length<u.length)throw new Error("Salsa/ChaCha: output (".concat(h.length,") is shorter than data (").concat(u.length,")"));const p=[];let f,y;if(32===e.length)Bu(e)?f=e:(f=e.slice(),p.push(f)),y=Lu;else{if(16!==e.length||!o)throw new Error("Salsa/ChaCha: invalid 32-byte key, got length=".concat(e.length));f=new Uint8Array(32),f.set(e),f.set(e,16),y=Nu,p.push(f)}if(Bu(l)||(l=l.slice(),p.push(l)),s){if(l.length<=16)throw new Error("Salsa/ChaCha: extended nonce must be bigger than 16 bytes");f=s(y,f,l.subarray(0,16),new Uint8Array(32)),p.push(f),l=l.subarray(16)}const g=16-i;if(l.length!==g)throw new Error("Salsa/ChaCha: nonce must be ".concat(g," or 16 bytes"));if(12!==g){const e=new Uint8Array(12);e.set(l,n?0:12-l.length),p.push(l=e)}const m=new Uint8Array(a),b=bu(m),w=bu(f),v=bu(l),_=Bu(u)&&bu(u),E=Bu(h)&&bu(h);p.push(b);const S=u.length;for(let n=0,i=d;n<S;i++){if(t(y,w,v,b,i,r),i>=2**32-1)throw new Error("Salsa/ChaCha: counter overflow");const e=Math.min(a,S-n);if(e===a&&E&&_){const e=n/4;if(n%4!==0)throw new Error("Salsa/ChaCha: invalid block position");for(let t=0;t<c;t++)E[e+t]=_[e+t]^b[t];n+=a}else{for(let t=0;t<e;t++)h[n+t]=u[n+t]^m[t];n+=e}}for(let t=0;t<p.length;t++)p[t].fill(0);return h}},Ou=(e,t)=>e<<t|e>>>32-t;function Uu(e,t,r,n,i){let o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:20,s=e[0],a=e[1],c=e[2],l=e[3],u=t[0],h=t[1],d=t[2],p=t[3],f=t[4],y=t[5],g=t[6],m=t[7],b=i,w=r[0],v=r[1],_=r[2],E=s,S=a,A=c,k=l,I=u,R=h,P=d,C=p,T=f,x=y,D=g,N=m,L=b,B=w,M=v,O=_;for(let K=0;K<o;K+=2)E=E+I|0,L=Ou(L^E,16),T=T+L|0,I=Ou(I^T,12),E=E+I|0,L=Ou(L^E,8),T=T+L|0,I=Ou(I^T,7),S=S+R|0,B=Ou(B^S,16),x=x+B|0,R=Ou(R^x,12),S=S+R|0,B=Ou(B^S,8),x=x+B|0,R=Ou(R^x,7),A=A+P|0,M=Ou(M^A,16),D=D+M|0,P=Ou(P^D,12),A=A+P|0,M=Ou(M^A,8),D=D+M|0,P=Ou(P^D,7),k=k+C|0,O=Ou(O^k,16),N=N+O|0,C=Ou(C^N,12),k=k+C|0,O=Ou(O^k,8),N=N+O|0,C=Ou(C^N,7),E=E+R|0,O=Ou(O^E,16),D=D+O|0,R=Ou(R^D,12),E=E+R|0,O=Ou(O^E,8),D=D+O|0,R=Ou(R^D,7),S=S+P|0,L=Ou(L^S,16),N=N+L|0,P=Ou(P^N,12),S=S+P|0,L=Ou(L^S,8),N=N+L|0,P=Ou(P^N,7),A=A+C|0,B=Ou(B^A,16),T=T+B|0,C=Ou(C^T,12),A=A+C|0,B=Ou(B^A,8),T=T+B|0,C=Ou(C^T,7),k=k+I|0,M=Ou(M^k,16),x=x+M|0,I=Ou(I^x,12),k=k+I|0,M=Ou(M^k,8),x=x+M|0,I=Ou(I^x,7);let U=0;n[U++]=s+E|0,n[U++]=a+S|0,n[U++]=c+A|0,n[U++]=l+k|0,n[U++]=u+I|0,n[U++]=h+R|0,n[U++]=d+P|0,n[U++]=p+C|0,n[U++]=f+T|0,n[U++]=y+x|0,n[U++]=g+D|0,n[U++]=m+N|0,n[U++]=b+L|0,n[U++]=w+B|0,n[U++]=v+M|0,n[U++]=_+O|0}const Ku=Mu({core:Uu,counterRight:!1,counterLen:4,allow128bitKeys:!1}),qu=new Uint8Array(16),Fu=(e,t)=>{e.update(t);const r=t.length%16;r&&e.update(qu.subarray(r))},Vu=(e,t,r,n,i)=>{const o=e(t,r,new Uint8Array(32)),s=Tu.create(o);i&&Fu(s,i),Fu(s,n);const a=new Uint8Array(16),c=(l=a,new DataView(l.buffer,l.byteOffset,l.byteLength));var l;Su(c,0,BigInt(i?i.length:0),!0),Su(c,8,BigInt(n.length),!0),s.update(a);const u=s.digest();return o.fill(0),u},zu=e=>(t,r,n)=>{const i=16;return Eu(t,32),Eu(r),{tagLength:i,encrypt:(o,s)=>{const a=o.length,c=a+i;s?Eu(s,c):s=new Uint8Array(c),e(t,r,o,s,1);const l=Vu(e,t,r,s.subarray(0,-16),n);return s.set(l,a),s},decrypt:(o,s)=>{const a=o.length,c=a-i;if(a<i)throw new Error("encrypted data must be at least ".concat(i," bytes"));s?Eu(s,c):s=new Uint8Array(c);const l=o.subarray(0,-16);if(!function(e,t){if(e.length!==t.length)throw new Error("equalBytes: Different size of Uint8Arrays");let r=!0;for(let n=0;n<e.length;n++)r&&(r=e[n]===t[n]);return r}(o.subarray(-16),Vu(e,t,r,l,n)))throw new Error("invalid tag");return e(t,r,l,s,1),s}}},ju=zu(Ku);function Hu(e){if(!Number.isSafeInteger(e)||e<0)throw new Error("Wrong positive integer: ".concat(e))}function Gu(e){if(!(e instanceof Uint8Array))throw new Error("Expected Uint8Array");for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];if(r.length>0&&!r.includes(e.length))throw new Error("Expected Uint8Array of length ".concat(r,", not of length=").concat(e.length))}function Wu(e){if("function"!==typeof e||"function"!==typeof e.create)throw new Error("Hash should be wrapped by utils.wrapConstructor");Hu(e.outputLen),Hu(e.blockLen)}function Yu(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function Qu(e,t){Gu(e);const r=t.outputLen;if(e.length<r)throw new Error("digestInto() expects output buffer of length at least ".concat(r))}const Xu="object"===typeof globalThis&&"crypto"in globalThis?globalThis.crypto:void 0,Ju=e=>e instanceof Uint8Array,Zu=e=>new DataView(e.buffer,e.byteOffset,e.byteLength),$u=(e,t)=>e<<32-t|e>>>t;if(!(68===new Uint8Array(new Uint32Array([287454020]).buffer)[0]))throw new Error("Non little-endian hardware is not supported");function eh(e){if("string"!==typeof e)throw new Error("utf8ToBytes expected string, got ".concat(typeof e));return new Uint8Array((new TextEncoder).encode(e))}function th(e){if("string"===typeof e&&(e=eh(e)),!Ju(e))throw new Error("expected Uint8Array, got ".concat(typeof e));return e}function rh(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];const n=new Uint8Array(t.reduce(((e,t)=>e+t.length),0));let i=0;return t.forEach((e=>{if(!Ju(e))throw new Error("Uint8Array expected");n.set(e,i),i+=e.length})),n}class nh{clone(){return this._cloneInto()}}function ih(e){const t=t=>e().update(th(t)).digest(),r=e();return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=()=>e(),t}function oh(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:32;if(Xu&&"function"===typeof Xu.getRandomValues)return Xu.getRandomValues(new Uint8Array(e));throw new Error("crypto.getRandomValues must be defined")}class sh extends nh{constructor(e,t,r,n){super(),this.blockLen=e,this.outputLen=t,this.padOffset=r,this.isLE=n,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(e),this.view=Zu(this.buffer)}update(e){Yu(this);const{view:t,buffer:r,blockLen:n}=this,i=(e=th(e)).length;for(let o=0;o<i;){const s=Math.min(n-this.pos,i-o);if(s!==n)r.set(e.subarray(o,o+s),this.pos),this.pos+=s,o+=s,this.pos===n&&(this.process(t,0),this.pos=0);else{const t=Zu(e);for(;n<=i-o;o+=n)this.process(t,o)}}return this.length+=e.length,this.roundClean(),this}digestInto(e){Yu(this),Qu(e,this),this.finished=!0;const{buffer:t,view:r,blockLen:n,isLE:i}=this;let{pos:o}=this;t[o++]=128,this.buffer.subarray(o).fill(0),this.padOffset>n-o&&(this.process(r,0),o=0);for(let u=o;u<n;u++)t[u]=0;!function(e,t,r,n){if("function"===typeof e.setBigUint64)return e.setBigUint64(t,r,n);const i=BigInt(32),o=BigInt(4294967295),s=Number(r>>i&o),a=Number(r&o),c=n?4:0,l=n?0:4;e.setUint32(t+c,s,n),e.setUint32(t+l,a,n)}(r,n-8,BigInt(8*this.length),i),this.process(r,0);const s=Zu(e),a=this.outputLen;if(a%4)throw new Error("_sha2: outputLen should be aligned to 32bit");const c=a/4,l=this.get();if(c>l.length)throw new Error("_sha2: outputLen bigger than state");for(let u=0;u<c;u++)s.setUint32(4*u,l[u],i)}digest(){const{buffer:e,outputLen:t}=this;this.digestInto(e);const r=e.slice(0,t);return this.destroy(),r}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());const{blockLen:t,buffer:r,length:n,finished:i,destroyed:o,pos:s}=this;return e.length=n,e.pos=s,e.finished=i,e.destroyed=o,n%t&&e.buffer.set(r),e}}const ah=BigInt(2**32-1),ch=BigInt(32);function lh(e){return arguments.length>1&&void 0!==arguments[1]&&arguments[1]?{h:Number(e&ah),l:Number(e>>ch&ah)}:{h:0|Number(e>>ch&ah),l:0|Number(e&ah)}}const uh={fromBig:lh,split:function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=new Uint32Array(e.length),n=new Uint32Array(e.length);for(let i=0;i<e.length;i++){const{h:o,l:s}=lh(e[i],t);[r[i],n[i]]=[o,s]}return[r,n]},toBig:(e,t)=>BigInt(e>>>0)<<ch|BigInt(t>>>0),shrSH:(e,t,r)=>e>>>r,shrSL:(e,t,r)=>e<<32-r|t>>>r,rotrSH:(e,t,r)=>e>>>r|t<<32-r,rotrSL:(e,t,r)=>e<<32-r|t>>>r,rotrBH:(e,t,r)=>e<<64-r|t>>>r-32,rotrBL:(e,t,r)=>e>>>r-32|t<<64-r,rotr32H:(e,t)=>t,rotr32L:(e,t)=>e,rotlSH:(e,t,r)=>e<<r|t>>>32-r,rotlSL:(e,t,r)=>t<<r|e>>>32-r,rotlBH:(e,t,r)=>t<<r-32|e>>>64-r,rotlBL:(e,t,r)=>e<<r-32|t>>>64-r,add:function(e,t,r,n){const i=(t>>>0)+(n>>>0);return{h:e+r+(i/2**32|0)|0,l:0|i}},add3L:(e,t,r)=>(e>>>0)+(t>>>0)+(r>>>0),add3H:(e,t,r,n)=>t+r+n+(e/2**32|0)|0,add4L:(e,t,r,n)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0),add4H:(e,t,r,n,i)=>t+r+n+i+(e/2**32|0)|0,add5H:(e,t,r,n,i,o)=>t+r+n+i+o+(e/2**32|0)|0,add5L:(e,t,r,n,i)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0)+(i>>>0)},[hh,dh]=(()=>uh.split(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map((e=>BigInt(e)))))(),ph=new Uint32Array(80),fh=new Uint32Array(80);class yh extends sh{constructor(){super(128,64,16,!1),this.Ah=1779033703,this.Al=-205731576,this.Bh=-1150833019,this.Bl=-2067093701,this.Ch=1013904242,this.Cl=-23791573,this.Dh=-1521486534,this.Dl=1595750129,this.Eh=1359893119,this.El=-1377402159,this.Fh=-1694144372,this.Fl=725511199,this.Gh=528734635,this.Gl=-79577749,this.Hh=1541459225,this.Hl=327033209}get(){const{Ah:e,Al:t,Bh:r,Bl:n,Ch:i,Cl:o,Dh:s,Dl:a,Eh:c,El:l,Fh:u,Fl:h,Gh:d,Gl:p,Hh:f,Hl:y}=this;return[e,t,r,n,i,o,s,a,c,l,u,h,d,p,f,y]}set(e,t,r,n,i,o,s,a,c,l,u,h,d,p,f,y){this.Ah=0|e,this.Al=0|t,this.Bh=0|r,this.Bl=0|n,this.Ch=0|i,this.Cl=0|o,this.Dh=0|s,this.Dl=0|a,this.Eh=0|c,this.El=0|l,this.Fh=0|u,this.Fl=0|h,this.Gh=0|d,this.Gl=0|p,this.Hh=0|f,this.Hl=0|y}process(e,t){for(let b=0;b<16;b++,t+=4)ph[b]=e.getUint32(t),fh[b]=e.getUint32(t+=4);for(let b=16;b<80;b++){const e=0|ph[b-15],t=0|fh[b-15],r=uh.rotrSH(e,t,1)^uh.rotrSH(e,t,8)^uh.shrSH(e,t,7),n=uh.rotrSL(e,t,1)^uh.rotrSL(e,t,8)^uh.shrSL(e,t,7),i=0|ph[b-2],o=0|fh[b-2],s=uh.rotrSH(i,o,19)^uh.rotrBH(i,o,61)^uh.shrSH(i,o,6),a=uh.rotrSL(i,o,19)^uh.rotrBL(i,o,61)^uh.shrSL(i,o,6),c=uh.add4L(n,a,fh[b-7],fh[b-16]),l=uh.add4H(c,r,s,ph[b-7],ph[b-16]);ph[b]=0|l,fh[b]=0|c}let{Ah:r,Al:n,Bh:i,Bl:o,Ch:s,Cl:a,Dh:c,Dl:l,Eh:u,El:h,Fh:d,Fl:p,Gh:f,Gl:y,Hh:g,Hl:m}=this;for(let b=0;b<80;b++){const e=uh.rotrSH(u,h,14)^uh.rotrSH(u,h,18)^uh.rotrBH(u,h,41),t=uh.rotrSL(u,h,14)^uh.rotrSL(u,h,18)^uh.rotrBL(u,h,41),w=u&d^~u&f,v=h&p^~h&y,_=uh.add5L(m,t,v,dh[b],fh[b]),E=uh.add5H(_,g,e,w,hh[b],ph[b]),S=0|_,A=uh.rotrSH(r,n,28)^uh.rotrBH(r,n,34)^uh.rotrBH(r,n,39),k=uh.rotrSL(r,n,28)^uh.rotrBL(r,n,34)^uh.rotrBL(r,n,39),I=r&i^r&s^i&s,R=n&o^n&a^o&a;g=0|f,m=0|y,f=0|d,y=0|p,d=0|u,p=0|h,({h:u,l:h}=uh.add(0|c,0|l,0|E,0|S)),c=0|s,l=0|a,s=0|i,a=0|o,i=0|r,o=0|n;const P=uh.add3L(S,k,R);r=uh.add3H(P,E,A,I),n=0|P}({h:r,l:n}=uh.add(0|this.Ah,0|this.Al,0|r,0|n)),({h:i,l:o}=uh.add(0|this.Bh,0|this.Bl,0|i,0|o)),({h:s,l:a}=uh.add(0|this.Ch,0|this.Cl,0|s,0|a)),({h:c,l:l}=uh.add(0|this.Dh,0|this.Dl,0|c,0|l)),({h:u,l:h}=uh.add(0|this.Eh,0|this.El,0|u,0|h)),({h:d,l:p}=uh.add(0|this.Fh,0|this.Fl,0|d,0|p)),({h:f,l:y}=uh.add(0|this.Gh,0|this.Gl,0|f,0|y)),({h:g,l:m}=uh.add(0|this.Hh,0|this.Hl,0|g,0|m)),this.set(r,n,i,o,s,a,c,l,u,h,d,p,f,y,g,m)}roundClean(){ph.fill(0),fh.fill(0)}destroy(){this.buffer.fill(0),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}const gh=ih((()=>new yh)),mh=BigInt(0),bh=BigInt(1),wh=BigInt(2),vh=e=>e instanceof Uint8Array,_h=Array.from({length:256},((e,t)=>t.toString(16).padStart(2,"0")));function Eh(e){if(!vh(e))throw new Error("Uint8Array expected");let t="";for(let r=0;r<e.length;r++)t+=_h[e[r]];return t}function Sh(e){const t=e.toString(16);return 1&t.length?"0".concat(t):t}function Ah(e){if("string"!==typeof e)throw new Error("hex string expected, got "+typeof e);return BigInt(""===e?"0":"0x".concat(e))}function kh(e){if("string"!==typeof e)throw new Error("hex string expected, got "+typeof e);const t=e.length;if(t%2)throw new Error("padded hex string expected, got unpadded hex of length "+t);const r=new Uint8Array(t/2);for(let n=0;n<r.length;n++){const t=2*n,i=e.slice(t,t+2),o=Number.parseInt(i,16);if(Number.isNaN(o)||o<0)throw new Error("Invalid byte sequence");r[n]=o}return r}function Ih(e){return Ah(Eh(e))}function Rh(e){if(!vh(e))throw new Error("Uint8Array expected");return Ah(Eh(Uint8Array.from(e).reverse()))}function Ph(e,t){return kh(e.toString(16).padStart(2*t,"0"))}function Ch(e,t){return Ph(e,t).reverse()}function Th(e){return kh(Sh(e))}function xh(e,t,r){let n;if("string"===typeof t)try{n=kh(t)}catch(o){throw new Error("".concat(e,' must be valid hex string, got "').concat(t,'". Cause: ').concat(o))}else{if(!vh(t))throw new Error("".concat(e," must be hex string or Uint8Array"));n=Uint8Array.from(t)}const i=n.length;if("number"===typeof r&&i!==r)throw new Error("".concat(e," expected ").concat(r," bytes, got ").concat(i));return n}function Dh(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];const n=new Uint8Array(t.reduce(((e,t)=>e+t.length),0));let i=0;return t.forEach((e=>{if(!vh(e))throw new Error("Uint8Array expected");n.set(e,i),i+=e.length})),n}function Nh(e,t){if(e.length!==t.length)return!1;for(let r=0;r<e.length;r++)if(e[r]!==t[r])return!1;return!0}function Lh(e){if("string"!==typeof e)throw new Error("utf8ToBytes expected string, got ".concat(typeof e));return new Uint8Array((new TextEncoder).encode(e))}function Bh(e){let t;for(t=0;e>mh;e>>=bh,t+=1);return t}function Mh(e,t){return e>>BigInt(t)&bh}const Oh=(e,t,r)=>e|(r?bh:mh)<<BigInt(t),Uh=e=>(wh<<BigInt(e-1))-bh,Kh=e=>new Uint8Array(e),qh=e=>Uint8Array.from(e);function Fh(e,t,r){if("number"!==typeof e||e<2)throw new Error("hashLen must be a number");if("number"!==typeof t||t<2)throw new Error("qByteLen must be a number");if("function"!==typeof r)throw new Error("hmacFn must be a function");let n=Kh(e),i=Kh(e),o=0;const s=()=>{n.fill(1),i.fill(0),o=0},a=function(){for(var e=arguments.length,t=new Array(e),o=0;o<e;o++)t[o]=arguments[o];return r(i,n,...t)},c=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Kh();i=a(qh([0]),e),n=a(),0!==e.length&&(i=a(qh([1]),e),n=a())},l=()=>{if(o++>=1e3)throw new Error("drbg: tried 1000 values");let e=0;const r=[];for(;e<t;){n=a();const t=n.slice();r.push(t),e+=n.length}return Dh(...r)};return(e,t)=>{let r;for(s(),c(e);!(r=t(l()));)c();return s(),r}}const Vh={bigint:e=>"bigint"===typeof e,function:e=>"function"===typeof e,boolean:e=>"boolean"===typeof e,string:e=>"string"===typeof e,stringOrUint8Array:e=>"string"===typeof e||e instanceof Uint8Array,isSafeInteger:e=>Number.isSafeInteger(e),array:e=>Array.isArray(e),field:(e,t)=>t.Fp.isValid(e),hash:e=>"function"===typeof e&&Number.isSafeInteger(e.outputLen)};function zh(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const n=(t,r,n)=>{const i=Vh[r];if("function"!==typeof i)throw new Error('Invalid validator "'.concat(r,'", expected function'));const o=e[t];if((!n||void 0!==o)&&!i(o,e))throw new Error("Invalid param ".concat(String(t),"=").concat(o," (").concat(typeof o,"), expected ").concat(r))};for(const[i,o]of Object.entries(t))n(i,o,!1);for(const[i,o]of Object.entries(r))n(i,o,!0);return e}const jh=BigInt(0),Hh=BigInt(1),Gh=BigInt(2),Wh=BigInt(3),Yh=BigInt(4),Qh=BigInt(5),Xh=BigInt(8);BigInt(9),BigInt(16);function Jh(e,t){const r=e%t;return r>=jh?r:t+r}function Zh(e,t,r){if(r<=jh||t<jh)throw new Error("Expected power/modulo > 0");if(r===Hh)return jh;let n=Hh;for(;t>jh;)t&Hh&&(n=n*e%r),e=e*e%r,t>>=Hh;return n}function $h(e,t,r){let n=e;for(;t-- >jh;)n*=n,n%=r;return n}function ed(e,t){if(e===jh||t<=jh)throw new Error("invert: expected positive integers, got n=".concat(e," mod=").concat(t));let r=Jh(e,t),n=t,i=jh,o=Hh,s=Hh,a=jh;for(;r!==jh;){const e=n/r,t=n%r,c=i-s*e,l=o-a*e;n=r,r=t,i=s,o=a,s=c,a=l}if(n!==Hh)throw new Error("invert: does not exist");return Jh(i,t)}function td(e){if(e%Yh===Wh){const t=(e+Hh)/Yh;return function(e,r){const n=e.pow(r,t);if(!e.eql(e.sqr(n),r))throw new Error("Cannot find square root");return n}}if(e%Xh===Qh){const t=(e-Qh)/Xh;return function(e,r){const n=e.mul(r,Gh),i=e.pow(n,t),o=e.mul(r,i),s=e.mul(e.mul(o,Gh),i),a=e.mul(o,e.sub(s,e.ONE));if(!e.eql(e.sqr(a),r))throw new Error("Cannot find square root");return a}}return function(e){const t=(e-Hh)/Gh;let r,n,i;for(r=e-Hh,n=0;r%Gh===jh;r/=Gh,n++);for(i=Gh;i<e&&Zh(i,t,e)!==e-Hh;i++);if(1===n){const t=(e+Hh)/Yh;return function(e,r){const n=e.pow(r,t);if(!e.eql(e.sqr(n),r))throw new Error("Cannot find square root");return n}}const o=(r+Hh)/Gh;return function(e,s){if(e.pow(s,t)===e.neg(e.ONE))throw new Error("Cannot find square root");let a=n,c=e.pow(e.mul(e.ONE,i),r),l=e.pow(s,o),u=e.pow(s,r);for(;!e.eql(u,e.ONE);){if(e.eql(u,e.ZERO))return e.ZERO;let t=1;for(let n=e.sqr(u);t<a&&!e.eql(n,e.ONE);t++)n=e.sqr(n);const r=e.pow(c,Hh<<BigInt(a-t-1));c=e.sqr(r),l=e.mul(l,r),u=e.mul(u,c),a=t}return l}}(e)}const rd=(e,t)=>(Jh(e,t)&Hh)===Hh,nd=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function id(e,t){const r=void 0!==t?t:e.toString(2).length;return{nBitLength:r,nByteLength:Math.ceil(r/8)}}function od(e,t){let r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};if(e<=jh)throw new Error("Expected Field ORDER > 0, got ".concat(e));const{nBitLength:i,nByteLength:o}=id(e,t);if(o>2048)throw new Error("Field lengths over 2048 bytes are not supported");const s=td(e),a=Object.freeze({ORDER:e,BITS:i,BYTES:o,MASK:Uh(i),ZERO:jh,ONE:Hh,create:t=>Jh(t,e),isValid:t=>{if("bigint"!==typeof t)throw new Error("Invalid field element: expected bigint, got ".concat(typeof t));return jh<=t&&t<e},is0:e=>e===jh,isOdd:e=>(e&Hh)===Hh,neg:t=>Jh(-t,e),eql:(e,t)=>e===t,sqr:t=>Jh(t*t,e),add:(t,r)=>Jh(t+r,e),sub:(t,r)=>Jh(t-r,e),mul:(t,r)=>Jh(t*r,e),pow:(e,t)=>function(e,t,r){if(r<jh)throw new Error("Expected power > 0");if(r===jh)return e.ONE;if(r===Hh)return t;let n=e.ONE,i=t;for(;r>jh;)r&Hh&&(n=e.mul(n,i)),i=e.sqr(i),r>>=Hh;return n}(a,e,t),div:(t,r)=>Jh(t*ed(r,e),e),sqrN:e=>e*e,addN:(e,t)=>e+t,subN:(e,t)=>e-t,mulN:(e,t)=>e*t,inv:t=>ed(t,e),sqrt:n.sqrt||(e=>s(a,e)),invertBatch:e=>function(e,t){const r=new Array(t.length),n=t.reduce(((t,n,i)=>e.is0(n)?t:(r[i]=t,e.mul(t,n))),e.ONE),i=e.inv(n);return t.reduceRight(((t,n,i)=>e.is0(n)?t:(r[i]=e.mul(t,r[i]),e.mul(t,n))),i),r}(a,e),cmov:(e,t,r)=>r?t:e,toBytes:e=>r?Ch(e,o):Ph(e,o),fromBytes:e=>{if(e.length!==o)throw new Error("Fp.fromBytes: expected ".concat(o,", got ").concat(e.length));return r?Rh(e):Ih(e)}});return Object.freeze(a)}function sd(e){if("bigint"!==typeof e)throw new Error("field order must be bigint");const t=e.toString(2).length;return Math.ceil(t/8)}function ad(e){const t=sd(e);return t+Math.ceil(t/2)}const cd=BigInt(0),ld=BigInt(1);function ud(e,t){const r=(e,t)=>{const r=t.negate();return e?r:t},n=e=>({windows:Math.ceil(t/e)+1,windowSize:2**(e-1)});return{constTimeNegate:r,unsafeLadder(t,r){let n=e.ZERO,i=t;for(;r>cd;)r&ld&&(n=n.add(i)),i=i.double(),r>>=ld;return n},precomputeWindow(e,t){const{windows:r,windowSize:i}=n(t),o=[];let s=e,a=s;for(let n=0;n<r;n++){a=s,o.push(a);for(let e=1;e<i;e++)a=a.add(s),o.push(a);s=a.double()}return o},wNAF(t,i,o){const{windows:s,windowSize:a}=n(t);let c=e.ZERO,l=e.BASE;const u=BigInt(2**t-1),h=2**t,d=BigInt(t);for(let e=0;e<s;e++){const t=e*a;let n=Number(o&u);o>>=d,n>a&&(n-=h,o+=ld);const s=t,p=t+Math.abs(n)-1,f=e%2!==0,y=n<0;0===n?l=l.add(r(f,i[s])):c=c.add(r(y,i[p]))}return{p:c,f:l}},wNAFCached(e,t,r,n){const i=e._WINDOW_SIZE||1;let o=t.get(e);return o||(o=this.precomputeWindow(e,i),1!==i&&t.set(e,n(o))),this.wNAF(i,o,r)}}}function hd(e){return function(e){const t=nd.reduce(((e,t)=>(e[t]="function",e)),{ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"});zh(e,t)}(e.Fp),zh(e,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...id(e.n,e.nBitLength),...e,p:e.Fp.ORDER})}const dd=BigInt(0),pd=BigInt(1),fd=BigInt(2),yd=BigInt(8),gd={zip215:!0};function md(e){const t=function(e){const t=hd(e);return zh(e,{hash:"function",a:"bigint",d:"bigint",randomBytes:"function"},{adjustScalarBytes:"function",domain:"function",uvRatio:"function",mapToCurve:"function"}),Object.freeze({...t})}(e),{Fp:r,n:n,prehash:i,hash:o,randomBytes:s,nByteLength:a,h:c}=t,l=fd<<BigInt(8*a)-pd,u=r.create,h=t.uvRatio||((e,t)=>{try{return{isValid:!0,value:r.sqrt(e*r.inv(t))}}catch(n){return{isValid:!1,value:dd}}}),d=t.adjustScalarBytes||(e=>e),p=t.domain||((e,t,r)=>{if(t.length||r)throw new Error("Contexts/pre-hash are not supported");return e}),f=e=>"bigint"===typeof e&&dd<e,y=(e,t)=>f(e)&&f(t)&&e<t,g=e=>e===dd||y(e,l);function m(e,t){if(y(e,t))return e;throw new Error("Expected valid scalar < ".concat(t,", got ").concat(typeof e," ").concat(e))}function b(e){return e===dd?e:m(e,n)}const w=new Map;function v(e){if(!(e instanceof _))throw new Error("ExtendedPoint expected")}class _{constructor(e,t,r,n){if(this.ex=e,this.ey=t,this.ez=r,this.et=n,!g(e))throw new Error("x required");if(!g(t))throw new Error("y required");if(!g(r))throw new Error("z required");if(!g(n))throw new Error("t required")}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static fromAffine(e){if(e instanceof _)throw new Error("extended point not allowed");const{x:t,y:r}=e||{};if(!g(t)||!g(r))throw new Error("invalid affine point");return new _(t,r,pd,u(t*r))}static normalizeZ(e){const t=r.invertBatch(e.map((e=>e.ez)));return e.map(((e,r)=>e.toAffine(t[r]))).map(_.fromAffine)}_setWindowSize(e){this._WINDOW_SIZE=e,w.delete(this)}assertValidity(){const{a:e,d:r}=t;if(this.is0())throw new Error("bad point: ZERO");const{ex:n,ey:i,ez:o,et:s}=this,a=u(n*n),c=u(i*i),l=u(o*o),h=u(l*l),d=u(a*e);if(u(l*u(d+c))!==u(h+u(r*u(a*c))))throw new Error("bad point: equation left != right (1)");if(u(n*i)!==u(o*s))throw new Error("bad point: equation left != right (2)")}equals(e){v(e);const{ex:t,ey:r,ez:n}=this,{ex:i,ey:o,ez:s}=e,a=u(t*s),c=u(i*n),l=u(r*s),h=u(o*n);return a===c&&l===h}is0(){return this.equals(_.ZERO)}negate(){return new _(u(-this.ex),this.ey,this.ez,u(-this.et))}double(){const{a:e}=t,{ex:r,ey:n,ez:i}=this,o=u(r*r),s=u(n*n),a=u(fd*u(i*i)),c=u(e*o),l=r+n,h=u(u(l*l)-o-s),d=c+s,p=d-a,f=c-s,y=u(h*p),g=u(d*f),m=u(h*f),b=u(p*d);return new _(y,g,b,m)}add(e){v(e);const{a:r,d:n}=t,{ex:i,ey:o,ez:s,et:a}=this,{ex:c,ey:l,ez:h,et:d}=e;if(r===BigInt(-1)){const e=u((o-i)*(l+c)),t=u((o+i)*(l-c)),r=u(t-e);if(r===dd)return this.double();const n=u(s*fd*d),p=u(a*fd*h),f=p+n,y=t+e,g=p-n,m=u(f*r),b=u(y*g),w=u(f*g),v=u(r*y);return new _(m,b,v,w)}const p=u(i*c),f=u(o*l),y=u(a*n*d),g=u(s*h),m=u((i+o)*(c+l)-p-f),b=g-y,w=g+y,E=u(f-r*p),S=u(m*b),A=u(w*E),k=u(m*E),I=u(b*w);return new _(S,A,I,k)}subtract(e){return this.add(e.negate())}wNAF(e){return A.wNAFCached(this,w,e,_.normalizeZ)}multiply(e){const{p:t,f:r}=this.wNAF(m(e,n));return _.normalizeZ([t,r])[0]}multiplyUnsafe(e){let t=b(e);return t===dd?S:this.equals(S)||t===pd?this:this.equals(E)?this.wNAF(t).p:A.unsafeLadder(this,t)}isSmallOrder(){return this.multiplyUnsafe(c).is0()}isTorsionFree(){return A.unsafeLadder(this,n).is0()}toAffine(e){const{ex:t,ey:n,ez:i}=this,o=this.is0();null==e&&(e=o?yd:r.inv(i));const s=u(t*e),a=u(n*e),c=u(i*e);if(o)return{x:dd,y:pd};if(c!==pd)throw new Error("invZ was invalid");return{x:s,y:a}}clearCofactor(){const{h:e}=t;return e===pd?this:this.multiplyUnsafe(e)}static fromHex(e){let n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];const{d:i,a:o}=t,s=r.BYTES,a=(e=xh("pointHex",e,s)).slice(),c=e[s-1];a[s-1]=-129&c;const d=Rh(a);d===dd||m(d,n?l:r.ORDER);const p=u(d*d),f=u(p-pd),y=u(i*p-o);let{isValid:g,value:b}=h(f,y);if(!g)throw new Error("Point.fromHex: invalid y coordinate");const w=(b&pd)===pd,v=0!==(128&c);if(!n&&b===dd&&v)throw new Error("Point.fromHex: x=0 and x_0=1");return v!==w&&(b=u(-b)),_.fromAffine({x:b,y:d})}static fromPrivateKey(e){return R(e).point}toRawBytes(){const{x:e,y:t}=this.toAffine(),n=Ch(t,r.BYTES);return n[n.length-1]|=e&pd?128:0,n}toHex(){return Eh(this.toRawBytes())}}_.BASE=new _(t.Gx,t.Gy,pd,u(t.Gx*t.Gy)),_.ZERO=new _(dd,pd,pd,dd);const{BASE:E,ZERO:S}=_,A=ud(_,8*a);function k(e){return Jh(e,n)}function I(e){return k(Rh(e))}function R(e){const t=a;e=xh("private key",e,t);const r=xh("hashed private key",o(e),2*t),n=d(r.slice(0,t)),i=r.slice(t,2*t),s=I(n),c=E.multiply(s),l=c.toRawBytes();return{head:n,prefix:i,scalar:s,point:c,pointBytes:l}}function P(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new Uint8Array;for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];const s=Dh(...r);return I(o(p(s,xh("context",e),!!i)))}const C=gd;E._setWindowSize(8);const T={getExtendedPublicKey:R,randomPrivateKey:()=>s(r.BYTES),precompute(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:8,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:_.BASE;return t._setWindowSize(e),t.multiply(BigInt(3)),t}};return{CURVE:t,getPublicKey:function(e){return R(e).pointBytes},sign:function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};e=xh("message",e),i&&(e=i(e));const{prefix:o,scalar:s,pointBytes:c}=R(t),l=P(n.context,o,e),u=E.multiply(l).toRawBytes(),h=k(l+P(n.context,u,c,e)*s);return b(h),xh("result",Dh(u,Ch(h,r.BYTES)),2*a)},verify:function(e,t,n){let o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:C;const{context:s,zip215:a}=o,c=r.BYTES;e=xh("signature",e,2*c),t=xh("message",t),i&&(t=i(t));const l=Rh(e.slice(c,2*c));let u,h,d;try{u=_.fromHex(n,a),h=_.fromHex(e.slice(0,c),a),d=E.multiplyUnsafe(l)}catch(f){return!1}if(!a&&u.isSmallOrder())return!1;const p=P(s,h.toRawBytes(),u.toRawBytes(),t);return h.add(u.multiplyUnsafe(p)).subtract(d).clearCofactor().equals(_.ZERO)},ExtendedPoint:_,utils:T}}const bd=BigInt(0),wd=BigInt(1);function vd(e){const t=(zh(r=e,{a:"bigint"},{montgomeryBits:"isSafeInteger",nByteLength:"isSafeInteger",adjustScalarBytes:"function",domain:"function",powPminus2:"function",Gu:"bigint"}),Object.freeze({...r}));var r;const{P:n}=t,i=e=>Jh(e,n),o=t.montgomeryBits,s=Math.ceil(o/8),a=t.nByteLength,c=t.adjustScalarBytes||(e=>e),l=t.powPminus2||(e=>Zh(e,n-BigInt(2),n));function u(e,t,r){const n=i(e*(t-r));return[t=i(t-n),r=i(r+n)]}function h(e){if("bigint"===typeof e&&bd<=e&&e<n)return e;throw new Error("Expected valid scalar 0 < scalar < CURVE.P")}const d=(t.a-BigInt(2))/BigInt(4);function p(e){return Ch(i(e),s)}function f(e,t){const r=function(e){const t=xh("u coordinate",e,s);return a===s&&(t[a-1]&=127),Rh(t)}(t),n=function(e){const t=xh("scalar",e);if(t.length!==s&&t.length!==a)throw new Error("Expected ".concat(s," or ").concat(a," bytes, got ").concat(t.length));return Rh(c(t))}(e),f=function(e,t){const r=h(e),n=h(t),s=r;let a,c=wd,p=bd,f=r,y=wd,g=bd;for(let l=BigInt(o-1);l>=bd;l--){const e=n>>l&wd;g^=e,a=u(g,c,f),c=a[0],f=a[1],a=u(g,p,y),p=a[0],y=a[1],g=e;const t=c+p,r=i(t*t),o=c-p,h=i(o*o),m=r-h,b=f+y,w=i((f-y)*t),v=i(b*o),_=w+v,E=w-v;f=i(_*_),y=i(s*i(E*E)),c=i(r*h),p=i(m*(r+i(d*m)))}a=u(g,c,f),c=a[0],f=a[1],a=u(g,p,y),p=a[0],y=a[1];const m=l(p);return i(c*m)}(r,n);if(f===bd)throw new Error("Invalid private or public key received");return p(f)}const y=p(t.Gu);function g(e){return f(e,y)}return{scalarMult:f,scalarMultBase:g,getSharedSecret:(e,t)=>f(e,t),getPublicKey:e=>g(e),utils:{randomPrivateKey:()=>t.randomBytes(t.nByteLength)},GuBytes:y}}const _d=BigInt("57896044618658097711785492504343953926634992332820282019728792003956564819949"),Ed=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752"),Sd=(BigInt(0),BigInt(1)),Ad=BigInt(2),kd=BigInt(5),Id=BigInt(10),Rd=BigInt(20),Pd=BigInt(40),Cd=BigInt(80);function Td(e){const t=_d,r=e*e%t*e%t,n=$h(r,Ad,t)*r%t,i=$h(n,Sd,t)*e%t,o=$h(i,kd,t)*i%t,s=$h(o,Id,t)*o%t,a=$h(s,Rd,t)*s%t,c=$h(a,Pd,t)*a%t,l=$h(c,Cd,t)*c%t,u=$h(l,Cd,t)*c%t,h=$h(u,Id,t)*o%t;return{pow_p_5_8:$h(h,Ad,t)*e%t,b2:r}}function xd(e){return e[0]&=248,e[31]&=127,e[31]|=64,e}function Dd(e,t){const r=_d,n=Jh(t*t*t,r),i=Jh(n*n*t,r);let o=Jh(e*n*Td(e*i).pow_p_5_8,r);const s=Jh(t*o*o,r),a=o,c=Jh(o*Ed,r),l=s===e,u=s===Jh(-e,r),h=s===Jh(-e*Ed,r);return l&&(o=a),(u||h)&&(o=c),rd(o,r)&&(o=Jh(-o,r)),{isValid:l||u,value:o}}const Nd=od(_d,void 0,!0),Ld={a:BigInt(-1),d:BigInt("37095705934669439343138083508754565189542113879843219016388785533085940283555"),Fp:Nd,n:BigInt("7237005577332262213973186563042994240857116359379907606001950938285454250989"),h:BigInt(8),Gx:BigInt("15112221349535400772501151409588531511454012693041857206046113283949847762202"),Gy:BigInt("46316835694926478169428394003475163141307993866256225615783033603165251855960"),hash:gh,randomBytes:oh,adjustScalarBytes:xd,uvRatio:Dd},Bd=md(Ld);function Md(e,t,r){if(t.length>255)throw new Error("Context is too big");return rh(eh("SigEd25519 no Ed25519 collisions"),new Uint8Array([r?1:0,t.length]),t,e)}const Od=(()=>vd({P:_d,a:BigInt(486662),montgomeryBits:255,nByteLength:32,Gu:BigInt(9),powPminus2:e=>{const t=_d,{pow_p_5_8:r,b2:n}=Td(e);return Jh($h(r,BigInt(3),t)*n,t)},adjustScalarBytes:xd,randomBytes:oh}))();const Ud=(Nd.ORDER+BigInt(3))/BigInt(8);Nd.pow(Ad,Ud),Nd.sqrt(Nd.neg(Nd.ONE)),Nd.ORDER,BigInt(5),BigInt(8),BigInt(486662);!function(e,t){if(!e.isOdd)throw new Error("Field doesn't have isOdd");const r=e.sqrt(t);e.isOdd(r)&&e.neg(r)}(Nd,Nd.neg(BigInt(486664)));BigInt("25063068953384623474111414158702152701244531502492656460079210482610430750235"),BigInt("54469307008909316920995813868745141605393597292927456921205312896311721017578"),BigInt("1159843021668779879193775521855586647937357759715417654439879720876111806838"),BigInt("40440834346308536858101042469323190826248399146238708352240133220865137265952"),BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");class Kd extends nh{constructor(e,t){super(),this.finished=!1,this.destroyed=!1,Wu(e);const r=th(t);if(this.iHash=e.create(),"function"!==typeof this.iHash.update)throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;const n=this.blockLen,i=new Uint8Array(n);i.set(r.length>n?e.create().update(r).digest():r);for(let o=0;o<i.length;o++)i[o]^=54;this.iHash.update(i),this.oHash=e.create();for(let o=0;o<i.length;o++)i[o]^=106;this.oHash.update(i),i.fill(0)}update(e){return Yu(this),this.iHash.update(e),this}digestInto(e){Yu(this),Gu(e,this.outputLen),this.finished=!0,this.iHash.digestInto(e),this.oHash.update(e),this.oHash.digestInto(e),this.destroy()}digest(){const e=new Uint8Array(this.oHash.outputLen);return this.digestInto(e),e}_cloneInto(e){e||(e=Object.create(Object.getPrototypeOf(this),{}));const{oHash:t,iHash:r,finished:n,destroyed:i,blockLen:o,outputLen:s}=this;return e.finished=n,e.destroyed=i,e.blockLen=o,e.outputLen=s,e.oHash=t._cloneInto(e.oHash),e.iHash=r._cloneInto(e.iHash),e}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}const qd=(e,t,r)=>new Kd(e,t).update(r).digest();function Fd(e,t,r){return Wu(e),void 0===r&&(r=new Uint8Array(e.outputLen)),qd(e,th(r),th(t))}qd.create=(e,t)=>new Kd(e,t);const Vd=new Uint8Array([0]),zd=new Uint8Array;function jd(e,t,r){let n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:32;if(Wu(e),Hu(n),n>255*e.outputLen)throw new Error("Length should be <= 255*HashLen");const i=Math.ceil(n/e.outputLen);void 0===r&&(r=zd);const o=new Uint8Array(i*e.outputLen),s=qd.create(e,t),a=s._cloneInto(),c=new Uint8Array(s.outputLen);for(let l=0;l<i;l++)Vd[0]=l+1,a.update(0===l?zd:c).update(r).update(Vd).digestInto(c),o.set(c,e.outputLen*l),s._cloneInto(a);return s.destroy(),a.destroy(),c.fill(0),Vd.fill(0),o.slice(0,n)}const Hd=(e,t,r)=>e&t^e&r^t&r,Gd=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),Wd=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Yd=new Uint32Array(64);class Qd extends sh{constructor(){super(64,32,8,!1),this.A=0|Wd[0],this.B=0|Wd[1],this.C=0|Wd[2],this.D=0|Wd[3],this.E=0|Wd[4],this.F=0|Wd[5],this.G=0|Wd[6],this.H=0|Wd[7]}get(){const{A:e,B:t,C:r,D:n,E:i,F:o,G:s,H:a}=this;return[e,t,r,n,i,o,s,a]}set(e,t,r,n,i,o,s,a){this.A=0|e,this.B=0|t,this.C=0|r,this.D=0|n,this.E=0|i,this.F=0|o,this.G=0|s,this.H=0|a}process(e,t){for(let h=0;h<16;h++,t+=4)Yd[h]=e.getUint32(t,!1);for(let h=16;h<64;h++){const e=Yd[h-15],t=Yd[h-2],r=$u(e,7)^$u(e,18)^e>>>3,n=$u(t,17)^$u(t,19)^t>>>10;Yd[h]=n+Yd[h-7]+r+Yd[h-16]|0}let{A:r,B:n,C:i,D:o,E:s,F:a,G:c,H:l}=this;for(let h=0;h<64;h++){const e=l+($u(s,6)^$u(s,11)^$u(s,25))+((u=s)&a^~u&c)+Gd[h]+Yd[h]|0,t=($u(r,2)^$u(r,13)^$u(r,22))+Hd(r,n,i)|0;l=c,c=a,a=s,s=o+e|0,o=i,i=n,n=r,r=e+t|0}var u;r=r+this.A|0,n=n+this.B|0,i=i+this.C|0,o=o+this.D|0,s=s+this.E|0,a=a+this.F|0,c=c+this.G|0,l=l+this.H|0,this.set(r,n,i,o,s,a,c,l)}roundClean(){Yd.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}}const Xd=ih((()=>new Qd)),Jd={hashSHA256:e=>Xd(e),getHKDF(e,t){const r=Fd(Xd,t,e),n=jd(Xd,r,void 0,96);return[n.subarray(0,32),n.subarray(32,64),n.subarray(64,96)]},generateX25519KeyPair(){const e=Od.utils.randomPrivateKey();return{publicKey:Od.getPublicKey(e),privateKey:e}},generateX25519KeyPairFromSeed:e=>({publicKey:Od.getPublicKey(e),privateKey:e}),generateX25519SharedKey:(e,t)=>Od.getSharedSecret(e,t),chaCha20Poly1305Encrypt:(e,t,r,n)=>ju(n,t,r).encrypt(e),chaCha20Poly1305Decrypt:(e,t,r,n,i)=>ju(n,t,r).decrypt(e,i)},Zd=e=>{const t=(r=2,globalThis.Buffer?globalThis.Buffer.allocUnsafe(r):new Uint8Array(r));var r;return new DataView(t.buffer,t.byteOffset,t.byteLength).setUint16(0,e,!1),t};Zd.bytes=2;const $d=e=>{if(e.length<2)throw RangeError("Could not decode int16BE");return e instanceof Uint8Array?new DataView(e.buffer,e.byteOffset,e.byteLength).getUint16(0,!1):e.getUint16(0)};$d.bytes=2;const ep=16;class tp extends Error{constructor(){super(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"The operation was aborted"),Br(this,"code",void 0),Br(this,"type",void 0),this.code=tp.code,this.type=tp.type}}Br(tp,"code","ABORT_ERR"),Br(tp,"type","aborted");class rp extends Error{constructor(e,t,r){var n;super(e),Br(this,"code",void 0),Br(this,"props",void 0),this.code=t,this.name=null!==(n=null===r||void 0===r?void 0:r.name)&&void 0!==n?n:"CodeError",this.props=null!==r&&void 0!==r?r:{}}}class np extends Error{constructor(){super(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"Unexpected Peer"),Br(this,"code",void 0),this.code=np.code}}Br(np,"code","ERR_UNEXPECTED_PEER");class ip extends Error{constructor(){super(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"Invalid crypto exchange"),Br(this,"code",void 0),this.code=ip.code}}Br(ip,"code","ERR_INVALID_CRYPTO_EXCHANGE");class op extends Error{constructor(){super(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"Invalid crypto transmission"),Br(this,"code",void 0),this.code=op.code}}Br(op,"code","ERR_INVALID_CRYPTO_TRANSMISSION");__webpack_require__(5049),__webpack_require__(9835);var sp=__webpack_require__(392);var ap=function(e,t){if(e.length>=255)throw new TypeError("Alphabet too long");for(var r=new Uint8Array(256),n=0;n<r.length;n++)r[n]=255;for(var i=0;i<e.length;i++){var o=e.charAt(i),s=o.charCodeAt(0);if(255!==r[s])throw new TypeError(o+" is ambiguous");r[s]=i}var a=e.length,c=e.charAt(0),l=Math.log(a)/Math.log(256),u=Math.log(256)/Math.log(a);function h(e){if("string"!==typeof e)throw new TypeError("Expected String");if(0===e.length)return new Uint8Array;var t=0;if(" "!==e[t]){for(var n=0,i=0;e[t]===c;)n++,t++;for(var o=(e.length-t)*l+1>>>0,s=new Uint8Array(o);e[t];){var u=r[e.charCodeAt(t)];if(255===u)return;for(var h=0,d=o-1;(0!==u||h<i)&&-1!==d;d--,h++)u+=a*s[d]>>>0,s[d]=u%256>>>0,u=u/256>>>0;if(0!==u)throw new Error("Non-zero carry");i=h,t++}if(" "!==e[t]){for(var p=o-i;p!==o&&0===s[p];)p++;for(var f=new Uint8Array(n+(o-p)),y=n;p!==o;)f[y++]=s[p++];return f}}}return{encode:function(t){if(t instanceof Uint8Array||(ArrayBuffer.isView(t)?t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength):Array.isArray(t)&&(t=Uint8Array.from(t))),!(t instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(0===t.length)return"";for(var r=0,n=0,i=0,o=t.length;i!==o&&0===t[i];)i++,r++;for(var s=(o-i)*u+1>>>0,l=new Uint8Array(s);i!==o;){for(var h=t[i],d=0,p=s-1;(0!==h||d<n)&&-1!==p;p--,d++)h+=256*l[p]>>>0,l[p]=h%a>>>0,h=h/a>>>0;if(0!==h)throw new Error("Non-zero carry");n=d,i++}for(var f=s-n;f!==s&&0===l[f];)f++;for(var y=c.repeat(r);f<s;++f)y+=e.charAt(l[f]);return y},decodeUnsafe:h,decode:function(e){var r=h(e);if(r)return r;throw new Error("Non-".concat(t," character"))}}};const cp=ap,lp=(new Uint8Array(0),e=>{if(e instanceof Uint8Array&&"Uint8Array"===e.constructor.name)return e;if(e instanceof ArrayBuffer)return new Uint8Array(e);if(ArrayBuffer.isView(e))return new Uint8Array(e.buffer,e.byteOffset,e.byteLength);throw new Error("Unknown type, must be binary type")});class up{constructor(e,t,r){this.name=e,this.prefix=t,this.baseEncode=r}encode(e){if(e instanceof Uint8Array)return"".concat(this.prefix).concat(this.baseEncode(e));throw Error("Unknown type, must be binary type")}}class hp{constructor(e,t,r){if(this.name=e,this.prefix=t,void 0===t.codePointAt(0))throw new Error("Invalid prefix character");this.prefixCodePoint=t.codePointAt(0),this.baseDecode=r}decode(e){if("string"===typeof e){if(e.codePointAt(0)!==this.prefixCodePoint)throw Error("Unable to decode multibase string ".concat(JSON.stringify(e),", ").concat(this.name," decoder only supports inputs prefixed with ").concat(this.prefix));return this.baseDecode(e.slice(this.prefix.length))}throw Error("Can only multibase decode strings")}or(e){return pp(this,e)}}class dp{constructor(e){this.decoders=e}or(e){return pp(this,e)}decode(e){const t=e[0],r=this.decoders[t];if(r)return r.decode(e);throw RangeError("Unable to decode multibase string ".concat(JSON.stringify(e),", only inputs prefixed with ").concat(Object.keys(this.decoders)," are supported"))}}const pp=(e,t)=>new dp({...e.decoders||{[e.prefix]:e},...t.decoders||{[t.prefix]:t}});class fp{constructor(e,t,r,n){this.name=e,this.prefix=t,this.baseEncode=r,this.baseDecode=n,this.encoder=new up(e,t,r),this.decoder=new hp(e,t,n)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}}const yp=e=>{let{name:t,prefix:r,encode:n,decode:i}=e;return new fp(t,r,n,i)},gp=e=>{let{prefix:t,name:r,alphabet:n}=e;const{encode:i,decode:o}=cp(n,r);return yp({prefix:t,name:r,encode:i,decode:e=>lp(o(e))})},mp=e=>{let{name:t,prefix:r,bitsPerChar:n,alphabet:i}=e;return yp({prefix:r,name:t,encode:e=>((e,t,r)=>{const n="="===t[t.length-1],i=(1<<r)-1;let o="",s=0,a=0;for(let c=0;c<e.length;++c)for(a=a<<8|e[c],s+=8;s>r;)s-=r,o+=t[i&a>>s];if(s&&(o+=t[i&a<<r-s]),n)for(;o.length*r&7;)o+="=";return o})(e,i,n),decode:e=>((e,t,r,n)=>{const i={};for(let u=0;u<t.length;++u)i[t[u]]=u;let o=e.length;for(;"="===e[o-1];)--o;const s=new Uint8Array(o*r/8|0);let a=0,c=0,l=0;for(let u=0;u<o;++u){const t=i[e[u]];if(void 0===t)throw new SyntaxError("Non-".concat(n," character"));c=c<<r|t,a+=r,a>=8&&(a-=8,s[l++]=255&c>>a)}if(a>=r||255&c<<8-a)throw new SyntaxError("Unexpected end of data");return s})(e,i,n,t)})},bp=gp({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),wp=gp({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var vp=function e(t,r,n){r=r||[];var i=n=n||0;for(;t>=Sp;)r[n++]=255&t|_p,t/=128;for(;t&Ep;)r[n++]=255&t|_p,t>>>=7;return r[n]=0|t,e.bytes=n-i+1,r},_p=128,Ep=-128,Sp=Math.pow(2,31);var Ap=function e(t,r){var n,i=0,o=0,s=r=r||0,a=t.length;do{if(s>=a)throw e.bytes=0,new RangeError("Could not decode varint");n=t[s++],i+=o<28?(n&Ip)<<o:(n&Ip)*Math.pow(2,o),o+=7}while(n>=kp);return e.bytes=s-r,i},kp=128,Ip=127;var Rp=Math.pow(2,7),Pp=Math.pow(2,14),Cp=Math.pow(2,21),Tp=Math.pow(2,28),xp=Math.pow(2,35),Dp=Math.pow(2,42),Np=Math.pow(2,49),Lp=Math.pow(2,56),Bp=Math.pow(2,63);const Mp={encode:vp,decode:Ap,encodingLength:function(e){return e<Rp?1:e<Pp?2:e<Cp?3:e<Tp?4:e<xp?5:e<Dp?6:e<Np?7:e<Lp?8:e<Bp?9:10}},Op=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return[Mp.decode(e,t),Mp.decode.bytes]},Up=function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;return Mp.encode(e,t,r),t},Kp=e=>Mp.encodingLength(e),qp=(e,t)=>{const r=t.byteLength,n=Kp(e),i=n+Kp(r),o=new Uint8Array(i+r);return Up(e,o,0),Up(r,o,n),o.set(t,i),new Vp(e,r,t,o)},Fp=e=>{const t=lp(e),[r,n]=Op(t),[i,o]=Op(t.subarray(n)),s=t.subarray(n+o);if(s.byteLength!==i)throw new Error("Incorrect length");return new Vp(r,i,s,t)};class Vp{constructor(e,t,r,n){this.code=e,this.size=t,this.digest=r,this.bytes=n}}const zp=lp,jp={code:0,name:"identity",encode:zp,digest:e=>qp(0,zp(e))},Hp=e=>{let{name:t,code:r,encode:n}=e;return new Gp(t,r,n)};class Gp{constructor(e,t,r){this.name=e,this.code=t,this.encode=r}digest(e){if(e instanceof Uint8Array){const t=this.encode(e);return t instanceof Uint8Array?qp(this.code,t):t.then((e=>qp(this.code,e)))}throw Error("Unknown type, must be binary type")}}const Wp=e=>async t=>new Uint8Array(await crypto.subtle.digest(e,t)),Yp=Hp({name:"sha2-256",code:18,encode:Wp("SHA-256")}),Qp=Hp({name:"sha2-512",code:19,encode:Wp("SHA-512")}),Xp=32,Jp=64,Zp=32;function $p(e,t){const r=new Uint8Array(Jp);for(let n=0;n<Zp;n++)r[n]=e[n],r[Zp+n]=t[n];return r}const ef=mp({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),tf=mp({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),rf=mp({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),nf=mp({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6}),of={get(){const e=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:globalThis).crypto;if(null==e||null==e.subtle)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 e}},sf={alg:"A128GCM",ext:!0,k:"scm9jmO_4BJAgdwWGVulLg",key_ops:["encrypt","decrypt"],kty:"oct"};async function af(e,t){const r=function(e){var t,r,n,i,o,s;const a=null!==(t=null===e||void 0===e?void 0:e.algorithm)&&void 0!==t?t:"AES-GCM";let c=null!==(r=null===e||void 0===e?void 0:e.keyLength)&&void 0!==r?r:16;const l=null!==(n=null===e||void 0===e?void 0:e.nonceLength)&&void 0!==n?n:12,u=null!==(i=null===e||void 0===e?void 0:e.digest)&&void 0!==i?i:"SHA-256",h=null!==(o=null===e||void 0===e?void 0:e.saltLength)&&void 0!==o?o:16,d=null!==(s=null===e||void 0===e?void 0:e.iterations)&&void 0!==s?s:32767,p=of.get();return c*=8,{encrypt:async function(e,t){const r=p.getRandomValues(new Uint8Array(h)),n=p.getRandomValues(new Uint8Array(l)),i={name:a,iv:n};let o;if("string"===typeof t&&(t=ps(t)),0===t.length){o=await p.subtle.importKey("jwk",sf,{name:"AES-GCM"},!0,["encrypt"]);try{const e={name:"PBKDF2",salt:r,iterations:d,hash:{name:u}},n=await p.subtle.importKey("raw",t,{name:"PBKDF2"},!1,["deriveKey"]);o=await p.subtle.deriveKey(e,n,{name:a,length:c},!0,["encrypt"])}catch{o=await p.subtle.importKey("jwk",sf,{name:"AES-GCM"},!0,["encrypt"])}}else{const e={name:"PBKDF2",salt:r,iterations:d,hash:{name:u}},n=await p.subtle.importKey("raw",t,{name:"PBKDF2"},!1,["deriveKey"]);o=await p.subtle.deriveKey(e,n,{name:a,length:c},!0,["encrypt"])}const s=await p.subtle.encrypt(i,o,e);return Po([r,i.iv,new Uint8Array(s)])},decrypt:async function(e,t){const r=e.subarray(0,h),n=e.subarray(h,h+l),i=e.subarray(h+l),o={name:a,iv:n};let s;if("string"===typeof t&&(t=ps(t)),0===t.length)try{const e={name:"PBKDF2",salt:r,iterations:d,hash:{name:u}},n=await p.subtle.importKey("raw",t,{name:"PBKDF2"},!1,["deriveKey"]);s=await p.subtle.deriveKey(e,n,{name:a,length:c},!0,["decrypt"])}catch{s=await p.subtle.importKey("jwk",sf,{name:"AES-GCM"},!0,["decrypt"])}else{const e={name:"PBKDF2",salt:r,iterations:d,hash:{name:u}},n=await p.subtle.importKey("raw",t,{name:"PBKDF2"},!1,["deriveKey"]);s=await p.subtle.deriveKey(e,n,{name:a,length:c},!0,["decrypt"])}const f=await p.subtle.decrypt(o,s,i);return new Uint8Array(f)}}}(),n=await r.encrypt(e,t);return ef.encode(n)}ya._configure(),pa._configure(fa),ga._configure(ma);const cf=["uint64","int64","sint64","fixed64","sfixed64"];function lf(e){return function(e){for(const t of cf){if(null==e[t])continue;const r=e[t];e[t]=function(){return BigInt(r.call(this).toString())}}return e}(new pa(e))}function uf(){return function(e){for(const t of cf){if(null==e[t])continue;const r=e[t];e[t]=function(e){return r.call(this,e.toString())}}return e}(ga.create())}function hf(e,t){const r=lf(e instanceof Uint8Array?e:e.subarray());return t.decode(r)}function df(e,t){const r=uf();return t.encode(e,r,{lengthDelimited:!1}),r.finish()}var pf,ff,yf,gf,mf;function bf(e,t,r,n){return{name:e,type:t,encode:r,decode:n}}function wf(e,t){return bf("message",pf.LENGTH_DELIMITED,e,t)}!function(e){e[e.VARINT=0]="VARINT",e[e.BIT64=1]="BIT64",e[e.LENGTH_DELIMITED=2]="LENGTH_DELIMITED",e[e.START_GROUP=3]="START_GROUP",e[e.END_GROUP=4]="END_GROUP",e[e.BIT32=5]="BIT32"}(pf||(pf={})),function(e){e.RSA="RSA",e.Ed25519="Ed25519",e.Secp256k1="Secp256k1"}(ff||(ff={})),function(e){e[e.RSA=0]="RSA",e[e.Ed25519=1]="Ed25519",e[e.Secp256k1=2]="Secp256k1"}(yf||(yf={})),function(e){e.codec=()=>function(e){function t(t){if(null==e[t.toString()])throw new Error("Invalid enum value");return e[t]}return bf("enum",pf.VARINT,(function(e,r){const n=t(e);r.int32(n)}),(function(e){return t(e.int32())}))}(yf)}(ff||(ff={})),function(e){let t;e.codec=()=>(null==t&&(t=wf((function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};!1!==r.lengthDelimited&&t.fork(),null!=e.Type&&(t.uint32(8),ff.codec().encode(e.Type,t)),null!=e.Data&&(t.uint32(18),t.bytes(e.Data)),!1!==r.lengthDelimited&&t.ldelim()}),((e,t)=>{const r={},n=null==t?e.len:e.pos+t;for(;e.pos<n;){const t=e.uint32();switch(t>>>3){case 1:r.Type=ff.codec().decode(e);break;case 2:r.Data=e.bytes();break;default:e.skipType(7&t)}}return r}))),t),e.encode=t=>df(t,e.codec()),e.decode=t=>hf(t,e.codec())}(gf||(gf={})),function(e){let t;e.codec=()=>(null==t&&(t=wf((function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};!1!==r.lengthDelimited&&t.fork(),null!=e.Type&&(t.uint32(8),ff.codec().encode(e.Type,t)),null!=e.Data&&(t.uint32(18),t.bytes(e.Data)),!1!==r.lengthDelimited&&t.ldelim()}),((e,t)=>{const r={},n=null==t?e.len:e.pos+t;for(;e.pos<n;){const t=e.uint32();switch(t>>>3){case 1:r.Type=ff.codec().decode(e);break;case 2:r.Data=e.bytes();break;default:e.skipType(7&t)}}return r}))),t),e.encode=t=>df(t,e.codec()),e.decode=t=>hf(t,e.codec())}(mf||(mf={}));class vf{constructor(e){Br(this,"_key",void 0),this._key=If(e,Xp)}async verify(e,t){return async function(e,t,r){return Bd.verify(t,r,e)}(this._key,t,e)}marshal(){return this._key}get bytes(){return gf.encode({Type:ff.Ed25519,Data:this.marshal()}).subarray()}equals(e){return Yn(this.bytes,e.bytes)}async hash(){const{bytes:e}=await Yp.digest(this.bytes);return e}}class _f{constructor(e,t){Br(this,"_key",void 0),Br(this,"_publicKey",void 0),this._key=If(e,Jp),this._publicKey=If(t,Xp)}async sign(e){return async function(e,t){const r=e.subarray(0,Zp);return Bd.sign(t,r)}(this._key,e)}get public(){return new vf(this._publicKey)}marshal(){return this._key}get bytes(){return mf.encode({Type:ff.Ed25519,Data:this.marshal()}).subarray()}equals(e){return Yn(this.bytes,e.bytes)}async hash(){const{bytes:e}=await Yp.digest(this.bytes);return e}async id(){const e=jp.digest(this.public.bytes);return bp.encode(e.bytes).substring(1)}async export(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"libp2p-key";if("libp2p-key"===t)return af(this.bytes,e);throw new rp("export format '".concat(t,"' is not supported"),"ERR_INVALID_EXPORT_FORMAT")}}function Ef(e){if(e.length>Jp){const t=(e=If(e,Jp+Xp)).subarray(0,Jp),r=e.subarray(Jp,e.length);return new _f(t,r)}const t=(e=If(e,Jp)).subarray(0,Jp),r=e.subarray(Xp);return new _f(t,r)}function Sf(e){return e=If(e,Xp),new vf(e)}async function Af(){const{privateKey:e,publicKey:t}=await async function(){const e=Bd.utils.randomPrivateKey(),t=Bd.getPublicKey(e);return{privateKey:$p(e,t),publicKey:t}}();return new _f(e,t)}async function kf(e){const{privateKey:t,publicKey:r}=await async function(e){if(e.length!==Zp)throw new TypeError('"seed" must be 32 bytes in length.');if(!(e instanceof Uint8Array))throw new TypeError('"seed" must be a node.js Buffer, or Uint8Array.');const t=e,r=Bd.getPublicKey(t);return{privateKey:$p(t,r),publicKey:r}}(e);return new _f(t,r)}function If(e,t){var r;if((e=Uint8Array.from(null!==(r=e)&&void 0!==r?r:[])).length!==t)throw new rp("Key must be a Uint8Array of length ".concat(t,", got ").concat(e.length),"ERR_INVALID_KEY_TYPE");return e}var Rf=__webpack_require__(3877);__webpack_require__(3055);function Pf(e,t){let r=Uint8Array.from(e.abs().toByteArray());if(r=0===r[0]?r.subarray(1):r,null!=t){if(r.length>t)throw new Error("byte array longer than desired length");r=Po([new Uint8Array(t-r.length),r])}return Ro(r,"base64url")}function Cf(e){const t=function(e,t){let r=ps(e,"base64urlpad");if(null!=t){if(r.length>t)throw new Error("byte array longer than desired length");r=Po([new Uint8Array(t-r.length),r])}return r}(e);return new sp.jsbn.BigInteger(Ro(t,"base16"),16)}const Tf={"P-256":256,"P-384":384,"P-521":521};Object.keys(Tf).join(" / ");__webpack_require__(4770);__webpack_require__(5493);function xf(e,t){return t.map((t=>Cf(e[t])))}async function Df(e){const t=[await of.get().subtle.importKey("jwk",e,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["sign"]),await Lf(e)],r=await Nf({privateKey:t[0],publicKey:t[1]});return{privateKey:r[0],publicKey:r[1]}}async function Nf(e){if(null==e.privateKey||null==e.publicKey)throw new rp("Private and public key are required","ERR_INVALID_PARAMETERS");return Promise.all([of.get().subtle.exportKey("jwk",e.privateKey),of.get().subtle.exportKey("jwk",e.publicKey)])}async function Lf(e){return of.get().subtle.importKey("jwk",{kty:e.kty,n:e.n,e:e.e},{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["verify"])}function Bf(e,t,r,n){const i=t?function(e){return sp.pki.setRsaPublicKey(...xf(e,["n","e"]))}(e):function(e){return sp.pki.setRsaPrivateKey(...xf(e,["n","e","d","p","q","dp","dq","qi"]))}(e);return ps(n(Ro(Uint8Array.from(r),"ascii"),i),"ascii")}function Mf(e){if("RSA"!==e.kty)throw new rp("invalid key type","ERR_INVALID_KEY_TYPE");if(null==e.n)throw new rp("invalid key modulus","ERR_INVALID_KEY_MODULUS");return 8*ps(e.n,"base64url").length}const Of=8192;class Uf{constructor(e){Br(this,"_key",void 0),this._key=e}async verify(e,t){return async function(e,t,r){const n=await of.get().subtle.importKey("jwk",e,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["verify"]);return of.get().subtle.verify({name:"RSASSA-PKCS1-v1_5"},n,t,r)}(this._key,t,e)}marshal(){return function(e){if(null==e.n||null==e.e)throw new rp("JWK was missing components","ERR_INVALID_PARAMETERS");const t=sp.pki.publicKeyToAsn1({n:Cf(e.n),e:Cf(e.e)});return ps(sp.asn1.toDer(t).getBytes(),"ascii")}(this._key)}get bytes(){return gf.encode({Type:ff.RSA,Data:this.marshal()}).subarray()}encrypt(e){return Bf(this._key,!0,e,((e,t)=>t.encrypt(e)))}equals(e){return Yn(this.bytes,e.bytes)}async hash(){const{bytes:e}=await Yp.digest(this.bytes);return e}}class Kf{constructor(e,t){Br(this,"_key",void 0),Br(this,"_publicKey",void 0),this._key=e,this._publicKey=t}genSecret(){return function(e){if(isNaN(e)||e<=0)throw new rp("random bytes length must be a Number bigger than 0","ERR_INVALID_LENGTH");return oh(e)}(16)}async sign(e){return async function(e,t){const r=await of.get().subtle.importKey("jwk",e,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["sign"]),n=await of.get().subtle.sign({name:"RSASSA-PKCS1-v1_5"},r,Uint8Array.from(t));return new Uint8Array(n,0,n.byteLength)}(this._key,e)}get public(){if(null==this._publicKey)throw new rp("public key not provided","ERR_PUBKEY_NOT_PROVIDED");return new Uf(this._publicKey)}decrypt(e){return Bf(this._key,!1,e,((e,t)=>t.decrypt(e)))}marshal(){return function(e){if(null==e.n||null==e.e||null==e.d||null==e.p||null==e.q||null==e.dp||null==e.dq||null==e.qi)throw new rp("JWK was missing components","ERR_INVALID_PARAMETERS");const t=sp.pki.privateKeyToAsn1({n:Cf(e.n),e:Cf(e.e),d:Cf(e.d),p:Cf(e.p),q:Cf(e.q),dP:Cf(e.dp),dQ:Cf(e.dq),qInv:Cf(e.qi)});return ps(sp.asn1.toDer(t).getBytes(),"ascii")}(this._key)}get bytes(){return mf.encode({Type:ff.RSA,Data:this.marshal()}).subarray()}equals(e){return Yn(this.bytes,e.bytes)}async hash(){const{bytes:e}=await Yp.digest(this.bytes);return e}async id(){return Ro(await this.public.hash(),"base58btc")}async export(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"pkcs-8";if("pkcs-8"===t){const t=new sp.util.ByteBuffer(this.marshal()),r=sp.asn1.fromDer(t),n=sp.pki.privateKeyFromAsn1(r),i={algorithm:"aes256",count:1e4,saltSize:16,prfAlgorithm:"sha512"};return sp.pki.encryptRsaPrivateKey(n,e,i)}if("libp2p-key"===t)return af(this.bytes,e);throw new rp("export format '".concat(t,"' is not supported"),"ERR_INVALID_EXPORT_FORMAT")}}async function qf(e){const t=function(e){const t=sp.asn1.fromDer(Ro(e,"ascii")),r=sp.pki.privateKeyFromAsn1(t);return{kty:"RSA",n:Pf(r.n),e:Pf(r.e),d:Pf(r.d),p:Pf(r.p),q:Pf(r.q),dp:Pf(r.dP),dq:Pf(r.dQ),qi:Pf(r.qInv),alg:"RS256"}}(e);if(Mf(t)>Of)throw new rp("key size is too large","ERR_KEY_SIZE_TOO_LARGE");const r=await Df(t);return new Kf(r.privateKey,r.publicKey)}function Ff(e){const t=function(e){const t=sp.asn1.fromDer(Ro(e,"ascii")),r=sp.pki.publicKeyFromAsn1(t);return{kty:"RSA",n:Pf(r.n),e:Pf(r.e)}}(e);if(Mf(t)>Of)throw new rp("key size is too large","ERR_KEY_SIZE_TOO_LARGE");return new Uf(t)}async function Vf(e){if(Mf(e)>Of)throw new rp("key size is too large","ERR_KEY_SIZE_TOO_LARGE");const t=await Df(e);return new Kf(t.privateKey,t.publicKey)}async function zf(e){if(e>Of)throw new rp("key size is too large","ERR_KEY_SIZE_TOO_LARGE");const t=await async function(e){const t=await of.get().subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:e,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-256"}},!0,["sign","verify"]),r=await Nf(t);return{privateKey:r[0],publicKey:r[1]}}(e);return new Kf(t.privateKey,t.publicKey)}const{bytesToNumberBE:jf,hexToBytes:Hf}=P,Gf={Err:class extends Error{constructor(){super(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"")}},_parseInt(e){const{Err:t}=Gf;if(e.length<2||2!==e[0])throw new t("Invalid signature integer tag");const r=e[1],n=e.subarray(2,r+2);if(!r||n.length!==r)throw new t("Invalid signature integer: wrong length");if(128&n[0])throw new t("Invalid signature integer: negative");if(0===n[0]&&!(128&n[1]))throw new t("Invalid signature integer: unnecessary leading zero");return{d:jf(n),l:e.subarray(r+2)}},toSig(e){const{Err:t}=Gf,r="string"===typeof e?Hf(e):e;if(!(r instanceof Uint8Array))throw new Error("ui8a expected");let n=r.length;if(n<2||48!=r[0])throw new t("Invalid signature tag");if(r[1]!==n-2)throw new t("Invalid signature: incorrect length");const{d:i,l:o}=Gf._parseInt(r.subarray(2)),{d:s,l:a}=Gf._parseInt(o);if(a.length)throw new t("Invalid signature: left bytes after parsing");return{r:i,s:s}},hexFromSig(e){const t=e=>8&Number.parseInt(e[0],16)?"00"+e:e,r=e=>{const t=e.toString(16);return 1&t.length?"0".concat(t):t},n=t(r(e.s)),i=t(r(e.r)),o=n.length/2,s=i.length/2,a=r(o),c=r(s);return"30".concat(r(s+o+4),"02").concat(c).concat(i,"02").concat(a).concat(n)}},Wf=BigInt(0),Yf=BigInt(1),Qf=(BigInt(2),BigInt(3));BigInt(4);function Xf(e){const t=function(e){const t=hd(e);zh(t,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});const{endo:r,Fp:n,a:i}=t;if(r){if(!n.eql(i,n.ZERO))throw new Error("Endomorphism can only be defined for Koblitz curves that have a=0");if("object"!==typeof r||"bigint"!==typeof r.beta||"function"!==typeof r.splitScalar)throw new Error("Expected endomorphism with beta: bigint and splitScalar: function")}return Object.freeze({...t})}(e),{Fp:r}=t,n=t.toBytes||((e,t,n)=>{const i=t.toAffine();return Dh(Uint8Array.from([4]),r.toBytes(i.x),r.toBytes(i.y))}),i=t.fromBytes||(e=>{const t=e.subarray(1);return{x:r.fromBytes(t.subarray(0,r.BYTES)),y:r.fromBytes(t.subarray(r.BYTES,2*r.BYTES))}});function o(e){const{a:n,b:i}=t,o=r.sqr(e),s=r.mul(o,e);return r.add(r.add(s,r.mul(e,n)),i)}if(!r.eql(r.sqr(t.Gy),o(t.Gx)))throw new Error("bad generator point: equation left != right");function s(e){return"bigint"===typeof e&&Wf<e&&e<t.n}function a(e){if(!s(e))throw new Error("Expected valid bigint: 0 < bigint < curve.n")}function c(e){const{allowedPrivateKeyLengths:r,nByteLength:n,wrapPrivateKey:i,n:o}=t;if(r&&"bigint"!==typeof e){if(e instanceof Uint8Array&&(e=Eh(e)),"string"!==typeof e||!r.includes(e.length))throw new Error("Invalid key");e=e.padStart(2*n,"0")}let s;try{s="bigint"===typeof e?e:Ih(xh("private key",e,n))}catch(c){throw new Error("private key must be ".concat(n," bytes, hex or bigint, not ").concat(typeof e))}return i&&(s=Jh(s,o)),a(s),s}const l=new Map;function u(e){if(!(e instanceof h))throw new Error("ProjectivePoint expected")}class h{constructor(e,t,n){if(this.px=e,this.py=t,this.pz=n,null==e||!r.isValid(e))throw new Error("x required");if(null==t||!r.isValid(t))throw new Error("y required");if(null==n||!r.isValid(n))throw new Error("z required")}static fromAffine(e){const{x:t,y:n}=e||{};if(!e||!r.isValid(t)||!r.isValid(n))throw new Error("invalid affine point");if(e instanceof h)throw new Error("projective point not allowed");const i=e=>r.eql(e,r.ZERO);return i(t)&&i(n)?h.ZERO:new h(t,n,r.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(e){const t=r.invertBatch(e.map((e=>e.pz)));return e.map(((e,r)=>e.toAffine(t[r]))).map(h.fromAffine)}static fromHex(e){const t=h.fromAffine(i(xh("pointHex",e)));return t.assertValidity(),t}static fromPrivateKey(e){return h.BASE.multiply(c(e))}_setWindowSize(e){this._WINDOW_SIZE=e,l.delete(this)}assertValidity(){if(this.is0()){if(t.allowInfinityPoint&&!r.is0(this.py))return;throw new Error("bad point: ZERO")}const{x:e,y:n}=this.toAffine();if(!r.isValid(e)||!r.isValid(n))throw new Error("bad point: x or y not FE");const i=r.sqr(n),s=o(e);if(!r.eql(i,s))throw new Error("bad point: equation left != right");if(!this.isTorsionFree())throw new Error("bad point: not in prime-order subgroup")}hasEvenY(){const{y:e}=this.toAffine();if(r.isOdd)return!r.isOdd(e);throw new Error("Field doesn't support isOdd")}equals(e){u(e);const{px:t,py:n,pz:i}=this,{px:o,py:s,pz:a}=e,c=r.eql(r.mul(t,a),r.mul(o,i)),l=r.eql(r.mul(n,a),r.mul(s,i));return c&&l}negate(){return new h(this.px,r.neg(this.py),this.pz)}double(){const{a:e,b:n}=t,i=r.mul(n,Qf),{px:o,py:s,pz:a}=this;let c=r.ZERO,l=r.ZERO,u=r.ZERO,d=r.mul(o,o),p=r.mul(s,s),f=r.mul(a,a),y=r.mul(o,s);return y=r.add(y,y),u=r.mul(o,a),u=r.add(u,u),c=r.mul(e,u),l=r.mul(i,f),l=r.add(c,l),c=r.sub(p,l),l=r.add(p,l),l=r.mul(c,l),c=r.mul(y,c),u=r.mul(i,u),f=r.mul(e,f),y=r.sub(d,f),y=r.mul(e,y),y=r.add(y,u),u=r.add(d,d),d=r.add(u,d),d=r.add(d,f),d=r.mul(d,y),l=r.add(l,d),f=r.mul(s,a),f=r.add(f,f),d=r.mul(f,y),c=r.sub(c,d),u=r.mul(f,p),u=r.add(u,u),u=r.add(u,u),new h(c,l,u)}add(e){u(e);const{px:n,py:i,pz:o}=this,{px:s,py:a,pz:c}=e;let l=r.ZERO,d=r.ZERO,p=r.ZERO;const f=t.a,y=r.mul(t.b,Qf);let g=r.mul(n,s),m=r.mul(i,a),b=r.mul(o,c),w=r.add(n,i),v=r.add(s,a);w=r.mul(w,v),v=r.add(g,m),w=r.sub(w,v),v=r.add(n,o);let _=r.add(s,c);return v=r.mul(v,_),_=r.add(g,b),v=r.sub(v,_),_=r.add(i,o),l=r.add(a,c),_=r.mul(_,l),l=r.add(m,b),_=r.sub(_,l),p=r.mul(f,v),l=r.mul(y,b),p=r.add(l,p),l=r.sub(m,p),p=r.add(m,p),d=r.mul(l,p),m=r.add(g,g),m=r.add(m,g),b=r.mul(f,b),v=r.mul(y,v),m=r.add(m,b),b=r.sub(g,b),b=r.mul(f,b),v=r.add(v,b),g=r.mul(m,v),d=r.add(d,g),g=r.mul(_,v),l=r.mul(w,l),l=r.sub(l,g),g=r.mul(w,m),p=r.mul(_,p),p=r.add(p,g),new h(l,d,p)}subtract(e){return this.add(e.negate())}is0(){return this.equals(h.ZERO)}wNAF(e){return p.wNAFCached(this,l,e,(e=>{const t=r.invertBatch(e.map((e=>e.pz)));return e.map(((e,r)=>e.toAffine(t[r]))).map(h.fromAffine)}))}multiplyUnsafe(e){const n=h.ZERO;if(e===Wf)return n;if(a(e),e===Yf)return this;const{endo:i}=t;if(!i)return p.unsafeLadder(this,e);let{k1neg:o,k1:s,k2neg:c,k2:l}=i.splitScalar(e),u=n,d=n,f=this;for(;s>Wf||l>Wf;)s&Yf&&(u=u.add(f)),l&Yf&&(d=d.add(f)),f=f.double(),s>>=Yf,l>>=Yf;return o&&(u=u.negate()),c&&(d=d.negate()),d=new h(r.mul(d.px,i.beta),d.py,d.pz),u.add(d)}multiply(e){a(e);let n,i,o=e;const{endo:s}=t;if(s){const{k1neg:e,k1:t,k2neg:a,k2:c}=s.splitScalar(o);let{p:l,f:u}=this.wNAF(t),{p:d,f:f}=this.wNAF(c);l=p.constTimeNegate(e,l),d=p.constTimeNegate(a,d),d=new h(r.mul(d.px,s.beta),d.py,d.pz),n=l.add(d),i=u.add(f)}else{const{p:e,f:t}=this.wNAF(o);n=e,i=t}return h.normalizeZ([n,i])[0]}multiplyAndAddUnsafe(e,t,r){const n=h.BASE,i=(e,t)=>t!==Wf&&t!==Yf&&e.equals(n)?e.multiply(t):e.multiplyUnsafe(t),o=i(this,t).add(i(e,r));return o.is0()?void 0:o}toAffine(e){const{px:t,py:n,pz:i}=this,o=this.is0();null==e&&(e=o?r.ONE:r.inv(i));const s=r.mul(t,e),a=r.mul(n,e),c=r.mul(i,e);if(o)return{x:r.ZERO,y:r.ZERO};if(!r.eql(c,r.ONE))throw new Error("invZ was invalid");return{x:s,y:a}}isTorsionFree(){const{h:e,isTorsionFree:r}=t;if(e===Yf)return!0;if(r)return r(h,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){const{h:e,clearCofactor:r}=t;return e===Yf?this:r?r(h,this):this.multiplyUnsafe(t.h)}toRawBytes(){let e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return this.assertValidity(),n(h,this,e)}toHex(){let e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return Eh(this.toRawBytes(e))}}h.BASE=new h(t.Gx,t.Gy,r.ONE),h.ZERO=new h(r.ZERO,r.ONE,r.ZERO);const d=t.nBitLength,p=ud(h,t.endo?Math.ceil(d/2):d);return{CURVE:t,ProjectivePoint:h,normPrivateKeyToScalar:c,weierstrassEquation:o,isWithinCurveOrder:s}}function Jf(e){const t=function(e){const t=hd(e);return zh(t,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...t})}(e),{Fp:r,n:n}=t,i=r.BYTES+1,o=2*r.BYTES+1;function s(e){return Jh(e,n)}function a(e){return ed(e,n)}const{ProjectivePoint:c,normPrivateKeyToScalar:l,weierstrassEquation:u,isWithinCurveOrder:h}=Xf({...t,toBytes(e,t,n){const i=t.toAffine(),o=r.toBytes(i.x),s=Dh;return n?s(Uint8Array.from([t.hasEvenY()?2:3]),o):s(Uint8Array.from([4]),o,r.toBytes(i.y))},fromBytes(e){const t=e.length,n=e[0],s=e.subarray(1);if(t!==i||2!==n&&3!==n){if(t===o&&4===n){return{x:r.fromBytes(s.subarray(0,r.BYTES)),y:r.fromBytes(s.subarray(r.BYTES,2*r.BYTES))}}throw new Error("Point of length ".concat(t," was invalid. Expected ").concat(i," compressed bytes or ").concat(o," uncompressed bytes"))}{const e=Ih(s);if(!(Wf<(a=e)&&a<r.ORDER))throw new Error("Point is not on curve");const t=u(e);let i=r.sqrt(t);return 1===(1&n)!==((i&Yf)===Yf)&&(i=r.neg(i)),{x:e,y:i}}var a}}),d=e=>Eh(Ph(e,t.nByteLength));function p(e){return e>n>>Yf}const f=(e,t,r)=>Ih(e.slice(t,r));class y{constructor(e,t,r){this.r=e,this.s=t,this.recovery=r,this.assertValidity()}static fromCompact(e){const r=t.nByteLength;return e=xh("compactSignature",e,2*r),new y(f(e,0,r),f(e,r,2*r))}static fromDER(e){const{r:t,s:r}=Gf.toSig(xh("DER",e));return new y(t,r)}assertValidity(){if(!h(this.r))throw new Error("r must be 0 < r < CURVE.n");if(!h(this.s))throw new Error("s must be 0 < s < CURVE.n")}addRecoveryBit(e){return new y(this.r,this.s,e)}recoverPublicKey(e){const{r:n,s:i,recovery:o}=this,l=w(xh("msgHash",e));if(null==o||![0,1,2,3].includes(o))throw new Error("recovery id invalid");const u=2===o||3===o?n+t.n:n;if(u>=r.ORDER)throw new Error("recovery id 2 or 3 invalid");const h=0===(1&o)?"02":"03",p=c.fromHex(h+d(u)),f=a(u),y=s(-l*f),g=s(i*f),m=c.BASE.multiplyAndAddUnsafe(p,y,g);if(!m)throw new Error("point at infinify");return m.assertValidity(),m}hasHighS(){return p(this.s)}normalizeS(){return this.hasHighS()?new y(this.r,s(-this.s),this.recovery):this}toDERRawBytes(){return kh(this.toDERHex())}toDERHex(){return Gf.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return kh(this.toCompactHex())}toCompactHex(){return d(this.r)+d(this.s)}}const g={isValidPrivateKey(e){try{return l(e),!0}catch(t){return!1}},normPrivateKeyToScalar:l,randomPrivateKey:()=>{const e=ad(t.n);return function(e,t){let r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];const n=e.length,i=sd(t),o=ad(t);if(n<16||n<o||n>1024)throw new Error("expected ".concat(o,"-1024 bytes of input, got ").concat(n));const s=Jh(r?Ih(e):Rh(e),t-Hh)+Hh;return r?Ch(s,i):Ph(s,i)}(t.randomBytes(e),t.n)},precompute(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:8,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:c.BASE;return t._setWindowSize(e),t.multiply(BigInt(3)),t}};function m(e){const t=e instanceof Uint8Array,r="string"===typeof e,n=(t||r)&&e.length;return t?n===i||n===o:r?n===2*i||n===2*o:e instanceof c}const b=t.bits2int||function(e){const r=Ih(e),n=8*e.length-t.nBitLength;return n>0?r>>BigInt(n):r},w=t.bits2int_modN||function(e){return s(b(e))},v=Uh(t.nBitLength);function _(e){if("bigint"!==typeof e)throw new Error("bigint expected");if(!(Wf<=e&&e<v))throw new Error("bigint expected < 2^".concat(t.nBitLength));return Ph(e,t.nByteLength)}function E(e,n){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:S;if(["recovered","canonical"].some((e=>e in i)))throw new Error("sign() legacy options not supported");const{hash:o,randomBytes:u}=t;let{lowS:d,prehash:f,extraEntropy:g}=i;null==d&&(d=!0),e=xh("msgHash",e),f&&(e=xh("prehashed msgHash",o(e)));const m=w(e),v=l(n),E=[_(v),_(m)];if(null!=g){const e=!0===g?u(r.BYTES):g;E.push(xh("extraEntropy",e))}const A=Dh(...E),k=m;return{seed:A,k2sig:function(e){const t=b(e);if(!h(t))return;const r=a(t),n=c.BASE.multiply(t).toAffine(),i=s(n.x);if(i===Wf)return;const o=s(r*s(k+i*v));if(o===Wf)return;let l=(n.x===i?0:2)|Number(n.y&Yf),u=o;return d&&p(o)&&(u=function(e){return p(e)?s(-e):e}(o),l^=1),new y(i,u,l)}}}const S={lowS:t.lowS,prehash:!1},A={lowS:t.lowS,prehash:!1};return c.BASE._setWindowSize(8),{CURVE:t,getPublicKey:function(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return c.fromPrivateKey(e).toRawBytes(t)},getSharedSecret:function(e,t){let r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(m(e))throw new Error("first arg must be private key");if(!m(t))throw new Error("second arg must be public key");return c.fromHex(t).multiply(l(e)).toRawBytes(r)},sign:function(e,r){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:S;const{seed:i,k2sig:o}=E(e,r,n),s=t;return Fh(s.hash.outputLen,s.nByteLength,s.hmac)(i,o)},verify:function(e,r,n){var i;let o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:A;const l=e;if(r=xh("msgHash",r),n=xh("publicKey",n),"strict"in o)throw new Error("options.strict was renamed to lowS");const{lowS:u,prehash:h}=o;let d,p;try{if("string"===typeof l||l instanceof Uint8Array)try{d=y.fromDER(l)}catch(S){if(!(S instanceof Gf.Err))throw S;d=y.fromCompact(l)}else{if("object"!==typeof l||"bigint"!==typeof l.r||"bigint"!==typeof l.s)throw new Error("PARSE");{const{r:e,s:t}=l;d=new y(e,t)}}p=c.fromHex(n)}catch(k){if("PARSE"===k.message)throw new Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(u&&d.hasHighS())return!1;h&&(r=t.hash(r));const{r:f,s:g}=d,m=w(r),b=a(g),v=s(m*b),_=s(f*b),E=null===(i=c.BASE.multiplyAndAddUnsafe(p,v,_))||void 0===i?void 0:i.toAffine();return!!E&&s(E.x)===f},ProjectivePoint:c,Signature:y,utils:g}}function Zf(e){return{hash:e,hmac:function(t){for(var r=arguments.length,n=new Array(r>1?r-1:0),i=1;i<r;i++)n[i-1]=arguments[i];return qd(e,t,rh(...n))},randomBytes:oh}}const $f=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),ey=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),ty=BigInt(1),ry=BigInt(2),ny=(e,t)=>(e+t/ry)/t;function iy(e){const t=$f,r=BigInt(3),n=BigInt(6),i=BigInt(11),o=BigInt(22),s=BigInt(23),a=BigInt(44),c=BigInt(88),l=e*e*e%t,u=l*l*e%t,h=$h(u,r,t)*u%t,d=$h(h,r,t)*u%t,p=$h(d,ry,t)*l%t,f=$h(p,i,t)*p%t,y=$h(f,o,t)*f%t,g=$h(y,a,t)*y%t,m=$h(g,c,t)*g%t,b=$h(m,a,t)*y%t,w=$h(b,r,t)*u%t,v=$h(w,s,t)*f%t,_=$h(v,n,t)*l%t,E=$h(_,ry,t);if(!oy.eql(oy.sqr(E),e))throw new Error("Cannot find square root");return E}const oy=od($f,void 0,void 0,{sqrt:iy}),sy=function(e,t){const r=t=>Jf({...e,...Zf(t)});return Object.freeze({...r(t),create:r})}({a:BigInt(0),b:BigInt(7),Fp:oy,n:ey,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:e=>{const t=ey,r=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),n=-ty*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),i=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),o=r,s=BigInt("0x100000000000000000000000000000000"),a=ny(o*e,t),c=ny(-n*e,t);let l=Jh(e-a*r-c*i,t),u=Jh(-a*n-c*o,t);const h=l>s,d=u>s;if(h&&(l=t-l),d&&(u=t-u),l>s||u>s)throw new Error("splitScalar: Endomorphism failed, k="+e);return{k1neg:h,k1:l,k2neg:d,k2:u}}}},Xd);BigInt(0);sy.ProjectivePoint;function ay(e){try{sy.ProjectivePoint.fromHex(e)}catch(t){throw new rp(String(t),"ERR_INVALID_PUBLIC_KEY")}}class cy{constructor(e){Br(this,"_key",void 0),ay(e),this._key=e}async verify(e,t){return async function(e,t,r){try{const{digest:n}=await Yp.digest(r);return sy.verify(t,n,e)}catch(n){throw new rp(String(n),"ERR_INVALID_INPUT")}}(this._key,t,e)}marshal(){return e=this._key,sy.ProjectivePoint.fromHex(e).toRawBytes(!0);var e}get bytes(){return gf.encode({Type:ff.Secp256k1,Data:this.marshal()}).subarray()}equals(e){return Yn(this.bytes,e.bytes)}async hash(){const{bytes:e}=await Yp.digest(this.bytes);return e}}class ly{constructor(e,t){Br(this,"_key",void 0),Br(this,"_publicKey",void 0),this._key=e,this._publicKey=null!==t&&void 0!==t?t:function(e){try{return sy.getPublicKey(e,!0)}catch(t){throw new rp(String(t),"ERR_INVALID_PRIVATE_KEY")}}(e),function(e){try{sy.getPublicKey(e,!0)}catch(t){throw new rp(String(t),"ERR_INVALID_PRIVATE_KEY")}}(this._key),ay(this._publicKey)}async sign(e){return async function(e,t){const{digest:r}=await Yp.digest(t);try{return sy.sign(r,e).toDERRawBytes()}catch(n){throw new rp(String(n),"ERR_INVALID_INPUT")}}(this._key,e)}get public(){return new cy(this._publicKey)}marshal(){return this._key}get bytes(){return mf.encode({Type:ff.Secp256k1,Data:this.marshal()}).subarray()}equals(e){return Yn(this.bytes,e.bytes)}async hash(){const{bytes:e}=await Yp.digest(this.bytes);return e}async id(){return Ro(await this.public.hash(),"base58btc")}async export(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"libp2p-key";if("libp2p-key"===t)return af(this.bytes,e);throw new rp("export format '".concat(t,"' is not supported"),"ERR_INVALID_EXPORT_FORMAT")}}function uy(e){return new ly(e)}function hy(e){return new cy(e)}async function dy(){const e=sy.utils.randomPrivateKey();return new ly(e)}const py={rsa:L,ed25519:N,secp256k1:B};function fy(e){const t=Object.keys(py).join(" / ");return new rp("invalid or unsupported key type ".concat(e,". Must be ").concat(t),"ERR_UNSUPPORTED_KEY_TYPE")}async function yy(e){var t,r;const n=mf.decode(e),i=null!==(t=n.Data)&&void 0!==t?t:new Uint8Array;switch(n.Type){case ff.RSA:return py.rsa.unmarshalRsaPrivateKey(i);case ff.Ed25519:return py.ed25519.unmarshalEd25519PrivateKey(i);case ff.Secp256k1:return py.secp256k1.unmarshalSecp256k1PrivateKey(i);default:throw fy(null!==(r=n.Type)&&void 0!==r?r:"RSA")}}const gy=gp({prefix:"9",name:"base10",alphabet:"0123456789"}),my=mp({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),by=mp({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4}),wy=mp({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1}),vy=Array.from("\ud83d\ude80\ud83e\ude90\u2604\ud83d\udef0\ud83c\udf0c\ud83c\udf11\ud83c\udf12\ud83c\udf13\ud83c\udf14\ud83c\udf15\ud83c\udf16\ud83c\udf17\ud83c\udf18\ud83c\udf0d\ud83c\udf0f\ud83c\udf0e\ud83d\udc09\u2600\ud83d\udcbb\ud83d\udda5\ud83d\udcbe\ud83d\udcbf\ud83d\ude02\u2764\ud83d\ude0d\ud83e\udd23\ud83d\ude0a\ud83d\ude4f\ud83d\udc95\ud83d\ude2d\ud83d\ude18\ud83d\udc4d\ud83d\ude05\ud83d\udc4f\ud83d\ude01\ud83d\udd25\ud83e\udd70\ud83d\udc94\ud83d\udc96\ud83d\udc99\ud83d\ude22\ud83e\udd14\ud83d\ude06\ud83d\ude44\ud83d\udcaa\ud83d\ude09\u263a\ud83d\udc4c\ud83e\udd17\ud83d\udc9c\ud83d\ude14\ud83d\ude0e\ud83d\ude07\ud83c\udf39\ud83e\udd26\ud83c\udf89\ud83d\udc9e\u270c\u2728\ud83e\udd37\ud83d\ude31\ud83d\ude0c\ud83c\udf38\ud83d\ude4c\ud83d\ude0b\ud83d\udc97\ud83d\udc9a\ud83d\ude0f\ud83d\udc9b\ud83d\ude42\ud83d\udc93\ud83e\udd29\ud83d\ude04\ud83d\ude00\ud83d\udda4\ud83d\ude03\ud83d\udcaf\ud83d\ude48\ud83d\udc47\ud83c\udfb6\ud83d\ude12\ud83e\udd2d\u2763\ud83d\ude1c\ud83d\udc8b\ud83d\udc40\ud83d\ude2a\ud83d\ude11\ud83d\udca5\ud83d\ude4b\ud83d\ude1e\ud83d\ude29\ud83d\ude21\ud83e\udd2a\ud83d\udc4a\ud83e\udd73\ud83d\ude25\ud83e\udd24\ud83d\udc49\ud83d\udc83\ud83d\ude33\u270b\ud83d\ude1a\ud83d\ude1d\ud83d\ude34\ud83c\udf1f\ud83d\ude2c\ud83d\ude43\ud83c\udf40\ud83c\udf37\ud83d\ude3b\ud83d\ude13\u2b50\u2705\ud83e\udd7a\ud83c\udf08\ud83d\ude08\ud83e\udd18\ud83d\udca6\u2714\ud83d\ude23\ud83c\udfc3\ud83d\udc90\u2639\ud83c\udf8a\ud83d\udc98\ud83d\ude20\u261d\ud83d\ude15\ud83c\udf3a\ud83c\udf82\ud83c\udf3b\ud83d\ude10\ud83d\udd95\ud83d\udc9d\ud83d\ude4a\ud83d\ude39\ud83d\udde3\ud83d\udcab\ud83d\udc80\ud83d\udc51\ud83c\udfb5\ud83e\udd1e\ud83d\ude1b\ud83d\udd34\ud83d\ude24\ud83c\udf3c\ud83d\ude2b\u26bd\ud83e\udd19\u2615\ud83c\udfc6\ud83e\udd2b\ud83d\udc48\ud83d\ude2e\ud83d\ude46\ud83c\udf7b\ud83c\udf43\ud83d\udc36\ud83d\udc81\ud83d\ude32\ud83c\udf3f\ud83e\udde1\ud83c\udf81\u26a1\ud83c\udf1e\ud83c\udf88\u274c\u270a\ud83d\udc4b\ud83d\ude30\ud83e\udd28\ud83d\ude36\ud83e\udd1d\ud83d\udeb6\ud83d\udcb0\ud83c\udf53\ud83d\udca2\ud83e\udd1f\ud83d\ude41\ud83d\udea8\ud83d\udca8\ud83e\udd2c\u2708\ud83c\udf80\ud83c\udf7a\ud83e\udd13\ud83d\ude19\ud83d\udc9f\ud83c\udf31\ud83d\ude16\ud83d\udc76\ud83e\udd74\u25b6\u27a1\u2753\ud83d\udc8e\ud83d\udcb8\u2b07\ud83d\ude28\ud83c\udf1a\ud83e\udd8b\ud83d\ude37\ud83d\udd7a\u26a0\ud83d\ude45\ud83d\ude1f\ud83d\ude35\ud83d\udc4e\ud83e\udd32\ud83e\udd20\ud83e\udd27\ud83d\udccc\ud83d\udd35\ud83d\udc85\ud83e\uddd0\ud83d\udc3e\ud83c\udf52\ud83d\ude17\ud83e\udd11\ud83c\udf0a\ud83e\udd2f\ud83d\udc37\u260e\ud83d\udca7\ud83d\ude2f\ud83d\udc86\ud83d\udc46\ud83c\udfa4\ud83d\ude47\ud83c\udf51\u2744\ud83c\udf34\ud83d\udca3\ud83d\udc38\ud83d\udc8c\ud83d\udccd\ud83e\udd40\ud83e\udd22\ud83d\udc45\ud83d\udca1\ud83d\udca9\ud83d\udc50\ud83d\udcf8\ud83d\udc7b\ud83e\udd10\ud83e\udd2e\ud83c\udfbc\ud83e\udd75\ud83d\udea9\ud83c\udf4e\ud83c\udf4a\ud83d\udc7c\ud83d\udc8d\ud83d\udce3\ud83e\udd42"),_y=vy.reduce(((e,t,r)=>(e[r]=t,e)),[]),Ey=vy.reduce(((e,t,r)=>(e[t.codePointAt(0)]=r,e)),[]);const Sy=yp({prefix:"\ud83d\ude80",name:"base256emoji",encode:function(e){return e.reduce(((e,t)=>e+=_y[t]),"")},decode:function(e){const t=[];for(const r of e){const e=Ey[r.codePointAt(0)];if(void 0===e)throw new Error("Non-base256emoji character: ".concat(r));t.push(e)}return new Uint8Array(t)}}),Ay=mp({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),ky=mp({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),Iy=mp({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),Ry=mp({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),Py=mp({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),Cy=mp({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),Ty=mp({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),xy=mp({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),Dy=mp({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5}),Ny=gp({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),Ly=gp({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"}),By=mp({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3}),My=yp({prefix:"\0",name:"identity",encode:e=>{return t=e,(new TextDecoder).decode(t);var t},decode:e=>(e=>(new TextEncoder).encode(e))(e)}),Oy=new TextEncoder,Uy=new TextDecoder,Ky="json",qy=512,Fy=e=>Oy.encode(JSON.stringify(e)),Vy=e=>JSON.parse(Uy.decode(e)),zy="raw",jy=85,Hy=e=>lp(e),Gy=e=>lp(e),Wy=(e,t)=>{const{bytes:r,version:n}=e;return 0===n?Zy(r,Qy(e),t||bp.encoder):$y(r,Qy(e),t||Ay.encoder)},Yy=new WeakMap,Qy=e=>{const t=Yy.get(e);if(null==t){const t=new Map;return Yy.set(e,t),t}return t};class Xy{constructor(e,t,r,n){this.code=t,this.version=e,this.multihash=r,this.bytes=n,this["/"]=n}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:{const{code:e,multihash:t}=this;if(e!==eg)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(t.code!==tg)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return Xy.createV0(t)}default:throw Error("Can not convert CID version ".concat(this.version," to version 0. This is a bug please report"))}}toV1(){switch(this.version){case 0:{const{code:e,digest:t}=this.multihash,r=qp(e,t);return Xy.createV1(this.code,r)}case 1:return this;default:throw Error("Can not convert CID version ".concat(this.version," to version 1. This is a bug please report"))}}equals(e){return Xy.equals(this,e)}static equals(e,t){const r=t;return r&&e.code===r.code&&e.version===r.version&&((e,t)=>{if(e===t)return!0;{const r=t;return e.code===r.code&&e.size===r.size&&r.bytes instanceof Uint8Array&&((e,t)=>{if(e===t)return!0;if(e.byteLength!==t.byteLength)return!1;for(let r=0;r<e.byteLength;r++)if(e[r]!==t[r])return!1;return!0})(e.bytes,r.bytes)}})(e.multihash,r.multihash)}toString(e){return Wy(this,e)}toJSON(){return{"/":Wy(this)}}link(){return this}get[Symbol.toStringTag](){return"CID"}[Symbol.for("nodejs.util.inspect.custom")](){return"CID(".concat(this.toString(),")")}static asCID(e){if(null==e)return null;const t=e;if(t instanceof Xy)return t;if(null!=t["/"]&&t["/"]===t.bytes||t.asCID===t){const{version:e,code:r,multihash:n,bytes:i}=t;return new Xy(e,r,n,i||rg(e,r,n.bytes))}if(!0===t[ng]){const{version:e,multihash:r,code:n}=t,i=Fp(r);return Xy.create(e,n,i)}return null}static create(e,t,r){if("number"!==typeof t)throw new Error("String codecs are no longer supported");if(!(r.bytes instanceof Uint8Array))throw new Error("Invalid digest");switch(e){case 0:if(t!==eg)throw new Error("Version 0 CID must use dag-pb (code: ".concat(eg,") block encoding"));return new Xy(e,t,r,r.bytes);case 1:{const n=rg(e,t,r.bytes);return new Xy(e,t,r,n)}default:throw new Error("Invalid version")}}static createV0(e){return Xy.create(0,eg,e)}static createV1(e,t){return Xy.create(1,e,t)}static decode(e){const[t,r]=Xy.decodeFirst(e);if(r.length)throw new Error("Incorrect length");return t}static decodeFirst(e){const t=Xy.inspectBytes(e),r=t.size-t.multihashSize,n=lp(e.subarray(r,r+t.multihashSize));if(n.byteLength!==t.multihashSize)throw new Error("Incorrect length");const i=n.subarray(t.multihashSize-t.digestSize),o=new Vp(t.multihashCode,t.digestSize,i,n);return[0===t.version?Xy.createV0(o):Xy.createV1(t.codec,o),e.subarray(t.size)]}static inspectBytes(e){let t=0;const r=()=>{const[r,n]=Op(e.subarray(t));return t+=n,r};let n=r(),i=eg;if(18===n?(n=0,t=0):i=r(),0!==n&&1!==n)throw new RangeError("Invalid CID version ".concat(n));const o=t,s=r(),a=r(),c=t+a;return{version:n,codec:i,multihashCode:s,digestSize:a,multihashSize:c-o,size:c}}static parse(e,t){const[r,n]=Jy(e,t),i=Xy.decode(n);if(0===i.version&&"Q"!==e[0])throw Error("Version 0 CID string must not include multibase prefix");return Qy(i).set(r,e),i}}const Jy=(e,t)=>{switch(e[0]){case"Q":{const r=t||bp;return[bp.prefix,r.decode("".concat(bp.prefix).concat(e))]}case bp.prefix:{const r=t||bp;return[bp.prefix,r.decode(e)]}case Ay.prefix:{const r=t||Ay;return[Ay.prefix,r.decode(e)]}default:if(null==t)throw Error("To parse non base32 or base58btc encoded CID multibase decoder must be provided");return[e[0],t.decode(e)]}},Zy=(e,t,r)=>{const{prefix:n}=r;if(n!==bp.prefix)throw Error("Cannot string encode V0 in ".concat(r.name," encoding"));const i=t.get(n);if(null==i){const i=r.encode(e).slice(1);return t.set(n,i),i}return i},$y=(e,t,r)=>{const{prefix:n}=r,i=t.get(n);if(null==i){const i=r.encode(e);return t.set(n,i),i}return i},eg=112,tg=18,rg=(e,t,r)=>{const n=Kp(e),i=n+Kp(t),o=new Uint8Array(i+r.byteLength);return Up(e,o,0),Up(t,o,n),o.set(r,i),o},ng=Symbol.for("@ipld/js-cid/CID"),ig={...z,...U,...V,...M,...O,...q,...F,...C,...D,...K};let og;const sg=Symbol.for("nodejs.util.inspect.custom"),ag=Object.values(ig).map((e=>e.decoder)).reduce(((e,t)=>e.or(t)),ig.identity.decoder),cg=114,lg=36,ug=37;og=Symbol.toStringTag;class hg{constructor(e){Br(this,"type",void 0),Br(this,"multihash",void 0),Br(this,"privateKey",void 0),Br(this,"publicKey",void 0),Br(this,"string",void 0),Br(this,Mr,!0),this.type=e.type,this.multihash=e.multihash,this.privateKey=e.privateKey,Object.defineProperty(this,"string",{enumerable:!1,writable:!0})}get[og](){return"PeerId(".concat(this.toString(),")")}toString(){return null==this.string&&(this.string=bp.encode(this.multihash.bytes).slice(1)),this.string}toCID(){return Xy.createV1(cg,this.multihash)}toBytes(){return this.multihash.bytes}toJSON(){return this.toString()}equals(e){var t;if(e instanceof Uint8Array)return Yn(this.multihash.bytes,e);if("string"===typeof e)return function(e,t){var r;if(t=null!==(r=t)&&void 0!==r?r:ag,"1"===e.charAt(0)||"Q"===e.charAt(0)){const t=Fp(bp.decode("z".concat(e)));return e.startsWith("12D")?new pg({multihash:t}):e.startsWith("16U")?new fg({multihash:t}):new dg({multihash:t})}return function(e){try{const t=Fp(e);if(t.code===jp.code){if(t.digest.length===lg)return new pg({multihash:t});if(t.digest.length===ug)return new fg({multihash:t})}if(t.code===Yp.code)return new dg({multihash:t})}catch{return function(e){if(null==e||null==e.multihash||null==e.version||1===e.version&&e.code!==cg)throw new Error("Supplied PeerID CID is invalid");const t=e.multihash;if(t.code===Yp.code)return new dg({multihash:e.multihash});if(t.code===jp.code){if(t.digest.length===lg)return new pg({multihash:e.multihash});if(t.digest.length===ug)return new fg({multihash:e.multihash})}throw new Error("Supplied PeerID CID is invalid")}(Xy.decode(e))}throw new Error("Supplied PeerID CID is invalid")}(ag.decode(e))}(e).equals(this);if(null!=(null===e||void 0===e||null===(t=e.multihash)||void 0===t?void 0:t.bytes))return Yn(this.multihash.bytes,e.multihash.bytes);throw new Error("not valid Id")}[sg](){return"PeerId(".concat(this.toString(),")")}}class dg extends hg{constructor(e){super({...e,type:"RSA"}),Br(this,"type","RSA"),Br(this,"publicKey",void 0),this.publicKey=e.publicKey}}class pg extends hg{constructor(e){super({...e,type:"Ed25519"}),Br(this,"type","Ed25519"),Br(this,"publicKey",void 0),this.publicKey=e.multihash.digest}}class fg extends hg{constructor(e){super({...e,type:"secp256k1"}),Br(this,"type","secp256k1"),Br(this,"publicKey",void 0),this.publicKey=e.multihash.digest}}async function yg(e,t){return e.length===lg?new pg({multihash:qp(jp.code,e),privateKey:t}):e.length===ug?new fg({multihash:qp(jp.code,e),privateKey:t}):new dg({multihash:await Yp.digest(e),publicKey:e,privateKey:t})}var gg,mg;async function bg(e,t,r){const n=await async function(e,t){if(null==e.privateKey)throw new Error("PrivateKey was missing from PeerId");const r=await yy(e.privateKey);return r.sign(t)}(e,_g(t));if(null==e.publicKey)throw new Error("PublicKey was missing from local PeerId");return function(e,t,r){return mg.encode({identityKey:e,identitySig:t,extensions:null!==r&&void 0!==r?r:{webtransportCerthashes:[]}}).subarray()}(e.publicKey,n,r)}async function wg(e){return yg(e.identityKey)}function vg(e){return mg.decode(e)}function _g(e){const t=ps("noise-libp2p-static-key:");return Po([t,e],t.length+e.length)}async function Eg(e,t,r){const n=await yg(t.identityKey);if(!n.equals(r))throw new Error("Payload identity key ".concat(n.toString()," does not match expected remote peer ").concat(r.toString()));const i=_g(e);if(null==n.publicKey)throw new Error("PublicKey was missing from PeerId");if(null==t.identitySig)throw new Error("Signature was missing from message");const o=function(e){var t,r;const n=gf.decode(e),i=null!==(t=n.Data)&&void 0!==t?t:new Uint8Array;switch(n.Type){case ff.RSA:return py.rsa.unmarshalRsaPublicKey(i);case ff.Ed25519:return py.ed25519.unmarshalEd25519PublicKey(i);case ff.Secp256k1:return py.secp256k1.unmarshalSecp256k1PublicKey(i);default:throw fy(null!==(r=n.Type)&&void 0!==r?r:"RSA")}}(n.publicKey);if(!await o.verify(i,t.identitySig))throw new Error("Static key doesn't match to peer that signed payload!");return n}function Sg(e){return e instanceof Uint8Array&&32===e.length}!function(e){let t;e.codec=()=>(null==t&&(t=wf((function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!1!==r.lengthDelimited&&t.fork(),null!=e.webtransportCerthashes)for(const n of e.webtransportCerthashes)t.uint32(10),t.bytes(n);!1!==r.lengthDelimited&&t.ldelim()}),((e,t)=>{const r={webtransportCerthashes:[]},n=null==t?e.len:e.pos+t;for(;e.pos<n;){const t=e.uint32();if(t>>>3===1)r.webtransportCerthashes.push(e.bytes());else e.skipType(7&t)}return r}))),t),e.encode=t=>df(t,e.codec()),e.decode=t=>hf(t,e.codec())}(gg||(gg={})),function(e){let t;e.codec=()=>(null==t&&(t=wf((function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};var n,i;(!1!==r.lengthDelimited&&t.fork(),!0===r.writeDefaults||null!=e.identityKey&&e.identityKey.byteLength>0)&&(t.uint32(10),t.bytes(null!==(n=e.identityKey)&&void 0!==n?n:new Uint8Array(0)));(!0===r.writeDefaults||null!=e.identitySig&&e.identitySig.byteLength>0)&&(t.uint32(18),t.bytes(null!==(i=e.identitySig)&&void 0!==i?i:new Uint8Array(0)));null!=e.extensions&&(t.uint32(34),gg.codec().encode(e.extensions,t,{writeDefaults:!1})),!1!==r.lengthDelimited&&t.ldelim()}),((e,t)=>{const r={identityKey:new Uint8Array(0),identitySig:new Uint8Array(0)},n=null==t?e.len:e.pos+t;for(;e.pos<n;){const t=e.uint32();switch(t>>>3){case 1:r.identityKey=e.bytes();break;case 2:r.identitySig=e.bytes();break;case 4:r.extensions=gg.codec().decode(e,e.uint32());break;default:e.skipType(7&t)}}return r}))),t),e.encode=t=>df(t,e.codec()),e.decode=t=>hf(t,e.codec())}(mg||(mg={})),ia.formatters.b=e=>null==e?"undefined":bp.baseEncode(e),ia.formatters.t=e=>null==e?"undefined":Ay.baseEncode(e),ia.formatters.m=e=>null==e?"undefined":ef.baseEncode(e),ia.formatters.p=e=>null==e?"undefined":e.toString(),ia.formatters.c=e=>null==e?"undefined":e.toString(),ia.formatters.k=e=>null==e?"undefined":e.toString(),ia.formatters.a=e=>null==e?"undefined":e.toString();const Ag=function(e){let t=function(e){const t=()=>{};return t.enabled=!1,t.color="",t.diff=0,t.log=()=>{},t.namespace=e,t.destroy=()=>!0,t.extend=()=>t,t}("".concat(e,":trace"));return ia.enabled("".concat(e,":trace"))&&null!=ia.names.map((e=>e.toString())).find((e=>e.includes(":trace")))&&(t=ia("".concat(e,":trace"))),Object.assign(ia(e),{error:ia("".concat(e,":error")),trace:t})}("libp2p:noise");let kg;function Ig(e){e?(kg("LOCAL_PUBLIC_EPHEMERAL_KEY ".concat(Ro(e.publicKey,"hex"))),kg("LOCAL_PRIVATE_EPHEMERAL_KEY ".concat(Ro(e.privateKey,"hex")))):kg("Missing local ephemeral keys.")}function Rg(e){kg("REMOTE_EPHEMERAL_PUBLIC_KEY ".concat(Ro(e,"hex")))}kg=gu?Ag:Object.assign((()=>{}),{enabled:!1,trace:()=>{},error:()=>{}});class Pg{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;Br(this,"n",void 0),Br(this,"bytes",void 0),Br(this,"view",void 0),this.n=e,this.bytes=new Uint8Array(12),this.view=new DataView(this.bytes.buffer,this.bytes.byteOffset,this.bytes.byteLength),this.view.setUint32(4,e,!0)}increment(){this.n++,this.view.setUint32(4,this.n,!0)}getBytes(){return this.bytes}getUint64(){return this.n}assertValue(){if(this.n>4294967295)throw new Error("Cipherstate has reached maximum n, a new handshake must be performed")}}class Cg{constructor(e){Br(this,"crypto",void 0),this.crypto=e}encryptWithAd(e,t,r){const n=this.encrypt(e.k,e.n,t,r);return e.n.increment(),n}decryptWithAd(e,t,r,n){const{plaintext:i,valid:o}=this.decrypt(e.k,e.n,t,r,n);return o&&e.n.increment(),{plaintext:i,valid:o}}hasKey(e){return!this.isEmptyKey(e.k)}createEmptyKey(){return new Uint8Array(32)}isEmptyKey(e){return Yn(this.createEmptyKey(),e)}encrypt(e,t,r,n){return t.assertValue(),this.crypto.chaCha20Poly1305Encrypt(n,t.getBytes(),r,e)}encryptAndHash(e,t){let r;return r=this.hasKey(e.cs)?this.encryptWithAd(e.cs,e.h,t):t,this.mixHash(e,r),r}decrypt(e,t,r,n,i){t.assertValue();const o=this.crypto.chaCha20Poly1305Decrypt(n,t.getBytes(),r,e,i);return o?{plaintext:o,valid:!0}:{plaintext:new Uint8Array(0),valid:!1}}decryptAndHash(e,t){let r,n=!0;return this.hasKey(e.cs)?({plaintext:r,valid:n}=this.decryptWithAd(e.cs,e.h,t)):r=t,this.mixHash(e,t),{plaintext:r,valid:n}}dh(e,t){try{const r=this.crypto.generateX25519SharedKey(e,t);return 32===r.length?r:r.subarray(0,32)}catch(r){const e=r;return Ag.error(e),new Uint8Array(32)}}mixHash(e,t){e.h=this.getHash(e.h,t)}getHash(e,t){return this.crypto.hashSHA256(Po([e,t],e.length+t.length))}mixKey(e,t){const[r,n]=this.crypto.getHKDF(e.ck,t);e.cs=this.initializeKey(n),e.ck=r}initializeKey(e){return{k:e,n:new Pg}}initializeSymmetric(e){const t=ps(e,"utf-8"),r=this.hashProtocolName(t),n=r,i=this.createEmptyKey();return{cs:this.initializeKey(i),ck:n,h:r}}hashProtocolName(e){if(e.length<=32){const t=new Uint8Array(32);return t.set(e),t}return this.getHash(e,new Uint8Array(0))}split(e){const[t,r]=this.crypto.getHKDF(e.ck,new Uint8Array(0));return{cs1:this.initializeKey(t),cs2:this.initializeKey(r)}}writeMessageRegular(e,t){const r=this.encryptWithAd(e,new Uint8Array(0),t);return{ne:this.createEmptyKey(),ns:new Uint8Array(0),ciphertext:r}}readMessageRegular(e,t){return this.decryptWithAd(e,new Uint8Array(0),t.ciphertext)}}class Tg extends Cg{initializeInitiator(e,t,r,n){const i=this.initializeSymmetric("Noise_XX_25519_ChaChaPoly_SHA256");this.mixHash(i,e);return{ss:i,s:t,rs:r,psk:n,re:new Uint8Array(32)}}initializeResponder(e,t,r,n){const i=this.initializeSymmetric("Noise_XX_25519_ChaChaPoly_SHA256");this.mixHash(i,e);return{ss:i,s:t,rs:r,psk:n,re:new Uint8Array(32)}}writeMessageA(e,t,r){const n=new Uint8Array(0);e.e=void 0!==r?r:this.crypto.generateX25519KeyPair();const i=e.e.publicKey;this.mixHash(e.ss,i);return{ne:i,ns:n,ciphertext:this.encryptAndHash(e.ss,t)}}writeMessageB(e,t){e.e=this.crypto.generateX25519KeyPair();const r=e.e.publicKey;this.mixHash(e.ss,r),this.mixKey(e.ss,this.dh(e.e.privateKey,e.re));const n=e.s.publicKey,i=this.encryptAndHash(e.ss,n);this.mixKey(e.ss,this.dh(e.s.privateKey,e.re));return{ne:r,ns:i,ciphertext:this.encryptAndHash(e.ss,t)}}writeMessageC(e,t){const r=e.s.publicKey,n=this.encryptAndHash(e.ss,r);this.mixKey(e.ss,this.dh(e.s.privateKey,e.re));const i=this.encryptAndHash(e.ss,t),o={ne:this.createEmptyKey(),ns:n,ciphertext:i},{cs1:s,cs2:a}=this.split(e.ss);return{h:e.ss.h,messageBuffer:o,cs1:s,cs2:a}}readMessageA(e,t){return Sg(t.ne)&&(e.re=t.ne),this.mixHash(e.ss,e.re),this.decryptAndHash(e.ss,t.ciphertext)}readMessageB(e,t){if(Sg(t.ne)&&(e.re=t.ne),this.mixHash(e.ss,e.re),!e.e)throw new Error("Handshake state `e` param is missing.");this.mixKey(e.ss,this.dh(e.e.privateKey,e.re));const{plaintext:r,valid:n}=this.decryptAndHash(e.ss,t.ns);n&&Sg(r)&&(e.rs=r),this.mixKey(e.ss,this.dh(e.e.privateKey,e.rs));const{plaintext:i,valid:o}=this.decryptAndHash(e.ss,t.ciphertext);return{plaintext:i,valid:n&&o}}readMessageC(e,t){const{plaintext:r,valid:n}=this.decryptAndHash(e.ss,t.ns);if(n&&Sg(r)&&(e.rs=r),!e.e)throw new Error("Handshake state `e` param is missing.");this.mixKey(e.ss,this.dh(e.e.privateKey,e.rs));const{plaintext:i,valid:o}=this.decryptAndHash(e.ss,t.ciphertext),{cs1:s,cs2:a}=this.split(e.ss);return{h:e.ss.h,plaintext:i,valid:n&&o,cs1:s,cs2:a}}initSession(e,t,r){const n=this.createEmptyKey(),i=new Uint8Array(32);let o;return o=e?this.initializeInitiator(t,r,i,n):this.initializeResponder(t,r,i,n),{hs:o,i:e,mc:0}}sendMessage(e,t,r){let n;if(0===e.mc)n=this.writeMessageA(e.hs,t,r);else if(1===e.mc)n=this.writeMessageB(e.hs,t);else if(2===e.mc){const{h:r,messageBuffer:i,cs1:o,cs2:s}=this.writeMessageC(e.hs,t);n=i,e.h=r,e.cs1=o,e.cs2=s}else{if(!(e.mc>2))throw new Error("Session invalid.");if(e.i){if(!e.cs1)throw new Error("CS1 (cipher state) is not defined");n=this.writeMessageRegular(e.cs1,t)}else{if(!e.cs2)throw new Error("CS2 (cipher state) is not defined");n=this.writeMessageRegular(e.cs2,t)}}return e.mc++,n}recvMessage(e,t){let r=new Uint8Array(0),n=!1;if(0===e.mc)({plaintext:r,valid:n}=this.readMessageA(e.hs,t));else if(1===e.mc)({plaintext:r,valid:n}=this.readMessageB(e.hs,t));else if(2===e.mc){const{h:i,plaintext:o,valid:s,cs1:a,cs2:c}=this.readMessageC(e.hs,t);r=o,n=s,e.h=i,e.cs1=a,e.cs2=c}return e.mc++,{plaintext:r,valid:n}}}class xg{constructor(e,t,r,n,i,o,s,a){Br(this,"isInitiator",void 0),Br(this,"session",void 0),Br(this,"remotePeer",void 0),Br(this,"remoteExtensions",{webtransportCerthashes:[]}),Br(this,"payload",void 0),Br(this,"connection",void 0),Br(this,"xx",void 0),Br(this,"staticKeypair",void 0),Br(this,"prologue",void 0),this.isInitiator=e,this.payload=t,this.prologue=r,this.staticKeypair=i,this.connection=o,s&&(this.remotePeer=s),this.xx=null!==a&&void 0!==a?a:new Tg(n),this.session=this.xx.initSession(this.isInitiator,this.prologue,this.staticKeypair)}async propose(){var e;if(e=this.session.hs.s,kg("LOCAL_STATIC_PUBLIC_KEY ".concat(Ro(e.publicKey,"hex"))),kg("LOCAL_STATIC_PRIVATE_KEY ".concat(Ro(e.privateKey,"hex"))),this.isInitiator){Ag.trace("Stage 0 - Initiator starting to send first message.");const e=this.xx.sendMessage(this.session,new Uint8Array(0));await this.connection.write(function(e){return Po([e.ne,e.ciphertext],e.ne.length+e.ciphertext.length)}(e)),Ag.trace("Stage 0 - Initiator finished sending first message."),Ig(this.session.hs.e)}else{Ag.trace("Stage 0 - Responder waiting to receive first message...");const e=function(e){if(e.length<32)throw new Error("Cannot decode stage 0 MessageBuffer: length less than 32 bytes.");return{ne:e.subarray(0,32),ciphertext:e.subarray(32,e.length),ns:new Uint8Array(0)}}((await this.connection.read()).subarray()),{valid:t}=this.xx.recvMessage(this.session,e);if(!t)throw new ip("xx handshake stage 0 validation fail");Ag.trace("Stage 0 - Responder received first message."),Rg(this.session.hs.re)}}async exchange(){if(this.isInitiator){Ag.trace("Stage 1 - Initiator waiting to receive first message from responder...");const r=function(e){if(e.length<80)throw new Error("Cannot decode stage 1 MessageBuffer: length less than 80 bytes.");return{ne:e.subarray(0,32),ns:e.subarray(32,80),ciphertext:e.subarray(80,e.length)}}((await this.connection.read()).subarray()),{plaintext:n,valid:i}=this.xx.recvMessage(this.session,r);if(!i)throw new ip("xx handshake stage 1 validation fail");Ag.trace("Stage 1 - Initiator received the message."),Rg(this.session.hs.re),e=this.session.hs.rs,kg("REMOTE_STATIC_PUBLIC_KEY ".concat(Ro(e,"hex"))),Ag.trace("Initiator going to check remote's signature...");try{const e=vg(n);this.remotePeer=this.remotePeer||await wg(e),await Eg(this.session.hs.rs,e,this.remotePeer),this.setRemoteNoiseExtension(e.extensions)}catch(t){throw new np("Error occurred while verifying signed payload: ".concat(t.message))}Ag.trace("All good with the signature!")}else{Ag.trace("Stage 1 - Responder sending out first message with signed payload and static key.");const e=this.xx.sendMessage(this.session,this.payload);await this.connection.write(function(e){return Po([e.ne,e.ns,e.ciphertext],e.ne.length+e.ns.length+e.ciphertext.length)}(e)),Ag.trace("Stage 1 - Responder sent the second handshake message with signed payload."),Ig(this.session.hs.e)}var e}async finish(){if(this.isInitiator){Ag.trace("Stage 2 - Initiator sending third handshake message.");const e=this.xx.sendMessage(this.session,this.payload);await this.connection.write(function(e){return Po([e.ns,e.ciphertext],e.ns.length+e.ciphertext.length)}(e)),Ag.trace("Stage 2 - Initiator sent message with signed payload.")}else{Ag.trace("Stage 2 - Responder waiting for third handshake message...");const e=function(e){if(e.length<48)throw new Error("Cannot decode stage 2 MessageBuffer: length less than 48 bytes.");return{ne:new Uint8Array(0),ns:e.subarray(0,48),ciphertext:e.subarray(48,e.length)}}((await this.connection.read()).subarray()),{plaintext:r,valid:n}=this.xx.recvMessage(this.session,e);if(!n)throw new ip("xx handshake stage 2 validation fail");Ag.trace("Stage 2 - Responder received the message, finished handshake.");try{const e=vg(r);this.remotePeer=this.remotePeer||await wg(e),await Eg(this.session.hs.rs,e,this.remotePeer),this.setRemoteNoiseExtension(e.extensions)}catch(t){throw new np("Error occurred while verifying signed payload: ".concat(t.message))}}var e;(e=this.session).cs1&&e.cs2?(kg("CIPHER_STATE_1 ".concat(e.cs1.n.getUint64()," ").concat(Ro(e.cs1.k,"hex"))),kg("CIPHER_STATE_2 ".concat(e.cs2.n.getUint64()," ").concat(Ro(e.cs2.k,"hex")))):kg("Missing cipher state.")}encrypt(e,t){const r=this.getCS(t);return this.xx.encryptWithAd(r,new Uint8Array(0),e)}decrypt(e,t,r){const n=this.getCS(t,!1);return this.xx.decryptWithAd(n,new Uint8Array(0),e,r)}getRemoteStaticKey(){return this.session.hs.rs}getCS(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(!e.cs1||!e.cs2)throw new ip("Handshake not completed properly, cipher state does not exist.");return this.isInitiator?t?e.cs1:e.cs2:t?e.cs2:e.cs1}setRemoteNoiseExtension(e){e&&(this.remoteExtensions=e)}}class Dg{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};Br(this,"protocol","/noise"),Br(this,"crypto",void 0),Br(this,"prologue",void 0),Br(this,"staticKeys",void 0),Br(this,"extensions",void 0),Br(this,"metrics",void 0);const{staticNoiseKey:t,extensions:r,crypto:n,prologueBytes:i,metrics:o}=e;this.crypto=null!==n&&void 0!==n?n:Jd,this.extensions=r,this.metrics=o?function(e){return{xxHandshakeSuccesses:e.registerCounter("libp2p_noise_xxhandshake_successes_total",{help:"Total count of noise xxHandshakes successes_"}),xxHandshakeErrors:e.registerCounter("libp2p_noise_xxhandshake_error_total",{help:"Total count of noise xxHandshakes errors"}),encryptedPackets:e.registerCounter("libp2p_noise_encrypted_packets_total",{help:"Total count of noise encrypted packets successfully"}),decryptedPackets:e.registerCounter("libp2p_noise_decrypted_packets_total",{help:"Total count of noise decrypted packets"}),decryptErrors:e.registerCounter("libp2p_noise_decrypt_errors_total",{help:"Total count of noise decrypt errors"})}}(o):void 0,this.staticKeys=t?this.crypto.generateX25519KeyPairFromSeed(t):this.crypto.generateX25519KeyPair(),this.prologue=null!==i&&void 0!==i?i:new Uint8Array(0)}async secureOutbound(e,t,r){const n=uu(t,{lengthEncoder:Zd,lengthDecoder:$d,maxDataLength:fu}),i=await this.performHandshake({connection:n,isInitiator:!0,localPeer:e,remotePeer:r});return{conn:await this.createSecureConnection(n,i),remoteExtensions:i.remoteExtensions,remotePeer:i.remotePeer}}async secureInbound(e,t,r){const n=uu(t,{lengthEncoder:Zd,lengthDecoder:$d,maxDataLength:fu}),i=await this.performHandshake({connection:n,isInitiator:!1,localPeer:e,remotePeer:r});return{conn:await this.createSecureConnection(n,i),remotePeer:i.remotePeer,remoteExtensions:i.remoteExtensions}}async performHandshake(e){const t=await bg(e.localPeer,this.staticKeys.publicKey,this.extensions);return this.performXXHandshake(e,t)}async performXXHandshake(e,t){const{isInitiator:r,remotePeer:n,connection:i}=e,o=new xg(r,t,this.prologue,this.crypto,this.staticKeys,i,n);try{var s;await o.propose(),await o.exchange(),await o.finish(),null===(s=this.metrics)||void 0===s||s.xxHandshakeSuccesses.increment()}catch(c){var a;if(null===(a=this.metrics)||void 0===a||a.xxHandshakeErrors.increment(),c instanceof Error)throw c.message="Error occurred during XX handshake: ".concat(c.message),c}return o}async createSecureConnection(e,t){const[r,n]=function(){const e=hu(),t=hu();return[{source:e.source,sink:t.sink},{source:t.source,sink:e.sink}]}(),i=e.unwrap();return await rl(r,function(e,t){return async function*(r){for await(const n of r)for(let r=0;r<n.length;r+=yu){let i=r+yu;i>n.length&&(i=n.length);const o=e.encrypt(n.subarray(r,i),e.session);null===t||void 0===t||t.encryptedPackets.increment(),yield Zd(o.byteLength),yield o}}}(t,this.metrics),i,(e=>Yc(e,{lengthDecoder:$d})),function(e,t){return async function*(r){for await(const n of r)for(let r=0;r<n.length;r+=fu){let i=r+fu;if(i>n.length&&(i=n.length),i-ep<r)throw new Error("Invalid chunk");const o=n.subarray(r,i),s=n.subarray(r,i-ep),{plaintext:a,valid:c}=e.decrypt(o,e.session,s);if(!c)throw null===t||void 0===t||t.decryptErrors.increment(),new Error("Failed to validate decrypted chunk");null===t||void 0===t||t.decryptedPackets.increment(),yield a}}}(t,this.metrics),r),n}}function Ng(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return()=>new Dg(e)}var Lg=function(e,t){if(e.length>=255)throw new TypeError("Alphabet too long");for(var r=new Uint8Array(256),n=0;n<r.length;n++)r[n]=255;for(var i=0;i<e.length;i++){var o=e.charAt(i),s=o.charCodeAt(0);if(255!==r[s])throw new TypeError(o+" is ambiguous");r[s]=i}var a=e.length,c=e.charAt(0),l=Math.log(a)/Math.log(256),u=Math.log(256)/Math.log(a);function h(e){if("string"!==typeof e)throw new TypeError("Expected String");if(0===e.length)return new Uint8Array;var t=0;if(" "!==e[t]){for(var n=0,i=0;e[t]===c;)n++,t++;for(var o=(e.length-t)*l+1>>>0,s=new Uint8Array(o);e[t];){var u=r[e.charCodeAt(t)];if(255===u)return;for(var h=0,d=o-1;(0!==u||h<i)&&-1!==d;d--,h++)u+=a*s[d]>>>0,s[d]=u%256>>>0,u=u/256>>>0;if(0!==u)throw new Error("Non-zero carry");i=h,t++}if(" "!==e[t]){for(var p=o-i;p!==o&&0===s[p];)p++;for(var f=new Uint8Array(n+(o-p)),y=n;p!==o;)f[y++]=s[p++];return f}}}return{encode:function(t){if(t instanceof Uint8Array||(ArrayBuffer.isView(t)?t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength):Array.isArray(t)&&(t=Uint8Array.from(t))),!(t instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(0===t.length)return"";for(var r=0,n=0,i=0,o=t.length;i!==o&&0===t[i];)i++,r++;for(var s=(o-i)*u+1>>>0,l=new Uint8Array(s);i!==o;){for(var h=t[i],d=0,p=s-1;(0!==h||d<n)&&-1!==p;p--,d++)h+=256*l[p]>>>0,l[p]=h%a>>>0,h=h/a>>>0;if(0!==h)throw new Error("Non-zero carry");n=d,i++}for(var f=s-n;f!==s&&0===l[f];)f++;for(var y=c.repeat(r);f<s;++f)y+=e.charAt(l[f]);return y},decodeUnsafe:h,decode:function(e){var r=h(e);if(r)return r;throw new Error("Non-".concat(t," character"))}}};const Bg=Lg;new Uint8Array(0);class Mg{constructor(e,t,r){this.name=e,this.prefix=t,this.baseEncode=r}encode(e){if(e instanceof Uint8Array)return"".concat(this.prefix).concat(this.baseEncode(e));throw Error("Unknown type, must be binary type")}}class Og{constructor(e,t,r){if(this.name=e,this.prefix=t,void 0===t.codePointAt(0))throw new Error("Invalid prefix character");this.prefixCodePoint=t.codePointAt(0),this.baseDecode=r}decode(e){if("string"===typeof e){if(e.codePointAt(0)!==this.prefixCodePoint)throw Error("Unable to decode multibase string ".concat(JSON.stringify(e),", ").concat(this.name," decoder only supports inputs prefixed with ").concat(this.prefix));return this.baseDecode(e.slice(this.prefix.length))}throw Error("Can only multibase decode strings")}or(e){return Kg(this,e)}}class Ug{constructor(e){this.decoders=e}or(e){return Kg(this,e)}decode(e){const t=e[0],r=this.decoders[t];if(r)return r.decode(e);throw RangeError("Unable to decode multibase string ".concat(JSON.stringify(e),", only inputs prefixed with ").concat(Object.keys(this.decoders)," are supported"))}}const Kg=(e,t)=>new Ug({...e.decoders||{[e.prefix]:e},...t.decoders||{[t.prefix]:t}});class qg{constructor(e,t,r,n){this.name=e,this.prefix=t,this.baseEncode=r,this.baseDecode=n,this.encoder=new Mg(e,t,r),this.decoder=new Og(e,t,n)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}}const Fg=e=>{let{name:t,prefix:r,encode:n,decode:i}=e;return new qg(t,r,n,i)},Vg=e=>{let{prefix:t,name:r,alphabet:n}=e;const{encode:i,decode:o}=Bg(n,r);return Fg({prefix:t,name:r,encode:i,decode:e=>(e=>{if(e instanceof Uint8Array&&"Uint8Array"===e.constructor.name)return e;if(e instanceof ArrayBuffer)return new Uint8Array(e);if(ArrayBuffer.isView(e))return new Uint8Array(e.buffer,e.byteOffset,e.byteLength);throw new Error("Unknown type, must be binary type")})(o(e))})},zg=e=>{let{name:t,prefix:r,bitsPerChar:n,alphabet:i}=e;return Fg({prefix:r,name:t,encode:e=>((e,t,r)=>{const n="="===t[t.length-1],i=(1<<r)-1;let o="",s=0,a=0;for(let c=0;c<e.length;++c)for(a=a<<8|e[c],s+=8;s>r;)s-=r,o+=t[i&a>>s];if(s&&(o+=t[i&a<<r-s]),n)for(;o.length*r&7;)o+="=";return o})(e,i,n),decode:e=>((e,t,r,n)=>{const i={};for(let u=0;u<t.length;++u)i[t[u]]=u;let o=e.length;for(;"="===e[o-1];)--o;const s=new Uint8Array(o*r/8|0);let a=0,c=0,l=0;for(let u=0;u<o;++u){const t=i[e[u]];if(void 0===t)throw new SyntaxError("Non-".concat(n," character"));c=c<<r|t,a+=r,a>=8&&(a-=8,s[l++]=255&c>>a)}if(a>=r||255&c<<8-a)throw new SyntaxError("Unexpected end of data");return s})(e,i,n,t)})},jg=zg({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),Hg=(zg({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),zg({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),zg({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),zg({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),zg({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),zg({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),zg({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),zg({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5}),Vg({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"})),Gg=(Vg({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"}),zg({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}));zg({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),zg({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),zg({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});function Wg(e){let t=function(e){const t=()=>{};return t.enabled=!1,t.color="",t.diff=0,t.log=()=>{},t.namespace=e,t.destroy=()=>!0,t.extend=()=>t,t}("".concat(e,":trace"));return ia.enabled("".concat(e,":trace"))&&null!=ia.names.map((e=>e.toString())).find((e=>e.includes(":trace")))&&(t=ia("".concat(e,":trace"))),Object.assign(ia(e),{error:ia("".concat(e,":error")),trace:t})}ia.formatters.b=e=>null==e?"undefined":Hg.baseEncode(e),ia.formatters.t=e=>null==e?"undefined":jg.baseEncode(e),ia.formatters.m=e=>null==e?"undefined":Gg.baseEncode(e),ia.formatters.p=e=>null==e?"undefined":e.toString(),ia.formatters.c=e=>null==e?"undefined":e.toString(),ia.formatters.k=e=>null==e?"undefined":e.toString(),ia.formatters.a=e=>null==e?"undefined":e.toString();class Yg extends Error{constructor(e,t){super(null!==e&&void 0!==e?e:"The operation was aborted"),this.type="aborted",this.code=null!==t&&void 0!==t?t:"ABORT_ERR"}}function Qg(e,t,r){const n=null!==r&&void 0!==r?r:{},i=function(e){if(null!=e){if("function"===typeof e[Symbol.iterator])return e[Symbol.iterator]();if("function"===typeof e[Symbol.asyncIterator])return e[Symbol.asyncIterator]();if("function"===typeof e.next)return e}throw new Error("argument is not an iterator or iterable")}(e);return async function*(){let r;const o=()=>{null!=r&&r()};for(t.addEventListener("abort",o);;){let a;try{if(t.aborted){const{abortMessage:e,abortCode:t}=n;throw new Yg(e,t)}const e=new Promise(((e,t)=>{r=()=>{const{abortMessage:e,abortCode:r}=n;t(new Yg(e,r))}}));a=await Promise.race([e,i.next()]),r=null}catch(s){t.removeEventListener("abort",o);const r="aborted"===s.type&&t.aborted;if(r&&null!=n.onAbort&&n.onAbort(e),"function"===typeof i.return)try{const e=i.return();e instanceof Promise&&e.catch((e=>{null!=n.onReturnError&&n.onReturnError(e)}))}catch(s){null!=n.onReturnError&&n.onReturnError(s)}if(r&&!0===n.returnOnAbort)return;throw s}if(!0===a.done)break;yield a.value}t.removeEventListener("abort",o)}()}var Xg,Jg=__webpack_require__(7896);!function(e){e[e.NEW_STREAM=0]="NEW_STREAM",e[e.MESSAGE_RECEIVER=1]="MESSAGE_RECEIVER",e[e.MESSAGE_INITIATOR=2]="MESSAGE_INITIATOR",e[e.CLOSE_RECEIVER=3]="CLOSE_RECEIVER",e[e.CLOSE_INITIATOR=4]="CLOSE_INITIATOR",e[e.RESET_RECEIVER=5]="RESET_RECEIVER",e[e.RESET_INITIATOR=6]="RESET_INITIATOR"}(Xg||(Xg={}));const Zg=Object.freeze({0:"NEW_STREAM",1:"MESSAGE_RECEIVER",2:"MESSAGE_INITIATOR",3:"CLOSE_RECEIVER",4:"CLOSE_INITIATOR",5:"RESET_RECEIVER",6:"RESET_INITIATOR"}),$g=Object.freeze({NEW_STREAM:Xg.NEW_STREAM,MESSAGE:Xg.MESSAGE_INITIATOR,CLOSE:Xg.CLOSE_INITIATOR,RESET:Xg.RESET_INITIATOR}),em=Object.freeze({MESSAGE:Xg.MESSAGE_RECEIVER,CLOSE:Xg.CLOSE_RECEIVER,RESET:Xg.RESET_RECEIVER}),tm=1<<20;class rm{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:tm,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:4194304;Br(this,"_buffer",void 0),Br(this,"_headerInfo",void 0),Br(this,"_maxMessageSize",void 0),Br(this,"_maxUnprocessedMessageQueueSize",void 0),this._buffer=new Ic,this._headerInfo=null,this._maxMessageSize=e,this._maxUnprocessedMessageQueueSize=t}write(e){if(null==e||0===e.length)return[];if(this._buffer.append(e),this._buffer.byteLength>this._maxUnprocessedMessageQueueSize)throw Object.assign(new Error("unprocessed message queue size too large!"),{code:"ERR_MSG_QUEUE_TOO_BIG"});const t=[];for(;0!==this._buffer.length;){if(null==this._headerInfo)try{this._headerInfo=this._decodeHeader(this._buffer)}catch(r){if("ERR_MSG_TOO_BIG"===r.code)throw r;break}const{id:e,type:n,length:i,offset:o}=this._headerInfo;if(this._buffer.length-o<i)break;const s={id:e,type:n};n!==Xg.NEW_STREAM&&n!==Xg.MESSAGE_INITIATOR&&n!==Xg.MESSAGE_RECEIVER||(s.data=this._buffer.sublist(o,o+i)),t.push(s),this._buffer.consume(o+i),this._headerInfo=null}return t}_decodeHeader(e){const{value:t,offset:r}=om(e),{value:n,offset:i}=om(e,r),o=7&t;if(null==Zg[o])throw new Error("Invalid type received: ".concat(o));if(n>this._maxMessageSize)throw Object.assign(new Error("message size too large!"),{code:"ERR_MSG_TOO_BIG"});return{id:t>>3,type:o,offset:r+i,length:n}}}const nm=128,im=127;function om(e){let t,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=0,i=0,o=r;const s=e.length;do{if(o>=s||i>49)throw r=0,new RangeError("Could not decode varint");t=e.get(o++),n+=i<28?(t&im)<<i:(t&im)*Math.pow(2,i),i+=7}while(t>=nm);return r=o-r,{value:n,offset:r}}const sm=1048576,am=(e,t)=>{t.append(e)};const cm=function(e,t){return null!=e[Symbol.asyncIterator]?async function*(){var r,n,i;let o=new Ic,s=!1,a=Qc(),c=Number(null!==(r=null===t||void 0===t?void 0:t.size)&&void 0!==r?r:sm);if((isNaN(c)||0===c||c<0)&&(c=sm),c!==Math.round(c))throw new Error("Batch size must be an integer");const l=null!==(n=null===t||void 0===t?void 0:t.yieldAfter)&&void 0!==n?n:0,u=null!==(i=null===t||void 0===t?void 0:t.serialize)&&void 0!==i?i:am;for(Promise.resolve().then((async()=>{try{let t;for await(const r of e)u(r,o),o.byteLength>=c?(clearTimeout(t),a.resolve()):t=setTimeout((()=>{a.resolve()}),l);clearTimeout(t),a.resolve()}catch(t){a.reject(t)}finally{s=!0}}));!s;)if(await a.promise,a=Qc(),o.byteLength>0){const e=o;o=new Ic,yield e.subarray()}}():function*(){var r,n;const i=new Ic;let o=Number(null!==(r=null===t||void 0===t?void 0:t.size)&&void 0!==r?r:sm);if((isNaN(o)||0===o||o<0)&&(o=sm),o!==Math.round(o))throw new Error("Batch size must be an integer");const s=null!==(n=null===t||void 0===t?void 0:t.serialize)&&void 0!==n?n:am;for(const t of e)s(t,i),i.byteLength>=o&&(yield i.subarray(0,o),i.consume(o));i.byteLength>0&&(yield i.subarray())}()},lm=Math.pow(2,7),um=Math.pow(2,14),hm=Math.pow(2,21),dm=Math.pow(2,28),pm=Math.pow(2,35),fm=Math.pow(2,42),ym=Math.pow(2,49),gm=128;function mm(e){if(e<lm)return 1;if(e<um)return 2;if(e<hm)return 3;if(e<dm)return 4;if(e<pm)return 5;if(e<fm)return 6;if(e<ym)return 7;if(null!=Number.MAX_SAFE_INTEGER&&e>Number.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return 8}function bm(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;return null==t&&(t=Eo(mm(e))),t instanceof Uint8Array?function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;switch(mm(e)){case 8:t[r++]=255&e|gm,e/=128;case 7:t[r++]=255&e|gm,e/=128;case 6:t[r++]=255&e|gm,e/=128;case 5:t[r++]=255&e|gm,e/=128;case 4:t[r++]=255&e|gm,e>>>=7;case 3:t[r++]=255&e|gm,e>>>=7;case 2:t[r++]=255&e|gm,e>>>=7;case 1:t[r++]=255&e,e>>>=7;break;default:throw new Error("unreachable")}return t}(e,t,r):function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;switch(mm(e)){case 8:t.set(r++,255&e|gm),e/=128;case 7:t.set(r++,255&e|gm),e/=128;case 6:t.set(r++,255&e|gm),e/=128;case 5:t.set(r++,255&e|gm),e/=128;case 4:t.set(r++,255&e|gm),e>>>=7;case 3:t.set(r++,255&e|gm),e>>>=7;case 2:t.set(r++,255&e|gm),e>>>=7;case 1:t.set(r++,255&e),e>>>=7;break;default:throw new Error("unreachable")}return t}(e,t,r)}function wm(e){return new Uint8Array(e)}const vm=10240;const _m=new class{constructor(){Br(this,"_pool",void 0),Br(this,"_poolOffset",void 0),this._pool=wm(vm),this._poolOffset=0}write(e,t){const r=this._pool;let n=this._poolOffset;bm(e.id<<3|e.type,r,n),n+=mm(e.id<<3|e.type),e.type!==Xg.NEW_STREAM&&e.type!==Xg.MESSAGE_INITIATOR&&e.type!==Xg.MESSAGE_RECEIVER||null==e.data?(bm(0,r,n),n+=mm(0)):(bm(e.data.length,r,n),n+=mm(e.data.length));const i=r.subarray(this._poolOffset,n);vm-n<100?(this._pool=wm(vm),this._poolOffset=0):this._poolOffset=n,t.append(i),e.type!==Xg.NEW_STREAM&&e.type!==Xg.MESSAGE_INITIATOR&&e.type!==Xg.MESSAGE_RECEIVER||null==e.data||t.append(e.data)}};function Em(e){return null!=e&&"function"===typeof e.then}class Sm{constructor(e){var t;Br(this,"id",void 0),Br(this,"direction",void 0),Br(this,"timeline",void 0),Br(this,"protocol",void 0),Br(this,"metadata",void 0),Br(this,"source",void 0),Br(this,"status",void 0),Br(this,"readStatus",void 0),Br(this,"writeStatus",void 0),Br(this,"sinkController",void 0),Br(this,"sinkEnd",void 0),Br(this,"endErr",void 0),Br(this,"streamSource",void 0),Br(this,"onEnd",void 0),Br(this,"onCloseRead",void 0),Br(this,"onCloseWrite",void 0),Br(this,"onReset",void 0),Br(this,"onAbort",void 0),Br(this,"log",void 0),this.sinkController=new AbortController,this.sinkEnd=Qc(),this.log=e.log,this.status="open",this.readStatus="ready",this.writeStatus="ready",this.id=e.id,this.metadata=null!==(t=e.metadata)&&void 0!==t?t:{},this.direction=e.direction,this.timeline={open:Date.now()},this.onEnd=e.onEnd,this.onCloseRead=null===e||void 0===e?void 0:e.onCloseRead,this.onCloseWrite=null===e||void 0===e?void 0:e.onCloseWrite,this.onReset=null===e||void 0===e?void 0:e.onReset,this.onAbort=null===e||void 0===e?void 0:e.onAbort,this.source=this.streamSource=$c({onEnd:e=>{null!=e?this.log.trace("source ended with error",e):this.log.trace("source ended"),this.readStatus="closed",this.onSourceEnd(e)}}),this.sink=this.sink.bind(this)}async sink(e){if("ready"!==this.writeStatus)throw new rp('writable end state is "'.concat(this.writeStatus,'" not "ready"'),"ERR_SINK_INVALID_STATE");try{this.writeStatus="writing";const t={signal:this.sinkController.signal};if("outbound"===this.direction){const e=this.sendNewStream(t);Em(e)&&await e}e=Qg(e,this.sinkController.signal,{returnOnAbort:!0}),this.log.trace("sink reading from source");for await(let r of e){r=r instanceof Uint8Array?new Ic(r):r;const e=this.sendData(r,t);Em(e)&&await e}this.log.trace("sink finished reading from source"),this.writeStatus="done",this.log.trace("sink calling closeWrite"),await this.closeWrite(t),this.onSinkEnd()}catch(t){throw this.log.trace("sink ended with error, calling abort with error",t),this.abort(t),t}finally{this.log.trace("resolve sink end"),this.sinkEnd.resolve()}}onSourceEnd(e){var t;null==this.timeline.closeRead&&(this.timeline.closeRead=Date.now(),null!=e&&null==this.endErr&&(this.endErr=e),null===(t=this.onCloseRead)||void 0===t||t.call(this),null!=this.timeline.closeWrite?(this.log.trace("source and sink ended"),this.timeline.close=Date.now(),null!=this.onEnd&&this.onEnd(this.endErr)):this.log.trace("source ended, waiting for sink to end"))}onSinkEnd(e){var t;null==this.timeline.closeWrite&&(this.timeline.closeWrite=Date.now(),null!=e&&null==this.endErr&&(this.endErr=e),null===(t=this.onCloseWrite)||void 0===t||t.call(this),null!=this.timeline.closeRead?(this.log.trace("sink and source ended"),this.timeline.close=Date.now(),null!=this.onEnd&&this.onEnd(this.endErr)):this.log.trace("sink ended, waiting for source to end"))}async close(e){this.log.trace("closing gracefully"),this.status="closing",await Promise.all([this.closeRead(e),this.closeWrite(e)]),this.status="closed",this.log.trace("closed gracefully")}async closeRead(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if("closing"===this.readStatus||"closed"===this.readStatus)return;this.log.trace('closing readable end of stream with starting read status "%s"',this.readStatus);const t=this.readStatus;this.readStatus="closing","ready"===t&&(this.log.trace("ending internal source queue"),this.streamSource.end()),"reset"!==this.status&&"aborted"!==this.status&&null==this.timeline.closeRead&&(this.log.trace("send close read to remote"),await this.sendCloseRead(e)),this.log.trace("closed readable end of stream")}async closeWrite(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if("closing"===this.writeStatus||"closed"===this.writeStatus)return;this.log.trace('closing writable end of stream with starting write status "%s"',this.writeStatus);const t=this.writeStatus;"ready"===this.writeStatus&&(this.log.trace("sink was never sunk, sink an empty array"),await this.sink([])),this.writeStatus="closing","writing"===t&&await new Promise(((e,t)=>{queueMicrotask((()=>{this.log.trace("aborting source passed to .sink"),this.sinkController.abort(),this.sinkEnd.promise.then(e,t)}))})),"reset"!==this.status&&"aborted"!==this.status&&null==this.timeline.closeWrite&&(this.log.trace("send close write to remote"),await this.sendCloseWrite(e)),this.writeStatus="closed",this.log.trace("closed writable end of stream")}abort(e){var t;if("closed"===this.status||"aborted"===this.status||"reset"===this.status)return;this.log("abort with error",e),this.log("try to send reset to remote");const r=this.sendReset();Em(r)&&r.catch((e=>{this.log.error("error sending reset message",e)})),this.status="aborted",this.timeline.abort=Date.now(),this._closeSinkAndSource(e),null===(t=this.onAbort)||void 0===t||t.call(this,e)}reset(){var e;if("closed"===this.status||"aborted"===this.status||"reset"===this.status)return;const t=new rp("stream reset","ERR_STREAM_RESET");this.status="reset",this._closeSinkAndSource(t),null===(e=this.onReset)||void 0===e||e.call(this)}_closeSinkAndSource(e){this._closeSink(e),this._closeSource(e)}_closeSink(e){"writing"===this.writeStatus&&(this.log.trace("end sink source"),this.sinkController.abort()),this.onSinkEnd(e)}_closeSource(e){"closing"!==this.readStatus&&"closed"!==this.readStatus&&(this.log.trace("ending source with %d bytes to be read by consumer",this.streamSource.readableLength),this.readStatus="closing",this.streamSource.end(e))}remoteCloseWrite(){"closing"!==this.readStatus&&"closed"!==this.readStatus?(this.log.trace("remote close write"),this._closeSource()):this.log("received remote close write but local source is already closed")}remoteCloseRead(){"closing"!==this.writeStatus&&"closed"!==this.writeStatus?(this.log.trace("remote close read"),this._closeSink()):this.log("received remote close read but local sink is already closed")}destroy(){"closed"!==this.status&&"aborted"!==this.status&&"reset"!==this.status?(this.log.trace("muxer destroyed"),this._closeSinkAndSource()):this.log("received destroy but we are already closed")}sourcePush(e){this.streamSource.push(e)}sourceReadableLength(){return this.streamSource.readableLength}}class Am extends Sm{constructor(e){super(e),Br(this,"name",void 0),Br(this,"streamId",void 0),Br(this,"send",void 0),Br(this,"types",void 0),Br(this,"maxDataSize",void 0),this.types="outbound"===e.direction?$g:em,this.send=e.send,this.name=e.name,this.streamId=e.streamId,this.maxDataSize=e.maxDataSize}async sendNewStream(){await this.send({id:this.streamId,type:$g.NEW_STREAM,data:new Ic(ps(this.name))})}async sendData(e){for(e=e.sublist();e.byteLength>0;){const t=Math.min(e.byteLength,this.maxDataSize);await this.send({id:this.streamId,type:this.types.MESSAGE,data:e.sublist(0,t)}),e.consume(t)}}async sendReset(){await this.send({id:this.streamId,type:this.types.RESET})}async sendCloseWrite(){await this.send({id:this.streamId,type:this.types.CLOSE})}async sendCloseRead(){}}const km=Wg("libp2p:mplex");function Im(e){const t={...e,type:"".concat(Zg[e.type]," (").concat(e.type,")")};return e.type===Xg.NEW_STREAM&&(t.data=Ro(e.data instanceof Uint8Array?e.data:e.data.subarray())),e.type!==Xg.MESSAGE_INITIATOR&&e.type!==Xg.MESSAGE_RECEIVER||(t.data=Ro(e.data instanceof Uint8Array?e.data:e.data.subarray(),"base16")),t}class Rm{constructor(e){var t,r,n;Br(this,"protocol","/mplex/6.7.0"),Br(this,"sink",void 0),Br(this,"source",void 0),Br(this,"_streamId",void 0),Br(this,"_streams",void 0),Br(this,"_init",void 0),Br(this,"_source",void 0),Br(this,"closeController",void 0),Br(this,"rateLimiter",void 0),Br(this,"closeTimeout",void 0),e=null!==(t=e)&&void 0!==t?t:{},this._streamId=0,this._streams={initiators:new Map,receivers:new Map},this._init=e,this.closeTimeout=null!==(r=e.closeTimeout)&&void 0!==r?r:500,this.sink=this._createSink(),this._source=function(){return el((e=>{let t;const r=[];for(;!e.isEmpty()&&(t=e.shift(),null!=t);){if(null!=t.error)throw t.error;!1===t.done&&r.push(t.value)}return null==t?{done:!0}:{done:!0===t.done,value:r}}),arguments.length>0&&void 0!==arguments[0]?arguments[0]:{})}({objectMode:!0,onEnd:()=>{for(const e of this._streams.initiators.values())e.destroy();for(const e of this._streams.receivers.values())e.destroy()}}),this.source=rl(this._source,(e=>function(e){try{let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return async function*(){if(null!=t&&0!==t)yield*cm(e,{size:t,serialize:(e,t)=>{for(const r of e)_m.write(r,t)}});else for await(const t of e){const e=new Ic;for(const r of t)_m.write(r,e);yield e.subarray()}}()}catch(t){return Promise.reject(t)}}(e,this._init.minSendBytes))),this.closeController=new AbortController,this.rateLimiter=new Jg.RateLimiterMemory({points:null!==(n=e.disconnectThreshold)&&void 0!==n?n:5,duration:1})}get streams(){const e=[];for(const t of this._streams.initiators.values())e.push(t);for(const t of this._streams.receivers.values())e.push(t);return e}newStream(e){if(this.closeController.signal.aborted)throw new Error("Muxer already closed");const t=this._streamId++;e=null==e?t.toString():e.toString();const r=this._streams.initiators;return this._newStream({id:t,name:e,type:"initiator",registry:r})}async close(e){var t;if(this.closeController.signal.aborted)return;const r=null!==(t=null===e||void 0===e?void 0:e.signal)&&void 0!==t?t:AbortSignal.timeout(this.closeTimeout);try{await Promise.all(this.streams.map((async e=>e.close({signal:r})))),this._source.end(),await this._source.onEmpty({signal:r}),this.closeController.abort()}catch(n){this.abort(n)}}abort(e){this.closeController.signal.aborted||(this.streams.forEach((t=>{t.abort(e)})),this.closeController.abort(e))}_newReceiverStream(e){const{id:t,name:r}=e,n=this._streams.receivers;return this._newStream({id:t,name:r,type:"receiver",registry:n})}_newStream(e){var t;const{id:r,name:n,type:i,registry:o}=e;if(km("new %s stream %s",i,r),"initiator"===i&&this._streams.initiators.size===(null!==(t=this._init.maxOutboundStreams)&&void 0!==t?t:1024))throw new rp("Too many outbound streams open","ERR_TOO_MANY_OUTBOUND_STREAMS");if(o.has(r))throw new Error("".concat(i," stream ").concat(r," already exists!"));const s=function(e){const{id:t,name:r,send:n,onEnd:i,type:o="initiator",maxMsgSize:s=tm}=e;return new Am({id:"initiator"===o?"i".concat(t):"r".concat(t),streamId:t,name:"".concat(null==r?t:r),direction:"initiator"===o?"outbound":"inbound",maxDataSize:s,onEnd:i,send:n,log:Wg("libp2p:mplex:stream:".concat(o,":").concat(t))})}({id:r,name:n,send:async e=>{km.enabled&&km.trace("%s stream %s send",i,r,Im(e)),this._source.push(e)},type:i,onEnd:()=>{km("%s stream with id %s and protocol %s ended",i,r,s.protocol),o.delete(r),null!=this._init.onStreamEnd&&this._init.onStreamEnd(s)},maxMsgSize:this._init.maxMsgSize});return o.set(r,s),s}_createSink(){return async e=>{try{e=Qg(e,this.closeController.signal,{returnOnAbort:!0});const t=new rm(this._init.maxMsgSize,this._init.maxUnprocessedMessageQueueSize);for await(const r of e)for(const e of t.write(r))await this._handleIncoming(e);this._source.end()}catch(t){km("error in sink",t),this._source.end(t)}}}async _handleIncoming(e){var t;const{id:r,type:n}=e;if(km.enabled&&km.trace("incoming message",Im(e)),e.type===Xg.NEW_STREAM){var i;if(this._streams.receivers.size===(null!==(i=this._init.maxInboundStreams)&&void 0!==i?i:1024)){km("too many inbound streams open"),this._source.push({id:r,type:Xg.RESET_RECEIVER});try{await this.rateLimiter.consume("new-stream",1)}catch{return km("rate limit hit when opening too many new streams over the inbound stream limit - closing remote connection"),void this.abort(new Error("Too many open streams"))}return}const t=this._newReceiverStream({id:r,name:Ro(e.data instanceof Uint8Array?e.data:e.data.subarray())});return void(null!=this._init.onIncomingStream&&this._init.onIncomingStream(t))}const o=(1===(1&n)?this._streams.initiators:this._streams.receivers).get(r);if(null==o){km("missing stream %s for message type %s",r,Zg[n]);try{await this.rateLimiter.consume("missing-stream",1)}catch{return km("rate limit hit when receiving messages for streams that do not exist - closing remote connection"),void this.abort(new Error("Too many messages for missing streams"))}return}const s=null!==(t=this._init.maxStreamBufferSize)&&void 0!==t?t:4194304;try{switch(n){case Xg.MESSAGE_INITIATOR:case Xg.MESSAGE_RECEIVER:if(o.sourceReadableLength()>s)throw this._source.push({id:e.id,type:n===Xg.MESSAGE_INITIATOR?Xg.RESET_RECEIVER:Xg.RESET_INITIATOR}),new rp("Input buffer full - increase Mplex maxBufferSize to accommodate slow consumers","ERR_STREAM_INPUT_BUFFER_FULL");o.sourcePush(e.data);break;case Xg.CLOSE_INITIATOR:case Xg.CLOSE_RECEIVER:o.remoteCloseWrite();break;case Xg.RESET_INITIATOR:case Xg.RESET_RECEIVER:o.reset();break;default:km("unknown message type %s",n)}}catch(a){km.error("error while processing message",a),o.abort(a)}}}class Pm{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};Br(this,"protocol","/mplex/6.7.0"),Br(this,"_init",void 0),this._init=e}createStreamMuxer(){return new Rm({...arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},...this._init})}}function Cm(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return()=>new Pm(e)}const Tm=Symbol.for("@libp2p/transport");var xm;!function(e){e[e.FATAL_ALL=0]="FATAL_ALL",e[e.NO_FATAL=1]="NO_FATAL"}(xm||(xm={}));var Dm=function(e,t){if(e.length>=255)throw new TypeError("Alphabet too long");for(var r=new Uint8Array(256),n=0;n<r.length;n++)r[n]=255;for(var i=0;i<e.length;i++){var o=e.charAt(i),s=o.charCodeAt(0);if(255!==r[s])throw new TypeError(o+" is ambiguous");r[s]=i}var a=e.length,c=e.charAt(0),l=Math.log(a)/Math.log(256),u=Math.log(256)/Math.log(a);function h(e){if("string"!==typeof e)throw new TypeError("Expected String");if(0===e.length)return new Uint8Array;var t=0;if(" "!==e[t]){for(var n=0,i=0;e[t]===c;)n++,t++;for(var o=(e.length-t)*l+1>>>0,s=new Uint8Array(o);e[t];){var u=r[e.charCodeAt(t)];if(255===u)return;for(var h=0,d=o-1;(0!==u||h<i)&&-1!==d;d--,h++)u+=a*s[d]>>>0,s[d]=u%256>>>0,u=u/256>>>0;if(0!==u)throw new Error("Non-zero carry");i=h,t++}if(" "!==e[t]){for(var p=o-i;p!==o&&0===s[p];)p++;for(var f=new Uint8Array(n+(o-p)),y=n;p!==o;)f[y++]=s[p++];return f}}}return{encode:function(t){if(t instanceof Uint8Array||(ArrayBuffer.isView(t)?t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength):Array.isArray(t)&&(t=Uint8Array.from(t))),!(t instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(0===t.length)return"";for(var r=0,n=0,i=0,o=t.length;i!==o&&0===t[i];)i++,r++;for(var s=(o-i)*u+1>>>0,l=new Uint8Array(s);i!==o;){for(var h=t[i],d=0,p=s-1;(0!==h||d<n)&&-1!==p;p--,d++)h+=256*l[p]>>>0,l[p]=h%a>>>0,h=h/a>>>0;if(0!==h)throw new Error("Non-zero carry");n=d,i++}for(var f=s-n;f!==s&&0===l[f];)f++;for(var y=c.repeat(r);f<s;++f)y+=e.charAt(l[f]);return y},decodeUnsafe:h,decode:function(e){var r=h(e);if(r)return r;throw new Error("Non-".concat(t," character"))}}};const Nm=Dm;new Uint8Array(0);class Lm{constructor(e,t,r){this.name=e,this.prefix=t,this.baseEncode=r}encode(e){if(e instanceof Uint8Array)return"".concat(this.prefix).concat(this.baseEncode(e));throw Error("Unknown type, must be binary type")}}class Bm{constructor(e,t,r){if(this.name=e,this.prefix=t,void 0===t.codePointAt(0))throw new Error("Invalid prefix character");this.prefixCodePoint=t.codePointAt(0),this.baseDecode=r}decode(e){if("string"===typeof e){if(e.codePointAt(0)!==this.prefixCodePoint)throw Error("Unable to decode multibase string ".concat(JSON.stringify(e),", ").concat(this.name," decoder only supports inputs prefixed with ").concat(this.prefix));return this.baseDecode(e.slice(this.prefix.length))}throw Error("Can only multibase decode strings")}or(e){return Om(this,e)}}class Mm{constructor(e){this.decoders=e}or(e){return Om(this,e)}decode(e){const t=e[0],r=this.decoders[t];if(r)return r.decode(e);throw RangeError("Unable to decode multibase string ".concat(JSON.stringify(e),", only inputs prefixed with ").concat(Object.keys(this.decoders)," are supported"))}}const Om=(e,t)=>new Mm({...e.decoders||{[e.prefix]:e},...t.decoders||{[t.prefix]:t}});class Um{constructor(e,t,r,n){this.name=e,this.prefix=t,this.baseEncode=r,this.baseDecode=n,this.encoder=new Lm(e,t,r),this.decoder=new Bm(e,t,n)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}}const Km=e=>{let{name:t,prefix:r,encode:n,decode:i}=e;return new Um(t,r,n,i)},qm=e=>{let{prefix:t,name:r,alphabet:n}=e;const{encode:i,decode:o}=Nm(n,r);return Km({prefix:t,name:r,encode:i,decode:e=>(e=>{if(e instanceof Uint8Array&&"Uint8Array"===e.constructor.name)return e;if(e instanceof ArrayBuffer)return new Uint8Array(e);if(ArrayBuffer.isView(e))return new Uint8Array(e.buffer,e.byteOffset,e.byteLength);throw new Error("Unknown type, must be binary type")})(o(e))})},Fm=e=>{let{name:t,prefix:r,bitsPerChar:n,alphabet:i}=e;return Km({prefix:r,name:t,encode:e=>((e,t,r)=>{const n="="===t[t.length-1],i=(1<<r)-1;let o="",s=0,a=0;for(let c=0;c<e.length;++c)for(a=a<<8|e[c],s+=8;s>r;)s-=r,o+=t[i&a>>s];if(s&&(o+=t[i&a<<r-s]),n)for(;o.length*r&7;)o+="=";return o})(e,i,n),decode:e=>((e,t,r,n)=>{const i={};for(let u=0;u<t.length;++u)i[t[u]]=u;let o=e.length;for(;"="===e[o-1];)--o;const s=new Uint8Array(o*r/8|0);let a=0,c=0,l=0;for(let u=0;u<o;++u){const t=i[e[u]];if(void 0===t)throw new SyntaxError("Non-".concat(n," character"));c=c<<r|t,a+=r,a>=8&&(a-=8,s[l++]=255&c>>a)}if(a>=r||255&c<<8-a)throw new SyntaxError("Unexpected end of data");return s})(e,i,n,t)})},Vm=Fm({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),zm=(Fm({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),Fm({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),Fm({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),Fm({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),Fm({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),Fm({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),Fm({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),Fm({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5}),qm({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"})),jm=(qm({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"}),Fm({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}));Fm({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),Fm({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),Fm({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});function Hm(e){let t=function(e){const t=()=>{};return t.enabled=!1,t.color="",t.diff=0,t.log=()=>{},t.namespace=e,t.destroy=()=>!0,t.extend=()=>t,t}("".concat(e,":trace"));return ia.enabled("".concat(e,":trace"))&&null!=ia.names.map((e=>e.toString())).find((e=>e.includes(":trace")))&&(t=ia("".concat(e,":trace"))),Object.assign(ia(e),{error:ia("".concat(e,":error")),trace:t})}function Gm(e){let t;try{t=As("sni").code}catch(r){return null}for(const[n,i]of e)if(n===t&&void 0!==i)return i;return null}function Wm(e){return e.some((e=>{let[t,r]=e;return t===As("tls").code}))}function Ym(e,t,r){const n=Qm[As(e).name];if(void 0===n)throw new Error("Can't interpret protocol ".concat(As(e).name));const i=n(t,r);return e===As("ip6").code?"[".concat(i,"]"):i}ia.formatters.b=e=>null==e?"undefined":zm.baseEncode(e),ia.formatters.t=e=>null==e?"undefined":Vm.baseEncode(e),ia.formatters.m=e=>null==e?"undefined":jm.baseEncode(e),ia.formatters.p=e=>null==e?"undefined":e.toString(),ia.formatters.c=e=>null==e?"undefined":e.toString(),ia.formatters.k=e=>null==e?"undefined":e.toString(),ia.formatters.a=e=>null==e?"undefined":e.toString();const Qm={ip4:(e,t)=>e,ip6:(e,t)=>0===t.length?e:"[".concat(e,"]"),tcp:(e,t)=>{var r;const n=t.pop();if(void 0===n)throw new Error("Unexpected end of multiaddr");return"tcp://".concat(Ym(n[0],null!==(r=n[1])&&void 0!==r?r:"",t),":").concat(e)},udp:(e,t)=>{var r;const n=t.pop();if(void 0===n)throw new Error("Unexpected end of multiaddr");return"udp://".concat(Ym(n[0],null!==(r=n[1])&&void 0!==r?r:"",t),":").concat(e)},dnsaddr:(e,t)=>e,dns4:(e,t)=>e,dns6:(e,t)=>e,dns:(e,t)=>e,ipfs:(e,t)=>{var r;const n=t.pop();if(void 0===n)throw new Error("Unexpected end of multiaddr");return"".concat(Ym(n[0],null!==(r=n[1])&&void 0!==r?r:"",t),"/ipfs/").concat(e)},p2p:(e,t)=>{var r;const n=t.pop();if(void 0===n)throw new Error("Unexpected end of multiaddr");return"".concat(Ym(n[0],null!==(r=n[1])&&void 0!==r?r:"",t),"/p2p/").concat(e)},http:(e,t)=>{var r;const n=Wm(t),i=Gm(t);if(n&&null!==i)return"https://".concat(i);const o=n?"https://":"http://",s=t.pop();if(void 0===s)throw new Error("Unexpected end of multiaddr");let a=Ym(s[0],null!==(r=s[1])&&void 0!==r?r:"",t);return a=a.replace("tcp://",""),"".concat(o).concat(a)},tls:(e,t)=>{var r;const n=t.pop();if(void 0===n)throw new Error("Unexpected end of multiaddr");return Ym(n[0],null!==(r=n[1])&&void 0!==r?r:"",t)},sni:(e,t)=>{var r;const n=t.pop();if(void 0===n)throw new Error("Unexpected end of multiaddr");return Ym(n[0],null!==(r=n[1])&&void 0!==r?r:"",t)},https:(e,t)=>{var r;const n=t.pop();if(void 0===n)throw new Error("Unexpected end of multiaddr");let i=Ym(n[0],null!==(r=n[1])&&void 0!==r?r:"",t);return i=i.replace("tcp://",""),"https://".concat(i)},ws:(e,t)=>{var r;const n=Wm(t),i=Gm(t);if(n&&null!==i)return"wss://".concat(i);const o=n?"wss://":"ws://",s=t.pop();if(void 0===s)throw new Error("Unexpected end of multiaddr");let a=Ym(s[0],null!==(r=s[1])&&void 0!==r?r:"",t);return a=a.replace("tcp://",""),"".concat(o).concat(a)},wss:(e,t)=>{var r;const n=t.pop();if(void 0===n)throw new Error("Unexpected end of multiaddr");let i=Ym(n[0],null!==(r=n[1])&&void 0!==r?r:"",t);return i=i.replace("tcp://",""),"wss://".concat(i)},"p2p-websocket-star":(e,t)=>{var r;const n=t.pop();if(void 0===n)throw new Error("Unexpected end of multiaddr");return"".concat(Ym(n[0],null!==(r=n[1])&&void 0!==r?r:"",t),"/p2p-websocket-star")},"p2p-webrtc-star":(e,t)=>{var r;const n=t.pop();if(void 0===n)throw new Error("Unexpected end of multiaddr");return"".concat(Ym(n[0],null!==(r=n[1])&&void 0!==r?r:"",t),"/p2p-webrtc-star")},"p2p-webrtc-direct":(e,t)=>{var r;const n=t.pop();if(void 0===n)throw new Error("Unexpected end of multiaddr");return"".concat(Ym(n[0],null!==(r=n[1])&&void 0!==r?r:"",t),"/p2p-webrtc-direct")}};const Xm=async e=>{if(e.readyState>=2)throw new Error("socket closed");1!==e.readyState&&await new Promise(((t,r)=>{function n(){e.removeEventListener("open",i),e.removeEventListener("error",o)}function i(){n(),t()}function o(t){var i;n(),r(null!==(i=t.error)&&void 0!==i?i:new Error("connect ECONNREFUSED ".concat(e.url)))}e.addEventListener("open",i),e.addEventListener("error",o)}))},Jm=(e,t)=>{var r;(t=null!==(r=t)&&void 0!==r?r:{}).closeOnEnd=!1!==t.closeOnEnd;return async r=>{for await(const t of r){try{await Xm(e)}catch(n){if("socket closed"===n.message)break;throw n}if(e.readyState===e.CLOSING||e.readyState===e.CLOSED)break;e.send(t)}null!=t.closeOnEnd&&e.readyState<=1&&await new Promise(((t,r)=>{e.addEventListener("close",(e=>{if(e.wasClean||1006===e.code)t();else{const t=Object.assign(new Error("ws error"),{event:e});r(t)}})),setTimeout((()=>{e.close()}))}))}};var Zm=__webpack_require__(3634);function $m(e){var t;return e instanceof ArrayBuffer||"ArrayBuffer"===(null===e||void 0===e||null===(t=e.constructor)||void 0===t?void 0:t.name)&&"number"===typeof(null===e||void 0===e?void 0:e.byteLength)}const eb=(e,t)=>{var r;t=null!==(r=t)&&void 0!==r?r:{};const n=(e=>{e.binaryType="arraybuffer";const t=async()=>{await new Promise(((t,r)=>{if(i)return void t();if(null!=n)return void r(n);const o=t=>{e.removeEventListener("open",s),e.removeEventListener("error",a),t()},s=()=>{o(t)},a=t=>{o((()=>{var n;r(null!==(n=t.error)&&void 0!==n?n:new Error("connect ECONNREFUSED ".concat(e.url)))}))};e.addEventListener("open",s),e.addEventListener("error",a)}))},r=async function*(){const r=new Zm.zN((t=>{let{push:r,stop:n,fail:i}=t;const o=e=>{let t=null;"string"===typeof e.data&&(t=ps(e.data)),$m(e.data)&&(t=new Uint8Array(e.data)),e.data instanceof Uint8Array&&(t=e.data),null!=t&&r(t)},s=e=>{var t;i(null!==(t=e.error)&&void 0!==t?t:new Error("Socket error"))};return e.addEventListener("message",o),e.addEventListener("error",s),e.addEventListener("close",n),()=>{e.removeEventListener("message",o),e.removeEventListener("error",s),e.removeEventListener("close",n)}}),{highWaterMark:1/0});await t();for await(const e of r)yield $m(e)?new Uint8Array(e):e}();let n,i=1===e.readyState;return e.addEventListener("open",(()=>{i=!0,n=null})),e.addEventListener("close",(()=>{i=!1,n=null})),e.addEventListener("error",(t=>{var r;i||(n=null!==(r=t.error)&&void 0!==r?r:new Error("connect ECONNREFUSED ".concat(e.url)))})),Object.assign(r,{connected:t})})(e);let i=t.remoteAddress,o=t.remotePort;if(null!=e.url)try{const t=new URL(e.url);i=t.hostname,o=parseInt(t.port,10)}catch{}if(null==i||null==o)throw new Error("Remote connection did not have address and/or port");return{sink:Jm(e,t),source:n,connected:async()=>{await n.connected()},close:async()=>{e.readyState!==e.CONNECTING&&e.readyState!==e.OPEN||await new Promise((t=>{e.addEventListener("close",(()=>{t()})),e.close()}))},destroy:()=>{null!=e.terminate?e.terminate():e.close()},remoteAddress:i,remotePort:o,socket:e}},tb=WebSocket;var rb=__webpack_require__(6791);const nb={http:"ws",https:"wss"},ib=(e,t)=>(0,rb.relative)(e,t,nb,"ws");var ob=__webpack_require__(2193);const sb="object"===typeof window&&"object"===typeof document&&9===document.nodeType,ab=ob(),cb=sb&&!ab,lb=ab&&!sb,ub=ab&&sb,hb="undefined"!==typeof globalThis.process&&"undefined"!==typeof globalThis.process.release&&"node"===globalThis.process.release.name&&!ab,db="function"===typeof importScripts&&"undefined"!==typeof self&&"undefined"!==typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,pb=("undefined"!==typeof globalThis.process&&"undefined"!==typeof globalThis.process.env&&globalThis.process.env.NODE_ENV,"undefined"!==typeof navigator&&"ReactNative"===navigator.product),fb=jb("dns4"),yb=jb("dns6"),gb=jb("dnsaddr"),mb=zb(jb("dns"),gb,fb,yb),bb=zb(jb("ip4"),jb("ip6")),wb=zb(Vb(bb,jb("tcp")),Vb(mb,jb("tcp"))),vb=Vb(bb,jb("udp")),_b=Vb(vb,jb("utp")),Eb=Vb(vb,jb("quic")),Sb=Vb(vb,jb("quic-v1")),Ab=zb(Vb(wb,jb("ws")),Vb(mb,jb("ws"))),kb=zb(Vb(Ab,jb("p2p")),Ab),Ib=zb(Vb(wb,jb("wss")),Vb(mb,jb("wss")),Vb(wb,jb("tls"),jb("ws")),Vb(mb,jb("tls"),jb("ws"))),Rb=zb(Vb(Ib,jb("p2p")),Ib),Pb=zb(Vb(wb,jb("http")),Vb(bb,jb("http")),Vb(mb,jb("http"))),Cb=zb(Vb(wb,jb("https")),Vb(bb,jb("https")),Vb(mb,jb("https"))),Tb=Vb(vb,jb("webrtc-direct"),jb("certhash")),xb=zb(Vb(Tb,jb("p2p")),Tb),Db=Vb(Sb,jb("webtransport"),jb("certhash"),jb("certhash")),Nb=zb(Vb(Db,jb("p2p")),Db),Lb=zb(Vb(kb,jb("p2p-webrtc-star"),jb("p2p")),Vb(Rb,jb("p2p-webrtc-star"),jb("p2p")),Vb(kb,jb("p2p-webrtc-star")),Vb(Rb,jb("p2p-webrtc-star"))),Bb=(zb(Vb(kb,jb("p2p-websocket-star"),jb("p2p")),Vb(Rb,jb("p2p-websocket-star"),jb("p2p")),Vb(kb,jb("p2p-websocket-star")),Vb(Rb,jb("p2p-websocket-star"))),zb(Vb(Pb,jb("p2p-webrtc-direct"),jb("p2p")),Vb(Cb,jb("p2p-webrtc-direct"),jb("p2p")),Vb(Pb,jb("p2p-webrtc-direct")),Vb(Cb,jb("p2p-webrtc-direct")))),Mb=zb(Ab,Ib,Pb,Cb,Lb,Bb,wb,_b,Eb,mb,xb,Nb),Ob=(zb(Vb(Mb,jb("p2p-stardust"),jb("p2p")),Vb(Mb,jb("p2p-stardust"))),zb(Vb(Mb,jb("p2p")),Lb,Bb,xb,Nb,jb("p2p"))),Ub=zb(Vb(Ob,jb("p2p-circuit"),Ob),Vb(Ob,jb("p2p-circuit")),Vb(jb("p2p-circuit"),Ob),Vb(Mb,jb("p2p-circuit")),Vb(jb("p2p-circuit"),Mb),jb("p2p-circuit")),Kb=()=>zb(Vb(Ub,Kb),Ub),qb=Kb();zb(Vb(qb,Ob,qb),Vb(Ob,qb),Vb(qb,Ob),qb,Ob),zb(Vb(qb,jb("webrtc"),jb("p2p")),Vb(qb,jb("webrtc")),Vb(Mb,jb("webrtc"),jb("p2p")),Vb(Mb,jb("webrtc")),jb("webrtc"));function Fb(e){return function(t){let r;try{r=ra(t)}catch(i){return!1}const n=e(r.protoNames());return null!==n&&(!0===n||!1===n?n:0===n.length)}}function Vb(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];function n(e){if(e.length<t.length)return null;let r=e;return t.some((t=>(r="function"===typeof t?t().partialMatch(e):t.partialMatch(e),Array.isArray(r)&&(e=r),null===r))),r}return{toString:function(){return"{ "+t.join(" ")+" }"},input:t,matches:Fb(n),partialMatch:n}}function zb(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];function n(e){let r=null;return t.some((t=>{const n="function"===typeof t?t().partialMatch(e):t.partialMatch(e);return null!=n&&(r=n,!0)})),r}return{toString:function(){return"{ "+t.join(" ")+" }"},input:t,matches:Fb(n),partialMatch:n}}function jb(e){const t=e;return{toString:function(){return t},matches:function(e){let r;try{r=ra(e)}catch(i){return!1}const n=r.protoNames();return 1===n.length&&n[0]===t},partialMatch:function(e){return 0===e.length?null:e[0]===t?e.slice(1):null}}}const Hb=421,Gb=290,Wb=500;function Yb(e){return e.filter((e=>{if(e.protoCodes().includes(Gb))return!1;const t=e.decapsulateCode(Hb);return kb.matches(t)||Rb.matches(t)}))}const Qb=Hm("libp2p:websockets:socket");let Xb;const Jb=Hm("libp2p:websockets");Xb=Symbol.toStringTag;class Zb{constructor(e){Br(this,"init",void 0),Br(this,Xb,"@libp2p/websockets"),Br(this,Tm,!0),this.init=e}async dial(e,t){var r;Jb("dialing %s",e),t=null!==(r=t)&&void 0!==r?r:{};const n=function(e,t,r){var n;const i={async sink(t){var n;null!=(null===(n=r)||void 0===n?void 0:n.signal)&&(t=Qg(t,r.signal));try{await e.sink(t)}catch(i){"aborted"!==i.type&&Qb.error(i)}},source:null!=(r=null!==(n=r)&&void 0!==n?n:{}).signal?Qg(e.source,r.signal):e.source,remoteAddr:t,timeline:{open:Date.now()},async close(){var t;let r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const n=Date.now();r.signal=null!==(t=r.signal)&&void 0!==t?t:AbortSignal.timeout(Wb);const o=()=>{const{host:e,port:t}=i.remoteAddr.toOptions();Qb("timeout closing stream to %s:%s after %dms, destroying it manually",e,t,Date.now()-n),this.abort(new rp("Socket close timeout","ERR_SOCKET_CLOSE_TIMEOUT"))};r.signal.addEventListener("abort",o);try{await e.close()}catch(s){this.abort(s)}finally{r.signal.removeEventListener("abort",o),i.timeline.close=Date.now()}},abort(t){const{host:r,port:n}=i.remoteAddr.toOptions();Qb("timeout closing stream to %s:%s due to error",r,n,t),e.destroy(),i.timeline.close=Date.now()}};return e.socket.addEventListener("close",(()=>{null==i.timeline.close&&(i.timeline.close=Date.now())}),{once:!0}),i}(await this._connect(e,t),e);Jb("new outbound connection %s",n.remoteAddr);const i=await t.upgrader.upgradeOutbound(n);return Jb("outbound connection %s upgraded",n.remoteAddr),i}async _connect(e,t){var r;if(!0===(null===t||void 0===t||null===(r=t.signal)||void 0===r?void 0:r.aborted))throw new tp;const n=e.toOptions();Jb("dialing %s:%s",n.host,n.port);const i=Qc(),o=function(e,t){var r;const n="undefined"===typeof window?"":window.location;t=null!==(r=t)&&void 0!==r?r:{};const i=ib(e,n.toString()),o=new tb(i,t.websocket);return eb(o,t)}(function(e,t){var r;const n=ra(e).stringTuples(),i=n.pop();if(void 0===i)throw new Error("Unexpected end of multiaddr");const o=As(i[0]),s=Qm[o.name];if(null==s)throw new Error("No interpreter found for ".concat(o.name));let a=s(null!==(r=i[1])&&void 0!==r?r:"",n);return!1!==(null===t||void 0===t?void 0:t.assumeHttp)&&i[0]===As("tcp").code&&(a=a.replace("tcp://","http://"),"443"!==i[1]&&"80"!==i[1]||("443"===i[1]&&(a=a.replace("http://","https://")),a=a.substring(0,a.lastIndexOf(":")))),a}(e),this.init);if(o.socket.addEventListener("error",(()=>{const t=new rp("Could not connect to ".concat(e.toString()),"ERR_CONNECTION_FAILED");Jb.error("connection error:",t),i.reject(t)})),null==t.signal)return await Promise.race([o.connected(),i.promise]),Jb("connected %s",e),o;let s;const a=new Promise(((e,r)=>{var n,i;s=()=>{r(new tp),o.close().catch((e=>{Jb.error("error closing raw socket",e)}))},!0!==(null===t||void 0===t||null===(n=t.signal)||void 0===n?void 0:n.aborted)?null===t||void 0===t||null===(i=t.signal)||void 0===i||i.addEventListener("abort",s):s()}));try{await Promise.race([a,i.promise,o.connected()])}finally{var c;if(null!=s)null===t||void 0===t||null===(c=t.signal)||void 0===c||c.removeEventListener("abort",s)}return Jb("connected %s",e),o}createListener(e){return function(){throw new Error("WebSocket Servers can not be created in the browser!")}(this.init)}filter(e){var t,r;return e=Array.isArray(e)?e:[e],null!=(null===(t=this.init)||void 0===t?void 0:t.filter)?null===(r=this.init)||void 0===r?void 0:r.filter(e):cb||db?function(e){return e.filter((e=>{if(e.protoCodes().includes(Gb))return!1;const t=e.decapsulateCode(Hb);return Rb.matches(t)}))}(e):Yb(e)}}function $b(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return()=>new Zb(e)}var ew,tw=new WeakMap;class rw extends EventTarget{constructor(){super(...arguments),Kr(this,tw,{writable:!0,value:new Map})}listenerCount(e){const t=Fr(this,tw).get(e);return null==t?0:t.length}addEventListener(e,t,r){var n;super.addEventListener(e,t,r);let i=Fr(this,tw).get(e);null==i&&(i=[],Fr(this,tw).set(e,i)),i.push({callback:t,once:null!==(n=!0!==r&&!1!==r&&(null===r||void 0===r?void 0:r.once))&&void 0!==n&&n})}removeEventListener(e,t,r){super.removeEventListener(e.toString(),null!==t&&void 0!==t?t:null,r);let n=Fr(this,tw).get(e);null!=n&&(n=n.filter((e=>{let{callback:r}=e;return r!==t})),Fr(this,tw).set(e,n))}dispatchEvent(e){const t=super.dispatchEvent(e);let r=Fr(this,tw).get(e.type);return null==r||(r=r.filter((e=>{let{once:t}=e;return!t})),Fr(this,tw).set(e.type,r)),t}safeDispatchEvent(e,t){return this.dispatchEvent(new iw(e,t))}}class nw extends Event{constructor(e,t){super(e,t),Br(this,"detail",void 0),this.detail=null===t||void 0===t?void 0:t.detail}}const iw=null!==(ew=globalThis.CustomEvent)&&void 0!==ew?ew:nw,ow=Symbol.for("@libp2p/peer-discovery"),sw={TEST:"enrtree://AOGECG2SPND25EEFMAJ5WF3KSGJNSGV356DSTL2YVLLZWIV6SAYBM@test.waku.nodes.status.im",PROD:"enrtree://AOGECG2SPND25EEFMAJ5WF3KSGJNSGV356DSTL2YVLLZWIV6SAYBM@prod.waku.nodes.status.im"},aw="bootstrap",cw={store:2,filter:1,lightPush:1};var lw=__webpack_require__(5856),uw=__webpack_require__.t(lw,2);const hw=BigInt(0),dw=BigInt(1),pw=BigInt(2),fw=BigInt(3),yw=BigInt(8),gw=Object.freeze({a:hw,b:BigInt(7),P:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),n:BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),h:dw,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee")}),mw=(e,t)=>(e+t/pw)/t,bw={beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar(e){const{n:t}=gw,r=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),n=-dw*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),i=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),o=r,s=BigInt("0x100000000000000000000000000000000"),a=mw(o*e,t),c=mw(-n*e,t);let l=Ww(e-a*r-c*i,t),u=Ww(-a*n-c*o,t);const h=l>s,d=u>s;if(h&&(l=t-l),d&&(u=t-u),l>s||u>s)throw new Error("splitScalarEndo: Endomorphism failed, k="+e);return{k1neg:h,k1:l,k2neg:d,k2:u}}},ww=32,vw=32,_w=32,Ew=ww+1,Sw=2*ww+1;function Aw(e){const{a:t,b:r}=gw,n=Ww(e*e),i=Ww(n*e);return Ww(i+t*e+r)}const kw=gw.a===hw;class Iw extends Error{constructor(e){super(e)}}function Rw(e){if(!(e instanceof Pw))throw new TypeError("JacobianPoint expected")}class Pw{constructor(e,t,r){this.x=e,this.y=t,this.z=r}static fromAffine(e){if(!(e instanceof xw))throw new TypeError("JacobianPoint#fromAffine: expected Point");return e.equals(xw.ZERO)?Pw.ZERO:new Pw(e.x,e.y,dw)}static toAffineBatch(e){const t=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:gw.P;const r=new Array(e.length),n=Qw(e.reduce(((e,n,i)=>n===hw?e:(r[i]=e,Ww(e*n,t))),dw),t);return e.reduceRight(((e,n,i)=>n===hw?e:(r[i]=Ww(e*r[i],t),Ww(e*n,t))),n),r}(e.map((e=>e.z)));return e.map(((e,r)=>e.toAffine(t[r])))}static normalizeZ(e){return Pw.toAffineBatch(e).map(Pw.fromAffine)}equals(e){Rw(e);const{x:t,y:r,z:n}=this,{x:i,y:o,z:s}=e,a=Ww(n*n),c=Ww(s*s),l=Ww(t*c),u=Ww(i*a),h=Ww(Ww(r*s)*c),d=Ww(Ww(o*n)*a);return l===u&&h===d}negate(){return new Pw(this.x,Ww(-this.y),this.z)}double(){const{x:e,y:t,z:r}=this,n=Ww(e*e),i=Ww(t*t),o=Ww(i*i),s=e+i,a=Ww(pw*(Ww(s*s)-n-o)),c=Ww(fw*n),l=Ww(c*c),u=Ww(l-pw*a),h=Ww(c*(a-u)-yw*o),d=Ww(pw*t*r);return new Pw(u,h,d)}add(e){Rw(e);const{x:t,y:r,z:n}=this,{x:i,y:o,z:s}=e;if(i===hw||o===hw)return this;if(t===hw||r===hw)return e;const a=Ww(n*n),c=Ww(s*s),l=Ww(t*c),u=Ww(i*a),h=Ww(Ww(r*s)*c),d=Ww(Ww(o*n)*a),p=Ww(u-l),f=Ww(d-h);if(p===hw)return f===hw?this.double():Pw.ZERO;const y=Ww(p*p),g=Ww(p*y),m=Ww(l*y),b=Ww(f*f-g-pw*m),w=Ww(f*(m-b)-h*g),v=Ww(n*s*p);return new Pw(b,w,v)}subtract(e){return this.add(e.negate())}multiplyUnsafe(e){const t=Pw.ZERO;if("bigint"===typeof e&&e===hw)return t;let r=Gw(e);if(r===dw)return this;if(!kw){let e=t,n=this;for(;r>hw;)r&dw&&(e=e.add(n)),n=n.double(),r>>=dw;return e}let{k1neg:n,k1:i,k2neg:o,k2:s}=bw.splitScalar(r),a=t,c=t,l=this;for(;i>hw||s>hw;)i&dw&&(a=a.add(l)),s&dw&&(c=c.add(l)),l=l.double(),i>>=dw,s>>=dw;return n&&(a=a.negate()),o&&(c=c.negate()),c=new Pw(Ww(c.x*bw.beta),c.y,c.z),a.add(c)}precomputeWindow(e){const t=kw?128/e+1:256/e+1,r=[];let n=this,i=n;for(let o=0;o<t;o++){i=n,r.push(i);for(let t=1;t<2**(e-1);t++)i=i.add(n),r.push(i);n=i.double()}return r}wNAF(e,t){!t&&this.equals(Pw.BASE)&&(t=xw.BASE);const r=t&&t._WINDOW_SIZE||1;if(256%r)throw new Error("Point#wNAF: Invalid precomputation window, must be power of 2");let n=t&&Tw.get(t);n||(n=this.precomputeWindow(r),t&&1!==r&&(n=Pw.normalizeZ(n),Tw.set(t,n)));let i=Pw.ZERO,o=Pw.BASE;const s=1+(kw?128/r:256/r),a=2**(r-1),c=BigInt(2**r-1),l=2**r,u=BigInt(r);for(let h=0;h<s;h++){const t=h*a;let r=Number(e&c);e>>=u,r>a&&(r-=l,e+=dw);const s=t,d=t+Math.abs(r)-1,p=h%2!==0,f=r<0;0===r?o=o.add(Cw(p,n[s])):i=i.add(Cw(f,n[d]))}return{p:i,f:o}}multiply(e,t){let r,n,i=Gw(e);if(kw){const{k1neg:e,k1:o,k2neg:s,k2:a}=bw.splitScalar(i);let{p:c,f:l}=this.wNAF(o,t),{p:u,f:h}=this.wNAF(a,t);c=Cw(e,c),u=Cw(s,u),u=new Pw(Ww(u.x*bw.beta),u.y,u.z),r=c.add(u),n=l.add(h)}else{const{p:e,f:o}=this.wNAF(i,t);r=e,n=o}return Pw.normalizeZ([r,n])[0]}toAffine(e){const{x:t,y:r,z:n}=this,i=this.equals(Pw.ZERO);null==e&&(e=i?yw:Qw(n));const o=e,s=Ww(o*o),a=Ww(s*o),c=Ww(t*s),l=Ww(r*a),u=Ww(n*o);if(i)return xw.ZERO;if(u!==dw)throw new Error("invZ was invalid");return new xw(c,l)}}function Cw(e,t){const r=t.negate();return e?r:t}Pw.BASE=new Pw(gw.Gx,gw.Gy,dw),Pw.ZERO=new Pw(hw,dw,hw);const Tw=new WeakMap;class xw{constructor(e,t){this.x=e,this.y=t}_setWindowSize(e){this._WINDOW_SIZE=e,Tw.delete(this)}hasEvenY(){return this.y%pw===hw}static fromCompressedHex(e){const t=32===e.length,r=jw(t?e:e.subarray(1));if(!tv(r))throw new Error("Point is not on curve");let n=function(e){const{P:t}=gw,r=BigInt(6),n=BigInt(11),i=BigInt(22),o=BigInt(23),s=BigInt(44),a=BigInt(88),c=e*e*e%t,l=c*c*e%t,u=Yw(l,fw)*l%t,h=Yw(u,fw)*l%t,d=Yw(h,pw)*c%t,p=Yw(d,n)*d%t,f=Yw(p,i)*p%t,y=Yw(f,s)*f%t,g=Yw(y,a)*y%t,m=Yw(g,s)*f%t,b=Yw(m,fw)*l%t,w=Yw(b,o)*p%t,v=Yw(w,r)*c%t,_=Yw(v,pw);if(_*_%t!==e)throw new Error("Cannot find square root");return _}(Aw(r));const i=(n&dw)===dw;if(t)i&&(n=Ww(-n));else{1===(1&e[0])!==i&&(n=Ww(-n))}const o=new xw(r,n);return o.assertValidity(),o}static fromUncompressedHex(e){const t=jw(e.subarray(1,ww+1)),r=jw(e.subarray(ww+1,2*ww+1)),n=new xw(t,r);return n.assertValidity(),n}static fromHex(e){const t=Hw(e),r=t.length,n=t[0];if(r===ww)return this.fromCompressedHex(t);if(r===Ew&&(2===n||3===n))return this.fromCompressedHex(t);if(r===Sw&&4===n)return this.fromUncompressedHex(t);throw new Error("Point.fromHex: received invalid point. Expected 32-".concat(Ew," compressed bytes or ").concat(Sw," uncompressed bytes, not ").concat(r))}static fromPrivateKey(e){return xw.BASE.multiply(nv(e))}static fromSignature(e,t,r){const{r:n,s:i}=ov(t);if(![0,1,2,3].includes(r))throw new Error("Cannot recover: invalid recovery bit");const o=Xw(Hw(e)),{n:s}=gw,a=2===r||3===r?n+s:n,c=Qw(a,s),l=Ww(-o*c,s),u=Ww(i*c,s),h=1&r?"03":"02",d=xw.fromHex(h+Kw(a)),p=xw.BASE.multiplyAndAddUnsafe(d,l,u);if(!p)throw new Error("Cannot recover signature: point at infinify");return p.assertValidity(),p}toRawBytes(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return zw(this.toHex(e))}toHex(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];const t=Kw(this.x);if(e){const e=this.hasEvenY()?"02":"03";return"".concat(e).concat(t)}return"04".concat(t).concat(Kw(this.y))}toHexX(){return this.toHex(!0).slice(2)}toRawX(){return this.toRawBytes(!0).slice(1)}assertValidity(){const e="Point is not on elliptic curve",{x:t,y:r}=this;if(!tv(t)||!tv(r))throw new Error(e);const n=Ww(r*r);if(Ww(n-Aw(t))!==hw)throw new Error(e)}equals(e){return this.x===e.x&&this.y===e.y}negate(){return new xw(this.x,Ww(-this.y))}double(){return Pw.fromAffine(this).double().toAffine()}add(e){return Pw.fromAffine(this).add(Pw.fromAffine(e)).toAffine()}subtract(e){return this.add(e.negate())}multiply(e){return Pw.fromAffine(this).multiply(e,this).toAffine()}multiplyAndAddUnsafe(e,t,r){const n=Pw.fromAffine(this),i=t===hw||t===dw||this!==xw.BASE?n.multiplyUnsafe(t):n.multiply(t),o=Pw.fromAffine(e).multiplyUnsafe(r),s=i.add(o);return s.equals(Pw.ZERO)?void 0:s.toAffine()}}function Dw(e){return Number.parseInt(e[0],16)>=8?"00"+e:e}function Nw(e){if(e.length<2||2!==e[0])throw new Error("Invalid signature integer tag: ".concat(Ow(e)));const t=e[1],r=e.subarray(2,t+2);if(!t||r.length!==t)throw new Error("Invalid signature integer: wrong length");if(0===r[0]&&r[1]<=127)throw new Error("Invalid signature integer: trailing length");return{data:jw(r),left:e.subarray(t+2)}}xw.BASE=new xw(gw.Gx,gw.Gy),xw.ZERO=new xw(hw,hw);class Lw{constructor(e,t){this.r=e,this.s=t,this.assertValidity()}static fromCompact(e){const t=e instanceof Uint8Array,r="Signature.fromCompact";if("string"!==typeof e&&!t)throw new TypeError("".concat(r,": Expected string or Uint8Array"));const n=t?Ow(e):e;if(128!==n.length)throw new Error("".concat(r,": Expected 64-byte hex"));return new Lw(Vw(n.slice(0,64)),Vw(n.slice(64,128)))}static fromDER(e){const t=e instanceof Uint8Array;if("string"!==typeof e&&!t)throw new TypeError("Signature.fromDER: Expected string or Uint8Array");const{r:r,s:n}=function(e){if(e.length<2||48!=e[0])throw new Error("Invalid signature tag: ".concat(Ow(e)));if(e[1]!==e.length-2)throw new Error("Invalid signature: incorrect length");const{data:t,left:r}=Nw(e.subarray(2)),{data:n,left:i}=Nw(r);if(i.length)throw new Error("Invalid signature: left bytes after parsing: ".concat(Ow(i)));return{r:t,s:n}}(t?e:zw(e));return new Lw(r,n)}static fromHex(e){return this.fromDER(e)}assertValidity(){const{r:e,s:t}=this;if(!ev(e))throw new Error("Invalid Signature: r must be 0 < r < n");if(!ev(t))throw new Error("Invalid Signature: s must be 0 < s < n")}hasHighS(){const e=gw.n>>dw;return this.s>e}normalizeS(){return this.hasHighS()?new Lw(this.r,Ww(-this.s,gw.n)):this}toDERRawBytes(){return zw(this.toDERHex())}toDERHex(){const e=Dw(Fw(this.s)),t=Dw(Fw(this.r)),r=e.length/2,n=t.length/2,i=Fw(r),o=Fw(n),s=Fw(n+r+4);return"30".concat(s,"02").concat(o).concat(t,"02").concat(i).concat(e)}toRawBytes(){return this.toDERRawBytes()}toHex(){return this.toDERHex()}toCompactRawBytes(){return zw(this.toCompactHex())}toCompactHex(){return Kw(this.r)+Kw(this.s)}}function Bw(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];if(!t.every((e=>e instanceof Uint8Array)))throw new Error("Uint8Array list expected");if(1===t.length)return t[0];const n=t.reduce(((e,t)=>e+t.length),0),i=new Uint8Array(n);for(let o=0,s=0;o<t.length;o++){const e=t[o];i.set(e,s),s+=e.length}return i}const Mw=Array.from({length:256},((e,t)=>t.toString(16).padStart(2,"0")));function Ow(e){if(!(e instanceof Uint8Array))throw new Error("Expected Uint8Array");let t="";for(let r=0;r<e.length;r++)t+=Mw[e[r]];return t}const Uw=BigInt("0x10000000000000000000000000000000000000000000000000000000000000000");function Kw(e){if("bigint"!==typeof e)throw new Error("Expected bigint");if(!(hw<=e&&e<Uw))throw new Error("Expected number 0 <= n < 2^256");return e.toString(16).padStart(64,"0")}function qw(e){const t=zw(Kw(e));if(32!==t.length)throw new Error("Error: expected 32 bytes");return t}function Fw(e){const t=e.toString(16);return 1&t.length?"0".concat(t):t}function Vw(e){if("string"!==typeof e)throw new TypeError("hexToNumber: expected string, got "+typeof e);return BigInt("0x".concat(e))}function zw(e){if("string"!==typeof e)throw new TypeError("hexToBytes: expected string, got "+typeof e);if(e.length%2)throw new Error("hexToBytes: received invalid unpadded hex"+e.length);const t=new Uint8Array(e.length/2);for(let r=0;r<t.length;r++){const n=2*r,i=e.slice(n,n+2),o=Number.parseInt(i,16);if(Number.isNaN(o)||o<0)throw new Error("Invalid byte sequence");t[r]=o}return t}function jw(e){return Vw(Ow(e))}function Hw(e){return e instanceof Uint8Array?Uint8Array.from(e):zw(e)}function Gw(e){if("number"===typeof e&&Number.isSafeInteger(e)&&e>0)return BigInt(e);if("bigint"===typeof e&&ev(e))return e;throw new TypeError("Expected valid private scalar: 0 < scalar < curve.n")}function Ww(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:gw.P;const r=e%t;return r>=hw?r:t+r}function Yw(e,t){const{P:r}=gw;let n=e;for(;t-- >hw;)n*=n,n%=r;return n}function Qw(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:gw.P;if(e===hw||t<=hw)throw new Error("invert: expected positive integers, got n=".concat(e," mod=").concat(t));let r=Ww(e,t),n=t,i=hw,o=dw,s=dw,a=hw;for(;r!==hw;){const e=n/r,t=n%r,c=i-s*e,l=o-a*e;n=r,r=t,i=s,o=a,s=c,a=l}if(n!==dw)throw new Error("invert: does not exist");return Ww(i,t)}function Xw(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];const r=function(e){const t=8*e.length-8*vw,r=jw(e);return t>0?r>>BigInt(t):r}(e);if(t)return r;const{n:n}=gw;return r>=n?r-n:r}let Jw,Zw;class $w{constructor(e,t){if(this.hashLen=e,this.qByteLen=t,"number"!==typeof e||e<2)throw new Error("hashLen must be a number");if("number"!==typeof t||t<2)throw new Error("qByteLen must be a number");this.v=new Uint8Array(e).fill(1),this.k=new Uint8Array(e).fill(0),this.counter=0}hmac(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return mv.hmacSha256(this.k,...t)}hmacSync(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return Zw(this.k,...t)}checkSync(){if("function"!==typeof Zw)throw new Iw("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(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new Uint8Array;this.k=await this.hmac(this.v,Uint8Array.from([0]),e),this.v=await this.hmac(this.v),0!==e.length&&(this.k=await this.hmac(this.v,Uint8Array.from([1]),e),this.v=await this.hmac(this.v))}reseedSync(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new Uint8Array;this.checkSync(),this.k=this.hmacSync(this.v,Uint8Array.from([0]),e),this.v=this.hmacSync(this.v),0!==e.length&&(this.k=this.hmacSync(this.v,Uint8Array.from([1]),e),this.v=this.hmacSync(this.v))}async generate(){this.incr();let e=0;const t=[];for(;e<this.qByteLen;){this.v=await this.hmac(this.v);const r=this.v.slice();t.push(r),e+=this.v.length}return Bw(...t)}generateSync(){this.checkSync(),this.incr();let e=0;const t=[];for(;e<this.qByteLen;){this.v=this.hmacSync(this.v);const r=this.v.slice();t.push(r),e+=this.v.length}return Bw(...t)}}function ev(e){return hw<e&&e<gw.n}function tv(e){return hw<e&&e<gw.P}function rv(e,t,r){let n=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];const{n:i}=gw,o=Xw(e,!0);if(!ev(o))return;const s=Qw(o,i),a=xw.BASE.multiply(o),c=Ww(a.x,i);if(c===hw)return;const l=Ww(s*Ww(t+r*c,i),i);if(l===hw)return;let u=new Lw(c,l),h=(a.x===u.r?0:2)|Number(a.y&dw);return n&&u.hasHighS()&&(u=u.normalizeS(),h^=1),{sig:u,recovery:h}}function nv(e){let t;if("bigint"===typeof e)t=e;else if("number"===typeof e&&Number.isSafeInteger(e)&&e>0)t=BigInt(e);else if("string"===typeof e){if(e.length!==2*vw)throw new Error("Expected 32 bytes of private key");t=Vw(e)}else{if(!(e instanceof Uint8Array))throw new TypeError("Expected valid private key");if(e.length!==vw)throw new Error("Expected 32 bytes of private key");t=jw(e)}if(!ev(t))throw new Error("Expected private key: 0 < key < n");return t}function iv(e){return e instanceof xw?(e.assertValidity(),e):xw.fromHex(e)}function ov(e){if(e instanceof Lw)return e.assertValidity(),e;try{return Lw.fromDER(e)}catch(t){return Lw.fromCompact(e)}}function sv(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return xw.fromPrivateKey(e).toRawBytes(t)}function av(e){return jw(e.length>ww?e.slice(0,ww):e)}function cv(e){const t=av(e),r=Ww(t,gw.n);return lv(r<hw?t:r)}function lv(e){return qw(e)}function uv(e,t,r){if(null==e)throw new Error('sign: expected valid message hash, not "'.concat(e,'"'));const n=Hw(e),i=nv(t),o=[lv(i),cv(n)];if(null!=r){!0===r&&(r=mv.randomBytes(ww));const e=Hw(r);if(e.length!==ww)throw new Error("sign: Expected ".concat(ww," bytes of extra data"));o.push(e)}return{seed:Bw(...o),m:av(n),d:i}}function hv(e,t){const{sig:r,recovery:n}=e,{der:i,recovered:o}=Object.assign({canonical:!0,der:!0},t),s=i?r.toDERRawBytes():r.toCompactRawBytes();return o?[s,n]:s}async function dv(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const{seed:n,m:i,d:o}=uv(e,t,r.extraEntropy),s=new $w(_w,vw);let a;for(await s.reseed(n);!(a=rv(await s.generate(),i,o,r.canonical));)await s.reseed();return hv(a,r)}const pv={strict:!0};function fv(e,t,r){let n,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:pv;try{n=ov(e),t=Hw(t)}catch(f){return!1}const{r:o,s:s}=n;if(i.strict&&n.hasHighS())return!1;const a=Xw(t);let c;try{c=iv(r)}catch(f){return!1}const{n:l}=gw,u=Qw(s,l),h=Ww(a*u,l),d=Ww(o*u,l),p=xw.BASE.multiplyAndAddUnsafe(c,h,d);if(!p)return!1;return Ww(p.x,l)===o}xw.BASE._setWindowSize(8);const yv={node:uw,web:"object"===typeof self&&"crypto"in self?self.crypto:void 0},gv={},mv={bytesToHex:Ow,hexToBytes:zw,concatBytes:Bw,mod:Ww,invert:Qw,isValidPrivateKey(e){try{return nv(e),!0}catch(t){return!1}},_bigintTo32Bytes:qw,_normalizePrivateKey:nv,hashToPrivateKey:e=>{e=Hw(e);const t=vw+8;if(e.length<t||e.length>1024)throw new Error("Expected valid bytes of private key as per FIPS 186");return qw(Ww(jw(e),gw.n-dw)+dw)},randomBytes:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:32;if(yv.web)return yv.web.getRandomValues(new Uint8Array(e));if(yv.node){const{randomBytes:t}=yv.node;return Uint8Array.from(t(e))}throw new Error("The environment doesn't have randomBytes function")},randomPrivateKey:()=>mv.hashToPrivateKey(mv.randomBytes(vw+8)),precompute(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:8,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:xw.BASE;const r=t===xw.BASE?t:new xw(t.x,t.y);return r._setWindowSize(e),r.multiply(fw),r},sha256:async function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];if(yv.web){const e=await yv.web.subtle.digest("SHA-256",Bw(...t));return new Uint8Array(e)}if(yv.node){const{createHash:e}=yv.node,r=e("sha256");return t.forEach((e=>r.update(e))),Uint8Array.from(r.digest())}throw new Error("The environment doesn't have sha256 function")},hmacSha256:async function(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];if(yv.web){const t=await yv.web.subtle.importKey("raw",e,{name:"HMAC",hash:{name:"SHA-256"}},!1,["sign"]),n=Bw(...r),i=await yv.web.subtle.sign("HMAC",t,n);return new Uint8Array(i)}if(yv.node){const{createHmac:t}=yv.node,n=t("sha256",e);return r.forEach((e=>n.update(e))),Uint8Array.from(n.digest())}throw new Error("The environment doesn't have hmac-sha256 function")},sha256Sync:void 0,hmacSha256Sync:void 0,taggedHash:async function(e){let t=gv[e];if(void 0===t){const r=await mv.sha256(Uint8Array.from(e,(e=>e.charCodeAt(0))));t=Bw(r,r),gv[e]=t}for(var r=arguments.length,n=new Array(r>1?r-1:0),i=1;i<r;i++)n[i-1]=arguments[i];return mv.sha256(t,...n)},taggedHashSync:function(e){if("function"!==typeof Jw)throw new Iw("sha256Sync is undefined, you need to set it");let t=gv[e];if(void 0===t){const r=Jw(Uint8Array.from(e,(e=>e.charCodeAt(0))));t=Bw(r,r),gv[e]=t}for(var r=arguments.length,n=new Array(r>1?r-1:0),i=1;i<r;i++)n[i-1]=arguments[i];return Jw(t,...n)},_JacobianPoint:Pw};Object.defineProperties(mv,{sha256Sync:{configurable:!1,get:()=>Jw,set(e){Jw||(Jw=e)}},hmacSha256Sync:{configurable:!1,get:()=>Zw,set(e){Zw||(Zw=e)}}});var bv=__webpack_require__(7898);function wv(e){return new Uint8Array(bv.keccak256.arrayBuffer(e))}function vv(e,t,r){try{return fv(Lw.fromCompact(e.slice(0,64)),t,r)}catch{return!1}}const _v="Invalid record id",Ev=2;function Sv(e,t){switch(t){case"udp":return Sv(e,"udp4")||Sv(e,"udp6");case"tcp":return Sv(e,"tcp4")||Sv(e,"tcp6")}const r=t.endsWith("6"),n=e.get(r?"ip6":"ip");if(!n)return;const i=t.slice(0,3);let o;switch(i){case"udp":o=r?e.get("udp6"):e.get("udp");break;case"tcp":o=r?e.get("tcp6"):e.get("tcp");break;default:return}return o?function(e,t,r,n){let i=ra("/"+e+"/"+ks(e,r));return i=i.encapsulate(ra("/"+t+"/"+ks(t,n))),i}(r?"ip6":"ip4",i,n,o):void 0}var Av=function(e,t){if(e.length>=255)throw new TypeError("Alphabet too long");for(var r=new Uint8Array(256),n=0;n<r.length;n++)r[n]=255;for(var i=0;i<e.length;i++){var o=e.charAt(i),s=o.charCodeAt(0);if(255!==r[s])throw new TypeError(o+" is ambiguous");r[s]=i}var a=e.length,c=e.charAt(0),l=Math.log(a)/Math.log(256),u=Math.log(256)/Math.log(a);function h(e){if("string"!==typeof e)throw new TypeError("Expected String");if(0===e.length)return new Uint8Array;var t=0;if(" "!==e[t]){for(var n=0,i=0;e[t]===c;)n++,t++;for(var o=(e.length-t)*l+1>>>0,s=new Uint8Array(o);e[t];){var u=r[e.charCodeAt(t)];if(255===u)return;for(var h=0,d=o-1;(0!==u||h<i)&&-1!==d;d--,h++)u+=a*s[d]>>>0,s[d]=u%256>>>0,u=u/256>>>0;if(0!==u)throw new Error("Non-zero carry");i=h,t++}if(" "!==e[t]){for(var p=o-i;p!==o&&0===s[p];)p++;for(var f=new Uint8Array(n+(o-p)),y=n;p!==o;)f[y++]=s[p++];return f}}}return{encode:function(t){if(t instanceof Uint8Array||(ArrayBuffer.isView(t)?t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength):Array.isArray(t)&&(t=Uint8Array.from(t))),!(t instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(0===t.length)return"";for(var r=0,n=0,i=0,o=t.length;i!==o&&0===t[i];)i++,r++;for(var s=(o-i)*u+1>>>0,l=new Uint8Array(s);i!==o;){for(var h=t[i],d=0,p=s-1;(0!==h||d<n)&&-1!==p;p--,d++)h+=256*l[p]>>>0,l[p]=h%a>>>0,h=h/a>>>0;if(0!==h)throw new Error("Non-zero carry");n=d,i++}for(var f=s-n;f!==s&&0===l[f];)f++;for(var y=c.repeat(r);f<s;++f)y+=e.charAt(l[f]);return y},decodeUnsafe:h,decode:function(e){var r=h(e);if(r)return r;throw new Error("Non-".concat(t," character"))}}};const kv=Av,Iv=(new Uint8Array(0),e=>{if(e instanceof Uint8Array&&"Uint8Array"===e.constructor.name)return e;if(e instanceof ArrayBuffer)return new Uint8Array(e);if(ArrayBuffer.isView(e))return new Uint8Array(e.buffer,e.byteOffset,e.byteLength);throw new Error("Unknown type, must be binary type")});class Rv{constructor(e,t,r){this.name=e,this.prefix=t,this.baseEncode=r}encode(e){if(e instanceof Uint8Array)return"".concat(this.prefix).concat(this.baseEncode(e));throw Error("Unknown type, must be binary type")}}class Pv{constructor(e,t,r){if(this.name=e,this.prefix=t,void 0===t.codePointAt(0))throw new Error("Invalid prefix character");this.prefixCodePoint=t.codePointAt(0),this.baseDecode=r}decode(e){if("string"===typeof e){if(e.codePointAt(0)!==this.prefixCodePoint)throw Error("Unable to decode multibase string ".concat(JSON.stringify(e),", ").concat(this.name," decoder only supports inputs prefixed with ").concat(this.prefix));return this.baseDecode(e.slice(this.prefix.length))}throw Error("Can only multibase decode strings")}or(e){return Tv(this,e)}}class Cv{constructor(e){this.decoders=e}or(e){return Tv(this,e)}decode(e){const t=e[0],r=this.decoders[t];if(r)return r.decode(e);throw RangeError("Unable to decode multibase string ".concat(JSON.stringify(e),", only inputs prefixed with ").concat(Object.keys(this.decoders)," are supported"))}}const Tv=(e,t)=>new Cv({...e.decoders||{[e.prefix]:e},...t.decoders||{[t.prefix]:t}});class xv{constructor(e,t,r,n){this.name=e,this.prefix=t,this.baseEncode=r,this.baseDecode=n,this.encoder=new Rv(e,t,r),this.decoder=new Pv(e,t,n)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}}const Dv=e=>{let{name:t,prefix:r,encode:n,decode:i}=e;return new xv(t,r,n,i)},Nv=e=>{let{prefix:t,name:r,alphabet:n}=e;const{encode:i,decode:o}=kv(n,r);return Dv({prefix:t,name:r,encode:i,decode:e=>Iv(o(e))})},Lv=e=>{let{name:t,prefix:r,bitsPerChar:n,alphabet:i}=e;return Dv({prefix:r,name:t,encode:e=>((e,t,r)=>{const n="="===t[t.length-1],i=(1<<r)-1;let o="",s=0,a=0;for(let c=0;c<e.length;++c)for(a=a<<8|e[c],s+=8;s>r;)s-=r,o+=t[i&a>>s];if(s&&(o+=t[i&a<<r-s]),n)for(;o.length*r&7;)o+="=";return o})(e,i,n),decode:e=>((e,t,r,n)=>{const i={};for(let u=0;u<t.length;++u)i[t[u]]=u;let o=e.length;for(;"="===e[o-1];)--o;const s=new Uint8Array(o*r/8|0);let a=0,c=0,l=0;for(let u=0;u<o;++u){const t=i[e[u]];if(void 0===t)throw new SyntaxError("Non-".concat(n," character"));c=c<<r|t,a+=r,a>=8&&(a-=8,s[l++]=255&c>>a)}if(a>=r||255&c<<8-a)throw new SyntaxError("Unexpected end of data");return s})(e,i,n,t)})},Bv=Nv({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"});Nv({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var Mv=function e(t,r,n){r=r||[];var i=n=n||0;for(;t>=Kv;)r[n++]=255&t|Ov,t/=128;for(;t&Uv;)r[n++]=255&t|Ov,t>>>=7;return r[n]=0|t,e.bytes=n-i+1,r},Ov=128,Uv=-128,Kv=Math.pow(2,31);var qv=function e(t,r){var n,i=0,o=0,s=r=r||0,a=t.length;do{if(s>=a)throw e.bytes=0,new RangeError("Could not decode varint");n=t[s++],i+=o<28?(n&Vv)<<o:(n&Vv)*Math.pow(2,o),o+=7}while(n>=Fv);return e.bytes=s-r,i},Fv=128,Vv=127;var zv=Math.pow(2,7),jv=Math.pow(2,14),Hv=Math.pow(2,21),Gv=Math.pow(2,28),Wv=Math.pow(2,35),Yv=Math.pow(2,42),Qv=Math.pow(2,49),Xv=Math.pow(2,56),Jv=Math.pow(2,63);const Zv={encode:Mv,decode:qv,encodingLength:function(e){return e<zv?1:e<jv?2:e<Hv?3:e<Gv?4:e<Wv?5:e<Yv?6:e<Qv?7:e<Xv?8:e<Jv?9:10}},$v=function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;return Zv.encode(e,t,r),t},e_=e=>Zv.encodingLength(e),t_=(e,t)=>{const r=t.byteLength,n=e_(e),i=n+e_(r),o=new Uint8Array(i+r);return $v(e,o,0),$v(r,o,n),o.set(t,i),new r_(e,r,t,o)};class r_{constructor(e,t,r,n){this.code=e,this.size=t,this.digest=r,this.bytes=n}}const n_=Iv,i_=e=>t_(0,n_(e)),o_=e=>{let{name:t,code:r,encode:n}=e;return new s_(t,r,n)};class s_{constructor(e,t,r){this.name=e,this.code=t,this.encode=r}digest(e){if(e instanceof Uint8Array){const t=this.encode(e);return t instanceof Uint8Array?t_(this.code,t):t.then((e=>t_(this.code,e)))}throw Error("Unknown type, must be binary type")}}const a_=e=>async t=>new Uint8Array(await crypto.subtle.digest(e,t)),c_=o_({name:"sha2-256",code:18,encode:a_("SHA-256")});o_({name:"sha2-512",code:19,encode:a_("SHA-512")});var l_=__webpack_require__(7420),u_=__webpack_require__.t(l_,2);const h_=BigInt(0),d_=BigInt(1),p_=BigInt(2),f_=BigInt(8),y_=BigInt("7237005577332262213973186563042994240857116359379907606001950938285454250989"),g_=Object.freeze({a:BigInt(-1),d:BigInt("37095705934669439343138083508754565189542113879843219016388785533085940283555"),P:BigInt("57896044618658097711785492504343953926634992332820282019728792003956564819949"),l:y_,n:y_,h:BigInt(8),Gx:BigInt("15112221349535400772501151409588531511454012693041857206046113283949847762202"),Gy:BigInt("46316835694926478169428394003475163141307993866256225615783033603165251855960")}),m_=BigInt("0x10000000000000000000000000000000000000000000000000000000000000000"),b_=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752"),w_=(BigInt("6853475219497561581579357271197624642482790079785650197046958215289687604742"),BigInt("25063068953384623474111414158702152701244531502492656460079210482610430750235")),v_=BigInt("54469307008909316920995813868745141605393597292927456921205312896311721017578"),__=BigInt("1159843021668779879193775521855586647937357759715417654439879720876111806838"),E_=BigInt("40440834346308536858101042469323190826248399146238708352240133220865137265952");class S_{constructor(e,t,r,n){this.x=e,this.y=t,this.z=r,this.t=n}static fromAffine(e){if(!(e instanceof T_))throw new TypeError("ExtendedPoint#fromAffine: expected Point");return e.equals(T_.ZERO)?S_.ZERO:new S_(e.x,e.y,d_,V_(e.x*e.y))}static toAffineBatch(e){const t=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:g_.P;const r=new Array(e.length),n=z_(e.reduce(((e,n,i)=>n===h_?e:(r[i]=e,V_(e*n,t))),d_),t);return e.reduceRight(((e,n,i)=>n===h_?e:(r[i]=V_(e*r[i],t),V_(e*n,t))),n),r}(e.map((e=>e.z)));return e.map(((e,r)=>e.toAffine(t[r])))}static normalizeZ(e){return this.toAffineBatch(e).map(this.fromAffine)}equals(e){k_(e);const{x:t,y:r,z:n}=this,{x:i,y:o,z:s}=e,a=V_(t*s),c=V_(i*n),l=V_(r*s),u=V_(o*n);return a===c&&l===u}negate(){return new S_(V_(-this.x),this.y,this.z,V_(-this.t))}double(){const{x:e,y:t,z:r}=this,{a:n}=g_,i=V_(e*e),o=V_(t*t),s=V_(p_*V_(r*r)),a=V_(n*i),c=e+t,l=V_(V_(c*c)-i-o),u=a+o,h=u-s,d=a-o,p=V_(l*h),f=V_(u*d),y=V_(l*d),g=V_(h*u);return new S_(p,f,g,y)}add(e){k_(e);const{x:t,y:r,z:n,t:i}=this,{x:o,y:s,z:a,t:c}=e,l=V_((r-t)*(s+o)),u=V_((r+t)*(s-o)),h=V_(u-l);if(h===h_)return this.double();const d=V_(n*p_*c),p=V_(i*p_*a),f=p+d,y=u+l,g=p-d,m=V_(f*h),b=V_(y*g),w=V_(f*g),v=V_(h*y);return new S_(m,b,v,w)}subtract(e){return this.add(e.negate())}precomputeWindow(e){const t=1+256/e,r=[];let n=this,i=n;for(let o=0;o<t;o++){i=n,r.push(i);for(let t=1;t<2**(e-1);t++)i=i.add(n),r.push(i);n=i.double()}return r}wNAF(e,t){!t&&this.equals(S_.BASE)&&(t=T_.BASE);const r=t&&t._WINDOW_SIZE||1;if(256%r)throw new Error("Point#wNAF: Invalid precomputation window, must be power of 2");let n=t&&C_.get(t);n||(n=this.precomputeWindow(r),t&&1!==r&&(n=S_.normalizeZ(n),C_.set(t,n)));let i=S_.ZERO,o=S_.BASE;const s=1+256/r,a=2**(r-1),c=BigInt(2**r-1),l=2**r,u=BigInt(r);for(let h=0;h<s;h++){const t=h*a;let r=Number(e&c);e>>=u,r>a&&(r-=l,e+=d_);const s=t,d=t+Math.abs(r)-1,p=h%2!==0,f=r<0;0===r?o=o.add(A_(p,n[s])):i=i.add(A_(f,n[d]))}return S_.normalizeZ([i,o])[0]}multiply(e,t){return this.wNAF(X_(e,g_.l),t)}multiplyUnsafe(e){let t=X_(e,g_.l,!1);const r=S_.BASE,n=S_.ZERO;if(t===h_)return n;if(this.equals(n)||t===d_)return this;if(this.equals(r))return this.wNAF(t);let i=n,o=this;for(;t>h_;)t&d_&&(i=i.add(o)),o=o.double(),t>>=d_;return i}isSmallOrder(){return this.multiplyUnsafe(g_.h).equals(S_.ZERO)}isTorsionFree(){let e=this.multiplyUnsafe(g_.l/p_).double();return g_.l%p_&&(e=e.add(this)),e.equals(S_.ZERO)}toAffine(e){const{x:t,y:r,z:n}=this,i=this.equals(S_.ZERO);null==e&&(e=i?f_:z_(n));const o=V_(t*e),s=V_(r*e),a=V_(n*e);if(i)return T_.ZERO;if(a!==d_)throw new Error("invZ was invalid");return new T_(o,s)}fromRistrettoBytes(){R_()}toRistrettoBytes(){R_()}fromRistrettoHash(){R_()}}function A_(e,t){const r=t.negate();return e?r:t}function k_(e){if(!(e instanceof S_))throw new TypeError("ExtendedPoint expected")}function I_(e){if(!(e instanceof P_))throw new TypeError("RistrettoPoint expected")}function R_(){throw new Error("Legacy method: switch to RistrettoPoint")}S_.BASE=new S_(g_.Gx,g_.Gy,d_,V_(g_.Gx*g_.Gy)),S_.ZERO=new S_(h_,d_,d_,h_);class P_{constructor(e){this.ep=e}static calcElligatorRistrettoMap(e){const{d:t}=g_,r=V_(b_*e*e),n=V_((r+d_)*__);let i=BigInt(-1);const o=V_((i-t*r)*V_(r+t));let{isValid:s,value:a}=G_(n,o),c=V_(a*e);U_(c)||(c=V_(-c)),s||(a=c),s||(i=r);const l=V_(i*(r-d_)*E_-o),u=a*a,h=V_((a+a)*o),d=V_(l*w_),p=V_(d_-u),f=V_(d_+u);return new S_(V_(h*f),V_(p*d),V_(d*f),V_(h*p))}static hashToCurve(e){const t=F_((e=Q_(e,64)).slice(0,32)),r=this.calcElligatorRistrettoMap(t),n=F_(e.slice(32,64)),i=this.calcElligatorRistrettoMap(n);return new P_(r.add(i))}static fromHex(e){e=Q_(e,32);const{a:t,d:r}=g_,n="RistrettoPoint.fromHex: the hex is not valid encoding of RistrettoPoint",i=F_(e);if(!function(e,t){if(e.length!==t.length)return!1;for(let r=0;r<e.length;r++)if(e[r]!==t[r])return!1;return!0}(O_(i),e)||U_(i))throw new Error(n);const o=V_(i*i),s=V_(d_+t*o),a=V_(d_-t*o),c=V_(s*s),l=V_(a*a),u=V_(t*r*c-l),{isValid:h,value:d}=W_(V_(u*l)),p=V_(d*a),f=V_(d*p*u);let y=V_((i+i)*p);U_(y)&&(y=V_(-y));const g=V_(s*f),m=V_(y*g);if(!h||U_(m)||g===h_)throw new Error(n);return new P_(new S_(y,g,d_,m))}toRawBytes(){let{x:e,y:t,z:r,t:n}=this.ep;const i=V_(V_(r+t)*V_(r-t)),o=V_(e*t),s=V_(o*o),{value:a}=W_(V_(i*s)),c=V_(a*i),l=V_(a*o),u=V_(c*l*n);let h;if(U_(n*u)){let r=V_(t*b_),n=V_(e*b_);e=r,t=n,h=V_(c*v_)}else h=l;U_(e*u)&&(t=V_(-t));let d=V_((r-t)*h);return U_(d)&&(d=V_(-d)),O_(d)}toHex(){return L_(this.toRawBytes())}toString(){return this.toHex()}equals(e){I_(e);const t=this.ep,r=e.ep,n=V_(t.x*r.y)===V_(t.y*r.x),i=V_(t.y*r.y)===V_(t.x*r.x);return n||i}add(e){return I_(e),new P_(this.ep.add(e.ep))}subtract(e){return I_(e),new P_(this.ep.subtract(e.ep))}multiply(e){return new P_(this.ep.multiply(e))}multiplyUnsafe(e){return new P_(this.ep.multiplyUnsafe(e))}}P_.BASE=new P_(S_.BASE),P_.ZERO=new P_(S_.ZERO);const C_=new WeakMap;class T_{constructor(e,t){this.x=e,this.y=t}_setWindowSize(e){this._WINDOW_SIZE=e,C_.delete(this)}static fromHex(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];const{d:r,P:n}=g_,i=(e=Q_(e,32)).slice();i[31]=-129&e[31];const o=K_(i);if(t&&o>=n)throw new Error("Expected 0 < hex < P");if(!t&&o>=m_)throw new Error("Expected 0 < hex < 2**256");const s=V_(o*o),a=V_(s-d_),c=V_(r*s+d_);let{isValid:l,value:u}=G_(a,c);if(!l)throw new Error("Point.fromHex: invalid y coordinate");const h=(u&d_)===d_;return 0!==(128&e[31])!==h&&(u=V_(-u)),new T_(u,o)}static async fromPrivateKey(e){return(await tE(e)).point}toRawBytes(){const e=O_(this.y);return e[31]|=this.x&d_?128:0,e}toHex(){return L_(this.toRawBytes())}toX25519(){const{y:e}=this;return O_(V_((d_+e)*z_(d_-e)))}isTorsionFree(){return S_.fromAffine(this).isTorsionFree()}equals(e){return this.x===e.x&&this.y===e.y}negate(){return new T_(V_(-this.x),this.y)}add(e){return S_.fromAffine(this).add(S_.fromAffine(e)).toAffine()}subtract(e){return this.add(e.negate())}multiply(e){return S_.fromAffine(this).multiply(e,this).toAffine()}}T_.BASE=new T_(g_.Gx,g_.Gy),T_.ZERO=new T_(h_,d_);class x_{constructor(e,t){this.r=e,this.s=t,this.assertValidity()}static fromHex(e){const t=Q_(e,64),r=T_.fromHex(t.slice(0,32),!1),n=K_(t.slice(32,64));return new x_(r,n)}assertValidity(){const{r:e,s:t}=this;if(!(e instanceof T_))throw new Error("Expected Point instance");return X_(t,g_.l,!1),this}toRawBytes(){const e=new Uint8Array(64);return e.set(this.r.toRawBytes()),e.set(O_(this.s),32),e}toHex(){return L_(this.toRawBytes())}}function D_(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];if(!t.every((e=>e instanceof Uint8Array)))throw new Error("Expected Uint8Array list");if(1===t.length)return t[0];const n=t.reduce(((e,t)=>e+t.length),0),i=new Uint8Array(n);for(let o=0,s=0;o<t.length;o++){const e=t[o];i.set(e,s),s+=e.length}return i}const N_=Array.from({length:256},((e,t)=>t.toString(16).padStart(2,"0")));function L_(e){if(!(e instanceof Uint8Array))throw new Error("Uint8Array expected");let t="";for(let r=0;r<e.length;r++)t+=N_[e[r]];return t}function B_(e){if("string"!==typeof e)throw new TypeError("hexToBytes: expected string, got "+typeof e);if(e.length%2)throw new Error("hexToBytes: received invalid unpadded hex");const t=new Uint8Array(e.length/2);for(let r=0;r<t.length;r++){const n=2*r,i=e.slice(n,n+2),o=Number.parseInt(i,16);if(Number.isNaN(o)||o<0)throw new Error("Invalid byte sequence");t[r]=o}return t}function M_(e){return B_(e.toString(16).padStart(64,"0"))}function O_(e){return M_(e).reverse()}function U_(e){return(V_(e)&d_)===d_}function K_(e){if(!(e instanceof Uint8Array))throw new Error("Expected Uint8Array");return BigInt("0x"+L_(Uint8Array.from(e).reverse()))}const q_=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");function F_(e){return V_(K_(e)&q_)}function V_(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:g_.P;const r=e%t;return r>=h_?r:t+r}function z_(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:g_.P;if(e===h_||t<=h_)throw new Error("invert: expected positive integers, got n=".concat(e," mod=").concat(t));let r=V_(e,t),n=t,i=h_,o=d_,s=d_,a=h_;for(;r!==h_;){const e=n/r,t=n%r,c=i-s*e,l=o-a*e;n=r,r=t,i=s,o=a,s=c,a=l}if(n!==d_)throw new Error("invert: does not exist");return V_(i,t)}function j_(e,t){const{P:r}=g_;let n=e;for(;t-- >h_;)n*=n,n%=r;return n}function H_(e){const{P:t}=g_,r=BigInt(5),n=BigInt(10),i=BigInt(20),o=BigInt(40),s=BigInt(80),a=e*e%t*e%t,c=j_(a,p_)*a%t,l=j_(c,d_)*e%t,u=j_(l,r)*l%t,h=j_(u,n)*u%t,d=j_(h,i)*h%t,p=j_(d,o)*d%t,f=j_(p,s)*p%t,y=j_(f,s)*p%t,g=j_(y,n)*u%t;return{pow_p_5_8:j_(g,p_)*e%t,b2:a}}function G_(e,t){const r=V_(t*t*t),n=V_(r*r*t);let i=V_(e*r*H_(e*n).pow_p_5_8);const o=V_(t*i*i),s=i,a=V_(i*b_),c=o===e,l=o===V_(-e),u=o===V_(-e*b_);return c&&(i=s),(l||u)&&(i=a),U_(i)&&(i=V_(-i)),{isValid:c||l,value:i}}function W_(e){return G_(d_,e)}function Y_(e){return V_(K_(e),g_.l)}function Q_(e,t){const r=e instanceof Uint8Array?Uint8Array.from(e):B_(e);if("number"===typeof t&&r.length!==t)throw new Error("Expected ".concat(t," bytes"));return r}function X_(e,t){let r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(!t)throw new TypeError("Specify max value");if("number"===typeof e&&Number.isSafeInteger(e)&&(e=BigInt(e)),"bigint"===typeof e&&e<t)if(r){if(h_<e)return e}else if(h_<=e)return e;throw new TypeError("Expected valid scalar: 0 < scalar < max")}function J_(e){return e[0]&=248,e[31]&=127,e[31]|=64,e}function Z_(e){if(32!==(e="bigint"===typeof e||"number"===typeof e?M_(X_(e,m_)):Q_(e)).length)throw new Error("Expected 32 bytes");return e}function $_(e){const t=J_(e.slice(0,32)),r=e.slice(32,64),n=Y_(t),i=T_.BASE.multiply(n),o=i.toRawBytes();return{head:t,prefix:r,scalar:n,point:i,pointBytes:o}}let eE;async function tE(e){return $_(await sE.sha512(Z_(e)))}async function rE(e){return(await tE(e)).pointBytes}function nE(e,t,r){t=Q_(t),r instanceof T_||(r=T_.fromHex(r,!1));const{r:n,s:i}=e instanceof x_?e.assertValidity():x_.fromHex(e);return{r:n,s:i,SB:S_.BASE.multiplyUnsafe(i),pub:r,msg:t}}function iE(e,t,r,n){const i=Y_(n),o=S_.fromAffine(e).multiplyUnsafe(i);return S_.fromAffine(t).add(o).subtract(r).multiplyUnsafe(g_.h).equals(S_.ZERO)}T_.BASE._setWindowSize(8);const oE={node:u_,web:"object"===typeof self&&"crypto"in self?self.crypto:void 0},sE={bytesToHex:L_,hexToBytes:B_,concatBytes:D_,getExtendedPublicKey:tE,mod:V_,invert:z_,TORSION_SUBGROUP:["0100000000000000000000000000000000000000000000000000000000000000","c7176a703d4dd84fba3c0b760d10670f2a2053fa2c39ccc64ec7fd7792ac037a","0000000000000000000000000000000000000000000000000000000000000080","26e8958fc2b227b045c3f489f2ef98f0d5dfac05d3c63339b13802886d53fc05","ecffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f","26e8958fc2b227b045c3f489f2ef98f0d5dfac05d3c63339b13802886d53fc85","0000000000000000000000000000000000000000000000000000000000000000","c7176a703d4dd84fba3c0b760d10670f2a2053fa2c39ccc64ec7fd7792ac03fa"],hashToPrivateScalar:e=>{if((e=Q_(e)).length<40||e.length>1024)throw new Error("Expected 40-1024 bytes of private key as per FIPS 186");return V_(K_(e),g_.l-d_)+d_},randomBytes:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:32;if(oE.web)return oE.web.getRandomValues(new Uint8Array(e));if(oE.node){const{randomBytes:t}=oE.node;return new Uint8Array(t(e).buffer)}throw new Error("The environment doesn't have randomBytes function")},randomPrivateKey:()=>sE.randomBytes(32),sha512:async function(){const e=D_(...arguments);if(oE.web){const t=await oE.web.subtle.digest("SHA-512",e.buffer);return new Uint8Array(t)}if(oE.node)return Uint8Array.from(oE.node.createHash("sha512").update(e).digest());throw new Error("The environment doesn't have sha512 function")},precompute(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:8,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:T_.BASE;const r=t.equals(T_.BASE)?t:new T_(t.x,t.y);return r._setWindowSize(e),r.multiply(p_),r},sha512Sync:void 0};Object.defineProperties(sE,{sha512Sync:{configurable:!1,get:()=>eE,set(e){eE||(eE=e)}}});const aE=32,cE=64,lE=32;async function uE(e,t){return async function(e,t){e=Q_(e);const{prefix:r,scalar:n,pointBytes:i}=await tE(t),o=Y_(await sE.sha512(r,e)),s=T_.BASE.multiply(o),a=V_(o+Y_(await sE.sha512(s.toRawBytes(),i,e))*n,g_.l);return new x_(s,a).toRawBytes()}(t,e.subarray(0,lE))}async function hE(e,t,r){return async function(e,t,r){const{r:n,SB:i,msg:o,pub:s}=nE(e,t,r),a=await sE.sha512(n.toRawBytes(),s.toRawBytes(),o);return iE(s,n,i,a)}(t,r,e)}function dE(e,t){const r=new Uint8Array(cE);for(let n=0;n<lE;n++)r[n]=e[n],r[lE+n]=t[n];return r}const pE=Lv({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),fE=(Lv({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),Lv({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),Lv({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6}),{get(){const e=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:globalThis).crypto;if(null==e||null==e.subtle)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 e}}),yE={alg:"A128GCM",ext:!0,k:"scm9jmO_4BJAgdwWGVulLg",key_ops:["encrypt","decrypt"],kty:"oct"};async function gE(e,t){const r=function(e){var t,r,n,i,o,s;const a=null!==(t=null===e||void 0===e?void 0:e.algorithm)&&void 0!==t?t:"AES-GCM";let c=null!==(r=null===e||void 0===e?void 0:e.keyLength)&&void 0!==r?r:16;const l=null!==(n=null===e||void 0===e?void 0:e.nonceLength)&&void 0!==n?n:12,u=null!==(i=null===e||void 0===e?void 0:e.digest)&&void 0!==i?i:"SHA-256",h=null!==(o=null===e||void 0===e?void 0:e.saltLength)&&void 0!==o?o:16,d=null!==(s=null===e||void 0===e?void 0:e.iterations)&&void 0!==s?s:32767,p=fE.get();return c*=8,{encrypt:async function(e,t){const r=p.getRandomValues(new Uint8Array(h)),n=p.getRandomValues(new Uint8Array(l)),i={name:a,iv:n};let o;if("string"===typeof t&&(t=ps(t)),0===t.length){o=await p.subtle.importKey("jwk",yE,{name:"AES-GCM"},!0,["encrypt"]);try{const e={name:"PBKDF2",salt:r,iterations:d,hash:{name:u}},n=await p.subtle.importKey("raw",t,{name:"PBKDF2"},!1,["deriveKey"]);o=await p.subtle.deriveKey(e,n,{name:a,length:c},!0,["encrypt"])}catch{o=await p.subtle.importKey("jwk",yE,{name:"AES-GCM"},!0,["encrypt"])}}else{const e={name:"PBKDF2",salt:r,iterations:d,hash:{name:u}},n=await p.subtle.importKey("raw",t,{name:"PBKDF2"},!1,["deriveKey"]);o=await p.subtle.deriveKey(e,n,{name:a,length:c},!0,["encrypt"])}const s=await p.subtle.encrypt(i,o,e);return Po([r,i.iv,new Uint8Array(s)])},decrypt:async function(e,t){const r=e.subarray(0,h),n=e.subarray(h,h+l),i=e.subarray(h+l),o={name:a,iv:n};let s;if("string"===typeof t&&(t=ps(t)),0===t.length)try{const e={name:"PBKDF2",salt:r,iterations:d,hash:{name:u}},n=await p.subtle.importKey("raw",t,{name:"PBKDF2"},!1,["deriveKey"]);s=await p.subtle.deriveKey(e,n,{name:a,length:c},!0,["decrypt"])}catch{s=await p.subtle.importKey("jwk",yE,{name:"AES-GCM"},!0,["decrypt"])}else{const e={name:"PBKDF2",salt:r,iterations:d,hash:{name:u}},n=await p.subtle.importKey("raw",t,{name:"PBKDF2"},!1,["deriveKey"]);s=await p.subtle.deriveKey(e,n,{name:a,length:c},!0,["decrypt"])}const f=await p.subtle.decrypt(o,s,i);return new Uint8Array(f)}}}(),n=await r.encrypt(e,t);return pE.encode(n)}ya._configure(),pa._configure(fa),ga._configure(ma);const mE=["uint64","int64","sint64","fixed64","sfixed64"];function bE(e){return function(e){for(const t of mE){if(null==e[t])continue;const r=e[t];e[t]=function(){return BigInt(r.call(this).toString())}}return e}(new pa(e))}function wE(){return function(e){for(const t of mE){if(null==e[t])continue;const r=e[t];e[t]=function(e){return r.call(this,e.toString())}}return e}(ga.create())}function vE(e,t){const r=bE(e instanceof Uint8Array?e:e.subarray());return t.decode(r)}function _E(e,t){const r=wE();return t.encode(e,r,{lengthDelimited:!1}),r.finish()}var EE,SE,AE,kE,IE;function RE(e,t,r,n){return{name:e,type:t,encode:r,decode:n}}function PE(e,t){return RE("message",EE.LENGTH_DELIMITED,e,t)}!function(e){e[e.VARINT=0]="VARINT",e[e.BIT64=1]="BIT64",e[e.LENGTH_DELIMITED=2]="LENGTH_DELIMITED",e[e.START_GROUP=3]="START_GROUP",e[e.END_GROUP=4]="END_GROUP",e[e.BIT32=5]="BIT32"}(EE||(EE={})),function(e){e.RSA="RSA",e.Ed25519="Ed25519",e.Secp256k1="Secp256k1"}(SE||(SE={})),function(e){e[e.RSA=0]="RSA",e[e.Ed25519=1]="Ed25519",e[e.Secp256k1=2]="Secp256k1"}(AE||(AE={})),function(e){e.codec=()=>function(e){function t(t){if(null==e[t.toString()])throw new Error("Invalid enum value");return e[t]}return RE("enum",EE.VARINT,(function(e,r){const n=t(e);r.int32(n)}),(function(e){return t(e.int32())}))}(AE)}(SE||(SE={})),function(e){let t;e.codec=()=>(null==t&&(t=PE((function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};!1!==r.lengthDelimited&&t.fork(),null!=e.Type&&(t.uint32(8),SE.codec().encode(e.Type,t)),null!=e.Data&&(t.uint32(18),t.bytes(e.Data)),!1!==r.lengthDelimited&&t.ldelim()}),((e,t)=>{const r={},n=null==t?e.len:e.pos+t;for(;e.pos<n;){const t=e.uint32();switch(t>>>3){case 1:r.Type=SE.codec().decode(e);break;case 2:r.Data=e.bytes();break;default:e.skipType(7&t)}}return r}))),t),e.encode=t=>_E(t,e.codec()),e.decode=t=>vE(t,e.codec())}(kE||(kE={})),function(e){let t;e.codec=()=>(null==t&&(t=PE((function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};!1!==r.lengthDelimited&&t.fork(),null!=e.Type&&(t.uint32(8),SE.codec().encode(e.Type,t)),null!=e.Data&&(t.uint32(18),t.bytes(e.Data)),!1!==r.lengthDelimited&&t.ldelim()}),((e,t)=>{const r={},n=null==t?e.len:e.pos+t;for(;e.pos<n;){const t=e.uint32();switch(t>>>3){case 1:r.Type=SE.codec().decode(e);break;case 2:r.Data=e.bytes();break;default:e.skipType(7&t)}}return r}))),t),e.encode=t=>_E(t,e.codec()),e.decode=t=>vE(t,e.codec())}(IE||(IE={}));class CE{constructor(e){Br(this,"_key",void 0),this._key=BE(e,aE)}async verify(e,t){return hE(this._key,t,e)}marshal(){return this._key}get bytes(){return kE.encode({Type:SE.Ed25519,Data:this.marshal()}).subarray()}equals(e){return Yn(this.bytes,e.bytes)}async hash(){const{bytes:e}=await c_.digest(this.bytes);return e}}class TE{constructor(e,t){Br(this,"_key",void 0),Br(this,"_publicKey",void 0),this._key=BE(e,cE),this._publicKey=BE(t,aE)}async sign(e){return uE(this._key,e)}get public(){return new CE(this._publicKey)}marshal(){return this._key}get bytes(){return IE.encode({Type:SE.Ed25519,Data:this.marshal()}).subarray()}equals(e){return Yn(this.bytes,e.bytes)}async hash(){const{bytes:e}=await c_.digest(this.bytes);return e}async id(){const e=i_(this.public.bytes);return Bv.encode(e.bytes).substring(1)}async export(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"libp2p-key";if("libp2p-key"===t)return gE(this.bytes,e);throw new jr("export format '".concat(t,"' is not supported"),"ERR_INVALID_EXPORT_FORMAT")}}function xE(e){if(e.length>cE){const t=(e=BE(e,cE+aE)).subarray(0,cE),r=e.subarray(cE,e.length);return new TE(t,r)}const t=(e=BE(e,cE)).subarray(0,cE),r=e.subarray(aE);return new TE(t,r)}function DE(e){return e=BE(e,aE),new CE(e)}async function NE(){const{privateKey:e,publicKey:t}=await async function(){const e=sE.randomPrivateKey(),t=await rE(e);return{privateKey:dE(e,t),publicKey:t}}();return new TE(e,t)}async function LE(e){const{privateKey:t,publicKey:r}=await async function(e){if(e.length!==lE)throw new TypeError('"seed" must be 32 bytes in length.');if(!(e instanceof Uint8Array))throw new TypeError('"seed" must be a node.js Buffer, or Uint8Array.');const t=e,r=await rE(t);return{privateKey:dE(t,r),publicKey:r}}(e);return new TE(t,r)}function BE(e,t){var r;if((e=Uint8Array.from(null!==(r=e)&&void 0!==r?r:[])).length!==t)throw new jr("Key must be a Uint8Array of length ".concat(t,", got ").concat(e.length),"ERR_INVALID_KEY_TYPE");return e}function ME(e,t){let r=Uint8Array.from(e.abs().toByteArray());if(r=0===r[0]?r.subarray(1):r,null!=t){if(r.length>t)throw new Error("byte array longer than desired length");r=Po([new Uint8Array(t-r.length),r])}return Ro(r,"base64url")}function OE(e){const t=function(e,t){let r=ps(e,"base64urlpad");if(null!=t){if(r.length>t)throw new Error("byte array longer than desired length");r=Po([new Uint8Array(t-r.length),r])}return r}(e);return new sp.jsbn.BigInteger(Ro(t,"base16"),16)}const UE={"P-256":256,"P-384":384,"P-521":521};Object.keys(UE).join(" / ");function KE(e,t){return t.map((t=>OE(e[t])))}async function qE(e){const t=[await fE.get().subtle.importKey("jwk",e,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["sign"]),await VE(e)],r=await FE({privateKey:t[0],publicKey:t[1]});return{privateKey:r[0],publicKey:r[1]}}async function FE(e){if(null==e.privateKey||null==e.publicKey)throw new jr("Private and public key are required","ERR_INVALID_PARAMETERS");return Promise.all([fE.get().subtle.exportKey("jwk",e.privateKey),fE.get().subtle.exportKey("jwk",e.publicKey)])}async function VE(e){return fE.get().subtle.importKey("jwk",{kty:e.kty,n:e.n,e:e.e},{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["verify"])}function zE(e,t,r,n){const i=t?function(e){return sp.pki.setRsaPublicKey(...KE(e,["n","e"]))}(e):function(e){return sp.pki.setRsaPrivateKey(...KE(e,["n","e","d","p","q","dp","dq","qi"]))}(e);return ps(n(Ro(Uint8Array.from(r),"ascii"),i),"ascii")}class jE{constructor(e){Br(this,"_key",void 0),this._key=e}async verify(e,t){return async function(e,t,r){const n=await fE.get().subtle.importKey("jwk",e,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["verify"]);return fE.get().subtle.verify({name:"RSASSA-PKCS1-v1_5"},n,t,r)}(this._key,t,e)}marshal(){return function(e){if(null==e.n||null==e.e)throw new jr("JWK was missing components","ERR_INVALID_PARAMETERS");const t=sp.pki.publicKeyToAsn1({n:OE(e.n),e:OE(e.e)});return ps(sp.asn1.toDer(t).getBytes(),"ascii")}(this._key)}get bytes(){return kE.encode({Type:SE.RSA,Data:this.marshal()}).subarray()}encrypt(e){return zE(this._key,!0,e,((e,t)=>t.encrypt(e)))}equals(e){return Yn(this.bytes,e.bytes)}async hash(){const{bytes:e}=await c_.digest(this.bytes);return e}}class HE{constructor(e,t){Br(this,"_key",void 0),Br(this,"_publicKey",void 0),this._key=e,this._publicKey=t}genSecret(){return function(e){if(isNaN(e)||e<=0)throw new jr("random bytes length must be a Number bigger than 0","ERR_INVALID_LENGTH");return mv.randomBytes(e)}(16)}async sign(e){return async function(e,t){const r=await fE.get().subtle.importKey("jwk",e,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["sign"]),n=await fE.get().subtle.sign({name:"RSASSA-PKCS1-v1_5"},r,Uint8Array.from(t));return new Uint8Array(n,0,n.byteLength)}(this._key,e)}get public(){if(null==this._publicKey)throw new jr("public key not provided","ERR_PUBKEY_NOT_PROVIDED");return new jE(this._publicKey)}decrypt(e){return zE(this._key,!1,e,((e,t)=>t.decrypt(e)))}marshal(){return function(e){if(null==e.n||null==e.e||null==e.d||null==e.p||null==e.q||null==e.dp||null==e.dq||null==e.qi)throw new jr("JWK was missing components","ERR_INVALID_PARAMETERS");const t=sp.pki.privateKeyToAsn1({n:OE(e.n),e:OE(e.e),d:OE(e.d),p:OE(e.p),q:OE(e.q),dP:OE(e.dp),dQ:OE(e.dq),qInv:OE(e.qi)});return ps(sp.asn1.toDer(t).getBytes(),"ascii")}(this._key)}get bytes(){return IE.encode({Type:SE.RSA,Data:this.marshal()}).subarray()}equals(e){return Yn(this.bytes,e.bytes)}async hash(){const{bytes:e}=await c_.digest(this.bytes);return e}async id(){return Ro(await this.public.hash(),"base58btc")}async export(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"pkcs-8";if("pkcs-8"===t){const t=new sp.util.ByteBuffer(this.marshal()),r=sp.asn1.fromDer(t),n=sp.pki.privateKeyFromAsn1(r),i={algorithm:"aes256",count:1e4,saltSize:16,prfAlgorithm:"sha512"};return sp.pki.encryptRsaPrivateKey(n,e,i)}if("libp2p-key"===t)return gE(this.bytes,e);throw new jr("export format '".concat(t,"' is not supported"),"ERR_INVALID_EXPORT_FORMAT")}}async function GE(e){const t=function(e){const t=sp.asn1.fromDer(Ro(e,"ascii")),r=sp.pki.privateKeyFromAsn1(t);return{kty:"RSA",n:ME(r.n),e:ME(r.e),d:ME(r.d),p:ME(r.p),q:ME(r.q),dp:ME(r.dP),dq:ME(r.dQ),qi:ME(r.qInv),alg:"RS256"}}(e),r=await qE(t);return new HE(r.privateKey,r.publicKey)}function WE(e){const t=function(e){const t=sp.asn1.fromDer(Ro(e,"ascii")),r=sp.pki.publicKeyFromAsn1(t);return{kty:"RSA",n:ME(r.n),e:ME(r.e)}}(e);return new jE(t)}async function YE(e){const t=await qE(e);return new HE(t.privateKey,t.publicKey)}async function QE(e){const t=await async function(e){const t=await fE.get().subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:e,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-256"}},!0,["sign","verify"]),r=await FE(t);return{privateKey:r[0],publicKey:r[1]}}(e);return new HE(t.privateKey,t.publicKey)}function XE(e){try{xw.fromHex(e)}catch(t){throw new jr(String(t),"ERR_INVALID_PUBLIC_KEY")}}class JE{constructor(e){Br(this,"_key",void 0),XE(e),this._key=e}async verify(e,t){return async function(e,t,r){try{const{digest:n}=await c_.digest(r);return fv(t,n,e)}catch(n){throw new jr(String(n),"ERR_INVALID_INPUT")}}(this._key,t,e)}marshal(){return e=this._key,xw.fromHex(e).toRawBytes(!0);var e}get bytes(){return kE.encode({Type:SE.Secp256k1,Data:this.marshal()}).subarray()}equals(e){return Yn(this.bytes,e.bytes)}async hash(){const{bytes:e}=await c_.digest(this.bytes);return e}}class ZE{constructor(e,t){Br(this,"_key",void 0),Br(this,"_publicKey",void 0),this._key=e,this._publicKey=null!==t&&void 0!==t?t:function(e){try{return sv(e,!0)}catch(t){throw new jr(String(t),"ERR_INVALID_PRIVATE_KEY")}}(e),function(e){try{sv(e,!0)}catch(t){throw new jr(String(t),"ERR_INVALID_PRIVATE_KEY")}}(this._key),XE(this._publicKey)}async sign(e){return async function(e,t){const{digest:r}=await c_.digest(t);try{return await dv(r,e)}catch(n){throw new jr(String(n),"ERR_INVALID_INPUT")}}(this._key,e)}get public(){return new JE(this._publicKey)}marshal(){return this._key}get bytes(){return IE.encode({Type:SE.Secp256k1,Data:this.marshal()}).subarray()}equals(e){return Yn(this.bytes,e.bytes)}async hash(){const{bytes:e}=await c_.digest(this.bytes);return e}async id(){return Ro(await this.public.hash(),"base58btc")}async export(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"libp2p-key";if("libp2p-key"===t)return gE(this.bytes,e);throw new jr("export format '".concat(t,"' is not supported"),"ERR_INVALID_EXPORT_FORMAT")}}function $E(e){return new ZE(e)}function eS(e){return new JE(e)}async function tS(){const e=mv.randomPrivateKey();return new ZE(e)}const rS={rsa:W,ed25519:G,secp256k1:Y};var nS=function(e,t){if(e.length>=255)throw new TypeError("Alphabet too long");for(var r=new Uint8Array(256),n=0;n<r.length;n++)r[n]=255;for(var i=0;i<e.length;i++){var o=e.charAt(i),s=o.charCodeAt(0);if(255!==r[s])throw new TypeError(o+" is ambiguous");r[s]=i}var a=e.length,c=e.charAt(0),l=Math.log(a)/Math.log(256),u=Math.log(256)/Math.log(a);function h(e){if("string"!==typeof e)throw new TypeError("Expected String");if(0===e.length)return new Uint8Array;var t=0;if(" "!==e[t]){for(var n=0,i=0;e[t]===c;)n++,t++;for(var o=(e.length-t)*l+1>>>0,s=new Uint8Array(o);e[t];){var u=r[e.charCodeAt(t)];if(255===u)return;for(var h=0,d=o-1;(0!==u||h<i)&&-1!==d;d--,h++)u+=a*s[d]>>>0,s[d]=u%256>>>0,u=u/256>>>0;if(0!==u)throw new Error("Non-zero carry");i=h,t++}if(" "!==e[t]){for(var p=o-i;p!==o&&0===s[p];)p++;for(var f=new Uint8Array(n+(o-p)),y=n;p!==o;)f[y++]=s[p++];return f}}}return{encode:function(t){if(t instanceof Uint8Array||(ArrayBuffer.isView(t)?t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength):Array.isArray(t)&&(t=Uint8Array.from(t))),!(t instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(0===t.length)return"";for(var r=0,n=0,i=0,o=t.length;i!==o&&0===t[i];)i++,r++;for(var s=(o-i)*u+1>>>0,l=new Uint8Array(s);i!==o;){for(var h=t[i],d=0,p=s-1;(0!==h||d<n)&&-1!==p;p--,d++)h+=256*l[p]>>>0,l[p]=h%a>>>0,h=h/a>>>0;if(0!==h)throw new Error("Non-zero carry");n=d,i++}for(var f=s-n;f!==s&&0===l[f];)f++;for(var y=c.repeat(r);f<s;++f)y+=e.charAt(l[f]);return y},decodeUnsafe:h,decode:function(e){var r=h(e);if(r)return r;throw new Error("Non-".concat(t," character"))}}};const iS=nS,oS=(new Uint8Array(0),e=>{if(e instanceof Uint8Array&&"Uint8Array"===e.constructor.name)return e;if(e instanceof ArrayBuffer)return new Uint8Array(e);if(ArrayBuffer.isView(e))return new Uint8Array(e.buffer,e.byteOffset,e.byteLength);throw new Error("Unknown type, must be binary type")});class sS{constructor(e,t,r){this.name=e,this.prefix=t,this.baseEncode=r}encode(e){if(e instanceof Uint8Array)return"".concat(this.prefix).concat(this.baseEncode(e));throw Error("Unknown type, must be binary type")}}class aS{constructor(e,t,r){if(this.name=e,this.prefix=t,void 0===t.codePointAt(0))throw new Error("Invalid prefix character");this.prefixCodePoint=t.codePointAt(0),this.baseDecode=r}decode(e){if("string"===typeof e){if(e.codePointAt(0)!==this.prefixCodePoint)throw Error("Unable to decode multibase string ".concat(JSON.stringify(e),", ").concat(this.name," decoder only supports inputs prefixed with ").concat(this.prefix));return this.baseDecode(e.slice(this.prefix.length))}throw Error("Can only multibase decode strings")}or(e){return lS(this,e)}}class cS{constructor(e){this.decoders=e}or(e){return lS(this,e)}decode(e){const t=e[0],r=this.decoders[t];if(r)return r.decode(e);throw RangeError("Unable to decode multibase string ".concat(JSON.stringify(e),", only inputs prefixed with ").concat(Object.keys(this.decoders)," are supported"))}}const lS=(e,t)=>new cS({...e.decoders||{[e.prefix]:e},...t.decoders||{[t.prefix]:t}});class uS{constructor(e,t,r,n){this.name=e,this.prefix=t,this.baseEncode=r,this.baseDecode=n,this.encoder=new sS(e,t,r),this.decoder=new aS(e,t,n)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}}const hS=e=>{let{name:t,prefix:r,encode:n,decode:i}=e;return new uS(t,r,n,i)},dS=e=>{let{prefix:t,name:r,alphabet:n}=e;const{encode:i,decode:o}=iS(n,r);return hS({prefix:t,name:r,encode:i,decode:e=>oS(o(e))})},pS=e=>{let{name:t,prefix:r,bitsPerChar:n,alphabet:i}=e;return hS({prefix:r,name:t,encode:e=>((e,t,r)=>{const n="="===t[t.length-1],i=(1<<r)-1;let o="",s=0,a=0;for(let c=0;c<e.length;++c)for(a=a<<8|e[c],s+=8;s>r;)s-=r,o+=t[i&a>>s];if(s&&(o+=t[i&a<<r-s]),n)for(;o.length*r&7;)o+="=";return o})(e,i,n),decode:e=>((e,t,r,n)=>{const i={};for(let u=0;u<t.length;++u)i[t[u]]=u;let o=e.length;for(;"="===e[o-1];)--o;const s=new Uint8Array(o*r/8|0);let a=0,c=0,l=0;for(let u=0;u<o;++u){const t=i[e[u]];if(void 0===t)throw new SyntaxError("Non-".concat(n," character"));c=c<<r|t,a+=r,a>=8&&(a-=8,s[l++]=255&c>>a)}if(a>=r||255&c<<8-a)throw new SyntaxError("Unexpected end of data");return s})(e,i,n,t)})},fS=dS({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),yS=dS({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"}),gS=dS({prefix:"9",name:"base10",alphabet:"0123456789"}),mS=pS({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),bS=pS({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4}),wS=pS({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1}),vS=Array.from("\ud83d\ude80\ud83e\ude90\u2604\ud83d\udef0\ud83c\udf0c\ud83c\udf11\ud83c\udf12\ud83c\udf13\ud83c\udf14\ud83c\udf15\ud83c\udf16\ud83c\udf17\ud83c\udf18\ud83c\udf0d\ud83c\udf0f\ud83c\udf0e\ud83d\udc09\u2600\ud83d\udcbb\ud83d\udda5\ud83d\udcbe\ud83d\udcbf\ud83d\ude02\u2764\ud83d\ude0d\ud83e\udd23\ud83d\ude0a\ud83d\ude4f\ud83d\udc95\ud83d\ude2d\ud83d\ude18\ud83d\udc4d\ud83d\ude05\ud83d\udc4f\ud83d\ude01\ud83d\udd25\ud83e\udd70\ud83d\udc94\ud83d\udc96\ud83d\udc99\ud83d\ude22\ud83e\udd14\ud83d\ude06\ud83d\ude44\ud83d\udcaa\ud83d\ude09\u263a\ud83d\udc4c\ud83e\udd17\ud83d\udc9c\ud83d\ude14\ud83d\ude0e\ud83d\ude07\ud83c\udf39\ud83e\udd26\ud83c\udf89\ud83d\udc9e\u270c\u2728\ud83e\udd37\ud83d\ude31\ud83d\ude0c\ud83c\udf38\ud83d\ude4c\ud83d\ude0b\ud83d\udc97\ud83d\udc9a\ud83d\ude0f\ud83d\udc9b\ud83d\ude42\ud83d\udc93\ud83e\udd29\ud83d\ude04\ud83d\ude00\ud83d\udda4\ud83d\ude03\ud83d\udcaf\ud83d\ude48\ud83d\udc47\ud83c\udfb6\ud83d\ude12\ud83e\udd2d\u2763\ud83d\ude1c\ud83d\udc8b\ud83d\udc40\ud83d\ude2a\ud83d\ude11\ud83d\udca5\ud83d\ude4b\ud83d\ude1e\ud83d\ude29\ud83d\ude21\ud83e\udd2a\ud83d\udc4a\ud83e\udd73\ud83d\ude25\ud83e\udd24\ud83d\udc49\ud83d\udc83\ud83d\ude33\u270b\ud83d\ude1a\ud83d\ude1d\ud83d\ude34\ud83c\udf1f\ud83d\ude2c\ud83d\ude43\ud83c\udf40\ud83c\udf37\ud83d\ude3b\ud83d\ude13\u2b50\u2705\ud83e\udd7a\ud83c\udf08\ud83d\ude08\ud83e\udd18\ud83d\udca6\u2714\ud83d\ude23\ud83c\udfc3\ud83d\udc90\u2639\ud83c\udf8a\ud83d\udc98\ud83d\ude20\u261d\ud83d\ude15\ud83c\udf3a\ud83c\udf82\ud83c\udf3b\ud83d\ude10\ud83d\udd95\ud83d\udc9d\ud83d\ude4a\ud83d\ude39\ud83d\udde3\ud83d\udcab\ud83d\udc80\ud83d\udc51\ud83c\udfb5\ud83e\udd1e\ud83d\ude1b\ud83d\udd34\ud83d\ude24\ud83c\udf3c\ud83d\ude2b\u26bd\ud83e\udd19\u2615\ud83c\udfc6\ud83e\udd2b\ud83d\udc48\ud83d\ude2e\ud83d\ude46\ud83c\udf7b\ud83c\udf43\ud83d\udc36\ud83d\udc81\ud83d\ude32\ud83c\udf3f\ud83e\udde1\ud83c\udf81\u26a1\ud83c\udf1e\ud83c\udf88\u274c\u270a\ud83d\udc4b\ud83d\ude30\ud83e\udd28\ud83d\ude36\ud83e\udd1d\ud83d\udeb6\ud83d\udcb0\ud83c\udf53\ud83d\udca2\ud83e\udd1f\ud83d\ude41\ud83d\udea8\ud83d\udca8\ud83e\udd2c\u2708\ud83c\udf80\ud83c\udf7a\ud83e\udd13\ud83d\ude19\ud83d\udc9f\ud83c\udf31\ud83d\ude16\ud83d\udc76\ud83e\udd74\u25b6\u27a1\u2753\ud83d\udc8e\ud83d\udcb8\u2b07\ud83d\ude28\ud83c\udf1a\ud83e\udd8b\ud83d\ude37\ud83d\udd7a\u26a0\ud83d\ude45\ud83d\ude1f\ud83d\ude35\ud83d\udc4e\ud83e\udd32\ud83e\udd20\ud83e\udd27\ud83d\udccc\ud83d\udd35\ud83d\udc85\ud83e\uddd0\ud83d\udc3e\ud83c\udf52\ud83d\ude17\ud83e\udd11\ud83c\udf0a\ud83e\udd2f\ud83d\udc37\u260e\ud83d\udca7\ud83d\ude2f\ud83d\udc86\ud83d\udc46\ud83c\udfa4\ud83d\ude47\ud83c\udf51\u2744\ud83c\udf34\ud83d\udca3\ud83d\udc38\ud83d\udc8c\ud83d\udccd\ud83e\udd40\ud83e\udd22\ud83d\udc45\ud83d\udca1\ud83d\udca9\ud83d\udc50\ud83d\udcf8\ud83d\udc7b\ud83e\udd10\ud83e\udd2e\ud83c\udfbc\ud83e\udd75\ud83d\udea9\ud83c\udf4e\ud83c\udf4a\ud83d\udc7c\ud83d\udc8d\ud83d\udce3\ud83e\udd42"),_S=vS.reduce(((e,t,r)=>(e[r]=t,e)),[]),ES=vS.reduce(((e,t,r)=>(e[t.codePointAt(0)]=r,e)),[]);const SS=hS({prefix:"\ud83d\ude80",name:"base256emoji",encode:function(e){return e.reduce(((e,t)=>e+=_S[t]),"")},decode:function(e){const t=[];for(const r of e){const e=ES[r.codePointAt(0)];if(void 0===e)throw new Error("Non-base256emoji character: ".concat(r));t.push(e)}return new Uint8Array(t)}}),AS=pS({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),kS=pS({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),IS=pS({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),RS=pS({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),PS=pS({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),CS=pS({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),TS=pS({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),xS=pS({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),DS=pS({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5}),NS=dS({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),LS=dS({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"}),BS=pS({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),MS=pS({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),OS=pS({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),US=pS({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6}),KS=pS({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3}),qS=hS({prefix:"\0",name:"identity",encode:e=>{return t=e,(new TextDecoder).decode(t);var t},decode:e=>(e=>(new TextEncoder).encode(e))(e)}),FS=new TextEncoder,VS=new TextDecoder,zS="json",jS=512,HS=e=>FS.encode(JSON.stringify(e)),GS=e=>JSON.parse(VS.decode(e)),WS="raw",YS=85,QS=e=>oS(e),XS=e=>oS(e);var JS=function e(t,r,n){r=r||[];var i=n=n||0;for(;t>=eA;)r[n++]=255&t|ZS,t/=128;for(;t&$S;)r[n++]=255&t|ZS,t>>>=7;return r[n]=0|t,e.bytes=n-i+1,r},ZS=128,$S=-128,eA=Math.pow(2,31);var tA=function e(t,r){var n,i=0,o=0,s=r=r||0,a=t.length;do{if(s>=a)throw e.bytes=0,new RangeError("Could not decode varint");n=t[s++],i+=o<28?(n&nA)<<o:(n&nA)*Math.pow(2,o),o+=7}while(n>=rA);return e.bytes=s-r,i},rA=128,nA=127;var iA=Math.pow(2,7),oA=Math.pow(2,14),sA=Math.pow(2,21),aA=Math.pow(2,28),cA=Math.pow(2,35),lA=Math.pow(2,42),uA=Math.pow(2,49),hA=Math.pow(2,56),dA=Math.pow(2,63);const pA={encode:JS,decode:tA,encodingLength:function(e){return e<iA?1:e<oA?2:e<sA?3:e<aA?4:e<cA?5:e<lA?6:e<uA?7:e<hA?8:e<dA?9:10}},fA=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return[pA.decode(e,t),pA.decode.bytes]},yA=function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;return pA.encode(e,t,r),t},gA=e=>pA.encodingLength(e),mA=(e,t)=>{const r=t.byteLength,n=gA(e),i=n+gA(r),o=new Uint8Array(i+r);return yA(e,o,0),yA(r,o,n),o.set(t,i),new wA(e,r,t,o)},bA=e=>{const t=oS(e),[r,n]=fA(t),[i,o]=fA(t.subarray(n)),s=t.subarray(n+o);if(s.byteLength!==i)throw new Error("Incorrect length");return new wA(r,i,s,t)};class wA{constructor(e,t,r,n){this.code=e,this.size=t,this.digest=r,this.bytes=n}}const vA=oS,_A={code:0,name:"identity",encode:vA,digest:e=>mA(0,vA(e))},EA=e=>{let{name:t,code:r,encode:n}=e;return new SA(t,r,n)};class SA{constructor(e,t,r){this.name=e,this.code=t,this.encode=r}digest(e){if(e instanceof Uint8Array){const t=this.encode(e);return t instanceof Uint8Array?mA(this.code,t):t.then((e=>mA(this.code,e)))}throw Error("Unknown type, must be binary type")}}const AA=e=>async t=>new Uint8Array(await crypto.subtle.digest(e,t)),kA=EA({name:"sha2-256",code:18,encode:AA("SHA-256")}),IA=EA({name:"sha2-512",code:19,encode:AA("SHA-512")}),RA=(e,t)=>{const{bytes:r,version:n}=e;return 0===n?DA(r,CA(e),t||fS.encoder):NA(r,CA(e),t||AS.encoder)},PA=new WeakMap,CA=e=>{const t=PA.get(e);if(null==t){const t=new Map;return PA.set(e,t),t}return t};class TA{constructor(e,t,r,n){this.code=t,this.version=e,this.multihash=r,this.bytes=n,this["/"]=n}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:{const{code:e,multihash:t}=this;if(e!==LA)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(t.code!==BA)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return TA.createV0(t)}default:throw Error("Can not convert CID version ".concat(this.version," to version 0. This is a bug please report"))}}toV1(){switch(this.version){case 0:{const{code:e,digest:t}=this.multihash,r=mA(e,t);return TA.createV1(this.code,r)}case 1:return this;default:throw Error("Can not convert CID version ".concat(this.version," to version 1. This is a bug please report"))}}equals(e){return TA.equals(this,e)}static equals(e,t){const r=t;return r&&e.code===r.code&&e.version===r.version&&((e,t)=>{if(e===t)return!0;{const r=t;return e.code===r.code&&e.size===r.size&&r.bytes instanceof Uint8Array&&((e,t)=>{if(e===t)return!0;if(e.byteLength!==t.byteLength)return!1;for(let r=0;r<e.byteLength;r++)if(e[r]!==t[r])return!1;return!0})(e.bytes,r.bytes)}})(e.multihash,r.multihash)}toString(e){return RA(this,e)}toJSON(){return{"/":RA(this)}}link(){return this}get[Symbol.toStringTag](){return"CID"}[Symbol.for("nodejs.util.inspect.custom")](){return"CID(".concat(this.toString(),")")}static asCID(e){if(null==e)return null;const t=e;if(t instanceof TA)return t;if(null!=t["/"]&&t["/"]===t.bytes||t.asCID===t){const{version:e,code:r,multihash:n,bytes:i}=t;return new TA(e,r,n,i||MA(e,r,n.bytes))}if(!0===t[OA]){const{version:e,multihash:r,code:n}=t,i=bA(r);return TA.create(e,n,i)}return null}static create(e,t,r){if("number"!==typeof t)throw new Error("String codecs are no longer supported");if(!(r.bytes instanceof Uint8Array))throw new Error("Invalid digest");switch(e){case 0:if(t!==LA)throw new Error("Version 0 CID must use dag-pb (code: ".concat(LA,") block encoding"));return new TA(e,t,r,r.bytes);case 1:{const n=MA(e,t,r.bytes);return new TA(e,t,r,n)}default:throw new Error("Invalid version")}}static createV0(e){return TA.create(0,LA,e)}static createV1(e,t){return TA.create(1,e,t)}static decode(e){const[t,r]=TA.decodeFirst(e);if(r.length)throw new Error("Incorrect length");return t}static decodeFirst(e){const t=TA.inspectBytes(e),r=t.size-t.multihashSize,n=oS(e.subarray(r,r+t.multihashSize));if(n.byteLength!==t.multihashSize)throw new Error("Incorrect length");const i=n.subarray(t.multihashSize-t.digestSize),o=new wA(t.multihashCode,t.digestSize,i,n);return[0===t.version?TA.createV0(o):TA.createV1(t.codec,o),e.subarray(t.size)]}static inspectBytes(e){let t=0;const r=()=>{const[r,n]=fA(e.subarray(t));return t+=n,r};let n=r(),i=LA;if(18===n?(n=0,t=0):i=r(),0!==n&&1!==n)throw new RangeError("Invalid CID version ".concat(n));const o=t,s=r(),a=r(),c=t+a;return{version:n,codec:i,multihashCode:s,digestSize:a,multihashSize:c-o,size:c}}static parse(e,t){const[r,n]=xA(e,t),i=TA.decode(n);if(0===i.version&&"Q"!==e[0])throw Error("Version 0 CID string must not include multibase prefix");return CA(i).set(r,e),i}}const xA=(e,t)=>{switch(e[0]){case"Q":{const r=t||fS;return[fS.prefix,r.decode("".concat(fS.prefix).concat(e))]}case fS.prefix:{const r=t||fS;return[fS.prefix,r.decode(e)]}case AS.prefix:{const r=t||AS;return[AS.prefix,r.decode(e)]}default:if(null==t)throw Error("To parse non base32 or base58btc encoded CID multibase decoder must be provided");return[e[0],t.decode(e)]}},DA=(e,t,r)=>{const{prefix:n}=r;if(n!==fS.prefix)throw Error("Cannot string encode V0 in ".concat(r.name," encoding"));const i=t.get(n);if(null==i){const i=r.encode(e).slice(1);return t.set(n,i),i}return i},NA=(e,t,r)=>{const{prefix:n}=r,i=t.get(n);if(null==i){const i=r.encode(e);return t.set(n,i),i}return i},LA=112,BA=18,MA=(e,t,r)=>{const n=gA(e),i=n+gA(t),o=new Uint8Array(i+r.byteLength);return yA(e,o,0),yA(t,o,n),o.set(r,i),o},OA=Symbol.for("@ipld/js-cid/CID"),UA={...ie,...Z,...ne,...X,...J,...ee,...te,...Q,...re,...$};let KA;const qA=Symbol.for("nodejs.util.inspect.custom"),FA=Object.values(UA).map((e=>e.decoder)).reduce(((e,t)=>e.or(t)),UA.identity.decoder),VA=114,zA=36,jA=37;KA=Symbol.toStringTag;class HA{constructor(e){Br(this,"type",void 0),Br(this,"multihash",void 0),Br(this,"privateKey",void 0),Br(this,"publicKey",void 0),Br(this,"string",void 0),Br(this,Mr,!0),this.type=e.type,this.multihash=e.multihash,this.privateKey=e.privateKey,Object.defineProperty(this,"string",{enumerable:!1,writable:!0})}get[KA](){return"PeerId(".concat(this.toString(),")")}toString(){return null==this.string&&(this.string=fS.encode(this.multihash.bytes).slice(1)),this.string}toCID(){return TA.createV1(VA,this.multihash)}toBytes(){return this.multihash.bytes}toJSON(){return this.toString()}equals(e){var t;if(e instanceof Uint8Array)return Yn(this.multihash.bytes,e);if("string"===typeof e)return function(e,t){var r;if(t=null!==(r=t)&&void 0!==r?r:FA,"1"===e.charAt(0)||"Q"===e.charAt(0)){const t=bA(fS.decode("z".concat(e)));return e.startsWith("12D")?new WA({multihash:t}):e.startsWith("16U")?new YA({multihash:t}):new GA({multihash:t})}return function(e){try{const t=bA(e);if(t.code===_A.code){if(t.digest.length===zA)return new WA({multihash:t});if(t.digest.length===jA)return new YA({multihash:t})}if(t.code===kA.code)return new GA({multihash:t})}catch{return function(e){if(null==e||null==e.multihash||null==e.version||1===e.version&&e.code!==VA)throw new Error("Supplied PeerID CID is invalid");const t=e.multihash;if(t.code===kA.code)return new GA({multihash:e.multihash});if(t.code===_A.code){if(t.digest.length===zA)return new WA({multihash:e.multihash});if(t.digest.length===jA)return new YA({multihash:e.multihash})}throw new Error("Supplied PeerID CID is invalid")}(TA.decode(e))}throw new Error("Supplied PeerID CID is invalid")}(FA.decode(e))}(e).equals(this);if(null!=(null===e||void 0===e||null===(t=e.multihash)||void 0===t?void 0:t.bytes))return Yn(this.multihash.bytes,e.multihash.bytes);throw new Error("not valid Id")}[qA](){return"PeerId(".concat(this.toString(),")")}}class GA extends HA{constructor(e){super({...e,type:"RSA"}),Br(this,"type","RSA"),Br(this,"publicKey",void 0),this.publicKey=e.publicKey}}class WA extends HA{constructor(e){super({...e,type:"Ed25519"}),Br(this,"type","Ed25519"),Br(this,"publicKey",void 0),this.publicKey=e.multihash.digest}}class YA extends HA{constructor(e){super({...e,type:"secp256k1"}),Br(this,"type","secp256k1"),Br(this,"publicKey",void 0),this.publicKey=e.multihash.digest}}function QA(e){return async function(e,t){return e.length===zA?new WA({multihash:mA(_A.code,e),privateKey:t}):e.length===jA?new YA({multihash:mA(_A.code,e),privateKey:t}):new GA({multihash:await kA.digest(e),publicKey:e,privateKey:t})}(new rS.secp256k1.Secp256k1PublicKey(e).bytes,void 0)}function XA(e){const t=e.reduce(((e,t)=>e+Ev+t.bytes.length),0),r=new Uint8Array(t),n=new DataView(r.buffer);let i=0;return e.forEach((e=>{if(e.getPeerId())throw new Error("`multiaddr` field MUST not contain peer id");n.setUint16(i,e.bytes.length),i+=Ev,r.set(e.bytes,i),i+=e.bytes.length})),r}function JA(e){let t=0;return e.lightPush&&(t+=1),t<<=1,e.filter&&(t+=1),t<<=1,e.store&&(t+=1),t<<=1,e.relay&&(t+=1),t}class ZA extends Map{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:BigInt(1),r=arguments.length>2?arguments[2]:void 0;super(Object.entries(e)),Br(this,"seq",void 0),Br(this,"signature",void 0),this.seq=t,this.signature=r}set(e,t){return this.signature=void 0,this.seq++,super.set(e,t)}get id(){const e=this.get("id");if(!e)throw new Error("id not found.");return ha(e)}get publicKey(){if("v4"===this.id)return this.get("secp256k1");throw new Error(_v)}get ip(){return $A(this,"ip","ip4")}set ip(e){tk(this,"ip","ip4",e)}get tcp(){return ek(this,"tcp","tcp")}set tcp(e){rk(this,"tcp","tcp",e)}get udp(){return ek(this,"udp","udp")}set udp(e){rk(this,"udp","udp",e)}get ip6(){return $A(this,"ip6","ip6")}set ip6(e){tk(this,"ip6","ip6",e)}get tcp6(){return ek(this,"tcp6","tcp")}set tcp6(e){rk(this,"tcp6","tcp",e)}get udp6(){return ek(this,"udp6","udp")}set udp6(e){rk(this,"udp6","udp",e)}get multiaddrs(){const e=this.get("multiaddrs");if(e)return function(e){const t=[];let r=0;for(;r<e.length;){const n=new DataView(e.buffer,r,Ev).getUint16(0);r+=Ev;const i=e.slice(r,r+n);r+=n,t.push(ra(i))}return t}(e)}set multiaddrs(e){nk(this,"multiaddrs",e,XA)}get waku2(){const e=this.get("waku2");if(e)return function(e){const t={relay:!1,store:!1,filter:!1,lightPush:!1};return e%2&&(t.relay=!0),(e>>=1)%2&&(t.store=!0),(e>>=1)%2&&(t.filter=!0),(e>>=1)%2&&(t.lightPush=!0),t}(e[0])}set waku2(e){nk(this,"waku2",e,(e=>new Uint8Array([JA(e)])))}}function $A(e,t,r){const n=e.get(t);if(n)return ks(r,n)}function ek(e,t,r){const n=e.get(t);if(n)return Number(ks(r,n))}function tk(e,t,r,n){nk(e,t,n,Is.bind({},r))}function rk(e,t,r,n){tk(e,t,r,null===n||void 0===n?void 0:n.toString(10))}function nk(e,t,r,n){void 0!==r?e.set(t,n(r)):e.delete(t)}const ik=ia("waku:enr");var ok,sk;!function(e){e.TCP="tcp",e.UDP="udp"}(ok||(ok={})),function(e){e.TCP4="tcp4",e.UDP4="udp4",e.TCP6="tcp6",e.UDP6="udp6"}(sk||(sk={}));class ak extends ZA{constructor(){super(...arguments),Br(this,"peerId",void 0),Br(this,"getLocationMultiaddr",Sv.bind({},this))}static async create(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:BigInt(1);const r=new ak(e,t,arguments.length>2?arguments[2]:void 0);try{const e=r.publicKey;e&&(r.peerId=await QA(e))}catch(n){ik("Could not calculate peer id for ENR",n)}return r}get nodeId(){if("v4"===this.id)return this.publicKey?function(e){const t=xw.fromHex(e).toRawBytes(!1);return ua(wv(t.slice(1)))}(this.publicKey):void 0;throw new Error(_v)}setLocationMultiaddr(e){const t=e.protoNames();if(2!==t.length&&"udp"!==t[1]&&"tcp"!==t[1])throw new Error("Invalid multiaddr");const r=e.tuples();if(!r[0][1]||!r[1][1])throw new Error("Invalid multiaddr");4===r[0][0]?(this.set("ip",r[0][1]),this.set(t[1],r[1][1])):(this.set("ip6",r[0][1]),this.set(t[1]+"6",r[1][1]))}getAllLocationMultiaddrs(){var e;const t=[];for(const n of Object.values(sk)){const e=this.getLocationMultiaddr(n);e&&t.push(e)}const r=null!==(e=this.multiaddrs)&&void 0!==e?e:[];return t.concat(r)}get peerInfo(){const e=this.peerId;if(e)return{id:e,multiaddrs:this.getAllLocationMultiaddrs(),protocols:[]}}getFullMultiaddr(e){if(this.peerId){const t=this.getLocationMultiaddr(e);if(t)return t.encapsulate("/p2p/".concat(this.peerId.toString()))}}getFullMultiaddrs(){if(this.peerId&&this.multiaddrs){const e=this.peerId;return this.multiaddrs.map((t=>t.encapsulate("/p2p/".concat(e.toString()))))}return[]}verify(e,t){if(!this.get("id")||"v4"!==this.id)throw new Error(_v);if(!this.publicKey)throw new Error("Failed to verify ENR: No public key");return vv(t,wv(e),this.publicKey)}async sign(e,t){if("v4"!==this.id)throw new Error(_v);return this.signature=await async function(e,t){return dv(wv(t),e,{der:!1})}(t,e),this.signature}}Br(ak,"RECORD_PREFIX","enr:");let ck=!1,lk=!1;const uk={debug:1,default:2,info:2,warning:3,error:4,off:5};let hk=uk.default,dk=null;const pk=function(){try{const e=[];if(["NFD","NFC","NFKD","NFKC"].forEach((t=>{try{if("test"!=="test".normalize(t))throw new Error("bad normalize")}catch(r){e.push(t)}})),e.length)throw new Error("missing "+e.join(", "));if(String.fromCharCode(233).normalize("NFD")!==String.fromCharCode(101,769))throw new Error("broken implementation")}catch(e){return e.message}return null}();var fk,yk;!function(e){e.DEBUG="DEBUG",e.INFO="INFO",e.WARNING="WARNING",e.ERROR="ERROR",e.OFF="OFF"}(fk||(fk={})),function(e){e.UNKNOWN_ERROR="UNKNOWN_ERROR",e.NOT_IMPLEMENTED="NOT_IMPLEMENTED",e.UNSUPPORTED_OPERATION="UNSUPPORTED_OPERATION",e.NETWORK_ERROR="NETWORK_ERROR",e.SERVER_ERROR="SERVER_ERROR",e.TIMEOUT="TIMEOUT",e.BUFFER_OVERRUN="BUFFER_OVERRUN",e.NUMERIC_FAULT="NUMERIC_FAULT",e.MISSING_NEW="MISSING_NEW",e.INVALID_ARGUMENT="INVALID_ARGUMENT",e.MISSING_ARGUMENT="MISSING_ARGUMENT",e.UNEXPECTED_ARGUMENT="UNEXPECTED_ARGUMENT",e.CALL_EXCEPTION="CALL_EXCEPTION",e.INSUFFICIENT_FUNDS="INSUFFICIENT_FUNDS",e.NONCE_EXPIRED="NONCE_EXPIRED",e.REPLACEMENT_UNDERPRICED="REPLACEMENT_UNDERPRICED",e.UNPREDICTABLE_GAS_LIMIT="UNPREDICTABLE_GAS_LIMIT",e.TRANSACTION_REPLACED="TRANSACTION_REPLACED",e.ACTION_REJECTED="ACTION_REJECTED"}(yk||(yk={}));const gk="0123456789abcdef";class mk{constructor(e){Object.defineProperty(this,"version",{enumerable:!0,value:e,writable:!1})}_log(e,t){const r=e.toLowerCase();null==uk[r]&&this.throwArgumentError("invalid log level name","logLevel",e),hk>uk[r]||console.log.apply(console,t)}debug(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];this._log(mk.levels.DEBUG,t)}info(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];this._log(mk.levels.INFO,t)}warn(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];this._log(mk.levels.WARNING,t)}makeError(e,t,r){if(lk)return this.makeError("censored error",t,{});t||(t=mk.errors.UNKNOWN_ERROR),r||(r={});const n=[];Object.keys(r).forEach((e=>{const t=r[e];try{if(t instanceof Uint8Array){let r="";for(let e=0;e<t.length;e++)r+=gk[t[e]>>4],r+=gk[15&t[e]];n.push(e+"=Uint8Array(0x"+r+")")}else n.push(e+"="+JSON.stringify(t))}catch(s){n.push(e+"="+JSON.stringify(r[e].toString()))}})),n.push("code=".concat(t)),n.push("version=".concat(this.version));const i=e;let o="";switch(t){case yk.NUMERIC_FAULT:{o="NUMERIC_FAULT";const t=e;switch(t){case"overflow":case"underflow":case"division-by-zero":o+="-"+t;break;case"negative-power":case"negative-width":o+="-unsupported";break;case"unbound-bitwise-result":o+="-unbound-result"}break}case yk.CALL_EXCEPTION:case yk.INSUFFICIENT_FUNDS:case yk.MISSING_NEW:case yk.NONCE_EXPIRED:case yk.REPLACEMENT_UNDERPRICED:case yk.TRANSACTION_REPLACED:case yk.UNPREDICTABLE_GAS_LIMIT:o=t}o&&(e+=" [ See: https://links.ethers.org/v5-errors-"+o+" ]"),n.length&&(e+=" ("+n.join(", ")+")");const s=new Error(e);return s.reason=i,s.code=t,Object.keys(r).forEach((function(e){s[e]=r[e]})),s}throwError(e,t,r){throw this.makeError(e,t,r)}throwArgumentError(e,t,r){return this.throwError(e,mk.errors.INVALID_ARGUMENT,{argument:t,value:r})}assert(e,t,r,n){e||this.throwError(t,r,n)}assertArgument(e,t,r,n){e||this.throwArgumentError(t,r,n)}checkNormalize(e){null==e&&(e="platform missing String.prototype.normalize"),pk&&this.throwError("platform missing String.prototype.normalize",mk.errors.UNSUPPORTED_OPERATION,{operation:"String.prototype.normalize",form:pk})}checkSafeUint53(e,t){"number"===typeof e&&(null==t&&(t="value not safe"),(e<0||e>=9007199254740991)&&this.throwError(t,mk.errors.NUMERIC_FAULT,{operation:"checkSafeInteger",fault:"out-of-safe-range",value:e}),e%1&&this.throwError(t,mk.errors.NUMERIC_FAULT,{operation:"checkSafeInteger",fault:"non-integer",value:e}))}checkArgumentCount(e,t,r){r=r?": "+r:"",e<t&&this.throwError("missing argument"+r,mk.errors.MISSING_ARGUMENT,{count:e,expectedCount:t}),e>t&&this.throwError("too many arguments"+r,mk.errors.UNEXPECTED_ARGUMENT,{count:e,expectedCount:t})}checkNew(e,t){e!==Object&&null!=e||this.throwError("missing new",mk.errors.MISSING_NEW,{name:t.name})}checkAbstract(e,t){e===t?this.throwError("cannot instantiate abstract class "+JSON.stringify(t.name)+" directly; use a sub-class",mk.errors.UNSUPPORTED_OPERATION,{name:e.name,operation:"new"}):e!==Object&&null!=e||this.throwError("missing new",mk.errors.MISSING_NEW,{name:t.name})}static globalLogger(){return dk||(dk=new mk("logger/5.7.0")),dk}static setCensorship(e,t){if(!e&&t&&this.globalLogger().throwError("cannot permanently disable censorship",mk.errors.UNSUPPORTED_OPERATION,{operation:"setCensorship"}),ck){if(!e)return;this.globalLogger().throwError("error censorship permanent",mk.errors.UNSUPPORTED_OPERATION,{operation:"setCensorship"})}lk=!!e,ck=!!t}static setLogLevel(e){const t=uk[e.toLowerCase()];null!=t?hk=t:mk.globalLogger().warn("invalid log level - "+e)}static from(e){return new mk(e)}}mk.errors=yk,mk.levels=fk;const bk=new mk("bytes/5.7.0");function wk(e){return!!e.toHexString}function vk(e){return e.slice||(e.slice=function(){const t=Array.prototype.slice.call(arguments);return vk(new Uint8Array(Array.prototype.slice.apply(e,t)))}),e}function _k(e){return kk(e)&&!(e.length%2)||Sk(e)}function Ek(e){return"number"===typeof e&&e==e&&e%1===0}function Sk(e){if(null==e)return!1;if(e.constructor===Uint8Array)return!0;if("string"===typeof e)return!1;if(!Ek(e.length)||e.length<0)return!1;for(let t=0;t<e.length;t++){const r=e[t];if(!Ek(r)||r<0||r>=256)return!1}return!0}function Ak(e,t){if(t||(t={}),"number"===typeof e){bk.checkSafeUint53(e,"invalid arrayify value");const t=[];for(;e;)t.unshift(255&e),e=parseInt(String(e/256));return 0===t.length&&t.push(0),vk(new Uint8Array(t))}if(t.allowMissingPrefix&&"string"===typeof e&&"0x"!==e.substring(0,2)&&(e="0x"+e),wk(e)&&(e=e.toHexString()),kk(e)){let r=e.substring(2);r.length%2&&("left"===t.hexPad?r="0"+r:"right"===t.hexPad?r+="0":bk.throwArgumentError("hex data is odd-length","value",e));const n=[];for(let e=0;e<r.length;e+=2)n.push(parseInt(r.substring(e,e+2),16));return vk(new Uint8Array(n))}return Sk(e)?vk(new Uint8Array(e)):bk.throwArgumentError("invalid arrayify value","value",e)}function kk(e,t){return!("string"!==typeof e||!e.match(/^0x[0-9A-Fa-f]*$/))&&(!t||e.length===2+2*t)}const Ik="0123456789abcdef";function Rk(e,t){if(t||(t={}),"number"===typeof e){bk.checkSafeUint53(e,"invalid hexlify value");let t="";for(;e;)t=Ik[15&e]+t,e=Math.floor(e/16);return t.length?(t.length%2&&(t="0"+t),"0x"+t):"0x00"}if("bigint"===typeof e)return(e=e.toString(16)).length%2?"0x0"+e:"0x"+e;if(t.allowMissingPrefix&&"string"===typeof e&&"0x"!==e.substring(0,2)&&(e="0x"+e),wk(e))return e.toHexString();if(kk(e))return e.length%2&&("left"===t.hexPad?e="0x0"+e.substring(2):"right"===t.hexPad?e+="0":bk.throwArgumentError("hex data is odd-length","value",e)),e.toLowerCase();if(Sk(e)){let t="0x";for(let r=0;r<e.length;r++){let n=e[r];t+=Ik[(240&n)>>4]+Ik[15&n]}return t}return bk.throwArgumentError("invalid hexlify value","value",e)}const Pk=new mk("rlp/5.7.0");function Ck(e){const t=[];for(;e;)t.unshift(255&e),e>>=8;return t}function Tk(e,t,r){let n=0;for(let i=0;i<r;i++)n=256*n+e[t+i];return n}function xk(e){if(Array.isArray(e)){let t=[];if(e.forEach((function(e){t=t.concat(xk(e))})),t.length<=55)return t.unshift(192+t.length),t;const r=Ck(t.length);return r.unshift(247+r.length),r.concat(t)}_k(e)||Pk.throwArgumentError("RLP object must be BytesLike","object",e);const t=Array.prototype.slice.call(Ak(e));if(1===t.length&&t[0]<=127)return t;if(t.length<=55)return t.unshift(128+t.length),t;const r=Ck(t.length);return r.unshift(183+r.length),r.concat(t)}function Dk(e){return Rk(xk(e))}function Nk(e,t,r,n){const i=[];for(;r<t+1+n;){const o=Lk(e,r);i.push(o.result),(r+=o.consumed)>t+1+n&&Pk.throwError("child data too short",mk.errors.BUFFER_OVERRUN,{})}return{consumed:1+n,result:i}}function Lk(e,t){if(0===e.length&&Pk.throwError("data too short",mk.errors.BUFFER_OVERRUN,{}),e[t]>=248){const r=e[t]-247;t+1+r>e.length&&Pk.throwError("data short segment too short",mk.errors.BUFFER_OVERRUN,{});const n=Tk(e,t+1,r);return t+1+r+n>e.length&&Pk.throwError("data long segment too short",mk.errors.BUFFER_OVERRUN,{}),Nk(e,t,t+1+r,r+n)}if(e[t]>=192){const r=e[t]-192;return t+1+r>e.length&&Pk.throwError("data array too short",mk.errors.BUFFER_OVERRUN,{}),Nk(e,t,t+1,r)}if(e[t]>=184){const r=e[t]-183;t+1+r>e.length&&Pk.throwError("data array too short",mk.errors.BUFFER_OVERRUN,{});const n=Tk(e,t+1,r);t+1+r+n>e.length&&Pk.throwError("data array too short",mk.errors.BUFFER_OVERRUN,{});return{consumed:1+r+n,result:Rk(e.slice(t+1+r,t+1+r+n))}}if(e[t]>=128){const r=e[t]-128;t+1+r>e.length&&Pk.throwError("data too short",mk.errors.BUFFER_OVERRUN,{});return{consumed:1+r,result:Rk(e.slice(t+1,t+1+r))}}return{consumed:1,result:Rk(e[t])}}class Bk{static fromString(e){if(!e.startsWith(ak.RECORD_PREFIX))throw new Error("\"string encoded ENR must start with '".concat(ak.RECORD_PREFIX,"'"));return Bk.fromRLP(ps(e.slice(4),"base64url"))}static fromRLP(e){const t=function(e){const t=Ak(e),r=Lk(t,0);return r.consumed!==t.length&&Pk.throwArgumentError("invalid rlp data","data",e),r.result}(e).map(la);return async function(e){const{signature:t,seq:r,kvs:n}=function(e){if(!Array.isArray(e))throw new Error("Decoded ENR must be an array");if(e.length%2!==0)throw new Error("Decoded ENR must have an even number of elements");const[t,r,...n]=e;if(!t||Array.isArray(t))throw new Error("Decoded ENR invalid signature: must be a byte array");if(!r||Array.isArray(r))throw new Error("Decoded ENR invalid sequence number: must be a byte array");return{signature:t,seq:r,kvs:n}}(e),i={};for(let c=0;c<n.length;c+=2)try{i[ha(n[c])]=n[c+1]}catch(a){(0,ia.log)("Failed to decode ENR key to UTF-8, skipping it",n[c],a)}const o=function(e){return e.length?BigInt("0x"+ua(e)):BigInt(0)}(r),s=await ak.create(i,o,t);return function(e,t,r,n){const i=la(Dk([e,...t]));if(!r.verify(i,n))throw new Error("Unable to verify ENR signature")}(r,n,s,t),s}(t)}}const Mk=/^(\d{1,3}\.){3,3}\d{1,3}$/,Ok=/^(::)?(((\d{1,3}\.){3}(\d{1,3}){1})?([0-9a-f]){0,4}:{0,2}){1,8}(::)?$/i,Uk={name:"v4",size:4,isFormat:e=>Mk.test(e),encode(e,t,r){r=~~r,t=t||new Uint8Array(r+4);const n=e.length;let i=0;for(let o=0;o<n;){const n=e.charCodeAt(o++);46===n?(t[r++]=i,i=0):i=10*i+(n-48)}return t[r]=i,t},decode:(e,t)=>(t=~~t,"".concat(e[t++],".").concat(e[t++],".").concat(e[t++],".").concat(e[t]))},Kk={name:"v6",size:16,isFormat:e=>e.length>0&&Ok.test(e),encode(e,t,r){let n=(r=~~r)+16,i=-1,o=0,s=0,a=!0,c=!1;t=t||new Uint8Array(r+16);for(let l=0;l<e.length;l++){let u=e.charCodeAt(l);58===u?(a?-1!==i?(r<n&&(t[r]=0),r<n-1&&(t[r+1]=0),r+=2):r<n&&(i=r):(!0===c?(r<n&&(t[r]=s),r++):(r<n&&(t[r]=o>>8),r<n-1&&(t[r+1]=255&o),r+=2),o=0,s=0),a=!0,c=!1):46===u?(r<n&&(t[r]=s),r++,s=0,o=0,a=!1,c=!0):(a=!1,u>=97?u-=87:u>=65?u-=55:(u-=48,s=10*s+u),o=(o<<4)+u)}if(!1===a)!0===c?(r<n&&(t[r]=s),r++):(r<n&&(t[r]=o>>8),r<n-1&&(t[r+1]=255&o),r+=2);else if(0===i)r<n&&(t[r]=0),r<n-1&&(t[r+1]=0),r+=2;else if(-1!==i){r+=2;for(let e=Math.min(r-1,n-1);e>=i+2;e--)t[e]=t[e-2];t[i]=0,t[i+1]=0,i=r}if(i!==r&&-1!==i)for(r>n-2&&(r=n-2);n>i;)t[--n]=r<n&&r>i?t[--r]:0;else for(;r<n;)t[r++]=0;return t},decode(e,t){t=~~t;let r="";for(let n=0;n<16;n+=2)0!==n&&(r+=":"),r+=(e[t+n]<<8|e[t+n+1]).toString(16);return r.replace(/(^|:)0(:0)*:0(:|$)/,"$1::$3").replace(/:{3,4}/,"::")}};function qk(e){if(Uk.isFormat(e))return Uk.size;if(Kk.isFormat(e))return Kk.size;throw Error("Invalid ip address: ".concat(e))}function Fk(e){switch(e){case 1:return"A";case 10:return"NULL";case 28:return"AAAA";case 18:return"AFSDB";case 42:return"APL";case 257:return"CAA";case 60:return"CDNSKEY";case 59:return"CDS";case 37:return"CERT";case 5:return"CNAME";case 49:return"DHCID";case 32769:return"DLV";case 39:return"DNAME";case 48:return"DNSKEY";case 43:return"DS";case 55:return"HIP";case 13:return"HINFO";case 45:return"IPSECKEY";case 25:return"KEY";case 36:return"KX";case 29:return"LOC";case 15:return"MX";case 35:return"NAPTR";case 2:return"NS";case 47:return"NSEC";case 50:return"NSEC3";case 51:return"NSEC3PARAM";case 12:return"PTR";case 46:return"RRSIG";case 17:return"RP";case 24:return"SIG";case 6:return"SOA";case 99:return"SPF";case 33:return"SRV";case 44:return"SSHFP";case 32768:return"TA";case 249:return"TKEY";case 52:return"TLSA";case 250:return"TSIG";case 16:return"TXT";case 252:return"AXFR";case 251:return"IXFR";case 41:return"OPT";case 255:return"ANY"}return"UNKNOWN_"+e}function Vk(e){switch(e.toUpperCase()){case"A":return 1;case"NULL":return 10;case"AAAA":return 28;case"AFSDB":return 18;case"APL":return 42;case"CAA":return 257;case"CDNSKEY":return 60;case"CDS":return 59;case"CERT":return 37;case"CNAME":return 5;case"DHCID":return 49;case"DLV":return 32769;case"DNAME":return 39;case"DNSKEY":return 48;case"DS":return 43;case"HIP":return 55;case"HINFO":return 13;case"IPSECKEY":return 45;case"KEY":return 25;case"KX":return 36;case"LOC":return 29;case"MX":return 15;case"NAPTR":return 35;case"NS":return 2;case"NSEC":return 47;case"NSEC3":return 50;case"NSEC3PARAM":return 51;case"PTR":return 12;case"RRSIG":return 46;case"RP":return 17;case"SIG":return 24;case"SOA":return 6;case"SPF":return 99;case"SRV":return 33;case"SSHFP":return 44;case"TA":return 32768;case"TKEY":return 249;case"TLSA":return 52;case"TSIG":return 250;case"TXT":return 16;case"AXFR":return 252;case"IXFR":return 251;case"OPT":return 41;case"ANY":case"*":return 255}return e.toUpperCase().startsWith("UNKNOWN_")?parseInt(e.slice(8)):0}function zk(e){switch(e){case 0:return"NOERROR";case 1:return"FORMERR";case 2:return"SERVFAIL";case 3:return"NXDOMAIN";case 4:return"NOTIMP";case 5:return"REFUSED";case 6:return"YXDOMAIN";case 7:return"YXRRSET";case 8:return"NXRRSET";case 9:return"NOTAUTH";case 10:return"NOTZONE";case 11:return"RCODE_11";case 12:return"RCODE_12";case 13:return"RCODE_13";case 14:return"RCODE_14";case 15:return"RCODE_15"}return"RCODE_"+e}function jk(e){switch(e){case 0:return"QUERY";case 1:return"IQUERY";case 2:return"STATUS";case 3:return"OPCODE_3";case 4:return"NOTIFY";case 5:return"UPDATE";case 6:return"OPCODE_6";case 7:return"OPCODE_7";case 8:return"OPCODE_8";case 9:return"OPCODE_9";case 10:return"OPCODE_10";case 11:return"OPCODE_11";case 12:return"OPCODE_12";case 13:return"OPCODE_13";case 14:return"OPCODE_14";case 15:return"OPCODE_15"}return"OPCODE_"+e}function Hk(e){switch(e){case 1:return"IN";case 2:return"CS";case 3:return"CH";case 4:return"HS";case 255:return"ANY"}return"UNKNOWN_"+e}function Gk(e){switch(e.toUpperCase()){case"IN":return 1;case"CS":return 2;case"CH":return 3;case"HS":return 4;case"ANY":return 255}return 0}function Wk(e){if("number"===typeof e)return e;if(!e)return-1;switch(e.toUpperCase()){case"OPTION_0":return 0;case"LLQ":return 1;case"UL":return 2;case"NSID":return 3;case"OPTION_4":return 4;case"DAU":return 5;case"DHU":return 6;case"N3U":return 7;case"CLIENT_SUBNET":return 8;case"EXPIRE":return 9;case"COOKIE":return 10;case"TCP_KEEPALIVE":return 11;case"PADDING":return 12;case"CHAIN":return 13;case"KEY_TAG":return 14;case"DEVICEID":return 26946;case"OPTION_65535":return 65535}const t=e.match(/_(\d+)$/);return t?parseInt(t[1],10):-1}const Yk=55296,Qk=56320;function Xk(e){let t=0;const r=e.length;for(let n=0;n<r;n+=1){const i=e.charCodeAt(n);if(i<=127)t+=1;else if(i<=2047)t+=2;else if((63488&i)!==Yk)t+=3;else{const o=n+1;if(o===r||i>=Qk)t+=3;else{(64512&e.charCodeAt(o))!==Qk?t+=3:(n=o,t+=4)}}}return t}function Jk(e,t,r){const n=e.length;void 0!==r&&null!==r||(r=0),void 0===t&&(t=new Uint8Array(Xk(e)+r));let i=r;for(let o=0;o<n;o+=1){let r=e.charCodeAt(o);if(r<=127)t[i++]=r;else if(r<=2047)t[i++]=192|(1984&r)>>6,t[i++]=128|63&r;else if((63488&r)!==Yk)t[i++]=224|(61440&r)>>12,t[i++]=128|(4032&r)>>6,t[i++]=128|63&r;else{const s=o+1;if(s===n||r>=Qk)t[i++]=239,t[i++]=191,t[i++]=189;else{const n=e.charCodeAt(s);(64512&n)!==Qk?(t[i++]=239,t[i++]=191,t[i++]=189):(o=s,r=65536|(1023&r)<<10|1023&n,t[i++]=240|(1835008&r)>>18,t[i++]=128|(258048&r)>>12,t[i++]=128|(4032&r)>>6,t[i++]=128|63&r)}}}return Jk.bytes=i-r,t}function Zk(e,t,r){let n="";void 0!==t&&null!==t||(t=0),void 0!==r&&null!==r||(r=e.length);for(let i=t;i<r;){const t=e[i++];let r;if(t<=128)r=t;else if(t>191&&t<224)r=(31&t)<<6|63&e[i++];else if(t>239&&t<365){r=((7&t)<<18|(63&e[i++])<<12|(63&e[i++])<<6|63&e[i++])-65536;const o=Yk|r>>10&1023;n+=String.fromCharCode(o),r=Qk|1023&r}else r=(15&t)<<12|(63&e[i++])<<6|63&e[i++];n+=String.fromCharCode(r)}return Zk.bytes=r-t,n}Jk.bytes=0,Zk.bytes=0;const $k=e=>e instanceof Uint8Array;function eI(e){return"string"===typeof e?Xk(e):e.byteLength}function tI(e){return e instanceof Uint8Array?e:Array.isArray(e)?new Uint8Array(e):Jk(e)}function rI(e,t,r){if("string"!==typeof t)throw new Error("unknown input type");return Jk(t,e,r),Jk.bytes}const nI=Math.pow(2,24),iI=Math.pow(2,16),oI=Math.pow(2,8),sI=(e,t)=>e[t]*nI+e[t+1]*iI+e[t+2]*oI+e[t+3],aI=(e,t)=>e[t]<<8|e[t+1],cI=(e,t,r)=>(t=+t,e[r+3]=t,t>>>=8,e[r+2]=t,t>>>=8,e[r+1]=t,t>>>=8,e[r]=t,r+4),lI=(e,t,r)=>(e[r]=t>>8,e[r+1]=255&t,r+2);function uI(e,t,r,n,i){return r<0&&(n-=r,r=0),n<0&&(n=0),i<0?new Uint8Array(0):r>=t.length||n>=i?0:function(e,t,r,n,i){i-n>t.length-r&&(i=n+t.length-r);let o=i-n;const s=e.length-n;o>s&&(o=s);(0!==n||i<e.length)&&(e=new Uint8Array(e.buffer,e.byteOffset+n,o));return t.set(e,r),o}(e,t,r,n,i)}const hI=32768;function dI(e){let{bytes:t=0,encode:r,decode:n,encodingLength:i}=e;return r.bytes=t,n.bytes=t,{encode:r,decode:n,encodingLength:i||(()=>t)}}const pI=dI({encode(e,t,r){t||(t=new Uint8Array(pI.encodingLength(e))),r||(r=0);const n=r,i=e.replace(/^\.|\.$/gm,"");if(i.length){const e=i.split(".");for(let n=0;n<e.length;n++){const i=rI(t,e[n],r+1);t[r]=i,r+=i+1}}return t[r++]=0,pI.encode.bytes=r-n,t},decode(e,t){t||(t=0);const r=[];let n=t,i=0,o=0,s=!1;for(;;){if(t>=e.length)throw new Error("Cannot decode name (buffer overflow)");const a=e[t++];if(o+=s?0:1,0===a)break;if(0===(192&a)){if(t+a>e.length)throw new Error("Cannot decode name (buffer overflow)");if(i+=a+1,i>254)throw new Error("Cannot decode name (name too long)");r.push(Zk(e,t,t+a)),t+=a,o+=s?0:a}else{if(192!==(192&a))throw new Error("Cannot decode name (bad label)");{if(t+1>e.length)throw new Error("Cannot decode name (buffer overflow)");const r=aI(e,t-1)-49152;if(r>=n)throw new Error("Cannot decode name (bad pointer)");t=r,n=r,o+=s?0:1,s=!0}}}return pI.decode.bytes=o,0===r.length?".":r.join(".")},encodingLength:e=>"."===e||".."===e?1:eI(e.replace(/^\.|\.$/gm,""))+2}),fI=dI({encode(e,t,r){t||(t=new Uint8Array(fI.encodingLength(e))),r||(r=0);const n=rI(t,e,r+1);return t[r]=n,fI.encode.bytes=n+1,t},decode(e,t){t||(t=0);const r=e[t],n=Zk(e,t+1,t+1+r);return fI.decode.bytes=r+1,n},encodingLength:e=>eI(e)+1}),yI=dI({bytes:12,encode(e,t,r){t||(t=new Uint8Array(yI.encodingLength(e))),r||(r=0);const n=32767&(e.flags||0),i="response"===e.type?32768:0;return lI(t,e.id||0,r),lI(t,n|i,r+2),lI(t,e.questions.length,r+4),lI(t,e.answers.length,r+6),lI(t,e.authorities.length,r+8),lI(t,e.additionals.length,r+10),t},decode(e,t){if(t||(t=0),e.length<12)throw new Error("Header must be 12 bytes");const r=aI(e,t+2);return{id:aI(e,t),type:32768&r?"response":"query",flags:32767&r,flag_qr:1===(r>>15&1),opcode:jk(r>>11&15),flag_aa:1===(r>>10&1),flag_tc:1===(r>>9&1),flag_rd:1===(r>>8&1),flag_ra:1===(r>>7&1),flag_z:1===(r>>6&1),flag_ad:1===(r>>5&1),flag_cd:1===(r>>4&1),rcode:zk(15&r),questions:new Array(aI(e,t+4)),answers:new Array(aI(e,t+6)),authorities:new Array(aI(e,t+8)),additionals:new Array(aI(e,t+10))}},encodingLength:()=>12}),gI=dI({encode(e,t,r){t||(t=new Uint8Array(gI.encodingLength(e))),r||(r=0);const n=e.length;return lI(t,n,r),uI(e,t,r+2,0,n),gI.encode.bytes=n+2,t},decode(e,t){t||(t=0);const r=aI(e,t),n=e.slice(t+2,t+2+r);return gI.decode.bytes=r+2,n},encodingLength:e=>e.length+2}),mI=dI({encode:(e,t,r)=>(t||(t=new Uint8Array(mI.encodingLength(e))),r||(r=0),pI.encode(e,t,r+2),lI(t,pI.encode.bytes,r),mI.encode.bytes=pI.encode.bytes+2,t),decode(e,t){t||(t=0);const r=aI(e,t),n=pI.decode(e,t+2);return mI.decode.bytes=r+2,n},encodingLength:e=>pI.encodingLength(e)+2}),bI=dI({encode(e,t,r){t||(t=new Uint8Array(bI.encodingLength(e))),r||(r=0);const n=r;return r+=2,pI.encode(e.mname,t,r),r+=pI.encode.bytes,pI.encode(e.rname,t,r),r+=pI.encode.bytes,cI(t,e.serial||0,r),r+=4,cI(t,e.refresh||0,r),r+=4,cI(t,e.retry||0,r),r+=4,cI(t,e.expire||0,r),r+=4,cI(t,e.minimum||0,r),lI(t,(r+=4)-n-2,n),bI.encode.bytes=r-n,t},decode(e,t){t||(t=0);const r=t,n={};return t+=2,n.mname=pI.decode(e,t),t+=pI.decode.bytes,n.rname=pI.decode(e,t),t+=pI.decode.bytes,n.serial=sI(e,t),t+=4,n.refresh=sI(e,t),t+=4,n.retry=sI(e,t),t+=4,n.expire=sI(e,t),t+=4,n.minimum=sI(e,t),t+=4,bI.decode.bytes=t-r,n},encodingLength:e=>22+pI.encodingLength(e.mname)+pI.encodingLength(e.rname)}),wI=dI({encode(e,t,r){Array.isArray(e)||(e=[e]);for(let i=0;i<e.length;i++)if("string"===typeof e[i]&&(e[i]=tI(e[i])),!$k(e[i]))throw new Error("Must be a Buffer");t||(t=new Uint8Array(wI.encodingLength(e))),r||(r=0);const n=r;return r+=2,e.forEach((function(e){t[r++]=e.length,uI(e,t,r,0,e.length),r+=e.length})),lI(t,r-n-2,n),wI.encode.bytes=r-n,t},decode(e,t){t||(t=0);const r=t;let n=aI(e,t);t+=2;const i=[];for(;n>0;){const r=e[t++];if(--n,n<r)throw new Error("Buffer overflow");i.push(e.slice(t,t+r)),t+=r,n-=r}return wI.decode.bytes=t-r,i},encodingLength(e){Array.isArray(e)||(e=[e]);let t=2;return e.forEach((function(e){t+="string"===typeof e?eI(e)+1:e.length+1})),t}}),vI=dI({encode(e,t,r){t||(t=new Uint8Array(vI.encodingLength(e))),r||(r=0),"string"===typeof e&&(e=tI(e)),e||(e=new Uint8Array(0));const n=r;r+=2;const i=e.length;return uI(e,t,r,0,i),lI(t,(r+=i)-n-2,n),vI.encode.bytes=r-n,t},decode(e,t){t||(t=0);const r=t,n=aI(e,t);t+=2;const i=e.slice(t,t+n);return t+=n,vI.decode.bytes=t-r,i},encodingLength:e=>e?($k(e)?e.length:eI(e))+2:2}),_I=dI({encode(e,t,r){t||(t=new Uint8Array(_I.encodingLength(e))),r||(r=0);const n=r;return r+=2,fI.encode(e.cpu,t,r),r+=fI.encode.bytes,fI.encode(e.os,t,r),r+=fI.encode.bytes,lI(t,r-n-2,n),_I.encode.bytes=r-n,t},decode(e,t){t||(t=0);const r=t,n={};return t+=2,n.cpu=fI.decode(e,t),t+=fI.decode.bytes,n.os=fI.decode(e,t),t+=fI.decode.bytes,_I.decode.bytes=t-r,n},encodingLength:e=>fI.encodingLength(e.cpu)+fI.encodingLength(e.os)+2}),EI=dI({encode:(e,t,r)=>(t||(t=new Uint8Array(EI.encodingLength(e))),r||(r=0),pI.encode(e,t,r+2),lI(t,pI.encode.bytes,r),EI.encode.bytes=pI.encode.bytes+2,t),decode(e,t){t||(t=0);const r=pI.decode(e,t+2);return EI.decode.bytes=pI.decode.bytes+2,r},encodingLength:e=>pI.encodingLength(e)+2}),SI=dI({encode(e,t,r){t||(t=new Uint8Array(SI.encodingLength(e))),r||(r=0),lI(t,e.priority||0,r+2),lI(t,e.weight||0,r+4),lI(t,e.port||0,r+6),pI.encode(e.target,t,r+8);const n=pI.encode.bytes+6;return lI(t,n,r),SI.encode.bytes=n+2,t},decode(e,t){t||(t=0);const r=aI(e,t),n={};return n.priority=aI(e,t+2),n.weight=aI(e,t+4),n.port=aI(e,t+6),n.target=pI.decode(e,t+8),SI.decode.bytes=r+2,n},encodingLength:e=>8+pI.encodingLength(e.target)}),AI=dI({encode(e,t,r){const n=AI.encodingLength(e);return t||(t=new Uint8Array(AI.encodingLength(e))),r||(r=0),e.issuerCritical&&(e.flags=AI.ISSUER_CRITICAL),lI(t,n-2,r),t[r+=2]=e.flags||0,r+=1,fI.encode(e.tag,t,r),r+=fI.encode.bytes,rI(t,e.value,r),r+=eI(e.value),AI.encode.bytes=n,t},decode(e,t){t||(t=0);const r=aI(e,t),n=t+=2,i={};return i.flags=e[t],t+=1,i.tag=fI.decode(e,t),t+=fI.decode.bytes,i.value=Zk(e,t,n+r),i.issuerCritical=!!(i.flags&AI.ISSUER_CRITICAL),AI.decode.bytes=r+2,i},encodingLength:e=>fI.encodingLength(e.tag)+fI.encodingLength(e.value)+2});AI.ISSUER_CRITICAL=128;const kI=dI({encode(e,t,r){t||(t=new Uint8Array(kI.encodingLength(e))),r||(r=0);const n=r;return r+=2,lI(t,e.preference||0,r),r+=2,pI.encode(e.exchange,t,r),r+=pI.encode.bytes,lI(t,r-n-2,n),kI.encode.bytes=r-n,t},decode(e,t){t||(t=0);const r=t,n={};return t+=2,n.preference=aI(e,t),t+=2,n.exchange=pI.decode(e,t),t+=pI.decode.bytes,kI.decode.bytes=t-r,n},encodingLength:e=>4+pI.encodingLength(e.exchange)}),II=dI({encode:(e,t,r)=>(t||(t=new Uint8Array(II.encodingLength(e))),r||(r=0),lI(t,4,r),r+=2,Uk.encode(e,t,r),t),decode(e,t){t||(t=0),t+=2;return Uk.decode(e,t)},bytes:6}),RI=dI({encode:(e,t,r)=>(t||(t=new Uint8Array(RI.encodingLength(e))),r||(r=0),lI(t,16,r),r+=2,Kk.encode(e,t,r),RI.encode.bytes=18,t),decode(e,t){t||(t=0),t+=2;const r=Kk.decode(e,t);return RI.decode.bytes=18,r},bytes:18}),PI=e=>new Uint8Array(e),CI=dI({encode(e,t,r){t||(t=new Uint8Array(CI.encodingLength(e))),r||(r=0);const n=r,i=Wk(e.code);if(lI(t,i,r),r+=2,e.data)lI(t,e.data.length,r),r+=2,uI(e.data,t,r),r+=e.data.length;else switch(i){case 8:{const n=e.sourcePrefixLength||0,i=e.family||function(e){return qk(e)===Uk.size?1:2}(e.ip),o=function(e,t,r){r=~~r;const n=qk(e);return"function"===typeof t&&(t=t(r+n)),n===Uk.size?Uk.encode(e,t,r):Kk.encode(e,t,r)}(e.ip,PI),s=Math.ceil(n/8);lI(t,s+4,r),lI(t,i,r+=2),r+=2,t[r++]=n,t[r++]=e.scopePrefixLength||0,uI(o,t,r,0,s),r+=s}break;case 11:e.timeout?(lI(t,2,r),r+=2,lI(t,e.timeout,r),r+=2):(lI(t,0,r),r+=2);break;case 12:{const n=e.length||0;lI(t,n,r),r+=2,t.fill(0,r,r+n),r+=n}break;case 14:{const n=2*e.tags.length;lI(t,n,r),r+=2;for(const i of e.tags)lI(t,i,r),r+=2}break;default:throw new Error("Unknown roption code: ".concat(e.code))}return CI.encode.bytes=r-n,t},decode(e,t){t||(t=0);const r={};r.code=aI(e,t),r.type=function(e){switch(e){case 1:return"LLQ";case 2:return"UL";case 3:return"NSID";case 5:return"DAU";case 6:return"DHU";case 7:return"N3U";case 8:return"CLIENT_SUBNET";case 9:return"EXPIRE";case 10:return"COOKIE";case 11:return"TCP_KEEPALIVE";case 12:return"PADDING";case 13:return"CHAIN";case 14:return"KEY_TAG";case 26946:return"DEVICEID"}return e<0?null:"OPTION_".concat(e)}(r.code);const n=aI(e,t+=2);switch(t+=2,r.data=e.slice(t,t+n),r.code){case 8:r.family=aI(e,t),t+=2,r.sourcePrefixLength=e[t++],r.scopePrefixLength=e[t++];{const i=new Uint8Array(1===r.family?4:16);uI(e,i,0,t,t+n-4),r.ip=function(e,t,r){if(t=~~t,(r=r||e.length-t)===Uk.size)return Uk.decode(e,t,r);if(r===Kk.size)return Kk.decode(e,t,r);throw Error("Invalid buffer size needs to be ".concat(Uk.size," for v4 or ").concat(Kk.size," for v6."))}(i)}break;case 11:n>0&&(r.timeout=aI(e,t),t+=2);break;case 14:r.tags=[];for(let i=0;i<n;i+=2)r.tags.push(aI(e,t)),t+=2}return CI.decode.bytes=n+4,r},encodingLength(e){if(e.data)return e.data.length+4;switch(Wk(e.code)){case 8:{const t=e.sourcePrefixLength||0;return Math.ceil(t/8)+8}case 11:return"number"===typeof e.timeout?6:4;case 12:return e.length+4;case 14:return 4+2*e.tags.length}throw new Error("Unknown roption code: ".concat(e.code))}}),TI=dI({encode(e,t,r){t||(t=new Uint8Array(TI.encodingLength(e))),r||(r=0);const n=r,i=QI(e,CI);return lI(t,i,r),r=XI(e,CI,t,r+2),TI.encode.bytes=r-n,t},decode(e,t){t||(t=0);const r=t,n=[];let i=aI(e,t);t+=2;let o=0;for(;i>0;)n[o++]=CI.decode(e,t),t+=CI.decode.bytes,i-=CI.decode.bytes;return TI.decode.bytes=t-r,n},encodingLength:e=>2+QI(e||[],CI)}),xI=dI({encode(e,t,r){t||(t=new Uint8Array(xI.encodingLength(e))),r||(r=0);const n=r,i=e.key;if(!$k(i))throw new Error("Key must be a Buffer");return r+=2,lI(t,e.flags,r),t[r+=2]=xI.PROTOCOL_DNSSEC,t[r+=1]=e.algorithm,uI(i,t,r+=1,0,i.length),r+=i.length,xI.encode.bytes=r-n,lI(t,xI.encode.bytes-2,n),t},decode(e,t){t||(t=0);const r=t,n={},i=aI(e,t);if(t+=2,n.flags=aI(e,t),e[t+=2]!==xI.PROTOCOL_DNSSEC)throw new Error("Protocol must be 3");return t+=1,n.algorithm=e[t],t+=1,n.key=e.slice(t,r+i+2),t+=n.key.length,xI.decode.bytes=t-r,n},encodingLength:e=>6+eI(e.key)});xI.PROTOCOL_DNSSEC=3,xI.ZONE_KEY=128,xI.SECURE_ENTRYPOINT=32768;const DI=dI({encode(e,t,r){t||(t=new Uint8Array(DI.encodingLength(e))),r||(r=0);const n=r,i=e.signature;if(!$k(i))throw new Error("Signature must be a Buffer");return r+=2,lI(t,Vk(e.typeCovered),r),t[r+=2]=e.algorithm,t[r+=1]=e.labels,r+=1,cI(t,e.originalTTL,r),r+=4,cI(t,e.expiration,r),r+=4,cI(t,e.inception,r),r+=4,lI(t,e.keyTag,r),r+=2,pI.encode(e.signersName,t,r),uI(i,t,r+=pI.encode.bytes,0,i.length),r+=i.length,DI.encode.bytes=r-n,lI(t,DI.encode.bytes-2,n),t},decode(e,t){t||(t=0);const r=t,n={},i=aI(e,t);return t+=2,n.typeCovered=Fk(aI(e,t)),t+=2,n.algorithm=e[t],t+=1,n.labels=e[t],t+=1,n.originalTTL=sI(e,t),t+=4,n.expiration=sI(e,t),t+=4,n.inception=sI(e,t),t+=4,n.keyTag=aI(e,t),t+=2,n.signersName=pI.decode(e,t),t+=pI.decode.bytes,n.signature=e.slice(t,r+i+2),t+=n.signature.length,DI.decode.bytes=t-r,n},encodingLength:e=>20+pI.encodingLength(e.signersName)+eI(e.signature)}),NI=dI({encode(e,t,r){t||(t=new Uint8Array(NI.encodingLength(e))),r||(r=0);const n=r;return r+=2,pI.encode(e.mbox||".",t,r),r+=pI.encode.bytes,pI.encode(e.txt||".",t,r),r+=pI.encode.bytes,NI.encode.bytes=r-n,lI(t,NI.encode.bytes-2,n),t},decode(e,t){t||(t=0);const r=t,n={};return t+=2,n.mbox=pI.decode(e,t)||".",t+=pI.decode.bytes,n.txt=pI.decode(e,t)||".",t+=pI.decode.bytes,NI.decode.bytes=t-r,n},encodingLength:e=>2+pI.encodingLength(e.mbox||".")+pI.encodingLength(e.txt||".")}),LI=dI({encode(e,t,r){t||(t=new Uint8Array(LI.encodingLength(e))),r||(r=0);const n=r,i=[];for(let o=0;o<e.length;o++){const t=Vk(e[o]);void 0===i[t>>8]&&(i[t>>8]=[]),i[t>>8][t>>3&31]|=1<<7-(7&t)}for(let o=0;o<i.length;o++)if(void 0!==i[o]){const e=tI(i[o]);t[r]=o,t[r+=1]=e.length,uI(e,t,r+=1,0,e.length),r+=e.length}return LI.encode.bytes=r-n,t},decode(e,t,r){t||(t=0);const n=t,i=[];for(;t-n<r;){const r=e[t],n=e[t+=1];t+=1;for(let o=0;o<n;o++){const n=e[t+o];for(let e=0;e<8;e++)if(n&1<<7-e){const t=Fk(r<<8|o<<3|e);i.push(t)}}t+=n}return LI.decode.bytes=t-n,i},encodingLength(e){const t=[];for(let n=0;n<e.length;n++){const r=Vk(e[n]);t[r>>8]=Math.max(t[r>>8]||0,255&r)}let r=0;for(let n=0;n<t.length;n++)void 0!==t[n]&&(r+=2+Math.ceil((t[n]+1)/8));return r}}),BI=dI({encode(e,t,r){t||(t=new Uint8Array(BI.encodingLength(e))),r||(r=0);const n=r;return r+=2,pI.encode(e.nextDomain,t,r),r+=pI.encode.bytes,LI.encode(e.rrtypes,t,r),r+=LI.encode.bytes,BI.encode.bytes=r-n,lI(t,BI.encode.bytes-2,n),t},decode(e,t){t||(t=0);const r=t,n={},i=aI(e,t);return t+=2,n.nextDomain=pI.decode(e,t),t+=pI.decode.bytes,n.rrtypes=LI.decode(e,t,i-(t-r)),t+=LI.decode.bytes,BI.decode.bytes=t-r,n},encodingLength:e=>2+pI.encodingLength(e.nextDomain)+LI.encodingLength(e.rrtypes)}),MI=dI({encode(e,t,r){t||(t=new Uint8Array(MI.encodingLength(e))),r||(r=0);const n=r,i=e.salt;if(!$k(i))throw new Error("salt must be a Buffer");const o=e.nextDomain;if(!$k(o))throw new Error("nextDomain must be a Buffer");return t[r+=2]=e.algorithm,t[r+=1]=e.flags,r+=1,lI(t,e.iterations,r),t[r+=2]=i.length,uI(i,t,r+=1,0,i.length),t[r+=i.length]=o.length,uI(o,t,r+=1,0,o.length),r+=o.length,LI.encode(e.rrtypes,t,r),r+=LI.encode.bytes,MI.encode.bytes=r-n,lI(t,MI.encode.bytes-2,n),t},decode(e,t){t||(t=0);const r=t,n={},i=aI(e,t);t+=2,n.algorithm=e[t],t+=1,n.flags=e[t],t+=1,n.iterations=aI(e,t);const o=e[t+=2];t+=1,n.salt=e.slice(t,t+o);const s=e[t+=o];return t+=1,n.nextDomain=e.slice(t,t+s),t+=s,n.rrtypes=LI.decode(e,t,i-(t-r)),t+=LI.decode.bytes,MI.decode.bytes=t-r,n},encodingLength:e=>8+e.salt.length+e.nextDomain.length+LI.encodingLength(e.rrtypes)}),OI=dI({encode(e,t,r){t||(t=new Uint8Array(OI.encodingLength(e))),r||(r=0);const n=r,i=e.digest;if(!$k(i))throw new Error("Digest must be a Buffer");return r+=2,lI(t,e.keyTag,r),t[r+=2]=e.algorithm,t[r+=1]=e.digestType,uI(i,t,r+=1,0,i.length),r+=i.length,OI.encode.bytes=r-n,lI(t,OI.encode.bytes-2,n),t},decode(e,t){t||(t=0);const r=t,n={},i=aI(e,t);return t+=2,n.keyTag=aI(e,t),t+=2,n.algorithm=e[t],t+=1,n.digestType=e[t],t+=1,n.digest=e.slice(t,r+i+2),t+=n.digest.length,OI.decode.bytes=t-r,n},encodingLength:e=>6+eI(e.digest)});function UI(e){switch(e.toUpperCase()){case"A":return II;case"PTR":case"CNAME":case"DNAME":return EI;case"TXT":return wI;case"NULL":return vI;case"AAAA":return RI;case"SRV":return SI;case"HINFO":return _I;case"CAA":return AI;case"NS":return mI;case"SOA":return bI;case"MX":return kI;case"OPT":return TI;case"DNSKEY":return xI;case"RRSIG":return DI;case"RP":return NI;case"NSEC":return BI;case"NSEC3":return MI;case"DS":return OI}return gI}const KI=dI({encode(e,t,r){t||(t=new Uint8Array(KI.encodingLength(e))),r||(r=0);const n=r;if(pI.encode(e.name,t,r),r+=pI.encode.bytes,lI(t,Vk(e.type),r),"OPT"===e.type.toUpperCase()){if("."!==e.name)throw new Error("OPT name must be root.");lI(t,e.udpPayloadSize||4096,r+2),t[r+4]=e.extendedRcode||0,t[r+5]=e.ednsVersion||0,lI(t,e.flags||0,r+6),r+=8,TI.encode(e.options||[],t,r),r+=TI.encode.bytes}else{let n=Gk(void 0===e.class?"IN":e.class);e.flush&&(n|=hI),lI(t,n,r+2),cI(t,e.ttl||0,r+4),r+=8;const i=UI(e.type);i.encode(e.data,t,r),r+=i.encode.bytes}return KI.encode.bytes=r-n,t},decode(e,t){t||(t=0);const r={},n=t;if(r.name=pI.decode(e,t),t+=pI.decode.bytes,r.type=Fk(aI(e,t)),"OPT"===r.type)r.udpPayloadSize=aI(e,t+2),r.extendedRcode=e[t+4],r.ednsVersion=e[t+5],r.flags=aI(e,t+6),r.flag_do=1===(r.flags>>15&1),r.options=TI.decode(e,t+8),t+=8+TI.decode.bytes;else{const n=aI(e,t+2);r.ttl=sI(e,t+4),r.class=Hk(-32769&n),r.flush=!!(n&hI);const i=UI(r.type);r.data=i.decode(e,t+8),t+=8+i.decode.bytes}return KI.decode.bytes=t-n,r},encodingLength(e){const t=null!==e.data&&void 0!==e.data?e.data:e.options;return pI.encodingLength(e.name)+8+UI(e.type).encodingLength(t)}}),qI=dI({encode(e,t,r){t||(t=new Uint8Array(qI.encodingLength(e))),r||(r=0);const n=r;return pI.encode(e.name,t,r),r+=pI.encode.bytes,lI(t,Vk(e.type),r),r+=2,lI(t,Gk(void 0===e.class?"IN":e.class),r),r+=2,qI.encode.bytes=r-n,e},decode(e,t){t||(t=0);const r=t,n={};n.name=pI.decode(e,t),t+=pI.decode.bytes,n.type=Fk(aI(e,t)),t+=2,n.class=Hk(aI(e,t)),t+=2;return!!(32768&n.class)&&(n.class&=-32769),qI.decode.bytes=t-r,n},encodingLength:e=>pI.encodingLength(e.name)+4}),FI=256,VI={encode:function(e,t,r){const n=!t;n&&(t=new Uint8Array(YI(e))),r||(r=0);const i=r;return e.questions||(e.questions=[]),e.answers||(e.answers=[]),e.authorities||(e.authorities=[]),e.additionals||(e.additionals=[]),yI.encode(e,t,r),r+=yI.encode.bytes,r=XI(e.questions,qI,t,r),r=XI(e.answers,KI,t,r),r=XI(e.authorities,KI,t,r),r=XI(e.additionals,KI,t,r),VI.encode.bytes=r-i,n&&GI.bytes!==t.length?t.slice(0,GI.bytes):t},decode:function(e,t){t||(t=0);const r=t,n=yI.decode(e,t);return t+=yI.decode.bytes,t=JI(n.questions,qI,e,t),t=JI(n.answers,KI,e,t),t=JI(n.authorities,KI,e,t),t=JI(n.additionals,KI,e,t),VI.decode.bytes=t-r,n},encodingLength:function(e){return yI.encodingLength(e)+QI(e.questions||[],qI)+QI(e.answers||[],KI)+QI(e.authorities||[],KI)+QI(e.additionals||[],KI)}};function zI(e,t){if(e.questions)throw new Error("Only one .question object expected instead of a .questions array!");const r=Object.assign({type:t},e);return r.question&&(r.questions=[r.question],delete r.question),r}VI.encode.bytes=0,VI.decode.bytes=0;const jI={encode:function(e,t,r){return t=VI.encode(zI(e,"query"),t,r),jI.encode.bytes=VI.encode.bytes,t},decode:function(e,t){const r=VI.decode(e,t);return jI.decode.bytes=VI.decode.bytes,r.questions&&(r.question=r.questions[0],delete r.questions),r},encodingLength:function(e){return VI.encodingLength(zI(e,"query"))}};jI.encode.bytes=0,jI.decode.bytes=0;const HI={encode:function(e,t,r){return t=VI.encode(zI(e,"response"),t,r),HI.encode.bytes=VI.encode.bytes,t},decode:function(e,t){const r=VI.decode(e,t);return HI.decode.bytes=VI.decode.bytes,r.questions&&(r.question=r.questions[0],delete r.questions),r},encodingLength:function(e){return VI.encodingLength(zI(e,"response"))}};HI.encode.bytes=0,HI.decode.bytes=0;const GI=VI.encode,WI=VI.decode,YI=VI.encodingLength;function QI(e,t){let r=0;for(let n=0;n<e.length;n++)r+=t.encodingLength(e[n]);return r}function XI(e,t,r,n){for(let i=0;i<e.length;i++)t.encode(e[i],r,n),n+=t.encode.bytes;return n}function JI(e,t,r,n){for(let i=0;i<e.length;i++)e[i]=t.decode(r,n),n+=t.decode.bytes;return n}const ZI=1;function $I(e,t,r,n){if(64!==t.length)throw new Error("Charset needs to be 64 characters long! (".concat(t.length,")"));const i=new Uint8Array(256),o=new Uint8Array(64);for(let c=0;c<64;c+=1){const e=t.charCodeAt(c);if(e>255)throw new Error("Character #".concat(c," in charset [code=").concat(e,", char=").concat(t.charAt(c),"] is too high! (max=255)"));if(0!==i[e])throw new Error("Character [code=".concat(e,", char=").concat(t.charAt(c),"] is more than once in the charset!"));i[e]=c,o[c]=e}const s=r.charCodeAt(0),a={name:e,encodingLength(e){const t=e.length,r=.75*t|0;return e.charCodeAt(t-1)===s?e.charCodeAt(t-2)===s?r-2:r-1:r},encode(e,t,r){null!==t&&void 0!==t||(t=new Uint8Array(a.encodingLength(e))),null!==r&&void 0!==r||(r=0);let n=e.length;e.charCodeAt(n-1)===s&&(e.charCodeAt(n-2)===s?n-=2:n-=1);const o=n%4,c=n-o;let l=r,u=0;for(;u<c;){const r=i[e.charCodeAt(u)]<<18|i[e.charCodeAt(u+1)]<<12|i[e.charCodeAt(u+2)]<<6|i[e.charCodeAt(u+3)];t[l++]=r>>16,t[l++]=r>>8,t[l++]=r,u+=4}if(3===o){const r=i[e.charCodeAt(u)]<<10|i[e.charCodeAt(u+1)]<<4|i[e.charCodeAt(u+2)]>>2;t[l++]=r>>8,t[l++]=r}else 2===o&&(t[l++]=i[e.charCodeAt(u)]<<2|i[e.charCodeAt(u+1)]>>4);return a.encode.bytes=l-r,t},decode(e,t,r){null!==t&&void 0!==t||(t=0),null!==r&&void 0!==r||(r=e.length);const i=r-t,c=i%3,l=t+i-c,u=[];for(let n=t;n<l;n+=3){const t=e[n]<<16|e[n+1]<<8|e[n+2];u.push(o[t>>18&63],o[t>>12&63],o[t>>6&63],o[63&t])}if(2===c){const t=(e[r-2]<<8)+e[r-1];u.push(o[t>>10],o[t>>4&63],o[t<<2&63]),n===ZI&&u.push(s)}else if(1===c){const t=e[r-1];u.push(o[t>>2],o[t<<4&63]),n===ZI&&u.push(s,s)}return a.decode.bytes=i,String.fromCharCode.apply(String,u)}};return a}$I("base64","ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/","=",ZI);const eR=$I("base64-url","ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_","=",2);let tR="undefined"!==typeof global?global.AbortError:"undefined"!==typeof window?window.AbortError:null;tR||(tR=class extends Error{constructor(){super(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"Request aborted.")}}),tR.prototype.name="AbortError",tR.prototype.code="ABORT_ERR";const rR="undefined"!==typeof globalThis&&globalThis.URL||require("url").URL;class nR extends Error{constructor(e,t,r){super("status="+t+" while requesting "+e+" ["+r+"]"),this.uri=e,this.status=t,this.method=r}toJSON(){return{code:this.code,uri:this.uri,status:this.status,method:this.method,endpoint:this.endpoint}}}nR.prototype.name="HTTPStatusError",nR.prototype.code="HTTP_STATUS";class iR extends Error{constructor(e,t){super(e),this.cause=t}toJSON(){return{message:this.message,endpoint:this.endpoint,code:this.code,cause:cR(this.cause)}}}iR.prototype.name="ResponseError",iR.prototype.code="RESPONSE_ERR";class oR extends Error{constructor(e){super("Timeout (t="+e+")."),this.timeout=e}toJSON(){return{code:this.code,endpoint:this.endpoint,timeout:this.timeout}}}oR.prototype.name="TimeoutError",oR.prototype.code="ETIMEOUT";const sR=/^((\d{1,3}\.){3,3}\d{1,3})(:(\d{2,5}))?$/,aR=/^((::)?(((\d{1,3}\.){3}(\d{1,3}){1})?([0-9a-f]){0,4}:{0,2}){1,8}(::)?)(:(\d{2,5}))?$/i;function cR(e){if("string"===typeof e)return{message:e};try{const t=JSON.stringify(e);if("{}"!==t)return JSON.parse(t)}catch(r){}const t={message:String(e.message||e)};return void 0!==e.code&&(t.code=String(e.code)),t}const lR=/^(([a-z0-9]+:)\/\/)?([^/[\s:]+|\[[^\]]+\])?(:([^/\s]+))?(\/[^\s]*)?(.*)$/,uR=/\[(post|get|((ipv4|ipv6|name)=([^\]]+)))\]/gi,hR=/\[(((pk|name)=([^\]]+)))\]/gi;function dR(e,t){t.lastIndex=0;const r={};for(;;){const n=t.exec(e);if(!n)break;n[2]?r[n[3].toLowerCase()]=n[4]:r[n[1].toLowerCase()]=!0}return r}class pR extends Error{constructor(e,t){super('Invalid Endpoint: unsupported protocol "'.concat(e,'" for endpoint: ').concat(t,", supported protocols: ").concat(fR.join(", "))),this.protocol=e,this.endpoint=t}toJSON(){return{code:this.code,endpoint:this.endpoint,timeout:this.timeout}}}pR.prototype.name="InvalidProtocolError",pR.prototype.code="EPROTOCOL";const fR=["http:","https:","udp4:","udp6:"];class yR{constructor(e,t){this.name=e.name||null,this.protocol=e.protocol;const r="string"===typeof e.port?e.port=parseInt(e.port,10):e.port;if(void 0===r||null===r)this.port=t?"https:"===this.protocol?443:80:e.pk?443:53;else{if("number"!==typeof r&&!isNaN(r))throw new Error('Invalid Endpoint: port "'.concat(e.port,'" needs to be a number: ').concat(JSON.stringify(e)));this.port=r}}toJSON(){return this.toString()}}class gR extends yR{constructor(e){super(e,!1),this.pk=e.pk||null}toString(){const e=this.port!==(this.pk?443:53)?":".concat(this.port):"",t=this.pk?" [pk=".concat(this.pk,"]"):"",r=this.name?" [name=".concat(this.name,"]"):"";return"udp://".concat(this.ipv4||"[".concat(this.ipv6,"]")).concat(e).concat(t).concat(r)}}class mR extends gR{constructor(e){if(super(Object.assign({protocol:"udp4:"},e)),!e.ipv4||"string"!==typeof e.ipv4)throw new Error('Invalid Endpoint: .ipv4 "'.concat(e.ipv4,'" needs to be set: ').concat(JSON.stringify(e)));this.ipv4=e.ipv4}}class bR extends gR{constructor(e){if(super(Object.assign({protocol:"udp6:"},e)),!e.ipv6||"string"!==typeof e.ipv6)throw new Error('Invalid Endpoint: .ipv6 "'.concat(e.ipv6,'" needs to be set: ').concat(JSON.stringify(e)));this.ipv6=e.ipv6}}function wR(e){return aR.test(e)&&!sR.test(e)?"[".concat(e,"]"):e}class vR extends yR{constructor(e){if(super(Object.assign({protocol:"https:"},e),!0),e.host||(e.ipv4&&(e.host=e.ipv4),e.ipv6&&(e.host="[".concat(e.ipv6,"]"))),!e.host||"string"!==typeof e.host)throw new Error('Invalid Endpoint: host "'.concat(e.path,'" needs to be set: ').concat(JSON.stringify(e)));if(this.host=e.host,this.path=e.path||"/dns-query",this.method=/^post$/i.test(e.method)?"POST":"GET",this.ipv4=e.ipv4,this.ipv6=e.ipv6,!this.ipv6){const e=aR.exec(this.host);e&&(this.ipv6=e[1])}this.ipv4||sR.test(this.host)&&(this.ipv4=this.host);const t="".concat(this.protocol,"//").concat(wR(this.host),":").concat(this.port).concat(this.path);try{this.url=new rR(t)}catch(r){throw new Error(r.message+" [".concat(t,"]"))}}toString(){const e="https:"===this.protocol?"":"http://",t=this.port!==("https:"===this.protocol?443:80)?":".concat(this.port):"",r="GET"!==this.method?" [post]":"",n="/dns-query"===this.path?"":this.path,i=this.name?" [name=".concat(this.name,"]"):"",o=this.ipv4&&this.ipv4!==this.host?" [ipv4=".concat(this.ipv4,"]"):"",s=this.ipv6&&this.ipv6!==this.host?" [ipv6=".concat(this.ipv6,"]"):"";return"".concat(e).concat(wR(this.host)).concat(t).concat(n).concat(r).concat(o).concat(s).concat(i)}}function _R(e){let t;if("string"===typeof e)t=function(e){const t=lR.exec(e),r=t[2]||"https:",n=t[3],i=t[5],o=t[6],s=t[7];if("https:"===r||"http:"===r){const e=dR(s,uR);return{name:e.name,protocol:r,ipv4:e.ipv4,ipv6:e.ipv6,host:n,port:i,path:o,method:e.post?"POST":"GET"}}if("udp:"===r||"udp4:"===r||"udp6:"===r){const t=dR(s,hR),o=/^\[(.*)\]$/.exec(n);if(o&&"udp4:"===r)throw new Error("Endpoint parsing error: Cannot use ipv6 host with udp4: (endpoint=".concat(e,")"));if(!o&&"udp6:"===r)throw new Error("Endpoint parsing error: Incorrectly formatted host for udp6: (endpoint=".concat(e,")"));return o?new bR({protocol:"udp6:",ipv6:o[1],port:i,pk:t.pk,name:t.name}):new mR({protocol:"udp4:",ipv4:n,port:i,pk:t.pk,name:t.name})}throw new pR(r,e)}(e);else{if("object"!==typeof e||null===e||Array.isArray(e))throw new Error("Can not convert ".concat(e," to an endpoint"));if(e instanceof yR)return e;t=e}null!==t.protocol&&void 0!==t.protocol||(t.protocol="https:");const r=t.protocol;if("udp4:"===r)return new mR(t);if("udp6:"===r)return new bR(t);if("https:"===r||"http:"===r)return new vR(t);throw new pR(r,JSON.stringify(t))}const ER="application/dns-message";function SR(){}function AR(e,t,r,n,i){return new Promise(((o,s)=>{const a=new rR(e);"GET"===t&&r&&(a.search="?dns="+eR.decode(r));const c=a.toString(),l=new XMLHttpRequest;l.open(t,c,!0),l.setRequestHeader("Accept",ER),"POST"===t&&l.setRequestHeader("Content-Type",ER),l.responseType="arraybuffer",l.timeout=n,l.ontimeout=function(){u(new oR(n));try{l.abort()}catch(e){}},l.onreadystatechange=function(){if(l.readyState>1&&200!==l.status&&0!==l.status){u(new nR(c,l.status,t));try{l.abort()}catch(e){}}},l.onerror=function(){u(200===l.status?new Error("Inexplicable XHR Error"):new nR(c,l.status,t))},l.onload=function(){if(200!==l.status)u(new nR(c,l.status,t));else{let e;if("string"===typeof l.response)e=Jk(l.response);else if(l.response instanceof Uint8Array)e=l.response;else{if(!(Array.isArray(l.response)||l.response instanceof ArrayBuffer))throw new Error("Unprocessable response "+l.response);e=new Uint8Array(l.response)}u(null,e)}},"POST"===t?l.send(r):l.send(),i&&i.addEventListener("abort",h);let u=function(e,t){u=SR,i&&i.removeEventListener("abort",h),o(e?{error:e,response:l}:{data:t,response:l})};function h(){u(new tR);try{l.abort()}catch(e){}}}))}class kR extends Error{constructor(e,t){super("".concat(DNS_RCODE_MESSAGE[e]||"Undefined error."," (rcode=").concat(e).concat(DNS_RCODE_ERROR[e]?", error=".concat(DNS_RCODE_ERROR[e]):"",", question=").concat(JSON.stringify(t),")")),this.rcode=e,this.code="DNS_RCODE_".concat(e),this.error=DNS_RCODE_ERROR[e],this.question=t}toJSON(){return{code:this.code,error:this.error,question:this.question,endpoint:this.endpoint}}}function IR(e){const t=null===e.time||void 0===e.time?Date.now():e.time,r=function(e){return e.filter((e=>e.cors||e.endpoint.cors))}(e.data.map((e=>(e.endpoint=_R(Object.assign({name:e.name},e.endpoint)),e)))),n=r.map((e=>e.endpoint));return{data:{resolvers:r,resolverByName:r.reduce(((e,t)=>(e[t.name]=t,e)),{}),endpoints:n,endpointByName:n.reduce(((e,t)=>(e[t.name]=t,e)),{})},time:t}}const RR=IR({data:[{name:"adfree.usableprivacy.net",endpoint:{protocol:"https:",host:"adfree.usableprivacy.net"},description:"Public updns DoH service with advertising, tracker and malware filters.\nHosted in Europe by @usableprivacy, details see: https://docs.usableprivacy.com",country:"Germany",location:{lat:51.2993,long:9.491},filter:!0},{name:"adguard-dns-doh",endpoint:{protocol:"https:",host:"dns.adguard.com",ipv4:"94.140.15.15"},description:"Remove ads and protect your computer from malware (over DoH)",country:"France",location:{lat:48.8582,long:2.3387},filter:!0},{name:"adguard-dns-family-doh",endpoint:{protocol:"https:",host:"dns-family.adguard.com",ipv4:"94.140.15.16"},description:"Adguard DNS with safesearch and adult content blocking (over DoH)",country:"France",location:{lat:48.8582,long:2.3387},filter:!0},{name:"adguard-dns-unfiltered-doh",endpoint:{protocol:"https:",host:"dns-unfiltered.adguard.com",ipv4:"94.140.14.140"},description:"AdGuard public DNS servers without filters (over DoH)",country:"France",location:{lat:48.8582,long:2.3387}},{name:"ahadns-doh-chi",endpoint:{protocol:"https:",host:"doh.chi.ahadns.net",cors:!0},description:"A zero logging DNS with support for DNS-over-HTTPS (DoH) & DNS-over-TLS (DoT). Blocks ads, malware, trackers, viruses, ransomware, telemetry and more. No persistent logs. DNSSEC. Hosted in Chicago, USA. By https://ahadns.com/\nServer statistics can be seen at: https://statistics.ahadns.com/?server=chi",country:"United States",location:{lat:41.8483,long:-87.6517},filter:!0,cors:!0},{name:"ahadns-doh-in",endpoint:{protocol:"https:",host:"doh.in.ahadns.net",cors:!0},description:"A zero logging DNS with support for DNS-over-HTTPS (DoH) & DNS-over-TLS (DoT). Blocks ads, malware, trackers, viruses, ransomware, telemetry and more. No persistent logs. DNSSEC. Hosted in Mumbai, India. By https://ahadns.com/\nServer statistics can be seen at: https://statistics.ahadns.com/?server=in",country:"India",location:{lat:19.0748,long:72.8856},filter:!0,cors:!0},{name:"ahadns-doh-la",endpoint:{protocol:"https:",host:"doh.la.ahadns.net",cors:!0},description:"A zero logging DNS with support for DNS-over-HTTPS (DoH) & DNS-over-TLS (DoT). Blocks ads, malware, trackers, viruses, ransomware, telemetry and more. No persistent logs. DNSSEC. Hosted in Los Angeles, USA. By https://ahadns.com/\nServer statistics can be seen at: https://statistics.ahadns.com/?server=la",country:"United States",location:{lat:34.0549,long:-118.2578},filter:!0,cors:!0},{name:"ahadns-doh-nl",endpoint:{protocol:"https:",host:"doh.nl.ahadns.net",cors:!0},description:"A zero logging DNS with support for DNS-over-HTTPS (DoH) & DNS-over-TLS (DoT). Blocks ads, malware, trackers, viruses, ransomware, telemetry and more. No persistent logs. DNSSEC. Hosted in Amsterdam, Netherlands. By https://ahadns.com/\nServer statistics can be seen at: https://statistics.ahadns.com/?server=nl",country:"Netherlands",location:{lat:52.3824,long:4.8995},filter:!0,cors:!0},{name:"ahadns-doh-ny",endpoint:{protocol:"https:",host:"doh.ny.ahadns.net",cors:!0},description:"A zero logging DNS with support for DNS-over-HTTPS (DoH) & DNS-over-TLS (DoT). Blocks ads, malware, trackers, viruses, ransomware, telemetry and more. No persistent logs. DNSSEC. Hosted in New York. By https://ahadns.com/\nServer statistics can be seen at: https://statistics.ahadns.com/?server=ny",country:"United States",location:{lat:40.7308,long:-73.9975},filter:!0,cors:!0},{name:"ahadns-doh-pl",endpoint:{protocol:"https:",host:"doh.pl.ahadns.net",cors:!0},description:"A zero logging DNS with support for DNS-over-HTTPS (DoH) & DNS-over-TLS (DoT). Blocks ads, malware, trackers, viruses, ransomware, telemetry and more. No persistent logs. DNSSEC. Hosted in Poland. By https://ahadns.com/\nServer statistics can be seen at: https://statistics.ahadns.com/?server=pl",country:"Netherlands",location:{lat:52.3824,long:4.8995},filter:!0,cors:!0},{name:"alidns-doh",endpoint:{protocol:"https:",host:"dns.alidns.com",ipv4:"223.5.5.5",cors:!0},description:"A public DNS resolver that supports DoH/DoT in mainland China, provided by Alibaba-Cloud.\nWarning: GFW filtering rules are applied by that resolver.\nHomepage: https://alidns.com/",country:"China",location:{lat:34.7725,long:113.7266},filter:!0,log:!0,cors:!0},{name:"ams-ads-doh-nl",endpoint:{protocol:"https:",host:"dnsnl-noads.alekberg.net"},description:"Resolver in Amsterdam. DoH protocol. Non-logging. Blocks ads, malware and trackers. DNSSEC enabled.",country:"Romania",location:{lat:45.9968,long:24.997},filter:!0},{name:"ams-doh-nl",endpoint:{protocol:"https:",host:"dnsnl.alekberg.net"},description:"Resolver in Amsterdam. DoH protocol. Non-logging, non-filtering, DNSSEC.",country:"Romania",location:{lat:45.9968,long:24.997}},{name:"att",endpoint:{protocol:"https:",host:"dohtrial.att.net"},description:"AT&T test DoH server.",log:!0},{name:"bcn-ads-doh",endpoint:{protocol:"https:",host:"dnses-noads.alekberg.net"},description:"Resolver in Spain. DoH protocol. Non-logging, remove ads and malware, DNSSEC.",country:"Spain",location:{lat:41.3891,long:2.1611},filter:!0},{name:"bcn-doh",endpoint:{protocol:"https:",host:"dnses.alekberg.net"},description:"Resolver in Spain. DoH protocol. Non-logging, non-filtering, DNSSEC.",country:"Spain",location:{lat:41.3891,long:2.1611}},{name:"brahma-world",endpoint:{protocol:"https:",host:"dns.brahma.world"},description:"DNS-over-HTTPS server. Non Logging, filters ads, trackers and malware. DNSSEC ready, QNAME Minimization, No EDNS Client-Subnet.\nHosted in Stockholm, Sweden. (https://dns.brahma.world)",country:"United States",location:{lat:37.751,long:-97.822},filter:!0},{name:"cisco-doh",endpoint:{protocol:"https:",host:"doh.opendns.com",ipv4:"146.112.41.2"},description:"Remove your DNS blind spot (DoH protocol)\nWarning: modifies your queries to include a copy of your network\naddress when forwarding them to a selection of companies and organizations.",country:"United States",location:{lat:37.751,long:-97.822},filter:!0,log:!0},{name:"cloudflare",endpoint:{protocol:"https:",host:"dns.cloudflare.com",ipv4:"1.0.0.1",cors:!0},description:"Cloudflare DNS (anycast) - aka 1.1.1.1 / 1.0.0.1",country:"Australia",location:{lat:-33.494,long:143.2104},cors:!0},{name:"cloudflare-family",endpoint:{protocol:"https:",host:"family.cloudflare-dns.com",ipv4:"1.0.0.3",cors:!0},description:"Cloudflare DNS (anycast) with malware protection and parental control - aka 1.1.1.3 / 1.0.0.3",country:"Australia",location:{lat:-33.494,long:143.2104},filter:!0,cors:!0},{name:"cloudflare-ipv6",endpoint:{protocol:"https:",host:"1dot1dot1dot1.cloudflare-dns.com",cors:!0},description:"Cloudflare DNS over IPv6 (anycast)",country:"United States",location:{lat:37.751,long:-97.822},cors:!0},{name:"cloudflare-security",endpoint:{protocol:"https:",host:"security.cloudflare-dns.com",ipv4:"1.0.0.2",cors:!0},description:"Cloudflare DNS (anycast) with malware blocking - aka 1.1.1.2 / 1.0.0.2",country:"Australia",location:{lat:-33.494,long:143.2104},filter:!0,cors:!0},{name:"controld-block-malware",endpoint:{protocol:"https:",host:"freedns.controld.com",path:"/p1"},description:"ControlD Free DNS. Take CONTROL of your Internet. Block unwanted content, bypass geo-restrictions and be more productive. DoH protocol and No logging. - https://controld.com/free-dns\nThis DNS blocks Malware domains.",country:"Canada",location:{lat:43.6319,long:-79.3716},filter:!0},{name:"controld-block-malware-ad",endpoint:{protocol:"https:",host:"freedns.controld.com",path:"/p2"},description:"ControlD Free DNS. Take CONTROL of your Internet. Block unwanted content, bypass geo-restrictions and be more productive. DoH protocol and No logging. - https://controld.com/free-dns\nThis DNS blocks Malware, Ads & Tracking domains.",country:"Canada",location:{lat:43.6319,long:-79.3716},filter:!0},{name:"controld-block-malware-ad-social",endpoint:{protocol:"https:",host:"freedns.controld.com",path:"/p3"},description:"ControlD Free DNS. Take CONTROL of your Internet. Block unwanted content, bypass geo-restrictions and be more productive. DoH protocol and No logging. - https://controld.com/free-dns\nThis DNS blocks Malware, Ads & Tracking and Social Networks domains.",country:"Canada",location:{lat:43.6319,long:-79.3716},filter:!0},{name:"controld-family-friendly",endpoint:{protocol:"https:",host:"freedns.controld.com",path:"/family"},description:"ControlD Free DNS. Take CONTROL of your Internet. Block unwanted content, bypass geo-restrictions and be more productive. DoH protocol and No logging. - https://controld.com/free-dns\nThis DNS blocks Malware, Ads & Tracking, Adult Content and Drugs domains.",country:"Canada",location:{lat:43.6319,long:-79.3716},filter:!0},{name:"controld-uncensored",endpoint:{protocol:"https:",host:"freedns.controld.com",path:"/uncensored"},description:"ControlD Free DNS. Take CONTROL of your Internet. Block unwanted content, bypass geo-restrictions and be more productive. DoH protocol and No logging. - https://controld.com/free-dns\nThis DNS unblocks censored domains from various countries.",country:"Canada",location:{lat:43.6319,long:-79.3716}},{name:"controld-unfiltered",endpoint:{protocol:"https:",host:"freedns.controld.com",path:"/p0"},description:"ControlD Free DNS. Take CONTROL of your Internet. Block unwanted content, bypass geo-restrictions and be more productive. DoH protocol and No logging. - https://controld.com/free-dns\nThis is a Unfiltered DNS, no DNS record blocking or manipulation here, if you want to block Malware, Ads & Tracking or Social Network domains, use the other ControlD DNS configs.",country:"Canada",location:{lat:43.6319,long:-79.3716}},{name:"dns.digitale-gesellschaft.ch",endpoint:{protocol:"https:",host:"dns.digitale-gesellschaft.ch"},description:"Public DoH resolver operated by the Digital Society (https://www.digitale-gesellschaft.ch).\nHosted in Zurich, Switzerland.\nNon-logging, non-filtering, supports DNSSEC.",country:"Switzerland",location:{lat:47.1449,long:8.1551}},{name:"dns.ryan-palmer",endpoint:{protocol:"https:",host:"dns1.ryan-palmer.com"},description:"Non-logging, non-filtering, DNSSEC DoH Server. Hosted in the UK.",country:"United Kingdom",location:{lat:51.5164,long:-.093}},{name:"dns.sb",endpoint:{protocol:"https:",host:"doh.sb",ipv4:"185.222.222.222",cors:!0},description:"DNSSEC-enabled DoH server by https://xtom.com/\nhttps://dns.sb/doh/",country:"Unknown",location:{lat:47,long:8},cors:!0},{name:"dns.therifleman.name",endpoint:{protocol:"https:",host:"dns.therifleman.name"},description:"DNS-over-HTTPS DNS forwarder from Mumbai, India. Blocks web and Android trackers and ads.\nIP addresses are not logged, but queries are logged for 24 hours for debugging.\nReport issues, send suggestions @ joker349 at protonmail.com.\nAlso supports DoT (for android) @ dns.therifleman.name and plain DNS @ 172.104.206.174",country:"United States",location:{lat:37.751,long:-97.822},filter:!0},{name:"dnsforfamily-doh",endpoint:{protocol:"https:",host:"dns-doh.dnsforfamily.com"},description:"(DoH Protocol) (Now supports DNSSEC). Block adult websites, gambling websites, malwares and advertisements.\nIt also enforces safe search in: Google, YouTube, Bing, DuckDuckGo and Yandex.\nSocial websites like Facebook and Instagram are not blocked. No DNS queries are logged.\nAs of 26-May-2022 5.9 million websites are blocked and new websites are added to blacklist daily.\nCompletely free, no ads or any commercial motive. Operating for 4 years now.\nProvided by: https://dnsforfamily.com",country:"Finland",location:{lat:60.1758,long:24.9349},filter:!0},{name:"dnsforfamily-doh-no-safe-search",endpoint:{protocol:"https:",host:"dns-doh-no-safe-search.dnsforfamily.com"},description:"(DoH Protocol) (Now supports DNSSEC) Block adult websites, gambling websites, malwares and advertisements.\nUnlike other dnsforfamily servers, this one does not enforces safe search. So Google, YouTube, Bing, DuckDuckGo and Yandex are completely accessible without any restriction.\nSocial websites like Facebook and Instagram are not blocked. No DNS queries are logged.\nAs of 26-May-2022 5.9 million websites are blocked and new websites are added to blacklist daily.\nCompletely free, no ads or any commercial motive. Operating for 4 years now.\nWarning: This server is incompatible with anonymization.\nProvided by: https://dnsforfamily.com",country:"Finland",location:{lat:60.1758,long:24.9349},filter:!0},{name:"dnsforge.de",endpoint:{protocol:"https:",host:"dnsforge.de",cors:!0},description:"Public DoH resolver running with Pihole for Adblocking (https://dnsforge.de).\nNon-logging, AD-filtering, supports DNSSEC. Hosted in Germany.",country:"Germany",location:{lat:52.2998,long:9.447},filter:!0,cors:!0},{name:"dnshome-doh",endpoint:{protocol:"https:",host:"dns.dnshome.de"},description:"https://www.dnshome.de/ public resolver in Germany"},{name:"dnspod-doh",endpoint:{protocol:"https:",host:"doh.pub",cors:!0},description:"A public DNS resolver in mainland China provided by DNSPod (Tencent Cloud).\nhttps://www.dnspod.cn/Products/Public.DNS?lang=en",filter:!0,log:!0,cors:!0},{name:"dnswarden-asia-adblock-dohv4",endpoint:{protocol:"https:",host:"doh.asia.dnswarden.com",path:"/adblock"},description:"Hosted in Singapore. For more information look [here](https://github.com/bhanupratapys/dnswarden) or [here](https://dnswarden.com).",country:"Singapore",location:{lat:1.2929,long:103.8547},filter:!0},{name:"dnswarden-asia-adultfilter-dohv4",endpoint:{protocol:"https:",host:"doh.asia.dnswarden.com",path:"/adultfilter"},description:"Hosted in Singapore. For more information look [here](https://github.com/bhanupratapys/dnswarden) or [here](https://dnswarden.com).",country:"Singapore",location:{lat:1.2929,long:103.8547},filter:!0},{name:"dnswarden-asia-uncensor-dohv4",endpoint:{protocol:"https:",host:"doh.asia.dnswarden.com",path:"/uncensored"},description:"Hosted in Singapore. For more information look [here](https://github.com/bhanupratapys/dnswarden) or [here](https://dnswarden.com).",country:"Singapore",location:{lat:1.2929,long:103.8547}},{name:"dnswarden-eu-adblock-dohv4",endpoint:{protocol:"https:",host:"doh.eu.dnswarden.com"},description:"Hosted in Germany. For more information look [here](https://github.com/bhanupratapys/dnswarden) or [here](https://dnswarden.com).",country:"Germany",location:{lat:50.1103,long:8.7147},filter:!0},{name:"dnswarden-us-adblock-dohv4",endpoint:{protocol:"https:",host:"doh.us.dnswarden.com"},description:"Hosted in USA (Dallas) . For more information look [here](https://github.com/bhanupratapys/dnswarden) or [here](https://dnswarden.com).",country:"United States",location:{lat:32.7889,long:-96.8021},filter:!0},{name:"doh-ch-blahdns",endpoint:{protocol:"https:",host:"doh-ch.blahdns.com",cors:!0},description:"Blocks ad and Tracking, no Logging, DNSSEC, Hosted in Switzerland. By https://blahdns.com/",country:"Netherlands",location:{lat:52.3824,long:4.8995},filter:!0,cors:!0},{name:"doh-cleanbrowsing-adult",endpoint:{protocol:"https:",host:"doh.cleanbrowsing.org",path:"/doh/adult-filter/",cors:!0},description:"Blocks access to all adult, pornographic and explicit sites. It does\nnot block proxy or VPNs, nor mixed-content sites. Sites like Reddit\nare allowed. Google and Bing are set to the Safe Mode.\nBy https://cleanbrowsing.org/",filter:!0,cors:!0},{name:"doh-cleanbrowsing-family",endpoint:{protocol:"https:",host:"doh.cleanbrowsing.org",path:"/doh/family-filter/",cors:!0},description:"Blocks access to all adult, pornographic and explicit sites. It also\nblocks proxy and VPN domains that are used to bypass the filters.\nMixed content sites (like Reddit) are also blocked. Google, Bing and\nYoutube are set to the Safe Mode.\nBy https://cleanbrowsing.org/",filter:!0,cors:!0},{name:"doh-cleanbrowsing-security",endpoint:{protocol:"https:",host:"doh.cleanbrowsing.org",path:"/doh/security-filter/",cors:!0},description:"Block access to phishing, malware and malicious domains. It does not block adult content.\nBy https://cleanbrowsing.org/",filter:!0,cors:!0},{name:"doh-crypto-sx",endpoint:{protocol:"https:",host:"doh.crypto.sx",cors:!0},description:"DNS-over-HTTPS server. Anycast, no logs, no censorship, DNSSEC.\nBackend hosted by Scaleway, globally cached via Cloudflare.\nMaintained by Frank Denis.",country:"United States",location:{lat:37.751,long:-97.822},cors:!0},{name:"doh-crypto-sx-ipv6",endpoint:{protocol:"https:",host:"doh-ipv6.crypto.sx",cors:!0},description:"DNS-over-HTTPS server accessible over IPv6. Anycast, no logs, no censorship, DNSSEC.\nBackend hosted by Scaleway, globally cached via Cloudflare.\nMaintained by Frank Denis.",country:"United States",location:{lat:37.751,long:-97.822},cors:!0},{name:"doh-de-blahdns",endpoint:{protocol:"https:",host:"doh-de.blahdns.com",cors:!0},description:"Blocks ad and Tracking, no Logging, DNSSEC, Hosted in Germany. By https://blahdns.com/",country:"Germany",location:{lat:51.2993,long:9.491},filter:!0,cors:!0},{name:"doh-fi-blahdns",endpoint:{protocol:"https:",host:"doh-fi.blahdns.com",cors:!0},description:"Blocks ad and Tracking, no Logging, DNSSEC, Hosted in Finland. By https://blahdns.com/",country:"Finland",location:{lat:60.1758,long:24.9349},filter:!0,cors:!0},{name:"doh-ibksturm",endpoint:{protocol:"https:",host:"ibksturm.synology.me"},description:"DoH & DoT Server, No Logging, No Filters, DNSSEC\nRunning privately by ibksturm in Thurgau, Switzerland"},{name:"doh-jp-blahdns",endpoint:{protocol:"https:",host:"doh-jp.blahdns.com",cors:!0},description:"Blocks ad and Tracking, no Logging, DNSSEC, Hosted in Japan. By https://blahdns.com/",country:"Japan",location:{lat:35.6882,long:139.7532},filter:!0,cors:!0},{name:"doh.ffmuc.net",endpoint:{protocol:"https:",host:"doh.ffmuc.net"},description:"An open (non-logging, non-filtering, non-censoring) DoH resolver operated by Freifunk Munich with nodes in DE.\nhttps://ffmuc.net/",country:"Germany",location:{lat:51.2993,long:9.491}},{name:"doh.tiarap.org",endpoint:{protocol:"https:",host:"doh.tiarap.org"},description:"Non-Logging DNS-over-HTTPS server, cached via Cloudflare.\nFilters out ads, trackers and malware, NO ECS, supports DNSSEC.",country:"United States",location:{lat:37.751,long:-97.822},filter:!0},{name:"google",endpoint:{protocol:"https:",host:"dns.google",ipv4:"8.8.8.8",cors:!0},description:"Google DNS (anycast)",country:"United States",location:{lat:37.751,long:-97.822},log:!0,cors:!0},{name:"hdns",endpoint:{protocol:"https:",host:"query.hdns.io",cors:!0},description:"HDNS is a public DNS resolver that supports Handshake domains.\nhttps://www.hdns.io",country:"United States",location:{lat:37.7771,long:-122.406},cors:!0},{name:"he",endpoint:{protocol:"https:",host:"ordns.he.net"},description:"Hurricane Electric DoH server (anycast)\nUnknown logging policy.",country:"United States",location:{lat:37.751,long:-97.822},log:!0},{name:"id-gmail-doh",endpoint:{protocol:"https:",host:"doh.tiar.app"},description:"Non-Logging DNS-over-HTTPS server located in Singapore.\nFilters out ads, trackers and malware, supports DNSSEC, provided by id-gmail.",country:"Singapore",location:{lat:1.2929,long:103.8547},filter:!0},{name:"iij",endpoint:{protocol:"https:",host:"public.dns.iij.jp"},description:"DoH server operated by Internet Initiative Japan in Tokyo.\nhttps://www.iij.ad.jp/",country:"Japan",location:{lat:35.69,long:139.69},log:!0},{name:"iqdns-doh",endpoint:{protocol:"https:",host:"a.passcloud.xyz"},description:'Non-logging DoH service runned by V2EX.com user johnsonwil.\nReturns "no such domain" for anti-Chinese government websites. Supports DNSSEC.\nFor more information: https://www.v2ex.com/t/785666',filter:!0},{name:"jp.tiar.app-doh",endpoint:{protocol:"https:",host:"jp.tiar.app"},description:"Non-Logging, Non-Filtering DNS-over-HTTPS server in Japan.\nNo ECS, Support DNSSEC",country:"Japan",location:{lat:35.6882,long:139.7532}},{name:"jp.tiarap.org",endpoint:{protocol:"https:",host:"jp.tiarap.org"},description:"DNS-over-HTTPS Server. Non-Logging, Non-Filtering, No ECS, Support DNSSEC.\nCached via Cloudflare."},{name:"libredns",endpoint:{protocol:"https:",host:"doh.libredns.gr"},description:"DoH server in Germany. No logging, but no DNS padding and no DNSSEC support.\nhttps://libredns.gr/",country:"Germany",location:{lat:51.2993,long:9.491}},{name:"nextdns",endpoint:{protocol:"https:",host:"anycsast.dns.nextdns.io"},description:"NextDNS is a cloud-based private DNS service that gives you full control\nover what is allowed and what is blocked on the Internet.\nDNSSEC, Anycast, Non-logging, NoFilters\nhttps://www.nextdns.io/",country:"Netherlands",location:{lat:52.3891,long:4.6563}},{name:"nextdns-ultralow",endpoint:{protocol:"https:",host:"dns.nextdns.io",path:"/dnscrypt-proxy"},description:'NextDNS is a cloud-based private DNS service that gives you full control\nover what is allowed and what is blocked on the Internet.\nhttps://www.nextdns.io/\nTo select the server location, the "-ultralow" variant relies on bootstrap servers\ninstead of anycast.'},{name:"njalla-doh",endpoint:{protocol:"https:",host:"dns.njal.la",cors:!0},description:"Non-logging DoH server in Sweden operated by Njalla.\nhttps://dns.njal.la/",country:"Sweden",location:{lat:59.3247,long:18.056},cors:!0},{name:"odoh-cloudflare",endpoint:{protocol:"https:",host:"odoh.cloudflare-dns.com",cors:!0},description:"Cloudflare ODoH server.\nhttps://cloudflare.com",cors:!0},{name:"odoh-crypto-sx",endpoint:{protocol:"https:",host:"odoh.crypto.sx",cors:!0},description:"ODoH target server. Anycast, no logs.\nBackend hosted by Scaleway. Maintained by Frank Denis.",cors:!0},{name:"odoh-id-gmail",endpoint:{protocol:"https:",host:"doh.tiar.app",path:"/odoh"},description:"ODoH target server. Based in Singapore, no logs.\nFilter ads, trackers and malware.",filter:!0},{name:"odoh-jp.tiar.app",endpoint:{protocol:"https:",host:"jp.tiar.app",path:"/odoh"},description:"ODoH target server. no logs."},{name:"odoh-jp.tiarap.org",endpoint:{protocol:"https:",host:"jp.tiarap.org",path:"/odoh"},description:"ODoH target server via Cloudflare, no logs."},{name:"odoh-resolver4.dns.openinternet.io",endpoint:{protocol:"https:",host:"resolver4.dns.openinternet.io"},description:"ODoH target server. no logs, no filter, DNSSEC.\nRunning on dedicated hardware colocated at Sonic.net in Santa Rosa, CA in the United States.\nUses Sonic's recusrive DNS servers as upstream resolvers (but is not affiliated with Sonic\nin any way). Provided by https://openinternet.io"},{name:"odoh-tiarap.org",endpoint:{protocol:"https:",host:"doh.tiarap.org",path:"/odoh"},description:"ODoH target server via Cloudflare, no logs.\nFilter ads, trackers and malware.",filter:!0},{name:"publicarray-au2-doh",endpoint:{protocol:"https:",host:"doh-2.seby.io",cors:!0},description:"DNSSEC \u2022 OpenNIC \u2022 Non-logging \u2022 Uncensored - hosted on ovh.com.au\nMaintained by publicarray - https://dns.seby.io",country:"Australia",location:{lat:-33.8591,long:151.2002},cors:!0},{name:"puredns-doh",endpoint:{protocol:"https:",host:"puredns.org",ipv4:"146.190.6.13",cors:!0},description:"Public uncensored DNS resolver in Singapore - https://puredns.org\n** Only available in Indonesia and Singapore **",country:"United States",location:{lat:37.751,long:-97.822},cors:!0},{name:"quad101",endpoint:{protocol:"https:",host:"dns.twnic.tw",cors:!0},description:"DNSSEC-aware public resolver by the Taiwan Network Information Center (TWNIC)\nhttps://101.101.101.101/index_en.html",cors:!0},{name:"quad9-doh-ip4-port443-filter-ecs-pri",endpoint:{protocol:"https:",host:"dns11.quad9.net",ipv4:"149.112.112.11"},description:"Quad9 (anycast) dnssec/no-log/filter/ecs 9.9.9.11 - 149.112.112.11",country:"United States",location:{lat:37.751,long:-97.822},filter:!0},{name:"quad9-doh-ip4-port443-filter-pri",endpoint:{protocol:"https:",host:"dns.quad9.net",ipv4:"149.112.112.112"},description:"Quad9 (anycast) dnssec/no-log/filter 9.9.9.9 - 149.112.112.9 - 149.112.112.112",country:"United States",location:{lat:37.751,long:-97.822},filter:!0},{name:"quad9-doh-ip4-port443-nofilter-ecs-pri",endpoint:{protocol:"https:",host:"dns12.quad9.net",ipv4:"9.9.9.12"},description:"Quad9 (anycast) no-dnssec/no-log/no-filter/ecs 9.9.9.12 - 149.112.112.12",country:"United States",location:{lat:37.751,long:-97.822}},{name:"quad9-doh-ip4-port443-nofilter-pri",endpoint:{protocol:"https:",host:"dns10.quad9.net",ipv4:"149.112.112.10"},description:"Quad9 (anycast) no-dnssec/no-log/no-filter 9.9.9.10 - 149.112.112.10",country:"United States",location:{lat:37.751,long:-97.822}},{name:"quad9-doh-ip6-port5053-filter-pri",endpoint:{protocol:"https:",host:"dns9.quad9.net"},description:"Quad9 (anycast) dnssec/no-log/filter 2620:fe::fe - 2620:fe::9 - 2620:fe::fe:9",country:"United States",location:{lat:37.751,long:-97.822},filter:!0},{name:"safesurfer-doh",endpoint:{protocol:"https:",host:"doh.safesurfer.io"},description:"Family safety focused blocklist for over 2 million adult sites, as well as phishing and malware and more.\nFree to use, paid for customizing blocking for more categories+sites and viewing usage at my.safesurfer.io. Logs taken for viewing\nusage, data never sold - https://safesurfer.io",filter:!0,log:!0},{name:"sth-ads-doh-se",endpoint:{protocol:"https:",host:"dnsse-noads.alekberg.net"},description:"Resolver in Stockholm, Sweden. DoH server. Non-logging, remove ads and malware, DNSSEC.",country:"Bulgaria",location:{lat:42.696,long:23.332},filter:!0},{name:"sth-doh-se",endpoint:{protocol:"https:",host:"dnsse.alekberg.net"},description:"Resolver in Stockholm, Sweden. DoH server. Non-logging, non-filtering, DNSSEC.",country:"Bulgaria",location:{lat:42.696,long:23.332}},{name:"switch",endpoint:{protocol:"https:",host:"dns.switch.ch"},description:"Public DoH service provided by SWITCH in Switzerland\nhttps://www.switch.ch\nProvides protection against malware, but does not block ads.",filter:!0},{name:"uncensoreddns-dk-ipv4",endpoint:{protocol:"https:",host:"unicast.uncensoreddns.org"},description:"Also known as censurfridns.\nDoH, no logs, no filter, DNSSEC, unicast hosted in Denmark - https://blog.uncensoreddns.org",country:"Denmark",location:{lat:55.7123,long:12.0564}},{name:"uncensoreddns-ipv4",endpoint:{protocol:"https:",host:"anycast.uncensoreddns.org"},description:"Also known as censurfridns.\nDoH, no logs, no filter, DNSSEC, anycast - https://blog.uncensoreddns.org",country:"Denmark",location:{lat:55.7123,long:12.0564}},{name:"v.dnscrypt.uk-doh-ipv4",endpoint:{protocol:"https:",host:"v.dnscrypt.uk"},description:"DoH, no logs, uncensored, DNSSEC. Hosted in London UK on Digital Ocean\nhttps://www.dnscrypt.uk",country:"United Kingdom",location:{lat:51.4964,long:-.1224}}],time:1654187067783});function PR(e,t,r,n){return n&&n.aborted?Promise.reject(new tR):"udp4:"===e.protocol||"udp6:"===e.protocol?function(){throw new Error('Only "doh" endpoints are supported in the browser')}():function(e,t,r,n){return function(e,t,r,n,i){return AR(e,t,r,n,i)}(e.url,e.method,GI(Object.assign({flags:FI},t)),r,n).then((function(e){const t=e.data,r=e.response;let n=e.error;if(void 0===n)if(0===t.length)n=new iR("Empty.");else try{const e=WI(t);return e.response=r,e}catch(i){n=new iR("Invalid packet (cause="+i.message+")",i)}throw Object.assign(n,{response:r})}))}(e,t,r,n)}const CR=new rR("https://martinheidegger.github.io/dns-query/resolvers.json");function TR(e){return/^@/.test(e)}const xR=new class{constructor(e){this.opts=Object.assign({timeout:5e3,update:!0,updateURL:CR,persist:!1,localStoragePrefix:"dnsquery_",maxAge:3e5},e),this._dataP=null}_data(e,t){return e||null===this._dataP?(this._dataP=this.opts.update?async function(e,t,r,n){const i=t?t.localStoragePrefix+t.name:null;if(i)try{const e=JSON.parse(localStorage.getItem(i));if(e&&e.time>t.maxTime)return e}catch(a){}const{data:o}=await AR(e,"GET",null,r,n),s={time:Date.now(),data:JSON.parse(Zk(o))};if(i)try{localStorage.setItem(i,JSON.stringify(s))}catch(a){s.time=null}return s}(this.opts.updateURL,this.opts.persist?{name:"resolvers.json",localStoragePrefix:this.opts.localStoragePrefix,maxTime:Date.now()-this.opts.maxAge}:null,this.opts.timeout).then((e=>IR({data:e.data.resolvers,time:e.time}))).catch((()=>t||RR)):Promise.resolve(RR),this._dataP):this._dataP.then((e=>e.time<Date.now()-this.opts.maxAge?this._data(!0,e):e))}data(){return this._data(!1).then((e=>e.data))}endpoints(e){if(null===e||void 0===e)return this.data().then((e=>e.endpoints));if("doh"===e&&(e=LR),"dns"===e&&(e=BR),"function"===typeof e)return this.data().then((t=>t.endpoints.filter(e)));if("string"===typeof e||"function"!==typeof e[Symbol.iterator])return Promise.reject(new Error("Endpoints (".concat(e,") needs to be iterable (array).")));if(-1===(e=Array.from(e).filter(Boolean)).findIndex(TR))try{return Promise.resolve(e.map(_R))}catch(t){return Promise.reject(t)}return this.data().then((t=>e.map((e=>{if(TR(e)){const r=t.endpointByName[e.substring(1)];if(!r)throw new Error("Endpoint ".concat(e," is not known."));return r}return _R(e)}))))}};function DR(e,t){return t=Object.assign({retries:5,timeout:3e4},t),e.question?(r=t.endpoints,function(e){return null!==e&&"object"===typeof e&&"function"===typeof e.then}(r)?r:Promise.resolve(r)).then((r=>{if(!Array.isArray(r)||0===r.length)throw new Error("No endpoints defined to lookup dns records.");return NR(r.map(_R),function(e){const t=Object.assign({type:"query"},e);return delete t.question,t.questions=[],e.question&&t.questions.push(e.question),t}(e),t)})).then((e=>(e.question=e.questions[0],delete e.questions,e))):Promise.reject(new Error("To request data you need to specify a .question!"));var r}function NR(e,t,r){const n=1===e.length?e[0]:e[Math.floor(Math.random()*e.length)%e.length];return PR(n,t,r.timeout,r.signal).then((e=>(e.endpoint=n.toString(),e)),(i=>{if("AbortError"===i.name||0===r.retries)throw i.endpoint=n.toString(),i;return r.retries>0&&(r.retries-=1),NR(e,t,r)}))}function LR(e){return"https:"===e.protocol||"http:"===e.protocol}function BR(e){return"udp4:"===e.protocol||"udp6:"===e.protocol}const MR=ia("waku:dns-over-https");class OR{static async create(e,t){const r=null!==e&&void 0!==e?e:await xR.endpoints("doh");return new OR(r,t)}constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:3;Br(this,"endpoints",void 0),Br(this,"retries",void 0),this.endpoints=e,this.retries=t}async resolveTXT(e){let t;try{t=(await DR({question:{type:"TXT",name:e}},{endpoints:this.endpoints,retries:this.retries})).answers}catch(i){throw MR("query failed: ",i),new Error("DNS query failed")}if(!t)throw new Error("Could not resolve ".concat(e));const r=t.map((e=>e.data)),n=[];return r.forEach((e=>{"string"===typeof e?n.push(e):Array.isArray(e)?e.forEach((e=>{"string"===typeof e?n.push(e):n.push(ha(e))})):n.push(ha(e))})),n}}var UR=__webpack_require__(9437);class KR{static parseAndVerifyRoot(e,t){if(!e.startsWith(this.ROOT_PREFIX))throw new Error("ENRTree root entry must start with '".concat(this.ROOT_PREFIX,"'"));const r=KR.parseRootValues(e),n=UR.decode.asBytes(t),i=e.split(" sig")[0],o=da(i);if(!vv(ps(r.signature,"base64url").slice(0,64),wv(o),new Uint8Array(n)))throw new Error("Unable to verify ENRTree root signature");return r.eRoot}static parseRootValues(e){const t=e.match(/^enrtree-root:v1 e=([^ ]+) l=([^ ]+) seq=(\d+) sig=([^ ]+)$/);if(!Array.isArray(t))throw new Error("Could not parse ENRTree root entry");t.shift();const[r,n,i,o]=t;if(!r)throw new Error("Could not parse 'e' value from ENRTree root entry");if(!n)throw new Error("Could not parse 'l' value from ENRTree root entry");if(!i)throw new Error("Could not parse 'seq' value from ENRTree root entry");if(!o)throw new Error("Could not parse 'sig' value from ENRTree root entry");return{eRoot:r,lRoot:n,seq:Number(i),signature:o}}static parseTree(e){if(!e.startsWith(this.TREE_PREFIX))throw new Error("ENRTree tree entry must start with '".concat(this.TREE_PREFIX,"'"));const t=e.match(/^enrtree:\/\/([^@]+)@(.+)$/);if(!Array.isArray(t))throw new Error("Could not parse ENRTree tree entry");t.shift();const[r,n]=t;if(!r)throw new Error("Could not parse public key from ENRTree tree entry");if(!n)throw new Error("Could not parse domain from ENRTree tree entry");return{publicKey:r,domain:n}}static parseBranch(e){if(!e.startsWith(this.BRANCH_PREFIX))throw new Error("ENRTree branch entry must start with '".concat(this.BRANCH_PREFIX,"'"));return e.split(this.BRANCH_PREFIX)[1].split(",")}}Br(KR,"RECORD_PREFIX",ak.RECORD_PREFIX),Br(KR,"TREE_PREFIX","enrtree:"),Br(KR,"BRANCH_PREFIX","enrtree-branch:"),Br(KR,"ROOT_PREFIX","enrtree-root:");const qR=ia("waku:discovery:fetch_nodes");function FR(e,t){return t.relay>=e.relay&&t.store>=e.store&&t.filter>=e.filter&&t.lightPush>=e.lightPush}function VR(e,t){if(!e.nodeId)return!1;for(const r of t)if(e.nodeId===r.nodeId)return!1;return!0}function zR(e,t){e.relay&&(t.relay+=1),e.store&&(t.store+=1),e.filter&&(t.filter+=1),e.lightPush&&(t.lightPush+=1)}function jR(e,t,r){if(FR(t,r))throw"Internal Error: Waku2 wanted capabilities are already fulfilled";const n=function(e,t){return{relay:t.relay<e.relay,store:t.store<e.store,filter:t.filter<e.filter,lightPush:t.lightPush<e.lightPush}}(t,r);return n.relay&&e.relay||n.store&&e.store||n.filter&&e.filter||n.lightPush&&e.lightPush}const HR=ia("waku:discovery:dns");class GR{static async dnsOverHttp(e){return e||(e=await OR.create()),new GR(e)}async getPeers(e,t){const r=Math.floor(Math.random()*e.length),{publicKey:n,domain:i}=KR.parseTree(e[r]),o={domain:i,publicKey:n,visits:{}},s=await async function(e,t,r){var n,i,o,s;const a={relay:null!==(n=e.relay)&&void 0!==n?n:0,store:null!==(i=e.store)&&void 0!==i?i:0,filter:null!==(o=e.filter)&&void 0!==o?o:0,lightPush:null!==(s=e.lightPush)&&void 0!==s?s:0},c=a.relay+a.store+a.filter+a.lightPush,l={relay:0,store:0,filter:0,lightPush:0};let u=0;const h=[];for(;!FR(a,l)&&u<c+t;){const e=await r();e&&VR(e,h)&&(e.waku2&&jR(e.waku2,a,l)&&(zR(e.waku2,l),h.push(e)),qR("got new peer candidate from DNS address=".concat(e.nodeId,"@").concat(e.ip))),u++}return h}(t,this._errorTolerance,(()=>this._search(i,o)));return HR("retrieved peers: ",s.map((e=>{var t,r;return{id:null===(t=e.peerId)||void 0===t?void 0:t.toString(),multiaddrs:null===(r=e.multiaddrs)||void 0===r?void 0:r.map((e=>e.toString()))}}))),s}constructor(e){Br(this,"dns",void 0),Br(this,"_DNSTreeCache",void 0),Br(this,"_errorTolerance",10),this._DNSTreeCache={},this.dns=e}async*getNextPeer(e,t){const r=Math.floor(Math.random()*e.length),{publicKey:n,domain:i}=KR.parseTree(e[r]),o={domain:i,publicKey:n,visits:{}};for await(const s of async function*(e,t,r){var n,i,o,s;const a={relay:null!==(n=e.relay)&&void 0!==n?n:0,store:null!==(i=e.store)&&void 0!==i?i:0,filter:null!==(o=e.filter)&&void 0!==o?o:0,lightPush:null!==(s=e.lightPush)&&void 0!==s?s:0},c=a.relay+a.store+a.filter+a.lightPush,l={relay:0,store:0,filter:0,lightPush:0};let u=0;const h=new Set;for(;!FR(a,l)&&u<c+t;){const e=await r();e&&e.nodeId&&!h.has(e.nodeId)&&(h.add(e.nodeId),e.waku2&&jR(e.waku2,a,l)&&(zR(e.waku2,l),yield e),qR("got new peer candidate from DNS address=".concat(e.nodeId,"@").concat(e.ip))),u++}}(t,this._errorTolerance,(()=>this._search(i,o))))yield s}async _search(e,t){try{const n=await this._getTXTRecord(e,t);let i,o;t.visits[e]=!0;const s=function(e){return e.startsWith(KR.ROOT_PREFIX)?KR.ROOT_PREFIX:e.startsWith(KR.BRANCH_PREFIX)?KR.BRANCH_PREFIX:e.startsWith(KR.RECORD_PREFIX)?KR.RECORD_PREFIX:""}(n);try{switch(s){case KR.ROOT_PREFIX:return i=KR.parseAndVerifyRoot(n,t.publicKey),await this._search(i,t);case KR.BRANCH_PREFIX:return o=KR.parseBranch(n),i=function(e,t){const r={};for(const[i,o]of e.entries())t.visits[o]&&(r[i]=!0);if(Object.keys(r).length===e.length)throw new Error("Unresolvable circular path detected");let n;do{n=Math.floor(Math.random()*e.length)}while(r[n]);return e[n]}(o,t),await this._search(i,t);case KR.RECORD_PREFIX:return Bk.fromString(n);default:return null}}catch(r){return HR("Failed to search DNS tree ".concat(s," at subdomain ").concat(e,": ").concat(r)),null}}catch(r){return HR("Failed to retrieve TXT record at subdomain ".concat(e,": ").concat(r)),null}}async _getTXTRecord(e,t){if(this._DNSTreeCache[e])return this._DNSTreeCache[e];const r=e!==t.domain?"".concat(e,".").concat(t.domain):t.domain,n=await this.dns.resolveTXT(r);if(!n.length)throw new Error("Received empty result array while fetching TXT record");if(!n[0].length)throw new Error("Received empty TXT record");const i=n.join("");return this._DNSTreeCache[e]=i,i}}let WR;const YR=ia("waku:peer-discovery-dns");WR=Symbol.toStringTag;class QR extends rw{constructor(e,t){super(),Br(this,"nextPeer",void 0),Br(this,"_started",void 0),Br(this,"_components",void 0),Br(this,"_options",void 0),this._started=!1,this._components=e,this._options=t;const{enrUrls:r}=t;YR("Use following EIP-1459 ENR Tree URLs: ",r)}async start(){if(YR("Starting peer discovery via dns"),this._started=!0,void 0===this.nextPeer){let{enrUrls:e}=this._options;Array.isArray(e)||(e=[e]);const{wantedNodeCapabilityCount:t}=this._options,r=await GR.dnsOverHttp();this.nextPeer=r.getNextPeer.bind(r,e,t)}for await(const r of this.nextPeer()){var e,t;if(!this._started)return;const n=r.peerInfo;if(!n)continue;const i={tags:{[aw]:{value:null!==(e=this._options.tagValue)&&void 0!==e?e:50,ttl:null!==(t=this._options.tagTTL)&&void 0!==t?t:1e8}}};let o=!1;if(await this._components.peerStore.has(n.id)){(await this._components.peerStore.get(n.id)).tags.has(aw)||(o=!0,await this._components.peerStore.merge(n.id,i))}else o=!0,await this._components.peerStore.save(n.id,i);o&&this.dispatchEvent(new iw("peer",{detail:n}))}}stop(){this._started=!1}get[ow](){return!0}get[WR](){return"@waku/bootstrap"}}function XR(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:cw;return r=>new QR(r,{enrUrls:e,wantedNodeCapabilityCount:t})}class JR{constructor(e){Br(this,"proto",void 0),this.proto=e}static createRequest(e){const{numPeers:t}=e;return new JR({query:{numPeers:t},response:void 0})}encode(){return $a.encode(this.proto)}static decode(e){const t=$a.decode(e);return new JR(t)}get query(){return this.proto.query}get response(){return this.proto.response}}const ZR="/vac/waku/peer-exchange/2.0.0-alpha1",$R=ia("waku:peer-exchange");class eP extends dl{constructor(e){super(ZR,e)}async query(e){const{numPeers:t}=e,r=JR.createRequest({numPeers:BigInt(t)}),n=await this.getPeer(e.peerId),i=await this.getStream(n),o=await rl([r.encode()],Vc,i,Yc,(async e=>await Ec(e)));try{const e=new Ic;o.forEach((t=>{e.append(t)}));const{response:t}=JR.decode(e);return t?Promise.all(t.peerInfos.map((e=>e.enr)).filter(Dl).map((async e=>({ENR:await Bk.fromRLP(e)})))):void $R("PeerExchangeRPC message did not contains a `response` field")}catch(s){return void $R("Failed to decode push reply",s)}}}let tP;const rP=ia("waku:peer-exchange-discovery"),nP=1e4,iP=3,oP=Qs.PEER_EXCHANGE;tP=Symbol.toStringTag;class sP extends rw{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};super(),Br(this,"components",void 0),Br(this,"peerExchange",void 0),Br(this,"options",void 0),Br(this,"isStarted",void 0),Br(this,"queryingPeers",new Set),Br(this,"queryAttempts",new Map),Br(this,"handleDiscoveredPeer",(e=>{const{protocols:t,peerId:r}=e.detail;t.includes(ZR)&&!this.queryingPeers.has(r.toString())&&(this.queryingPeers.add(r.toString()),this.startRecurringQueries(r).catch((e=>rP("Error querying peer ".concat(e)))))})),Br(this,"startRecurringQueries",(async e=>{var t,r;const n=e.toString(),{queryInterval:i=nP,maxRetries:o=iP}=this.options;rP("Querying peer: ".concat(n," (attempt ").concat(null!==(t=this.queryAttempts.get(n))&&void 0!==t?t:1,")")),await this.query(e);const s=null!==(r=this.queryAttempts.get(n))&&void 0!==r?r:1;s>o?this.abortQueriesForPeer(n):setTimeout((()=>{this.queryAttempts.set(n,s+1),this.startRecurringQueries(e).catch((e=>{rP("Error in startRecurringQueries: ".concat(e))}))}),i*s)})),this.components=e,this.peerExchange=new eP(e),this.options=t,this.isStarted=!1}start(){this.isStarted||(rP("Starting peer exchange node discovery, discovering peers"),this.components.events.addEventListener("peer:identify",this.handleDiscoveredPeer))}stop(){this.isStarted&&(rP("Stopping peer exchange node discovery"),this.isStarted=!1,this.queryingPeers.clear(),this.components.events.removeEventListener("peer:identify",this.handleDiscoveredPeer))}get[ow](){return!0}get[tP](){return"@waku/peer-exchange"}async query(e){const t=await this.peerExchange.query({numPeers:10,peerId:e});if(t)for(const i of t){var r,n;const{ENR:e}=i;if(!e){rP("No ENR in peerInfo object, skipping");continue}const{peerId:t,peerInfo:o}=e;if(!t||!o)continue;await this.components.peerStore.has(t)||(await this.components.peerStore.save(t,{tags:{[oP]:{value:null!==(r=this.options.tagValue)&&void 0!==r?r:50,ttl:null!==(n=this.options.tagTTL)&&void 0!==n?n:1e8}}}),rP("Discovered peer: ".concat(t.toString())),this.dispatchEvent(new iw("peer",{detail:{id:t,protocols:[],multiaddrs:o.multiaddrs}})))}else rP("Peer exchange query failed, no peer info returned")}abortQueriesForPeer(e){rP("Aborting queries for peer: ".concat(e)),this.queryingPeers.delete(e),this.queryAttempts.delete(e)}}var aP=function(e,t){if(e.length>=255)throw new TypeError("Alphabet too long");for(var r=new Uint8Array(256),n=0;n<r.length;n++)r[n]=255;for(var i=0;i<e.length;i++){var o=e.charAt(i),s=o.charCodeAt(0);if(255!==r[s])throw new TypeError(o+" is ambiguous");r[s]=i}var a=e.length,c=e.charAt(0),l=Math.log(a)/Math.log(256),u=Math.log(256)/Math.log(a);function h(e){if("string"!==typeof e)throw new TypeError("Expected String");if(0===e.length)return new Uint8Array;var t=0;if(" "!==e[t]){for(var n=0,i=0;e[t]===c;)n++,t++;for(var o=(e.length-t)*l+1>>>0,s=new Uint8Array(o);e[t];){var u=r[e.charCodeAt(t)];if(255===u)return;for(var h=0,d=o-1;(0!==u||h<i)&&-1!==d;d--,h++)u+=a*s[d]>>>0,s[d]=u%256>>>0,u=u/256>>>0;if(0!==u)throw new Error("Non-zero carry");i=h,t++}if(" "!==e[t]){for(var p=o-i;p!==o&&0===s[p];)p++;for(var f=new Uint8Array(n+(o-p)),y=n;p!==o;)f[y++]=s[p++];return f}}}return{encode:function(t){if(t instanceof Uint8Array||(ArrayBuffer.isView(t)?t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength):Array.isArray(t)&&(t=Uint8Array.from(t))),!(t instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(0===t.length)return"";for(var r=0,n=0,i=0,o=t.length;i!==o&&0===t[i];)i++,r++;for(var s=(o-i)*u+1>>>0,l=new Uint8Array(s);i!==o;){for(var h=t[i],d=0,p=s-1;(0!==h||d<n)&&-1!==p;p--,d++)h+=256*l[p]>>>0,l[p]=h%a>>>0,h=h/a>>>0;if(0!==h)throw new Error("Non-zero carry");n=d,i++}for(var f=s-n;f!==s&&0===l[f];)f++;for(var y=c.repeat(r);f<s;++f)y+=e.charAt(l[f]);return y},decodeUnsafe:h,decode:function(e){var r=h(e);if(r)return r;throw new Error("Non-".concat(t," character"))}}};const cP=aP,lP=(new Uint8Array(0),e=>{if(e instanceof Uint8Array&&"Uint8Array"===e.constructor.name)return e;if(e instanceof ArrayBuffer)return new Uint8Array(e);if(ArrayBuffer.isView(e))return new Uint8Array(e.buffer,e.byteOffset,e.byteLength);throw new Error("Unknown type, must be binary type")});class uP{constructor(e,t,r){this.name=e,this.prefix=t,this.baseEncode=r}encode(e){if(e instanceof Uint8Array)return"".concat(this.prefix).concat(this.baseEncode(e));throw Error("Unknown type, must be binary type")}}class hP{constructor(e,t,r){if(this.name=e,this.prefix=t,void 0===t.codePointAt(0))throw new Error("Invalid prefix character");this.prefixCodePoint=t.codePointAt(0),this.baseDecode=r}decode(e){if("string"===typeof e){if(e.codePointAt(0)!==this.prefixCodePoint)throw Error("Unable to decode multibase string ".concat(JSON.stringify(e),", ").concat(this.name," decoder only supports inputs prefixed with ").concat(this.prefix));return this.baseDecode(e.slice(this.prefix.length))}throw Error("Can only multibase decode strings")}or(e){return pP(this,e)}}class dP{constructor(e){this.decoders=e}or(e){return pP(this,e)}decode(e){const t=e[0],r=this.decoders[t];if(r)return r.decode(e);throw RangeError("Unable to decode multibase string ".concat(JSON.stringify(e),", only inputs prefixed with ").concat(Object.keys(this.decoders)," are supported"))}}const pP=(e,t)=>new dP({...e.decoders||{[e.prefix]:e},...t.decoders||{[t.prefix]:t}});class fP{constructor(e,t,r,n){this.name=e,this.prefix=t,this.baseEncode=r,this.baseDecode=n,this.encoder=new uP(e,t,r),this.decoder=new hP(e,t,n)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}}const yP=e=>{let{name:t,prefix:r,encode:n,decode:i}=e;return new fP(t,r,n,i)},gP=e=>{let{prefix:t,name:r,alphabet:n}=e;const{encode:i,decode:o}=cP(n,r);return yP({prefix:t,name:r,encode:i,decode:e=>lP(o(e))})},mP=e=>{let{name:t,prefix:r,bitsPerChar:n,alphabet:i}=e;return yP({prefix:r,name:t,encode:e=>((e,t,r)=>{const n="="===t[t.length-1],i=(1<<r)-1;let o="",s=0,a=0;for(let c=0;c<e.length;++c)for(a=a<<8|e[c],s+=8;s>r;)s-=r,o+=t[i&a>>s];if(s&&(o+=t[i&a<<r-s]),n)for(;o.length*r&7;)o+="=";return o})(e,i,n),decode:e=>((e,t,r,n)=>{const i={};for(let u=0;u<t.length;++u)i[t[u]]=u;let o=e.length;for(;"="===e[o-1];)--o;const s=new Uint8Array(o*r/8|0);let a=0,c=0,l=0;for(let u=0;u<o;++u){const t=i[e[u]];if(void 0===t)throw new SyntaxError("Non-".concat(n," character"));c=c<<r|t,a+=r,a>=8&&(a-=8,s[l++]=255&c>>a)}if(a>=r||255&c<<8-a)throw new SyntaxError("Unexpected end of data");return s})(e,i,n,t)})},bP=gP({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),wP=gP({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"}),vP=gP({prefix:"9",name:"base10",alphabet:"0123456789"}),_P=mP({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),EP=mP({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4}),SP=mP({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1}),AP=Array.from("\ud83d\ude80\ud83e\ude90\u2604\ud83d\udef0\ud83c\udf0c\ud83c\udf11\ud83c\udf12\ud83c\udf13\ud83c\udf14\ud83c\udf15\ud83c\udf16\ud83c\udf17\ud83c\udf18\ud83c\udf0d\ud83c\udf0f\ud83c\udf0e\ud83d\udc09\u2600\ud83d\udcbb\ud83d\udda5\ud83d\udcbe\ud83d\udcbf\ud83d\ude02\u2764\ud83d\ude0d\ud83e\udd23\ud83d\ude0a\ud83d\ude4f\ud83d\udc95\ud83d\ude2d\ud83d\ude18\ud83d\udc4d\ud83d\ude05\ud83d\udc4f\ud83d\ude01\ud83d\udd25\ud83e\udd70\ud83d\udc94\ud83d\udc96\ud83d\udc99\ud83d\ude22\ud83e\udd14\ud83d\ude06\ud83d\ude44\ud83d\udcaa\ud83d\ude09\u263a\ud83d\udc4c\ud83e\udd17\ud83d\udc9c\ud83d\ude14\ud83d\ude0e\ud83d\ude07\ud83c\udf39\ud83e\udd26\ud83c\udf89\ud83d\udc9e\u270c\u2728\ud83e\udd37\ud83d\ude31\ud83d\ude0c\ud83c\udf38\ud83d\ude4c\ud83d\ude0b\ud83d\udc97\ud83d\udc9a\ud83d\ude0f\ud83d\udc9b\ud83d\ude42\ud83d\udc93\ud83e\udd29\ud83d\ude04\ud83d\ude00\ud83d\udda4\ud83d\ude03\ud83d\udcaf\ud83d\ude48\ud83d\udc47\ud83c\udfb6\ud83d\ude12\ud83e\udd2d\u2763\ud83d\ude1c\ud83d\udc8b\ud83d\udc40\ud83d\ude2a\ud83d\ude11\ud83d\udca5\ud83d\ude4b\ud83d\ude1e\ud83d\ude29\ud83d\ude21\ud83e\udd2a\ud83d\udc4a\ud83e\udd73\ud83d\ude25\ud83e\udd24\ud83d\udc49\ud83d\udc83\ud83d\ude33\u270b\ud83d\ude1a\ud83d\ude1d\ud83d\ude34\ud83c\udf1f\ud83d\ude2c\ud83d\ude43\ud83c\udf40\ud83c\udf37\ud83d\ude3b\ud83d\ude13\u2b50\u2705\ud83e\udd7a\ud83c\udf08\ud83d\ude08\ud83e\udd18\ud83d\udca6\u2714\ud83d\ude23\ud83c\udfc3\ud83d\udc90\u2639\ud83c\udf8a\ud83d\udc98\ud83d\ude20\u261d\ud83d\ude15\ud83c\udf3a\ud83c\udf82\ud83c\udf3b\ud83d\ude10\ud83d\udd95\ud83d\udc9d\ud83d\ude4a\ud83d\ude39\ud83d\udde3\ud83d\udcab\ud83d\udc80\ud83d\udc51\ud83c\udfb5\ud83e\udd1e\ud83d\ude1b\ud83d\udd34\ud83d\ude24\ud83c\udf3c\ud83d\ude2b\u26bd\ud83e\udd19\u2615\ud83c\udfc6\ud83e\udd2b\ud83d\udc48\ud83d\ude2e\ud83d\ude46\ud83c\udf7b\ud83c\udf43\ud83d\udc36\ud83d\udc81\ud83d\ude32\ud83c\udf3f\ud83e\udde1\ud83c\udf81\u26a1\ud83c\udf1e\ud83c\udf88\u274c\u270a\ud83d\udc4b\ud83d\ude30\ud83e\udd28\ud83d\ude36\ud83e\udd1d\ud83d\udeb6\ud83d\udcb0\ud83c\udf53\ud83d\udca2\ud83e\udd1f\ud83d\ude41\ud83d\udea8\ud83d\udca8\ud83e\udd2c\u2708\ud83c\udf80\ud83c\udf7a\ud83e\udd13\ud83d\ude19\ud83d\udc9f\ud83c\udf31\ud83d\ude16\ud83d\udc76\ud83e\udd74\u25b6\u27a1\u2753\ud83d\udc8e\ud83d\udcb8\u2b07\ud83d\ude28\ud83c\udf1a\ud83e\udd8b\ud83d\ude37\ud83d\udd7a\u26a0\ud83d\ude45\ud83d\ude1f\ud83d\ude35\ud83d\udc4e\ud83e\udd32\ud83e\udd20\ud83e\udd27\ud83d\udccc\ud83d\udd35\ud83d\udc85\ud83e\uddd0\ud83d\udc3e\ud83c\udf52\ud83d\ude17\ud83e\udd11\ud83c\udf0a\ud83e\udd2f\ud83d\udc37\u260e\ud83d\udca7\ud83d\ude2f\ud83d\udc86\ud83d\udc46\ud83c\udfa4\ud83d\ude47\ud83c\udf51\u2744\ud83c\udf34\ud83d\udca3\ud83d\udc38\ud83d\udc8c\ud83d\udccd\ud83e\udd40\ud83e\udd22\ud83d\udc45\ud83d\udca1\ud83d\udca9\ud83d\udc50\ud83d\udcf8\ud83d\udc7b\ud83e\udd10\ud83e\udd2e\ud83c\udfbc\ud83e\udd75\ud83d\udea9\ud83c\udf4e\ud83c\udf4a\ud83d\udc7c\ud83d\udc8d\ud83d\udce3\ud83e\udd42"),kP=AP.reduce(((e,t,r)=>(e[r]=t,e)),[]),IP=AP.reduce(((e,t,r)=>(e[t.codePointAt(0)]=r,e)),[]);const RP=yP({prefix:"\ud83d\ude80",name:"base256emoji",encode:function(e){return e.reduce(((e,t)=>e+=kP[t]),"")},decode:function(e){const t=[];for(const r of e){const e=IP[r.codePointAt(0)];if(void 0===e)throw new Error("Non-base256emoji character: ".concat(r));t.push(e)}return new Uint8Array(t)}}),PP=mP({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),CP=mP({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),TP=mP({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),xP=mP({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),DP=mP({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),NP=mP({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),LP=mP({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),BP=mP({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),MP=mP({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5}),OP=gP({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),UP=gP({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"}),KP=mP({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),qP=mP({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),FP=mP({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),VP=mP({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6}),zP=mP({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3}),jP=yP({prefix:"\0",name:"identity",encode:e=>{return t=e,(new TextDecoder).decode(t);var t},decode:e=>(e=>(new TextEncoder).encode(e))(e)}),HP=new TextEncoder,GP=new TextDecoder,WP="json",YP=512,QP=e=>HP.encode(JSON.stringify(e)),XP=e=>JSON.parse(GP.decode(e)),JP="raw",ZP=85,$P=e=>lP(e),eC=e=>lP(e);var tC=function e(t,r,n){r=r||[];var i=n=n||0;for(;t>=iC;)r[n++]=255&t|rC,t/=128;for(;t&nC;)r[n++]=255&t|rC,t>>>=7;return r[n]=0|t,e.bytes=n-i+1,r},rC=128,nC=-128,iC=Math.pow(2,31);var oC=function e(t,r){var n,i=0,o=0,s=r=r||0,a=t.length;do{if(s>=a)throw e.bytes=0,new RangeError("Could not decode varint");n=t[s++],i+=o<28?(n&aC)<<o:(n&aC)*Math.pow(2,o),o+=7}while(n>=sC);return e.bytes=s-r,i},sC=128,aC=127;var cC=Math.pow(2,7),lC=Math.pow(2,14),uC=Math.pow(2,21),hC=Math.pow(2,28),dC=Math.pow(2,35),pC=Math.pow(2,42),fC=Math.pow(2,49),yC=Math.pow(2,56),gC=Math.pow(2,63);const mC={encode:tC,decode:oC,encodingLength:function(e){return e<cC?1:e<lC?2:e<uC?3:e<hC?4:e<dC?5:e<pC?6:e<fC?7:e<yC?8:e<gC?9:10}},bC=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return[mC.decode(e,t),mC.decode.bytes]},wC=function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;return mC.encode(e,t,r),t},vC=e=>mC.encodingLength(e),_C=(e,t)=>{const r=t.byteLength,n=vC(e),i=n+vC(r),o=new Uint8Array(i+r);return wC(e,o,0),wC(r,o,n),o.set(t,i),new SC(e,r,t,o)},EC=e=>{const t=lP(e),[r,n]=bC(t),[i,o]=bC(t.subarray(n)),s=t.subarray(n+o);if(s.byteLength!==i)throw new Error("Incorrect length");return new SC(r,i,s,t)};class SC{constructor(e,t,r,n){this.code=e,this.size=t,this.digest=r,this.bytes=n}}const AC=lP,kC={code:0,name:"identity",encode:AC,digest:e=>_C(0,AC(e))},IC=e=>{let{name:t,code:r,encode:n}=e;return new RC(t,r,n)};class RC{constructor(e,t,r){this.name=e,this.code=t,this.encode=r}digest(e){if(e instanceof Uint8Array){const t=this.encode(e);return t instanceof Uint8Array?_C(this.code,t):t.then((e=>_C(this.code,e)))}throw Error("Unknown type, must be binary type")}}const PC=e=>async t=>new Uint8Array(await crypto.subtle.digest(e,t)),CC=IC({name:"sha2-256",code:18,encode:PC("SHA-256")}),TC=IC({name:"sha2-512",code:19,encode:PC("SHA-512")}),xC=(e,t)=>{const{bytes:r,version:n}=e;return 0===n?MC(r,NC(e),t||bP.encoder):OC(r,NC(e),t||PP.encoder)},DC=new WeakMap,NC=e=>{const t=DC.get(e);if(null==t){const t=new Map;return DC.set(e,t),t}return t};class LC{constructor(e,t,r,n){this.code=t,this.version=e,this.multihash=r,this.bytes=n,this["/"]=n}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:{const{code:e,multihash:t}=this;if(e!==UC)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(t.code!==KC)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return LC.createV0(t)}default:throw Error("Can not convert CID version ".concat(this.version," to version 0. This is a bug please report"))}}toV1(){switch(this.version){case 0:{const{code:e,digest:t}=this.multihash,r=_C(e,t);return LC.createV1(this.code,r)}case 1:return this;default:throw Error("Can not convert CID version ".concat(this.version," to version 1. This is a bug please report"))}}equals(e){return LC.equals(this,e)}static equals(e,t){const r=t;return r&&e.code===r.code&&e.version===r.version&&((e,t)=>{if(e===t)return!0;{const r=t;return e.code===r.code&&e.size===r.size&&r.bytes instanceof Uint8Array&&((e,t)=>{if(e===t)return!0;if(e.byteLength!==t.byteLength)return!1;for(let r=0;r<e.byteLength;r++)if(e[r]!==t[r])return!1;return!0})(e.bytes,r.bytes)}})(e.multihash,r.multihash)}toString(e){return xC(this,e)}toJSON(){return{"/":xC(this)}}link(){return this}get[Symbol.toStringTag](){return"CID"}[Symbol.for("nodejs.util.inspect.custom")](){return"CID(".concat(this.toString(),")")}static asCID(e){if(null==e)return null;const t=e;if(t instanceof LC)return t;if(null!=t["/"]&&t["/"]===t.bytes||t.asCID===t){const{version:e,code:r,multihash:n,bytes:i}=t;return new LC(e,r,n,i||qC(e,r,n.bytes))}if(!0===t[FC]){const{version:e,multihash:r,code:n}=t,i=EC(r);return LC.create(e,n,i)}return null}static create(e,t,r){if("number"!==typeof t)throw new Error("String codecs are no longer supported");if(!(r.bytes instanceof Uint8Array))throw new Error("Invalid digest");switch(e){case 0:if(t!==UC)throw new Error("Version 0 CID must use dag-pb (code: ".concat(UC,") block encoding"));return new LC(e,t,r,r.bytes);case 1:{const n=qC(e,t,r.bytes);return new LC(e,t,r,n)}default:throw new Error("Invalid version")}}static createV0(e){return LC.create(0,UC,e)}static createV1(e,t){return LC.create(1,e,t)}static decode(e){const[t,r]=LC.decodeFirst(e);if(r.length)throw new Error("Incorrect length");return t}static decodeFirst(e){const t=LC.inspectBytes(e),r=t.size-t.multihashSize,n=lP(e.subarray(r,r+t.multihashSize));if(n.byteLength!==t.multihashSize)throw new Error("Incorrect length");const i=n.subarray(t.multihashSize-t.digestSize),o=new SC(t.multihashCode,t.digestSize,i,n);return[0===t.version?LC.createV0(o):LC.createV1(t.codec,o),e.subarray(t.size)]}static inspectBytes(e){let t=0;const r=()=>{const[r,n]=bC(e.subarray(t));return t+=n,r};let n=r(),i=UC;if(18===n?(n=0,t=0):i=r(),0!==n&&1!==n)throw new RangeError("Invalid CID version ".concat(n));const o=t,s=r(),a=r(),c=t+a;return{version:n,codec:i,multihashCode:s,digestSize:a,multihashSize:c-o,size:c}}static parse(e,t){const[r,n]=BC(e,t),i=LC.decode(n);if(0===i.version&&"Q"!==e[0])throw Error("Version 0 CID string must not include multibase prefix");return NC(i).set(r,e),i}}const BC=(e,t)=>{switch(e[0]){case"Q":{const r=t||bP;return[bP.prefix,r.decode("".concat(bP.prefix).concat(e))]}case bP.prefix:{const r=t||bP;return[bP.prefix,r.decode(e)]}case PP.prefix:{const r=t||PP;return[PP.prefix,r.decode(e)]}default:if(null==t)throw Error("To parse non base32 or base58btc encoded CID multibase decoder must be provided");return[e[0],t.decode(e)]}},MC=(e,t,r)=>{const{prefix:n}=r;if(n!==bP.prefix)throw Error("Cannot string encode V0 in ".concat(r.name," encoding"));const i=t.get(n);if(null==i){const i=r.encode(e).slice(1);return t.set(n,i),i}return i},OC=(e,t,r)=>{const{prefix:n}=r,i=t.get(n);if(null==i){const i=r.encode(e);return t.set(n,i),i}return i},UC=112,KC=18,qC=(e,t,r)=>{const n=vC(e),i=n+vC(t),o=new Uint8Array(i+r.byteLength);return wC(e,o,0),wC(t,o,n),o.set(r,i),o},FC=Symbol.for("@ipld/js-cid/CID"),VC={...be,...de,...me,...ue,...he,...fe,...ye,...le,...ge,...pe};let zC;const jC=Symbol.for("nodejs.util.inspect.custom"),HC=Object.values(VC).map((e=>e.decoder)).reduce(((e,t)=>e.or(t)),VC.identity.decoder),GC=114,WC=36,YC=37;zC=Symbol.toStringTag;class QC{constructor(e){Br(this,"type",void 0),Br(this,"multihash",void 0),Br(this,"privateKey",void 0),Br(this,"publicKey",void 0),Br(this,"string",void 0),Br(this,Mr,!0),this.type=e.type,this.multihash=e.multihash,this.privateKey=e.privateKey,Object.defineProperty(this,"string",{enumerable:!1,writable:!0})}get[zC](){return"PeerId(".concat(this.toString(),")")}toString(){return null==this.string&&(this.string=bP.encode(this.multihash.bytes).slice(1)),this.string}toCID(){return LC.createV1(GC,this.multihash)}toBytes(){return this.multihash.bytes}toJSON(){return this.toString()}equals(e){var t;if(e instanceof Uint8Array)return Yn(this.multihash.bytes,e);if("string"===typeof e)return $C(e).equals(this);if(null!=(null===e||void 0===e||null===(t=e.multihash)||void 0===t?void 0:t.bytes))return Yn(this.multihash.bytes,e.multihash.bytes);throw new Error("not valid Id")}[jC](){return"PeerId(".concat(this.toString(),")")}}class XC extends QC{constructor(e){super({...e,type:"RSA"}),Br(this,"type","RSA"),Br(this,"publicKey",void 0),this.publicKey=e.publicKey}}class JC extends QC{constructor(e){super({...e,type:"Ed25519"}),Br(this,"type","Ed25519"),Br(this,"publicKey",void 0),this.publicKey=e.multihash.digest}}class ZC extends QC{constructor(e){super({...e,type:"secp256k1"}),Br(this,"type","secp256k1"),Br(this,"publicKey",void 0),this.publicKey=e.multihash.digest}}function $C(e,t){var r;if(t=null!==(r=t)&&void 0!==r?r:HC,"1"===e.charAt(0)||"Q"===e.charAt(0)){const t=EC(bP.decode("z".concat(e)));return e.startsWith("12D")?new JC({multihash:t}):e.startsWith("16U")?new ZC({multihash:t}):new XC({multihash:t})}return eT(HC.decode(e))}function eT(e){try{const t=EC(e);if(t.code===kC.code){if(t.digest.length===WC)return new JC({multihash:t});if(t.digest.length===YC)return new ZC({multihash:t})}if(t.code===CC.code)return new XC({multihash:t})}catch{return function(e){if(null==e||null==e.multihash||null==e.version||1===e.version&&e.code!==GC)throw new Error("Supplied PeerID CID is invalid");const t=e.multihash;if(t.code===CC.code)return new XC({multihash:e.multihash});if(t.code===kC.code){if(t.digest.length===WC)return new JC({multihash:e.multihash});if(t.digest.length===YC)return new ZC({multihash:e.multihash})}throw new Error("Supplied PeerID CID is invalid")}(LC.decode(e))}throw new Error("Supplied PeerID CID is invalid")}function tT(e){let t=function(e){const t=()=>{};return t.enabled=!1,t.color="",t.diff=0,t.log=()=>{},t.namespace=e,t.destroy=()=>!0,t.extend=()=>t,t}("".concat(e,":trace"));return ia.enabled("".concat(e,":trace"))&&null!=ia.names.map((e=>e.toString())).find((e=>e.includes(":trace")))&&(t=ia("".concat(e,":trace"))),Object.assign(ia(e),{error:ia("".concat(e,":error")),trace:t})}ia.formatters.b=e=>null==e?"undefined":bP.baseEncode(e),ia.formatters.t=e=>null==e?"undefined":PP.baseEncode(e),ia.formatters.m=e=>null==e?"undefined":KP.baseEncode(e),ia.formatters.p=e=>null==e?"undefined":e.toString(),ia.formatters.c=e=>null==e?"undefined":e.toString(),ia.formatters.k=e=>null==e?"undefined":e.toString(),ia.formatters.a=e=>null==e?"undefined":e.toString();class rT{constructor(e,t,r){Br(this,"gossip",void 0),Br(this,"msgs",new Map),Br(this,"msgIdToStrFn",void 0),Br(this,"history",[]),Br(this,"notValidatedCount",0),this.gossip=e,this.msgIdToStrFn=r;for(let n=0;n<t;n++)this.history[n]=[]}get size(){return this.msgs.size}put(e,t){let r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];const{msgIdStr:n}=e;return!this.msgs.has(n)&&(this.msgs.set(n,{message:t,validated:r,originatingPeers:new Set,iwantCounts:new Map}),this.history[0].push({...e,topic:t.topic}),r||this.notValidatedCount++,!0)}observeDuplicate(e,t){const r=this.msgs.get(e);r&&!r.validated&&r.originatingPeers.add(t)}get(e){var t;return null===(t=this.msgs.get(this.msgIdToStrFn(e)))||void 0===t?void 0:t.message}getWithIWantCount(e,t){var r;const n=this.msgs.get(e);if(!n)return null;const i=(null!==(r=n.iwantCounts.get(t))&&void 0!==r?r:0)+1;return n.iwantCounts.set(t,i),{msg:n.message,count:i}}getGossipIDs(e){const t=new Map;for(let r=0;r<this.gossip;r++)this.history[r].forEach((r=>{const n=this.msgs.get(r.msgIdStr);if(n&&n.validated&&e.has(r.topic)){let e=t.get(r.topic);e||(e=[],t.set(r.topic,e)),e.push(r.msgId)}}));return t}validate(e){const t=this.msgs.get(e);if(!t)return null;t.validated||this.notValidatedCount--;const{message:r,originatingPeers:n}=t;return t.validated=!0,t.originatingPeers=new Set,{message:r,originatingPeers:n}}shift(){this.history[this.history.length-1].forEach((e=>{const t=this.msgs.get(e.msgIdStr);t&&(this.msgs.delete(e.msgIdStr),t.validated||this.notValidatedCount--)})),this.history.pop(),this.history.unshift([])}remove(e){const t=this.msgs.get(e);return t?(this.msgs.delete(e),t):null}}const nT=__webpack_require__.p+"static/media/rpc.3ba5ca7bdb004060d5e2.cjs",{RPC:iT}=nT,oT="/floodsub/1.0.0",sT="/meshsub/1.0.0",aT="/meshsub/1.1.0",cT=5e3;function lT(e){if(e.length<=1)return e;for(let t=0;t<e.length;t++){const r=Math.floor(Math.random()*Math.floor(e.length)),n=e[t];e[t]=e[r],e[r]=n}return e}function uT(e){return Ro(e,"base64")}const hT=32,dT=64,pT=32;function fT(e,t){const r=new Uint8Array(dT);for(let n=0;n<pT;n++)r[n]=e[n],r[pT+n]=t[n];return r}const yT={get(){const e=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:globalThis).crypto;if(null==e||null==e.subtle)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 e}},gT={alg:"A128GCM",ext:!0,k:"scm9jmO_4BJAgdwWGVulLg",key_ops:["encrypt","decrypt"],kty:"oct"};async function mT(e,t){const r=function(e){var t,r,n,i,o,s;const a=null!==(t=null===e||void 0===e?void 0:e.algorithm)&&void 0!==t?t:"AES-GCM";let c=null!==(r=null===e||void 0===e?void 0:e.keyLength)&&void 0!==r?r:16;const l=null!==(n=null===e||void 0===e?void 0:e.nonceLength)&&void 0!==n?n:12,u=null!==(i=null===e||void 0===e?void 0:e.digest)&&void 0!==i?i:"SHA-256",h=null!==(o=null===e||void 0===e?void 0:e.saltLength)&&void 0!==o?o:16,d=null!==(s=null===e||void 0===e?void 0:e.iterations)&&void 0!==s?s:32767,p=yT.get();return c*=8,{encrypt:async function(e,t){const r=p.getRandomValues(new Uint8Array(h)),n=p.getRandomValues(new Uint8Array(l)),i={name:a,iv:n};let o;if("string"===typeof t&&(t=ps(t)),0===t.length){o=await p.subtle.importKey("jwk",gT,{name:"AES-GCM"},!0,["encrypt"]);try{const e={name:"PBKDF2",salt:r,iterations:d,hash:{name:u}},n=await p.subtle.importKey("raw",t,{name:"PBKDF2"},!1,["deriveKey"]);o=await p.subtle.deriveKey(e,n,{name:a,length:c},!0,["encrypt"])}catch{o=await p.subtle.importKey("jwk",gT,{name:"AES-GCM"},!0,["encrypt"])}}else{const e={name:"PBKDF2",salt:r,iterations:d,hash:{name:u}},n=await p.subtle.importKey("raw",t,{name:"PBKDF2"},!1,["deriveKey"]);o=await p.subtle.deriveKey(e,n,{name:a,length:c},!0,["encrypt"])}const s=await p.subtle.encrypt(i,o,e);return Po([r,i.iv,new Uint8Array(s)])},decrypt:async function(e,t){const r=e.subarray(0,h),n=e.subarray(h,h+l),i=e.subarray(h+l),o={name:a,iv:n};let s;if("string"===typeof t&&(t=ps(t)),0===t.length)try{const e={name:"PBKDF2",salt:r,iterations:d,hash:{name:u}},n=await p.subtle.importKey("raw",t,{name:"PBKDF2"},!1,["deriveKey"]);s=await p.subtle.deriveKey(e,n,{name:a,length:c},!0,["decrypt"])}catch{s=await p.subtle.importKey("jwk",gT,{name:"AES-GCM"},!0,["decrypt"])}else{const e={name:"PBKDF2",salt:r,iterations:d,hash:{name:u}},n=await p.subtle.importKey("raw",t,{name:"PBKDF2"},!1,["deriveKey"]);s=await p.subtle.deriveKey(e,n,{name:a,length:c},!0,["decrypt"])}const f=await p.subtle.decrypt(o,s,i);return new Uint8Array(f)}}}(),n=await r.encrypt(e,t);return KP.encode(n)}ya._configure(),pa._configure(fa),ga._configure(ma);const bT=["uint64","int64","sint64","fixed64","sfixed64"];function wT(e){return function(e){for(const t of bT){if(null==e[t])continue;const r=e[t];e[t]=function(){return BigInt(r.call(this).toString())}}return e}(new pa(e))}function vT(){return function(e){for(const t of bT){if(null==e[t])continue;const r=e[t];e[t]=function(e){return r.call(this,e.toString())}}return e}(ga.create())}function _T(e,t){const r=wT(e instanceof Uint8Array?e:e.subarray());return t.decode(r)}function ET(e,t){const r=vT();return t.encode(e,r,{lengthDelimited:!1}),r.finish()}var ST,AT,kT,IT,RT;function PT(e,t,r,n){return{name:e,type:t,encode:r,decode:n}}function CT(e,t){return PT("message",ST.LENGTH_DELIMITED,e,t)}!function(e){e[e.VARINT=0]="VARINT",e[e.BIT64=1]="BIT64",e[e.LENGTH_DELIMITED=2]="LENGTH_DELIMITED",e[e.START_GROUP=3]="START_GROUP",e[e.END_GROUP=4]="END_GROUP",e[e.BIT32=5]="BIT32"}(ST||(ST={})),function(e){e.RSA="RSA",e.Ed25519="Ed25519",e.Secp256k1="Secp256k1"}(AT||(AT={})),function(e){e[e.RSA=0]="RSA",e[e.Ed25519=1]="Ed25519",e[e.Secp256k1=2]="Secp256k1"}(kT||(kT={})),function(e){e.codec=()=>function(e){function t(t){if(null==e[t.toString()])throw new Error("Invalid enum value");return e[t]}return PT("enum",ST.VARINT,(function(e,r){const n=t(e);r.int32(n)}),(function(e){return t(e.int32())}))}(kT)}(AT||(AT={})),function(e){let t;e.codec=()=>(null==t&&(t=CT((function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};!1!==r.lengthDelimited&&t.fork(),null!=e.Type&&(t.uint32(8),AT.codec().encode(e.Type,t)),null!=e.Data&&(t.uint32(18),t.bytes(e.Data)),!1!==r.lengthDelimited&&t.ldelim()}),((e,t)=>{const r={},n=null==t?e.len:e.pos+t;for(;e.pos<n;){const t=e.uint32();switch(t>>>3){case 1:r.Type=AT.codec().decode(e);break;case 2:r.Data=e.bytes();break;default:e.skipType(7&t)}}return r}))),t),e.encode=t=>ET(t,e.codec()),e.decode=t=>_T(t,e.codec())}(IT||(IT={})),function(e){let t;e.codec=()=>(null==t&&(t=CT((function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};!1!==r.lengthDelimited&&t.fork(),null!=e.Type&&(t.uint32(8),AT.codec().encode(e.Type,t)),null!=e.Data&&(t.uint32(18),t.bytes(e.Data)),!1!==r.lengthDelimited&&t.ldelim()}),((e,t)=>{const r={},n=null==t?e.len:e.pos+t;for(;e.pos<n;){const t=e.uint32();switch(t>>>3){case 1:r.Type=AT.codec().decode(e);break;case 2:r.Data=e.bytes();break;default:e.skipType(7&t)}}return r}))),t),e.encode=t=>ET(t,e.codec()),e.decode=t=>_T(t,e.codec())}(RT||(RT={}));class TT{constructor(e){Br(this,"_key",void 0),this._key=MT(e,hT)}async verify(e,t){return async function(e,t,r){return Bd.verify(t,r,e)}(this._key,t,e)}marshal(){return this._key}get bytes(){return IT.encode({Type:AT.Ed25519,Data:this.marshal()}).subarray()}equals(e){return Yn(this.bytes,e.bytes)}async hash(){const{bytes:e}=await CC.digest(this.bytes);return e}}class xT{constructor(e,t){Br(this,"_key",void 0),Br(this,"_publicKey",void 0),this._key=MT(e,dT),this._publicKey=MT(t,hT)}async sign(e){return async function(e,t){const r=e.subarray(0,pT);return Bd.sign(t,r)}(this._key,e)}get public(){return new TT(this._publicKey)}marshal(){return this._key}get bytes(){return RT.encode({Type:AT.Ed25519,Data:this.marshal()}).subarray()}equals(e){return Yn(this.bytes,e.bytes)}async hash(){const{bytes:e}=await CC.digest(this.bytes);return e}async id(){const e=kC.digest(this.public.bytes);return bP.encode(e.bytes).substring(1)}async export(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"libp2p-key";if("libp2p-key"===t)return mT(this.bytes,e);throw new rp("export format '".concat(t,"' is not supported"),"ERR_INVALID_EXPORT_FORMAT")}}function DT(e){if(e.length>dT){const t=(e=MT(e,dT+hT)).subarray(0,dT),r=e.subarray(dT,e.length);return new xT(t,r)}const t=(e=MT(e,dT)).subarray(0,dT),r=e.subarray(hT);return new xT(t,r)}function NT(e){return e=MT(e,hT),new TT(e)}async function LT(){const{privateKey:e,publicKey:t}=await async function(){const e=Bd.utils.randomPrivateKey(),t=Bd.getPublicKey(e);return{privateKey:fT(e,t),publicKey:t}}();return new xT(e,t)}async function BT(e){const{privateKey:t,publicKey:r}=await async function(e){if(e.length!==pT)throw new TypeError('"seed" must be 32 bytes in length.');if(!(e instanceof Uint8Array))throw new TypeError('"seed" must be a node.js Buffer, or Uint8Array.');const t=e,r=Bd.getPublicKey(t);return{privateKey:fT(t,r),publicKey:r}}(e);return new xT(t,r)}function MT(e,t){var r;if((e=Uint8Array.from(null!==(r=e)&&void 0!==r?r:[])).length!==t)throw new rp("Key must be a Uint8Array of length ".concat(t,", got ").concat(e.length),"ERR_INVALID_KEY_TYPE");return e}function OT(e,t){let r=Uint8Array.from(e.abs().toByteArray());if(r=0===r[0]?r.subarray(1):r,null!=t){if(r.length>t)throw new Error("byte array longer than desired length");r=Po([new Uint8Array(t-r.length),r])}return Ro(r,"base64url")}function UT(e){const t=function(e,t){let r=ps(e,"base64urlpad");if(null!=t){if(r.length>t)throw new Error("byte array longer than desired length");r=Po([new Uint8Array(t-r.length),r])}return r}(e);return new sp.jsbn.BigInteger(Ro(t,"base16"),16)}const KT={"P-256":256,"P-384":384,"P-521":521};Object.keys(KT).join(" / ");function qT(e){if(isNaN(e)||e<=0)throw new rp("random bytes length must be a Number bigger than 0","ERR_INVALID_LENGTH");return oh(e)}function FT(e,t){return t.map((t=>UT(e[t])))}async function VT(e){const t=[await yT.get().subtle.importKey("jwk",e,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["sign"]),await jT(e)],r=await zT({privateKey:t[0],publicKey:t[1]});return{privateKey:r[0],publicKey:r[1]}}async function zT(e){if(null==e.privateKey||null==e.publicKey)throw new rp("Private and public key are required","ERR_INVALID_PARAMETERS");return Promise.all([yT.get().subtle.exportKey("jwk",e.privateKey),yT.get().subtle.exportKey("jwk",e.publicKey)])}async function jT(e){return yT.get().subtle.importKey("jwk",{kty:e.kty,n:e.n,e:e.e},{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["verify"])}function HT(e,t,r,n){const i=t?function(e){return sp.pki.setRsaPublicKey(...FT(e,["n","e"]))}(e):function(e){return sp.pki.setRsaPrivateKey(...FT(e,["n","e","d","p","q","dp","dq","qi"]))}(e);return ps(n(Ro(Uint8Array.from(r),"ascii"),i),"ascii")}function GT(e){if("RSA"!==e.kty)throw new rp("invalid key type","ERR_INVALID_KEY_TYPE");if(null==e.n)throw new rp("invalid key modulus","ERR_INVALID_KEY_MODULUS");return 8*ps(e.n,"base64url").length}const WT=8192;class YT{constructor(e){Br(this,"_key",void 0),this._key=e}async verify(e,t){return async function(e,t,r){const n=await yT.get().subtle.importKey("jwk",e,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["verify"]);return yT.get().subtle.verify({name:"RSASSA-PKCS1-v1_5"},n,t,r)}(this._key,t,e)}marshal(){return function(e){if(null==e.n||null==e.e)throw new rp("JWK was missing components","ERR_INVALID_PARAMETERS");const t=sp.pki.publicKeyToAsn1({n:UT(e.n),e:UT(e.e)});return ps(sp.asn1.toDer(t).getBytes(),"ascii")}(this._key)}get bytes(){return IT.encode({Type:AT.RSA,Data:this.marshal()}).subarray()}encrypt(e){return HT(this._key,!0,e,((e,t)=>t.encrypt(e)))}equals(e){return Yn(this.bytes,e.bytes)}async hash(){const{bytes:e}=await CC.digest(this.bytes);return e}}class QT{constructor(e,t){Br(this,"_key",void 0),Br(this,"_publicKey",void 0),this._key=e,this._publicKey=t}genSecret(){return qT(16)}async sign(e){return async function(e,t){const r=await yT.get().subtle.importKey("jwk",e,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["sign"]),n=await yT.get().subtle.sign({name:"RSASSA-PKCS1-v1_5"},r,Uint8Array.from(t));return new Uint8Array(n,0,n.byteLength)}(this._key,e)}get public(){if(null==this._publicKey)throw new rp("public key not provided","ERR_PUBKEY_NOT_PROVIDED");return new YT(this._publicKey)}decrypt(e){return HT(this._key,!1,e,((e,t)=>t.decrypt(e)))}marshal(){return function(e){if(null==e.n||null==e.e||null==e.d||null==e.p||null==e.q||null==e.dp||null==e.dq||null==e.qi)throw new rp("JWK was missing components","ERR_INVALID_PARAMETERS");const t=sp.pki.privateKeyToAsn1({n:UT(e.n),e:UT(e.e),d:UT(e.d),p:UT(e.p),q:UT(e.q),dP:UT(e.dp),dQ:UT(e.dq),qInv:UT(e.qi)});return ps(sp.asn1.toDer(t).getBytes(),"ascii")}(this._key)}get bytes(){return RT.encode({Type:AT.RSA,Data:this.marshal()}).subarray()}equals(e){return Yn(this.bytes,e.bytes)}async hash(){const{bytes:e}=await CC.digest(this.bytes);return e}async id(){return Ro(await this.public.hash(),"base58btc")}async export(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"pkcs-8";if("pkcs-8"===t){const t=new sp.util.ByteBuffer(this.marshal()),r=sp.asn1.fromDer(t),n=sp.pki.privateKeyFromAsn1(r),i={algorithm:"aes256",count:1e4,saltSize:16,prfAlgorithm:"sha512"};return sp.pki.encryptRsaPrivateKey(n,e,i)}if("libp2p-key"===t)return mT(this.bytes,e);throw new rp("export format '".concat(t,"' is not supported"),"ERR_INVALID_EXPORT_FORMAT")}}async function XT(e){const t=function(e){const t=sp.asn1.fromDer(Ro(e,"ascii")),r=sp.pki.privateKeyFromAsn1(t);return{kty:"RSA",n:OT(r.n),e:OT(r.e),d:OT(r.d),p:OT(r.p),q:OT(r.q),dp:OT(r.dP),dq:OT(r.dQ),qi:OT(r.qInv),alg:"RS256"}}(e);if(GT(t)>WT)throw new rp("key size is too large","ERR_KEY_SIZE_TOO_LARGE");const r=await VT(t);return new QT(r.privateKey,r.publicKey)}function JT(e){const t=function(e){const t=sp.asn1.fromDer(Ro(e,"ascii")),r=sp.pki.publicKeyFromAsn1(t);return{kty:"RSA",n:OT(r.n),e:OT(r.e)}}(e);if(GT(t)>WT)throw new rp("key size is too large","ERR_KEY_SIZE_TOO_LARGE");return new YT(t)}async function ZT(e){if(GT(e)>WT)throw new rp("key size is too large","ERR_KEY_SIZE_TOO_LARGE");const t=await VT(e);return new QT(t.privateKey,t.publicKey)}async function $T(e){if(e>WT)throw new rp("key size is too large","ERR_KEY_SIZE_TOO_LARGE");const t=await async function(e){const t=await yT.get().subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:e,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-256"}},!0,["sign","verify"]),r=await zT(t);return{privateKey:r[0],publicKey:r[1]}}(e);return new QT(t.privateKey,t.publicKey)}function ex(e){try{sy.ProjectivePoint.fromHex(e)}catch(t){throw new rp(String(t),"ERR_INVALID_PUBLIC_KEY")}}class tx{constructor(e){Br(this,"_key",void 0),ex(e),this._key=e}async verify(e,t){return async function(e,t,r){try{const{digest:n}=await CC.digest(r);return sy.verify(t,n,e)}catch(n){throw new rp(String(n),"ERR_INVALID_INPUT")}}(this._key,t,e)}marshal(){return e=this._key,sy.ProjectivePoint.fromHex(e).toRawBytes(!0);var e}get bytes(){return IT.encode({Type:AT.Secp256k1,Data:this.marshal()}).subarray()}equals(e){return Yn(this.bytes,e.bytes)}async hash(){const{bytes:e}=await CC.digest(this.bytes);return e}}class rx{constructor(e,t){Br(this,"_key",void 0),Br(this,"_publicKey",void 0),this._key=e,this._publicKey=null!==t&&void 0!==t?t:function(e){try{return sy.getPublicKey(e,!0)}catch(t){throw new rp(String(t),"ERR_INVALID_PRIVATE_KEY")}}(e),function(e){try{sy.getPublicKey(e,!0)}catch(t){throw new rp(String(t),"ERR_INVALID_PRIVATE_KEY")}}(this._key),ex(this._publicKey)}async sign(e){return async function(e,t){const{digest:r}=await CC.digest(t);try{return sy.sign(r,e).toDERRawBytes()}catch(n){throw new rp(String(n),"ERR_INVALID_INPUT")}}(this._key,e)}get public(){return new tx(this._publicKey)}marshal(){return this._key}get bytes(){return RT.encode({Type:AT.Secp256k1,Data:this.marshal()}).subarray()}equals(e){return Yn(this.bytes,e.bytes)}async hash(){const{bytes:e}=await CC.digest(this.bytes);return e}async id(){return Ro(await this.public.hash(),"base58btc")}async export(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"libp2p-key";if("libp2p-key"===t)return mT(this.bytes,e);throw new rp("export format '".concat(t,"' is not supported"),"ERR_INVALID_EXPORT_FORMAT")}}function nx(e){return new rx(e)}function ix(e){return new tx(e)}async function ox(){const e=sy.utils.randomPrivateKey();return new rx(e)}const sx={rsa:Ae,ed25519:Se,secp256k1:ke};function ax(e){const t=Object.keys(sx).join(" / ");return new rp("invalid or unsupported key type ".concat(e,". Must be ").concat(t),"ERR_UNSUPPORTED_KEY_TYPE")}function cx(e){if("rsa"===(e=e.toLowerCase())||"ed25519"===e||"secp256k1"===e)return sx[e];throw ax(e)}function lx(e){var t,r;const n=IT.decode(e),i=null!==(t=n.Data)&&void 0!==t?t:new Uint8Array;switch(n.Type){case AT.RSA:return sx.rsa.unmarshalRsaPublicKey(i);case AT.Ed25519:return sx.ed25519.unmarshalEd25519PublicKey(i);case AT.Secp256k1:return sx.secp256k1.unmarshalSecp256k1PublicKey(i);default:throw ax(null!==(r=n.Type)&&void 0!==r?r:"RSA")}}function ux(e,t){var r;return cx(t=(null!==(r=t)&&void 0!==r?r:"rsa").toLowerCase()),e.bytes}async function hx(e){var t,r;const n=RT.decode(e),i=null!==(t=n.Data)&&void 0!==t?t:new Uint8Array;switch(n.Type){case AT.RSA:return sx.rsa.unmarshalRsaPrivateKey(i);case AT.Ed25519:return sx.ed25519.unmarshalEd25519PrivateKey(i);case AT.Secp256k1:return sx.secp256k1.unmarshalSecp256k1PrivateKey(i);default:throw ax(null!==(r=n.Type)&&void 0!==r?r:"RSA")}}const dx="StrictSign",px="StrictNoSign";var fx,yx,gx,mx,bx,wx;function vx(e){switch(e){case fx.Ignore:return mx.Ignore;case fx.Reject:return mx.Reject}}!function(e){e.Accept="accept",e.Ignore="ignore",e.Reject="reject"}(fx||(fx={})),function(e){e.StrictSign="StrictSign",e.StrictNoSign="StrictNoSign"}(yx||(yx={})),function(e){e[e.Signing=0]="Signing",e[e.Anonymous=1]="Anonymous"}(gx||(gx={})),function(e){e.Error="error",e.Ignore="ignore",e.Reject="reject",e.Blacklisted="blacklisted"}(mx||(mx={})),function(e){e.InvalidSignature="invalid_signature",e.InvalidSeqno="invalid_seqno",e.InvalidPeerId="invalid_peerid",e.SignaturePresent="signature_present",e.SeqnoPresent="seqno_present",e.FromPresent="from_present",e.TransformFailed="transform_failed"}(bx||(bx={})),function(e){e.duplicate="duplicate",e.invalid="invalid",e.valid="valid"}(wx||(wx={}));const _x="ERR_INVALID_PEER_SCORE_PARAMS",Ex={topics:{},topicScoreCap:10,appSpecificScore:()=>0,appSpecificWeight:10,IPColocationFactorWeight:-5,IPColocationFactorThreshold:10,IPColocationFactorWhitelist:new Set,behaviourPenaltyWeight:-10,behaviourPenaltyThreshold:0,behaviourPenaltyDecay:.2,decayInterval:1e3,decayToZero:.1,retainScore:36e5},Sx={topicWeight:.5,timeInMeshWeight:1,timeInMeshQuantum:1,timeInMeshCap:3600,firstMessageDeliveriesWeight:1,firstMessageDeliveriesDecay:.5,firstMessageDeliveriesCap:2e3,meshMessageDeliveriesWeight:-1,meshMessageDeliveriesDecay:.5,meshMessageDeliveriesCap:100,meshMessageDeliveriesThreshold:20,meshMessageDeliveriesWindow:10,meshMessageDeliveriesActivation:5e3,meshFailurePenaltyWeight:-1,meshFailurePenaltyDecay:.5,invalidMessageDeliveriesWeight:-1,invalidMessageDeliveriesDecay:.3};function Ax(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{...Ex,...e,topics:e.topics?Object.entries(e.topics).reduce(((e,t)=>{let[r,n]=t;return e[r]=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{...Sx,...e}}(n),e}),{}):{}}}function kx(e){if(e.topicWeight<0)throw new rp("invalid topic weight; must be >= 0",_x);if(0===e.timeInMeshQuantum)throw new rp("invalid TimeInMeshQuantum; must be non zero",_x);if(e.timeInMeshWeight<0)throw new rp("invalid TimeInMeshWeight; must be positive (or 0 to disable)",_x);if(0!==e.timeInMeshWeight&&e.timeInMeshQuantum<=0)throw new rp("invalid TimeInMeshQuantum; must be positive",_x);if(0!==e.timeInMeshWeight&&e.timeInMeshCap<=0)throw new rp("invalid TimeInMeshCap; must be positive",_x);if(e.firstMessageDeliveriesWeight<0)throw new rp("invallid FirstMessageDeliveriesWeight; must be positive (or 0 to disable)",_x);if(0!==e.firstMessageDeliveriesWeight&&(e.firstMessageDeliveriesDecay<=0||e.firstMessageDeliveriesDecay>=1))throw new rp("invalid FirstMessageDeliveriesDecay; must be between 0 and 1",_x);if(0!==e.firstMessageDeliveriesWeight&&e.firstMessageDeliveriesCap<=0)throw new rp("invalid FirstMessageDeliveriesCap; must be positive",_x);if(e.meshMessageDeliveriesWeight>0)throw new rp("invalid MeshMessageDeliveriesWeight; must be negative (or 0 to disable)",_x);if(0!==e.meshMessageDeliveriesWeight&&(e.meshMessageDeliveriesDecay<=0||e.meshMessageDeliveriesDecay>=1))throw new rp("invalid MeshMessageDeliveriesDecay; must be between 0 and 1",_x);if(0!==e.meshMessageDeliveriesWeight&&e.meshMessageDeliveriesCap<=0)throw new rp("invalid MeshMessageDeliveriesCap; must be positive",_x);if(0!==e.meshMessageDeliveriesWeight&&e.meshMessageDeliveriesThreshold<=0)throw new rp("invalid MeshMessageDeliveriesThreshold; must be positive",_x);if(e.meshMessageDeliveriesWindow<0)throw new rp("invalid MeshMessageDeliveriesWindow; must be non-negative",_x);if(0!==e.meshMessageDeliveriesWeight&&e.meshMessageDeliveriesActivation<1e3)throw new rp("invalid MeshMessageDeliveriesActivation; must be at least 1s",_x);if(e.meshFailurePenaltyWeight>0)throw new rp("invalid MeshFailurePenaltyWeight; must be negative (or 0 to disable)",_x);if(0!==e.meshFailurePenaltyWeight&&(e.meshFailurePenaltyDecay<=0||e.meshFailurePenaltyDecay>=1))throw new rp("invalid MeshFailurePenaltyDecay; must be between 0 and 1",_x);if(e.invalidMessageDeliveriesWeight>0)throw new rp("invalid InvalidMessageDeliveriesWeight; must be negative (or 0 to disable)",_x);if(e.invalidMessageDeliveriesDecay<=0||e.invalidMessageDeliveriesDecay>=1)throw new rp("invalid InvalidMessageDeliveriesDecay; must be between 0 and 1",_x)}const Ix={gossipThreshold:-10,publishThreshold:-50,graylistThreshold:-80,acceptPXThreshold:10,opportunisticGraftThreshold:20};function Rx(){return{...Ix,...arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}}}function Px(e,t,r,n){let i=0;Object.entries(t.topics).forEach((e=>{let[t,n]=e;const o=r.topics[t];if(void 0===o)return;let s=0;if(n.inMesh){let e=n.meshTime/o.timeInMeshQuantum;e>o.timeInMeshCap&&(e=o.timeInMeshCap),s+=e*o.timeInMeshWeight}let a=n.firstMessageDeliveries;if(a>o.firstMessageDeliveriesCap&&(a=o.firstMessageDeliveriesCap),s+=a*o.firstMessageDeliveriesWeight,n.meshMessageDeliveriesActive&&n.meshMessageDeliveries<o.meshMessageDeliveriesThreshold){const e=o.meshMessageDeliveriesThreshold-n.meshMessageDeliveries;s+=e*e*o.meshMessageDeliveriesWeight}s+=n.meshFailurePenalty*o.meshFailurePenaltyWeight;s+=n.invalidMessageDeliveries*n.invalidMessageDeliveries*o.invalidMessageDeliveriesWeight,i+=s*o.topicWeight})),r.topicScoreCap>0&&i>r.topicScoreCap&&(i=r.topicScoreCap);const o=r.appSpecificScore(e);if(i+=o*r.appSpecificWeight,t.knownIPs.forEach((e=>{if(r.IPColocationFactorWhitelist.has(e))return;const t=n.get(e),o=t?t.size:0;if(o>r.IPColocationFactorThreshold){const e=o-r.IPColocationFactorThreshold;i+=e*e*r.IPColocationFactorWeight}})),t.behaviourPenalty>r.behaviourPenaltyThreshold){const e=t.behaviourPenalty-r.behaviourPenaltyThreshold;i+=e*e*r.behaviourPenaltyWeight}return i}var Cx,Tx=__webpack_require__(8718);!function(e){e[e.unknown=0]="unknown",e[e.valid=1]="valid",e[e.invalid=2]="invalid",e[e.ignored=3]="ignored"}(Cx||(Cx={}));class xx{constructor(){Br(this,"records",void 0),Br(this,"queue",void 0),this.records=new Map,this.queue=new Tx}getRecord(e){return this.records.get(e)}ensureRecord(e){let t=this.records.get(e);if(t)return t;t={status:Cx.unknown,firstSeenTsMs:Date.now(),validated:0,peers:new Set},this.records.set(e,t);const r={msgId:e,expire:Date.now()+12e4};return this.queue.push(r),t}gc(){const e=Date.now();let t=this.queue.peekFront();for(;t&&t.expire<e;)this.records.delete(t.msgId),this.queue.shift(),t=this.queue.peekFront()}clear(){this.records.clear(),this.queue.clear()}}function Dx(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:()=>!0;const n=new Set;if(t<=0)return n;for(const i of e){if(n.size>=t)break;r(i)&&(n.add(i),e.delete(i))}return n}class Nx extends Map{constructor(e){super(),Br(this,"getDefault",void 0),this.getDefault=e}getOrDefault(e){let t=super.get(e);return void 0===t&&(t=this.getDefault(),this.set(e,t)),t}}const Lx=tT("libp2p:gossipsub:score");class Bx{constructor(e,t,r){var n;Br(this,"params",void 0),Br(this,"metrics",void 0),Br(this,"peerStats",new Map),Br(this,"peerIPs",new Nx((()=>new Set))),Br(this,"scoreCache",new Map),Br(this,"deliveryRecords",new xx),Br(this,"_backgroundInterval",void 0),Br(this,"scoreCacheValidityMs",void 0),Br(this,"computeScore",void 0),this.params=e,this.metrics=t,function(e){for(const[r,n]of Object.entries(e.topics))try{kx(n)}catch(t){throw new rp("invalid score parameters for topic ".concat(r,": ").concat(t.message),_x)}if(e.topicScoreCap<0)throw new rp("invalid topic score cap; must be positive (or 0 for no cap)",_x);if(null===e.appSpecificScore||void 0===e.appSpecificScore)throw new rp("missing application specific score function",_x);if(e.IPColocationFactorWeight>0)throw new rp("invalid IPColocationFactorWeight; must be negative (or 0 to disable)",_x);if(0!==e.IPColocationFactorWeight&&e.IPColocationFactorThreshold<1)throw new rp("invalid IPColocationFactorThreshold; must be at least 1",_x);if(e.behaviourPenaltyWeight>0)throw new rp("invalid BehaviourPenaltyWeight; must be negative (or 0 to disable)",_x);if(0!==e.behaviourPenaltyWeight&&(e.behaviourPenaltyDecay<=0||e.behaviourPenaltyDecay>=1))throw new rp("invalid BehaviourPenaltyDecay; must be between 0 and 1",_x);if(e.decayInterval<1e3)throw new rp("invalid DecayInterval; must be at least 1s",_x);if(e.decayToZero<=0||e.decayToZero>=1)throw new rp("invalid DecayToZero; must be between 0 and 1",_x)}(e),this.scoreCacheValidityMs=r.scoreCacheValidityMs,this.computeScore=null!==(n=r.computeScore)&&void 0!==n?n:Px}get size(){return this.peerStats.size}start(){this._backgroundInterval?Lx("Peer score already running"):(this._backgroundInterval=setInterval((()=>this.background()),this.params.decayInterval),Lx("started"))}stop(){this._backgroundInterval?(clearInterval(this._backgroundInterval),delete this._backgroundInterval,this.peerIPs.clear(),this.peerStats.clear(),this.deliveryRecords.clear(),Lx("stopped")):Lx("Peer score already stopped")}background(){this.refreshScores(),this.deliveryRecords.gc()}dumpPeerScoreStats(){return Object.fromEntries(Array.from(this.peerStats.entries()).map((e=>{let[t,r]=e;return[t,r]})))}messageFirstSeenTimestampMs(e){const t=this.deliveryRecords.getRecord(e);return t?t.firstSeenTsMs:null}refreshScores(){const e=Date.now(),t=this.params.decayToZero;this.peerStats.forEach(((r,n)=>{r.connected?(Object.entries(r.topics).forEach((r=>{let[n,i]=r;const o=this.params.topics[n];void 0!==o&&(i.firstMessageDeliveries*=o.firstMessageDeliveriesDecay,i.firstMessageDeliveries<t&&(i.firstMessageDeliveries=0),i.meshMessageDeliveries*=o.meshMessageDeliveriesDecay,i.meshMessageDeliveries<t&&(i.meshMessageDeliveries=0),i.meshFailurePenalty*=o.meshFailurePenaltyDecay,i.meshFailurePenalty<t&&(i.meshFailurePenalty=0),i.invalidMessageDeliveries*=o.invalidMessageDeliveriesDecay,i.invalidMessageDeliveries<t&&(i.invalidMessageDeliveries=0),i.inMesh&&(i.meshTime=e-i.graftTime,i.meshTime>o.meshMessageDeliveriesActivation&&(i.meshMessageDeliveriesActive=!0)))})),r.behaviourPenalty*=this.params.behaviourPenaltyDecay,r.behaviourPenalty<t&&(r.behaviourPenalty=0)):e>r.expire&&(this.removeIPsForPeer(n,r.knownIPs),this.peerStats.delete(n),this.scoreCache.delete(n))}))}score(e){var t,r;null===(t=this.metrics)||void 0===t||t.scoreFnCalls.inc();const n=this.peerStats.get(e);if(!n)return 0;const i=Date.now(),o=this.scoreCache.get(e);if(o&&o.cacheUntil>i)return o.score;null===(r=this.metrics)||void 0===r||r.scoreFnRuns.inc();const s=this.computeScore(e,n,this.params,this.peerIPs),a=i+this.scoreCacheValidityMs;var c;o?(null===(c=this.metrics)||void 0===c||c.scoreCachedDelta.observe(Math.abs(s-o.score)),o.score=s,o.cacheUntil=a):this.scoreCache.set(e,{score:s,cacheUntil:a});return s}addPenalty(e,t,r){const n=this.peerStats.get(e);var i;n&&(n.behaviourPenalty+=t,null===(i=this.metrics)||void 0===i||i.onScorePenalty(r))}addPeer(e){const t={connected:!0,expire:0,topics:{},knownIPs:new Set,behaviourPenalty:0};this.peerStats.set(e,t)}addIP(e,t){const r=this.peerStats.get(e);r&&r.knownIPs.add(t),this.peerIPs.getOrDefault(t).add(e)}removeIP(e,t){const r=this.peerStats.get(e);r&&r.knownIPs.delete(t);const n=this.peerIPs.get(t);n&&(n.delete(e),0===n.size&&this.peerIPs.delete(t))}removePeer(e){const t=this.peerStats.get(e);if(t){if(this.score(e)>0)return this.removeIPsForPeer(e,t.knownIPs),void this.peerStats.delete(e);Object.entries(t.topics).forEach((e=>{let[t,r]=e;r.firstMessageDeliveries=0;const n=this.params.topics[t].meshMessageDeliveriesThreshold;if(r.inMesh&&r.meshMessageDeliveriesActive&&r.meshMessageDeliveries<n){const e=n-r.meshMessageDeliveries;r.meshFailurePenalty+=e*e}r.inMesh=!1,r.meshMessageDeliveriesActive=!1})),t.connected=!1,t.expire=Date.now()+this.params.retainScore}}graft(e,t){const r=this.peerStats.get(e);if(r){const e=this.getPtopicStats(r,t);e&&(e.inMesh=!0,e.graftTime=Date.now(),e.meshTime=0,e.meshMessageDeliveriesActive=!1)}}prune(e,t){const r=this.peerStats.get(e);if(r){const e=this.getPtopicStats(r,t);if(e){const r=this.params.topics[t].meshMessageDeliveriesThreshold;if(e.meshMessageDeliveriesActive&&e.meshMessageDeliveries<r){const t=r-e.meshMessageDeliveries;e.meshFailurePenalty+=t*t}e.meshMessageDeliveriesActive=!1,e.inMesh=!1}}}validateMessage(e){this.deliveryRecords.ensureRecord(e)}deliverMessage(e,t,r){this.markFirstMessageDelivery(e,r);const n=this.deliveryRecords.ensureRecord(t),i=Date.now();n.status===Cx.unknown?(n.status=Cx.valid,n.validated=i,n.peers.forEach((t=>{t!==e.toString()&&this.markDuplicateMessageDelivery(t,r)}))):Lx("unexpected delivery: message from %s was first seen %s ago and has delivery status %s",e,i-n.firstSeenTsMs,Cx[n.status])}rejectInvalidMessage(e,t){this.markInvalidMessageDelivery(e,t)}rejectMessage(e,t,r,n){switch(n){case mx.Error:return void this.markInvalidMessageDelivery(e,r);case mx.Blacklisted:return}const i=this.deliveryRecords.ensureRecord(t);if(i.status===Cx.unknown){if(n===mx.Ignore)return i.status=Cx.ignored,void i.peers.clear();i.status=Cx.invalid,this.markInvalidMessageDelivery(e,r),i.peers.forEach((e=>{this.markInvalidMessageDelivery(e,r)})),i.peers.clear()}else Lx("unexpected rejection: message from %s was first seen %s ago and has delivery status %d",e,Date.now()-i.firstSeenTsMs,Cx[i.status])}duplicateMessage(e,t,r){const n=this.deliveryRecords.ensureRecord(t);if(!n.peers.has(e))switch(n.status){case Cx.unknown:n.peers.add(e);break;case Cx.valid:n.peers.add(e),this.markDuplicateMessageDelivery(e,r,n.validated);break;case Cx.invalid:this.markInvalidMessageDelivery(e,r);case Cx.ignored:}}markInvalidMessageDelivery(e,t){const r=this.peerStats.get(e);if(r){const e=this.getPtopicStats(r,t);e&&(e.invalidMessageDeliveries+=1)}}markFirstMessageDelivery(e,t){const r=this.peerStats.get(e);if(r){const e=this.getPtopicStats(r,t);if(e){let r=this.params.topics[t].firstMessageDeliveriesCap;e.firstMessageDeliveries=Math.min(r,e.firstMessageDeliveries+1),e.inMesh&&(r=this.params.topics[t].meshMessageDeliveriesCap,e.meshMessageDeliveries=Math.min(r,e.meshMessageDeliveries+1))}}}markDuplicateMessageDelivery(e,t,r){const n=this.peerStats.get(e);if(n){const e=void 0!==r?Date.now():0,o=this.getPtopicStats(n,t);if(o&&o.inMesh){const n=this.params.topics[t];if(void 0!==r){var i;const o=e-r,s=o>n.meshMessageDeliveriesWindow;if(null===(i=this.metrics)||void 0===i||i.onDuplicateMsgDelivery(t,o,s),s)return}const s=n.meshMessageDeliveriesCap;o.meshMessageDeliveries=Math.min(s,o.meshMessageDeliveries+1)}}}removeIPsForPeer(e,t){for(const r of t){const t=this.peerIPs.get(r);t&&(t.delete(e),0===t.size&&this.peerIPs.delete(r))}}getPtopicStats(e,t){let r=e.topics[t];return void 0!==r?r:void 0!==this.params.topics[t]?(r={inMesh:!1,graftTime:0,meshTime:0,firstMessageDeliveries:0,meshMessageDeliveries:0,meshMessageDeliveriesActive:!1,meshFailurePenalty:0,invalidMessageDeliveries:0},e.topics[t]=r,r):null}}class Mx{constructor(e,t,r){Br(this,"gossipsubIWantFollowupMs",void 0),Br(this,"msgIdToStrFn",void 0),Br(this,"metrics",void 0),Br(this,"promises",new Map),Br(this,"requestMsByMsg",new Map),Br(this,"requestMsByMsgExpire",void 0),this.gossipsubIWantFollowupMs=e,this.msgIdToStrFn=t,this.metrics=r,this.requestMsByMsgExpire=10*e}get size(){return this.promises.size}get requestMsByMsgSize(){return this.requestMsByMsg.size}addPromise(e,t){const r=t[Math.floor(Math.random()*t.length)],n=this.msgIdToStrFn(r);let i=this.promises.get(n);i||(i=new Map,this.promises.set(n,i));const o=Date.now();i.has(e)||(i.set(e,o+this.gossipsubIWantFollowupMs),this.metrics&&(this.metrics.iwantPromiseStarted.inc(1),this.requestMsByMsg.has(n)||this.requestMsByMsg.set(n,o)))}getBrokenPromises(){var e;const t=Date.now(),r=new Map;let n=0;return this.promises.forEach(((e,i)=>{e.forEach(((i,o)=>{var s;i<t&&(r.set(o,(null!==(s=r.get(o))&&void 0!==s?s:0)+1),e.delete(o),n++)})),e.size||this.promises.delete(i)})),null===(e=this.metrics)||void 0===e||e.iwantPromiseBroken.inc(n),r}deliverMessage(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this.trackMessage(e);const r=this.promises.get(e);r&&(this.promises.delete(e),this.metrics&&(this.metrics.iwantPromiseResolved.inc(1),t&&this.metrics.iwantPromiseResolvedFromDuplicate.inc(1),this.metrics.iwantPromiseResolvedPeers.inc(r.size)))}rejectMessage(e,t){this.trackMessage(e),t!==mx.Error&&this.promises.delete(e)}clear(){this.promises.clear()}prune(){var e;const t=Date.now()-this.requestMsByMsgExpire;let r=0;for(const[n,i]of this.requestMsByMsg.entries()){if(!(i<t))break;this.requestMsByMsg.delete(n),r++}null===(e=this.metrics)||void 0===e||e.iwantMessagePruned.inc(r)}trackMessage(e){if(this.metrics){const t=this.requestMsByMsg.get(e);void 0!==t&&(this.metrics.iwantPromiseDeliveryTime.observe((Date.now()-t)/1e3),this.requestMsByMsg.delete(e))}}}class Ox{constructor(e){Br(this,"entries",new Map),Br(this,"validityMs",void 0),this.validityMs=e.validityMs}get size(){return this.entries.size}put(e,t){return!!this.entries.has(e)||(this.entries.set(e,{value:t,validUntilMs:Date.now()+this.validityMs}),!1)}prune(){const e=Date.now();for(const[t,r]of this.entries.entries()){if(!(r.validUntilMs<e))break;this.entries.delete(t)}}has(e){return this.entries.has(e)}get(e){const t=this.entries.get(e);return t&&t.validUntilMs>=Date.now()?t.value:void 0}clear(){this.entries.clear()}}var Ux,Kx,qx,Fx,Vx,zx;!function(e){e.forward="forward",e.publish="publish"}(Ux||(Ux={})),function(e){e.Fanout="fanout",e.Random="random",e.Subscribed="subscribed",e.Outbound="outbound",e.NotEnough="not_enough",e.Opportunistic="opportunistic"}(Kx||(Kx={})),function(e){e.Dc="disconnected",e.BadScore="bad_score",e.Prune="prune",e.Excess="excess"}(qx||(qx={})),function(e){e.GraftBackoff="graft_backoff",e.BrokenPromise="broken_promise",e.MessageDeficit="message_deficit",e.IPColocation="IP_colocation"}(Fx||(Fx={})),function(e){e.LowScore="low_score",e.MaxIhave="max_ihave",e.MaxIasked="max_iasked"}(Vx||(Vx={})),function(e){e.graylist="graylist",e.publish="publish",e.gossip="gossip",e.mesh="mesh"}(zx||(zx={}));__webpack_require__(8605);var jx=__webpack_require__(6019);const Hx=ps("libp2p-pubsub:");const Gx={get(){const e=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:globalThis).crypto;if(null==e||null==e.subtle)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 e}};var Wx=function(e,t){if(e.length>=255)throw new TypeError("Alphabet too long");for(var r=new Uint8Array(256),n=0;n<r.length;n++)r[n]=255;for(var i=0;i<e.length;i++){var o=e.charAt(i),s=o.charCodeAt(0);if(255!==r[s])throw new TypeError(o+" is ambiguous");r[s]=i}var a=e.length,c=e.charAt(0),l=Math.log(a)/Math.log(256),u=Math.log(256)/Math.log(a);function h(e){if("string"!==typeof e)throw new TypeError("Expected String");if(0===e.length)return new Uint8Array;var t=0;if(" "!==e[t]){for(var n=0,i=0;e[t]===c;)n++,t++;for(var o=(e.length-t)*l+1>>>0,s=new Uint8Array(o);e[t];){var u=r[e.charCodeAt(t)];if(255===u)return;for(var h=0,d=o-1;(0!==u||h<i)&&-1!==d;d--,h++)u+=a*s[d]>>>0,s[d]=u%256>>>0,u=u/256>>>0;if(0!==u)throw new Error("Non-zero carry");i=h,t++}if(" "!==e[t]){for(var p=o-i;p!==o&&0===s[p];)p++;for(var f=new Uint8Array(n+(o-p)),y=n;p!==o;)f[y++]=s[p++];return f}}}return{encode:function(t){if(t instanceof Uint8Array||(ArrayBuffer.isView(t)?t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength):Array.isArray(t)&&(t=Uint8Array.from(t))),!(t instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(0===t.length)return"";for(var r=0,n=0,i=0,o=t.length;i!==o&&0===t[i];)i++,r++;for(var s=(o-i)*u+1>>>0,l=new Uint8Array(s);i!==o;){for(var h=t[i],d=0,p=s-1;(0!==h||d<n)&&-1!==p;p--,d++)h+=256*l[p]>>>0,l[p]=h%a>>>0,h=h/a>>>0;if(0!==h)throw new Error("Non-zero carry");n=d,i++}for(var f=s-n;f!==s&&0===l[f];)f++;for(var y=c.repeat(r);f<s;++f)y+=e.charAt(l[f]);return y},decodeUnsafe:h,decode:function(e){var r=h(e);if(r)return r;throw new Error("Non-".concat(t," character"))}}};const Yx=Wx,Qx=(new Uint8Array(0),e=>{if(e instanceof Uint8Array&&"Uint8Array"===e.constructor.name)return e;if(e instanceof ArrayBuffer)return new Uint8Array(e);if(ArrayBuffer.isView(e))return new Uint8Array(e.buffer,e.byteOffset,e.byteLength);throw new Error("Unknown type, must be binary type")});class Xx{constructor(e,t,r){this.name=e,this.prefix=t,this.baseEncode=r}encode(e){if(e instanceof Uint8Array)return"".concat(this.prefix).concat(this.baseEncode(e));throw Error("Unknown type, must be binary type")}}class Jx{constructor(e,t,r){if(this.name=e,this.prefix=t,void 0===t.codePointAt(0))throw new Error("Invalid prefix character");this.prefixCodePoint=t.codePointAt(0),this.baseDecode=r}decode(e){if("string"===typeof e){if(e.codePointAt(0)!==this.prefixCodePoint)throw Error("Unable to decode multibase string ".concat(JSON.stringify(e),", ").concat(this.name," decoder only supports inputs prefixed with ").concat(this.prefix));return this.baseDecode(e.slice(this.prefix.length))}throw Error("Can only multibase decode strings")}or(e){return $x(this,e)}}class Zx{constructor(e){this.decoders=e}or(e){return $x(this,e)}decode(e){const t=e[0],r=this.decoders[t];if(r)return r.decode(e);throw RangeError("Unable to decode multibase string ".concat(JSON.stringify(e),", only inputs prefixed with ").concat(Object.keys(this.decoders)," are supported"))}}const $x=(e,t)=>new Zx({...e.decoders||{[e.prefix]:e},...t.decoders||{[t.prefix]:t}});class eD{constructor(e,t,r,n){this.name=e,this.prefix=t,this.baseEncode=r,this.baseDecode=n,this.encoder=new Xx(e,t,r),this.decoder=new Jx(e,t,n)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}}const tD=e=>{let{name:t,prefix:r,encode:n,decode:i}=e;return new eD(t,r,n,i)},rD=e=>{let{prefix:t,name:r,alphabet:n}=e;const{encode:i,decode:o}=Yx(n,r);return tD({prefix:t,name:r,encode:i,decode:e=>Qx(o(e))})},nD=e=>{let{name:t,prefix:r,bitsPerChar:n,alphabet:i}=e;return tD({prefix:r,name:t,encode:e=>((e,t,r)=>{const n="="===t[t.length-1],i=(1<<r)-1;let o="",s=0,a=0;for(let c=0;c<e.length;++c)for(a=a<<8|e[c],s+=8;s>r;)s-=r,o+=t[i&a>>s];if(s&&(o+=t[i&a<<r-s]),n)for(;o.length*r&7;)o+="=";return o})(e,i,n),decode:e=>((e,t,r,n)=>{const i={};for(let u=0;u<t.length;++u)i[t[u]]=u;let o=e.length;for(;"="===e[o-1];)--o;const s=new Uint8Array(o*r/8|0);let a=0,c=0,l=0;for(let u=0;u<o;++u){const t=i[e[u]];if(void 0===t)throw new SyntaxError("Non-".concat(n," character"));c=c<<r|t,a+=r,a>=8&&(a-=8,s[l++]=255&c>>a)}if(a>=r||255&c<<8-a)throw new SyntaxError("Unexpected end of data");return s})(e,i,n,t)})},iD=rD({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),oD=rD({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var sD=function e(t,r,n){r=r||[];var i=n=n||0;for(;t>=lD;)r[n++]=255&t|aD,t/=128;for(;t&cD;)r[n++]=255&t|aD,t>>>=7;return r[n]=0|t,e.bytes=n-i+1,r},aD=128,cD=-128,lD=Math.pow(2,31);var uD=function e(t,r){var n,i=0,o=0,s=r=r||0,a=t.length;do{if(s>=a)throw e.bytes=0,new RangeError("Could not decode varint");n=t[s++],i+=o<28?(n&dD)<<o:(n&dD)*Math.pow(2,o),o+=7}while(n>=hD);return e.bytes=s-r,i},hD=128,dD=127;var pD=Math.pow(2,7),fD=Math.pow(2,14),yD=Math.pow(2,21),gD=Math.pow(2,28),mD=Math.pow(2,35),bD=Math.pow(2,42),wD=Math.pow(2,49),vD=Math.pow(2,56),_D=Math.pow(2,63);const ED={encode:sD,decode:uD,encodingLength:function(e){return e<pD?1:e<fD?2:e<yD?3:e<gD?4:e<mD?5:e<bD?6:e<wD?7:e<vD?8:e<_D?9:10}},SD=function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;return ED.encode(e,t,r),t},AD=e=>ED.encodingLength(e),kD=(e,t)=>{const r=t.byteLength,n=AD(e),i=n+AD(r),o=new Uint8Array(i+r);return SD(e,o,0),SD(r,o,n),o.set(t,i),new ID(e,r,t,o)};class ID{constructor(e,t,r,n){this.code=e,this.size=t,this.digest=r,this.bytes=n}}const RD=Qx,PD={code:0,name:"identity",encode:RD,digest:e=>kD(0,RD(e))},CD=e=>{let{name:t,code:r,encode:n}=e;return new TD(t,r,n)};class TD{constructor(e,t,r){this.name=e,this.code=t,this.encode=r}digest(e){if(e instanceof Uint8Array){const t=this.encode(e);return t instanceof Uint8Array?kD(this.code,t):t.then((e=>kD(this.code,e)))}throw Error("Unknown type, must be binary type")}}const xD=e=>async t=>new Uint8Array(await crypto.subtle.digest(e,t)),DD=CD({name:"sha2-256",code:18,encode:xD("SHA-256")}),ND=CD({name:"sha2-512",code:19,encode:xD("SHA-512")}),LD=32,BD=64,MD=32;function OD(e,t){const r=new Uint8Array(BD);for(let n=0;n<MD;n++)r[n]=e[n],r[MD+n]=t[n];return r}const UD=nD({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),KD=nD({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),qD=nD({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),FD=nD({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6}),VD={alg:"A128GCM",ext:!0,k:"scm9jmO_4BJAgdwWGVulLg",key_ops:["encrypt","decrypt"],kty:"oct"};async function zD(e,t){const r=function(e){var t,r,n,i,o,s;const a=null!==(t=null===e||void 0===e?void 0:e.algorithm)&&void 0!==t?t:"AES-GCM";let c=null!==(r=null===e||void 0===e?void 0:e.keyLength)&&void 0!==r?r:16;const l=null!==(n=null===e||void 0===e?void 0:e.nonceLength)&&void 0!==n?n:12,u=null!==(i=null===e||void 0===e?void 0:e.digest)&&void 0!==i?i:"SHA-256",h=null!==(o=null===e||void 0===e?void 0:e.saltLength)&&void 0!==o?o:16,d=null!==(s=null===e||void 0===e?void 0:e.iterations)&&void 0!==s?s:32767,p=Gx.get();return c*=8,{encrypt:async function(e,t){const r=p.getRandomValues(new Uint8Array(h)),n=p.getRandomValues(new Uint8Array(l)),i={name:a,iv:n};let o;if("string"===typeof t&&(t=ps(t)),0===t.length){o=await p.subtle.importKey("jwk",VD,{name:"AES-GCM"},!0,["encrypt"]);try{const e={name:"PBKDF2",salt:r,iterations:d,hash:{name:u}},n=await p.subtle.importKey("raw",t,{name:"PBKDF2"},!1,["deriveKey"]);o=await p.subtle.deriveKey(e,n,{name:a,length:c},!0,["encrypt"])}catch{o=await p.subtle.importKey("jwk",VD,{name:"AES-GCM"},!0,["encrypt"])}}else{const e={name:"PBKDF2",salt:r,iterations:d,hash:{name:u}},n=await p.subtle.importKey("raw",t,{name:"PBKDF2"},!1,["deriveKey"]);o=await p.subtle.deriveKey(e,n,{name:a,length:c},!0,["encrypt"])}const s=await p.subtle.encrypt(i,o,e);return Po([r,i.iv,new Uint8Array(s)])},decrypt:async function(e,t){const r=e.subarray(0,h),n=e.subarray(h,h+l),i=e.subarray(h+l),o={name:a,iv:n};let s;if("string"===typeof t&&(t=ps(t)),0===t.length)try{const e={name:"PBKDF2",salt:r,iterations:d,hash:{name:u}},n=await p.subtle.importKey("raw",t,{name:"PBKDF2"},!1,["deriveKey"]);s=await p.subtle.deriveKey(e,n,{name:a,length:c},!0,["decrypt"])}catch{s=await p.subtle.importKey("jwk",VD,{name:"AES-GCM"},!0,["decrypt"])}else{const e={name:"PBKDF2",salt:r,iterations:d,hash:{name:u}},n=await p.subtle.importKey("raw",t,{name:"PBKDF2"},!1,["deriveKey"]);s=await p.subtle.deriveKey(e,n,{name:a,length:c},!0,["decrypt"])}const f=await p.subtle.decrypt(o,s,i);return new Uint8Array(f)}}}(),n=await r.encrypt(e,t);return UD.encode(n)}ya._configure(),pa._configure(fa),ga._configure(ma);const jD=["uint64","int64","sint64","fixed64","sfixed64"];function HD(e){return function(e){for(const t of jD){if(null==e[t])continue;const r=e[t];e[t]=function(){return BigInt(r.call(this).toString())}}return e}(new pa(e))}function GD(){return function(e){for(const t of jD){if(null==e[t])continue;const r=e[t];e[t]=function(e){return r.call(this,e.toString())}}return e}(ga.create())}function WD(e,t){const r=HD(e instanceof Uint8Array?e:e.subarray());return t.decode(r)}function YD(e,t){const r=GD();return t.encode(e,r,{lengthDelimited:!1}),r.finish()}var QD,XD,JD,ZD,$D;function eN(e,t,r,n){return{name:e,type:t,encode:r,decode:n}}function tN(e,t){return eN("message",QD.LENGTH_DELIMITED,e,t)}!function(e){e[e.VARINT=0]="VARINT",e[e.BIT64=1]="BIT64",e[e.LENGTH_DELIMITED=2]="LENGTH_DELIMITED",e[e.START_GROUP=3]="START_GROUP",e[e.END_GROUP=4]="END_GROUP",e[e.BIT32=5]="BIT32"}(QD||(QD={})),function(e){e.RSA="RSA",e.Ed25519="Ed25519",e.Secp256k1="Secp256k1"}(XD||(XD={})),function(e){e[e.RSA=0]="RSA",e[e.Ed25519=1]="Ed25519",e[e.Secp256k1=2]="Secp256k1"}(JD||(JD={})),function(e){e.codec=()=>function(e){function t(t){if(null==e[t.toString()])throw new Error("Invalid enum value");return e[t]}return eN("enum",QD.VARINT,(function(e,r){const n=t(e);r.int32(n)}),(function(e){return t(e.int32())}))}(JD)}(XD||(XD={})),function(e){let t;e.codec=()=>(null==t&&(t=tN((function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};!1!==r.lengthDelimited&&t.fork(),null!=e.Type&&(t.uint32(8),XD.codec().encode(e.Type,t)),null!=e.Data&&(t.uint32(18),t.bytes(e.Data)),!1!==r.lengthDelimited&&t.ldelim()}),((e,t)=>{const r={},n=null==t?e.len:e.pos+t;for(;e.pos<n;){const t=e.uint32();switch(t>>>3){case 1:r.Type=XD.codec().decode(e);break;case 2:r.Data=e.bytes();break;default:e.skipType(7&t)}}return r}))),t),e.encode=t=>YD(t,e.codec()),e.decode=t=>WD(t,e.codec())}(ZD||(ZD={})),function(e){let t;e.codec=()=>(null==t&&(t=tN((function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};!1!==r.lengthDelimited&&t.fork(),null!=e.Type&&(t.uint32(8),XD.codec().encode(e.Type,t)),null!=e.Data&&(t.uint32(18),t.bytes(e.Data)),!1!==r.lengthDelimited&&t.ldelim()}),((e,t)=>{const r={},n=null==t?e.len:e.pos+t;for(;e.pos<n;){const t=e.uint32();switch(t>>>3){case 1:r.Type=XD.codec().decode(e);break;case 2:r.Data=e.bytes();break;default:e.skipType(7&t)}}return r}))),t),e.encode=t=>YD(t,e.codec()),e.decode=t=>WD(t,e.codec())}($D||($D={}));class rN{constructor(e){Br(this,"_key",void 0),this._key=cN(e,LD)}async verify(e,t){return async function(e,t,r){return Bd.verify(t,r,e)}(this._key,t,e)}marshal(){return this._key}get bytes(){return ZD.encode({Type:XD.Ed25519,Data:this.marshal()}).subarray()}equals(e){return Yn(this.bytes,e.bytes)}async hash(){const{bytes:e}=await DD.digest(this.bytes);return e}}class nN{constructor(e,t){Br(this,"_key",void 0),Br(this,"_publicKey",void 0),this._key=cN(e,BD),this._publicKey=cN(t,LD)}async sign(e){return async function(e,t){const r=e.subarray(0,MD);return Bd.sign(t,r)}(this._key,e)}get public(){return new rN(this._publicKey)}marshal(){return this._key}get bytes(){return $D.encode({Type:XD.Ed25519,Data:this.marshal()}).subarray()}equals(e){return Yn(this.bytes,e.bytes)}async hash(){const{bytes:e}=await DD.digest(this.bytes);return e}async id(){const e=PD.digest(this.public.bytes);return iD.encode(e.bytes).substring(1)}async export(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"libp2p-key";if("libp2p-key"===t)return zD(this.bytes,e);throw new rp("export format '".concat(t,"' is not supported"),"ERR_INVALID_EXPORT_FORMAT")}}function iN(e){if(e.length>BD){const t=(e=cN(e,BD+LD)).subarray(0,BD),r=e.subarray(BD,e.length);return new nN(t,r)}const t=(e=cN(e,BD)).subarray(0,BD),r=e.subarray(LD);return new nN(t,r)}function oN(e){return e=cN(e,LD),new rN(e)}async function sN(){const{privateKey:e,publicKey:t}=await async function(){const e=Bd.utils.randomPrivateKey(),t=Bd.getPublicKey(e);return{privateKey:OD(e,t),publicKey:t}}();return new nN(e,t)}async function aN(e){const{privateKey:t,publicKey:r}=await async function(e){if(e.length!==MD)throw new TypeError('"seed" must be 32 bytes in length.');if(!(e instanceof Uint8Array))throw new TypeError('"seed" must be a node.js Buffer, or Uint8Array.');const t=e,r=Bd.getPublicKey(t);return{privateKey:OD(t,r),publicKey:r}}(e);return new nN(t,r)}function cN(e,t){var r;if((e=Uint8Array.from(null!==(r=e)&&void 0!==r?r:[])).length!==t)throw new rp("Key must be a Uint8Array of length ".concat(t,", got ").concat(e.length),"ERR_INVALID_KEY_TYPE");return e}function lN(e,t){let r=Uint8Array.from(e.abs().toByteArray());if(r=0===r[0]?r.subarray(1):r,null!=t){if(r.length>t)throw new Error("byte array longer than desired length");r=Po([new Uint8Array(t-r.length),r])}return Ro(r,"base64url")}function uN(e){const t=function(e,t){let r=ps(e,"base64urlpad");if(null!=t){if(r.length>t)throw new Error("byte array longer than desired length");r=Po([new Uint8Array(t-r.length),r])}return r}(e);return new sp.jsbn.BigInteger(Ro(t,"base16"),16)}const hN={"P-256":256,"P-384":384,"P-521":521};Object.keys(hN).join(" / ");function dN(e,t){return t.map((t=>uN(e[t])))}async function pN(e){const t=[await Gx.get().subtle.importKey("jwk",e,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["sign"]),await yN(e)],r=await fN({privateKey:t[0],publicKey:t[1]});return{privateKey:r[0],publicKey:r[1]}}async function fN(e){if(null==e.privateKey||null==e.publicKey)throw new rp("Private and public key are required","ERR_INVALID_PARAMETERS");return Promise.all([Gx.get().subtle.exportKey("jwk",e.privateKey),Gx.get().subtle.exportKey("jwk",e.publicKey)])}async function yN(e){return Gx.get().subtle.importKey("jwk",{kty:e.kty,n:e.n,e:e.e},{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["verify"])}function gN(e,t,r,n){const i=t?function(e){return sp.pki.setRsaPublicKey(...dN(e,["n","e"]))}(e):function(e){return sp.pki.setRsaPrivateKey(...dN(e,["n","e","d","p","q","dp","dq","qi"]))}(e);return ps(n(Ro(Uint8Array.from(r),"ascii"),i),"ascii")}function mN(e){if("RSA"!==e.kty)throw new rp("invalid key type","ERR_INVALID_KEY_TYPE");if(null==e.n)throw new rp("invalid key modulus","ERR_INVALID_KEY_MODULUS");return 8*ps(e.n,"base64url").length}const bN=8192;class wN{constructor(e){Br(this,"_key",void 0),this._key=e}async verify(e,t){return async function(e,t,r){const n=await Gx.get().subtle.importKey("jwk",e,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["verify"]);return Gx.get().subtle.verify({name:"RSASSA-PKCS1-v1_5"},n,t,r)}(this._key,t,e)}marshal(){return function(e){if(null==e.n||null==e.e)throw new rp("JWK was missing components","ERR_INVALID_PARAMETERS");const t=sp.pki.publicKeyToAsn1({n:uN(e.n),e:uN(e.e)});return ps(sp.asn1.toDer(t).getBytes(),"ascii")}(this._key)}get bytes(){return ZD.encode({Type:XD.RSA,Data:this.marshal()}).subarray()}encrypt(e){return gN(this._key,!0,e,((e,t)=>t.encrypt(e)))}equals(e){return Yn(this.bytes,e.bytes)}async hash(){const{bytes:e}=await DD.digest(this.bytes);return e}}class vN{constructor(e,t){Br(this,"_key",void 0),Br(this,"_publicKey",void 0),this._key=e,this._publicKey=t}genSecret(){return function(e){if(isNaN(e)||e<=0)throw new rp("random bytes length must be a Number bigger than 0","ERR_INVALID_LENGTH");return oh(e)}(16)}async sign(e){return async function(e,t){const r=await Gx.get().subtle.importKey("jwk",e,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["sign"]),n=await Gx.get().subtle.sign({name:"RSASSA-PKCS1-v1_5"},r,Uint8Array.from(t));return new Uint8Array(n,0,n.byteLength)}(this._key,e)}get public(){if(null==this._publicKey)throw new rp("public key not provided","ERR_PUBKEY_NOT_PROVIDED");return new wN(this._publicKey)}decrypt(e){return gN(this._key,!1,e,((e,t)=>t.decrypt(e)))}marshal(){return function(e){if(null==e.n||null==e.e||null==e.d||null==e.p||null==e.q||null==e.dp||null==e.dq||null==e.qi)throw new rp("JWK was missing components","ERR_INVALID_PARAMETERS");const t=sp.pki.privateKeyToAsn1({n:uN(e.n),e:uN(e.e),d:uN(e.d),p:uN(e.p),q:uN(e.q),dP:uN(e.dp),dQ:uN(e.dq),qInv:uN(e.qi)});return ps(sp.asn1.toDer(t).getBytes(),"ascii")}(this._key)}get bytes(){return $D.encode({Type:XD.RSA,Data:this.marshal()}).subarray()}equals(e){return Yn(this.bytes,e.bytes)}async hash(){const{bytes:e}=await DD.digest(this.bytes);return e}async id(){return Ro(await this.public.hash(),"base58btc")}async export(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"pkcs-8";if("pkcs-8"===t){const t=new sp.util.ByteBuffer(this.marshal()),r=sp.asn1.fromDer(t),n=sp.pki.privateKeyFromAsn1(r),i={algorithm:"aes256",count:1e4,saltSize:16,prfAlgorithm:"sha512"};return sp.pki.encryptRsaPrivateKey(n,e,i)}if("libp2p-key"===t)return zD(this.bytes,e);throw new rp("export format '".concat(t,"' is not supported"),"ERR_INVALID_EXPORT_FORMAT")}}async function _N(e){const t=function(e){const t=sp.asn1.fromDer(Ro(e,"ascii")),r=sp.pki.privateKeyFromAsn1(t);return{kty:"RSA",n:lN(r.n),e:lN(r.e),d:lN(r.d),p:lN(r.p),q:lN(r.q),dp:lN(r.dP),dq:lN(r.dQ),qi:lN(r.qInv),alg:"RS256"}}(e);if(mN(t)>bN)throw new rp("key size is too large","ERR_KEY_SIZE_TOO_LARGE");const r=await pN(t);return new vN(r.privateKey,r.publicKey)}function EN(e){const t=function(e){const t=sp.asn1.fromDer(Ro(e,"ascii")),r=sp.pki.publicKeyFromAsn1(t);return{kty:"RSA",n:lN(r.n),e:lN(r.e)}}(e);if(mN(t)>bN)throw new rp("key size is too large","ERR_KEY_SIZE_TOO_LARGE");return new wN(t)}async function SN(e){if(mN(e)>bN)throw new rp("key size is too large","ERR_KEY_SIZE_TOO_LARGE");const t=await pN(e);return new vN(t.privateKey,t.publicKey)}async function AN(e){if(e>bN)throw new rp("key size is too large","ERR_KEY_SIZE_TOO_LARGE");const t=await async function(e){const t=await Gx.get().subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:e,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-256"}},!0,["sign","verify"]),r=await fN(t);return{privateKey:r[0],publicKey:r[1]}}(e);return new vN(t.privateKey,t.publicKey)}function kN(e){try{sy.ProjectivePoint.fromHex(e)}catch(t){throw new rp(String(t),"ERR_INVALID_PUBLIC_KEY")}}class IN{constructor(e){Br(this,"_key",void 0),kN(e),this._key=e}async verify(e,t){return async function(e,t,r){try{const{digest:n}=await DD.digest(r);return sy.verify(t,n,e)}catch(n){throw new rp(String(n),"ERR_INVALID_INPUT")}}(this._key,t,e)}marshal(){return e=this._key,sy.ProjectivePoint.fromHex(e).toRawBytes(!0);var e}get bytes(){return ZD.encode({Type:XD.Secp256k1,Data:this.marshal()}).subarray()}equals(e){return Yn(this.bytes,e.bytes)}async hash(){const{bytes:e}=await DD.digest(this.bytes);return e}}class RN{constructor(e,t){Br(this,"_key",void 0),Br(this,"_publicKey",void 0),this._key=e,this._publicKey=null!==t&&void 0!==t?t:function(e){try{return sy.getPublicKey(e,!0)}catch(t){throw new rp(String(t),"ERR_INVALID_PRIVATE_KEY")}}(e),function(e){try{sy.getPublicKey(e,!0)}catch(t){throw new rp(String(t),"ERR_INVALID_PRIVATE_KEY")}}(this._key),kN(this._publicKey)}async sign(e){return async function(e,t){const{digest:r}=await DD.digest(t);try{return sy.sign(r,e).toDERRawBytes()}catch(n){throw new rp(String(n),"ERR_INVALID_INPUT")}}(this._key,e)}get public(){return new IN(this._publicKey)}marshal(){return this._key}get bytes(){return $D.encode({Type:XD.Secp256k1,Data:this.marshal()}).subarray()}equals(e){return Yn(this.bytes,e.bytes)}async hash(){const{bytes:e}=await DD.digest(this.bytes);return e}async id(){return Ro(await this.public.hash(),"base58btc")}async export(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"libp2p-key";if("libp2p-key"===t)return zD(this.bytes,e);throw new rp("export format '".concat(t,"' is not supported"),"ERR_INVALID_EXPORT_FORMAT")}}function PN(e){return new RN(e)}function CN(e){return new IN(e)}async function TN(){const e=sy.utils.randomPrivateKey();return new RN(e)}const xN=rD({prefix:"9",name:"base10",alphabet:"0123456789"}),DN=nD({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),NN=nD({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4}),LN=nD({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1}),BN=Array.from("\ud83d\ude80\ud83e\ude90\u2604\ud83d\udef0\ud83c\udf0c\ud83c\udf11\ud83c\udf12\ud83c\udf13\ud83c\udf14\ud83c\udf15\ud83c\udf16\ud83c\udf17\ud83c\udf18\ud83c\udf0d\ud83c\udf0f\ud83c\udf0e\ud83d\udc09\u2600\ud83d\udcbb\ud83d\udda5\ud83d\udcbe\ud83d\udcbf\ud83d\ude02\u2764\ud83d\ude0d\ud83e\udd23\ud83d\ude0a\ud83d\ude4f\ud83d\udc95\ud83d\ude2d\ud83d\ude18\ud83d\udc4d\ud83d\ude05\ud83d\udc4f\ud83d\ude01\ud83d\udd25\ud83e\udd70\ud83d\udc94\ud83d\udc96\ud83d\udc99\ud83d\ude22\ud83e\udd14\ud83d\ude06\ud83d\ude44\ud83d\udcaa\ud83d\ude09\u263a\ud83d\udc4c\ud83e\udd17\ud83d\udc9c\ud83d\ude14\ud83d\ude0e\ud83d\ude07\ud83c\udf39\ud83e\udd26\ud83c\udf89\ud83d\udc9e\u270c\u2728\ud83e\udd37\ud83d\ude31\ud83d\ude0c\ud83c\udf38\ud83d\ude4c\ud83d\ude0b\ud83d\udc97\ud83d\udc9a\ud83d\ude0f\ud83d\udc9b\ud83d\ude42\ud83d\udc93\ud83e\udd29\ud83d\ude04\ud83d\ude00\ud83d\udda4\ud83d\ude03\ud83d\udcaf\ud83d\ude48\ud83d\udc47\ud83c\udfb6\ud83d\ude12\ud83e\udd2d\u2763\ud83d\ude1c\ud83d\udc8b\ud83d\udc40\ud83d\ude2a\ud83d\ude11\ud83d\udca5\ud83d\ude4b\ud83d\ude1e\ud83d\ude29\ud83d\ude21\ud83e\udd2a\ud83d\udc4a\ud83e\udd73\ud83d\ude25\ud83e\udd24\ud83d\udc49\ud83d\udc83\ud83d\ude33\u270b\ud83d\ude1a\ud83d\ude1d\ud83d\ude34\ud83c\udf1f\ud83d\ude2c\ud83d\ude43\ud83c\udf40\ud83c\udf37\ud83d\ude3b\ud83d\ude13\u2b50\u2705\ud83e\udd7a\ud83c\udf08\ud83d\ude08\ud83e\udd18\ud83d\udca6\u2714\ud83d\ude23\ud83c\udfc3\ud83d\udc90\u2639\ud83c\udf8a\ud83d\udc98\ud83d\ude20\u261d\ud83d\ude15\ud83c\udf3a\ud83c\udf82\ud83c\udf3b\ud83d\ude10\ud83d\udd95\ud83d\udc9d\ud83d\ude4a\ud83d\ude39\ud83d\udde3\ud83d\udcab\ud83d\udc80\ud83d\udc51\ud83c\udfb5\ud83e\udd1e\ud83d\ude1b\ud83d\udd34\ud83d\ude24\ud83c\udf3c\ud83d\ude2b\u26bd\ud83e\udd19\u2615\ud83c\udfc6\ud83e\udd2b\ud83d\udc48\ud83d\ude2e\ud83d\ude46\ud83c\udf7b\ud83c\udf43\ud83d\udc36\ud83d\udc81\ud83d\ude32\ud83c\udf3f\ud83e\udde1\ud83c\udf81\u26a1\ud83c\udf1e\ud83c\udf88\u274c\u270a\ud83d\udc4b\ud83d\ude30\ud83e\udd28\ud83d\ude36\ud83e\udd1d\ud83d\udeb6\ud83d\udcb0\ud83c\udf53\ud83d\udca2\ud83e\udd1f\ud83d\ude41\ud83d\udea8\ud83d\udca8\ud83e\udd2c\u2708\ud83c\udf80\ud83c\udf7a\ud83e\udd13\ud83d\ude19\ud83d\udc9f\ud83c\udf31\ud83d\ude16\ud83d\udc76\ud83e\udd74\u25b6\u27a1\u2753\ud83d\udc8e\ud83d\udcb8\u2b07\ud83d\ude28\ud83c\udf1a\ud83e\udd8b\ud83d\ude37\ud83d\udd7a\u26a0\ud83d\ude45\ud83d\ude1f\ud83d\ude35\ud83d\udc4e\ud83e\udd32\ud83e\udd20\ud83e\udd27\ud83d\udccc\ud83d\udd35\ud83d\udc85\ud83e\uddd0\ud83d\udc3e\ud83c\udf52\ud83d\ude17\ud83e\udd11\ud83c\udf0a\ud83e\udd2f\ud83d\udc37\u260e\ud83d\udca7\ud83d\ude2f\ud83d\udc86\ud83d\udc46\ud83c\udfa4\ud83d\ude47\ud83c\udf51\u2744\ud83c\udf34\ud83d\udca3\ud83d\udc38\ud83d\udc8c\ud83d\udccd\ud83e\udd40\ud83e\udd22\ud83d\udc45\ud83d\udca1\ud83d\udca9\ud83d\udc50\ud83d\udcf8\ud83d\udc7b\ud83e\udd10\ud83e\udd2e\ud83c\udfbc\ud83e\udd75\ud83d\udea9\ud83c\udf4e\ud83c\udf4a\ud83d\udc7c\ud83d\udc8d\ud83d\udce3\ud83e\udd42"),MN=BN.reduce(((e,t,r)=>(e[r]=t,e)),[]),ON=BN.reduce(((e,t,r)=>(e[t.codePointAt(0)]=r,e)),[]);const UN=tD({prefix:"\ud83d\ude80",name:"base256emoji",encode:function(e){return e.reduce(((e,t)=>e+=MN[t]),"")},decode:function(e){const t=[];for(const r of e){const e=ON[r.codePointAt(0)];if(void 0===e)throw new Error("Non-base256emoji character: ".concat(r));t.push(e)}return new Uint8Array(t)}}),KN=nD({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),qN=nD({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),FN=nD({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),VN=nD({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),zN=nD({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),jN=nD({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),HN=nD({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),GN=nD({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),WN=nD({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5}),YN=rD({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),QN=rD({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"}),XN=nD({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3}),JN=tD({prefix:"\0",name:"identity",encode:e=>{return t=e,(new TextDecoder).decode(t);var t},decode:e=>(e=>(new TextEncoder).encode(e))(e)}),ZN=new TextEncoder,$N=new TextDecoder,eL="json",tL=512,rL=e=>ZN.encode(JSON.stringify(e)),nL=e=>JSON.parse($N.decode(e)),iL="raw",oL=85,sL=e=>Qx(e),aL=e=>Qx(e);new WeakMap;class cL{constructor(e,t,r,n){this.code=t,this.version=e,this.multihash=r,this.bytes=n,this["/"]=n}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:{const{code:e,multihash:t}=this;if(e!==pubsub_node_modules_multiformats_src_cid_DAG_PB_CODE)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(t.code!==pubsub_node_modules_multiformats_src_cid_SHA_256_CODE)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return cL.createV0(t)}default:throw Error("Can not convert CID version ".concat(this.version," to version 0. This is a bug please report"))}}toV1(){switch(this.version){case 0:{const{code:e,digest:t}=this.multihash,r=Digest.create(e,t);return cL.createV1(this.code,r)}case 1:return this;default:throw Error("Can not convert CID version ".concat(this.version," to version 1. This is a bug please report"))}}equals(e){return cL.equals(this,e)}static equals(e,t){const r=t;return r&&e.code===r.code&&e.version===r.version&&Digest.equals(e.multihash,r.multihash)}toString(e){return pubsub_node_modules_multiformats_src_cid_format(this,e)}toJSON(){return{"/":pubsub_node_modules_multiformats_src_cid_format(this)}}link(){return this}get[Symbol.toStringTag](){return"CID"}[Symbol.for("nodejs.util.inspect.custom")](){return"CID(".concat(this.toString(),")")}static asCID(e){if(null==e)return null;const t=e;if(t instanceof cL)return t;if(null!=t["/"]&&t["/"]===t.bytes||t.asCID===t){const{version:e,code:r,multihash:n,bytes:i}=t;return new cL(e,r,n,i||pubsub_node_modules_multiformats_src_cid_encodeCID(e,r,n.bytes))}if(!0===t[pubsub_node_modules_multiformats_src_cid_cidSymbol]){const{version:e,multihash:r,code:n}=t,i=Digest.decode(r);return cL.create(e,n,i)}return null}static create(e,t,r){if("number"!==typeof t)throw new Error("String codecs are no longer supported");if(!(r.bytes instanceof Uint8Array))throw new Error("Invalid digest");switch(e){case 0:if(t!==pubsub_node_modules_multiformats_src_cid_DAG_PB_CODE)throw new Error("Version 0 CID must use dag-pb (code: ".concat(pubsub_node_modules_multiformats_src_cid_DAG_PB_CODE,") block encoding"));return new cL(e,t,r,r.bytes);case 1:{const n=pubsub_node_modules_multiformats_src_cid_encodeCID(e,t,r.bytes);return new cL(e,t,r,n)}default:throw new Error("Invalid version")}}static createV0(e){return cL.create(0,pubsub_node_modules_multiformats_src_cid_DAG_PB_CODE,e)}static createV1(e,t){return cL.create(1,e,t)}static decode(e){const[t,r]=cL.decodeFirst(e);if(r.length)throw new Error("Incorrect length");return t}static decodeFirst(e){const t=cL.inspectBytes(e),r=t.size-t.multihashSize,n=coerce(e.subarray(r,r+t.multihashSize));if(n.byteLength!==t.multihashSize)throw new Error("Incorrect length");const i=n.subarray(t.multihashSize-t.digestSize),o=new Digest.Digest(t.multihashCode,t.digestSize,i,n);return[0===t.version?cL.createV0(o):cL.createV1(t.codec,o),e.subarray(t.size)]}static inspectBytes(e){let t=0;const r=()=>{const[r,n]=varint.decode(e.subarray(t));return n,r};let n=r(),i=pubsub_node_modules_multiformats_src_cid_DAG_PB_CODE;if(18===n?(0,0):r(),0!==n&&1!==n)throw new RangeError("Invalid CID version ".concat(n));const o=t,s=r(),a=r(),c=t+a;return{version:n,codec:i,multihashCode:s,digestSize:a,multihashSize:c-o,size:c}}static parse(e,t){const[r,n]=pubsub_node_modules_multiformats_src_cid_parseCIDtoBytes(e,t),i=cL.decode(n);if(0===i.version&&"Q"!==e[0])throw Error("Version 0 CID string must not include multibase prefix");return pubsub_node_modules_multiformats_src_cid_baseCache(i).set(r,e),i}}Symbol.for("@ipld/js-cid/CID");const lL={...qe,...Be,...Ke,...Ne,...Le,...Oe,...Ue,...Ie,...Ce,...Me};let uL;Symbol.for("nodejs.util.inspect.custom"),Object.values(lL).map((e=>e.decoder)).reduce(((e,t)=>e.or(t)),lL.identity.decoder);uL=Symbol.toStringTag;const hL=(e,t)=>{const r=ps(t.toString(16).padStart(16,"0"),"base16"),n=new Uint8Array(e.length+r.length);return n.set(e,0),n.set(r,e.length),n};function dL(e){if("signed"!==e.type)throw new Error("expected signed message type");if(null==e.sequenceNumber)throw Error("missing seqno field");return hL(e.from.toBytes(),e.sequenceNumber)}async function pL(e){return await CC.encode(e.data)}function fL(e,t,r,n,i){let o=0;const s=new Map;if(Object.entries(t.topics).forEach((e=>{var t;let[n,a]=e;const c=null!==(t=i.get(n))&&void 0!==t?t:"unknown",l=r.topics[n];if(void 0===l)return;let u=s.get(c);u||(u={p1w:0,p2w:0,p3w:0,p3bw:0,p4w:0},s.set(c,u));let h=0,d=0,p=0,f=0,y=0;if(a.inMesh){h+=Math.max(a.meshTime/l.timeInMeshQuantum,l.timeInMeshCap)*l.timeInMeshWeight}let g=a.firstMessageDeliveries;if(g>l.firstMessageDeliveriesCap&&(g=l.firstMessageDeliveriesCap),d+=g*l.firstMessageDeliveriesWeight,a.meshMessageDeliveriesActive&&a.meshMessageDeliveries<l.meshMessageDeliveriesThreshold){const e=l.meshMessageDeliveriesThreshold-a.meshMessageDeliveries;p+=e*e*l.meshMessageDeliveriesWeight}f+=a.meshFailurePenalty*l.meshFailurePenaltyWeight;y+=a.invalidMessageDeliveries*a.invalidMessageDeliveries*l.invalidMessageDeliveriesWeight,o+=(h+d+p+f+y)*l.topicWeight,u.p1w+=h,u.p2w+=d,u.p3w+=p,u.p3bw+=f,u.p4w+=y})),r.topicScoreCap>0&&o>r.topicScoreCap){o=r.topicScoreCap;const e=r.topicScoreCap/o;for(const t of s.values())t.p1w*=e,t.p2w*=e,t.p3w*=e,t.p3bw*=e,t.p4w*=e}let a=0,c=0,l=0;a+=r.appSpecificScore(e)*r.appSpecificWeight,t.knownIPs.forEach((e=>{if(r.IPColocationFactorWhitelist.has(e))return;const t=n.get(e),i=t?t.size:0;if(i>r.IPColocationFactorThreshold){const e=i-r.IPColocationFactorThreshold;c+=e*e*r.IPColocationFactorWeight}}));return l+=t.behaviourPenalty*t.behaviourPenalty*r.behaviourPenaltyWeight,o+=a+c+l,{byTopic:s,p5w:a,p6w:c,p7w:l,score:o}}class yL{constructor(e,t,r){var n;Br(this,"rawStream",void 0),Br(this,"pushable",void 0),Br(this,"closeController",void 0),Br(this,"maxBufferSize",void 0),this.rawStream=e,this.pushable=$c({objectMode:!1}),this.closeController=new AbortController,this.maxBufferSize=null!==(n=r.maxBufferSize)&&void 0!==n?n:1/0,rl(Qg(this.pushable,this.closeController.signal,{returnOnAbort:!0}),(e=>Vc(e)),this.rawStream).catch(t)}get protocol(){return this.rawStream.protocol}push(e){if(this.pushable.readableLength>this.maxBufferSize)throw Error("OutboundStream buffer full, size > ".concat(this.maxBufferSize));this.pushable.push(e)}close(){this.closeController.abort(),this.pushable.return(),this.rawStream.close()}}class gL{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};Br(this,"source",void 0),Br(this,"rawStream",void 0),Br(this,"closeController",void 0),this.rawStream=e,this.closeController=new AbortController,this.source=Qg(rl(this.rawStream,(e=>Yc(e,t))),this.closeController.signal,{returnOnAbort:!0})}close(){this.closeController.abort(),this.rawStream.close()}}var mL=__webpack_require__(886);const bL={maxSubscriptions:1/0,maxMessages:1/0,maxIhaveMessageIDs:1/0,maxIwantMessageIDs:1/0,maxControlMessages:1/0,maxPeerInfos:1/0};function wL(e,t){t={...t};const r=mL.Reader.create(e),n=e.length,i=void 0===n?r.len:r.pos+n,o={};for(;r.pos<i;){const e=r.uint32();switch(e>>>3){case 1:o.subscriptions&&o.subscriptions.length||(o.subscriptions=[]),o.subscriptions.length<t.maxSubscriptions?o.subscriptions.push(vL(r,r.uint32())):r.skipType(7&e);break;case 2:o.messages&&o.messages.length||(o.messages=[]),o.messages.length<t.maxMessages?o.messages.push(_L(r,r.uint32())):r.skipType(7&e);break;case 3:o.control=EL(r,r.uint32(),t);break;default:r.skipType(7&e)}}return o}function vL(e,t){const r=void 0===t?e.len:e.pos+t,n={};for(;e.pos<r;){const t=e.uint32();switch(t>>>3){case 1:n.subscribe=e.bool();break;case 2:n.topic=e.string();break;default:e.skipType(7&t)}}return n}function _L(e,t){const r=void 0===t?e.len:e.pos+t,n={};for(;e.pos<r;){const t=e.uint32();switch(t>>>3){case 1:n.from=e.bytes();break;case 2:n.data=e.bytes();break;case 3:n.seqno=e.bytes();break;case 4:n.topic=e.string();break;case 5:n.signature=e.bytes();break;case 6:n.key=e.bytes();break;default:e.skipType(7&t)}}if(!n.topic)throw Error("missing required 'topic'");return n}function EL(e,t,r){const n=void 0===t?e.len:e.pos+t,i={};for(;e.pos<n;){const t=e.uint32();switch(t>>>3){case 1:i.ihave&&i.ihave.length||(i.ihave=[]),i.ihave.length<r.maxControlMessages?i.ihave.push(SL(e,e.uint32(),r)):e.skipType(7&t);break;case 2:i.iwant&&i.iwant.length||(i.iwant=[]),i.iwant.length<r.maxControlMessages?i.iwant.push(AL(e,e.uint32(),r)):e.skipType(7&t);break;case 3:i.graft&&i.graft.length||(i.graft=[]),i.graft.length<r.maxControlMessages?i.graft.push(kL(e,e.uint32())):e.skipType(7&t);break;case 4:i.prune&&i.prune.length||(i.prune=[]),i.prune.length<r.maxControlMessages?i.prune.push(IL(e,e.uint32(),r)):e.skipType(7&t);break;default:e.skipType(7&t)}}return i}function SL(e,t,r){const n=void 0===t?e.len:e.pos+t,i={};for(;e.pos<n;){const t=e.uint32();switch(t>>>3){case 1:i.topicID=e.string();break;case 2:i.messageIDs&&i.messageIDs.length||(i.messageIDs=[]),r.maxIhaveMessageIDs-- >0?i.messageIDs.push(e.bytes()):e.skipType(7&t);break;default:e.skipType(7&t)}}return i}function AL(e,t,r){const n=void 0===t?e.len:e.pos+t,i={};for(;e.pos<n;){const t=e.uint32();if(t>>>3===1)i.messageIDs&&i.messageIDs.length||(i.messageIDs=[]),r.maxIwantMessageIDs-- >0?i.messageIDs.push(e.bytes()):e.skipType(7&t);else e.skipType(7&t)}return i}function kL(e,t){const r=void 0===t?e.len:e.pos+t,n={};for(;e.pos<r;){const t=e.uint32();if(t>>>3===1)n.topicID=e.string();else e.skipType(7&t)}return n}function IL(e,t,r){const n=void 0===t?e.len:e.pos+t,i={};for(;e.pos<n;){const t=e.uint32();switch(t>>>3){case 1:i.topicID=e.string();break;case 2:i.peers&&i.peers.length||(i.peers=[]),r.maxPeerInfos-- >0?i.peers.push(RL(e,e.uint32())):e.skipType(7&t);break;case 3:i.backoff=e.uint64();break;default:e.skipType(7&t)}}return i}function RL(e,t){const r=void 0===t?e.len:e.pos+t,n={};for(;e.pos<r;){const t=e.uint32();switch(t>>>3){case 1:n.peerID=e.bytes();break;case 2:n.signedPeerRecord=e.bytes();break;default:e.skipType(7&t)}}return n}var PL;!function(e){e[e.ip4=4]="ip4",e[e.ip6=41]="ip6"}(PL||(PL={}));var CL;!function(e){e[e.started=0]="started",e[e.stopped=1]="stopped"}(CL||(CL={}));class TL extends rw{constructor(e){var t,r,n,i;let o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};super(),Br(this,"globalSignaturePolicy",void 0),Br(this,"multicodecs",[aT,sT]),Br(this,"publishConfig",void 0),Br(this,"dataTransform",void 0),Br(this,"peers",new Set),Br(this,"streamsInbound",new Map),Br(this,"streamsOutbound",new Map),Br(this,"outboundInflightQueue",$c({objectMode:!0})),Br(this,"direct",new Set),Br(this,"floodsubPeers",new Set),Br(this,"seenCache",void 0),Br(this,"acceptFromWhitelist",new Map),Br(this,"topics",new Map),Br(this,"subscriptions",new Set),Br(this,"mesh",new Map),Br(this,"fanout",new Map),Br(this,"fanoutLastpub",new Map),Br(this,"gossip",new Map),Br(this,"control",new Map),Br(this,"peerhave",new Map),Br(this,"iasked",new Map),Br(this,"backoff",new Map),Br(this,"outbound",new Map),Br(this,"msgIdFn",void 0),Br(this,"fastMsgIdFn",void 0),Br(this,"msgIdToStrFn",void 0),Br(this,"fastMsgIdCache",void 0),Br(this,"publishedMessageIds",void 0),Br(this,"mcache",void 0),Br(this,"score",void 0),Br(this,"topicValidators",new Map),Br(this,"log",void 0),Br(this,"heartbeatTicks",0),Br(this,"gossipTracer",void 0),Br(this,"components",void 0),Br(this,"directPeerInitial",null),Br(this,"opts",void 0),Br(this,"decodeRpcLimits",void 0),Br(this,"metrics",void 0),Br(this,"status",{code:CL.stopped}),Br(this,"maxInboundStreams",void 0),Br(this,"maxOutboundStreams",void 0),Br(this,"allowedTopics",void 0),Br(this,"heartbeatTimer",null),Br(this,"runHeartbeat",(()=>{var e;const t=null===(e=this.metrics)||void 0===e?void 0:e.heartbeatDuration.startTimer();this.heartbeat().catch((e=>{this.log("Error running heartbeat",e)})).finally((()=>{if(null!=t&&t(),this.status.code===CL.started){clearTimeout(this.status.heartbeatTimeout);let t=this.opts.heartbeatInterval-(Date.now()-this.status.hearbeatStartMs)%this.opts.heartbeatInterval;var e;if(t<.25*this.opts.heartbeatInterval)t+=this.opts.heartbeatInterval,null===(e=this.metrics)||void 0===e||e.heartbeatSkipped.inc();this.status.heartbeatTimeout=setTimeout(this.runHeartbeat,t)}}))}));const s={fallbackToFloodsub:!0,floodPublish:!0,doPX:!1,directPeers:[],D:6,Dlo:4,Dhi:12,Dscore:4,Dout:2,Dlazy:6,heartbeatInterval:1e3,fanoutTTL:6e4,mcacheLength:5,mcacheGossip:3,seenTTL:12e4,gossipsubIWantFollowupMs:3e3,prunePeers:16,pruneBackoff:6e4,unsubcribeBackoff:1e4,graftFloodThreshold:1e4,opportunisticGraftPeers:2,opportunisticGraftTicks:60,directConnectTicks:300,...o,scoreParams:Ax(o.scoreParams),scoreThresholds:Rx(o.scoreThresholds)};if(this.components=e,this.decodeRpcLimits=null!==(t=s.decodeRpcLimits)&&void 0!==t?t:bL,this.globalSignaturePolicy=null!==(r=s.globalSignaturePolicy)&&void 0!==r?r:dx,s.fallbackToFloodsub&&this.multicodecs.push(oT),this.log=tT(null!==(n=s.debugName)&&void 0!==n?n:"libp2p:gossipsub"),this.opts=s,this.direct=new Set(s.directPeers.map((e=>e.id.toString()))),this.seenCache=new Ox({validityMs:s.seenTTL}),this.publishedMessageIds=new Ox({validityMs:s.seenTTL}),o.msgIdFn)this.msgIdFn=o.msgIdFn;else switch(this.globalSignaturePolicy){case dx:this.msgIdFn=dL;break;case px:this.msgIdFn=pL}if(o.fastMsgIdFn&&(this.fastMsgIdFn=o.fastMsgIdFn,this.fastMsgIdCache=new Ox({validityMs:s.seenTTL})),this.msgIdToStrFn=null!==(i=o.msgIdToStrFn)&&void 0!==i?i:uT,this.mcache=o.messageCache||new rT(s.mcacheGossip,s.mcacheLength,this.msgIdToStrFn),o.dataTransform&&(this.dataTransform=o.dataTransform),o.metricsRegister){if(!o.metricsTopicStrToLabel)throw Error("Must set metricsTopicStrToLabel with metrics");const e=Math.max(...Object.values(s.scoreParams.topics).map((e=>e.meshMessageDeliveriesWindow)),1e3),t=function(e,t,r){return{protocolsEnabled:e.gauge({name:"gossipsub_protocol",help:"Status of enabled protocols",labelNames:["protocol"]}),topicSubscriptionStatus:e.gauge({name:"gossipsub_topic_subscription_status",help:"Status of our subscription to this topic",labelNames:["topicStr"]}),topicPeersCount:e.gauge({name:"gossipsub_topic_peer_count",help:"Number of peers subscribed to each topic",labelNames:["topicStr"]}),meshPeerCounts:e.gauge({name:"gossipsub_mesh_peer_count",help:"Number of peers in our mesh",labelNames:["topicStr"]}),meshPeerInclusionEventsFanout:e.gauge({name:"gossipsub_mesh_peer_inclusion_events_fanout_total",help:"Number of times we include peers in a topic mesh for fanout reasons",labelNames:["topic"]}),meshPeerInclusionEventsRandom:e.gauge({name:"gossipsub_mesh_peer_inclusion_events_random_total",help:"Number of times we include peers in a topic mesh for random reasons",labelNames:["topic"]}),meshPeerInclusionEventsSubscribed:e.gauge({name:"gossipsub_mesh_peer_inclusion_events_subscribed_total",help:"Number of times we include peers in a topic mesh for subscribed reasons",labelNames:["topic"]}),meshPeerInclusionEventsOutbound:e.gauge({name:"gossipsub_mesh_peer_inclusion_events_outbound_total",help:"Number of times we include peers in a topic mesh for outbound reasons",labelNames:["topic"]}),meshPeerInclusionEventsNotEnough:e.gauge({name:"gossipsub_mesh_peer_inclusion_events_not_enough_total",help:"Number of times we include peers in a topic mesh for not_enough reasons",labelNames:["topic"]}),meshPeerInclusionEventsOpportunistic:e.gauge({name:"gossipsub_mesh_peer_inclusion_events_opportunistic_total",help:"Number of times we include peers in a topic mesh for opportunistic reasons",labelNames:["topic"]}),meshPeerInclusionEventsUnknown:e.gauge({name:"gossipsub_mesh_peer_inclusion_events_unknown_total",help:"Number of times we include peers in a topic mesh for unknown reasons",labelNames:["topic"]}),meshPeerChurnEventsDisconnected:e.gauge({name:"gossipsub_peer_churn_events_disconnected_total",help:"Number of times we remove peers in a topic mesh for disconnected reasons",labelNames:["topic"]}),meshPeerChurnEventsBadScore:e.gauge({name:"gossipsub_peer_churn_events_bad_score_total",help:"Number of times we remove peers in a topic mesh for bad_score reasons",labelNames:["topic"]}),meshPeerChurnEventsPrune:e.gauge({name:"gossipsub_peer_churn_events_prune_total",help:"Number of times we remove peers in a topic mesh for prune reasons",labelNames:["topic"]}),meshPeerChurnEventsExcess:e.gauge({name:"gossipsub_peer_churn_events_excess_total",help:"Number of times we remove peers in a topic mesh for excess reasons",labelNames:["topic"]}),meshPeerChurnEventsUnknown:e.gauge({name:"gossipsub_peer_churn_events_unknown_total",help:"Number of times we remove peers in a topic mesh for unknown reasons",labelNames:["topic"]}),peersPerProtocol:e.gauge({name:"gossipsub_peers_per_protocol_count",help:"Peers connected for each topic",labelNames:["protocol"]}),heartbeatDuration:e.histogram({name:"gossipsub_heartbeat_duration_seconds",help:"The time it takes to complete one iteration of the heartbeat",buckets:[.01,.1,1]}),heartbeatSkipped:e.gauge({name:"gossipsub_heartbeat_skipped",help:"Heartbeat run took longer than heartbeat interval so next is skipped"}),acceptedMessagesTotal:e.gauge({name:"gossipsub_accepted_messages_total",help:"Total accepted messages for each topic",labelNames:["topic"]}),ignoredMessagesTotal:e.gauge({name:"gossipsub_ignored_messages_total",help:"Total ignored messages for each topic",labelNames:["topic"]}),rejectedMessagesTotal:e.gauge({name:"gossipsub_rejected_messages_total",help:"Total rejected messages for each topic",labelNames:["topic"]}),unknownValidationResultsTotal:e.gauge({name:"gossipsub_unknown_validation_results_total",help:"Total unknown validation results for each topic",labelNames:["topic"]}),asyncValidationMcacheHit:e.gauge({name:"gossipsub_async_validation_mcache_hit_total",help:"Async validation result reported by the user layer",labelNames:["hit"]}),asyncValidationDelayFromFirstSeenSec:e.histogram({name:"gossipsub_async_validation_delay_from_first_seen",help:"Async validation report delay from first seen in second",labelNames:["topic"],buckets:[.01,.03,.1,.3,1,3,10]}),asyncValidationUnknownFirstSeen:e.gauge({name:"gossipsub_async_validation_unknown_first_seen_count_total",help:"Async validation report unknown first seen value for message"}),peerReadStreamError:e.gauge({name:"gossipsub_peer_read_stream_err_count_total",help:"Peer read stream error"}),rpcRecvBytes:e.gauge({name:"gossipsub_rpc_recv_bytes_total",help:"RPC recv"}),rpcRecvCount:e.gauge({name:"gossipsub_rpc_recv_count_total",help:"RPC recv"}),rpcRecvSubscription:e.gauge({name:"gossipsub_rpc_recv_subscription_total",help:"RPC recv"}),rpcRecvMessage:e.gauge({name:"gossipsub_rpc_recv_message_total",help:"RPC recv"}),rpcRecvControl:e.gauge({name:"gossipsub_rpc_recv_control_total",help:"RPC recv"}),rpcRecvIHave:e.gauge({name:"gossipsub_rpc_recv_ihave_total",help:"RPC recv"}),rpcRecvIWant:e.gauge({name:"gossipsub_rpc_recv_iwant_total",help:"RPC recv"}),rpcRecvGraft:e.gauge({name:"gossipsub_rpc_recv_graft_total",help:"RPC recv"}),rpcRecvPrune:e.gauge({name:"gossipsub_rpc_recv_prune_total",help:"RPC recv"}),rpcDataError:e.gauge({name:"gossipsub_rpc_data_err_count_total",help:"RPC data error"}),rpcRecvError:e.gauge({name:"gossipsub_rpc_recv_err_count_total",help:"RPC recv error"}),rpcRecvNotAccepted:e.gauge({name:"gossipsub_rpc_rcv_not_accepted_total",help:"Total count of RPC dropped because acceptFrom() == false"}),rpcSentBytes:e.gauge({name:"gossipsub_rpc_sent_bytes_total",help:"RPC sent"}),rpcSentCount:e.gauge({name:"gossipsub_rpc_sent_count_total",help:"RPC sent"}),rpcSentSubscription:e.gauge({name:"gossipsub_rpc_sent_subscription_total",help:"RPC sent"}),rpcSentMessage:e.gauge({name:"gossipsub_rpc_sent_message_total",help:"RPC sent"}),rpcSentControl:e.gauge({name:"gossipsub_rpc_sent_control_total",help:"RPC sent"}),rpcSentIHave:e.gauge({name:"gossipsub_rpc_sent_ihave_total",help:"RPC sent"}),rpcSentIWant:e.gauge({name:"gossipsub_rpc_sent_iwant_total",help:"RPC sent"}),rpcSentGraft:e.gauge({name:"gossipsub_rpc_sent_graft_total",help:"RPC sent"}),rpcSentPrune:e.gauge({name:"gossipsub_rpc_sent_prune_total",help:"RPC sent"}),msgPublishCount:e.gauge({name:"gossipsub_msg_publish_count_total",help:"Total count of msg published by topic",labelNames:["topic"]}),msgPublishPeersByTopic:e.gauge({name:"gossipsub_msg_publish_peers_total",help:"Total count of peers that we publish a msg to",labelNames:["topic"]}),directPeersPublishedTotal:e.gauge({name:"gossipsub_direct_peers_published_total",help:"Total direct peers that we publish a msg to",labelNames:["topic"]}),floodsubPeersPublishedTotal:e.gauge({name:"gossipsub_floodsub_peers_published_total",help:"Total floodsub peers that we publish a msg to",labelNames:["topic"]}),meshPeersPublishedTotal:e.gauge({name:"gossipsub_mesh_peers_published_total",help:"Total mesh peers that we publish a msg to",labelNames:["topic"]}),fanoutPeersPublishedTotal:e.gauge({name:"gossipsub_fanout_peers_published_total",help:"Total fanout peers that we publish a msg to",labelNames:["topic"]}),msgPublishBytes:e.gauge({name:"gossipsub_msg_publish_bytes_total",help:"Total count of msg publish data.length bytes",labelNames:["topic"]}),msgPublishTime:e.histogram({name:"gossipsub_msg_publish_seconds",help:"Total time in seconds to publish a message",buckets:[.001,.002,.005,.01,.1,.5,1],labelNames:["topic"]}),msgForwardCount:e.gauge({name:"gossipsub_msg_forward_count_total",help:"Total count of msg forwarded by topic",labelNames:["topic"]}),msgForwardPeers:e.gauge({name:"gossipsub_msg_forward_peers_total",help:"Total count of peers that we forward a msg to",labelNames:["topic"]}),msgReceivedPreValidation:e.gauge({name:"gossipsub_msg_received_prevalidation_total",help:"Total count of recv msgs before any validation",labelNames:["topic"]}),msgReceivedError:e.gauge({name:"gossipsub_msg_received_error_total",help:"Total count of recv msgs error",labelNames:["topic"]}),prevalidationInvalidTotal:e.gauge({name:"gossipsub_pre_validation_invalid_total",help:"Total count of invalid messages received",labelNames:["topic"]}),prevalidationValidTotal:e.gauge({name:"gossipsub_pre_validation_valid_total",help:"Total count of valid messages received",labelNames:["topic"]}),prevalidationDuplicateTotal:e.gauge({name:"gossipsub_pre_validation_duplicate_total",help:"Total count of duplicate messages received",labelNames:["topic"]}),prevalidationUnknownTotal:e.gauge({name:"gossipsub_pre_validation_unknown_status_total",help:"Total count of unknown_status messages received",labelNames:["topic"]}),msgReceivedInvalid:e.gauge({name:"gossipsub_msg_received_invalid_total",help:"Tracks specific reason of invalid",labelNames:["error"]}),msgReceivedInvalidByTopic:e.gauge({name:"gossipsub_msg_received_invalid_by_topic_total",help:"Tracks specific invalid message by topic",labelNames:["topic"]}),duplicateMsgDeliveryDelay:e.histogram({name:"gossisub_duplicate_msg_delivery_delay_seconds",help:"Time since the 1st duplicated message validated",labelNames:["topic"],buckets:[.25*r.maxMeshMessageDeliveriesWindowSec,.5*r.maxMeshMessageDeliveriesWindowSec,1*r.maxMeshMessageDeliveriesWindowSec,2*r.maxMeshMessageDeliveriesWindowSec,4*r.maxMeshMessageDeliveriesWindowSec]}),duplicateMsgLateDelivery:e.gauge({name:"gossisub_duplicate_msg_late_delivery_total",help:"Total count of late duplicate message delivery by topic, which triggers P3 penalty",labelNames:["topic"]}),duplicateMsgIgnored:e.gauge({name:"gossisub_ignored_published_duplicate_msgs_total",help:"Total count of published duplicate message ignored by topic",labelNames:["topic"]}),scoreFnCalls:e.gauge({name:"gossipsub_score_fn_calls_total",help:"Total times score() is called"}),scoreFnRuns:e.gauge({name:"gossipsub_score_fn_runs_total",help:"Total times score() call actually computed computeScore(), no cache"}),scoreCachedDelta:e.histogram({name:"gossipsub_score_cache_delta",help:"Delta of score between cached values that expired",buckets:[10,100,1e3]}),peersByScoreThreshold:e.gauge({name:"gossipsub_peers_by_score_threshold_count",help:"Current count of peers by score threshold",labelNames:["threshold"]}),score:e.avgMinMax({name:"gossipsub_score",help:"Avg min max of gossip scores"}),scoreWeights:e.avgMinMax({name:"gossipsub_score_weights",help:"Separate score weights",labelNames:["topic","p"]}),scorePerMesh:e.avgMinMax({name:"gossipsub_score_per_mesh",help:"Histogram of the scores for each mesh topic",labelNames:["topic"]}),scoringPenalties:e.gauge({name:"gossipsub_scoring_penalties_total",help:"A counter of the kind of penalties being applied to peers",labelNames:["penalty"]}),behaviourPenalty:e.histogram({name:"gossipsub_peer_stat_behaviour_penalty",help:"Current peer stat behaviour_penalty at each scrape",buckets:[.25*r.behaviourPenaltyThreshold,.5*r.behaviourPenaltyThreshold,1*r.behaviourPenaltyThreshold,2*r.behaviourPenaltyThreshold,4*r.behaviourPenaltyThreshold]}),ihaveRcvIgnored:e.gauge({name:"gossipsub_ihave_rcv_ignored_total",help:"Total received IHAVE messages that we ignore for some reason",labelNames:["reason"]}),ihaveRcvMsgids:e.gauge({name:"gossipsub_ihave_rcv_msgids_total",help:"Total received IHAVE messages by topic",labelNames:["topic"]}),ihaveRcvNotSeenMsgids:e.gauge({name:"gossipsub_ihave_rcv_not_seen_msgids_total",help:"Total messages per topic we do not have, not actual requests",labelNames:["topic"]}),iwantRcvMsgids:e.gauge({name:"gossipsub_iwant_rcv_msgids_total",help:"Total received IWANT messages by topic",labelNames:["topic"]}),iwantRcvDonthaveMsgids:e.gauge({name:"gossipsub_iwant_rcv_dont_have_msgids_total",help:"Total requested messageIDs that we do not have"}),iwantPromiseStarted:e.gauge({name:"gossipsub_iwant_promise_sent_total",help:"Total count of started IWANT promises"}),iwantPromiseResolved:e.gauge({name:"gossipsub_iwant_promise_resolved_total",help:"Total count of resolved IWANT promises"}),iwantPromiseResolvedFromDuplicate:e.gauge({name:"gossipsub_iwant_promise_resolved_from_duplicate_total",help:"Total count of resolved IWANT promises from duplicate messages"}),iwantPromiseResolvedPeers:e.gauge({name:"gossipsub_iwant_promise_resolved_peers",help:"Total count of peers we have asked IWANT promises that are resolved"}),iwantPromiseBroken:e.gauge({name:"gossipsub_iwant_promise_broken",help:"Total count of broken IWANT promises"}),iwantMessagePruned:e.gauge({name:"gossipsub_iwant_message_pruned",help:"Total count of pruned IWANT messages"}),iwantPromiseDeliveryTime:e.histogram({name:"gossipsub_iwant_promise_delivery_seconds",help:"Histogram of delivery time of resolved IWANT promises",buckets:[.5*r.gossipPromiseExpireSec,1*r.gossipPromiseExpireSec,2*r.gossipPromiseExpireSec,4*r.gossipPromiseExpireSec]}),iwantPromiseUntracked:e.gauge({name:"gossip_iwant_promise_untracked",help:"Total count of untracked IWANT promise"}),connectedPeersBackoffSec:e.histogram({name:"gossipsub_connected_peers_backoff_seconds",help:"Backoff time in seconds",buckets:[1,2,4,10,20,60,120]}),cacheSize:e.gauge({name:"gossipsub_cache_size",help:"Unbounded cache sizes",labelNames:["cache"]}),mcacheSize:e.gauge({name:"gossipsub_mcache_size",help:"Current mcache msg count"}),mcacheNotValidatedCount:e.gauge({name:"gossipsub_mcache_not_validated_count",help:"Current mcache msg count not validated"}),fastMsgIdCacheCollision:e.gauge({name:"gossipsub_fastmsgid_cache_collision_total",help:"Total count of key collisions on fastmsgid cache put"}),newConnectionCount:e.gauge({name:"gossipsub_new_connection_total",help:"Total new connection by status",labelNames:["status"]}),topicStrToLabel:t,toTopic(e){var t;return null!==(t=this.topicStrToLabel.get(e))&&void 0!==t?t:e},onJoin(e){this.topicSubscriptionStatus.set({topicStr:e},1),this.meshPeerCounts.set({topicStr:e},0)},onLeave(e){this.topicSubscriptionStatus.set({topicStr:e},0),this.meshPeerCounts.set({topicStr:e},0)},onAddToMesh(e,t,r){const n=this.toTopic(e);switch(t){case Kx.Fanout:this.meshPeerInclusionEventsFanout.inc({topic:n},r);break;case Kx.Random:this.meshPeerInclusionEventsRandom.inc({topic:n},r);break;case Kx.Subscribed:this.meshPeerInclusionEventsSubscribed.inc({topic:n},r);break;case Kx.Outbound:this.meshPeerInclusionEventsOutbound.inc({topic:n},r);break;case Kx.NotEnough:this.meshPeerInclusionEventsNotEnough.inc({topic:n},r);break;case Kx.Opportunistic:this.meshPeerInclusionEventsOpportunistic.inc({topic:n},r);break;default:this.meshPeerInclusionEventsUnknown.inc({topic:n},r)}},onRemoveFromMesh(e,t,r){const n=this.toTopic(e);switch(t){case qx.Dc:this.meshPeerChurnEventsDisconnected.inc({topic:n},r);break;case qx.BadScore:this.meshPeerChurnEventsBadScore.inc({topic:n},r);break;case qx.Prune:this.meshPeerChurnEventsPrune.inc({topic:n},r);break;case qx.Excess:this.meshPeerChurnEventsExcess.inc({topic:n},r);break;default:this.meshPeerChurnEventsUnknown.inc({topic:n},r)}},onReportValidation(e,t,r){if(this.asyncValidationMcacheHit.inc({hit:null!=e?"hit":"miss"}),null!=e){const r=this.toTopic(e.message.topic);switch(t){case fx.Accept:this.acceptedMessagesTotal.inc({topic:r});break;case fx.Ignore:this.ignoredMessagesTotal.inc({topic:r});break;case fx.Reject:this.rejectedMessagesTotal.inc({topic:r});break;default:this.unknownValidationResultsTotal.inc({topic:r})}}null!=r?this.asyncValidationDelayFromFirstSeenSec.observe((Date.now()-r)/1e3):this.asyncValidationUnknownFirstSeen.inc()},onScorePenalty(e){this.scoringPenalties.inc({penalty:e},1)},onIhaveRcv(e,t,r){const n=this.toTopic(e);this.ihaveRcvMsgids.inc({topic:n},t),this.ihaveRcvNotSeenMsgids.inc({topic:n},r)},onIwantRcv(e,t){for(const[r,n]of e){const e=this.toTopic(r);this.iwantRcvMsgids.inc({topic:e},n)}this.iwantRcvDonthaveMsgids.inc(t)},onForwardMsg(e,t){const r=this.toTopic(e);this.msgForwardCount.inc({topic:r},1),this.msgForwardPeers.inc({topic:r},t)},onPublishMsg(e,t,r,n,i){const o=this.toTopic(e);this.msgPublishCount.inc({topic:o},1),this.msgPublishBytes.inc({topic:o},r*n),this.msgPublishPeersByTopic.inc({topic:o},r),this.directPeersPublishedTotal.inc({topic:o},t.direct),this.floodsubPeersPublishedTotal.inc({topic:o},t.floodsub),this.meshPeersPublishedTotal.inc({topic:o},t.mesh),this.fanoutPeersPublishedTotal.inc({topic:o},t.fanout),this.msgPublishTime.observe({topic:o},i/1e3)},onMsgRecvPreValidation(e){const t=this.toTopic(e);this.msgReceivedPreValidation.inc({topic:t},1)},onMsgRecvError(e){const t=this.toTopic(e);this.msgReceivedError.inc({topic:t},1)},onPrevalidationResult(e,t){const r=this.toTopic(e);switch(t){case wx.duplicate:this.prevalidationDuplicateTotal.inc({topic:r});break;case wx.invalid:this.prevalidationInvalidTotal.inc({topic:r});break;case wx.valid:this.prevalidationValidTotal.inc({topic:r});break;default:this.prevalidationUnknownTotal.inc({topic:r})}},onMsgRecvInvalid(e,t){const r=this.toTopic(e),n=t.reason===mx.Error?t.error:t.reason;this.msgReceivedInvalid.inc({error:n},1),this.msgReceivedInvalidByTopic.inc({topic:r},1)},onDuplicateMsgDelivery(e,t,r){if(this.duplicateMsgDeliveryDelay.observe(t/1e3),r){const t=this.toTopic(e);this.duplicateMsgLateDelivery.inc({topic:t},1)}},onPublishDuplicateMsg(e){const t=this.toTopic(e);this.duplicateMsgIgnored.inc({topic:t},1)},onPeerReadStreamError(){this.peerReadStreamError.inc(1)},onRpcRecvError(){this.rpcRecvError.inc(1)},onRpcDataError(){this.rpcDataError.inc(1)},onRpcRecv(e,t){this.rpcRecvBytes.inc(t),this.rpcRecvCount.inc(1),e.subscriptions&&this.rpcRecvSubscription.inc(e.subscriptions.length),e.messages&&this.rpcRecvMessage.inc(e.messages.length),e.control&&(this.rpcRecvControl.inc(1),e.control.ihave&&this.rpcRecvIHave.inc(e.control.ihave.length),e.control.iwant&&this.rpcRecvIWant.inc(e.control.iwant.length),e.control.graft&&this.rpcRecvGraft.inc(e.control.graft.length),e.control.prune&&this.rpcRecvPrune.inc(e.control.prune.length))},onRpcSent(e,t){if(this.rpcSentBytes.inc(t),this.rpcSentCount.inc(1),e.subscriptions&&this.rpcSentSubscription.inc(e.subscriptions.length),e.messages&&this.rpcSentMessage.inc(e.messages.length),e.control){var r,n,i,o,s,a,c,l;const t=null!==(r=null===(n=e.control.ihave)||void 0===n?void 0:n.length)&&void 0!==r?r:0,u=null!==(i=null===(o=e.control.iwant)||void 0===o?void 0:o.length)&&void 0!==i?i:0,h=null!==(s=null===(a=e.control.graft)||void 0===a?void 0:a.length)&&void 0!==s?s:0,d=null!==(c=null===(l=e.control.prune)||void 0===l?void 0:l.length)&&void 0!==c?c:0;t>0&&this.rpcSentIHave.inc(t),u>0&&this.rpcSentIWant.inc(u),h>0&&this.rpcSentGraft.inc(h),d>0&&this.rpcSentPrune.inc(d),(t>0||u>0||h>0||d>0)&&this.rpcSentControl.inc(1)}},registerScores(e,t){let r=0,n=0,i=0,o=0;for(const s of e)s>=t.graylistThreshold&&r++,s>=t.publishThreshold&&n++,s>=t.gossipThreshold&&i++,s>=0&&o++;this.peersByScoreThreshold.set({threshold:zx.graylist},r),this.peersByScoreThreshold.set({threshold:zx.publish},n),this.peersByScoreThreshold.set({threshold:zx.gossip},i),this.peersByScoreThreshold.set({threshold:zx.mesh},o),this.score.set(e)},registerScoreWeights(e){for(const[t,r]of e.byTopic)this.scoreWeights.set({topic:t,p:"p1"},r.p1w),this.scoreWeights.set({topic:t,p:"p2"},r.p2w),this.scoreWeights.set({topic:t,p:"p3"},r.p3w),this.scoreWeights.set({topic:t,p:"p3b"},r.p3bw),this.scoreWeights.set({topic:t,p:"p4"},r.p4w);this.scoreWeights.set({p:"p5"},e.p5w),this.scoreWeights.set({p:"p6"},e.p6w),this.scoreWeights.set({p:"p7"},e.p7w)},registerScorePerMesh(e,t){const r=new Map;e.forEach(((e,t)=>{var n;const i=null!==(n=this.topicStrToLabel.get(t))&&void 0!==n?n:"unknown";let o=r.get(i);o||(o=new Set,r.set(i,o)),e.forEach((e=>{var t;return null===(t=o)||void 0===t?void 0:t.add(e)}))}));for(const[n,i]of r){const e=[];i.forEach((r=>{var n;e.push(null!==(n=t.get(r))&&void 0!==n?n:0)})),this.scorePerMesh.set({topic:n},e)}}}}(o.metricsRegister,o.metricsTopicStrToLabel,{gossipPromiseExpireSec:this.opts.gossipsubIWantFollowupMs/1e3,behaviourPenaltyThreshold:s.scoreParams.behaviourPenaltyThreshold,maxMeshMessageDeliveriesWindowSec:e/1e3});t.mcacheSize.addCollect((()=>this.onScrapeMetrics(t)));for(const r of this.multicodecs)t.protocolsEnabled.set({protocol:r},1);this.metrics=t}else this.metrics=null;this.gossipTracer=new Mx(this.opts.gossipsubIWantFollowupMs,this.msgIdToStrFn,this.metrics),this.score=new Bx(this.opts.scoreParams,this.metrics,{scoreCacheValidityMs:s.heartbeatInterval}),this.maxInboundStreams=o.maxInboundStreams,this.maxOutboundStreams=o.maxOutboundStreams,this.allowedTopics=s.allowedTopics?new Set(s.allowedTopics):null}getPeers(){return[...this.peers.keys()].map((e=>$C(e)))}isStarted(){return this.status.code===CL.started}async start(){if(this.isStarted())return;this.log("starting"),this.publishConfig=await async function(e,t){switch(e){case dx:{if(!t)throw Error("Must provide PeerId");if(null==t.privateKey)throw Error("Cannot sign message, no private key present");if(null==t.publicKey)throw Error("Cannot sign message, no public key present");const e=await hx(t.privateKey);return{type:gx.Signing,author:t,key:t.publicKey,privateKey:e}}case px:return{type:gx.Anonymous};default:throw new Error('Unknown signature policy "'.concat(e,'"'))}}(this.globalSignaturePolicy,this.components.peerId),this.outboundInflightQueue=$c({objectMode:!0}),rl(this.outboundInflightQueue,(async e=>{for await(const{peerId:t,connection:r}of e)await this.createOutboundStream(t,r)})).catch((e=>this.log.error("outbound inflight queue error",e))),await Promise.all(this.opts.directPeers.map((async e=>{await this.components.peerStore.merge(e.id,{multiaddrs:e.addrs})})));const e=this.components.registrar;await Promise.all(this.multicodecs.map((t=>e.handle(t,this.onIncomingStream.bind(this),{maxInboundStreams:this.maxInboundStreams,maxOutboundStreams:this.maxOutboundStreams}))));const t={onConnect:this.onPeerConnected.bind(this),onDisconnect:this.onPeerDisconnected.bind(this)},r=await Promise.all(this.multicodecs.map((r=>e.register(r,t)))),n=setTimeout(this.runHeartbeat,100);this.status={code:CL.started,registrarTopologyIds:r,heartbeatTimeout:n,hearbeatStartMs:Date.now()+100},this.score.start(),this.directPeerInitial=setTimeout((()=>{Promise.resolve().then((async()=>{await Promise.all(Array.from(this.direct).map((async e=>await this.connect(e))))})).catch((e=>{this.log(e)}))}),1e3),this.log("started")}async stop(){if(this.log("stopping"),this.status.code!==CL.started)return;const{registrarTopologyIds:e}=this.status;this.status={code:CL.stopped};const t=this.components.registrar;await Promise.all(this.multicodecs.map((e=>t.unhandle(e)))),e.forEach((e=>t.unregister(e))),this.outboundInflightQueue.end();for(const r of this.streamsOutbound.values())r.close();this.streamsOutbound.clear();for(const r of this.streamsInbound.values())r.close();this.streamsInbound.clear(),this.peers.clear(),this.subscriptions.clear(),this.heartbeatTimer&&(this.heartbeatTimer.cancel(),this.heartbeatTimer=null),this.score.stop(),this.mesh.clear(),this.fanout.clear(),this.fanoutLastpub.clear(),this.gossip.clear(),this.control.clear(),this.peerhave.clear(),this.iasked.clear(),this.backoff.clear(),this.outbound.clear(),this.gossipTracer.clear(),this.seenCache.clear(),this.fastMsgIdCache&&this.fastMsgIdCache.clear(),this.directPeerInitial&&clearTimeout(this.directPeerInitial),this.log("stopped")}dumpPeerScoreStats(){return this.score.dumpPeerScoreStats()}onIncomingStream(e){let{stream:t,connection:r}=e;if(!this.isStarted())return;const n=r.remotePeer;this.addPeer(n,r.direction,r.remoteAddr),this.createInboundStream(n,t),this.outboundInflightQueue.push({peerId:n,connection:r})}onPeerConnected(e,t){var r;null===(r=this.metrics)||void 0===r||r.newConnectionCount.inc({status:t.status}),this.isStarted()&&"open"===t.status&&(this.addPeer(e,t.direction,t.remoteAddr),this.outboundInflightQueue.push({peerId:e,connection:t}))}onPeerDisconnected(e){this.log("connection ended %p",e),this.removePeer(e)}async createOutboundStream(e,t){if(!this.isStarted())return;const r=e.toString();if(this.peers.has(r)&&!this.streamsOutbound.has(r))try{var n;const i=new yL(await t.newStream(this.multicodecs),(e=>this.log.error("outbound pipe error",e)),{maxBufferSize:this.opts.maxOutboundBufferSize});this.log("create outbound stream %p",e),this.streamsOutbound.set(r,i);const o=i.protocol;o===oT&&this.floodsubPeers.add(r),null===(n=this.metrics)||void 0===n||n.peersPerProtocol.inc({protocol:o},1),this.subscriptions.size>0&&(this.log("send subscriptions to",r),this.sendSubscriptions(r,Array.from(this.subscriptions),!0))}catch(i){this.log.error("createOutboundStream error",i)}}async createInboundStream(e,t){if(!this.isStarted())return;const r=e.toString();if(!this.peers.has(r))return;const n=this.streamsInbound.get(r);void 0!==n&&(this.log("replacing existing inbound steam %s",r),n.close()),this.log("create inbound stream %s",r);const i=new gL(t,{maxDataLength:this.opts.maxInboundDataLength});this.streamsInbound.set(r,i),this.pipePeerReadStream(e,i.source).catch((e=>this.log(e)))}addPeer(e,t,r){const n=e.toString();if(!this.peers.has(n)){this.log("new peer %p",e),this.peers.add(n),this.score.addPeer(n);const i=function(e){for(const t of e.tuples())switch(t[0]){case PL.ip4:case PL.ip6:return ks(t[0],t[1])}return null}(r);null!==i?this.score.addIP(n,i):this.log("Added peer has no IP in current address %s %s",n,r.toString()),this.outbound.has(n)||this.outbound.set(n,"outbound"===t)}}removePeer(e){const t=e.toString();if(!this.peers.has(t))return;this.log("delete peer %p",e),this.peers.delete(t);const r=this.streamsOutbound.get(t),n=this.streamsInbound.get(t);var i;r&&(null===(i=this.metrics)||void 0===i||i.peersPerProtocol.inc({protocol:r.protocol},-1));null===r||void 0===r||r.close(),null===n||void 0===n||n.close(),this.streamsOutbound.delete(t),this.streamsInbound.delete(t);for(const s of this.topics.values())s.delete(t);for(const[s,a]of this.mesh){var o;if(!0===a.delete(t))null===(o=this.metrics)||void 0===o||o.onRemoveFromMesh(s,qx.Dc,1)}for(const s of this.fanout.values())s.delete(t);this.floodsubPeers.delete(t),this.gossip.delete(t),this.control.delete(t),this.outbound.delete(t),this.score.removePeer(t),this.acceptFromWhitelist.delete(t)}get started(){return this.status.code===CL.started}getMeshPeers(e){const t=this.mesh.get(e);return t?Array.from(t):[]}getSubscribers(e){const t=this.topics.get(e);return(t?Array.from(t):[]).map((e=>$C(e)))}getTopics(){return Array.from(this.subscriptions)}async pipePeerReadStream(e,t){try{await rl(t,(async t=>{for await(const a of t)try{var r;const t=a.subarray(),i=wL(t,this.decodeRpcLimits);if(null===(r=this.metrics)||void 0===r||r.onRpcRecv(i,t.length),this.opts.awaitRpcHandler)try{await this.handleReceivedRpc(e,i)}catch(o){var n;null===(n=this.metrics)||void 0===n||n.onRpcRecvError(),this.log(o)}else this.handleReceivedRpc(e,i).catch((e=>{var t;null===(t=this.metrics)||void 0===t||t.onRpcRecvError(),this.log(e)}))}catch(s){var i;null===(i=this.metrics)||void 0===i||i.onRpcDataError(),this.log(s)}}))}catch(n){var r;null===(r=this.metrics)||void 0===r||r.onPeerReadStreamError(),this.handlePeerReadStreamError(n,e)}}handlePeerReadStreamError(e,t){this.log.error(e),this.onPeerDisconnected(t)}async handleReceivedRpc(e,t){var r;if(!this.acceptFrom(e.toString()))return this.log("received message from unacceptable peer %p",e),void(null===(r=this.metrics)||void 0===r||r.rpcRecvNotAccepted.inc());const n=t.subscriptions?t.subscriptions.length:0,i=t.messages?t.messages.length:0;let o=0,s=0,a=0,c=0;if(t.control&&(t.control.ihave&&(o=t.control.ihave.length),t.control.iwant&&(s=t.control.iwant.length),t.control.graft&&(a=t.control.graft.length),t.control.prune&&(c=t.control.prune.length)),this.log("rpc.from ".concat(e.toString()," subscriptions ").concat(n," messages ").concat(i," ihave ").concat(o," iwant ").concat(s," graft ").concat(a," prune ").concat(c)),t.subscriptions&&t.subscriptions.length>0){const r=[];t.subscriptions.forEach((t=>{const n=t.topic,i=!0===t.subscribe;if(null!=n){if(this.allowedTopics&&!this.allowedTopics.has(n))return;this.handleReceivedSubscription(e,n,i),r.push({topic:n,subscribe:i})}})),this.dispatchEvent(new iw("subscription-change",{detail:{peerId:e,subscriptions:r}}))}if(t.messages)for(const l of t.messages){if(this.allowedTopics&&!this.allowedTopics.has(l.topic))continue;const t=this.handleReceivedMessage(e,l).catch((e=>{var t;null===(t=this.metrics)||void 0===t||t.onMsgRecvError(l.topic),this.log(e)}));this.opts.awaitRpcMessageHandler&&await t}t.control&&await this.handleControlMessage(e.toString(),t.control)}handleReceivedSubscription(e,t,r){this.log("subscription update from %p topic %s",e,t);let n=this.topics.get(t);null==n&&(n=new Set,this.topics.set(t,n)),r?n.add(e.toString()):n.delete(e.toString())}async handleReceivedMessage(e,t){var r,n,i;null===(r=this.metrics)||void 0===r||r.onMsgRecvPreValidation(t.topic);const o=await this.validateReceivedMessage(e,t);switch(null===(n=this.metrics)||void 0===n||n.onPrevalidationResult(t.topic,o.code),o.code){case wx.duplicate:return this.score.duplicateMessage(e.toString(),o.msgIdStr,t.topic),this.gossipTracer.deliverMessage(o.msgIdStr,!0),void this.mcache.observeDuplicate(o.msgIdStr,e.toString());case wx.invalid:if(o.msgIdStr){const r=o.msgIdStr;this.score.rejectMessage(e.toString(),r,t.topic,o.reason),this.gossipTracer.rejectMessage(r,o.reason)}else this.score.rejectInvalidMessage(e.toString(),t.topic);return void(null===(i=this.metrics)||void 0===i||i.onMsgRecvInvalid(t.topic,o));case wx.valid:if(this.score.validateMessage(o.messageId.msgIdStr),this.gossipTracer.deliverMessage(o.messageId.msgIdStr),this.mcache.put(o.messageId,t,!this.opts.asyncValidation),this.subscriptions.has(t.topic)){this.components.peerId.equals(e)&&!this.opts.emitSelf||(super.dispatchEvent(new iw("gossipsub:message",{detail:{propagationSource:e,msgId:o.messageId.msgIdStr,msg:o.msg}})),super.dispatchEvent(new iw("message",{detail:o.msg})))}this.opts.asyncValidation||this.forwardMessage(o.messageId.msgIdStr,t,e.toString())}}async validateReceivedMessage(e,t){var r,n;const i=null===(r=this.fastMsgIdFn)||void 0===r?void 0:r.call(this,t),o=void 0!==i?null===(n=this.fastMsgIdCache)||void 0===n?void 0:n.get(i):void 0;if(o)return{code:wx.duplicate,msgIdStr:o};const s=await async function(e,t){var r;switch(e){case px:return null!=t.signature?{valid:!1,error:bx.SignaturePresent}:null!=t.seqno?{valid:!1,error:bx.SeqnoPresent}:null!=t.key?{valid:!1,error:bx.FromPresent}:{valid:!0,message:{type:"unsigned",topic:t.topic,data:null!==(r=t.data)&&void 0!==r?r:new Uint8Array(0)}};case dx:{var n,i;if(null==t.seqno)return{valid:!1,error:bx.InvalidSeqno};if(8!==t.seqno.length)return{valid:!1,error:bx.InvalidSeqno};if(null==t.signature)return{valid:!1,error:bx.InvalidSignature};if(null==t.from)return{valid:!1,error:bx.InvalidPeerId};let e,r;try{e=eT(t.from)}catch(o){return{valid:!1,error:bx.InvalidPeerId}}if(t.key){if(r=lx(t.key),void 0!==e.publicKey&&!Yn(r.bytes,e.publicKey))return{valid:!1,error:bx.InvalidPeerId}}else{if(null==e.publicKey)return{valid:!1,error:bx.InvalidPeerId};r=lx(e.publicKey)}const s={from:t.from,data:t.data,seqno:t.seqno,topic:t.topic,signature:void 0,key:void 0},a=Po([Hx,iT.Message.encode(s).finish()]);return await r.verify(a,t.signature)?{valid:!0,message:{type:"signed",from:e,data:null!==(n=t.data)&&void 0!==n?n:new Uint8Array(0),sequenceNumber:BigInt("0x".concat(Ro(t.seqno,"base16"))),topic:t.topic,signature:t.signature,key:null!==(i=t.key)&&void 0!==i?i:ux(r)}}:{valid:!1,error:bx.InvalidSignature}}}}(this.globalSignaturePolicy,t);if(!s.valid)return{code:wx.invalid,reason:mx.Error,error:s.error};const a=s.message;try{this.dataTransform&&(a.data=this.dataTransform.inboundTransform(t.topic,a.data))}catch(p){return this.log("Invalid message, transform failed",p),{code:wx.invalid,reason:mx.Error,error:bx.TransformFailed}}const c=await this.msgIdFn(a),l=this.msgIdToStrFn(c),u={msgId:c,msgIdStr:l};if(void 0!==i&&this.fastMsgIdCache){var h;if(this.fastMsgIdCache.put(i,l))null===(h=this.metrics)||void 0===h||h.fastMsgIdCacheCollision.inc()}if(this.seenCache.has(l))return{code:wx.duplicate,msgIdStr:l};this.seenCache.put(l);const d=this.topicValidators.get(t.topic);if(null!=d){let t;try{t=await d(e,a)}catch(p){const e=p.code;"ERR_TOPIC_VALIDATOR_IGNORE"===e&&(t=fx.Ignore),t="ERR_TOPIC_VALIDATOR_REJECT"===e?fx.Reject:fx.Ignore}if(t!==fx.Accept)return{code:wx.invalid,reason:vx(t),msgIdStr:l}}return{code:wx.valid,messageId:u,msg:a}}getScore(e){return this.score.score(e)}sendSubscriptions(e,t,r){this.sendRpc(e,{subscriptions:t.map((e=>({topic:e,subscribe:r})))})}async handleControlMessage(e,t){var r;if(void 0===t)return;const n=t.ihave?this.handleIHave(e,t.ihave):[],i=t.iwant?this.handleIWant(e,t.iwant):[],o=t.graft?await this.handleGraft(e,t.graft):[];if(t.prune&&await this.handlePrune(e,t.prune),!n.length&&!i.length&&!o.length)return;const s=this.sendRpc(e,{messages:i,control:{iwant:n,prune:o}}),a=null===(r=n[0])||void 0===r?void 0:r.messageIDs;var c;a&&(s?this.gossipTracer.addPromise(e,a):null===(c=this.metrics)||void 0===c||c.iwantPromiseUntracked.inc(1))}acceptFrom(e){if(this.direct.has(e))return!0;const t=Date.now(),r=this.acceptFromWhitelist.get(e);if(r&&r.messagesAccepted<128&&r.acceptUntil>=t)return r.messagesAccepted+=1,!0;const n=this.score.score(e);return n>=0?this.acceptFromWhitelist.set(e,{messagesAccepted:0,acceptUntil:t+1e3}):this.acceptFromWhitelist.delete(e),n>=this.opts.scoreThresholds.graylistThreshold}handleIHave(e,t){var r,n;if(!t.length)return[];const i=this.score.score(e);var o;if(i<this.opts.scoreThresholds.gossipThreshold)return this.log("IHAVE: ignoring peer %s with score below threshold [ score = %d ]",e,i),null===(o=this.metrics)||void 0===o||o.ihaveRcvIgnored.inc({reason:Vx.LowScore}),[];const s=(null!==(r=this.peerhave.get(e))&&void 0!==r?r:0)+1;var a;if(this.peerhave.set(e,s),s>10)return this.log("IHAVE: peer %s has advertised too many times (%d) within this heartbeat interval; ignoring",e,s),null===(a=this.metrics)||void 0===a||a.ihaveRcvIgnored.inc({reason:Vx.MaxIhave}),[];const c=null!==(n=this.iasked.get(e))&&void 0!==n?n:0;var l;if(c>=cT)return this.log("IHAVE: peer %s has already advertised too many messages (%d); ignoring",e,c),null===(l=this.metrics)||void 0===l||l.ihaveRcvIgnored.inc({reason:Vx.MaxIasked}),[];const u=new Map;if(t.forEach((e=>{var t;let{topicID:r,messageIDs:n}=e;if(!r||!n||!this.mesh.has(r))return;let i=0;n.forEach((e=>{const t=this.msgIdToStrFn(e);this.seenCache.has(t)||(u.set(t,e),i++)})),null===(t=this.metrics)||void 0===t||t.onIhaveRcv(r,n.length,i)})),!u.size)return[];let h=u.size;h+c>cT&&(h=cT-c),this.log("IHAVE: Asking for %d out of %d messages from %s",h,u.size,e);let d=Array.from(u.values());return lT(d),d=d.slice(0,h),this.iasked.set(e,c+h),[{messageIDs:d}]}handleIWant(e,t){var r;if(!t.length)return[];const n=this.score.score(e);if(n<this.opts.scoreThresholds.gossipThreshold)return this.log("IWANT: ignoring peer %s with score below threshold [score = %d]",e,n),[];const i=new Map,o=new Map;let s=0;return t.forEach((t=>{let{messageIDs:r}=t;r&&r.forEach((t=>{var r;const n=this.msgIdToStrFn(t),a=this.mcache.getWithIWantCount(n,e);null!=a?(o.set(a.msg.topic,1+(null!==(r=o.get(a.msg.topic))&&void 0!==r?r:0)),a.count>3?this.log("IWANT: Peer %s has asked for message %s too many times: ignoring request",e,t):i.set(n,a.msg)):s++}))})),null===(r=this.metrics)||void 0===r||r.onIwantRcv(o,s),i.size?(this.log("IWANT: Sending %d messages to %s",i.size,e),Array.from(i.values())):(this.log("IWANT: Could not provide any wanted messages to %s",e),[])}async handleGraft(e,t){const r=[],n=this.score.score(e),i=Date.now();let o=this.opts.doPX;if(t.forEach((t=>{var s,a;let{topicID:c}=t;if(!c)return;const l=this.mesh.get(c);if(!l)return void(o=!1);if(l.has(e))return;if(this.direct.has(e))return this.log("GRAFT: ignoring request from direct peer %s",e),r.push(c),void(o=!1);const u=null===(s=this.backoff.get(c))||void 0===s?void 0:s.get(e);if("number"===typeof u&&i<u){this.log("GRAFT: ignoring backed off peer %s",e),this.score.addPenalty(e,1,Fx.GraftBackoff),o=!1;const t=u+this.opts.graftFloodThreshold-this.opts.pruneBackoff;return i<t&&this.score.addPenalty(e,1,Fx.GraftBackoff),this.addBackoff(e,c),void r.push(c)}return n<0?(this.log("GRAFT: ignoring peer %s with negative score: score=%d, topic=%s",e,n,c),r.push(c),o=!1,void this.addBackoff(e,c)):l.size>=this.opts.Dhi&&!this.outbound.get(e)?(r.push(c),void this.addBackoff(e,c)):(this.log("GRAFT: Add mesh link from %s in %s",e,c),this.score.graft(e,c),l.add(e),void(null===(a=this.metrics)||void 0===a||a.onAddToMesh(c,Kx.Subscribed,1)))})),!r.length)return[];return await Promise.all(r.map((t=>this.makePrune(e,t,o,false))))}async handlePrune(e,t){const r=this.score.score(e);for(const{topicID:i,backoff:o,peers:s}of t){if(null==i)continue;const t=this.mesh.get(i);if(!t)return;var n;if(this.log("PRUNE: Remove mesh link to %s in %s",e,i),this.score.prune(e,i),t.has(e))t.delete(e),null===(n=this.metrics)||void 0===n||n.onRemoveFromMesh(i,qx.Prune,1);if("number"===typeof o&&o>0?this.doAddBackoff(e,i,1e3*o):this.addBackoff(e,i),s&&s.length){if(r<this.opts.scoreThresholds.acceptPXThreshold){this.log("PRUNE: ignoring PX from peer %s with insufficient score [score = %d, topic = %s]",e,r,i);continue}await this.pxConnect(s)}}}addBackoff(e,t){this.doAddBackoff(e,t,this.opts.pruneBackoff)}doAddBackoff(e,t,r){var n;let i=this.backoff.get(t);i||(i=new Map,this.backoff.set(t,i));const o=Date.now()+r;(null!==(n=i.get(e))&&void 0!==n?n:0)<o&&i.set(e,o)}applyIwantPenalties(){this.gossipTracer.getBrokenPromises().forEach(((e,t)=>{this.log("peer %s didn't follow up in %d IWANT requests; adding penalty",t,e),this.score.addPenalty(t,e,Fx.BrokenPromise)}))}clearBackoff(){if(this.heartbeatTicks%15!==0)return;const e=Date.now();this.backoff.forEach(((t,r)=>{t.forEach(((r,n)=>{r+1*this.opts.heartbeatInterval<e&&t.delete(n)})),0===t.size&&this.backoff.delete(r)}))}async directConnect(){const e=[];this.direct.forEach((t=>{this.streamsOutbound.has(t)||e.push(t)})),await Promise.all(e.map((async e=>await this.connect(e))))}async pxConnect(e){e.length>this.opts.prunePeers&&(lT(e),e=e.slice(0,this.opts.prunePeers));const t=[];await Promise.all(e.map((async e=>{if(!e.peerID)return;const r=eT(e.peerID),n=r.toString();if(!this.peers.has(n))if(e.signedPeerRecord)try{if(!await this.components.peerStore.consumePeerRecord(e.signedPeerRecord,r))return void this.log("bogus peer record obtained through px: could not add peer record to address book");t.push(n)}catch(i){this.log("bogus peer record obtained through px: invalid signature or not a peer record")}else t.push(n)}))),t.length&&await Promise.all(t.map((async e=>await this.connect(e))))}async connect(e){this.log("Initiating connection with %s",e);const t=$C(e),r=await this.components.connectionManager.openConnection(t);for(const i of this.multicodecs)for(const e of this.components.registrar.getTopologies(i)){var n;null===(n=e.onConnect)||void 0===n||n.call(e,t,r)}}subscribe(e){if(this.status.code!==CL.started)throw new Error("Pubsub has not started");if(!this.subscriptions.has(e)){this.subscriptions.add(e);for(const t of this.peers.keys())this.sendSubscriptions(t,[e],!0)}this.join(e)}unsubscribe(e){if(this.status.code!==CL.started)throw new Error("Pubsub is not started");const t=this.subscriptions.delete(e);if(this.log("unsubscribe from %s - am subscribed %s",e,t),t)for(const r of this.peers.keys())this.sendSubscriptions(r,[e],!1);this.leave(e)}join(e){var t;if(this.status.code!==CL.started)throw new Error("Gossipsub has not started");if(this.mesh.has(e))return;this.log("JOIN %s",e),null===(t=this.metrics)||void 0===t||t.onJoin(e);const r=new Set,n=this.backoff.get(e),i=this.fanout.get(e);var o;i&&(this.fanout.delete(e),this.fanoutLastpub.delete(e),i.forEach((e=>{this.direct.has(e)||!(this.score.score(e)>=0)||n&&n.has(e)||r.add(e)})),null===(o=this.metrics)||void 0===o||o.onAddToMesh(e,Kx.Fanout,r.size));if(r.size<this.opts.D){var s;const t=r.size;this.getRandomGossipPeers(e,this.opts.D,(e=>!r.has(e)&&!this.direct.has(e)&&this.score.score(e)>=0&&(!n||!n.has(e)))).forEach((e=>{r.add(e)})),null===(s=this.metrics)||void 0===s||s.onAddToMesh(e,Kx.Random,r.size-t)}this.mesh.set(e,r),r.forEach((t=>{this.log("JOIN: Add mesh link to %s in %s",t,e),this.sendGraft(t,e)}))}leave(e){var t;if(this.status.code!==CL.started)throw new Error("Gossipsub has not started");this.log("LEAVE %s",e),null===(t=this.metrics)||void 0===t||t.onLeave(e);const r=this.mesh.get(e);r&&(Promise.all(Array.from(r).map((async t=>(this.log("LEAVE: Remove mesh link to %s in %s",t,e),await this.sendPrune(t,e))))).catch((e=>{this.log("Error sending prunes to mesh peers",e)})),this.mesh.delete(e))}selectPeersToForward(e,t,r){const n=new Set,i=this.topics.get(e);i&&(this.direct.forEach((e=>{!i.has(e)||t===e||null!==r&&void 0!==r&&r.has(e)||n.add(e)})),this.floodsubPeers.forEach((e=>{i.has(e)&&t!==e&&(null===r||void 0===r||!r.has(e))&&this.score.score(e)>=this.opts.scoreThresholds.publishThreshold&&n.add(e)})));const o=this.mesh.get(e);return o&&o.size>0&&o.forEach((e=>{t===e||null!==r&&void 0!==r&&r.has(e)||n.add(e)})),n}selectPeersToPublish(e){const t=new Set,r={direct:0,floodsub:0,mesh:0,fanout:0},n=this.topics.get(e);if(n)if(this.opts.floodPublish)n.forEach((e=>{this.direct.has(e)?(t.add(e),r.direct++):this.score.score(e)>=this.opts.scoreThresholds.publishThreshold&&(t.add(e),r.floodsub++)}));else{this.direct.forEach((e=>{n.has(e)&&(t.add(e),r.direct++)})),this.floodsubPeers.forEach((e=>{n.has(e)&&this.score.score(e)>=this.opts.scoreThresholds.publishThreshold&&(t.add(e),r.floodsub++)}));const i=this.mesh.get(e);if(i&&i.size>0)i.forEach((e=>{t.add(e),r.mesh++}));else{const n=this.fanout.get(e);if(n&&n.size>0)n.forEach((e=>{t.add(e),r.fanout++}));else{const n=this.getRandomGossipPeers(e,this.opts.D,(e=>this.score.score(e)>=this.opts.scoreThresholds.publishThreshold));n.size>0&&(this.fanout.set(e,n),n.forEach((e=>{t.add(e),r.fanout++})))}this.fanoutLastpub.set(e,Date.now())}}return{tosend:t,tosendCount:r}}forwardMessage(e,t,r,n){var i;r&&this.score.deliverMessage(r,e,t.topic);const o=this.selectPeersToForward(t.topic,r,n);o.forEach((e=>{this.sendRpc(e,{messages:[t]})})),null===(i=this.metrics)||void 0===i||i.onForwardMsg(t.topic,o.size)}async publish(e,t,r){var n,i,o;const s=Date.now(),a=this.dataTransform?this.dataTransform.outboundTransform(e,t):t;if(null==this.publishConfig)throw Error("PublishError.Uninitialized");const{raw:c,msg:l}=await async function(e,t,r,n){switch(e.type){case gx.Signing:{const i={from:e.author.toBytes(),data:n,seqno:qT(8),topic:t,signature:void 0,key:void 0},o=Po([Hx,iT.Message.encode(i).finish()]);return i.signature=await e.privateKey.sign(o),i.key=e.key,{raw:i,msg:{type:"signed",from:e.author,data:r,sequenceNumber:BigInt("0x".concat(Ro(i.seqno,"base16"))),topic:t,signature:i.signature,key:i.key}}}case gx.Anonymous:return{raw:{from:void 0,data:n,seqno:void 0,topic:t,signature:void 0,key:void 0},msg:{type:"unsigned",data:r,topic:t}}}}(this.publishConfig,e,t,a),u=await this.msgIdFn(l),h=this.msgIdToStrFn(u),d=null!==(n=null===r||void 0===r?void 0:r.ignoreDuplicatePublishError)&&void 0!==n?n:this.opts.ignoreDuplicatePublishError;if(this.seenCache.has(h)){var p;if(d)return null===(p=this.metrics)||void 0===p||p.onPublishDuplicateMsg(e),{recipients:[]};throw Error("PublishError.Duplicate")}const{tosend:f,tosendCount:y}=this.selectPeersToPublish(e),g=!0===this.opts.emitSelf&&this.subscriptions.has(e),m=null!==(i=null===r||void 0===r?void 0:r.allowPublishToZeroPeers)&&void 0!==i?i:this.opts.allowPublishToZeroPeers;if(0===f.size&&!m&&!g)throw Error("PublishError.InsufficientPeers");this.seenCache.put(h),this.mcache.put({msgId:u,msgIdStr:h},c,!0),this.publishedMessageIds.put(h);for(const w of f){this.sendRpc(w,{messages:[c]})||f.delete(w)}const b=Date.now()-s;return null===(o=this.metrics)||void 0===o||o.onPublishMsg(e,y,f.size,null!=c.data?c.data.length:0,b),g&&(f.add(this.components.peerId.toString()),super.dispatchEvent(new iw("gossipsub:message",{detail:{propagationSource:this.components.peerId,msgId:h,msg:l}})),super.dispatchEvent(new iw("message",{detail:l}))),{recipients:Array.from(f.values()).map((e=>$C(e)))}}reportMessageValidationResult(e,t,r){var n;let i;if(r===fx.Accept){if(i=this.mcache.validate(e),null!=i){const{message:r,originatingPeers:n}=i;this.score.deliverMessage(t,e,r.topic),this.forwardMessage(e,i.message,t,n)}}else if(i=this.mcache.remove(e),i){const n=vx(r),{message:o,originatingPeers:s}=i;this.score.rejectMessage(t,e,o.topic,n);for(const t of s)this.score.rejectMessage(t,e,o.topic,n)}const o=this.score.messageFirstSeenTimestampMs(e);null===(n=this.metrics)||void 0===n||n.onReportValidation(i,r,o)}sendGraft(e,t){const r=[{topicID:t}];this.sendRpc(e,{control:{graft:r}})}async sendPrune(e,t){const r=[await this.makePrune(e,t,this.opts.doPX,!0)];this.sendRpc(e,{control:{prune:r}})}sendRpc(e,t){var r;const n=this.streamsOutbound.get(e);if(!n)return this.log("Cannot send RPC to ".concat(e," as there is no open stream to it available")),!1;const i=this.control.get(e);i&&(this.piggybackControl(e,t,i),this.control.delete(e));const o=this.gossip.get(e);o&&(this.piggybackGossip(e,t,o),this.gossip.delete(e));const s=iT.encode(t).finish();try{n.push(s)}catch(a){return this.log.error("Cannot send rpc to ".concat(e),a),i&&this.control.set(e,i),o&&this.gossip.set(e,o),!1}return null===(r=this.metrics)||void 0===r||r.onRpcSent(t,s.length),!0}piggybackControl(e,t,r){if(r.graft){t.control||(t.control={}),t.control.graft||(t.control.graft=[]);for(const i of r.graft){var n;i.topicID&&null!==(n=this.mesh.get(i.topicID))&&void 0!==n&&n.has(e)&&t.control.graft.push(i)}}if(r.prune){t.control||(t.control={}),t.control.prune||(t.control.prune=[]);for(const n of r.prune){var i;!n.topicID||null!==(i=this.mesh.get(n.topicID))&&void 0!==i&&i.has(e)||t.control.prune.push(n)}}}piggybackGossip(e,t,r){t.control||(t.control={}),t.control.ihave=r}async sendGraftPrune(e,t,r){const n=this.opts.doPX;for(const[i,o]of e){const e=o.map((e=>({topicID:e})));let s=[];const a=t.get(i);a&&(s=await Promise.all(a.map((async e=>{var t;return await this.makePrune(i,e,n&&!(null!==(t=r.get(i))&&void 0!==t&&t),false)}))),t.delete(i)),this.sendRpc(i,{control:{graft:e,prune:s}})}for(const[i,o]of t){const e=await Promise.all(o.map((async e=>{var t;return await this.makePrune(i,e,n&&!(null!==(t=r.get(i))&&void 0!==t&&t),false)})));this.sendRpc(i,{control:{prune:e}})}}emitGossip(e){const t=this.mcache.getGossipIDs(new Set(e.keys()));for(const[n,i]of e){var r;this.doEmitGossip(n,i,null!==(r=t.get(n))&&void 0!==r?r:[])}}doEmitGossip(e,t,r){if(!r.length)return;if(lT(r),r.length>cT&&this.log("too many messages for gossip; will truncate IHAVE list (%d messages)",r.length),!t.size)return;let n=this.opts.Dlazy;const i=.25*t.size;let o=t;i>n&&(n=i),n>o.size?n=o.size:o=lT(Array.from(o)).slice(0,n),o.forEach((t=>{let n=r;r.length>cT&&(n=lT(n.slice()).slice(0,cT)),this.pushGossip(t,{topicID:e,messageIDs:n})}))}flush(){for(const[e,t]of this.gossip.entries())this.gossip.delete(e),this.sendRpc(e,{control:{ihave:t}});for(const[e,t]of this.control.entries())this.control.delete(e),this.sendRpc(e,{control:{graft:t.graft,prune:t.prune}})}pushGossip(e,t){this.log("Add gossip to %s",e);const r=this.gossip.get(e)||[];this.gossip.set(e,r.concat(t))}async makePrune(e,t,r,n){if(this.score.prune(e,t),this.streamsOutbound.get(e).protocol===sT)return{topicID:t,peers:[]};const i=n?this.opts.unsubcribeBackoff:this.opts.pruneBackoff,o=i/1e3;if(this.doAddBackoff(e,t,i),!r)return{topicID:t,peers:[],backoff:o};const s=this.getRandomGossipPeers(t,this.opts.prunePeers,(t=>t!==e&&this.score.score(t)>=0)),a=await Promise.all(Array.from(s).map((async e=>{var t;const r=$C(e);let n;try{n=await this.components.peerStore.get(r)}catch(i){if("ERR_NOT_FOUND"!==i.code)throw i}return{peerID:r.toBytes(),signedPeerRecord:null===(t=n)||void 0===t?void 0:t.peerRecordEnvelope}})));return{topicID:t,peers:a,backoff:o}}async heartbeat(){var e,t;const{D:r,Dlo:n,Dhi:i,Dscore:o,Dout:s,fanoutTTL:a}=this.opts;this.heartbeatTicks++;const c=new Map,l=e=>{let t=c.get(e);return void 0===t&&(t=this.score.score(e),c.set(e,t)),t},u=new Map,h=new Map,d=new Map;this.clearBackoff(),this.peerhave.clear(),null===(e=this.metrics)||void 0===e||e.cacheSize.set({cache:"iasked"},this.iasked.size),this.iasked.clear(),this.applyIwantPenalties(),this.heartbeatTicks%this.opts.directConnectTicks===0&&await this.directConnect(),null===(t=this.fastMsgIdCache)||void 0===t||t.prune(),this.seenCache.prune(),this.gossipTracer.prune(),this.publishedMessageIds.prune();const p=new Map;this.mesh.forEach(((e,t)=>{const a=this.topics.get(t),c=new Set,f=new Set;if(p.set(t,f),a){const r=lT(Array.from(a)),n=this.backoff.get(t);for(const t of r){const r=this.streamsOutbound.get(t);if(r&&this.multicodecs.includes(r.protocol)&&!e.has(t)&&!this.direct.has(t)){const e=l(t);n&&n.has(t)||!(e>=0)||c.add(t),e>=this.opts.scoreThresholds.gossipThreshold&&f.add(t)}}}const y=(r,n)=>{var i;this.log("HEARTBEAT: Remove mesh link to %s in %s",r,t),this.addBackoff(r,t),e.delete(r),l(r)>=this.opts.scoreThresholds.gossipThreshold&&f.add(r),null===(i=this.metrics)||void 0===i||i.onRemoveFromMesh(t,n,1);const o=h.get(r);o?o.push(t):h.set(r,[t])},g=(r,n)=>{var i;this.log("HEARTBEAT: Add mesh link to %s in %s",r,t),this.score.graft(r,t),e.add(r),f.delete(r),null===(i=this.metrics)||void 0===i||i.onAddToMesh(t,n,1);const o=u.get(r);o?o.push(t):u.set(r,[t])};if(e.forEach((e=>{const r=l(e);r<0&&(this.log("HEARTBEAT: Prune peer %s with negative score: score=%d, topic=%s",e,r,t),y(e,qx.BadScore),d.set(e,!0))})),e.size<n){const t=function(e,t){return Dx(e,t,(()=>!0))}(c,r-e.size);t.forEach((e=>{g(e,Kx.NotEnough)}))}if(e.size>i){let t=Array.from(e);t.sort(((e,t)=>l(t)-l(e))),t=t.slice(0,o).concat(lT(t.slice(o)));let n=0;if(t.slice(0,r).forEach((e=>{this.outbound.get(e)&&n++})),n<s){const e=e=>{const r=t[e];for(let n=e;n>0;n--)t[n]=t[n-1];t[0]=r};if(n>0){let i=n;for(let n=1;n<r&&i>0;n++)this.outbound.get(t[n])&&(e(n),i--)}let i=r-n;for(let n=r;n<t.length&&i>0;n++)this.outbound.get(t[n])&&(e(n),i--)}t.slice(r).forEach((e=>{y(e,qx.Excess)}))}if(e.size>=n){let t=0;if(e.forEach((e=>{this.outbound.get(e)&&t++})),t<s){Dx(c,s-t,(e=>!0===this.outbound.get(e))).forEach((e=>{g(e,Kx.Outbound)}))}}if(this.heartbeatTicks%this.opts.opportunisticGraftTicks===0&&e.size>1){const r=Array.from(e).sort(((e,t)=>l(e)-l(t))),n=Math.floor(e.size/2),i=l(r[n]);if(i<this.opts.scoreThresholds.opportunisticGraftThreshold){const e=Dx(c,this.opts.opportunisticGraftPeers,(e=>l(e)>i));for(const r of e)this.log("HEARTBEAT: Opportunistically graft peer %s on topic %s",r,t),g(r,Kx.Opportunistic)}}}));const f=Date.now();this.fanoutLastpub.forEach(((e,t)=>{e+a<f&&(this.fanout.delete(t),this.fanoutLastpub.delete(t))})),this.fanout.forEach(((e,t)=>{const n=this.topics.get(t);e.forEach((t=>{(!n.has(t)||l(t)<this.opts.scoreThresholds.publishThreshold)&&e.delete(t)}));const i=this.topics.get(t),o=[],s=new Set;if(p.set(t,s),i){const t=lT(Array.from(i));for(const r of t){const t=this.streamsOutbound.get(r);if(t&&this.multicodecs.includes(t.protocol)&&!e.has(r)&&!this.direct.has(r)){const e=l(r);e>=this.opts.scoreThresholds.publishThreshold&&o.push(r),e>=this.opts.scoreThresholds.gossipThreshold&&s.add(r)}}}if(e.size<r){const t=r-e.size;o.slice(0,t).forEach((t=>{e.add(t),null===s||void 0===s||s.delete(t)}))}})),this.emitGossip(p),await this.sendGraftPrune(u,h,d),this.flush(),this.mcache.shift(),this.dispatchEvent(new iw("gossipsub:heartbeat"))}getRandomGossipPeers(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:()=>!0;const n=this.topics.get(e);if(!n)return new Set;let i=[];return n.forEach((e=>{const t=this.streamsOutbound.get(e);t&&this.multicodecs.includes(t.protocol)&&r(e)&&i.push(e)})),i=lT(i),t>0&&i.length>t&&(i=i.slice(0,t)),new Set(i)}onScrapeMetrics(e){var t,r;e.mcacheSize.set(this.mcache.size),e.mcacheNotValidatedCount.set(this.mcache.notValidatedCount),e.cacheSize.set({cache:"direct"},this.direct.size),e.cacheSize.set({cache:"seenCache"},this.seenCache.size),e.cacheSize.set({cache:"fastMsgIdCache"},null!==(t=null===(r=this.fastMsgIdCache)||void 0===r?void 0:r.size)&&void 0!==t?t:0),e.cacheSize.set({cache:"publishedMessageIds"},this.publishedMessageIds.size),e.cacheSize.set({cache:"mcache"},this.mcache.size),e.cacheSize.set({cache:"score"},this.score.size),e.cacheSize.set({cache:"gossipTracer.promises"},this.gossipTracer.size),e.cacheSize.set({cache:"gossipTracer.requests"},this.gossipTracer.requestMsByMsgSize),e.cacheSize.set({cache:"topics"},this.topics.size),e.cacheSize.set({cache:"subscriptions"},this.subscriptions.size),e.cacheSize.set({cache:"mesh"},this.mesh.size),e.cacheSize.set({cache:"fanout"},this.fanout.size),e.cacheSize.set({cache:"peers"},this.peers.size),e.cacheSize.set({cache:"streamsOutbound"},this.streamsOutbound.size),e.cacheSize.set({cache:"streamsInbound"},this.streamsInbound.size),e.cacheSize.set({cache:"acceptFromWhitelist"},this.acceptFromWhitelist.size),e.cacheSize.set({cache:"gossip"},this.gossip.size),e.cacheSize.set({cache:"control"},this.control.size),e.cacheSize.set({cache:"peerhave"},this.peerhave.size),e.cacheSize.set({cache:"outbound"},this.outbound.size);let n=0;const i=Date.now();e.connectedPeersBackoffSec.reset();for(const u of this.backoff.values()){n+=u.size;for(const[t,r]of u.entries())this.peers.has(t)&&e.connectedPeersBackoffSec.observe(Math.max(0,r-i)/1e3)}e.cacheSize.set({cache:"backoff"},n);for(const[u,h]of this.topics)e.topicPeersCount.set({topicStr:u},h.size);for(const[u,h]of this.mesh)e.meshPeerCounts.set({topicStr:u},h.size);const o=[],s=new Map;e.behaviourPenalty.reset();for(const u of this.peers.keys()){var a,c;const t=this.score.score(u);o.push(t),s.set(u,t),e.behaviourPenalty.observe(null!==(a=null===(c=this.score.peerStats.get(u))||void 0===c?void 0:c.behaviourPenalty)&&void 0!==a?a:0)}e.registerScores(o,this.opts.scoreThresholds),e.registerScorePerMesh(this.mesh,s);const l=function(e,t,r,n,i){const o={byTopic:new Map,p5w:[],p6w:[],p7w:[],score:[]};for(const s of e){const e=t.get(s);if(e){const t=fL(s,e,r,n,i);for(const[e,r]of t.byTopic){let t=o.byTopic.get(e);t||(t={p1w:[],p2w:[],p3w:[],p3bw:[],p4w:[]},o.byTopic.set(e,t)),t.p1w.push(r.p1w),t.p2w.push(r.p2w),t.p3w.push(r.p3w),t.p3bw.push(r.p3bw),t.p4w.push(r.p4w)}o.p5w.push(t.p5w),o.p6w.push(t.p6w),o.p7w.push(t.p7w),o.score.push(t.score)}else o.p5w.push(0),o.p6w.push(0),o.p7w.push(0),o.score.push(0)}return o}(this.peers.keys(),this.score.peerStats,this.score.params,this.score.peerIPs,e.topicStrToLabel);e.registerScoreWeights(l)}}Br(TL,"multicodec",aT);const xL=ia("waku:relay");function DL(e,t){const r=performance.now();xL("validating message from ".concat(e," received on ").concat(t.topic));let n=fx.Accept;try{const e=ka.decode(t.data);e.contentTopic&&e.contentTopic.length&&e.payload&&e.payload.length||(n=fx.Reject)}catch(o){n=fx.Reject}const i=performance.now();return xL("Validation time (must be <100ms): ".concat(i-r,"ms")),n}const NL=ia("waku:message:topic-only");class LL{constructor(e,t){Br(this,"pubSubTopic",void 0),Br(this,"proto",void 0),Br(this,"payload",new Uint8Array),Br(this,"rateLimitProof",void 0),Br(this,"timestamp",void 0),Br(this,"meta",void 0),Br(this,"ephemeral",void 0),this.pubSubTopic=e,this.proto=t}get contentTopic(){return this.proto.contentTopic}}class BL{constructor(){Br(this,"contentTopic","")}fromWireToProtoObj(e){const t=xa.decode(e);return NL("Message decoded",t),Promise.resolve({contentTopic:t.contentTopic,payload:new Uint8Array,rateLimitProof:void 0,timestamp:void 0,meta:void 0,version:void 0,ephemeral:void 0})}async fromProtoObj(e,t){return new LL(e,t)}}const ML=ia("waku:relay");class OL{constructor(e,t){var r;if(Br(this,"pubSubTopic",void 0),Br(this,"defaultDecoder",void 0),Br(this,"gossipSub",void 0),Br(this,"observers",void 0),!this.isRelayPubSub(e.services.pubsub))throw Error("Failed to initialize Relay. libp2p.pubsub does not support ".concat(OL.multicodec));this.gossipSub=e.services.pubsub,this.pubSubTopic=null!==(r=null===t||void 0===t?void 0:t.pubSubTopic)&&void 0!==r?r:mc,this.gossipSub.isStarted()&&this.gossipSubSubscribe(this.pubSubTopic),this.observers=new Map,this.defaultDecoder=new BL}async start(){if(this.gossipSub.isStarted())throw Error("GossipSub already started.");await this.gossipSub.start(),this.gossipSubSubscribe(this.pubSubTopic)}async send(e,t){const r=[];if(!Pl(t.payload))return ML("Failed to send waku relay: message is bigger that 1MB"),{recipients:r,errors:[Ws.SIZE_TOO_BIG]};const n=await e.toWire(t);return n?this.gossipSub.publish(this.pubSubTopic,n):(ML("Failed to encode message, aborting publish"),{recipients:r,errors:[Ws.ENCODE_FAILED]})}subscribe(e,t){const r=Array.isArray(e)?UL(e,t):UL([e],t);for(const n of r.keys()){const e=this.observers.get(n)||new Set,t=r.get(n)||new Set;this.observers.set(n,KL(e,t))}return()=>{for(const e of r.keys()){const t=qL(this.observers.get(e)||new Set,r.get(e)||new Set);t.size?this.observers.set(e,t):this.observers.delete(e)}}}toSubscriptionIterator(e){return vc(this,e)}getActiveSubscriptions(){const e=new Map;return e.set(this.pubSubTopic,this.observers.keys()),e}getMeshPeers(e){return this.gossipSub.getMeshPeers(null!==e&&void 0!==e?e:this.pubSubTopic)}async processIncomingMessage(e,t){const r=await this.defaultDecoder.fromWireToProtoObj(t);if(!r||!r.contentTopic)return void ML("Message does not have a content topic, skipping");const n=this.observers.get(r.contentTopic);n&&await Promise.all(Array.from(n).map((n=>{let{decoder:i,callback:o}=n;return(async()=>{try{const n=await i.fromWireToProtoObj(t);if(!n)return void ML("Internal error: message previously decoded failed on 2nd pass.");const s=await i.fromProtoObj(e,n);s?await o(s):ML("Failed to decode messages on",r.contentTopic)}catch(n){ML("Error while decoding message:",n)}})()})))}gossipSubSubscribe(e){this.gossipSub.addEventListener("gossipsub:message",(t=>{t.detail.msg.topic===e&&(ML("Message received on ".concat(e)),this.processIncomingMessage(t.detail.msg.topic,t.detail.msg.data).catch((e=>ML("Failed to process incoming message",e))))})),this.gossipSub.topicValidators.set(e,DL),this.gossipSub.subscribe(e)}isRelayPubSub(e){var t;return(null===e||void 0===e||null===(t=e.multicodecs)||void 0===t?void 0:t.includes(OL.multicodec))||!1}}function UL(e,t){const r=Array.from(bc(e).entries()).map((e=>{let[r,n]=e;return[r,new Set(n.map((e=>({decoder:e,callback:t}))))]}));return new Map(r)}function KL(e,t){for(const r of t.values())e.add(r);return e}function qL(e,t){for(const r of t.values())e.has(r)&&e.delete(r);return e}function FL(e,t){Ur(e,t),t.add(e)}function VL(e,t,r){if(!t.has(e))throw new TypeError("attempted to get private field on non-instance");return r}Br(OL,"multicodec","/vac/waku/relay/2.0.0");var zL=__webpack_require__(7465);var jL=function(e,t){if(e.length>=255)throw new TypeError("Alphabet too long");for(var r=new Uint8Array(256),n=0;n<r.length;n++)r[n]=255;for(var i=0;i<e.length;i++){var o=e.charAt(i),s=o.charCodeAt(0);if(255!==r[s])throw new TypeError(o+" is ambiguous");r[s]=i}var a=e.length,c=e.charAt(0),l=Math.log(a)/Math.log(256),u=Math.log(256)/Math.log(a);function h(e){if("string"!==typeof e)throw new TypeError("Expected String");if(0===e.length)return new Uint8Array;var t=0;if(" "!==e[t]){for(var n=0,i=0;e[t]===c;)n++,t++;for(var o=(e.length-t)*l+1>>>0,s=new Uint8Array(o);e[t];){var u=r[e.charCodeAt(t)];if(255===u)return;for(var h=0,d=o-1;(0!==u||h<i)&&-1!==d;d--,h++)u+=a*s[d]>>>0,s[d]=u%256>>>0,u=u/256>>>0;if(0!==u)throw new Error("Non-zero carry");i=h,t++}if(" "!==e[t]){for(var p=o-i;p!==o&&0===s[p];)p++;for(var f=new Uint8Array(n+(o-p)),y=n;p!==o;)f[y++]=s[p++];return f}}}return{encode:function(t){if(t instanceof Uint8Array||(ArrayBuffer.isView(t)?t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength):Array.isArray(t)&&(t=Uint8Array.from(t))),!(t instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(0===t.length)return"";for(var r=0,n=0,i=0,o=t.length;i!==o&&0===t[i];)i++,r++;for(var s=(o-i)*u+1>>>0,l=new Uint8Array(s);i!==o;){for(var h=t[i],d=0,p=s-1;(0!==h||d<n)&&-1!==p;p--,d++)h+=256*l[p]>>>0,l[p]=h%a>>>0,h=h/a>>>0;if(0!==h)throw new Error("Non-zero carry");n=d,i++}for(var f=s-n;f!==s&&0===l[f];)f++;for(var y=c.repeat(r);f<s;++f)y+=e.charAt(l[f]);return y},decodeUnsafe:h,decode:function(e){var r=h(e);if(r)return r;throw new Error("Non-".concat(t," character"))}}};const HL=jL,GL=(new Uint8Array(0),e=>{if(e instanceof Uint8Array&&"Uint8Array"===e.constructor.name)return e;if(e instanceof ArrayBuffer)return new Uint8Array(e);if(ArrayBuffer.isView(e))return new Uint8Array(e.buffer,e.byteOffset,e.byteLength);throw new Error("Unknown type, must be binary type")});class WL{constructor(e,t,r){this.name=e,this.prefix=t,this.baseEncode=r}encode(e){if(e instanceof Uint8Array)return"".concat(this.prefix).concat(this.baseEncode(e));throw Error("Unknown type, must be binary type")}}class YL{constructor(e,t,r){if(this.name=e,this.prefix=t,void 0===t.codePointAt(0))throw new Error("Invalid prefix character");this.prefixCodePoint=t.codePointAt(0),this.baseDecode=r}decode(e){if("string"===typeof e){if(e.codePointAt(0)!==this.prefixCodePoint)throw Error("Unable to decode multibase string ".concat(JSON.stringify(e),", ").concat(this.name," decoder only supports inputs prefixed with ").concat(this.prefix));return this.baseDecode(e.slice(this.prefix.length))}throw Error("Can only multibase decode strings")}or(e){return XL(this,e)}}class QL{constructor(e){this.decoders=e}or(e){return XL(this,e)}decode(e){const t=e[0],r=this.decoders[t];if(r)return r.decode(e);throw RangeError("Unable to decode multibase string ".concat(JSON.stringify(e),", only inputs prefixed with ").concat(Object.keys(this.decoders)," are supported"))}}const XL=(e,t)=>new QL({...e.decoders||{[e.prefix]:e},...t.decoders||{[t.prefix]:t}});class JL{constructor(e,t,r,n){this.name=e,this.prefix=t,this.baseEncode=r,this.baseDecode=n,this.encoder=new WL(e,t,r),this.decoder=new YL(e,t,n)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}}const ZL=e=>{let{name:t,prefix:r,encode:n,decode:i}=e;return new JL(t,r,n,i)},$L=e=>{let{prefix:t,name:r,alphabet:n}=e;const{encode:i,decode:o}=HL(n,r);return ZL({prefix:t,name:r,encode:i,decode:e=>GL(o(e))})},eB=e=>{let{name:t,prefix:r,bitsPerChar:n,alphabet:i}=e;return ZL({prefix:r,name:t,encode:e=>((e,t,r)=>{const n="="===t[t.length-1],i=(1<<r)-1;let o="",s=0,a=0;for(let c=0;c<e.length;++c)for(a=a<<8|e[c],s+=8;s>r;)s-=r,o+=t[i&a>>s];if(s&&(o+=t[i&a<<r-s]),n)for(;o.length*r&7;)o+="=";return o})(e,i,n),decode:e=>((e,t,r,n)=>{const i={};for(let u=0;u<t.length;++u)i[t[u]]=u;let o=e.length;for(;"="===e[o-1];)--o;const s=new Uint8Array(o*r/8|0);let a=0,c=0,l=0;for(let u=0;u<o;++u){const t=i[e[u]];if(void 0===t)throw new SyntaxError("Non-".concat(n," character"));c=c<<r|t,a+=r,a>=8&&(a-=8,s[l++]=255&c>>a)}if(a>=r||255&c<<8-a)throw new SyntaxError("Unexpected end of data");return s})(e,i,n,t)})},tB=$L({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),rB=$L({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var nB=function e(t,r,n){r=r||[];var i=n=n||0;for(;t>=sB;)r[n++]=255&t|iB,t/=128;for(;t&oB;)r[n++]=255&t|iB,t>>>=7;return r[n]=0|t,e.bytes=n-i+1,r},iB=128,oB=-128,sB=Math.pow(2,31);var aB=function e(t,r){var n,i=0,o=0,s=r=r||0,a=t.length;do{if(s>=a)throw e.bytes=0,new RangeError("Could not decode varint");n=t[s++],i+=o<28?(n&lB)<<o:(n&lB)*Math.pow(2,o),o+=7}while(n>=cB);return e.bytes=s-r,i},cB=128,lB=127;var uB=Math.pow(2,7),hB=Math.pow(2,14),dB=Math.pow(2,21),pB=Math.pow(2,28),fB=Math.pow(2,35),yB=Math.pow(2,42),gB=Math.pow(2,49),mB=Math.pow(2,56),bB=Math.pow(2,63);const wB={encode:nB,decode:aB,encodingLength:function(e){return e<uB?1:e<hB?2:e<dB?3:e<pB?4:e<fB?5:e<yB?6:e<gB?7:e<mB?8:e<bB?9:10}},vB=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return[wB.decode(e,t),wB.decode.bytes]},_B=function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;return wB.encode(e,t,r),t},EB=e=>wB.encodingLength(e),SB=(e,t)=>{const r=t.byteLength,n=EB(e),i=n+EB(r),o=new Uint8Array(i+r);return _B(e,o,0),_B(r,o,n),o.set(t,i),new kB(e,r,t,o)},AB=e=>{const t=GL(e),[r,n]=vB(t),[i,o]=vB(t.subarray(n)),s=t.subarray(n+o);if(s.byteLength!==i)throw new Error("Incorrect length");return new kB(r,i,s,t)};class kB{constructor(e,t,r,n){this.code=e,this.size=t,this.digest=r,this.bytes=n}}const IB=GL,RB={code:0,name:"identity",encode:IB,digest:e=>SB(0,IB(e))},PB=e=>{let{name:t,code:r,encode:n}=e;return new CB(t,r,n)};class CB{constructor(e,t,r){this.name=e,this.code=t,this.encode=r}digest(e){if(e instanceof Uint8Array){const t=this.encode(e);return t instanceof Uint8Array?SB(this.code,t):t.then((e=>SB(this.code,e)))}throw Error("Unknown type, must be binary type")}}const TB=e=>async t=>new Uint8Array(await crypto.subtle.digest(e,t)),xB=PB({name:"sha2-256",code:18,encode:TB("SHA-256")}),DB=PB({name:"sha2-512",code:19,encode:TB("SHA-512")}),NB=32,LB=64,BB=32;function MB(e,t){const r=new Uint8Array(LB);for(let n=0;n<BB;n++)r[n]=e[n],r[BB+n]=t[n];return r}const OB=eB({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),UB=eB({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),KB=eB({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),qB=eB({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6}),FB={get(){const e=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:globalThis).crypto;if(null==e||null==e.subtle)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 e}},VB={alg:"A128GCM",ext:!0,k:"scm9jmO_4BJAgdwWGVulLg",key_ops:["encrypt","decrypt"],kty:"oct"};async function zB(e,t){const r=function(e){var t,r,n,i,o,s;const a=null!==(t=null===e||void 0===e?void 0:e.algorithm)&&void 0!==t?t:"AES-GCM";let c=null!==(r=null===e||void 0===e?void 0:e.keyLength)&&void 0!==r?r:16;const l=null!==(n=null===e||void 0===e?void 0:e.nonceLength)&&void 0!==n?n:12,u=null!==(i=null===e||void 0===e?void 0:e.digest)&&void 0!==i?i:"SHA-256",h=null!==(o=null===e||void 0===e?void 0:e.saltLength)&&void 0!==o?o:16,d=null!==(s=null===e||void 0===e?void 0:e.iterations)&&void 0!==s?s:32767,p=FB.get();return c*=8,{encrypt:async function(e,t){const r=p.getRandomValues(new Uint8Array(h)),n=p.getRandomValues(new Uint8Array(l)),i={name:a,iv:n};let o;if("string"===typeof t&&(t=ps(t)),0===t.length){o=await p.subtle.importKey("jwk",VB,{name:"AES-GCM"},!0,["encrypt"]);try{const e={name:"PBKDF2",salt:r,iterations:d,hash:{name:u}},n=await p.subtle.importKey("raw",t,{name:"PBKDF2"},!1,["deriveKey"]);o=await p.subtle.deriveKey(e,n,{name:a,length:c},!0,["encrypt"])}catch{o=await p.subtle.importKey("jwk",VB,{name:"AES-GCM"},!0,["encrypt"])}}else{const e={name:"PBKDF2",salt:r,iterations:d,hash:{name:u}},n=await p.subtle.importKey("raw",t,{name:"PBKDF2"},!1,["deriveKey"]);o=await p.subtle.deriveKey(e,n,{name:a,length:c},!0,["encrypt"])}const s=await p.subtle.encrypt(i,o,e);return Po([r,i.iv,new Uint8Array(s)])},decrypt:async function(e,t){const r=e.subarray(0,h),n=e.subarray(h,h+l),i=e.subarray(h+l),o={name:a,iv:n};let s;if("string"===typeof t&&(t=ps(t)),0===t.length)try{const e={name:"PBKDF2",salt:r,iterations:d,hash:{name:u}},n=await p.subtle.importKey("raw",t,{name:"PBKDF2"},!1,["deriveKey"]);s=await p.subtle.deriveKey(e,n,{name:a,length:c},!0,["decrypt"])}catch{s=await p.subtle.importKey("jwk",VB,{name:"AES-GCM"},!0,["decrypt"])}else{const e={name:"PBKDF2",salt:r,iterations:d,hash:{name:u}},n=await p.subtle.importKey("raw",t,{name:"PBKDF2"},!1,["deriveKey"]);s=await p.subtle.deriveKey(e,n,{name:a,length:c},!0,["decrypt"])}const f=await p.subtle.decrypt(o,s,i);return new Uint8Array(f)}}}(),n=await r.encrypt(e,t);return OB.encode(n)}ya._configure(),pa._configure(fa),ga._configure(ma);const jB=["uint64","int64","sint64","fixed64","sfixed64"];function HB(e){return function(e){for(const t of jB){if(null==e[t])continue;const r=e[t];e[t]=function(){return BigInt(r.call(this).toString())}}return e}(new pa(e))}function GB(){return function(e){for(const t of jB){if(null==e[t])continue;const r=e[t];e[t]=function(e){return r.call(this,e.toString())}}return e}(ga.create())}function WB(e,t){const r=HB(e instanceof Uint8Array?e:e.subarray());return t.decode(r)}function YB(e,t){const r=GB();return t.encode(e,r,{lengthDelimited:!1}),r.finish()}var QB,XB,JB,ZB,$B;function eM(e,t,r,n){return{name:e,type:t,encode:r,decode:n}}function tM(e,t){return eM("message",QB.LENGTH_DELIMITED,e,t)}!function(e){e[e.VARINT=0]="VARINT",e[e.BIT64=1]="BIT64",e[e.LENGTH_DELIMITED=2]="LENGTH_DELIMITED",e[e.START_GROUP=3]="START_GROUP",e[e.END_GROUP=4]="END_GROUP",e[e.BIT32=5]="BIT32"}(QB||(QB={})),function(e){e.RSA="RSA",e.Ed25519="Ed25519",e.Secp256k1="Secp256k1"}(XB||(XB={})),function(e){e[e.RSA=0]="RSA",e[e.Ed25519=1]="Ed25519",e[e.Secp256k1=2]="Secp256k1"}(JB||(JB={})),function(e){e.codec=()=>function(e){function t(t){if(null==e[t.toString()])throw new Error("Invalid enum value");return e[t]}return eM("enum",QB.VARINT,(function(e,r){const n=t(e);r.int32(n)}),(function(e){return t(e.int32())}))}(JB)}(XB||(XB={})),function(e){let t;e.codec=()=>(null==t&&(t=tM((function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};!1!==r.lengthDelimited&&t.fork(),null!=e.Type&&(t.uint32(8),XB.codec().encode(e.Type,t)),null!=e.Data&&(t.uint32(18),t.bytes(e.Data)),!1!==r.lengthDelimited&&t.ldelim()}),((e,t)=>{const r={},n=null==t?e.len:e.pos+t;for(;e.pos<n;){const t=e.uint32();switch(t>>>3){case 1:r.Type=XB.codec().decode(e);break;case 2:r.Data=e.bytes();break;default:e.skipType(7&t)}}return r}))),t),e.encode=t=>YB(t,e.codec()),e.decode=t=>WB(t,e.codec())}(ZB||(ZB={})),function(e){let t;e.codec=()=>(null==t&&(t=tM((function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};!1!==r.lengthDelimited&&t.fork(),null!=e.Type&&(t.uint32(8),XB.codec().encode(e.Type,t)),null!=e.Data&&(t.uint32(18),t.bytes(e.Data)),!1!==r.lengthDelimited&&t.ldelim()}),((e,t)=>{const r={},n=null==t?e.len:e.pos+t;for(;e.pos<n;){const t=e.uint32();switch(t>>>3){case 1:r.Type=XB.codec().decode(e);break;case 2:r.Data=e.bytes();break;default:e.skipType(7&t)}}return r}))),t),e.encode=t=>YB(t,e.codec()),e.decode=t=>WB(t,e.codec())}($B||($B={}));class rM{constructor(e){Br(this,"_key",void 0),this._key=cM(e,NB)}async verify(e,t){return async function(e,t,r){return Bd.verify(t,r,e)}(this._key,t,e)}marshal(){return this._key}get bytes(){return ZB.encode({Type:XB.Ed25519,Data:this.marshal()}).subarray()}equals(e){return Yn(this.bytes,e.bytes)}async hash(){const{bytes:e}=await xB.digest(this.bytes);return e}}class nM{constructor(e,t){Br(this,"_key",void 0),Br(this,"_publicKey",void 0),this._key=cM(e,LB),this._publicKey=cM(t,NB)}async sign(e){return async function(e,t){const r=e.subarray(0,BB);return Bd.sign(t,r)}(this._key,e)}get public(){return new rM(this._publicKey)}marshal(){return this._key}get bytes(){return $B.encode({Type:XB.Ed25519,Data:this.marshal()}).subarray()}equals(e){return Yn(this.bytes,e.bytes)}async hash(){const{bytes:e}=await xB.digest(this.bytes);return e}async id(){const e=RB.digest(this.public.bytes);return tB.encode(e.bytes).substring(1)}async export(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"libp2p-key";if("libp2p-key"===t)return zB(this.bytes,e);throw new rp("export format '".concat(t,"' is not supported"),"ERR_INVALID_EXPORT_FORMAT")}}function iM(e){if(e.length>LB){const t=(e=cM(e,LB+NB)).subarray(0,LB),r=e.subarray(LB,e.length);return new nM(t,r)}const t=(e=cM(e,LB)).subarray(0,LB),r=e.subarray(NB);return new nM(t,r)}function oM(e){return e=cM(e,NB),new rM(e)}async function sM(){const{privateKey:e,publicKey:t}=await async function(){const e=Bd.utils.randomPrivateKey(),t=Bd.getPublicKey(e);return{privateKey:MB(e,t),publicKey:t}}();return new nM(e,t)}async function aM(e){const{privateKey:t,publicKey:r}=await async function(e){if(e.length!==BB)throw new TypeError('"seed" must be 32 bytes in length.');if(!(e instanceof Uint8Array))throw new TypeError('"seed" must be a node.js Buffer, or Uint8Array.');const t=e,r=Bd.getPublicKey(t);return{privateKey:MB(t,r),publicKey:r}}(e);return new nM(t,r)}function cM(e,t){var r;if((e=Uint8Array.from(null!==(r=e)&&void 0!==r?r:[])).length!==t)throw new rp("Key must be a Uint8Array of length ".concat(t,", got ").concat(e.length),"ERR_INVALID_KEY_TYPE");return e}function lM(e,t){let r=Uint8Array.from(e.abs().toByteArray());if(r=0===r[0]?r.subarray(1):r,null!=t){if(r.length>t)throw new Error("byte array longer than desired length");r=Po([new Uint8Array(t-r.length),r])}return Ro(r,"base64url")}function uM(e){const t=function(e,t){let r=ps(e,"base64urlpad");if(null!=t){if(r.length>t)throw new Error("byte array longer than desired length");r=Po([new Uint8Array(t-r.length),r])}return r}(e);return new sp.jsbn.BigInteger(Ro(t,"base16"),16)}const hM={"P-256":256,"P-384":384,"P-521":521};Object.keys(hM).join(" / ");function dM(e){if(isNaN(e)||e<=0)throw new rp("random bytes length must be a Number bigger than 0","ERR_INVALID_LENGTH");return oh(e)}function pM(e,t){return t.map((t=>uM(e[t])))}async function fM(e){const t=[await FB.get().subtle.importKey("jwk",e,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["sign"]),await gM(e)],r=await yM({privateKey:t[0],publicKey:t[1]});return{privateKey:r[0],publicKey:r[1]}}async function yM(e){if(null==e.privateKey||null==e.publicKey)throw new rp("Private and public key are required","ERR_INVALID_PARAMETERS");return Promise.all([FB.get().subtle.exportKey("jwk",e.privateKey),FB.get().subtle.exportKey("jwk",e.publicKey)])}async function gM(e){return FB.get().subtle.importKey("jwk",{kty:e.kty,n:e.n,e:e.e},{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["verify"])}function mM(e,t,r,n){const i=t?function(e){return sp.pki.setRsaPublicKey(...pM(e,["n","e"]))}(e):function(e){return sp.pki.setRsaPrivateKey(...pM(e,["n","e","d","p","q","dp","dq","qi"]))}(e);return ps(n(Ro(Uint8Array.from(r),"ascii"),i),"ascii")}function bM(e){if("RSA"!==e.kty)throw new rp("invalid key type","ERR_INVALID_KEY_TYPE");if(null==e.n)throw new rp("invalid key modulus","ERR_INVALID_KEY_MODULUS");return 8*ps(e.n,"base64url").length}const wM=8192;class vM{constructor(e){Br(this,"_key",void 0),this._key=e}async verify(e,t){return async function(e,t,r){const n=await FB.get().subtle.importKey("jwk",e,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["verify"]);return FB.get().subtle.verify({name:"RSASSA-PKCS1-v1_5"},n,t,r)}(this._key,t,e)}marshal(){return function(e){if(null==e.n||null==e.e)throw new rp("JWK was missing components","ERR_INVALID_PARAMETERS");const t=sp.pki.publicKeyToAsn1({n:uM(e.n),e:uM(e.e)});return ps(sp.asn1.toDer(t).getBytes(),"ascii")}(this._key)}get bytes(){return ZB.encode({Type:XB.RSA,Data:this.marshal()}).subarray()}encrypt(e){return mM(this._key,!0,e,((e,t)=>t.encrypt(e)))}equals(e){return Yn(this.bytes,e.bytes)}async hash(){const{bytes:e}=await xB.digest(this.bytes);return e}}class _M{constructor(e,t){Br(this,"_key",void 0),Br(this,"_publicKey",void 0),this._key=e,this._publicKey=t}genSecret(){return dM(16)}async sign(e){return async function(e,t){const r=await FB.get().subtle.importKey("jwk",e,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["sign"]),n=await FB.get().subtle.sign({name:"RSASSA-PKCS1-v1_5"},r,Uint8Array.from(t));return new Uint8Array(n,0,n.byteLength)}(this._key,e)}get public(){if(null==this._publicKey)throw new rp("public key not provided","ERR_PUBKEY_NOT_PROVIDED");return new vM(this._publicKey)}decrypt(e){return mM(this._key,!1,e,((e,t)=>t.decrypt(e)))}marshal(){return function(e){if(null==e.n||null==e.e||null==e.d||null==e.p||null==e.q||null==e.dp||null==e.dq||null==e.qi)throw new rp("JWK was missing components","ERR_INVALID_PARAMETERS");const t=sp.pki.privateKeyToAsn1({n:uM(e.n),e:uM(e.e),d:uM(e.d),p:uM(e.p),q:uM(e.q),dP:uM(e.dp),dQ:uM(e.dq),qInv:uM(e.qi)});return ps(sp.asn1.toDer(t).getBytes(),"ascii")}(this._key)}get bytes(){return $B.encode({Type:XB.RSA,Data:this.marshal()}).subarray()}equals(e){return Yn(this.bytes,e.bytes)}async hash(){const{bytes:e}=await xB.digest(this.bytes);return e}async id(){return Ro(await this.public.hash(),"base58btc")}async export(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"pkcs-8";if("pkcs-8"===t){const t=new sp.util.ByteBuffer(this.marshal()),r=sp.asn1.fromDer(t),n=sp.pki.privateKeyFromAsn1(r),i={algorithm:"aes256",count:1e4,saltSize:16,prfAlgorithm:"sha512"};return sp.pki.encryptRsaPrivateKey(n,e,i)}if("libp2p-key"===t)return zB(this.bytes,e);throw new rp("export format '".concat(t,"' is not supported"),"ERR_INVALID_EXPORT_FORMAT")}}async function EM(e){const t=function(e){const t=sp.asn1.fromDer(Ro(e,"ascii")),r=sp.pki.privateKeyFromAsn1(t);return{kty:"RSA",n:lM(r.n),e:lM(r.e),d:lM(r.d),p:lM(r.p),q:lM(r.q),dp:lM(r.dP),dq:lM(r.dQ),qi:lM(r.qInv),alg:"RS256"}}(e);if(bM(t)>wM)throw new rp("key size is too large","ERR_KEY_SIZE_TOO_LARGE");const r=await fM(t);return new _M(r.privateKey,r.publicKey)}function SM(e){const t=function(e){const t=sp.asn1.fromDer(Ro(e,"ascii")),r=sp.pki.publicKeyFromAsn1(t);return{kty:"RSA",n:lM(r.n),e:lM(r.e)}}(e);if(bM(t)>wM)throw new rp("key size is too large","ERR_KEY_SIZE_TOO_LARGE");return new vM(t)}async function AM(e){if(bM(e)>wM)throw new rp("key size is too large","ERR_KEY_SIZE_TOO_LARGE");const t=await fM(e);return new _M(t.privateKey,t.publicKey)}async function kM(e){if(e>wM)throw new rp("key size is too large","ERR_KEY_SIZE_TOO_LARGE");const t=await async function(e){const t=await FB.get().subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:e,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-256"}},!0,["sign","verify"]),r=await yM(t);return{privateKey:r[0],publicKey:r[1]}}(e);return new _M(t.privateKey,t.publicKey)}function IM(e){try{sy.ProjectivePoint.fromHex(e)}catch(t){throw new rp(String(t),"ERR_INVALID_PUBLIC_KEY")}}class RM{constructor(e){Br(this,"_key",void 0),IM(e),this._key=e}async verify(e,t){return async function(e,t,r){try{const{digest:n}=await xB.digest(r);return sy.verify(t,n,e)}catch(n){throw new rp(String(n),"ERR_INVALID_INPUT")}}(this._key,t,e)}marshal(){return e=this._key,sy.ProjectivePoint.fromHex(e).toRawBytes(!0);var e}get bytes(){return ZB.encode({Type:XB.Secp256k1,Data:this.marshal()}).subarray()}equals(e){return Yn(this.bytes,e.bytes)}async hash(){const{bytes:e}=await xB.digest(this.bytes);return e}}class PM{constructor(e,t){Br(this,"_key",void 0),Br(this,"_publicKey",void 0),this._key=e,this._publicKey=null!==t&&void 0!==t?t:function(e){try{return sy.getPublicKey(e,!0)}catch(t){throw new rp(String(t),"ERR_INVALID_PRIVATE_KEY")}}(e),function(e){try{sy.getPublicKey(e,!0)}catch(t){throw new rp(String(t),"ERR_INVALID_PRIVATE_KEY")}}(this._key),IM(this._publicKey)}async sign(e){return async function(e,t){const{digest:r}=await xB.digest(t);try{return sy.sign(r,e).toDERRawBytes()}catch(n){throw new rp(String(n),"ERR_INVALID_INPUT")}}(this._key,e)}get public(){return new RM(this._publicKey)}marshal(){return this._key}get bytes(){return $B.encode({Type:XB.Secp256k1,Data:this.marshal()}).subarray()}equals(e){return Yn(this.bytes,e.bytes)}async hash(){const{bytes:e}=await xB.digest(this.bytes);return e}async id(){return Ro(await this.public.hash(),"base58btc")}async export(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"libp2p-key";if("libp2p-key"===t)return zB(this.bytes,e);throw new rp("export format '".concat(t,"' is not supported"),"ERR_INVALID_EXPORT_FORMAT")}}function CM(e){return new PM(e)}function TM(e){return new RM(e)}async function xM(){const e=sy.utils.randomPrivateKey();return new PM(e)}const DM={rsa:Ye,ed25519:We,secp256k1:Qe};function NM(e){const t=Object.keys(DM).join(" / ");return new rp("invalid or unsupported key type ".concat(e,". Must be ").concat(t),"ERR_UNSUPPORTED_KEY_TYPE")}const LM=Symbol.for("@libp2p/content-routing"),BM=Symbol.for("@libp2p/peer-routing");const MM={get(){const e=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:globalThis).crypto;if(null==e||null==e.subtle)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 e}};var OM=function(e,t){if(e.length>=255)throw new TypeError("Alphabet too long");for(var r=new Uint8Array(256),n=0;n<r.length;n++)r[n]=255;for(var i=0;i<e.length;i++){var o=e.charAt(i),s=o.charCodeAt(0);if(255!==r[s])throw new TypeError(o+" is ambiguous");r[s]=i}var a=e.length,c=e.charAt(0),l=Math.log(a)/Math.log(256),u=Math.log(256)/Math.log(a);function h(e){if("string"!==typeof e)throw new TypeError("Expected String");if(0===e.length)return new Uint8Array;var t=0;if(" "!==e[t]){for(var n=0,i=0;e[t]===c;)n++,t++;for(var o=(e.length-t)*l+1>>>0,s=new Uint8Array(o);e[t];){var u=r[e.charCodeAt(t)];if(255===u)return;for(var h=0,d=o-1;(0!==u||h<i)&&-1!==d;d--,h++)u+=a*s[d]>>>0,s[d]=u%256>>>0,u=u/256>>>0;if(0!==u)throw new Error("Non-zero carry");i=h,t++}if(" "!==e[t]){for(var p=o-i;p!==o&&0===s[p];)p++;for(var f=new Uint8Array(n+(o-p)),y=n;p!==o;)f[y++]=s[p++];return f}}}return{encode:function(t){if(t instanceof Uint8Array||(ArrayBuffer.isView(t)?t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength):Array.isArray(t)&&(t=Uint8Array.from(t))),!(t instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(0===t.length)return"";for(var r=0,n=0,i=0,o=t.length;i!==o&&0===t[i];)i++,r++;for(var s=(o-i)*u+1>>>0,l=new Uint8Array(s);i!==o;){for(var h=t[i],d=0,p=s-1;(0!==h||d<n)&&-1!==p;p--,d++)h+=256*l[p]>>>0,l[p]=h%a>>>0,h=h/a>>>0;if(0!==h)throw new Error("Non-zero carry");n=d,i++}for(var f=s-n;f!==s&&0===l[f];)f++;for(var y=c.repeat(r);f<s;++f)y+=e.charAt(l[f]);return y},decodeUnsafe:h,decode:function(e){var r=h(e);if(r)return r;throw new Error("Non-".concat(t," character"))}}};const UM=OM,KM=(new Uint8Array(0),e=>{if(e instanceof Uint8Array&&"Uint8Array"===e.constructor.name)return e;if(e instanceof ArrayBuffer)return new Uint8Array(e);if(ArrayBuffer.isView(e))return new Uint8Array(e.buffer,e.byteOffset,e.byteLength);throw new Error("Unknown type, must be binary type")});class qM{constructor(e,t,r){this.name=e,this.prefix=t,this.baseEncode=r}encode(e){if(e instanceof Uint8Array)return"".concat(this.prefix).concat(this.baseEncode(e));throw Error("Unknown type, must be binary type")}}class FM{constructor(e,t,r){if(this.name=e,this.prefix=t,void 0===t.codePointAt(0))throw new Error("Invalid prefix character");this.prefixCodePoint=t.codePointAt(0),this.baseDecode=r}decode(e){if("string"===typeof e){if(e.codePointAt(0)!==this.prefixCodePoint)throw Error("Unable to decode multibase string ".concat(JSON.stringify(e),", ").concat(this.name," decoder only supports inputs prefixed with ").concat(this.prefix));return this.baseDecode(e.slice(this.prefix.length))}throw Error("Can only multibase decode strings")}or(e){return zM(this,e)}}class VM{constructor(e){this.decoders=e}or(e){return zM(this,e)}decode(e){const t=e[0],r=this.decoders[t];if(r)return r.decode(e);throw RangeError("Unable to decode multibase string ".concat(JSON.stringify(e),", only inputs prefixed with ").concat(Object.keys(this.decoders)," are supported"))}}const zM=(e,t)=>new VM({...e.decoders||{[e.prefix]:e},...t.decoders||{[t.prefix]:t}});class jM{constructor(e,t,r,n){this.name=e,this.prefix=t,this.baseEncode=r,this.baseDecode=n,this.encoder=new qM(e,t,r),this.decoder=new FM(e,t,n)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}}const HM=e=>{let{name:t,prefix:r,encode:n,decode:i}=e;return new jM(t,r,n,i)},GM=e=>{let{prefix:t,name:r,alphabet:n}=e;const{encode:i,decode:o}=UM(n,r);return HM({prefix:t,name:r,encode:i,decode:e=>KM(o(e))})},WM=e=>{let{name:t,prefix:r,bitsPerChar:n,alphabet:i}=e;return HM({prefix:r,name:t,encode:e=>((e,t,r)=>{const n="="===t[t.length-1],i=(1<<r)-1;let o="",s=0,a=0;for(let c=0;c<e.length;++c)for(a=a<<8|e[c],s+=8;s>r;)s-=r,o+=t[i&a>>s];if(s&&(o+=t[i&a<<r-s]),n)for(;o.length*r&7;)o+="=";return o})(e,i,n),decode:e=>((e,t,r,n)=>{const i={};for(let u=0;u<t.length;++u)i[t[u]]=u;let o=e.length;for(;"="===e[o-1];)--o;const s=new Uint8Array(o*r/8|0);let a=0,c=0,l=0;for(let u=0;u<o;++u){const t=i[e[u]];if(void 0===t)throw new SyntaxError("Non-".concat(n," character"));c=c<<r|t,a+=r,a>=8&&(a-=8,s[l++]=255&c>>a)}if(a>=r||255&c<<8-a)throw new SyntaxError("Unexpected end of data");return s})(e,i,n,t)})},YM=GM({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),QM=GM({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var XM=function e(t,r,n){r=r||[];var i=n=n||0;for(;t>=$M;)r[n++]=255&t|JM,t/=128;for(;t&ZM;)r[n++]=255&t|JM,t>>>=7;return r[n]=0|t,e.bytes=n-i+1,r},JM=128,ZM=-128,$M=Math.pow(2,31);var eO=function e(t,r){var n,i=0,o=0,s=r=r||0,a=t.length;do{if(s>=a)throw e.bytes=0,new RangeError("Could not decode varint");n=t[s++],i+=o<28?(n&rO)<<o:(n&rO)*Math.pow(2,o),o+=7}while(n>=tO);return e.bytes=s-r,i},tO=128,rO=127;var nO=Math.pow(2,7),iO=Math.pow(2,14),oO=Math.pow(2,21),sO=Math.pow(2,28),aO=Math.pow(2,35),cO=Math.pow(2,42),lO=Math.pow(2,49),uO=Math.pow(2,56),hO=Math.pow(2,63);const dO={encode:XM,decode:eO,encodingLength:function(e){return e<nO?1:e<iO?2:e<oO?3:e<sO?4:e<aO?5:e<cO?6:e<lO?7:e<uO?8:e<hO?9:10}},pO=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return[dO.decode(e,t),dO.decode.bytes]},fO=function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;return dO.encode(e,t,r),t},yO=e=>dO.encodingLength(e),gO=(e,t)=>{const r=t.byteLength,n=yO(e),i=n+yO(r),o=new Uint8Array(i+r);return fO(e,o,0),fO(r,o,n),o.set(t,i),new bO(e,r,t,o)},mO=e=>{const t=KM(e),[r,n]=pO(t),[i,o]=pO(t.subarray(n)),s=t.subarray(n+o);if(s.byteLength!==i)throw new Error("Incorrect length");return new bO(r,i,s,t)};class bO{constructor(e,t,r,n){this.code=e,this.size=t,this.digest=r,this.bytes=n}}const wO=KM,vO={code:0,name:"identity",encode:wO,digest:e=>gO(0,wO(e))},_O=e=>{let{name:t,code:r,encode:n}=e;return new EO(t,r,n)};class EO{constructor(e,t,r){this.name=e,this.code=t,this.encode=r}digest(e){if(e instanceof Uint8Array){const t=this.encode(e);return t instanceof Uint8Array?gO(this.code,t):t.then((e=>gO(this.code,e)))}throw Error("Unknown type, must be binary type")}}const SO=e=>async t=>new Uint8Array(await crypto.subtle.digest(e,t)),AO=_O({name:"sha2-256",code:18,encode:SO("SHA-256")}),kO=_O({name:"sha2-512",code:19,encode:SO("SHA-512")}),IO=32,RO=64,PO=32;function CO(e,t){const r=new Uint8Array(RO);for(let n=0;n<PO;n++)r[n]=e[n],r[PO+n]=t[n];return r}const TO=WM({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),xO=WM({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),DO=WM({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),NO=WM({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6}),LO={alg:"A128GCM",ext:!0,k:"scm9jmO_4BJAgdwWGVulLg",key_ops:["encrypt","decrypt"],kty:"oct"};function BO(e){var t,r,n,i,o,s;const a=null!==(t=null===e||void 0===e?void 0:e.algorithm)&&void 0!==t?t:"AES-GCM";let c=null!==(r=null===e||void 0===e?void 0:e.keyLength)&&void 0!==r?r:16;const l=null!==(n=null===e||void 0===e?void 0:e.nonceLength)&&void 0!==n?n:12,u=null!==(i=null===e||void 0===e?void 0:e.digest)&&void 0!==i?i:"SHA-256",h=null!==(o=null===e||void 0===e?void 0:e.saltLength)&&void 0!==o?o:16,d=null!==(s=null===e||void 0===e?void 0:e.iterations)&&void 0!==s?s:32767,p=MM.get();c*=8;return{encrypt:async function(e,t){const r=p.getRandomValues(new Uint8Array(h)),n=p.getRandomValues(new Uint8Array(l)),i={name:a,iv:n};let o;if("string"===typeof t&&(t=ps(t)),0===t.length){o=await p.subtle.importKey("jwk",LO,{name:"AES-GCM"},!0,["encrypt"]);try{const e={name:"PBKDF2",salt:r,iterations:d,hash:{name:u}},n=await p.subtle.importKey("raw",t,{name:"PBKDF2"},!1,["deriveKey"]);o=await p.subtle.deriveKey(e,n,{name:a,length:c},!0,["encrypt"])}catch{o=await p.subtle.importKey("jwk",LO,{name:"AES-GCM"},!0,["encrypt"])}}else{const e={name:"PBKDF2",salt:r,iterations:d,hash:{name:u}},n=await p.subtle.importKey("raw",t,{name:"PBKDF2"},!1,["deriveKey"]);o=await p.subtle.deriveKey(e,n,{name:a,length:c},!0,["encrypt"])}const s=await p.subtle.encrypt(i,o,e);return Po([r,i.iv,new Uint8Array(s)])},decrypt:async function(e,t){const r=e.subarray(0,h),n=e.subarray(h,h+l),i=e.subarray(h+l),o={name:a,iv:n};let s;if("string"===typeof t&&(t=ps(t)),0===t.length)try{const e={name:"PBKDF2",salt:r,iterations:d,hash:{name:u}},n=await p.subtle.importKey("raw",t,{name:"PBKDF2"},!1,["deriveKey"]);s=await p.subtle.deriveKey(e,n,{name:a,length:c},!0,["decrypt"])}catch{s=await p.subtle.importKey("jwk",LO,{name:"AES-GCM"},!0,["decrypt"])}else{const e={name:"PBKDF2",salt:r,iterations:d,hash:{name:u}},n=await p.subtle.importKey("raw",t,{name:"PBKDF2"},!1,["deriveKey"]);s=await p.subtle.deriveKey(e,n,{name:a,length:c},!0,["decrypt"])}const f=await p.subtle.decrypt(o,s,i);return new Uint8Array(f)}}}async function MO(e,t){const r=BO(),n=await r.encrypt(e,t);return TO.encode(n)}ya._configure(),pa._configure(fa),ga._configure(ma);const OO=["uint64","int64","sint64","fixed64","sfixed64"];function UO(e){return function(e){for(const t of OO){if(null==e[t])continue;const r=e[t];e[t]=function(){return BigInt(r.call(this).toString())}}return e}(new pa(e))}function KO(){return function(e){for(const t of OO){if(null==e[t])continue;const r=e[t];e[t]=function(e){return r.call(this,e.toString())}}return e}(ga.create())}function qO(e,t){const r=UO(e instanceof Uint8Array?e:e.subarray());return t.decode(r)}function FO(e,t){const r=KO();return t.encode(e,r,{lengthDelimited:!1}),r.finish()}var VO,zO,jO,HO,GO;function WO(e,t,r,n){return{name:e,type:t,encode:r,decode:n}}function YO(e,t){return WO("message",VO.LENGTH_DELIMITED,e,t)}!function(e){e[e.VARINT=0]="VARINT",e[e.BIT64=1]="BIT64",e[e.LENGTH_DELIMITED=2]="LENGTH_DELIMITED",e[e.START_GROUP=3]="START_GROUP",e[e.END_GROUP=4]="END_GROUP",e[e.BIT32=5]="BIT32"}(VO||(VO={})),function(e){e.RSA="RSA",e.Ed25519="Ed25519",e.Secp256k1="Secp256k1"}(zO||(zO={})),function(e){e[e.RSA=0]="RSA",e[e.Ed25519=1]="Ed25519",e[e.Secp256k1=2]="Secp256k1"}(jO||(jO={})),function(e){e.codec=()=>function(e){function t(t){if(null==e[t.toString()])throw new Error("Invalid enum value");return e[t]}return WO("enum",VO.VARINT,(function(e,r){const n=t(e);r.int32(n)}),(function(e){return t(e.int32())}))}(jO)}(zO||(zO={})),function(e){let t;e.codec=()=>(null==t&&(t=YO((function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};!1!==r.lengthDelimited&&t.fork(),null!=e.Type&&(t.uint32(8),zO.codec().encode(e.Type,t)),null!=e.Data&&(t.uint32(18),t.bytes(e.Data)),!1!==r.lengthDelimited&&t.ldelim()}),((e,t)=>{const r={},n=null==t?e.len:e.pos+t;for(;e.pos<n;){const t=e.uint32();switch(t>>>3){case 1:r.Type=zO.codec().decode(e);break;case 2:r.Data=e.bytes();break;default:e.skipType(7&t)}}return r}))),t),e.encode=t=>FO(t,e.codec()),e.decode=t=>qO(t,e.codec())}(HO||(HO={})),function(e){let t;e.codec=()=>(null==t&&(t=YO((function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};!1!==r.lengthDelimited&&t.fork(),null!=e.Type&&(t.uint32(8),zO.codec().encode(e.Type,t)),null!=e.Data&&(t.uint32(18),t.bytes(e.Data)),!1!==r.lengthDelimited&&t.ldelim()}),((e,t)=>{const r={},n=null==t?e.len:e.pos+t;for(;e.pos<n;){const t=e.uint32();switch(t>>>3){case 1:r.Type=zO.codec().decode(e);break;case 2:r.Data=e.bytes();break;default:e.skipType(7&t)}}return r}))),t),e.encode=t=>FO(t,e.codec()),e.decode=t=>qO(t,e.codec())}(GO||(GO={}));class QO{constructor(e){Br(this,"_key",void 0),this._key=tU(e,IO)}async verify(e,t){return async function(e,t,r){return Bd.verify(t,r,e)}(this._key,t,e)}marshal(){return this._key}get bytes(){return HO.encode({Type:zO.Ed25519,Data:this.marshal()}).subarray()}equals(e){return Yn(this.bytes,e.bytes)}async hash(){const{bytes:e}=await AO.digest(this.bytes);return e}}class XO{constructor(e,t){Br(this,"_key",void 0),Br(this,"_publicKey",void 0),this._key=tU(e,RO),this._publicKey=tU(t,IO)}async sign(e){return async function(e,t){const r=e.subarray(0,PO);return Bd.sign(t,r)}(this._key,e)}get public(){return new QO(this._publicKey)}marshal(){return this._key}get bytes(){return GO.encode({Type:zO.Ed25519,Data:this.marshal()}).subarray()}equals(e){return Yn(this.bytes,e.bytes)}async hash(){const{bytes:e}=await AO.digest(this.bytes);return e}async id(){const e=vO.digest(this.public.bytes);return YM.encode(e.bytes).substring(1)}async export(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"libp2p-key";if("libp2p-key"===t)return MO(this.bytes,e);throw new rp("export format '".concat(t,"' is not supported"),"ERR_INVALID_EXPORT_FORMAT")}}function JO(e){if(e.length>RO){const t=(e=tU(e,RO+IO)).subarray(0,RO),r=e.subarray(RO,e.length);return new XO(t,r)}const t=(e=tU(e,RO)).subarray(0,RO),r=e.subarray(IO);return new XO(t,r)}function ZO(e){return e=tU(e,IO),new QO(e)}async function $O(){const{privateKey:e,publicKey:t}=await async function(){const e=Bd.utils.randomPrivateKey(),t=Bd.getPublicKey(e);return{privateKey:CO(e,t),publicKey:t}}();return new XO(e,t)}async function eU(e){const{privateKey:t,publicKey:r}=await async function(e){if(e.length!==PO)throw new TypeError('"seed" must be 32 bytes in length.');if(!(e instanceof Uint8Array))throw new TypeError('"seed" must be a node.js Buffer, or Uint8Array.');const t=e,r=Bd.getPublicKey(t);return{privateKey:CO(t,r),publicKey:r}}(e);return new XO(t,r)}function tU(e,t){var r;if((e=Uint8Array.from(null!==(r=e)&&void 0!==r?r:[])).length!==t)throw new rp("Key must be a Uint8Array of length ".concat(t,", got ").concat(e.length),"ERR_INVALID_KEY_TYPE");return e}function rU(e,t){let r=Uint8Array.from(e.abs().toByteArray());if(r=0===r[0]?r.subarray(1):r,null!=t){if(r.length>t)throw new Error("byte array longer than desired length");r=Po([new Uint8Array(t-r.length),r])}return Ro(r,"base64url")}function nU(e){const t=function(e,t){let r=ps(e,"base64urlpad");if(null!=t){if(r.length>t)throw new Error("byte array longer than desired length");r=Po([new Uint8Array(t-r.length),r])}return r}(e);return new sp.jsbn.BigInteger(Ro(t,"base16"),16)}const iU={"P-256":256,"P-384":384,"P-521":521};Object.keys(iU).join(" / ");function oU(e){if(isNaN(e)||e<=0)throw new rp("random bytes length must be a Number bigger than 0","ERR_INVALID_LENGTH");return oh(e)}function sU(e,t){return t.map((t=>nU(e[t])))}async function aU(e){const t=[await MM.get().subtle.importKey("jwk",e,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["sign"]),await lU(e)],r=await cU({privateKey:t[0],publicKey:t[1]});return{privateKey:r[0],publicKey:r[1]}}async function cU(e){if(null==e.privateKey||null==e.publicKey)throw new rp("Private and public key are required","ERR_INVALID_PARAMETERS");return Promise.all([MM.get().subtle.exportKey("jwk",e.privateKey),MM.get().subtle.exportKey("jwk",e.publicKey)])}async function lU(e){return MM.get().subtle.importKey("jwk",{kty:e.kty,n:e.n,e:e.e},{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["verify"])}function uU(e,t,r,n){const i=t?function(e){return sp.pki.setRsaPublicKey(...sU(e,["n","e"]))}(e):function(e){return sp.pki.setRsaPrivateKey(...sU(e,["n","e","d","p","q","dp","dq","qi"]))}(e);return ps(n(Ro(Uint8Array.from(r),"ascii"),i),"ascii")}function hU(e){if("RSA"!==e.kty)throw new rp("invalid key type","ERR_INVALID_KEY_TYPE");if(null==e.n)throw new rp("invalid key modulus","ERR_INVALID_KEY_MODULUS");return 8*ps(e.n,"base64url").length}const dU=8192;class pU{constructor(e){Br(this,"_key",void 0),this._key=e}async verify(e,t){return async function(e,t,r){const n=await MM.get().subtle.importKey("jwk",e,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["verify"]);return MM.get().subtle.verify({name:"RSASSA-PKCS1-v1_5"},n,t,r)}(this._key,t,e)}marshal(){return function(e){if(null==e.n||null==e.e)throw new rp("JWK was missing components","ERR_INVALID_PARAMETERS");const t=sp.pki.publicKeyToAsn1({n:nU(e.n),e:nU(e.e)});return ps(sp.asn1.toDer(t).getBytes(),"ascii")}(this._key)}get bytes(){return HO.encode({Type:zO.RSA,Data:this.marshal()}).subarray()}encrypt(e){return uU(this._key,!0,e,((e,t)=>t.encrypt(e)))}equals(e){return Yn(this.bytes,e.bytes)}async hash(){const{bytes:e}=await AO.digest(this.bytes);return e}}class fU{constructor(e,t){Br(this,"_key",void 0),Br(this,"_publicKey",void 0),this._key=e,this._publicKey=t}genSecret(){return oU(16)}async sign(e){return async function(e,t){const r=await MM.get().subtle.importKey("jwk",e,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["sign"]),n=await MM.get().subtle.sign({name:"RSASSA-PKCS1-v1_5"},r,Uint8Array.from(t));return new Uint8Array(n,0,n.byteLength)}(this._key,e)}get public(){if(null==this._publicKey)throw new rp("public key not provided","ERR_PUBKEY_NOT_PROVIDED");return new pU(this._publicKey)}decrypt(e){return uU(this._key,!1,e,((e,t)=>t.decrypt(e)))}marshal(){return function(e){if(null==e.n||null==e.e||null==e.d||null==e.p||null==e.q||null==e.dp||null==e.dq||null==e.qi)throw new rp("JWK was missing components","ERR_INVALID_PARAMETERS");const t=sp.pki.privateKeyToAsn1({n:nU(e.n),e:nU(e.e),d:nU(e.d),p:nU(e.p),q:nU(e.q),dP:nU(e.dp),dQ:nU(e.dq),qInv:nU(e.qi)});return ps(sp.asn1.toDer(t).getBytes(),"ascii")}(this._key)}get bytes(){return GO.encode({Type:zO.RSA,Data:this.marshal()}).subarray()}equals(e){return Yn(this.bytes,e.bytes)}async hash(){const{bytes:e}=await AO.digest(this.bytes);return e}async id(){return Ro(await this.public.hash(),"base58btc")}async export(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"pkcs-8";if("pkcs-8"===t){const t=new sp.util.ByteBuffer(this.marshal()),r=sp.asn1.fromDer(t),n=sp.pki.privateKeyFromAsn1(r),i={algorithm:"aes256",count:1e4,saltSize:16,prfAlgorithm:"sha512"};return sp.pki.encryptRsaPrivateKey(n,e,i)}if("libp2p-key"===t)return MO(this.bytes,e);throw new rp("export format '".concat(t,"' is not supported"),"ERR_INVALID_EXPORT_FORMAT")}}async function yU(e){const t=function(e){const t=sp.asn1.fromDer(Ro(e,"ascii")),r=sp.pki.privateKeyFromAsn1(t);return{kty:"RSA",n:rU(r.n),e:rU(r.e),d:rU(r.d),p:rU(r.p),q:rU(r.q),dp:rU(r.dP),dq:rU(r.dQ),qi:rU(r.qInv),alg:"RS256"}}(e);if(hU(t)>dU)throw new rp("key size is too large","ERR_KEY_SIZE_TOO_LARGE");const r=await aU(t);return new fU(r.privateKey,r.publicKey)}function gU(e){const t=function(e){const t=sp.asn1.fromDer(Ro(e,"ascii")),r=sp.pki.publicKeyFromAsn1(t);return{kty:"RSA",n:rU(r.n),e:rU(r.e)}}(e);if(hU(t)>dU)throw new rp("key size is too large","ERR_KEY_SIZE_TOO_LARGE");return new pU(t)}async function mU(e){if(hU(e)>dU)throw new rp("key size is too large","ERR_KEY_SIZE_TOO_LARGE");const t=await aU(e);return new fU(t.privateKey,t.publicKey)}async function bU(e){if(e>dU)throw new rp("key size is too large","ERR_KEY_SIZE_TOO_LARGE");const t=await async function(e){const t=await MM.get().subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:e,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-256"}},!0,["sign","verify"]),r=await cU(t);return{privateKey:r[0],publicKey:r[1]}}(e);return new fU(t.privateKey,t.publicKey)}function wU(e){try{sy.ProjectivePoint.fromHex(e)}catch(t){throw new rp(String(t),"ERR_INVALID_PUBLIC_KEY")}}class vU{constructor(e){Br(this,"_key",void 0),wU(e),this._key=e}async verify(e,t){return async function(e,t,r){try{const{digest:n}=await AO.digest(r);return sy.verify(t,n,e)}catch(n){throw new rp(String(n),"ERR_INVALID_INPUT")}}(this._key,t,e)}marshal(){return e=this._key,sy.ProjectivePoint.fromHex(e).toRawBytes(!0);var e}get bytes(){return HO.encode({Type:zO.Secp256k1,Data:this.marshal()}).subarray()}equals(e){return Yn(this.bytes,e.bytes)}async hash(){const{bytes:e}=await AO.digest(this.bytes);return e}}class _U{constructor(e,t){Br(this,"_key",void 0),Br(this,"_publicKey",void 0),this._key=e,this._publicKey=null!==t&&void 0!==t?t:function(e){try{return sy.getPublicKey(e,!0)}catch(t){throw new rp(String(t),"ERR_INVALID_PRIVATE_KEY")}}(e),function(e){try{sy.getPublicKey(e,!0)}catch(t){throw new rp(String(t),"ERR_INVALID_PRIVATE_KEY")}}(this._key),wU(this._publicKey)}async sign(e){return async function(e,t){const{digest:r}=await AO.digest(t);try{return sy.sign(r,e).toDERRawBytes()}catch(n){throw new rp(String(n),"ERR_INVALID_INPUT")}}(this._key,e)}get public(){return new vU(this._publicKey)}marshal(){return this._key}get bytes(){return GO.encode({Type:zO.Secp256k1,Data:this.marshal()}).subarray()}equals(e){return Yn(this.bytes,e.bytes)}async hash(){const{bytes:e}=await AO.digest(this.bytes);return e}async id(){return Ro(await this.public.hash(),"base58btc")}async export(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"libp2p-key";if("libp2p-key"===t)return MO(this.bytes,e);throw new rp("export format '".concat(t,"' is not supported"),"ERR_INVALID_EXPORT_FORMAT")}}function EU(e){return new _U(e)}function SU(e){return new vU(e)}async function AU(){const e=sy.utils.randomPrivateKey();return new _U(e)}const kU={rsa:tt,ed25519:et,secp256k1:rt};function IU(e){const t=Object.keys(kU).join(" / ");return new rp("invalid or unsupported key type ".concat(e,". Must be ").concat(t),"ERR_UNSUPPORTED_KEY_TYPE")}function RU(e){if("rsa"===(e=e.toLowerCase())||"ed25519"===e||"secp256k1"===e)return kU[e];throw IU(e)}async function PU(e){var t,r;const n=GO.decode(e),i=null!==(t=n.Data)&&void 0!==t?t:new Uint8Array;switch(n.Type){case zO.RSA:return kU.rsa.unmarshalRsaPrivateKey(i);case zO.Ed25519:return kU.ed25519.unmarshalEd25519PrivateKey(i);case zO.Secp256k1:return kU.secp256k1.unmarshalSecp256k1PrivateKey(i);default:throw IU(null!==(r=n.Type)&&void 0!==r?r:"RSA")}}async function CU(e,t){try{const r=await async function(e,t){const r=TO.decode(e);return BO().decrypt(r,t)}(e,t);return await PU(r)}catch(i){}const r=sp.pki.decryptRsaPrivateKey(e,t);if(null===r)throw new rp("Cannot read the key, most likely the password is wrong or not a RSA key","ERR_CANNOT_DECRYPT_PEM");let n=sp.asn1.toDer(sp.pki.privateKeyToAsn1(r));return n=ps(n.getBytes(),"ascii"),kU.rsa.unmarshalRsaPrivateKey(n)}const TU={sha1:"sha1","sha2-256":"sha256","sha2-512":"sha512"};function xU(e,t,r,n,i){if("sha1"!==i&&"sha2-256"!==i&&"sha2-512"!==i){const e=Object.keys(TU).join(" / ");throw new rp("Hash '".concat(i,"' is unknown or not supported. Must be ").concat(e),"ERR_UNSUPPORTED_HASH_TYPE")}const o=TU[i],s=jx(e,t,r,n,o);return Rf.encode64(s,null)}const DU=WM({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),NU=WM({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),LU=WM({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),BU=WM({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),MU=WM({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),OU=WM({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),UU=WM({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),KU=WM({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),qU=WM({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});ia.formatters.b=e=>null==e?"undefined":YM.baseEncode(e),ia.formatters.t=e=>null==e?"undefined":DU.baseEncode(e),ia.formatters.m=e=>null==e?"undefined":TO.baseEncode(e),ia.formatters.p=e=>null==e?"undefined":e.toString(),ia.formatters.c=e=>null==e?"undefined":e.toString(),ia.formatters.k=e=>null==e?"undefined":e.toString(),ia.formatters.a=e=>null==e?"undefined":e.toString();const FU=GM({prefix:"9",name:"base10",alphabet:"0123456789"}),VU=WM({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),zU=WM({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4}),jU=WM({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1}),HU=Array.from("\ud83d\ude80\ud83e\ude90\u2604\ud83d\udef0\ud83c\udf0c\ud83c\udf11\ud83c\udf12\ud83c\udf13\ud83c\udf14\ud83c\udf15\ud83c\udf16\ud83c\udf17\ud83c\udf18\ud83c\udf0d\ud83c\udf0f\ud83c\udf0e\ud83d\udc09\u2600\ud83d\udcbb\ud83d\udda5\ud83d\udcbe\ud83d\udcbf\ud83d\ude02\u2764\ud83d\ude0d\ud83e\udd23\ud83d\ude0a\ud83d\ude4f\ud83d\udc95\ud83d\ude2d\ud83d\ude18\ud83d\udc4d\ud83d\ude05\ud83d\udc4f\ud83d\ude01\ud83d\udd25\ud83e\udd70\ud83d\udc94\ud83d\udc96\ud83d\udc99\ud83d\ude22\ud83e\udd14\ud83d\ude06\ud83d\ude44\ud83d\udcaa\ud83d\ude09\u263a\ud83d\udc4c\ud83e\udd17\ud83d\udc9c\ud83d\ude14\ud83d\ude0e\ud83d\ude07\ud83c\udf39\ud83e\udd26\ud83c\udf89\ud83d\udc9e\u270c\u2728\ud83e\udd37\ud83d\ude31\ud83d\ude0c\ud83c\udf38\ud83d\ude4c\ud83d\ude0b\ud83d\udc97\ud83d\udc9a\ud83d\ude0f\ud83d\udc9b\ud83d\ude42\ud83d\udc93\ud83e\udd29\ud83d\ude04\ud83d\ude00\ud83d\udda4\ud83d\ude03\ud83d\udcaf\ud83d\ude48\ud83d\udc47\ud83c\udfb6\ud83d\ude12\ud83e\udd2d\u2763\ud83d\ude1c\ud83d\udc8b\ud83d\udc40\ud83d\ude2a\ud83d\ude11\ud83d\udca5\ud83d\ude4b\ud83d\ude1e\ud83d\ude29\ud83d\ude21\ud83e\udd2a\ud83d\udc4a\ud83e\udd73\ud83d\ude25\ud83e\udd24\ud83d\udc49\ud83d\udc83\ud83d\ude33\u270b\ud83d\ude1a\ud83d\ude1d\ud83d\ude34\ud83c\udf1f\ud83d\ude2c\ud83d\ude43\ud83c\udf40\ud83c\udf37\ud83d\ude3b\ud83d\ude13\u2b50\u2705\ud83e\udd7a\ud83c\udf08\ud83d\ude08\ud83e\udd18\ud83d\udca6\u2714\ud83d\ude23\ud83c\udfc3\ud83d\udc90\u2639\ud83c\udf8a\ud83d\udc98\ud83d\ude20\u261d\ud83d\ude15\ud83c\udf3a\ud83c\udf82\ud83c\udf3b\ud83d\ude10\ud83d\udd95\ud83d\udc9d\ud83d\ude4a\ud83d\ude39\ud83d\udde3\ud83d\udcab\ud83d\udc80\ud83d\udc51\ud83c\udfb5\ud83e\udd1e\ud83d\ude1b\ud83d\udd34\ud83d\ude24\ud83c\udf3c\ud83d\ude2b\u26bd\ud83e\udd19\u2615\ud83c\udfc6\ud83e\udd2b\ud83d\udc48\ud83d\ude2e\ud83d\ude46\ud83c\udf7b\ud83c\udf43\ud83d\udc36\ud83d\udc81\ud83d\ude32\ud83c\udf3f\ud83e\udde1\ud83c\udf81\u26a1\ud83c\udf1e\ud83c\udf88\u274c\u270a\ud83d\udc4b\ud83d\ude30\ud83e\udd28\ud83d\ude36\ud83e\udd1d\ud83d\udeb6\ud83d\udcb0\ud83c\udf53\ud83d\udca2\ud83e\udd1f\ud83d\ude41\ud83d\udea8\ud83d\udca8\ud83e\udd2c\u2708\ud83c\udf80\ud83c\udf7a\ud83e\udd13\ud83d\ude19\ud83d\udc9f\ud83c\udf31\ud83d\ude16\ud83d\udc76\ud83e\udd74\u25b6\u27a1\u2753\ud83d\udc8e\ud83d\udcb8\u2b07\ud83d\ude28\ud83c\udf1a\ud83e\udd8b\ud83d\ude37\ud83d\udd7a\u26a0\ud83d\ude45\ud83d\ude1f\ud83d\ude35\ud83d\udc4e\ud83e\udd32\ud83e\udd20\ud83e\udd27\ud83d\udccc\ud83d\udd35\ud83d\udc85\ud83e\uddd0\ud83d\udc3e\ud83c\udf52\ud83d\ude17\ud83e\udd11\ud83c\udf0a\ud83e\udd2f\ud83d\udc37\u260e\ud83d\udca7\ud83d\ude2f\ud83d\udc86\ud83d\udc46\ud83c\udfa4\ud83d\ude47\ud83c\udf51\u2744\ud83c\udf34\ud83d\udca3\ud83d\udc38\ud83d\udc8c\ud83d\udccd\ud83e\udd40\ud83e\udd22\ud83d\udc45\ud83d\udca1\ud83d\udca9\ud83d\udc50\ud83d\udcf8\ud83d\udc7b\ud83e\udd10\ud83e\udd2e\ud83c\udfbc\ud83e\udd75\ud83d\udea9\ud83c\udf4e\ud83c\udf4a\ud83d\udc7c\ud83d\udc8d\ud83d\udce3\ud83e\udd42"),GU=HU.reduce(((e,t,r)=>(e[r]=t,e)),[]),WU=HU.reduce(((e,t,r)=>(e[t.codePointAt(0)]=r,e)),[]);const YU=HM({prefix:"\ud83d\ude80",name:"base256emoji",encode:function(e){return e.reduce(((e,t)=>e+=GU[t]),"")},decode:function(e){const t=[];for(const r of e){const e=WU[r.codePointAt(0)];if(void 0===e)throw new Error("Non-base256emoji character: ".concat(r));t.push(e)}return new Uint8Array(t)}}),QU=GM({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),XU=GM({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"}),JU=WM({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3}),ZU=HM({prefix:"\0",name:"identity",encode:e=>{return t=e,(new TextDecoder).decode(t);var t},decode:e=>(e=>(new TextEncoder).encode(e))(e)}),$U=new TextEncoder,eK=new TextDecoder,tK="json",rK=512,nK=e=>$U.encode(JSON.stringify(e)),iK=e=>JSON.parse(eK.decode(e)),oK="raw",sK=85,aK=e=>KM(e),cK=e=>KM(e),lK=(e,t)=>{const{bytes:r,version:n}=e;return 0===n?fK(r,hK(e),t||YM.encoder):yK(r,hK(e),t||DU.encoder)},uK=new WeakMap,hK=e=>{const t=uK.get(e);if(null==t){const t=new Map;return uK.set(e,t),t}return t};class dK{constructor(e,t,r,n){this.code=t,this.version=e,this.multihash=r,this.bytes=n,this["/"]=n}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:{const{code:e,multihash:t}=this;if(e!==gK)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(t.code!==mK)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return dK.createV0(t)}default:throw Error("Can not convert CID version ".concat(this.version," to version 0. This is a bug please report"))}}toV1(){switch(this.version){case 0:{const{code:e,digest:t}=this.multihash,r=gO(e,t);return dK.createV1(this.code,r)}case 1:return this;default:throw Error("Can not convert CID version ".concat(this.version," to version 1. This is a bug please report"))}}equals(e){return dK.equals(this,e)}static equals(e,t){const r=t;return r&&e.code===r.code&&e.version===r.version&&((e,t)=>{if(e===t)return!0;{const r=t;return e.code===r.code&&e.size===r.size&&r.bytes instanceof Uint8Array&&((e,t)=>{if(e===t)return!0;if(e.byteLength!==t.byteLength)return!1;for(let r=0;r<e.byteLength;r++)if(e[r]!==t[r])return!1;return!0})(e.bytes,r.bytes)}})(e.multihash,r.multihash)}toString(e){return lK(this,e)}toJSON(){return{"/":lK(this)}}link(){return this}get[Symbol.toStringTag](){return"CID"}[Symbol.for("nodejs.util.inspect.custom")](){return"CID(".concat(this.toString(),")")}static asCID(e){if(null==e)return null;const t=e;if(t instanceof dK)return t;if(null!=t["/"]&&t["/"]===t.bytes||t.asCID===t){const{version:e,code:r,multihash:n,bytes:i}=t;return new dK(e,r,n,i||bK(e,r,n.bytes))}if(!0===t[wK]){const{version:e,multihash:r,code:n}=t,i=mO(r);return dK.create(e,n,i)}return null}static create(e,t,r){if("number"!==typeof t)throw new Error("String codecs are no longer supported");if(!(r.bytes instanceof Uint8Array))throw new Error("Invalid digest");switch(e){case 0:if(t!==gK)throw new Error("Version 0 CID must use dag-pb (code: ".concat(gK,") block encoding"));return new dK(e,t,r,r.bytes);case 1:{const n=bK(e,t,r.bytes);return new dK(e,t,r,n)}default:throw new Error("Invalid version")}}static createV0(e){return dK.create(0,gK,e)}static createV1(e,t){return dK.create(1,e,t)}static decode(e){const[t,r]=dK.decodeFirst(e);if(r.length)throw new Error("Incorrect length");return t}static decodeFirst(e){const t=dK.inspectBytes(e),r=t.size-t.multihashSize,n=KM(e.subarray(r,r+t.multihashSize));if(n.byteLength!==t.multihashSize)throw new Error("Incorrect length");const i=n.subarray(t.multihashSize-t.digestSize),o=new bO(t.multihashCode,t.digestSize,i,n);return[0===t.version?dK.createV0(o):dK.createV1(t.codec,o),e.subarray(t.size)]}static inspectBytes(e){let t=0;const r=()=>{const[r,n]=pO(e.subarray(t));return t+=n,r};let n=r(),i=gK;if(18===n?(n=0,t=0):i=r(),0!==n&&1!==n)throw new RangeError("Invalid CID version ".concat(n));const o=t,s=r(),a=r(),c=t+a;return{version:n,codec:i,multihashCode:s,digestSize:a,multihashSize:c-o,size:c}}static parse(e,t){const[r,n]=pK(e,t),i=dK.decode(n);if(0===i.version&&"Q"!==e[0])throw Error("Version 0 CID string must not include multibase prefix");return hK(i).set(r,e),i}}const pK=(e,t)=>{switch(e[0]){case"Q":{const r=t||YM;return[YM.prefix,r.decode("".concat(YM.prefix).concat(e))]}case YM.prefix:{const r=t||YM;return[YM.prefix,r.decode(e)]}case DU.prefix:{const r=t||DU;return[DU.prefix,r.decode(e)]}default:if(null==t)throw Error("To parse non base32 or base58btc encoded CID multibase decoder must be provided");return[e[0],t.decode(e)]}},fK=(e,t,r)=>{const{prefix:n}=r;if(n!==YM.prefix)throw Error("Cannot string encode V0 in ".concat(r.name," encoding"));const i=t.get(n);if(null==i){const i=r.encode(e).slice(1);return t.set(n,i),i}return i},yK=(e,t,r)=>{const{prefix:n}=r,i=t.get(n);if(null==i){const i=r.encode(e);return t.set(n,i),i}return i},gK=112,mK=18,bK=(e,t,r)=>{const n=yO(e),i=n+yO(t),o=new Uint8Array(i+r.byteLength);return fO(e,o,0),fO(t,o,n),o.set(r,i),o},wK=Symbol.for("@ipld/js-cid/CID"),vK={...ut,...st,...lt,...it,...ot,...nt,...ct,...Xe,...$e,...at};let _K;const EK=Symbol.for("nodejs.util.inspect.custom"),SK=Object.values(vK).map((e=>e.decoder)).reduce(((e,t)=>e.or(t)),vK.identity.decoder),AK=114,kK=36,IK=37;_K=Symbol.toStringTag;class RK{constructor(e){Br(this,"type",void 0),Br(this,"multihash",void 0),Br(this,"privateKey",void 0),Br(this,"publicKey",void 0),Br(this,"string",void 0),Br(this,Mr,!0),this.type=e.type,this.multihash=e.multihash,this.privateKey=e.privateKey,Object.defineProperty(this,"string",{enumerable:!1,writable:!0})}get[_K](){return"PeerId(".concat(this.toString(),")")}toString(){return null==this.string&&(this.string=YM.encode(this.multihash.bytes).slice(1)),this.string}toCID(){return dK.createV1(AK,this.multihash)}toBytes(){return this.multihash.bytes}toJSON(){return this.toString()}equals(e){var t;if(e instanceof Uint8Array)return Yn(this.multihash.bytes,e);if("string"===typeof e)return function(e,t){var r;if(t=null!==(r=t)&&void 0!==r?r:SK,"1"===e.charAt(0)||"Q"===e.charAt(0)){const t=mO(YM.decode("z".concat(e)));return e.startsWith("12D")?new CK({multihash:t}):e.startsWith("16U")?new TK({multihash:t}):new PK({multihash:t})}return function(e){try{const t=mO(e);if(t.code===vO.code){if(t.digest.length===kK)return new CK({multihash:t});if(t.digest.length===IK)return new TK({multihash:t})}if(t.code===AO.code)return new PK({multihash:t})}catch{return function(e){if(null==e||null==e.multihash||null==e.version||1===e.version&&e.code!==AK)throw new Error("Supplied PeerID CID is invalid");const t=e.multihash;if(t.code===AO.code)return new PK({multihash:e.multihash});if(t.code===vO.code){if(t.digest.length===kK)return new CK({multihash:e.multihash});if(t.digest.length===IK)return new TK({multihash:e.multihash})}throw new Error("Supplied PeerID CID is invalid")}(dK.decode(e))}throw new Error("Supplied PeerID CID is invalid")}(SK.decode(e))}(e).equals(this);if(null!=(null===e||void 0===e||null===(t=e.multihash)||void 0===t?void 0:t.bytes))return Yn(this.multihash.bytes,e.multihash.bytes);throw new Error("not valid Id")}[EK](){return"PeerId(".concat(this.toString(),")")}}class PK extends RK{constructor(e){super({...e,type:"RSA"}),Br(this,"type","RSA"),Br(this,"publicKey",void 0),this.publicKey=e.publicKey}}class CK extends RK{constructor(e){super({...e,type:"Ed25519"}),Br(this,"type","Ed25519"),Br(this,"publicKey",void 0),this.publicKey=e.multihash.digest}}class TK extends RK{constructor(e){super({...e,type:"secp256k1"}),Br(this,"type","secp256k1"),Br(this,"publicKey",void 0),this.publicKey=e.multihash.digest}}let xK,DK=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:21;return crypto.getRandomValues(new Uint8Array(e)).reduce(((e,t)=>e+=(t&=63)<36?t.toString(36):t<62?(t-26).toString(36).toUpperCase():t>62?"-":"_"),"")};const NK="/",LK=(new TextEncoder).encode(NK),BK=LK[0];xK=Symbol.toStringTag;class MK{constructor(e,t){if(Br(this,"_buf",void 0),"string"===typeof e)this._buf=ps(e);else{if(!(e instanceof Uint8Array))throw new Error("Invalid key, should be String of Uint8Array");this._buf=e}if(null==t&&(t=!0),t&&this.clean(),0===this._buf.byteLength||this._buf[0]!==BK)throw new Error("Invalid key")}toString(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"utf8";return Ro(this._buf,e)}uint8Array(){return this._buf}get[xK](){return"Key(".concat(this.toString(),")")}static withNamespaces(e){return new MK(e.join(NK))}static random(){return new MK(DK().replace(/-/g,""))}static asKey(e){return e instanceof Uint8Array||"string"===typeof e?new MK(e):"function"===typeof e.uint8Array?new MK(e.uint8Array()):null}clean(){if(null!=this._buf&&0!==this._buf.byteLength||(this._buf=LK),this._buf[0]!==BK){const e=new Uint8Array(this._buf.byteLength+1);e.fill(BK,0,1),e.set(this._buf,1),this._buf=e}for(;this._buf.byteLength>1&&this._buf[this._buf.byteLength-1]===BK;)this._buf=this._buf.subarray(0,-1)}less(e){const t=this.list(),r=e.list();for(let n=0;n<t.length;n++){if(r.length<n+1)return!1;const e=t[n],i=r[n];if(e<i)return!0;if(e>i)return!1}return t.length<r.length}reverse(){return MK.withNamespaces(this.list().slice().reverse())}namespaces(){return this.list()}baseNamespace(){const e=this.namespaces();return e[e.length-1]}list(){return this.toString().split(NK).slice(1)}type(){return function(e){const t=e.split(":");if(t.length<2)return"";return t.slice(0,-1).join(":")}(this.baseNamespace())}name(){return function(e){const t=e.split(":");return t[t.length-1]}(this.baseNamespace())}instance(e){return new MK(this.toString()+":"+e)}path(){let e=this.parent().toString();return e.endsWith(NK)||(e+=NK),e+=this.type(),new MK(e)}parent(){const e=this.list();return 1===e.length?new MK(NK):new MK(e.slice(0,-1).join(NK))}child(e){return this.toString()===NK?e:e.toString()===NK?this:new MK(this.toString()+e.toString(),!1)}isAncestorOf(e){return e.toString()!==this.toString()&&e.toString().startsWith(this.toString())}isDecendantOf(e){return e.toString()!==this.toString()&&this.toString().startsWith(e.toString())}isTopLevel(){return 1===this.list().length}concat(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return MK.withNamespaces([...this.namespaces(),...(n=t.map((e=>e.namespaces())),[].concat(...n))]);var n}}const OK=__webpack_require__(9842);var UK,KK=__webpack_require__(6327);!function(e){e.ERR_INVALID_PARAMETERS="ERR_INVALID_PARAMETERS",e.ERR_INVALID_KEY_NAME="ERR_INVALID_KEY_NAME",e.ERR_INVALID_KEY_TYPE="ERR_INVALID_KEY_TYPE",e.ERR_KEY_ALREADY_EXISTS="ERR_KEY_ALREADY_EXISTS",e.ERR_INVALID_KEY_SIZE="ERR_INVALID_KEY_SIZE",e.ERR_KEY_NOT_FOUND="ERR_KEY_NOT_FOUND",e.ERR_OLD_KEY_NAME_INVALID="ERR_OLD_KEY_NAME_INVALID",e.ERR_NEW_KEY_NAME_INVALID="ERR_NEW_KEY_NAME_INVALID",e.ERR_PASSWORD_REQUIRED="ERR_PASSWORD_REQUIRED",e.ERR_PEM_REQUIRED="ERR_PEM_REQUIRED",e.ERR_CANNOT_READ_KEY="ERR_CANNOT_READ_KEY",e.ERR_MISSING_PRIVATE_KEY="ERR_MISSING_PRIVATE_KEY",e.ERR_INVALID_OLD_PASS_TYPE="ERR_INVALID_OLD_PASS_TYPE",e.ERR_INVALID_NEW_PASS_TYPE="ERR_INVALID_NEW_PASS_TYPE",e.ERR_INVALID_PASS_LENGTH="ERR_INVALID_PASS_LENGTH"}(UK||(UK={}));const qK=function(e){let t=function(e){const t=()=>{};return t.enabled=!1,t.color="",t.diff=0,t.log=()=>{},t.namespace=e,t.destroy=()=>!0,t.extend=()=>t,t}("".concat(e,":trace"));return ia.enabled("".concat(e,":trace"))&&null!=ia.names.map((e=>e.toString())).find((e=>e.includes(":trace")))&&(t=ia("".concat(e,":trace"))),Object.assign(ia(e),{error:ia("".concat(e,":error")),trace:t})}("libp2p:keychain"),FK="/pkcs8/",VK="/info/",zK=new WeakMap,jK=14,HK=16,GK=1e3,WK={dek:{keyLength:64,iterationCount:1e4,salt:"you should override this value with a crypto secure random number",hash:"sha2-512"}};function YK(e){return null!=e&&("string"===typeof e&&(e===KK(e.trim())&&e.length>0))}async function QK(){const e=800*Math.random()+200;await new Promise((t=>setTimeout(t,e)))}function XK(e){return new MK(FK+e)}function JK(e){return new MK(VK+e)}class ZK{constructor(e,t){var r,n,i,o,s,a,c,l,u,h;if(Br(this,"components",void 0),Br(this,"init",void 0),this.components=e,this.init=OK(WK,t),null!=this.init.pass&&(null===(r=this.init.pass)||void 0===r?void 0:r.length)<20)throw new Error("pass must be least 20 characters");if(null!=(null===(n=this.init.dek)||void 0===n?void 0:n.keyLength)&&this.init.dek.keyLength<jK)throw new Error("dek.keyLength must be least ".concat(jK," bytes"));if(null!=(null===(i=this.init.dek)||void 0===i||null===(o=i.salt)||void 0===o?void 0:o.length)&&this.init.dek.salt.length<HK)throw new Error("dek.saltLength must be least ".concat(HK," bytes"));if(null!=(null===(s=this.init.dek)||void 0===s?void 0:s.iterationCount)&&this.init.dek.iterationCount<GK)throw new Error("dek.iterationCount must be least ".concat(GK));const d=null!=this.init.pass&&null!=(null===(a=this.init.dek)||void 0===a?void 0:a.salt)?xU(this.init.pass,null===(c=this.init.dek)||void 0===c?void 0:c.salt,null===(l=this.init.dek)||void 0===l?void 0:l.iterationCount,null===(u=this.init.dek)||void 0===u?void 0:u.keyLength,null===(h=this.init.dek)||void 0===h?void 0:h.hash):"";zK.set(this,{dek:d})}static generateOptions(){const e=Object.assign({},WK),t=3*Math.ceil(HK/3);return e.dek.salt=Ro(oU(t),"base64"),e}static get options(){return WK}async createKey(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:2048;if(!YK(e)||"self"===e)throw await QK(),new rp("Invalid key name",UK.ERR_INVALID_KEY_NAME);if("string"!==typeof t)throw await QK(),new rp("Invalid key type",UK.ERR_INVALID_KEY_TYPE);const n=XK(e);if(await this.components.datastore.has(n))throw await QK(),new rp("Key name already exists",UK.ERR_KEY_ALREADY_EXISTS);if("rsa"===t.toLowerCase())if(!Number.isSafeInteger(r)||r<2048)throw await QK(),new rp("Invalid RSA key size",UK.ERR_INVALID_KEY_SIZE);let i;try{const o=await async function(e,t){return RU(e).generateKeyPair(null!==t&&void 0!==t?t:2048)}(t,r),s=await o.id(),a=zK.get(this);if(null==a)throw new rp("dek missing",UK.ERR_INVALID_PARAMETERS);const c=a.dek,l=await o.export(c);i={name:e,id:s};const u=this.components.datastore.batch();u.put(n,ps(l)),u.put(JK(e),ps(JSON.stringify(i))),await u.commit()}catch(o){throw await QK(),o}return i}async listKeys(){const e={prefix:VK},t=[];for await(const r of this.components.datastore.query(e))t.push(JSON.parse(Ro(r.value)));return t}async findKeyById(e){try{const t=(await this.listKeys()).find((t=>t.id===e));if(null==t)throw new rp("Key with id '".concat(e,"' does not exist."),UK.ERR_KEY_NOT_FOUND);return t}catch(t){throw await QK(),t}}async findKeyByName(e){if(!YK(e))throw await QK(),new rp("Invalid key name '".concat(e,"'"),UK.ERR_INVALID_KEY_NAME);const t=JK(e);try{const e=await this.components.datastore.get(t);return JSON.parse(Ro(e))}catch(r){throw await QK(),qK.error(r),new rp("Key '".concat(e,"' does not exist."),UK.ERR_KEY_NOT_FOUND)}}async removeKey(e){if(!YK(e)||"self"===e)throw await QK(),new rp("Invalid key name '".concat(e,"'"),UK.ERR_INVALID_KEY_NAME);const t=XK(e),r=await this.findKeyByName(e),n=this.components.datastore.batch();return n.delete(t),n.delete(JK(e)),await n.commit(),r}async renameKey(e,t){if(!YK(e)||"self"===e)throw await QK(),new rp("Invalid old key name '".concat(e,"'"),UK.ERR_OLD_KEY_NAME_INVALID);if(!YK(t)||"self"===t)throw await QK(),new rp("Invalid new key name '".concat(t,"'"),UK.ERR_NEW_KEY_NAME_INVALID);const r=XK(e),n=XK(t),i=JK(e),o=JK(t);if(await this.components.datastore.has(n))throw await QK(),new rp("Key '".concat(t,"' already exists"),UK.ERR_KEY_ALREADY_EXISTS);try{const e=await this.components.datastore.get(r),s=await this.components.datastore.get(i),a=JSON.parse(Ro(s));a.name=t;const c=this.components.datastore.batch();return c.put(n,e),c.put(o,ps(JSON.stringify(a))),c.delete(r),c.delete(i),await c.commit(),a}catch(s){throw await QK(),s}}async exportKey(e,t){if(!YK(e))throw await QK(),new rp("Invalid key name '".concat(e,"'"),UK.ERR_INVALID_KEY_NAME);if(null==t)throw await QK(),new rp("Password is required",UK.ERR_PASSWORD_REQUIRED);const r=XK(e);try{const e=Ro(await this.components.datastore.get(r)),n=zK.get(this);if(null==n)throw new rp("dek missing",UK.ERR_INVALID_PARAMETERS);const i=n.dek,o=await CU(e,i);return await o.export(t)}catch(n){throw await QK(),n}}async exportPeerId(e){const t="temporary-password",r=await this.exportKey(e,t),n=await CU(r,t);return async function(e,t){return e.length===kK?new CK({multihash:gO(vO.code,e),privateKey:t}):e.length===IK?new TK({multihash:gO(vO.code,e),privateKey:t}):new PK({multihash:await AO.digest(e),publicKey:e,privateKey:t})}(n.public.bytes,n.bytes)}async importKey(e,t,r){if(!YK(e)||"self"===e)throw await QK(),new rp("Invalid key name '".concat(e,"'"),UK.ERR_INVALID_KEY_NAME);if(null==t)throw await QK(),new rp("PEM encoded key is required",UK.ERR_PEM_REQUIRED);const n=XK(e);if(await this.components.datastore.has(n))throw await QK(),new rp("Key '".concat(e,"' already exists"),UK.ERR_KEY_ALREADY_EXISTS);let i,o;try{i=await CU(t,r)}catch(c){throw await QK(),new rp("Cannot read the key, most likely the password is wrong",UK.ERR_CANNOT_READ_KEY)}try{o=await i.id();const e=zK.get(this);if(null==e)throw new rp("dek missing",UK.ERR_INVALID_PARAMETERS);const r=e.dek;t=await i.export(r)}catch(c){throw await QK(),c}const s={name:e,id:o},a=this.components.datastore.batch();return a.put(n,ps(t)),a.put(JK(e),ps(JSON.stringify(s))),await a.commit(),s}async importPeer(e,t){try{if(!YK(e))throw new rp("Invalid key name '".concat(e,"'"),UK.ERR_INVALID_KEY_NAME);if(null==t)throw new rp("PeerId is required",UK.ERR_MISSING_PRIVATE_KEY);if(null==t.privateKey)throw new rp("PeerId.privKey is required",UK.ERR_MISSING_PRIVATE_KEY);const r=await PU(t.privateKey),n=XK(e);if(await this.components.datastore.has(n))throw await QK(),new rp("Key '".concat(e,"' already exists"),UK.ERR_KEY_ALREADY_EXISTS);const i=zK.get(this);if(null==i)throw new rp("dek missing",UK.ERR_INVALID_PARAMETERS);const o=i.dek,s=await r.export(o),a={name:e,id:t.toString()},c=this.components.datastore.batch();return c.put(n,ps(s)),c.put(JK(e),ps(JSON.stringify(a))),await c.commit(),a}catch(r){throw await QK(),r}}async getPrivateKey(e){if(!YK(e))throw await QK(),new rp("Invalid key name '".concat(e,"'"),UK.ERR_INVALID_KEY_NAME);try{const t=XK(e);return Ro(await this.components.datastore.get(t))}catch(t){throw await QK(),qK.error(t),new rp("Key '".concat(e,"' does not exist."),UK.ERR_KEY_NOT_FOUND)}}async rotateKeychainPass(e,t){var r,n,i,o;if("string"!==typeof e)throw await QK(),new rp("Invalid old pass type '".concat(typeof e,"'"),UK.ERR_INVALID_OLD_PASS_TYPE);if("string"!==typeof t)throw await QK(),new rp("Invalid new pass type '".concat(typeof t,"'"),UK.ERR_INVALID_NEW_PASS_TYPE);if(t.length<20)throw await QK(),new rp("Invalid pass length ".concat(t.length),UK.ERR_INVALID_PASS_LENGTH);qK("recreating keychain");const s=zK.get(this);if(null==s)throw new rp("dek missing",UK.ERR_INVALID_PARAMETERS);const a=s.dek;this.init.pass=t;const c=null!=t&&null!=(null===(r=this.init.dek)||void 0===r?void 0:r.salt)?xU(t,this.init.dek.salt,null===(n=this.init.dek)||void 0===n?void 0:n.iterationCount,null===(i=this.init.dek)||void 0===i?void 0:i.keyLength,null===(o=this.init.dek)||void 0===o?void 0:o.hash):"";zK.set(this,{dek:c});const l=await this.listKeys();for(const u of l){const e=Ro(await this.components.datastore.get(XK(u.name))),t=await CU(e,a),r=c.toString(),n=await t.export(r),i=this.components.datastore.batch(),o={name:u.name,id:u.id};i.put(XK(u.name),ps(n)),i.put(JK(u.name),ps(JSON.stringify(o))),await i.commit()}qK("keychain reconstructed")}}const $K=eB({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),eq=eB({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),tq=eB({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),rq=eB({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),nq=eB({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),iq=eB({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),oq=eB({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),sq=eB({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),aq=eB({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});function cq(e){let t=function(e){const t=()=>{};return t.enabled=!1,t.color="",t.diff=0,t.log=()=>{},t.namespace=e,t.destroy=()=>!0,t.extend=()=>t,t}("".concat(e,":trace"));return ia.enabled("".concat(e,":trace"))&&null!=ia.names.map((e=>e.toString())).find((e=>e.includes(":trace")))&&(t=ia("".concat(e,":trace"))),Object.assign(ia(e),{error:ia("".concat(e,":error")),trace:t})}ia.formatters.b=e=>null==e?"undefined":tB.baseEncode(e),ia.formatters.t=e=>null==e?"undefined":$K.baseEncode(e),ia.formatters.m=e=>null==e?"undefined":OB.baseEncode(e),ia.formatters.p=e=>null==e?"undefined":e.toString(),ia.formatters.c=e=>null==e?"undefined":e.toString(),ia.formatters.k=e=>null==e?"undefined":e.toString(),ia.formatters.a=e=>null==e?"undefined":e.toString();var lq=function(e,t){if(e.length>=255)throw new TypeError("Alphabet too long");for(var r=new Uint8Array(256),n=0;n<r.length;n++)r[n]=255;for(var i=0;i<e.length;i++){var o=e.charAt(i),s=o.charCodeAt(0);if(255!==r[s])throw new TypeError(o+" is ambiguous");r[s]=i}var a=e.length,c=e.charAt(0),l=Math.log(a)/Math.log(256),u=Math.log(256)/Math.log(a);function h(e){if("string"!==typeof e)throw new TypeError("Expected String");if(0===e.length)return new Uint8Array;var t=0;if(" "!==e[t]){for(var n=0,i=0;e[t]===c;)n++,t++;for(var o=(e.length-t)*l+1>>>0,s=new Uint8Array(o);e[t];){var u=r[e.charCodeAt(t)];if(255===u)return;for(var h=0,d=o-1;(0!==u||h<i)&&-1!==d;d--,h++)u+=a*s[d]>>>0,s[d]=u%256>>>0,u=u/256>>>0;if(0!==u)throw new Error("Non-zero carry");i=h,t++}if(" "!==e[t]){for(var p=o-i;p!==o&&0===s[p];)p++;for(var f=new Uint8Array(n+(o-p)),y=n;p!==o;)f[y++]=s[p++];return f}}}return{encode:function(t){if(t instanceof Uint8Array||(ArrayBuffer.isView(t)?t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength):Array.isArray(t)&&(t=Uint8Array.from(t))),!(t instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(0===t.length)return"";for(var r=0,n=0,i=0,o=t.length;i!==o&&0===t[i];)i++,r++;for(var s=(o-i)*u+1>>>0,l=new Uint8Array(s);i!==o;){for(var h=t[i],d=0,p=s-1;(0!==h||d<n)&&-1!==p;p--,d++)h+=256*l[p]>>>0,l[p]=h%a>>>0,h=h/a>>>0;if(0!==h)throw new Error("Non-zero carry");n=d,i++}for(var f=s-n;f!==s&&0===l[f];)f++;for(var y=c.repeat(r);f<s;++f)y+=e.charAt(l[f]);return y},decodeUnsafe:h,decode:function(e){var r=h(e);if(r)return r;throw new Error("Non-".concat(t," character"))}}};const uq=lq,hq=(new Uint8Array(0),e=>{if(e instanceof Uint8Array&&"Uint8Array"===e.constructor.name)return e;if(e instanceof ArrayBuffer)return new Uint8Array(e);if(ArrayBuffer.isView(e))return new Uint8Array(e.buffer,e.byteOffset,e.byteLength);throw new Error("Unknown type, must be binary type")});class dq{constructor(e,t,r){this.name=e,this.prefix=t,this.baseEncode=r}encode(e){if(e instanceof Uint8Array)return"".concat(this.prefix).concat(this.baseEncode(e));throw Error("Unknown type, must be binary type")}}class pq{constructor(e,t,r){if(this.name=e,this.prefix=t,void 0===t.codePointAt(0))throw new Error("Invalid prefix character");this.prefixCodePoint=t.codePointAt(0),this.baseDecode=r}decode(e){if("string"===typeof e){if(e.codePointAt(0)!==this.prefixCodePoint)throw Error("Unable to decode multibase string ".concat(JSON.stringify(e),", ").concat(this.name," decoder only supports inputs prefixed with ").concat(this.prefix));return this.baseDecode(e.slice(this.prefix.length))}throw Error("Can only multibase decode strings")}or(e){return yq(this,e)}}class fq{constructor(e){this.decoders=e}or(e){return yq(this,e)}decode(e){const t=e[0],r=this.decoders[t];if(r)return r.decode(e);throw RangeError("Unable to decode multibase string ".concat(JSON.stringify(e),", only inputs prefixed with ").concat(Object.keys(this.decoders)," are supported"))}}const yq=(e,t)=>new fq({...e.decoders||{[e.prefix]:e},...t.decoders||{[t.prefix]:t}});class gq{constructor(e,t,r,n){this.name=e,this.prefix=t,this.baseEncode=r,this.baseDecode=n,this.encoder=new dq(e,t,r),this.decoder=new pq(e,t,n)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}}const mq=e=>{let{name:t,prefix:r,encode:n,decode:i}=e;return new gq(t,r,n,i)},bq=e=>{let{prefix:t,name:r,alphabet:n}=e;const{encode:i,decode:o}=uq(n,r);return mq({prefix:t,name:r,encode:i,decode:e=>hq(o(e))})},wq=e=>{let{name:t,prefix:r,bitsPerChar:n,alphabet:i}=e;return mq({prefix:r,name:t,encode:e=>((e,t,r)=>{const n="="===t[t.length-1],i=(1<<r)-1;let o="",s=0,a=0;for(let c=0;c<e.length;++c)for(a=a<<8|e[c],s+=8;s>r;)s-=r,o+=t[i&a>>s];if(s&&(o+=t[i&a<<r-s]),n)for(;o.length*r&7;)o+="=";return o})(e,i,n),decode:e=>((e,t,r,n)=>{const i={};for(let u=0;u<t.length;++u)i[t[u]]=u;let o=e.length;for(;"="===e[o-1];)--o;const s=new Uint8Array(o*r/8|0);let a=0,c=0,l=0;for(let u=0;u<o;++u){const t=i[e[u]];if(void 0===t)throw new SyntaxError("Non-".concat(n," character"));c=c<<r|t,a+=r,a>=8&&(a-=8,s[l++]=255&c>>a)}if(a>=r||255&c<<8-a)throw new SyntaxError("Unexpected end of data");return s})(e,i,n,t)})},vq=bq({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),_q=bq({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"}),Eq=bq({prefix:"9",name:"base10",alphabet:"0123456789"}),Sq=wq({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),Aq=wq({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4}),kq=wq({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1}),Iq=Array.from("\ud83d\ude80\ud83e\ude90\u2604\ud83d\udef0\ud83c\udf0c\ud83c\udf11\ud83c\udf12\ud83c\udf13\ud83c\udf14\ud83c\udf15\ud83c\udf16\ud83c\udf17\ud83c\udf18\ud83c\udf0d\ud83c\udf0f\ud83c\udf0e\ud83d\udc09\u2600\ud83d\udcbb\ud83d\udda5\ud83d\udcbe\ud83d\udcbf\ud83d\ude02\u2764\ud83d\ude0d\ud83e\udd23\ud83d\ude0a\ud83d\ude4f\ud83d\udc95\ud83d\ude2d\ud83d\ude18\ud83d\udc4d\ud83d\ude05\ud83d\udc4f\ud83d\ude01\ud83d\udd25\ud83e\udd70\ud83d\udc94\ud83d\udc96\ud83d\udc99\ud83d\ude22\ud83e\udd14\ud83d\ude06\ud83d\ude44\ud83d\udcaa\ud83d\ude09\u263a\ud83d\udc4c\ud83e\udd17\ud83d\udc9c\ud83d\ude14\ud83d\ude0e\ud83d\ude07\ud83c\udf39\ud83e\udd26\ud83c\udf89\ud83d\udc9e\u270c\u2728\ud83e\udd37\ud83d\ude31\ud83d\ude0c\ud83c\udf38\ud83d\ude4c\ud83d\ude0b\ud83d\udc97\ud83d\udc9a\ud83d\ude0f\ud83d\udc9b\ud83d\ude42\ud83d\udc93\ud83e\udd29\ud83d\ude04\ud83d\ude00\ud83d\udda4\ud83d\ude03\ud83d\udcaf\ud83d\ude48\ud83d\udc47\ud83c\udfb6\ud83d\ude12\ud83e\udd2d\u2763\ud83d\ude1c\ud83d\udc8b\ud83d\udc40\ud83d\ude2a\ud83d\ude11\ud83d\udca5\ud83d\ude4b\ud83d\ude1e\ud83d\ude29\ud83d\ude21\ud83e\udd2a\ud83d\udc4a\ud83e\udd73\ud83d\ude25\ud83e\udd24\ud83d\udc49\ud83d\udc83\ud83d\ude33\u270b\ud83d\ude1a\ud83d\ude1d\ud83d\ude34\ud83c\udf1f\ud83d\ude2c\ud83d\ude43\ud83c\udf40\ud83c\udf37\ud83d\ude3b\ud83d\ude13\u2b50\u2705\ud83e\udd7a\ud83c\udf08\ud83d\ude08\ud83e\udd18\ud83d\udca6\u2714\ud83d\ude23\ud83c\udfc3\ud83d\udc90\u2639\ud83c\udf8a\ud83d\udc98\ud83d\ude20\u261d\ud83d\ude15\ud83c\udf3a\ud83c\udf82\ud83c\udf3b\ud83d\ude10\ud83d\udd95\ud83d\udc9d\ud83d\ude4a\ud83d\ude39\ud83d\udde3\ud83d\udcab\ud83d\udc80\ud83d\udc51\ud83c\udfb5\ud83e\udd1e\ud83d\ude1b\ud83d\udd34\ud83d\ude24\ud83c\udf3c\ud83d\ude2b\u26bd\ud83e\udd19\u2615\ud83c\udfc6\ud83e\udd2b\ud83d\udc48\ud83d\ude2e\ud83d\ude46\ud83c\udf7b\ud83c\udf43\ud83d\udc36\ud83d\udc81\ud83d\ude32\ud83c\udf3f\ud83e\udde1\ud83c\udf81\u26a1\ud83c\udf1e\ud83c\udf88\u274c\u270a\ud83d\udc4b\ud83d\ude30\ud83e\udd28\ud83d\ude36\ud83e\udd1d\ud83d\udeb6\ud83d\udcb0\ud83c\udf53\ud83d\udca2\ud83e\udd1f\ud83d\ude41\ud83d\udea8\ud83d\udca8\ud83e\udd2c\u2708\ud83c\udf80\ud83c\udf7a\ud83e\udd13\ud83d\ude19\ud83d\udc9f\ud83c\udf31\ud83d\ude16\ud83d\udc76\ud83e\udd74\u25b6\u27a1\u2753\ud83d\udc8e\ud83d\udcb8\u2b07\ud83d\ude28\ud83c\udf1a\ud83e\udd8b\ud83d\ude37\ud83d\udd7a\u26a0\ud83d\ude45\ud83d\ude1f\ud83d\ude35\ud83d\udc4e\ud83e\udd32\ud83e\udd20\ud83e\udd27\ud83d\udccc\ud83d\udd35\ud83d\udc85\ud83e\uddd0\ud83d\udc3e\ud83c\udf52\ud83d\ude17\ud83e\udd11\ud83c\udf0a\ud83e\udd2f\ud83d\udc37\u260e\ud83d\udca7\ud83d\ude2f\ud83d\udc86\ud83d\udc46\ud83c\udfa4\ud83d\ude47\ud83c\udf51\u2744\ud83c\udf34\ud83d\udca3\ud83d\udc38\ud83d\udc8c\ud83d\udccd\ud83e\udd40\ud83e\udd22\ud83d\udc45\ud83d\udca1\ud83d\udca9\ud83d\udc50\ud83d\udcf8\ud83d\udc7b\ud83e\udd10\ud83e\udd2e\ud83c\udfbc\ud83e\udd75\ud83d\udea9\ud83c\udf4e\ud83c\udf4a\ud83d\udc7c\ud83d\udc8d\ud83d\udce3\ud83e\udd42"),Rq=Iq.reduce(((e,t,r)=>(e[r]=t,e)),[]),Pq=Iq.reduce(((e,t,r)=>(e[t.codePointAt(0)]=r,e)),[]);const Cq=mq({prefix:"\ud83d\ude80",name:"base256emoji",encode:function(e){return e.reduce(((e,t)=>e+=Rq[t]),"")},decode:function(e){const t=[];for(const r of e){const e=Pq[r.codePointAt(0)];if(void 0===e)throw new Error("Non-base256emoji character: ".concat(r));t.push(e)}return new Uint8Array(t)}}),Tq=wq({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),xq=wq({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),Dq=wq({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),Nq=wq({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),Lq=wq({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),Bq=wq({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),Mq=wq({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),Oq=wq({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),Uq=wq({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5}),Kq=bq({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),qq=bq({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"}),Fq=wq({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),Vq=wq({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),zq=wq({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),jq=wq({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6}),Hq=wq({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3}),Gq=mq({prefix:"\0",name:"identity",encode:e=>{return t=e,(new TextDecoder).decode(t);var t},decode:e=>(e=>(new TextEncoder).encode(e))(e)}),Wq=new TextEncoder,Yq=new TextDecoder,Qq="json",Xq=512,Jq=e=>Wq.encode(JSON.stringify(e)),Zq=e=>JSON.parse(Yq.decode(e)),$q="raw",eF=85,tF=e=>hq(e),rF=e=>hq(e);var nF=function e(t,r,n){r=r||[];var i=n=n||0;for(;t>=sF;)r[n++]=255&t|iF,t/=128;for(;t&oF;)r[n++]=255&t|iF,t>>>=7;return r[n]=0|t,e.bytes=n-i+1,r},iF=128,oF=-128,sF=Math.pow(2,31);var aF=function e(t,r){var n,i=0,o=0,s=r=r||0,a=t.length;do{if(s>=a)throw e.bytes=0,new RangeError("Could not decode varint");n=t[s++],i+=o<28?(n&lF)<<o:(n&lF)*Math.pow(2,o),o+=7}while(n>=cF);return e.bytes=s-r,i},cF=128,lF=127;var uF=Math.pow(2,7),hF=Math.pow(2,14),dF=Math.pow(2,21),pF=Math.pow(2,28),fF=Math.pow(2,35),yF=Math.pow(2,42),gF=Math.pow(2,49),mF=Math.pow(2,56),bF=Math.pow(2,63);const wF={encode:nF,decode:aF,encodingLength:function(e){return e<uF?1:e<hF?2:e<dF?3:e<pF?4:e<fF?5:e<yF?6:e<gF?7:e<mF?8:e<bF?9:10}},vF=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return[wF.decode(e,t),wF.decode.bytes]},_F=function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;return wF.encode(e,t,r),t},EF=e=>wF.encodingLength(e),SF=(e,t)=>{const r=t.byteLength,n=EF(e),i=n+EF(r),o=new Uint8Array(i+r);return _F(e,o,0),_F(r,o,n),o.set(t,i),new kF(e,r,t,o)},AF=e=>{const t=hq(e),[r,n]=vF(t),[i,o]=vF(t.subarray(n)),s=t.subarray(n+o);if(s.byteLength!==i)throw new Error("Incorrect length");return new kF(r,i,s,t)};class kF{constructor(e,t,r,n){this.code=e,this.size=t,this.digest=r,this.bytes=n}}const IF=hq,RF={code:0,name:"identity",encode:IF,digest:e=>SF(0,IF(e))},PF=e=>{let{name:t,code:r,encode:n}=e;return new CF(t,r,n)};class CF{constructor(e,t,r){this.name=e,this.code=t,this.encode=r}digest(e){if(e instanceof Uint8Array){const t=this.encode(e);return t instanceof Uint8Array?SF(this.code,t):t.then((e=>SF(this.code,e)))}throw Error("Unknown type, must be binary type")}}const TF=e=>async t=>new Uint8Array(await crypto.subtle.digest(e,t)),xF=PF({name:"sha2-256",code:18,encode:TF("SHA-256")}),DF=PF({name:"sha2-512",code:19,encode:TF("SHA-512")}),NF=(e,t)=>{const{bytes:r,version:n}=e;return 0===n?UF(r,BF(e),t||vq.encoder):KF(r,BF(e),t||Tq.encoder)},LF=new WeakMap,BF=e=>{const t=LF.get(e);if(null==t){const t=new Map;return LF.set(e,t),t}return t};class MF{constructor(e,t,r,n){this.code=t,this.version=e,this.multihash=r,this.bytes=n,this["/"]=n}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:{const{code:e,multihash:t}=this;if(e!==qF)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(t.code!==FF)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return MF.createV0(t)}default:throw Error("Can not convert CID version ".concat(this.version," to version 0. This is a bug please report"))}}toV1(){switch(this.version){case 0:{const{code:e,digest:t}=this.multihash,r=SF(e,t);return MF.createV1(this.code,r)}case 1:return this;default:throw Error("Can not convert CID version ".concat(this.version," to version 1. This is a bug please report"))}}equals(e){return MF.equals(this,e)}static equals(e,t){const r=t;return r&&e.code===r.code&&e.version===r.version&&((e,t)=>{if(e===t)return!0;{const r=t;return e.code===r.code&&e.size===r.size&&r.bytes instanceof Uint8Array&&((e,t)=>{if(e===t)return!0;if(e.byteLength!==t.byteLength)return!1;for(let r=0;r<e.byteLength;r++)if(e[r]!==t[r])return!1;return!0})(e.bytes,r.bytes)}})(e.multihash,r.multihash)}toString(e){return NF(this,e)}toJSON(){return{"/":NF(this)}}link(){return this}get[Symbol.toStringTag](){return"CID"}[Symbol.for("nodejs.util.inspect.custom")](){return"CID(".concat(this.toString(),")")}static asCID(e){if(null==e)return null;const t=e;if(t instanceof MF)return t;if(null!=t["/"]&&t["/"]===t.bytes||t.asCID===t){const{version:e,code:r,multihash:n,bytes:i}=t;return new MF(e,r,n,i||VF(e,r,n.bytes))}if(!0===t[zF]){const{version:e,multihash:r,code:n}=t,i=AF(r);return MF.create(e,n,i)}return null}static create(e,t,r){if("number"!==typeof t)throw new Error("String codecs are no longer supported");if(!(r.bytes instanceof Uint8Array))throw new Error("Invalid digest");switch(e){case 0:if(t!==qF)throw new Error("Version 0 CID must use dag-pb (code: ".concat(qF,") block encoding"));return new MF(e,t,r,r.bytes);case 1:{const n=VF(e,t,r.bytes);return new MF(e,t,r,n)}default:throw new Error("Invalid version")}}static createV0(e){return MF.create(0,qF,e)}static createV1(e,t){return MF.create(1,e,t)}static decode(e){const[t,r]=MF.decodeFirst(e);if(r.length)throw new Error("Incorrect length");return t}static decodeFirst(e){const t=MF.inspectBytes(e),r=t.size-t.multihashSize,n=hq(e.subarray(r,r+t.multihashSize));if(n.byteLength!==t.multihashSize)throw new Error("Incorrect length");const i=n.subarray(t.multihashSize-t.digestSize),o=new kF(t.multihashCode,t.digestSize,i,n);return[0===t.version?MF.createV0(o):MF.createV1(t.codec,o),e.subarray(t.size)]}static inspectBytes(e){let t=0;const r=()=>{const[r,n]=vF(e.subarray(t));return t+=n,r};let n=r(),i=qF;if(18===n?(n=0,t=0):i=r(),0!==n&&1!==n)throw new RangeError("Invalid CID version ".concat(n));const o=t,s=r(),a=r(),c=t+a;return{version:n,codec:i,multihashCode:s,digestSize:a,multihashSize:c-o,size:c}}static parse(e,t){const[r,n]=OF(e,t),i=MF.decode(n);if(0===i.version&&"Q"!==e[0])throw Error("Version 0 CID string must not include multibase prefix");return BF(i).set(r,e),i}}const OF=(e,t)=>{switch(e[0]){case"Q":{const r=t||vq;return[vq.prefix,r.decode("".concat(vq.prefix).concat(e))]}case vq.prefix:{const r=t||vq;return[vq.prefix,r.decode(e)]}case Tq.prefix:{const r=t||Tq;return[Tq.prefix,r.decode(e)]}default:if(null==t)throw Error("To parse non base32 or base58btc encoded CID multibase decoder must be provided");return[e[0],t.decode(e)]}},UF=(e,t,r)=>{const{prefix:n}=r;if(n!==vq.prefix)throw Error("Cannot string encode V0 in ".concat(r.name," encoding"));const i=t.get(n);if(null==i){const i=r.encode(e).slice(1);return t.set(n,i),i}return i},KF=(e,t,r)=>{const{prefix:n}=r,i=t.get(n);if(null==i){const i=r.encode(e);return t.set(n,i),i}return i},qF=112,FF=18,VF=(e,t,r)=>{const n=EF(e),i=n+EF(t),o=new Uint8Array(i+r.byteLength);return _F(e,o,0),_F(t,o,n),o.set(r,i),o},zF=Symbol.for("@ipld/js-cid/CID"),jF={...St,...mt,...Et,...yt,...gt,...wt,...vt,...ft,..._t,...bt};let HF;const GF=Symbol.for("nodejs.util.inspect.custom"),WF=Object.values(jF).map((e=>e.decoder)).reduce(((e,t)=>e.or(t)),jF.identity.decoder),YF=114,QF=36,XF=37;HF=Symbol.toStringTag;class JF{constructor(e){Br(this,"type",void 0),Br(this,"multihash",void 0),Br(this,"privateKey",void 0),Br(this,"publicKey",void 0),Br(this,"string",void 0),Br(this,Mr,!0),this.type=e.type,this.multihash=e.multihash,this.privateKey=e.privateKey,Object.defineProperty(this,"string",{enumerable:!1,writable:!0})}get[HF](){return"PeerId(".concat(this.toString(),")")}toString(){return null==this.string&&(this.string=vq.encode(this.multihash.bytes).slice(1)),this.string}toCID(){return MF.createV1(YF,this.multihash)}toBytes(){return this.multihash.bytes}toJSON(){return this.toString()}equals(e){var t;if(e instanceof Uint8Array)return Yn(this.multihash.bytes,e);if("string"===typeof e)return tV(e).equals(this);if(null!=(null===e||void 0===e||null===(t=e.multihash)||void 0===t?void 0:t.bytes))return Yn(this.multihash.bytes,e.multihash.bytes);throw new Error("not valid Id")}[GF](){return"PeerId(".concat(this.toString(),")")}}class ZF extends JF{constructor(e){super({...e,type:"RSA"}),Br(this,"type","RSA"),Br(this,"publicKey",void 0),this.publicKey=e.publicKey}}class $F extends JF{constructor(e){super({...e,type:"Ed25519"}),Br(this,"type","Ed25519"),Br(this,"publicKey",void 0),this.publicKey=e.multihash.digest}}class eV extends JF{constructor(e){super({...e,type:"secp256k1"}),Br(this,"type","secp256k1"),Br(this,"publicKey",void 0),this.publicKey=e.multihash.digest}}function tV(e,t){var r;if(t=null!==(r=t)&&void 0!==r?r:WF,"1"===e.charAt(0)||"Q"===e.charAt(0)){const t=AF(vq.decode("z".concat(e)));return e.startsWith("12D")?new $F({multihash:t}):e.startsWith("16U")?new eV({multihash:t}):new ZF({multihash:t})}return function(e){try{const t=AF(e);if(t.code===RF.code){if(t.digest.length===QF)return new $F({multihash:t});if(t.digest.length===XF)return new eV({multihash:t})}if(t.code===xF.code)return new ZF({multihash:t})}catch{return function(e){if(null==e||null==e.multihash||null==e.version||1===e.version&&e.code!==YF)throw new Error("Supplied PeerID CID is invalid");const t=e.multihash;if(t.code===xF.code)return new ZF({multihash:e.multihash});if(t.code===RF.code){if(t.digest.length===QF)return new $F({multihash:e.multihash});if(t.digest.length===XF)return new eV({multihash:e.multihash})}throw new Error("Supplied PeerID CID is invalid")}(MF.decode(e))}throw new Error("Supplied PeerID CID is invalid")}(WF.decode(e))}function rV(e,t){const r={[Symbol.iterator]:()=>r,next:()=>{const r=e.next(),n=r.value;if(!0===r.done||null==n){return{done:!0,value:void 0}}return{done:!1,value:t(n)}}};return r}let nV,iV,oV;nV=Symbol.iterator;class sV{constructor(e){if(Br(this,"map",void 0),this.map=new Map,null!=e)for(const[t,r]of e.entries())this.map.set(t.toString(),r)}[nV](){return this.entries()}clear(){this.map.clear()}delete(e){this.map.delete(e.toString())}entries(){return rV(this.map.entries(),(e=>[tV(e[0]),e[1]]))}forEach(e){this.map.forEach(((t,r)=>{e(t,tV(r),this)}))}get(e){return this.map.get(e.toString())}has(e){return this.map.has(e.toString())}set(e,t){this.map.set(e.toString(),t)}keys(){return rV(this.map.keys(),(e=>tV(e)))}values(){return this.map.values()}get size(){return this.map.size}}iV=Symbol.iterator;class aV{constructor(e){if(Br(this,"set",void 0),this.set=new Set,null!=e)for(const t of e)this.set.add(t.toString())}get size(){return this.set.size}[iV](){return this.values()}add(e){this.set.add(e.toString())}clear(){this.set.clear()}delete(e){this.set.delete(e.toString())}entries(){return rV(this.set.entries(),(e=>{const t=tV(e[0]);return[t,t]}))}forEach(e){this.set.forEach((t=>{const r=tV(t);e(r,r,this)}))}has(e){return this.set.has(e.toString())}values(){return rV(this.set.values(),(e=>tV(e)))}intersection(e){const t=new aV;for(const r of e)this.has(r)&&t.add(r);return t}difference(e){const t=new aV;for(const r of this)e.has(r)||t.add(r);return t}union(e){const t=new aV;for(const r of e)t.add(r);for(const r of this)t.add(r);return t}}oV=Symbol.iterator;const cV=$L({prefix:"9",name:"base10",alphabet:"0123456789"}),lV=eB({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),uV=eB({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4}),hV=eB({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1}),dV=Array.from("\ud83d\ude80\ud83e\ude90\u2604\ud83d\udef0\ud83c\udf0c\ud83c\udf11\ud83c\udf12\ud83c\udf13\ud83c\udf14\ud83c\udf15\ud83c\udf16\ud83c\udf17\ud83c\udf18\ud83c\udf0d\ud83c\udf0f\ud83c\udf0e\ud83d\udc09\u2600\ud83d\udcbb\ud83d\udda5\ud83d\udcbe\ud83d\udcbf\ud83d\ude02\u2764\ud83d\ude0d\ud83e\udd23\ud83d\ude0a\ud83d\ude4f\ud83d\udc95\ud83d\ude2d\ud83d\ude18\ud83d\udc4d\ud83d\ude05\ud83d\udc4f\ud83d\ude01\ud83d\udd25\ud83e\udd70\ud83d\udc94\ud83d\udc96\ud83d\udc99\ud83d\ude22\ud83e\udd14\ud83d\ude06\ud83d\ude44\ud83d\udcaa\ud83d\ude09\u263a\ud83d\udc4c\ud83e\udd17\ud83d\udc9c\ud83d\ude14\ud83d\ude0e\ud83d\ude07\ud83c\udf39\ud83e\udd26\ud83c\udf89\ud83d\udc9e\u270c\u2728\ud83e\udd37\ud83d\ude31\ud83d\ude0c\ud83c\udf38\ud83d\ude4c\ud83d\ude0b\ud83d\udc97\ud83d\udc9a\ud83d\ude0f\ud83d\udc9b\ud83d\ude42\ud83d\udc93\ud83e\udd29\ud83d\ude04\ud83d\ude00\ud83d\udda4\ud83d\ude03\ud83d\udcaf\ud83d\ude48\ud83d\udc47\ud83c\udfb6\ud83d\ude12\ud83e\udd2d\u2763\ud83d\ude1c\ud83d\udc8b\ud83d\udc40\ud83d\ude2a\ud83d\ude11\ud83d\udca5\ud83d\ude4b\ud83d\ude1e\ud83d\ude29\ud83d\ude21\ud83e\udd2a\ud83d\udc4a\ud83e\udd73\ud83d\ude25\ud83e\udd24\ud83d\udc49\ud83d\udc83\ud83d\ude33\u270b\ud83d\ude1a\ud83d\ude1d\ud83d\ude34\ud83c\udf1f\ud83d\ude2c\ud83d\ude43\ud83c\udf40\ud83c\udf37\ud83d\ude3b\ud83d\ude13\u2b50\u2705\ud83e\udd7a\ud83c\udf08\ud83d\ude08\ud83e\udd18\ud83d\udca6\u2714\ud83d\ude23\ud83c\udfc3\ud83d\udc90\u2639\ud83c\udf8a\ud83d\udc98\ud83d\ude20\u261d\ud83d\ude15\ud83c\udf3a\ud83c\udf82\ud83c\udf3b\ud83d\ude10\ud83d\udd95\ud83d\udc9d\ud83d\ude4a\ud83d\ude39\ud83d\udde3\ud83d\udcab\ud83d\udc80\ud83d\udc51\ud83c\udfb5\ud83e\udd1e\ud83d\ude1b\ud83d\udd34\ud83d\ude24\ud83c\udf3c\ud83d\ude2b\u26bd\ud83e\udd19\u2615\ud83c\udfc6\ud83e\udd2b\ud83d\udc48\ud83d\ude2e\ud83d\ude46\ud83c\udf7b\ud83c\udf43\ud83d\udc36\ud83d\udc81\ud83d\ude32\ud83c\udf3f\ud83e\udde1\ud83c\udf81\u26a1\ud83c\udf1e\ud83c\udf88\u274c\u270a\ud83d\udc4b\ud83d\ude30\ud83e\udd28\ud83d\ude36\ud83e\udd1d\ud83d\udeb6\ud83d\udcb0\ud83c\udf53\ud83d\udca2\ud83e\udd1f\ud83d\ude41\ud83d\udea8\ud83d\udca8\ud83e\udd2c\u2708\ud83c\udf80\ud83c\udf7a\ud83e\udd13\ud83d\ude19\ud83d\udc9f\ud83c\udf31\ud83d\ude16\ud83d\udc76\ud83e\udd74\u25b6\u27a1\u2753\ud83d\udc8e\ud83d\udcb8\u2b07\ud83d\ude28\ud83c\udf1a\ud83e\udd8b\ud83d\ude37\ud83d\udd7a\u26a0\ud83d\ude45\ud83d\ude1f\ud83d\ude35\ud83d\udc4e\ud83e\udd32\ud83e\udd20\ud83e\udd27\ud83d\udccc\ud83d\udd35\ud83d\udc85\ud83e\uddd0\ud83d\udc3e\ud83c\udf52\ud83d\ude17\ud83e\udd11\ud83c\udf0a\ud83e\udd2f\ud83d\udc37\u260e\ud83d\udca7\ud83d\ude2f\ud83d\udc86\ud83d\udc46\ud83c\udfa4\ud83d\ude47\ud83c\udf51\u2744\ud83c\udf34\ud83d\udca3\ud83d\udc38\ud83d\udc8c\ud83d\udccd\ud83e\udd40\ud83e\udd22\ud83d\udc45\ud83d\udca1\ud83d\udca9\ud83d\udc50\ud83d\udcf8\ud83d\udc7b\ud83e\udd10\ud83e\udd2e\ud83c\udfbc\ud83e\udd75\ud83d\udea9\ud83c\udf4e\ud83c\udf4a\ud83d\udc7c\ud83d\udc8d\ud83d\udce3\ud83e\udd42"),pV=dV.reduce(((e,t,r)=>(e[r]=t,e)),[]),fV=dV.reduce(((e,t,r)=>(e[t.codePointAt(0)]=r,e)),[]);const yV=ZL({prefix:"\ud83d\ude80",name:"base256emoji",encode:function(e){return e.reduce(((e,t)=>e+=pV[t]),"")},decode:function(e){const t=[];for(const r of e){const e=fV[r.codePointAt(0)];if(void 0===e)throw new Error("Non-base256emoji character: ".concat(r));t.push(e)}return new Uint8Array(t)}}),gV=$L({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),mV=$L({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"}),bV=eB({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3}),wV=ZL({prefix:"\0",name:"identity",encode:e=>{return t=e,(new TextDecoder).decode(t);var t},decode:e=>(e=>(new TextEncoder).encode(e))(e)}),vV=new TextEncoder,_V=new TextDecoder,EV="json",SV=512,AV=e=>vV.encode(JSON.stringify(e)),kV=e=>JSON.parse(_V.decode(e)),IV="raw",RV=85,PV=e=>GL(e),CV=e=>GL(e),TV=(e,t)=>{const{bytes:r,version:n}=e;return 0===n?BV(r,DV(e),t||tB.encoder):MV(r,DV(e),t||$K.encoder)},xV=new WeakMap,DV=e=>{const t=xV.get(e);if(null==t){const t=new Map;return xV.set(e,t),t}return t};class NV{constructor(e,t,r,n){this.code=t,this.version=e,this.multihash=r,this.bytes=n,this["/"]=n}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:{const{code:e,multihash:t}=this;if(e!==OV)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(t.code!==UV)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return NV.createV0(t)}default:throw Error("Can not convert CID version ".concat(this.version," to version 0. This is a bug please report"))}}toV1(){switch(this.version){case 0:{const{code:e,digest:t}=this.multihash,r=SB(e,t);return NV.createV1(this.code,r)}case 1:return this;default:throw Error("Can not convert CID version ".concat(this.version," to version 1. This is a bug please report"))}}equals(e){return NV.equals(this,e)}static equals(e,t){const r=t;return r&&e.code===r.code&&e.version===r.version&&((e,t)=>{if(e===t)return!0;{const r=t;return e.code===r.code&&e.size===r.size&&r.bytes instanceof Uint8Array&&((e,t)=>{if(e===t)return!0;if(e.byteLength!==t.byteLength)return!1;for(let r=0;r<e.byteLength;r++)if(e[r]!==t[r])return!1;return!0})(e.bytes,r.bytes)}})(e.multihash,r.multihash)}toString(e){return TV(this,e)}toJSON(){return{"/":TV(this)}}link(){return this}get[Symbol.toStringTag](){return"CID"}[Symbol.for("nodejs.util.inspect.custom")](){return"CID(".concat(this.toString(),")")}static asCID(e){if(null==e)return null;const t=e;if(t instanceof NV)return t;if(null!=t["/"]&&t["/"]===t.bytes||t.asCID===t){const{version:e,code:r,multihash:n,bytes:i}=t;return new NV(e,r,n,i||KV(e,r,n.bytes))}if(!0===t[qV]){const{version:e,multihash:r,code:n}=t,i=AB(r);return NV.create(e,n,i)}return null}static create(e,t,r){if("number"!==typeof t)throw new Error("String codecs are no longer supported");if(!(r.bytes instanceof Uint8Array))throw new Error("Invalid digest");switch(e){case 0:if(t!==OV)throw new Error("Version 0 CID must use dag-pb (code: ".concat(OV,") block encoding"));return new NV(e,t,r,r.bytes);case 1:{const n=KV(e,t,r.bytes);return new NV(e,t,r,n)}default:throw new Error("Invalid version")}}static createV0(e){return NV.create(0,OV,e)}static createV1(e,t){return NV.create(1,e,t)}static decode(e){const[t,r]=NV.decodeFirst(e);if(r.length)throw new Error("Incorrect length");return t}static decodeFirst(e){const t=NV.inspectBytes(e),r=t.size-t.multihashSize,n=GL(e.subarray(r,r+t.multihashSize));if(n.byteLength!==t.multihashSize)throw new Error("Incorrect length");const i=n.subarray(t.multihashSize-t.digestSize),o=new kB(t.multihashCode,t.digestSize,i,n);return[0===t.version?NV.createV0(o):NV.createV1(t.codec,o),e.subarray(t.size)]}static inspectBytes(e){let t=0;const r=()=>{const[r,n]=vB(e.subarray(t));return t+=n,r};let n=r(),i=OV;if(18===n?(n=0,t=0):i=r(),0!==n&&1!==n)throw new RangeError("Invalid CID version ".concat(n));const o=t,s=r(),a=r(),c=t+a;return{version:n,codec:i,multihashCode:s,digestSize:a,multihashSize:c-o,size:c}}static parse(e,t){const[r,n]=LV(e,t),i=NV.decode(n);if(0===i.version&&"Q"!==e[0])throw Error("Version 0 CID string must not include multibase prefix");return DV(i).set(r,e),i}}const LV=(e,t)=>{switch(e[0]){case"Q":{const r=t||tB;return[tB.prefix,r.decode("".concat(tB.prefix).concat(e))]}case tB.prefix:{const r=t||tB;return[tB.prefix,r.decode(e)]}case $K.prefix:{const r=t||$K;return[$K.prefix,r.decode(e)]}default:if(null==t)throw Error("To parse non base32 or base58btc encoded CID multibase decoder must be provided");return[e[0],t.decode(e)]}},BV=(e,t,r)=>{const{prefix:n}=r;if(n!==tB.prefix)throw Error("Cannot string encode V0 in ".concat(r.name," encoding"));const i=t.get(n);if(null==i){const i=r.encode(e).slice(1);return t.set(n,i),i}return i},MV=(e,t,r)=>{const{prefix:n}=r,i=t.get(n);if(null==i){const i=r.encode(e);return t.set(n,i),i}return i},OV=112,UV=18,KV=(e,t,r)=>{const n=EB(e),i=n+EB(t),o=new Uint8Array(i+r.byteLength);return _B(e,o,0),_B(t,o,n),o.set(r,i),o},qV=Symbol.for("@ipld/js-cid/CID"),FV={...Lt,...Tt,...Nt,...Pt,...Ct,...pt,...Dt,...ze,...Ge,...xt};let VV;const zV=Symbol.for("nodejs.util.inspect.custom"),jV=Object.values(FV).map((e=>e.decoder)).reduce(((e,t)=>e.or(t)),FV.identity.decoder),HV=114,GV=36,WV=37;VV=Symbol.toStringTag;class YV{constructor(e){Br(this,"type",void 0),Br(this,"multihash",void 0),Br(this,"privateKey",void 0),Br(this,"publicKey",void 0),Br(this,"string",void 0),Br(this,Mr,!0),this.type=e.type,this.multihash=e.multihash,this.privateKey=e.privateKey,Object.defineProperty(this,"string",{enumerable:!1,writable:!0})}get[VV](){return"PeerId(".concat(this.toString(),")")}toString(){return null==this.string&&(this.string=tB.encode(this.multihash.bytes).slice(1)),this.string}toCID(){return NV.createV1(HV,this.multihash)}toBytes(){return this.multihash.bytes}toJSON(){return this.toString()}equals(e){var t;if(e instanceof Uint8Array)return Yn(this.multihash.bytes,e);if("string"===typeof e)return ZV(e).equals(this);if(null!=(null===e||void 0===e||null===(t=e.multihash)||void 0===t?void 0:t.bytes))return Yn(this.multihash.bytes,e.multihash.bytes);throw new Error("not valid Id")}[zV](){return"PeerId(".concat(this.toString(),")")}}class QV extends YV{constructor(e){super({...e,type:"RSA"}),Br(this,"type","RSA"),Br(this,"publicKey",void 0),this.publicKey=e.publicKey}}class XV extends YV{constructor(e){super({...e,type:"Ed25519"}),Br(this,"type","Ed25519"),Br(this,"publicKey",void 0),this.publicKey=e.multihash.digest}}class JV extends YV{constructor(e){super({...e,type:"secp256k1"}),Br(this,"type","secp256k1"),Br(this,"publicKey",void 0),this.publicKey=e.multihash.digest}}function ZV(e,t){var r;if(t=null!==(r=t)&&void 0!==r?r:jV,"1"===e.charAt(0)||"Q"===e.charAt(0)){const t=AB(tB.decode("z".concat(e)));return e.startsWith("12D")?new XV({multihash:t}):e.startsWith("16U")?new JV({multihash:t}):new QV({multihash:t})}return function(e){try{const t=AB(e);if(t.code===RB.code){if(t.digest.length===GV)return new XV({multihash:t});if(t.digest.length===WV)return new JV({multihash:t})}if(t.code===xB.code)return new QV({multihash:t})}catch{return function(e){if(null==e||null==e.multihash||null==e.version||1===e.version&&e.code!==HV)throw new Error("Supplied PeerID CID is invalid");const t=e.multihash;if(t.code===xB.code)return new QV({multihash:e.multihash});if(t.code===RB.code){if(t.digest.length===GV)return new XV({multihash:e.multihash});if(t.digest.length===WV)return new JV({multihash:e.multihash})}throw new Error("Supplied PeerID CID is invalid")}(NV.decode(e))}throw new Error("Supplied PeerID CID is invalid")}(jV.decode(e))}var $V=function(e,t){if(e.length>=255)throw new TypeError("Alphabet too long");for(var r=new Uint8Array(256),n=0;n<r.length;n++)r[n]=255;for(var i=0;i<e.length;i++){var o=e.charAt(i),s=o.charCodeAt(0);if(255!==r[s])throw new TypeError(o+" is ambiguous");r[s]=i}var a=e.length,c=e.charAt(0),l=Math.log(a)/Math.log(256),u=Math.log(256)/Math.log(a);function h(e){if("string"!==typeof e)throw new TypeError("Expected String");if(0===e.length)return new Uint8Array;var t=0;if(" "!==e[t]){for(var n=0,i=0;e[t]===c;)n++,t++;for(var o=(e.length-t)*l+1>>>0,s=new Uint8Array(o);e[t];){var u=r[e.charCodeAt(t)];if(255===u)return;for(var h=0,d=o-1;(0!==u||h<i)&&-1!==d;d--,h++)u+=a*s[d]>>>0,s[d]=u%256>>>0,u=u/256>>>0;if(0!==u)throw new Error("Non-zero carry");i=h,t++}if(" "!==e[t]){for(var p=o-i;p!==o&&0===s[p];)p++;for(var f=new Uint8Array(n+(o-p)),y=n;p!==o;)f[y++]=s[p++];return f}}}return{encode:function(t){if(t instanceof Uint8Array||(ArrayBuffer.isView(t)?t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength):Array.isArray(t)&&(t=Uint8Array.from(t))),!(t instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(0===t.length)return"";for(var r=0,n=0,i=0,o=t.length;i!==o&&0===t[i];)i++,r++;for(var s=(o-i)*u+1>>>0,l=new Uint8Array(s);i!==o;){for(var h=t[i],d=0,p=s-1;(0!==h||d<n)&&-1!==p;p--,d++)h+=256*l[p]>>>0,l[p]=h%a>>>0,h=h/a>>>0;if(0!==h)throw new Error("Non-zero carry");n=d,i++}for(var f=s-n;f!==s&&0===l[f];)f++;for(var y=c.repeat(r);f<s;++f)y+=e.charAt(l[f]);return y},decodeUnsafe:h,decode:function(e){var r=h(e);if(r)return r;throw new Error("Non-".concat(t," character"))}}};const ez=$V,tz=(new Uint8Array(0),e=>{if(e instanceof Uint8Array&&"Uint8Array"===e.constructor.name)return e;if(e instanceof ArrayBuffer)return new Uint8Array(e);if(ArrayBuffer.isView(e))return new Uint8Array(e.buffer,e.byteOffset,e.byteLength);throw new Error("Unknown type, must be binary type")});class rz{constructor(e,t,r){this.name=e,this.prefix=t,this.baseEncode=r}encode(e){if(e instanceof Uint8Array)return"".concat(this.prefix).concat(this.baseEncode(e));throw Error("Unknown type, must be binary type")}}class nz{constructor(e,t,r){if(this.name=e,this.prefix=t,void 0===t.codePointAt(0))throw new Error("Invalid prefix character");this.prefixCodePoint=t.codePointAt(0),this.baseDecode=r}decode(e){if("string"===typeof e){if(e.codePointAt(0)!==this.prefixCodePoint)throw Error("Unable to decode multibase string ".concat(JSON.stringify(e),", ").concat(this.name," decoder only supports inputs prefixed with ").concat(this.prefix));return this.baseDecode(e.slice(this.prefix.length))}throw Error("Can only multibase decode strings")}or(e){return oz(this,e)}}class iz{constructor(e){this.decoders=e}or(e){return oz(this,e)}decode(e){const t=e[0],r=this.decoders[t];if(r)return r.decode(e);throw RangeError("Unable to decode multibase string ".concat(JSON.stringify(e),", only inputs prefixed with ").concat(Object.keys(this.decoders)," are supported"))}}const oz=(e,t)=>new iz({...e.decoders||{[e.prefix]:e},...t.decoders||{[t.prefix]:t}});class sz{constructor(e,t,r,n){this.name=e,this.prefix=t,this.baseEncode=r,this.baseDecode=n,this.encoder=new rz(e,t,r),this.decoder=new nz(e,t,n)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}}const az=e=>{let{name:t,prefix:r,encode:n,decode:i}=e;return new sz(t,r,n,i)},cz=e=>{let{prefix:t,name:r,alphabet:n}=e;const{encode:i,decode:o}=ez(n,r);return az({prefix:t,name:r,encode:i,decode:e=>tz(o(e))})},lz=e=>{let{name:t,prefix:r,bitsPerChar:n,alphabet:i}=e;return az({prefix:r,name:t,encode:e=>((e,t,r)=>{const n="="===t[t.length-1],i=(1<<r)-1;let o="",s=0,a=0;for(let c=0;c<e.length;++c)for(a=a<<8|e[c],s+=8;s>r;)s-=r,o+=t[i&a>>s];if(s&&(o+=t[i&a<<r-s]),n)for(;o.length*r&7;)o+="=";return o})(e,i,n),decode:e=>((e,t,r,n)=>{const i={};for(let u=0;u<t.length;++u)i[t[u]]=u;let o=e.length;for(;"="===e[o-1];)--o;const s=new Uint8Array(o*r/8|0);let a=0,c=0,l=0;for(let u=0;u<o;++u){const t=i[e[u]];if(void 0===t)throw new SyntaxError("Non-".concat(n," character"));c=c<<r|t,a+=r,a>=8&&(a-=8,s[l++]=255&c>>a)}if(a>=r||255&c<<8-a)throw new SyntaxError("Unexpected end of data");return s})(e,i,n,t)})},uz=cz({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),hz=cz({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var dz=function e(t,r,n){r=r||[];var i=n=n||0;for(;t>=yz;)r[n++]=255&t|pz,t/=128;for(;t&fz;)r[n++]=255&t|pz,t>>>=7;return r[n]=0|t,e.bytes=n-i+1,r},pz=128,fz=-128,yz=Math.pow(2,31);var gz=function e(t,r){var n,i=0,o=0,s=r=r||0,a=t.length;do{if(s>=a)throw e.bytes=0,new RangeError("Could not decode varint");n=t[s++],i+=o<28?(n&bz)<<o:(n&bz)*Math.pow(2,o),o+=7}while(n>=mz);return e.bytes=s-r,i},mz=128,bz=127;var wz=Math.pow(2,7),vz=Math.pow(2,14),_z=Math.pow(2,21),Ez=Math.pow(2,28),Sz=Math.pow(2,35),Az=Math.pow(2,42),kz=Math.pow(2,49),Iz=Math.pow(2,56),Rz=Math.pow(2,63);const Pz={encode:dz,decode:gz,encodingLength:function(e){return e<wz?1:e<vz?2:e<_z?3:e<Ez?4:e<Sz?5:e<Az?6:e<kz?7:e<Iz?8:e<Rz?9:10}},Cz=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return[Pz.decode(e,t),Pz.decode.bytes]},Tz=function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;return Pz.encode(e,t,r),t},xz=e=>Pz.encodingLength(e),Dz=(e,t)=>{const r=t.byteLength,n=xz(e),i=n+xz(r),o=new Uint8Array(i+r);return Tz(e,o,0),Tz(r,o,n),o.set(t,i),new Lz(e,r,t,o)},Nz=e=>{const t=tz(e),[r,n]=Cz(t),[i,o]=Cz(t.subarray(n)),s=t.subarray(n+o);if(s.byteLength!==i)throw new Error("Incorrect length");return new Lz(r,i,s,t)};class Lz{constructor(e,t,r,n){this.code=e,this.size=t,this.digest=r,this.bytes=n}}const Bz=tz,Mz={code:0,name:"identity",encode:Bz,digest:e=>Dz(0,Bz(e))},Oz=e=>{let{name:t,code:r,encode:n}=e;return new Uz(t,r,n)};class Uz{constructor(e,t,r){this.name=e,this.code=t,this.encode=r}digest(e){if(e instanceof Uint8Array){const t=this.encode(e);return t instanceof Uint8Array?Dz(this.code,t):t.then((e=>Dz(this.code,e)))}throw Error("Unknown type, must be binary type")}}const Kz=e=>async t=>new Uint8Array(await crypto.subtle.digest(e,t)),qz=Oz({name:"sha2-256",code:18,encode:Kz("SHA-256")}),Fz=Oz({name:"sha2-512",code:19,encode:Kz("SHA-512")}),Vz=32,zz=64,jz=32;function Hz(e,t){const r=new Uint8Array(zz);for(let n=0;n<jz;n++)r[n]=e[n],r[jz+n]=t[n];return r}const Gz=lz({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),Wz=lz({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),Yz=lz({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),Qz=lz({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6}),Xz={get(){const e=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:globalThis).crypto;if(null==e||null==e.subtle)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 e}},Jz={alg:"A128GCM",ext:!0,k:"scm9jmO_4BJAgdwWGVulLg",key_ops:["encrypt","decrypt"],kty:"oct"};async function Zz(e,t){const r=function(e){var t,r,n,i,o,s;const a=null!==(t=null===e||void 0===e?void 0:e.algorithm)&&void 0!==t?t:"AES-GCM";let c=null!==(r=null===e||void 0===e?void 0:e.keyLength)&&void 0!==r?r:16;const l=null!==(n=null===e||void 0===e?void 0:e.nonceLength)&&void 0!==n?n:12,u=null!==(i=null===e||void 0===e?void 0:e.digest)&&void 0!==i?i:"SHA-256",h=null!==(o=null===e||void 0===e?void 0:e.saltLength)&&void 0!==o?o:16,d=null!==(s=null===e||void 0===e?void 0:e.iterations)&&void 0!==s?s:32767,p=Xz.get();return c*=8,{encrypt:async function(e,t){const r=p.getRandomValues(new Uint8Array(h)),n=p.getRandomValues(new Uint8Array(l)),i={name:a,iv:n};let o;if("string"===typeof t&&(t=ps(t)),0===t.length){o=await p.subtle.importKey("jwk",Jz,{name:"AES-GCM"},!0,["encrypt"]);try{const e={name:"PBKDF2",salt:r,iterations:d,hash:{name:u}},n=await p.subtle.importKey("raw",t,{name:"PBKDF2"},!1,["deriveKey"]);o=await p.subtle.deriveKey(e,n,{name:a,length:c},!0,["encrypt"])}catch{o=await p.subtle.importKey("jwk",Jz,{name:"AES-GCM"},!0,["encrypt"])}}else{const e={name:"PBKDF2",salt:r,iterations:d,hash:{name:u}},n=await p.subtle.importKey("raw",t,{name:"PBKDF2"},!1,["deriveKey"]);o=await p.subtle.deriveKey(e,n,{name:a,length:c},!0,["encrypt"])}const s=await p.subtle.encrypt(i,o,e);return Po([r,i.iv,new Uint8Array(s)])},decrypt:async function(e,t){const r=e.subarray(0,h),n=e.subarray(h,h+l),i=e.subarray(h+l),o={name:a,iv:n};let s;if("string"===typeof t&&(t=ps(t)),0===t.length)try{const e={name:"PBKDF2",salt:r,iterations:d,hash:{name:u}},n=await p.subtle.importKey("raw",t,{name:"PBKDF2"},!1,["deriveKey"]);s=await p.subtle.deriveKey(e,n,{name:a,length:c},!0,["decrypt"])}catch{s=await p.subtle.importKey("jwk",Jz,{name:"AES-GCM"},!0,["decrypt"])}else{const e={name:"PBKDF2",salt:r,iterations:d,hash:{name:u}},n=await p.subtle.importKey("raw",t,{name:"PBKDF2"},!1,["deriveKey"]);s=await p.subtle.deriveKey(e,n,{name:a,length:c},!0,["decrypt"])}const f=await p.subtle.decrypt(o,s,i);return new Uint8Array(f)}}}(),n=await r.encrypt(e,t);return Gz.encode(n)}ya._configure(),pa._configure(fa),ga._configure(ma);const $z=["uint64","int64","sint64","fixed64","sfixed64"];function ej(e){return function(e){for(const t of $z){if(null==e[t])continue;const r=e[t];e[t]=function(){return BigInt(r.call(this).toString())}}return e}(new pa(e))}function tj(){return function(e){for(const t of $z){if(null==e[t])continue;const r=e[t];e[t]=function(e){return r.call(this,e.toString())}}return e}(ga.create())}function rj(e,t){const r=ej(e instanceof Uint8Array?e:e.subarray());return t.decode(r)}function nj(e,t){const r=tj();return t.encode(e,r,{lengthDelimited:!1}),r.finish()}var ij,oj,sj,aj,cj;function lj(e,t,r,n){return{name:e,type:t,encode:r,decode:n}}function uj(e,t){return lj("message",ij.LENGTH_DELIMITED,e,t)}!function(e){e[e.VARINT=0]="VARINT",e[e.BIT64=1]="BIT64",e[e.LENGTH_DELIMITED=2]="LENGTH_DELIMITED",e[e.START_GROUP=3]="START_GROUP",e[e.END_GROUP=4]="END_GROUP",e[e.BIT32=5]="BIT32"}(ij||(ij={})),function(e){e.RSA="RSA",e.Ed25519="Ed25519",e.Secp256k1="Secp256k1"}(oj||(oj={})),function(e){e[e.RSA=0]="RSA",e[e.Ed25519=1]="Ed25519",e[e.Secp256k1=2]="Secp256k1"}(sj||(sj={})),function(e){e.codec=()=>function(e){function t(t){if(null==e[t.toString()])throw new Error("Invalid enum value");return e[t]}return lj("enum",ij.VARINT,(function(e,r){const n=t(e);r.int32(n)}),(function(e){return t(e.int32())}))}(sj)}(oj||(oj={})),function(e){let t;e.codec=()=>(null==t&&(t=uj((function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};!1!==r.lengthDelimited&&t.fork(),null!=e.Type&&(t.uint32(8),oj.codec().encode(e.Type,t)),null!=e.Data&&(t.uint32(18),t.bytes(e.Data)),!1!==r.lengthDelimited&&t.ldelim()}),((e,t)=>{const r={},n=null==t?e.len:e.pos+t;for(;e.pos<n;){const t=e.uint32();switch(t>>>3){case 1:r.Type=oj.codec().decode(e);break;case 2:r.Data=e.bytes();break;default:e.skipType(7&t)}}return r}))),t),e.encode=t=>nj(t,e.codec()),e.decode=t=>rj(t,e.codec())}(aj||(aj={})),function(e){let t;e.codec=()=>(null==t&&(t=uj((function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};!1!==r.lengthDelimited&&t.fork(),null!=e.Type&&(t.uint32(8),oj.codec().encode(e.Type,t)),null!=e.Data&&(t.uint32(18),t.bytes(e.Data)),!1!==r.lengthDelimited&&t.ldelim()}),((e,t)=>{const r={},n=null==t?e.len:e.pos+t;for(;e.pos<n;){const t=e.uint32();switch(t>>>3){case 1:r.Type=oj.codec().decode(e);break;case 2:r.Data=e.bytes();break;default:e.skipType(7&t)}}return r}))),t),e.encode=t=>nj(t,e.codec()),e.decode=t=>rj(t,e.codec())}(cj||(cj={}));class hj{constructor(e){Br(this,"_key",void 0),this._key=mj(e,Vz)}async verify(e,t){return async function(e,t,r){return Bd.verify(t,r,e)}(this._key,t,e)}marshal(){return this._key}get bytes(){return aj.encode({Type:oj.Ed25519,Data:this.marshal()}).subarray()}equals(e){return Yn(this.bytes,e.bytes)}async hash(){const{bytes:e}=await qz.digest(this.bytes);return e}}class dj{constructor(e,t){Br(this,"_key",void 0),Br(this,"_publicKey",void 0),this._key=mj(e,zz),this._publicKey=mj(t,Vz)}async sign(e){return async function(e,t){const r=e.subarray(0,jz);return Bd.sign(t,r)}(this._key,e)}get public(){return new hj(this._publicKey)}marshal(){return this._key}get bytes(){return cj.encode({Type:oj.Ed25519,Data:this.marshal()}).subarray()}equals(e){return Yn(this.bytes,e.bytes)}async hash(){const{bytes:e}=await qz.digest(this.bytes);return e}async id(){const e=Mz.digest(this.public.bytes);return uz.encode(e.bytes).substring(1)}async export(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"libp2p-key";if("libp2p-key"===t)return Zz(this.bytes,e);throw new rp("export format '".concat(t,"' is not supported"),"ERR_INVALID_EXPORT_FORMAT")}}function pj(e){if(e.length>zz){const t=(e=mj(e,zz+Vz)).subarray(0,zz),r=e.subarray(zz,e.length);return new dj(t,r)}const t=(e=mj(e,zz)).subarray(0,zz),r=e.subarray(Vz);return new dj(t,r)}function fj(e){return e=mj(e,Vz),new hj(e)}async function yj(){const{privateKey:e,publicKey:t}=await async function(){const e=Bd.utils.randomPrivateKey(),t=Bd.getPublicKey(e);return{privateKey:Hz(e,t),publicKey:t}}();return new dj(e,t)}async function gj(e){const{privateKey:t,publicKey:r}=await async function(e){if(e.length!==jz)throw new TypeError('"seed" must be 32 bytes in length.');if(!(e instanceof Uint8Array))throw new TypeError('"seed" must be a node.js Buffer, or Uint8Array.');const t=e,r=Bd.getPublicKey(t);return{privateKey:Hz(t,r),publicKey:r}}(e);return new dj(t,r)}function mj(e,t){var r;if((e=Uint8Array.from(null!==(r=e)&&void 0!==r?r:[])).length!==t)throw new rp("Key must be a Uint8Array of length ".concat(t,", got ").concat(e.length),"ERR_INVALID_KEY_TYPE");return e}function bj(e,t){let r=Uint8Array.from(e.abs().toByteArray());if(r=0===r[0]?r.subarray(1):r,null!=t){if(r.length>t)throw new Error("byte array longer than desired length");r=Po([new Uint8Array(t-r.length),r])}return Ro(r,"base64url")}function wj(e){const t=function(e,t){let r=ps(e,"base64urlpad");if(null!=t){if(r.length>t)throw new Error("byte array longer than desired length");r=Po([new Uint8Array(t-r.length),r])}return r}(e);return new sp.jsbn.BigInteger(Ro(t,"base16"),16)}const vj={"P-256":256,"P-384":384,"P-521":521};Object.keys(vj).join(" / ");function _j(e,t){return t.map((t=>wj(e[t])))}async function Ej(e){const t=[await Xz.get().subtle.importKey("jwk",e,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["sign"]),await Aj(e)],r=await Sj({privateKey:t[0],publicKey:t[1]});return{privateKey:r[0],publicKey:r[1]}}async function Sj(e){if(null==e.privateKey||null==e.publicKey)throw new rp("Private and public key are required","ERR_INVALID_PARAMETERS");return Promise.all([Xz.get().subtle.exportKey("jwk",e.privateKey),Xz.get().subtle.exportKey("jwk",e.publicKey)])}async function Aj(e){return Xz.get().subtle.importKey("jwk",{kty:e.kty,n:e.n,e:e.e},{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["verify"])}function kj(e,t,r,n){const i=t?function(e){return sp.pki.setRsaPublicKey(..._j(e,["n","e"]))}(e):function(e){return sp.pki.setRsaPrivateKey(..._j(e,["n","e","d","p","q","dp","dq","qi"]))}(e);return ps(n(Ro(Uint8Array.from(r),"ascii"),i),"ascii")}function Ij(e){if("RSA"!==e.kty)throw new rp("invalid key type","ERR_INVALID_KEY_TYPE");if(null==e.n)throw new rp("invalid key modulus","ERR_INVALID_KEY_MODULUS");return 8*ps(e.n,"base64url").length}const Rj=8192;class Pj{constructor(e){Br(this,"_key",void 0),this._key=e}async verify(e,t){return async function(e,t,r){const n=await Xz.get().subtle.importKey("jwk",e,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["verify"]);return Xz.get().subtle.verify({name:"RSASSA-PKCS1-v1_5"},n,t,r)}(this._key,t,e)}marshal(){return function(e){if(null==e.n||null==e.e)throw new rp("JWK was missing components","ERR_INVALID_PARAMETERS");const t=sp.pki.publicKeyToAsn1({n:wj(e.n),e:wj(e.e)});return ps(sp.asn1.toDer(t).getBytes(),"ascii")}(this._key)}get bytes(){return aj.encode({Type:oj.RSA,Data:this.marshal()}).subarray()}encrypt(e){return kj(this._key,!0,e,((e,t)=>t.encrypt(e)))}equals(e){return Yn(this.bytes,e.bytes)}async hash(){const{bytes:e}=await qz.digest(this.bytes);return e}}class Cj{constructor(e,t){Br(this,"_key",void 0),Br(this,"_publicKey",void 0),this._key=e,this._publicKey=t}genSecret(){return function(e){if(isNaN(e)||e<=0)throw new rp("random bytes length must be a Number bigger than 0","ERR_INVALID_LENGTH");return oh(e)}(16)}async sign(e){return async function(e,t){const r=await Xz.get().subtle.importKey("jwk",e,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["sign"]),n=await Xz.get().subtle.sign({name:"RSASSA-PKCS1-v1_5"},r,Uint8Array.from(t));return new Uint8Array(n,0,n.byteLength)}(this._key,e)}get public(){if(null==this._publicKey)throw new rp("public key not provided","ERR_PUBKEY_NOT_PROVIDED");return new Pj(this._publicKey)}decrypt(e){return kj(this._key,!1,e,((e,t)=>t.decrypt(e)))}marshal(){return function(e){if(null==e.n||null==e.e||null==e.d||null==e.p||null==e.q||null==e.dp||null==e.dq||null==e.qi)throw new rp("JWK was missing components","ERR_INVALID_PARAMETERS");const t=sp.pki.privateKeyToAsn1({n:wj(e.n),e:wj(e.e),d:wj(e.d),p:wj(e.p),q:wj(e.q),dP:wj(e.dp),dQ:wj(e.dq),qInv:wj(e.qi)});return ps(sp.asn1.toDer(t).getBytes(),"ascii")}(this._key)}get bytes(){return cj.encode({Type:oj.RSA,Data:this.marshal()}).subarray()}equals(e){return Yn(this.bytes,e.bytes)}async hash(){const{bytes:e}=await qz.digest(this.bytes);return e}async id(){return Ro(await this.public.hash(),"base58btc")}async export(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"pkcs-8";if("pkcs-8"===t){const t=new sp.util.ByteBuffer(this.marshal()),r=sp.asn1.fromDer(t),n=sp.pki.privateKeyFromAsn1(r),i={algorithm:"aes256",count:1e4,saltSize:16,prfAlgorithm:"sha512"};return sp.pki.encryptRsaPrivateKey(n,e,i)}if("libp2p-key"===t)return Zz(this.bytes,e);throw new rp("export format '".concat(t,"' is not supported"),"ERR_INVALID_EXPORT_FORMAT")}}async function Tj(e){const t=function(e){const t=sp.asn1.fromDer(Ro(e,"ascii")),r=sp.pki.privateKeyFromAsn1(t);return{kty:"RSA",n:bj(r.n),e:bj(r.e),d:bj(r.d),p:bj(r.p),q:bj(r.q),dp:bj(r.dP),dq:bj(r.dQ),qi:bj(r.qInv),alg:"RS256"}}(e);if(Ij(t)>Rj)throw new rp("key size is too large","ERR_KEY_SIZE_TOO_LARGE");const r=await Ej(t);return new Cj(r.privateKey,r.publicKey)}function xj(e){const t=function(e){const t=sp.asn1.fromDer(Ro(e,"ascii")),r=sp.pki.publicKeyFromAsn1(t);return{kty:"RSA",n:bj(r.n),e:bj(r.e)}}(e);if(Ij(t)>Rj)throw new rp("key size is too large","ERR_KEY_SIZE_TOO_LARGE");return new Pj(t)}async function Dj(e){if(Ij(e)>Rj)throw new rp("key size is too large","ERR_KEY_SIZE_TOO_LARGE");const t=await Ej(e);return new Cj(t.privateKey,t.publicKey)}async function Nj(e){if(e>Rj)throw new rp("key size is too large","ERR_KEY_SIZE_TOO_LARGE");const t=await async function(e){const t=await Xz.get().subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:e,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-256"}},!0,["sign","verify"]),r=await Sj(t);return{privateKey:r[0],publicKey:r[1]}}(e);return new Cj(t.privateKey,t.publicKey)}function Lj(e){try{sy.ProjectivePoint.fromHex(e)}catch(t){throw new rp(String(t),"ERR_INVALID_PUBLIC_KEY")}}class Bj{constructor(e){Br(this,"_key",void 0),Lj(e),this._key=e}async verify(e,t){return async function(e,t,r){try{const{digest:n}=await qz.digest(r);return sy.verify(t,n,e)}catch(n){throw new rp(String(n),"ERR_INVALID_INPUT")}}(this._key,t,e)}marshal(){return e=this._key,sy.ProjectivePoint.fromHex(e).toRawBytes(!0);var e}get bytes(){return aj.encode({Type:oj.Secp256k1,Data:this.marshal()}).subarray()}equals(e){return Yn(this.bytes,e.bytes)}async hash(){const{bytes:e}=await qz.digest(this.bytes);return e}}class Mj{constructor(e,t){Br(this,"_key",void 0),Br(this,"_publicKey",void 0),this._key=e,this._publicKey=null!==t&&void 0!==t?t:function(e){try{return sy.getPublicKey(e,!0)}catch(t){throw new rp(String(t),"ERR_INVALID_PRIVATE_KEY")}}(e),function(e){try{sy.getPublicKey(e,!0)}catch(t){throw new rp(String(t),"ERR_INVALID_PRIVATE_KEY")}}(this._key),Lj(this._publicKey)}async sign(e){return async function(e,t){const{digest:r}=await qz.digest(t);try{return sy.sign(r,e).toDERRawBytes()}catch(n){throw new rp(String(n),"ERR_INVALID_INPUT")}}(this._key,e)}get public(){return new Bj(this._publicKey)}marshal(){return this._key}get bytes(){return cj.encode({Type:oj.Secp256k1,Data:this.marshal()}).subarray()}equals(e){return Yn(this.bytes,e.bytes)}async hash(){const{bytes:e}=await qz.digest(this.bytes);return e}async id(){return Ro(await this.public.hash(),"base58btc")}async export(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"libp2p-key";if("libp2p-key"===t)return Zz(this.bytes,e);throw new rp("export format '".concat(t,"' is not supported"),"ERR_INVALID_EXPORT_FORMAT")}}function Oj(e){return new Mj(e)}function Uj(e){return new Bj(e)}async function Kj(){const e=sy.utils.randomPrivateKey();return new Mj(e)}const qj={rsa:Vt,ed25519:Ft,secp256k1:zt};function Fj(e){const t=Object.keys(qj).join(" / ");return new rp("invalid or unsupported key type ".concat(e,". Must be ").concat(t),"ERR_UNSUPPORTED_KEY_TYPE")}function Vj(e){if("rsa"===(e=e.toLowerCase())||"ed25519"===e||"secp256k1"===e)return qj[e];throw Fj(e)}const zj=cz({prefix:"9",name:"base10",alphabet:"0123456789"}),jj=lz({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),Hj=lz({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4}),Gj=lz({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1}),Wj=Array.from("\ud83d\ude80\ud83e\ude90\u2604\ud83d\udef0\ud83c\udf0c\ud83c\udf11\ud83c\udf12\ud83c\udf13\ud83c\udf14\ud83c\udf15\ud83c\udf16\ud83c\udf17\ud83c\udf18\ud83c\udf0d\ud83c\udf0f\ud83c\udf0e\ud83d\udc09\u2600\ud83d\udcbb\ud83d\udda5\ud83d\udcbe\ud83d\udcbf\ud83d\ude02\u2764\ud83d\ude0d\ud83e\udd23\ud83d\ude0a\ud83d\ude4f\ud83d\udc95\ud83d\ude2d\ud83d\ude18\ud83d\udc4d\ud83d\ude05\ud83d\udc4f\ud83d\ude01\ud83d\udd25\ud83e\udd70\ud83d\udc94\ud83d\udc96\ud83d\udc99\ud83d\ude22\ud83e\udd14\ud83d\ude06\ud83d\ude44\ud83d\udcaa\ud83d\ude09\u263a\ud83d\udc4c\ud83e\udd17\ud83d\udc9c\ud83d\ude14\ud83d\ude0e\ud83d\ude07\ud83c\udf39\ud83e\udd26\ud83c\udf89\ud83d\udc9e\u270c\u2728\ud83e\udd37\ud83d\ude31\ud83d\ude0c\ud83c\udf38\ud83d\ude4c\ud83d\ude0b\ud83d\udc97\ud83d\udc9a\ud83d\ude0f\ud83d\udc9b\ud83d\ude42\ud83d\udc93\ud83e\udd29\ud83d\ude04\ud83d\ude00\ud83d\udda4\ud83d\ude03\ud83d\udcaf\ud83d\ude48\ud83d\udc47\ud83c\udfb6\ud83d\ude12\ud83e\udd2d\u2763\ud83d\ude1c\ud83d\udc8b\ud83d\udc40\ud83d\ude2a\ud83d\ude11\ud83d\udca5\ud83d\ude4b\ud83d\ude1e\ud83d\ude29\ud83d\ude21\ud83e\udd2a\ud83d\udc4a\ud83e\udd73\ud83d\ude25\ud83e\udd24\ud83d\udc49\ud83d\udc83\ud83d\ude33\u270b\ud83d\ude1a\ud83d\ude1d\ud83d\ude34\ud83c\udf1f\ud83d\ude2c\ud83d\ude43\ud83c\udf40\ud83c\udf37\ud83d\ude3b\ud83d\ude13\u2b50\u2705\ud83e\udd7a\ud83c\udf08\ud83d\ude08\ud83e\udd18\ud83d\udca6\u2714\ud83d\ude23\ud83c\udfc3\ud83d\udc90\u2639\ud83c\udf8a\ud83d\udc98\ud83d\ude20\u261d\ud83d\ude15\ud83c\udf3a\ud83c\udf82\ud83c\udf3b\ud83d\ude10\ud83d\udd95\ud83d\udc9d\ud83d\ude4a\ud83d\ude39\ud83d\udde3\ud83d\udcab\ud83d\udc80\ud83d\udc51\ud83c\udfb5\ud83e\udd1e\ud83d\ude1b\ud83d\udd34\ud83d\ude24\ud83c\udf3c\ud83d\ude2b\u26bd\ud83e\udd19\u2615\ud83c\udfc6\ud83e\udd2b\ud83d\udc48\ud83d\ude2e\ud83d\ude46\ud83c\udf7b\ud83c\udf43\ud83d\udc36\ud83d\udc81\ud83d\ude32\ud83c\udf3f\ud83e\udde1\ud83c\udf81\u26a1\ud83c\udf1e\ud83c\udf88\u274c\u270a\ud83d\udc4b\ud83d\ude30\ud83e\udd28\ud83d\ude36\ud83e\udd1d\ud83d\udeb6\ud83d\udcb0\ud83c\udf53\ud83d\udca2\ud83e\udd1f\ud83d\ude41\ud83d\udea8\ud83d\udca8\ud83e\udd2c\u2708\ud83c\udf80\ud83c\udf7a\ud83e\udd13\ud83d\ude19\ud83d\udc9f\ud83c\udf31\ud83d\ude16\ud83d\udc76\ud83e\udd74\u25b6\u27a1\u2753\ud83d\udc8e\ud83d\udcb8\u2b07\ud83d\ude28\ud83c\udf1a\ud83e\udd8b\ud83d\ude37\ud83d\udd7a\u26a0\ud83d\ude45\ud83d\ude1f\ud83d\ude35\ud83d\udc4e\ud83e\udd32\ud83e\udd20\ud83e\udd27\ud83d\udccc\ud83d\udd35\ud83d\udc85\ud83e\uddd0\ud83d\udc3e\ud83c\udf52\ud83d\ude17\ud83e\udd11\ud83c\udf0a\ud83e\udd2f\ud83d\udc37\u260e\ud83d\udca7\ud83d\ude2f\ud83d\udc86\ud83d\udc46\ud83c\udfa4\ud83d\ude47\ud83c\udf51\u2744\ud83c\udf34\ud83d\udca3\ud83d\udc38\ud83d\udc8c\ud83d\udccd\ud83e\udd40\ud83e\udd22\ud83d\udc45\ud83d\udca1\ud83d\udca9\ud83d\udc50\ud83d\udcf8\ud83d\udc7b\ud83e\udd10\ud83e\udd2e\ud83c\udfbc\ud83e\udd75\ud83d\udea9\ud83c\udf4e\ud83c\udf4a\ud83d\udc7c\ud83d\udc8d\ud83d\udce3\ud83e\udd42"),Yj=Wj.reduce(((e,t,r)=>(e[r]=t,e)),[]),Qj=Wj.reduce(((e,t,r)=>(e[t.codePointAt(0)]=r,e)),[]);const Xj=az({prefix:"\ud83d\ude80",name:"base256emoji",encode:function(e){return e.reduce(((e,t)=>e+=Yj[t]),"")},decode:function(e){const t=[];for(const r of e){const e=Qj[r.codePointAt(0)];if(void 0===e)throw new Error("Non-base256emoji character: ".concat(r));t.push(e)}return new Uint8Array(t)}}),Jj=lz({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),Zj=lz({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),$j=lz({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),eH=lz({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),tH=lz({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),rH=lz({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),nH=lz({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),iH=lz({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),oH=lz({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5}),sH=cz({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),aH=cz({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"}),cH=lz({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3}),lH=az({prefix:"\0",name:"identity",encode:e=>{return t=e,(new TextDecoder).decode(t);var t},decode:e=>(e=>(new TextEncoder).encode(e))(e)}),uH=new TextEncoder,hH=new TextDecoder,dH="json",pH=512,fH=e=>uH.encode(JSON.stringify(e)),yH=e=>JSON.parse(hH.decode(e)),gH="raw",mH=85,bH=e=>tz(e),wH=e=>tz(e),vH=(e,t)=>{const{bytes:r,version:n}=e;return 0===n?kH(r,EH(e),t||uz.encoder):IH(r,EH(e),t||Jj.encoder)},_H=new WeakMap,EH=e=>{const t=_H.get(e);if(null==t){const t=new Map;return _H.set(e,t),t}return t};class SH{constructor(e,t,r,n){this.code=t,this.version=e,this.multihash=r,this.bytes=n,this["/"]=n}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:{const{code:e,multihash:t}=this;if(e!==RH)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(t.code!==PH)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return SH.createV0(t)}default:throw Error("Can not convert CID version ".concat(this.version," to version 0. This is a bug please report"))}}toV1(){switch(this.version){case 0:{const{code:e,digest:t}=this.multihash,r=Dz(e,t);return SH.createV1(this.code,r)}case 1:return this;default:throw Error("Can not convert CID version ".concat(this.version," to version 1. This is a bug please report"))}}equals(e){return SH.equals(this,e)}static equals(e,t){const r=t;return r&&e.code===r.code&&e.version===r.version&&((e,t)=>{if(e===t)return!0;{const r=t;return e.code===r.code&&e.size===r.size&&r.bytes instanceof Uint8Array&&((e,t)=>{if(e===t)return!0;if(e.byteLength!==t.byteLength)return!1;for(let r=0;r<e.byteLength;r++)if(e[r]!==t[r])return!1;return!0})(e.bytes,r.bytes)}})(e.multihash,r.multihash)}toString(e){return vH(this,e)}toJSON(){return{"/":vH(this)}}link(){return this}get[Symbol.toStringTag](){return"CID"}[Symbol.for("nodejs.util.inspect.custom")](){return"CID(".concat(this.toString(),")")}static asCID(e){if(null==e)return null;const t=e;if(t instanceof SH)return t;if(null!=t["/"]&&t["/"]===t.bytes||t.asCID===t){const{version:e,code:r,multihash:n,bytes:i}=t;return new SH(e,r,n,i||CH(e,r,n.bytes))}if(!0===t[TH]){const{version:e,multihash:r,code:n}=t,i=Nz(r);return SH.create(e,n,i)}return null}static create(e,t,r){if("number"!==typeof t)throw new Error("String codecs are no longer supported");if(!(r.bytes instanceof Uint8Array))throw new Error("Invalid digest");switch(e){case 0:if(t!==RH)throw new Error("Version 0 CID must use dag-pb (code: ".concat(RH,") block encoding"));return new SH(e,t,r,r.bytes);case 1:{const n=CH(e,t,r.bytes);return new SH(e,t,r,n)}default:throw new Error("Invalid version")}}static createV0(e){return SH.create(0,RH,e)}static createV1(e,t){return SH.create(1,e,t)}static decode(e){const[t,r]=SH.decodeFirst(e);if(r.length)throw new Error("Incorrect length");return t}static decodeFirst(e){const t=SH.inspectBytes(e),r=t.size-t.multihashSize,n=tz(e.subarray(r,r+t.multihashSize));if(n.byteLength!==t.multihashSize)throw new Error("Incorrect length");const i=n.subarray(t.multihashSize-t.digestSize),o=new Lz(t.multihashCode,t.digestSize,i,n);return[0===t.version?SH.createV0(o):SH.createV1(t.codec,o),e.subarray(t.size)]}static inspectBytes(e){let t=0;const r=()=>{const[r,n]=Cz(e.subarray(t));return t+=n,r};let n=r(),i=RH;if(18===n?(n=0,t=0):i=r(),0!==n&&1!==n)throw new RangeError("Invalid CID version ".concat(n));const o=t,s=r(),a=r(),c=t+a;return{version:n,codec:i,multihashCode:s,digestSize:a,multihashSize:c-o,size:c}}static parse(e,t){const[r,n]=AH(e,t),i=SH.decode(n);if(0===i.version&&"Q"!==e[0])throw Error("Version 0 CID string must not include multibase prefix");return EH(i).set(r,e),i}}const AH=(e,t)=>{switch(e[0]){case"Q":{const r=t||uz;return[uz.prefix,r.decode("".concat(uz.prefix).concat(e))]}case uz.prefix:{const r=t||uz;return[uz.prefix,r.decode(e)]}case Jj.prefix:{const r=t||Jj;return[Jj.prefix,r.decode(e)]}default:if(null==t)throw Error("To parse non base32 or base58btc encoded CID multibase decoder must be provided");return[e[0],t.decode(e)]}},kH=(e,t,r)=>{const{prefix:n}=r;if(n!==uz.prefix)throw Error("Cannot string encode V0 in ".concat(r.name," encoding"));const i=t.get(n);if(null==i){const i=r.encode(e).slice(1);return t.set(n,i),i}return i},IH=(e,t,r)=>{const{prefix:n}=r,i=t.get(n);if(null==i){const i=r.encode(e);return t.set(n,i),i}return i},RH=112,PH=18,CH=(e,t,r)=>{const n=xz(e),i=n+xz(t),o=new Uint8Array(i+r.byteLength);return Tz(e,o,0),Tz(t,o,n),o.set(r,i),o},TH=Symbol.for("@ipld/js-cid/CID"),xH={...Jt,...Gt,...Xt,...jt,...Ht,...Yt,...Qt,...Ot,...qt,...Wt};let DH;const NH=Symbol.for("nodejs.util.inspect.custom"),LH=Object.values(xH).map((e=>e.decoder)).reduce(((e,t)=>e.or(t)),xH.identity.decoder),BH=114,MH=36,OH=37;DH=Symbol.toStringTag;class UH{constructor(e){Br(this,"type",void 0),Br(this,"multihash",void 0),Br(this,"privateKey",void 0),Br(this,"publicKey",void 0),Br(this,"string",void 0),Br(this,Mr,!0),this.type=e.type,this.multihash=e.multihash,this.privateKey=e.privateKey,Object.defineProperty(this,"string",{enumerable:!1,writable:!0})}get[DH](){return"PeerId(".concat(this.toString(),")")}toString(){return null==this.string&&(this.string=uz.encode(this.multihash.bytes).slice(1)),this.string}toCID(){return SH.createV1(BH,this.multihash)}toBytes(){return this.multihash.bytes}toJSON(){return this.toString()}equals(e){var t;if(e instanceof Uint8Array)return Yn(this.multihash.bytes,e);if("string"===typeof e)return function(e,t){var r;if(t=null!==(r=t)&&void 0!==r?r:LH,"1"===e.charAt(0)||"Q"===e.charAt(0)){const t=Nz(uz.decode("z".concat(e)));return e.startsWith("12D")?new qH({multihash:t}):e.startsWith("16U")?new FH({multihash:t}):new KH({multihash:t})}return function(e){try{const t=Nz(e);if(t.code===Mz.code){if(t.digest.length===MH)return new qH({multihash:t});if(t.digest.length===OH)return new FH({multihash:t})}if(t.code===qz.code)return new KH({multihash:t})}catch{return function(e){if(null==e||null==e.multihash||null==e.version||1===e.version&&e.code!==BH)throw new Error("Supplied PeerID CID is invalid");const t=e.multihash;if(t.code===qz.code)return new KH({multihash:e.multihash});if(t.code===Mz.code){if(t.digest.length===MH)return new qH({multihash:e.multihash});if(t.digest.length===OH)return new FH({multihash:e.multihash})}throw new Error("Supplied PeerID CID is invalid")}(SH.decode(e))}throw new Error("Supplied PeerID CID is invalid")}(LH.decode(e))}(e).equals(this);if(null!=(null===e||void 0===e||null===(t=e.multihash)||void 0===t?void 0:t.bytes))return Yn(this.multihash.bytes,e.multihash.bytes);throw new Error("not valid Id")}[NH](){return"PeerId(".concat(this.toString(),")")}}class KH extends UH{constructor(e){super({...e,type:"RSA"}),Br(this,"type","RSA"),Br(this,"publicKey",void 0),this.publicKey=e.publicKey}}class qH extends UH{constructor(e){super({...e,type:"Ed25519"}),Br(this,"type","Ed25519"),Br(this,"publicKey",void 0),this.publicKey=e.multihash.digest}}class FH extends UH{constructor(e){super({...e,type:"secp256k1"}),Br(this,"type","secp256k1"),Br(this,"publicKey",void 0),this.publicKey=e.multihash.digest}}var VH;!function(e){let t;e.codec=()=>(null==t&&(t=uj((function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};!1!==r.lengthDelimited&&t.fork(),null!=e.id&&(t.uint32(10),t.bytes(e.id)),null!=e.pubKey&&(t.uint32(18),t.bytes(e.pubKey)),null!=e.privKey&&(t.uint32(26),t.bytes(e.privKey)),!1!==r.lengthDelimited&&t.ldelim()}),((e,t)=>{const r={},n=null==t?e.len:e.pos+t;for(;e.pos<n;){const t=e.uint32();switch(t>>>3){case 1:r.id=e.bytes();break;case 2:r.pubKey=e.bytes();break;case 3:r.privKey=e.bytes();break;default:e.skipType(7&t)}}return r}))),t),e.encode=t=>nj(t,e.codec()),e.decode=t=>rj(t,e.codec())}(VH||(VH={}));const zH=async()=>{const e=await async function(e,t){return Vj(e).generateKeyPair(null!==t&&void 0!==t?t:2048)}("Ed25519"),t=await jH(e);if("Ed25519"===t.type)return t;throw new Error('Generated unexpected PeerId type "'.concat(t.type,'"'))};async function jH(e){return async function(e,t){return e.length===MH?new qH({multihash:Dz(Mz.code,e),privateKey:t}):e.length===OH?new FH({multihash:Dz(Mz.code,e),privateKey:t}):new KH({multihash:await qz.digest(e),publicKey:e,privateKey:t})}(function(e,t){var r;return Vj(t=(null!==(r=t)&&void 0!==r?r:"rsa").toLowerCase()),e.bytes}(e.public),function(e,t){var r;return Vj(t=(null!==(r=t)&&void 0!==r?r:"rsa").toLowerCase()),e.bytes}(e))}var HH=function(e,t){if(e.length>=255)throw new TypeError("Alphabet too long");for(var r=new Uint8Array(256),n=0;n<r.length;n++)r[n]=255;for(var i=0;i<e.length;i++){var o=e.charAt(i),s=o.charCodeAt(0);if(255!==r[s])throw new TypeError(o+" is ambiguous");r[s]=i}var a=e.length,c=e.charAt(0),l=Math.log(a)/Math.log(256),u=Math.log(256)/Math.log(a);function h(e){if("string"!==typeof e)throw new TypeError("Expected String");if(0===e.length)return new Uint8Array;var t=0;if(" "!==e[t]){for(var n=0,i=0;e[t]===c;)n++,t++;for(var o=(e.length-t)*l+1>>>0,s=new Uint8Array(o);e[t];){var u=r[e.charCodeAt(t)];if(255===u)return;for(var h=0,d=o-1;(0!==u||h<i)&&-1!==d;d--,h++)u+=a*s[d]>>>0,s[d]=u%256>>>0,u=u/256>>>0;if(0!==u)throw new Error("Non-zero carry");i=h,t++}if(" "!==e[t]){for(var p=o-i;p!==o&&0===s[p];)p++;for(var f=new Uint8Array(n+(o-p)),y=n;p!==o;)f[y++]=s[p++];return f}}}return{encode:function(t){if(t instanceof Uint8Array||(ArrayBuffer.isView(t)?t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength):Array.isArray(t)&&(t=Uint8Array.from(t))),!(t instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(0===t.length)return"";for(var r=0,n=0,i=0,o=t.length;i!==o&&0===t[i];)i++,r++;for(var s=(o-i)*u+1>>>0,l=new Uint8Array(s);i!==o;){for(var h=t[i],d=0,p=s-1;(0!==h||d<n)&&-1!==p;p--,d++)h+=256*l[p]>>>0,l[p]=h%a>>>0,h=h/a>>>0;if(0!==h)throw new Error("Non-zero carry");n=d,i++}for(var f=s-n;f!==s&&0===l[f];)f++;for(var y=c.repeat(r);f<s;++f)y+=e.charAt(l[f]);return y},decodeUnsafe:h,decode:function(e){var r=h(e);if(r)return r;throw new Error("Non-".concat(t," character"))}}};const GH=HH,WH=(new Uint8Array(0),e=>{if(e instanceof Uint8Array&&"Uint8Array"===e.constructor.name)return e;if(e instanceof ArrayBuffer)return new Uint8Array(e);if(ArrayBuffer.isView(e))return new Uint8Array(e.buffer,e.byteOffset,e.byteLength);throw new Error("Unknown type, must be binary type")});class YH{constructor(e,t,r){this.name=e,this.prefix=t,this.baseEncode=r}encode(e){if(e instanceof Uint8Array)return"".concat(this.prefix).concat(this.baseEncode(e));throw Error("Unknown type, must be binary type")}}class QH{constructor(e,t,r){if(this.name=e,this.prefix=t,void 0===t.codePointAt(0))throw new Error("Invalid prefix character");this.prefixCodePoint=t.codePointAt(0),this.baseDecode=r}decode(e){if("string"===typeof e){if(e.codePointAt(0)!==this.prefixCodePoint)throw Error("Unable to decode multibase string ".concat(JSON.stringify(e),", ").concat(this.name," decoder only supports inputs prefixed with ").concat(this.prefix));return this.baseDecode(e.slice(this.prefix.length))}throw Error("Can only multibase decode strings")}or(e){return JH(this,e)}}class XH{constructor(e){this.decoders=e}or(e){return JH(this,e)}decode(e){const t=e[0],r=this.decoders[t];if(r)return r.decode(e);throw RangeError("Unable to decode multibase string ".concat(JSON.stringify(e),", only inputs prefixed with ").concat(Object.keys(this.decoders)," are supported"))}}const JH=(e,t)=>new XH({...e.decoders||{[e.prefix]:e},...t.decoders||{[t.prefix]:t}});class ZH{constructor(e,t,r,n){this.name=e,this.prefix=t,this.baseEncode=r,this.baseDecode=n,this.encoder=new YH(e,t,r),this.decoder=new QH(e,t,n)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}}const $H=e=>{let{name:t,prefix:r,encode:n,decode:i}=e;return new ZH(t,r,n,i)},eG=e=>{let{prefix:t,name:r,alphabet:n}=e;const{encode:i,decode:o}=GH(n,r);return $H({prefix:t,name:r,encode:i,decode:e=>WH(o(e))})},tG=e=>{let{name:t,prefix:r,bitsPerChar:n,alphabet:i}=e;return $H({prefix:r,name:t,encode:e=>((e,t,r)=>{const n="="===t[t.length-1],i=(1<<r)-1;let o="",s=0,a=0;for(let c=0;c<e.length;++c)for(a=a<<8|e[c],s+=8;s>r;)s-=r,o+=t[i&a>>s];if(s&&(o+=t[i&a<<r-s]),n)for(;o.length*r&7;)o+="=";return o})(e,i,n),decode:e=>((e,t,r,n)=>{const i={};for(let u=0;u<t.length;++u)i[t[u]]=u;let o=e.length;for(;"="===e[o-1];)--o;const s=new Uint8Array(o*r/8|0);let a=0,c=0,l=0;for(let u=0;u<o;++u){const t=i[e[u]];if(void 0===t)throw new SyntaxError("Non-".concat(n," character"));c=c<<r|t,a+=r,a>=8&&(a-=8,s[l++]=255&c>>a)}if(a>=r||255&c<<8-a)throw new SyntaxError("Unexpected end of data");return s})(e,i,n,t)})},rG=tG({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),nG=tG({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),iG=tG({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),oG=tG({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),sG=tG({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),aG=tG({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),cG=tG({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),lG=tG({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),uG=tG({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5}),hG=eG({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),dG=eG({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"}),pG=tG({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),fG=tG({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),yG=tG({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),gG=tG({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});ia.formatters.b=e=>null==e?"undefined":hG.baseEncode(e),ia.formatters.t=e=>null==e?"undefined":rG.baseEncode(e),ia.formatters.m=e=>null==e?"undefined":pG.baseEncode(e),ia.formatters.p=e=>null==e?"undefined":e.toString(),ia.formatters.c=e=>null==e?"undefined":e.toString(),ia.formatters.k=e=>null==e?"undefined":e.toString(),ia.formatters.a=e=>null==e?"undefined":e.toString();var mG=function(e,t){if(e.length>=255)throw new TypeError("Alphabet too long");for(var r=new Uint8Array(256),n=0;n<r.length;n++)r[n]=255;for(var i=0;i<e.length;i++){var o=e.charAt(i),s=o.charCodeAt(0);if(255!==r[s])throw new TypeError(o+" is ambiguous");r[s]=i}var a=e.length,c=e.charAt(0),l=Math.log(a)/Math.log(256),u=Math.log(256)/Math.log(a);function h(e){if("string"!==typeof e)throw new TypeError("Expected String");if(0===e.length)return new Uint8Array;var t=0;if(" "!==e[t]){for(var n=0,i=0;e[t]===c;)n++,t++;for(var o=(e.length-t)*l+1>>>0,s=new Uint8Array(o);e[t];){var u=r[e.charCodeAt(t)];if(255===u)return;for(var h=0,d=o-1;(0!==u||h<i)&&-1!==d;d--,h++)u+=a*s[d]>>>0,s[d]=u%256>>>0,u=u/256>>>0;if(0!==u)throw new Error("Non-zero carry");i=h,t++}if(" "!==e[t]){for(var p=o-i;p!==o&&0===s[p];)p++;for(var f=new Uint8Array(n+(o-p)),y=n;p!==o;)f[y++]=s[p++];return f}}}return{encode:function(t){if(t instanceof Uint8Array||(ArrayBuffer.isView(t)?t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength):Array.isArray(t)&&(t=Uint8Array.from(t))),!(t instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(0===t.length)return"";for(var r=0,n=0,i=0,o=t.length;i!==o&&0===t[i];)i++,r++;for(var s=(o-i)*u+1>>>0,l=new Uint8Array(s);i!==o;){for(var h=t[i],d=0,p=s-1;(0!==h||d<n)&&-1!==p;p--,d++)h+=256*l[p]>>>0,l[p]=h%a>>>0,h=h/a>>>0;if(0!==h)throw new Error("Non-zero carry");n=d,i++}for(var f=s-n;f!==s&&0===l[f];)f++;for(var y=c.repeat(r);f<s;++f)y+=e.charAt(l[f]);return y},decodeUnsafe:h,decode:function(e){var r=h(e);if(r)return r;throw new Error("Non-".concat(t," character"))}}};const bG=mG,wG=(new Uint8Array(0),e=>{if(e instanceof Uint8Array&&"Uint8Array"===e.constructor.name)return e;if(e instanceof ArrayBuffer)return new Uint8Array(e);if(ArrayBuffer.isView(e))return new Uint8Array(e.buffer,e.byteOffset,e.byteLength);throw new Error("Unknown type, must be binary type")});class vG{constructor(e,t,r){this.name=e,this.prefix=t,this.baseEncode=r}encode(e){if(e instanceof Uint8Array)return"".concat(this.prefix).concat(this.baseEncode(e));throw Error("Unknown type, must be binary type")}}class _G{constructor(e,t,r){if(this.name=e,this.prefix=t,void 0===t.codePointAt(0))throw new Error("Invalid prefix character");this.prefixCodePoint=t.codePointAt(0),this.baseDecode=r}decode(e){if("string"===typeof e){if(e.codePointAt(0)!==this.prefixCodePoint)throw Error("Unable to decode multibase string ".concat(JSON.stringify(e),", ").concat(this.name," decoder only supports inputs prefixed with ").concat(this.prefix));return this.baseDecode(e.slice(this.prefix.length))}throw Error("Can only multibase decode strings")}or(e){return SG(this,e)}}class EG{constructor(e){this.decoders=e}or(e){return SG(this,e)}decode(e){const t=e[0],r=this.decoders[t];if(r)return r.decode(e);throw RangeError("Unable to decode multibase string ".concat(JSON.stringify(e),", only inputs prefixed with ").concat(Object.keys(this.decoders)," are supported"))}}const SG=(e,t)=>new EG({...e.decoders||{[e.prefix]:e},...t.decoders||{[t.prefix]:t}});class AG{constructor(e,t,r,n){this.name=e,this.prefix=t,this.baseEncode=r,this.baseDecode=n,this.encoder=new vG(e,t,r),this.decoder=new _G(e,t,n)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}}const kG=e=>{let{name:t,prefix:r,encode:n,decode:i}=e;return new AG(t,r,n,i)},IG=e=>{let{prefix:t,name:r,alphabet:n}=e;const{encode:i,decode:o}=bG(n,r);return kG({prefix:t,name:r,encode:i,decode:e=>wG(o(e))})},RG=e=>{let{name:t,prefix:r,bitsPerChar:n,alphabet:i}=e;return kG({prefix:r,name:t,encode:e=>((e,t,r)=>{const n="="===t[t.length-1],i=(1<<r)-1;let o="",s=0,a=0;for(let c=0;c<e.length;++c)for(a=a<<8|e[c],s+=8;s>r;)s-=r,o+=t[i&a>>s];if(s&&(o+=t[i&a<<r-s]),n)for(;o.length*r&7;)o+="=";return o})(e,i,n),decode:e=>((e,t,r,n)=>{const i={};for(let u=0;u<t.length;++u)i[t[u]]=u;let o=e.length;for(;"="===e[o-1];)--o;const s=new Uint8Array(o*r/8|0);let a=0,c=0,l=0;for(let u=0;u<o;++u){const t=i[e[u]];if(void 0===t)throw new SyntaxError("Non-".concat(n," character"));c=c<<r|t,a+=r,a>=8&&(a-=8,s[l++]=255&c>>a)}if(a>=r||255&c<<8-a)throw new SyntaxError("Unexpected end of data");return s})(e,i,n,t)})},PG=IG({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),CG=IG({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var TG=function e(t,r,n){r=r||[];var i=n=n||0;for(;t>=NG;)r[n++]=255&t|xG,t/=128;for(;t&DG;)r[n++]=255&t|xG,t>>>=7;return r[n]=0|t,e.bytes=n-i+1,r},xG=128,DG=-128,NG=Math.pow(2,31);var LG=function e(t,r){var n,i=0,o=0,s=r=r||0,a=t.length;do{if(s>=a)throw e.bytes=0,new RangeError("Could not decode varint");n=t[s++],i+=o<28?(n&MG)<<o:(n&MG)*Math.pow(2,o),o+=7}while(n>=BG);return e.bytes=s-r,i},BG=128,MG=127;var OG=Math.pow(2,7),UG=Math.pow(2,14),KG=Math.pow(2,21),qG=Math.pow(2,28),FG=Math.pow(2,35),VG=Math.pow(2,42),zG=Math.pow(2,49),jG=Math.pow(2,56),HG=Math.pow(2,63);const GG={encode:TG,decode:LG,encodingLength:function(e){return e<OG?1:e<UG?2:e<KG?3:e<qG?4:e<FG?5:e<VG?6:e<zG?7:e<jG?8:e<HG?9:10}},WG=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return[GG.decode(e,t),GG.decode.bytes]},YG=function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;return GG.encode(e,t,r),t},QG=e=>GG.encodingLength(e),XG=(e,t)=>{const r=t.byteLength,n=QG(e),i=n+QG(r),o=new Uint8Array(i+r);return YG(e,o,0),YG(r,o,n),o.set(t,i),new ZG(e,r,t,o)},JG=e=>{const t=wG(e),[r,n]=WG(t),[i,o]=WG(t.subarray(n)),s=t.subarray(n+o);if(s.byteLength!==i)throw new Error("Incorrect length");return new ZG(r,i,s,t)};class ZG{constructor(e,t,r,n){this.code=e,this.size=t,this.digest=r,this.bytes=n}}const $G=wG,eW={code:0,name:"identity",encode:$G,digest:e=>XG(0,$G(e))},tW=e=>{let{name:t,code:r,encode:n}=e;return new rW(t,r,n)};class rW{constructor(e,t,r){this.name=e,this.code=t,this.encode=r}digest(e){if(e instanceof Uint8Array){const t=this.encode(e);return t instanceof Uint8Array?XG(this.code,t):t.then((e=>XG(this.code,e)))}throw Error("Unknown type, must be binary type")}}const nW=e=>async t=>new Uint8Array(await crypto.subtle.digest(e,t)),iW=tW({name:"sha2-256",code:18,encode:nW("SHA-256")}),oW=tW({name:"sha2-512",code:19,encode:nW("SHA-512")}),sW=32,aW=64,cW=32;function lW(e,t){const r=new Uint8Array(aW);for(let n=0;n<cW;n++)r[n]=e[n],r[cW+n]=t[n];return r}const uW=RG({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),hW=RG({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),dW=RG({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),pW=RG({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6}),fW={get(){const e=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:globalThis).crypto;if(null==e||null==e.subtle)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 e}},yW={alg:"A128GCM",ext:!0,k:"scm9jmO_4BJAgdwWGVulLg",key_ops:["encrypt","decrypt"],kty:"oct"};async function gW(e,t){const r=function(e){var t,r,n,i,o,s;const a=null!==(t=null===e||void 0===e?void 0:e.algorithm)&&void 0!==t?t:"AES-GCM";let c=null!==(r=null===e||void 0===e?void 0:e.keyLength)&&void 0!==r?r:16;const l=null!==(n=null===e||void 0===e?void 0:e.nonceLength)&&void 0!==n?n:12,u=null!==(i=null===e||void 0===e?void 0:e.digest)&&void 0!==i?i:"SHA-256",h=null!==(o=null===e||void 0===e?void 0:e.saltLength)&&void 0!==o?o:16,d=null!==(s=null===e||void 0===e?void 0:e.iterations)&&void 0!==s?s:32767,p=fW.get();return c*=8,{encrypt:async function(e,t){const r=p.getRandomValues(new Uint8Array(h)),n=p.getRandomValues(new Uint8Array(l)),i={name:a,iv:n};let o;if("string"===typeof t&&(t=ps(t)),0===t.length){o=await p.subtle.importKey("jwk",yW,{name:"AES-GCM"},!0,["encrypt"]);try{const e={name:"PBKDF2",salt:r,iterations:d,hash:{name:u}},n=await p.subtle.importKey("raw",t,{name:"PBKDF2"},!1,["deriveKey"]);o=await p.subtle.deriveKey(e,n,{name:a,length:c},!0,["encrypt"])}catch{o=await p.subtle.importKey("jwk",yW,{name:"AES-GCM"},!0,["encrypt"])}}else{const e={name:"PBKDF2",salt:r,iterations:d,hash:{name:u}},n=await p.subtle.importKey("raw",t,{name:"PBKDF2"},!1,["deriveKey"]);o=await p.subtle.deriveKey(e,n,{name:a,length:c},!0,["encrypt"])}const s=await p.subtle.encrypt(i,o,e);return Po([r,i.iv,new Uint8Array(s)])},decrypt:async function(e,t){const r=e.subarray(0,h),n=e.subarray(h,h+l),i=e.subarray(h+l),o={name:a,iv:n};let s;if("string"===typeof t&&(t=ps(t)),0===t.length)try{const e={name:"PBKDF2",salt:r,iterations:d,hash:{name:u}},n=await p.subtle.importKey("raw",t,{name:"PBKDF2"},!1,["deriveKey"]);s=await p.subtle.deriveKey(e,n,{name:a,length:c},!0,["decrypt"])}catch{s=await p.subtle.importKey("jwk",yW,{name:"AES-GCM"},!0,["decrypt"])}else{const e={name:"PBKDF2",salt:r,iterations:d,hash:{name:u}},n=await p.subtle.importKey("raw",t,{name:"PBKDF2"},!1,["deriveKey"]);s=await p.subtle.deriveKey(e,n,{name:a,length:c},!0,["decrypt"])}const f=await p.subtle.decrypt(o,s,i);return new Uint8Array(f)}}}(),n=await r.encrypt(e,t);return uW.encode(n)}ya._configure(),pa._configure(fa),ga._configure(ma);const mW=["uint64","int64","sint64","fixed64","sfixed64"];function bW(e){return function(e){for(const t of mW){if(null==e[t])continue;const r=e[t];e[t]=function(){return BigInt(r.call(this).toString())}}return e}(new pa(e))}function wW(){return function(e){for(const t of mW){if(null==e[t])continue;const r=e[t];e[t]=function(e){return r.call(this,e.toString())}}return e}(ga.create())}function vW(e,t){const r=bW(e instanceof Uint8Array?e:e.subarray());return t.decode(r)}function _W(e,t){const r=wW();return t.encode(e,r,{lengthDelimited:!1}),r.finish()}var EW,SW,AW,kW,IW;function RW(e,t,r,n){return{name:e,type:t,encode:r,decode:n}}function PW(e,t){return RW("message",EW.LENGTH_DELIMITED,e,t)}!function(e){e[e.VARINT=0]="VARINT",e[e.BIT64=1]="BIT64",e[e.LENGTH_DELIMITED=2]="LENGTH_DELIMITED",e[e.START_GROUP=3]="START_GROUP",e[e.END_GROUP=4]="END_GROUP",e[e.BIT32=5]="BIT32"}(EW||(EW={})),function(e){e.RSA="RSA",e.Ed25519="Ed25519",e.Secp256k1="Secp256k1"}(SW||(SW={})),function(e){e[e.RSA=0]="RSA",e[e.Ed25519=1]="Ed25519",e[e.Secp256k1=2]="Secp256k1"}(AW||(AW={})),function(e){e.codec=()=>function(e){function t(t){if(null==e[t.toString()])throw new Error("Invalid enum value");return e[t]}return RW("enum",EW.VARINT,(function(e,r){const n=t(e);r.int32(n)}),(function(e){return t(e.int32())}))}(AW)}(SW||(SW={})),function(e){let t;e.codec=()=>(null==t&&(t=PW((function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};!1!==r.lengthDelimited&&t.fork(),null!=e.Type&&(t.uint32(8),SW.codec().encode(e.Type,t)),null!=e.Data&&(t.uint32(18),t.bytes(e.Data)),!1!==r.lengthDelimited&&t.ldelim()}),((e,t)=>{const r={},n=null==t?e.len:e.pos+t;for(;e.pos<n;){const t=e.uint32();switch(t>>>3){case 1:r.Type=SW.codec().decode(e);break;case 2:r.Data=e.bytes();break;default:e.skipType(7&t)}}return r}))),t),e.encode=t=>_W(t,e.codec()),e.decode=t=>vW(t,e.codec())}(kW||(kW={})),function(e){let t;e.codec=()=>(null==t&&(t=PW((function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};!1!==r.lengthDelimited&&t.fork(),null!=e.Type&&(t.uint32(8),SW.codec().encode(e.Type,t)),null!=e.Data&&(t.uint32(18),t.bytes(e.Data)),!1!==r.lengthDelimited&&t.ldelim()}),((e,t)=>{const r={},n=null==t?e.len:e.pos+t;for(;e.pos<n;){const t=e.uint32();switch(t>>>3){case 1:r.Type=SW.codec().decode(e);break;case 2:r.Data=e.bytes();break;default:e.skipType(7&t)}}return r}))),t),e.encode=t=>_W(t,e.codec()),e.decode=t=>vW(t,e.codec())}(IW||(IW={}));class CW{constructor(e){Br(this,"_key",void 0),this._key=BW(e,sW)}async verify(e,t){return async function(e,t,r){return Bd.verify(t,r,e)}(this._key,t,e)}marshal(){return this._key}get bytes(){return kW.encode({Type:SW.Ed25519,Data:this.marshal()}).subarray()}equals(e){return Yn(this.bytes,e.bytes)}async hash(){const{bytes:e}=await iW.digest(this.bytes);return e}}class TW{constructor(e,t){Br(this,"_key",void 0),Br(this,"_publicKey",void 0),this._key=BW(e,aW),this._publicKey=BW(t,sW)}async sign(e){return async function(e,t){const r=e.subarray(0,cW);return Bd.sign(t,r)}(this._key,e)}get public(){return new CW(this._publicKey)}marshal(){return this._key}get bytes(){return IW.encode({Type:SW.Ed25519,Data:this.marshal()}).subarray()}equals(e){return Yn(this.bytes,e.bytes)}async hash(){const{bytes:e}=await iW.digest(this.bytes);return e}async id(){const e=eW.digest(this.public.bytes);return PG.encode(e.bytes).substring(1)}async export(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"libp2p-key";if("libp2p-key"===t)return gW(this.bytes,e);throw new rp("export format '".concat(t,"' is not supported"),"ERR_INVALID_EXPORT_FORMAT")}}function xW(e){if(e.length>aW){const t=(e=BW(e,aW+sW)).subarray(0,aW),r=e.subarray(aW,e.length);return new TW(t,r)}const t=(e=BW(e,aW)).subarray(0,aW),r=e.subarray(sW);return new TW(t,r)}function DW(e){return e=BW(e,sW),new CW(e)}async function NW(){const{privateKey:e,publicKey:t}=await async function(){const e=Bd.utils.randomPrivateKey(),t=Bd.getPublicKey(e);return{privateKey:lW(e,t),publicKey:t}}();return new TW(e,t)}async function LW(e){const{privateKey:t,publicKey:r}=await async function(e){if(e.length!==cW)throw new TypeError('"seed" must be 32 bytes in length.');if(!(e instanceof Uint8Array))throw new TypeError('"seed" must be a node.js Buffer, or Uint8Array.');const t=e,r=Bd.getPublicKey(t);return{privateKey:lW(t,r),publicKey:r}}(e);return new TW(t,r)}function BW(e,t){var r;if((e=Uint8Array.from(null!==(r=e)&&void 0!==r?r:[])).length!==t)throw new rp("Key must be a Uint8Array of length ".concat(t,", got ").concat(e.length),"ERR_INVALID_KEY_TYPE");return e}function MW(e,t){let r=Uint8Array.from(e.abs().toByteArray());if(r=0===r[0]?r.subarray(1):r,null!=t){if(r.length>t)throw new Error("byte array longer than desired length");r=Po([new Uint8Array(t-r.length),r])}return Ro(r,"base64url")}function OW(e){const t=function(e,t){let r=ps(e,"base64urlpad");if(null!=t){if(r.length>t)throw new Error("byte array longer than desired length");r=Po([new Uint8Array(t-r.length),r])}return r}(e);return new sp.jsbn.BigInteger(Ro(t,"base16"),16)}const UW={"P-256":256,"P-384":384,"P-521":521};Object.keys(UW).join(" / ");function KW(e,t){return t.map((t=>OW(e[t])))}async function qW(e){const t=[await fW.get().subtle.importKey("jwk",e,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["sign"]),await VW(e)],r=await FW({privateKey:t[0],publicKey:t[1]});return{privateKey:r[0],publicKey:r[1]}}async function FW(e){if(null==e.privateKey||null==e.publicKey)throw new rp("Private and public key are required","ERR_INVALID_PARAMETERS");return Promise.all([fW.get().subtle.exportKey("jwk",e.privateKey),fW.get().subtle.exportKey("jwk",e.publicKey)])}async function VW(e){return fW.get().subtle.importKey("jwk",{kty:e.kty,n:e.n,e:e.e},{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["verify"])}function zW(e,t,r,n){const i=t?function(e){return sp.pki.setRsaPublicKey(...KW(e,["n","e"]))}(e):function(e){return sp.pki.setRsaPrivateKey(...KW(e,["n","e","d","p","q","dp","dq","qi"]))}(e);return ps(n(Ro(Uint8Array.from(r),"ascii"),i),"ascii")}function jW(e){if("RSA"!==e.kty)throw new rp("invalid key type","ERR_INVALID_KEY_TYPE");if(null==e.n)throw new rp("invalid key modulus","ERR_INVALID_KEY_MODULUS");return 8*ps(e.n,"base64url").length}const HW=8192;class GW{constructor(e){Br(this,"_key",void 0),this._key=e}async verify(e,t){return async function(e,t,r){const n=await fW.get().subtle.importKey("jwk",e,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["verify"]);return fW.get().subtle.verify({name:"RSASSA-PKCS1-v1_5"},n,t,r)}(this._key,t,e)}marshal(){return function(e){if(null==e.n||null==e.e)throw new rp("JWK was missing components","ERR_INVALID_PARAMETERS");const t=sp.pki.publicKeyToAsn1({n:OW(e.n),e:OW(e.e)});return ps(sp.asn1.toDer(t).getBytes(),"ascii")}(this._key)}get bytes(){return kW.encode({Type:SW.RSA,Data:this.marshal()}).subarray()}encrypt(e){return zW(this._key,!0,e,((e,t)=>t.encrypt(e)))}equals(e){return Yn(this.bytes,e.bytes)}async hash(){const{bytes:e}=await iW.digest(this.bytes);return e}}class WW{constructor(e,t){Br(this,"_key",void 0),Br(this,"_publicKey",void 0),this._key=e,this._publicKey=t}genSecret(){return function(e){if(isNaN(e)||e<=0)throw new rp("random bytes length must be a Number bigger than 0","ERR_INVALID_LENGTH");return oh(e)}(16)}async sign(e){return async function(e,t){const r=await fW.get().subtle.importKey("jwk",e,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["sign"]),n=await fW.get().subtle.sign({name:"RSASSA-PKCS1-v1_5"},r,Uint8Array.from(t));return new Uint8Array(n,0,n.byteLength)}(this._key,e)}get public(){if(null==this._publicKey)throw new rp("public key not provided","ERR_PUBKEY_NOT_PROVIDED");return new GW(this._publicKey)}decrypt(e){return zW(this._key,!1,e,((e,t)=>t.decrypt(e)))}marshal(){return function(e){if(null==e.n||null==e.e||null==e.d||null==e.p||null==e.q||null==e.dp||null==e.dq||null==e.qi)throw new rp("JWK was missing components","ERR_INVALID_PARAMETERS");const t=sp.pki.privateKeyToAsn1({n:OW(e.n),e:OW(e.e),d:OW(e.d),p:OW(e.p),q:OW(e.q),dP:OW(e.dp),dQ:OW(e.dq),qInv:OW(e.qi)});return ps(sp.asn1.toDer(t).getBytes(),"ascii")}(this._key)}get bytes(){return IW.encode({Type:SW.RSA,Data:this.marshal()}).subarray()}equals(e){return Yn(this.bytes,e.bytes)}async hash(){const{bytes:e}=await iW.digest(this.bytes);return e}async id(){return Ro(await this.public.hash(),"base58btc")}async export(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"pkcs-8";if("pkcs-8"===t){const t=new sp.util.ByteBuffer(this.marshal()),r=sp.asn1.fromDer(t),n=sp.pki.privateKeyFromAsn1(r),i={algorithm:"aes256",count:1e4,saltSize:16,prfAlgorithm:"sha512"};return sp.pki.encryptRsaPrivateKey(n,e,i)}if("libp2p-key"===t)return gW(this.bytes,e);throw new rp("export format '".concat(t,"' is not supported"),"ERR_INVALID_EXPORT_FORMAT")}}async function YW(e){const t=function(e){const t=sp.asn1.fromDer(Ro(e,"ascii")),r=sp.pki.privateKeyFromAsn1(t);return{kty:"RSA",n:MW(r.n),e:MW(r.e),d:MW(r.d),p:MW(r.p),q:MW(r.q),dp:MW(r.dP),dq:MW(r.dQ),qi:MW(r.qInv),alg:"RS256"}}(e);if(jW(t)>HW)throw new rp("key size is too large","ERR_KEY_SIZE_TOO_LARGE");const r=await qW(t);return new WW(r.privateKey,r.publicKey)}function QW(e){const t=function(e){const t=sp.asn1.fromDer(Ro(e,"ascii")),r=sp.pki.publicKeyFromAsn1(t);return{kty:"RSA",n:MW(r.n),e:MW(r.e)}}(e);if(jW(t)>HW)throw new rp("key size is too large","ERR_KEY_SIZE_TOO_LARGE");return new GW(t)}async function XW(e){if(jW(e)>HW)throw new rp("key size is too large","ERR_KEY_SIZE_TOO_LARGE");const t=await qW(e);return new WW(t.privateKey,t.publicKey)}async function JW(e){if(e>HW)throw new rp("key size is too large","ERR_KEY_SIZE_TOO_LARGE");const t=await async function(e){const t=await fW.get().subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:e,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-256"}},!0,["sign","verify"]),r=await FW(t);return{privateKey:r[0],publicKey:r[1]}}(e);return new WW(t.privateKey,t.publicKey)}function ZW(e){try{sy.ProjectivePoint.fromHex(e)}catch(t){throw new rp(String(t),"ERR_INVALID_PUBLIC_KEY")}}class $W{constructor(e){Br(this,"_key",void 0),ZW(e),this._key=e}async verify(e,t){return async function(e,t,r){try{const{digest:n}=await iW.digest(r);return sy.verify(t,n,e)}catch(n){throw new rp(String(n),"ERR_INVALID_INPUT")}}(this._key,t,e)}marshal(){return e=this._key,sy.ProjectivePoint.fromHex(e).toRawBytes(!0);var e}get bytes(){return kW.encode({Type:SW.Secp256k1,Data:this.marshal()}).subarray()}equals(e){return Yn(this.bytes,e.bytes)}async hash(){const{bytes:e}=await iW.digest(this.bytes);return e}}class eY{constructor(e,t){Br(this,"_key",void 0),Br(this,"_publicKey",void 0),this._key=e,this._publicKey=null!==t&&void 0!==t?t:function(e){try{return sy.getPublicKey(e,!0)}catch(t){throw new rp(String(t),"ERR_INVALID_PRIVATE_KEY")}}(e),function(e){try{sy.getPublicKey(e,!0)}catch(t){throw new rp(String(t),"ERR_INVALID_PRIVATE_KEY")}}(this._key),ZW(this._publicKey)}async sign(e){return async function(e,t){const{digest:r}=await iW.digest(t);try{return sy.sign(r,e).toDERRawBytes()}catch(n){throw new rp(String(n),"ERR_INVALID_INPUT")}}(this._key,e)}get public(){return new $W(this._publicKey)}marshal(){return this._key}get bytes(){return IW.encode({Type:SW.Secp256k1,Data:this.marshal()}).subarray()}equals(e){return Yn(this.bytes,e.bytes)}async hash(){const{bytes:e}=await iW.digest(this.bytes);return e}async id(){return Ro(await this.public.hash(),"base58btc")}async export(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"libp2p-key";if("libp2p-key"===t)return gW(this.bytes,e);throw new rp("export format '".concat(t,"' is not supported"),"ERR_INVALID_EXPORT_FORMAT")}}function tY(e){return new eY(e)}function rY(e){return new $W(e)}async function nY(){const e=sy.utils.randomPrivateKey();return new eY(e)}const iY={rsa:cr,ed25519:ar,secp256k1:lr};function oY(e){const t=Object.keys(iY).join(" / ");return new rp("invalid or unsupported key type ".concat(e,". Must be ").concat(t),"ERR_UNSUPPORTED_KEY_TYPE")}async function sY(e){var t,r;const n=IW.decode(e),i=null!==(t=n.Data)&&void 0!==t?t:new Uint8Array;switch(n.Type){case SW.RSA:return iY.rsa.unmarshalRsaPrivateKey(i);case SW.Ed25519:return iY.ed25519.unmarshalEd25519PrivateKey(i);case SW.Secp256k1:return iY.secp256k1.unmarshalSecp256k1PrivateKey(i);default:throw oY(null!==(r=n.Type)&&void 0!==r?r:"RSA")}}const aY=IG({prefix:"9",name:"base10",alphabet:"0123456789"}),cY=RG({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),lY=RG({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4}),uY=RG({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1}),hY=Array.from("\ud83d\ude80\ud83e\ude90\u2604\ud83d\udef0\ud83c\udf0c\ud83c\udf11\ud83c\udf12\ud83c\udf13\ud83c\udf14\ud83c\udf15\ud83c\udf16\ud83c\udf17\ud83c\udf18\ud83c\udf0d\ud83c\udf0f\ud83c\udf0e\ud83d\udc09\u2600\ud83d\udcbb\ud83d\udda5\ud83d\udcbe\ud83d\udcbf\ud83d\ude02\u2764\ud83d\ude0d\ud83e\udd23\ud83d\ude0a\ud83d\ude4f\ud83d\udc95\ud83d\ude2d\ud83d\ude18\ud83d\udc4d\ud83d\ude05\ud83d\udc4f\ud83d\ude01\ud83d\udd25\ud83e\udd70\ud83d\udc94\ud83d\udc96\ud83d\udc99\ud83d\ude22\ud83e\udd14\ud83d\ude06\ud83d\ude44\ud83d\udcaa\ud83d\ude09\u263a\ud83d\udc4c\ud83e\udd17\ud83d\udc9c\ud83d\ude14\ud83d\ude0e\ud83d\ude07\ud83c\udf39\ud83e\udd26\ud83c\udf89\ud83d\udc9e\u270c\u2728\ud83e\udd37\ud83d\ude31\ud83d\ude0c\ud83c\udf38\ud83d\ude4c\ud83d\ude0b\ud83d\udc97\ud83d\udc9a\ud83d\ude0f\ud83d\udc9b\ud83d\ude42\ud83d\udc93\ud83e\udd29\ud83d\ude04\ud83d\ude00\ud83d\udda4\ud83d\ude03\ud83d\udcaf\ud83d\ude48\ud83d\udc47\ud83c\udfb6\ud83d\ude12\ud83e\udd2d\u2763\ud83d\ude1c\ud83d\udc8b\ud83d\udc40\ud83d\ude2a\ud83d\ude11\ud83d\udca5\ud83d\ude4b\ud83d\ude1e\ud83d\ude29\ud83d\ude21\ud83e\udd2a\ud83d\udc4a\ud83e\udd73\ud83d\ude25\ud83e\udd24\ud83d\udc49\ud83d\udc83\ud83d\ude33\u270b\ud83d\ude1a\ud83d\ude1d\ud83d\ude34\ud83c\udf1f\ud83d\ude2c\ud83d\ude43\ud83c\udf40\ud83c\udf37\ud83d\ude3b\ud83d\ude13\u2b50\u2705\ud83e\udd7a\ud83c\udf08\ud83d\ude08\ud83e\udd18\ud83d\udca6\u2714\ud83d\ude23\ud83c\udfc3\ud83d\udc90\u2639\ud83c\udf8a\ud83d\udc98\ud83d\ude20\u261d\ud83d\ude15\ud83c\udf3a\ud83c\udf82\ud83c\udf3b\ud83d\ude10\ud83d\udd95\ud83d\udc9d\ud83d\ude4a\ud83d\ude39\ud83d\udde3\ud83d\udcab\ud83d\udc80\ud83d\udc51\ud83c\udfb5\ud83e\udd1e\ud83d\ude1b\ud83d\udd34\ud83d\ude24\ud83c\udf3c\ud83d\ude2b\u26bd\ud83e\udd19\u2615\ud83c\udfc6\ud83e\udd2b\ud83d\udc48\ud83d\ude2e\ud83d\ude46\ud83c\udf7b\ud83c\udf43\ud83d\udc36\ud83d\udc81\ud83d\ude32\ud83c\udf3f\ud83e\udde1\ud83c\udf81\u26a1\ud83c\udf1e\ud83c\udf88\u274c\u270a\ud83d\udc4b\ud83d\ude30\ud83e\udd28\ud83d\ude36\ud83e\udd1d\ud83d\udeb6\ud83d\udcb0\ud83c\udf53\ud83d\udca2\ud83e\udd1f\ud83d\ude41\ud83d\udea8\ud83d\udca8\ud83e\udd2c\u2708\ud83c\udf80\ud83c\udf7a\ud83e\udd13\ud83d\ude19\ud83d\udc9f\ud83c\udf31\ud83d\ude16\ud83d\udc76\ud83e\udd74\u25b6\u27a1\u2753\ud83d\udc8e\ud83d\udcb8\u2b07\ud83d\ude28\ud83c\udf1a\ud83e\udd8b\ud83d\ude37\ud83d\udd7a\u26a0\ud83d\ude45\ud83d\ude1f\ud83d\ude35\ud83d\udc4e\ud83e\udd32\ud83e\udd20\ud83e\udd27\ud83d\udccc\ud83d\udd35\ud83d\udc85\ud83e\uddd0\ud83d\udc3e\ud83c\udf52\ud83d\ude17\ud83e\udd11\ud83c\udf0a\ud83e\udd2f\ud83d\udc37\u260e\ud83d\udca7\ud83d\ude2f\ud83d\udc86\ud83d\udc46\ud83c\udfa4\ud83d\ude47\ud83c\udf51\u2744\ud83c\udf34\ud83d\udca3\ud83d\udc38\ud83d\udc8c\ud83d\udccd\ud83e\udd40\ud83e\udd22\ud83d\udc45\ud83d\udca1\ud83d\udca9\ud83d\udc50\ud83d\udcf8\ud83d\udc7b\ud83e\udd10\ud83e\udd2e\ud83c\udfbc\ud83e\udd75\ud83d\udea9\ud83c\udf4e\ud83c\udf4a\ud83d\udc7c\ud83d\udc8d\ud83d\udce3\ud83e\udd42"),dY=hY.reduce(((e,t,r)=>(e[r]=t,e)),[]),pY=hY.reduce(((e,t,r)=>(e[t.codePointAt(0)]=r,e)),[]);const fY=kG({prefix:"\ud83d\ude80",name:"base256emoji",encode:function(e){return e.reduce(((e,t)=>e+=dY[t]),"")},decode:function(e){const t=[];for(const r of e){const e=pY[r.codePointAt(0)];if(void 0===e)throw new Error("Non-base256emoji character: ".concat(r));t.push(e)}return new Uint8Array(t)}}),yY=RG({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),gY=RG({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),mY=RG({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),bY=RG({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),wY=RG({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),vY=RG({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),_Y=RG({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),EY=RG({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),SY=RG({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5}),AY=IG({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),kY=IG({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"}),IY=RG({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3}),RY=kG({prefix:"\0",name:"identity",encode:e=>{return t=e,(new TextDecoder).decode(t);var t},decode:e=>(e=>(new TextEncoder).encode(e))(e)}),PY=new TextEncoder,CY=new TextDecoder,TY="json",xY=512,DY=e=>PY.encode(JSON.stringify(e)),NY=e=>JSON.parse(CY.decode(e)),LY="raw",BY=85,MY=e=>wG(e),OY=e=>wG(e),UY=(e,t)=>{const{bytes:r,version:n}=e;return 0===n?zY(r,qY(e),t||PG.encoder):jY(r,qY(e),t||yY.encoder)},KY=new WeakMap,qY=e=>{const t=KY.get(e);if(null==t){const t=new Map;return KY.set(e,t),t}return t};class FY{constructor(e,t,r,n){this.code=t,this.version=e,this.multihash=r,this.bytes=n,this["/"]=n}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:{const{code:e,multihash:t}=this;if(e!==HY)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(t.code!==GY)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return FY.createV0(t)}default:throw Error("Can not convert CID version ".concat(this.version," to version 0. This is a bug please report"))}}toV1(){switch(this.version){case 0:{const{code:e,digest:t}=this.multihash,r=XG(e,t);return FY.createV1(this.code,r)}case 1:return this;default:throw Error("Can not convert CID version ".concat(this.version," to version 1. This is a bug please report"))}}equals(e){return FY.equals(this,e)}static equals(e,t){const r=t;return r&&e.code===r.code&&e.version===r.version&&((e,t)=>{if(e===t)return!0;{const r=t;return e.code===r.code&&e.size===r.size&&r.bytes instanceof Uint8Array&&((e,t)=>{if(e===t)return!0;if(e.byteLength!==t.byteLength)return!1;for(let r=0;r<e.byteLength;r++)if(e[r]!==t[r])return!1;return!0})(e.bytes,r.bytes)}})(e.multihash,r.multihash)}toString(e){return UY(this,e)}toJSON(){return{"/":UY(this)}}link(){return this}get[Symbol.toStringTag](){return"CID"}[Symbol.for("nodejs.util.inspect.custom")](){return"CID(".concat(this.toString(),")")}static asCID(e){if(null==e)return null;const t=e;if(t instanceof FY)return t;if(null!=t["/"]&&t["/"]===t.bytes||t.asCID===t){const{version:e,code:r,multihash:n,bytes:i}=t;return new FY(e,r,n,i||WY(e,r,n.bytes))}if(!0===t[YY]){const{version:e,multihash:r,code:n}=t,i=JG(r);return FY.create(e,n,i)}return null}static create(e,t,r){if("number"!==typeof t)throw new Error("String codecs are no longer supported");if(!(r.bytes instanceof Uint8Array))throw new Error("Invalid digest");switch(e){case 0:if(t!==HY)throw new Error("Version 0 CID must use dag-pb (code: ".concat(HY,") block encoding"));return new FY(e,t,r,r.bytes);case 1:{const n=WY(e,t,r.bytes);return new FY(e,t,r,n)}default:throw new Error("Invalid version")}}static createV0(e){return FY.create(0,HY,e)}static createV1(e,t){return FY.create(1,e,t)}static decode(e){const[t,r]=FY.decodeFirst(e);if(r.length)throw new Error("Incorrect length");return t}static decodeFirst(e){const t=FY.inspectBytes(e),r=t.size-t.multihashSize,n=wG(e.subarray(r,r+t.multihashSize));if(n.byteLength!==t.multihashSize)throw new Error("Incorrect length");const i=n.subarray(t.multihashSize-t.digestSize),o=new ZG(t.multihashCode,t.digestSize,i,n);return[0===t.version?FY.createV0(o):FY.createV1(t.codec,o),e.subarray(t.size)]}static inspectBytes(e){let t=0;const r=()=>{const[r,n]=WG(e.subarray(t));return t+=n,r};let n=r(),i=HY;if(18===n?(n=0,t=0):i=r(),0!==n&&1!==n)throw new RangeError("Invalid CID version ".concat(n));const o=t,s=r(),a=r(),c=t+a;return{version:n,codec:i,multihashCode:s,digestSize:a,multihashSize:c-o,size:c}}static parse(e,t){const[r,n]=VY(e,t),i=FY.decode(n);if(0===i.version&&"Q"!==e[0])throw Error("Version 0 CID string must not include multibase prefix");return qY(i).set(r,e),i}}const VY=(e,t)=>{switch(e[0]){case"Q":{const r=t||PG;return[PG.prefix,r.decode("".concat(PG.prefix).concat(e))]}case PG.prefix:{const r=t||PG;return[PG.prefix,r.decode(e)]}case yY.prefix:{const r=t||yY;return[yY.prefix,r.decode(e)]}default:if(null==t)throw Error("To parse non base32 or base58btc encoded CID multibase decoder must be provided");return[e[0],t.decode(e)]}},zY=(e,t,r)=>{const{prefix:n}=r;if(n!==PG.prefix)throw Error("Cannot string encode V0 in ".concat(r.name," encoding"));const i=t.get(n);if(null==i){const i=r.encode(e).slice(1);return t.set(n,i),i}return i},jY=(e,t,r)=>{const{prefix:n}=r,i=t.get(n);if(null==i){const i=r.encode(e);return t.set(n,i),i}return i},HY=112,GY=18,WY=(e,t,r)=>{const n=QG(e),i=n+QG(t),o=new Uint8Array(i+r.byteLength);return YG(e,o,0),YG(t,o,n),o.set(r,i),o},YY=Symbol.for("@ipld/js-cid/CID"),QY={...mr,...dr,...gr,...ur,...hr,...fr,...yr,...nr,...sr,...pr};let XY;const JY=Symbol.for("nodejs.util.inspect.custom"),ZY=Object.values(QY).map((e=>e.decoder)).reduce(((e,t)=>e.or(t)),QY.identity.decoder),$Y=114,eQ=36,tQ=37;XY=Symbol.toStringTag;class rQ{constructor(e){Br(this,"type",void 0),Br(this,"multihash",void 0),Br(this,"privateKey",void 0),Br(this,"publicKey",void 0),Br(this,"string",void 0),Br(this,Mr,!0),this.type=e.type,this.multihash=e.multihash,this.privateKey=e.privateKey,Object.defineProperty(this,"string",{enumerable:!1,writable:!0})}get[XY](){return"PeerId(".concat(this.toString(),")")}toString(){return null==this.string&&(this.string=PG.encode(this.multihash.bytes).slice(1)),this.string}toCID(){return FY.createV1($Y,this.multihash)}toBytes(){return this.multihash.bytes}toJSON(){return this.toString()}equals(e){var t;if(e instanceof Uint8Array)return Yn(this.multihash.bytes,e);if("string"===typeof e)return function(e,t){var r;if(t=null!==(r=t)&&void 0!==r?r:ZY,"1"===e.charAt(0)||"Q"===e.charAt(0)){const t=JG(PG.decode("z".concat(e)));return e.startsWith("12D")?new iQ({multihash:t}):e.startsWith("16U")?new oQ({multihash:t}):new nQ({multihash:t})}return sQ(ZY.decode(e))}(e).equals(this);if(null!=(null===e||void 0===e||null===(t=e.multihash)||void 0===t?void 0:t.bytes))return Yn(this.multihash.bytes,e.multihash.bytes);throw new Error("not valid Id")}[JY](){return"PeerId(".concat(this.toString(),")")}}class nQ extends rQ{constructor(e){super({...e,type:"RSA"}),Br(this,"type","RSA"),Br(this,"publicKey",void 0),this.publicKey=e.publicKey}}class iQ extends rQ{constructor(e){super({...e,type:"Ed25519"}),Br(this,"type","Ed25519"),Br(this,"publicKey",void 0),this.publicKey=e.multihash.digest}}class oQ extends rQ{constructor(e){super({...e,type:"secp256k1"}),Br(this,"type","secp256k1"),Br(this,"publicKey",void 0),this.publicKey=e.multihash.digest}}function sQ(e){try{const t=JG(e);if(t.code===eW.code){if(t.digest.length===eQ)return new iQ({multihash:t});if(t.digest.length===tQ)return new oQ({multihash:t})}if(t.code===iW.code)return new nQ({multihash:t})}catch{return function(e){if(null==e||null==e.multihash||null==e.version||1===e.version&&e.code!==$Y)throw new Error("Supplied PeerID CID is invalid");const t=e.multihash;if(t.code===iW.code)return new nQ({multihash:e.multihash});if(t.code===eW.code){if(t.digest.length===eQ)return new iQ({multihash:e.multihash});if(t.digest.length===tQ)return new oQ({multihash:e.multihash})}throw new Error("Supplied PeerID CID is invalid")}(FY.decode(e))}throw new Error("Supplied PeerID CID is invalid")}const aQ=Math.pow(2,7),cQ=Math.pow(2,14),lQ=Math.pow(2,21),uQ=Math.pow(2,28),hQ=Math.pow(2,35),dQ=Math.pow(2,42),pQ=Math.pow(2,49),fQ=128;function yQ(e){if(e<aQ)return 1;if(e<cQ)return 2;if(e<lQ)return 3;if(e<uQ)return 4;if(e<hQ)return 5;if(e<dQ)return 6;if(e<pQ)return 7;if(null!=Number.MAX_SAFE_INTEGER&&e>Number.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return 8}function gQ(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;return null==t&&(t=Eo(yQ(e))),t instanceof Uint8Array?function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;switch(yQ(e)){case 8:t[r++]=255&e|fQ,e/=128;case 7:t[r++]=255&e|fQ,e/=128;case 6:t[r++]=255&e|fQ,e/=128;case 5:t[r++]=255&e|fQ,e/=128;case 4:t[r++]=255&e|fQ,e>>>=7;case 3:t[r++]=255&e|fQ,e>>>=7;case 2:t[r++]=255&e|fQ,e>>>=7;case 1:t[r++]=255&e,e>>>=7;break;default:throw new Error("unreachable")}return t}(e,t,r):function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;switch(yQ(e)){case 8:t.set(r++,255&e|fQ),e/=128;case 7:t.set(r++,255&e|fQ),e/=128;case 6:t.set(r++,255&e|fQ),e/=128;case 5:t.set(r++,255&e|fQ),e/=128;case 4:t.set(r++,255&e|fQ),e>>>=7;case 3:t.set(r++,255&e|fQ),e>>>=7;case 2:t.set(r++,255&e|fQ),e>>>=7;case 1:t.set(r++,255&e),e>>>=7;break;default:throw new Error("unreachable")}return t}(e,t,r)}const mQ="ERR_SIGNATURE_NOT_VALID";var bQ;!function(e){let t;e.codec=()=>(null==t&&(t=PW((function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};!1!==r.lengthDelimited&&t.fork(),null!=e.publicKey&&e.publicKey.byteLength>0&&(t.uint32(10),t.bytes(e.publicKey)),null!=e.payloadType&&e.payloadType.byteLength>0&&(t.uint32(18),t.bytes(e.payloadType)),null!=e.payload&&e.payload.byteLength>0&&(t.uint32(26),t.bytes(e.payload)),null!=e.signature&&e.signature.byteLength>0&&(t.uint32(42),t.bytes(e.signature)),!1!==r.lengthDelimited&&t.ldelim()}),((e,t)=>{const r={publicKey:new Uint8Array(0),payloadType:new Uint8Array(0),payload:new Uint8Array(0),signature:new Uint8Array(0)},n=null==t?e.len:e.pos+t;for(;e.pos<n;){const t=e.uint32();switch(t>>>3){case 1:r.publicKey=e.bytes();break;case 2:r.payloadType=e.bytes();break;case 3:r.payload=e.bytes();break;case 5:r.signature=e.bytes();break;default:e.skipType(7&t)}}return r}))),t),e.encode=t=>_W(t,e.codec()),e.decode=t=>vW(t,e.codec())}(bQ||(bQ={}));class wQ{constructor(e){Br(this,"peerId",void 0),Br(this,"payloadType",void 0),Br(this,"payload",void 0),Br(this,"signature",void 0),Br(this,"marshaled",void 0);const{peerId:t,payloadType:r,payload:n,signature:i}=e;this.peerId=t,this.payloadType=r,this.payload=n,this.signature=i}marshal(){if(null==this.peerId.publicKey)throw new Error("Missing public key");return null==this.marshaled&&(this.marshaled=bQ.encode({publicKey:this.peerId.publicKey,payloadType:this.payloadType,payload:this.payload.subarray(),signature:this.signature})),this.marshaled}equals(e){return Yn(this.marshal(),e.marshal())}async validate(e){const t=vQ(e,this.payloadType,this.payload);if(null==this.peerId.publicKey)throw new Error("Missing public key");return function(e){var t,r;const n=kW.decode(e),i=null!==(t=n.Data)&&void 0!==t?t:new Uint8Array;switch(n.Type){case SW.RSA:return iY.rsa.unmarshalRsaPublicKey(i);case SW.Ed25519:return iY.ed25519.unmarshalEd25519PublicKey(i);case SW.Secp256k1:return iY.secp256k1.unmarshalSecp256k1PublicKey(i);default:throw oY(null!==(r=n.Type)&&void 0!==r?r:"RSA")}}(this.peerId.publicKey).verify(t.subarray(),this.signature)}}Br(wQ,"createFromProtobuf",(async e=>{const t=bQ.decode(e),r=await async function(e,t){return e.length===eQ?new iQ({multihash:XG(eW.code,e),privateKey:t}):e.length===tQ?new oQ({multihash:XG(eW.code,e),privateKey:t}):new nQ({multihash:await iW.digest(e),publicKey:e,privateKey:t})}(t.publicKey);return new wQ({peerId:r,payloadType:t.payloadType,payload:t.payload,signature:t.signature})})),Br(wQ,"seal",(async(e,t)=>{if(null==t.privateKey)throw new Error("Missing private key");const r=e.domain,n=e.codec,i=e.marshal(),o=vQ(r,n,i),s=await sY(t.privateKey),a=await s.sign(o.subarray());return new wQ({peerId:t,payloadType:n,payload:i,signature:a})})),Br(wQ,"openAndCertify",(async(e,t)=>{const r=await wQ.createFromProtobuf(e);if(!await r.validate(t))throw new rp("envelope signature is not valid for the given domain",mQ);return r}));const vQ=(e,t,r)=>{const n=ps(e),i=gQ(n.byteLength),o=gQ(t.length),s=gQ(r.length);return new Ic(i,n,o,t,s,r)};const _Q=Uint8Array.from([3,1]);var EQ;!function(e){let t,r;!function(e){let t;e.codec=()=>(null==t&&(t=PW((function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};!1!==r.lengthDelimited&&t.fork(),null!=e.multiaddr&&e.multiaddr.byteLength>0&&(t.uint32(10),t.bytes(e.multiaddr)),!1!==r.lengthDelimited&&t.ldelim()}),((e,t)=>{const r={multiaddr:new Uint8Array(0)},n=null==t?e.len:e.pos+t;for(;e.pos<n;){const t=e.uint32();if(t>>>3===1)r.multiaddr=e.bytes();else e.skipType(7&t)}return r}))),t),e.encode=t=>_W(t,e.codec()),e.decode=t=>vW(t,e.codec())}(t=e.AddressInfo||(e.AddressInfo={})),e.codec=()=>(null==r&&(r=PW((function(t,r){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!1!==n.lengthDelimited&&r.fork(),null!=t.peerId&&t.peerId.byteLength>0&&(r.uint32(10),r.bytes(t.peerId)),null!=t.seq&&0n!==t.seq&&(r.uint32(16),r.uint64(t.seq)),null!=t.addresses)for(const i of t.addresses)r.uint32(26),e.AddressInfo.codec().encode(i,r);!1!==n.lengthDelimited&&r.ldelim()}),((t,r)=>{const n={peerId:new Uint8Array(0),seq:0n,addresses:[]},i=null==r?t.len:t.pos+r;for(;t.pos<i;){const r=t.uint32();switch(r>>>3){case 1:n.peerId=t.bytes();break;case 2:n.seq=t.uint64();break;case 3:n.addresses.push(e.AddressInfo.codec().decode(t,t.uint32()));break;default:t.skipType(7&r)}}return n}))),r),e.encode=t=>_W(t,e.codec()),e.decode=t=>vW(t,e.codec())}(EQ||(EQ={}));class SQ{constructor(e){Br(this,"peerId",void 0),Br(this,"multiaddrs",void 0),Br(this,"seqNumber",void 0),Br(this,"domain",SQ.DOMAIN),Br(this,"codec",SQ.CODEC),Br(this,"marshaled",void 0);const{peerId:t,multiaddrs:r,seqNumber:n}=e;this.peerId=t,this.multiaddrs=null!==r&&void 0!==r?r:[],this.seqNumber=null!==n&&void 0!==n?n:BigInt(Date.now())}marshal(){return null==this.marshaled&&(this.marshaled=EQ.encode({peerId:this.peerId.toBytes(),seq:BigInt(this.seqNumber),addresses:this.multiaddrs.map((e=>({multiaddr:e.bytes})))})),this.marshaled}equals(e){return e instanceof SQ&&(!!this.peerId.equals(e.peerId)&&(this.seqNumber===e.seqNumber&&!!function(e,t){const r=(e,t)=>e.toString().localeCompare(t.toString());return e.length===t.length&&(t.sort(r),e.sort(r).every(((e,r)=>t[r].equals(e))))}(this.multiaddrs,e.multiaddrs)))}}Br(SQ,"createFromProtobuf",(e=>{var t;const r=EQ.decode(e),n=sQ(r.peerId),i=(null!==(t=r.addresses)&&void 0!==t?t:[]).map((e=>ra(e.multiaddr))),o=r.seq;return new SQ({peerId:n,multiaddrs:i,seqNumber:o})})),Br(SQ,"DOMAIN","libp2p-peer-record"),Br(SQ,"CODEC",_Q);const AQ=eG({prefix:"9",name:"base10",alphabet:"0123456789"}),kQ=tG({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),IQ=tG({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4}),RQ=tG({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1}),PQ=Array.from("\ud83d\ude80\ud83e\ude90\u2604\ud83d\udef0\ud83c\udf0c\ud83c\udf11\ud83c\udf12\ud83c\udf13\ud83c\udf14\ud83c\udf15\ud83c\udf16\ud83c\udf17\ud83c\udf18\ud83c\udf0d\ud83c\udf0f\ud83c\udf0e\ud83d\udc09\u2600\ud83d\udcbb\ud83d\udda5\ud83d\udcbe\ud83d\udcbf\ud83d\ude02\u2764\ud83d\ude0d\ud83e\udd23\ud83d\ude0a\ud83d\ude4f\ud83d\udc95\ud83d\ude2d\ud83d\ude18\ud83d\udc4d\ud83d\ude05\ud83d\udc4f\ud83d\ude01\ud83d\udd25\ud83e\udd70\ud83d\udc94\ud83d\udc96\ud83d\udc99\ud83d\ude22\ud83e\udd14\ud83d\ude06\ud83d\ude44\ud83d\udcaa\ud83d\ude09\u263a\ud83d\udc4c\ud83e\udd17\ud83d\udc9c\ud83d\ude14\ud83d\ude0e\ud83d\ude07\ud83c\udf39\ud83e\udd26\ud83c\udf89\ud83d\udc9e\u270c\u2728\ud83e\udd37\ud83d\ude31\ud83d\ude0c\ud83c\udf38\ud83d\ude4c\ud83d\ude0b\ud83d\udc97\ud83d\udc9a\ud83d\ude0f\ud83d\udc9b\ud83d\ude42\ud83d\udc93\ud83e\udd29\ud83d\ude04\ud83d\ude00\ud83d\udda4\ud83d\ude03\ud83d\udcaf\ud83d\ude48\ud83d\udc47\ud83c\udfb6\ud83d\ude12\ud83e\udd2d\u2763\ud83d\ude1c\ud83d\udc8b\ud83d\udc40\ud83d\ude2a\ud83d\ude11\ud83d\udca5\ud83d\ude4b\ud83d\ude1e\ud83d\ude29\ud83d\ude21\ud83e\udd2a\ud83d\udc4a\ud83e\udd73\ud83d\ude25\ud83e\udd24\ud83d\udc49\ud83d\udc83\ud83d\ude33\u270b\ud83d\ude1a\ud83d\ude1d\ud83d\ude34\ud83c\udf1f\ud83d\ude2c\ud83d\ude43\ud83c\udf40\ud83c\udf37\ud83d\ude3b\ud83d\ude13\u2b50\u2705\ud83e\udd7a\ud83c\udf08\ud83d\ude08\ud83e\udd18\ud83d\udca6\u2714\ud83d\ude23\ud83c\udfc3\ud83d\udc90\u2639\ud83c\udf8a\ud83d\udc98\ud83d\ude20\u261d\ud83d\ude15\ud83c\udf3a\ud83c\udf82\ud83c\udf3b\ud83d\ude10\ud83d\udd95\ud83d\udc9d\ud83d\ude4a\ud83d\ude39\ud83d\udde3\ud83d\udcab\ud83d\udc80\ud83d\udc51\ud83c\udfb5\ud83e\udd1e\ud83d\ude1b\ud83d\udd34\ud83d\ude24\ud83c\udf3c\ud83d\ude2b\u26bd\ud83e\udd19\u2615\ud83c\udfc6\ud83e\udd2b\ud83d\udc48\ud83d\ude2e\ud83d\ude46\ud83c\udf7b\ud83c\udf43\ud83d\udc36\ud83d\udc81\ud83d\ude32\ud83c\udf3f\ud83e\udde1\ud83c\udf81\u26a1\ud83c\udf1e\ud83c\udf88\u274c\u270a\ud83d\udc4b\ud83d\ude30\ud83e\udd28\ud83d\ude36\ud83e\udd1d\ud83d\udeb6\ud83d\udcb0\ud83c\udf53\ud83d\udca2\ud83e\udd1f\ud83d\ude41\ud83d\udea8\ud83d\udca8\ud83e\udd2c\u2708\ud83c\udf80\ud83c\udf7a\ud83e\udd13\ud83d\ude19\ud83d\udc9f\ud83c\udf31\ud83d\ude16\ud83d\udc76\ud83e\udd74\u25b6\u27a1\u2753\ud83d\udc8e\ud83d\udcb8\u2b07\ud83d\ude28\ud83c\udf1a\ud83e\udd8b\ud83d\ude37\ud83d\udd7a\u26a0\ud83d\ude45\ud83d\ude1f\ud83d\ude35\ud83d\udc4e\ud83e\udd32\ud83e\udd20\ud83e\udd27\ud83d\udccc\ud83d\udd35\ud83d\udc85\ud83e\uddd0\ud83d\udc3e\ud83c\udf52\ud83d\ude17\ud83e\udd11\ud83c\udf0a\ud83e\udd2f\ud83d\udc37\u260e\ud83d\udca7\ud83d\ude2f\ud83d\udc86\ud83d\udc46\ud83c\udfa4\ud83d\ude47\ud83c\udf51\u2744\ud83c\udf34\ud83d\udca3\ud83d\udc38\ud83d\udc8c\ud83d\udccd\ud83e\udd40\ud83e\udd22\ud83d\udc45\ud83d\udca1\ud83d\udca9\ud83d\udc50\ud83d\udcf8\ud83d\udc7b\ud83e\udd10\ud83e\udd2e\ud83c\udfbc\ud83e\udd75\ud83d\udea9\ud83c\udf4e\ud83c\udf4a\ud83d\udc7c\ud83d\udc8d\ud83d\udce3\ud83e\udd42"),CQ=PQ.reduce(((e,t,r)=>(e[r]=t,e)),[]),TQ=PQ.reduce(((e,t,r)=>(e[t.codePointAt(0)]=r,e)),[]);const xQ=$H({prefix:"\ud83d\ude80",name:"base256emoji",encode:function(e){return e.reduce(((e,t)=>e+=CQ[t]),"")},decode:function(e){const t=[];for(const r of e){const e=TQ[r.codePointAt(0)];if(void 0===e)throw new Error("Non-base256emoji character: ".concat(r));t.push(e)}return new Uint8Array(t)}}),DQ=eG({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),NQ=eG({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"}),LQ=tG({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3}),BQ=$H({prefix:"\0",name:"identity",encode:e=>{return t=e,(new TextDecoder).decode(t);var t},decode:e=>(e=>(new TextEncoder).encode(e))(e)}),MQ=new TextEncoder,OQ=new TextDecoder,UQ="json",KQ=512,qQ=e=>MQ.encode(JSON.stringify(e)),FQ=e=>JSON.parse(OQ.decode(e)),VQ="raw",zQ=85,jQ=e=>WH(e),HQ=e=>WH(e);var GQ=function e(t,r,n){r=r||[];var i=n=n||0;for(;t>=QQ;)r[n++]=255&t|WQ,t/=128;for(;t&YQ;)r[n++]=255&t|WQ,t>>>=7;return r[n]=0|t,e.bytes=n-i+1,r},WQ=128,YQ=-128,QQ=Math.pow(2,31);var XQ=function e(t,r){var n,i=0,o=0,s=r=r||0,a=t.length;do{if(s>=a)throw e.bytes=0,new RangeError("Could not decode varint");n=t[s++],i+=o<28?(n&ZQ)<<o:(n&ZQ)*Math.pow(2,o),o+=7}while(n>=JQ);return e.bytes=s-r,i},JQ=128,ZQ=127;var $Q=Math.pow(2,7),eX=Math.pow(2,14),tX=Math.pow(2,21),rX=Math.pow(2,28),nX=Math.pow(2,35),iX=Math.pow(2,42),oX=Math.pow(2,49),sX=Math.pow(2,56),aX=Math.pow(2,63);const cX={encode:GQ,decode:XQ,encodingLength:function(e){return e<$Q?1:e<eX?2:e<tX?3:e<rX?4:e<nX?5:e<iX?6:e<oX?7:e<sX?8:e<aX?9:10}},lX=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return[cX.decode(e,t),cX.decode.bytes]},uX=function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;return cX.encode(e,t,r),t},hX=e=>cX.encodingLength(e),dX=(e,t)=>{const r=t.byteLength,n=hX(e),i=n+hX(r),o=new Uint8Array(i+r);return uX(e,o,0),uX(r,o,n),o.set(t,i),new fX(e,r,t,o)},pX=e=>{const t=WH(e),[r,n]=lX(t),[i,o]=lX(t.subarray(n)),s=t.subarray(n+o);if(s.byteLength!==i)throw new Error("Incorrect length");return new fX(r,i,s,t)};class fX{constructor(e,t,r,n){this.code=e,this.size=t,this.digest=r,this.bytes=n}}const yX=WH,gX={code:0,name:"identity",encode:yX,digest:e=>dX(0,yX(e))},mX=e=>{let{name:t,code:r,encode:n}=e;return new bX(t,r,n)};class bX{constructor(e,t,r){this.name=e,this.code=t,this.encode=r}digest(e){if(e instanceof Uint8Array){const t=this.encode(e);return t instanceof Uint8Array?dX(this.code,t):t.then((e=>dX(this.code,e)))}throw Error("Unknown type, must be binary type")}}const wX=e=>async t=>new Uint8Array(await crypto.subtle.digest(e,t)),vX=mX({name:"sha2-256",code:18,encode:wX("SHA-256")}),_X=mX({name:"sha2-512",code:19,encode:wX("SHA-512")}),EX=(e,t)=>{const{bytes:r,version:n}=e;return 0===n?RX(r,AX(e),t||hG.encoder):PX(r,AX(e),t||rG.encoder)},SX=new WeakMap,AX=e=>{const t=SX.get(e);if(null==t){const t=new Map;return SX.set(e,t),t}return t};class kX{constructor(e,t,r,n){this.code=t,this.version=e,this.multihash=r,this.bytes=n,this["/"]=n}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:{const{code:e,multihash:t}=this;if(e!==CX)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(t.code!==TX)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return kX.createV0(t)}default:throw Error("Can not convert CID version ".concat(this.version," to version 0. This is a bug please report"))}}toV1(){switch(this.version){case 0:{const{code:e,digest:t}=this.multihash,r=dX(e,t);return kX.createV1(this.code,r)}case 1:return this;default:throw Error("Can not convert CID version ".concat(this.version," to version 1. This is a bug please report"))}}equals(e){return kX.equals(this,e)}static equals(e,t){const r=t;return r&&e.code===r.code&&e.version===r.version&&((e,t)=>{if(e===t)return!0;{const r=t;return e.code===r.code&&e.size===r.size&&r.bytes instanceof Uint8Array&&((e,t)=>{if(e===t)return!0;if(e.byteLength!==t.byteLength)return!1;for(let r=0;r<e.byteLength;r++)if(e[r]!==t[r])return!1;return!0})(e.bytes,r.bytes)}})(e.multihash,r.multihash)}toString(e){return EX(this,e)}toJSON(){return{"/":EX(this)}}link(){return this}get[Symbol.toStringTag](){return"CID"}[Symbol.for("nodejs.util.inspect.custom")](){return"CID(".concat(this.toString(),")")}static asCID(e){if(null==e)return null;const t=e;if(t instanceof kX)return t;if(null!=t["/"]&&t["/"]===t.bytes||t.asCID===t){const{version:e,code:r,multihash:n,bytes:i}=t;return new kX(e,r,n,i||xX(e,r,n.bytes))}if(!0===t[DX]){const{version:e,multihash:r,code:n}=t,i=pX(r);return kX.create(e,n,i)}return null}static create(e,t,r){if("number"!==typeof t)throw new Error("String codecs are no longer supported");if(!(r.bytes instanceof Uint8Array))throw new Error("Invalid digest");switch(e){case 0:if(t!==CX)throw new Error("Version 0 CID must use dag-pb (code: ".concat(CX,") block encoding"));return new kX(e,t,r,r.bytes);case 1:{const n=xX(e,t,r.bytes);return new kX(e,t,r,n)}default:throw new Error("Invalid version")}}static createV0(e){return kX.create(0,CX,e)}static createV1(e,t){return kX.create(1,e,t)}static decode(e){const[t,r]=kX.decodeFirst(e);if(r.length)throw new Error("Incorrect length");return t}static decodeFirst(e){const t=kX.inspectBytes(e),r=t.size-t.multihashSize,n=WH(e.subarray(r,r+t.multihashSize));if(n.byteLength!==t.multihashSize)throw new Error("Incorrect length");const i=n.subarray(t.multihashSize-t.digestSize),o=new fX(t.multihashCode,t.digestSize,i,n);return[0===t.version?kX.createV0(o):kX.createV1(t.codec,o),e.subarray(t.size)]}static inspectBytes(e){let t=0;const r=()=>{const[r,n]=lX(e.subarray(t));return t+=n,r};let n=r(),i=CX;if(18===n?(n=0,t=0):i=r(),0!==n&&1!==n)throw new RangeError("Invalid CID version ".concat(n));const o=t,s=r(),a=r(),c=t+a;return{version:n,codec:i,multihashCode:s,digestSize:a,multihashSize:c-o,size:c}}static parse(e,t){const[r,n]=IX(e,t),i=kX.decode(n);if(0===i.version&&"Q"!==e[0])throw Error("Version 0 CID string must not include multibase prefix");return AX(i).set(r,e),i}}const IX=(e,t)=>{switch(e[0]){case"Q":{const r=t||hG;return[hG.prefix,r.decode("".concat(hG.prefix).concat(e))]}case hG.prefix:{const r=t||hG;return[hG.prefix,r.decode(e)]}case rG.prefix:{const r=t||rG;return[rG.prefix,r.decode(e)]}default:if(null==t)throw Error("To parse non base32 or base58btc encoded CID multibase decoder must be provided");return[e[0],t.decode(e)]}},RX=(e,t,r)=>{const{prefix:n}=r;if(n!==hG.prefix)throw Error("Cannot string encode V0 in ".concat(r.name," encoding"));const i=t.get(n);if(null==i){const i=r.encode(e).slice(1);return t.set(n,i),i}return i},PX=(e,t,r)=>{const{prefix:n}=r,i=t.get(n);if(null==i){const i=r.encode(e);return t.set(n,i),i}return i},CX=112,TX=18,xX=(e,t,r)=>{const n=hX(e),i=n+hX(t),o=new Uint8Array(i+r.byteLength);return uX(e,o,0),uX(t,o,n),o.set(r,i),o},DX=Symbol.for("@ipld/js-cid/CID"),NX={...Ir,...Er,...kr,...vr,..._r,...er,...Ar,...tr,...rr,...Sr};let LX;const BX=Symbol.for("nodejs.util.inspect.custom"),MX=Object.values(NX).map((e=>e.decoder)).reduce(((e,t)=>e.or(t)),NX.identity.decoder),OX=114,UX=36,KX=37;LX=Symbol.toStringTag;class qX{constructor(e){Br(this,"type",void 0),Br(this,"multihash",void 0),Br(this,"privateKey",void 0),Br(this,"publicKey",void 0),Br(this,"string",void 0),Br(this,Mr,!0),this.type=e.type,this.multihash=e.multihash,this.privateKey=e.privateKey,Object.defineProperty(this,"string",{enumerable:!1,writable:!0})}get[LX](){return"PeerId(".concat(this.toString(),")")}toString(){return null==this.string&&(this.string=hG.encode(this.multihash.bytes).slice(1)),this.string}toCID(){return kX.createV1(OX,this.multihash)}toBytes(){return this.multihash.bytes}toJSON(){return this.toString()}equals(e){var t;if(e instanceof Uint8Array)return Yn(this.multihash.bytes,e);if("string"===typeof e)return function(e,t){var r;if(t=null!==(r=t)&&void 0!==r?r:MX,"1"===e.charAt(0)||"Q"===e.charAt(0)){const t=pX(hG.decode("z".concat(e)));return e.startsWith("12D")?new VX({multihash:t}):e.startsWith("16U")?new zX({multihash:t}):new FX({multihash:t})}return jX(MX.decode(e))}(e).equals(this);if(null!=(null===e||void 0===e||null===(t=e.multihash)||void 0===t?void 0:t.bytes))return Yn(this.multihash.bytes,e.multihash.bytes);throw new Error("not valid Id")}[BX](){return"PeerId(".concat(this.toString(),")")}}class FX extends qX{constructor(e){super({...e,type:"RSA"}),Br(this,"type","RSA"),Br(this,"publicKey",void 0),this.publicKey=e.publicKey}}class VX extends qX{constructor(e){super({...e,type:"Ed25519"}),Br(this,"type","Ed25519"),Br(this,"publicKey",void 0),this.publicKey=e.multihash.digest}}class zX extends qX{constructor(e){super({...e,type:"secp256k1"}),Br(this,"type","secp256k1"),Br(this,"publicKey",void 0),this.publicKey=e.multihash.digest}}function jX(e){try{const t=pX(e);if(t.code===gX.code){if(t.digest.length===UX)return new VX({multihash:t});if(t.digest.length===KX)return new zX({multihash:t})}if(t.code===vX.code)return new FX({multihash:t})}catch{return function(e){if(null==e||null==e.multihash||null==e.version||1===e.version&&e.code!==OX)throw new Error("Supplied PeerID CID is invalid");const t=e.multihash;if(t.code===vX.code)return new FX({multihash:e.multihash});if(t.code===gX.code){if(t.digest.length===UX)return new VX({multihash:e.multihash});if(t.digest.length===KX)return new zX({multihash:e.multihash})}throw new Error("Supplied PeerID CID is invalid")}(kX.decode(e))}throw new Error("Supplied PeerID CID is invalid")}var HX=__webpack_require__(9174);class GX extends Error{constructor(e){super(e),this.name="TimeoutError"}}class WX extends Error{constructor(e){super(),this.name="AbortError",this.message=e}}const YX=e=>void 0===globalThis.DOMException?new WX(e):new DOMException(e),QX=e=>{const t=void 0===e.reason?YX("This operation was aborted."):e.reason;return t instanceof Error?t:YX(t)};var XX,JX=function(e,t,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"===typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(e):n?n.value:t.get(e)};XX=new WeakMap;const ZX=class{constructor(){XX.set(this,[])}enqueue(e,t){const r={priority:(t={priority:0,...t}).priority,run:e};if(this.size&&JX(this,XX,"f")[this.size-1].priority>=t.priority)return void JX(this,XX,"f").push(r);const n=function(e,t,r){let n=0,i=e.length;for(;i>0;){const o=Math.trunc(i/2);let s=n+o;r(e[s],t)<=0?(n=++s,i-=o+1):i=o}return n}(JX(this,XX,"f"),r,((e,t)=>t.priority-e.priority));JX(this,XX,"f").splice(n,0,r)}dequeue(){const e=JX(this,XX,"f").shift();return null===e||void 0===e?void 0:e.run}filter(e){return JX(this,XX,"f").filter((t=>t.priority===e.priority)).map((e=>e.run))}get size(){return JX(this,XX,"f").length}};var $X,eJ,tJ,rJ,nJ,iJ,oJ,sJ,aJ,cJ,lJ,uJ,hJ,dJ,pJ,fJ,yJ,gJ,mJ,bJ,wJ,vJ,_J,EJ,SJ,AJ,kJ=function(e,t,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"===typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(e,r):i?i.value=r:t.set(e,r),r},IJ=function(e,t,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"===typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(e):n?n.value:t.get(e)};class RJ extends Error{}eJ=new WeakMap,tJ=new WeakMap,rJ=new WeakMap,nJ=new WeakMap,iJ=new WeakMap,oJ=new WeakMap,sJ=new WeakMap,aJ=new WeakMap,cJ=new WeakMap,lJ=new WeakMap,uJ=new WeakMap,hJ=new WeakMap,dJ=new WeakMap,pJ=new WeakMap,$X=new WeakSet,fJ=function(){return IJ(this,tJ,"f")||IJ(this,rJ,"f")<IJ(this,nJ,"f")},yJ=function(){return IJ(this,uJ,"f")<IJ(this,hJ,"f")},gJ=function(){var e;kJ(this,uJ,(e=IJ(this,uJ,"f"),--e),"f"),IJ(this,$X,"m",wJ).call(this),this.emit("next")},mJ=function(){IJ(this,$X,"m",_J).call(this),IJ(this,$X,"m",vJ).call(this),kJ(this,aJ,void 0,"f")},bJ=function(){const e=Date.now();if(void 0===IJ(this,sJ,"f")){const t=IJ(this,oJ,"f")-e;if(!(t<0))return void 0===IJ(this,aJ,"f")&&kJ(this,aJ,setTimeout((()=>{IJ(this,$X,"m",mJ).call(this)}),t),"f"),!0;kJ(this,rJ,IJ(this,eJ,"f")?IJ(this,uJ,"f"):0,"f")}return!1},wJ=function(){if(0===IJ(this,cJ,"f").size)return IJ(this,sJ,"f")&&clearInterval(IJ(this,sJ,"f")),kJ(this,sJ,void 0,"f"),this.emit("empty"),0===IJ(this,uJ,"f")&&this.emit("idle"),!1;if(!IJ(this,dJ,"f")){const e=!IJ(this,$X,"a",bJ);if(IJ(this,$X,"a",fJ)&&IJ(this,$X,"a",yJ)){const t=IJ(this,cJ,"f").dequeue();return!!t&&(this.emit("active"),t(),e&&IJ(this,$X,"m",vJ).call(this),!0)}}return!1},vJ=function(){IJ(this,tJ,"f")||void 0!==IJ(this,sJ,"f")||(kJ(this,sJ,setInterval((()=>{IJ(this,$X,"m",_J).call(this)}),IJ(this,iJ,"f")),"f"),kJ(this,oJ,Date.now()+IJ(this,iJ,"f"),"f"))},_J=function(){0===IJ(this,rJ,"f")&&0===IJ(this,uJ,"f")&&IJ(this,sJ,"f")&&(clearInterval(IJ(this,sJ,"f")),kJ(this,sJ,void 0,"f")),kJ(this,rJ,IJ(this,eJ,"f")?IJ(this,uJ,"f"):0,"f"),IJ(this,$X,"m",EJ).call(this)},EJ=function(){for(;IJ(this,$X,"m",wJ).call(this););},SJ=async function(e){return new Promise(((t,r)=>{e.addEventListener("abort",(()=>{r(new RJ("The task was aborted."))}),{once:!0})}))},AJ=async function(e,t){return new Promise((r=>{const n=()=>{t&&!t()||(this.off(e,n),r())};this.on(e,n)}))};const PJ=class extends HX{constructor(e){var t,r,n,i;if(super(),$X.add(this),eJ.set(this,void 0),tJ.set(this,void 0),rJ.set(this,0),nJ.set(this,void 0),iJ.set(this,void 0),oJ.set(this,0),sJ.set(this,void 0),aJ.set(this,void 0),cJ.set(this,void 0),lJ.set(this,void 0),uJ.set(this,0),hJ.set(this,void 0),dJ.set(this,void 0),pJ.set(this,void 0),Object.defineProperty(this,"timeout",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),!("number"===typeof(e={carryoverConcurrencyCount:!1,intervalCap:Number.POSITIVE_INFINITY,interval:0,concurrency:Number.POSITIVE_INFINITY,autoStart:!0,queueClass:ZX,...e}).intervalCap&&e.intervalCap>=1))throw new TypeError("Expected `intervalCap` to be a number from 1 and up, got `".concat(null!==(r=null===(t=e.intervalCap)||void 0===t?void 0:t.toString())&&void 0!==r?r:"","` (").concat(typeof e.intervalCap,")"));if(void 0===e.interval||!(Number.isFinite(e.interval)&&e.interval>=0))throw new TypeError("Expected `interval` to be a finite number >= 0, got `".concat(null!==(i=null===(n=e.interval)||void 0===n?void 0:n.toString())&&void 0!==i?i:"","` (").concat(typeof e.interval,")"));kJ(this,eJ,e.carryoverConcurrencyCount,"f"),kJ(this,tJ,e.intervalCap===Number.POSITIVE_INFINITY||0===e.interval,"f"),kJ(this,nJ,e.intervalCap,"f"),kJ(this,iJ,e.interval,"f"),kJ(this,cJ,new e.queueClass,"f"),kJ(this,lJ,e.queueClass,"f"),this.concurrency=e.concurrency,this.timeout=e.timeout,kJ(this,pJ,!0===e.throwOnTimeout,"f"),kJ(this,dJ,!1===e.autoStart,"f")}get concurrency(){return IJ(this,hJ,"f")}set concurrency(e){if(!("number"===typeof e&&e>=1))throw new TypeError("Expected `concurrency` to be a number from 1 and up, got `".concat(e,"` (").concat(typeof e,")"));kJ(this,hJ,e,"f"),IJ(this,$X,"m",EJ).call(this)}async add(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return t={timeout:this.timeout,throwOnTimeout:IJ(this,pJ,"f"),...t},new Promise(((r,n)=>{IJ(this,cJ,"f").enqueue((async()=>{var i,o,s;kJ(this,uJ,(o=IJ(this,uJ,"f"),++o),"f"),kJ(this,rJ,(s=IJ(this,rJ,"f"),++s),"f");try{if(null===(i=t.signal)||void 0===i?void 0:i.aborted)throw new RJ("The task was aborted.");let n=e({signal:t.signal});t.timeout&&(n=function(e,t,r,n){let i;const o=new Promise(((o,s)=>{if("number"!==typeof t||1!==Math.sign(t))throw new TypeError("Expected `milliseconds` to be a positive number, got `".concat(t,"`"));if(t!==Number.POSITIVE_INFINITY){if((n={customTimers:{setTimeout:setTimeout,clearTimeout:clearTimeout},...n}).signal){const{signal:e}=n;e.aborted&&s(QX(e)),e.addEventListener("abort",(()=>{s(QX(e))}))}i=n.customTimers.setTimeout.call(void 0,(()=>{if("function"===typeof r){try{o(r())}catch(a){s(a)}return}const n="string"===typeof r?r:"Promise timed out after ".concat(t," milliseconds"),i=r instanceof Error?r:new GX(n);"function"===typeof e.cancel&&e.cancel(),s(i)}),t),(async()=>{try{o(await e)}catch(t){s(t)}finally{n.customTimers.clearTimeout.call(void 0,i)}})()}else o(e)}));return o.clear=()=>{clearTimeout(i),i=void 0},o}(Promise.resolve(n),t.timeout)),t.signal&&(n=Promise.race([n,IJ(this,$X,"m",SJ).call(this,t.signal)]));const o=await n;r(o),this.emit("completed",o)}catch(a){if(a instanceof GX&&!t.throwOnTimeout)return void r();n(a),this.emit("error",a)}finally{IJ(this,$X,"m",gJ).call(this)}}),t),this.emit("add"),IJ(this,$X,"m",wJ).call(this)}))}async addAll(e,t){return Promise.all(e.map((async e=>this.add(e,t))))}start(){return IJ(this,dJ,"f")?(kJ(this,dJ,!1,"f"),IJ(this,$X,"m",EJ).call(this),this):this}pause(){kJ(this,dJ,!0,"f")}clear(){kJ(this,cJ,new(IJ(this,lJ,"f")),"f")}async onEmpty(){0!==IJ(this,cJ,"f").size&&await IJ(this,$X,"m",AJ).call(this,"empty")}async onSizeLessThan(e){IJ(this,cJ,"f").size<e||await IJ(this,$X,"m",AJ).call(this,"next",(()=>IJ(this,cJ,"f").size<e))}async onIdle(){0===IJ(this,uJ,"f")&&0===IJ(this,cJ,"f").size||await IJ(this,$X,"m",AJ).call(this,"idle")}get size(){return IJ(this,cJ,"f").size}sizeBy(e){return IJ(this,cJ,"f").filter(e).length}get pending(){return IJ(this,uJ,"f")}get isPaused(){return IJ(this,dJ,"f")}};class CJ extends Error{constructor(e){super(e),this.name="TimeoutError"}}class TJ extends Error{constructor(e){super(),this.name="AbortError",this.message=e}}const xJ=e=>void 0===globalThis.DOMException?new TJ(e):new DOMException(e),DJ=e=>{const t=void 0===e.reason?xJ("This operation was aborted."):e.reason;return t instanceof Error?t:xJ(t)};const NJ="lock:worker:request-read",LJ="lock:worker:release-read",BJ="lock:master:grant-read",MJ="lock:worker:request-write",OJ="lock:worker:release-write",UJ="lock:master:grant-write",KJ={},qJ=e=>{e.addEventListener("message",(t=>{qJ.dispatchEvent("message",e,t)})),null!=e.port&&e.port.addEventListener("message",(t=>{qJ.dispatchEvent("message",e,t)}))};qJ.addEventListener=(e,t)=>{null==KJ[e]&&(KJ[e]=[]),KJ[e].push(t)},qJ.removeEventListener=(e,t)=>{null!=KJ[e]&&(KJ[e]=KJ[e].filter((e=>e===t)))},qJ.dispatchEvent=function(e,t,r){null!=KJ[e]&&KJ[e].forEach((e=>e(t,r)))};const FJ=qJ,VJ=(e,t,r,n,i)=>(o,s)=>{if(s.data.type!==r)return;const a={type:s.data.type,name:s.data.name,identifier:s.data.identifier};e.dispatchEvent(new MessageEvent(t,{data:{name:a.name,handler:async()=>(o.postMessage({type:i,name:a.name,identifier:a.identifier}),await new Promise((e=>{const t=r=>{if(null==r||null==r.data)return;const i=r.data.type,s=(r.data.name,r.data.identifier);i===n&&s===a.identifier&&(o.removeEventListener("message",t),e())};o.addEventListener("message",t)})))}}))},zJ=(e,t,r,n)=>async()=>{const i=DK();return globalThis.postMessage({type:t,identifier:i,name:e}),await new Promise((t=>{const o=s=>{if(null==s||null==s.data)return;const a=s.data.type,c=s.data.identifier;a===r&&c===i&&(globalThis.removeEventListener("message",o),t((()=>{globalThis.postMessage({type:n,identifier:i,name:e})})))};globalThis.addEventListener("message",o)}))},jJ={singleProcess:!1},HJ=e=>{e=Object.assign({},jJ,e);if(Boolean(globalThis.document)||e.singleProcess){const e=new EventTarget;return FJ.addEventListener("message",VJ(e,"requestReadLock",NJ,LJ,BJ)),FJ.addEventListener("message",VJ(e,"requestWriteLock",MJ,OJ,UJ)),e}return{isWorker:!0,readLock:e=>zJ(e,NJ,BJ,LJ),writeLock:e=>zJ(e,MJ,UJ,OJ)}},GJ={};let WJ;async function YJ(e,t){let r;const n=new Promise((e=>{r=e}));return e.add((async()=>await function(e,t){const{milliseconds:r,fallback:n,message:i,customTimers:o={setTimeout:setTimeout,clearTimeout:clearTimeout}}=t;let s;const a=new Promise(((a,c)=>{if("number"!==typeof r||1!==Math.sign(r))throw new TypeError("Expected `milliseconds` to be a positive number, got `".concat(r,"`"));if(t.signal){const{signal:e}=t;e.aborted&&c(DJ(e)),e.addEventListener("abort",(()=>{c(DJ(e))}))}if(r===Number.POSITIVE_INFINITY)return void e.then(a,c);const l=new CJ;s=o.setTimeout.call(void 0,(()=>{if(n)try{a(n())}catch(t){c(t)}else"function"===typeof e.cancel&&e.cancel(),!1===i?a():i instanceof Error?c(i):(l.message=null!==i&&void 0!==i?i:"Promise timed out after ".concat(r," milliseconds"),c(l))}),r),(async()=>{try{a(await e)}catch(t){c(t)}})()})).finally((()=>{a.clear()}));return a.clear=()=>{o.clearTimeout.call(void 0,s),s=void 0},a}((async()=>await new Promise((e=>{r((()=>{e()}))})))(),{milliseconds:t.timeout}))),await n}const QJ=(e,t)=>{if(!0===WJ.isWorker)return{readLock:WJ.readLock(e,t),writeLock:WJ.writeLock(e,t)};const r=new PJ({concurrency:1});let n;return{async readLock(){if(null!=n)return await YJ(n,t);n=new PJ({concurrency:t.concurrency,autoStart:!1});const e=n,i=YJ(n,t);return r.add((async()=>(e.start(),await e.onIdle().then((()=>{n===e&&(n=null)}))))),await i},writeLock:async()=>(n=null,await YJ(r,t))}},XJ={name:"lock",concurrency:1/0,timeout:846e5,singleProcess:!1};const JJ={ERR_INVALID_PARAMETERS:"ERR_INVALID_PARAMETERS"};ya._configure(),pa._configure(fa),ga._configure(ma);const ZJ=["uint64","int64","sint64","fixed64","sfixed64"];function $J(e){return function(e){for(const t of ZJ){if(null==e[t])continue;const r=e[t];e[t]=function(){return BigInt(r.call(this).toString())}}return e}(new pa(e))}function eZ(){return function(e){for(const t of ZJ){if(null==e[t])continue;const r=e[t];e[t]=function(e){return r.call(this,e.toString())}}return e}(ga.create())}function tZ(e,t){const r=$J(e instanceof Uint8Array?e:e.subarray());return t.decode(r)}function rZ(e,t){const r=eZ();return t.encode(e,r,{lengthDelimited:!1}),r.finish()}var nZ,iZ,oZ,sZ;function aZ(e,t){return function(e,t,r,n){return{name:e,type:t,encode:r,decode:n}}("message",nZ.LENGTH_DELIMITED,e,t)}function cZ(e,t){var r;const n=iZ.decode(t);null!=n.publicKey&&null==e.publicKey&&(e=function(e){if("RSA"===e.type)return new FX(e);if("Ed25519"===e.type)return new VX(e);if("secp256k1"===e.type)return new zX(e);throw new rp("Not a PeerId","ERR_INVALID_PARAMETERS")}({...e,publicKey:e.publicKey}));const i=new Map,o=BigInt(Date.now());for(const[s,a]of n.tags.entries())null!=a.expiry&&a.expiry<o||i.set(s,a);return{...n,id:e,addresses:n.addresses.map((e=>{let{multiaddr:t,isCertified:r}=e;return{multiaddr:ra(t),isCertified:null!==r&&void 0!==r&&r}})),metadata:n.metadata,peerRecordEnvelope:null!==(r=n.peerRecordEnvelope)&&void 0!==r?r:void 0,tags:i}}!function(e){e[e.VARINT=0]="VARINT",e[e.BIT64=1]="BIT64",e[e.LENGTH_DELIMITED=2]="LENGTH_DELIMITED",e[e.START_GROUP=3]="START_GROUP",e[e.END_GROUP=4]="END_GROUP",e[e.BIT32=5]="BIT32"}(nZ||(nZ={})),function(e){let t,r,n;!function(e){let t;e.codec=()=>(null==t&&(t=aZ((function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};!1!==r.lengthDelimited&&t.fork(),null!=e.key&&""!==e.key&&(t.uint32(10),t.string(e.key)),null!=e.value&&e.value.byteLength>0&&(t.uint32(18),t.bytes(e.value)),!1!==r.lengthDelimited&&t.ldelim()}),((e,t)=>{const r={key:"",value:new Uint8Array(0)},n=null==t?e.len:e.pos+t;for(;e.pos<n;){const t=e.uint32();switch(t>>>3){case 1:r.key=e.string();break;case 2:r.value=e.bytes();break;default:e.skipType(7&t)}}return r}))),t),e.encode=t=>rZ(t,e.codec()),e.decode=t=>tZ(t,e.codec())}(t=e.Peer$metadataEntry||(e.Peer$metadataEntry={})),function(e){let t;e.codec=()=>(null==t&&(t=aZ((function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};!1!==r.lengthDelimited&&t.fork(),null!=e.key&&""!==e.key&&(t.uint32(10),t.string(e.key)),null!=e.value&&(t.uint32(18),sZ.codec().encode(e.value,t)),!1!==r.lengthDelimited&&t.ldelim()}),((e,t)=>{const r={key:""},n=null==t?e.len:e.pos+t;for(;e.pos<n;){const t=e.uint32();switch(t>>>3){case 1:r.key=e.string();break;case 2:r.value=sZ.codec().decode(e,e.uint32());break;default:e.skipType(7&t)}}return r}))),t),e.encode=t=>rZ(t,e.codec()),e.decode=t=>tZ(t,e.codec())}(r=e.Peer$tagsEntry||(e.Peer$tagsEntry={})),e.codec=()=>(null==n&&(n=aZ((function(t,r){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!1!==n.lengthDelimited&&r.fork(),null!=t.addresses)for(const e of t.addresses)r.uint32(10),oZ.codec().encode(e,r);if(null!=t.protocols)for(const e of t.protocols)r.uint32(18),r.string(e);if(null!=t.publicKey&&(r.uint32(34),r.bytes(t.publicKey)),null!=t.peerRecordEnvelope&&(r.uint32(42),r.bytes(t.peerRecordEnvelope)),null!=t.metadata&&0!==t.metadata.size)for(const[i,o]of t.metadata.entries())r.uint32(50),e.Peer$metadataEntry.codec().encode({key:i,value:o},r);if(null!=t.tags&&0!==t.tags.size)for(const[i,o]of t.tags.entries())r.uint32(58),e.Peer$tagsEntry.codec().encode({key:i,value:o},r);!1!==n.lengthDelimited&&r.ldelim()}),((t,r)=>{const n={addresses:[],protocols:[],metadata:new Map,tags:new Map},i=null==r?t.len:t.pos+r;for(;t.pos<i;){const r=t.uint32();switch(r>>>3){case 1:n.addresses.push(oZ.codec().decode(t,t.uint32()));break;case 2:n.protocols.push(t.string());break;case 4:n.publicKey=t.bytes();break;case 5:n.peerRecordEnvelope=t.bytes();break;case 6:{const r=e.Peer$metadataEntry.codec().decode(t,t.uint32());n.metadata.set(r.key,r.value);break}case 7:{const r=e.Peer$tagsEntry.codec().decode(t,t.uint32());n.tags.set(r.key,r.value);break}default:t.skipType(7&r)}}return n}))),n),e.encode=t=>rZ(t,e.codec()),e.decode=t=>tZ(t,e.codec())}(iZ||(iZ={})),function(e){let t;e.codec=()=>(null==t&&(t=aZ((function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};!1!==r.lengthDelimited&&t.fork(),null!=e.multiaddr&&e.multiaddr.byteLength>0&&(t.uint32(10),t.bytes(e.multiaddr)),null!=e.isCertified&&(t.uint32(16),t.bool(e.isCertified)),!1!==r.lengthDelimited&&t.ldelim()}),((e,t)=>{const r={multiaddr:new Uint8Array(0)},n=null==t?e.len:e.pos+t;for(;e.pos<n;){const t=e.uint32();switch(t>>>3){case 1:r.multiaddr=e.bytes();break;case 2:r.isCertified=e.bool();break;default:e.skipType(7&t)}}return r}))),t),e.encode=t=>rZ(t,e.codec()),e.decode=t=>tZ(t,e.codec())}(oZ||(oZ={})),function(e){let t;e.codec=()=>(null==t&&(t=aZ((function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};!1!==r.lengthDelimited&&t.fork(),null!=e.value&&0!==e.value&&(t.uint32(8),t.uint32(e.value)),null!=e.expiry&&(t.uint32(16),t.uint64(e.expiry)),!1!==r.lengthDelimited&&t.ldelim()}),((e,t)=>{const r={value:0},n=null==t?e.len:e.pos+t;for(;e.pos<n;){const t=e.uint32();switch(t>>>3){case 1:r.value=e.uint32();break;case 2:r.expiry=e.uint64();break;default:e.skipType(7&t)}}return r}))),t),e.encode=t=>rZ(t,e.codec()),e.decode=t=>tZ(t,e.codec())}(sZ||(sZ={}));const lZ="/peers/";function uZ(e){if(!Or(e)||null==e.type)throw new rp("Invalid PeerId",JJ.ERR_INVALID_PARAMETERS);const t=e.toCID().toString();return new MK("".concat(lZ).concat(t))}async function hZ(e,t,r){const n=new Map;for(const o of r){var i;if(null==o)continue;if(o.multiaddr instanceof Uint8Array&&(o.multiaddr=ra(o.multiaddr)),!Hs(o.multiaddr))throw new rp("Multiaddr was invalid",JJ.ERR_INVALID_PARAMETERS);if(!await t(e,o.multiaddr))continue;const r=null!==(i=o.isCertified)&&void 0!==i&&i,s=o.multiaddr.toString(),a=n.get(s);null!=a?o.isCertified=a.isCertified||r:n.set(s,{multiaddr:o.multiaddr,isCertified:r})}return[...n.values()].sort(((e,t)=>e.multiaddr.toString().localeCompare(t.multiaddr.toString()))).map((e=>{let{isCertified:t,multiaddr:r}=e;return{isCertified:t,multiaddr:r.bytes}}))}async function dZ(e,t,r,n){var i,o,s,a,c,l,u;if(null==t)throw new rp("Invalid PeerData",JJ.ERR_INVALID_PARAMETERS);if(null!=t.publicKey&&null!=e.publicKey&&!Yn(t.publicKey,e.publicKey))throw new rp("publicKey bytes do not match peer id publicKey bytes",JJ.ERR_INVALID_PARAMETERS);const h=n.existingPeer;if(null!=h&&!e.equals(h.id))throw new rp("peer id did not match existing peer id",JJ.ERR_INVALID_PARAMETERS);let d=null!==(i=null===h||void 0===h?void 0:h.addresses)&&void 0!==i?i:[],p=new Set(null!==(o=null===h||void 0===h?void 0:h.protocols)&&void 0!==o?o:[]),f=null!==(s=null===h||void 0===h?void 0:h.metadata)&&void 0!==s?s:new Map,y=null!==(a=null===h||void 0===h?void 0:h.tags)&&void 0!==a?a:new Map,g=null===h||void 0===h?void 0:h.peerRecordEnvelope;if("patch"===r){if(null==t.multiaddrs&&null==t.addresses||(d=[],null!=t.multiaddrs&&d.push(...t.multiaddrs.map((e=>({isCertified:!1,multiaddr:e})))),null!=t.addresses&&d.push(...t.addresses)),null!=t.protocols&&(p=new Set(t.protocols)),null!=t.metadata){f=pZ(t.metadata instanceof Map?[...t.metadata.entries()]:Object.entries(t.metadata),{validate:fZ})}if(null!=t.tags){y=pZ(t.tags instanceof Map?[...t.tags.entries()]:Object.entries(t.tags),{validate:yZ,map:gZ})}null!=t.peerRecordEnvelope&&(g=t.peerRecordEnvelope)}if("merge"===r){if(null!=t.multiaddrs&&d.push(...t.multiaddrs.map((e=>({isCertified:!1,multiaddr:e})))),null!=t.addresses&&d.push(...t.addresses),null!=t.protocols&&(p=new Set([...p,...t.protocols])),null!=t.metadata){const e=t.metadata instanceof Map?[...t.metadata.entries()]:Object.entries(t.metadata);for(const[t,r]of e)null==r?f.delete(t):f.set(t,r);f=pZ([...f.entries()],{validate:fZ})}if(null!=t.tags){const e=t.tags instanceof Map?[...t.tags.entries()]:Object.entries(t.tags),r=new Map(y);for(const[t,n]of e)null==n?r.delete(t):r.set(t,n);y=pZ([...r.entries()],{validate:yZ,map:gZ})}null!=t.peerRecordEnvelope&&(g=t.peerRecordEnvelope)}const m={addresses:await hZ(e,null!==(c=n.addressFilter)&&void 0!==c?c:async()=>!0,d),protocols:[...p.values()].sort(((e,t)=>e.localeCompare(t))),metadata:f,tags:y,publicKey:null!==(l=null!==(u=null===h||void 0===h?void 0:h.id.publicKey)&&void 0!==u?u:t.publicKey)&&void 0!==l?l:e.publicKey,peerRecordEnvelope:g};return"RSA"!==e.type&&delete m.publicKey,m}function pZ(e,t){const r=new Map;for(const[o,s]of e)null!=s&&t.validate(o,s);for(const[o,s]of e.sort(((e,t)=>{let[r]=e,[n]=t;return r.localeCompare(n)}))){var n,i;if(null!=s)r.set(o,null!==(n=null===(i=t.map)||void 0===i?void 0:i.call(t,o,s))&&void 0!==n?n:s)}return r}function fZ(e,t){if("string"!==typeof e)throw new rp("Metadata key must be a string",JJ.ERR_INVALID_PARAMETERS);if(!(t instanceof Uint8Array))throw new rp("Metadata value must be a Uint8Array",JJ.ERR_INVALID_PARAMETERS)}function yZ(e,t){if("string"!==typeof e)throw new rp("Tag name must be a string",JJ.ERR_INVALID_PARAMETERS);if(null!=t.value){if(parseInt("".concat(t.value),10)!==t.value)throw new rp("Tag value must be an integer",JJ.ERR_INVALID_PARAMETERS);if(t.value<0||t.value>100)throw new rp("Tag value must be between 0-100",JJ.ERR_INVALID_PARAMETERS)}if(null!=t.ttl){if(parseInt("".concat(t.ttl),10)!==t.ttl)throw new rp("Tag ttl must be an integer",JJ.ERR_INVALID_PARAMETERS);if(t.ttl<0)throw new rp("Tag ttl must be between greater than 0",JJ.ERR_INVALID_PARAMETERS)}}function gZ(e,t){var r;let n;return null!=t.expiry&&(n=t.expiry),null!=t.ttl&&(n=BigInt(Date.now()+Number(t.ttl))),{value:null!==(r=t.value)&&void 0!==r?r:0,expiry:n}}function mZ(e,t,r){const n=e.toString().split("/")[2],i=jX(rG.decode(n)),o=r.get(i);if(null!=o)return o;const s=cZ(i,t);return r.set(i,s),s}var bZ=new WeakSet,wZ=new WeakSet;class vZ{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};FL(this,wZ),FL(this,bZ),Br(this,"peerId",void 0),Br(this,"datastore",void 0),Br(this,"lock",void 0),Br(this,"addressFilter",void 0),this.peerId=e.peerId,this.datastore=e.datastore,this.addressFilter=t.addressFilter,this.lock=function(e){const t=Object.assign({},XJ,e);return null==WJ&&(WJ=HJ(t),!0!==WJ.isWorker&&(WJ.addEventListener("requestReadLock",(e=>{null!=GJ[e.data.name]&&GJ[e.data.name].readLock().then((async t=>await e.data.handler().finally((()=>t()))))})),WJ.addEventListener("requestWriteLock",(async e=>{null!=GJ[e.data.name]&&GJ[e.data.name].writeLock().then((async t=>await e.data.handler().finally((()=>t()))))})))),null==GJ[t.name]&&(GJ[t.name]=QJ(t.name,t)),GJ[t.name]}({name:"peer-store",singleProcess:!0})}async has(e){return this.datastore.has(uZ(e))}async delete(e){if(this.peerId.equals(e))throw new rp("Cannot delete self peer",JJ.ERR_INVALID_PARAMETERS);await this.datastore.delete(uZ(e))}async load(e){return cZ(e,await this.datastore.get(uZ(e)))}async save(e,t){const{existingBuf:r,existingPeer:n}=await VL(this,bZ,_Z).call(this,e),i=await dZ(e,t,"patch",{addressFilter:this.addressFilter});return VL(this,wZ,EZ).call(this,e,i,r,n)}async patch(e,t){const{existingBuf:r,existingPeer:n}=await VL(this,bZ,_Z).call(this,e),i=await dZ(e,t,"patch",{addressFilter:this.addressFilter,existingPeer:n});return VL(this,wZ,EZ).call(this,e,i,r,n)}async merge(e,t){const{existingBuf:r,existingPeer:n}=await VL(this,bZ,_Z).call(this,e),i=await dZ(e,t,"merge",{addressFilter:this.addressFilter,existingPeer:n});return VL(this,wZ,EZ).call(this,e,i,r,n)}async*all(e){const t=new sV;for await(const{key:r,value:n}of this.datastore.query(function(e,t){var r,n;return null==e?{}:{prefix:lZ,filters:(null!==(r=e.filters)&&void 0!==r?r:[]).map((e=>r=>{let{key:n,value:i}=r;return e(mZ(n,i,t))})),orders:(null!==(n=e.orders)&&void 0!==n?n:[]).map((e=>(r,n)=>e(mZ(r.key,r.value,t),mZ(n.key,n.value,t))))}}(null!==e&&void 0!==e?e:{},t))){const e=mZ(r,n,t);e.id.equals(this.peerId)||(yield e)}}}async function _Z(e){try{const t=await this.datastore.get(uZ(e));return{existingBuf:t,existingPeer:cZ(e,t)}}catch(t){if("ERR_NOT_FOUND"!==t.code)throw t}return{}}async function EZ(e,t,r,n){const i=iZ.encode(t);return null!=r&&Yn(i,r)?{peer:cZ(e,i),previous:n,updated:!1}:(await this.datastore.put(uZ(e),i),{peer:cZ(e,i),previous:n,updated:!0})}const SZ=function(e){let t=function(e){const t=()=>{};return t.enabled=!1,t.color="",t.diff=0,t.log=()=>{},t.namespace=e,t.destroy=()=>!0,t.extend=()=>t,t}("".concat(e,":trace"));return ia.enabled("".concat(e,":trace"))&&null!=ia.names.map((e=>e.toString())).find((e=>e.includes(":trace")))&&(t=ia("".concat(e,":trace"))),Object.assign(ia(e),{error:ia("".concat(e,":error")),trace:t})}("libp2p:peer-store");var AZ=new WeakSet;class kZ{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};FL(this,AZ),Br(this,"store",void 0),Br(this,"events",void 0),Br(this,"peerId",void 0),this.events=e.events,this.peerId=e.peerId,this.store=new vZ(e,t)}async forEach(e,t){SZ.trace("forEach await read lock");const r=await this.store.lock.readLock();SZ.trace("forEach got read lock");try{for await(const r of this.store.all(t))e(r)}finally{SZ.trace("forEach release read lock"),r()}}async all(e){SZ.trace("all await read lock");const t=await this.store.lock.readLock();SZ.trace("all got read lock");try{return await Ec(this.store.all(e))}finally{SZ.trace("all release read lock"),t()}}async delete(e){SZ.trace("delete await write lock");const t=await this.store.lock.writeLock();SZ.trace("delete got write lock");try{await this.store.delete(e)}finally{SZ.trace("delete release write lock"),t()}}async has(e){SZ.trace("has await read lock");const t=await this.store.lock.readLock();SZ.trace("has got read lock");try{return await this.store.has(e)}finally{SZ.trace("has release read lock"),t()}}async get(e){SZ.trace("get await read lock");const t=await this.store.lock.readLock();SZ.trace("get got read lock");try{return await this.store.load(e)}finally{SZ.trace("get release read lock"),t()}}async save(e,t){SZ.trace("save await write lock");const r=await this.store.lock.writeLock();SZ.trace("save got write lock");try{const r=await this.store.save(e,t);return VL(this,AZ,IZ).call(this,e,r),r.peer}finally{SZ.trace("save release write lock"),r()}}async patch(e,t){SZ.trace("patch await write lock");const r=await this.store.lock.writeLock();SZ.trace("patch got write lock");try{const r=await this.store.patch(e,t);return VL(this,AZ,IZ).call(this,e,r),r.peer}finally{SZ.trace("patch release write lock"),r()}}async merge(e,t){SZ.trace("merge await write lock");const r=await this.store.lock.writeLock();SZ.trace("merge got write lock");try{const r=await this.store.merge(e,t);return VL(this,AZ,IZ).call(this,e,r),r.peer}finally{SZ.trace("merge release write lock"),r()}}async consumePeerRecord(e,t){var r;const n=await wQ.openAndCertify(e,SQ.DOMAIN);if(!1===(null===t||void 0===t?void 0:t.equals(n.peerId)))return SZ("envelope peer id was not the expected peer id - expected: %p received: %p",t,n.peerId),!1;const i=SQ.createFromProtobuf(n.payload);let o;try{o=await this.get(n.peerId)}catch(s){if("ERR_NOT_FOUND"!==s.code)throw s}if(null!=(null===(r=o)||void 0===r?void 0:r.peerRecordEnvelope)){const e=await wQ.createFromProtobuf(o.peerRecordEnvelope),t=SQ.createFromProtobuf(e.payload);if(t.seqNumber>=i.seqNumber)return SZ("sequence number was lower or equal to existing sequence number - stored: %d received: %d",t.seqNumber,i.seqNumber),!1}return await this.patch(i.peerId,{peerRecordEnvelope:e,addresses:i.multiaddrs.map((e=>({isCertified:!0,multiaddr:e})))}),!0}}function IZ(e,t){t.updated&&(this.peerId.equals(e)?this.events.safeDispatchEvent("self:peer:update",{detail:t}):this.events.safeDispatchEvent("peer:update",{detail:t}))}const RZ=function(e){if(null!=e[Symbol.asyncIterator])return(async()=>{for await(const t of e);})();for(const t of e);};const PZ=function(e){const[t,r]=null!=e[Symbol.asyncIterator]?[e[Symbol.asyncIterator](),Symbol.asyncIterator]:[e[Symbol.iterator](),Symbol.iterator],n=[];return{peek:()=>t.next(),push:e=>{n.push(e)},next:()=>n.length>0?{done:!1,value:n.shift()}:t.next(),[r](){return this}}};const CZ=function(e,t){if(null!=e[Symbol.asyncIterator])return async function*(){for await(const r of e)await t(r)&&(yield r)}();const r=PZ(e),{value:n,done:i}=r.next();if(!0===i)return function*(){}();const o=t(n);if("function"===typeof o.then)return async function*(){await o&&(yield n);for await(const e of r)await t(e)&&(yield e)}();const s=t;return function*(){!0===o&&(yield n);for(const e of r)s(e)&&(yield e)}()};const TZ=function(e,t){return null!=e[Symbol.asyncIterator]?async function*(){const r=await Ec(e);yield*r.sort(t)}():function*(){const r=Ec(e);yield*r.sort(t)}()};const xZ=function(e,t){return null!=e[Symbol.asyncIterator]?async function*(){let r=0;if(!(t<1))for await(const n of e)if(yield n,r++,r===t)return}():function*(){let r=0;if(!(t<1))for(const n of e)if(yield n,r++,r===t)return}()};class DZ{put(e,t,r){return Promise.reject(new Error(".put is not implemented"))}get(e,t){return Promise.reject(new Error(".get is not implemented"))}has(e,t){return Promise.reject(new Error(".has is not implemented"))}delete(e,t){return Promise.reject(new Error(".delete is not implemented"))}putMany(e){try{var t=this;let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return async function*(){for await(const{key:n,value:i}of e)await t.put(n,i,r),yield n}()}catch(r){return Promise.reject(r)}}getMany(e){try{var t=this;let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return async function*(){for await(const n of e)yield{key:n,value:await t.get(n,r)}}()}catch(r){return Promise.reject(r)}}deleteMany(e){try{var t=this;let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return async function*(){for await(const n of e)await t.delete(n,r),yield n}()}catch(r){return Promise.reject(r)}}batch(){let e=[],t=[];return{put(t,r){e.push({key:t,value:r})},delete(e){t.push(e)},commit:async r=>{await RZ(this.putMany(e,r)),e=[],await RZ(this.deleteMany(t,r)),t=[]}}}async*_all(e,t){throw new Error("._all is not implemented")}async*_allKeys(e,t){throw new Error("._allKeys is not implemented")}query(e,t){let r=this._all(e,t);if(null!=e.prefix){const t=e.prefix;r=CZ(r,(e=>e.key.toString().startsWith(t)))}if(Array.isArray(e.filters)&&(r=e.filters.reduce(((e,t)=>CZ(e,t)),r)),Array.isArray(e.orders)&&(r=e.orders.reduce(((e,t)=>TZ(e,t)),r)),null!=e.offset){let t=0;const n=e.offset;r=CZ(r,(()=>t++>=n))}return null!=e.limit&&(r=xZ(r,e.limit)),r}queryKeys(e,t){let r=this._allKeys(e,t);if(null!=e.prefix){const t=e.prefix;r=CZ(r,(e=>e.toString().startsWith(t)))}if(Array.isArray(e.filters)&&(r=e.filters.reduce(((e,t)=>CZ(e,t)),r)),Array.isArray(e.orders)&&(r=e.orders.reduce(((e,t)=>TZ(e,t)),r)),null!=e.offset){const t=e.offset;let n=0;r=CZ(r,(()=>n++>=t))}return null!=e.limit&&(r=xZ(r,e.limit)),r}}class NZ extends DZ{constructor(){super(),Br(this,"data",void 0),this.data=new Map}put(e,t){return this.data.set(e.toString(),t),e}get(e){const t=this.data.get(e.toString());if(null==t)throw function(e){var t;return e=null!==(t=e)&&void 0!==t?t:new Error("Not Found"),zc(e,"ERR_NOT_FOUND")}();return t}has(e){return this.data.has(e.toString())}delete(e){this.data.delete(e.toString())}*_all(){for(const[e,t]of this.data.entries())yield{key:new MK(e),value:t}}*_allKeys(){for(const e of this.data.keys())yield new MK(e)}}const LZ=cq("libp2p:address-manager"),BZ=e=>e;function MZ(e,t){const r=e.getPeerId();if(null!=r){ZV(r).equals(t)&&(e=e.decapsulate(ra("/p2p/".concat(t.toString()))))}return e}class OZ{constructor(e){var t;let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};Br(this,"components",void 0),Br(this,"listen",void 0),Br(this,"announce",void 0),Br(this,"observed",void 0),Br(this,"announceFilter",void 0);const{listen:n=[],announce:i=[]}=r;this.components=e,this.listen=n.map((e=>e.toString())),this.announce=new Set(i.map((e=>e.toString()))),this.observed=new Map,this.announceFilter=null!==(t=r.announceFilter)&&void 0!==t?t:BZ,this._updatePeerStoreAddresses=function(e,t){let r;return function(){clearTimeout(r),r=setTimeout((function(){r=void 0,e()}),t)}}(this._updatePeerStoreAddresses.bind(this),1e3),e.events.addEventListener("transport:listening",(()=>{this._updatePeerStoreAddresses()})),e.events.addEventListener("transport:close",(()=>{this._updatePeerStoreAddresses()}))}_updatePeerStoreAddresses(){const e=this.getAnnounceAddrs().concat(this.components.transportManager.getAddrs()).concat([...this.observed.entries()].filter((e=>{let[t,r]=e;return r.confident})).map((e=>{let[t]=e;return ra(t)}))).map((e=>e.getPeerId()===this.components.peerId.toString()?e.decapsulate("/p2p/".concat(this.components.peerId.toString())):e));this.components.peerStore.patch(this.components.peerId,{multiaddrs:e}).catch((e=>{LZ.error("error updating addresses",e)}))}getListenAddrs(){return Array.from(this.listen).map((e=>ra(e)))}getAnnounceAddrs(){return Array.from(this.announce).map((e=>ra(e)))}getObservedAddrs(){return Array.from(this.observed).map((e=>{let[t]=e;return ra(t)}))}addObservedAddr(e){const t=(e=MZ(e,this.components.peerId)).toString();this.observed.has(t)||this.observed.set(t,{confident:!1})}confirmObservedAddr(e){var t;const r=(e=MZ(e,this.components.peerId)).toString(),n=(null!==(t=this.observed.get(r))&&void 0!==t?t:{confident:!1}).confident;this.observed.set(r,{confident:!0}),n||this._updatePeerStoreAddresses()}removeObservedAddr(e){const t=(e=MZ(e,this.components.peerId)).toString();this.observed.delete(t)}getAddresses(){let e=this.getAnnounceAddrs().map((e=>e.toString()));0===e.length&&(e=this.components.transportManager.getAddrs().map((e=>e.toString()))),e=e.concat(Array.from(this.observed).filter((e=>{let[t,r]=e;return r.confident})).map((e=>{let[t]=e;return t})));const t=new Set(e);return this.announceFilter(Array.from(t).map((e=>ra(e)))).map((e=>{var t;return!0===(null===(t=e.protos().pop())||void 0===t?void 0:t.path)||e.getPeerId()===this.components.peerId.toString()?e:e.encapsulate("/p2p/".concat(this.components.peerId.toString()))}))}}function UZ(e){return null!=e&&"function"===typeof e.start&&"function"===typeof e.stop}class KZ{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};Br(this,"components",{}),Br(this,"_started",!1),this.components={};for(const[t,r]of Object.entries(e))this.components[t]=r}isStarted(){return this._started}async _invokeStartableMethod(e){await Promise.all(Object.values(this.components).filter((e=>UZ(e))).map((async t=>{var r;await(null===(r=t[e])||void 0===r?void 0:r.call(t))})))}async beforeStart(){await this._invokeStartableMethod("beforeStart")}async start(){await this._invokeStartableMethod("start"),this._started=!0}async afterStart(){await this._invokeStartableMethod("afterStart")}async beforeStop(){await this._invokeStartableMethod("beforeStop")}async stop(){await this._invokeStartableMethod("stop"),this._started=!1}async afterStop(){await this._invokeStartableMethod("afterStop")}}const qZ=["metrics","connectionProtector"],FZ=["components","isStarted","beforeStart","start","afterStart","beforeStop","stop","afterStop","then","_invokeStartableMethod"];var VZ=__webpack_require__(7922);const zZ="[a-fA-F\\d:]",jZ=e=>e&&e.includeBoundaries?"(?:(?<=\\s|^)(?=".concat(zZ,")|(?<=").concat(zZ,")(?=\\s|$))"):"",HZ="(?: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}",GZ="[a-fA-F\\d]{1,4}",WZ="\n(?:\n(?:".concat(GZ,":){7}(?:").concat(GZ,"|:)| // 1:2:3:4:5:6:7:: 1:2:3:4:5:6:7:8\n(?:").concat(GZ,":){6}(?:").concat(HZ,"|:").concat(GZ,"|:)| // 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\n(?:").concat(GZ,":){5}(?::").concat(HZ,"|(?::").concat(GZ,"){1,2}|:)| // 1:2:3:4:5:: 1:2:3:4:5::7:8 1:2:3:4:5::8 1:2:3:4:5::7:1.2.3.4\n(?:").concat(GZ,":){4}(?:(?::").concat(GZ,"){0,1}:").concat(HZ,"|(?::").concat(GZ,"){1,3}|:)| // 1:2:3:4:: 1:2:3:4::6:7:8 1:2:3:4::8 1:2:3:4::6:7:1.2.3.4\n(?:").concat(GZ,":){3}(?:(?::").concat(GZ,"){0,2}:").concat(HZ,"|(?::").concat(GZ,"){1,4}|:)| // 1:2:3:: 1:2:3::5:6:7:8 1:2:3::8 1:2:3::5:6:7:1.2.3.4\n(?:").concat(GZ,":){2}(?:(?::").concat(GZ,"){0,3}:").concat(HZ,"|(?::").concat(GZ,"){1,5}|:)| // 1:2:: 1:2::4:5:6:7:8 1:2::8 1:2::4:5:6:7:1.2.3.4\n(?:").concat(GZ,":){1}(?:(?::").concat(GZ,"){0,4}:").concat(HZ,"|(?::").concat(GZ,"){1,6}|:)| // 1:: 1::3:4:5:6:7:8 1::8 1::3:4:5:6:7:1.2.3.4\n(?::(?:(?::").concat(GZ,"){0,5}:").concat(HZ,"|(?::").concat(GZ,"){1,7}|:)) // ::2:3:4:5:6:7:8 ::2:3:4:5:6:7:8 ::8 ::1.2.3.4\n)(?:%[0-9a-zA-Z]{1,})? // %eth0 %1\n").replace(/\s*\/\/.*$/gm,"").replace(/\n/g,"").trim(),YZ=new RegExp("(?:^".concat(HZ,"$)|(?:^").concat(WZ,"$)")),QZ=new RegExp("^".concat(HZ,"$")),XZ=new RegExp("^".concat(WZ,"$")),JZ=e=>e&&e.exact?YZ:new RegExp("(?:".concat(jZ(e)).concat(HZ).concat(jZ(e),")|(?:").concat(jZ(e)).concat(WZ).concat(jZ(e),")"),"g");JZ.v4=e=>e&&e.exact?QZ:new RegExp("".concat(jZ(e)).concat(HZ).concat(jZ(e)),"g"),JZ.v6=e=>e&&e.exact?XZ:new RegExp("".concat(jZ(e)).concat(WZ).concat(jZ(e)),"g");const ZZ=JZ;var $Z=__webpack_require__(7201);const{isValid:e$,parse:t$}=$Z,r$=["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"].map((e=>new VZ.Netmask(e)));function n$(e){return/^::$/.test(e)||/^::1$/.test(e)||/^::f{4}:([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/.test(e)||/^::f{4}:0.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/.test(e)||/^64:ff9b::([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/.test(e)||/^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(e)||/^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(e)||/^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(e)||/^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(e)||/^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(e)||/^f[c-d]([0-9a-fA-F]{2,2}):/i.test(e)||/^fe[8-9a-bA-B][0-9a-fA-F]:/i.test(e)||/^ff([0-9a-fA-F]{2,2}):/i.test(e)}const i$=e=>{if(e$(e)){const t=t$(e);if("ipv4"===t.kind())return function(e){for(let t of r$)if(t.contains(e))return!0;return!1}(t.toNormalizedString());if("ipv6"===t.kind())return n$(e)}else if(gs(e)&&ZZ.v6().test(e))return n$(e)};function o$(){return{denyDialPeer:async()=>!1,denyDialMultiaddr:async e=>{const t=e.stringTuples();return(4===t[0][0]||41===t[0][0])&&Boolean(i$("".concat(t[0][1])))},denyInboundConnection:async()=>!1,denyOutboundConnection:async()=>!1,denyInboundEncryptedConnection:async()=>!1,denyOutboundEncryptedConnection:async()=>!1,denyInboundUpgradedConnection:async()=>!1,denyOutboundUpgradedConnection:async()=>!1,filterMultiaddrForPeer:async()=>!0,...arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}}}var s$=function(e,t){if(e.length>=255)throw new TypeError("Alphabet too long");for(var r=new Uint8Array(256),n=0;n<r.length;n++)r[n]=255;for(var i=0;i<e.length;i++){var o=e.charAt(i),s=o.charCodeAt(0);if(255!==r[s])throw new TypeError(o+" is ambiguous");r[s]=i}var a=e.length,c=e.charAt(0),l=Math.log(a)/Math.log(256),u=Math.log(256)/Math.log(a);function h(e){if("string"!==typeof e)throw new TypeError("Expected String");if(0===e.length)return new Uint8Array;var t=0;if(" "!==e[t]){for(var n=0,i=0;e[t]===c;)n++,t++;for(var o=(e.length-t)*l+1>>>0,s=new Uint8Array(o);e[t];){var u=r[e.charCodeAt(t)];if(255===u)return;for(var h=0,d=o-1;(0!==u||h<i)&&-1!==d;d--,h++)u+=a*s[d]>>>0,s[d]=u%256>>>0,u=u/256>>>0;if(0!==u)throw new Error("Non-zero carry");i=h,t++}if(" "!==e[t]){for(var p=o-i;p!==o&&0===s[p];)p++;for(var f=new Uint8Array(n+(o-p)),y=n;p!==o;)f[y++]=s[p++];return f}}}return{encode:function(t){if(t instanceof Uint8Array||(ArrayBuffer.isView(t)?t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength):Array.isArray(t)&&(t=Uint8Array.from(t))),!(t instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(0===t.length)return"";for(var r=0,n=0,i=0,o=t.length;i!==o&&0===t[i];)i++,r++;for(var s=(o-i)*u+1>>>0,l=new Uint8Array(s);i!==o;){for(var h=t[i],d=0,p=s-1;(0!==h||d<n)&&-1!==p;p--,d++)h+=256*l[p]>>>0,l[p]=h%a>>>0,h=h/a>>>0;if(0!==h)throw new Error("Non-zero carry");n=d,i++}for(var f=s-n;f!==s&&0===l[f];)f++;for(var y=c.repeat(r);f<s;++f)y+=e.charAt(l[f]);return y},decodeUnsafe:h,decode:function(e){var r=h(e);if(r)return r;throw new Error("Non-".concat(t," character"))}}};const a$=s$;new Uint8Array(0);class c${constructor(e,t,r){this.name=e,this.prefix=t,this.baseEncode=r}encode(e){if(e instanceof Uint8Array)return"".concat(this.prefix).concat(this.baseEncode(e));throw Error("Unknown type, must be binary type")}}class l${constructor(e,t,r){if(this.name=e,this.prefix=t,void 0===t.codePointAt(0))throw new Error("Invalid prefix character");this.prefixCodePoint=t.codePointAt(0),this.baseDecode=r}decode(e){if("string"===typeof e){if(e.codePointAt(0)!==this.prefixCodePoint)throw Error("Unable to decode multibase string ".concat(JSON.stringify(e),", ").concat(this.name," decoder only supports inputs prefixed with ").concat(this.prefix));return this.baseDecode(e.slice(this.prefix.length))}throw Error("Can only multibase decode strings")}or(e){return h$(this,e)}}class u${constructor(e){this.decoders=e}or(e){return h$(this,e)}decode(e){const t=e[0],r=this.decoders[t];if(r)return r.decode(e);throw RangeError("Unable to decode multibase string ".concat(JSON.stringify(e),", only inputs prefixed with ").concat(Object.keys(this.decoders)," are supported"))}}const h$=(e,t)=>new u$({...e.decoders||{[e.prefix]:e},...t.decoders||{[t.prefix]:t}});class d${constructor(e,t,r,n){this.name=e,this.prefix=t,this.baseEncode=r,this.baseDecode=n,this.encoder=new c$(e,t,r),this.decoder=new l$(e,t,n)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}}const p$=e=>{let{name:t,prefix:r,encode:n,decode:i}=e;return new d$(t,r,n,i)},f$=e=>{let{prefix:t,name:r,alphabet:n}=e;const{encode:i,decode:o}=a$(n,r);return p$({prefix:t,name:r,encode:i,decode:e=>(e=>{if(e instanceof Uint8Array&&"Uint8Array"===e.constructor.name)return e;if(e instanceof ArrayBuffer)return new Uint8Array(e);if(ArrayBuffer.isView(e))return new Uint8Array(e.buffer,e.byteOffset,e.byteLength);throw new Error("Unknown type, must be binary type")})(o(e))})},y$=e=>{let{name:t,prefix:r,bitsPerChar:n,alphabet:i}=e;return p$({prefix:r,name:t,encode:e=>((e,t,r)=>{const n="="===t[t.length-1],i=(1<<r)-1;let o="",s=0,a=0;for(let c=0;c<e.length;++c)for(a=a<<8|e[c],s+=8;s>r;)s-=r,o+=t[i&a>>s];if(s&&(o+=t[i&a<<r-s]),n)for(;o.length*r&7;)o+="=";return o})(e,i,n),decode:e=>((e,t,r,n)=>{const i={};for(let u=0;u<t.length;++u)i[t[u]]=u;let o=e.length;for(;"="===e[o-1];)--o;const s=new Uint8Array(o*r/8|0);let a=0,c=0,l=0;for(let u=0;u<o;++u){const t=i[e[u]];if(void 0===t)throw new SyntaxError("Non-".concat(n," character"));c=c<<r|t,a+=r,a>=8&&(a-=8,s[l++]=255&c>>a)}if(a>=r||255&c<<8-a)throw new SyntaxError("Unexpected end of data");return s})(e,i,n,t)})},g$=f$({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),m$=(f$({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"}),y$({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),y$({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),y$({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6})),b$=(y$({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6}),e=>e.toString().split("/").slice(1)),w$=e=>({match:t=>!(t.length<1)&&(!!e(t[0])&&t.slice(1)),pattern:"fn"}),v$=e=>({match:t=>w$((t=>t===e)).match(t),pattern:e}),_$=()=>({match:e=>w$((e=>"string"===typeof e)).match(e),pattern:"{string}"}),E$=()=>({match:e=>w$((e=>!isNaN(parseInt(e)))).match(e),pattern:"{number}"}),S$=()=>({match:e=>{if(e.length<2)return!1;if("p2p"!==e[0]&&"ipfs"!==e[0])return!1;if(!e[1].startsWith("Q")&&!e[1].startsWith("1"))return!1;try{g$.decode("z".concat(e[1]))}catch(t){return!1}return e.slice(2)},pattern:"/p2p/{peerid}"}),A$=()=>({match:e=>{if(e.length<2)return!1;if("certhash"!==e[0])return!1;try{m$.decode(e[1])}catch{return!1}return e.slice(2)},pattern:"/certhash/{certhash}"}),k$=e=>({match:t=>{const r=e.match(t);return!1===r?t:r},pattern:"optional(".concat(e.pattern,")")}),I$=function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return{match:e=>{let r;for(const n of t){const t=n.match(e);!1!==t&&((null==r||t.length<r.length)&&(r=t))}return null!=r&&r},pattern:"or(".concat(t.map((e=>e.pattern)).join(", "),")")}},R$=function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return{match:e=>{for(const r of t){const t=r.match(e);if(!1===t)return!1;e=t}return e},pattern:"and(".concat(t.map((e=>e.pattern)).join(", "),")")}};function P$(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];function n(e){let r=b$(e);for(const n of t){const e=n.match(r);if(!1===e)return!1;r=e}return r}return{matches:function(e){return!1!==n(e)},exactMatch:function(e){const t=n(e);return!1!==t&&0===t.length}}}const C$=R$(v$("dns4"),_$()),T$=R$(v$("dns6"),_$()),x$=R$(v$("dnsaddr"),_$()),D$=R$(v$("dns"),_$()),N$=(P$(C$),P$(T$),P$(x$),P$(I$(D$,x$,C$,T$)),R$(v$("ip4"),w$(fs))),L$=R$(v$("ip6"),w$(ys)),B$=I$(N$,L$),M$=I$(B$,D$,C$,T$,x$),O$=(P$(N$),P$(L$),P$(B$),R$(M$,v$("tcp"),E$())),U$=R$(M$,v$("udp"),E$()),K$=I$(O$,U$),q$=(P$(O$),P$(U$),R$(U$,v$("quic"))),F$=R$(U$,v$("quic-v1")),V$=I$(q$,F$),z$=(P$(q$),P$(F$),I$(M$,O$,U$,q$,F$)),j$=I$(R$(z$,v$("ws"),k$(S$()))),H$=(P$(j$),I$(R$(z$,v$("wss"),k$(S$())),R$(z$,v$("tls"),v$("ws"),k$(S$())))),G$=(P$(H$),R$(K$,v$("webrtc-direct"),A$(),k$(A$()),k$(S$()))),W$=(P$(G$),R$(F$,v$("webtransport"),A$(),A$(),k$(S$()))),Y$=(P$(W$),I$(j$,H$,R$(O$,k$(S$())),R$(V$,k$(S$())),R$(M$,k$(S$())),G$,W$,S$())),Q$=(P$(Y$),R$(Y$,v$("p2p-circuit"),S$())),X$=P$(Q$);P$(I$(R$(Q$,v$("webrtc")),R$(Y$,v$("webrtc"),k$(S$())),v$("webrtc")));function J$(e){try{const{address:t}=e.nodeAddress();return Boolean(i$(t))}catch{return!0}}function Z$(e,t){const r=function(e,t){const r=J$(e.multiaddr),n=J$(t.multiaddr);return r&&!n?1:!r&&n?-1:0}(e,t);if(0!==r)return r;const n=function(e,t){const r=X$.exactMatch(e.multiaddr),n=X$.exactMatch(t.multiaddr);return r&&!n?1:!r&&n?-1:0}(e,t);if(0!==n)return n;const i=function(e,t){return e.isCertified&&!t.isCertified?-1:!e.isCertified&&t.isCertified?1:0}(e,t);return i}var $$=__webpack_require__(449);const e0=globalThis.fetch,t0=globalThis.Headers;globalThis.Request,globalThis.Response;function r0(e,t,r){return"".concat(e,"?name=").concat(t,"&type=").concat(r)}async function n0(e,t){const r=await e0(e,{headers:new t0({accept:"application/dns-json"}),signal:t});return await r.json()}function i0(e,t){return"".concat(t,"_").concat(e)}const o0=Object.assign(ia("dns-over-http-resolver"),{error:ia("dns-over-http-resolver:error")});const s0=class{constructor(){var e,t,r;let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this._cache=new $$({max:null!==(e=null===n||void 0===n?void 0:n.maxCache)&&void 0!==e?e:100}),this._TXTcache=new $$({max:null!==(t=null===n||void 0===n?void 0:n.maxCache)&&void 0!==t?t:100}),this._servers=["https://cloudflare-dns.com/dns-query","https://dns.google/resolve"],this._request=null!==(r=n.request)&&void 0!==r?r:n0,this._abortControllers=[]}cancel(){this._abortControllers.forEach((e=>e.abort()))}getServers(){return this._servers}_getShuffledServers(){const e=[...this._servers];for(let t=e.length-1;t>0;t--){const r=Math.floor(Math.random()*t),n=e[t];e[t]=e[r],e[r]=n}return e}setServers(e){this._servers=e}async resolve(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"A";switch(t){case"A":return await this.resolve4(e);case"AAAA":return await this.resolve6(e);case"TXT":return await this.resolveTxt(e);default:throw new Error("".concat(t," is not supported"))}}async resolve4(e){const t="A",r=this._cache.get(i0(e,t));if(null!=r)return r;let n=!1;for(const o of this._getShuffledServers()){const r=new AbortController;this._abortControllers.push(r);try{const n=await this._request(r0(o,e,t),r.signal),i=n.Answer.map((e=>e.data)),s=Math.min(...n.Answer.map((e=>e.TTL)));return this._cache.set(i0(e,t),i,{ttl:s}),i}catch(i){r.signal.aborted&&(n=!0),o0.error("".concat(o," could not resolve ").concat(e," record ").concat(t))}finally{this._abortControllers=this._abortControllers.filter((e=>e!==r))}}if(n)throw Object.assign(new Error("queryA ECANCELLED"),{code:"ECANCELLED"});throw new Error("Could not resolve ".concat(e," record ").concat(t))}async resolve6(e){const t="AAAA",r=this._cache.get(i0(e,t));if(null!=r)return r;let n=!1;for(const o of this._getShuffledServers()){const r=new AbortController;this._abortControllers.push(r);try{const n=await this._request(r0(o,e,t),r.signal),i=n.Answer.map((e=>e.data)),s=Math.min(...n.Answer.map((e=>e.TTL)));return this._cache.set(i0(e,t),i,{ttl:s}),i}catch(i){r.signal.aborted&&(n=!0),o0.error("".concat(o," could not resolve ").concat(e," record ").concat(t))}finally{this._abortControllers=this._abortControllers.filter((e=>e!==r))}}if(n)throw Object.assign(new Error("queryAaaa ECANCELLED"),{code:"ECANCELLED"});throw new Error("Could not resolve ".concat(e," record ").concat(t))}async resolveTxt(e){const t="TXT",r=this._TXTcache.get(i0(e,t));if(null!=r)return r;let n=!1;for(const o of this._getShuffledServers()){const r=new AbortController;this._abortControllers.push(r);try{const n=await this._request(r0(o,e,t),r.signal),i=n.Answer.map((e=>[e.data.replace(/['"]+/g,"")])),s=Math.min(...n.Answer.map((e=>e.TTL)));return this._TXTcache.set(i0(e,t),i,{ttl:s}),i}catch(i){r.signal.aborted&&(n=!0),o0.error("".concat(o," could not resolve ").concat(e," record ").concat(t))}finally{this._abortControllers=this._abortControllers.filter((e=>e!==r))}}if(n)throw Object.assign(new Error("queryTxt ECANCELLED"),{code:"ECANCELLED"});throw new Error("Could not resolve ".concat(e," record ").concat(t))}clearCache(){this._cache.clear(),this._TXTcache.clear()}},a0=s0,{code:c0}=As("dnsaddr");async function l0(e){var t;let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n=new a0;null!=r.signal&&r.signal.addEventListener("abort",(()=>{n.cancel()}));const i=e.getPeerId(),[,o]=null!==(t=e.stringTuples().find((e=>{let[t]=e;return t===c0})))&&void 0!==t?t:[];if(null==o)throw new Error("No hostname found in multiaddr");let s=(await n.resolveTxt("_dnsaddr.".concat(o))).flat().map((e=>e.split("=")[1])).filter(Boolean);return null!=i&&(s=s.filter((e=>e.includes(i)))),s}var u0,h0;!function(e){e.NOT_STARTED_YET="The libp2p node is not started yet",e.DHT_DISABLED="DHT is not available",e.PUBSUB_DISABLED="PubSub is not available",e.CONN_ENCRYPTION_REQUIRED="At least one connection encryption module is required",e.ERR_TRANSPORTS_REQUIRED="At least one transport module is required",e.ERR_PROTECTOR_REQUIRED="Private network is enforced, but no protector was provided",e.NOT_FOUND="Not found"}(u0||(u0={})),function(e){e.DHT_DISABLED="ERR_DHT_DISABLED",e.ERR_PUBSUB_DISABLED="ERR_PUBSUB_DISABLED",e.PUBSUB_NOT_STARTED="ERR_PUBSUB_NOT_STARTED",e.DHT_NOT_STARTED="ERR_DHT_NOT_STARTED",e.CONN_ENCRYPTION_REQUIRED="ERR_CONN_ENCRYPTION_REQUIRED",e.ERR_TRANSPORTS_REQUIRED="ERR_TRANSPORTS_REQUIRED",e.ERR_PROTECTOR_REQUIRED="ERR_PROTECTOR_REQUIRED",e.ERR_PEER_DIAL_INTERCEPTED="ERR_PEER_DIAL_INTERCEPTED",e.ERR_CONNECTION_INTERCEPTED="ERR_CONNECTION_INTERCEPTED",e.ERR_INVALID_PROTOCOLS_FOR_STREAM="ERR_INVALID_PROTOCOLS_FOR_STREAM",e.ERR_CONNECTION_ENDED="ERR_CONNECTION_ENDED",e.ERR_CONNECTION_FAILED="ERR_CONNECTION_FAILED",e.ERR_NODE_NOT_STARTED="ERR_NODE_NOT_STARTED",e.ERR_ALREADY_ABORTED="ERR_ALREADY_ABORTED",e.ERR_TOO_MANY_ADDRESSES="ERR_TOO_MANY_ADDRESSES",e.ERR_NO_VALID_ADDRESSES="ERR_NO_VALID_ADDRESSES",e.ERR_RELAYED_DIAL="ERR_RELAYED_DIAL",e.ERR_DIALED_SELF="ERR_DIALED_SELF",e.ERR_DISCOVERED_SELF="ERR_DISCOVERED_SELF",e.ERR_DUPLICATE_TRANSPORT="ERR_DUPLICATE_TRANSPORT",e.ERR_ENCRYPTION_FAILED="ERR_ENCRYPTION_FAILED",e.ERR_HOP_REQUEST_FAILED="ERR_HOP_REQUEST_FAILED",e.ERR_INVALID_KEY="ERR_INVALID_KEY",e.ERR_INVALID_MESSAGE="ERR_INVALID_MESSAGE",e.ERR_INVALID_PARAMETERS="ERR_INVALID_PARAMETERS",e.ERR_INVALID_PEER="ERR_INVALID_PEER",e.ERR_MUXER_UNAVAILABLE="ERR_MUXER_UNAVAILABLE",e.ERR_NOT_FOUND="ERR_NOT_FOUND",e.ERR_TIMEOUT="ERR_TIMEOUT",e.ERR_TRANSPORT_UNAVAILABLE="ERR_TRANSPORT_UNAVAILABLE",e.ERR_TRANSPORT_DIAL_FAILED="ERR_TRANSPORT_DIAL_FAILED",e.ERR_UNSUPPORTED_PROTOCOL="ERR_UNSUPPORTED_PROTOCOL",e.ERR_PROTOCOL_HANDLER_ALREADY_REGISTERED="ERR_PROTOCOL_HANDLER_ALREADY_REGISTERED",e.ERR_INVALID_MULTIADDR="ERR_INVALID_MULTIADDR",e.ERR_SIGNATURE_NOT_VALID="ERR_SIGNATURE_NOT_VALID",e.ERR_FIND_SELF="ERR_FIND_SELF",e.ERR_NO_ROUTERS_AVAILABLE="ERR_NO_ROUTERS_AVAILABLE",e.ERR_CONNECTION_NOT_MULTIPLEXED="ERR_CONNECTION_NOT_MULTIPLEXED",e.ERR_NO_DIAL_TOKENS="ERR_NO_DIAL_TOKENS",e.ERR_KEYCHAIN_REQUIRED="ERR_KEYCHAIN_REQUIRED",e.ERR_INVALID_CMS="ERR_INVALID_CMS",e.ERR_MISSING_KEYS="ERR_MISSING_KEYS",e.ERR_NO_KEY="ERR_NO_KEY",e.ERR_INVALID_KEY_NAME="ERR_INVALID_KEY_NAME",e.ERR_INVALID_KEY_TYPE="ERR_INVALID_KEY_TYPE",e.ERR_KEY_ALREADY_EXISTS="ERR_KEY_ALREADY_EXISTS",e.ERR_INVALID_KEY_SIZE="ERR_INVALID_KEY_SIZE",e.ERR_KEY_NOT_FOUND="ERR_KEY_NOT_FOUND",e.ERR_OLD_KEY_NAME_INVALID="ERR_OLD_KEY_NAME_INVALID",e.ERR_NEW_KEY_NAME_INVALID="ERR_NEW_KEY_NAME_INVALID",e.ERR_PASSWORD_REQUIRED="ERR_PASSWORD_REQUIRED",e.ERR_PEM_REQUIRED="ERR_PEM_REQUIRED",e.ERR_CANNOT_READ_KEY="ERR_CANNOT_READ_KEY",e.ERR_MISSING_PRIVATE_KEY="ERR_MISSING_PRIVATE_KEY",e.ERR_MISSING_PUBLIC_KEY="ERR_MISSING_PUBLIC_KEY",e.ERR_INVALID_OLD_PASS_TYPE="ERR_INVALID_OLD_PASS_TYPE",e.ERR_INVALID_NEW_PASS_TYPE="ERR_INVALID_NEW_PASS_TYPE",e.ERR_INVALID_PASS_LENGTH="ERR_INVALID_PASS_LENGTH",e.ERR_NOT_IMPLEMENTED="ERR_NOT_IMPLEMENTED",e.ERR_WRONG_PING_ACK="ERR_WRONG_PING_ACK",e.ERR_INVALID_RECORD="ERR_INVALID_RECORD",e.ERR_ALREADY_SUCCEEDED="ERR_ALREADY_SUCCEEDED",e.ERR_NO_HANDLER_FOR_PROTOCOL="ERR_NO_HANDLER_FOR_PROTOCOL",e.ERR_TOO_MANY_OUTBOUND_PROTOCOL_STREAMS="ERR_TOO_MANY_OUTBOUND_PROTOCOL_STREAMS",e.ERR_TOO_MANY_INBOUND_PROTOCOL_STREAMS="ERR_TOO_MANY_INBOUND_PROTOCOL_STREAMS",e.ERR_CONNECTION_DENIED="ERR_CONNECTION_DENIED",e.ERR_TRANSFER_LIMIT_EXCEEDED="ERR_TRANSFER_LIMIT_EXCEEDED"}(h0||(h0={}));const d0={addresses:{listen:[],announce:[],noAnnounce:[],announceFilter:e=>e},connectionManager:{resolvers:{dnsaddr:l0},addressSorter:Z$},transportManager:{faultTolerance:xm.FATAL_ALL}};var p0=__webpack_require__(6110);const f0=cq("libp2p:get-peer");function y0(e){if(Or(e))return{peerId:e,multiaddrs:[]};let t;if(Array.isArray(e)||(e=[e]),e.length>0){const r=e[0].getPeerId();t=null==r?void 0:ZV(r),e.forEach((e=>{if(!Hs(e))throw f0.error("multiaddr %s was invalid",e),new rp("Invalid Multiaddr",h0.ERR_INVALID_MULTIADDR);const r=e.getPeerId();if(null==r){if(null!=t)throw new rp("Multiaddrs must all have the same peer id or have no peer id",h0.ERR_INVALID_PARAMETERS)}else{const e=ZV(r);if(null==t||!t.equals(e))throw new rp("Multiaddrs must all have the same peer id or have no peer id",h0.ERR_INVALID_PARAMETERS)}}))}return{peerId:t,multiaddrs:e}}var g0=new WeakMap;class m0{constructor(){Kr(this,g0,{writable:!0,value:[]})}enqueue(e,t){var r;const n=null===t||void 0===t?void 0:t.peerId,i=null!==(r=null===t||void 0===t?void 0:t.priority)&&void 0!==r?r:0;if(null==n)throw new rp("missing peer id",h0.ERR_INVALID_PARAMETERS);const o={priority:i,peerId:n,run:e};if(this.size>0&&Fr(this,g0)[this.size-1].priority>=i)return void Fr(this,g0).push(o);const s=function(e,t,r){let n=0,i=e.length;for(;i>0;){const o=Math.trunc(i/2);let s=n+o;r(e[s],t)<=0?(n=++s,i-=o+1):i=o}return n}(Fr(this,g0),o,((e,t)=>t.priority-e.priority));Fr(this,g0).splice(s,0,o)}dequeue(){const e=Fr(this,g0).shift();return null===e||void 0===e?void 0:e.run}filter(e){if(null!=e.peerId){const t=e.peerId;return Fr(this,g0).filter((e=>t.equals(e.peerId))).map((e=>e.run))}return Fr(this,g0).filter((t=>t.priority===e.priority)).map((e=>e.run))}get size(){return Fr(this,g0).length}}class b0 extends PJ{constructor(){super({...arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},queueClass:m0})}hasJob(e){return this.sizeBy({peerId:e})>0}}const w0="last-dial-failure",v0=cq("libp2p:connection-manager:auto-dial"),_0={minConnections:5,maxQueueLength:100,autoDialConcurrency:25,autoDialPriority:0,autoDialInterval:5e3,autoDialPeerRetryThreshold:42e4,autoDialDiscoveredPeersDebounce:10};class E0{constructor(e,t){var r,n,i,o,s,a,c;let l;Br(this,"connectionManager",void 0),Br(this,"peerStore",void 0),Br(this,"queue",void 0),Br(this,"minConnections",void 0),Br(this,"autoDialPriority",void 0),Br(this,"autoDialIntervalMs",void 0),Br(this,"autoDialMaxQueueLength",void 0),Br(this,"autoDialPeerRetryThresholdMs",void 0),Br(this,"autoDialDiscoveredPeersDebounce",void 0),Br(this,"autoDialInterval",void 0),Br(this,"started",void 0),Br(this,"running",void 0),this.connectionManager=e.connectionManager,this.peerStore=e.peerStore,this.minConnections=null!==(r=t.minConnections)&&void 0!==r?r:_0.minConnections,this.autoDialPriority=null!==(n=t.autoDialPriority)&&void 0!==n?n:_0.autoDialPriority,this.autoDialIntervalMs=null!==(i=t.autoDialInterval)&&void 0!==i?i:_0.autoDialInterval,this.autoDialMaxQueueLength=null!==(o=t.maxQueueLength)&&void 0!==o?o:_0.maxQueueLength,this.autoDialPeerRetryThresholdMs=null!==(s=t.autoDialPeerRetryThreshold)&&void 0!==s?s:_0.autoDialPeerRetryThreshold,this.autoDialDiscoveredPeersDebounce=null!==(a=t.autoDialDiscoveredPeersDebounce)&&void 0!==a?a:_0.autoDialDiscoveredPeersDebounce,this.started=!1,this.running=!1,this.queue=new b0({concurrency:null!==(c=t.autoDialConcurrency)&&void 0!==c?c:_0.autoDialConcurrency}),this.queue.addListener("error",(e=>{v0.error("error during auto-dial",e)})),e.events.addEventListener("connection:close",(()=>{this.autoDial().catch((e=>{v0.error(e)}))})),e.events.addEventListener("peer:discovery",(()=>{clearTimeout(l),l=setTimeout((()=>{this.autoDial().catch((e=>{v0.error(e)}))}),this.autoDialDiscoveredPeersDebounce)}))}isStarted(){return this.started}start(){this.autoDialInterval=setTimeout((()=>{this.autoDial().catch((e=>{v0.error("error while autodialing",e)}))}),this.autoDialIntervalMs),this.started=!0}afterStart(){this.autoDial().catch((e=>{v0.error("error while autodialing",e)}))}stop(){this.queue.clear(),clearTimeout(this.autoDialInterval),this.started=!1,this.running=!1}async autoDial(){if(!this.started)return;const e=this.connectionManager.getConnectionsMap(),t=e.size;if(t>=this.minConnections)return void(this.minConnections>0&&v0.trace("have enough connections %d/%d",t,this.minConnections));if(this.queue.size>this.autoDialMaxQueueLength)return void v0("not enough connections %d/%d but auto dial queue is full",t,this.minConnections);if(this.running)return void v0("not enough connections %d/%d - but skipping autodial as it is already running",t,this.minConnections);this.running=!0,v0("not enough connections %d/%d - will dial peers to increase the number of connections",t,this.minConnections);const r=new aV(this.connectionManager.getDialQueue().map((e=>e.peerId)).filter(Boolean)),n=await this.peerStore.all({filters:[t=>0===t.addresses.length?(v0.trace("not autodialing %p because they have no addresses"),!1):e.has(t.id)?(v0.trace("not autodialing %p because they are already connected"),!1):r.has(t.id)?(v0.trace("not autodialing %p because they are already being dialed"),!1):!this.queue.hasJob(t.id)||(v0.trace("not autodialing %p because they are already being autodialed"),!1)]}),i=n.sort((()=>Math.random()>.5?1:-1)),o=new sV;for(const a of i)o.has(a.id)||o.set(a.id,[...a.tags.values()].reduce(((e,t)=>e+t.value),0));const s=i.sort(((e,t)=>{var r,n;const i=null!==(r=o.get(e.id))&&void 0!==r?r:0,s=null!==(n=o.get(t.id))&&void 0!==n?n:0;return i>s?-1:i<s?1:0})).filter((e=>{const t=e.metadata.get(w0);if(null==t)return!0;const r=parseInt(Ro(t));return!!isNaN(r)||Date.now()-r>this.autoDialPeerRetryThresholdMs}));v0("selected %d/%d peers to dial",s.length,n.length);for(const a of s)this.queue.add((async()=>{const e=this.connectionManager.getConnectionsMap().size;if(e>=this.minConnections)return v0("got enough connections now %d/%d",e,this.minConnections),void this.queue.clear();v0("connecting to a peerStore stored peer %p",a.id),await this.connectionManager.openConnection(a.id,{priority:this.autoDialPriority})}),{peerId:a.id}).catch((e=>{v0.error("could not connect to peerStore stored peer",e)}));this.running=!1,this.started&&(this.autoDialInterval=setTimeout((()=>{this.autoDial().catch((e=>{v0.error("error while autodialing",e)}))}),this.autoDialIntervalMs))}}const S0=cq("libp2p:connection-manager:connection-pruner"),A0={maxConnections:100,allow:[]};class k0{constructor(e){var t,r;let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};Br(this,"maxConnections",void 0),Br(this,"connectionManager",void 0),Br(this,"peerStore",void 0),Br(this,"allow",void 0),Br(this,"events",void 0),this.maxConnections=null!==(t=n.maxConnections)&&void 0!==t?t:A0.maxConnections,this.allow=null!==(r=n.allow)&&void 0!==r?r:A0.allow,this.connectionManager=e.connectionManager,this.peerStore=e.peerStore,this.events=e.events,e.events.addEventListener("connection:open",(()=>{this.maybePruneConnections().catch((e=>{S0.error(e)}))}))}async maybePruneConnections(){const e=this.connectionManager.getConnections(),t=e.length,r=Math.max(t-this.maxConnections,0);if(S0("checking max connections limit %d/%d",t,this.maxConnections),t<=this.maxConnections)return;S0("max connections limit exceeded %d/%d, pruning %d connection(s)",t,this.maxConnections,r);const n=new sV;for(const a of e){const e=a.remotePeer;if(!n.has(e)){n.set(e,0);try{const t=await this.peerStore.get(e);n.set(e,[...t.tags.values()].reduce(((e,t)=>e+t.value),0))}catch(s){"ERR_NOT_FOUND"!==s.code&&S0.error("error loading peer tags",s)}}}const i=e.sort(((e,t)=>{var r,i;const o=null!==(r=n.get(e.remotePeer))&&void 0!==r?r:0,s=null!==(i=n.get(t.remotePeer))&&void 0!==i?i:0;if(o>s)return 1;if(o<s)return-1;const a=e.timeline.open,c=t.timeline.open;return a<c?1:a>c?-1:0})),o=[];for(const a of i){S0("too many connections open - closing a connection to %p",a.remotePeer);if(this.allow.some((e=>a.remoteAddr.toString().startsWith(e.toString())))||o.push(a),o.length===r)break}await Promise.all(o.map((async e=>{try{await e.close()}catch(s){S0.error(s)}}))),this.events.safeDispatchEvent("connection:prune",{detail:o})}}function I0(e){const t=new globalThis.AbortController;function r(){t.abort();for(const t of e)null!=(null===t||void 0===t?void 0:t.removeEventListener)&&t.removeEventListener("abort",r)}for(const i of e){if(!0===(null===i||void 0===i?void 0:i.aborted)){r();break}null!=(null===i||void 0===i?void 0:i.addEventListener)&&i.addEventListener("abort",r)}const n=t.signal;return n.clear=function(){for(const t of e)null!=(null===t||void 0===t?void 0:t.removeEventListener)&&t.removeEventListener("abort",r)},n}const R0=cq("libp2p:connection-manager:utils");async function P0(e,t){if(!e.protoNames().includes("dnsaddr"))return[e];const r=await async function(e,t){try{e=ra(e.toString());return await e.resolve(t)}catch(r){return R0.error("multiaddr ".concat(e.toString()," could not be resolved"),r),[]}}(e,t),n=(await Promise.all(r.map((async e=>P0(e,t))))).flat().reduce(((e,t)=>(null==e.find((e=>e.equals(t)))&&e.push(t),e)),[]);return R0("resolved %s to",e,n.map((e=>e.toString()))),n}const C0=cq("libp2p:connection-manager:dial-queue"),T0={addressSorter:Z$,maxParallelDials:50,maxPeerAddrsToDial:25,maxParallelDialsPerPeer:1,dialTimeout:3e4,resolvers:{dnsaddr:l0}};class x0{constructor(e){var t,r,n,i,o,s,a;let c=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};Br(this,"pendingDials",void 0),Br(this,"queue",void 0),Br(this,"peerId",void 0),Br(this,"peerStore",void 0),Br(this,"connectionGater",void 0),Br(this,"transportManager",void 0),Br(this,"addressSorter",void 0),Br(this,"maxPeerAddrsToDial",void 0),Br(this,"maxParallelDialsPerPeer",void 0),Br(this,"dialTimeout",void 0),Br(this,"inProgressDialCount",void 0),Br(this,"pendingDialCount",void 0),Br(this,"shutDownController",void 0),this.addressSorter=null!==(t=c.addressSorter)&&void 0!==t?t:T0.addressSorter,this.maxPeerAddrsToDial=null!==(r=c.maxPeerAddrsToDial)&&void 0!==r?r:T0.maxPeerAddrsToDial,this.maxParallelDialsPerPeer=null!==(n=c.maxParallelDialsPerPeer)&&void 0!==n?n:T0.maxParallelDialsPerPeer,this.dialTimeout=null!==(i=c.dialTimeout)&&void 0!==i?i:T0.dialTimeout,this.peerId=e.peerId,this.peerStore=e.peerStore,this.connectionGater=e.connectionGater,this.transportManager=e.transportManager,this.shutDownController=new AbortController;try{null===zL.setMaxListeners||void 0===zL.setMaxListeners||(0,zL.setMaxListeners)(1/0,this.shutDownController.signal)}catch{}this.pendingDialCount=null===(o=e.metrics)||void 0===o?void 0:o.registerMetric("libp2p_dialler_pending_dials"),this.inProgressDialCount=null===(s=e.metrics)||void 0===s?void 0:s.registerMetric("libp2p_dialler_in_progress_dials"),this.pendingDials=[];for(const[u,h]of Object.entries(null!==(l=c.resolvers)&&void 0!==l?l:{})){var l;zs.set(u,h)}this.queue=new PJ({concurrency:null!==(a=c.maxParallelDials)&&void 0!==a?a:T0.maxParallelDials}),this.queue.on("add",(()=>{var e,t;null===(e=this.pendingDialCount)||void 0===e||e.update(this.queue.size),null===(t=this.inProgressDialCount)||void 0===t||t.update(this.queue.pending)})),this.queue.on("active",(()=>{var e,t;null===(e=this.pendingDialCount)||void 0===e||e.update(this.queue.size),null===(t=this.inProgressDialCount)||void 0===t||t.update(this.queue.pending)})),this.queue.on("completed",(()=>{var e,t;null===(e=this.pendingDialCount)||void 0===e||e.update(this.queue.size),null===(t=this.inProgressDialCount)||void 0===t||t.update(this.queue.pending)})),this.queue.on("error",(e=>{var t,r;C0.error("error in dial queue",e),null===(t=this.pendingDialCount)||void 0===t||t.update(this.queue.size),null===(r=this.inProgressDialCount)||void 0===r||r.update(this.queue.pending)})),this.queue.on("empty",(()=>{var e,t;null===(e=this.pendingDialCount)||void 0===e||e.update(this.queue.size),null===(t=this.inProgressDialCount)||void 0===t||t.update(this.queue.pending)})),this.queue.on("idle",(()=>{var e,t;null===(e=this.pendingDialCount)||void 0===e||e.update(this.queue.size),null===(t=this.inProgressDialCount)||void 0===t||t.update(this.queue.pending)}))}stop(){this.shutDownController.abort()}async dial(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const{peerId:r,multiaddrs:n}=y0(e),i=n.map((e=>({multiaddr:e,isCertified:!1}))),o=this.createDialAbortControllers(t.signal);let s;try{s=await this.calculateMultiaddrs(r,i,{...t,signal:o})}catch(l){throw o.clear(),l}const a=this.pendingDials.find((e=>!(null==e.peerId||null==r||!e.peerId.equals(r))||s.map((e=>{let{multiaddr:t}=e;return t.toString()})).join()===e.multiaddrs.map((e=>e.toString())).join()));if(null!=a)return C0("joining existing dial target for %p",r),o.clear(),a.promise;C0("creating dial target for",s.map((e=>{let{multiaddr:t}=e;return t.toString()})));const c={id:"".concat(parseInt(String(1e9*Math.random()),10).toString()).concat(Date.now()),status:"queued",peerId:r,multiaddrs:s.map((e=>{let{multiaddr:t}=e;return t}))};return c.promise=this.performDial(c,{...t,signal:o}).finally((()=>{this.pendingDials=this.pendingDials.filter((e=>e.id!==c.id)),o.clear()})).catch((async e=>{if(C0.error("dial failed to %s",c.multiaddrs.map((e=>e.toString())).join(", "),e),null!=r)try{await this.peerStore.patch(r,{metadata:{[w0]:ps(Date.now().toString())}})}catch(e){C0.error("could not update last dial failure key for %p",r,e)}if(o.aborted){throw new rp(e.message,h0.ERR_TIMEOUT)}throw e})),this.pendingDials.push(c),c.promise}createDialAbortControllers(e){const t=I0([AbortSignal.timeout(this.dialTimeout),this.shutDownController.signal,e]);try{null===zL.setMaxListeners||void 0===zL.setMaxListeners||(0,zL.setMaxListeners)(1/0,t)}catch{}return t}async calculateMultiaddrs(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(null!=e){var n,i;if(this.peerId.equals(e))throw new rp("Tried to dial self",h0.ERR_DIALED_SELF);if(!0===await(null===(n=(i=this.connectionGater).denyDialPeer)||void 0===n?void 0:n.call(i,e)))throw new rp("The dial request is blocked by gater.allowDialPeer",h0.ERR_PEER_DIAL_INTERCEPTED);if(0===t.length){C0("loading multiaddrs for %p",e);try{const r=await this.peerStore.get(e);t.push(...r.addresses),C0("loaded multiaddrs for %p",e,t.map((e=>{let{multiaddr:t}=e;return t.toString()})))}catch(h){if(h.code!==h0.ERR_NOT_FOUND)throw h}}}const o=(await Promise.all(t.map((async e=>{const t=await P0(e.multiaddr,r);return 1===t.length&&t[0].equals(e.multiaddr)?e:t.map((e=>({multiaddr:e,isCertified:!1})))})))).flat(),s=o.filter((t=>{if(null==this.transportManager.transportForMultiaddr(t.multiaddr))return!1;const r=t.multiaddr.getPeerId();return null==e||null==r||e.equals(r)})),a=new Map;for(const d of s){const e=d.multiaddr.toString(),t=a.get(e);null==t?a.set(e,d):t.isCertified=t.isCertified||d.isCertified||!1}let c=[...a.values()];if((0===c.length||c.length>this.maxPeerAddrsToDial)&&(C0("addresses for %p before filtering",null!==e&&void 0!==e?e:"unknown peer",o.map((e=>{let{multiaddr:t}=e;return t.toString()}))),C0("addresses for %p after filtering",null!==e&&void 0!==e?e:"unknown peer",c.map((e=>{let{multiaddr:t}=e;return t.toString()})))),0===c.length)throw new rp("The dial request has no valid addresses",h0.ERR_NO_VALID_ADDRESSES);if(c.length>this.maxPeerAddrsToDial)throw new rp("dial with more addresses than allowed",h0.ERR_TOO_MANY_ADDRESSES);if(null!=e){const t="/p2p/".concat(e.toString());c=c.map((r=>{const n=r.multiaddr.getPeerId(),i=r.multiaddr.protos().pop();return!0===(null===i||void 0===i?void 0:i.path)?r:n!==e.toString()?{multiaddr:r.multiaddr.encapsulate(t),isCertified:r.isCertified}:r}))}const l=[];for(const d of c)null!=this.connectionGater.denyDialMultiaddr&&await this.connectionGater.denyDialMultiaddr(d.multiaddr)||l.push(d);const u=l.sort(this.addressSorter);if(0===u.length)throw new rp("The connection gater denied all addresses in the dial request",h0.ERR_NO_VALID_ADDRESSES);return u}async performDial(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const r=e.multiaddrs.map((()=>new AbortController));try{const n=new PJ({concurrency:this.maxParallelDialsPerPeer});n.on("error",(e=>{C0.error("error dialling",e)}));const i=await Promise.any(e.multiaddrs.map((async(i,o)=>{const s=r[o];if(null==s)throw new rp("dialAction did not come with an AbortController",h0.ERR_INVALID_PARAMETERS);const a=function(){const e=[];for(var t=arguments.length,r=new Array(t),n=0;n<t;n++)r[n]=arguments[n];for(const o of r)if(null!=o){try{null===zL.setMaxListeners||void 0===zL.setMaxListeners||(0,zL.setMaxListeners)(1/0,o)}catch{}e.push(o)}const i=I0(e);try{null===zL.setMaxListeners||void 0===zL.setMaxListeners||(0,zL.setMaxListeners)(1/0,i)}catch{}return i}(s.signal,t.signal);a.addEventListener("abort",(()=>{C0("dial to %a aborted",i)}));const c=Qc();return await n.add((async()=>{if(a.aborted)return C0("dial to %a was aborted before reaching the head of the peer dial queue",i),void c.reject(new tp);await this.queue.add((async()=>{try{if(a.aborted)return C0("dial to %a was aborted before reaching the head of the dial queue",i),void c.reject(new tp);e.status="active";const n=await this.transportManager.dial(i,{...t,signal:a});if(s.signal.aborted)return C0("multiple dials succeeded, closing superfluous connection"),n.close().catch((e=>{C0.error("error closing superfluous connection",e)})),void c.reject(new tp);r[o]=void 0,r.forEach((e=>{void 0!==e&&e.abort()})),C0("dial to %a succeeded",i),c.resolve(n)}catch(n){C0.error("error during dial of %a",i,n),c.reject(n)}}),{...t,signal:a}).catch((e=>{c.reject(e)}))}),{signal:a}).catch((e=>{c.reject(e)})).finally((()=>{a.clear()})),c.promise})));if(null==i)throw new rp("successful dial led to empty object returned from peer dial queue",h0.ERR_TRANSPORT_DIAL_FAILED);return e.status="success",i}catch(n){if(e.status="error",1===e.multiaddrs.length&&"AggregateError"===n.name)throw n.errors[0];throw n}}}const D0=cq("libp2p:connection-manager"),N0=5,L0=100,B0=5,M0=10,O0=25,U0=0,K0=100;class q0{constructor(e){var t,r,n,i,o,s,a,c,l,u,h,d,p,f,y;let g=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};Br(this,"started",void 0),Br(this,"connections",void 0),Br(this,"allow",void 0),Br(this,"deny",void 0),Br(this,"maxIncomingPendingConnections",void 0),Br(this,"incomingPendingConnections",void 0),Br(this,"maxConnections",void 0),Br(this,"dialQueue",void 0),Br(this,"autoDial",void 0),Br(this,"connectionPruner",void 0),Br(this,"inboundConnectionRateLimiter",void 0),Br(this,"peerStore",void 0),Br(this,"metrics",void 0),Br(this,"events",void 0),this.maxConnections=null!==(t=g.maxConnections)&&void 0!==t?t:L0;const m=null!==(r=g.minConnections)&&void 0!==r?r:N0;if(this.maxConnections<m)throw new rp("Connection Manager maxConnections must be greater than minConnections",h0.ERR_INVALID_PARAMETERS);this.connections=new sV,this.started=!1,this.peerStore=e.peerStore,this.metrics=e.metrics,this.events=e.events,this.onConnect=this.onConnect.bind(this),this.onDisconnect=this.onDisconnect.bind(this),this.events.addEventListener("connection:open",this.onConnect),this.events.addEventListener("connection:close",this.onDisconnect),this.allow=(null!==(n=g.allow)&&void 0!==n?n:[]).map((e=>ra(e))),this.deny=(null!==(i=g.deny)&&void 0!==i?i:[]).map((e=>ra(e))),this.incomingPendingConnections=0,this.maxIncomingPendingConnections=null!==(o=g.maxIncomingPendingConnections)&&void 0!==o?o:M0,this.inboundConnectionRateLimiter=new p0.RateLimiterMemory({points:null!==(s=g.inboundConnectionThreshold)&&void 0!==s?s:B0,duration:1}),this.autoDial=new E0({connectionManager:this,peerStore:e.peerStore,events:e.events},{minConnections:m,autoDialConcurrency:null!==(a=g.autoDialConcurrency)&&void 0!==a?a:O0,autoDialPriority:null!==(c=g.autoDialPriority)&&void 0!==c?c:U0,maxQueueLength:null!==(l=g.autoDialMaxQueueLength)&&void 0!==l?l:K0}),this.connectionPruner=new k0({connectionManager:this,peerStore:e.peerStore,events:e.events},{maxConnections:this.maxConnections,allow:this.allow}),this.dialQueue=new x0({peerId:e.peerId,metrics:e.metrics,peerStore:e.peerStore,transportManager:e.transportManager,connectionGater:e.connectionGater},{addressSorter:null!==(u=g.addressSorter)&&void 0!==u?u:Z$,maxParallelDials:null!==(h=g.maxParallelDials)&&void 0!==h?h:50,maxPeerAddrsToDial:null!==(d=g.maxPeerAddrsToDial)&&void 0!==d?d:25,maxParallelDialsPerPeer:null!==(p=g.maxParallelDialsPerPeer)&&void 0!==p?p:1,dialTimeout:null!==(f=g.dialTimeout)&&void 0!==f?f:3e4,resolvers:null!==(y=g.resolvers)&&void 0!==y?y:{dnsaddr:l0}})}isStarted(){return this.started}async start(){var e,t,r;null===(e=this.metrics)||void 0===e||e.registerMetricGroup("libp2p_connection_manager_connections",{calculate:()=>{const e={inbound:0,outbound:0};for(const t of this.connections.values())for(const r of t)"inbound"===r.direction?e.inbound++:e.outbound++;return e}}),null===(t=this.metrics)||void 0===t||t.registerMetricGroup("libp2p_protocol_streams_total",{label:"protocol",calculate:()=>{const e={};for(const n of this.connections.values())for(const i of n)for(const n of i.streams){var t,r;const i="".concat(n.direction," ").concat(null!==(t=n.protocol)&&void 0!==t?t:"unnegotiated");e[i]=(null!==(r=e[i])&&void 0!==r?r:0)+1}return e}}),null===(r=this.metrics)||void 0===r||r.registerMetricGroup("libp2p_connection_manager_protocol_streams_per_connection_90th_percentile",{label:"protocol",calculate:()=>{const e={};for(const o of this.connections.values())for(const i of o){const o={};for(const e of i.streams){var t,r;const n="".concat(e.direction," ").concat(null!==(t=e.protocol)&&void 0!==t?t:"unnegotiated");o[n]=(null!==(r=o[n])&&void 0!==r?r:0)+1}for(const[t,r]of Object.entries(o)){var n;e[t]=null!==(n=e[t])&&void 0!==n?n:[],e[t].push(r)}}const i={};for(let[o,s]of Object.entries(e)){s=s.sort(((e,t)=>e-t));const e=Math.floor(.9*s.length);i[o]=s[e]}return i}}),this.autoDial.start(),this.started=!0,D0("started")}async afterStart(){Promise.resolve().then((async()=>{const e=await this.peerStore.all({filters:[e=>e.tags.has("keep-alive")]});await Promise.all(e.map((async e=>{await this.openConnection(e.id).catch((e=>{D0.error(e)}))})))})).catch((e=>{D0.error(e)})),this.autoDial.afterStart()}async stop(){this.dialQueue.stop(),this.autoDial.stop();const e=[];for(const t of this.connections.values())for(const r of t)e.push((async()=>{try{await r.close()}catch(e){D0.error(e)}})());D0("closing %d connections",e.length),await Promise.all(e),this.connections.clear(),D0("stopped")}onConnect(e){this._onConnect(e).catch((e=>{D0.error(e)}))}async _onConnect(e){const{detail:t}=e;if(!this.started)return void await t.close();const r=t.remotePeer,n=this.connections.get(r);let i=!1;null!=n?n.push(t):(i=!0,this.connections.set(r,[t])),null!=r.publicKey&&"RSA"===r.type&&await this.peerStore.patch(r,{publicKey:r.publicKey}),i&&this.events.safeDispatchEvent("peer:connect",{detail:t.remotePeer})}onDisconnect(e){const{detail:t}=e;if(!this.started)return;const r=t.remotePeer;let n=this.connections.get(r);null!=n&&n.length>1?(n=n.filter((e=>e.id!==t.id)),this.connections.set(r,n)):null!=n&&(this.connections.delete(r),this.events.safeDispatchEvent("peer:disconnect",{detail:t.remotePeer}))}getConnections(e){var t;if(null!=e)return null!==(t=this.connections.get(e))&&void 0!==t?t:[];let r=[];for(const n of this.connections.values())r=r.concat(n);return r}getConnectionsMap(){return this.connections}async openConnection(e){var t,r;let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!this.isStarted())throw new rp("Not started",h0.ERR_NODE_NOT_STARTED);null===(t=n.signal)||void 0===t||t.throwIfAborted();const{peerId:i}=y0(e);if(null!=i&&!0!==n.force){D0("dial %p",i);const e=this.getConnections(i);if(e.length>0)return D0("had an existing connection to %p",i),e[0]}const o=await this.dialQueue.dial(e,{...n,priority:null!==(r=n.priority)&&void 0!==r?r:50});let s=this.connections.get(o.remotePeer);null==s&&(s=[],this.connections.set(o.remotePeer,s));let a=!1;for(const c of s)c.id===o.id&&(a=!0);return a||s.push(o),o}async closeConnections(e){var t;let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n=null!==(t=this.connections.get(e))&&void 0!==t?t:[];await Promise.all(n.map((async e=>{try{await e.close(r)}catch(t){e.abort(t)}})))}async acceptIncomingConnection(e){if(this.deny.some((t=>e.remoteAddr.toString().startsWith(t.toString()))))return D0("connection from %a refused - connection remote address was in deny list",e.remoteAddr),!1;if(this.allow.some((t=>e.remoteAddr.toString().startsWith(t.toString()))))return this.incomingPendingConnections++,!0;if(this.incomingPendingConnections===this.maxIncomingPendingConnections)return D0("connection from %a refused - incomingPendingConnections exceeded by host",e.remoteAddr),!1;if(e.remoteAddr.isThinWaistAddress()){const t=e.remoteAddr.nodeAddress().address;try{await this.inboundConnectionRateLimiter.consume(t,1)}catch{return D0("connection from %a refused - inboundConnectionThreshold exceeded by host %s",e.remoteAddr,t),!1}}return this.getConnections().length<this.maxConnections?(this.incomingPendingConnections++,!0):(D0("connection from %a refused - maxConnections exceeded",e.remoteAddr),!1)}afterUpgradeInbound(){this.incomingPendingConnections--}getDialQueue(){return this.dialQueue.pendingDials}}const F0=function(e,t){if(null!=e[Symbol.asyncIterator])return async function*(){for await(const r of e)yield t(r)}();const r=PZ(e),{value:n,done:i}=r.next();if(!0===i)return function*(){}();const o=t(n);if("function"===typeof o.then)return async function*(){yield await o;for await(const e of r)yield t(e)}();const s=t;return function*(){yield o;for(const e of r)yield s(e)}()};async function*V0(e,t){yield*F0(e,(async e=>(await t.merge(e.id,{multiaddrs:e.multiaddrs}),e)))}function z0(e){const t=new Set;return CZ(e,(e=>!t.has(e.id.toString())&&(t.add(e.id.toString()),!0)))}function j0(e){try{let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;return async function*(){let r=0;for await(const t of e)r++,yield t;if(r<t)throw new rp("more peers required, seen: ".concat(r," min: ").concat(t),"NOT_FOUND")}()}catch(t){return Promise.reject(t)}}class H0{constructor(e,t){var r;Br(this,"routers",void 0),Br(this,"started",void 0),Br(this,"components",void 0),this.routers=null!==(r=t.routers)&&void 0!==r?r:[],this.started=!1,this.components=e}isStarted(){return this.started}async start(){this.started=!0}async stop(){this.started=!1}findProviders(e){try{var t=this;let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return async function*(){if(0===t.routers.length)throw new rp("No content routers available",h0.ERR_NO_ROUTERS_AVAILABLE);yield*rl(tl(...t.routers.map((t=>t.findProviders(e,r)))),(e=>V0(e,t.components.peerStore)),(e=>z0(e)),(e=>j0(e)))}()}catch(r){return Promise.reject(r)}}async provide(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(0===this.routers.length)throw new rp("No content routers available",h0.ERR_NO_ROUTERS_AVAILABLE);await Promise.all(this.routers.map((async r=>{await r.provide(e,t)})))}async put(e,t,r){if(!this.isStarted())throw new rp(u0.NOT_STARTED_YET,h0.DHT_NOT_STARTED);await Promise.all(this.routers.map((async n=>{await n.put(e,t,r)})))}async get(e,t){if(!this.isStarted())throw new rp(u0.NOT_STARTED_YET,h0.DHT_NOT_STARTED);return Promise.any(this.routers.map((async r=>r.get(e,t))))}}const G0=function(e){if(null!=e[Symbol.asyncIterator])return(async()=>{for await(const t of e)return t})();for(const t of e)return t},W0=cq("libp2p:peer-routing");class Y0{constructor(e,t){var r;Br(this,"components",void 0),Br(this,"routers",void 0),this.components=e,this.routers=null!==(r=t.routers)&&void 0!==r?r:[]}async findPeer(e,t){if(0===this.routers.length)throw new rp("No peer routers available",h0.ERR_NO_ROUTERS_AVAILABLE);if(e.toString()===this.components.peerId.toString())throw new rp("Should not try to find self",h0.ERR_FIND_SELF);const r=await rl(tl(...this.routers.map((r=>async function*(){try{yield await r.findPeer(e,t)}catch(n){W0.error(n)}}()))),(e=>CZ(e,Boolean)),(e=>V0(e,this.components.peerStore)),(async e=>G0(e)));if(null!=r)return r;throw new rp(u0.NOT_FOUND,h0.ERR_NOT_FOUND)}async*getClosestPeers(e,t){if(0===this.routers.length)throw new rp("No peer routers available",h0.ERR_NO_ROUTERS_AVAILABLE);yield*rl(tl(...this.routers.map((r=>r.getClosestPeers(e,t)))),(e=>V0(e,this.components.peerStore)),(e=>z0(e)),(e=>j0(e)))}}const Q0=cq("libp2p:registrar"),X0=32,J0=64;class Z0{constructor(e){Br(this,"topologies",void 0),Br(this,"handlers",void 0),Br(this,"components",void 0),this.topologies=new Map,this.handlers=new Map,this.components=e,this._onDisconnect=this._onDisconnect.bind(this),this._onPeerUpdate=this._onPeerUpdate.bind(this),this._onConnect=this._onConnect.bind(this),this.components.events.addEventListener("peer:disconnect",this._onDisconnect),this.components.events.addEventListener("peer:connect",this._onConnect),this.components.events.addEventListener("peer:update",this._onPeerUpdate)}getProtocols(){return Array.from(new Set([...this.handlers.keys()])).sort()}getHandler(e){const t=this.handlers.get(e);if(null==t)throw new rp("No handler registered for protocol ".concat(e),h0.ERR_NO_HANDLER_FOR_PROTOCOL);return t}getTopologies(e){const t=this.topologies.get(e);return null==t?[]:[...t.values()]}async handle(e,t,r){if(this.handlers.has(e))throw new rp("Handler already registered for protocol ".concat(e),h0.ERR_PROTOCOL_HANDLER_ALREADY_REGISTERED);const n=OK.bind({ignoreUndefined:!0})({maxInboundStreams:X0,maxOutboundStreams:J0},r);this.handlers.set(e,{handler:t,options:n}),await this.components.peerStore.merge(this.components.peerId,{protocols:[e]})}async unhandle(e){(Array.isArray(e)?e:[e]).forEach((e=>{this.handlers.delete(e)})),await this.components.peerStore.patch(this.components.peerId,{protocols:this.getProtocols()})}async register(e,t){if(null==t)throw new rp("invalid topology",h0.ERR_INVALID_PARAMETERS);const r="".concat((1e9*Math.random()).toString(36)).concat(Date.now());let n=this.topologies.get(e);return null==n&&(n=new Map,this.topologies.set(e,n)),n.set(r,t),r}unregister(e){for(const[t,r]of this.topologies.entries())r.has(e)&&(r.delete(e),0===r.size&&this.topologies.delete(t))}_onDisconnect(e){const t=e.detail;this.components.peerStore.get(t).then((e=>{for(const n of e.protocols){const e=this.topologies.get(n);if(null!=e)for(const n of e.values()){var r;null===(r=n.onDisconnect)||void 0===r||r.call(n,t)}}})).catch((e=>{e.code!==h0.ERR_NOT_FOUND&&Q0.error("could not inform topologies of disconnecting peer %p",t,e)}))}_onConnect(e){const t=e.detail;this.components.peerStore.get(t).then((e=>{const r=this.components.connectionManager.getConnections(e.id)[0];if(null!=r)for(const i of e.protocols){const e=this.topologies.get(i);if(null!=e)for(const i of e.values()){var n;null===(n=i.onConnect)||void 0===n||n.call(i,t,r)}}else Q0("peer %p connected but the connection manager did not have a connection",e)})).catch((e=>{e.code!==h0.ERR_NOT_FOUND&&Q0.error("could not inform topologies of connecting peer %p",t,e)}))}_onPeerUpdate(e){var t;const{peer:r,previous:n}=e.detail,i=(null!==(t=null===n||void 0===n?void 0:n.protocols)&&void 0!==t?t:[]).filter((e=>!r.protocols.includes(e))),o=r.protocols.filter((e=>{var t;return!(null!==(t=null===n||void 0===n?void 0:n.protocols)&&void 0!==t?t:[]).includes(e)}));for(const c of i){const e=this.topologies.get(c);if(null!=e)for(const t of e.values()){var s;null===(s=t.onDisconnect)||void 0===s||s.call(t,r.id)}}for(const c of o){const e=this.topologies.get(c);if(null!=e)for(const t of e.values()){var a;const e=this.components.connectionManager.getConnections(r.id)[0];null!=e&&(null===(a=t.onConnect)||void 0===a||a.call(t,r.id,e))}}}}class $0 extends Map{constructor(e){super(),Br(this,"metric",void 0);const{name:t,metrics:r}=e;this.metric=r.registerMetric(t),this.updateComponentMetric()}set(e,t){return super.set(e,t),this.updateComponentMetric(),this}delete(e){const t=super.delete(e);return this.updateComponentMetric(),t}clear(){super.clear(),this.updateComponentMetric()}updateComponentMetric(){this.metric.update(this.size)}}const e1=cq("libp2p:transports");class t1{constructor(e){var t;let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};Br(this,"components",void 0),Br(this,"transports",void 0),Br(this,"listeners",void 0),Br(this,"faultTolerance",void 0),Br(this,"started",void 0),this.components=e,this.started=!1,this.transports=new Map,this.listeners=function(e){const{name:t,metrics:r}=e;let n;return n=null!=r?new $0({name:t,metrics:r}):new Map,n}({name:"libp2p_transport_manager_listeners",metrics:this.components.metrics}),this.faultTolerance=null!==(t=r.faultTolerance)&&void 0!==t?t:xm.FATAL_ALL}add(e){const t=e[Symbol.toStringTag];if(null==t)throw new rp("Transport must have a valid tag",h0.ERR_INVALID_KEY);if(this.transports.has(t))throw new rp("There is already a transport with the tag ".concat(t),h0.ERR_DUPLICATE_TRANSPORT);e1("adding transport %s",t),this.transports.set(t,e),this.listeners.has(t)||this.listeners.set(t,[])}isStarted(){return this.started}start(){this.started=!0}async afterStart(){const e=this.components.addressManager.getListenAddrs();await this.listen(e)}async stop(){const e=[];for(const[t,r]of this.listeners)for(e1("closing listeners for %s",t);r.length>0;){const t=r.pop();null!=t&&e.push(t.close())}await Promise.all(e),e1("all listeners closed");for(const t of this.listeners.keys())this.listeners.set(t,[]);this.started=!1}async dial(e,t){const r=this.transportForMultiaddr(e);if(null==r)throw new rp("No transport available for address ".concat(String(e)),h0.ERR_TRANSPORT_UNAVAILABLE);try{return await r.dial(e,{...t,upgrader:this.components.upgrader})}catch(n){throw null==n.code&&(n.code=h0.ERR_TRANSPORT_DIAL_FAILED),n}}getAddrs(){let e=[];for(const t of this.listeners.values())for(const r of t)e=[...e,...r.getAddrs()];return e}getTransports(){return Array.of(...this.transports.values())}getListeners(){return Array.of(...this.listeners.values()).flat()}transportForMultiaddr(e){for(const t of this.transports.values()){if(t.filter([e]).length>0)return t}}async listen(e){if(!this.isStarted())throw new rp("Not started",h0.ERR_NODE_NOT_STARTED);if(null==e||0===e.length)return void e1("no addresses were provided for listening, this node is dial only");const t=[];for(const[n,i]of this.transports.entries()){const o=i.filter(e),s=[];for(const e of o){var r;e1("creating listener for %s on %a",n,e);const t=i.createListener({upgrader:this.components.upgrader});let o=null!==(r=this.listeners.get(n))&&void 0!==r?r:[];null==o&&(o=[],this.listeners.set(n,o)),o.push(t),t.addEventListener("listening",(()=>{this.components.events.safeDispatchEvent("transport:listening",{detail:t})})),t.addEventListener("close",(()=>{const e=o.findIndex((e=>e===t));o.splice(e,1),this.components.events.safeDispatchEvent("transport:close",{detail:t})})),s.push(t.listen(e))}if(0===s.length){t.push(n);continue}if(null==(await Promise.allSettled(s)).find((e=>"fulfilled"===e.status))&&this.faultTolerance!==xm.NO_FATAL)throw new rp("Transport (".concat(n,") could not listen on any available address"),h0.ERR_NO_VALID_ADDRESSES)}if(t.length===this.transports.size){const e="no valid addresses were provided for transports [".concat(t.join(", "),"]");if(this.faultTolerance===xm.FATAL_ALL)throw new rp(e,h0.ERR_NO_VALID_ADDRESSES);e1("libp2p in dial mode only: ".concat(e))}}async remove(e){e1("removing %s",e);for(const r of null!==(t=this.listeners.get(e))&&void 0!==t?t:[]){var t;await r.close()}this.transports.delete(e),this.listeners.delete(e)}async removeAll(){const e=[];for(const t of this.transports.keys())e.push(this.remove(t));await Promise.all(e)}}const r1="/multistream/1.0.0",n1=1024;var i1=function(e,t){if(e.length>=255)throw new TypeError("Alphabet too long");for(var r=new Uint8Array(256),n=0;n<r.length;n++)r[n]=255;for(var i=0;i<e.length;i++){var o=e.charAt(i),s=o.charCodeAt(0);if(255!==r[s])throw new TypeError(o+" is ambiguous");r[s]=i}var a=e.length,c=e.charAt(0),l=Math.log(a)/Math.log(256),u=Math.log(256)/Math.log(a);function h(e){if("string"!==typeof e)throw new TypeError("Expected String");if(0===e.length)return new Uint8Array;var t=0;if(" "!==e[t]){for(var n=0,i=0;e[t]===c;)n++,t++;for(var o=(e.length-t)*l+1>>>0,s=new Uint8Array(o);e[t];){var u=r[e.charCodeAt(t)];if(255===u)return;for(var h=0,d=o-1;(0!==u||h<i)&&-1!==d;d--,h++)u+=a*s[d]>>>0,s[d]=u%256>>>0,u=u/256>>>0;if(0!==u)throw new Error("Non-zero carry");i=h,t++}if(" "!==e[t]){for(var p=o-i;p!==o&&0===s[p];)p++;for(var f=new Uint8Array(n+(o-p)),y=n;p!==o;)f[y++]=s[p++];return f}}}return{encode:function(t){if(t instanceof Uint8Array||(ArrayBuffer.isView(t)?t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength):Array.isArray(t)&&(t=Uint8Array.from(t))),!(t instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(0===t.length)return"";for(var r=0,n=0,i=0,o=t.length;i!==o&&0===t[i];)i++,r++;for(var s=(o-i)*u+1>>>0,l=new Uint8Array(s);i!==o;){for(var h=t[i],d=0,p=s-1;(0!==h||d<n)&&-1!==p;p--,d++)h+=256*l[p]>>>0,l[p]=h%a>>>0,h=h/a>>>0;if(0!==h)throw new Error("Non-zero carry");n=d,i++}for(var f=s-n;f!==s&&0===l[f];)f++;for(var y=c.repeat(r);f<s;++f)y+=e.charAt(l[f]);return y},decodeUnsafe:h,decode:function(e){var r=h(e);if(r)return r;throw new Error("Non-".concat(t," character"))}}};const o1=i1;new Uint8Array(0);class s1{constructor(e,t,r){this.name=e,this.prefix=t,this.baseEncode=r}encode(e){if(e instanceof Uint8Array)return"".concat(this.prefix).concat(this.baseEncode(e));throw Error("Unknown type, must be binary type")}}class a1{constructor(e,t,r){if(this.name=e,this.prefix=t,void 0===t.codePointAt(0))throw new Error("Invalid prefix character");this.prefixCodePoint=t.codePointAt(0),this.baseDecode=r}decode(e){if("string"===typeof e){if(e.codePointAt(0)!==this.prefixCodePoint)throw Error("Unable to decode multibase string ".concat(JSON.stringify(e),", ").concat(this.name," decoder only supports inputs prefixed with ").concat(this.prefix));return this.baseDecode(e.slice(this.prefix.length))}throw Error("Can only multibase decode strings")}or(e){return l1(this,e)}}class c1{constructor(e){this.decoders=e}or(e){return l1(this,e)}decode(e){const t=e[0],r=this.decoders[t];if(r)return r.decode(e);throw RangeError("Unable to decode multibase string ".concat(JSON.stringify(e),", only inputs prefixed with ").concat(Object.keys(this.decoders)," are supported"))}}const l1=(e,t)=>new c1({...e.decoders||{[e.prefix]:e},...t.decoders||{[t.prefix]:t}});class u1{constructor(e,t,r,n){this.name=e,this.prefix=t,this.baseEncode=r,this.baseDecode=n,this.encoder=new s1(e,t,r),this.decoder=new a1(e,t,n)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}}const h1=e=>{let{name:t,prefix:r,encode:n,decode:i}=e;return new u1(t,r,n,i)},d1=e=>{let{prefix:t,name:r,alphabet:n}=e;const{encode:i,decode:o}=o1(n,r);return h1({prefix:t,name:r,encode:i,decode:e=>(e=>{if(e instanceof Uint8Array&&"Uint8Array"===e.constructor.name)return e;if(e instanceof ArrayBuffer)return new Uint8Array(e);if(ArrayBuffer.isView(e))return new Uint8Array(e.buffer,e.byteOffset,e.byteLength);throw new Error("Unknown type, must be binary type")})(o(e))})},p1=e=>{let{name:t,prefix:r,bitsPerChar:n,alphabet:i}=e;return h1({prefix:r,name:t,encode:e=>((e,t,r)=>{const n="="===t[t.length-1],i=(1<<r)-1;let o="",s=0,a=0;for(let c=0;c<e.length;++c)for(a=a<<8|e[c],s+=8;s>r;)s-=r,o+=t[i&a>>s];if(s&&(o+=t[i&a<<r-s]),n)for(;o.length*r&7;)o+="=";return o})(e,i,n),decode:e=>((e,t,r,n)=>{const i={};for(let u=0;u<t.length;++u)i[t[u]]=u;let o=e.length;for(;"="===e[o-1];)--o;const s=new Uint8Array(o*r/8|0);let a=0,c=0,l=0;for(let u=0;u<o;++u){const t=i[e[u]];if(void 0===t)throw new SyntaxError("Non-".concat(n," character"));c=c<<r|t,a+=r,a>=8&&(a-=8,s[l++]=255&c>>a)}if(a>=r||255&c<<8-a)throw new SyntaxError("Unexpected end of data");return s})(e,i,n,t)})},f1=p1({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),y1=(p1({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),p1({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),p1({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),p1({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),p1({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),p1({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),p1({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),p1({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5}),d1({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"})),g1=(d1({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"}),p1({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}));p1({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),p1({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),p1({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});function m1(e){let t=function(e){const t=()=>{};return t.enabled=!1,t.color="",t.diff=0,t.log=()=>{},t.namespace=e,t.destroy=()=>!0,t.extend=()=>t,t}("".concat(e,":trace"));return ia.enabled("".concat(e,":trace"))&&null!=ia.names.map((e=>e.toString())).find((e=>e.includes(":trace")))&&(t=ia("".concat(e,":trace"))),Object.assign(ia(e),{error:ia("".concat(e,":error")),trace:t})}function b1(e){const t=$c(),r=function(e){const t=async function*(){let t=yield,r=new Ic;for await(const n of e)if(null!=t)for(r.append(n);r.length>=t;){const e=r.sublist(0,t);if(r.consume(t),t=yield e,null==t){r.length>0&&(t=yield r,r=new Ic);break}}else r.append(n),t=yield r,r=new Ic;if(null!=t)throw Object.assign(new Error("stream ended before ".concat(t," bytes became available")),{code:"ERR_UNDER_READ",buffer:r})}();return t.next(),t}(e.source),n=Qc();let i;const o=e.sink(async function*(){yield*t;const e=await n.promise;yield*e}());o.catch((e=>{i=e}));return{reader:r,writer:t,stream:{sink:async e=>{null==i?(n.resolve(e),await o):await Promise.reject(i)},source:r},rest:()=>t.end(),write:t.push,read:async()=>{const e=await r.next();if(null!=e.value)return e.value}}}ia.formatters.b=e=>null==e?"undefined":y1.baseEncode(e),ia.formatters.t=e=>null==e?"undefined":f1.baseEncode(e),ia.formatters.m=e=>null==e?"undefined":g1.baseEncode(e),ia.formatters.p=e=>null==e?"undefined":e.toString(),ia.formatters.c=e=>null==e?"undefined":e.toString(),ia.formatters.k=e=>null==e?"undefined":e.toString(),ia.formatters.a=e=>null==e?"undefined":e.toString();const w1=m1("libp2p:mss"),v1=ps("\n");function _1(e){const t=new Ic(e,v1);return Vc.single(t)}function E1(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const n=_1(t);!0===r.writeBytes?e.push(n.subarray()):e.push(n)}async function S1(e,t){const r=await async function(e,t){let r=1;const n={[Symbol.asyncIterator]:()=>n,next:async()=>e.next(r)};let i=n;null!=(null===t||void 0===t?void 0:t.signal)&&(i=Qg(n,t.signal));const o=e=>{r=e},s=await rl(i,(e=>Yc(e,{onLength:o,maxDataLength:n1})),(async e=>G0(e)));if(null==s||0===s.length)throw new rp("no buffer returned","ERR_INVALID_MULTISTREAM_SELECT_MESSAGE");if(s.get(s.byteLength-1)!==v1[0])throw w1.error("Invalid mss message - missing newline - %s",s.subarray()),new rp("missing newline","ERR_INVALID_MULTISTREAM_SELECT_MESSAGE");return s.sublist(0,-1)}(e,t);return Ro(r.subarray())}const A1=m1("libp2p:mss:select");async function k1(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};t=Array.isArray(t)?[...t]:[t];const{reader:n,writer:i,rest:o,stream:s}=b1(e),a=t.shift();if(null==a)throw new Error("At least one protocol must be specified");A1.trace('select: write ["%s", "%s"]',r1,a);!function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const n=new Ic;for(const i of t)n.append(_1(i));!0===r.writeBytes?e.push(n.subarray()):e.push(n)}(i,[ps(r1),ps(a)],r);let c=await S1(n,r);if(A1.trace('select: read "%s"',c),c===r1&&(c=await S1(n,r),A1.trace('select: read "%s"',c)),c===a)return o(),{stream:s,protocol:a};for(const l of t){A1.trace('select: write "%s"',l),E1(i,ps(l),r);const e=await S1(n,r);if(A1.trace('select: read "%s" for "%s"',e,l),e===l)return o(),{stream:s,protocol:l}}throw o(),new rp("protocol selection failed","ERR_UNSUPPORTED_PROTOCOL")}const I1=m1("libp2p:mss:handle");async function R1(e,t,r){t=Array.isArray(t)?t:[t];const{writer:n,reader:i,rest:o,stream:s}=b1(e);for(;;){const e=await S1(i,r);if(I1.trace('read "%s"',e),e!==r1){if(t.includes(e))return E1(n,ps(e),r),I1.trace('respond with "%s" for "%s"',e,e),o(),{stream:s,protocol:e};"ls"!==e?(E1(n,ps("na"),r),I1('respond with "na" for "%s"',e)):(E1(n,new Ic(...t.map((e=>_1(ps(e))))),r),I1.trace('respond with "%s" for %s',t,e))}else I1.trace('respond with "%s" for "%s"',r1,e),E1(n,ps(r1),r)}}const P1=Symbol.for("@libp2p/connection");let C1;const T1=cq("libp2p:connection");C1=Symbol.toStringTag;class x1{constructor(e){var t;Br(this,"id",void 0),Br(this,"remoteAddr",void 0),Br(this,"remotePeer",void 0),Br(this,"direction",void 0),Br(this,"timeline",void 0),Br(this,"multiplexer",void 0),Br(this,"encryption",void 0),Br(this,"status",void 0),Br(this,"transient",void 0),Br(this,"tags",void 0),Br(this,"_newStream",void 0),Br(this,"_close",void 0),Br(this,"_abort",void 0),Br(this,"_getStreams",void 0),Br(this,C1,"Connection"),Br(this,P1,!0);const{remoteAddr:r,remotePeer:n,newStream:i,close:o,abort:s,getStreams:a}=e;this.id="".concat(parseInt(String(1e9*Math.random())).toString(36)).concat(Date.now()),this.remoteAddr=r,this.remotePeer=n,this.direction=e.direction,this.status="open",this.timeline=e.timeline,this.multiplexer=e.multiplexer,this.encryption=e.encryption,this.transient=null!==(t=e.transient)&&void 0!==t&&t,this._newStream=i,this._close=o,this._abort=s,this._getStreams=a,this.tags=[]}get streams(){return this._getStreams()}async newStream(e,t){if("closing"===this.status)throw new rp("the connection is being closed","ERR_CONNECTION_BEING_CLOSED");if("closed"===this.status)throw new rp("the connection is closed","ERR_CONNECTION_CLOSED");if(Array.isArray(e)||(e=[e]),this.transient&&!0!==(null===t||void 0===t?void 0:t.runOnTransientConnection))throw new rp("Cannot open protocol stream on transient connection","ERR_TRANSIENT_CONNECTION");const r=await this._newStream(e,t);return r.direction="outbound",r}async close(){var e;let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if("closed"!==this.status&&"closing"!==this.status){T1("closing connection to %a",this.remoteAddr),this.status="closing",t.signal=null!==(e=null===t||void 0===t?void 0:t.signal)&&void 0!==e?e:AbortSignal.timeout(500);try{null===zL.setMaxListeners||void 0===zL.setMaxListeners||(0,zL.setMaxListeners)(1/0,t.signal)}catch{}try{await Promise.all(this.streams.map((async e=>e.close(t)))),await this._close(t),this.timeline.close=Date.now(),this.status="closed"}catch(r){T1.error("error encountered during graceful close of connection to %a",this.remoteAddr,r),this.abort(r)}}}abort(e){T1.error("aborting connection to %a due to error",this.remoteAddr,e),this.status="closing",this.streams.forEach((t=>{t.abort(e)})),T1.error("all streams aborted",this.streams.length),this._abort(e),this.timeline.close=Date.now(),this.status="closed"}}const D1=cq("libp2p:upgrader");function N1(e,t,r){let n=0;return r.streams.forEach((r=>{r.direction===t&&r.protocol===e&&n++})),n}class L1{constructor(e,t){var r;Br(this,"components",void 0),Br(this,"connectionEncryption",void 0),Br(this,"muxers",void 0),Br(this,"inboundUpgradeTimeout",void 0),Br(this,"events",void 0),this.components=e,this.connectionEncryption=new Map,t.connectionEncryption.forEach((e=>{this.connectionEncryption.set(e.protocol,e)})),this.muxers=new Map,t.muxers.forEach((e=>{this.muxers.set(e.protocol,e)})),this.inboundUpgradeTimeout=null!==(r=t.inboundUpgradeTimeout)&&void 0!==r?r:3e4,this.events=e.events}async shouldBlockConnection(e,t,r){const n=this.components.connectionGater[r];if(void 0!==n&&await n(e,t))throw new rp("The multiaddr connection is blocked by gater.".concat(r),h0.ERR_CONNECTION_INTERCEPTED)}async upgradeInbound(e,t){if(!await this.components.connectionManager.acceptIncomingConnection(e))throw new rp("connection denied",h0.ERR_CONNECTION_DENIED);let r,n,i,o,s;const a=AbortSignal.timeout(this.inboundUpgradeTimeout),c=()=>{e.abort(new rp("inbound upgrade timeout",h0.ERR_TIMEOUT))};a.addEventListener("abort",c,{once:!0});try{null===zL.setMaxListeners||void 0===zL.setMaxListeners||(0,zL.setMaxListeners)(1/0,a)}catch{}try{var l,u,h;if(!0===await(null===(l=(u=this.components.connectionGater).denyInboundConnection)||void 0===l?void 0:l.call(u,e)))throw new rp("The multiaddr connection is blocked by gater.acceptConnection",h0.ERR_CONNECTION_INTERCEPTED);null===(h=this.components.metrics)||void 0===h||h.trackMultiaddrConnection(e),D1("starting the inbound connection upgrade");let a=e;if(!0!==(null===t||void 0===t?void 0:t.skipProtection)){const t=this.components.connectionProtector;null!=t&&(D1("protecting the inbound connection"),a=await t.protect(e))}try{if(r=a,!0!==(null===t||void 0===t?void 0:t.skipEncryption)){({conn:r,remotePeer:n,protocol:s}=await this._encryptInbound(a));const e={...a,...r};await this.shouldBlockConnection(n,e,"denyInboundEncryptedConnection")}else{const t=e.remoteAddr.getPeerId();if(null==t)throw new rp("inbound connection that skipped encryption must have a peer id",h0.ERR_INVALID_MULTIADDR);const r=ZV(t);s="native",n=r}if(i=r,null!=(null===t||void 0===t?void 0:t.muxerFactory))o=t.muxerFactory;else if(this.muxers.size>0){const e=await this._multiplexInbound({...a,...r},this.muxers);o=e.muxerFactory,i=e.stream}}catch(d){throw D1.error("Failed to upgrade inbound connection",d),d}return await this.shouldBlockConnection(n,e,"denyInboundUpgradedConnection"),D1("Successfully upgraded inbound connection"),this._createConnection({cryptoProtocol:s,direction:"inbound",maConn:e,upgradedConn:i,muxerFactory:o,remotePeer:n,transient:null===t||void 0===t?void 0:t.transient})}finally{a.removeEventListener("abort",c),this.components.connectionManager.afterUpgradeInbound()}}async upgradeOutbound(e,t){var r;const n=e.remoteAddr.getPeerId();let i,o,s,a,c,l;null!=n&&(i=ZV(n),await this.shouldBlockConnection(i,e,"denyOutboundConnection")),null===(r=this.components.metrics)||void 0===r||r.trackMultiaddrConnection(e),D1("Starting the outbound connection upgrade");let u=e;if(!0!==(null===t||void 0===t?void 0:t.skipProtection)){const t=this.components.connectionProtector;null!=t&&(u=await t.protect(e))}try{if(o=u,!0!==(null===t||void 0===t?void 0:t.skipEncryption)){({conn:o,remotePeer:s,protocol:c}=await this._encryptOutbound(u,i));const e={...u,...o};await this.shouldBlockConnection(s,e,"denyOutboundEncryptedConnection")}else{if(null==i)throw new rp("Encryption was skipped but no peer id was passed",h0.ERR_INVALID_PEER);c="native",s=i}if(a=o,null!=(null===t||void 0===t?void 0:t.muxerFactory))l=t.muxerFactory;else if(this.muxers.size>0){const e=await this._multiplexOutbound({...u,...o},this.muxers);l=e.muxerFactory,a=e.stream}}catch(h){throw D1.error("Failed to upgrade outbound connection",h),await e.close(h),h}return await this.shouldBlockConnection(s,e,"denyOutboundUpgradedConnection"),D1("Successfully upgraded outbound connection"),this._createConnection({cryptoProtocol:c,direction:"outbound",maConn:e,upgradedConn:a,muxerFactory:l,remotePeer:s,transient:null===t||void 0===t?void 0:t.transient})}_createConnection(e){var t,r,n=this;const{cryptoProtocol:i,direction:o,maConn:s,upgradedConn:a,remotePeer:c,muxerFactory:l,transient:u}=e;let h,d,p;null!=l&&(h=l.createStreamMuxer({direction:o,onIncomingStream:e=>{null!=p&&Promise.resolve().then((async()=>{var t;const r=this.components.registrar.getProtocols(),{stream:n,protocol:i}=await R1(e,r);if(D1("%s: incoming stream opened on %s",o,i),null==p)return;const s=function(e,t){try{const{options:r}=t.getHandler(e);return r.maxInboundStreams}catch(r){if(r.code!==h0.ERR_NO_HANDLER_FOR_PROTOCOL)throw r}return X0}(i,this.components.registrar);if(N1(i,"inbound",p)===s){const t=new rp('Too many inbound protocol streams for protocol "'.concat(i,'" - limit ').concat(s),h0.ERR_TOO_MANY_INBOUND_PROTOCOL_STREAMS);throw e.abort(t),t}e.source=n.source,e.sink=n.sink,e.protocol=i,await this.components.peerStore.merge(c,{protocols:[i]}),null===(t=this.components.metrics)||void 0===t||t.trackProtocolStream(e,p),this._onStream({connection:p,stream:e,protocol:i})})).catch((async t=>{D1.error(t),null==e.timeline.close&&await e.close()}))}}),d=async function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(null==h)throw new rp("Stream is not multiplexed",h0.ERR_MUXER_UNAVAILABLE);D1("%s: starting new stream on %s",o,e);const r=await h.newStream();try{var i;if(null==t.signal){D1("No abort signal was passed while trying to negotiate protocols %s falling back to default timeout",e),t.signal=AbortSignal.timeout(3e4);try{null===zL.setMaxListeners||void 0===zL.setMaxListeners||(0,zL.setMaxListeners)(1/0,t.signal)}catch{}}const{stream:o,protocol:s}=await k1(r,e,t),a=function(e,t){var r;let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};try{const{options:r}=t.getHandler(e);if(null!=r.maxOutboundStreams)return r.maxOutboundStreams}catch(i){if(i.code!==h0.ERR_NO_HANDLER_FOR_PROTOCOL)throw i}return null!==(r=n.maxOutboundStreams)&&void 0!==r?r:J0}(s,n.components.registrar,t);if(N1(s,"outbound",p)>=a){const e=new rp('Too many outbound protocol streams for protocol "'.concat(s,'" - limit ').concat(a),h0.ERR_TOO_MANY_OUTBOUND_PROTOCOL_STREAMS);throw r.abort(e),e}return await n.components.peerStore.merge(c,{protocols:[s]}),r.source=o.source,r.sink=o.sink,r.protocol=s,null===(i=n.components.metrics)||void 0===i||i.trackProtocolStream(r,p),r}catch(s){if(D1.error("could not create new stream",s),null==r.timeline.close&&r.abort(s),null!=s.code)throw s;throw new rp(String(s),h0.ERR_UNSUPPORTED_PROTOCOL)}},Promise.all([h.sink(a.source),a.sink(h.source)]).catch((e=>{D1.error(e)})));const f=s.timeline;s.timeline=new Proxy(f,{set:function(){return null!=p&&"close"===(arguments.length<=1?void 0:arguments[1])&&null!=(arguments.length<=2?void 0:arguments[2])&&null==f.close&&(async()=>{try{"open"===p.status&&await p.close()}catch(e){D1.error(e)}finally{n.events.safeDispatchEvent("connection:close",{detail:p})}})().catch((e=>{D1.error(e)})),Reflect.set(...arguments)}}),s.timeline.upgraded=Date.now();var y;return y={remoteAddr:s.remoteAddr,remotePeer:c,status:"open",direction:o,timeline:s.timeline,multiplexer:null===(t=h)||void 0===t?void 0:t.protocol,encryption:i,transient:u,newStream:null!==(r=d)&&void 0!==r?r:()=>{throw new rp("connection is not multiplexed",h0.ERR_CONNECTION_NOT_MULTIPLEXED)},getStreams:()=>null!=h?h.streams:[],close:async e=>{await s.close(e),null!=h&&await h.close(e)},abort:e=>{s.abort(e),null!=h&&h.abort(e)}},p=new x1(y),this.events.safeDispatchEvent("connection:open",{detail:p}),p}_onStream(e){const{connection:t,stream:r,protocol:n}=e,{handler:i,options:o}=this.components.registrar.getHandler(n);if(t.transient&&!0!==o.runOnTransientConnection)throw new rp("Cannot open protocol stream on transient connection","ERR_TRANSIENT_CONNECTION");i({connection:t,stream:r})}async _encryptInbound(e){const t=Array.from(this.connectionEncryption.keys());D1("handling inbound crypto protocol selection",t);try{const{stream:r,protocol:n}=await R1(e,t,{writeBytes:!0}),i=this.connectionEncryption.get(n);if(null==i)throw new Error("no crypto module found for ".concat(n));return D1("encrypting inbound connection..."),{...await i.secureInbound(this.components.peerId,r),protocol:n}}catch(r){throw new rp(String(r),h0.ERR_ENCRYPTION_FAILED)}}async _encryptOutbound(e,t){const r=Array.from(this.connectionEncryption.keys());D1("selecting outbound crypto protocol",r);try{const{stream:n,protocol:i}=await k1(e,r,{writeBytes:!0}),o=this.connectionEncryption.get(i);if(null==o)throw new Error("no crypto module found for ".concat(i));return D1("encrypting outbound connection to %p",t),{...await o.secureOutbound(this.components.peerId,n,t),protocol:i}}catch(n){throw new rp(String(n),h0.ERR_ENCRYPTION_FAILED)}}async _multiplexOutbound(e,t){const r=Array.from(t.keys());D1("outbound selecting muxer %s",r);try{const{stream:n,protocol:i}=await k1(e,r,{writeBytes:!0});D1("%s selected as muxer protocol",i);return{stream:n,muxerFactory:t.get(i)}}catch(n){throw D1.error("error multiplexing outbound stream",n),new rp(String(n),h0.ERR_MUXER_UNAVAILABLE)}}async _multiplexInbound(e,t){const r=Array.from(t.keys());D1("inbound handling muxers %s",r);try{const{stream:n,protocol:i}=await R1(e,r,{writeBytes:!0});return{stream:n,muxerFactory:t.get(i)}}catch(n){throw D1.error("error multiplexing inbound stream",n),new rp(String(n),h0.ERR_MUXER_UNAVAILABLE)}}}const B1=cq("libp2p");var M1=new WeakMap,O1=new WeakSet;class U1 extends rw{constructor(e){var t,r,n,i,o,s;super(),FL(this,O1),Br(this,"peerId",void 0),Br(this,"peerStore",void 0),Br(this,"contentRouting",void 0),Br(this,"peerRouting",void 0),Br(this,"keychain",void 0),Br(this,"metrics",void 0),Br(this,"services",void 0),Br(this,"components",void 0),Kr(this,M1,{writable:!0,value:void 0});const a=new rw,c=a.dispatchEvent.bind(a);a.dispatchEvent=e=>{const t=c(e),r=this.dispatchEvent(new iw(e.type,{detail:e.detail}));return t||r};try{null===zL.setMaxListeners||void 0===zL.setMaxListeners||(0,zL.setMaxListeners)(1/0,a)}catch{}Vr(this,M1,!1),this.peerId=e.peerId,this.services={};const l=this.components=function(){const e=new KZ(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{});return new Proxy(e,{get(t,r,n){if("string"===typeof r&&!FZ.includes(r)){const t=e.components[r];if(null==t&&!qZ.includes(r))throw new rp("".concat(r," not set"),"ERR_SERVICE_MISSING");return t}return Reflect.get(t,r,n)},set:(t,r,n)=>("string"===typeof r?e.components[r]=n:Reflect.set(t,r,n),!0)})}({peerId:e.peerId,events:a,datastore:null!==(t=e.datastore)&&void 0!==t?t:new NZ,connectionGater:o$(e.connectionGater)});this.peerStore=this.configureComponent("peerStore",new kZ(l,{addressFilter:this.components.connectionGater.filterMultiaddrForPeer,...e.peerStore})),null!=e.metrics&&(this.metrics=this.configureComponent("metrics",e.metrics(this.components))),l.events.addEventListener("peer:update",(e=>{if(null==e.detail.previous){const t={id:e.detail.peer.id,multiaddrs:e.detail.peer.addresses.map((e=>e.multiaddr)),protocols:e.detail.peer.protocols};l.events.safeDispatchEvent("peer:discovery",{detail:t})}})),null!=e.connectionProtector&&this.configureComponent("connectionProtector",e.connectionProtector(l)),this.components.upgrader=new L1(this.components,{connectionEncryption:(null!==(r=e.connectionEncryption)&&void 0!==r?r:[]).map(((e,t)=>this.configureComponent("connection-encryption-".concat(t),e(this.components)))),muxers:(null!==(n=e.streamMuxers)&&void 0!==n?n:[]).map(((e,t)=>this.configureComponent("stream-muxers-".concat(t),e(this.components)))),inboundUpgradeTimeout:e.connectionManager.inboundUpgradeTimeout}),this.configureComponent("transportManager",new t1(this.components,e.transportManager)),this.configureComponent("connectionManager",new q0(this.components,e.connectionManager)),this.configureComponent("registrar",new Z0(this.components)),this.configureComponent("addressManager",new OZ(this.components,e.addresses));const u=ZK.generateOptions();this.keychain=this.configureComponent("keyChain",new ZK(this.components,{...u,...e.keychain}));const h=(null!==(i=e.peerRouters)&&void 0!==i?i:[]).map(((e,t)=>this.configureComponent("peer-router-".concat(t),e(this.components))));this.peerRouting=this.components.peerRouting=this.configureComponent("peerRouting",new Y0(this.components,{routers:h}));const d=(null!==(o=e.contentRouters)&&void 0!==o?o:[]).map(((e,t)=>this.configureComponent("content-router-".concat(t),e(this.components))));if(this.contentRouting=this.components.contentRouting=this.configureComponent("contentRouting",new H0(this.components,{routers:d})),(null!==(s=e.peerDiscovery)&&void 0!==s?s:[]).forEach(((e,t)=>{this.configureComponent("peer-discovery-".concat(t),e(this.components)).addEventListener("peer",(e=>{VL(this,O1,K1).call(this,e)}))})),e.transports.forEach(((e,t)=>{this.components.transportManager.add(this.configureComponent("transport-".concat(t),e(this.components)))})),null!=e.services)for(const p of Object.keys(e.services)){const t=(0,e.services[p])(this.components);null!=t?(this.services[p]=t,this.configureComponent(p,t),null!=t[LM]&&(B1("registering service %s for content routing",p),d.push(t[LM])),null!=t[BM]&&(B1("registering service %s for peer routing",p),h.push(t[BM])),null!=t[ow]&&(B1("registering service %s for peer discovery",p),t[ow].addEventListener("peer",(e=>{VL(this,O1,K1).call(this,e)})))):B1.error("service factory %s returned null or undefined instance",p)}}configureComponent(e,t){return null==t&&B1.error("component %s was null or undefined",e),this.components[e]=t,t}async start(){if(Fr(this,M1))return;Vr(this,M1,!0),B1("libp2p is starting");null==(await this.keychain.listKeys()).find((e=>"self"===e.name))&&(B1("importing self key into keychain"),await this.keychain.importPeer("self",this.components.peerId));try{var e,t,r,n;await(null===(e=(t=this.components).beforeStart)||void 0===e?void 0:e.call(t)),await this.components.start(),await(null===(r=(n=this.components).afterStart)||void 0===r?void 0:r.call(n)),this.safeDispatchEvent("start",{detail:this}),B1("libp2p has started")}catch(i){throw B1.error("An error occurred starting libp2p",i),await this.stop(),i}}async stop(){var e,t,r,n;Fr(this,M1)&&(B1("libp2p is stopping"),Vr(this,M1,!1),await(null===(e=(t=this.components).beforeStop)||void 0===e?void 0:e.call(t)),await this.components.stop(),await(null===(r=(n=this.components).afterStop)||void 0===r?void 0:r.call(n)),this.safeDispatchEvent("stop",{detail:this}),B1("libp2p has stopped"))}isStarted(){return Fr(this,M1)}getConnections(e){return this.components.connectionManager.getConnections(e)}getDialQueue(){return this.components.connectionManager.getDialQueue()}getPeers(){const e=new aV;for(const t of this.components.connectionManager.getConnections())e.add(t.remotePeer);return Array.from(e)}async dial(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.components.connectionManager.openConnection(e,t)}async dialProtocol(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(null==t)throw new rp("no protocols were provided to open a stream",h0.ERR_INVALID_PROTOCOLS_FOR_STREAM);if(0===(t=Array.isArray(t)?t:[t]).length)throw new rp("no protocols were provided to open a stream",h0.ERR_INVALID_PROTOCOLS_FOR_STREAM);return(await this.dial(e,r)).newStream(t,r)}getMultiaddrs(){return this.components.addressManager.getAddresses()}getProtocols(){return this.components.registrar.getProtocols()}async hangUp(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};var r;Hs(e)&&(e=ZV(null!==(r=e.getPeerId())&&void 0!==r?r:""));await this.components.connectionManager.closeConnections(e,t)}async getPublicKey(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(B1("getPublicKey %p",e),null!=e.publicKey)return e.publicKey;const r=await this.peerStore.get(e);if(null!=r.id.publicKey)return r.id.publicKey;const n=Po([ps("/pk/"),e.multihash.digest]),i=await this.contentRouting.get(n,t);return function(e){var t,r;const n=ZB.decode(e),i=null!==(t=n.Data)&&void 0!==t?t:new Uint8Array;switch(n.Type){case XB.RSA:return DM.rsa.unmarshalRsaPublicKey(i);case XB.Ed25519:return DM.ed25519.unmarshalEd25519PublicKey(i);case XB.Secp256k1:return DM.secp256k1.unmarshalSecp256k1PublicKey(i);default:throw NM(null!==(r=n.Type)&&void 0!==r?r:"RSA")}}(i),await this.peerStore.patch(e,{publicKey:i}),i}async handle(e,t,r){Array.isArray(e)||(e=[e]),await Promise.all(e.map((async e=>{await this.components.registrar.handle(e,t,r)})))}async unhandle(e){Array.isArray(e)||(e=[e]),await Promise.all(e.map((async e=>{await this.components.registrar.unhandle(e)})))}async register(e,t){return this.components.registrar.register(e,t)}unregister(e){this.components.registrar.unregister(e)}}function K1(e){const{detail:t}=e;t.id.toString()!==this.peerId.toString()?this.components.peerStore.merge(t.id,{multiaddrs:t.multiaddrs,protocols:t.protocols}).catch((e=>{B1.error(e)})):B1.error(new Error(h0.ERR_DISCOVERED_SELF))}async function q1(e){if(null==e.peerId){const r=e.datastore;if(null!=r)try{const t=new ZK({datastore:r},OK(ZK.generateOptions(),e.keychain));e.peerId=await t.exportPeerId("self")}catch(t){if("ERR_NOT_FOUND"!==t.code)throw t}}return null==e.peerId&&(e.peerId=await zH()),new U1(function(e){var t,r;const n=OK(d0,e);if(null==n.transports||n.transports.length<1)throw new rp(u0.ERR_TRANSPORTS_REQUIRED,h0.ERR_TRANSPORTS_REQUIRED);if(null===n.connectionProtector&&null!=(null===(t=globalThis.process)||void 0===t||null===(r=t.env)||void 0===r?void 0:r.LIBP2P_FORCE_PNET))throw new rp(u0.ERR_PROTECTOR_REQUIRED,h0.ERR_PROTECTOR_REQUIRED);return n}(e))}const F1="js-libp2p/".concat("0.46.10");function V1(e,t){const r=uu(e,t),n={read:async(e,t)=>{const n=await r.read(t);return e.decode(n)},write:async(e,t,n)=>{await r.write(t.encode(e),n)},pb:e=>({read:async t=>n.read(e,t),write:async(t,r)=>n.write(t,e,r),unwrap:()=>n}),unwrap:()=>r.unwrap()};return n}var z1;!function(e){let t;e.codec=()=>(null==t&&(t=tM((function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!1!==r.lengthDelimited&&t.fork(),null!=e.protocolVersion&&(t.uint32(42),t.string(e.protocolVersion)),null!=e.agentVersion&&(t.uint32(50),t.string(e.agentVersion)),null!=e.publicKey&&(t.uint32(10),t.bytes(e.publicKey)),null!=e.listenAddrs)for(const n of e.listenAddrs)t.uint32(18),t.bytes(n);if(null!=e.observedAddr&&(t.uint32(34),t.bytes(e.observedAddr)),null!=e.protocols)for(const n of e.protocols)t.uint32(26),t.string(n);null!=e.signedPeerRecord&&(t.uint32(66),t.bytes(e.signedPeerRecord)),!1!==r.lengthDelimited&&t.ldelim()}),((e,t)=>{const r={listenAddrs:[],protocols:[]},n=null==t?e.len:e.pos+t;for(;e.pos<n;){const t=e.uint32();switch(t>>>3){case 5:r.protocolVersion=e.string();break;case 6:r.agentVersion=e.string();break;case 1:r.publicKey=e.bytes();break;case 2:r.listenAddrs.push(e.bytes());break;case 4:r.observedAddr=e.bytes();break;case 3:r.protocols.push(e.string());break;case 8:r.signedPeerRecord=e.bytes();break;default:e.skipType(7&t)}}return r}))),t),e.encode=t=>YB(t,e.codec()),e.decode=t=>WB(t,e.codec())}(z1||(z1={}));const j1=cq("libp2p:identify"),H1=8192,G1={protocolPrefix:"ipfs",agentVersion:F1,timeout:6e4,maxInboundStreams:1,maxOutboundStreams:1,maxPushIncomingStreams:1,maxPushOutgoingStreams:1,maxObservedAddresses:10,maxIdentifyMessageSize:8192,runOnConnectionOpen:!0,runOnTransientConnection:!0};var W1=new WeakSet;class Y1{constructor(e,t){var r,n,i,o,s,a,c,l,u,h,d,p,f;FL(this,W1),Br(this,"identifyProtocolStr",void 0),Br(this,"identifyPushProtocolStr",void 0),Br(this,"host",void 0),Br(this,"started",void 0),Br(this,"timeout",void 0),Br(this,"peerId",void 0),Br(this,"peerStore",void 0),Br(this,"registrar",void 0),Br(this,"connectionManager",void 0),Br(this,"addressManager",void 0),Br(this,"maxInboundStreams",void 0),Br(this,"maxOutboundStreams",void 0),Br(this,"maxPushIncomingStreams",void 0),Br(this,"maxPushOutgoingStreams",void 0),Br(this,"maxIdentifyMessageSize",void 0),Br(this,"maxObservedAddresses",void 0),Br(this,"events",void 0),Br(this,"runOnTransientConnection",void 0),this.started=!1,this.peerId=e.peerId,this.peerStore=e.peerStore,this.registrar=e.registrar,this.addressManager=e.addressManager,this.connectionManager=e.connectionManager,this.events=e.events,this.identifyProtocolStr="/".concat(null!==(r=t.protocolPrefix)&&void 0!==r?r:G1.protocolPrefix,"/").concat("id","/").concat("1.0.0"),this.identifyPushProtocolStr="/".concat(null!==(n=t.protocolPrefix)&&void 0!==n?n:G1.protocolPrefix,"/").concat("id/push","/").concat("1.0.0"),this.timeout=null!==(i=t.timeout)&&void 0!==i?i:G1.timeout,this.maxInboundStreams=null!==(o=t.maxInboundStreams)&&void 0!==o?o:G1.maxInboundStreams,this.maxOutboundStreams=null!==(s=t.maxOutboundStreams)&&void 0!==s?s:G1.maxOutboundStreams,this.maxPushIncomingStreams=null!==(a=t.maxPushIncomingStreams)&&void 0!==a?a:G1.maxPushIncomingStreams,this.maxPushOutgoingStreams=null!==(c=t.maxPushOutgoingStreams)&&void 0!==c?c:G1.maxPushOutgoingStreams,this.maxIdentifyMessageSize=null!==(l=t.maxIdentifyMessageSize)&&void 0!==l?l:G1.maxIdentifyMessageSize,this.maxObservedAddresses=null!==(u=t.maxObservedAddresses)&&void 0!==u?u:G1.maxObservedAddresses,this.runOnTransientConnection=null!==(h=t.runOnTransientConnection)&&void 0!==h?h:G1.runOnTransientConnection,this.host={protocolVersion:"".concat(null!==(d=t.protocolPrefix)&&void 0!==d?d:G1.protocolPrefix,"/").concat("0.1.0"),agentVersion:null!==(p=t.agentVersion)&&void 0!==p?p:G1.agentVersion},(null!==(f=t.runOnConnectionOpen)&&void 0!==f?f:G1.runOnConnectionOpen)&&e.events.addEventListener("connection:open",(e=>{const t=e.detail;this.identify(t).catch((e=>{j1.error("error during identify trigged by connection:open",e)}))})),e.events.addEventListener("self:peer:update",(e=>{this.push().catch((e=>{j1.error(e)}))})),this.host.agentVersion===F1&&(hb||lb?this.host.agentVersion+=" UserAgent=".concat(globalThis.process.version):(cb||db||ub||pb)&&(this.host.agentVersion+=" UserAgent=".concat(globalThis.navigator.userAgent)))}isStarted(){return this.started}async start(){this.started||(await this.peerStore.merge(this.peerId,{metadata:{AgentVersion:ps(this.host.agentVersion),ProtocolVersion:ps(this.host.protocolVersion)}}),await this.registrar.handle(this.identifyProtocolStr,(e=>{this._handleIdentify(e).catch((e=>{j1.error(e)}))}),{maxInboundStreams:this.maxInboundStreams,maxOutboundStreams:this.maxOutboundStreams,runOnTransientConnection:this.runOnTransientConnection}),await this.registrar.handle(this.identifyPushProtocolStr,(e=>{this._handlePush(e).catch((e=>{j1.error(e)}))}),{maxInboundStreams:this.maxPushIncomingStreams,maxOutboundStreams:this.maxPushOutgoingStreams,runOnTransientConnection:this.runOnTransientConnection}),this.started=!0)}async stop(){await this.registrar.unhandle(this.identifyProtocolStr),await this.registrar.unhandle(this.identifyPushProtocolStr),this.started=!1}async pushToConnections(e){var t,r;const n=this.addressManager.getAddresses().map((e=>e.decapsulateCode(As("p2p").code))),i=new SQ({peerId:this.peerId,multiaddrs:n}),o=await wQ.seal(i,this.peerId),s=this.registrar.getProtocols(),a=await this.peerStore.get(this.peerId),c=Ro(null!==(t=a.metadata.get("AgentVersion"))&&void 0!==t?t:ps(this.host.agentVersion)),l=Ro(null!==(r=a.metadata.get("ProtocolVersion"))&&void 0!==r?r:ps(this.host.protocolVersion)),u=e.map((async e=>{let t;const r=AbortSignal.timeout(this.timeout);try{null===zL.setMaxListeners||void 0===zL.setMaxListeners||(0,zL.setMaxListeners)(1/0,r)}catch{}try{var i;t=await e.newStream([this.identifyPushProtocolStr],{signal:r,runOnTransientConnection:this.runOnTransientConnection});const a=V1(t,{maxDataLength:null!==(i=this.maxIdentifyMessageSize)&&void 0!==i?i:H1}).pb(z1);await a.write({listenAddrs:n.map((e=>e.bytes)),signedPeerRecord:o.marshal(),protocols:s,agentVersion:c,protocolVersion:l},{signal:r}),await t.close({signal:r})}catch(u){var a;j1.error("could not push identify update to peer",u),null===(a=t)||void 0===a||a.abort(u)}}));await Promise.all(u)}async push(){if(!this.isStarted())return;const e=[];await Promise.all(this.connectionManager.getConnections().map((async t=>{try{if(!(await this.peerStore.get(t.remotePeer)).protocols.includes(this.identifyPushProtocolStr))return;e.push(t)}catch(r){if(r.code!==h0.ERR_NOT_FOUND)throw r}}))),await this.pushToConnections(e)}async _identify(e){var t;let r,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};n.signal=null!==(t=n.signal)&&void 0!==t?t:AbortSignal.timeout(this.timeout);try{var i;r=await e.newStream([this.identifyProtocolStr],{...n,runOnTransientConnection:this.runOnTransientConnection});const t=V1(r,{maxDataLength:null!==(i=this.maxIdentifyMessageSize)&&void 0!==i?i:H1}).pb(z1),o=await t.read(n);return await r.close(n),o}catch(s){var o;throw j1.error("error while reading identify message",s),null===(o=r)||void 0===o||o.abort(s),s}}async identify(e){var t;let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n=await this._identify(e,r),{publicKey:i,protocols:o,observedAddr:s}=n;if(null==i)throw new rp("public key was missing from identify message",h0.ERR_MISSING_PUBLIC_KEY);const a=await async function(e,t){return e.length===GV?new XV({multihash:SB(RB.code,e),privateKey:t}):e.length===WV?new JV({multihash:SB(RB.code,e),privateKey:t}):new QV({multihash:await xB.digest(e),publicKey:e,privateKey:t})}(i);if(!e.remotePeer.equals(a))throw new rp("identified peer does not match the expected peer",h0.ERR_INVALID_PEER);if(this.peerId.equals(a))throw new rp("identified peer is our own peer id?",h0.ERR_INVALID_PEER);const c=function(e){if(null!=e&&e.length>0)try{return ra(e)}catch{}}(s);j1("identify completed for peer %p and protocols %o",a,o),j1("our observed address is %a",c),null!=c&&this.addressManager.getObservedAddrs().length<(null!==(t=this.maxObservedAddresses)&&void 0!==t?t:1/0)&&(j1("storing our observed address %a",c),this.addressManager.addObservedAddr(c));const l=await VL(this,W1,Q1).call(this,e.remotePeer,n),u={peerId:a,protocolVersion:n.protocolVersion,agentVersion:n.agentVersion,publicKey:n.publicKey,listenAddrs:n.listenAddrs.map((e=>ra(e))),observedAddr:null==n.observedAddr?void 0:ra(n.observedAddr),protocols:n.protocols,signedPeerRecord:l};return this.events.safeDispatchEvent("peer:identify",{detail:u}),u}async _handleIdentify(e){const{connection:t,stream:r}=e,n=AbortSignal.timeout(this.timeout);try{null===zL.setMaxListeners||void 0===zL.setMaxListeners||(0,zL.setMaxListeners)(1/0,n)}catch{}try{var i;const e=null!==(i=this.peerId.publicKey)&&void 0!==i?i:new Uint8Array(0),o=await this.peerStore.get(this.peerId),s=this.addressManager.getAddresses().map((e=>e.decapsulateCode(As("p2p").code)));let a=o.peerRecordEnvelope;if(s.length>0&&null==a){const e=new SQ({peerId:this.peerId,multiaddrs:s});a=(await wQ.seal(e,this.peerId)).marshal().subarray()}const c=V1(r).pb(z1);await c.write({protocolVersion:this.host.protocolVersion,agentVersion:this.host.agentVersion,publicKey:e,listenAddrs:s.map((e=>e.bytes)),signedPeerRecord:a,observedAddr:t.remoteAddr.bytes,protocols:o.protocols},{signal:n}),await r.close({signal:n})}catch(o){j1.error("could not respond to identify request",o),r.abort(o)}}async _handlePush(e){const{connection:t,stream:r}=e;try{var n;if(this.peerId.equals(t.remotePeer))throw new Error("received push from ourselves?");const e={signal:AbortSignal.timeout(this.timeout)},i=V1(r,{maxDataLength:null!==(n=this.maxIdentifyMessageSize)&&void 0!==n?n:H1}).pb(z1),o=await i.read(e);await r.close(e),await VL(this,W1,Q1).call(this,t.remotePeer,o)}catch(i){return j1.error("received invalid message",i),void r.abort(i)}j1("handled push from %p",t.remotePeer)}}async function Q1(e,t){if(j1("received identify from %p",e),null==t)throw new Error("Message was null or undefined");const r={addresses:t.listenAddrs.map((e=>({isCertified:!1,multiaddr:ra(e)}))),protocols:t.protocols,metadata:new Map,peerRecordEnvelope:t.signedPeerRecord};let n;if(null!=t.signedPeerRecord){j1("received signedPeerRecord in push from %p",e);let o=t.signedPeerRecord;const s=await wQ.openAndCertify(o,SQ.DOMAIN);let a,c=SQ.createFromProtobuf(s.payload);if(!c.peerId.equals(s.peerId))throw new Error("signing key does not match PeerId in the PeerRecord");if(!e.equals(c.peerId))throw new Error("signing key does not match remote PeerId");try{a=await this.peerStore.get(c.peerId)}catch(i){if("ERR_NOT_FOUND"!==i.code)throw i}if(null!=a&&(r.metadata=a.metadata,null!=a.peerRecordEnvelope)){const e=await wQ.createFromProtobuf(a.peerRecordEnvelope),t=SQ.createFromProtobuf(e.payload);t.seqNumber>=c.seqNumber&&(j1("sequence number was lower or equal to existing sequence number - stored: %d received: %d",t.seqNumber,c.seqNumber),c=t,o=a.peerRecordEnvelope)}r.peerRecordEnvelope=o,r.addresses=c.multiaddrs.map((e=>({isCertified:!0,multiaddr:e}))),n={seq:c.seqNumber,addresses:c.multiaddrs}}else j1("%p did not send a signed peer record",e);return null!=t.agentVersion&&r.metadata.set("AgentVersion",ps(t.agentVersion)),null!=t.protocolVersion&&r.metadata.set("ProtocolVersion",ps(t.protocolVersion)),await this.peerStore.patch(e,r),n}function X1(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return t=>new Y1(t,e)}const J1=cq("libp2p:ping");class Z1{constructor(e,t){var r,n,i,o,s;Br(this,"protocol",void 0),Br(this,"components",void 0),Br(this,"started",void 0),Br(this,"timeout",void 0),Br(this,"maxInboundStreams",void 0),Br(this,"maxOutboundStreams",void 0),Br(this,"runOnTransientConnection",void 0),this.components=e,this.started=!1,this.protocol="/".concat(null!==(r=t.protocolPrefix)&&void 0!==r?r:"ipfs","/").concat("ping","/").concat("1.0.0"),this.timeout=null!==(n=t.timeout)&&void 0!==n?n:1e4,this.maxInboundStreams=null!==(i=t.maxInboundStreams)&&void 0!==i?i:2,this.maxOutboundStreams=null!==(o=t.maxOutboundStreams)&&void 0!==o?o:1,this.runOnTransientConnection=null===(s=t.runOnTransientConnection)||void 0===s||s}async start(){await this.components.registrar.handle(this.protocol,this.handleMessage,{maxInboundStreams:this.maxInboundStreams,maxOutboundStreams:this.maxOutboundStreams,runOnTransientConnection:this.runOnTransientConnection}),this.started=!0}async stop(){await this.components.registrar.unhandle(this.protocol),this.started=!1}isStarted(){return this.started}handleMessage(e){J1("incoming ping from %p",e.connection.remotePeer);const{stream:t}=e,r=Date.now();rl(t,t).catch((t=>{J1.error("incoming ping from %p failed with error",e.connection.remotePeer,t)})).finally((()=>{const t=Date.now()-r;J1("incoming ping from %p complete in %dms",e.connection.remotePeer,t)}))}async ping(e){var t;let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};J1("pinging %p",e);const n=Date.now(),i=dM(32),o=await this.components.connectionManager.openConnection(e,r);let s,a=()=>{};r.signal=null!==(t=r.signal)&&void 0!==t?t:AbortSignal.timeout(this.timeout);try{s=await o.newStream(this.protocol,{...r,runOnTransientConnection:this.runOnTransientConnection}),a=()=>{var e;null===(e=s)||void 0===e||e.abort(new rp("ping timeout",h0.ERR_TIMEOUT))},r.signal.addEventListener("abort",a,{once:!0});const e=await rl([i],s,(async e=>G0(e))),t=Date.now()-n;if(null==e)throw new rp("Did not receive a ping ack after ".concat(t,"ms"),h0.ERR_WRONG_PING_ACK);if(!Yn(i,e.subarray()))throw new rp("Received wrong ping ack after ".concat(t,"ms"),h0.ERR_WRONG_PING_ACK);return J1("ping %p complete in %dms",o.remotePeer,t),t}catch(l){var c;throw J1.error("error while pinging %p",o.remotePeer,l),null===(c=s)||void 0===c||c.abort(l),l}finally{r.signal.removeEventListener("abort",a),null!=s&&await s.close()}}}function $1(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return t=>new Z1(t,e)}const e2={lightPush:1,filter:1,store:1};async function t2(e){var t,r;const n=null!==(t=null===e||void 0===e?void 0:e.libp2p)&&void 0!==t?t:{},i=null!==(r=n.peerDiscovery)&&void 0!==r?r:[];null!==e&&void 0!==e&&e.defaultBootstrap&&(i.push(...r2()),Object.assign(n,{peerDiscovery:i}));const o=await n2(void 0,n,null===e||void 0===e?void 0:e.userAgent),s=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return t=>new Fl(t,e)}(e),a=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return t=>new xl(t,e)}(e),c=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return t=>new Rl(t,e)}(e);return new gc(null!==e&&void 0!==e?e:{},o,s,a,c)}function r2(){return[XR([sw.PROD],e2),e=>new sP(e)]}async function n2(e,t,r){const n=e?{pubsub:e}:{};return async function(e){const t=await q1(e);return!1!==e.start&&await t.start(),t}({connectionManager:{minConnections:1},transports:[$b({filter:Yb})],streamMuxers:[Cm()],connectionEncryption:[Ng()],...t,services:{identify:X1({agentVersion:null!==r&&void 0!==r?r:fc}),ping:$1(),...n,...null===t||void 0===t?void 0:t.services}})}const i2=xr.createContext({decoder:void 0,encoder:void 0}),o2=()=>xr.useContext(i2),s2=e=>{const t=function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];const[r,n]=xr.useState(ac({contentTopic:e,ephemeral:t})),[i,o]=xr.useState(lc(e));return xr.useEffect((()=>{n(ac({contentTopic:e,ephemeral:t})),o(lc(e))}),[e,t]),{encoder:r,decoder:i}}(e.contentTopic,e.ephemeral);return xr.createElement(i2.Provider,{value:t},e.children)},a2=e=>{const{factory:t,options:r,protocols:n=[]}=e,[i,o]=xr.useState(void 0),[s,a]=xr.useState(!0),[c,l]=xr.useState(void 0);return xr.useEffect((()=>{let e=!1;return a(!0),t(r).then((async t=>{e||(await t.start(),await Xl(t,n),o(t),a(!1))})).catch((e=>{a(!1),l("Failed at creating node: ".concat((null===e||void 0===e?void 0:e.message)||"no message"))})),()=>{e=!0}}),[]),{node:i,error:c,isLoading:s}},c2=e=>{const{node:t,encoder:r}=e,n=xr.useCallback((e=>t.lightPush.send(r,e)),[t,r]);return t||r?{push:n}:{}},l2=xr.createContext({node:void 0,isLoading:!1,error:void 0}),u2=()=>xr.useContext(l2),h2=e=>{const t=(r={options:e.options,protocols:e.protocols},a2({...r,factory:t2}));var r;return xr.createElement(l2.Provider,{value:t},e.children)};async function d2(e,t,r){let n=[];const i=function(e){const t=e.trim().replaceAll(/\s\s+/g," ");return t.split(" ")}(e),o=i.shift();switch(o){case"/help":["/nick <nickname>: set a new nickname","/info: some information about the node","/connect <Multiaddr>: connect to the given peer","/help: Display this help"].map((e=>n.push(e)));break;case"/nick":(function(e,t){return e?(t(e),["New nick: ".concat(e)]):["No nick provided"]})(i.shift(),r).map((e=>n.push(e)));break;case"/info":(function(e){return e?["PeerId: ".concat(e.libp2p.peerId.toString())]:["Waku node is starting"]})(t).map((e=>n.push(e)));break;case"/connect":(function(e,t){if(!t)return["Waku node is starting"];if(!e)return["No peer provided"];try{const r=ra(e),n=r.getPeerId();return n?(t.dial(r).catch((e=>console.error("Failed to dial ".concat(r),e))),["".concat(n,": ").concat(r.toString()," added to address book, autodial in progress")]):["Peer Id needed to dial"]}catch(r){return["Invalid multiaddr: "+r]}})(i.shift(),t).map((e=>n.push(e)));break;case"/peers":(await async function(e){if(!e)return["Waku node is starting"];let t=[];const r=await e.libp2p.peerStore.all();return Array.from(r).forEach((e=>{t.push(e.id.toString()+":");let r=" addresses: [";e.addresses.forEach((e=>{let{multiaddr:t}=e;r+=" "+t.toString()+","})),r=r.replace(/,$/,""),r+="]",t.push(r);let n=" protocols: [";n+=e.protocols,n+="]",t.push(n)})),0===t.length&&t.push("Not connected to any peer."),t}(t)).map((e=>n.push(e)));break;case"/connections":(function(e){if(!e)return["Waku node is starting"];let t=[],r=" connections: \n";return e.libp2p.getConnections().forEach((e=>{r+=e.remotePeer.toString()+", ",r+=JSON.stringify({direction:e.direction,timeline:e.timeline,multiplexer:e.multiplexer,encryption:e.encryption,status:e.status}),r+="; "+JSON.stringify(e.streams),r+="\n"})),t.push(r),0===t.length&&t.push("Not connected to any peer."),t})(t).map((e=>n.push(e)));break;default:n.push("Unknown Command '".concat(o,"'"))}return{command:o,response:n}}var p2=__webpack_require__(184);function f2(e){const t=e.messages.array.map((e=>{var t;return(0,p2.jsxs)("div",{className:"flex flex-col p-2 border-b border-gray-200",children:[(0,p2.jsx)("span",{className:"text-sm text-gray-500",children:e.nick}),(0,p2.jsx)("span",{className:"text-sm text-gray-500",children:y2(e)}),(0,p2.jsx)("p",{className:"text-gray-700",children:e.payloadAsUtf8})]},e.nick+e.payloadAsUtf8+e.timestamp.valueOf()+(null===(t=e.sentTimestamp)||void 0===t?void 0:t.valueOf()))}));return(0,p2.jsxs)("div",{className:"overflow-y-auto h-full",children:[t,(0,p2.jsx)(g2,{messages:e.messages.array})]})}function y2(e){return e.timestamp.toLocaleString([],{month:"short",day:"numeric",hour:"numeric",minute:"2-digit",hour12:!1})}const g2=e=>{const t=(0,xr.useRef)(null);return(0,xr.useEffect)((()=>{t.current&&t.current.scrollIntoView()}),[e.messages]),(0,p2.jsx)("div",{ref:t})};function m2(e){const{hasLightPushPeers:t}=e,{node:r}=u2(),[n,i]=(0,xr.useState)(""),[o,s]=(0,xr.useState)(!1),a=async()=>{if(e.sendMessage&&n){try{await e.sendMessage(n)}catch(t){console.error("Failed to send message: ".concat(t))}i("")}};return(0,xr.useEffect)((()=>{n.startsWith("/")||t?s(!0):r&&s(!1)}),[r,n,t]),(0,p2.jsxs)("div",{className:"flex p-2",children:[(0,p2.jsx)("input",{type:"text",value:n,onChange:e=>{e.preventDefault(),i(e.target.value)},onKeyDown:async e=>{!o||"Enter"!==e.key||e.altKey||e.ctrlKey||e.shiftKey||await a()},className:"flex-grow p-2 border border-gray-300 rounded-l-md",placeholder:"Type your message..."}),(0,p2.jsx)("button",{onClick:a,className:"flex-none px-4 py-2 text-white ".concat(o?"bg-blue-500":"bg-blue-300 cursor-not-allowed"," rounded-r-md"),disabled:!o,children:"Send"})]})}ya._configure(),pa._configure(fa),ga._configure(ma);const b2=["uint64","int64","sint64","fixed64","sfixed64"];function w2(e){return function(e){for(const t of b2){if(null==e[t])continue;const r=e[t];e[t]=function(){return BigInt(r.call(this).toString())}}return e}(new pa(e))}function v2(){return function(e){for(const t of b2){if(null==e[t])continue;const r=e[t];e[t]=function(e){return r.call(this,e.toString())}}return e}(ga.create())}var _2;let E2;!function(e){e[e.VARINT=0]="VARINT",e[e.BIT64=1]="BIT64",e[e.LENGTH_DELIMITED=2]="LENGTH_DELIMITED",e[e.START_GROUP=3]="START_GROUP",e[e.END_GROUP=4]="END_GROUP",e[e.BIT32=5]="BIT32"}(_2||(_2={})),function(e){let t;e.codec=()=>(null==t&&(t=function(e,t){return function(e,t,r,n){return{name:e,type:t,encode:r,decode:n}}("message",_2.LENGTH_DELIMITED,e,t)}((function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!1!==r.lengthDelimited&&t.fork(),null==e.timestamp)throw new Error('Protocol error: required field "timestamp" was not found in object');if(t.uint32(8),t.uint64(e.timestamp),null==e.nick)throw new Error('Protocol error: required field "nick" was not found in object');if(t.uint32(18),t.string(e.nick),null==e.payload)throw new Error('Protocol error: required field "payload" was not found in object');t.uint32(26),t.bytes(e.payload),!1!==r.lengthDelimited&&t.ldelim()}),((e,t)=>{const r={timestamp:0n,nick:"",payload:new Uint8Array(0)},n=null==t?e.len:e.pos+t;for(;e.pos<n;){const t=e.uint32();switch(t>>>3){case 1:r.timestamp=e.uint64();break;case 2:r.nick=e.string();break;case 3:r.payload=e.bytes();break;default:e.skipType(7&t)}}if(null==r.timestamp)throw new Error('Protocol error: value for required field "timestamp" was not found in protobuf');if(null==r.nick)throw new Error('Protocol error: value for required field "nick" was not found in protobuf');if(null==r.payload)throw new Error('Protocol error: value for required field "payload" was not found in protobuf');return r}))),t),e.encode=e=>function(e,t){const r=v2();return t.encode(e,r,{lengthDelimited:!1}),r.finish()}(e,E2.codec()),e.decode=e=>function(e,t){const r=w2(e instanceof Uint8Array?e:e.subarray());return t.decode(r)}(e,E2.codec())}(E2||(E2={}));class S2{constructor(e){this.proto=e}static fromUtf8String(e,t,r){const n=BigInt(Math.floor(e.valueOf()/1e3)),i=da(r);return new S2({timestamp:n,nick:t,payload:i})}static decode(e){const t=E2.decode(e);return new S2(t)}encode(){return E2.encode(this.proto)}get timestamp(){return new Date(Number(BigInt(this.proto.timestamp)*BigInt(1e3)))}get nick(){return this.proto.nick}get payloadAsUtf8(){return this.proto.payload?ha(this.proto.payload):""}}var A2=__webpack_require__(8555);class k2{constructor(e,t){this.chatMessage=void 0,this.sentTimestamp=void 0,this.chatMessage=e,this.sentTimestamp=t}static cmp(e,t){return e.timestamp.getTime()<t.timestamp.getTime()}static isEqual(e,t){return e.timestamp.valueOf()===t.timestamp.valueOf()&&e.chatMessage.nick===t.chatMessage.nick&&e.chatMessage.payloadAsUtf8===t.chatMessage.payloadAsUtf8}static fromWakuMessage(e){if(e.payload)try{const t=S2.decode(e.payload);if(t)return new k2(t,e.timestamp)}catch(t){console.error("Failed to decode chat message",t)}}static fromUtf8String(e,t){const r=new Date;return new k2(S2.fromUtf8String(r,e,t),r)}get nick(){return this.chatMessage.nick}get timestamp(){return this.chatMessage.timestamp}get payloadAsUtf8(){return this.chatMessage.payloadAsUtf8}}class I2{constructor(e,t){this.orderCmp=e,this.isEqual=t,this.array=void 0,this.array=[]}push(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];for(const n of t)this.insertInOrder(this.array,n)}insertInOrder(e,t){let r=0;for(;r<e.length;)if(!this.isEqual(t,e[r])){if(this.orderCmp(t,e[r]))break;r++}return e.splice(r,0,t),e}}const R2=()=>{const[e,t]=(0,xr.useState)((()=>{const e=window.localStorage.getItem("nick");return null!==e?e:(0,A2.R)()}));return(0,xr.useEffect)((()=>{localStorage.setItem("nick",e)}),[e]),[e,t]},P2=e=>{const{messages:t}=(e=>{const{node:t,decoder:r}=e,[n,i]=xr.useState(void 0),[o,s]=xr.useState(!1),[a,c]=xr.useState([]),l=xr.useCallback((e=>{e&&c((t=>[...t,e]))}),[c]);return xr.useEffect((()=>{if(!t||!r)return;let e=null;return s(!0),t.filter.subscribe([r],l).then((t=>{s(!1),e=t})).catch((e=>{s(!1),i("Failed to subscribe to filer: ".concat((null===e||void 0===e?void 0:e.message)||"no message"))})),()=>{null===e||void 0===e||e()}}),[t,r,l,i,s]),{error:n,messages:a,isLoading:o}})(e),{messages:r}=(e=>{const{node:t,decoder:r,options:n}=e,[i,o]=xr.useState(void 0),[s,a]=xr.useState(!1),[c,l]=xr.useState([]),u=xr.useCallback((e=>{e&&e.length&&l((t=>[...t,...e]))}),[l]);return xr.useEffect((()=>{if(!t||!r)return;let e=!1;return a(!0),Promise.resolve().then((async()=>{for await(const i of t.store.queryGenerator([r],n)){if(e)return;const t=(await Promise.all(i)).filter((e=>!!e));u(t)}a(!1)})).catch((e=>{a(!1),o("Failed to query messages from store: ".concat((null===e||void 0===e?void 0:e.message)||"no message"))})),()=>{e=!0}}),[t,r,u,o,a]),{error:i,isLoading:s,messages:c}})(e),[n,i]=(0,xr.useState)([]);return[xr.useMemo((()=>{const e=new I2(k2.cmp,k2.isEqual),i=new Date;i.setDate(i.getDate()+1);const o=[...r,...t].map(k2.fromWakuMessage).filter((e=>!!e)).filter((e=>""!==e.payloadAsUtf8)).filter((e=>e.timestamp.valueOf()<i.valueOf()));return e.push(...o),e.push(...n),e}),[r,t,n]),e=>{e&&e.length&&i((t=>[...t,...e]))}]},C2=e=>{const[t,r]=(0,xr.useState)(new Set),[n,i]=(0,xr.useState)(new Set),[o,s]=(0,xr.useState)(new Set),[a,c]=(0,xr.useState)(new Set);return(0,xr.useEffect)((()=>{if(!e)return;const t=e=>{r((t=>new Set([...t,e.detail])))},n=e=>{i((t=>new Set([...t,e.detail])))},o=e=>{s((t=>new Set([...t,e.detail])))},a=e=>{c((t=>new Set([...t,e.detail])))};return(async()=>{const{CONNECTED:l,DISCOVERED:u}=await e.connectionManager.getPeersByDiscovery();i(new Set(l[Qs.BOOTSTRAP].map((e=>e.id)))),c(new Set(l[Qs.PEER_EXCHANGE].map((e=>e.id)))),r(new Set(u[Qs.BOOTSTRAP].map((e=>e.id)))),s(new Set(u[Qs.PEER_EXCHANGE].map((e=>e.id)))),e.libp2p.addEventListener("peer:disconnect",(e=>{const t=e.detail;i((e=>(e.delete(t),e)))})),e.connectionManager.addEventListener(Xs.PEER_DISCOVERY_BOOTSTRAP,t),e.connectionManager.addEventListener(Xs.PEER_CONNECT_BOOTSTRAP,n),e.connectionManager.addEventListener(Xs.PEER_DISCOVERY_PEER_EXCHANGE,o),e.connectionManager.addEventListener(Xs.PEER_CONNECT_PEER_EXCHANGE,a)})(),()=>{e.connectionManager.removeEventListener(Xs.PEER_DISCOVERY_BOOTSTRAP,t),e.connectionManager.removeEventListener(Xs.PEER_CONNECT_BOOTSTRAP,n),e.connectionManager.removeEventListener(Xs.PEER_DISCOVERY_PEER_EXCHANGE,o),e.connectionManager.removeEventListener(Xs.PEER_CONNECT_PEER_EXCHANGE,a)}}),[e]),{discoveredBootstrapPeers:t,connectedBootstrapPeers:n,discoveredPeerExchangePeers:o,connectedPeerExchangePeers:a}},T2=e=>{const{node:t}=e,[r,n]=xr.useState({});return(0,xr.useEffect)((()=>{if(!t)return;const e=async()=>{const e=t.libp2p.getPeers(),r=await Promise.all(e.map((e=>t.libp2p.peerStore.get(e))));n({allConnected:r.map((e=>e.id)),storePeers:r.filter((e=>e.protocols.includes(ql))).map((e=>e.id)),filterPeers:r.filter((e=>e.protocols.includes("/vac/waku/filter-subscribe/2.0.0-beta1"))).map((e=>e.id)),lightPushPeers:r.filter((e=>e.protocols.includes(ql))).map((e=>e.id))})};return e(),t.libp2p.addEventListener("peer:identify",e),()=>{t.libp2p.removeEventListener("peer:identify",e)}}),[t,n]),r};function x2(e){const{node:t}=u2(),{encoder:r}=o2(),{push:n}=c2({node:t,encoder:r}),{connectedBootstrapPeers:i,connectedPeerExchangePeers:o,discoveredBootstrapPeers:s,discoveredPeerExchangePeers:a}=C2(t),{allConnected:c,storePeers:l,filterPeers:u,lightPushPeers:h}=T2({node:t}),d=D2(null===c||void 0===c?void 0:c.length),p=D2(null===h||void 0===h?void 0:h.length),f=D2(null===u||void 0===u?void 0:u.length),y=D2(null===l||void 0===l?void 0:l.length);return(0,p2.jsxs)("div",{className:"h-screen flex flex-col",children:[(0,p2.jsxs)("div",{className:"flex justify-between items-center bg-gray-800 text-white p-4",children:[(0,p2.jsxs)("div",{children:[(0,p2.jsxs)("div",{children:["Peers Connected: ",d]}),(0,p2.jsxs)("div",{className:"mt-2",children:["Store: ",y]}),(0,p2.jsxs)("div",{children:["Filter: ",f]}),(0,p2.jsxs)("div",{children:["Light Push: ",p]})]}),(0,p2.jsx)("div",{children:"Waku v2 Web Chat"}),(0,p2.jsxs)("div",{children:[(0,p2.jsxs)("div",{className:"mt-2",children:["Peers Discovered:"," ",s.size+a.size]}),(0,p2.jsxs)("div",{children:["Bootstrap: ",s.size," Peer Exchange:"," ",a.size]}),(0,p2.jsxs)("div",{className:"mt-2",children:["Peers Connected:"," ",i.size+o.size]}),(0,p2.jsxs)("div",{children:["Bootstrap: ",i.size," Peer Exchange:"," ",o.size]})]})]}),(0,p2.jsx)(f2,{messages:e.messages}),(0,p2.jsx)(m2,{hasLightPushPeers:!!h,sendMessage:async t=>{if(n&&t)if(t.startsWith("/"))e.commandHandler(t);else{const r=new Date,i=S2.fromUtf8String(r,e.nick,t).encode();await n({payload:i,timestamp:r})}}})]})}function D2(e){return e||0}const N2=new Date;N2.setTime(Date.now()-6048e5);const L2=new Date;function B2(){const{node:e}=u2(),{decoder:t}=o2(),[r,n]=P2({node:e,decoder:t,options:{pageSize:5,pageDirection:Ys.FORWARD,timeFilter:{startTime:N2,endTime:L2}}}),[i,o]=R2();return(0,p2.jsx)("div",{className:"chat-app",style:{height:"100vh",width:"100vw",overflow:"hidden"},children:(0,p2.jsx)(x2,{nick:i,messages:r,commandHandler:t=>{d2(t,e,o).then((e=>{let{command:t,response:r}=e;const i=r.map((e=>k2.fromUtf8String(t,e)));n(i)}))}})})}Dr.render((0,p2.jsx)(xr.StrictMode,{children:(0,p2.jsx)(h2,{options:{defaultBootstrap:!0},protocols:[Gs.Store,Gs.Filter,Gs.LightPush],children:(0,p2.jsx)(s2,{contentTopic:"/toy-chat/2/huilong/proto",children:(0,p2.jsx)(B2,{})})})}),document.getElementById("root"))})()})();
|
|
//# sourceMappingURL=main.091ffc30.js.map |