@libp2p/kad-dht 12.0.0 → 12.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.min.js +19 -19
- package/package.json +12 -12
package/dist/index.min.js
CHANGED
|
@@ -1,29 +1,29 @@
|
|
|
1
1
|
(function (root, factory) {(typeof module === 'object' && module.exports) ? module.exports = factory() : root.Libp2PKadDht = factory()}(typeof self !== 'undefined' ? self : this, function () {
|
|
2
|
-
"use strict";var Libp2PKadDht=(()=>{var J5=Object.create;var R0=Object.defineProperty;var j5=Object.getOwnPropertyDescriptor;var t8=Object.getOwnPropertyNames;var e8=Object.getPrototypeOf,r8=Object.prototype.hasOwnProperty;var nt=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Tt=(e,t)=>{for(var r in t)R0(e,r,{get:t[r],enumerable:!0})},n2=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of t8(t))!r8.call(e,i)&&i!==r&&R0(e,i,{get:()=>t[i],enumerable:!(n=j5(t,i))||n.enumerable});return e};var bt=(e,t,r)=>(r=e!=null?J5(e8(e)):{},n2(t||!e||!e.__esModule?R0(r,"default",{value:e,enumerable:!0}):r,e)),n8=e=>n2(R0({},"__esModule",{value:!0}),e);var aa=nt(e0=>{(function(){var e,t,r,n,i,o,s,a;a=function(c){var u,f,l,p;return u=(c&255<<24)>>>24,f=(c&255<<16)>>>16,l=(c&65280)>>>8,p=c&255,[u,f,l,p].join(".")},s=function(c){var u,f,l,p,d,h;for(u=[],l=p=0;p<=3&&c.length!==0;l=++p){if(l>0){if(c[0]!==".")throw new Error("Invalid IP");c=c.substring(1)}h=t(c),d=h[0],f=h[1],c=c.substring(f),u.push(d)}if(c.length!==0)throw new Error("Invalid IP");switch(u.length){case 1:if(u[0]>4294967295)throw new Error("Invalid IP");return u[0]>>>0;case 2:if(u[0]>255||u[1]>16777215)throw new Error("Invalid IP");return(u[0]<<24|u[1])>>>0;case 3:if(u[0]>255||u[1]>255||u[2]>65535)throw new Error("Invalid IP");return(u[0]<<24|u[1]<<16|u[2])>>>0;case 4:if(u[0]>255||u[1]>255||u[2]>255||u[3]>255)throw new Error("Invalid IP");return(u[0]<<24|u[1]<<16|u[2]<<8|u[3])>>>0;default:throw new Error("Invalid IP")}},r=function(c){return c.charCodeAt(0)},n=r("0"),o=r("a"),i=r("A"),t=function(c){var u,f,l,p,d;for(p=0,u=10,f="9",l=0,c.length>1&&c[l]==="0"&&(c[l+1]==="x"||c[l+1]==="X"?(l+=2,u=16):"0"<=c[l+1]&&c[l+1]<="9"&&(l++,u=8,f="7")),d=l;l<c.length;){if("0"<=c[l]&&c[l]<=f)p=p*u+(r(c[l])-n)>>>0;else if(u===16)if("a"<=c[l]&&c[l]<="f")p=p*u+(10+r(c[l])-o)>>>0;else if("A"<=c[l]&&c[l]<="F")p=p*u+(10+r(c[l])-i)>>>0;else break;else break;if(p>4294967295)throw new Error("too large");l++}if(l===d)throw new Error("empty octet");return[p,l]},e=function(){function c(u,f){var l,p,d,h;if(typeof u!="string")throw new Error("Missing `net' parameter");if(f||(h=u.split("/",2),u=h[0],f=h[1]),f||(f=32),typeof f=="string"&&f.indexOf(".")>-1){try{this.maskLong=s(f)}catch(g){throw l=g,new Error("Invalid mask: "+f)}for(p=d=32;d>=0;p=--d)if(this.maskLong===4294967295<<32-p>>>0){this.bitmask=p;break}}else if(f||f===0)this.bitmask=parseInt(f,10),this.maskLong=0,this.bitmask>0&&(this.maskLong=4294967295<<32-this.bitmask>>>0);else throw new Error("Invalid mask: empty");try{this.netLong=(s(u)&this.maskLong)>>>0}catch(g){throw l=g,new Error("Invalid net address: "+u)}if(!(this.bitmask<=32))throw new Error("Invalid mask for ip4: "+f);this.size=Math.pow(2,32-this.bitmask),this.base=a(this.netLong),this.mask=a(this.maskLong),this.hostmask=a(~this.maskLong),this.first=this.bitmask<=30?a(this.netLong+1):this.base,this.last=this.bitmask<=30?a(this.netLong+this.size-2):a(this.netLong+this.size-1),this.broadcast=this.bitmask<=30?a(this.netLong+this.size-1):void 0}return c.prototype.contains=function(u){return typeof u=="string"&&(u.indexOf("/")>0||u.split(".").length!==4)&&(u=new c(u)),u instanceof c?this.contains(u.base)&&this.contains(u.broadcast||u.last):(s(u)&this.maskLong)>>>0===(this.netLong&this.maskLong)>>>0},c.prototype.next=function(u){return u==null&&(u=1),new c(a(this.netLong+this.size*u),this.mask)},c.prototype.forEach=function(u){var f,l,p;for(p=s(this.first),l=s(this.last),f=0;p<=l;)u(a(p),p,f),f++,p++},c.prototype.toString=function(){return this.base+"/"+this.bitmask},c}(),e0.ip2long=s,e0.long2ip=a,e0.Netmask=e}).call(e0)});var pa=nt((da,Y0)=>{(function(e){"use strict";let t="(0?\\d+|0x[a-f0-9]+)",r={fourOctet:new RegExp(`^${t}\\.${t}\\.${t}\\.${t}$`,"i"),threeOctet:new RegExp(`^${t}\\.${t}\\.${t}$`,"i"),twoOctet:new RegExp(`^${t}\\.${t}$`,"i"),longValue:new RegExp(`^${t}$`,"i")},n=new RegExp("^0[0-7]+$","i"),i=new RegExp("^0x[a-f0-9]+$","i"),o="%[0-9a-z]{1,}",s="(?:[0-9a-f]+::?)+",a={zoneIndex:new RegExp(o,"i"),native:new RegExp(`^(::)?(${s})?([0-9a-f]+)?(::)?(${o})?$`,"i"),deprecatedTransitional:new RegExp(`^(?:::)(${t}\\.${t}\\.${t}\\.${t}(${o})?)$`,"i"),transitional:new RegExp(`^((?:${s})|(?:::)(?:${s})?)${t}\\.${t}\\.${t}\\.${t}(${o})?$`,"i")};function c(d,h){if(d.indexOf("::")!==d.lastIndexOf("::"))return null;let g=0,y=-1,m=(d.match(a.zoneIndex)||[])[0],x,v;for(m&&(m=m.substring(1),d=d.replace(/%.+$/,""));(y=d.indexOf(":",y+1))>=0;)g++;if(d.substr(0,2)==="::"&&g--,d.substr(-2,2)==="::"&&g--,g>h)return null;for(v=h-g,x=":";v--;)x+="0:";return d=d.replace("::",x),d[0]===":"&&(d=d.slice(1)),d[d.length-1]===":"&&(d=d.slice(0,-1)),h=function(){let T=d.split(":"),E=[];for(let S=0;S<T.length;S++)E.push(parseInt(T[S],16));return E}(),{parts:h,zoneId:m}}function u(d,h,g,y){if(d.length!==h.length)throw new Error("ipaddr: cannot match CIDR for objects with different lengths");let m=0,x;for(;y>0;){if(x=g-y,x<0&&(x=0),d[m]>>x!==h[m]>>x)return!1;y-=g,m+=1}return!0}function f(d){if(i.test(d))return parseInt(d,16);if(d[0]==="0"&&!isNaN(parseInt(d[1],10))){if(n.test(d))return parseInt(d,8);throw new Error(`ipaddr: cannot parse ${d} as octal`)}return parseInt(d,10)}function l(d,h){for(;d.length<h;)d=`0${d}`;return d}let p={};p.IPv4=function(){function d(h){if(h.length!==4)throw new Error("ipaddr: ipv4 octet count should be 4");let g,y;for(g=0;g<h.length;g++)if(y=h[g],!(0<=y&&y<=255))throw new Error("ipaddr: ipv4 octet should fit in 8 bits");this.octets=h}return d.prototype.SpecialRanges={unspecified:[[new d([0,0,0,0]),8]],broadcast:[[new d([255,255,255,255]),32]],multicast:[[new d([224,0,0,0]),4]],linkLocal:[[new d([169,254,0,0]),16]],loopback:[[new d([127,0,0,0]),8]],carrierGradeNat:[[new d([100,64,0,0]),10]],private:[[new d([10,0,0,0]),8],[new d([172,16,0,0]),12],[new d([192,168,0,0]),16]],reserved:[[new d([192,0,0,0]),24],[new d([192,0,2,0]),24],[new d([192,88,99,0]),24],[new d([198,18,0,0]),15],[new d([198,51,100,0]),24],[new d([203,0,113,0]),24],[new d([240,0,0,0]),4]]},d.prototype.kind=function(){return"ipv4"},d.prototype.match=function(h,g){let y;if(g===void 0&&(y=h,h=y[0],g=y[1]),h.kind()!=="ipv4")throw new Error("ipaddr: cannot match ipv4 address with non-ipv4 one");return u(this.octets,h.octets,8,g)},d.prototype.prefixLengthFromSubnetMask=function(){let h=0,g=!1,y={0:8,128:7,192:6,224:5,240:4,248:3,252:2,254:1,255:0},m,x,v;for(m=3;m>=0;m-=1)if(x=this.octets[m],x in y){if(v=y[x],g&&v!==0)return null;v!==8&&(g=!0),h+=v}else return null;return 32-h},d.prototype.range=function(){return p.subnetMatch(this,this.SpecialRanges)},d.prototype.toByteArray=function(){return this.octets.slice(0)},d.prototype.toIPv4MappedAddress=function(){return p.IPv6.parse(`::ffff:${this.toString()}`)},d.prototype.toNormalizedString=function(){return this.toString()},d.prototype.toString=function(){return this.octets.join(".")},d}(),p.IPv4.broadcastAddressFromCIDR=function(d){try{let h=this.parseCIDR(d),g=h[0].toByteArray(),y=this.subnetMaskFromPrefixLength(h[1]).toByteArray(),m=[],x=0;for(;x<4;)m.push(parseInt(g[x],10)|parseInt(y[x],10)^255),x++;return new this(m)}catch{throw new Error("ipaddr: the address does not have IPv4 CIDR format")}},p.IPv4.isIPv4=function(d){return this.parser(d)!==null},p.IPv4.isValid=function(d){try{return new this(this.parser(d)),!0}catch{return!1}},p.IPv4.isValidFourPartDecimal=function(d){return!!(p.IPv4.isValid(d)&&d.match(/^(0|[1-9]\d*)(\.(0|[1-9]\d*)){3}$/))},p.IPv4.networkAddressFromCIDR=function(d){let h,g,y,m,x;try{for(h=this.parseCIDR(d),y=h[0].toByteArray(),x=this.subnetMaskFromPrefixLength(h[1]).toByteArray(),m=[],g=0;g<4;)m.push(parseInt(y[g],10)&parseInt(x[g],10)),g++;return new this(m)}catch{throw new Error("ipaddr: the address does not have IPv4 CIDR format")}},p.IPv4.parse=function(d){let h=this.parser(d);if(h===null)throw new Error("ipaddr: string is not formatted like an IPv4 Address");return new this(h)},p.IPv4.parseCIDR=function(d){let h;if(h=d.match(/^(.+)\/(\d+)$/)){let g=parseInt(h[2]);if(g>=0&&g<=32){let y=[this.parse(h[1]),g];return Object.defineProperty(y,"toString",{value:function(){return this.join("/")}}),y}}throw new Error("ipaddr: string is not formatted like an IPv4 CIDR range")},p.IPv4.parser=function(d){let h,g,y;if(h=d.match(r.fourOctet))return function(){let m=h.slice(1,6),x=[];for(let v=0;v<m.length;v++)g=m[v],x.push(f(g));return x}();if(h=d.match(r.longValue)){if(y=f(h[1]),y>4294967295||y<0)throw new Error("ipaddr: address outside defined range");return function(){let m=[],x;for(x=0;x<=24;x+=8)m.push(y>>x&255);return m}().reverse()}else return(h=d.match(r.twoOctet))?function(){let m=h.slice(1,4),x=[];if(y=f(m[1]),y>16777215||y<0)throw new Error("ipaddr: address outside defined range");return x.push(f(m[0])),x.push(y>>16&255),x.push(y>>8&255),x.push(y&255),x}():(h=d.match(r.threeOctet))?function(){let m=h.slice(1,5),x=[];if(y=f(m[2]),y>65535||y<0)throw new Error("ipaddr: address outside defined range");return x.push(f(m[0])),x.push(f(m[1])),x.push(y>>8&255),x.push(y&255),x}():null},p.IPv4.subnetMaskFromPrefixLength=function(d){if(d=parseInt(d),d<0||d>32)throw new Error("ipaddr: invalid IPv4 prefix length");let h=[0,0,0,0],g=0,y=Math.floor(d/8);for(;g<y;)h[g]=255,g++;return y<4&&(h[y]=Math.pow(2,d%8)-1<<8-d%8),new this(h)},p.IPv6=function(){function d(h,g){let y,m;if(h.length===16)for(this.parts=[],y=0;y<=14;y+=2)this.parts.push(h[y]<<8|h[y+1]);else if(h.length===8)this.parts=h;else throw new Error("ipaddr: ipv6 part count should be 8 or 16");for(y=0;y<this.parts.length;y++)if(m=this.parts[y],!(0<=m&&m<=65535))throw new Error("ipaddr: ipv6 part should fit in 16 bits");g&&(this.zoneId=g)}return d.prototype.SpecialRanges={unspecified:[new d([0,0,0,0,0,0,0,0]),128],linkLocal:[new d([65152,0,0,0,0,0,0,0]),10],multicast:[new d([65280,0,0,0,0,0,0,0]),8],loopback:[new d([0,0,0,0,0,0,0,1]),128],uniqueLocal:[new d([64512,0,0,0,0,0,0,0]),7],ipv4Mapped:[new d([0,0,0,0,0,65535,0,0]),96],rfc6145:[new d([0,0,0,0,65535,0,0,0]),96],rfc6052:[new d([100,65435,0,0,0,0,0,0]),96],"6to4":[new d([8194,0,0,0,0,0,0,0]),16],teredo:[new d([8193,0,0,0,0,0,0,0]),32],reserved:[[new d([8193,3512,0,0,0,0,0,0]),32]],benchmarking:[new d([8193,2,0,0,0,0,0,0]),48],amt:[new d([8193,3,0,0,0,0,0,0]),32],as112v6:[new d([8193,4,274,0,0,0,0,0]),48],deprecated:[new d([8193,16,0,0,0,0,0,0]),28],orchid2:[new d([8193,32,0,0,0,0,0,0]),28]},d.prototype.isIPv4MappedAddress=function(){return this.range()==="ipv4Mapped"},d.prototype.kind=function(){return"ipv6"},d.prototype.match=function(h,g){let y;if(g===void 0&&(y=h,h=y[0],g=y[1]),h.kind()!=="ipv6")throw new Error("ipaddr: cannot match ipv6 address with non-ipv6 one");return u(this.parts,h.parts,16,g)},d.prototype.prefixLengthFromSubnetMask=function(){let h=0,g=!1,y={0:16,32768:15,49152:14,57344:13,61440:12,63488:11,64512:10,65024:9,65280:8,65408:7,65472:6,65504:5,65520:4,65528:3,65532:2,65534:1,65535:0},m,x;for(let v=7;v>=0;v-=1)if(m=this.parts[v],m in y){if(x=y[m],g&&x!==0)return null;x!==16&&(g=!0),h+=x}else return null;return 128-h},d.prototype.range=function(){return p.subnetMatch(this,this.SpecialRanges)},d.prototype.toByteArray=function(){let h,g=[],y=this.parts;for(let m=0;m<y.length;m++)h=y[m],g.push(h>>8),g.push(h&255);return g},d.prototype.toFixedLengthString=function(){let h=function(){let y=[];for(let m=0;m<this.parts.length;m++)y.push(l(this.parts[m].toString(16),4));return y}.call(this).join(":"),g="";return this.zoneId&&(g=`%${this.zoneId}`),h+g},d.prototype.toIPv4Address=function(){if(!this.isIPv4MappedAddress())throw new Error("ipaddr: trying to convert a generic ipv6 address to ipv4");let h=this.parts.slice(-2),g=h[0],y=h[1];return new p.IPv4([g>>8,g&255,y>>8,y&255])},d.prototype.toNormalizedString=function(){let h=function(){let y=[];for(let m=0;m<this.parts.length;m++)y.push(this.parts[m].toString(16));return y}.call(this).join(":"),g="";return this.zoneId&&(g=`%${this.zoneId}`),h+g},d.prototype.toRFC5952String=function(){let h=/((^|:)(0(:|$)){2,})/g,g=this.toNormalizedString(),y=0,m=-1,x;for(;x=h.exec(g);)x[0].length>m&&(y=x.index,m=x[0].length);return m<0?g:`${g.substring(0,y)}::${g.substring(y+m)}`},d.prototype.toString=function(){return this.toRFC5952String()},d}(),p.IPv6.broadcastAddressFromCIDR=function(d){try{let h=this.parseCIDR(d),g=h[0].toByteArray(),y=this.subnetMaskFromPrefixLength(h[1]).toByteArray(),m=[],x=0;for(;x<16;)m.push(parseInt(g[x],10)|parseInt(y[x],10)^255),x++;return new this(m)}catch(h){throw new Error(`ipaddr: the address does not have IPv6 CIDR format (${h})`)}},p.IPv6.isIPv6=function(d){return this.parser(d)!==null},p.IPv6.isValid=function(d){if(typeof d=="string"&&d.indexOf(":")===-1)return!1;try{let h=this.parser(d);return new this(h.parts,h.zoneId),!0}catch{return!1}},p.IPv6.networkAddressFromCIDR=function(d){let h,g,y,m,x;try{for(h=this.parseCIDR(d),y=h[0].toByteArray(),x=this.subnetMaskFromPrefixLength(h[1]).toByteArray(),m=[],g=0;g<16;)m.push(parseInt(y[g],10)&parseInt(x[g],10)),g++;return new this(m)}catch(v){throw new Error(`ipaddr: the address does not have IPv6 CIDR format (${v})`)}},p.IPv6.parse=function(d){let h=this.parser(d);if(h.parts===null)throw new Error("ipaddr: string is not formatted like an IPv6 Address");return new this(h.parts,h.zoneId)},p.IPv6.parseCIDR=function(d){let h,g,y;if((g=d.match(/^(.+)\/(\d+)$/))&&(h=parseInt(g[2]),h>=0&&h<=128))return y=[this.parse(g[1]),h],Object.defineProperty(y,"toString",{value:function(){return this.join("/")}}),y;throw new Error("ipaddr: string is not formatted like an IPv6 CIDR range")},p.IPv6.parser=function(d){let h,g,y,m,x,v;if(y=d.match(a.deprecatedTransitional))return this.parser(`::ffff:${y[1]}`);if(a.native.test(d))return c(d,8);if((y=d.match(a.transitional))&&(v=y[6]||"",h=c(y[1].slice(0,-1)+v,6),h.parts)){for(x=[parseInt(y[2]),parseInt(y[3]),parseInt(y[4]),parseInt(y[5])],g=0;g<x.length;g++)if(m=x[g],!(0<=m&&m<=255))return null;return h.parts.push(x[0]<<8|x[1]),h.parts.push(x[2]<<8|x[3]),{parts:h.parts,zoneId:h.zoneId}}return null},p.IPv6.subnetMaskFromPrefixLength=function(d){if(d=parseInt(d),d<0||d>128)throw new Error("ipaddr: invalid IPv6 prefix length");let h=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],g=0,y=Math.floor(d/8);for(;g<y;)h[g]=255,g++;return y<16&&(h[y]=Math.pow(2,d%8)-1<<8-d%8),new this(h)},p.fromByteArray=function(d){let h=d.length;if(h===4)return new p.IPv4(d);if(h===16)return new p.IPv6(d);throw new Error("ipaddr: the binary input is neither an IPv6 nor IPv4 address")},p.isValid=function(d){return p.IPv6.isValid(d)||p.IPv4.isValid(d)},p.parse=function(d){if(p.IPv6.isValid(d))return p.IPv6.parse(d);if(p.IPv4.isValid(d))return p.IPv4.parse(d);throw new Error("ipaddr: the address has neither IPv6 nor IPv4 format")},p.parseCIDR=function(d){try{return p.IPv6.parseCIDR(d)}catch{try{return p.IPv4.parseCIDR(d)}catch{throw new Error("ipaddr: the address has neither IPv6 nor IPv4 CIDR format")}}},p.process=function(d){let h=this.parse(d);return h.kind()==="ipv6"&&h.isIPv4MappedAddress()?h.toIPv4Address():h},p.subnetMatch=function(d,h,g){let y,m,x,v;g==null&&(g="unicast");for(m in h)if(Object.prototype.hasOwnProperty.call(h,m)){for(x=h[m],x[0]&&!(x[0]instanceof Array)&&(x=[x]),y=0;y<x.length;y++)if(v=x[y],d.kind()===v[0].kind()&&d.match.apply(d,v))return m}return g},typeof Y0<"u"&&Y0.exports?Y0.exports=p:e.ipaddr=p})(da)});var Qa=nt((ox,Ya)=>{"use strict";function Ga(e,t){for(let r in t)Object.defineProperty(e,r,{value:t[r],enumerable:!0,configurable:!0});return e}function Ac(e,t,r){if(!e||typeof e=="string")throw new TypeError("Please pass an Error to err-code");r||(r={}),typeof t=="object"&&(r=t,t=""),t&&(r.code=t);try{return Ga(e,r)}catch{r.message=e.message,r.stack=e.stack;let i=function(){};return i.prototype=Object.create(Object.getPrototypeOf(e)),Ga(new i,r)}}Ya.exports=Ac});var ct=nt((Bx,Ja)=>{Ja.exports={options:{usePureJavaScript:!1}}});var e3=nt((Tx,t3)=>{var Uo={};t3.exports=Uo;var ja={};Uo.encode=function(e,t,r){if(typeof t!="string")throw new TypeError('"alphabet" must be a string.');if(r!==void 0&&typeof r!="number")throw new TypeError('"maxline" must be a number.');var n="";if(!(e instanceof Uint8Array))n=Cc(e,t);else{var i=0,o=t.length,s=t.charAt(0),a=[0];for(i=0;i<e.length;++i){for(var c=0,u=e[i];c<a.length;++c)u+=a[c]<<8,a[c]=u%o,u=u/o|0;for(;u>0;)a.push(u%o),u=u/o|0}for(i=0;e[i]===0&&i<e.length-1;++i)n+=s;for(i=a.length-1;i>=0;--i)n+=t[a[i]]}if(r){var f=new RegExp(".{1,"+r+"}","g");n=n.match(f).join(`\r
|
|
3
|
-
`)}return n};Uo.decode=function(e,t){if(typeof e!="string")throw new TypeError('"input" must be a string.');if(typeof t!="string")throw new TypeError('"alphabet" must be a string.');var r=ja[t];if(!r){r=ja[t]=[];for(var n=0;n<t.length;++n)r[t.charCodeAt(n)]=n}e=e.replace(/\s/g,"");for(var i=t.length,o=t.charAt(0),s=[0],n=0;n<e.length;n++){var a=r[e.charCodeAt(n)];if(a===void 0)return;for(var c=0,u=a;c<s.length;++c)u+=s[c]*i,s[c]=u&255,u>>=8;for(;u>0;)s.push(u&255),u>>=8}for(var f=0;e[f]===o&&f<e.length-1;++f)s.push(0);return typeof Buffer<"u"?Buffer.from(s.reverse()):new Uint8Array(s.reverse())};function Cc(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;e.at(r)===0&&r<e.length()-1;++r)c+=i;for(r=o.length-1;r>=0;--r)c+=t[o[r]];return c}});var It=nt((Cx,o3)=>{var r3=ct(),n3=e3(),b=o3.exports=r3.util=r3.util||{};(function(){if(typeof process<"u"&&process.nextTick&&!process.browser){b.nextTick=process.nextTick,typeof setImmediate=="function"?b.setImmediate=setImmediate:b.setImmediate=b.nextTick;return}if(typeof setImmediate=="function"){b.setImmediate=function(){return setImmediate.apply(void 0,arguments)},b.nextTick=function(a){return setImmediate(a)};return}if(b.setImmediate=function(a){setTimeout(a,0)},typeof window<"u"&&typeof window.postMessage=="function"){let a=function(c){if(c.source===window&&c.data===e){c.stopPropagation();var u=t.slice();t.length=0,u.forEach(function(f){f()})}};var s=a,e="forge.setImmediate",t=[];b.setImmediate=function(c){t.push(c),t.length===1&&window.postMessage(e,"*")},window.addEventListener("message",a,!0)}if(typeof MutationObserver<"u"){var r=Date.now(),n=!0,i=document.createElement("div"),t=[];new MutationObserver(function(){var c=t.slice();t.length=0,c.forEach(function(u){u()})}).observe(i,{attributes:!0});var o=b.setImmediate;b.setImmediate=function(c){Date.now()-r>15?(r=Date.now(),o(c)):(t.push(c),t.length===1&&i.setAttribute("a",n=!n))}}b.nextTick=b.setImmediate})();b.isNodejs=typeof process<"u"&&process.versions&&process.versions.node;b.globalScope=function(){return b.isNodejs?globalThis:typeof self>"u"?window:self}();b.isArray=Array.isArray||function(e){return Object.prototype.toString.call(e)==="[object Array]"};b.isArrayBuffer=function(e){return typeof ArrayBuffer<"u"&&e instanceof ArrayBuffer};b.isArrayBufferView=function(e){return e&&b.isArrayBuffer(e.buffer)&&e.byteLength!==void 0};function s0(e){if(!(e===8||e===16||e===24||e===32))throw new Error("Only 8, 16, 24, or 32 bits supported: "+e)}b.ByteBuffer=Oo;function Oo(e){if(this.data="",this.read=0,typeof e=="string")this.data=e;else if(b.isArrayBuffer(e)||b.isArrayBufferView(e))if(typeof Buffer<"u"&&e instanceof Buffer)this.data=e.toString("binary");else{var t=new Uint8Array(e);try{this.data=String.fromCharCode.apply(null,t)}catch{for(var r=0;r<t.length;++r)this.putByte(t[r])}}else(e instanceof Oo||typeof e=="object"&&typeof e.data=="string"&&typeof e.read=="number")&&(this.data=e.data,this.read=e.read);this._constructedStringLength=0}b.ByteStringBuffer=Oo;var Rc=4096;b.ByteStringBuffer.prototype._optimizeConstructedString=function(e){this._constructedStringLength+=e,this._constructedStringLength>Rc&&(this.data.substr(0,1),this._constructedStringLength=0)};b.ByteStringBuffer.prototype.length=function(){return this.data.length-this.read};b.ByteStringBuffer.prototype.isEmpty=function(){return this.length()<=0};b.ByteStringBuffer.prototype.putByte=function(e){return this.putBytes(String.fromCharCode(e))};b.ByteStringBuffer.prototype.fillWithByte=function(e,t){e=String.fromCharCode(e);for(var r=this.data;t>0;)t&1&&(r+=e),t>>>=1,t>0&&(e+=e);return this.data=r,this._optimizeConstructedString(t),this};b.ByteStringBuffer.prototype.putBytes=function(e){return this.data+=e,this._optimizeConstructedString(e.length),this};b.ByteStringBuffer.prototype.putString=function(e){return this.putBytes(b.encodeUtf8(e))};b.ByteStringBuffer.prototype.putInt16=function(e){return this.putBytes(String.fromCharCode(e>>8&255)+String.fromCharCode(e&255))};b.ByteStringBuffer.prototype.putInt24=function(e){return this.putBytes(String.fromCharCode(e>>16&255)+String.fromCharCode(e>>8&255)+String.fromCharCode(e&255))};b.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(e&255))};b.ByteStringBuffer.prototype.putInt16Le=function(e){return this.putBytes(String.fromCharCode(e&255)+String.fromCharCode(e>>8&255))};b.ByteStringBuffer.prototype.putInt24Le=function(e){return this.putBytes(String.fromCharCode(e&255)+String.fromCharCode(e>>8&255)+String.fromCharCode(e>>16&255))};b.ByteStringBuffer.prototype.putInt32Le=function(e){return this.putBytes(String.fromCharCode(e&255)+String.fromCharCode(e>>8&255)+String.fromCharCode(e>>16&255)+String.fromCharCode(e>>24&255))};b.ByteStringBuffer.prototype.putInt=function(e,t){s0(t);var r="";do t-=8,r+=String.fromCharCode(e>>t&255);while(t>0);return this.putBytes(r)};b.ByteStringBuffer.prototype.putSignedInt=function(e,t){return e<0&&(e+=2<<t-1),this.putInt(e,t)};b.ByteStringBuffer.prototype.putBuffer=function(e){return this.putBytes(e.getBytes())};b.ByteStringBuffer.prototype.getByte=function(){return this.data.charCodeAt(this.read++)};b.ByteStringBuffer.prototype.getInt16=function(){var e=this.data.charCodeAt(this.read)<<8^this.data.charCodeAt(this.read+1);return this.read+=2,e};b.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};b.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};b.ByteStringBuffer.prototype.getInt16Le=function(){var e=this.data.charCodeAt(this.read)^this.data.charCodeAt(this.read+1)<<8;return this.read+=2,e};b.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};b.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};b.ByteStringBuffer.prototype.getInt=function(e){s0(e);var t=0;do t=(t<<8)+this.data.charCodeAt(this.read++),e-=8;while(e>0);return t};b.ByteStringBuffer.prototype.getSignedInt=function(e){var t=this.getInt(e),r=2<<e-2;return t>=r&&(t-=r<<1),t};b.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):e===0?t="":(t=this.read===0?this.data:this.data.slice(this.read),this.clear()),t};b.ByteStringBuffer.prototype.bytes=function(e){return typeof e>"u"?this.data.slice(this.read):this.data.slice(this.read,this.read+e)};b.ByteStringBuffer.prototype.at=function(e){return this.data.charCodeAt(this.read+e)};b.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};b.ByteStringBuffer.prototype.last=function(){return this.data.charCodeAt(this.data.length-1)};b.ByteStringBuffer.prototype.copy=function(){var e=b.createBuffer(this.data);return e.read=this.read,e};b.ByteStringBuffer.prototype.compact=function(){return this.read>0&&(this.data=this.data.slice(this.read),this.read=0),this};b.ByteStringBuffer.prototype.clear=function(){return this.data="",this.read=0,this};b.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};b.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};b.ByteStringBuffer.prototype.toString=function(){return b.decodeUtf8(this.bytes())};function _c(e,t){t=t||{},this.read=t.readOffset||0,this.growSize=t.growSize||1024;var r=b.isArrayBuffer(e),n=b.isArrayBufferView(e);if(r||n){r?this.data=new DataView(e):this.data=new DataView(e.buffer,e.byteOffset,e.byteLength),this.write="writeOffset"in t?t.writeOffset:this.data.byteLength;return}this.data=new DataView(new ArrayBuffer(0)),this.write=0,e!=null&&this.putBytes(e),"writeOffset"in t&&(this.write=t.writeOffset)}b.DataBuffer=_c;b.DataBuffer.prototype.length=function(){return this.write-this.read};b.DataBuffer.prototype.isEmpty=function(){return this.length()<=0};b.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};b.DataBuffer.prototype.putByte=function(e){return this.accommodate(1),this.data.setUint8(this.write++,e),this};b.DataBuffer.prototype.fillWithByte=function(e,t){this.accommodate(t);for(var r=0;r<t;++r)this.data.setUint8(e);return this};b.DataBuffer.prototype.putBytes=function(e,t){if(b.isArrayBufferView(e)){var r=new Uint8Array(e.buffer,e.byteOffset,e.byteLength),n=r.byteLength-r.byteOffset;this.accommodate(n);var i=new Uint8Array(this.data.buffer,this.write);return i.set(r),this.write+=n,this}if(b.isArrayBuffer(e)){var r=new Uint8Array(e);this.accommodate(r.byteLength);var i=new Uint8Array(this.data.buffer);return i.set(r,this.write),this.write+=r.byteLength,this}if(e instanceof b.DataBuffer||typeof e=="object"&&typeof e.read=="number"&&typeof e.write=="number"&&b.isArrayBufferView(e.data)){var r=new Uint8Array(e.data.byteLength,e.read,e.length());this.accommodate(r.byteLength);var i=new Uint8Array(e.data.byteLength,this.write);return i.set(r),this.write+=r.byteLength,this}if(e instanceof b.ByteStringBuffer&&(e=e.data,t="binary"),t=t||"binary",typeof e=="string"){var o;if(t==="hex")return this.accommodate(Math.ceil(e.length/2)),o=new Uint8Array(this.data.buffer,this.write),this.write+=b.binary.hex.decode(e,o,this.write),this;if(t==="base64")return this.accommodate(Math.ceil(e.length/4)*3),o=new Uint8Array(this.data.buffer,this.write),this.write+=b.binary.base64.decode(e,o,this.write),this;if(t==="utf8"&&(e=b.encodeUtf8(e),t="binary"),t==="binary"||t==="raw")return this.accommodate(e.length),o=new Uint8Array(this.data.buffer,this.write),this.write+=b.binary.raw.decode(o),this;if(t==="utf16")return this.accommodate(e.length*2),o=new Uint16Array(this.data.buffer,this.write),this.write+=b.text.utf16.encode(o),this;throw new Error("Invalid encoding: "+t)}throw Error("Invalid parameter: "+e)};b.DataBuffer.prototype.putBuffer=function(e){return this.putBytes(e),e.clear(),this};b.DataBuffer.prototype.putString=function(e){return this.putBytes(e,"utf16")};b.DataBuffer.prototype.putInt16=function(e){return this.accommodate(2),this.data.setInt16(this.write,e),this.write+=2,this};b.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};b.DataBuffer.prototype.putInt32=function(e){return this.accommodate(4),this.data.setInt32(this.write,e),this.write+=4,this};b.DataBuffer.prototype.putInt16Le=function(e){return this.accommodate(2),this.data.setInt16(this.write,e,!0),this.write+=2,this};b.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};b.DataBuffer.prototype.putInt32Le=function(e){return this.accommodate(4),this.data.setInt32(this.write,e,!0),this.write+=4,this};b.DataBuffer.prototype.putInt=function(e,t){s0(t),this.accommodate(t/8);do t-=8,this.data.setInt8(this.write++,e>>t&255);while(t>0);return this};b.DataBuffer.prototype.putSignedInt=function(e,t){return s0(t),this.accommodate(t/8),e<0&&(e+=2<<t-1),this.putInt(e,t)};b.DataBuffer.prototype.getByte=function(){return this.data.getInt8(this.read++)};b.DataBuffer.prototype.getInt16=function(){var e=this.data.getInt16(this.read);return this.read+=2,e};b.DataBuffer.prototype.getInt24=function(){var e=this.data.getInt16(this.read)<<8^this.data.getInt8(this.read+2);return this.read+=3,e};b.DataBuffer.prototype.getInt32=function(){var e=this.data.getInt32(this.read);return this.read+=4,e};b.DataBuffer.prototype.getInt16Le=function(){var e=this.data.getInt16(this.read,!0);return this.read+=2,e};b.DataBuffer.prototype.getInt24Le=function(){var e=this.data.getInt8(this.read)^this.data.getInt16(this.read+1,!0)<<8;return this.read+=3,e};b.DataBuffer.prototype.getInt32Le=function(){var e=this.data.getInt32(this.read,!0);return this.read+=4,e};b.DataBuffer.prototype.getInt=function(e){s0(e);var t=0;do t=(t<<8)+this.data.getInt8(this.read++),e-=8;while(e>0);return t};b.DataBuffer.prototype.getSignedInt=function(e){var t=this.getInt(e),r=2<<e-2;return t>=r&&(t-=r<<1),t};b.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):e===0?t="":(t=this.read===0?this.data:this.data.slice(this.read),this.clear()),t};b.DataBuffer.prototype.bytes=function(e){return typeof e>"u"?this.data.slice(this.read):this.data.slice(this.read,this.read+e)};b.DataBuffer.prototype.at=function(e){return this.data.getUint8(this.read+e)};b.DataBuffer.prototype.setAt=function(e,t){return this.data.setUint8(e,t),this};b.DataBuffer.prototype.last=function(){return this.data.getUint8(this.write-1)};b.DataBuffer.prototype.copy=function(){return new b.DataBuffer(this)};b.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};b.DataBuffer.prototype.clear=function(){return this.data=new DataView(new ArrayBuffer(0)),this.read=this.write=0,this};b.DataBuffer.prototype.truncate=function(e){return this.write=Math.max(0,this.length()-e),this.read=Math.min(this.read,this.write),this};b.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};b.DataBuffer.prototype.toString=function(e){var t=new Uint8Array(this.data,this.read,this.length());if(e=e||"utf8",e==="binary"||e==="raw")return b.binary.raw.encode(t);if(e==="hex")return b.binary.hex.encode(t);if(e==="base64")return b.binary.base64.encode(t);if(e==="utf8")return b.text.utf8.decode(t);if(e==="utf16")return b.text.utf16.decode(t);throw new Error("Invalid encoding: "+e)};b.createBuffer=function(e,t){return t=t||"raw",e!==void 0&&t==="utf8"&&(e=b.encodeUtf8(e)),new b.ByteBuffer(e)};b.fillString=function(e,t){for(var r="";t>0;)t&1&&(r+=e),t>>>=1,t>0&&(e+=e);return r};b.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,n};b.hexToBytes=function(e){var t="",r=0;for(e.length&!0&&(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};b.bytesToHex=function(e){return b.createBuffer(e).toHex()};b.int32ToBytes=function(e){return String.fromCharCode(e>>24&255)+String.fromCharCode(e>>16&255)+String.fromCharCode(e>>8&255)+String.fromCharCode(e&255)};var vr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",br=[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],i3="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";b.encode64=function(e,t){for(var r="",n="",i,o,s,a=0;a<e.length;)i=e.charCodeAt(a++),o=e.charCodeAt(a++),s=e.charCodeAt(a++),r+=vr.charAt(i>>2),r+=vr.charAt((i&3)<<4|o>>4),isNaN(o)?r+="==":(r+=vr.charAt((o&15)<<2|s>>6),r+=isNaN(s)?"=":vr.charAt(s&63)),t&&r.length>t&&(n+=r.substr(0,t)+`\r
|
|
4
|
-
`,r=r.substr(t));return n+=r,n};b.decode64=function(e){e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");for(var t="",r,n,i,o,s=0;s<e.length;)r=
|
|
5
|
-
`,r=r.substr(t));return n+=r,n};b.binary.base64.decode=function(e,t,r){var n=t;n||(n=new Uint8Array(Math.ceil(e.length/4)*3)),e=e.replace(/[^A-Za-z0-9\+\/\=]/g,""),r=r||0;for(var i,o,s,a,c=0,u=r;c<e.length;)i=br[e.charCodeAt(c++)-43],o=br[e.charCodeAt(c++)-43],s=br[e.charCodeAt(c++)-43],a=br[e.charCodeAt(c++)-43],n[u++]=i<<2|o>>4,s!==64&&(n[u++]=(o&15)<<4|s>>2,a!==64&&(n[u++]=(s&3)<<6|a));return t?u-r:n.subarray(0,u)};b.binary.base58.encode=function(e,t){return b.binary.baseN.encode(e,i3,t)};b.binary.base58.decode=function(e,t){return b.binary.baseN.decode(e,i3,t)};b.text={utf8:{},utf16:{}};b.text.utf8.encode=function(e,t,r){e=b.encodeUtf8(e);var n=t;n||(n=new Uint8Array(e.length)),r=r||0;for(var i=r,o=0;o<e.length;++o)n[i++]=e.charCodeAt(o);return t?i-r:n};b.text.utf8.decode=function(e){return b.decodeUtf8(String.fromCharCode.apply(null,e))};b.text.utf16.encode=function(e,t,r){var n=t;n||(n=new Uint8Array(e.length*2));var i=new Uint16Array(n.buffer);r=r||0;for(var o=r,s=r,a=0;a<e.length;++a)i[s++]=e.charCodeAt(a),o+=2;return t?o-r:n};b.text.utf16.decode=function(e){return String.fromCharCode.apply(null,new Uint16Array(e.buffer))};b.deflate=function(e,t,r){if(t=b.decode64(e.deflate(b.encode64(t)).rval),r){var n=2,i=t.charCodeAt(1);i&32&&(n=6),t=t.substring(n,t.length-4)}return t};b.inflate=function(e,t,r){var n=e.inflate(b.encode64(t)).rval;return n===null?null:b.decode64(n)};var Fo=function(e,t,r){if(!e)throw new Error("WebStorage not available.");var n;if(r===null?n=e.removeItem(t):(r=b.encode64(JSON.stringify(r)),n=e.setItem(t,r)),typeof n<"u"&&n.rval!==!0){var i=new Error(n.error.message);throw i.id=n.error.id,i.name=n.error.name,i}},Mo=function(e,t){if(!e)throw new Error("WebStorage not available.");var r=e.getItem(t);if(e.init)if(r.rval===null){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 r!==null&&(r=JSON.parse(b.decode64(r))),r},Pc=function(e,t,r,n){var i=Mo(e,t);i===null&&(i={}),i[r]=n,Fo(e,t,i)},Lc=function(e,t,r){var n=Mo(e,t);return n!==null&&(n=r in n?n[r]:null),n},Nc=function(e,t,r){var n=Mo(e,t);if(n!==null&&r in n){delete n[r];var i=!0;for(var o in n){i=!1;break}i&&(n=null),Fo(e,t,n)}},Dc=function(e,t){Fo(e,t,null)},c1=function(e,t,r){var n=null;typeof r>"u"&&(r=["web","flash"]);var i,o=!1,s=null;for(var a in r){i=r[a];try{if(i==="flash"||i==="both"){if(t[0]===null)throw new Error("Flash local storage not available.");n=e.apply(this,t),o=i==="flash"}(i==="web"||i==="both")&&(t[0]=localStorage,n=e.apply(this,t),o=!0)}catch(c){s=c}if(o)break}if(!o)throw s;return n};b.setItem=function(e,t,r,n,i){c1(Pc,arguments,i)};b.getItem=function(e,t,r,n){return c1(Lc,arguments,n)};b.removeItem=function(e,t,r,n){c1(Nc,arguments,n)};b.clearItems=function(e,t,r){c1(Dc,arguments,r)};b.isEmpty=function(e){for(var t in e)if(e.hasOwnProperty(t))return!1;return!0};b.format=function(e){for(var t=/%./g,r,n,i=0,o=[],s=0;r=t.exec(e);){n=e.substring(s,t.lastIndex-2),n.length>0&&o.push(n),s=t.lastIndex;var a=r[0][1];switch(a){case"s":case"o":i<arguments.length?o.push(arguments[i+++1]):o.push("<?>");break;case"%":o.push("%");break;default:o.push("<%"+a+"?>")}}return o.push(e.substring(s)),o.join("")};b.formatNumber=function(e,t,r,n){var i=e,o=isNaN(t=Math.abs(t))?2:t,s=r===void 0?",":r,a=n===void 0?".":n,c=i<0?"-":"",u=parseInt(i=Math.abs(+i||0).toFixed(o),10)+"",f=u.length>3?u.length%3:0;return c+(f?u.substr(0,f)+a:"")+u.substr(f).replace(/(\d{3})(?=\d)/g,"$1"+a)+(o?s+Math.abs(i-u).toFixed(o).slice(2):"")};b.formatSize=function(e){return e>=1073741824?e=b.formatNumber(e/1073741824,2,".","")+" GiB":e>=1048576?e=b.formatNumber(e/1048576,2,".","")+" MiB":e>=1024?e=b.formatNumber(e/1024,0)+" KiB":e=b.formatNumber(e,0)+" bytes",e};b.bytesFromIP=function(e){return e.indexOf(".")!==-1?b.bytesFromIPv4(e):e.indexOf(":")!==-1?b.bytesFromIPv6(e):null};b.bytesFromIPv4=function(e){if(e=e.split("."),e.length!==4)return null;for(var t=b.createBuffer(),r=0;r<e.length;++r){var n=parseInt(e[r],10);if(isNaN(n))return null;t.putByte(n)}return t.getBytes()};b.bytesFromIPv6=function(e){var t=0;e=e.split(":").filter(function(s){return s.length===0&&++t,!0});for(var r=(8-e.length+t)*2,n=b.createBuffer(),i=0;i<8;++i){if(!e[i]||e[i].length===0){n.fillWithByte(0,r),r=0;continue}var o=b.hexToBytes(e[i]);o.length<2&&n.putByte(0),n.putBytes(o)}return n.getBytes()};b.bytesToIP=function(e){return e.length===4?b.bytesToIPv4(e):e.length===16?b.bytesToIPv6(e):null};b.bytesToIPv4=function(e){if(e.length!==4)return null;for(var t=[],r=0;r<e.length;++r)t.push(e.charCodeAt(r));return t.join(".")};b.bytesToIPv6=function(e){if(e.length!==16)return null;for(var t=[],r=[],n=0,i=0;i<e.length;i+=2){for(var o=b.bytesToHex(e[i]+e[i+1]);o[0]==="0"&&o!=="0";)o=o.substr(1);if(o==="0"){var s=r[r.length-1],a=t.length;!s||a!==s.end+1?r.push({start:a,end:a}):(s.end=a,s.end-s.start>r[n].end-r[n].start&&(n=r.length-1))}t.push(o)}if(r.length>0){var c=r[n];c.end-c.start>0&&(t.splice(c.start,c.end-c.start+1,""),c.start===0&&t.unshift(""),c.end===7&&t.push(""))}return t.join(":")};b.estimateCores=function(e,t){if(typeof e=="function"&&(t=e,e={}),e=e||{},"cores"in b&&!e.update)return t(null,b.cores);if(typeof navigator<"u"&&"hardwareConcurrency"in navigator&&navigator.hardwareConcurrency>0)return b.cores=navigator.hardwareConcurrency,t(null,b.cores);if(typeof Worker>"u")return b.cores=1,t(null,b.cores);if(typeof Blob>"u")return b.cores=2,t(null,b.cores);var r=URL.createObjectURL(new Blob(["(",function(){self.addEventListener("message",function(s){for(var a=Date.now(),c=a+4;Date.now()<c;);self.postMessage({st:a,et:c})})}.toString(),")()"],{type:"application/javascript"}));n([],5,16);function n(s,a,c){if(a===0){var u=Math.floor(s.reduce(function(f,l){return f+l},0)/s.length);return b.cores=Math.max(1,u),URL.revokeObjectURL(r),t(null,b.cores)}i(c,function(f,l){s.push(o(c,l)),n(s,a-1,c)})}function i(s,a){for(var c=[],u=[],f=0;f<s;++f){var l=new Worker(r);l.addEventListener("message",function(p){if(u.push(p.data),u.length===s){for(var d=0;d<s;++d)c[d].terminate();a(null,u)}}),c.push(l)}for(var f=0;f<s;++f)c[f].postMessage(f)}function o(s,a){for(var c=[],u=0;u<s;++u)for(var f=a[u],l=c[u]=[],p=0;p<s;++p)if(u!==p){var d=a[p];(f.st>d.st&&f.st<d.et||d.st>f.st&&d.st<f.et)&&l.push(p)}return c.reduce(function(h,g){return Math.max(h,g.length)},0)}}});var Vo=nt((Rx,s3)=>{var kt=ct();It();s3.exports=kt.cipher=kt.cipher||{};kt.cipher.algorithms=kt.cipher.algorithms||{};kt.cipher.createCipher=function(e,t){var r=e;if(typeof r=="string"&&(r=kt.cipher.getAlgorithm(r),r&&(r=r())),!r)throw new Error("Unsupported algorithm: "+e);return new kt.cipher.BlockCipher({algorithm:r,key:t,decrypt:!1})};kt.cipher.createDecipher=function(e,t){var r=e;if(typeof r=="string"&&(r=kt.cipher.getAlgorithm(r),r&&(r=r())),!r)throw new Error("Unsupported algorithm: "+e);return new kt.cipher.BlockCipher({algorithm:r,key:t,decrypt:!0})};kt.cipher.registerAlgorithm=function(e,t){e=e.toUpperCase(),kt.cipher.algorithms[e]=t};kt.cipher.getAlgorithm=function(e){return e=e.toUpperCase(),e in kt.cipher.algorithms?kt.cipher.algorithms[e]:null};var Ko=kt.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)};Ko.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=kt.util.createBuffer(),this.output=e.output||kt.util.createBuffer(),this.mode.start(t)};Ko.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()};Ko.prototype.finish=function(e){e&&(this.mode.name==="ECB"||this.mode.name==="CBC")&&(this.mode.pad=function(r){return e(this.blockSize,r,!1)},this.mode.unpad=function(r){return e(this.blockSize,r,!0)});var t={};return t.decrypt=this._decrypt,t.overflow=this._input.length()%this.blockSize,!(!this._decrypt&&this.mode.pad&&!this.mode.pad(this._input,t)||(this._finish=!0,this.update(),this._decrypt&&this.mode.unpad&&!this.mode.unpad(this.output,t))||this.mode.afterFinish&&!this.mode.afterFinish(this.output,t))}});var zo=nt((_x,a3)=>{var Ut=ct();It();Ut.cipher=Ut.cipher||{};var W=a3.exports=Ut.cipher.modes=Ut.cipher.modes||{};W.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)};W.ecb.prototype.start=function(e){};W.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(var n=0;n<this._ints;++n)t.putInt32(this._outBlock[n])};W.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(var n=0;n<this._ints;++n)t.putInt32(this._outBlock[n])};W.ecb.prototype.pad=function(e,t){var r=e.length()===this.blockSize?this.blockSize:this.blockSize-e.length();return e.fillWithByte(r,r),!0};W.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?!1:(e.truncate(n),!0)};W.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)};W.cbc.prototype.start=function(e){if(e.iv===null){if(!this._prev)throw new Error("Invalid IV parameter.");this._iv=this._prev.slice(0)}else if("iv"in e)this._iv=u1(e.iv,this.blockSize),this._prev=this._iv.slice(0);else throw new Error("Invalid IV parameter.")};W.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(var n=0;n<this._ints;++n)t.putInt32(this._outBlock[n]);this._prev=this._outBlock};W.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(var n=0;n<this._ints;++n)t.putInt32(this._prev[n]^this._outBlock[n]);this._prev=this._inBlock.slice(0)};W.cbc.prototype.pad=function(e,t){var r=e.length()===this.blockSize?this.blockSize:this.blockSize-e.length();return e.fillWithByte(r,r),!0};W.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?!1:(e.truncate(n),!0)};W.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=Ut.util.createBuffer(),this._partialBytes=0};W.cfb.prototype.start=function(e){if(!("iv"in e))throw new Error("Invalid IV parameter.");this._iv=u1(e.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0};W.cfb.prototype.encrypt=function(e,t,r){var n=e.length();if(n===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&n>=this.blockSize){for(var i=0;i<this._ints;++i)this._inBlock[i]=e.getInt32()^this._outBlock[i],t.putInt32(this._inBlock[i]);return}var o=(this.blockSize-n)%this.blockSize;o>0&&(o=this.blockSize-o),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialBlock[i]=e.getInt32()^this._outBlock[i],this._partialOutput.putInt32(this._partialBlock[i]);if(o>0)e.read-=this.blockSize;else for(var i=0;i<this._ints;++i)this._inBlock[i]=this._partialBlock[i];if(this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),o>0&&!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};W.cfb.prototype.decrypt=function(e,t,r){var n=e.length();if(n===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&n>=this.blockSize){for(var i=0;i<this._ints;++i)this._inBlock[i]=e.getInt32(),t.putInt32(this._inBlock[i]^this._outBlock[i]);return}var o=(this.blockSize-n)%this.blockSize;o>0&&(o=this.blockSize-o),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialBlock[i]=e.getInt32(),this._partialOutput.putInt32(this._partialBlock[i]^this._outBlock[i]);if(o>0)e.read-=this.blockSize;else for(var i=0;i<this._ints;++i)this._inBlock[i]=this._partialBlock[i];if(this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),o>0&&!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};W.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=Ut.util.createBuffer(),this._partialBytes=0};W.ofb.prototype.start=function(e){if(!("iv"in e))throw new Error("Invalid IV parameter.");this._iv=u1(e.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0};W.ofb.prototype.encrypt=function(e,t,r){var n=e.length();if(e.length()===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&n>=this.blockSize){for(var i=0;i<this._ints;++i)t.putInt32(e.getInt32()^this._outBlock[i]),this._inBlock[i]=this._outBlock[i];return}var o=(this.blockSize-n)%this.blockSize;o>0&&(o=this.blockSize-o),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialOutput.putInt32(e.getInt32()^this._outBlock[i]);if(o>0)e.read-=this.blockSize;else for(var i=0;i<this._ints;++i)this._inBlock[i]=this._outBlock[i];if(this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),o>0&&!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};W.ofb.prototype.decrypt=W.ofb.prototype.encrypt;W.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=Ut.util.createBuffer(),this._partialBytes=0};W.ctr.prototype.start=function(e){if(!("iv"in e))throw new Error("Invalid IV parameter.");this._iv=u1(e.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0};W.ctr.prototype.encrypt=function(e,t,r){var n=e.length();if(n===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&n>=this.blockSize)for(var i=0;i<this._ints;++i)t.putInt32(e.getInt32()^this._outBlock[i]);else{var o=(this.blockSize-n)%this.blockSize;o>0&&(o=this.blockSize-o),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialOutput.putInt32(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}f1(this._inBlock)};W.ctr.prototype.decrypt=W.ctr.prototype.encrypt;W.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=Ut.util.createBuffer(),this._partialBytes=0,this._R=3774873600};W.gcm.prototype.start=function(e){if(!("iv"in e))throw new Error("Invalid IV parameter.");var t=Ut.util.createBuffer(e.iv);this._cipherLength=0;var r;if("additionalData"in e?r=Ut.util.createBuffer(e.additionalData):r=Ut.util.createBuffer(),"tagLength"in e?this._tagLength=e.tagLength:this._tagLength=128,this._tag=null,e.decrypt&&(this._tag=Ut.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 n=t.length();if(n===12)this._j0=[t.getInt32(),t.getInt32(),t.getInt32(),1];else{for(this._j0=[0,0,0,0];t.length()>0;)this._j0=this.ghash(this._hashSubkey,this._j0,[t.getInt32(),t.getInt32(),t.getInt32(),t.getInt32()]);this._j0=this.ghash(this._hashSubkey,this._j0,[0,0].concat(qo(n*8)))}this._inBlock=this._j0.slice(0),f1(this._inBlock),this._partialBytes=0,r=Ut.util.createBuffer(r),this._aDataLength=qo(r.length()*8);var i=r.length()%this.blockSize;for(i&&r.fillWithByte(0,this.blockSize-i),this._s=[0,0,0,0];r.length()>0;)this._s=this.ghash(this._hashSubkey,this._s,[r.getInt32(),r.getInt32(),r.getInt32(),r.getInt32()])};W.gcm.prototype.encrypt=function(e,t,r){var n=e.length();if(n===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&n>=this.blockSize){for(var i=0;i<this._ints;++i)t.putInt32(this._outBlock[i]^=e.getInt32());this._cipherLength+=this.blockSize}else{var o=(this.blockSize-n)%this.blockSize;o>0&&(o=this.blockSize-o),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialOutput.putInt32(e.getInt32()^this._outBlock[i]);if(o<=0||r){if(r){var s=n%this.blockSize;this._cipherLength+=s,this._partialOutput.truncate(this.blockSize-s)}else this._cipherLength+=this.blockSize;for(var i=0;i<this._ints;++i)this._outBlock[i]=this._partialOutput.getInt32();this._partialOutput.read-=this.blockSize}if(this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),o>0&&!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),f1(this._inBlock)};W.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),f1(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};W.gcm.prototype.afterFinish=function(e,t){var r=!0;t.decrypt&&t.overflow&&e.truncate(this.blockSize-t.overflow),this.tag=Ut.util.createBuffer();var n=this._aDataLength.concat(qo(this._cipherLength*8));this._s=this.ghash(this._hashSubkey,this._s,n);var i=[];this.cipher.encrypt(this._j0,i);for(var o=0;o<this._ints;++o)this.tag.putInt32(this._s[o]^i[o]);return this.tag.truncate(this.tag.length()%(this._tagLength/8)),t.decrypt&&this.tag.bytes()!==this._tag&&(r=!1),r};W.gcm.prototype.multiply=function(e,t){for(var r=[0,0,0,0],n=t.slice(0),i=0;i<128;++i){var o=e[i/32|0]&1<<31-i%32;o&&(r[0]^=n[0],r[1]^=n[1],r[2]^=n[2],r[3]^=n[3]),this.pow(n,n)}return r};W.gcm.prototype.pow=function(e,t){for(var r=e[3]&1,n=3;n>0;--n)t[n]=e[n]>>>1|(e[n-1]&1)<<31;t[0]=e[0]>>>1,r&&(t[0]^=this._R)};W.gcm.prototype.tableMultiply=function(e){for(var t=[0,0,0,0],r=0;r<32;++r){var n=r/8|0,i=e[n]>>>(7-r%8)*4&15,o=this._m[r][i];t[0]^=o[0],t[1]^=o[1],t[2]^=o[2],t[3]^=o[3]}return t};W.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)};W.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=s/n|0,u=(n-1-s%n)*t;a[c]=1<<t-1<<u,o[s]=this.generateSubHashTable(this.multiply(a,e),t)}return o};W.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 u=i[o^n];i[o]=[e[0]^u[0],e[1]^u[1],e[2]^u[2],e[3]^u[3]]}return i};function u1(e,t){if(typeof e=="string"&&(e=Ut.util.createBuffer(e)),Ut.util.isArray(e)&&e.length>4){var r=e;e=Ut.util.createBuffer();for(var n=0;n<r.length;++n)e.putByte(r[n])}if(e.length()<t)throw new Error("Invalid IV length; got "+e.length()+" bytes and expected "+t+" bytes.");if(!Ut.util.isArray(e)){for(var i=[],o=t/4,n=0;n<o;++n)i.push(e.getInt32());e=i}return e}function f1(e){e[e.length-1]=e[e.length-1]+1&4294967295}function qo(e){return[e/4294967296|0,e&4294967295]}});var h1=nt((Px,l3)=>{var lt=ct();Vo();zo();It();l3.exports=lt.aes=lt.aes||{};lt.aes.startEncrypting=function(e,t,r,n){var i=l1({key:e,output:r,decrypt:!1,mode:n});return i.start(t),i};lt.aes.createEncryptionCipher=function(e,t){return l1({key:e,output:null,decrypt:!1,mode:t})};lt.aes.startDecrypting=function(e,t,r,n){var i=l1({key:e,output:r,decrypt:!0,mode:n});return i.start(t),i};lt.aes.createDecryptionCipher=function(e,t){return l1({key:e,output:null,decrypt:!0,mode:t})};lt.aes.Algorithm=function(e,t){Go||u3();var r=this;r.name=e,r.mode=new t({blockSize:16,cipher:{encrypt:function(n,i){return $o(r._w,n,i,!1)},decrypt:function(n,i){return $o(r._w,n,i,!0)}}}),r._init=!1};lt.aes.Algorithm.prototype.initialize=function(e){if(!this._init){var t=e.key,r;if(typeof t=="string"&&(t.length===16||t.length===24||t.length===32))t=lt.util.createBuffer(t);else if(lt.util.isArray(t)&&(t.length===16||t.length===24||t.length===32)){r=t,t=lt.util.createBuffer();for(var n=0;n<r.length;++n)t.putByte(r[n])}if(!lt.util.isArray(t)){r=t,t=[];var i=r.length();if(i===16||i===24||i===32){i=i>>>2;for(var n=0;n<i;++n)t.push(r.getInt32())}}if(!lt.util.isArray(t)||!(t.length===4||t.length===6||t.length===8))throw new Error("Invalid key parameter.");var o=this.mode.name,s=["CFB","OFB","CTR","GCM"].indexOf(o)!==-1;this._w=f3(t,e.decrypt&&!s),this._init=!0}};lt.aes._expandKey=function(e,t){return Go||u3(),f3(e,t)};lt.aes._updateBlock=$o;Tn("AES-ECB",lt.cipher.modes.ecb);Tn("AES-CBC",lt.cipher.modes.cbc);Tn("AES-CFB",lt.cipher.modes.cfb);Tn("AES-OFB",lt.cipher.modes.ofb);Tn("AES-CTR",lt.cipher.modes.ctr);Tn("AES-GCM",lt.cipher.modes.gcm);function Tn(e,t){var r=function(){return new lt.aes.Algorithm(e,t)};lt.cipher.registerAlgorithm(e,r)}var Go=!1,Bn=4,Jt,Ho,c3,Fr,be;function u3(){Go=!0,c3=[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;Jt=new Array(256),Ho=new Array(256),Fr=new Array(4),be=new Array(4);for(var t=0;t<4;++t)Fr[t]=new Array(256),be[t]=new Array(256);for(var r=0,n=0,i,o,s,a,c,u,f,t=0;t<256;++t){a=n^n<<1^n<<2^n<<3^n<<4,a=a>>8^a&255^99,Jt[r]=a,Ho[a]=r,c=e[a],i=e[r],o=e[i],s=e[o],u=c<<24^a<<16^a<<8^(a^c),f=(i^o^s)<<24^(r^s)<<16^(r^o^s)<<8^(r^i^s);for(var l=0;l<4;++l)Fr[l][r]=u,be[l][a]=f,u=u<<24|u>>>8,f=f<<24|f>>>8;r===0?r=n=1:(r=i^e[e[e[i^s]]],n^=e[e[n]])}}function f3(e,t){for(var r=e.slice(0),n,i=1,o=r.length,s=o+6+1,a=Bn*s,c=o;c<a;++c)n=r[c-1],c%o===0?(n=Jt[n>>>16&255]<<24^Jt[n>>>8&255]<<16^Jt[n&255]<<8^Jt[n>>>24]^c3[i]<<24,i++):o>6&&c%o===4&&(n=Jt[n>>>24]<<24^Jt[n>>>16&255]<<16^Jt[n>>>8&255]<<8^Jt[n&255]),r[c]=r[c-o]^n;if(t){var u,f=be[0],l=be[1],p=be[2],d=be[3],h=r.slice(0);a=r.length;for(var c=0,g=a-Bn;c<a;c+=Bn,g-=Bn)if(c===0||c===a-Bn)h[c]=r[g],h[c+1]=r[g+3],h[c+2]=r[g+2],h[c+3]=r[g+1];else for(var y=0;y<Bn;++y)u=r[g+y],h[c+(3&-y)]=f[Jt[u>>>24]]^l[Jt[u>>>16&255]]^p[Jt[u>>>8&255]]^d[Jt[u&255]];r=h}return r}function $o(e,t,r,n){var i=e.length/4-1,o,s,a,c,u;n?(o=be[0],s=be[1],a=be[2],c=be[3],u=Ho):(o=Fr[0],s=Fr[1],a=Fr[2],c=Fr[3],u=Jt);var f,l,p,d,h,g,y;f=t[0]^e[0],l=t[n?3:1]^e[1],p=t[2]^e[2],d=t[n?1:3]^e[3];for(var m=3,x=1;x<i;++x)h=o[f>>>24]^s[l>>>16&255]^a[p>>>8&255]^c[d&255]^e[++m],g=o[l>>>24]^s[p>>>16&255]^a[d>>>8&255]^c[f&255]^e[++m],y=o[p>>>24]^s[d>>>16&255]^a[f>>>8&255]^c[l&255]^e[++m],d=o[d>>>24]^s[f>>>16&255]^a[l>>>8&255]^c[p&255]^e[++m],f=h,l=g,p=y;r[0]=u[f>>>24]<<24^u[l>>>16&255]<<16^u[p>>>8&255]<<8^u[d&255]^e[++m],r[n?3:1]=u[l>>>24]<<24^u[p>>>16&255]<<16^u[d>>>8&255]<<8^u[f&255]^e[++m],r[2]=u[p>>>24]<<24^u[d>>>16&255]<<16^u[f>>>8&255]<<8^u[l&255]^e[++m],r[n?1:3]=u[d>>>24]<<24^u[f>>>16&255]<<16^u[l>>>8&255]<<8^u[p&255]^e[++m]}function l1(e){e=e||{};var t=(e.mode||"CBC").toUpperCase(),r="AES-"+t,n;e.decrypt?n=lt.cipher.createDecipher(r,e.key):n=lt.cipher.createCipher(r,e.key);var i=n.start;return n.start=function(o,s){var a=null;s instanceof lt.util.ByteBuffer&&(a=s,s={}),s=s||{},s.output=a,s.iv=o,i.call(n,s)},n}});var g1=nt((tv,m3)=>{var a0=ct();a0.pki=a0.pki||{};var Qo=m3.exports=a0.pki.oids=a0.oids=a0.oids||{};function R(e,t){Qo[e]=t,Qo[t]=e}function ot(e,t){Qo[e]=t}R("1.2.840.113549.1.1.1","rsaEncryption");R("1.2.840.113549.1.1.4","md5WithRSAEncryption");R("1.2.840.113549.1.1.5","sha1WithRSAEncryption");R("1.2.840.113549.1.1.7","RSAES-OAEP");R("1.2.840.113549.1.1.8","mgf1");R("1.2.840.113549.1.1.9","pSpecified");R("1.2.840.113549.1.1.10","RSASSA-PSS");R("1.2.840.113549.1.1.11","sha256WithRSAEncryption");R("1.2.840.113549.1.1.12","sha384WithRSAEncryption");R("1.2.840.113549.1.1.13","sha512WithRSAEncryption");R("1.3.101.112","EdDSA25519");R("1.2.840.10040.4.3","dsa-with-sha1");R("1.3.14.3.2.7","desCBC");R("1.3.14.3.2.26","sha1");R("1.3.14.3.2.29","sha1WithRSASignature");R("2.16.840.1.101.3.4.2.1","sha256");R("2.16.840.1.101.3.4.2.2","sha384");R("2.16.840.1.101.3.4.2.3","sha512");R("2.16.840.1.101.3.4.2.4","sha224");R("2.16.840.1.101.3.4.2.5","sha512-224");R("2.16.840.1.101.3.4.2.6","sha512-256");R("1.2.840.113549.2.2","md2");R("1.2.840.113549.2.5","md5");R("1.2.840.113549.1.7.1","data");R("1.2.840.113549.1.7.2","signedData");R("1.2.840.113549.1.7.3","envelopedData");R("1.2.840.113549.1.7.4","signedAndEnvelopedData");R("1.2.840.113549.1.7.5","digestedData");R("1.2.840.113549.1.7.6","encryptedData");R("1.2.840.113549.1.9.1","emailAddress");R("1.2.840.113549.1.9.2","unstructuredName");R("1.2.840.113549.1.9.3","contentType");R("1.2.840.113549.1.9.4","messageDigest");R("1.2.840.113549.1.9.5","signingTime");R("1.2.840.113549.1.9.6","counterSignature");R("1.2.840.113549.1.9.7","challengePassword");R("1.2.840.113549.1.9.8","unstructuredAddress");R("1.2.840.113549.1.9.14","extensionRequest");R("1.2.840.113549.1.9.20","friendlyName");R("1.2.840.113549.1.9.21","localKeyId");R("1.2.840.113549.1.9.22.1","x509Certificate");R("1.2.840.113549.1.12.10.1.1","keyBag");R("1.2.840.113549.1.12.10.1.2","pkcs8ShroudedKeyBag");R("1.2.840.113549.1.12.10.1.3","certBag");R("1.2.840.113549.1.12.10.1.4","crlBag");R("1.2.840.113549.1.12.10.1.5","secretBag");R("1.2.840.113549.1.12.10.1.6","safeContentsBag");R("1.2.840.113549.1.5.13","pkcs5PBES2");R("1.2.840.113549.1.5.12","pkcs5PBKDF2");R("1.2.840.113549.1.12.1.1","pbeWithSHAAnd128BitRC4");R("1.2.840.113549.1.12.1.2","pbeWithSHAAnd40BitRC4");R("1.2.840.113549.1.12.1.3","pbeWithSHAAnd3-KeyTripleDES-CBC");R("1.2.840.113549.1.12.1.4","pbeWithSHAAnd2-KeyTripleDES-CBC");R("1.2.840.113549.1.12.1.5","pbeWithSHAAnd128BitRC2-CBC");R("1.2.840.113549.1.12.1.6","pbewithSHAAnd40BitRC2-CBC");R("1.2.840.113549.2.7","hmacWithSHA1");R("1.2.840.113549.2.8","hmacWithSHA224");R("1.2.840.113549.2.9","hmacWithSHA256");R("1.2.840.113549.2.10","hmacWithSHA384");R("1.2.840.113549.2.11","hmacWithSHA512");R("1.2.840.113549.3.7","des-EDE3-CBC");R("2.16.840.1.101.3.4.1.2","aes128-CBC");R("2.16.840.1.101.3.4.1.22","aes192-CBC");R("2.16.840.1.101.3.4.1.42","aes256-CBC");R("2.5.4.3","commonName");R("2.5.4.4","surname");R("2.5.4.5","serialNumber");R("2.5.4.6","countryName");R("2.5.4.7","localityName");R("2.5.4.8","stateOrProvinceName");R("2.5.4.9","streetAddress");R("2.5.4.10","organizationName");R("2.5.4.11","organizationalUnitName");R("2.5.4.12","title");R("2.5.4.13","description");R("2.5.4.15","businessCategory");R("2.5.4.17","postalCode");R("2.5.4.42","givenName");R("1.3.6.1.4.1.311.60.2.1.2","jurisdictionOfIncorporationStateOrProvinceName");R("1.3.6.1.4.1.311.60.2.1.3","jurisdictionOfIncorporationCountryName");R("2.16.840.1.113730.1.1","nsCertType");R("2.16.840.1.113730.1.13","nsComment");ot("2.5.29.1","authorityKeyIdentifier");ot("2.5.29.2","keyAttributes");ot("2.5.29.3","certificatePolicies");ot("2.5.29.4","keyUsageRestriction");ot("2.5.29.5","policyMapping");ot("2.5.29.6","subtreesConstraint");ot("2.5.29.7","subjectAltName");ot("2.5.29.8","issuerAltName");ot("2.5.29.9","subjectDirectoryAttributes");ot("2.5.29.10","basicConstraints");ot("2.5.29.11","nameConstraints");ot("2.5.29.12","policyConstraints");ot("2.5.29.13","basicConstraints");R("2.5.29.14","subjectKeyIdentifier");R("2.5.29.15","keyUsage");ot("2.5.29.16","privateKeyUsagePeriod");R("2.5.29.17","subjectAltName");R("2.5.29.18","issuerAltName");R("2.5.29.19","basicConstraints");ot("2.5.29.20","cRLNumber");ot("2.5.29.21","cRLReason");ot("2.5.29.22","expirationDate");ot("2.5.29.23","instructionCode");ot("2.5.29.24","invalidityDate");ot("2.5.29.25","cRLDistributionPoints");ot("2.5.29.26","issuingDistributionPoint");ot("2.5.29.27","deltaCRLIndicator");ot("2.5.29.28","issuingDistributionPoint");ot("2.5.29.29","certificateIssuer");ot("2.5.29.30","nameConstraints");R("2.5.29.31","cRLDistributionPoints");R("2.5.29.32","certificatePolicies");ot("2.5.29.33","policyMappings");ot("2.5.29.34","policyConstraints");R("2.5.29.35","authorityKeyIdentifier");ot("2.5.29.36","policyConstraints");R("2.5.29.37","extKeyUsage");ot("2.5.29.46","freshestCRL");ot("2.5.29.54","inhibitAnyPolicy");R("1.3.6.1.4.1.11129.2.4.2","timestampList");R("1.3.6.1.5.5.7.1.1","authorityInfoAccess");R("1.3.6.1.5.5.7.3.1","serverAuth");R("1.3.6.1.5.5.7.3.2","clientAuth");R("1.3.6.1.5.5.7.3.3","codeSigning");R("1.3.6.1.5.5.7.3.4","emailProtection");R("1.3.6.1.5.5.7.3.8","timeStamping")});var u0=nt((ev,v3)=>{var ht=ct();It();g1();var U=v3.exports=ht.asn1=ht.asn1||{};U.Class={UNIVERSAL:0,APPLICATION:64,CONTEXT_SPECIFIC:128,PRIVATE:192};U.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};U.create=function(e,t,r,n,i){if(ht.util.isArray(n)){for(var o=[],s=0;s<n.length;++s)n[s]!==void 0&&o.push(n[s]);n=o}var a={tagClass:e,type:t,constructed:r,composed:r||ht.util.isArray(n),value:n};return i&&"bitStringContents"in i&&(a.bitStringContents=i.bitStringContents,a.original=U.copy(a)),a};U.copy=function(e,t){var r;if(ht.util.isArray(e)){r=[];for(var n=0;n<e.length;++n)r.push(U.copy(e[n],t));return r}return typeof e=="string"?e:(r={tagClass:e.tagClass,type:e.type,constructed:e.constructed,composed:e.composed,value:U.copy(e.value,t)},t&&!t.excludeBitStringContents&&(r.bitStringContents=e.bitStringContents),r)};U.equals=function(e,t,r){if(ht.util.isArray(e)){if(!ht.util.isArray(t)||e.length!==t.length)return!1;for(var n=0;n<e.length;++n)if(!U.equals(e[n],t[n]))return!1;return!0}if(typeof e!=typeof t)return!1;if(typeof e=="string")return e===t;var i=e.tagClass===t.tagClass&&e.type===t.type&&e.constructed===t.constructed&&e.composed===t.composed&&U.equals(e.value,t.value);return r&&r.includeBitStringContents&&(i=i&&e.bitStringContents===t.bitStringContents),i};U.getBerValueLength=function(e){var t=e.getByte();if(t!==128){var r,n=t&128;return n?r=e.getInt((t&127)<<3):r=t,r}};function c0(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}}var Vc=function(e,t){var r=e.getByte();if(t--,r!==128){var n,i=r&128;if(!i)n=r;else{var o=r&127;c0(e,t,o),n=e.getInt(o<<3)}if(n<0)throw new Error("Negative length: "+n);return n}};U.fromDer=function(e,t){t===void 0&&(t={strict:!0,parseAllBytes:!0,decodeBitStrings:!0}),typeof t=="boolean"&&(t={strict:t,parseAllBytes:!0,decodeBitStrings:!0}),"strict"in t||(t.strict=!0),"parseAllBytes"in t||(t.parseAllBytes=!0),"decodeBitStrings"in t||(t.decodeBitStrings=!0),typeof e=="string"&&(e=ht.util.createBuffer(e));var r=e.length(),n=y1(e,e.length(),0,t);if(t.parseAllBytes&&e.length()!==0){var i=new Error("Unparsed DER bytes remain after ASN.1 parsing.");throw i.byteCount=r,i.remaining=e.length(),i}return n};function y1(e,t,r,n){var i;c0(e,t,2);var o=e.getByte();t--;var s=o&192,a=o&31;i=e.length();var c=Vc(e,t);if(t-=i-e.length(),c!==void 0&&c>t){if(n.strict){var u=new Error("Too few bytes to read ASN.1 value.");throw u.available=e.length(),u.remaining=t,u.requested=c,u}c=t}var f,l,p=(o&32)===32;if(p)if(f=[],c===void 0)for(;;){if(c0(e,t,2),e.bytes(2)==="\0\0"){e.getBytes(2),t-=2;break}i=e.length(),f.push(y1(e,t,r+1,n)),t-=i-e.length()}else for(;c>0;)i=e.length(),f.push(y1(e,c,r+1,n)),t-=i-e.length(),c-=i-e.length();if(f===void 0&&s===U.Class.UNIVERSAL&&a===U.Type.BITSTRING&&(l=e.bytes(c)),f===void 0&&n.decodeBitStrings&&s===U.Class.UNIVERSAL&&a===U.Type.BITSTRING&&c>1){var d=e.read,h=t,g=0;if(a===U.Type.BITSTRING&&(c0(e,t,1),g=e.getByte(),t--),g===0)try{i=e.length();var y={strict:!0,decodeBitStrings:!0},m=y1(e,t,r+1,y),x=i-e.length();t-=x,a==U.Type.BITSTRING&&x++;var v=m.tagClass;x===c&&(v===U.Class.UNIVERSAL||v===U.Class.CONTEXT_SPECIFIC)&&(f=[m])}catch{}f===void 0&&(e.read=d,t=h)}if(f===void 0){if(c===void 0){if(n.strict)throw new Error("Non-constructed ASN.1 object of indefinite length.");c=t}if(a===U.Type.BMPSTRING)for(f="";c>0;c-=2)c0(e,t,2),f+=String.fromCharCode(e.getInt16()),t-=2;else f=e.getBytes(c),t-=c}var T=l===void 0?null:{bitStringContents:l};return U.create(s,a,p,f,T)}U.toDer=function(e){var t=ht.util.createBuffer(),r=e.tagClass|e.type,n=ht.util.createBuffer(),i=!1;if("bitStringContents"in e&&(i=!0,e.original&&(i=U.equals(e,e.original))),i)n.putBytes(e.bitStringContents);else if(e.composed){e.constructed?r|=32:n.putByte(0);for(var o=0;o<e.value.length;++o)e.value[o]!==void 0&&n.putBuffer(U.toDer(e.value[o]))}else if(e.type===U.Type.BMPSTRING)for(var o=0;o<e.value.length;++o)n.putInt16(e.value.charCodeAt(o));else e.type===U.Type.INTEGER&&e.value.length>1&&(e.value.charCodeAt(0)===0&&!(e.value.charCodeAt(1)&128)||e.value.charCodeAt(0)===255&&(e.value.charCodeAt(1)&128)===128)?n.putBytes(e.value.substr(1)):n.putBytes(e.value);if(t.putByte(r),n.length()<=127)t.putByte(n.length()&127);else{var s=n.length(),a="";do a+=String.fromCharCode(s&255),s=s>>>8;while(s>0);t.putByte(a.length|128);for(var o=a.length-1;o>=0;--o)t.putByte(a.charCodeAt(o))}return t.putBuffer(n),t};U.oidToDer=function(e){var t=e.split("."),r=ht.util.createBuffer();r.putByte(40*parseInt(t[0],10)+parseInt(t[1],10));for(var n,i,o,s,a=2;a<t.length;++a){n=!0,i=[],o=parseInt(t[a],10);do s=o&127,o=o>>>7,n||(s|=128),i.push(s),n=!1;while(o>0);for(var c=i.length-1;c>=0;--c)r.putByte(i[c])}return r};U.derToOid=function(e){var t;typeof e=="string"&&(e=ht.util.createBuffer(e));var r=e.getByte();t=Math.floor(r/40)+"."+r%40;for(var n=0;e.length()>0;)r=e.getByte(),n=n<<7,r&128?n+=r&127:(t+="."+(n+r),n=0);return t};U.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),u=10;c!=="+"&&c!=="-"&&(a=parseInt(e.substr(10,2),10),u+=2)}if(t.setUTCFullYear(r,n,i),t.setUTCHours(o,s,a,0),u&&(c=e.charAt(u),c==="+"||c==="-")){var f=parseInt(e.substr(u+1,2),10),l=parseInt(e.substr(u+4,2),10),p=f*60+l;p*=6e4,c==="+"?t.setTime(+t-p):t.setTime(+t+p)}return t};U.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,u=0,f=!1;e.charAt(e.length-1)==="Z"&&(f=!0);var l=e.length-5,p=e.charAt(l);if(p==="+"||p==="-"){var d=parseInt(e.substr(l+1,2),10),h=parseInt(e.substr(l+4,2),10);u=d*60+h,u*=6e4,p==="+"&&(u*=-1),f=!0}return e.charAt(14)==="."&&(c=parseFloat(e.substr(14),10)*1e3),f?(t.setUTCFullYear(r,n,i),t.setUTCHours(o,s,a,c),t.setTime(+t+u)):(t.setFullYear(r,n,i),t.setHours(o,s,a,c)),t};U.dateToUtcTime=function(e){if(typeof e=="string")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",t};U.dateToGeneralizedTime=function(e){if(typeof e=="string")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",t};U.integerToDer=function(e){var t=ht.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};U.derToInteger=function(e){typeof e=="string"&&(e=ht.util.createBuffer(e));var t=e.length()*8;if(t>32)throw new Error("Integer too large; max is 32-bits.");return e.getSignedInt(t)};U.validate=function(e,t,r,n){var i=!1;if((e.tagClass===t.tagClass||typeof t.tagClass>"u")&&(e.type===t.type||typeof t.type>"u"))if(e.constructed===t.constructed||typeof t.constructed>"u"){if(i=!0,t.value&&ht.util.isArray(t.value))for(var o=0,s=0;i&&s<t.value.length;++s)i=t.value[s].optional||!1,e.value[o]&&(i=U.validate(e.value[o],t.value[s],r,n),i?++o:t.value[s].optional&&(i=!0)),!i&&n&&n.push("["+t.name+'] Tag class "'+t.tagClass+'", type "'+t.type+'" expected value length "'+t.value.length+'", got "'+e.value.length+'"');if(i&&r&&(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)){var a;if(e.bitStringContents.length<2)r[t.captureBitStringValue]="";else{var c=e.bitStringContents.charCodeAt(0);if(c!==0)throw new Error("captureBitStringValue only supported for zero unused bits");r[t.captureBitStringValue]=e.bitStringContents.slice(1)}}}else n&&n.push("["+t.name+'] Expected constructed "'+t.constructed+'", got "'+e.constructed+'"');else n&&(e.tagClass!==t.tagClass&&n.push("["+t.name+'] Expected tag class "'+t.tagClass+'", got "'+e.tagClass+'"'),e.type!==t.type&&n.push("["+t.name+'] Expected type "'+t.type+'", got "'+e.type+'"'));return i};var x3=/[^\\u0000-\\u00ff]/;U.prettyPrint=function(e,t,r){var n="";t=t||0,r=r||2,t>0&&(n+=`
|
|
6
|
-
`);for(var i="",o=0;o<t*r;++o)i+=" ";switch(n+=i+"Tag: ",e.tagClass){case
|
|
2
|
+
"use strict";var Libp2PKadDht=(()=>{var C5=Object.create;var S0=Object.defineProperty;var R5=Object.getOwnPropertyDescriptor;var _5=Object.getOwnPropertyNames;var P5=Object.getPrototypeOf,L5=Object.prototype.hasOwnProperty;var it=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),_t=(e,t)=>{for(var r in t)S0(e,r,{get:t[r],enumerable:!0})},Ms=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of _5(t))!L5.call(e,i)&&i!==r&&S0(e,i,{get:()=>t[i],enumerable:!(n=R5(t,i))||n.enumerable});return e};var St=(e,t,r)=>(r=e!=null?C5(P5(e)):{},Ms(t||!e||!e.__esModule?S0(r,"default",{value:e,enumerable:!0}):r,e)),N5=e=>Ms(S0({},"__esModule",{value:!0}),e);var O2=it(Yn=>{(function(){var e,t,r,n,i,o,s,a;a=function(c){var u,f,l,p;return u=(c&255<<24)>>>24,f=(c&255<<16)>>>16,l=(c&65280)>>>8,p=c&255,[u,f,l,p].join(".")},s=function(c){var u,f,l,p,d,h;for(u=[],l=p=0;p<=3&&c.length!==0;l=++p){if(l>0){if(c[0]!==".")throw new Error("Invalid IP");c=c.substring(1)}h=t(c),d=h[0],f=h[1],c=c.substring(f),u.push(d)}if(c.length!==0)throw new Error("Invalid IP");switch(u.length){case 1:if(u[0]>4294967295)throw new Error("Invalid IP");return u[0]>>>0;case 2:if(u[0]>255||u[1]>16777215)throw new Error("Invalid IP");return(u[0]<<24|u[1])>>>0;case 3:if(u[0]>255||u[1]>255||u[2]>65535)throw new Error("Invalid IP");return(u[0]<<24|u[1]<<16|u[2])>>>0;case 4:if(u[0]>255||u[1]>255||u[2]>255||u[3]>255)throw new Error("Invalid IP");return(u[0]<<24|u[1]<<16|u[2]<<8|u[3])>>>0;default:throw new Error("Invalid IP")}},r=function(c){return c.charCodeAt(0)},n=r("0"),o=r("a"),i=r("A"),t=function(c){var u,f,l,p,d;for(p=0,u=10,f="9",l=0,c.length>1&&c[l]==="0"&&(c[l+1]==="x"||c[l+1]==="X"?(l+=2,u=16):"0"<=c[l+1]&&c[l+1]<="9"&&(l++,u=8,f="7")),d=l;l<c.length;){if("0"<=c[l]&&c[l]<=f)p=p*u+(r(c[l])-n)>>>0;else if(u===16)if("a"<=c[l]&&c[l]<="f")p=p*u+(10+r(c[l])-o)>>>0;else if("A"<=c[l]&&c[l]<="F")p=p*u+(10+r(c[l])-i)>>>0;else break;else break;if(p>4294967295)throw new Error("too large");l++}if(l===d)throw new Error("empty octet");return[p,l]},e=function(){function c(u,f){var l,p,d,h;if(typeof u!="string")throw new Error("Missing `net' parameter");if(f||(h=u.split("/",2),u=h[0],f=h[1]),f||(f=32),typeof f=="string"&&f.indexOf(".")>-1){try{this.maskLong=s(f)}catch(y){throw l=y,new Error("Invalid mask: "+f)}for(p=d=32;d>=0;p=--d)if(this.maskLong===4294967295<<32-p>>>0){this.bitmask=p;break}}else if(f||f===0)this.bitmask=parseInt(f,10),this.maskLong=0,this.bitmask>0&&(this.maskLong=4294967295<<32-this.bitmask>>>0);else throw new Error("Invalid mask: empty");try{this.netLong=(s(u)&this.maskLong)>>>0}catch(y){throw l=y,new Error("Invalid net address: "+u)}if(!(this.bitmask<=32))throw new Error("Invalid mask for ip4: "+f);this.size=Math.pow(2,32-this.bitmask),this.base=a(this.netLong),this.mask=a(this.maskLong),this.hostmask=a(~this.maskLong),this.first=this.bitmask<=30?a(this.netLong+1):this.base,this.last=this.bitmask<=30?a(this.netLong+this.size-2):a(this.netLong+this.size-1),this.broadcast=this.bitmask<=30?a(this.netLong+this.size-1):void 0}return c.prototype.contains=function(u){return typeof u=="string"&&(u.indexOf("/")>0||u.split(".").length!==4)&&(u=new c(u)),u instanceof c?this.contains(u.base)&&this.contains(u.broadcast||u.last):(s(u)&this.maskLong)>>>0===(this.netLong&this.maskLong)>>>0},c.prototype.next=function(u){return u==null&&(u=1),new c(a(this.netLong+this.size*u),this.mask)},c.prototype.forEach=function(u){var f,l,p;for(p=s(this.first),l=s(this.last),f=0;p<=l;)u(a(p),p,f),f++,p++},c.prototype.toString=function(){return this.base+"/"+this.bitmask},c}(),Yn.ip2long=s,Yn.long2ip=a,Yn.Netmask=e}).call(Yn)});var z2=it((q2,F0)=>{(function(e){"use strict";let t="(0?\\d+|0x[a-f0-9]+)",r={fourOctet:new RegExp(`^${t}\\.${t}\\.${t}\\.${t}$`,"i"),threeOctet:new RegExp(`^${t}\\.${t}\\.${t}$`,"i"),twoOctet:new RegExp(`^${t}\\.${t}$`,"i"),longValue:new RegExp(`^${t}$`,"i")},n=new RegExp("^0[0-7]+$","i"),i=new RegExp("^0x[a-f0-9]+$","i"),o="%[0-9a-z]{1,}",s="(?:[0-9a-f]+::?)+",a={zoneIndex:new RegExp(o,"i"),native:new RegExp(`^(::)?(${s})?([0-9a-f]+)?(::)?(${o})?$`,"i"),deprecatedTransitional:new RegExp(`^(?:::)(${t}\\.${t}\\.${t}\\.${t}(${o})?)$`,"i"),transitional:new RegExp(`^((?:${s})|(?:::)(?:${s})?)${t}\\.${t}\\.${t}\\.${t}(${o})?$`,"i")};function c(d,h){if(d.indexOf("::")!==d.lastIndexOf("::"))return null;let y=0,g=-1,m=(d.match(a.zoneIndex)||[])[0],x,v;for(m&&(m=m.substring(1),d=d.replace(/%.+$/,""));(g=d.indexOf(":",g+1))>=0;)y++;if(d.substr(0,2)==="::"&&y--,d.substr(-2,2)==="::"&&y--,y>h)return null;for(v=h-y,x=":";v--;)x+="0:";return d=d.replace("::",x),d[0]===":"&&(d=d.slice(1)),d[d.length-1]===":"&&(d=d.slice(0,-1)),h=function(){let T=d.split(":"),E=[];for(let S=0;S<T.length;S++)E.push(parseInt(T[S],16));return E}(),{parts:h,zoneId:m}}function u(d,h,y,g){if(d.length!==h.length)throw new Error("ipaddr: cannot match CIDR for objects with different lengths");let m=0,x;for(;g>0;){if(x=y-g,x<0&&(x=0),d[m]>>x!==h[m]>>x)return!1;g-=y,m+=1}return!0}function f(d){if(i.test(d))return parseInt(d,16);if(d[0]==="0"&&!isNaN(parseInt(d[1],10))){if(n.test(d))return parseInt(d,8);throw new Error(`ipaddr: cannot parse ${d} as octal`)}return parseInt(d,10)}function l(d,h){for(;d.length<h;)d=`0${d}`;return d}let p={};p.IPv4=function(){function d(h){if(h.length!==4)throw new Error("ipaddr: ipv4 octet count should be 4");let y,g;for(y=0;y<h.length;y++)if(g=h[y],!(0<=g&&g<=255))throw new Error("ipaddr: ipv4 octet should fit in 8 bits");this.octets=h}return d.prototype.SpecialRanges={unspecified:[[new d([0,0,0,0]),8]],broadcast:[[new d([255,255,255,255]),32]],multicast:[[new d([224,0,0,0]),4]],linkLocal:[[new d([169,254,0,0]),16]],loopback:[[new d([127,0,0,0]),8]],carrierGradeNat:[[new d([100,64,0,0]),10]],private:[[new d([10,0,0,0]),8],[new d([172,16,0,0]),12],[new d([192,168,0,0]),16]],reserved:[[new d([192,0,0,0]),24],[new d([192,0,2,0]),24],[new d([192,88,99,0]),24],[new d([198,18,0,0]),15],[new d([198,51,100,0]),24],[new d([203,0,113,0]),24],[new d([240,0,0,0]),4]]},d.prototype.kind=function(){return"ipv4"},d.prototype.match=function(h,y){let g;if(y===void 0&&(g=h,h=g[0],y=g[1]),h.kind()!=="ipv4")throw new Error("ipaddr: cannot match ipv4 address with non-ipv4 one");return u(this.octets,h.octets,8,y)},d.prototype.prefixLengthFromSubnetMask=function(){let h=0,y=!1,g={0:8,128:7,192:6,224:5,240:4,248:3,252:2,254:1,255:0},m,x,v;for(m=3;m>=0;m-=1)if(x=this.octets[m],x in g){if(v=g[x],y&&v!==0)return null;v!==8&&(y=!0),h+=v}else return null;return 32-h},d.prototype.range=function(){return p.subnetMatch(this,this.SpecialRanges)},d.prototype.toByteArray=function(){return this.octets.slice(0)},d.prototype.toIPv4MappedAddress=function(){return p.IPv6.parse(`::ffff:${this.toString()}`)},d.prototype.toNormalizedString=function(){return this.toString()},d.prototype.toString=function(){return this.octets.join(".")},d}(),p.IPv4.broadcastAddressFromCIDR=function(d){try{let h=this.parseCIDR(d),y=h[0].toByteArray(),g=this.subnetMaskFromPrefixLength(h[1]).toByteArray(),m=[],x=0;for(;x<4;)m.push(parseInt(y[x],10)|parseInt(g[x],10)^255),x++;return new this(m)}catch{throw new Error("ipaddr: the address does not have IPv4 CIDR format")}},p.IPv4.isIPv4=function(d){return this.parser(d)!==null},p.IPv4.isValid=function(d){try{return new this(this.parser(d)),!0}catch{return!1}},p.IPv4.isValidFourPartDecimal=function(d){return!!(p.IPv4.isValid(d)&&d.match(/^(0|[1-9]\d*)(\.(0|[1-9]\d*)){3}$/))},p.IPv4.networkAddressFromCIDR=function(d){let h,y,g,m,x;try{for(h=this.parseCIDR(d),g=h[0].toByteArray(),x=this.subnetMaskFromPrefixLength(h[1]).toByteArray(),m=[],y=0;y<4;)m.push(parseInt(g[y],10)&parseInt(x[y],10)),y++;return new this(m)}catch{throw new Error("ipaddr: the address does not have IPv4 CIDR format")}},p.IPv4.parse=function(d){let h=this.parser(d);if(h===null)throw new Error("ipaddr: string is not formatted like an IPv4 Address");return new this(h)},p.IPv4.parseCIDR=function(d){let h;if(h=d.match(/^(.+)\/(\d+)$/)){let y=parseInt(h[2]);if(y>=0&&y<=32){let g=[this.parse(h[1]),y];return Object.defineProperty(g,"toString",{value:function(){return this.join("/")}}),g}}throw new Error("ipaddr: string is not formatted like an IPv4 CIDR range")},p.IPv4.parser=function(d){let h,y,g;if(h=d.match(r.fourOctet))return function(){let m=h.slice(1,6),x=[];for(let v=0;v<m.length;v++)y=m[v],x.push(f(y));return x}();if(h=d.match(r.longValue)){if(g=f(h[1]),g>4294967295||g<0)throw new Error("ipaddr: address outside defined range");return function(){let m=[],x;for(x=0;x<=24;x+=8)m.push(g>>x&255);return m}().reverse()}else return(h=d.match(r.twoOctet))?function(){let m=h.slice(1,4),x=[];if(g=f(m[1]),g>16777215||g<0)throw new Error("ipaddr: address outside defined range");return x.push(f(m[0])),x.push(g>>16&255),x.push(g>>8&255),x.push(g&255),x}():(h=d.match(r.threeOctet))?function(){let m=h.slice(1,5),x=[];if(g=f(m[2]),g>65535||g<0)throw new Error("ipaddr: address outside defined range");return x.push(f(m[0])),x.push(f(m[1])),x.push(g>>8&255),x.push(g&255),x}():null},p.IPv4.subnetMaskFromPrefixLength=function(d){if(d=parseInt(d),d<0||d>32)throw new Error("ipaddr: invalid IPv4 prefix length");let h=[0,0,0,0],y=0,g=Math.floor(d/8);for(;y<g;)h[y]=255,y++;return g<4&&(h[g]=Math.pow(2,d%8)-1<<8-d%8),new this(h)},p.IPv6=function(){function d(h,y){let g,m;if(h.length===16)for(this.parts=[],g=0;g<=14;g+=2)this.parts.push(h[g]<<8|h[g+1]);else if(h.length===8)this.parts=h;else throw new Error("ipaddr: ipv6 part count should be 8 or 16");for(g=0;g<this.parts.length;g++)if(m=this.parts[g],!(0<=m&&m<=65535))throw new Error("ipaddr: ipv6 part should fit in 16 bits");y&&(this.zoneId=y)}return d.prototype.SpecialRanges={unspecified:[new d([0,0,0,0,0,0,0,0]),128],linkLocal:[new d([65152,0,0,0,0,0,0,0]),10],multicast:[new d([65280,0,0,0,0,0,0,0]),8],loopback:[new d([0,0,0,0,0,0,0,1]),128],uniqueLocal:[new d([64512,0,0,0,0,0,0,0]),7],ipv4Mapped:[new d([0,0,0,0,0,65535,0,0]),96],rfc6145:[new d([0,0,0,0,65535,0,0,0]),96],rfc6052:[new d([100,65435,0,0,0,0,0,0]),96],"6to4":[new d([8194,0,0,0,0,0,0,0]),16],teredo:[new d([8193,0,0,0,0,0,0,0]),32],reserved:[[new d([8193,3512,0,0,0,0,0,0]),32]],benchmarking:[new d([8193,2,0,0,0,0,0,0]),48],amt:[new d([8193,3,0,0,0,0,0,0]),32],as112v6:[new d([8193,4,274,0,0,0,0,0]),48],deprecated:[new d([8193,16,0,0,0,0,0,0]),28],orchid2:[new d([8193,32,0,0,0,0,0,0]),28]},d.prototype.isIPv4MappedAddress=function(){return this.range()==="ipv4Mapped"},d.prototype.kind=function(){return"ipv6"},d.prototype.match=function(h,y){let g;if(y===void 0&&(g=h,h=g[0],y=g[1]),h.kind()!=="ipv6")throw new Error("ipaddr: cannot match ipv6 address with non-ipv6 one");return u(this.parts,h.parts,16,y)},d.prototype.prefixLengthFromSubnetMask=function(){let h=0,y=!1,g={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},m,x;for(let v=7;v>=0;v-=1)if(m=this.parts[v],m in g){if(x=g[m],y&&x!==0)return null;x!==16&&(y=!0),h+=x}else return null;return 128-h},d.prototype.range=function(){return p.subnetMatch(this,this.SpecialRanges)},d.prototype.toByteArray=function(){let h,y=[],g=this.parts;for(let m=0;m<g.length;m++)h=g[m],y.push(h>>8),y.push(h&255);return y},d.prototype.toFixedLengthString=function(){let h=function(){let g=[];for(let m=0;m<this.parts.length;m++)g.push(l(this.parts[m].toString(16),4));return g}.call(this).join(":"),y="";return this.zoneId&&(y=`%${this.zoneId}`),h+y},d.prototype.toIPv4Address=function(){if(!this.isIPv4MappedAddress())throw new Error("ipaddr: trying to convert a generic ipv6 address to ipv4");let h=this.parts.slice(-2),y=h[0],g=h[1];return new p.IPv4([y>>8,y&255,g>>8,g&255])},d.prototype.toNormalizedString=function(){let h=function(){let g=[];for(let m=0;m<this.parts.length;m++)g.push(this.parts[m].toString(16));return g}.call(this).join(":"),y="";return this.zoneId&&(y=`%${this.zoneId}`),h+y},d.prototype.toRFC5952String=function(){let h=/((^|:)(0(:|$)){2,})/g,y=this.toNormalizedString(),g=0,m=-1,x;for(;x=h.exec(y);)x[0].length>m&&(g=x.index,m=x[0].length);return m<0?y:`${y.substring(0,g)}::${y.substring(g+m)}`},d.prototype.toString=function(){return this.toRFC5952String()},d}(),p.IPv6.broadcastAddressFromCIDR=function(d){try{let h=this.parseCIDR(d),y=h[0].toByteArray(),g=this.subnetMaskFromPrefixLength(h[1]).toByteArray(),m=[],x=0;for(;x<16;)m.push(parseInt(y[x],10)|parseInt(g[x],10)^255),x++;return new this(m)}catch(h){throw new Error(`ipaddr: the address does not have IPv6 CIDR format (${h})`)}},p.IPv6.isIPv6=function(d){return this.parser(d)!==null},p.IPv6.isValid=function(d){if(typeof d=="string"&&d.indexOf(":")===-1)return!1;try{let h=this.parser(d);return new this(h.parts,h.zoneId),!0}catch{return!1}},p.IPv6.networkAddressFromCIDR=function(d){let h,y,g,m,x;try{for(h=this.parseCIDR(d),g=h[0].toByteArray(),x=this.subnetMaskFromPrefixLength(h[1]).toByteArray(),m=[],y=0;y<16;)m.push(parseInt(g[y],10)&parseInt(x[y],10)),y++;return new this(m)}catch(v){throw new Error(`ipaddr: the address does not have IPv6 CIDR format (${v})`)}},p.IPv6.parse=function(d){let h=this.parser(d);if(h.parts===null)throw new Error("ipaddr: string is not formatted like an IPv6 Address");return new this(h.parts,h.zoneId)},p.IPv6.parseCIDR=function(d){let h,y,g;if((y=d.match(/^(.+)\/(\d+)$/))&&(h=parseInt(y[2]),h>=0&&h<=128))return g=[this.parse(y[1]),h],Object.defineProperty(g,"toString",{value:function(){return this.join("/")}}),g;throw new Error("ipaddr: string is not formatted like an IPv6 CIDR range")},p.IPv6.parser=function(d){let h,y,g,m,x,v;if(g=d.match(a.deprecatedTransitional))return this.parser(`::ffff:${g[1]}`);if(a.native.test(d))return c(d,8);if((g=d.match(a.transitional))&&(v=g[6]||"",h=c(g[1].slice(0,-1)+v,6),h.parts)){for(x=[parseInt(g[2]),parseInt(g[3]),parseInt(g[4]),parseInt(g[5])],y=0;y<x.length;y++)if(m=x[y],!(0<=m&&m<=255))return null;return h.parts.push(x[0]<<8|x[1]),h.parts.push(x[2]<<8|x[3]),{parts:h.parts,zoneId:h.zoneId}}return null},p.IPv6.subnetMaskFromPrefixLength=function(d){if(d=parseInt(d),d<0||d>128)throw new Error("ipaddr: invalid IPv6 prefix length");let h=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],y=0,g=Math.floor(d/8);for(;y<g;)h[y]=255,y++;return g<16&&(h[g]=Math.pow(2,d%8)-1<<8-d%8),new this(h)},p.fromByteArray=function(d){let h=d.length;if(h===4)return new p.IPv4(d);if(h===16)return new p.IPv6(d);throw new Error("ipaddr: the binary input is neither an IPv6 nor IPv4 address")},p.isValid=function(d){return p.IPv6.isValid(d)||p.IPv4.isValid(d)},p.parse=function(d){if(p.IPv6.isValid(d))return p.IPv6.parse(d);if(p.IPv4.isValid(d))return p.IPv4.parse(d);throw new Error("ipaddr: the address has neither IPv6 nor IPv4 format")},p.parseCIDR=function(d){try{return p.IPv6.parseCIDR(d)}catch{try{return p.IPv4.parseCIDR(d)}catch{throw new Error("ipaddr: the address has neither IPv6 nor IPv4 CIDR format")}}},p.process=function(d){let h=this.parse(d);return h.kind()==="ipv6"&&h.isIPv4MappedAddress()?h.toIPv4Address():h},p.subnetMatch=function(d,h,y){let g,m,x,v;y==null&&(y="unicast");for(m in h)if(Object.prototype.hasOwnProperty.call(h,m)){for(x=h[m],x[0]&&!(x[0]instanceof Array)&&(x=[x]),g=0;g<x.length;g++)if(v=x[g],d.kind()===v[0].kind()&&d.match.apply(d,v))return m}return y},typeof F0<"u"&&F0.exports?F0.exports=p:e.ipaddr=p})(q2)});var Ba=it((wm,Aa)=>{"use strict";function Ia(e,t){for(let r in t)Object.defineProperty(e,r,{value:t[r],enumerable:!0,configurable:!0});return e}function tc(e,t,r){if(!e||typeof e=="string")throw new TypeError("Please pass an Error to err-code");r||(r={}),typeof t=="object"&&(r=t,t=""),t&&(r.code=t);try{return Ia(e,r)}catch{r.message=e.message,r.stack=e.stack;let i=function(){};return i.prototype=Object.create(Object.getPrototypeOf(e)),Ia(new i,r)}}Aa.exports=tc});var ut=it((qm,_a)=>{_a.exports={options:{usePureJavaScript:!1}}});var Na=it((zm,La)=>{var vo={};La.exports=vo;var Pa={};vo.encode=function(e,t,r){if(typeof t!="string")throw new TypeError('"alphabet" must be a string.');if(r!==void 0&&typeof r!="number")throw new TypeError('"maxline" must be a number.');var n="";if(!(e instanceof Uint8Array))n=nc(e,t);else{var i=0,o=t.length,s=t.charAt(0),a=[0];for(i=0;i<e.length;++i){for(var c=0,u=e[i];c<a.length;++c)u+=a[c]<<8,a[c]=u%o,u=u/o|0;for(;u>0;)a.push(u%o),u=u/o|0}for(i=0;e[i]===0&&i<e.length-1;++i)n+=s;for(i=a.length-1;i>=0;--i)n+=t[a[i]]}if(r){var f=new RegExp(".{1,"+r+"}","g");n=n.match(f).join(`\r
|
|
3
|
+
`)}return n};vo.decode=function(e,t){if(typeof e!="string")throw new TypeError('"input" must be a string.');if(typeof t!="string")throw new TypeError('"alphabet" must be a string.');var r=Pa[t];if(!r){r=Pa[t]=[];for(var n=0;n<t.length;++n)r[t.charCodeAt(n)]=n}e=e.replace(/\s/g,"");for(var i=t.length,o=t.charAt(0),s=[0],n=0;n<e.length;n++){var a=r[e.charCodeAt(n)];if(a===void 0)return;for(var c=0,u=a;c<s.length;++c)u+=s[c]*i,s[c]=u&255,u>>=8;for(;u>0;)s.push(u&255),u>>=8}for(var f=0;e[f]===o&&f<e.length-1;++f)s.push(0);return typeof Buffer<"u"?Buffer.from(s.reverse()):new Uint8Array(s.reverse())};function nc(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;e.at(r)===0&&r<e.length()-1;++r)c+=i;for(r=o.length-1;r>=0;--r)c+=t[o[r]];return c}});var Tt=it((Hm,Ua)=>{var Da=ut(),ka=Na(),b=Ua.exports=Da.util=Da.util||{};(function(){if(typeof process<"u"&&process.nextTick&&!process.browser){b.nextTick=process.nextTick,typeof setImmediate=="function"?b.setImmediate=setImmediate:b.setImmediate=b.nextTick;return}if(typeof setImmediate=="function"){b.setImmediate=function(){return setImmediate.apply(void 0,arguments)},b.nextTick=function(a){return setImmediate(a)};return}if(b.setImmediate=function(a){setTimeout(a,0)},typeof window<"u"&&typeof window.postMessage=="function"){let a=function(c){if(c.source===window&&c.data===e){c.stopPropagation();var u=t.slice();t.length=0,u.forEach(function(f){f()})}};var s=a,e="forge.setImmediate",t=[];b.setImmediate=function(c){t.push(c),t.length===1&&window.postMessage(e,"*")},window.addEventListener("message",a,!0)}if(typeof MutationObserver<"u"){var r=Date.now(),n=!0,i=document.createElement("div"),t=[];new MutationObserver(function(){var c=t.slice();t.length=0,c.forEach(function(u){u()})}).observe(i,{attributes:!0});var o=b.setImmediate;b.setImmediate=function(c){Date.now()-r>15?(r=Date.now(),o(c)):(t.push(c),t.length===1&&i.setAttribute("a",n=!n))}}b.nextTick=b.setImmediate})();b.isNodejs=typeof process<"u"&&process.versions&&process.versions.node;b.globalScope=function(){return b.isNodejs?globalThis:typeof self>"u"?window:self}();b.isArray=Array.isArray||function(e){return Object.prototype.toString.call(e)==="[object Array]"};b.isArrayBuffer=function(e){return typeof ArrayBuffer<"u"&&e instanceof ArrayBuffer};b.isArrayBufferView=function(e){return e&&b.isArrayBuffer(e.buffer)&&e.byteLength!==void 0};function t0(e){if(!(e===8||e===16||e===24||e===32))throw new Error("Only 8, 16, 24, or 32 bits supported: "+e)}b.ByteBuffer=bo;function bo(e){if(this.data="",this.read=0,typeof e=="string")this.data=e;else if(b.isArrayBuffer(e)||b.isArrayBufferView(e))if(typeof Buffer<"u"&&e instanceof Buffer)this.data=e.toString("binary");else{var t=new Uint8Array(e);try{this.data=String.fromCharCode.apply(null,t)}catch{for(var r=0;r<t.length;++r)this.putByte(t[r])}}else(e instanceof bo||typeof e=="object"&&typeof e.data=="string"&&typeof e.read=="number")&&(this.data=e.data,this.read=e.read);this._constructedStringLength=0}b.ByteStringBuffer=bo;var ic=4096;b.ByteStringBuffer.prototype._optimizeConstructedString=function(e){this._constructedStringLength+=e,this._constructedStringLength>ic&&(this.data.substr(0,1),this._constructedStringLength=0)};b.ByteStringBuffer.prototype.length=function(){return this.data.length-this.read};b.ByteStringBuffer.prototype.isEmpty=function(){return this.length()<=0};b.ByteStringBuffer.prototype.putByte=function(e){return this.putBytes(String.fromCharCode(e))};b.ByteStringBuffer.prototype.fillWithByte=function(e,t){e=String.fromCharCode(e);for(var r=this.data;t>0;)t&1&&(r+=e),t>>>=1,t>0&&(e+=e);return this.data=r,this._optimizeConstructedString(t),this};b.ByteStringBuffer.prototype.putBytes=function(e){return this.data+=e,this._optimizeConstructedString(e.length),this};b.ByteStringBuffer.prototype.putString=function(e){return this.putBytes(b.encodeUtf8(e))};b.ByteStringBuffer.prototype.putInt16=function(e){return this.putBytes(String.fromCharCode(e>>8&255)+String.fromCharCode(e&255))};b.ByteStringBuffer.prototype.putInt24=function(e){return this.putBytes(String.fromCharCode(e>>16&255)+String.fromCharCode(e>>8&255)+String.fromCharCode(e&255))};b.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(e&255))};b.ByteStringBuffer.prototype.putInt16Le=function(e){return this.putBytes(String.fromCharCode(e&255)+String.fromCharCode(e>>8&255))};b.ByteStringBuffer.prototype.putInt24Le=function(e){return this.putBytes(String.fromCharCode(e&255)+String.fromCharCode(e>>8&255)+String.fromCharCode(e>>16&255))};b.ByteStringBuffer.prototype.putInt32Le=function(e){return this.putBytes(String.fromCharCode(e&255)+String.fromCharCode(e>>8&255)+String.fromCharCode(e>>16&255)+String.fromCharCode(e>>24&255))};b.ByteStringBuffer.prototype.putInt=function(e,t){t0(t);var r="";do t-=8,r+=String.fromCharCode(e>>t&255);while(t>0);return this.putBytes(r)};b.ByteStringBuffer.prototype.putSignedInt=function(e,t){return e<0&&(e+=2<<t-1),this.putInt(e,t)};b.ByteStringBuffer.prototype.putBuffer=function(e){return this.putBytes(e.getBytes())};b.ByteStringBuffer.prototype.getByte=function(){return this.data.charCodeAt(this.read++)};b.ByteStringBuffer.prototype.getInt16=function(){var e=this.data.charCodeAt(this.read)<<8^this.data.charCodeAt(this.read+1);return this.read+=2,e};b.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};b.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};b.ByteStringBuffer.prototype.getInt16Le=function(){var e=this.data.charCodeAt(this.read)^this.data.charCodeAt(this.read+1)<<8;return this.read+=2,e};b.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};b.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};b.ByteStringBuffer.prototype.getInt=function(e){t0(e);var t=0;do t=(t<<8)+this.data.charCodeAt(this.read++),e-=8;while(e>0);return t};b.ByteStringBuffer.prototype.getSignedInt=function(e){var t=this.getInt(e),r=2<<e-2;return t>=r&&(t-=r<<1),t};b.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):e===0?t="":(t=this.read===0?this.data:this.data.slice(this.read),this.clear()),t};b.ByteStringBuffer.prototype.bytes=function(e){return typeof e>"u"?this.data.slice(this.read):this.data.slice(this.read,this.read+e)};b.ByteStringBuffer.prototype.at=function(e){return this.data.charCodeAt(this.read+e)};b.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};b.ByteStringBuffer.prototype.last=function(){return this.data.charCodeAt(this.data.length-1)};b.ByteStringBuffer.prototype.copy=function(){var e=b.createBuffer(this.data);return e.read=this.read,e};b.ByteStringBuffer.prototype.compact=function(){return this.read>0&&(this.data=this.data.slice(this.read),this.read=0),this};b.ByteStringBuffer.prototype.clear=function(){return this.data="",this.read=0,this};b.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};b.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};b.ByteStringBuffer.prototype.toString=function(){return b.decodeUtf8(this.bytes())};function oc(e,t){t=t||{},this.read=t.readOffset||0,this.growSize=t.growSize||1024;var r=b.isArrayBuffer(e),n=b.isArrayBufferView(e);if(r||n){r?this.data=new DataView(e):this.data=new DataView(e.buffer,e.byteOffset,e.byteLength),this.write="writeOffset"in t?t.writeOffset:this.data.byteLength;return}this.data=new DataView(new ArrayBuffer(0)),this.write=0,e!=null&&this.putBytes(e),"writeOffset"in t&&(this.write=t.writeOffset)}b.DataBuffer=oc;b.DataBuffer.prototype.length=function(){return this.write-this.read};b.DataBuffer.prototype.isEmpty=function(){return this.length()<=0};b.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};b.DataBuffer.prototype.putByte=function(e){return this.accommodate(1),this.data.setUint8(this.write++,e),this};b.DataBuffer.prototype.fillWithByte=function(e,t){this.accommodate(t);for(var r=0;r<t;++r)this.data.setUint8(e);return this};b.DataBuffer.prototype.putBytes=function(e,t){if(b.isArrayBufferView(e)){var r=new Uint8Array(e.buffer,e.byteOffset,e.byteLength),n=r.byteLength-r.byteOffset;this.accommodate(n);var i=new Uint8Array(this.data.buffer,this.write);return i.set(r),this.write+=n,this}if(b.isArrayBuffer(e)){var r=new Uint8Array(e);this.accommodate(r.byteLength);var i=new Uint8Array(this.data.buffer);return i.set(r,this.write),this.write+=r.byteLength,this}if(e instanceof b.DataBuffer||typeof e=="object"&&typeof e.read=="number"&&typeof e.write=="number"&&b.isArrayBufferView(e.data)){var r=new Uint8Array(e.data.byteLength,e.read,e.length());this.accommodate(r.byteLength);var i=new Uint8Array(e.data.byteLength,this.write);return i.set(r),this.write+=r.byteLength,this}if(e instanceof b.ByteStringBuffer&&(e=e.data,t="binary"),t=t||"binary",typeof e=="string"){var o;if(t==="hex")return this.accommodate(Math.ceil(e.length/2)),o=new Uint8Array(this.data.buffer,this.write),this.write+=b.binary.hex.decode(e,o,this.write),this;if(t==="base64")return this.accommodate(Math.ceil(e.length/4)*3),o=new Uint8Array(this.data.buffer,this.write),this.write+=b.binary.base64.decode(e,o,this.write),this;if(t==="utf8"&&(e=b.encodeUtf8(e),t="binary"),t==="binary"||t==="raw")return this.accommodate(e.length),o=new Uint8Array(this.data.buffer,this.write),this.write+=b.binary.raw.decode(o),this;if(t==="utf16")return this.accommodate(e.length*2),o=new Uint16Array(this.data.buffer,this.write),this.write+=b.text.utf16.encode(o),this;throw new Error("Invalid encoding: "+t)}throw Error("Invalid parameter: "+e)};b.DataBuffer.prototype.putBuffer=function(e){return this.putBytes(e),e.clear(),this};b.DataBuffer.prototype.putString=function(e){return this.putBytes(e,"utf16")};b.DataBuffer.prototype.putInt16=function(e){return this.accommodate(2),this.data.setInt16(this.write,e),this.write+=2,this};b.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};b.DataBuffer.prototype.putInt32=function(e){return this.accommodate(4),this.data.setInt32(this.write,e),this.write+=4,this};b.DataBuffer.prototype.putInt16Le=function(e){return this.accommodate(2),this.data.setInt16(this.write,e,!0),this.write+=2,this};b.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};b.DataBuffer.prototype.putInt32Le=function(e){return this.accommodate(4),this.data.setInt32(this.write,e,!0),this.write+=4,this};b.DataBuffer.prototype.putInt=function(e,t){t0(t),this.accommodate(t/8);do t-=8,this.data.setInt8(this.write++,e>>t&255);while(t>0);return this};b.DataBuffer.prototype.putSignedInt=function(e,t){return t0(t),this.accommodate(t/8),e<0&&(e+=2<<t-1),this.putInt(e,t)};b.DataBuffer.prototype.getByte=function(){return this.data.getInt8(this.read++)};b.DataBuffer.prototype.getInt16=function(){var e=this.data.getInt16(this.read);return this.read+=2,e};b.DataBuffer.prototype.getInt24=function(){var e=this.data.getInt16(this.read)<<8^this.data.getInt8(this.read+2);return this.read+=3,e};b.DataBuffer.prototype.getInt32=function(){var e=this.data.getInt32(this.read);return this.read+=4,e};b.DataBuffer.prototype.getInt16Le=function(){var e=this.data.getInt16(this.read,!0);return this.read+=2,e};b.DataBuffer.prototype.getInt24Le=function(){var e=this.data.getInt8(this.read)^this.data.getInt16(this.read+1,!0)<<8;return this.read+=3,e};b.DataBuffer.prototype.getInt32Le=function(){var e=this.data.getInt32(this.read,!0);return this.read+=4,e};b.DataBuffer.prototype.getInt=function(e){t0(e);var t=0;do t=(t<<8)+this.data.getInt8(this.read++),e-=8;while(e>0);return t};b.DataBuffer.prototype.getSignedInt=function(e){var t=this.getInt(e),r=2<<e-2;return t>=r&&(t-=r<<1),t};b.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):e===0?t="":(t=this.read===0?this.data:this.data.slice(this.read),this.clear()),t};b.DataBuffer.prototype.bytes=function(e){return typeof e>"u"?this.data.slice(this.read):this.data.slice(this.read,this.read+e)};b.DataBuffer.prototype.at=function(e){return this.data.getUint8(this.read+e)};b.DataBuffer.prototype.setAt=function(e,t){return this.data.setUint8(e,t),this};b.DataBuffer.prototype.last=function(){return this.data.getUint8(this.write-1)};b.DataBuffer.prototype.copy=function(){return new b.DataBuffer(this)};b.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};b.DataBuffer.prototype.clear=function(){return this.data=new DataView(new ArrayBuffer(0)),this.read=this.write=0,this};b.DataBuffer.prototype.truncate=function(e){return this.write=Math.max(0,this.length()-e),this.read=Math.min(this.read,this.write),this};b.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};b.DataBuffer.prototype.toString=function(e){var t=new Uint8Array(this.data,this.read,this.length());if(e=e||"utf8",e==="binary"||e==="raw")return b.binary.raw.encode(t);if(e==="hex")return b.binary.hex.encode(t);if(e==="base64")return b.binary.base64.encode(t);if(e==="utf8")return b.text.utf8.decode(t);if(e==="utf16")return b.text.utf16.decode(t);throw new Error("Invalid encoding: "+e)};b.createBuffer=function(e,t){return t=t||"raw",e!==void 0&&t==="utf8"&&(e=b.encodeUtf8(e)),new b.ByteBuffer(e)};b.fillString=function(e,t){for(var r="";t>0;)t&1&&(r+=e),t>>>=1,t>0&&(e+=e);return r};b.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,n};b.hexToBytes=function(e){var t="",r=0;for(e.length&!0&&(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};b.bytesToHex=function(e){return b.createBuffer(e).toHex()};b.int32ToBytes=function(e){return String.fromCharCode(e>>24&255)+String.fromCharCode(e>>16&255)+String.fromCharCode(e>>8&255)+String.fromCharCode(e&255)};var pr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",yr=[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],Oa="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";b.encode64=function(e,t){for(var r="",n="",i,o,s,a=0;a<e.length;)i=e.charCodeAt(a++),o=e.charCodeAt(a++),s=e.charCodeAt(a++),r+=pr.charAt(i>>2),r+=pr.charAt((i&3)<<4|o>>4),isNaN(o)?r+="==":(r+=pr.charAt((o&15)<<2|s>>6),r+=isNaN(s)?"=":pr.charAt(s&63)),t&&r.length>t&&(n+=r.substr(0,t)+`\r
|
|
4
|
+
`,r=r.substr(t));return n+=r,n};b.decode64=function(e){e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");for(var t="",r,n,i,o,s=0;s<e.length;)r=yr[e.charCodeAt(s++)-43],n=yr[e.charCodeAt(s++)-43],i=yr[e.charCodeAt(s++)-43],o=yr[e.charCodeAt(s++)-43],t+=String.fromCharCode(r<<2|n>>4),i!==64&&(t+=String.fromCharCode((n&15)<<4|i>>2),o!==64&&(t+=String.fromCharCode((i&3)<<6|o)));return t};b.encodeUtf8=function(e){return unescape(encodeURIComponent(e))};b.decodeUtf8=function(e){return decodeURIComponent(escape(e))};b.binary={raw:{},hex:{},base64:{},base58:{},baseN:{encode:ka.encode,decode:ka.decode}};b.binary.raw.encode=function(e){return String.fromCharCode.apply(null,e)};b.binary.raw.decode=function(e,t,r){var n=t;n||(n=new Uint8Array(e.length)),r=r||0;for(var i=r,o=0;o<e.length;++o)n[i++]=e.charCodeAt(o);return t?i-r:n};b.binary.hex.encode=b.bytesToHex;b.binary.hex.decode=function(e,t,r){var n=t;n||(n=new Uint8Array(Math.ceil(e.length/2))),r=r||0;var i=0,o=r;for(e.length&1&&(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};b.binary.base64.encode=function(e,t){for(var r="",n="",i,o,s,a=0;a<e.byteLength;)i=e[a++],o=e[a++],s=e[a++],r+=pr.charAt(i>>2),r+=pr.charAt((i&3)<<4|o>>4),isNaN(o)?r+="==":(r+=pr.charAt((o&15)<<2|s>>6),r+=isNaN(s)?"=":pr.charAt(s&63)),t&&r.length>t&&(n+=r.substr(0,t)+`\r
|
|
5
|
+
`,r=r.substr(t));return n+=r,n};b.binary.base64.decode=function(e,t,r){var n=t;n||(n=new Uint8Array(Math.ceil(e.length/4)*3)),e=e.replace(/[^A-Za-z0-9\+\/\=]/g,""),r=r||0;for(var i,o,s,a,c=0,u=r;c<e.length;)i=yr[e.charCodeAt(c++)-43],o=yr[e.charCodeAt(c++)-43],s=yr[e.charCodeAt(c++)-43],a=yr[e.charCodeAt(c++)-43],n[u++]=i<<2|o>>4,s!==64&&(n[u++]=(o&15)<<4|s>>2,a!==64&&(n[u++]=(s&3)<<6|a));return t?u-r:n.subarray(0,u)};b.binary.base58.encode=function(e,t){return b.binary.baseN.encode(e,Oa,t)};b.binary.base58.decode=function(e,t){return b.binary.baseN.decode(e,Oa,t)};b.text={utf8:{},utf16:{}};b.text.utf8.encode=function(e,t,r){e=b.encodeUtf8(e);var n=t;n||(n=new Uint8Array(e.length)),r=r||0;for(var i=r,o=0;o<e.length;++o)n[i++]=e.charCodeAt(o);return t?i-r:n};b.text.utf8.decode=function(e){return b.decodeUtf8(String.fromCharCode.apply(null,e))};b.text.utf16.encode=function(e,t,r){var n=t;n||(n=new Uint8Array(e.length*2));var i=new Uint16Array(n.buffer);r=r||0;for(var o=r,s=r,a=0;a<e.length;++a)i[s++]=e.charCodeAt(a),o+=2;return t?o-r:n};b.text.utf16.decode=function(e){return String.fromCharCode.apply(null,new Uint16Array(e.buffer))};b.deflate=function(e,t,r){if(t=b.decode64(e.deflate(b.encode64(t)).rval),r){var n=2,i=t.charCodeAt(1);i&32&&(n=6),t=t.substring(n,t.length-4)}return t};b.inflate=function(e,t,r){var n=e.inflate(b.encode64(t)).rval;return n===null?null:b.decode64(n)};var wo=function(e,t,r){if(!e)throw new Error("WebStorage not available.");var n;if(r===null?n=e.removeItem(t):(r=b.encode64(JSON.stringify(r)),n=e.setItem(t,r)),typeof n<"u"&&n.rval!==!0){var i=new Error(n.error.message);throw i.id=n.error.id,i.name=n.error.name,i}},Eo=function(e,t){if(!e)throw new Error("WebStorage not available.");var r=e.getItem(t);if(e.init)if(r.rval===null){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 r!==null&&(r=JSON.parse(b.decode64(r))),r},sc=function(e,t,r,n){var i=Eo(e,t);i===null&&(i={}),i[r]=n,wo(e,t,i)},ac=function(e,t,r){var n=Eo(e,t);return n!==null&&(n=r in n?n[r]:null),n},cc=function(e,t,r){var n=Eo(e,t);if(n!==null&&r in n){delete n[r];var i=!0;for(var o in n){i=!1;break}i&&(n=null),wo(e,t,n)}},uc=function(e,t){wo(e,t,null)},X0=function(e,t,r){var n=null;typeof r>"u"&&(r=["web","flash"]);var i,o=!1,s=null;for(var a in r){i=r[a];try{if(i==="flash"||i==="both"){if(t[0]===null)throw new Error("Flash local storage not available.");n=e.apply(this,t),o=i==="flash"}(i==="web"||i==="both")&&(t[0]=localStorage,n=e.apply(this,t),o=!0)}catch(c){s=c}if(o)break}if(!o)throw s;return n};b.setItem=function(e,t,r,n,i){X0(sc,arguments,i)};b.getItem=function(e,t,r,n){return X0(ac,arguments,n)};b.removeItem=function(e,t,r,n){X0(cc,arguments,n)};b.clearItems=function(e,t,r){X0(uc,arguments,r)};b.isEmpty=function(e){for(var t in e)if(e.hasOwnProperty(t))return!1;return!0};b.format=function(e){for(var t=/%./g,r,n,i=0,o=[],s=0;r=t.exec(e);){n=e.substring(s,t.lastIndex-2),n.length>0&&o.push(n),s=t.lastIndex;var a=r[0][1];switch(a){case"s":case"o":i<arguments.length?o.push(arguments[i+++1]):o.push("<?>");break;case"%":o.push("%");break;default:o.push("<%"+a+"?>")}}return o.push(e.substring(s)),o.join("")};b.formatNumber=function(e,t,r,n){var i=e,o=isNaN(t=Math.abs(t))?2:t,s=r===void 0?",":r,a=n===void 0?".":n,c=i<0?"-":"",u=parseInt(i=Math.abs(+i||0).toFixed(o),10)+"",f=u.length>3?u.length%3:0;return c+(f?u.substr(0,f)+a:"")+u.substr(f).replace(/(\d{3})(?=\d)/g,"$1"+a)+(o?s+Math.abs(i-u).toFixed(o).slice(2):"")};b.formatSize=function(e){return e>=1073741824?e=b.formatNumber(e/1073741824,2,".","")+" GiB":e>=1048576?e=b.formatNumber(e/1048576,2,".","")+" MiB":e>=1024?e=b.formatNumber(e/1024,0)+" KiB":e=b.formatNumber(e,0)+" bytes",e};b.bytesFromIP=function(e){return e.indexOf(".")!==-1?b.bytesFromIPv4(e):e.indexOf(":")!==-1?b.bytesFromIPv6(e):null};b.bytesFromIPv4=function(e){if(e=e.split("."),e.length!==4)return null;for(var t=b.createBuffer(),r=0;r<e.length;++r){var n=parseInt(e[r],10);if(isNaN(n))return null;t.putByte(n)}return t.getBytes()};b.bytesFromIPv6=function(e){var t=0;e=e.split(":").filter(function(s){return s.length===0&&++t,!0});for(var r=(8-e.length+t)*2,n=b.createBuffer(),i=0;i<8;++i){if(!e[i]||e[i].length===0){n.fillWithByte(0,r),r=0;continue}var o=b.hexToBytes(e[i]);o.length<2&&n.putByte(0),n.putBytes(o)}return n.getBytes()};b.bytesToIP=function(e){return e.length===4?b.bytesToIPv4(e):e.length===16?b.bytesToIPv6(e):null};b.bytesToIPv4=function(e){if(e.length!==4)return null;for(var t=[],r=0;r<e.length;++r)t.push(e.charCodeAt(r));return t.join(".")};b.bytesToIPv6=function(e){if(e.length!==16)return null;for(var t=[],r=[],n=0,i=0;i<e.length;i+=2){for(var o=b.bytesToHex(e[i]+e[i+1]);o[0]==="0"&&o!=="0";)o=o.substr(1);if(o==="0"){var s=r[r.length-1],a=t.length;!s||a!==s.end+1?r.push({start:a,end:a}):(s.end=a,s.end-s.start>r[n].end-r[n].start&&(n=r.length-1))}t.push(o)}if(r.length>0){var c=r[n];c.end-c.start>0&&(t.splice(c.start,c.end-c.start+1,""),c.start===0&&t.unshift(""),c.end===7&&t.push(""))}return t.join(":")};b.estimateCores=function(e,t){if(typeof e=="function"&&(t=e,e={}),e=e||{},"cores"in b&&!e.update)return t(null,b.cores);if(typeof navigator<"u"&&"hardwareConcurrency"in navigator&&navigator.hardwareConcurrency>0)return b.cores=navigator.hardwareConcurrency,t(null,b.cores);if(typeof Worker>"u")return b.cores=1,t(null,b.cores);if(typeof Blob>"u")return b.cores=2,t(null,b.cores);var r=URL.createObjectURL(new Blob(["(",function(){self.addEventListener("message",function(s){for(var a=Date.now(),c=a+4;Date.now()<c;);self.postMessage({st:a,et:c})})}.toString(),")()"],{type:"application/javascript"}));n([],5,16);function n(s,a,c){if(a===0){var u=Math.floor(s.reduce(function(f,l){return f+l},0)/s.length);return b.cores=Math.max(1,u),URL.revokeObjectURL(r),t(null,b.cores)}i(c,function(f,l){s.push(o(c,l)),n(s,a-1,c)})}function i(s,a){for(var c=[],u=[],f=0;f<s;++f){var l=new Worker(r);l.addEventListener("message",function(p){if(u.push(p.data),u.length===s){for(var d=0;d<s;++d)c[d].terminate();a(null,u)}}),c.push(l)}for(var f=0;f<s;++f)c[f].postMessage(f)}function o(s,a){for(var c=[],u=0;u<s;++u)for(var f=a[u],l=c[u]=[],p=0;p<s;++p)if(u!==p){var d=a[p];(f.st>d.st&&f.st<d.et||d.st>f.st&&d.st<f.et)&&l.push(p)}return c.reduce(function(h,y){return Math.max(h,y.length)},0)}}});var Io=it(($m,Fa)=>{var Ut=ut();Tt();Fa.exports=Ut.cipher=Ut.cipher||{};Ut.cipher.algorithms=Ut.cipher.algorithms||{};Ut.cipher.createCipher=function(e,t){var r=e;if(typeof r=="string"&&(r=Ut.cipher.getAlgorithm(r),r&&(r=r())),!r)throw new Error("Unsupported algorithm: "+e);return new Ut.cipher.BlockCipher({algorithm:r,key:t,decrypt:!1})};Ut.cipher.createDecipher=function(e,t){var r=e;if(typeof r=="string"&&(r=Ut.cipher.getAlgorithm(r),r&&(r=r())),!r)throw new Error("Unsupported algorithm: "+e);return new Ut.cipher.BlockCipher({algorithm:r,key:t,decrypt:!0})};Ut.cipher.registerAlgorithm=function(e,t){e=e.toUpperCase(),Ut.cipher.algorithms[e]=t};Ut.cipher.getAlgorithm=function(e){return e=e.toUpperCase(),e in Ut.cipher.algorithms?Ut.cipher.algorithms[e]:null};var So=Ut.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)};So.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=Ut.util.createBuffer(),this.output=e.output||Ut.util.createBuffer(),this.mode.start(t)};So.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()};So.prototype.finish=function(e){e&&(this.mode.name==="ECB"||this.mode.name==="CBC")&&(this.mode.pad=function(r){return e(this.blockSize,r,!1)},this.mode.unpad=function(r){return e(this.blockSize,r,!0)});var t={};return t.decrypt=this._decrypt,t.overflow=this._input.length()%this.blockSize,!(!this._decrypt&&this.mode.pad&&!this.mode.pad(this._input,t)||(this._finish=!0,this.update(),this._decrypt&&this.mode.unpad&&!this.mode.unpad(this.output,t))||this.mode.afterFinish&&!this.mode.afterFinish(this.output,t))}});var Bo=it((Gm,Ma)=>{var Ft=ut();Tt();Ft.cipher=Ft.cipher||{};var Z=Ma.exports=Ft.cipher.modes=Ft.cipher.modes||{};Z.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)};Z.ecb.prototype.start=function(e){};Z.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(var n=0;n<this._ints;++n)t.putInt32(this._outBlock[n])};Z.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(var n=0;n<this._ints;++n)t.putInt32(this._outBlock[n])};Z.ecb.prototype.pad=function(e,t){var r=e.length()===this.blockSize?this.blockSize:this.blockSize-e.length();return e.fillWithByte(r,r),!0};Z.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?!1:(e.truncate(n),!0)};Z.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)};Z.cbc.prototype.start=function(e){if(e.iv===null){if(!this._prev)throw new Error("Invalid IV parameter.");this._iv=this._prev.slice(0)}else if("iv"in e)this._iv=J0(e.iv,this.blockSize),this._prev=this._iv.slice(0);else throw new Error("Invalid IV parameter.")};Z.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(var n=0;n<this._ints;++n)t.putInt32(this._outBlock[n]);this._prev=this._outBlock};Z.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(var n=0;n<this._ints;++n)t.putInt32(this._prev[n]^this._outBlock[n]);this._prev=this._inBlock.slice(0)};Z.cbc.prototype.pad=function(e,t){var r=e.length()===this.blockSize?this.blockSize:this.blockSize-e.length();return e.fillWithByte(r,r),!0};Z.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?!1:(e.truncate(n),!0)};Z.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=Ft.util.createBuffer(),this._partialBytes=0};Z.cfb.prototype.start=function(e){if(!("iv"in e))throw new Error("Invalid IV parameter.");this._iv=J0(e.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0};Z.cfb.prototype.encrypt=function(e,t,r){var n=e.length();if(n===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&n>=this.blockSize){for(var i=0;i<this._ints;++i)this._inBlock[i]=e.getInt32()^this._outBlock[i],t.putInt32(this._inBlock[i]);return}var o=(this.blockSize-n)%this.blockSize;o>0&&(o=this.blockSize-o),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialBlock[i]=e.getInt32()^this._outBlock[i],this._partialOutput.putInt32(this._partialBlock[i]);if(o>0)e.read-=this.blockSize;else for(var i=0;i<this._ints;++i)this._inBlock[i]=this._partialBlock[i];if(this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),o>0&&!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};Z.cfb.prototype.decrypt=function(e,t,r){var n=e.length();if(n===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&n>=this.blockSize){for(var i=0;i<this._ints;++i)this._inBlock[i]=e.getInt32(),t.putInt32(this._inBlock[i]^this._outBlock[i]);return}var o=(this.blockSize-n)%this.blockSize;o>0&&(o=this.blockSize-o),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialBlock[i]=e.getInt32(),this._partialOutput.putInt32(this._partialBlock[i]^this._outBlock[i]);if(o>0)e.read-=this.blockSize;else for(var i=0;i<this._ints;++i)this._inBlock[i]=this._partialBlock[i];if(this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),o>0&&!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};Z.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=Ft.util.createBuffer(),this._partialBytes=0};Z.ofb.prototype.start=function(e){if(!("iv"in e))throw new Error("Invalid IV parameter.");this._iv=J0(e.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0};Z.ofb.prototype.encrypt=function(e,t,r){var n=e.length();if(e.length()===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&n>=this.blockSize){for(var i=0;i<this._ints;++i)t.putInt32(e.getInt32()^this._outBlock[i]),this._inBlock[i]=this._outBlock[i];return}var o=(this.blockSize-n)%this.blockSize;o>0&&(o=this.blockSize-o),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialOutput.putInt32(e.getInt32()^this._outBlock[i]);if(o>0)e.read-=this.blockSize;else for(var i=0;i<this._ints;++i)this._inBlock[i]=this._outBlock[i];if(this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),o>0&&!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};Z.ofb.prototype.decrypt=Z.ofb.prototype.encrypt;Z.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=Ft.util.createBuffer(),this._partialBytes=0};Z.ctr.prototype.start=function(e){if(!("iv"in e))throw new Error("Invalid IV parameter.");this._iv=J0(e.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0};Z.ctr.prototype.encrypt=function(e,t,r){var n=e.length();if(n===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&n>=this.blockSize)for(var i=0;i<this._ints;++i)t.putInt32(e.getInt32()^this._outBlock[i]);else{var o=(this.blockSize-n)%this.blockSize;o>0&&(o=this.blockSize-o),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialOutput.putInt32(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}j0(this._inBlock)};Z.ctr.prototype.decrypt=Z.ctr.prototype.encrypt;Z.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=Ft.util.createBuffer(),this._partialBytes=0,this._R=3774873600};Z.gcm.prototype.start=function(e){if(!("iv"in e))throw new Error("Invalid IV parameter.");var t=Ft.util.createBuffer(e.iv);this._cipherLength=0;var r;if("additionalData"in e?r=Ft.util.createBuffer(e.additionalData):r=Ft.util.createBuffer(),"tagLength"in e?this._tagLength=e.tagLength:this._tagLength=128,this._tag=null,e.decrypt&&(this._tag=Ft.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 n=t.length();if(n===12)this._j0=[t.getInt32(),t.getInt32(),t.getInt32(),1];else{for(this._j0=[0,0,0,0];t.length()>0;)this._j0=this.ghash(this._hashSubkey,this._j0,[t.getInt32(),t.getInt32(),t.getInt32(),t.getInt32()]);this._j0=this.ghash(this._hashSubkey,this._j0,[0,0].concat(Ao(n*8)))}this._inBlock=this._j0.slice(0),j0(this._inBlock),this._partialBytes=0,r=Ft.util.createBuffer(r),this._aDataLength=Ao(r.length()*8);var i=r.length()%this.blockSize;for(i&&r.fillWithByte(0,this.blockSize-i),this._s=[0,0,0,0];r.length()>0;)this._s=this.ghash(this._hashSubkey,this._s,[r.getInt32(),r.getInt32(),r.getInt32(),r.getInt32()])};Z.gcm.prototype.encrypt=function(e,t,r){var n=e.length();if(n===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&n>=this.blockSize){for(var i=0;i<this._ints;++i)t.putInt32(this._outBlock[i]^=e.getInt32());this._cipherLength+=this.blockSize}else{var o=(this.blockSize-n)%this.blockSize;o>0&&(o=this.blockSize-o),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialOutput.putInt32(e.getInt32()^this._outBlock[i]);if(o<=0||r){if(r){var s=n%this.blockSize;this._cipherLength+=s,this._partialOutput.truncate(this.blockSize-s)}else this._cipherLength+=this.blockSize;for(var i=0;i<this._ints;++i)this._outBlock[i]=this._partialOutput.getInt32();this._partialOutput.read-=this.blockSize}if(this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),o>0&&!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),j0(this._inBlock)};Z.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),j0(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};Z.gcm.prototype.afterFinish=function(e,t){var r=!0;t.decrypt&&t.overflow&&e.truncate(this.blockSize-t.overflow),this.tag=Ft.util.createBuffer();var n=this._aDataLength.concat(Ao(this._cipherLength*8));this._s=this.ghash(this._hashSubkey,this._s,n);var i=[];this.cipher.encrypt(this._j0,i);for(var o=0;o<this._ints;++o)this.tag.putInt32(this._s[o]^i[o]);return this.tag.truncate(this.tag.length()%(this._tagLength/8)),t.decrypt&&this.tag.bytes()!==this._tag&&(r=!1),r};Z.gcm.prototype.multiply=function(e,t){for(var r=[0,0,0,0],n=t.slice(0),i=0;i<128;++i){var o=e[i/32|0]&1<<31-i%32;o&&(r[0]^=n[0],r[1]^=n[1],r[2]^=n[2],r[3]^=n[3]),this.pow(n,n)}return r};Z.gcm.prototype.pow=function(e,t){for(var r=e[3]&1,n=3;n>0;--n)t[n]=e[n]>>>1|(e[n-1]&1)<<31;t[0]=e[0]>>>1,r&&(t[0]^=this._R)};Z.gcm.prototype.tableMultiply=function(e){for(var t=[0,0,0,0],r=0;r<32;++r){var n=r/8|0,i=e[n]>>>(7-r%8)*4&15,o=this._m[r][i];t[0]^=o[0],t[1]^=o[1],t[2]^=o[2],t[3]^=o[3]}return t};Z.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)};Z.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=s/n|0,u=(n-1-s%n)*t;a[c]=1<<t-1<<u,o[s]=this.generateSubHashTable(this.multiply(a,e),t)}return o};Z.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 u=i[o^n];i[o]=[e[0]^u[0],e[1]^u[1],e[2]^u[2],e[3]^u[3]]}return i};function J0(e,t){if(typeof e=="string"&&(e=Ft.util.createBuffer(e)),Ft.util.isArray(e)&&e.length>4){var r=e;e=Ft.util.createBuffer();for(var n=0;n<r.length;++n)e.putByte(r[n])}if(e.length()<t)throw new Error("Invalid IV length; got "+e.length()+" bytes and expected "+t+" bytes.");if(!Ft.util.isArray(e)){for(var i=[],o=t/4,n=0;n<o;++n)i.push(e.getInt32());e=i}return e}function j0(e){e[e.length-1]=e[e.length-1]+1&4294967295}function Ao(e){return[e/4294967296|0,e&4294967295]}});var e1=it((Ym,za)=>{var dt=ut();Io();Bo();Tt();za.exports=dt.aes=dt.aes||{};dt.aes.startEncrypting=function(e,t,r,n){var i=t1({key:e,output:r,decrypt:!1,mode:n});return i.start(t),i};dt.aes.createEncryptionCipher=function(e,t){return t1({key:e,output:null,decrypt:!1,mode:t})};dt.aes.startDecrypting=function(e,t,r,n){var i=t1({key:e,output:r,decrypt:!0,mode:n});return i.start(t),i};dt.aes.createDecryptionCipher=function(e,t){return t1({key:e,output:null,decrypt:!0,mode:t})};dt.aes.Algorithm=function(e,t){Ro||Va();var r=this;r.name=e,r.mode=new t({blockSize:16,cipher:{encrypt:function(n,i){return Co(r._w,n,i,!1)},decrypt:function(n,i){return Co(r._w,n,i,!0)}}}),r._init=!1};dt.aes.Algorithm.prototype.initialize=function(e){if(!this._init){var t=e.key,r;if(typeof t=="string"&&(t.length===16||t.length===24||t.length===32))t=dt.util.createBuffer(t);else if(dt.util.isArray(t)&&(t.length===16||t.length===24||t.length===32)){r=t,t=dt.util.createBuffer();for(var n=0;n<r.length;++n)t.putByte(r[n])}if(!dt.util.isArray(t)){r=t,t=[];var i=r.length();if(i===16||i===24||i===32){i=i>>>2;for(var n=0;n<i;++n)t.push(r.getInt32())}}if(!dt.util.isArray(t)||!(t.length===4||t.length===6||t.length===8))throw new Error("Invalid key parameter.");var o=this.mode.name,s=["CFB","OFB","CTR","GCM"].indexOf(o)!==-1;this._w=qa(t,e.decrypt&&!s),this._init=!0}};dt.aes._expandKey=function(e,t){return Ro||Va(),qa(e,t)};dt.aes._updateBlock=Co;bn("AES-ECB",dt.cipher.modes.ecb);bn("AES-CBC",dt.cipher.modes.cbc);bn("AES-CFB",dt.cipher.modes.cfb);bn("AES-OFB",dt.cipher.modes.ofb);bn("AES-CTR",dt.cipher.modes.ctr);bn("AES-GCM",dt.cipher.modes.gcm);function bn(e,t){var r=function(){return new dt.aes.Algorithm(e,t)};dt.cipher.registerAlgorithm(e,r)}var Ro=!1,vn=4,Zt,To,Ka,Nr,xe;function Va(){Ro=!0,Ka=[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;Zt=new Array(256),To=new Array(256),Nr=new Array(4),xe=new Array(4);for(var t=0;t<4;++t)Nr[t]=new Array(256),xe[t]=new Array(256);for(var r=0,n=0,i,o,s,a,c,u,f,t=0;t<256;++t){a=n^n<<1^n<<2^n<<3^n<<4,a=a>>8^a&255^99,Zt[r]=a,To[a]=r,c=e[a],i=e[r],o=e[i],s=e[o],u=c<<24^a<<16^a<<8^(a^c),f=(i^o^s)<<24^(r^s)<<16^(r^o^s)<<8^(r^i^s);for(var l=0;l<4;++l)Nr[l][r]=u,xe[l][a]=f,u=u<<24|u>>>8,f=f<<24|f>>>8;r===0?r=n=1:(r=i^e[e[e[i^s]]],n^=e[e[n]])}}function qa(e,t){for(var r=e.slice(0),n,i=1,o=r.length,s=o+6+1,a=vn*s,c=o;c<a;++c)n=r[c-1],c%o===0?(n=Zt[n>>>16&255]<<24^Zt[n>>>8&255]<<16^Zt[n&255]<<8^Zt[n>>>24]^Ka[i]<<24,i++):o>6&&c%o===4&&(n=Zt[n>>>24]<<24^Zt[n>>>16&255]<<16^Zt[n>>>8&255]<<8^Zt[n&255]),r[c]=r[c-o]^n;if(t){var u,f=xe[0],l=xe[1],p=xe[2],d=xe[3],h=r.slice(0);a=r.length;for(var c=0,y=a-vn;c<a;c+=vn,y-=vn)if(c===0||c===a-vn)h[c]=r[y],h[c+1]=r[y+3],h[c+2]=r[y+2],h[c+3]=r[y+1];else for(var g=0;g<vn;++g)u=r[y+g],h[c+(3&-g)]=f[Zt[u>>>24]]^l[Zt[u>>>16&255]]^p[Zt[u>>>8&255]]^d[Zt[u&255]];r=h}return r}function Co(e,t,r,n){var i=e.length/4-1,o,s,a,c,u;n?(o=xe[0],s=xe[1],a=xe[2],c=xe[3],u=To):(o=Nr[0],s=Nr[1],a=Nr[2],c=Nr[3],u=Zt);var f,l,p,d,h,y,g;f=t[0]^e[0],l=t[n?3:1]^e[1],p=t[2]^e[2],d=t[n?1:3]^e[3];for(var m=3,x=1;x<i;++x)h=o[f>>>24]^s[l>>>16&255]^a[p>>>8&255]^c[d&255]^e[++m],y=o[l>>>24]^s[p>>>16&255]^a[d>>>8&255]^c[f&255]^e[++m],g=o[p>>>24]^s[d>>>16&255]^a[f>>>8&255]^c[l&255]^e[++m],d=o[d>>>24]^s[f>>>16&255]^a[l>>>8&255]^c[p&255]^e[++m],f=h,l=y,p=g;r[0]=u[f>>>24]<<24^u[l>>>16&255]<<16^u[p>>>8&255]<<8^u[d&255]^e[++m],r[n?3:1]=u[l>>>24]<<24^u[p>>>16&255]<<16^u[d>>>8&255]<<8^u[f&255]^e[++m],r[2]=u[p>>>24]<<24^u[d>>>16&255]<<16^u[f>>>8&255]<<8^u[l&255]^e[++m],r[n?1:3]=u[d>>>24]<<24^u[f>>>16&255]<<16^u[l>>>8&255]<<8^u[p&255]^e[++m]}function t1(e){e=e||{};var t=(e.mode||"CBC").toUpperCase(),r="AES-"+t,n;e.decrypt?n=dt.cipher.createDecipher(r,e.key):n=dt.cipher.createCipher(r,e.key);var i=n.start;return n.start=function(o,s){var a=null;s instanceof dt.util.ByteBuffer&&(a=s,s={}),s=s||{},s.output=a,s.iv=o,i.call(n,s)},n}});var r1=it((ox,Ya)=>{var e0=ut();e0.pki=e0.pki||{};var _o=Ya.exports=e0.pki.oids=e0.oids=e0.oids||{};function R(e,t){_o[e]=t,_o[t]=e}function st(e,t){_o[e]=t}R("1.2.840.113549.1.1.1","rsaEncryption");R("1.2.840.113549.1.1.4","md5WithRSAEncryption");R("1.2.840.113549.1.1.5","sha1WithRSAEncryption");R("1.2.840.113549.1.1.7","RSAES-OAEP");R("1.2.840.113549.1.1.8","mgf1");R("1.2.840.113549.1.1.9","pSpecified");R("1.2.840.113549.1.1.10","RSASSA-PSS");R("1.2.840.113549.1.1.11","sha256WithRSAEncryption");R("1.2.840.113549.1.1.12","sha384WithRSAEncryption");R("1.2.840.113549.1.1.13","sha512WithRSAEncryption");R("1.3.101.112","EdDSA25519");R("1.2.840.10040.4.3","dsa-with-sha1");R("1.3.14.3.2.7","desCBC");R("1.3.14.3.2.26","sha1");R("1.3.14.3.2.29","sha1WithRSASignature");R("2.16.840.1.101.3.4.2.1","sha256");R("2.16.840.1.101.3.4.2.2","sha384");R("2.16.840.1.101.3.4.2.3","sha512");R("2.16.840.1.101.3.4.2.4","sha224");R("2.16.840.1.101.3.4.2.5","sha512-224");R("2.16.840.1.101.3.4.2.6","sha512-256");R("1.2.840.113549.2.2","md2");R("1.2.840.113549.2.5","md5");R("1.2.840.113549.1.7.1","data");R("1.2.840.113549.1.7.2","signedData");R("1.2.840.113549.1.7.3","envelopedData");R("1.2.840.113549.1.7.4","signedAndEnvelopedData");R("1.2.840.113549.1.7.5","digestedData");R("1.2.840.113549.1.7.6","encryptedData");R("1.2.840.113549.1.9.1","emailAddress");R("1.2.840.113549.1.9.2","unstructuredName");R("1.2.840.113549.1.9.3","contentType");R("1.2.840.113549.1.9.4","messageDigest");R("1.2.840.113549.1.9.5","signingTime");R("1.2.840.113549.1.9.6","counterSignature");R("1.2.840.113549.1.9.7","challengePassword");R("1.2.840.113549.1.9.8","unstructuredAddress");R("1.2.840.113549.1.9.14","extensionRequest");R("1.2.840.113549.1.9.20","friendlyName");R("1.2.840.113549.1.9.21","localKeyId");R("1.2.840.113549.1.9.22.1","x509Certificate");R("1.2.840.113549.1.12.10.1.1","keyBag");R("1.2.840.113549.1.12.10.1.2","pkcs8ShroudedKeyBag");R("1.2.840.113549.1.12.10.1.3","certBag");R("1.2.840.113549.1.12.10.1.4","crlBag");R("1.2.840.113549.1.12.10.1.5","secretBag");R("1.2.840.113549.1.12.10.1.6","safeContentsBag");R("1.2.840.113549.1.5.13","pkcs5PBES2");R("1.2.840.113549.1.5.12","pkcs5PBKDF2");R("1.2.840.113549.1.12.1.1","pbeWithSHAAnd128BitRC4");R("1.2.840.113549.1.12.1.2","pbeWithSHAAnd40BitRC4");R("1.2.840.113549.1.12.1.3","pbeWithSHAAnd3-KeyTripleDES-CBC");R("1.2.840.113549.1.12.1.4","pbeWithSHAAnd2-KeyTripleDES-CBC");R("1.2.840.113549.1.12.1.5","pbeWithSHAAnd128BitRC2-CBC");R("1.2.840.113549.1.12.1.6","pbewithSHAAnd40BitRC2-CBC");R("1.2.840.113549.2.7","hmacWithSHA1");R("1.2.840.113549.2.8","hmacWithSHA224");R("1.2.840.113549.2.9","hmacWithSHA256");R("1.2.840.113549.2.10","hmacWithSHA384");R("1.2.840.113549.2.11","hmacWithSHA512");R("1.2.840.113549.3.7","des-EDE3-CBC");R("2.16.840.1.101.3.4.1.2","aes128-CBC");R("2.16.840.1.101.3.4.1.22","aes192-CBC");R("2.16.840.1.101.3.4.1.42","aes256-CBC");R("2.5.4.3","commonName");R("2.5.4.4","surname");R("2.5.4.5","serialNumber");R("2.5.4.6","countryName");R("2.5.4.7","localityName");R("2.5.4.8","stateOrProvinceName");R("2.5.4.9","streetAddress");R("2.5.4.10","organizationName");R("2.5.4.11","organizationalUnitName");R("2.5.4.12","title");R("2.5.4.13","description");R("2.5.4.15","businessCategory");R("2.5.4.17","postalCode");R("2.5.4.42","givenName");R("1.3.6.1.4.1.311.60.2.1.2","jurisdictionOfIncorporationStateOrProvinceName");R("1.3.6.1.4.1.311.60.2.1.3","jurisdictionOfIncorporationCountryName");R("2.16.840.1.113730.1.1","nsCertType");R("2.16.840.1.113730.1.13","nsComment");st("2.5.29.1","authorityKeyIdentifier");st("2.5.29.2","keyAttributes");st("2.5.29.3","certificatePolicies");st("2.5.29.4","keyUsageRestriction");st("2.5.29.5","policyMapping");st("2.5.29.6","subtreesConstraint");st("2.5.29.7","subjectAltName");st("2.5.29.8","issuerAltName");st("2.5.29.9","subjectDirectoryAttributes");st("2.5.29.10","basicConstraints");st("2.5.29.11","nameConstraints");st("2.5.29.12","policyConstraints");st("2.5.29.13","basicConstraints");R("2.5.29.14","subjectKeyIdentifier");R("2.5.29.15","keyUsage");st("2.5.29.16","privateKeyUsagePeriod");R("2.5.29.17","subjectAltName");R("2.5.29.18","issuerAltName");R("2.5.29.19","basicConstraints");st("2.5.29.20","cRLNumber");st("2.5.29.21","cRLReason");st("2.5.29.22","expirationDate");st("2.5.29.23","instructionCode");st("2.5.29.24","invalidityDate");st("2.5.29.25","cRLDistributionPoints");st("2.5.29.26","issuingDistributionPoint");st("2.5.29.27","deltaCRLIndicator");st("2.5.29.28","issuingDistributionPoint");st("2.5.29.29","certificateIssuer");st("2.5.29.30","nameConstraints");R("2.5.29.31","cRLDistributionPoints");R("2.5.29.32","certificatePolicies");st("2.5.29.33","policyMappings");st("2.5.29.34","policyConstraints");R("2.5.29.35","authorityKeyIdentifier");st("2.5.29.36","policyConstraints");R("2.5.29.37","extKeyUsage");st("2.5.29.46","freshestCRL");st("2.5.29.54","inhibitAnyPolicy");R("1.3.6.1.4.1.11129.2.4.2","timestampList");R("1.3.6.1.5.5.7.1.1","authorityInfoAccess");R("1.3.6.1.5.5.7.3.1","serverAuth");R("1.3.6.1.5.5.7.3.2","clientAuth");R("1.3.6.1.5.5.7.3.3","codeSigning");R("1.3.6.1.5.5.7.3.4","emailProtection");R("1.3.6.1.5.5.7.3.8","timeStamping")});var n0=it((sx,Wa)=>{var yt=ut();Tt();r1();var O=Wa.exports=yt.asn1=yt.asn1||{};O.Class={UNIVERSAL:0,APPLICATION:64,CONTEXT_SPECIFIC:128,PRIVATE:192};O.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};O.create=function(e,t,r,n,i){if(yt.util.isArray(n)){for(var o=[],s=0;s<n.length;++s)n[s]!==void 0&&o.push(n[s]);n=o}var a={tagClass:e,type:t,constructed:r,composed:r||yt.util.isArray(n),value:n};return i&&"bitStringContents"in i&&(a.bitStringContents=i.bitStringContents,a.original=O.copy(a)),a};O.copy=function(e,t){var r;if(yt.util.isArray(e)){r=[];for(var n=0;n<e.length;++n)r.push(O.copy(e[n],t));return r}return typeof e=="string"?e:(r={tagClass:e.tagClass,type:e.type,constructed:e.constructed,composed:e.composed,value:O.copy(e.value,t)},t&&!t.excludeBitStringContents&&(r.bitStringContents=e.bitStringContents),r)};O.equals=function(e,t,r){if(yt.util.isArray(e)){if(!yt.util.isArray(t)||e.length!==t.length)return!1;for(var n=0;n<e.length;++n)if(!O.equals(e[n],t[n]))return!1;return!0}if(typeof e!=typeof t)return!1;if(typeof e=="string")return e===t;var i=e.tagClass===t.tagClass&&e.type===t.type&&e.constructed===t.constructed&&e.composed===t.composed&&O.equals(e.value,t.value);return r&&r.includeBitStringContents&&(i=i&&e.bitStringContents===t.bitStringContents),i};O.getBerValueLength=function(e){var t=e.getByte();if(t!==128){var r,n=t&128;return n?r=e.getInt((t&127)<<3):r=t,r}};function r0(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}}var yc=function(e,t){var r=e.getByte();if(t--,r!==128){var n,i=r&128;if(!i)n=r;else{var o=r&127;r0(e,t,o),n=e.getInt(o<<3)}if(n<0)throw new Error("Negative length: "+n);return n}};O.fromDer=function(e,t){t===void 0&&(t={strict:!0,parseAllBytes:!0,decodeBitStrings:!0}),typeof t=="boolean"&&(t={strict:t,parseAllBytes:!0,decodeBitStrings:!0}),"strict"in t||(t.strict=!0),"parseAllBytes"in t||(t.parseAllBytes=!0),"decodeBitStrings"in t||(t.decodeBitStrings=!0),typeof e=="string"&&(e=yt.util.createBuffer(e));var r=e.length(),n=n1(e,e.length(),0,t);if(t.parseAllBytes&&e.length()!==0){var i=new Error("Unparsed DER bytes remain after ASN.1 parsing.");throw i.byteCount=r,i.remaining=e.length(),i}return n};function n1(e,t,r,n){var i;r0(e,t,2);var o=e.getByte();t--;var s=o&192,a=o&31;i=e.length();var c=yc(e,t);if(t-=i-e.length(),c!==void 0&&c>t){if(n.strict){var u=new Error("Too few bytes to read ASN.1 value.");throw u.available=e.length(),u.remaining=t,u.requested=c,u}c=t}var f,l,p=(o&32)===32;if(p)if(f=[],c===void 0)for(;;){if(r0(e,t,2),e.bytes(2)==="\0\0"){e.getBytes(2),t-=2;break}i=e.length(),f.push(n1(e,t,r+1,n)),t-=i-e.length()}else for(;c>0;)i=e.length(),f.push(n1(e,c,r+1,n)),t-=i-e.length(),c-=i-e.length();if(f===void 0&&s===O.Class.UNIVERSAL&&a===O.Type.BITSTRING&&(l=e.bytes(c)),f===void 0&&n.decodeBitStrings&&s===O.Class.UNIVERSAL&&a===O.Type.BITSTRING&&c>1){var d=e.read,h=t,y=0;if(a===O.Type.BITSTRING&&(r0(e,t,1),y=e.getByte(),t--),y===0)try{i=e.length();var g={strict:!0,decodeBitStrings:!0},m=n1(e,t,r+1,g),x=i-e.length();t-=x,a==O.Type.BITSTRING&&x++;var v=m.tagClass;x===c&&(v===O.Class.UNIVERSAL||v===O.Class.CONTEXT_SPECIFIC)&&(f=[m])}catch{}f===void 0&&(e.read=d,t=h)}if(f===void 0){if(c===void 0){if(n.strict)throw new Error("Non-constructed ASN.1 object of indefinite length.");c=t}if(a===O.Type.BMPSTRING)for(f="";c>0;c-=2)r0(e,t,2),f+=String.fromCharCode(e.getInt16()),t-=2;else f=e.getBytes(c),t-=c}var T=l===void 0?null:{bitStringContents:l};return O.create(s,a,p,f,T)}O.toDer=function(e){var t=yt.util.createBuffer(),r=e.tagClass|e.type,n=yt.util.createBuffer(),i=!1;if("bitStringContents"in e&&(i=!0,e.original&&(i=O.equals(e,e.original))),i)n.putBytes(e.bitStringContents);else if(e.composed){e.constructed?r|=32:n.putByte(0);for(var o=0;o<e.value.length;++o)e.value[o]!==void 0&&n.putBuffer(O.toDer(e.value[o]))}else if(e.type===O.Type.BMPSTRING)for(var o=0;o<e.value.length;++o)n.putInt16(e.value.charCodeAt(o));else e.type===O.Type.INTEGER&&e.value.length>1&&(e.value.charCodeAt(0)===0&&!(e.value.charCodeAt(1)&128)||e.value.charCodeAt(0)===255&&(e.value.charCodeAt(1)&128)===128)?n.putBytes(e.value.substr(1)):n.putBytes(e.value);if(t.putByte(r),n.length()<=127)t.putByte(n.length()&127);else{var s=n.length(),a="";do a+=String.fromCharCode(s&255),s=s>>>8;while(s>0);t.putByte(a.length|128);for(var o=a.length-1;o>=0;--o)t.putByte(a.charCodeAt(o))}return t.putBuffer(n),t};O.oidToDer=function(e){var t=e.split("."),r=yt.util.createBuffer();r.putByte(40*parseInt(t[0],10)+parseInt(t[1],10));for(var n,i,o,s,a=2;a<t.length;++a){n=!0,i=[],o=parseInt(t[a],10);do s=o&127,o=o>>>7,n||(s|=128),i.push(s),n=!1;while(o>0);for(var c=i.length-1;c>=0;--c)r.putByte(i[c])}return r};O.derToOid=function(e){var t;typeof e=="string"&&(e=yt.util.createBuffer(e));var r=e.getByte();t=Math.floor(r/40)+"."+r%40;for(var n=0;e.length()>0;)r=e.getByte(),n=n<<7,r&128?n+=r&127:(t+="."+(n+r),n=0);return t};O.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),u=10;c!=="+"&&c!=="-"&&(a=parseInt(e.substr(10,2),10),u+=2)}if(t.setUTCFullYear(r,n,i),t.setUTCHours(o,s,a,0),u&&(c=e.charAt(u),c==="+"||c==="-")){var f=parseInt(e.substr(u+1,2),10),l=parseInt(e.substr(u+4,2),10),p=f*60+l;p*=6e4,c==="+"?t.setTime(+t-p):t.setTime(+t+p)}return t};O.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,u=0,f=!1;e.charAt(e.length-1)==="Z"&&(f=!0);var l=e.length-5,p=e.charAt(l);if(p==="+"||p==="-"){var d=parseInt(e.substr(l+1,2),10),h=parseInt(e.substr(l+4,2),10);u=d*60+h,u*=6e4,p==="+"&&(u*=-1),f=!0}return e.charAt(14)==="."&&(c=parseFloat(e.substr(14),10)*1e3),f?(t.setUTCFullYear(r,n,i),t.setUTCHours(o,s,a,c),t.setTime(+t+u)):(t.setFullYear(r,n,i),t.setHours(o,s,a,c)),t};O.dateToUtcTime=function(e){if(typeof e=="string")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",t};O.dateToGeneralizedTime=function(e){if(typeof e=="string")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",t};O.integerToDer=function(e){var t=yt.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};O.derToInteger=function(e){typeof e=="string"&&(e=yt.util.createBuffer(e));var t=e.length()*8;if(t>32)throw new Error("Integer too large; max is 32-bits.");return e.getSignedInt(t)};O.validate=function(e,t,r,n){var i=!1;if((e.tagClass===t.tagClass||typeof t.tagClass>"u")&&(e.type===t.type||typeof t.type>"u"))if(e.constructed===t.constructed||typeof t.constructed>"u"){if(i=!0,t.value&&yt.util.isArray(t.value))for(var o=0,s=0;i&&s<t.value.length;++s)i=t.value[s].optional||!1,e.value[o]&&(i=O.validate(e.value[o],t.value[s],r,n),i?++o:t.value[s].optional&&(i=!0)),!i&&n&&n.push("["+t.name+'] Tag class "'+t.tagClass+'", type "'+t.type+'" expected value length "'+t.value.length+'", got "'+e.value.length+'"');if(i&&r&&(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)){var a;if(e.bitStringContents.length<2)r[t.captureBitStringValue]="";else{var c=e.bitStringContents.charCodeAt(0);if(c!==0)throw new Error("captureBitStringValue only supported for zero unused bits");r[t.captureBitStringValue]=e.bitStringContents.slice(1)}}}else n&&n.push("["+t.name+'] Expected constructed "'+t.constructed+'", got "'+e.constructed+'"');else n&&(e.tagClass!==t.tagClass&&n.push("["+t.name+'] Expected tag class "'+t.tagClass+'", got "'+e.tagClass+'"'),e.type!==t.type&&n.push("["+t.name+'] Expected type "'+t.type+'", got "'+e.type+'"'));return i};var Qa=/[^\\u0000-\\u00ff]/;O.prettyPrint=function(e,t,r){var n="";t=t||0,r=r||2,t>0&&(n+=`
|
|
6
|
+
`);for(var i="",o=0;o<t*r;++o)i+=" ";switch(n+=i+"Tag: ",e.tagClass){case O.Class.UNIVERSAL:n+="Universal:";break;case O.Class.APPLICATION:n+="Application:";break;case O.Class.CONTEXT_SPECIFIC:n+="Context-Specific:";break;case O.Class.PRIVATE:n+="Private:";break}if(e.tagClass===O.Class.UNIVERSAL)switch(n+=e.type,e.type){case O.Type.NONE:n+=" (None)";break;case O.Type.BOOLEAN:n+=" (Boolean)";break;case O.Type.INTEGER:n+=" (Integer)";break;case O.Type.BITSTRING:n+=" (Bit string)";break;case O.Type.OCTETSTRING:n+=" (Octet string)";break;case O.Type.NULL:n+=" (Null)";break;case O.Type.OID:n+=" (Object Identifier)";break;case O.Type.ODESC:n+=" (Object Descriptor)";break;case O.Type.EXTERNAL:n+=" (External or Instance of)";break;case O.Type.REAL:n+=" (Real)";break;case O.Type.ENUMERATED:n+=" (Enumerated)";break;case O.Type.EMBEDDED:n+=" (Embedded PDV)";break;case O.Type.UTF8:n+=" (UTF8)";break;case O.Type.ROID:n+=" (Relative Object Identifier)";break;case O.Type.SEQUENCE:n+=" (Sequence)";break;case O.Type.SET:n+=" (Set)";break;case O.Type.PRINTABLESTRING:n+=" (Printable String)";break;case O.Type.IA5String:n+=" (IA5String (ASCII))";break;case O.Type.UTCTIME:n+=" (UTC time)";break;case O.Type.GENERALIZEDTIME:n+=" (Generalized time)";break;case O.Type.BMPSTRING:n+=" (BMP String)";break}else n+=e.type;if(n+=`
|
|
7
7
|
`,n+=i+"Constructed: "+e.constructed+`
|
|
8
|
-
`,e.composed){for(var s=0,a="",o=0;o<e.value.length;++o)e.value[o]!==void 0&&(s+=1,a+=U.prettyPrint(e.value[o],t+1,r),o+1<e.value.length&&(a+=","));n+=i+"Sub values: "+s+a}else{if(n+=i+"Value: ",e.type===U.Type.OID){var c=U.derToOid(e.value);n+=c,ht.pki&&ht.pki.oids&&c in ht.pki.oids&&(n+=" ("+ht.pki.oids[c]+") ")}if(e.type===U.Type.INTEGER)try{n+=U.derToInteger(e.value)}catch{n+="0x"+ht.util.bytesToHex(e.value)}else if(e.type===U.Type.BITSTRING){if(e.value.length>1?n+="0x"+ht.util.bytesToHex(e.value.slice(1)):n+="(none)",e.value.length>0){var u=e.value.charCodeAt(0);u==1?n+=" (1 unused bit shown)":u>1&&(n+=" ("+u+" unused bits shown)")}}else if(e.type===U.Type.OCTETSTRING)x3.test(e.value)||(n+="("+e.value+") "),n+="0x"+ht.util.bytesToHex(e.value);else if(e.type===U.Type.UTF8)try{n+=ht.util.decodeUtf8(e.value)}catch(f){if(f.message==="URI malformed")n+="0x"+ht.util.bytesToHex(e.value)+" (malformed UTF8)";else throw f}else e.type===U.Type.PRINTABLESTRING||e.type===U.Type.IA5String?n+=e.value:x3.test(e.value)?n+="0x"+ht.util.bytesToHex(e.value):e.value.length===0?n+="[null]":n+=e.value}return n}});var E3=nt((rv,w3)=>{var gt=ct();Vo();zo();It();w3.exports=gt.des=gt.des||{};gt.des.startEncrypting=function(e,t,r,n){var i=m1({key:e,output:r,decrypt:!1,mode:n||(t===null?"ECB":"CBC")});return i.start(t),i};gt.des.createEncryptionCipher=function(e,t){return m1({key:e,output:null,decrypt:!1,mode:t})};gt.des.startDecrypting=function(e,t,r,n){var i=m1({key:e,output:r,decrypt:!0,mode:n||(t===null?"ECB":"CBC")});return i.start(t),i};gt.des.createDecryptionCipher=function(e,t){return m1({key:e,output:null,decrypt:!0,mode:t})};gt.des.Algorithm=function(e,t){var r=this;r.name=e,r.mode=new t({blockSize:8,cipher:{encrypt:function(n,i){return b3(r._keys,n,i,!1)},decrypt:function(n,i){return b3(r._keys,n,i,!0)}}}),r._init=!1};gt.des.Algorithm.prototype.initialize=function(e){if(!this._init){var t=gt.util.createBuffer(e.key);if(this.name.indexOf("3DES")===0&&t.length()!==24)throw new Error("Invalid Triple-DES key size: "+t.length()*8);this._keys=Zc(t),this._init=!0}};Ue("DES-ECB",gt.cipher.modes.ecb);Ue("DES-CBC",gt.cipher.modes.cbc);Ue("DES-CFB",gt.cipher.modes.cfb);Ue("DES-OFB",gt.cipher.modes.ofb);Ue("DES-CTR",gt.cipher.modes.ctr);Ue("3DES-ECB",gt.cipher.modes.ecb);Ue("3DES-CBC",gt.cipher.modes.cbc);Ue("3DES-CFB",gt.cipher.modes.cfb);Ue("3DES-OFB",gt.cipher.modes.ofb);Ue("3DES-CTR",gt.cipher.modes.ctr);function Ue(e,t){var r=function(){return new gt.des.Algorithm(e,t)};gt.cipher.registerAlgorithm(e,r)}var qc=[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],zc=[-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],Hc=[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],Gc=[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],Yc=[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],Qc=[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],Wc=[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 Zc(e){for(var t=[0,4,536870912,536870916,65536,65540,536936448,536936452,512,516,536871424,536871428,66048,66052,536936960,536936964],r=[0,1,1048576,1048577,67108864,67108865,68157440,68157441,256,257,1048832,1048833,67109120,67109121,68157696,68157697],n=[0,8,2048,2056,16777216,16777224,16779264,16779272,0,8,2048,2056,16777216,16777224,16779264,16779272],i=[0,2097152,134217728,136314880,8192,2105344,134225920,136323072,131072,2228224,134348800,136445952,139264,2236416,134356992,136454144],o=[0,262144,16,262160,0,262144,16,262160,4096,266240,4112,266256,4096,266240,4112,266256],s=[0,1024,32,1056,0,1024,32,1056,33554432,33555456,33554464,33555488,33554432,33555456,33554464,33555488],a=[0,268435456,524288,268959744,2,268435458,524290,268959746,0,268435456,524288,268959744,2,268435458,524290,268959746],c=[0,65536,2048,67584,536870912,536936448,536872960,536938496,131072,196608,133120,198656,537001984,537067520,537004032,537069568],u=[0,262144,0,262144,2,262146,2,262146,33554432,33816576,33554432,33816576,33554434,33816578,33554434,33816578],f=[0,268435456,8,268435464,0,268435456,8,268435464,1024,268436480,1032,268436488,1024,268436480,1032,268436488],l=[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],d=[0,4096,134217728,134221824,524288,528384,134742016,134746112,16,4112,134217744,134221840,524304,528400,134742032,134746128],h=[0,4,256,260,0,4,256,260,1,5,257,261,1,5,257,261],g=e.length()>8?3:1,y=[],m=[0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0],x=0,v,T=0;T<g;T++){var E=e.getInt32(),S=e.getInt32();v=(E>>>4^S)&252645135,S^=v,E^=v<<4,v=(S>>>-16^E)&65535,E^=v,S^=v<<-16,v=(E>>>2^S)&858993459,S^=v,E^=v<<2,v=(S>>>-16^E)&65535,E^=v,S^=v<<-16,v=(E>>>1^S)&1431655765,S^=v,E^=v<<1,v=(S>>>8^E)&16711935,E^=v,S^=v<<8,v=(E>>>1^S)&1431655765,S^=v,E^=v<<1,v=E<<8|S>>>20&240,E=S<<24|S<<8&16711680|S>>>8&65280|S>>>24&240,S=v;for(var L=0;L<m.length;++L){m[L]?(E=E<<2|E>>>26,S=S<<2|S>>>26):(E=E<<1|E>>>27,S=S<<1|S>>>27),E&=-15,S&=-15;var N=t[E>>>28]|r[E>>>24&15]|n[E>>>20&15]|i[E>>>16&15]|o[E>>>12&15]|s[E>>>8&15]|a[E>>>4&15],H=c[S>>>28]|u[S>>>24&15]|f[S>>>20&15]|l[S>>>16&15]|p[S>>>12&15]|d[S>>>8&15]|h[S>>>4&15];v=(H>>>16^N)&65535,y[x++]=N^v,y[x++]=H^v<<16}}return y}function b3(e,t,r,n){var i=e.length===32?3:9,o;i===3?o=n?[30,-2,-2]:[0,32,2]:o=n?[94,62,-2,32,64,2,30,-2,-2]:[0,32,2,62,30,-2,64,96,2];var s,a=t[0],c=t[1];s=(a>>>4^c)&252645135,c^=s,a^=s<<4,s=(a>>>16^c)&65535,c^=s,a^=s<<16,s=(c>>>2^a)&858993459,a^=s,c^=s<<2,s=(c>>>8^a)&16711935,a^=s,c^=s<<8,s=(a>>>1^c)&1431655765,c^=s,a^=s<<1,a=a<<1|a>>>31,c=c<<1|c>>>31;for(var u=0;u<i;u+=3){for(var f=o[u+1],l=o[u+2],p=o[u];p!=f;p+=l){var d=c^e[p],h=(c>>>4|c<<28)^e[p+1];s=a,a=c,c=s^(zc[d>>>24&63]|$c[d>>>16&63]|Yc[d>>>8&63]|Wc[d&63]|qc[h>>>24&63]|Hc[h>>>16&63]|Gc[h>>>8&63]|Qc[h&63])}s=a,a=c,c=s}a=a>>>1|a<<31,c=c>>>1|c<<31,s=(a>>>1^c)&1431655765,c^=s,a^=s<<1,s=(c>>>8^a)&16711935,a^=s,c^=s<<8,s=(c>>>2^a)&858993459,a^=s,c^=s<<2,s=(a>>>16^c)&65535,c^=s,a^=s<<16,s=(a>>>4^c)&252645135,c^=s,a^=s<<4,r[0]=a,r[1]=c}function m1(e){e=e||{};var t=(e.mode||"CBC").toUpperCase(),r="DES-"+t,n;e.decrypt?n=gt.cipher.createDecipher(r,e.key):n=gt.cipher.createCipher(r,e.key);var i=n.start;return n.start=function(o,s){var a=null;s instanceof gt.util.ByteBuffer&&(a=s,s={}),s=s||{},s.output=a,s.iv=o,i.call(n,s)},n}});var Kr=nt((nv,S3)=>{var x1=ct();S3.exports=x1.md=x1.md||{};x1.md.algorithms=x1.md.algorithms||{}});var A3=nt((iv,I3)=>{var tr=ct();Kr();It();var Xc=I3.exports=tr.hmac=tr.hmac||{};Xc.create=function(){var e=null,t=null,r=null,n=null,i={};return i.start=function(o,s){if(o!==null)if(typeof o=="string")if(o=o.toLowerCase(),o in tr.md.algorithms)t=tr.md.algorithms[o].create();else throw new Error('Unknown hash algorithm "'+o+'"');else t=o;if(s===null)s=e;else{if(typeof s=="string")s=tr.util.createBuffer(s);else if(tr.util.isArray(s)){var a=s;s=tr.util.createBuffer();for(var c=0;c<a.length;++c)s.putByte(a[c])}var u=s.length();u>t.blockLength&&(t.start(),t.update(s.bytes()),s=t.digest()),r=tr.util.createBuffer(),n=tr.util.createBuffer(),u=s.length();for(var c=0;c<u;++c){var a=s.at(c);r.putByte(54^a),n.putByte(92^a)}if(u<t.blockLength)for(var a=t.blockLength-u,c=0;c<a;++c)r.putByte(54),n.putByte(92);e=s,r=r.bytes(),n=n.bytes()}t.start(),t.update(r)},i.update=function(o){t.update(o)},i.getMac=function(){var o=t.digest().bytes();return t.start(),t.update(n),t.update(o),t.digest()},i.digest=i.getMac,i}});var v1=nt(()=>{});var Wo=nt((av,B3)=>{var jt=ct();A3();Kr();It();var Jc=jt.pkcs5=jt.pkcs5||{},er;jt.util.isNodejs&&!jt.options.usePureJavaScript&&(er=v1());B3.exports=jt.pbkdf2=Jc.pbkdf2=function(e,t,r,n,i,o){if(typeof i=="function"&&(o=i,i=null),jt.util.isNodejs&&!jt.options.usePureJavaScript&&er.pbkdf2&&(i===null||typeof i!="object")&&(er.pbkdf2Sync.length>4||!i||i==="sha1"))return typeof i!="string"&&(i="sha1"),e=Buffer.from(e,"binary"),t=Buffer.from(t,"binary"),o?er.pbkdf2Sync.length===4?er.pbkdf2(e,t,r,n,function(v,T){if(v)return o(v);o(null,T.toString("binary"))}):er.pbkdf2(e,t,r,n,i,function(v,T){if(v)return o(v);o(null,T.toString("binary"))}):er.pbkdf2Sync.length===4?er.pbkdf2Sync(e,t,r,n).toString("binary"):er.pbkdf2Sync(e,t,r,n,i).toString("binary");if((typeof i>"u"||i===null)&&(i="sha1"),typeof i=="string"){if(!(i in jt.md.algorithms))throw new Error("Unknown hash algorithm: "+i);i=jt.md[i].create()}var s=i.digestLength;if(n>4294967295*s){var a=new Error("Derived key is too long.");if(o)return o(a);throw a}var c=Math.ceil(n/s),u=n-(c-1)*s,f=jt.hmac.create();f.start(i,e);var l="",p,d,h;if(!o){for(var g=1;g<=c;++g){f.start(null,null),f.update(t),f.update(jt.util.int32ToBytes(g)),p=h=f.digest().getBytes();for(var y=2;y<=r;++y)f.start(null,null),f.update(h),d=f.digest().getBytes(),p=jt.util.xorBytes(p,d,s),h=d;l+=g<c?p:p.substr(0,u)}return l}var g=1,y;function m(){if(g>c)return o(null,l);f.start(null,null),f.update(t),f.update(jt.util.int32ToBytes(g)),p=h=f.digest().getBytes(),y=2,x()}function x(){if(y<=r)return f.start(null,null),f.update(h),d=f.digest().getBytes(),p=jt.util.xorBytes(p,d,s),h=d,++y,jt.util.setImmediate(x);l+=g<c?p:p.substr(0,u),++g,m()}m()}});var R3=nt((cv,C3)=>{var w1=ct();It();var T3=C3.exports=w1.pem=w1.pem||{};T3.encode=function(e,t){t=t||{};var r="-----BEGIN "+e.type+`-----\r
|
|
9
|
-
`,n;if(e.procType&&(n={name:"Proc-Type",values:[String(e.procType.version),e.procType.type]},r+=
|
|
10
|
-
`),r+=
|
|
8
|
+
`,e.composed){for(var s=0,a="",o=0;o<e.value.length;++o)e.value[o]!==void 0&&(s+=1,a+=O.prettyPrint(e.value[o],t+1,r),o+1<e.value.length&&(a+=","));n+=i+"Sub values: "+s+a}else{if(n+=i+"Value: ",e.type===O.Type.OID){var c=O.derToOid(e.value);n+=c,yt.pki&&yt.pki.oids&&c in yt.pki.oids&&(n+=" ("+yt.pki.oids[c]+") ")}if(e.type===O.Type.INTEGER)try{n+=O.derToInteger(e.value)}catch{n+="0x"+yt.util.bytesToHex(e.value)}else if(e.type===O.Type.BITSTRING){if(e.value.length>1?n+="0x"+yt.util.bytesToHex(e.value.slice(1)):n+="(none)",e.value.length>0){var u=e.value.charCodeAt(0);u==1?n+=" (1 unused bit shown)":u>1&&(n+=" ("+u+" unused bits shown)")}}else if(e.type===O.Type.OCTETSTRING)Qa.test(e.value)||(n+="("+e.value+") "),n+="0x"+yt.util.bytesToHex(e.value);else if(e.type===O.Type.UTF8)try{n+=yt.util.decodeUtf8(e.value)}catch(f){if(f.message==="URI malformed")n+="0x"+yt.util.bytesToHex(e.value)+" (malformed UTF8)";else throw f}else e.type===O.Type.PRINTABLESTRING||e.type===O.Type.IA5String?n+=e.value:Qa.test(e.value)?n+="0x"+yt.util.bytesToHex(e.value):e.value.length===0?n+="[null]":n+=e.value}return n}});var Ja=it((ax,Xa)=>{var xt=ut();Io();Bo();Tt();Xa.exports=xt.des=xt.des||{};xt.des.startEncrypting=function(e,t,r,n){var i=i1({key:e,output:r,decrypt:!1,mode:n||(t===null?"ECB":"CBC")});return i.start(t),i};xt.des.createEncryptionCipher=function(e,t){return i1({key:e,output:null,decrypt:!1,mode:t})};xt.des.startDecrypting=function(e,t,r,n){var i=i1({key:e,output:r,decrypt:!0,mode:n||(t===null?"ECB":"CBC")});return i.start(t),i};xt.des.createDecryptionCipher=function(e,t){return i1({key:e,output:null,decrypt:!0,mode:t})};xt.des.Algorithm=function(e,t){var r=this;r.name=e,r.mode=new t({blockSize:8,cipher:{encrypt:function(n,i){return Za(r._keys,n,i,!1)},decrypt:function(n,i){return Za(r._keys,n,i,!0)}}}),r._init=!1};xt.des.Algorithm.prototype.initialize=function(e){if(!this._init){var t=xt.util.createBuffer(e.key);if(this.name.indexOf("3DES")===0&&t.length()!==24)throw new Error("Invalid Triple-DES key size: "+t.length()*8);this._keys=Ic(t),this._init=!0}};Ne("DES-ECB",xt.cipher.modes.ecb);Ne("DES-CBC",xt.cipher.modes.cbc);Ne("DES-CFB",xt.cipher.modes.cfb);Ne("DES-OFB",xt.cipher.modes.ofb);Ne("DES-CTR",xt.cipher.modes.ctr);Ne("3DES-ECB",xt.cipher.modes.ecb);Ne("3DES-CBC",xt.cipher.modes.cbc);Ne("3DES-CFB",xt.cipher.modes.cfb);Ne("3DES-OFB",xt.cipher.modes.ofb);Ne("3DES-CTR",xt.cipher.modes.ctr);function Ne(e,t){var r=function(){return new xt.des.Algorithm(e,t)};xt.cipher.registerAlgorithm(e,r)}var gc=[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],mc=[-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],xc=[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],vc=[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],bc=[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],wc=[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],Ec=[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],Sc=[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 Ic(e){for(var t=[0,4,536870912,536870916,65536,65540,536936448,536936452,512,516,536871424,536871428,66048,66052,536936960,536936964],r=[0,1,1048576,1048577,67108864,67108865,68157440,68157441,256,257,1048832,1048833,67109120,67109121,68157696,68157697],n=[0,8,2048,2056,16777216,16777224,16779264,16779272,0,8,2048,2056,16777216,16777224,16779264,16779272],i=[0,2097152,134217728,136314880,8192,2105344,134225920,136323072,131072,2228224,134348800,136445952,139264,2236416,134356992,136454144],o=[0,262144,16,262160,0,262144,16,262160,4096,266240,4112,266256,4096,266240,4112,266256],s=[0,1024,32,1056,0,1024,32,1056,33554432,33555456,33554464,33555488,33554432,33555456,33554464,33555488],a=[0,268435456,524288,268959744,2,268435458,524290,268959746,0,268435456,524288,268959744,2,268435458,524290,268959746],c=[0,65536,2048,67584,536870912,536936448,536872960,536938496,131072,196608,133120,198656,537001984,537067520,537004032,537069568],u=[0,262144,0,262144,2,262146,2,262146,33554432,33816576,33554432,33816576,33554434,33816578,33554434,33816578],f=[0,268435456,8,268435464,0,268435456,8,268435464,1024,268436480,1032,268436488,1024,268436480,1032,268436488],l=[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],d=[0,4096,134217728,134221824,524288,528384,134742016,134746112,16,4112,134217744,134221840,524304,528400,134742032,134746128],h=[0,4,256,260,0,4,256,260,1,5,257,261,1,5,257,261],y=e.length()>8?3:1,g=[],m=[0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0],x=0,v,T=0;T<y;T++){var E=e.getInt32(),S=e.getInt32();v=(E>>>4^S)&252645135,S^=v,E^=v<<4,v=(S>>>-16^E)&65535,E^=v,S^=v<<-16,v=(E>>>2^S)&858993459,S^=v,E^=v<<2,v=(S>>>-16^E)&65535,E^=v,S^=v<<-16,v=(E>>>1^S)&1431655765,S^=v,E^=v<<1,v=(S>>>8^E)&16711935,E^=v,S^=v<<8,v=(E>>>1^S)&1431655765,S^=v,E^=v<<1,v=E<<8|S>>>20&240,E=S<<24|S<<8&16711680|S>>>8&65280|S>>>24&240,S=v;for(var L=0;L<m.length;++L){m[L]?(E=E<<2|E>>>26,S=S<<2|S>>>26):(E=E<<1|E>>>27,S=S<<1|S>>>27),E&=-15,S&=-15;var N=t[E>>>28]|r[E>>>24&15]|n[E>>>20&15]|i[E>>>16&15]|o[E>>>12&15]|s[E>>>8&15]|a[E>>>4&15],$=c[S>>>28]|u[S>>>24&15]|f[S>>>20&15]|l[S>>>16&15]|p[S>>>12&15]|d[S>>>8&15]|h[S>>>4&15];v=($>>>16^N)&65535,g[x++]=N^v,g[x++]=$^v<<16}}return g}function Za(e,t,r,n){var i=e.length===32?3:9,o;i===3?o=n?[30,-2,-2]:[0,32,2]:o=n?[94,62,-2,32,64,2,30,-2,-2]:[0,32,2,62,30,-2,64,96,2];var s,a=t[0],c=t[1];s=(a>>>4^c)&252645135,c^=s,a^=s<<4,s=(a>>>16^c)&65535,c^=s,a^=s<<16,s=(c>>>2^a)&858993459,a^=s,c^=s<<2,s=(c>>>8^a)&16711935,a^=s,c^=s<<8,s=(a>>>1^c)&1431655765,c^=s,a^=s<<1,a=a<<1|a>>>31,c=c<<1|c>>>31;for(var u=0;u<i;u+=3){for(var f=o[u+1],l=o[u+2],p=o[u];p!=f;p+=l){var d=c^e[p],h=(c>>>4|c<<28)^e[p+1];s=a,a=c,c=s^(mc[d>>>24&63]|vc[d>>>16&63]|wc[d>>>8&63]|Sc[d&63]|gc[h>>>24&63]|xc[h>>>16&63]|bc[h>>>8&63]|Ec[h&63])}s=a,a=c,c=s}a=a>>>1|a<<31,c=c>>>1|c<<31,s=(a>>>1^c)&1431655765,c^=s,a^=s<<1,s=(c>>>8^a)&16711935,a^=s,c^=s<<8,s=(c>>>2^a)&858993459,a^=s,c^=s<<2,s=(a>>>16^c)&65535,c^=s,a^=s<<16,s=(a>>>4^c)&252645135,c^=s,a^=s<<4,r[0]=a,r[1]=c}function i1(e){e=e||{};var t=(e.mode||"CBC").toUpperCase(),r="DES-"+t,n;e.decrypt?n=xt.cipher.createDecipher(r,e.key):n=xt.cipher.createCipher(r,e.key);var i=n.start;return n.start=function(o,s){var a=null;s instanceof xt.util.ByteBuffer&&(a=s,s={}),s=s||{},s.output=a,s.iv=o,i.call(n,s)},n}});var Dr=it((cx,ja)=>{var o1=ut();ja.exports=o1.md=o1.md||{};o1.md.algorithms=o1.md.algorithms||{}});var e3=it((ux,t3)=>{var Qe=ut();Dr();Tt();var Ac=t3.exports=Qe.hmac=Qe.hmac||{};Ac.create=function(){var e=null,t=null,r=null,n=null,i={};return i.start=function(o,s){if(o!==null)if(typeof o=="string")if(o=o.toLowerCase(),o in Qe.md.algorithms)t=Qe.md.algorithms[o].create();else throw new Error('Unknown hash algorithm "'+o+'"');else t=o;if(s===null)s=e;else{if(typeof s=="string")s=Qe.util.createBuffer(s);else if(Qe.util.isArray(s)){var a=s;s=Qe.util.createBuffer();for(var c=0;c<a.length;++c)s.putByte(a[c])}var u=s.length();u>t.blockLength&&(t.start(),t.update(s.bytes()),s=t.digest()),r=Qe.util.createBuffer(),n=Qe.util.createBuffer(),u=s.length();for(var c=0;c<u;++c){var a=s.at(c);r.putByte(54^a),n.putByte(92^a)}if(u<t.blockLength)for(var a=t.blockLength-u,c=0;c<a;++c)r.putByte(54),n.putByte(92);e=s,r=r.bytes(),n=n.bytes()}t.start(),t.update(r)},i.update=function(o){t.update(o)},i.getMac=function(){var o=t.digest().bytes();return t.start(),t.update(n),t.update(o),t.digest()},i.digest=i.getMac,i}});var s1=it(()=>{});var Po=it((hx,r3)=>{var Xt=ut();e3();Dr();Tt();var Bc=Xt.pkcs5=Xt.pkcs5||{},We;Xt.util.isNodejs&&!Xt.options.usePureJavaScript&&(We=s1());r3.exports=Xt.pbkdf2=Bc.pbkdf2=function(e,t,r,n,i,o){if(typeof i=="function"&&(o=i,i=null),Xt.util.isNodejs&&!Xt.options.usePureJavaScript&&We.pbkdf2&&(i===null||typeof i!="object")&&(We.pbkdf2Sync.length>4||!i||i==="sha1"))return typeof i!="string"&&(i="sha1"),e=Buffer.from(e,"binary"),t=Buffer.from(t,"binary"),o?We.pbkdf2Sync.length===4?We.pbkdf2(e,t,r,n,function(v,T){if(v)return o(v);o(null,T.toString("binary"))}):We.pbkdf2(e,t,r,n,i,function(v,T){if(v)return o(v);o(null,T.toString("binary"))}):We.pbkdf2Sync.length===4?We.pbkdf2Sync(e,t,r,n).toString("binary"):We.pbkdf2Sync(e,t,r,n,i).toString("binary");if((typeof i>"u"||i===null)&&(i="sha1"),typeof i=="string"){if(!(i in Xt.md.algorithms))throw new Error("Unknown hash algorithm: "+i);i=Xt.md[i].create()}var s=i.digestLength;if(n>4294967295*s){var a=new Error("Derived key is too long.");if(o)return o(a);throw a}var c=Math.ceil(n/s),u=n-(c-1)*s,f=Xt.hmac.create();f.start(i,e);var l="",p,d,h;if(!o){for(var y=1;y<=c;++y){f.start(null,null),f.update(t),f.update(Xt.util.int32ToBytes(y)),p=h=f.digest().getBytes();for(var g=2;g<=r;++g)f.start(null,null),f.update(h),d=f.digest().getBytes(),p=Xt.util.xorBytes(p,d,s),h=d;l+=y<c?p:p.substr(0,u)}return l}var y=1,g;function m(){if(y>c)return o(null,l);f.start(null,null),f.update(t),f.update(Xt.util.int32ToBytes(y)),p=h=f.digest().getBytes(),g=2,x()}function x(){if(g<=r)return f.start(null,null),f.update(h),d=f.digest().getBytes(),p=Xt.util.xorBytes(p,d,s),h=d,++g,Xt.util.setImmediate(x);l+=y<c?p:p.substr(0,u),++y,m()}m()}});var o3=it((dx,i3)=>{var c1=ut();Tt();var n3=i3.exports=c1.pem=c1.pem||{};n3.encode=function(e,t){t=t||{};var r="-----BEGIN "+e.type+`-----\r
|
|
9
|
+
`,n;if(e.procType&&(n={name:"Proc-Type",values:[String(e.procType.version),e.procType.type]},r+=a1(n)),e.contentDomain&&(n={name:"Content-Domain",values:[e.contentDomain]},r+=a1(n)),e.dekInfo&&(n={name:"DEK-Info",values:[e.dekInfo.algorithm]},e.dekInfo.parameters&&n.values.push(e.dekInfo.parameters),r+=a1(n)),e.headers)for(var i=0;i<e.headers.length;++i)r+=a1(e.headers[i]);return e.procType&&(r+=`\r
|
|
10
|
+
`),r+=c1.util.encode64(e.body,t.maxline||64)+`\r
|
|
11
11
|
`,r+="-----END "+e.type+`-----\r
|
|
12
|
-
`,r};
|
|
12
|
+
`,r};n3.decode=function(e){for(var t=[],r=/\s*-----BEGIN ([A-Z0-9- ]+)-----\r?\n?([\x21-\x7e\s]+?(?:\r?\n\r?\n))?([:A-Za-z0-9+\/=\s]+?)-----END \1-----/g,n=/([\x21-\x7e]+):\s*([\x21-\x7e\s^:]+)/,i=/\r?\n/,o;o=r.exec(e),!!o;){var s=o[1];s==="NEW CERTIFICATE REQUEST"&&(s="CERTIFICATE REQUEST");var a={type:s,procType:null,contentDomain:null,dekInfo:null,headers:[],body:c1.util.decode64(o[3])};if(t.push(a),!!o[2]){for(var c=o[2].split(i),u=0;o&&u<c.length;){for(var f=c[u].replace(/\s+$/,""),l=u+1;l<c.length;++l){var p=c[l];if(!/\s/.test(p[0]))break;f+=p,u=l}if(o=f.match(n),o){for(var d={name:o[1],values:[]},h=o[2].split(","),y=0;y<h.length;++y)d.values.push(Tc(h[y]));if(a.procType)if(!a.contentDomain&&d.name==="Content-Domain")a.contentDomain=h[0]||"";else if(!a.dekInfo&&d.name==="DEK-Info"){if(d.values.length===0)throw new Error('Invalid PEM formatted message. The "DEK-Info" header must have at least one subfield.');a.dekInfo={algorithm:h[0],parameters:h[1]||null}}else a.headers.push(d);else{if(d.name!=="Proc-Type")throw new Error('Invalid PEM formatted message. The first encapsulated header must be "Proc-Type".');if(d.values.length!==2)throw new Error('Invalid PEM formatted message. The "Proc-Type" header must have two subfields.');a.procType={version:h[0],type:h[1]}}}++u}if(a.procType==="ENCRYPTED"&&!a.dekInfo)throw new Error('Invalid PEM formatted message. The "DEK-Info" header must be present if "Proc-Type" is "ENCRYPTED".')}}if(t.length===0)throw new Error("Invalid PEM formatted message.");return t};function a1(e){for(var t=e.name+": ",r=[],n=function(c,u){return" "+u},i=0;i<e.values.length;++i)r.push(e.values[i].replace(/^(\S+\r\n)/,n));t+=r.join(",")+`\r
|
|
13
13
|
`;for(var o=0,s=-1,i=0;i<t.length;++i,++o)if(o>65&&s!==-1){var a=t[s];a===","?(++s,t=t.substr(0,s)+`\r
|
|
14
14
|
`+t.substr(s)):t=t.substr(0,s)+`\r
|
|
15
|
-
`+a+t.substr(s+1),o=i-s-1,s=-1,++i}else(t[i]===" "||t[i]===" "||t[i]===",")&&(s=i);return t}function jc(e){return e.replace(/^\s+/,"")}});var k3=nt((uv,D3)=>{var Oe=ct();Kr();It();var P3=D3.exports=Oe.sha256=Oe.sha256||{};Oe.md.sha256=Oe.md.algorithms.sha256=P3;P3.create=function(){L3||tu();var e=null,t=Oe.util.createBuffer(),r=new Array(64),n={algorithm:"sha256",blockLength:64,digestLength:32,messageLength:0,fullMessageLength:null,messageLengthSize:8};return n.start=function(){n.messageLength=0,n.fullMessageLength=n.messageLength64=[];for(var i=n.messageLengthSize/4,o=0;o<i;++o)n.fullMessageLength.push(0);return t=Oe.util.createBuffer(),e={h0:1779033703,h1:3144134277,h2:1013904242,h3:2773480762,h4:1359893119,h5:2600822924,h6:528734635,h7:1541459225},n},n.start(),n.update=function(i,o){o==="utf8"&&(i=Oe.util.encodeUtf8(i));var s=i.length;n.messageLength+=s,s=[s/4294967296>>>0,s>>>0];for(var a=n.fullMessageLength.length-1;a>=0;--a)n.fullMessageLength[a]+=s[1],s[1]=s[0]+(n.fullMessageLength[a]/4294967296>>>0),n.fullMessageLength[a]=n.fullMessageLength[a]>>>0,s[0]=s[1]/4294967296>>>0;return t.putBytes(i),_3(e,r,t),(t.read>2048||t.length()===0)&&t.compact(),n},n.digest=function(){var i=Oe.util.createBuffer();i.putBytes(t.bytes());var o=n.fullMessageLength[n.fullMessageLength.length-1]+n.messageLengthSize,s=o&n.blockLength-1;i.putBytes(Zo.substr(0,n.blockLength-s));for(var a,c,u=n.fullMessageLength[0]*8,f=0;f<n.fullMessageLength.length-1;++f)a=n.fullMessageLength[f+1]*8,c=a/4294967296>>>0,u+=c,i.putInt32(u>>>0),u=a>>>0;i.putInt32(u);var l={h0:e.h0,h1:e.h1,h2:e.h2,h3:e.h3,h4:e.h4,h5:e.h5,h6:e.h6,h7:e.h7};_3(l,r,i);var p=Oe.util.createBuffer();return p.putInt32(l.h0),p.putInt32(l.h1),p.putInt32(l.h2),p.putInt32(l.h3),p.putInt32(l.h4),p.putInt32(l.h5),p.putInt32(l.h6),p.putInt32(l.h7),p},n};var Zo=null,L3=!1,N3=null;function tu(){Zo="\x80",Zo+=Oe.util.fillString("\0",64),N3=[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],L3=!0}function _3(e,t,r){for(var n,i,o,s,a,c,u,f,l,p,d,h,g,y,m,x=r.length();x>=64;){for(u=0;u<16;++u)t[u]=r.getInt32();for(;u<64;++u)n=t[u-2],n=(n>>>17|n<<15)^(n>>>19|n<<13)^n>>>10,i=t[u-15],i=(i>>>7|i<<25)^(i>>>18|i<<14)^i>>>3,t[u]=n+t[u-7]+i+t[u-16]|0;for(f=e.h0,l=e.h1,p=e.h2,d=e.h3,h=e.h4,g=e.h5,y=e.h6,m=e.h7,u=0;u<64;++u)s=(h>>>6|h<<26)^(h>>>11|h<<21)^(h>>>25|h<<7),a=y^h&(g^y),o=(f>>>2|f<<30)^(f>>>13|f<<19)^(f>>>22|f<<10),c=f&l|p&(f^l),n=m+s+a+N3[u]+t[u],i=o+c,m=y,y=g,g=h,h=d+n>>>0,d=p,p=l,l=f,f=n+i>>>0;e.h0=e.h0+f|0,e.h1=e.h1+l|0,e.h2=e.h2+p|0,e.h3=e.h3+d|0,e.h4=e.h4+h|0,e.h5=e.h5+g|0,e.h6=e.h6+y|0,e.h7=e.h7+m|0,x-=64}}});var O3=nt((fv,U3)=>{var Fe=ct();It();var E1=null;Fe.util.isNodejs&&!Fe.options.usePureJavaScript&&!process.versions["node-webkit"]&&(E1=v1());var eu=U3.exports=Fe.prng=Fe.prng||{};eu.create=function(e){for(var t={plugin:e,key:null,seed:null,time:null,reseeds:0,generated:0,keyBytes:""},r=e.md,n=new Array(32),i=0;i<32;++i)n[i]=r.create();t.pools=n,t.pool=0,t.generate=function(u,f){if(!f)return t.generateSync(u);var l=t.plugin.cipher,p=t.plugin.increment,d=t.plugin.formatKey,h=t.plugin.formatSeed,g=Fe.util.createBuffer();t.key=null,y();function y(m){if(m)return f(m);if(g.length()>=u)return f(null,g.getBytes(u));if(t.generated>1048575&&(t.key=null),t.key===null)return Fe.util.nextTick(function(){o(y)});var x=l(t.key,t.seed);t.generated+=x.length,g.putBytes(x),t.key=d(l(t.key,p(t.seed))),t.seed=h(l(t.key,t.seed)),Fe.util.setImmediate(y)}},t.generateSync=function(u){var f=t.plugin.cipher,l=t.plugin.increment,p=t.plugin.formatKey,d=t.plugin.formatSeed;t.key=null;for(var h=Fe.util.createBuffer();h.length()<u;){t.generated>1048575&&(t.key=null),t.key===null&&s();var g=f(t.key,t.seed);t.generated+=g.length,h.putBytes(g),t.key=p(f(t.key,l(t.seed))),t.seed=d(f(t.key,t.seed))}return h.getBytes(u)};function o(u){if(t.pools[0].messageLength>=32)return a(),u();var f=32-t.pools[0].messageLength<<5;t.seedFile(f,function(l,p){if(l)return u(l);t.collect(p),a(),u()})}function s(){if(t.pools[0].messageLength>=32)return a();var u=32-t.pools[0].messageLength<<5;t.collect(t.seedFileSync(u)),a()}function a(){t.reseeds=t.reseeds===4294967295?0:t.reseeds+1;var u=t.plugin.md.create();u.update(t.keyBytes);for(var f=1,l=0;l<32;++l)t.reseeds%f===0&&(u.update(t.pools[l].digest().getBytes()),t.pools[l].start()),f=f<<1;t.keyBytes=u.digest().getBytes(),u.start(),u.update(t.keyBytes);var p=u.digest().getBytes();t.key=t.plugin.formatKey(t.keyBytes),t.seed=t.plugin.formatSeed(p),t.generated=0}function c(u){var f=null,l=Fe.util.globalScope,p=l.crypto||l.msCrypto;p&&p.getRandomValues&&(f=function(E){return p.getRandomValues(E)});var d=Fe.util.createBuffer();if(f)for(;d.length()<u;){var h=Math.max(1,Math.min(u-d.length(),65536)/4),g=new Uint32Array(Math.floor(h));try{f(g);for(var y=0;y<g.length;++y)d.putInt32(g[y])}catch(E){if(!(typeof QuotaExceededError<"u"&&E instanceof QuotaExceededError))throw E}}if(d.length()<u)for(var m,x,v,T=Math.floor(Math.random()*65536);d.length()<u;){x=16807*(T&65535),m=16807*(T>>16),x+=(m&32767)<<16,x+=m>>15,x=(x&2147483647)+(x>>31),T=x&4294967295;for(var y=0;y<3;++y)v=T>>>(y<<3),v^=Math.floor(Math.random()*256),d.putByte(v&255)}return d.getBytes(u)}return E1?(t.seedFile=function(u,f){E1.randomBytes(u,function(l,p){if(l)return f(l);f(null,p.toString())})},t.seedFileSync=function(u){return E1.randomBytes(u).toString()}):(t.seedFile=function(u,f){try{f(null,c(u))}catch(l){f(l)}},t.seedFileSync=c),t.collect=function(u){for(var f=u.length,l=0;l<f;++l)t.pools[t.pool].update(u.substr(l,1)),t.pool=t.pool===31?0:t.pool+1},t.collectInt=function(u,f){for(var l="",p=0;p<f;p+=8)l+=String.fromCharCode(u>>p&255);t.collect(l)},t.registerWorker=function(u){if(u===self)t.seedFile=function(l,p){function d(h){var g=h.data;g.forge&&g.forge.prng&&(self.removeEventListener("message",d),p(g.forge.prng.err,g.forge.prng.bytes))}self.addEventListener("message",d),self.postMessage({forge:{prng:{needed:l}}})};else{var f=function(l){var p=l.data;p.forge&&p.forge.prng&&t.seedFile(p.forge.prng.needed,function(d,h){u.postMessage({forge:{prng:{err:d,bytes:h}}})})};u.addEventListener("message",f)}},t}});var f0=nt((lv,Xo)=>{var Ot=ct();h1();k3();O3();It();(function(){if(Ot.random&&Ot.random.getBytes){Xo.exports=Ot.random;return}(function(e){var t={},r=new Array(4),n=Ot.util.createBuffer();t.formatKey=function(l){var p=Ot.util.createBuffer(l);return l=new Array(4),l[0]=p.getInt32(),l[1]=p.getInt32(),l[2]=p.getInt32(),l[3]=p.getInt32(),Ot.aes._expandKey(l,!1)},t.formatSeed=function(l){var p=Ot.util.createBuffer(l);return l=new Array(4),l[0]=p.getInt32(),l[1]=p.getInt32(),l[2]=p.getInt32(),l[3]=p.getInt32(),l},t.cipher=function(l,p){return Ot.aes._updateBlock(l,p,r,!1),n.putInt32(r[0]),n.putInt32(r[1]),n.putInt32(r[2]),n.putInt32(r[3]),n.getBytes()},t.increment=function(l){return++l[3],l},t.md=Ot.md.sha256;function i(){var l=Ot.prng.create(t);return l.getBytes=function(p,d){return l.generate(p,d)},l.getBytesSync=function(p){return l.generate(p)},l}var o=i(),s=null,a=Ot.util.globalScope,c=a.crypto||a.msCrypto;if(c&&c.getRandomValues&&(s=function(l){return c.getRandomValues(l)}),Ot.options.usePureJavaScript||!Ot.util.isNodejs&&!s){if(typeof window>"u"||window.document,o.collectInt(+new Date,32),typeof navigator<"u"){var u="";for(var f in navigator)try{typeof navigator[f]=="string"&&(u+=navigator[f])}catch{}o.collect(u),u=null}e&&(e().mousemove(function(l){o.collectInt(l.clientX,16),o.collectInt(l.clientY,16)}),e().keypress(function(l){o.collectInt(l.charCode,8)}))}if(!Ot.random)Ot.random=o;else for(var f in o)Ot.random[f]=o[f];Ot.random.createInstance=i,Xo.exports=Ot.random})(typeof jQuery<"u"?jQuery:null)})()});var V3=nt((hv,K3)=>{var ie=ct();It();var Jo=[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],F3=[1,2,3,5],ru=function(e,t){return e<<t&65535|(e&65535)>>16-t},nu=function(e,t){return(e&65535)>>t|e<<16-t&65535};K3.exports=ie.rc2=ie.rc2||{};ie.rc2.expandKey=function(e,t){typeof e=="string"&&(e=ie.util.createBuffer(e)),t=t||128;var r=e,n=e.length(),i=t,o=Math.ceil(i/8),s=255>>(i&7),a;for(a=n;a<128;a++)r.putByte(Jo[r.at(a-1)+r.at(a-n)&255]);for(r.setAt(128-o,Jo[r.at(128-o)&s]),a=127-o;a>=0;a--)r.setAt(a,Jo[r.at(a+1)^r.at(a+o)]);return r};var M3=function(e,t,r){var n=!1,i=null,o=null,s=null,a,c,u,f,l=[];for(e=ie.rc2.expandKey(e,t),u=0;u<64;u++)l.push(e.getInt16Le());r?(a=function(h){for(u=0;u<4;u++)h[u]+=l[f]+(h[(u+3)%4]&h[(u+2)%4])+(~h[(u+3)%4]&h[(u+1)%4]),h[u]=ru(h[u],F3[u]),f++},c=function(h){for(u=0;u<4;u++)h[u]+=l[h[(u+3)%4]&63]}):(a=function(h){for(u=3;u>=0;u--)h[u]=nu(h[u],F3[u]),h[u]-=l[f]+(h[(u+3)%4]&h[(u+2)%4])+(~h[(u+3)%4]&h[(u+1)%4]),f--},c=function(h){for(u=3;u>=0;u--)h[u]-=l[h[(u+3)%4]&63]});var p=function(h){var g=[];for(u=0;u<4;u++){var y=i.getInt16Le();s!==null&&(r?y^=s.getInt16Le():s.putInt16Le(y)),g.push(y&65535)}f=r?0:63;for(var m=0;m<h.length;m++)for(var x=0;x<h[m][0];x++)h[m][1](g);for(u=0;u<4;u++)s!==null&&(r?s.putInt16Le(g[u]):g[u]^=s.getInt16Le()),o.putInt16Le(g[u])},d=null;return d={start:function(h,g){h&&typeof h=="string"&&(h=ie.util.createBuffer(h)),n=!1,i=ie.util.createBuffer(),o=g||new ie.util.createBuffer,s=h,d.output=o},update:function(h){for(n||i.putBuffer(h);i.length()>=8;)p([[5,a],[1,c],[6,a],[1,c],[5,a]])},finish:function(h){var g=!0;if(r)if(h)g=h(8,i,!r);else{var y=i.length()===8?8:8-i.length();i.fillWithByte(y,y)}if(g&&(n=!0,d.update()),!r&&(g=i.length()===0,g))if(h)g=h(8,o,!r);else{var m=o.length(),x=o.at(m-1);x>m?g=!1:o.truncate(x)}return g}},d};ie.rc2.startEncrypting=function(e,t,r){var n=ie.rc2.createEncryptionCipher(e,128);return n.start(t,r),n};ie.rc2.createEncryptionCipher=function(e,t){return M3(e,t,!0)};ie.rc2.startDecrypting=function(e,t,r){var n=ie.rc2.createDecryptionCipher(e,128);return n.start(t,r),n};ie.rc2.createDecryptionCipher=function(e,t){return M3(e,t,!1)}});var A1=nt((dv,W3)=>{var jo=ct();W3.exports=jo.jsbn=jo.jsbn||{};var rr,iu=0xdeadbeefcafe,q3=(iu&16777215)==15715070;function B(e,t,r){this.data=[],e!=null&&(typeof e=="number"?this.fromNumber(e,t,r):t==null&&typeof e!="string"?this.fromString(e,256):this.fromString(e,t))}jo.jsbn.BigInteger=B;function et(){return new B(null)}function ou(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++]=s&67108863}return i}function su(e,t,r,n,i,o){for(var s=t&32767,a=t>>15;--o>=0;){var c=this.data[e]&32767,u=this.data[e++]>>15,f=a*c+u*s;c=s*c+((f&32767)<<15)+r.data[n]+(i&1073741823),i=(c>>>30)+(f>>>15)+a*u+(i>>>30),r.data[n++]=c&1073741823}return i}function z3(e,t,r,n,i,o){for(var s=t&16383,a=t>>14;--o>=0;){var c=this.data[e]&16383,u=this.data[e++]>>14,f=a*c+u*s;c=s*c+((f&16383)<<14)+r.data[n]+i,i=(c>>28)+(f>>14)+a*u,r.data[n++]=c&268435455}return i}typeof navigator>"u"?(B.prototype.am=z3,rr=28):q3&&navigator.appName=="Microsoft Internet Explorer"?(B.prototype.am=su,rr=30):q3&&navigator.appName!="Netscape"?(B.prototype.am=ou,rr=26):(B.prototype.am=z3,rr=28);B.prototype.DB=rr;B.prototype.DM=(1<<rr)-1;B.prototype.DV=1<<rr;var ts=52;B.prototype.FV=Math.pow(2,ts);B.prototype.F1=ts-rr;B.prototype.F2=2*rr-ts;var au="0123456789abcdefghijklmnopqrstuvwxyz",S1=new Array,Cn,he;Cn=48;for(he=0;he<=9;++he)S1[Cn++]=he;Cn=97;for(he=10;he<36;++he)S1[Cn++]=he;Cn=65;for(he=10;he<36;++he)S1[Cn++]=he;function H3(e){return au.charAt(e)}function $3(e,t){var r=S1[e.charCodeAt(t)];return r??-1}function cu(e){for(var t=this.t-1;t>=0;--t)e.data[t]=this.data[t];e.t=this.t,e.s=this.s}function uu(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}function wr(e){var t=et();return t.fromInt(e),t}function fu(e,t){var r;if(t==16)r=4;else if(t==8)r=3;else if(t==256)r=8;else if(t==2)r=1;else if(t==32)r=5;else if(t==4)r=2;else{this.fromRadix(e,t);return}this.t=0,this.s=0;for(var n=e.length,i=!1,o=0;--n>=0;){var s=r==8?e[n]&255:$3(e,n);if(s<0){e.charAt(n)=="-"&&(i=!0);continue}i=!1,o==0?this.data[this.t++]=s:o+r>this.DB?(this.data[this.t-1]|=(s&(1<<this.DB-o)-1)<<o,this.data[this.t++]=s>>this.DB-o):this.data[this.t-1]|=s<<o,o+=r,o>=this.DB&&(o-=this.DB)}r==8&&e[0]&128&&(this.s=-1,o>0&&(this.data[this.t-1]|=(1<<this.DB-o)-1<<o)),this.clamp(),i&&B.ZERO.subTo(this,this)}function lu(){for(var e=this.s&this.DM;this.t>0&&this.data[this.t-1]==e;)--this.t}function hu(e){if(this.s<0)return"-"+this.negate().toString(e);var t;if(e==16)t=4;else if(e==8)t=3;else if(e==2)t=1;else if(e==32)t=5;else if(e==4)t=2;else return this.toRadix(e);var r=(1<<t)-1,n,i=!1,o="",s=this.t,a=this.DB-s*this.DB%t;if(s-- >0)for(a<this.DB&&(n=this.data[s]>>a)>0&&(i=!0,o=H3(n));s>=0;)a<t?(n=(this.data[s]&(1<<a)-1)<<t-a,n|=this.data[--s]>>(a+=this.DB-t)):(n=this.data[s]>>(a-=t)&r,a<=0&&(a+=this.DB,--s)),n>0&&(i=!0),i&&(o+=H3(n));return i?o:"0"}function du(){var e=et();return B.ZERO.subTo(this,e),e}function pu(){return this.s<0?this.negate():this}function gu(e){var t=this.s-e.s;if(t!=0)return t;var r=this.t;if(t=r-e.t,t!=0)return this.s<0?-t:t;for(;--r>=0;)if((t=this.data[r]-e.data[r])!=0)return t;return 0}function I1(e){var t=1,r;return(r=e>>>16)!=0&&(e=r,t+=16),(r=e>>8)!=0&&(e=r,t+=8),(r=e>>4)!=0&&(e=r,t+=4),(r=e>>2)!=0&&(e=r,t+=2),(r=e>>1)!=0&&(e=r,t+=1),t}function yu(){return this.t<=0?0:this.DB*(this.t-1)+I1(this.data[this.t-1]^this.s&this.DM)}function mu(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}function xu(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}function vu(e,t){var r=e%this.DB,n=this.DB-r,i=(1<<n)-1,o=Math.floor(e/this.DB),s=this.s<<r&this.DM,a;for(a=this.t-1;a>=0;--a)t.data[a+o+1]=this.data[a]>>n|s,s=(this.data[a]&i)<<r;for(a=o-1;a>=0;--a)t.data[a]=0;t.data[o]=s,t.t=this.t+o+1,t.s=this.s,t.clamp()}function bu(e,t){t.s=this.s;var r=Math.floor(e/this.DB);if(r>=this.t){t.t=0;return}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()}function wu(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()}function Eu(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&&B.ZERO.subTo(t,t)}function Su(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()}function Iu(e,t,r){var n=e.abs();if(!(n.t<=0)){var i=this.abs();if(i.t<n.t){t?.fromInt(0),r!=null&&this.copyTo(r);return}r==null&&(r=et());var o=et(),s=this.s,a=e.s,c=this.DB-I1(n.data[n.t-1]);c>0?(n.lShiftTo(c,o),i.lShiftTo(c,r)):(n.copyTo(o),i.copyTo(r));var u=o.t,f=o.data[u-1];if(f!=0){var l=f*(1<<this.F1)+(u>1?o.data[u-2]>>this.F2:0),p=this.FV/l,d=(1<<this.F1)/l,h=1<<this.F2,g=r.t,y=g-u,m=t??et();for(o.dlShiftTo(y,m),r.compareTo(m)>=0&&(r.data[r.t++]=1,r.subTo(m,r)),B.ONE.dlShiftTo(u,m),m.subTo(o,o);o.t<u;)o.data[o.t++]=0;for(;--y>=0;){var x=r.data[--g]==f?this.DM:Math.floor(r.data[g]*p+(r.data[g-1]+h)*d);if((r.data[g]+=o.am(0,x,r,y,0,u))<x)for(o.dlShiftTo(y,m),r.subTo(m,r);r.data[g]<--x;)r.subTo(m,r)}t!=null&&(r.drShiftTo(u,t),s!=a&&B.ZERO.subTo(t,t)),r.t=u,r.clamp(),c>0&&r.rShiftTo(c,r),s<0&&B.ZERO.subTo(r,r)}}}function Au(e){var t=et();return this.abs().divRemTo(e,null,t),this.s<0&&t.compareTo(B.ZERO)>0&&e.subTo(t,t),t}function Vr(e){this.m=e}function Bu(e){return e.s<0||e.compareTo(this.m)>=0?e.mod(this.m):e}function Tu(e){return e}function Cu(e){e.divRemTo(this.m,null,e)}function Ru(e,t,r){e.multiplyTo(t,r),this.reduce(r)}function _u(e,t){e.squareTo(t),this.reduce(t)}Vr.prototype.convert=Bu;Vr.prototype.revert=Tu;Vr.prototype.reduce=Cu;Vr.prototype.mulTo=Ru;Vr.prototype.sqrTo=_u;function Pu(){if(this.t<1)return 0;var e=this.data[0];if(!(e&1))return 0;var t=e&3;return t=t*(2-(e&15)*t)&15,t=t*(2-(e&255)*t)&255,t=t*(2-((e&65535)*t&65535))&65535,t=t*(2-e*t%this.DV)%this.DV,t>0?this.DV-t:-t}function qr(e){this.m=e,this.mp=e.invDigit(),this.mpl=this.mp&32767,this.mph=this.mp>>15,this.um=(1<<e.DB-15)-1,this.mt2=2*e.t}function Lu(e){var t=et();return e.abs().dlShiftTo(this.m.t,t),t.divRemTo(this.m,null,t),e.s<0&&t.compareTo(B.ZERO)>0&&this.m.subTo(t,t),t}function Nu(e){var t=et();return e.copyTo(t),this.reduce(t),t}function Du(e){for(;e.t<=this.mt2;)e.data[e.t++]=0;for(var t=0;t<this.m.t;++t){var r=e.data[t]&32767,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)}function ku(e,t){e.squareTo(t),this.reduce(t)}function Uu(e,t,r){e.multiplyTo(t,r),this.reduce(r)}qr.prototype.convert=Lu;qr.prototype.revert=Nu;qr.prototype.reduce=Du;qr.prototype.mulTo=Uu;qr.prototype.sqrTo=ku;function Ou(){return(this.t>0?this.data[0]&1:this.s)==0}function Fu(e,t){if(e>4294967295||e<1)return B.ONE;var r=et(),n=et(),i=t.convert(this),o=I1(e)-1;for(i.copyTo(r);--o>=0;)if(t.sqrTo(r,n),(e&1<<o)>0)t.mulTo(n,i,r);else{var s=r;r=n,n=s}return t.revert(r)}function Mu(e,t){var r;return e<256||t.isEven()?r=new Vr(t):r=new qr(t),this.exp(e,r)}B.prototype.copyTo=cu;B.prototype.fromInt=uu;B.prototype.fromString=fu;B.prototype.clamp=lu;B.prototype.dlShiftTo=mu;B.prototype.drShiftTo=xu;B.prototype.lShiftTo=vu;B.prototype.rShiftTo=bu;B.prototype.subTo=wu;B.prototype.multiplyTo=Eu;B.prototype.squareTo=Su;B.prototype.divRemTo=Iu;B.prototype.invDigit=Pu;B.prototype.isEven=Ou;B.prototype.exp=Fu;B.prototype.toString=hu;B.prototype.negate=du;B.prototype.abs=pu;B.prototype.compareTo=gu;B.prototype.bitLength=yu;B.prototype.mod=Au;B.prototype.modPowInt=Mu;B.ZERO=wr(0);B.ONE=wr(1);function Ku(){var e=et();return this.copyTo(e),e}function Vu(){if(this.s<0){if(this.t==1)return this.data[0]-this.DV;if(this.t==0)return-1}else{if(this.t==1)return this.data[0];if(this.t==0)return 0}return(this.data[1]&(1<<32-this.DB)-1)<<this.DB|this.data[0]}function qu(){return this.t==0?this.s:this.data[0]<<24>>24}function zu(){return this.t==0?this.s:this.data[0]<<16>>16}function Hu(e){return Math.floor(Math.LN2*this.DB/Math.log(e))}function $u(){return this.s<0?-1:this.t<=0||this.t==1&&this.data[0]<=0?0:1}function Gu(e){if(e==null&&(e=10),this.signum()==0||e<2||e>36)return"0";var t=this.chunkSize(e),r=Math.pow(e,t),n=wr(r),i=et(),o=et(),s="";for(this.divRemTo(n,i,o);i.signum()>0;)s=(r+o.intValue()).toString(e).substr(1)+s,i.divRemTo(n,i,o);return o.intValue().toString(e)+s}function Yu(e,t){this.fromInt(0),t==null&&(t=10);for(var r=this.chunkSize(t),n=Math.pow(t,r),i=!1,o=0,s=0,a=0;a<e.length;++a){var c=$3(e,a);if(c<0){e.charAt(a)=="-"&&this.signum()==0&&(i=!0);continue}s=t*s+c,++o>=r&&(this.dMultiply(n),this.dAddOffset(s,0),o=0,s=0)}o>0&&(this.dMultiply(Math.pow(t,o)),this.dAddOffset(s,0)),i&&B.ZERO.subTo(this,this)}function Qu(e,t,r){if(typeof t=="number")if(e<2)this.fromInt(1);else for(this.fromNumber(e,r),this.testBit(e-1)||this.bitwiseTo(B.ONE.shiftLeft(e-1),es,this),this.isEven()&&this.dAddOffset(1,0);!this.isProbablePrime(t);)this.dAddOffset(2,0),this.bitLength()>e&&this.subTo(B.ONE.shiftLeft(e-1),this);else{var n=new Array,i=e&7;n.length=(e>>3)+1,t.nextBytes(n),i>0?n[0]&=(1<<i)-1:n[0]=0,this.fromString(n,256)}}function Wu(){var e=this.t,t=new Array;t[0]=this.s;var r=this.DB-e*this.DB%8,n,i=0;if(e-- >0)for(r<this.DB&&(n=this.data[e]>>r)!=(this.s&this.DM)>>r&&(t[i++]=n|this.s<<this.DB-r);e>=0;)r<8?(n=(this.data[e]&(1<<r)-1)<<8-r,n|=this.data[--e]>>(r+=this.DB-8)):(n=this.data[e]>>(r-=8)&255,r<=0&&(r+=this.DB,--e)),n&128&&(n|=-256),i==0&&(this.s&128)!=(n&128)&&++i,(i>0||n!=this.s)&&(t[i++]=n);return t}function Zu(e){return this.compareTo(e)==0}function Xu(e){return this.compareTo(e)<0?this:e}function Ju(e){return this.compareTo(e)>0?this:e}function ju(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()}function tf(e,t){return e&t}function ef(e){var t=et();return this.bitwiseTo(e,tf,t),t}function es(e,t){return e|t}function rf(e){var t=et();return this.bitwiseTo(e,es,t),t}function G3(e,t){return e^t}function nf(e){var t=et();return this.bitwiseTo(e,G3,t),t}function Y3(e,t){return e&~t}function of(e){var t=et();return this.bitwiseTo(e,Y3,t),t}function sf(){for(var e=et(),t=0;t<this.t;++t)e.data[t]=this.DM&~this.data[t];return e.t=this.t,e.s=~this.s,e}function af(e){var t=et();return e<0?this.rShiftTo(-e,t):this.lShiftTo(e,t),t}function cf(e){var t=et();return e<0?this.lShiftTo(-e,t):this.rShiftTo(e,t),t}function uf(e){if(e==0)return-1;var t=0;return e&65535||(e>>=16,t+=16),e&255||(e>>=8,t+=8),e&15||(e>>=4,t+=4),e&3||(e>>=2,t+=2),e&1||++t,t}function ff(){for(var e=0;e<this.t;++e)if(this.data[e]!=0)return e*this.DB+uf(this.data[e]);return this.s<0?this.t*this.DB:-1}function lf(e){for(var t=0;e!=0;)e&=e-1,++t;return t}function hf(){for(var e=0,t=this.s&this.DM,r=0;r<this.t;++r)e+=lf(this.data[r]^t);return e}function df(e){var t=Math.floor(e/this.DB);return t>=this.t?this.s!=0:(this.data[t]&1<<e%this.DB)!=0}function pf(e,t){var r=B.ONE.shiftLeft(e);return this.bitwiseTo(r,t,r),r}function gf(e){return this.changeBit(e,es)}function yf(e){return this.changeBit(e,Y3)}function mf(e){return this.changeBit(e,G3)}function xf(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()}function vf(e){var t=et();return this.addTo(e,t),t}function bf(e){var t=et();return this.subTo(e,t),t}function wf(e){var t=et();return this.multiplyTo(e,t),t}function Ef(e){var t=et();return this.divRemTo(e,t,null),t}function Sf(e){var t=et();return this.divRemTo(e,null,t),t}function If(e){var t=et(),r=et();return this.divRemTo(e,t,r),new Array(t,r)}function Af(e){this.data[this.t]=this.am(0,e-1,this,0,0,this.t),++this.t,this.clamp()}function Bf(e,t){if(e!=0){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]}}function l0(){}function Q3(e){return e}function Tf(e,t,r){e.multiplyTo(t,r)}function Cf(e,t){e.squareTo(t)}l0.prototype.convert=Q3;l0.prototype.revert=Q3;l0.prototype.mulTo=Tf;l0.prototype.sqrTo=Cf;function Rf(e){return this.exp(e,new l0)}function _f(e,t,r){var n=Math.min(this.t+e.t,t);for(r.s=0,r.t=n;n>0;)r.data[--n]=0;var i;for(i=r.t-this.t;n<i;++n)r.data[n+this.t]=this.am(0,e.data[n],r,n,0,this.t);for(i=Math.min(e.t,t);n<i;++n)this.am(0,e.data[n],r,n,0,t-n);r.clamp()}function Pf(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)}function Rn(e){this.r2=et(),this.q3=et(),B.ONE.dlShiftTo(2*e.t,this.r2),this.mu=this.r2.divide(e),this.m=e}function Lf(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=et();return e.copyTo(t),this.reduce(t),t}function Nf(e){return e}function Df(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)}function kf(e,t){e.squareTo(t),this.reduce(t)}function Uf(e,t,r){e.multiplyTo(t,r),this.reduce(r)}Rn.prototype.convert=Lf;Rn.prototype.revert=Nf;Rn.prototype.reduce=Df;Rn.prototype.mulTo=Uf;Rn.prototype.sqrTo=kf;function Of(e,t){var r=e.bitLength(),n,i=wr(1),o;if(r<=0)return i;r<18?n=1:r<48?n=3:r<144?n=4:r<768?n=5:n=6,r<8?o=new Vr(t):t.isEven()?o=new Rn(t):o=new qr(t);var s=new Array,a=3,c=n-1,u=(1<<n)-1;if(s[1]=o.convert(this),n>1){var f=et();for(o.sqrTo(s[1],f);a<=u;)s[a]=et(),o.mulTo(f,s[a-2],s[a]),a+=2}var l=e.t-1,p,d=!0,h=et(),g;for(r=I1(e.data[l])-1;l>=0;){for(r>=c?p=e.data[l]>>r-c&u:(p=(e.data[l]&(1<<r+1)-1)<<c-r,l>0&&(p|=e.data[l-1]>>this.DB+r-c)),a=n;!(p&1);)p>>=1,--a;if((r-=a)<0&&(r+=this.DB,--l),d)s[p].copyTo(i),d=!1;else{for(;a>1;)o.sqrTo(i,h),o.sqrTo(h,i),a-=2;a>0?o.sqrTo(i,h):(g=i,i=h,h=g),o.mulTo(h,s[p],i)}for(;l>=0&&!(e.data[l]&1<<r);)o.sqrTo(i,h),g=i,i=h,h=g,--r<0&&(r=this.DB-1,--l)}return o.revert(i)}function Ff(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}function Mf(e){if(e<=0)return 0;var t=this.DV%e,r=this.s<0?e-1:0;if(this.t>0)if(t==0)r=this.data[0]%e;else for(var n=this.t-1;n>=0;--n)r=(t*r+this.data[n])%e;return r}function Kf(e){var t=e.isEven();if(this.isEven()&&t||e.signum()==0)return B.ZERO;for(var r=e.clone(),n=this.clone(),i=wr(1),o=wr(0),s=wr(0),a=wr(1);r.signum()!=0;){for(;r.isEven();)r.rShiftTo(1,r),t?((!i.isEven()||!o.isEven())&&(i.addTo(this,i),o.subTo(e,o)),i.rShiftTo(1,i)):o.isEven()||o.subTo(e,o),o.rShiftTo(1,o);for(;n.isEven();)n.rShiftTo(1,n),t?((!s.isEven()||!a.isEven())&&(s.addTo(this,s),a.subTo(e,a)),s.rShiftTo(1,s)):a.isEven()||a.subTo(e,a),a.rShiftTo(1,a);r.compareTo(n)>=0?(r.subTo(n,r),t&&i.subTo(s,i),o.subTo(a,o)):(n.subTo(r,n),t&&s.subTo(i,s),a.subTo(o,a))}if(n.compareTo(B.ONE)!=0)return B.ZERO;if(a.compareTo(e)>=0)return a.subtract(e);if(a.signum()<0)a.addTo(e,a);else return a;return a.signum()<0?a.add(e):a}var we=[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],Vf=(1<<26)/we[we.length-1];function qf(e){var t,r=this.abs();if(r.t==1&&r.data[0]<=we[we.length-1]){for(t=0;t<we.length;++t)if(r.data[0]==we[t])return!0;return!1}if(r.isEven())return!1;for(t=1;t<we.length;){for(var n=we[t],i=t+1;i<we.length&&n<Vf;)n*=we[i++];for(n=r.modInt(n);t<i;)if(n%we[t++]==0)return!1}return r.millerRabin(e)}function zf(e){var t=this.subtract(B.ONE),r=t.getLowestSetBit();if(r<=0)return!1;for(var n=t.shiftRight(r),i=Hf(),o,s=0;s<e;++s){do o=new B(this.bitLength(),i);while(o.compareTo(B.ONE)<=0||o.compareTo(t)>=0);var a=o.modPow(n,this);if(a.compareTo(B.ONE)!=0&&a.compareTo(t)!=0){for(var c=1;c++<r&&a.compareTo(t)!=0;)if(a=a.modPowInt(2,this),a.compareTo(B.ONE)==0)return!1;if(a.compareTo(t)!=0)return!1}}return!0}function Hf(){return{nextBytes:function(e){for(var t=0;t<e.length;++t)e[t]=Math.floor(Math.random()*256)}}}B.prototype.chunkSize=Hu;B.prototype.toRadix=Gu;B.prototype.fromRadix=Yu;B.prototype.fromNumber=Qu;B.prototype.bitwiseTo=ju;B.prototype.changeBit=pf;B.prototype.addTo=xf;B.prototype.dMultiply=Af;B.prototype.dAddOffset=Bf;B.prototype.multiplyLowerTo=_f;B.prototype.multiplyUpperTo=Pf;B.prototype.modInt=Mf;B.prototype.millerRabin=zf;B.prototype.clone=Ku;B.prototype.intValue=Vu;B.prototype.byteValue=qu;B.prototype.shortValue=zu;B.prototype.signum=$u;B.prototype.toByteArray=Wu;B.prototype.equals=Zu;B.prototype.min=Xu;B.prototype.max=Ju;B.prototype.and=ef;B.prototype.or=rf;B.prototype.xor=nf;B.prototype.andNot=of;B.prototype.not=sf;B.prototype.shiftLeft=af;B.prototype.shiftRight=cf;B.prototype.getLowestSetBit=ff;B.prototype.bitCount=hf;B.prototype.testBit=df;B.prototype.setBit=gf;B.prototype.clearBit=yf;B.prototype.flipBit=mf;B.prototype.add=vf;B.prototype.subtract=bf;B.prototype.multiply=wf;B.prototype.divide=Ef;B.prototype.remainder=Sf;B.prototype.divideAndRemainder=If;B.prototype.modPow=Of;B.prototype.modInverse=Kf;B.prototype.pow=Rf;B.prototype.gcd=Ff;B.prototype.isProbablePrime=qf});var t4=nt((pv,j3)=>{var Me=ct();Kr();It();var X3=j3.exports=Me.sha1=Me.sha1||{};Me.md.sha1=Me.md.algorithms.sha1=X3;X3.create=function(){J3||$f();var e=null,t=Me.util.createBuffer(),r=new Array(80),n={algorithm:"sha1",blockLength:64,digestLength:20,messageLength:0,fullMessageLength:null,messageLengthSize:8};return n.start=function(){n.messageLength=0,n.fullMessageLength=n.messageLength64=[];for(var i=n.messageLengthSize/4,o=0;o<i;++o)n.fullMessageLength.push(0);return t=Me.util.createBuffer(),e={h0:1732584193,h1:4023233417,h2:2562383102,h3:271733878,h4:3285377520},n},n.start(),n.update=function(i,o){o==="utf8"&&(i=Me.util.encodeUtf8(i));var s=i.length;n.messageLength+=s,s=[s/4294967296>>>0,s>>>0];for(var a=n.fullMessageLength.length-1;a>=0;--a)n.fullMessageLength[a]+=s[1],s[1]=s[0]+(n.fullMessageLength[a]/4294967296>>>0),n.fullMessageLength[a]=n.fullMessageLength[a]>>>0,s[0]=s[1]/4294967296>>>0;return t.putBytes(i),Z3(e,r,t),(t.read>2048||t.length()===0)&&t.compact(),n},n.digest=function(){var i=Me.util.createBuffer();i.putBytes(t.bytes());var o=n.fullMessageLength[n.fullMessageLength.length-1]+n.messageLengthSize,s=o&n.blockLength-1;i.putBytes(rs.substr(0,n.blockLength-s));for(var a,c,u=n.fullMessageLength[0]*8,f=0;f<n.fullMessageLength.length-1;++f)a=n.fullMessageLength[f+1]*8,c=a/4294967296>>>0,u+=c,i.putInt32(u>>>0),u=a>>>0;i.putInt32(u);var l={h0:e.h0,h1:e.h1,h2:e.h2,h3:e.h3,h4:e.h4};Z3(l,r,i);var p=Me.util.createBuffer();return p.putInt32(l.h0),p.putInt32(l.h1),p.putInt32(l.h2),p.putInt32(l.h3),p.putInt32(l.h4),p},n};var rs=null,J3=!1;function $f(){rs="\x80",rs+=Me.util.fillString("\0",64),J3=!0}function Z3(e,t,r){for(var n,i,o,s,a,c,u,f,l=r.length();l>=64;){for(i=e.h0,o=e.h1,s=e.h2,a=e.h3,c=e.h4,f=0;f<16;++f)n=r.getInt32(),t[f]=n,u=a^o&(s^a),n=(i<<5|i>>>27)+u+c+1518500249+n,c=a,a=s,s=(o<<30|o>>>2)>>>0,o=i,i=n;for(;f<20;++f)n=t[f-3]^t[f-8]^t[f-14]^t[f-16],n=n<<1|n>>>31,t[f]=n,u=a^o&(s^a),n=(i<<5|i>>>27)+u+c+1518500249+n,c=a,a=s,s=(o<<30|o>>>2)>>>0,o=i,i=n;for(;f<32;++f)n=t[f-3]^t[f-8]^t[f-14]^t[f-16],n=n<<1|n>>>31,t[f]=n,u=o^s^a,n=(i<<5|i>>>27)+u+c+1859775393+n,c=a,a=s,s=(o<<30|o>>>2)>>>0,o=i,i=n;for(;f<40;++f)n=t[f-6]^t[f-16]^t[f-28]^t[f-32],n=n<<2|n>>>30,t[f]=n,u=o^s^a,n=(i<<5|i>>>27)+u+c+1859775393+n,c=a,a=s,s=(o<<30|o>>>2)>>>0,o=i,i=n;for(;f<60;++f)n=t[f-6]^t[f-16]^t[f-28]^t[f-32],n=n<<2|n>>>30,t[f]=n,u=o&s|a&(o^s),n=(i<<5|i>>>27)+u+c+2400959708+n,c=a,a=s,s=(o<<30|o>>>2)>>>0,o=i,i=n;for(;f<80;++f)n=t[f-6]^t[f-16]^t[f-28]^t[f-32],n=n<<2|n>>>30,t[f]=n,u=o^s^a,n=(i<<5|i>>>27)+u+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,l-=64}}});var n4=nt((gv,r4)=>{var Ke=ct();It();f0();t4();var e4=r4.exports=Ke.pkcs1=Ke.pkcs1||{};e4.encode_rsa_oaep=function(e,t,r){var n,i,o,s;typeof r=="string"?(n=r,i=arguments[3]||void 0,o=arguments[4]||void 0):r&&(n=r.label||void 0,i=r.seed||void 0,o=r.md||void 0,r.mgf1&&r.mgf1.md&&(s=r.mgf1.md)),o?o.start():o=Ke.md.sha1.create(),s||(s=o);var a=Math.ceil(e.n.bitLength()/8),c=a-2*o.digestLength-2;if(t.length>c){var u=new Error("RSAES-OAEP input message length is too long.");throw u.length=t.length,u.maxLength=c,u}n||(n=""),o.update(n,"raw");for(var f=o.digest(),l="",p=c-t.length,d=0;d<p;d++)l+="\0";var h=f.getBytes()+l+""+t;if(!i)i=Ke.random.getBytes(o.digestLength);else if(i.length!==o.digestLength){var u=new Error("Invalid RSAES-OAEP seed. The seed length must match the digest length.");throw u.seedLength=i.length,u.digestLength=o.digestLength,u}var g=B1(i,a-o.digestLength-1,s),y=Ke.util.xorBytes(h,g,h.length),m=B1(y,o.digestLength,s),x=Ke.util.xorBytes(i,m,i.length);return"\0"+x+y};e4.decode_rsa_oaep=function(e,t,r){var n,i,o;typeof r=="string"?(n=r,i=arguments[3]||void 0):r&&(n=r.label||void 0,i=r.md||void 0,r.mgf1&&r.mgf1.md&&(o=r.mgf1.md));var s=Math.ceil(e.n.bitLength()/8);if(t.length!==s){var y=new Error("RSAES-OAEP encoded message length is invalid.");throw y.length=t.length,y.expectedLength=s,y}if(i===void 0?i=Ke.md.sha1.create():i.start(),o||(o=i),s<2*i.digestLength+2)throw new Error("RSAES-OAEP key is too short for the hash function.");n||(n=""),i.update(n,"raw");for(var a=i.digest().getBytes(),c=t.charAt(0),u=t.substring(1,i.digestLength+1),f=t.substring(1+i.digestLength),l=B1(f,i.digestLength,o),p=Ke.util.xorBytes(u,l,u.length),d=B1(p,s-i.digestLength-1,o),h=Ke.util.xorBytes(f,d,f.length),g=h.substring(0,i.digestLength),y=c!=="\0",m=0;m<i.digestLength;++m)y|=a.charAt(m)!==g.charAt(m);for(var x=1,v=i.digestLength,T=i.digestLength;T<h.length;T++){var E=h.charCodeAt(T),S=E&1^1,L=x?65534:0;y|=E&L,x=x&S,v+=x}if(y||h.charCodeAt(v)!==1)throw new Error("Invalid RSAES-OAEP padding.");return h.substring(v+1)};function B1(e,t,r){r||(r=Ke.md.sha1.create());for(var n="",i=Math.ceil(t/r.digestLength),o=0;o<i;++o){var s=String.fromCharCode(o>>24&255,o>>16&255,o>>8&255,o&255);r.start(),r.update(e+s),n+=r.digest().getBytes()}return n.substring(0,t)}});var i4=nt((yv,ns)=>{var Er=ct();It();A1();f0();(function(){if(Er.prime){ns.exports=Er.prime;return}var e=ns.exports=Er.prime=Er.prime||{},t=Er.jsbn.BigInteger,r=[6,4,2,4,2,4,6,2],n=new t(null);n.fromInt(30);var i=function(l,p){return l|p};e.generateProbablePrime=function(l,p,d){typeof p=="function"&&(d=p,p={}),p=p||{};var h=p.algorithm||"PRIMEINC";typeof h=="string"&&(h={name:h}),h.options=h.options||{};var g=p.prng||Er.random,y={nextBytes:function(m){for(var x=g.getBytesSync(m.length),v=0;v<m.length;++v)m[v]=x.charCodeAt(v)}};if(h.name==="PRIMEINC")return o(l,y,h.options,d);throw new Error("Invalid prime generation algorithm: "+h.name)};function o(l,p,d,h){return"workers"in d?c(l,p,d,h):s(l,p,d,h)}function s(l,p,d,h){var g=u(l,p),y=0,m=f(g.bitLength());"millerRabinTests"in d&&(m=d.millerRabinTests);var x=10;"maxBlockTime"in d&&(x=d.maxBlockTime),a(g,l,p,y,m,x,h)}function a(l,p,d,h,g,y,m){var x=+new Date;do{if(l.bitLength()>p&&(l=u(p,d)),l.isProbablePrime(g))return m(null,l);l.dAddOffset(r[h++%8],0)}while(y<0||+new Date-x<y);Er.util.setImmediate(function(){a(l,p,d,h,g,y,m)})}function c(l,p,d,h){if(typeof Worker>"u")return s(l,p,d,h);var g=u(l,p),y=d.workers,m=d.workLoad||100,x=m*30/8,v=d.workerScript||"forge/prime.worker.js";if(y===-1)return Er.util.estimateCores(function(E,S){E&&(S=2),y=S-1,T()});T();function T(){y=Math.max(1,y);for(var E=[],S=0;S<y;++S)E[S]=new Worker(v);for(var L=y,S=0;S<y;++S)E[S].addEventListener("message",H);var N=!1;function H(z){if(!N){--L;var V=z.data;if(V.found){for(var Z=0;Z<E.length;++Z)E[Z].terminate();return N=!0,h(null,new t(V.prime,16))}g.bitLength()>l&&(g=u(l,p));var ut=g.toString(16);z.target.postMessage({hex:ut,workLoad:m}),g.dAddOffset(x,0)}}}}function u(l,p){var d=new t(l,p),h=l-1;return d.testBit(h)||d.bitwiseTo(t.ONE.shiftLeft(h),i,d),d.dAddOffset(31-d.mod(n).byteValue(),0),d}function f(l){return l<=100?27:l<=150?18:l<=200?15:l<=250?12:l<=300?9:l<=350?8:l<=400?7:l<=500?6:l<=600?5:l<=800?4:l<=1250?3:2}})()});var C1=nt((mv,l4)=>{var K=ct();u0();A1();g1();n4();i4();f0();It();typeof tt>"u"&&(tt=K.jsbn.BigInteger);var tt,is=K.util.isNodejs?v1():null,w=K.asn1,de=K.util;K.pki=K.pki||{};l4.exports=K.pki.rsa=K.rsa=K.rsa||{};var $=K.pki,Gf=[6,4,2,4,2,4,6,2],Yf={name:"PrivateKeyInfo",tagClass:w.Class.UNIVERSAL,type:w.Type.SEQUENCE,constructed:!0,value:[{name:"PrivateKeyInfo.version",tagClass:w.Class.UNIVERSAL,type:w.Type.INTEGER,constructed:!1,capture:"privateKeyVersion"},{name:"PrivateKeyInfo.privateKeyAlgorithm",tagClass:w.Class.UNIVERSAL,type:w.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:w.Class.UNIVERSAL,type:w.Type.OID,constructed:!1,capture:"privateKeyOid"}]},{name:"PrivateKeyInfo",tagClass:w.Class.UNIVERSAL,type:w.Type.OCTETSTRING,constructed:!1,capture:"privateKey"}]},Qf={name:"RSAPrivateKey",tagClass:w.Class.UNIVERSAL,type:w.Type.SEQUENCE,constructed:!0,value:[{name:"RSAPrivateKey.version",tagClass:w.Class.UNIVERSAL,type:w.Type.INTEGER,constructed:!1,capture:"privateKeyVersion"},{name:"RSAPrivateKey.modulus",tagClass:w.Class.UNIVERSAL,type:w.Type.INTEGER,constructed:!1,capture:"privateKeyModulus"},{name:"RSAPrivateKey.publicExponent",tagClass:w.Class.UNIVERSAL,type:w.Type.INTEGER,constructed:!1,capture:"privateKeyPublicExponent"},{name:"RSAPrivateKey.privateExponent",tagClass:w.Class.UNIVERSAL,type:w.Type.INTEGER,constructed:!1,capture:"privateKeyPrivateExponent"},{name:"RSAPrivateKey.prime1",tagClass:w.Class.UNIVERSAL,type:w.Type.INTEGER,constructed:!1,capture:"privateKeyPrime1"},{name:"RSAPrivateKey.prime2",tagClass:w.Class.UNIVERSAL,type:w.Type.INTEGER,constructed:!1,capture:"privateKeyPrime2"},{name:"RSAPrivateKey.exponent1",tagClass:w.Class.UNIVERSAL,type:w.Type.INTEGER,constructed:!1,capture:"privateKeyExponent1"},{name:"RSAPrivateKey.exponent2",tagClass:w.Class.UNIVERSAL,type:w.Type.INTEGER,constructed:!1,capture:"privateKeyExponent2"},{name:"RSAPrivateKey.coefficient",tagClass:w.Class.UNIVERSAL,type:w.Type.INTEGER,constructed:!1,capture:"privateKeyCoefficient"}]},Wf={name:"RSAPublicKey",tagClass:w.Class.UNIVERSAL,type:w.Type.SEQUENCE,constructed:!0,value:[{name:"RSAPublicKey.modulus",tagClass:w.Class.UNIVERSAL,type:w.Type.INTEGER,constructed:!1,capture:"publicKeyModulus"},{name:"RSAPublicKey.exponent",tagClass:w.Class.UNIVERSAL,type:w.Type.INTEGER,constructed:!1,capture:"publicKeyExponent"}]},Zf=K.pki.rsa.publicKeyValidator={name:"SubjectPublicKeyInfo",tagClass:w.Class.UNIVERSAL,type:w.Type.SEQUENCE,constructed:!0,captureAsn1:"subjectPublicKeyInfo",value:[{name:"SubjectPublicKeyInfo.AlgorithmIdentifier",tagClass:w.Class.UNIVERSAL,type:w.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:w.Class.UNIVERSAL,type:w.Type.OID,constructed:!1,capture:"publicKeyOid"}]},{name:"SubjectPublicKeyInfo.subjectPublicKey",tagClass:w.Class.UNIVERSAL,type:w.Type.BITSTRING,constructed:!1,value:[{name:"SubjectPublicKeyInfo.subjectPublicKey.RSAPublicKey",tagClass:w.Class.UNIVERSAL,type:w.Type.SEQUENCE,constructed:!0,optional:!0,captureAsn1:"rsaPublicKey"}]}]},Xf={name:"DigestInfo",tagClass:w.Class.UNIVERSAL,type:w.Type.SEQUENCE,constructed:!0,value:[{name:"DigestInfo.DigestAlgorithm",tagClass:w.Class.UNIVERSAL,type:w.Type.SEQUENCE,constructed:!0,value:[{name:"DigestInfo.DigestAlgorithm.algorithmIdentifier",tagClass:w.Class.UNIVERSAL,type:w.Type.OID,constructed:!1,capture:"algorithmIdentifier"},{name:"DigestInfo.DigestAlgorithm.parameters",tagClass:w.Class.UNIVERSAL,type:w.Type.NULL,capture:"parameters",optional:!0,constructed:!1}]},{name:"DigestInfo.digest",tagClass:w.Class.UNIVERSAL,type:w.Type.OCTETSTRING,constructed:!1,capture:"digest"}]},Jf=function(e){var t;if(e.algorithm in $.oids)t=$.oids[e.algorithm];else{var r=new Error("Unknown message digest algorithm.");throw r.algorithm=e.algorithm,r}var n=w.oidToDer(t).getBytes(),i=w.create(w.Class.UNIVERSAL,w.Type.SEQUENCE,!0,[]),o=w.create(w.Class.UNIVERSAL,w.Type.SEQUENCE,!0,[]);o.value.push(w.create(w.Class.UNIVERSAL,w.Type.OID,!1,n)),o.value.push(w.create(w.Class.UNIVERSAL,w.Type.NULL,!1,""));var s=w.create(w.Class.UNIVERSAL,w.Type.OCTETSTRING,!1,e.digest().getBytes());return i.value.push(o),i.value.push(s),w.toDer(i).getBytes()},u4=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);t.dP||(t.dP=t.d.mod(t.p.subtract(tt.ONE))),t.dQ||(t.dQ=t.d.mod(t.q.subtract(tt.ONE))),t.qInv||(t.qInv=t.q.modInverse(t.p));var n;do n=new tt(K.util.bytesToHex(K.random.getBytes(t.n.bitLength()/8)),16);while(n.compareTo(t.n)>=0||!n.gcd(t.n).equals(tt.ONE));e=e.multiply(n.modPow(t.e,t.n)).mod(t.n);for(var i=e.mod(t.p).modPow(t.dP,t.p),o=e.mod(t.q).modPow(t.dQ,t.q);i.compareTo(o)<0;)i=i.add(t.p);var s=i.subtract(o).multiply(t.qInv).mod(t.p).multiply(t.q).add(o);return s=s.multiply(n.modInverse(t.n)).mod(t.n),s};$.rsa.encrypt=function(e,t,r){var n=r,i,o=Math.ceil(t.n.bitLength()/8);r!==!1&&r!==!0?(n=r===2,i=f4(e,t,r)):(i=K.util.createBuffer(),i.putBytes(e));for(var s=new tt(i.toHex(),16),a=u4(s,t,n),c=a.toString(16),u=K.util.createBuffer(),f=o-Math.ceil(c.length/2);f>0;)u.putByte(0),--f;return u.putBytes(K.util.hexToBytes(c)),u.getBytes()};$.rsa.decrypt=function(e,t,r,n){var i=Math.ceil(t.n.bitLength()/8);if(e.length!==i){var o=new Error("Encrypted message length is invalid.");throw o.length=e.length,o.expected=i,o}var s=new tt(K.util.createBuffer(e).toHex(),16);if(s.compareTo(t.n)>=0)throw new Error("Encrypted message is invalid.");for(var a=u4(s,t,r),c=a.toString(16),u=K.util.createBuffer(),f=i-Math.ceil(c.length/2);f>0;)u.putByte(0),--f;return u.putBytes(K.util.hexToBytes(c)),n!==!1?T1(u.getBytes(),t,r):u.getBytes()};$.rsa.createKeyPairGenerationState=function(e,t,r){typeof e=="string"&&(e=parseInt(e,10)),e=e||2048,r=r||{};var n=r.prng||K.random,i={nextBytes:function(a){for(var c=n.getBytesSync(a.length),u=0;u<a.length;++u)a[u]=c.charCodeAt(u)}},o=r.algorithm||"PRIMEINC",s;if(o==="PRIMEINC")s={algorithm:o,state:0,bits:e,rng:i,eInt:t||65537,e:new tt(null),p:null,q:null,qBits:e>>1,pBits:e-(e>>1),pqState:0,num:null,keys:null},s.e.fromInt(s.eInt);else throw new Error("Invalid key generation algorithm: "+o);return s};$.rsa.stepKeyPairGenerationState=function(e,t){"algorithm"in e||(e.algorithm="PRIMEINC");var r=new tt(null);r.fromInt(30);for(var n=0,i=function(l,p){return l|p},o=+new Date,s,a=0;e.keys===null&&(t<=0||a<t);){if(e.state===0){var c=e.p===null?e.pBits:e.qBits,u=c-1;e.pqState===0?(e.num=new tt(c,e.rng),e.num.testBit(u)||e.num.bitwiseTo(tt.ONE.shiftLeft(u),i,e.num),e.num.dAddOffset(31-e.num.mod(r).byteValue(),0),n=0,++e.pqState):e.pqState===1?e.num.bitLength()>c?e.pqState=0:e.num.isProbablePrime(t7(e.num.bitLength()))?++e.pqState:e.num.dAddOffset(Gf[n++%8],0):e.pqState===2?e.pqState=e.num.subtract(tt.ONE).gcd(e.e).compareTo(tt.ONE)===0?3:0:e.pqState===3&&(e.pqState=0,e.p===null?e.p=e.num:e.q=e.num,e.p!==null&&e.q!==null&&++e.state,e.num=null)}else if(e.state===1)e.p.compareTo(e.q)<0&&(e.num=e.p,e.p=e.q,e.q=e.num),++e.state;else if(e.state===2)e.p1=e.p.subtract(tt.ONE),e.q1=e.q.subtract(tt.ONE),e.phi=e.p1.multiply(e.q1),++e.state;else if(e.state===3)e.phi.gcd(e.e).compareTo(tt.ONE)===0?++e.state:(e.p=null,e.q=null,e.state=0);else if(e.state===4)e.n=e.p.multiply(e.q),e.n.bitLength()===e.bits?++e.state:(e.q=null,e.state=0);else if(e.state===5){var f=e.e.modInverse(e.phi);e.keys={privateKey:$.rsa.setPrivateKey(e.n,e.e,f,e.p,e.q,f.mod(e.p1),f.mod(e.q1),e.q.modInverse(e.p)),publicKey:$.rsa.setPublicKey(e.n,e.e)}}s=+new Date,a+=s-o,o=s}return e.keys!==null};$.rsa.generateKeyPair=function(e,t,r,n){if(arguments.length===1?typeof e=="object"?(r=e,e=void 0):typeof e=="function"&&(n=e,e=void 0):arguments.length===2?typeof e=="number"?typeof t=="function"?(n=t,t=void 0):typeof t!="number"&&(r=t,t=void 0):(r=e,n=t,e=void 0,t=void 0):arguments.length===3&&(typeof t=="number"?typeof r=="function"&&(n=r,r=void 0):(n=r,r=t,t=void 0)),r=r||{},e===void 0&&(e=r.bits||2048),t===void 0&&(t=r.e||65537),!K.options.usePureJavaScript&&!r.prng&&e>=256&&e<=16384&&(t===65537||t===3)){if(n){if(o4("generateKeyPair"))return is.generateKeyPair("rsa",{modulusLength:e,publicExponent:t,publicKeyEncoding:{type:"spki",format:"pem"},privateKeyEncoding:{type:"pkcs8",format:"pem"}},function(a,c,u){if(a)return n(a);n(null,{privateKey:$.privateKeyFromPem(u),publicKey:$.publicKeyFromPem(c)})});if(s4("generateKey")&&s4("exportKey"))return de.globalScope.crypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:e,publicExponent:c4(t),hash:{name:"SHA-256"}},!0,["sign","verify"]).then(function(a){return de.globalScope.crypto.subtle.exportKey("pkcs8",a.privateKey)}).then(void 0,function(a){n(a)}).then(function(a){if(a){var c=$.privateKeyFromAsn1(w.fromDer(K.util.createBuffer(a)));n(null,{privateKey:c,publicKey:$.setRsaPublicKey(c.n,c.e)})}});if(a4("generateKey")&&a4("exportKey")){var i=de.globalScope.msCrypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:e,publicExponent:c4(t),hash:{name:"SHA-256"}},!0,["sign","verify"]);i.oncomplete=function(a){var c=a.target.result,u=de.globalScope.msCrypto.subtle.exportKey("pkcs8",c.privateKey);u.oncomplete=function(f){var l=f.target.result,p=$.privateKeyFromAsn1(w.fromDer(K.util.createBuffer(l)));n(null,{privateKey:p,publicKey:$.setRsaPublicKey(p.n,p.e)})},u.onerror=function(f){n(f)}},i.onerror=function(a){n(a)};return}}else if(o4("generateKeyPairSync")){var o=is.generateKeyPairSync("rsa",{modulusLength:e,publicExponent:t,publicKeyEncoding:{type:"spki",format:"pem"},privateKeyEncoding:{type:"pkcs8",format:"pem"}});return{privateKey:$.privateKeyFromPem(o.privateKey),publicKey:$.publicKeyFromPem(o.publicKey)}}}var s=$.rsa.createKeyPairGenerationState(e,t,r);if(!n)return $.rsa.stepKeyPairGenerationState(s,0),s.keys;jf(s,r,n)};$.setRsaPublicKey=$.rsa.setPublicKey=function(e,t){var r={n:e,e:t};return r.encrypt=function(n,i,o){if(typeof i=="string"?i=i.toUpperCase():i===void 0&&(i="RSAES-PKCS1-V1_5"),i==="RSAES-PKCS1-V1_5")i={encode:function(a,c,u){return f4(a,c,2).getBytes()}};else if(i==="RSA-OAEP"||i==="RSAES-OAEP")i={encode:function(a,c){return K.pkcs1.encode_rsa_oaep(c,a,o)}};else if(["RAW","NONE","NULL",null].indexOf(i)!==-1)i={encode:function(a){return a}};else if(typeof i=="string")throw new Error('Unsupported encryption scheme: "'+i+'".');var s=i.encode(n,r,!0);return $.rsa.encrypt(s,r,!0)},r.verify=function(n,i,o,s){typeof o=="string"?o=o.toUpperCase():o===void 0&&(o="RSASSA-PKCS1-V1_5"),s===void 0&&(s={_parseAllDigestBytes:!0}),"_parseAllDigestBytes"in s||(s._parseAllDigestBytes=!0),o==="RSASSA-PKCS1-V1_5"?o={verify:function(c,u){u=T1(u,r,!0);var f=w.fromDer(u,{parseAllBytes:s._parseAllDigestBytes}),l={},p=[];if(!w.validate(f,Xf,l,p)){var d=new Error("ASN.1 object does not contain a valid RSASSA-PKCS1-v1_5 DigestInfo value.");throw d.errors=p,d}var h=w.derToOid(l.algorithmIdentifier);if(!(h===K.oids.md2||h===K.oids.md5||h===K.oids.sha1||h===K.oids.sha224||h===K.oids.sha256||h===K.oids.sha384||h===K.oids.sha512||h===K.oids["sha512-224"]||h===K.oids["sha512-256"])){var d=new Error("Unknown RSASSA-PKCS1-v1_5 DigestAlgorithm identifier.");throw d.oid=h,d}if((h===K.oids.md2||h===K.oids.md5)&&!("parameters"in l))throw new Error("ASN.1 object does not contain a valid RSASSA-PKCS1-v1_5 DigestInfo value. Missing algorithm identifer NULL parameters.");return c===l.digest}}:(o==="NONE"||o==="NULL"||o===null)&&(o={verify:function(c,u){return u=T1(u,r,!0),c===u}});var a=$.rsa.decrypt(i,r,!0,!1);return o.verify(n,a,r.n.bitLength())},r};$.setRsaPrivateKey=$.rsa.setPrivateKey=function(e,t,r,n,i,o,s,a){var c={n:e,e:t,d:r,p:n,q:i,dP:o,dQ:s,qInv:a};return c.decrypt=function(u,f,l){typeof f=="string"?f=f.toUpperCase():f===void 0&&(f="RSAES-PKCS1-V1_5");var p=$.rsa.decrypt(u,c,!1,!1);if(f==="RSAES-PKCS1-V1_5")f={decode:T1};else if(f==="RSA-OAEP"||f==="RSAES-OAEP")f={decode:function(d,h){return K.pkcs1.decode_rsa_oaep(h,d,l)}};else if(["RAW","NONE","NULL",null].indexOf(f)!==-1)f={decode:function(d){return d}};else throw new Error('Unsupported encryption scheme: "'+f+'".');return f.decode(p,c,!1)},c.sign=function(u,f){var l=!1;typeof f=="string"&&(f=f.toUpperCase()),f===void 0||f==="RSASSA-PKCS1-V1_5"?(f={encode:Jf},l=1):(f==="NONE"||f==="NULL"||f===null)&&(f={encode:function(){return u}},l=1);var p=f.encode(u,c.n.bitLength());return $.rsa.encrypt(p,c,l)},c};$.wrapRsaPrivateKey=function(e){return w.create(w.Class.UNIVERSAL,w.Type.SEQUENCE,!0,[w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,w.integerToDer(0).getBytes()),w.create(w.Class.UNIVERSAL,w.Type.SEQUENCE,!0,[w.create(w.Class.UNIVERSAL,w.Type.OID,!1,w.oidToDer($.oids.rsaEncryption).getBytes()),w.create(w.Class.UNIVERSAL,w.Type.NULL,!1,"")]),w.create(w.Class.UNIVERSAL,w.Type.OCTETSTRING,!1,w.toDer(e).getBytes())])};$.privateKeyFromAsn1=function(e){var t={},r=[];if(w.validate(e,Yf,t,r)&&(e=w.fromDer(K.util.createBuffer(t.privateKey))),t={},r=[],!w.validate(e,Qf,t,r)){var n=new Error("Cannot read private key. ASN.1 object does not contain an RSAPrivateKey.");throw n.errors=r,n}var i,o,s,a,c,u,f,l;return i=K.util.createBuffer(t.privateKeyModulus).toHex(),o=K.util.createBuffer(t.privateKeyPublicExponent).toHex(),s=K.util.createBuffer(t.privateKeyPrivateExponent).toHex(),a=K.util.createBuffer(t.privateKeyPrime1).toHex(),c=K.util.createBuffer(t.privateKeyPrime2).toHex(),u=K.util.createBuffer(t.privateKeyExponent1).toHex(),f=K.util.createBuffer(t.privateKeyExponent2).toHex(),l=K.util.createBuffer(t.privateKeyCoefficient).toHex(),$.setRsaPrivateKey(new tt(i,16),new tt(o,16),new tt(s,16),new tt(a,16),new tt(c,16),new tt(u,16),new tt(f,16),new tt(l,16))};$.privateKeyToAsn1=$.privateKeyToRSAPrivateKey=function(e){return w.create(w.Class.UNIVERSAL,w.Type.SEQUENCE,!0,[w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,w.integerToDer(0).getBytes()),w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,Ve(e.n)),w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,Ve(e.e)),w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,Ve(e.d)),w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,Ve(e.p)),w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,Ve(e.q)),w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,Ve(e.dP)),w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,Ve(e.dQ)),w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,Ve(e.qInv))])};$.publicKeyFromAsn1=function(e){var t={},r=[];if(w.validate(e,Zf,t,r)){var n=w.derToOid(t.publicKeyOid);if(n!==$.oids.rsaEncryption){var i=new Error("Cannot read public key. Unknown OID.");throw i.oid=n,i}e=t.rsaPublicKey}if(r=[],!w.validate(e,Wf,t,r)){var i=new Error("Cannot read public key. ASN.1 object does not contain an RSAPublicKey.");throw i.errors=r,i}var o=K.util.createBuffer(t.publicKeyModulus).toHex(),s=K.util.createBuffer(t.publicKeyExponent).toHex();return $.setRsaPublicKey(new tt(o,16),new tt(s,16))};$.publicKeyToAsn1=$.publicKeyToSubjectPublicKeyInfo=function(e){return w.create(w.Class.UNIVERSAL,w.Type.SEQUENCE,!0,[w.create(w.Class.UNIVERSAL,w.Type.SEQUENCE,!0,[w.create(w.Class.UNIVERSAL,w.Type.OID,!1,w.oidToDer($.oids.rsaEncryption).getBytes()),w.create(w.Class.UNIVERSAL,w.Type.NULL,!1,"")]),w.create(w.Class.UNIVERSAL,w.Type.BITSTRING,!1,[$.publicKeyToRSAPublicKey(e)])])};$.publicKeyToRSAPublicKey=function(e){return w.create(w.Class.UNIVERSAL,w.Type.SEQUENCE,!0,[w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,Ve(e.n)),w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,Ve(e.e))])};function f4(e,t,r){var n=K.util.createBuffer(),i=Math.ceil(t.n.bitLength()/8);if(e.length>i-11){var o=new Error("Message is too long for PKCS#1 v1.5 padding.");throw o.length=e.length,o.max=i-11,o}n.putByte(0),n.putByte(r);var s=i-3-e.length,a;if(r===0||r===1){a=r===0?0:255;for(var c=0;c<s;++c)n.putByte(a)}else for(;s>0;){for(var u=0,f=K.random.getBytes(s),c=0;c<s;++c)a=f.charCodeAt(c),a===0?++u:n.putByte(a);s=u}return n.putByte(0),n.putBytes(e),n}function T1(e,t,r,n){var i=Math.ceil(t.n.bitLength()/8),o=K.util.createBuffer(e),s=o.getByte(),a=o.getByte();if(s!==0||r&&a!==0&&a!==1||!r&&a!=2||r&&a===0&&typeof n>"u")throw new Error("Encryption block is invalid.");var c=0;if(a===0){c=i-3-n;for(var u=0;u<c;++u)if(o.getByte()!==0)throw new Error("Encryption block is invalid.")}else if(a===1)for(c=0;o.length()>1;){if(o.getByte()!==255){--o.read;break}++c}else if(a===2)for(c=0;o.length()>1;){if(o.getByte()===0){--o.read;break}++c}var f=o.getByte();if(f!==0||c!==i-3-o.length())throw new Error("Encryption block is invalid.");return o.getBytes()}function jf(e,t,r){typeof t=="function"&&(r=t,t={}),t=t||{};var n={algorithm:{name:t.algorithm||"PRIMEINC",options:{workers:t.workers||2,workLoad:t.workLoad||100,workerScript:t.workerScript}}};"prng"in t&&(n.prng=t.prng),i();function i(){o(e.pBits,function(a,c){if(a)return r(a);if(e.p=c,e.q!==null)return s(a,e.q);o(e.qBits,s)})}function o(a,c){K.prime.generateProbablePrime(a,n,c)}function s(a,c){if(a)return r(a);if(e.q=c,e.p.compareTo(e.q)<0){var u=e.p;e.p=e.q,e.q=u}if(e.p.subtract(tt.ONE).gcd(e.e).compareTo(tt.ONE)!==0){e.p=null,i();return}if(e.q.subtract(tt.ONE).gcd(e.e).compareTo(tt.ONE)!==0){e.q=null,o(e.qBits,s);return}if(e.p1=e.p.subtract(tt.ONE),e.q1=e.q.subtract(tt.ONE),e.phi=e.p1.multiply(e.q1),e.phi.gcd(e.e).compareTo(tt.ONE)!==0){e.p=e.q=null,i();return}if(e.n=e.p.multiply(e.q),e.n.bitLength()!==e.bits){e.q=null,o(e.qBits,s);return}var f=e.e.modInverse(e.phi);e.keys={privateKey:$.rsa.setPrivateKey(e.n,e.e,f,e.p,e.q,f.mod(e.p1),f.mod(e.q1),e.q.modInverse(e.p)),publicKey:$.rsa.setPublicKey(e.n,e.e)},r(null,e.keys)}}function Ve(e){var t=e.toString(16);t[0]>="8"&&(t="00"+t);var r=K.util.hexToBytes(t);return r.length>1&&(r.charCodeAt(0)===0&&!(r.charCodeAt(1)&128)||r.charCodeAt(0)===255&&(r.charCodeAt(1)&128)===128)?r.substr(1):r}function t7(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 o4(e){return K.util.isNodejs&&typeof is[e]=="function"}function s4(e){return typeof de.globalScope<"u"&&typeof de.globalScope.crypto=="object"&&typeof de.globalScope.crypto.subtle=="object"&&typeof de.globalScope.crypto.subtle[e]=="function"}function a4(e){return typeof de.globalScope<"u"&&typeof de.globalScope.msCrypto=="object"&&typeof de.globalScope.msCrypto.subtle=="object"&&typeof de.globalScope.msCrypto.subtle[e]=="function"}function c4(e){for(var t=K.util.hexToBytes(e.toString(16)),r=new Uint8Array(t.length),n=0;n<t.length;++n)r[n]=t.charCodeAt(n);return r}});var m4=nt((xv,y4)=>{var O=ct();h1();u0();E3();Kr();g1();Wo();R3();f0();V3();C1();It();typeof h4>"u"&&(h4=O.jsbn.BigInteger);var h4,I=O.asn1,G=O.pki=O.pki||{};y4.exports=G.pbe=O.pbe=O.pbe||{};var zr=G.oids,e7={name:"EncryptedPrivateKeyInfo",tagClass:I.Class.UNIVERSAL,type:I.Type.SEQUENCE,constructed:!0,value:[{name:"EncryptedPrivateKeyInfo.encryptionAlgorithm",tagClass:I.Class.UNIVERSAL,type:I.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:I.Class.UNIVERSAL,type:I.Type.OID,constructed:!1,capture:"encryptionOid"},{name:"AlgorithmIdentifier.parameters",tagClass:I.Class.UNIVERSAL,type:I.Type.SEQUENCE,constructed:!0,captureAsn1:"encryptionParams"}]},{name:"EncryptedPrivateKeyInfo.encryptedData",tagClass:I.Class.UNIVERSAL,type:I.Type.OCTETSTRING,constructed:!1,capture:"encryptedData"}]},r7={name:"PBES2Algorithms",tagClass:I.Class.UNIVERSAL,type:I.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.keyDerivationFunc",tagClass:I.Class.UNIVERSAL,type:I.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.keyDerivationFunc.oid",tagClass:I.Class.UNIVERSAL,type:I.Type.OID,constructed:!1,capture:"kdfOid"},{name:"PBES2Algorithms.params",tagClass:I.Class.UNIVERSAL,type:I.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.params.salt",tagClass:I.Class.UNIVERSAL,type:I.Type.OCTETSTRING,constructed:!1,capture:"kdfSalt"},{name:"PBES2Algorithms.params.iterationCount",tagClass:I.Class.UNIVERSAL,type:I.Type.INTEGER,constructed:!1,capture:"kdfIterationCount"},{name:"PBES2Algorithms.params.keyLength",tagClass:I.Class.UNIVERSAL,type:I.Type.INTEGER,constructed:!1,optional:!0,capture:"keyLength"},{name:"PBES2Algorithms.params.prf",tagClass:I.Class.UNIVERSAL,type:I.Type.SEQUENCE,constructed:!0,optional:!0,value:[{name:"PBES2Algorithms.params.prf.algorithm",tagClass:I.Class.UNIVERSAL,type:I.Type.OID,constructed:!1,capture:"prfOid"}]}]}]},{name:"PBES2Algorithms.encryptionScheme",tagClass:I.Class.UNIVERSAL,type:I.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.encryptionScheme.oid",tagClass:I.Class.UNIVERSAL,type:I.Type.OID,constructed:!1,capture:"encOid"},{name:"PBES2Algorithms.encryptionScheme.iv",tagClass:I.Class.UNIVERSAL,type:I.Type.OCTETSTRING,constructed:!1,capture:"encIv"}]}]},n7={name:"pkcs-12PbeParams",tagClass:I.Class.UNIVERSAL,type:I.Type.SEQUENCE,constructed:!0,value:[{name:"pkcs-12PbeParams.salt",tagClass:I.Class.UNIVERSAL,type:I.Type.OCTETSTRING,constructed:!1,capture:"salt"},{name:"pkcs-12PbeParams.iterations",tagClass:I.Class.UNIVERSAL,type:I.Type.INTEGER,constructed:!1,capture:"iterations"}]};G.encryptPrivateKeyInfo=function(e,t,r){r=r||{},r.saltSize=r.saltSize||8,r.count=r.count||2048,r.algorithm=r.algorithm||"aes128",r.prfAlgorithm=r.prfAlgorithm||"sha1";var n=O.random.getBytesSync(r.saltSize),i=r.count,o=I.integerToDer(i),s,a,c;if(r.algorithm.indexOf("aes")===0||r.algorithm==="des"){var u,f,l;switch(r.algorithm){case"aes128":s=16,u=16,f=zr["aes128-CBC"],l=O.aes.createEncryptionCipher;break;case"aes192":s=24,u=16,f=zr["aes192-CBC"],l=O.aes.createEncryptionCipher;break;case"aes256":s=32,u=16,f=zr["aes256-CBC"],l=O.aes.createEncryptionCipher;break;case"des":s=8,u=8,f=zr.desCBC,l=O.des.createEncryptionCipher;break;default:var p=new Error("Cannot encrypt private key. Unknown encryption algorithm.");throw p.algorithm=r.algorithm,p}var d="hmacWith"+r.prfAlgorithm.toUpperCase(),h=g4(d),g=O.pkcs5.pbkdf2(t,n,i,s,h),y=O.random.getBytesSync(u),m=l(g);m.start(y),m.update(I.toDer(e)),m.finish(),c=m.output.getBytes();var x=i7(n,o,s,d);a=I.create(I.Class.UNIVERSAL,I.Type.SEQUENCE,!0,[I.create(I.Class.UNIVERSAL,I.Type.OID,!1,I.oidToDer(zr.pkcs5PBES2).getBytes()),I.create(I.Class.UNIVERSAL,I.Type.SEQUENCE,!0,[I.create(I.Class.UNIVERSAL,I.Type.SEQUENCE,!0,[I.create(I.Class.UNIVERSAL,I.Type.OID,!1,I.oidToDer(zr.pkcs5PBKDF2).getBytes()),x]),I.create(I.Class.UNIVERSAL,I.Type.SEQUENCE,!0,[I.create(I.Class.UNIVERSAL,I.Type.OID,!1,I.oidToDer(f).getBytes()),I.create(I.Class.UNIVERSAL,I.Type.OCTETSTRING,!1,y)])])])}else if(r.algorithm==="3des"){s=24;var v=new O.util.ByteBuffer(n),g=G.pbe.generatePkcs12Key(t,v,1,i,s),y=G.pbe.generatePkcs12Key(t,v,2,i,s),m=O.des.createEncryptionCipher(g);m.start(y),m.update(I.toDer(e)),m.finish(),c=m.output.getBytes(),a=I.create(I.Class.UNIVERSAL,I.Type.SEQUENCE,!0,[I.create(I.Class.UNIVERSAL,I.Type.OID,!1,I.oidToDer(zr["pbeWithSHAAnd3-KeyTripleDES-CBC"]).getBytes()),I.create(I.Class.UNIVERSAL,I.Type.SEQUENCE,!0,[I.create(I.Class.UNIVERSAL,I.Type.OCTETSTRING,!1,n),I.create(I.Class.UNIVERSAL,I.Type.INTEGER,!1,o.getBytes())])])}else{var p=new Error("Cannot encrypt private key. Unknown encryption algorithm.");throw p.algorithm=r.algorithm,p}var T=I.create(I.Class.UNIVERSAL,I.Type.SEQUENCE,!0,[a,I.create(I.Class.UNIVERSAL,I.Type.OCTETSTRING,!1,c)]);return T};G.decryptPrivateKeyInfo=function(e,t){var r=null,n={},i=[];if(!I.validate(e,e7,n,i)){var o=new Error("Cannot read encrypted private key. ASN.1 object is not a supported EncryptedPrivateKeyInfo.");throw o.errors=i,o}var s=I.derToOid(n.encryptionOid),a=G.pbe.getCipher(s,n.encryptionParams,t),c=O.util.createBuffer(n.encryptedData);return a.update(c),a.finish()&&(r=I.fromDer(a.output)),r};G.encryptedPrivateKeyToPem=function(e,t){var r={type:"ENCRYPTED PRIVATE KEY",body:I.toDer(e).getBytes()};return O.pem.encode(r,{maxline:t})};G.encryptedPrivateKeyFromPem=function(e){var t=O.pem.decode(e)[0];if(t.type!=="ENCRYPTED PRIVATE KEY"){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&&t.procType.type==="ENCRYPTED")throw new Error("Could not convert encrypted private key from PEM; PEM is encrypted.");return I.fromDer(t.body)};G.encryptRsaPrivateKey=function(e,t,r){if(r=r||{},!r.legacy){var n=G.wrapRsaPrivateKey(G.privateKeyToAsn1(e));return n=G.encryptPrivateKeyInfo(n,t,r),G.encryptedPrivateKeyToPem(n)}var i,o,s,a;switch(r.algorithm){case"aes128":i="AES-128-CBC",s=16,o=O.random.getBytesSync(16),a=O.aes.createEncryptionCipher;break;case"aes192":i="AES-192-CBC",s=24,o=O.random.getBytesSync(16),a=O.aes.createEncryptionCipher;break;case"aes256":i="AES-256-CBC",s=32,o=O.random.getBytesSync(16),a=O.aes.createEncryptionCipher;break;case"3des":i="DES-EDE3-CBC",s=24,o=O.random.getBytesSync(8),a=O.des.createEncryptionCipher;break;case"des":i="DES-CBC",s=8,o=O.random.getBytesSync(8),a=O.des.createEncryptionCipher;break;default:var c=new Error('Could not encrypt RSA private key; unsupported encryption algorithm "'+r.algorithm+'".');throw c.algorithm=r.algorithm,c}var u=O.pbe.opensslDeriveBytes(t,o.substr(0,8),s),f=a(u);f.start(o),f.update(I.toDer(G.privateKeyToAsn1(e))),f.finish();var l={type:"RSA PRIVATE KEY",procType:{version:"4",type:"ENCRYPTED"},dekInfo:{algorithm:i,parameters:O.util.bytesToHex(o).toUpperCase()},body:f.output.getBytes()};return O.pem.encode(l)};G.decryptRsaPrivateKey=function(e,t){var r=null,n=O.pem.decode(e)[0];if(n.type!=="ENCRYPTED PRIVATE KEY"&&n.type!=="PRIVATE KEY"&&n.type!=="RSA PRIVATE KEY"){var i=new Error('Could not convert private key from PEM; PEM header type is not "ENCRYPTED PRIVATE KEY", "PRIVATE KEY", or "RSA PRIVATE KEY".');throw i.headerType=i,i}if(n.procType&&n.procType.type==="ENCRYPTED"){var o,s;switch(n.dekInfo.algorithm){case"DES-CBC":o=8,s=O.des.createDecryptionCipher;break;case"DES-EDE3-CBC":o=24,s=O.des.createDecryptionCipher;break;case"AES-128-CBC":o=16,s=O.aes.createDecryptionCipher;break;case"AES-192-CBC":o=24,s=O.aes.createDecryptionCipher;break;case"AES-256-CBC":o=32,s=O.aes.createDecryptionCipher;break;case"RC2-40-CBC":o=5,s=function(l){return O.rc2.createDecryptionCipher(l,40)};break;case"RC2-64-CBC":o=8,s=function(l){return O.rc2.createDecryptionCipher(l,64)};break;case"RC2-128-CBC":o=16,s=function(l){return O.rc2.createDecryptionCipher(l,128)};break;default:var i=new Error('Could not decrypt private key; unsupported encryption algorithm "'+n.dekInfo.algorithm+'".');throw i.algorithm=n.dekInfo.algorithm,i}var a=O.util.hexToBytes(n.dekInfo.parameters),c=O.pbe.opensslDeriveBytes(t,a.substr(0,8),o),u=s(c);if(u.start(a),u.update(O.util.createBuffer(n.body)),u.finish())r=u.output.getBytes();else return r}else r=n.body;return n.type==="ENCRYPTED PRIVATE KEY"?r=G.decryptPrivateKeyInfo(I.fromDer(r),t):r=I.fromDer(r),r!==null&&(r=G.privateKeyFromAsn1(r)),r};G.pbe.generatePkcs12Key=function(e,t,r,n,i,o){var s,a;if(typeof o>"u"||o===null){if(!("sha1"in O.md))throw new Error('"sha1" hash algorithm unavailable.');o=O.md.sha1.create()}var c=o.digestLength,u=o.blockLength,f=new O.util.ByteBuffer,l=new O.util.ByteBuffer;if(e!=null){for(a=0;a<e.length;a++)l.putInt16(e.charCodeAt(a));l.putInt16(0)}var p=l.length(),d=t.length(),h=new O.util.ByteBuffer;h.fillWithByte(r,u);var g=u*Math.ceil(d/u),y=new O.util.ByteBuffer;for(a=0;a<g;a++)y.putByte(t.at(a%d));var m=u*Math.ceil(p/u),x=new O.util.ByteBuffer;for(a=0;a<m;a++)x.putByte(l.at(a%p));var v=y;v.putBuffer(x);for(var T=Math.ceil(i/c),E=1;E<=T;E++){var S=new O.util.ByteBuffer;S.putBytes(h.bytes()),S.putBytes(v.bytes());for(var L=0;L<n;L++)o.start(),o.update(S.getBytes()),S=o.digest();var N=new O.util.ByteBuffer;for(a=0;a<u;a++)N.putByte(S.at(a%c));var H=Math.ceil(d/u)+Math.ceil(p/u),z=new O.util.ByteBuffer;for(s=0;s<H;s++){var V=new O.util.ByteBuffer(v.getBytes(u)),Z=511;for(a=N.length()-1;a>=0;a--)Z=Z>>8,Z+=N.at(a)+V.at(a),V.setAt(a,Z&255);z.putBuffer(V)}v=z,f.putBuffer(S)}return f.truncate(f.length()-i),f};G.pbe.getCipher=function(e,t,r){switch(e){case G.oids.pkcs5PBES2:return G.pbe.getCipherForPBES2(e,t,r);case G.oids["pbeWithSHAAnd3-KeyTripleDES-CBC"]:case G.oids["pbewithSHAAnd40BitRC2-CBC"]:return G.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}};G.pbe.getCipherForPBES2=function(e,t,r){var n={},i=[];if(!I.validate(t,r7,n,i)){var o=new Error("Cannot read password-based-encryption algorithm parameters. ASN.1 object is not a supported EncryptedPrivateKeyInfo.");throw o.errors=i,o}if(e=I.derToOid(n.kdfOid),e!==G.oids.pkcs5PBKDF2){var o=new Error("Cannot read encrypted private key. Unsupported key derivation function OID.");throw o.oid=e,o.supportedOids=["pkcs5PBKDF2"],o}if(e=I.derToOid(n.encOid),e!==G.oids["aes128-CBC"]&&e!==G.oids["aes192-CBC"]&&e!==G.oids["aes256-CBC"]&&e!==G.oids["des-EDE3-CBC"]&&e!==G.oids.desCBC){var o=new Error("Cannot read encrypted private key. Unsupported encryption scheme OID.");throw o.oid=e,o.supportedOids=["aes128-CBC","aes192-CBC","aes256-CBC","des-EDE3-CBC","desCBC"],o}var s=n.kdfSalt,a=O.util.createBuffer(n.kdfIterationCount);a=a.getInt(a.length()<<3);var c,u;switch(G.oids[e]){case"aes128-CBC":c=16,u=O.aes.createDecryptionCipher;break;case"aes192-CBC":c=24,u=O.aes.createDecryptionCipher;break;case"aes256-CBC":c=32,u=O.aes.createDecryptionCipher;break;case"des-EDE3-CBC":c=24,u=O.des.createDecryptionCipher;break;case"desCBC":c=8,u=O.des.createDecryptionCipher;break}var f=p4(n.prfOid),l=O.pkcs5.pbkdf2(r,s,a,c,f),p=n.encIv,d=u(l);return d.start(p),d};G.pbe.getCipherForPKCS12PBE=function(e,t,r){var n={},i=[];if(!I.validate(t,n7,n,i)){var o=new Error("Cannot read password-based-encryption algorithm parameters. ASN.1 object is not a supported EncryptedPrivateKeyInfo.");throw o.errors=i,o}var s=O.util.createBuffer(n.salt),a=O.util.createBuffer(n.iterations);a=a.getInt(a.length()<<3);var c,u,f;switch(e){case G.oids["pbeWithSHAAnd3-KeyTripleDES-CBC"]:c=24,u=8,f=O.des.startDecrypting;break;case G.oids["pbewithSHAAnd40BitRC2-CBC"]:c=5,u=8,f=function(g,y){var m=O.rc2.createDecryptionCipher(g,40);return m.start(y,null),m};break;default:var o=new Error("Cannot read PKCS #12 PBE data block. Unsupported OID.");throw o.oid=e,o}var l=p4(n.prfOid),p=G.pbe.generatePkcs12Key(r,s,1,a,c,l);l.start();var d=G.pbe.generatePkcs12Key(r,s,2,a,u,l);return f(p,d)};G.pbe.opensslDeriveBytes=function(e,t,r,n){if(typeof n>"u"||n===null){if(!("md5"in O.md))throw new Error('"md5" hash algorithm unavailable.');n=O.md.md5.create()}t===null&&(t="");for(var i=[d4(n,e+t)],o=16,s=1;o<r;++s,o+=16)i.push(d4(n,i[s-1]+e+t));return i.join("").substr(0,r)};function d4(e,t){return e.start().update(t).digest().getBytes()}function p4(e){var t;if(!e)t="hmacWithSHA1";else if(t=G.oids[I.derToOid(e)],!t){var r=new Error("Unsupported PRF OID.");throw r.oid=e,r.supported=["hmacWithSHA1","hmacWithSHA224","hmacWithSHA256","hmacWithSHA384","hmacWithSHA512"],r}return g4(t)}function g4(e){var t=O.md;switch(e){case"hmacWithSHA224":t=O.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()}function i7(e,t,r,n){var i=I.create(I.Class.UNIVERSAL,I.Type.SEQUENCE,!0,[I.create(I.Class.UNIVERSAL,I.Type.OCTETSTRING,!1,e),I.create(I.Class.UNIVERSAL,I.Type.INTEGER,!1,t.getBytes())]);return n!=="hmacWithSHA1"&&i.value.push(I.create(I.Class.UNIVERSAL,I.Type.INTEGER,!1,O.util.hexToBytes(r.toString(16))),I.create(I.Class.UNIVERSAL,I.Type.SEQUENCE,!0,[I.create(I.Class.UNIVERSAL,I.Type.OID,!1,I.oidToDer(G.oids[n]).getBytes()),I.create(I.Class.UNIVERSAL,I.Type.NULL,!1,"")])),i}});var r5=nt((zb,e5)=>{var pt=ct();Kr();It();var y0=e5.exports=pt.sha512=pt.sha512||{};pt.md.sha512=pt.md.algorithms.sha512=y0;var j4=pt.sha384=pt.sha512.sha384=pt.sha512.sha384||{};j4.create=function(){return y0.create("SHA-384")};pt.md.sha384=pt.md.algorithms.sha384=j4;pt.sha512.sha256=pt.sha512.sha256||{create:function(){return y0.create("SHA-512/256")}};pt.md["sha512/256"]=pt.md.algorithms["sha512/256"]=pt.sha512.sha256;pt.sha512.sha224=pt.sha512.sha224||{create:function(){return y0.create("SHA-512/224")}};pt.md["sha512/224"]=pt.md.algorithms["sha512/224"]=pt.sha512.sha224;y0.create=function(e){if(t5||yl(),typeof e>"u"&&(e="SHA-512"),!(e in Qr))throw new Error("Invalid SHA-512 algorithm: "+e);for(var t=Qr[e],r=null,n=pt.util.createBuffer(),i=new Array(80),o=0;o<80;++o)i[o]=new Array(2);var s=64;switch(e){case"SHA-384":s=48;break;case"SHA-512/256":s=32;break;case"SHA-512/224":s=28;break}var a={algorithm:e.replace("-","").toLowerCase(),blockLength:128,digestLength:s,messageLength:0,fullMessageLength:null,messageLengthSize:16};return a.start=function(){a.messageLength=0,a.fullMessageLength=a.messageLength128=[];for(var c=a.messageLengthSize/4,u=0;u<c;++u)a.fullMessageLength.push(0);n=pt.util.createBuffer(),r=new Array(t.length);for(var u=0;u<t.length;++u)r[u]=t[u].slice(0);return a},a.start(),a.update=function(c,u){u==="utf8"&&(c=pt.util.encodeUtf8(c));var f=c.length;a.messageLength+=f,f=[f/4294967296>>>0,f>>>0];for(var l=a.fullMessageLength.length-1;l>=0;--l)a.fullMessageLength[l]+=f[1],f[1]=f[0]+(a.fullMessageLength[l]/4294967296>>>0),a.fullMessageLength[l]=a.fullMessageLength[l]>>>0,f[0]=f[1]/4294967296>>>0;return n.putBytes(c),J4(r,i,n),(n.read>2048||n.length()===0)&&n.compact(),a},a.digest=function(){var c=pt.util.createBuffer();c.putBytes(n.bytes());var u=a.fullMessageLength[a.fullMessageLength.length-1]+a.messageLengthSize,f=u&a.blockLength-1;c.putBytes(Bs.substr(0,a.blockLength-f));for(var l,p,d=a.fullMessageLength[0]*8,h=0;h<a.fullMessageLength.length-1;++h)l=a.fullMessageLength[h+1]*8,p=l/4294967296>>>0,d+=p,c.putInt32(d>>>0),d=l>>>0;c.putInt32(d);for(var g=new Array(r.length),h=0;h<r.length;++h)g[h]=r[h].slice(0);J4(g,i,c);var y=pt.util.createBuffer(),m;e==="SHA-512"?m=g.length:e==="SHA-384"?m=g.length-2:m=g.length-4;for(var h=0;h<m;++h)y.putInt32(g[h][0]),(h!==m-1||e!=="SHA-512/224")&&y.putInt32(g[h][1]);return y},a};var Bs=null,t5=!1,Ts=null,Qr=null;function yl(){Bs="\x80",Bs+=pt.util.fillString("\0",128),Ts=[[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]],Qr={},Qr["SHA-512"]=[[1779033703,4089235720],[3144134277,2227873595],[1013904242,4271175723],[2773480762,1595750129],[1359893119,2917565137],[2600822924,725511199],[528734635,4215389547],[1541459225,327033209]],Qr["SHA-384"]=[[3418070365,3238371032],[1654270250,914150663],[2438529370,812702999],[355462360,4144912697],[1731405415,4290775857],[2394180231,1750603025],[3675008525,1694076839],[1203062813,3204075428]],Qr["SHA-512/256"]=[[573645204,4230739756],[2673172387,3360449730],[596883563,1867755857],[2520282905,1497426621],[2519219938,2827943907],[3193839141,1401305490],[721525244,746961066],[246885852,2177182882]],Qr["SHA-512/224"]=[[2352822216,424955298],[1944164710,2312950998],[502970286,855612546],[1738396948,1479516111],[258812777,2077511080],[2011393907,79989058],[1067287976,1780299464],[286451373,2446758561]],t5=!0}function J4(e,t,r){for(var n,i,o,s,a,c,u,f,l,p,d,h,g,y,m,x,v,T,E,S,L,N,H,z,V,Z,ut,Ft,C,k,P,D,A,F,M,q=r.length();q>=128;){for(C=0;C<16;++C)t[C][0]=r.getInt32()>>>0,t[C][1]=r.getInt32()>>>0;for(;C<80;++C)D=t[C-2],k=D[0],P=D[1],n=((k>>>19|P<<13)^(P>>>29|k<<3)^k>>>6)>>>0,i=((k<<13|P>>>19)^(P<<3|k>>>29)^(k<<26|P>>>6))>>>0,F=t[C-15],k=F[0],P=F[1],o=((k>>>1|P<<31)^(k>>>8|P<<24)^k>>>7)>>>0,s=((k<<31|P>>>1)^(k<<24|P>>>8)^(k<<25|P>>>7))>>>0,A=t[C-7],M=t[C-16],P=i+A[1]+s+M[1],t[C][0]=n+A[0]+o+M[0]+(P/4294967296>>>0)>>>0,t[C][1]=P>>>0;for(g=e[0][0],y=e[0][1],m=e[1][0],x=e[1][1],v=e[2][0],T=e[2][1],E=e[3][0],S=e[3][1],L=e[4][0],N=e[4][1],H=e[5][0],z=e[5][1],V=e[6][0],Z=e[6][1],ut=e[7][0],Ft=e[7][1],C=0;C<80;++C)u=((L>>>14|N<<18)^(L>>>18|N<<14)^(N>>>9|L<<23))>>>0,f=((L<<18|N>>>14)^(L<<14|N>>>18)^(N<<23|L>>>9))>>>0,l=(V^L&(H^V))>>>0,p=(Z^N&(z^Z))>>>0,a=((g>>>28|y<<4)^(y>>>2|g<<30)^(y>>>7|g<<25))>>>0,c=((g<<4|y>>>28)^(y<<30|g>>>2)^(y<<25|g>>>7))>>>0,d=(g&m|v&(g^m))>>>0,h=(y&x|T&(y^x))>>>0,P=Ft+f+p+Ts[C][1]+t[C][1],n=ut+u+l+Ts[C][0]+t[C][0]+(P/4294967296>>>0)>>>0,i=P>>>0,P=c+h,o=a+d+(P/4294967296>>>0)>>>0,s=P>>>0,ut=V,Ft=Z,V=H,Z=z,H=L,z=N,P=S+i,L=E+n+(P/4294967296>>>0)>>>0,N=P>>>0,E=v,S=T,v=m,T=x,m=g,x=y,P=i+s,g=n+o+(P/4294967296>>>0)>>>0,y=P>>>0;P=e[0][1]+y,e[0][0]=e[0][0]+g+(P/4294967296>>>0)>>>0,e[0][1]=P>>>0,P=e[1][1]+x,e[1][0]=e[1][0]+m+(P/4294967296>>>0)>>>0,e[1][1]=P>>>0,P=e[2][1]+T,e[2][0]=e[2][0]+v+(P/4294967296>>>0)>>>0,e[2][1]=P>>>0,P=e[3][1]+S,e[3][0]=e[3][0]+E+(P/4294967296>>>0)>>>0,e[3][1]=P>>>0,P=e[4][1]+N,e[4][0]=e[4][0]+L+(P/4294967296>>>0)>>>0,e[4][1]=P>>>0,P=e[5][1]+z,e[5][0]=e[5][0]+H+(P/4294967296>>>0)>>>0,e[5][1]=P>>>0,P=e[6][1]+Z,e[6][0]=e[6][0]+V+(P/4294967296>>>0)>>>0,e[6][1]=P>>>0,P=e[7][1]+Ft,e[7][0]=e[7][0]+ut+(P/4294967296>>>0)>>>0,e[7][1]=P>>>0,q-=128}}});var C5=nt((SE,T5)=>{T5.exports=function(e){if(!e)throw Error("hashlru must have a max value, of type number, greater than 0");var t=0,r=Object.create(null),n=Object.create(null);function i(o,s){r[o]=s,t++,t>=e&&(t=0,n=r,r=Object.create(null))}return{has:function(o){return r[o]!==void 0||n[o]!==void 0},remove:function(o){r[o]!==void 0&&(r[o]=void 0),n[o]!==void 0&&(n[o]=void 0)},get:function(o){var s=r[o];if(s!==void 0)return s;if((s=n[o])!==void 0)return i(o,s),s},set:function(o,s){r[o]!==void 0?r[o]=s:i(o,s)},clear:function(){r=Object.create(null),n=Object.create(null)}}}});var _5=nt((IE,Ms)=>{"use strict";var Zl=Object.prototype.hasOwnProperty,te="~";function E0(){}Object.create&&(E0.prototype=Object.create(null),new E0().__proto__||(te=!1));function Xl(e,t,r){this.fn=e,this.context=t,this.once=r||!1}function R5(e,t,r,n,i){if(typeof r!="function")throw new TypeError("The listener must be a function");var o=new Xl(r,n||e,i),s=te?te+t:t;return e._events[s]?e._events[s].fn?e._events[s]=[e._events[s],o]:e._events[s].push(o):(e._events[s]=o,e._eventsCount++),e}function X1(e,t){--e._eventsCount===0?e._events=new E0:delete e._events[t]}function Wt(){this._events=new E0,this._eventsCount=0}Wt.prototype.eventNames=function(){var t=[],r,n;if(this._eventsCount===0)return t;for(n in r=this._events)Zl.call(r,n)&&t.push(te?n.slice(1):n);return Object.getOwnPropertySymbols?t.concat(Object.getOwnPropertySymbols(r)):t};Wt.prototype.listeners=function(t){var r=te?te+t:t,n=this._events[r];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};Wt.prototype.listenerCount=function(t){var r=te?te+t:t,n=this._events[r];return n?n.fn?1:n.length:0};Wt.prototype.emit=function(t,r,n,i,o,s){var a=te?te+t:t;if(!this._events[a])return!1;var c=this._events[a],u=arguments.length,f,l;if(c.fn){switch(c.once&&this.removeListener(t,c.fn,void 0,!0),u){case 1:return c.fn.call(c.context),!0;case 2:return c.fn.call(c.context,r),!0;case 3:return c.fn.call(c.context,r,n),!0;case 4:return c.fn.call(c.context,r,n,i),!0;case 5:return c.fn.call(c.context,r,n,i,o),!0;case 6:return c.fn.call(c.context,r,n,i,o,s),!0}for(l=1,f=new Array(u-1);l<u;l++)f[l-1]=arguments[l];c.fn.apply(c.context,f)}else{var p=c.length,d;for(l=0;l<p;l++)switch(c[l].once&&this.removeListener(t,c[l].fn,void 0,!0),u){case 1:c[l].fn.call(c[l].context);break;case 2:c[l].fn.call(c[l].context,r);break;case 3:c[l].fn.call(c[l].context,r,n);break;case 4:c[l].fn.call(c[l].context,r,n,i);break;default:if(!f)for(d=1,f=new Array(u-1);d<u;d++)f[d-1]=arguments[d];c[l].fn.apply(c[l].context,f)}}return!0};Wt.prototype.on=function(t,r,n){return R5(this,t,r,n,!1)};Wt.prototype.once=function(t,r,n){return R5(this,t,r,n,!0)};Wt.prototype.removeListener=function(t,r,n,i){var o=te?te+t:t;if(!this._events[o])return this;if(!r)return X1(this,o),this;var s=this._events[o];if(s.fn)s.fn===r&&(!i||s.once)&&(!n||s.context===n)&&X1(this,o);else{for(var a=0,c=[],u=s.length;a<u;a++)(s[a].fn!==r||i&&!s[a].once||n&&s[a].context!==n)&&c.push(s[a]);c.length?this._events[o]=c.length===1?c[0]:c:X1(this,o)}return this};Wt.prototype.removeAllListeners=function(t){var r;return t?(r=te?te+t:t,this._events[r]&&X1(this,r)):(this._events=new E0,this._eventsCount=0),this};Wt.prototype.off=Wt.prototype.removeListener;Wt.prototype.addListener=Wt.prototype.on;Wt.prefixed=te;Wt.EventEmitter=Wt;typeof Ms<"u"&&(Ms.exports=Wt)});var A9={};Tt(A9,{EventTypes:()=>Ys,MessageType:()=>Qs,Record:()=>Lt,kadDHT:()=>I9,passthroughMapper:()=>ba,removePrivateAddressesMapper:()=>W0,removePublicAddressesMapper:()=>va});var T9=Symbol.for("@libp2p/connection");var i2=Symbol.for("@libp2p/content-routing");var o2=Symbol.for("@libp2p/peer-discovery");var s2=Symbol.for("@libp2p/peer-id");var a2=Symbol.for("@libp2p/peer-routing");var c2;(function(e){e.Accept="accept",e.Ignore="ignore",e.Reject="reject"})(c2||(c2={}));var U9=Symbol.for("@libp2p/transport");var u2;(function(e){e[e.FATAL_ALL=0]="FATAL_ALL",e[e.NO_FATAL=1]="NO_FATAL"})(u2||(u2={}));var _0=class e extends Error{code;type;constructor(t="The operation was aborted"){super(t),this.code=e.code,this.type=e.type}static code="ABORT_ERR";static type="aborted"},_=class extends Error{code;props;constructor(t,r,n){super(t),this.code=r,this.name=n?.name??"CodeError",this.props=n??{}}};var xi="ERR_INVALID_PARAMETERS";var ee=class extends EventTarget{#t=new Map;listenerCount(t){let r=this.#t.get(t);return r==null?0:r.length}addEventListener(t,r,n){super.addEventListener(t,r,n);let i=this.#t.get(t);i==null&&(i=[],this.#t.set(t,i)),i.push({callback:r,once:(n!==!0&&n!==!1&&n?.once)??!1})}removeEventListener(t,r,n){super.removeEventListener(t.toString(),r??null,n);let i=this.#t.get(t);i!=null&&(i=i.filter(({callback:o})=>o!==r),this.#t.set(t,i))}dispatchEvent(t){let r=super.dispatchEvent(t),n=this.#t.get(t.type);return n==null||(n=n.filter(({once:i})=>!i),this.#t.set(t.type,n)),r}safeDispatchEvent(t,r){return this.dispatchEvent(new Zt(t,r))}},vi=class extends Event{detail;constructor(t,r){super(t,r),this.detail=r?.detail}},Zt=globalThis.CustomEvent??vi;var tn=(e,...t)=>{try{[...t]}catch{}};function i8(e){return e[Symbol.asyncIterator]!=null}function o8(e){if(i8(e))return(async()=>{for await(let t of e);})();for(let t of e);}var bi=o8;function s8(e){let[t,r]=e[Symbol.asyncIterator]!=null?[e[Symbol.asyncIterator](),Symbol.asyncIterator]:[e[Symbol.iterator](),Symbol.iterator],n=[];return{peek:()=>t.next(),push:i=>{n.push(i)},next:()=>n.length>0?{done:!1,value:n.shift()}:t.next(),[r](){return this}}}var f2=s8;function a8(e){return e[Symbol.asyncIterator]!=null}function c8(e,t){if(a8(e))return async function*(){for await(let a of e)yield t(a)}();let r=f2(e),{value:n,done:i}=r.next();if(i===!0)return function*(){}();let o=t(n);if(typeof o.then=="function")return async function*(){yield await o;for await(let a of r)yield t(a)}();let s=t;return function*(){yield o;for(let a of r)yield s(a)}()}var en=c8;function Ct(){let e={};return e.promise=new Promise((t,r)=>{e.resolve=t,e.reject=r}),e}var P0=globalThis.CustomEvent??Event;async function*hr(e,t={}){let r=t.concurrency??1/0;r<1&&(r=1/0);let n=t.ordered==null?!1:t.ordered,i=new EventTarget,o=[],s=Ct(),a=Ct(),c=!1,u,f=!1;i.addEventListener("task-complete",()=>{a.resolve()}),Promise.resolve().then(async()=>{try{for await(let h of e){if(o.length===r&&(s=Ct(),await s.promise),f)break;let g={done:!1};o.push(g),h().then(y=>{g.done=!0,g.ok=!0,g.value=y,i.dispatchEvent(new P0("task-complete"))},y=>{g.done=!0,g.err=y,i.dispatchEvent(new P0("task-complete"))})}c=!0,i.dispatchEvent(new P0("task-complete"))}catch(h){u=h,i.dispatchEvent(new P0("task-complete"))}});function l(){return n?o[0]?.done:!!o.find(h=>h.done)}function*p(){for(;o.length>0&&o[0].done;){let h=o[0];if(o.shift(),h.ok)yield h.value;else throw f=!0,s.resolve(),h.err;s.resolve()}}function*d(){for(;l();)for(let h=0;h<o.length;h++)if(o[h].done){let g=o[h];if(o.splice(h,1),h--,g.ok)yield g.value;else throw f=!0,s.resolve(),g.err;s.resolve()}}for(;;){if(l()||(a=Ct(),await a.promise),u!=null)throw u;if(n?yield*p():yield*d(),c&&o.length===0)break}}var l2="/ipfs/kad/1.0.0",h2="/dht/record",wi="/dht/provider";var L0=class{buffer;mask;top;btm;next;constructor(t){if(!(t>0)||t-1&t)throw new Error("Max size for a FixedFIFO should be a power of two");this.buffer=new Array(t),this.mask=t-1,this.top=0,this.btm=0,this.next=null}push(t){return this.buffer[this.top]!==void 0?!1:(this.buffer[this.top]=t,this.top=this.top+1&this.mask,!0)}shift(){let t=this.buffer[this.btm];if(t!==void 0)return this.buffer[this.btm]=void 0,this.btm=this.btm+1&this.mask,t}isEmpty(){return this.buffer[this.btm]===void 0}},rn=class{size;hwm;head;tail;constructor(t={}){this.hwm=t.splitLimit??16,this.head=new L0(this.hwm),this.tail=this.head,this.size=0}calculateSize(t){return t?.byteLength!=null?t.byteLength:1}push(t){if(t?.value!=null&&(this.size+=this.calculateSize(t.value)),!this.head.push(t)){let r=this.head;this.head=r.next=new L0(2*this.head.buffer.length),this.head.push(t)}}shift(){let t=this.tail.shift();if(t===void 0&&this.tail.next!=null){let r=this.tail.next;this.tail.next=null,this.tail=r,t=this.tail.shift()}return t?.value!=null&&(this.size-=this.calculateSize(t.value)),t}isEmpty(){return this.head.isEmpty()}};var Ei=class extends Error{type;code;constructor(t,r){super(t??"The operation was aborted"),this.type="aborted",this.code=r??"ABORT_ERR"}};function nn(e={}){return u8(r=>{let n=r.shift();if(n==null)return{done:!0};if(n.error!=null)throw n.error;return{done:n.done===!0,value:n.value}},e)}function u8(e,t){t=t??{};let r=t.onEnd,n=new rn,i,o,s,a=Ct(),c=async()=>{try{return n.isEmpty()?s?{done:!0}:await new Promise((y,m)=>{o=x=>{o=null,n.push(x);try{y(e(n))}catch(v){m(v)}return i}}):e(n)}finally{n.isEmpty()&&queueMicrotask(()=>{a.resolve(),a=Ct()})}},u=y=>o!=null?o(y):(n.push(y),i),f=y=>(n=new rn,o!=null?o({error:y}):(n.push({error:y}),i)),l=y=>{if(s)return i;if(t?.objectMode!==!0&&y?.byteLength==null)throw new Error("objectMode was not true but tried to push non-Uint8Array value");return u({done:!1,value:y})},p=y=>s?i:(s=!0,y!=null?f(y):u({done:!0})),d=()=>(n=new rn,p(),{done:!0}),h=y=>(p(y),{done:!0});if(i={[Symbol.asyncIterator](){return this},next:c,return:d,throw:h,push:l,end:p,get readableLength(){return n.size},onEmpty:async y=>{let m=y?.signal;if(m?.throwIfAborted(),n.isEmpty())return;let x,v;m!=null&&(x=new Promise((T,E)=>{v=()=>{E(new Ei)},m.addEventListener("abort",v)}));try{await Promise.race([a.promise,x])}finally{v!=null&&m!=null&&m?.removeEventListener("abort",v)}}},r==null)return i;let g=i;return i={[Symbol.asyncIterator](){return this},next(){return g.next()},throw(y){return g.throw(y),r!=null&&(r(y),r=void 0),{done:!0}},return(){return g.return(),r!=null&&(r(),r=void 0),{done:!0}},push:l,end(y){return g.end(y),r!=null&&(r(y),r=void 0),i},get readableLength(){return g.readableLength},onEmpty:y=>g.onEmpty(y)},i}function f8(e){return e[Symbol.asyncIterator]!=null}function l8(...e){let t=[];for(let r of e)f8(r)||t.push(r);return t.length===e.length?function*(){for(let r of t)yield*r}():async function*(){let r=nn({objectMode:!0});Promise.resolve().then(async()=>{try{await Promise.all(e.map(async n=>{for await(let i of n)r.push(i)})),r.end()}catch(n){r.end(n)}}),yield*r}()}var N0=l8;function dr(e,...t){if(e==null)throw new Error("Empty pipeline");if(Si(e)){let n=e;e=()=>n.source}else if(p2(e)||d2(e)){let n=e;e=()=>n}let r=[e,...t];if(r.length>1&&Si(r[r.length-1])&&(r[r.length-1]=r[r.length-1].sink),r.length>2)for(let n=1;n<r.length-1;n++)Si(r[n])&&(r[n]=d8(r[n]));return h8(...r)}var h8=(...e)=>{let t;for(;e.length>0;)t=e.shift()(t);return t},d2=e=>e?.[Symbol.asyncIterator]!=null,p2=e=>e?.[Symbol.iterator]!=null,Si=e=>e==null?!1:e.sink!=null&&e.source!=null,d8=e=>t=>{let r=e.sink(t);if(r?.then!=null){let n=nn({objectMode:!0});r.then(()=>{n.end()},s=>{n.end(s)});let i,o=e.source;if(d2(o))i=async function*(){yield*o,n.end()};else if(p2(o))i=function*(){yield*o,n.end()};else throw new Error("Unknown duplex source type - must be Iterable or AsyncIterable");return N0(n,i())}return e.source};function Ge(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 Ii=new Float32Array([-0]),pr=new Uint8Array(Ii.buffer);function g2(e,t,r){Ii[0]=e,t[r]=pr[0],t[r+1]=pr[1],t[r+2]=pr[2],t[r+3]=pr[3]}function y2(e,t){return pr[0]=e[t],pr[1]=e[t+1],pr[2]=e[t+2],pr[3]=e[t+3],Ii[0]}var Ai=new Float64Array([-0]),Ht=new Uint8Array(Ai.buffer);function m2(e,t,r){Ai[0]=e,t[r]=Ht[0],t[r+1]=Ht[1],t[r+2]=Ht[2],t[r+3]=Ht[3],t[r+4]=Ht[4],t[r+5]=Ht[5],t[r+6]=Ht[6],t[r+7]=Ht[7]}function x2(e,t){return Ht[0]=e[t],Ht[1]=e[t+1],Ht[2]=e[t+2],Ht[3]=e[t+3],Ht[4]=e[t+4],Ht[5]=e[t+5],Ht[6]=e[t+6],Ht[7]=e[t+7],Ai[0]}var p8=BigInt(Number.MAX_SAFE_INTEGER),g8=BigInt(Number.MIN_SAFE_INTEGER),re=class e{lo;hi;constructor(t,r){this.lo=t|0,this.hi=r|0}toNumber(t=!1){if(!t&&this.hi>>>31>0){let r=~this.lo+1>>>0,n=~this.hi>>>0;return r===0&&(n=n+1>>>0),-(r+n*4294967296)}return this.lo+this.hi*4294967296}toBigInt(t=!1){if(t)return BigInt(this.lo>>>0)+(BigInt(this.hi>>>0)<<32n);if(this.hi>>>31){let r=~this.lo+1>>>0,n=~this.hi>>>0;return r===0&&(n=n+1>>>0),-(BigInt(r)+(BigInt(n)<<32n))}return BigInt(this.lo>>>0)+(BigInt(this.hi>>>0)<<32n)}toString(t=!1){return this.toBigInt(t).toString()}zzEncode(){let t=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^t)>>>0,this.lo=(this.lo<<1^t)>>>0,this}zzDecode(){let t=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^t)>>>0,this.hi=(this.hi>>>1^t)>>>0,this}length(){let t=this.lo,r=(this.lo>>>28|this.hi<<4)>>>0,n=this.hi>>>24;return n===0?r===0?t<16384?t<128?1:2:t<2097152?3:4:r<16384?r<128?5:6:r<2097152?7:8:n<128?9:10}static fromBigInt(t){if(t===0n)return Pr;if(t<p8&&t>g8)return this.fromNumber(Number(t));let r=t<0n;r&&(t=-t);let n=t>>32n,i=t-(n<<32n);return r&&(n=~n|0n,i=~i|0n,++i>v2&&(i=0n,++n>v2&&(n=0n))),new e(Number(i),Number(n))}static fromNumber(t){if(t===0)return Pr;let r=t<0;r&&(t=-t);let n=t>>>0,i=(t-n)/4294967296>>>0;return r&&(i=~i>>>0,n=~n>>>0,++n>4294967295&&(n=0,++i>4294967295&&(i=0))),new e(n,i)}static from(t){return typeof t=="number"?e.fromNumber(t):typeof t=="bigint"?e.fromBigInt(t):typeof t=="string"?e.fromBigInt(BigInt(t)):t.low!=null||t.high!=null?new e(t.low>>>0,t.high>>>0):Pr}},Pr=new re(0,0);Pr.toBigInt=function(){return 0n};Pr.zzEncode=Pr.zzDecode=function(){return this};Pr.length=function(){return 1};var v2=4294967296n;function b2(e){let t=0,r=0;for(let n=0;n<e.length;++n)r=e.charCodeAt(n),r<128?t+=1:r<2048?t+=2:(r&64512)===55296&&(e.charCodeAt(n+1)&64512)===56320?(++n,t+=4):t+=3;return t}function w2(e,t,r){if(r-t<1)return"";let i,o=[],s=0,a;for(;t<r;)a=e[t++],a<128?o[s++]=a:a>191&&a<224?o[s++]=(a&31)<<6|e[t++]&63:a>239&&a<365?(a=((a&7)<<18|(e[t++]&63)<<12|(e[t++]&63)<<6|e[t++]&63)-65536,o[s++]=55296+(a>>10),o[s++]=56320+(a&1023)):o[s++]=(a&15)<<12|(e[t++]&63)<<6|e[t++]&63,s>8191&&((i??(i=[])).push(String.fromCharCode.apply(String,o)),s=0);return i!=null?(s>0&&i.push(String.fromCharCode.apply(String,o.slice(0,s))),i.join("")):String.fromCharCode.apply(String,o.slice(0,s))}function Bi(e,t,r){let n=r,i,o;for(let s=0;s<e.length;++s)i=e.charCodeAt(s),i<128?t[r++]=i:i<2048?(t[r++]=i>>6|192,t[r++]=i&63|128):(i&64512)===55296&&((o=e.charCodeAt(s+1))&64512)===56320?(i=65536+((i&1023)<<10)+(o&1023),++s,t[r++]=i>>18|240,t[r++]=i>>12&63|128,t[r++]=i>>6&63|128,t[r++]=i&63|128):(t[r++]=i>>12|224,t[r++]=i>>6&63|128,t[r++]=i&63|128);return r-n}function ye(e,t){return RangeError(`index out of range: ${e.pos} + ${t??1} > ${e.len}`)}function D0(e,t){return(e[t-4]|e[t-3]<<8|e[t-2]<<16|e[t-1]<<24)>>>0}var Ti=class{buf;pos;len;_slice=Uint8Array.prototype.subarray;constructor(t){this.buf=t,this.pos=0,this.len=t.length}uint32(){let t=4294967295;if(t=(this.buf[this.pos]&127)>>>0,this.buf[this.pos++]<128||(t=(t|(this.buf[this.pos]&127)<<7)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&127)<<14)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&127)<<21)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&15)<<28)>>>0,this.buf[this.pos++]<128))return t;if((this.pos+=5)>this.len)throw this.pos=this.len,ye(this,10);return t}int32(){return this.uint32()|0}sint32(){let t=this.uint32();return t>>>1^-(t&1)|0}bool(){return this.uint32()!==0}fixed32(){if(this.pos+4>this.len)throw ye(this,4);return D0(this.buf,this.pos+=4)}sfixed32(){if(this.pos+4>this.len)throw ye(this,4);return D0(this.buf,this.pos+=4)|0}float(){if(this.pos+4>this.len)throw ye(this,4);let t=y2(this.buf,this.pos);return this.pos+=4,t}double(){if(this.pos+8>this.len)throw ye(this,4);let t=x2(this.buf,this.pos);return this.pos+=8,t}bytes(){let t=this.uint32(),r=this.pos,n=this.pos+t;if(n>this.len)throw ye(this,t);return this.pos+=t,r===n?new Uint8Array(0):this.buf.subarray(r,n)}string(){let t=this.bytes();return w2(t,0,t.length)}skip(t){if(typeof t=="number"){if(this.pos+t>this.len)throw ye(this,t);this.pos+=t}else do if(this.pos>=this.len)throw ye(this);while(this.buf[this.pos++]&128);return this}skipType(t){switch(t){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;(t=this.uint32()&7)!==4;)this.skipType(t);break;case 5:this.skip(4);break;default:throw Error(`invalid wire type ${t} at offset ${this.pos}`)}return this}readLongVarint(){let t=new re(0,0),r=0;if(this.len-this.pos>4){for(;r<4;++r)if(t.lo=(t.lo|(this.buf[this.pos]&127)<<r*7)>>>0,this.buf[this.pos++]<128)return t;if(t.lo=(t.lo|(this.buf[this.pos]&127)<<28)>>>0,t.hi=(t.hi|(this.buf[this.pos]&127)>>4)>>>0,this.buf[this.pos++]<128)return t;r=0}else{for(;r<3;++r){if(this.pos>=this.len)throw ye(this);if(t.lo=(t.lo|(this.buf[this.pos]&127)<<r*7)>>>0,this.buf[this.pos++]<128)return t}return t.lo=(t.lo|(this.buf[this.pos++]&127)<<r*7)>>>0,t}if(this.len-this.pos>4){for(;r<5;++r)if(t.hi=(t.hi|(this.buf[this.pos]&127)<<r*7+3)>>>0,this.buf[this.pos++]<128)return t}else for(;r<5;++r){if(this.pos>=this.len)throw ye(this);if(t.hi=(t.hi|(this.buf[this.pos]&127)<<r*7+3)>>>0,this.buf[this.pos++]<128)return t}throw Error("invalid varint encoding")}readFixed64(){if(this.pos+8>this.len)throw ye(this,8);let t=D0(this.buf,this.pos+=4),r=D0(this.buf,this.pos+=4);return new re(t,r)}int64(){return this.readLongVarint().toBigInt()}int64Number(){return this.readLongVarint().toNumber()}int64String(){return this.readLongVarint().toString()}uint64(){return this.readLongVarint().toBigInt(!0)}uint64Number(){return this.readLongVarint().toNumber(!0)}uint64String(){return this.readLongVarint().toString(!0)}sint64(){return this.readLongVarint().zzDecode().toBigInt()}sint64Number(){return this.readLongVarint().zzDecode().toNumber()}sint64String(){return this.readLongVarint().zzDecode().toString()}fixed64(){return this.readFixed64().toBigInt()}fixed64Number(){return this.readFixed64().toNumber()}fixed64String(){return this.readFixed64().toString()}sfixed64(){return this.readFixed64().toBigInt()}sfixed64Number(){return this.readFixed64().toNumber()}sfixed64String(){return this.readFixed64().toString()}};function Ci(e){return new Ti(e instanceof Uint8Array?e:e.subarray())}function _e(e,t){let r=Ci(e);return t.decode(r)}function Lr(e){return globalThis.Buffer!=null?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):e}function Ye(e=0){return globalThis.Buffer?.alloc!=null?Lr(globalThis.Buffer.alloc(e)):new Uint8Array(e)}function $t(e=0){return globalThis.Buffer?.allocUnsafe!=null?Lr(globalThis.Buffer.allocUnsafe(e)):new Uint8Array(e)}var Ni={};Tt(Ni,{base10:()=>w8});function y8(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(r[s]!==255)throw new TypeError(o+" is ambiguous");r[s]=i}var a=e.length,c=e.charAt(0),u=Math.log(a)/Math.log(256),f=Math.log(256)/Math.log(a);function l(h){if(h instanceof Uint8Array||(ArrayBuffer.isView(h)?h=new Uint8Array(h.buffer,h.byteOffset,h.byteLength):Array.isArray(h)&&(h=Uint8Array.from(h))),!(h instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(h.length===0)return"";for(var g=0,y=0,m=0,x=h.length;m!==x&&h[m]===0;)m++,g++;for(var v=(x-m)*f+1>>>0,T=new Uint8Array(v);m!==x;){for(var E=h[m],S=0,L=v-1;(E!==0||S<y)&&L!==-1;L--,S++)E+=256*T[L]>>>0,T[L]=E%a>>>0,E=E/a>>>0;if(E!==0)throw new Error("Non-zero carry");y=S,m++}for(var N=v-y;N!==v&&T[N]===0;)N++;for(var H=c.repeat(g);N<v;++N)H+=e.charAt(T[N]);return H}function p(h){if(typeof h!="string")throw new TypeError("Expected String");if(h.length===0)return new Uint8Array;var g=0;if(h[g]!==" "){for(var y=0,m=0;h[g]===c;)y++,g++;for(var x=(h.length-g)*u+1>>>0,v=new Uint8Array(x);h[g];){var T=r[h.charCodeAt(g)];if(T===255)return;for(var E=0,S=x-1;(T!==0||E<m)&&S!==-1;S--,E++)T+=a*v[S]>>>0,v[S]=T%256>>>0,T=T/256>>>0;if(T!==0)throw new Error("Non-zero carry");m=E,g++}if(h[g]!==" "){for(var L=x-m;L!==x&&v[L]===0;)L++;for(var N=new Uint8Array(y+(x-L)),H=y;L!==x;)N[H++]=v[L++];return N}}}function d(h){var g=p(h);if(g)return g;throw new Error(`Non-${t} character`)}return{encode:l,decodeUnsafe:p,decode:d}}var m8=y8,x8=m8,S2=x8;var zh=new Uint8Array(0);var I2=(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},Qe=e=>{if(e instanceof Uint8Array&&e.constructor.name==="Uint8Array")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")};var A2=e=>new TextEncoder().encode(e),B2=e=>new TextDecoder().decode(e);var Ri=class{constructor(t,r,n){this.name=t,this.prefix=r,this.baseEncode=n}encode(t){if(t instanceof Uint8Array)return`${this.prefix}${this.baseEncode(t)}`;throw Error("Unknown type, must be binary type")}},_i=class{constructor(t,r,n){if(this.name=t,this.prefix=r,r.codePointAt(0)===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=r.codePointAt(0),this.baseDecode=n}decode(t){if(typeof t=="string"){if(t.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(t)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(t.slice(this.prefix.length))}else throw Error("Can only multibase decode strings")}or(t){return C2(this,t)}},Pi=class{constructor(t){this.decoders=t}or(t){return C2(this,t)}decode(t){let r=t[0],n=this.decoders[r];if(n)return n.decode(t);throw RangeError(`Unable to decode multibase string ${JSON.stringify(t)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}},C2=(e,t)=>new Pi({...e.decoders||{[e.prefix]:e},...t.decoders||{[t.prefix]:t}}),Li=class{constructor(t,r,n,i){this.name=t,this.prefix=r,this.baseEncode=n,this.baseDecode=i,this.encoder=new Ri(t,r,n),this.decoder=new _i(t,r,i)}encode(t){return this.encoder.encode(t)}decode(t){return this.decoder.decode(t)}},on=({name:e,prefix:t,encode:r,decode:n})=>new Li(e,t,r,n),gr=({prefix:e,name:t,alphabet:r})=>{let{encode:n,decode:i}=S2(r,t);return on({prefix:e,name:t,encode:n,decode:o=>Qe(i(o))})},v8=(e,t,r,n)=>{let i={};for(let f=0;f<t.length;++f)i[t[f]]=f;let o=e.length;for(;e[o-1]==="=";)--o;let s=new Uint8Array(o*r/8|0),a=0,c=0,u=0;for(let f=0;f<o;++f){let l=i[e[f]];if(l===void 0)throw new SyntaxError(`Non-${n} character`);c=c<<r|l,a+=r,a>=8&&(a-=8,s[u++]=255&c>>a)}if(a>=r||255&c<<8-a)throw new SyntaxError("Unexpected end of data");return s},b8=(e,t,r)=>{let n=t[t.length-1]==="=",i=(1<<r)-1,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},wt=({name:e,prefix:t,bitsPerChar:r,alphabet:n})=>on({prefix:t,name:e,encode(i){return b8(i,n,r)},decode(i){return v8(i,n,r,e)}});var w8=gr({prefix:"9",name:"base10",alphabet:"0123456789"});var Di={};Tt(Di,{base16:()=>E8,base16upper:()=>S8});var E8=wt({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),S8=wt({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var ki={};Tt(ki,{base2:()=>I8});var I8=wt({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var Ui={};Tt(Ui,{base256emoji:()=>R8});var R2=Array.from("\u{1F680}\u{1FA90}\u2604\u{1F6F0}\u{1F30C}\u{1F311}\u{1F312}\u{1F313}\u{1F314}\u{1F315}\u{1F316}\u{1F317}\u{1F318}\u{1F30D}\u{1F30F}\u{1F30E}\u{1F409}\u2600\u{1F4BB}\u{1F5A5}\u{1F4BE}\u{1F4BF}\u{1F602}\u2764\u{1F60D}\u{1F923}\u{1F60A}\u{1F64F}\u{1F495}\u{1F62D}\u{1F618}\u{1F44D}\u{1F605}\u{1F44F}\u{1F601}\u{1F525}\u{1F970}\u{1F494}\u{1F496}\u{1F499}\u{1F622}\u{1F914}\u{1F606}\u{1F644}\u{1F4AA}\u{1F609}\u263A\u{1F44C}\u{1F917}\u{1F49C}\u{1F614}\u{1F60E}\u{1F607}\u{1F339}\u{1F926}\u{1F389}\u{1F49E}\u270C\u2728\u{1F937}\u{1F631}\u{1F60C}\u{1F338}\u{1F64C}\u{1F60B}\u{1F497}\u{1F49A}\u{1F60F}\u{1F49B}\u{1F642}\u{1F493}\u{1F929}\u{1F604}\u{1F600}\u{1F5A4}\u{1F603}\u{1F4AF}\u{1F648}\u{1F447}\u{1F3B6}\u{1F612}\u{1F92D}\u2763\u{1F61C}\u{1F48B}\u{1F440}\u{1F62A}\u{1F611}\u{1F4A5}\u{1F64B}\u{1F61E}\u{1F629}\u{1F621}\u{1F92A}\u{1F44A}\u{1F973}\u{1F625}\u{1F924}\u{1F449}\u{1F483}\u{1F633}\u270B\u{1F61A}\u{1F61D}\u{1F634}\u{1F31F}\u{1F62C}\u{1F643}\u{1F340}\u{1F337}\u{1F63B}\u{1F613}\u2B50\u2705\u{1F97A}\u{1F308}\u{1F608}\u{1F918}\u{1F4A6}\u2714\u{1F623}\u{1F3C3}\u{1F490}\u2639\u{1F38A}\u{1F498}\u{1F620}\u261D\u{1F615}\u{1F33A}\u{1F382}\u{1F33B}\u{1F610}\u{1F595}\u{1F49D}\u{1F64A}\u{1F639}\u{1F5E3}\u{1F4AB}\u{1F480}\u{1F451}\u{1F3B5}\u{1F91E}\u{1F61B}\u{1F534}\u{1F624}\u{1F33C}\u{1F62B}\u26BD\u{1F919}\u2615\u{1F3C6}\u{1F92B}\u{1F448}\u{1F62E}\u{1F646}\u{1F37B}\u{1F343}\u{1F436}\u{1F481}\u{1F632}\u{1F33F}\u{1F9E1}\u{1F381}\u26A1\u{1F31E}\u{1F388}\u274C\u270A\u{1F44B}\u{1F630}\u{1F928}\u{1F636}\u{1F91D}\u{1F6B6}\u{1F4B0}\u{1F353}\u{1F4A2}\u{1F91F}\u{1F641}\u{1F6A8}\u{1F4A8}\u{1F92C}\u2708\u{1F380}\u{1F37A}\u{1F913}\u{1F619}\u{1F49F}\u{1F331}\u{1F616}\u{1F476}\u{1F974}\u25B6\u27A1\u2753\u{1F48E}\u{1F4B8}\u2B07\u{1F628}\u{1F31A}\u{1F98B}\u{1F637}\u{1F57A}\u26A0\u{1F645}\u{1F61F}\u{1F635}\u{1F44E}\u{1F932}\u{1F920}\u{1F927}\u{1F4CC}\u{1F535}\u{1F485}\u{1F9D0}\u{1F43E}\u{1F352}\u{1F617}\u{1F911}\u{1F30A}\u{1F92F}\u{1F437}\u260E\u{1F4A7}\u{1F62F}\u{1F486}\u{1F446}\u{1F3A4}\u{1F647}\u{1F351}\u2744\u{1F334}\u{1F4A3}\u{1F438}\u{1F48C}\u{1F4CD}\u{1F940}\u{1F922}\u{1F445}\u{1F4A1}\u{1F4A9}\u{1F450}\u{1F4F8}\u{1F47B}\u{1F910}\u{1F92E}\u{1F3BC}\u{1F975}\u{1F6A9}\u{1F34E}\u{1F34A}\u{1F47C}\u{1F48D}\u{1F4E3}\u{1F942}"),A8=R2.reduce((e,t,r)=>(e[r]=t,e),[]),B8=R2.reduce((e,t,r)=>(e[t.codePointAt(0)]=r,e),[]);function T8(e){return e.reduce((t,r)=>(t+=A8[r],t),"")}function C8(e){let t=[];for(let r of e){let n=B8[r.codePointAt(0)];if(n===void 0)throw new Error(`Non-base256emoji character: ${r}`);t.push(n)}return new Uint8Array(t)}var R8=on({prefix:"\u{1F680}",name:"base256emoji",encode:T8,decode:C8});var Oi={};Tt(Oi,{base32:()=>We,base32hex:()=>N8,base32hexpad:()=>k8,base32hexpadupper:()=>U8,base32hexupper:()=>D8,base32pad:()=>P8,base32padupper:()=>L8,base32upper:()=>_8,base32z:()=>O8});var We=wt({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),_8=wt({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),P8=wt({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),L8=wt({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),N8=wt({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),D8=wt({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),k8=wt({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),U8=wt({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),O8=wt({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var Fi={};Tt(Fi,{base36:()=>F8,base36upper:()=>M8});var F8=gr({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),M8=gr({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var Mi={};Tt(Mi,{base58btc:()=>Pt,base58flickr:()=>K8});var Pt=gr({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),K8=gr({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var Ki={};Tt(Ki,{base64:()=>qn,base64pad:()=>V8,base64url:()=>q8,base64urlpad:()=>z8});var qn=wt({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),V8=wt({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),q8=wt({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),z8=wt({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var Vi={};Tt(Vi,{base8:()=>H8});var H8=wt({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var qi={};Tt(qi,{identity:()=>$8});var $8=on({prefix:"\0",name:"identity",encode:e=>B2(e),decode:e=>A2(e)});var id=new TextEncoder,od=new TextDecoder;var Hi={};Tt(Hi,{identity:()=>yr});var Q8=L2,_2=128,W8=127,Z8=~W8,X8=Math.pow(2,31);function L2(e,t,r){t=t||[],r=r||0;for(var n=r;e>=X8;)t[r++]=e&255|_2,e/=128;for(;e&Z8;)t[r++]=e&255|_2,e>>>=7;return t[r]=e|0,L2.bytes=r-n+1,t}var J8=zi,j8=128,P2=127;function zi(e,n){var r=0,n=n||0,i=0,o=n,s,a=e.length;do{if(o>=a)throw zi.bytes=0,new RangeError("Could not decode varint");s=e[o++],r+=i<28?(s&P2)<<i:(s&P2)*Math.pow(2,i),i+=7}while(s>=j8);return zi.bytes=o-n,r}var t6=Math.pow(2,7),e6=Math.pow(2,14),r6=Math.pow(2,21),n6=Math.pow(2,28),i6=Math.pow(2,35),o6=Math.pow(2,42),s6=Math.pow(2,49),a6=Math.pow(2,56),c6=Math.pow(2,63),u6=function(e){return e<t6?1:e<e6?2:e<r6?3:e<n6?4:e<i6?5:e<o6?6:e<s6?7:e<a6?8:e<c6?9:10},f6={encode:Q8,decode:J8,encodingLength:u6},l6=f6,zn=l6;var Hn=(e,t=0)=>[zn.decode(e,t),zn.decode.bytes],sn=(e,t,r=0)=>(zn.encode(e,t,r),t),an=e=>zn.encodingLength(e);var Pe=(e,t)=>{let 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 cn(e,r,t,o)},Nr=e=>{let t=Qe(e),[r,n]=Hn(t),[i,o]=Hn(t.subarray(n)),s=t.subarray(n+o);if(s.byteLength!==i)throw new Error("Incorrect length");return new cn(r,i,s,t)},N2=(e,t)=>{if(e===t)return!0;{let r=t;return e.code===r.code&&e.size===r.size&&r.bytes instanceof Uint8Array&&I2(e.bytes,r.bytes)}},cn=class{constructor(t,r,n,i){this.code=t,this.size=r,this.digest=n,this.bytes=i}};var D2=0,h6="identity",k2=Qe,d6=e=>Pe(D2,k2(e)),yr={code:D2,name:h6,encode:k2,digest:d6};var Yi={};Tt(Yi,{sha256:()=>xt,sha512:()=>p6});var Gi=({name:e,code:t,encode:r})=>new $i(e,t,r),$i=class{constructor(t,r,n){this.name=t,this.code=r,this.encode=n}digest(t){if(t instanceof Uint8Array){let r=this.encode(t);return r instanceof Uint8Array?Pe(this.code,r):r.then(n=>Pe(this.code,n))}else throw Error("Unknown type, must be binary type")}};var O2=e=>async t=>new Uint8Array(await crypto.subtle.digest(e,t)),xt=Gi({name:"sha2-256",code:18,encode:O2("SHA-256")}),p6=Gi({name:"sha2-512",code:19,encode:O2("SHA-512")});var F2=(e,t)=>{let{bytes:r,version:n}=e;switch(n){case 0:return y6(r,Qi(e),t||Pt.encoder);default:return m6(r,Qi(e),t||We.encoder)}};var M2=new WeakMap,Qi=e=>{let t=M2.get(e);if(t==null){let r=new Map;return M2.set(e,r),r}return t},Xt=class e{constructor(t,r,n,i){this.code=r,this.version=t,this.multihash=n,this.bytes=i,this["/"]=i}get asCID(){return this}get byteOffset(){return this.bytes.byteOffset}get byteLength(){return this.bytes.byteLength}toV0(){switch(this.version){case 0:return this;case 1:{let{code:t,multihash:r}=this;if(t!==$n)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(r.code!==x6)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return e.createV0(r)}default:throw Error(`Can not convert CID version ${this.version} to version 0. This is a bug please report`)}}toV1(){switch(this.version){case 0:{let{code:t,digest:r}=this.multihash,n=Pe(t,r);return e.createV1(this.code,n)}case 1:return this;default:throw Error(`Can not convert CID version ${this.version} to version 1. This is a bug please report`)}}equals(t){return e.equals(this,t)}static equals(t,r){let n=r;return n&&t.code===n.code&&t.version===n.version&&N2(t.multihash,n.multihash)}toString(t){return F2(this,t)}toJSON(){return{"/":F2(this)}}link(){return this}get[Symbol.toStringTag](){return"CID"}[Symbol.for("nodejs.util.inspect.custom")](){return`CID(${this.toString()})`}static asCID(t){if(t==null)return null;let r=t;if(r instanceof e)return r;if(r["/"]!=null&&r["/"]===r.bytes||r.asCID===r){let{version:n,code:i,multihash:o,bytes:s}=r;return new e(n,i,o,s||K2(n,i,o.bytes))}else if(r[v6]===!0){let{version:n,multihash:i,code:o}=r,s=Nr(i);return e.create(n,o,s)}else return null}static create(t,r,n){if(typeof r!="number")throw new Error("String codecs are no longer supported");if(!(n.bytes instanceof Uint8Array))throw new Error("Invalid digest");switch(t){case 0:{if(r!==$n)throw new Error(`Version 0 CID must use dag-pb (code: ${$n}) block encoding`);return new e(t,r,n,n.bytes)}case 1:{let i=K2(t,r,n.bytes);return new e(t,r,n,i)}default:throw new Error("Invalid version")}}static createV0(t){return e.create(0,$n,t)}static createV1(t,r){return e.create(1,t,r)}static decode(t){let[r,n]=e.decodeFirst(t);if(n.length)throw new Error("Incorrect length");return r}static decodeFirst(t){let r=e.inspectBytes(t),n=r.size-r.multihashSize,i=Qe(t.subarray(n,n+r.multihashSize));if(i.byteLength!==r.multihashSize)throw new Error("Incorrect length");let o=i.subarray(r.multihashSize-r.digestSize),s=new cn(r.multihashCode,r.digestSize,o,i);return[r.version===0?e.createV0(s):e.createV1(r.codec,s),t.subarray(r.size)]}static inspectBytes(t){let r=0,n=()=>{let[l,p]=Hn(t.subarray(r));return r+=p,l},i=n(),o=$n;if(i===18?(i=0,r=0):o=n(),i!==0&&i!==1)throw new RangeError(`Invalid CID version ${i}`);let s=r,a=n(),c=n(),u=r+c,f=u-s;return{version:i,codec:o,multihashCode:a,digestSize:c,multihashSize:f,size:u}}static parse(t,r){let[n,i]=g6(t,r),o=e.decode(i);if(o.version===0&&t[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return Qi(o).set(n,t),o}},g6=(e,t)=>{switch(e[0]){case"Q":{let r=t||Pt;return[Pt.prefix,r.decode(`${Pt.prefix}${e}`)]}case Pt.prefix:{let r=t||Pt;return[Pt.prefix,r.decode(e)]}case We.prefix:{let r=t||We;return[We.prefix,r.decode(e)]}default:{if(t==null)throw Error("To parse non base32 or base58btc encoded CID multibase decoder must be provided");return[e[0],t.decode(e)]}}},y6=(e,t,r)=>{let{prefix:n}=r;if(n!==Pt.prefix)throw Error(`Cannot string encode V0 in ${r.name} encoding`);let i=t.get(n);if(i==null){let o=r.encode(e).slice(1);return t.set(n,o),o}else return i},m6=(e,t,r)=>{let{prefix:n}=r,i=t.get(n);if(i==null){let o=r.encode(e);return t.set(n,o),o}else return i},$n=112,x6=18,K2=(e,t,r)=>{let 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},v6=Symbol.for("@ipld/js-cid/CID");var Vt={...qi,...ki,...Vi,...Ni,...Di,...Oi,...Fi,...Mi,...Ki,...Ui},wd={...Yi,...Hi};function q2(e,t,r,n){return{name:e,prefix:t,encoder:{name:e,prefix:t,encode:r},decoder:{decode:n}}}var V2=q2("utf8","u",e=>"u"+new TextDecoder("utf8").decode(e),e=>new TextEncoder().encode(e.substring(1))),Wi=q2("ascii","a",e=>{let t="a";for(let r=0;r<e.length;r++)t+=String.fromCharCode(e[r]);return t},e=>{e=e.substring(1);let t=$t(e.length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t}),b6={utf8:V2,"utf-8":V2,hex:Vt.base16,latin1:Wi,ascii:Wi,binary:Wi,...Vt},U0=b6;function Gn(e,t="utf8"){let r=U0[t];if(r==null)throw new Error(`Unsupported encoding "${t}"`);return(t==="utf8"||t==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?Lr(globalThis.Buffer.from(e,"utf-8")):r.decoder.decode(`${r.prefix}${e}`)}function Zi(e){let t=e??8192,r=t>>>1,n,i=t;return function(s){if(s<1||s>r)return $t(s);i+s>t&&(n=$t(t),i=0);let a=n.subarray(i,i+=s);return i&7&&(i=(i|7)+1),a}}var kr=class{fn;len;next;val;constructor(t,r,n){this.fn=t,this.len=r,this.next=void 0,this.val=n}};function Xi(){}var ji=class{head;tail;len;next;constructor(t){this.head=t.head,this.tail=t.tail,this.len=t.len,this.next=t.states}},w6=Zi();function E6(e){return globalThis.Buffer!=null?$t(e):w6(e)}var Wn=class{len;head;tail;states;constructor(){this.len=0,this.head=new kr(Xi,0,0),this.tail=this.head,this.states=null}_push(t,r,n){return this.tail=this.tail.next=new kr(t,r,n),this.len+=r,this}uint32(t){return this.len+=(this.tail=this.tail.next=new to((t=t>>>0)<128?1:t<16384?2:t<2097152?3:t<268435456?4:5,t)).len,this}int32(t){return t<0?this._push(Yn,10,re.fromNumber(t)):this.uint32(t)}sint32(t){return this.uint32((t<<1^t>>31)>>>0)}uint64(t){let r=re.fromBigInt(t);return this._push(Yn,r.length(),r)}uint64Number(t){let r=re.fromNumber(t);return this._push(Yn,r.length(),r)}uint64String(t){return this.uint64(BigInt(t))}int64(t){return this.uint64(t)}int64Number(t){return this.uint64Number(t)}int64String(t){return this.uint64String(t)}sint64(t){let r=re.fromBigInt(t).zzEncode();return this._push(Yn,r.length(),r)}sint64Number(t){let r=re.fromNumber(t).zzEncode();return this._push(Yn,r.length(),r)}sint64String(t){return this.sint64(BigInt(t))}bool(t){return this._push(Ji,1,t?1:0)}fixed32(t){return this._push(Qn,4,t>>>0)}sfixed32(t){return this.fixed32(t)}fixed64(t){let r=re.fromBigInt(t);return this._push(Qn,4,r.lo)._push(Qn,4,r.hi)}fixed64Number(t){let r=re.fromNumber(t);return this._push(Qn,4,r.lo)._push(Qn,4,r.hi)}fixed64String(t){return this.fixed64(BigInt(t))}sfixed64(t){return this.fixed64(t)}sfixed64Number(t){return this.fixed64Number(t)}sfixed64String(t){return this.fixed64String(t)}float(t){return this._push(g2,4,t)}double(t){return this._push(m2,8,t)}bytes(t){let r=t.length>>>0;return r===0?this._push(Ji,1,0):this.uint32(r)._push(I6,r,t)}string(t){let r=b2(t);return r!==0?this.uint32(r)._push(Bi,r,t):this._push(Ji,1,0)}fork(){return this.states=new ji(this),this.head=this.tail=new kr(Xi,0,0),this.len=0,this}reset(){return this.states!=null?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new kr(Xi,0,0),this.len=0),this}ldelim(){let t=this.head,r=this.tail,n=this.len;return this.reset().uint32(n),n!==0&&(this.tail.next=t.next,this.tail=r,this.len+=n),this}finish(){let t=this.head.next,r=E6(this.len),n=0;for(;t!=null;)t.fn(t.val,r,n),n+=t.len,t=t.next;return r}};function Ji(e,t,r){t[r]=e&255}function S6(e,t,r){for(;e>127;)t[r++]=e&127|128,e>>>=7;t[r]=e}var to=class extends kr{next;constructor(t,r){super(S6,t,r),this.next=void 0}};function Yn(e,t,r){for(;e.hi!==0;)t[r++]=e.lo&127|128,e.lo=(e.lo>>>7|e.hi<<25)>>>0,e.hi>>>=7;for(;e.lo>127;)t[r++]=e.lo&127|128,e.lo=e.lo>>>7;t[r++]=e.lo}function Qn(e,t,r){t[r]=e&255,t[r+1]=e>>>8&255,t[r+2]=e>>>16&255,t[r+3]=e>>>24}function I6(e,t,r){t.set(e,r)}globalThis.Buffer!=null&&(Wn.prototype.bytes=function(e){let t=e.length>>>0;return this.uint32(t),t>0&&this._push(A6,t,e),this},Wn.prototype.string=function(e){let t=globalThis.Buffer.byteLength(e);return this.uint32(t),t>0&&this._push(B6,t,e),this});function A6(e,t,r){t.set(e,r)}function B6(e,t,r){e.length<40?Bi(e,t,r):t.utf8Write!=null?t.utf8Write(e,r):t.set(Gn(e),r)}function eo(){return new Wn}function Le(e,t){let r=eo();return t.encode(e,r,{lengthDelimited:!1}),r.finish()}var un;(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"})(un||(un={}));function O0(e,t,r,n){return{name:e,type:t,encode:r,decode:n}}function fn(e){function t(i){if(e[i.toString()]==null)throw new Error("Invalid enum value");return e[i]}let r=function(o,s){let a=t(o);s.int32(a)},n=function(o){let s=o.int32();return t(s)};return O0("enum",un.VARINT,r,n)}function Ne(e,t){return O0("message",un.LENGTH_DELIMITED,e,t)}var Zn=class extends Error{code;constructor(t,r,n){super(t,n),this.code=r}};function De(e){return globalThis.Buffer!=null?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):e}function z2(e=0){return globalThis.Buffer?.alloc!=null?De(globalThis.Buffer.alloc(e)):new Uint8Array(e)}function ln(e=0){return globalThis.Buffer?.allocUnsafe!=null?De(globalThis.Buffer.allocUnsafe(e)):new Uint8Array(e)}var H2;(function(e){let t;e.codec=()=>(t==null&&(t=Ne((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.key!=null&&(n.uint32(10),n.bytes(r.key)),r.value!=null&&(n.uint32(18),n.bytes(r.value)),r.author!=null&&(n.uint32(26),n.bytes(r.author)),r.signature!=null&&(n.uint32(34),n.bytes(r.signature)),r.timeReceived!=null&&(n.uint32(42),n.string(r.timeReceived)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={},o=n==null?r.len:r.pos+n;for(;r.pos<o;){let s=r.uint32();switch(s>>>3){case 1:{i.key=r.bytes();break}case 2:{i.value=r.bytes();break}case 3:{i.author=r.bytes();break}case 4:{i.signature=r.bytes();break}case 5:{i.timeReceived=r.string();break}default:{r.skipType(s&7);break}}}return i})),t),e.encode=r=>Le(r,e.codec()),e.decode=r=>_e(r,e.codec())})(H2||(H2={}));var X;(function(e){e.PUT_VALUE="PUT_VALUE",e.GET_VALUE="GET_VALUE",e.ADD_PROVIDER="ADD_PROVIDER",e.GET_PROVIDERS="GET_PROVIDERS",e.FIND_NODE="FIND_NODE",e.PING="PING"})(X||(X={}));var F0;(function(e){e[e.PUT_VALUE=0]="PUT_VALUE",e[e.GET_VALUE=1]="GET_VALUE",e[e.ADD_PROVIDER=2]="ADD_PROVIDER",e[e.GET_PROVIDERS=3]="GET_PROVIDERS",e[e.FIND_NODE=4]="FIND_NODE",e[e.PING=5]="PING"})(F0||(F0={}));(function(e){e.codec=()=>fn(F0)})(X||(X={}));var dn;(function(e){e.NOT_CONNECTED="NOT_CONNECTED",e.CONNECTED="CONNECTED",e.CAN_CONNECT="CAN_CONNECT",e.CANNOT_CONNECT="CANNOT_CONNECT"})(dn||(dn={}));var ro;(function(e){e[e.NOT_CONNECTED=0]="NOT_CONNECTED",e[e.CONNECTED=1]="CONNECTED",e[e.CAN_CONNECT=2]="CAN_CONNECT",e[e.CANNOT_CONNECT=3]="CANNOT_CONNECT"})(ro||(ro={}));(function(e){e.codec=()=>fn(ro)})(dn||(dn={}));var hn;(function(e){let t;e.codec=()=>(t==null&&(t=Ne((r,n,i={})=>{if(i.lengthDelimited!==!1&&n.fork(),r.id!=null&&r.id.byteLength>0&&(n.uint32(10),n.bytes(r.id)),r.multiaddrs!=null)for(let o of r.multiaddrs)n.uint32(18),n.bytes(o);r.connection!=null&&(n.uint32(24),dn.codec().encode(r.connection,n)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={id:z2(0),multiaddrs:[]},o=n==null?r.len:r.pos+n;for(;r.pos<o;){let s=r.uint32();switch(s>>>3){case 1:{i.id=r.bytes();break}case 2:{i.multiaddrs.push(r.bytes());break}case 3:{i.connection=dn.codec().decode(r);break}default:{r.skipType(s&7);break}}}return i})),t),e.encode=r=>Le(r,e.codec()),e.decode=r=>_e(r,e.codec())})(hn||(hn={}));var ue;(function(e){let t;e.codec=()=>(t==null&&(t=Ne((r,n,i={})=>{if(i.lengthDelimited!==!1&&n.fork(),r.type!=null&&F0[r.type]!==0&&(n.uint32(8),X.codec().encode(r.type,n)),r.clusterLevel!=null&&(n.uint32(80),n.int32(r.clusterLevel)),r.key!=null&&(n.uint32(18),n.bytes(r.key)),r.record!=null&&(n.uint32(26),n.bytes(r.record)),r.closer!=null)for(let o of r.closer)n.uint32(66),hn.codec().encode(o,n);if(r.providers!=null)for(let o of r.providers)n.uint32(74),hn.codec().encode(o,n);i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={type:X.PUT_VALUE,closer:[],providers:[]},o=n==null?r.len:r.pos+n;for(;r.pos<o;){let s=r.uint32();switch(s>>>3){case 1:{i.type=X.codec().decode(r);break}case 10:{i.clusterLevel=r.int32();break}case 2:{i.key=r.bytes();break}case 3:{i.record=r.bytes();break}case 8:{i.closer.push(hn.codec().decode(r,r.uint32()));break}case 9:{i.providers.push(hn.codec().decode(r,r.uint32()));break}default:{r.skipType(s&7);break}}}return i})),t),e.encode=r=>Le(r,e.codec()),e.decode=r=>_e(r,e.codec())})(ue||(ue={}));function no(e,t={}){let r={...e,name:"SEND_QUERY",type:0,messageName:e.type,messageType:X[e.type]};return t.onProgress?.(new Zt("kad-dht:query:send-query",{detail:r})),r}function Xn(e,t={}){let r={...e,name:"PEER_RESPONSE",type:1,messageName:e.messageType,closer:e.closer!=null?e.closer:[],providers:e.providers!=null?e.providers:[]};return t.onProgress?.(new Zt("kad-dht:query:peer-response",{detail:r})),r}function M0(e,t={}){let r={...e,name:"FINAL_PEER",type:2};return t.onProgress?.(new Zt("kad-dht:query:final-peer",{detail:r})),r}function oe(e,t={}){let r={...e,name:"QUERY_ERROR",type:3};return t.onProgress?.(new Zt("kad-dht:query:query-error",{detail:r})),r}function io(e,t={}){let r={...e,name:"PROVIDER",type:4};return t.onProgress?.(new Zt("kad-dht:query:provider",{detail:r})),r}function Jn(e,t={}){let r={...e,name:"VALUE",type:5};return t.onProgress?.(new Zt("kad-dht:query:value",{detail:r})),r}function oo(e,t={}){let r={...e,name:"DIAL_PEER",type:7};return t.onProgress?.(new Zt("kad-dht:query:dial-peer",{detail:r})),r}var jn;(function(e){let t;e.codec=()=>(t==null&&(t=Ne((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.key!=null&&r.key.byteLength>0&&(n.uint32(10),n.bytes(r.key)),r.value!=null&&r.value.byteLength>0&&(n.uint32(18),n.bytes(r.value)),r.timeReceived!=null&&r.timeReceived!==""&&(n.uint32(42),n.string(r.timeReceived)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={key:new Uint8Array(0),value:new Uint8Array(0),timeReceived:""},o=n==null?r.len:r.pos+n;for(;r.pos<o;){let s=r.uint32();switch(s>>>3){case 1:i.key=r.bytes();break;case 2:i.value=r.bytes();break;case 5:i.timeReceived=r.string();break;default:r.skipType(s&7);break}}return i})),t),e.encode=r=>Le(r,e.codec()),e.decode=r=>_e(r,e.codec())})(jn||(jn={}));function $2(e){let t=e.getUTCFullYear(),r=String(e.getUTCMonth()+1).padStart(2,"0"),n=String(e.getUTCDate()).padStart(2,"0"),i=String(e.getUTCHours()).padStart(2,"0"),o=String(e.getUTCMinutes()).padStart(2,"0"),s=String(e.getUTCSeconds()).padStart(2,"0"),a=e.getUTCMilliseconds(),c=String(a*1e3*1e3).padStart(9,"0");return`${t}-${r}-${n}T${i}:${o}:${s}.${c}Z`}function G2(e){let t=new RegExp("(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2})\\.(\\d+)Z"),r=String(e).trim().match(t);if(r==null)throw new Error("Invalid format");let n=parseInt(r[1],10),i=parseInt(r[2],10)-1,o=parseInt(r[3],10),s=parseInt(r[4],10),a=parseInt(r[5],10),c=parseInt(r[6],10),u=parseInt(r[7].slice(0,-6),10);return new Date(Date.UTC(n,i,o,s,a,c,u))}var Lt=class e{key;value;timeReceived;constructor(t,r,n){if(!(t instanceof Uint8Array))throw new Error("key must be a Uint8Array");if(!(r instanceof Uint8Array))throw new Error("value must be a Uint8Array");this.key=t,this.value=r,this.timeReceived=n}serialize(){return jn.encode(this.prepareSerialize())}prepareSerialize(){return{key:this.key,value:this.value,timeReceived:$2(this.timeReceived)}}static deserialize(t){let r=jn.decode(t);return new e(r.key,r.value,new Date(r.timeReceived))}static fromDeserialized(t){let r=G2(t.timeReceived);if(t.key==null)throw new Error("key missing from deserialized object");if(t.value==null)throw new Error("value missing from deserialized object");return new e(t.key,t.value,r)}};function Q2(e,t,r,n){return{name:e,prefix:t,encoder:{name:e,prefix:t,encode:r},decoder:{decode:n}}}var Y2=Q2("utf8","u",e=>"u"+new TextDecoder("utf8").decode(e),e=>new TextEncoder().encode(e.substring(1))),so=Q2("ascii","a",e=>{let t="a";for(let r=0;r<e.length;r++)t+=String.fromCharCode(e[r]);return t},e=>{e=e.substring(1);let t=ln(e.length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t}),C6={utf8:Y2,"utf-8":Y2,hex:Vt.base16,latin1:so,ascii:so,binary:so,...Vt},K0=C6;function Dt(e,t="utf8"){let r=K0[t];if(r==null)throw new Error(`Unsupported encoding "${t}"`);return(t==="utf8"||t==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?globalThis.Buffer.from(e.buffer,e.byteOffset,e.byteLength).toString("utf8"):r.encoder.encode(e).substring(1)}function W2(e,t,r){if(r.length===0){let s="No records given";throw new _(s,"ERR_NO_RECORDS_RECEIVED")}let i=Dt(t).split("/");if(i.length<3){let s="Record key does not have a selector function";throw new _(s,"ERR_NO_SELECTOR_FUNCTION_FOR_RECORD_KEY")}let o=e[i[1].toString()];if(o==null){let s=`No selector function configured for key type "${i[1]}"`;throw new _(s,"ERR_UNRECOGNIZED_KEY_PREFIX")}return r.length===1?0:o(t,r)}function R6(e,t){return 0}var Z2={pk:R6};async function pn(e,t){let r=t.key,i=Dt(r).split("/");if(i.length<3)return;let o=e[i[1].toString()];if(o==null){let s=`No validator available for key type "${i[1]}"`;throw new _(s,"ERR_INVALID_RECORD_KEY_TYPE")}await o(r,t.value)}var _6=async(e,t)=>{if(!(e instanceof Uint8Array))throw new _('"key" must be a Uint8Array',"ERR_INVALID_RECORD_KEY_NOT_BUFFER");if(e.byteLength<5)throw new _("invalid public key record","ERR_INVALID_RECORD_KEY_TOO_SHORT");if(Dt(e.subarray(0,4))!=="/pk/")throw new _("key was not prefixed with /pk/","ERR_INVALID_RECORD_KEY_BAD_PREFIX");let n=e.slice(4),i=await xt.digest(t);if(!Ge(n,i.bytes))throw new _("public key does not match passed in key","ERR_INVALID_RECORD_HASH_MISMATCH")},X2={pk:_6};function ao(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 P6=Symbol.for("nodejs.util.inspect.custom"),J2=Object.values(Vt).map(e=>e.decoder).reduce((e,t)=>e.or(t),Vt.identity.decoder),j2=114,co=36,uo=37,t0=class{type;multihash;privateKey;publicKey;string;constructor(t){this.type=t.type,this.multihash=t.multihash,this.privateKey=t.privateKey,Object.defineProperty(this,"string",{enumerable:!1,writable:!0})}get[Symbol.toStringTag](){return`PeerId(${this.toString()})`}[s2]=!0;toString(){return this.string==null&&(this.string=Pt.encode(this.multihash.bytes).slice(1)),this.string}toCID(){return Xt.createV1(j2,this.multihash)}toBytes(){return this.multihash.bytes}toJSON(){return this.toString()}equals(t){if(t instanceof Uint8Array)return ao(this.multihash.bytes,t);if(typeof t=="string")return Et(t).equals(this);if(t?.multihash?.bytes!=null)return ao(this.multihash.bytes,t.multihash.bytes);throw new Error("not valid Id")}[P6](){return`PeerId(${this.toString()})`}},gn=class extends t0{type="RSA";publicKey;constructor(t){super({...t,type:"RSA"}),this.publicKey=t.publicKey}},yn=class extends t0{type="Ed25519";publicKey;constructor(t){super({...t,type:"Ed25519"}),this.publicKey=t.multihash.digest}},mn=class extends t0{type="secp256k1";publicKey;constructor(t){super({...t,type:"secp256k1"}),this.publicKey=t.multihash.digest}};function Et(e,t){if(t=t??J2,e.charAt(0)==="1"||e.charAt(0)==="Q"){let r=Nr(Pt.decode(`z${e}`));return e.startsWith("12D")?new yn({multihash:r}):e.startsWith("16U")?new mn({multihash:r}):new gn({multihash:r})}return Ze(J2.decode(e))}function Ze(e){try{let t=Nr(e);if(t.code===yr.code){if(t.digest.length===co)return new yn({multihash:t});if(t.digest.length===uo)return new mn({multihash:t})}if(t.code===xt.code)return new gn({multihash:t})}catch{return L6(Xt.decode(e))}throw new Error("Supplied PeerID CID is invalid")}function L6(e){if(e==null||e.multihash==null||e.version==null||e.version===1&&e.code!==j2)throw new Error("Supplied PeerID CID is invalid");let t=e.multihash;if(t.code===xt.code)return new gn({multihash:e.multihash});if(t.code===yr.code){if(t.digest.length===co)return new yn({multihash:e.multihash});if(t.digest.length===uo)return new mn({multihash:e.multihash})}throw new Error("Supplied PeerID CID is invalid")}async function ta(e,t){return e.length===co?new yn({multihash:Pe(yr.code,e),privateKey:t}):e.length===uo?new mn({multihash:Pe(yr.code,e),privateKey:t}):new gn({multihash:await xt.digest(e),publicKey:e,privateKey:t})}function V0(e){return globalThis.Buffer!=null?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):e}function ea(e=0){return globalThis.Buffer?.allocUnsafe!=null?V0(globalThis.Buffer.allocUnsafe(e)):new Uint8Array(e)}function na(e,t,r,n){return{name:e,prefix:t,encoder:{name:e,prefix:t,encode:r},decoder:{decode:n}}}var ra=na("utf8","u",e=>"u"+new TextDecoder("utf8").decode(e),e=>new TextEncoder().encode(e.substring(1))),fo=na("ascii","a",e=>{let t="a";for(let r=0;r<e.length;r++)t+=String.fromCharCode(e[r]);return t},e=>{e=e.substring(1);let t=ea(e.length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t}),N6={utf8:ra,"utf-8":ra,hex:Vt.base16,latin1:fo,ascii:fo,binary:fo,...Vt},q0=N6;function ia(e,t="utf8"){let r=q0[t];if(r==null)throw new Error(`Unsupported encoding "${t}"`);return(t==="utf8"||t==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?V0(globalThis.Buffer.from(e,"utf-8")):r.decoder.decode(`${r.prefix}${e}`)}function oa(e,t="utf8"){let r=q0[t];if(r==null)throw new Error(`Unsupported encoding "${t}"`);return(t==="utf8"||t==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?globalThis.Buffer.from(e.buffer,e.byteOffset,e.byteLength).toString("utf8"):r.encoder.encode(e).substring(1)}var Xe="/",sa=new TextEncoder().encode(Xe),z0=sa[0],xn=class e{_buf;constructor(t,r){if(typeof t=="string")this._buf=ia(t);else if(t instanceof Uint8Array)this._buf=t;else throw new Error("Invalid key, should be String of Uint8Array");if(r==null&&(r=!0),r&&this.clean(),this._buf.byteLength===0||this._buf[0]!==z0)throw new Error("Invalid key")}toString(t="utf8"){return oa(this._buf,t)}uint8Array(){return this._buf}get[Symbol.toStringTag](){return`Key(${this.toString()})`}static withNamespaces(t){return new e(t.join(Xe))}static random(){return new e(Math.random().toString().substring(2))}static asKey(t){return t instanceof Uint8Array||typeof t=="string"?new e(t):typeof t.uint8Array=="function"?new e(t.uint8Array()):null}clean(){if((this._buf==null||this._buf.byteLength===0)&&(this._buf=sa),this._buf[0]!==z0){let t=new Uint8Array(this._buf.byteLength+1);t.fill(z0,0,1),t.set(this._buf,1),this._buf=t}for(;this._buf.byteLength>1&&this._buf[this._buf.byteLength-1]===z0;)this._buf=this._buf.subarray(0,-1)}less(t){let r=this.list(),n=t.list();for(let i=0;i<r.length;i++){if(n.length<i+1)return!1;let o=r[i],s=n[i];if(o<s)return!0;if(o>s)return!1}return r.length<n.length}reverse(){return e.withNamespaces(this.list().slice().reverse())}namespaces(){return this.list()}baseNamespace(){let t=this.namespaces();return t[t.length-1]}list(){return this.toString().split(Xe).slice(1)}type(){return D6(this.baseNamespace())}name(){return k6(this.baseNamespace())}instance(t){return new e(this.toString()+":"+t)}path(){let t=this.parent().toString();return t.endsWith(Xe)||(t+=Xe),t+=this.type(),new e(t)}parent(){let t=this.list();return t.length===1?new e(Xe):new e(t.slice(0,-1).join(Xe))}child(t){return this.toString()===Xe?t:t.toString()===Xe?this:new e(this.toString()+t.toString(),!1)}isAncestorOf(t){return t.toString()===this.toString()?!1:t.toString().startsWith(this.toString())}isDecendantOf(t){return t.toString()===this.toString()?!1:this.toString().startsWith(t.toString())}isTopLevel(){return this.list().length===1}concat(...t){return e.withNamespaces([...this.namespaces(),...U6(t.map(r=>r.namespaces()))])}};function D6(e){let t=e.split(":");return t.length<2?"":t.slice(0,-1).join(":")}function k6(e){let t=e.split(":");return t[t.length-1]}function U6(e){return[].concat(...e)}var ya=bt(aa(),1);var ca="[a-fA-F\\d:]",mr=e=>e&&e.includeBoundaries?`(?:(?<=\\s|^)(?=${ca})|(?<=${ca})(?=\\s|$))`:"",me="(?: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}",Rt="[a-fA-F\\d]{1,4}",H0=`
|
|
15
|
+
`+a+t.substr(s+1),o=i-s-1,s=-1,++i}else(t[i]===" "||t[i]===" "||t[i]===",")&&(s=i);return t}function Tc(e){return e.replace(/^\s+/,"")}});var l3=it((px,f3)=>{var De=ut();Dr();Tt();var a3=f3.exports=De.sha256=De.sha256||{};De.md.sha256=De.md.algorithms.sha256=a3;a3.create=function(){c3||Cc();var e=null,t=De.util.createBuffer(),r=new Array(64),n={algorithm:"sha256",blockLength:64,digestLength:32,messageLength:0,fullMessageLength:null,messageLengthSize:8};return n.start=function(){n.messageLength=0,n.fullMessageLength=n.messageLength64=[];for(var i=n.messageLengthSize/4,o=0;o<i;++o)n.fullMessageLength.push(0);return t=De.util.createBuffer(),e={h0:1779033703,h1:3144134277,h2:1013904242,h3:2773480762,h4:1359893119,h5:2600822924,h6:528734635,h7:1541459225},n},n.start(),n.update=function(i,o){o==="utf8"&&(i=De.util.encodeUtf8(i));var s=i.length;n.messageLength+=s,s=[s/4294967296>>>0,s>>>0];for(var a=n.fullMessageLength.length-1;a>=0;--a)n.fullMessageLength[a]+=s[1],s[1]=s[0]+(n.fullMessageLength[a]/4294967296>>>0),n.fullMessageLength[a]=n.fullMessageLength[a]>>>0,s[0]=s[1]/4294967296>>>0;return t.putBytes(i),s3(e,r,t),(t.read>2048||t.length()===0)&&t.compact(),n},n.digest=function(){var i=De.util.createBuffer();i.putBytes(t.bytes());var o=n.fullMessageLength[n.fullMessageLength.length-1]+n.messageLengthSize,s=o&n.blockLength-1;i.putBytes(Lo.substr(0,n.blockLength-s));for(var a,c,u=n.fullMessageLength[0]*8,f=0;f<n.fullMessageLength.length-1;++f)a=n.fullMessageLength[f+1]*8,c=a/4294967296>>>0,u+=c,i.putInt32(u>>>0),u=a>>>0;i.putInt32(u);var l={h0:e.h0,h1:e.h1,h2:e.h2,h3:e.h3,h4:e.h4,h5:e.h5,h6:e.h6,h7:e.h7};s3(l,r,i);var p=De.util.createBuffer();return p.putInt32(l.h0),p.putInt32(l.h1),p.putInt32(l.h2),p.putInt32(l.h3),p.putInt32(l.h4),p.putInt32(l.h5),p.putInt32(l.h6),p.putInt32(l.h7),p},n};var Lo=null,c3=!1,u3=null;function Cc(){Lo="\x80",Lo+=De.util.fillString("\0",64),u3=[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],c3=!0}function s3(e,t,r){for(var n,i,o,s,a,c,u,f,l,p,d,h,y,g,m,x=r.length();x>=64;){for(u=0;u<16;++u)t[u]=r.getInt32();for(;u<64;++u)n=t[u-2],n=(n>>>17|n<<15)^(n>>>19|n<<13)^n>>>10,i=t[u-15],i=(i>>>7|i<<25)^(i>>>18|i<<14)^i>>>3,t[u]=n+t[u-7]+i+t[u-16]|0;for(f=e.h0,l=e.h1,p=e.h2,d=e.h3,h=e.h4,y=e.h5,g=e.h6,m=e.h7,u=0;u<64;++u)s=(h>>>6|h<<26)^(h>>>11|h<<21)^(h>>>25|h<<7),a=g^h&(y^g),o=(f>>>2|f<<30)^(f>>>13|f<<19)^(f>>>22|f<<10),c=f&l|p&(f^l),n=m+s+a+u3[u]+t[u],i=o+c,m=g,g=y,y=h,h=d+n>>>0,d=p,p=l,l=f,f=n+i>>>0;e.h0=e.h0+f|0,e.h1=e.h1+l|0,e.h2=e.h2+p|0,e.h3=e.h3+d|0,e.h4=e.h4+h|0,e.h5=e.h5+y|0,e.h6=e.h6+g|0,e.h7=e.h7+m|0,x-=64}}});var d3=it((yx,h3)=>{var ke=ut();Tt();var u1=null;ke.util.isNodejs&&!ke.options.usePureJavaScript&&!process.versions["node-webkit"]&&(u1=s1());var Rc=h3.exports=ke.prng=ke.prng||{};Rc.create=function(e){for(var t={plugin:e,key:null,seed:null,time:null,reseeds:0,generated:0,keyBytes:""},r=e.md,n=new Array(32),i=0;i<32;++i)n[i]=r.create();t.pools=n,t.pool=0,t.generate=function(u,f){if(!f)return t.generateSync(u);var l=t.plugin.cipher,p=t.plugin.increment,d=t.plugin.formatKey,h=t.plugin.formatSeed,y=ke.util.createBuffer();t.key=null,g();function g(m){if(m)return f(m);if(y.length()>=u)return f(null,y.getBytes(u));if(t.generated>1048575&&(t.key=null),t.key===null)return ke.util.nextTick(function(){o(g)});var x=l(t.key,t.seed);t.generated+=x.length,y.putBytes(x),t.key=d(l(t.key,p(t.seed))),t.seed=h(l(t.key,t.seed)),ke.util.setImmediate(g)}},t.generateSync=function(u){var f=t.plugin.cipher,l=t.plugin.increment,p=t.plugin.formatKey,d=t.plugin.formatSeed;t.key=null;for(var h=ke.util.createBuffer();h.length()<u;){t.generated>1048575&&(t.key=null),t.key===null&&s();var y=f(t.key,t.seed);t.generated+=y.length,h.putBytes(y),t.key=p(f(t.key,l(t.seed))),t.seed=d(f(t.key,t.seed))}return h.getBytes(u)};function o(u){if(t.pools[0].messageLength>=32)return a(),u();var f=32-t.pools[0].messageLength<<5;t.seedFile(f,function(l,p){if(l)return u(l);t.collect(p),a(),u()})}function s(){if(t.pools[0].messageLength>=32)return a();var u=32-t.pools[0].messageLength<<5;t.collect(t.seedFileSync(u)),a()}function a(){t.reseeds=t.reseeds===4294967295?0:t.reseeds+1;var u=t.plugin.md.create();u.update(t.keyBytes);for(var f=1,l=0;l<32;++l)t.reseeds%f===0&&(u.update(t.pools[l].digest().getBytes()),t.pools[l].start()),f=f<<1;t.keyBytes=u.digest().getBytes(),u.start(),u.update(t.keyBytes);var p=u.digest().getBytes();t.key=t.plugin.formatKey(t.keyBytes),t.seed=t.plugin.formatSeed(p),t.generated=0}function c(u){var f=null,l=ke.util.globalScope,p=l.crypto||l.msCrypto;p&&p.getRandomValues&&(f=function(E){return p.getRandomValues(E)});var d=ke.util.createBuffer();if(f)for(;d.length()<u;){var h=Math.max(1,Math.min(u-d.length(),65536)/4),y=new Uint32Array(Math.floor(h));try{f(y);for(var g=0;g<y.length;++g)d.putInt32(y[g])}catch(E){if(!(typeof QuotaExceededError<"u"&&E instanceof QuotaExceededError))throw E}}if(d.length()<u)for(var m,x,v,T=Math.floor(Math.random()*65536);d.length()<u;){x=16807*(T&65535),m=16807*(T>>16),x+=(m&32767)<<16,x+=m>>15,x=(x&2147483647)+(x>>31),T=x&4294967295;for(var g=0;g<3;++g)v=T>>>(g<<3),v^=Math.floor(Math.random()*256),d.putByte(v&255)}return d.getBytes(u)}return u1?(t.seedFile=function(u,f){u1.randomBytes(u,function(l,p){if(l)return f(l);f(null,p.toString())})},t.seedFileSync=function(u){return u1.randomBytes(u).toString()}):(t.seedFile=function(u,f){try{f(null,c(u))}catch(l){f(l)}},t.seedFileSync=c),t.collect=function(u){for(var f=u.length,l=0;l<f;++l)t.pools[t.pool].update(u.substr(l,1)),t.pool=t.pool===31?0:t.pool+1},t.collectInt=function(u,f){for(var l="",p=0;p<f;p+=8)l+=String.fromCharCode(u>>p&255);t.collect(l)},t.registerWorker=function(u){if(u===self)t.seedFile=function(l,p){function d(h){var y=h.data;y.forge&&y.forge.prng&&(self.removeEventListener("message",d),p(y.forge.prng.err,y.forge.prng.bytes))}self.addEventListener("message",d),self.postMessage({forge:{prng:{needed:l}}})};else{var f=function(l){var p=l.data;p.forge&&p.forge.prng&&t.seedFile(p.forge.prng.needed,function(d,h){u.postMessage({forge:{prng:{err:d,bytes:h}}})})};u.addEventListener("message",f)}},t}});var i0=it((gx,No)=>{var Mt=ut();e1();l3();d3();Tt();(function(){if(Mt.random&&Mt.random.getBytes){No.exports=Mt.random;return}(function(e){var t={},r=new Array(4),n=Mt.util.createBuffer();t.formatKey=function(l){var p=Mt.util.createBuffer(l);return l=new Array(4),l[0]=p.getInt32(),l[1]=p.getInt32(),l[2]=p.getInt32(),l[3]=p.getInt32(),Mt.aes._expandKey(l,!1)},t.formatSeed=function(l){var p=Mt.util.createBuffer(l);return l=new Array(4),l[0]=p.getInt32(),l[1]=p.getInt32(),l[2]=p.getInt32(),l[3]=p.getInt32(),l},t.cipher=function(l,p){return Mt.aes._updateBlock(l,p,r,!1),n.putInt32(r[0]),n.putInt32(r[1]),n.putInt32(r[2]),n.putInt32(r[3]),n.getBytes()},t.increment=function(l){return++l[3],l},t.md=Mt.md.sha256;function i(){var l=Mt.prng.create(t);return l.getBytes=function(p,d){return l.generate(p,d)},l.getBytesSync=function(p){return l.generate(p)},l}var o=i(),s=null,a=Mt.util.globalScope,c=a.crypto||a.msCrypto;if(c&&c.getRandomValues&&(s=function(l){return c.getRandomValues(l)}),Mt.options.usePureJavaScript||!Mt.util.isNodejs&&!s){if(typeof window>"u"||window.document,o.collectInt(+new Date,32),typeof navigator<"u"){var u="";for(var f in navigator)try{typeof navigator[f]=="string"&&(u+=navigator[f])}catch{}o.collect(u),u=null}e&&(e().mousemove(function(l){o.collectInt(l.clientX,16),o.collectInt(l.clientY,16)}),e().keypress(function(l){o.collectInt(l.charCode,8)}))}if(!Mt.random)Mt.random=o;else for(var f in o)Mt.random[f]=o[f];Mt.random.createInstance=i,No.exports=Mt.random})(typeof jQuery<"u"?jQuery:null)})()});var m3=it((mx,g3)=>{var ee=ut();Tt();var Do=[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],p3=[1,2,3,5],_c=function(e,t){return e<<t&65535|(e&65535)>>16-t},Pc=function(e,t){return(e&65535)>>t|e<<16-t&65535};g3.exports=ee.rc2=ee.rc2||{};ee.rc2.expandKey=function(e,t){typeof e=="string"&&(e=ee.util.createBuffer(e)),t=t||128;var r=e,n=e.length(),i=t,o=Math.ceil(i/8),s=255>>(i&7),a;for(a=n;a<128;a++)r.putByte(Do[r.at(a-1)+r.at(a-n)&255]);for(r.setAt(128-o,Do[r.at(128-o)&s]),a=127-o;a>=0;a--)r.setAt(a,Do[r.at(a+1)^r.at(a+o)]);return r};var y3=function(e,t,r){var n=!1,i=null,o=null,s=null,a,c,u,f,l=[];for(e=ee.rc2.expandKey(e,t),u=0;u<64;u++)l.push(e.getInt16Le());r?(a=function(h){for(u=0;u<4;u++)h[u]+=l[f]+(h[(u+3)%4]&h[(u+2)%4])+(~h[(u+3)%4]&h[(u+1)%4]),h[u]=_c(h[u],p3[u]),f++},c=function(h){for(u=0;u<4;u++)h[u]+=l[h[(u+3)%4]&63]}):(a=function(h){for(u=3;u>=0;u--)h[u]=Pc(h[u],p3[u]),h[u]-=l[f]+(h[(u+3)%4]&h[(u+2)%4])+(~h[(u+3)%4]&h[(u+1)%4]),f--},c=function(h){for(u=3;u>=0;u--)h[u]-=l[h[(u+3)%4]&63]});var p=function(h){var y=[];for(u=0;u<4;u++){var g=i.getInt16Le();s!==null&&(r?g^=s.getInt16Le():s.putInt16Le(g)),y.push(g&65535)}f=r?0:63;for(var m=0;m<h.length;m++)for(var x=0;x<h[m][0];x++)h[m][1](y);for(u=0;u<4;u++)s!==null&&(r?s.putInt16Le(y[u]):y[u]^=s.getInt16Le()),o.putInt16Le(y[u])},d=null;return d={start:function(h,y){h&&typeof h=="string"&&(h=ee.util.createBuffer(h)),n=!1,i=ee.util.createBuffer(),o=y||new ee.util.createBuffer,s=h,d.output=o},update:function(h){for(n||i.putBuffer(h);i.length()>=8;)p([[5,a],[1,c],[6,a],[1,c],[5,a]])},finish:function(h){var y=!0;if(r)if(h)y=h(8,i,!r);else{var g=i.length()===8?8:8-i.length();i.fillWithByte(g,g)}if(y&&(n=!0,d.update()),!r&&(y=i.length()===0,y))if(h)y=h(8,o,!r);else{var m=o.length(),x=o.at(m-1);x>m?y=!1:o.truncate(x)}return y}},d};ee.rc2.startEncrypting=function(e,t,r){var n=ee.rc2.createEncryptionCipher(e,128);return n.start(t,r),n};ee.rc2.createEncryptionCipher=function(e,t){return y3(e,t,!0)};ee.rc2.startDecrypting=function(e,t,r){var n=ee.rc2.createDecryptionCipher(e,128);return n.start(t,r),n};ee.rc2.createDecryptionCipher=function(e,t){return y3(e,t,!1)}});var h1=it((xx,A3)=>{var ko=ut();A3.exports=ko.jsbn=ko.jsbn||{};var Ze,Lc=0xdeadbeefcafe,x3=(Lc&16777215)==15715070;function B(e,t,r){this.data=[],e!=null&&(typeof e=="number"?this.fromNumber(e,t,r):t==null&&typeof e!="string"?this.fromString(e,256):this.fromString(e,t))}ko.jsbn.BigInteger=B;function rt(){return new B(null)}function Nc(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++]=s&67108863}return i}function Dc(e,t,r,n,i,o){for(var s=t&32767,a=t>>15;--o>=0;){var c=this.data[e]&32767,u=this.data[e++]>>15,f=a*c+u*s;c=s*c+((f&32767)<<15)+r.data[n]+(i&1073741823),i=(c>>>30)+(f>>>15)+a*u+(i>>>30),r.data[n++]=c&1073741823}return i}function v3(e,t,r,n,i,o){for(var s=t&16383,a=t>>14;--o>=0;){var c=this.data[e]&16383,u=this.data[e++]>>14,f=a*c+u*s;c=s*c+((f&16383)<<14)+r.data[n]+i,i=(c>>28)+(f>>14)+a*u,r.data[n++]=c&268435455}return i}typeof navigator>"u"?(B.prototype.am=v3,Ze=28):x3&&navigator.appName=="Microsoft Internet Explorer"?(B.prototype.am=Dc,Ze=30):x3&&navigator.appName!="Netscape"?(B.prototype.am=Nc,Ze=26):(B.prototype.am=v3,Ze=28);B.prototype.DB=Ze;B.prototype.DM=(1<<Ze)-1;B.prototype.DV=1<<Ze;var Oo=52;B.prototype.FV=Math.pow(2,Oo);B.prototype.F1=Oo-Ze;B.prototype.F2=2*Ze-Oo;var kc="0123456789abcdefghijklmnopqrstuvwxyz",f1=new Array,wn,fe;wn=48;for(fe=0;fe<=9;++fe)f1[wn++]=fe;wn=97;for(fe=10;fe<36;++fe)f1[wn++]=fe;wn=65;for(fe=10;fe<36;++fe)f1[wn++]=fe;function b3(e){return kc.charAt(e)}function w3(e,t){var r=f1[e.charCodeAt(t)];return r??-1}function Oc(e){for(var t=this.t-1;t>=0;--t)e.data[t]=this.data[t];e.t=this.t,e.s=this.s}function Uc(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}function gr(e){var t=rt();return t.fromInt(e),t}function Fc(e,t){var r;if(t==16)r=4;else if(t==8)r=3;else if(t==256)r=8;else if(t==2)r=1;else if(t==32)r=5;else if(t==4)r=2;else{this.fromRadix(e,t);return}this.t=0,this.s=0;for(var n=e.length,i=!1,o=0;--n>=0;){var s=r==8?e[n]&255:w3(e,n);if(s<0){e.charAt(n)=="-"&&(i=!0);continue}i=!1,o==0?this.data[this.t++]=s:o+r>this.DB?(this.data[this.t-1]|=(s&(1<<this.DB-o)-1)<<o,this.data[this.t++]=s>>this.DB-o):this.data[this.t-1]|=s<<o,o+=r,o>=this.DB&&(o-=this.DB)}r==8&&e[0]&128&&(this.s=-1,o>0&&(this.data[this.t-1]|=(1<<this.DB-o)-1<<o)),this.clamp(),i&&B.ZERO.subTo(this,this)}function Mc(){for(var e=this.s&this.DM;this.t>0&&this.data[this.t-1]==e;)--this.t}function Kc(e){if(this.s<0)return"-"+this.negate().toString(e);var t;if(e==16)t=4;else if(e==8)t=3;else if(e==2)t=1;else if(e==32)t=5;else if(e==4)t=2;else return this.toRadix(e);var r=(1<<t)-1,n,i=!1,o="",s=this.t,a=this.DB-s*this.DB%t;if(s-- >0)for(a<this.DB&&(n=this.data[s]>>a)>0&&(i=!0,o=b3(n));s>=0;)a<t?(n=(this.data[s]&(1<<a)-1)<<t-a,n|=this.data[--s]>>(a+=this.DB-t)):(n=this.data[s]>>(a-=t)&r,a<=0&&(a+=this.DB,--s)),n>0&&(i=!0),i&&(o+=b3(n));return i?o:"0"}function Vc(){var e=rt();return B.ZERO.subTo(this,e),e}function qc(){return this.s<0?this.negate():this}function zc(e){var t=this.s-e.s;if(t!=0)return t;var r=this.t;if(t=r-e.t,t!=0)return this.s<0?-t:t;for(;--r>=0;)if((t=this.data[r]-e.data[r])!=0)return t;return 0}function l1(e){var t=1,r;return(r=e>>>16)!=0&&(e=r,t+=16),(r=e>>8)!=0&&(e=r,t+=8),(r=e>>4)!=0&&(e=r,t+=4),(r=e>>2)!=0&&(e=r,t+=2),(r=e>>1)!=0&&(e=r,t+=1),t}function Hc(){return this.t<=0?0:this.DB*(this.t-1)+l1(this.data[this.t-1]^this.s&this.DM)}function $c(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}function Gc(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}function Yc(e,t){var r=e%this.DB,n=this.DB-r,i=(1<<n)-1,o=Math.floor(e/this.DB),s=this.s<<r&this.DM,a;for(a=this.t-1;a>=0;--a)t.data[a+o+1]=this.data[a]>>n|s,s=(this.data[a]&i)<<r;for(a=o-1;a>=0;--a)t.data[a]=0;t.data[o]=s,t.t=this.t+o+1,t.s=this.s,t.clamp()}function Qc(e,t){t.s=this.s;var r=Math.floor(e/this.DB);if(r>=this.t){t.t=0;return}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()}function Wc(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()}function Zc(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&&B.ZERO.subTo(t,t)}function Xc(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()}function Jc(e,t,r){var n=e.abs();if(!(n.t<=0)){var i=this.abs();if(i.t<n.t){t?.fromInt(0),r!=null&&this.copyTo(r);return}r==null&&(r=rt());var o=rt(),s=this.s,a=e.s,c=this.DB-l1(n.data[n.t-1]);c>0?(n.lShiftTo(c,o),i.lShiftTo(c,r)):(n.copyTo(o),i.copyTo(r));var u=o.t,f=o.data[u-1];if(f!=0){var l=f*(1<<this.F1)+(u>1?o.data[u-2]>>this.F2:0),p=this.FV/l,d=(1<<this.F1)/l,h=1<<this.F2,y=r.t,g=y-u,m=t??rt();for(o.dlShiftTo(g,m),r.compareTo(m)>=0&&(r.data[r.t++]=1,r.subTo(m,r)),B.ONE.dlShiftTo(u,m),m.subTo(o,o);o.t<u;)o.data[o.t++]=0;for(;--g>=0;){var x=r.data[--y]==f?this.DM:Math.floor(r.data[y]*p+(r.data[y-1]+h)*d);if((r.data[y]+=o.am(0,x,r,g,0,u))<x)for(o.dlShiftTo(g,m),r.subTo(m,r);r.data[y]<--x;)r.subTo(m,r)}t!=null&&(r.drShiftTo(u,t),s!=a&&B.ZERO.subTo(t,t)),r.t=u,r.clamp(),c>0&&r.rShiftTo(c,r),s<0&&B.ZERO.subTo(r,r)}}}function jc(e){var t=rt();return this.abs().divRemTo(e,null,t),this.s<0&&t.compareTo(B.ZERO)>0&&e.subTo(t,t),t}function kr(e){this.m=e}function tu(e){return e.s<0||e.compareTo(this.m)>=0?e.mod(this.m):e}function eu(e){return e}function ru(e){e.divRemTo(this.m,null,e)}function nu(e,t,r){e.multiplyTo(t,r),this.reduce(r)}function iu(e,t){e.squareTo(t),this.reduce(t)}kr.prototype.convert=tu;kr.prototype.revert=eu;kr.prototype.reduce=ru;kr.prototype.mulTo=nu;kr.prototype.sqrTo=iu;function ou(){if(this.t<1)return 0;var e=this.data[0];if(!(e&1))return 0;var t=e&3;return t=t*(2-(e&15)*t)&15,t=t*(2-(e&255)*t)&255,t=t*(2-((e&65535)*t&65535))&65535,t=t*(2-e*t%this.DV)%this.DV,t>0?this.DV-t:-t}function Or(e){this.m=e,this.mp=e.invDigit(),this.mpl=this.mp&32767,this.mph=this.mp>>15,this.um=(1<<e.DB-15)-1,this.mt2=2*e.t}function su(e){var t=rt();return e.abs().dlShiftTo(this.m.t,t),t.divRemTo(this.m,null,t),e.s<0&&t.compareTo(B.ZERO)>0&&this.m.subTo(t,t),t}function au(e){var t=rt();return e.copyTo(t),this.reduce(t),t}function cu(e){for(;e.t<=this.mt2;)e.data[e.t++]=0;for(var t=0;t<this.m.t;++t){var r=e.data[t]&32767,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)}function uu(e,t){e.squareTo(t),this.reduce(t)}function fu(e,t,r){e.multiplyTo(t,r),this.reduce(r)}Or.prototype.convert=su;Or.prototype.revert=au;Or.prototype.reduce=cu;Or.prototype.mulTo=fu;Or.prototype.sqrTo=uu;function lu(){return(this.t>0?this.data[0]&1:this.s)==0}function hu(e,t){if(e>4294967295||e<1)return B.ONE;var r=rt(),n=rt(),i=t.convert(this),o=l1(e)-1;for(i.copyTo(r);--o>=0;)if(t.sqrTo(r,n),(e&1<<o)>0)t.mulTo(n,i,r);else{var s=r;r=n,n=s}return t.revert(r)}function du(e,t){var r;return e<256||t.isEven()?r=new kr(t):r=new Or(t),this.exp(e,r)}B.prototype.copyTo=Oc;B.prototype.fromInt=Uc;B.prototype.fromString=Fc;B.prototype.clamp=Mc;B.prototype.dlShiftTo=$c;B.prototype.drShiftTo=Gc;B.prototype.lShiftTo=Yc;B.prototype.rShiftTo=Qc;B.prototype.subTo=Wc;B.prototype.multiplyTo=Zc;B.prototype.squareTo=Xc;B.prototype.divRemTo=Jc;B.prototype.invDigit=ou;B.prototype.isEven=lu;B.prototype.exp=hu;B.prototype.toString=Kc;B.prototype.negate=Vc;B.prototype.abs=qc;B.prototype.compareTo=zc;B.prototype.bitLength=Hc;B.prototype.mod=jc;B.prototype.modPowInt=du;B.ZERO=gr(0);B.ONE=gr(1);function pu(){var e=rt();return this.copyTo(e),e}function yu(){if(this.s<0){if(this.t==1)return this.data[0]-this.DV;if(this.t==0)return-1}else{if(this.t==1)return this.data[0];if(this.t==0)return 0}return(this.data[1]&(1<<32-this.DB)-1)<<this.DB|this.data[0]}function gu(){return this.t==0?this.s:this.data[0]<<24>>24}function mu(){return this.t==0?this.s:this.data[0]<<16>>16}function xu(e){return Math.floor(Math.LN2*this.DB/Math.log(e))}function vu(){return this.s<0?-1:this.t<=0||this.t==1&&this.data[0]<=0?0:1}function bu(e){if(e==null&&(e=10),this.signum()==0||e<2||e>36)return"0";var t=this.chunkSize(e),r=Math.pow(e,t),n=gr(r),i=rt(),o=rt(),s="";for(this.divRemTo(n,i,o);i.signum()>0;)s=(r+o.intValue()).toString(e).substr(1)+s,i.divRemTo(n,i,o);return o.intValue().toString(e)+s}function wu(e,t){this.fromInt(0),t==null&&(t=10);for(var r=this.chunkSize(t),n=Math.pow(t,r),i=!1,o=0,s=0,a=0;a<e.length;++a){var c=w3(e,a);if(c<0){e.charAt(a)=="-"&&this.signum()==0&&(i=!0);continue}s=t*s+c,++o>=r&&(this.dMultiply(n),this.dAddOffset(s,0),o=0,s=0)}o>0&&(this.dMultiply(Math.pow(t,o)),this.dAddOffset(s,0)),i&&B.ZERO.subTo(this,this)}function Eu(e,t,r){if(typeof t=="number")if(e<2)this.fromInt(1);else for(this.fromNumber(e,r),this.testBit(e-1)||this.bitwiseTo(B.ONE.shiftLeft(e-1),Uo,this),this.isEven()&&this.dAddOffset(1,0);!this.isProbablePrime(t);)this.dAddOffset(2,0),this.bitLength()>e&&this.subTo(B.ONE.shiftLeft(e-1),this);else{var n=new Array,i=e&7;n.length=(e>>3)+1,t.nextBytes(n),i>0?n[0]&=(1<<i)-1:n[0]=0,this.fromString(n,256)}}function Su(){var e=this.t,t=new Array;t[0]=this.s;var r=this.DB-e*this.DB%8,n,i=0;if(e-- >0)for(r<this.DB&&(n=this.data[e]>>r)!=(this.s&this.DM)>>r&&(t[i++]=n|this.s<<this.DB-r);e>=0;)r<8?(n=(this.data[e]&(1<<r)-1)<<8-r,n|=this.data[--e]>>(r+=this.DB-8)):(n=this.data[e]>>(r-=8)&255,r<=0&&(r+=this.DB,--e)),n&128&&(n|=-256),i==0&&(this.s&128)!=(n&128)&&++i,(i>0||n!=this.s)&&(t[i++]=n);return t}function Iu(e){return this.compareTo(e)==0}function Au(e){return this.compareTo(e)<0?this:e}function Bu(e){return this.compareTo(e)>0?this:e}function Tu(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()}function Cu(e,t){return e&t}function Ru(e){var t=rt();return this.bitwiseTo(e,Cu,t),t}function Uo(e,t){return e|t}function _u(e){var t=rt();return this.bitwiseTo(e,Uo,t),t}function E3(e,t){return e^t}function Pu(e){var t=rt();return this.bitwiseTo(e,E3,t),t}function S3(e,t){return e&~t}function Lu(e){var t=rt();return this.bitwiseTo(e,S3,t),t}function Nu(){for(var e=rt(),t=0;t<this.t;++t)e.data[t]=this.DM&~this.data[t];return e.t=this.t,e.s=~this.s,e}function Du(e){var t=rt();return e<0?this.rShiftTo(-e,t):this.lShiftTo(e,t),t}function ku(e){var t=rt();return e<0?this.lShiftTo(-e,t):this.rShiftTo(e,t),t}function Ou(e){if(e==0)return-1;var t=0;return e&65535||(e>>=16,t+=16),e&255||(e>>=8,t+=8),e&15||(e>>=4,t+=4),e&3||(e>>=2,t+=2),e&1||++t,t}function Uu(){for(var e=0;e<this.t;++e)if(this.data[e]!=0)return e*this.DB+Ou(this.data[e]);return this.s<0?this.t*this.DB:-1}function Fu(e){for(var t=0;e!=0;)e&=e-1,++t;return t}function Mu(){for(var e=0,t=this.s&this.DM,r=0;r<this.t;++r)e+=Fu(this.data[r]^t);return e}function Ku(e){var t=Math.floor(e/this.DB);return t>=this.t?this.s!=0:(this.data[t]&1<<e%this.DB)!=0}function Vu(e,t){var r=B.ONE.shiftLeft(e);return this.bitwiseTo(r,t,r),r}function qu(e){return this.changeBit(e,Uo)}function zu(e){return this.changeBit(e,S3)}function Hu(e){return this.changeBit(e,E3)}function $u(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()}function Gu(e){var t=rt();return this.addTo(e,t),t}function Yu(e){var t=rt();return this.subTo(e,t),t}function Qu(e){var t=rt();return this.multiplyTo(e,t),t}function Wu(e){var t=rt();return this.divRemTo(e,t,null),t}function Zu(e){var t=rt();return this.divRemTo(e,null,t),t}function Xu(e){var t=rt(),r=rt();return this.divRemTo(e,t,r),new Array(t,r)}function Ju(e){this.data[this.t]=this.am(0,e-1,this,0,0,this.t),++this.t,this.clamp()}function ju(e,t){if(e!=0){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]}}function o0(){}function I3(e){return e}function tf(e,t,r){e.multiplyTo(t,r)}function ef(e,t){e.squareTo(t)}o0.prototype.convert=I3;o0.prototype.revert=I3;o0.prototype.mulTo=tf;o0.prototype.sqrTo=ef;function rf(e){return this.exp(e,new o0)}function nf(e,t,r){var n=Math.min(this.t+e.t,t);for(r.s=0,r.t=n;n>0;)r.data[--n]=0;var i;for(i=r.t-this.t;n<i;++n)r.data[n+this.t]=this.am(0,e.data[n],r,n,0,this.t);for(i=Math.min(e.t,t);n<i;++n)this.am(0,e.data[n],r,n,0,t-n);r.clamp()}function of(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)}function En(e){this.r2=rt(),this.q3=rt(),B.ONE.dlShiftTo(2*e.t,this.r2),this.mu=this.r2.divide(e),this.m=e}function sf(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=rt();return e.copyTo(t),this.reduce(t),t}function af(e){return e}function cf(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)}function uf(e,t){e.squareTo(t),this.reduce(t)}function ff(e,t,r){e.multiplyTo(t,r),this.reduce(r)}En.prototype.convert=sf;En.prototype.revert=af;En.prototype.reduce=cf;En.prototype.mulTo=ff;En.prototype.sqrTo=uf;function lf(e,t){var r=e.bitLength(),n,i=gr(1),o;if(r<=0)return i;r<18?n=1:r<48?n=3:r<144?n=4:r<768?n=5:n=6,r<8?o=new kr(t):t.isEven()?o=new En(t):o=new Or(t);var s=new Array,a=3,c=n-1,u=(1<<n)-1;if(s[1]=o.convert(this),n>1){var f=rt();for(o.sqrTo(s[1],f);a<=u;)s[a]=rt(),o.mulTo(f,s[a-2],s[a]),a+=2}var l=e.t-1,p,d=!0,h=rt(),y;for(r=l1(e.data[l])-1;l>=0;){for(r>=c?p=e.data[l]>>r-c&u:(p=(e.data[l]&(1<<r+1)-1)<<c-r,l>0&&(p|=e.data[l-1]>>this.DB+r-c)),a=n;!(p&1);)p>>=1,--a;if((r-=a)<0&&(r+=this.DB,--l),d)s[p].copyTo(i),d=!1;else{for(;a>1;)o.sqrTo(i,h),o.sqrTo(h,i),a-=2;a>0?o.sqrTo(i,h):(y=i,i=h,h=y),o.mulTo(h,s[p],i)}for(;l>=0&&!(e.data[l]&1<<r);)o.sqrTo(i,h),y=i,i=h,h=y,--r<0&&(r=this.DB-1,--l)}return o.revert(i)}function hf(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}function df(e){if(e<=0)return 0;var t=this.DV%e,r=this.s<0?e-1:0;if(this.t>0)if(t==0)r=this.data[0]%e;else for(var n=this.t-1;n>=0;--n)r=(t*r+this.data[n])%e;return r}function pf(e){var t=e.isEven();if(this.isEven()&&t||e.signum()==0)return B.ZERO;for(var r=e.clone(),n=this.clone(),i=gr(1),o=gr(0),s=gr(0),a=gr(1);r.signum()!=0;){for(;r.isEven();)r.rShiftTo(1,r),t?((!i.isEven()||!o.isEven())&&(i.addTo(this,i),o.subTo(e,o)),i.rShiftTo(1,i)):o.isEven()||o.subTo(e,o),o.rShiftTo(1,o);for(;n.isEven();)n.rShiftTo(1,n),t?((!s.isEven()||!a.isEven())&&(s.addTo(this,s),a.subTo(e,a)),s.rShiftTo(1,s)):a.isEven()||a.subTo(e,a),a.rShiftTo(1,a);r.compareTo(n)>=0?(r.subTo(n,r),t&&i.subTo(s,i),o.subTo(a,o)):(n.subTo(r,n),t&&s.subTo(i,s),a.subTo(o,a))}if(n.compareTo(B.ONE)!=0)return B.ZERO;if(a.compareTo(e)>=0)return a.subtract(e);if(a.signum()<0)a.addTo(e,a);else return a;return a.signum()<0?a.add(e):a}var ve=[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],yf=(1<<26)/ve[ve.length-1];function gf(e){var t,r=this.abs();if(r.t==1&&r.data[0]<=ve[ve.length-1]){for(t=0;t<ve.length;++t)if(r.data[0]==ve[t])return!0;return!1}if(r.isEven())return!1;for(t=1;t<ve.length;){for(var n=ve[t],i=t+1;i<ve.length&&n<yf;)n*=ve[i++];for(n=r.modInt(n);t<i;)if(n%ve[t++]==0)return!1}return r.millerRabin(e)}function mf(e){var t=this.subtract(B.ONE),r=t.getLowestSetBit();if(r<=0)return!1;for(var n=t.shiftRight(r),i=xf(),o,s=0;s<e;++s){do o=new B(this.bitLength(),i);while(o.compareTo(B.ONE)<=0||o.compareTo(t)>=0);var a=o.modPow(n,this);if(a.compareTo(B.ONE)!=0&&a.compareTo(t)!=0){for(var c=1;c++<r&&a.compareTo(t)!=0;)if(a=a.modPowInt(2,this),a.compareTo(B.ONE)==0)return!1;if(a.compareTo(t)!=0)return!1}}return!0}function xf(){return{nextBytes:function(e){for(var t=0;t<e.length;++t)e[t]=Math.floor(Math.random()*256)}}}B.prototype.chunkSize=xu;B.prototype.toRadix=bu;B.prototype.fromRadix=wu;B.prototype.fromNumber=Eu;B.prototype.bitwiseTo=Tu;B.prototype.changeBit=Vu;B.prototype.addTo=$u;B.prototype.dMultiply=Ju;B.prototype.dAddOffset=ju;B.prototype.multiplyLowerTo=nf;B.prototype.multiplyUpperTo=of;B.prototype.modInt=df;B.prototype.millerRabin=mf;B.prototype.clone=pu;B.prototype.intValue=yu;B.prototype.byteValue=gu;B.prototype.shortValue=mu;B.prototype.signum=vu;B.prototype.toByteArray=Su;B.prototype.equals=Iu;B.prototype.min=Au;B.prototype.max=Bu;B.prototype.and=Ru;B.prototype.or=_u;B.prototype.xor=Pu;B.prototype.andNot=Lu;B.prototype.not=Nu;B.prototype.shiftLeft=Du;B.prototype.shiftRight=ku;B.prototype.getLowestSetBit=Uu;B.prototype.bitCount=Mu;B.prototype.testBit=Ku;B.prototype.setBit=qu;B.prototype.clearBit=zu;B.prototype.flipBit=Hu;B.prototype.add=Gu;B.prototype.subtract=Yu;B.prototype.multiply=Qu;B.prototype.divide=Wu;B.prototype.remainder=Zu;B.prototype.divideAndRemainder=Xu;B.prototype.modPow=lf;B.prototype.modInverse=pf;B.prototype.pow=rf;B.prototype.gcd=hf;B.prototype.isProbablePrime=gf});var _3=it((vx,R3)=>{var Oe=ut();Dr();Tt();var T3=R3.exports=Oe.sha1=Oe.sha1||{};Oe.md.sha1=Oe.md.algorithms.sha1=T3;T3.create=function(){C3||vf();var e=null,t=Oe.util.createBuffer(),r=new Array(80),n={algorithm:"sha1",blockLength:64,digestLength:20,messageLength:0,fullMessageLength:null,messageLengthSize:8};return n.start=function(){n.messageLength=0,n.fullMessageLength=n.messageLength64=[];for(var i=n.messageLengthSize/4,o=0;o<i;++o)n.fullMessageLength.push(0);return t=Oe.util.createBuffer(),e={h0:1732584193,h1:4023233417,h2:2562383102,h3:271733878,h4:3285377520},n},n.start(),n.update=function(i,o){o==="utf8"&&(i=Oe.util.encodeUtf8(i));var s=i.length;n.messageLength+=s,s=[s/4294967296>>>0,s>>>0];for(var a=n.fullMessageLength.length-1;a>=0;--a)n.fullMessageLength[a]+=s[1],s[1]=s[0]+(n.fullMessageLength[a]/4294967296>>>0),n.fullMessageLength[a]=n.fullMessageLength[a]>>>0,s[0]=s[1]/4294967296>>>0;return t.putBytes(i),B3(e,r,t),(t.read>2048||t.length()===0)&&t.compact(),n},n.digest=function(){var i=Oe.util.createBuffer();i.putBytes(t.bytes());var o=n.fullMessageLength[n.fullMessageLength.length-1]+n.messageLengthSize,s=o&n.blockLength-1;i.putBytes(Fo.substr(0,n.blockLength-s));for(var a,c,u=n.fullMessageLength[0]*8,f=0;f<n.fullMessageLength.length-1;++f)a=n.fullMessageLength[f+1]*8,c=a/4294967296>>>0,u+=c,i.putInt32(u>>>0),u=a>>>0;i.putInt32(u);var l={h0:e.h0,h1:e.h1,h2:e.h2,h3:e.h3,h4:e.h4};B3(l,r,i);var p=Oe.util.createBuffer();return p.putInt32(l.h0),p.putInt32(l.h1),p.putInt32(l.h2),p.putInt32(l.h3),p.putInt32(l.h4),p},n};var Fo=null,C3=!1;function vf(){Fo="\x80",Fo+=Oe.util.fillString("\0",64),C3=!0}function B3(e,t,r){for(var n,i,o,s,a,c,u,f,l=r.length();l>=64;){for(i=e.h0,o=e.h1,s=e.h2,a=e.h3,c=e.h4,f=0;f<16;++f)n=r.getInt32(),t[f]=n,u=a^o&(s^a),n=(i<<5|i>>>27)+u+c+1518500249+n,c=a,a=s,s=(o<<30|o>>>2)>>>0,o=i,i=n;for(;f<20;++f)n=t[f-3]^t[f-8]^t[f-14]^t[f-16],n=n<<1|n>>>31,t[f]=n,u=a^o&(s^a),n=(i<<5|i>>>27)+u+c+1518500249+n,c=a,a=s,s=(o<<30|o>>>2)>>>0,o=i,i=n;for(;f<32;++f)n=t[f-3]^t[f-8]^t[f-14]^t[f-16],n=n<<1|n>>>31,t[f]=n,u=o^s^a,n=(i<<5|i>>>27)+u+c+1859775393+n,c=a,a=s,s=(o<<30|o>>>2)>>>0,o=i,i=n;for(;f<40;++f)n=t[f-6]^t[f-16]^t[f-28]^t[f-32],n=n<<2|n>>>30,t[f]=n,u=o^s^a,n=(i<<5|i>>>27)+u+c+1859775393+n,c=a,a=s,s=(o<<30|o>>>2)>>>0,o=i,i=n;for(;f<60;++f)n=t[f-6]^t[f-16]^t[f-28]^t[f-32],n=n<<2|n>>>30,t[f]=n,u=o&s|a&(o^s),n=(i<<5|i>>>27)+u+c+2400959708+n,c=a,a=s,s=(o<<30|o>>>2)>>>0,o=i,i=n;for(;f<80;++f)n=t[f-6]^t[f-16]^t[f-28]^t[f-32],n=n<<2|n>>>30,t[f]=n,u=o^s^a,n=(i<<5|i>>>27)+u+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,l-=64}}});var N3=it((bx,L3)=>{var Ue=ut();Tt();i0();_3();var P3=L3.exports=Ue.pkcs1=Ue.pkcs1||{};P3.encode_rsa_oaep=function(e,t,r){var n,i,o,s;typeof r=="string"?(n=r,i=arguments[3]||void 0,o=arguments[4]||void 0):r&&(n=r.label||void 0,i=r.seed||void 0,o=r.md||void 0,r.mgf1&&r.mgf1.md&&(s=r.mgf1.md)),o?o.start():o=Ue.md.sha1.create(),s||(s=o);var a=Math.ceil(e.n.bitLength()/8),c=a-2*o.digestLength-2;if(t.length>c){var u=new Error("RSAES-OAEP input message length is too long.");throw u.length=t.length,u.maxLength=c,u}n||(n=""),o.update(n,"raw");for(var f=o.digest(),l="",p=c-t.length,d=0;d<p;d++)l+="\0";var h=f.getBytes()+l+""+t;if(!i)i=Ue.random.getBytes(o.digestLength);else if(i.length!==o.digestLength){var u=new Error("Invalid RSAES-OAEP seed. The seed length must match the digest length.");throw u.seedLength=i.length,u.digestLength=o.digestLength,u}var y=d1(i,a-o.digestLength-1,s),g=Ue.util.xorBytes(h,y,h.length),m=d1(g,o.digestLength,s),x=Ue.util.xorBytes(i,m,i.length);return"\0"+x+g};P3.decode_rsa_oaep=function(e,t,r){var n,i,o;typeof r=="string"?(n=r,i=arguments[3]||void 0):r&&(n=r.label||void 0,i=r.md||void 0,r.mgf1&&r.mgf1.md&&(o=r.mgf1.md));var s=Math.ceil(e.n.bitLength()/8);if(t.length!==s){var g=new Error("RSAES-OAEP encoded message length is invalid.");throw g.length=t.length,g.expectedLength=s,g}if(i===void 0?i=Ue.md.sha1.create():i.start(),o||(o=i),s<2*i.digestLength+2)throw new Error("RSAES-OAEP key is too short for the hash function.");n||(n=""),i.update(n,"raw");for(var a=i.digest().getBytes(),c=t.charAt(0),u=t.substring(1,i.digestLength+1),f=t.substring(1+i.digestLength),l=d1(f,i.digestLength,o),p=Ue.util.xorBytes(u,l,u.length),d=d1(p,s-i.digestLength-1,o),h=Ue.util.xorBytes(f,d,f.length),y=h.substring(0,i.digestLength),g=c!=="\0",m=0;m<i.digestLength;++m)g|=a.charAt(m)!==y.charAt(m);for(var x=1,v=i.digestLength,T=i.digestLength;T<h.length;T++){var E=h.charCodeAt(T),S=E&1^1,L=x?65534:0;g|=E&L,x=x&S,v+=x}if(g||h.charCodeAt(v)!==1)throw new Error("Invalid RSAES-OAEP padding.");return h.substring(v+1)};function d1(e,t,r){r||(r=Ue.md.sha1.create());for(var n="",i=Math.ceil(t/r.digestLength),o=0;o<i;++o){var s=String.fromCharCode(o>>24&255,o>>16&255,o>>8&255,o&255);r.start(),r.update(e+s),n+=r.digest().getBytes()}return n.substring(0,t)}});var D3=it((wx,Mo)=>{var mr=ut();Tt();h1();i0();(function(){if(mr.prime){Mo.exports=mr.prime;return}var e=Mo.exports=mr.prime=mr.prime||{},t=mr.jsbn.BigInteger,r=[6,4,2,4,2,4,6,2],n=new t(null);n.fromInt(30);var i=function(l,p){return l|p};e.generateProbablePrime=function(l,p,d){typeof p=="function"&&(d=p,p={}),p=p||{};var h=p.algorithm||"PRIMEINC";typeof h=="string"&&(h={name:h}),h.options=h.options||{};var y=p.prng||mr.random,g={nextBytes:function(m){for(var x=y.getBytesSync(m.length),v=0;v<m.length;++v)m[v]=x.charCodeAt(v)}};if(h.name==="PRIMEINC")return o(l,g,h.options,d);throw new Error("Invalid prime generation algorithm: "+h.name)};function o(l,p,d,h){return"workers"in d?c(l,p,d,h):s(l,p,d,h)}function s(l,p,d,h){var y=u(l,p),g=0,m=f(y.bitLength());"millerRabinTests"in d&&(m=d.millerRabinTests);var x=10;"maxBlockTime"in d&&(x=d.maxBlockTime),a(y,l,p,g,m,x,h)}function a(l,p,d,h,y,g,m){var x=+new Date;do{if(l.bitLength()>p&&(l=u(p,d)),l.isProbablePrime(y))return m(null,l);l.dAddOffset(r[h++%8],0)}while(g<0||+new Date-x<g);mr.util.setImmediate(function(){a(l,p,d,h,y,g,m)})}function c(l,p,d,h){if(typeof Worker>"u")return s(l,p,d,h);var y=u(l,p),g=d.workers,m=d.workLoad||100,x=m*30/8,v=d.workerScript||"forge/prime.worker.js";if(g===-1)return mr.util.estimateCores(function(E,S){E&&(S=2),g=S-1,T()});T();function T(){g=Math.max(1,g);for(var E=[],S=0;S<g;++S)E[S]=new Worker(v);for(var L=g,S=0;S<g;++S)E[S].addEventListener("message",$);var N=!1;function $(H){if(!N){--L;var V=H.data;if(V.found){for(var X=0;X<E.length;++X)E[X].terminate();return N=!0,h(null,new t(V.prime,16))}y.bitLength()>l&&(y=u(l,p));var ft=y.toString(16);H.target.postMessage({hex:ft,workLoad:m}),y.dAddOffset(x,0)}}}}function u(l,p){var d=new t(l,p),h=l-1;return d.testBit(h)||d.bitwiseTo(t.ONE.shiftLeft(h),i,d),d.dAddOffset(31-d.mod(n).byteValue(),0),d}function f(l){return l<=100?27:l<=150?18:l<=200?15:l<=250?12:l<=300?9:l<=350?8:l<=400?7:l<=500?6:l<=600?5:l<=800?4:l<=1250?3:2}})()});var y1=it((Ex,V3)=>{var K=ut();n0();h1();r1();N3();D3();i0();Tt();typeof et>"u"&&(et=K.jsbn.BigInteger);var et,Ko=K.util.isNodejs?s1():null,w=K.asn1,le=K.util;K.pki=K.pki||{};V3.exports=K.pki.rsa=K.rsa=K.rsa||{};var G=K.pki,bf=[6,4,2,4,2,4,6,2],wf={name:"PrivateKeyInfo",tagClass:w.Class.UNIVERSAL,type:w.Type.SEQUENCE,constructed:!0,value:[{name:"PrivateKeyInfo.version",tagClass:w.Class.UNIVERSAL,type:w.Type.INTEGER,constructed:!1,capture:"privateKeyVersion"},{name:"PrivateKeyInfo.privateKeyAlgorithm",tagClass:w.Class.UNIVERSAL,type:w.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:w.Class.UNIVERSAL,type:w.Type.OID,constructed:!1,capture:"privateKeyOid"}]},{name:"PrivateKeyInfo",tagClass:w.Class.UNIVERSAL,type:w.Type.OCTETSTRING,constructed:!1,capture:"privateKey"}]},Ef={name:"RSAPrivateKey",tagClass:w.Class.UNIVERSAL,type:w.Type.SEQUENCE,constructed:!0,value:[{name:"RSAPrivateKey.version",tagClass:w.Class.UNIVERSAL,type:w.Type.INTEGER,constructed:!1,capture:"privateKeyVersion"},{name:"RSAPrivateKey.modulus",tagClass:w.Class.UNIVERSAL,type:w.Type.INTEGER,constructed:!1,capture:"privateKeyModulus"},{name:"RSAPrivateKey.publicExponent",tagClass:w.Class.UNIVERSAL,type:w.Type.INTEGER,constructed:!1,capture:"privateKeyPublicExponent"},{name:"RSAPrivateKey.privateExponent",tagClass:w.Class.UNIVERSAL,type:w.Type.INTEGER,constructed:!1,capture:"privateKeyPrivateExponent"},{name:"RSAPrivateKey.prime1",tagClass:w.Class.UNIVERSAL,type:w.Type.INTEGER,constructed:!1,capture:"privateKeyPrime1"},{name:"RSAPrivateKey.prime2",tagClass:w.Class.UNIVERSAL,type:w.Type.INTEGER,constructed:!1,capture:"privateKeyPrime2"},{name:"RSAPrivateKey.exponent1",tagClass:w.Class.UNIVERSAL,type:w.Type.INTEGER,constructed:!1,capture:"privateKeyExponent1"},{name:"RSAPrivateKey.exponent2",tagClass:w.Class.UNIVERSAL,type:w.Type.INTEGER,constructed:!1,capture:"privateKeyExponent2"},{name:"RSAPrivateKey.coefficient",tagClass:w.Class.UNIVERSAL,type:w.Type.INTEGER,constructed:!1,capture:"privateKeyCoefficient"}]},Sf={name:"RSAPublicKey",tagClass:w.Class.UNIVERSAL,type:w.Type.SEQUENCE,constructed:!0,value:[{name:"RSAPublicKey.modulus",tagClass:w.Class.UNIVERSAL,type:w.Type.INTEGER,constructed:!1,capture:"publicKeyModulus"},{name:"RSAPublicKey.exponent",tagClass:w.Class.UNIVERSAL,type:w.Type.INTEGER,constructed:!1,capture:"publicKeyExponent"}]},If=K.pki.rsa.publicKeyValidator={name:"SubjectPublicKeyInfo",tagClass:w.Class.UNIVERSAL,type:w.Type.SEQUENCE,constructed:!0,captureAsn1:"subjectPublicKeyInfo",value:[{name:"SubjectPublicKeyInfo.AlgorithmIdentifier",tagClass:w.Class.UNIVERSAL,type:w.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:w.Class.UNIVERSAL,type:w.Type.OID,constructed:!1,capture:"publicKeyOid"}]},{name:"SubjectPublicKeyInfo.subjectPublicKey",tagClass:w.Class.UNIVERSAL,type:w.Type.BITSTRING,constructed:!1,value:[{name:"SubjectPublicKeyInfo.subjectPublicKey.RSAPublicKey",tagClass:w.Class.UNIVERSAL,type:w.Type.SEQUENCE,constructed:!0,optional:!0,captureAsn1:"rsaPublicKey"}]}]},Af={name:"DigestInfo",tagClass:w.Class.UNIVERSAL,type:w.Type.SEQUENCE,constructed:!0,value:[{name:"DigestInfo.DigestAlgorithm",tagClass:w.Class.UNIVERSAL,type:w.Type.SEQUENCE,constructed:!0,value:[{name:"DigestInfo.DigestAlgorithm.algorithmIdentifier",tagClass:w.Class.UNIVERSAL,type:w.Type.OID,constructed:!1,capture:"algorithmIdentifier"},{name:"DigestInfo.DigestAlgorithm.parameters",tagClass:w.Class.UNIVERSAL,type:w.Type.NULL,capture:"parameters",optional:!0,constructed:!1}]},{name:"DigestInfo.digest",tagClass:w.Class.UNIVERSAL,type:w.Type.OCTETSTRING,constructed:!1,capture:"digest"}]},Bf=function(e){var t;if(e.algorithm in G.oids)t=G.oids[e.algorithm];else{var r=new Error("Unknown message digest algorithm.");throw r.algorithm=e.algorithm,r}var n=w.oidToDer(t).getBytes(),i=w.create(w.Class.UNIVERSAL,w.Type.SEQUENCE,!0,[]),o=w.create(w.Class.UNIVERSAL,w.Type.SEQUENCE,!0,[]);o.value.push(w.create(w.Class.UNIVERSAL,w.Type.OID,!1,n)),o.value.push(w.create(w.Class.UNIVERSAL,w.Type.NULL,!1,""));var s=w.create(w.Class.UNIVERSAL,w.Type.OCTETSTRING,!1,e.digest().getBytes());return i.value.push(o),i.value.push(s),w.toDer(i).getBytes()},M3=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);t.dP||(t.dP=t.d.mod(t.p.subtract(et.ONE))),t.dQ||(t.dQ=t.d.mod(t.q.subtract(et.ONE))),t.qInv||(t.qInv=t.q.modInverse(t.p));var n;do n=new et(K.util.bytesToHex(K.random.getBytes(t.n.bitLength()/8)),16);while(n.compareTo(t.n)>=0||!n.gcd(t.n).equals(et.ONE));e=e.multiply(n.modPow(t.e,t.n)).mod(t.n);for(var i=e.mod(t.p).modPow(t.dP,t.p),o=e.mod(t.q).modPow(t.dQ,t.q);i.compareTo(o)<0;)i=i.add(t.p);var s=i.subtract(o).multiply(t.qInv).mod(t.p).multiply(t.q).add(o);return s=s.multiply(n.modInverse(t.n)).mod(t.n),s};G.rsa.encrypt=function(e,t,r){var n=r,i,o=Math.ceil(t.n.bitLength()/8);r!==!1&&r!==!0?(n=r===2,i=K3(e,t,r)):(i=K.util.createBuffer(),i.putBytes(e));for(var s=new et(i.toHex(),16),a=M3(s,t,n),c=a.toString(16),u=K.util.createBuffer(),f=o-Math.ceil(c.length/2);f>0;)u.putByte(0),--f;return u.putBytes(K.util.hexToBytes(c)),u.getBytes()};G.rsa.decrypt=function(e,t,r,n){var i=Math.ceil(t.n.bitLength()/8);if(e.length!==i){var o=new Error("Encrypted message length is invalid.");throw o.length=e.length,o.expected=i,o}var s=new et(K.util.createBuffer(e).toHex(),16);if(s.compareTo(t.n)>=0)throw new Error("Encrypted message is invalid.");for(var a=M3(s,t,r),c=a.toString(16),u=K.util.createBuffer(),f=i-Math.ceil(c.length/2);f>0;)u.putByte(0),--f;return u.putBytes(K.util.hexToBytes(c)),n!==!1?p1(u.getBytes(),t,r):u.getBytes()};G.rsa.createKeyPairGenerationState=function(e,t,r){typeof e=="string"&&(e=parseInt(e,10)),e=e||2048,r=r||{};var n=r.prng||K.random,i={nextBytes:function(a){for(var c=n.getBytesSync(a.length),u=0;u<a.length;++u)a[u]=c.charCodeAt(u)}},o=r.algorithm||"PRIMEINC",s;if(o==="PRIMEINC")s={algorithm:o,state:0,bits:e,rng:i,eInt:t||65537,e:new et(null),p:null,q:null,qBits:e>>1,pBits:e-(e>>1),pqState:0,num:null,keys:null},s.e.fromInt(s.eInt);else throw new Error("Invalid key generation algorithm: "+o);return s};G.rsa.stepKeyPairGenerationState=function(e,t){"algorithm"in e||(e.algorithm="PRIMEINC");var r=new et(null);r.fromInt(30);for(var n=0,i=function(l,p){return l|p},o=+new Date,s,a=0;e.keys===null&&(t<=0||a<t);){if(e.state===0){var c=e.p===null?e.pBits:e.qBits,u=c-1;e.pqState===0?(e.num=new et(c,e.rng),e.num.testBit(u)||e.num.bitwiseTo(et.ONE.shiftLeft(u),i,e.num),e.num.dAddOffset(31-e.num.mod(r).byteValue(),0),n=0,++e.pqState):e.pqState===1?e.num.bitLength()>c?e.pqState=0:e.num.isProbablePrime(Cf(e.num.bitLength()))?++e.pqState:e.num.dAddOffset(bf[n++%8],0):e.pqState===2?e.pqState=e.num.subtract(et.ONE).gcd(e.e).compareTo(et.ONE)===0?3:0:e.pqState===3&&(e.pqState=0,e.p===null?e.p=e.num:e.q=e.num,e.p!==null&&e.q!==null&&++e.state,e.num=null)}else if(e.state===1)e.p.compareTo(e.q)<0&&(e.num=e.p,e.p=e.q,e.q=e.num),++e.state;else if(e.state===2)e.p1=e.p.subtract(et.ONE),e.q1=e.q.subtract(et.ONE),e.phi=e.p1.multiply(e.q1),++e.state;else if(e.state===3)e.phi.gcd(e.e).compareTo(et.ONE)===0?++e.state:(e.p=null,e.q=null,e.state=0);else if(e.state===4)e.n=e.p.multiply(e.q),e.n.bitLength()===e.bits?++e.state:(e.q=null,e.state=0);else if(e.state===5){var f=e.e.modInverse(e.phi);e.keys={privateKey:G.rsa.setPrivateKey(e.n,e.e,f,e.p,e.q,f.mod(e.p1),f.mod(e.q1),e.q.modInverse(e.p)),publicKey:G.rsa.setPublicKey(e.n,e.e)}}s=+new Date,a+=s-o,o=s}return e.keys!==null};G.rsa.generateKeyPair=function(e,t,r,n){if(arguments.length===1?typeof e=="object"?(r=e,e=void 0):typeof e=="function"&&(n=e,e=void 0):arguments.length===2?typeof e=="number"?typeof t=="function"?(n=t,t=void 0):typeof t!="number"&&(r=t,t=void 0):(r=e,n=t,e=void 0,t=void 0):arguments.length===3&&(typeof t=="number"?typeof r=="function"&&(n=r,r=void 0):(n=r,r=t,t=void 0)),r=r||{},e===void 0&&(e=r.bits||2048),t===void 0&&(t=r.e||65537),!K.options.usePureJavaScript&&!r.prng&&e>=256&&e<=16384&&(t===65537||t===3)){if(n){if(k3("generateKeyPair"))return Ko.generateKeyPair("rsa",{modulusLength:e,publicExponent:t,publicKeyEncoding:{type:"spki",format:"pem"},privateKeyEncoding:{type:"pkcs8",format:"pem"}},function(a,c,u){if(a)return n(a);n(null,{privateKey:G.privateKeyFromPem(u),publicKey:G.publicKeyFromPem(c)})});if(O3("generateKey")&&O3("exportKey"))return le.globalScope.crypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:e,publicExponent:F3(t),hash:{name:"SHA-256"}},!0,["sign","verify"]).then(function(a){return le.globalScope.crypto.subtle.exportKey("pkcs8",a.privateKey)}).then(void 0,function(a){n(a)}).then(function(a){if(a){var c=G.privateKeyFromAsn1(w.fromDer(K.util.createBuffer(a)));n(null,{privateKey:c,publicKey:G.setRsaPublicKey(c.n,c.e)})}});if(U3("generateKey")&&U3("exportKey")){var i=le.globalScope.msCrypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:e,publicExponent:F3(t),hash:{name:"SHA-256"}},!0,["sign","verify"]);i.oncomplete=function(a){var c=a.target.result,u=le.globalScope.msCrypto.subtle.exportKey("pkcs8",c.privateKey);u.oncomplete=function(f){var l=f.target.result,p=G.privateKeyFromAsn1(w.fromDer(K.util.createBuffer(l)));n(null,{privateKey:p,publicKey:G.setRsaPublicKey(p.n,p.e)})},u.onerror=function(f){n(f)}},i.onerror=function(a){n(a)};return}}else if(k3("generateKeyPairSync")){var o=Ko.generateKeyPairSync("rsa",{modulusLength:e,publicExponent:t,publicKeyEncoding:{type:"spki",format:"pem"},privateKeyEncoding:{type:"pkcs8",format:"pem"}});return{privateKey:G.privateKeyFromPem(o.privateKey),publicKey:G.publicKeyFromPem(o.publicKey)}}}var s=G.rsa.createKeyPairGenerationState(e,t,r);if(!n)return G.rsa.stepKeyPairGenerationState(s,0),s.keys;Tf(s,r,n)};G.setRsaPublicKey=G.rsa.setPublicKey=function(e,t){var r={n:e,e:t};return r.encrypt=function(n,i,o){if(typeof i=="string"?i=i.toUpperCase():i===void 0&&(i="RSAES-PKCS1-V1_5"),i==="RSAES-PKCS1-V1_5")i={encode:function(a,c,u){return K3(a,c,2).getBytes()}};else if(i==="RSA-OAEP"||i==="RSAES-OAEP")i={encode:function(a,c){return K.pkcs1.encode_rsa_oaep(c,a,o)}};else if(["RAW","NONE","NULL",null].indexOf(i)!==-1)i={encode:function(a){return a}};else if(typeof i=="string")throw new Error('Unsupported encryption scheme: "'+i+'".');var s=i.encode(n,r,!0);return G.rsa.encrypt(s,r,!0)},r.verify=function(n,i,o,s){typeof o=="string"?o=o.toUpperCase():o===void 0&&(o="RSASSA-PKCS1-V1_5"),s===void 0&&(s={_parseAllDigestBytes:!0}),"_parseAllDigestBytes"in s||(s._parseAllDigestBytes=!0),o==="RSASSA-PKCS1-V1_5"?o={verify:function(c,u){u=p1(u,r,!0);var f=w.fromDer(u,{parseAllBytes:s._parseAllDigestBytes}),l={},p=[];if(!w.validate(f,Af,l,p)){var d=new Error("ASN.1 object does not contain a valid RSASSA-PKCS1-v1_5 DigestInfo value.");throw d.errors=p,d}var h=w.derToOid(l.algorithmIdentifier);if(!(h===K.oids.md2||h===K.oids.md5||h===K.oids.sha1||h===K.oids.sha224||h===K.oids.sha256||h===K.oids.sha384||h===K.oids.sha512||h===K.oids["sha512-224"]||h===K.oids["sha512-256"])){var d=new Error("Unknown RSASSA-PKCS1-v1_5 DigestAlgorithm identifier.");throw d.oid=h,d}if((h===K.oids.md2||h===K.oids.md5)&&!("parameters"in l))throw new Error("ASN.1 object does not contain a valid RSASSA-PKCS1-v1_5 DigestInfo value. Missing algorithm identifer NULL parameters.");return c===l.digest}}:(o==="NONE"||o==="NULL"||o===null)&&(o={verify:function(c,u){return u=p1(u,r,!0),c===u}});var a=G.rsa.decrypt(i,r,!0,!1);return o.verify(n,a,r.n.bitLength())},r};G.setRsaPrivateKey=G.rsa.setPrivateKey=function(e,t,r,n,i,o,s,a){var c={n:e,e:t,d:r,p:n,q:i,dP:o,dQ:s,qInv:a};return c.decrypt=function(u,f,l){typeof f=="string"?f=f.toUpperCase():f===void 0&&(f="RSAES-PKCS1-V1_5");var p=G.rsa.decrypt(u,c,!1,!1);if(f==="RSAES-PKCS1-V1_5")f={decode:p1};else if(f==="RSA-OAEP"||f==="RSAES-OAEP")f={decode:function(d,h){return K.pkcs1.decode_rsa_oaep(h,d,l)}};else if(["RAW","NONE","NULL",null].indexOf(f)!==-1)f={decode:function(d){return d}};else throw new Error('Unsupported encryption scheme: "'+f+'".');return f.decode(p,c,!1)},c.sign=function(u,f){var l=!1;typeof f=="string"&&(f=f.toUpperCase()),f===void 0||f==="RSASSA-PKCS1-V1_5"?(f={encode:Bf},l=1):(f==="NONE"||f==="NULL"||f===null)&&(f={encode:function(){return u}},l=1);var p=f.encode(u,c.n.bitLength());return G.rsa.encrypt(p,c,l)},c};G.wrapRsaPrivateKey=function(e){return w.create(w.Class.UNIVERSAL,w.Type.SEQUENCE,!0,[w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,w.integerToDer(0).getBytes()),w.create(w.Class.UNIVERSAL,w.Type.SEQUENCE,!0,[w.create(w.Class.UNIVERSAL,w.Type.OID,!1,w.oidToDer(G.oids.rsaEncryption).getBytes()),w.create(w.Class.UNIVERSAL,w.Type.NULL,!1,"")]),w.create(w.Class.UNIVERSAL,w.Type.OCTETSTRING,!1,w.toDer(e).getBytes())])};G.privateKeyFromAsn1=function(e){var t={},r=[];if(w.validate(e,wf,t,r)&&(e=w.fromDer(K.util.createBuffer(t.privateKey))),t={},r=[],!w.validate(e,Ef,t,r)){var n=new Error("Cannot read private key. ASN.1 object does not contain an RSAPrivateKey.");throw n.errors=r,n}var i,o,s,a,c,u,f,l;return i=K.util.createBuffer(t.privateKeyModulus).toHex(),o=K.util.createBuffer(t.privateKeyPublicExponent).toHex(),s=K.util.createBuffer(t.privateKeyPrivateExponent).toHex(),a=K.util.createBuffer(t.privateKeyPrime1).toHex(),c=K.util.createBuffer(t.privateKeyPrime2).toHex(),u=K.util.createBuffer(t.privateKeyExponent1).toHex(),f=K.util.createBuffer(t.privateKeyExponent2).toHex(),l=K.util.createBuffer(t.privateKeyCoefficient).toHex(),G.setRsaPrivateKey(new et(i,16),new et(o,16),new et(s,16),new et(a,16),new et(c,16),new et(u,16),new et(f,16),new et(l,16))};G.privateKeyToAsn1=G.privateKeyToRSAPrivateKey=function(e){return w.create(w.Class.UNIVERSAL,w.Type.SEQUENCE,!0,[w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,w.integerToDer(0).getBytes()),w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,Fe(e.n)),w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,Fe(e.e)),w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,Fe(e.d)),w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,Fe(e.p)),w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,Fe(e.q)),w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,Fe(e.dP)),w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,Fe(e.dQ)),w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,Fe(e.qInv))])};G.publicKeyFromAsn1=function(e){var t={},r=[];if(w.validate(e,If,t,r)){var n=w.derToOid(t.publicKeyOid);if(n!==G.oids.rsaEncryption){var i=new Error("Cannot read public key. Unknown OID.");throw i.oid=n,i}e=t.rsaPublicKey}if(r=[],!w.validate(e,Sf,t,r)){var i=new Error("Cannot read public key. ASN.1 object does not contain an RSAPublicKey.");throw i.errors=r,i}var o=K.util.createBuffer(t.publicKeyModulus).toHex(),s=K.util.createBuffer(t.publicKeyExponent).toHex();return G.setRsaPublicKey(new et(o,16),new et(s,16))};G.publicKeyToAsn1=G.publicKeyToSubjectPublicKeyInfo=function(e){return w.create(w.Class.UNIVERSAL,w.Type.SEQUENCE,!0,[w.create(w.Class.UNIVERSAL,w.Type.SEQUENCE,!0,[w.create(w.Class.UNIVERSAL,w.Type.OID,!1,w.oidToDer(G.oids.rsaEncryption).getBytes()),w.create(w.Class.UNIVERSAL,w.Type.NULL,!1,"")]),w.create(w.Class.UNIVERSAL,w.Type.BITSTRING,!1,[G.publicKeyToRSAPublicKey(e)])])};G.publicKeyToRSAPublicKey=function(e){return w.create(w.Class.UNIVERSAL,w.Type.SEQUENCE,!0,[w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,Fe(e.n)),w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,Fe(e.e))])};function K3(e,t,r){var n=K.util.createBuffer(),i=Math.ceil(t.n.bitLength()/8);if(e.length>i-11){var o=new Error("Message is too long for PKCS#1 v1.5 padding.");throw o.length=e.length,o.max=i-11,o}n.putByte(0),n.putByte(r);var s=i-3-e.length,a;if(r===0||r===1){a=r===0?0:255;for(var c=0;c<s;++c)n.putByte(a)}else for(;s>0;){for(var u=0,f=K.random.getBytes(s),c=0;c<s;++c)a=f.charCodeAt(c),a===0?++u:n.putByte(a);s=u}return n.putByte(0),n.putBytes(e),n}function p1(e,t,r,n){var i=Math.ceil(t.n.bitLength()/8),o=K.util.createBuffer(e),s=o.getByte(),a=o.getByte();if(s!==0||r&&a!==0&&a!==1||!r&&a!=2||r&&a===0&&typeof n>"u")throw new Error("Encryption block is invalid.");var c=0;if(a===0){c=i-3-n;for(var u=0;u<c;++u)if(o.getByte()!==0)throw new Error("Encryption block is invalid.")}else if(a===1)for(c=0;o.length()>1;){if(o.getByte()!==255){--o.read;break}++c}else if(a===2)for(c=0;o.length()>1;){if(o.getByte()===0){--o.read;break}++c}var f=o.getByte();if(f!==0||c!==i-3-o.length())throw new Error("Encryption block is invalid.");return o.getBytes()}function Tf(e,t,r){typeof t=="function"&&(r=t,t={}),t=t||{};var n={algorithm:{name:t.algorithm||"PRIMEINC",options:{workers:t.workers||2,workLoad:t.workLoad||100,workerScript:t.workerScript}}};"prng"in t&&(n.prng=t.prng),i();function i(){o(e.pBits,function(a,c){if(a)return r(a);if(e.p=c,e.q!==null)return s(a,e.q);o(e.qBits,s)})}function o(a,c){K.prime.generateProbablePrime(a,n,c)}function s(a,c){if(a)return r(a);if(e.q=c,e.p.compareTo(e.q)<0){var u=e.p;e.p=e.q,e.q=u}if(e.p.subtract(et.ONE).gcd(e.e).compareTo(et.ONE)!==0){e.p=null,i();return}if(e.q.subtract(et.ONE).gcd(e.e).compareTo(et.ONE)!==0){e.q=null,o(e.qBits,s);return}if(e.p1=e.p.subtract(et.ONE),e.q1=e.q.subtract(et.ONE),e.phi=e.p1.multiply(e.q1),e.phi.gcd(e.e).compareTo(et.ONE)!==0){e.p=e.q=null,i();return}if(e.n=e.p.multiply(e.q),e.n.bitLength()!==e.bits){e.q=null,o(e.qBits,s);return}var f=e.e.modInverse(e.phi);e.keys={privateKey:G.rsa.setPrivateKey(e.n,e.e,f,e.p,e.q,f.mod(e.p1),f.mod(e.q1),e.q.modInverse(e.p)),publicKey:G.rsa.setPublicKey(e.n,e.e)},r(null,e.keys)}}function Fe(e){var t=e.toString(16);t[0]>="8"&&(t="00"+t);var r=K.util.hexToBytes(t);return r.length>1&&(r.charCodeAt(0)===0&&!(r.charCodeAt(1)&128)||r.charCodeAt(0)===255&&(r.charCodeAt(1)&128)===128)?r.substr(1):r}function Cf(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 k3(e){return K.util.isNodejs&&typeof Ko[e]=="function"}function O3(e){return typeof le.globalScope<"u"&&typeof le.globalScope.crypto=="object"&&typeof le.globalScope.crypto.subtle=="object"&&typeof le.globalScope.crypto.subtle[e]=="function"}function U3(e){return typeof le.globalScope<"u"&&typeof le.globalScope.msCrypto=="object"&&typeof le.globalScope.msCrypto.subtle=="object"&&typeof le.globalScope.msCrypto.subtle[e]=="function"}function F3(e){for(var t=K.util.hexToBytes(e.toString(16)),r=new Uint8Array(t.length),n=0;n<t.length;++n)r[n]=t.charCodeAt(n);return r}});var Y3=it((Sx,G3)=>{var U=ut();e1();n0();Ja();Dr();r1();Po();o3();i0();m3();y1();Tt();typeof q3>"u"&&(q3=U.jsbn.BigInteger);var q3,I=U.asn1,Y=U.pki=U.pki||{};G3.exports=Y.pbe=U.pbe=U.pbe||{};var Ur=Y.oids,Rf={name:"EncryptedPrivateKeyInfo",tagClass:I.Class.UNIVERSAL,type:I.Type.SEQUENCE,constructed:!0,value:[{name:"EncryptedPrivateKeyInfo.encryptionAlgorithm",tagClass:I.Class.UNIVERSAL,type:I.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:I.Class.UNIVERSAL,type:I.Type.OID,constructed:!1,capture:"encryptionOid"},{name:"AlgorithmIdentifier.parameters",tagClass:I.Class.UNIVERSAL,type:I.Type.SEQUENCE,constructed:!0,captureAsn1:"encryptionParams"}]},{name:"EncryptedPrivateKeyInfo.encryptedData",tagClass:I.Class.UNIVERSAL,type:I.Type.OCTETSTRING,constructed:!1,capture:"encryptedData"}]},_f={name:"PBES2Algorithms",tagClass:I.Class.UNIVERSAL,type:I.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.keyDerivationFunc",tagClass:I.Class.UNIVERSAL,type:I.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.keyDerivationFunc.oid",tagClass:I.Class.UNIVERSAL,type:I.Type.OID,constructed:!1,capture:"kdfOid"},{name:"PBES2Algorithms.params",tagClass:I.Class.UNIVERSAL,type:I.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.params.salt",tagClass:I.Class.UNIVERSAL,type:I.Type.OCTETSTRING,constructed:!1,capture:"kdfSalt"},{name:"PBES2Algorithms.params.iterationCount",tagClass:I.Class.UNIVERSAL,type:I.Type.INTEGER,constructed:!1,capture:"kdfIterationCount"},{name:"PBES2Algorithms.params.keyLength",tagClass:I.Class.UNIVERSAL,type:I.Type.INTEGER,constructed:!1,optional:!0,capture:"keyLength"},{name:"PBES2Algorithms.params.prf",tagClass:I.Class.UNIVERSAL,type:I.Type.SEQUENCE,constructed:!0,optional:!0,value:[{name:"PBES2Algorithms.params.prf.algorithm",tagClass:I.Class.UNIVERSAL,type:I.Type.OID,constructed:!1,capture:"prfOid"}]}]}]},{name:"PBES2Algorithms.encryptionScheme",tagClass:I.Class.UNIVERSAL,type:I.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.encryptionScheme.oid",tagClass:I.Class.UNIVERSAL,type:I.Type.OID,constructed:!1,capture:"encOid"},{name:"PBES2Algorithms.encryptionScheme.iv",tagClass:I.Class.UNIVERSAL,type:I.Type.OCTETSTRING,constructed:!1,capture:"encIv"}]}]},Pf={name:"pkcs-12PbeParams",tagClass:I.Class.UNIVERSAL,type:I.Type.SEQUENCE,constructed:!0,value:[{name:"pkcs-12PbeParams.salt",tagClass:I.Class.UNIVERSAL,type:I.Type.OCTETSTRING,constructed:!1,capture:"salt"},{name:"pkcs-12PbeParams.iterations",tagClass:I.Class.UNIVERSAL,type:I.Type.INTEGER,constructed:!1,capture:"iterations"}]};Y.encryptPrivateKeyInfo=function(e,t,r){r=r||{},r.saltSize=r.saltSize||8,r.count=r.count||2048,r.algorithm=r.algorithm||"aes128",r.prfAlgorithm=r.prfAlgorithm||"sha1";var n=U.random.getBytesSync(r.saltSize),i=r.count,o=I.integerToDer(i),s,a,c;if(r.algorithm.indexOf("aes")===0||r.algorithm==="des"){var u,f,l;switch(r.algorithm){case"aes128":s=16,u=16,f=Ur["aes128-CBC"],l=U.aes.createEncryptionCipher;break;case"aes192":s=24,u=16,f=Ur["aes192-CBC"],l=U.aes.createEncryptionCipher;break;case"aes256":s=32,u=16,f=Ur["aes256-CBC"],l=U.aes.createEncryptionCipher;break;case"des":s=8,u=8,f=Ur.desCBC,l=U.des.createEncryptionCipher;break;default:var p=new Error("Cannot encrypt private key. Unknown encryption algorithm.");throw p.algorithm=r.algorithm,p}var d="hmacWith"+r.prfAlgorithm.toUpperCase(),h=$3(d),y=U.pkcs5.pbkdf2(t,n,i,s,h),g=U.random.getBytesSync(u),m=l(y);m.start(g),m.update(I.toDer(e)),m.finish(),c=m.output.getBytes();var x=Lf(n,o,s,d);a=I.create(I.Class.UNIVERSAL,I.Type.SEQUENCE,!0,[I.create(I.Class.UNIVERSAL,I.Type.OID,!1,I.oidToDer(Ur.pkcs5PBES2).getBytes()),I.create(I.Class.UNIVERSAL,I.Type.SEQUENCE,!0,[I.create(I.Class.UNIVERSAL,I.Type.SEQUENCE,!0,[I.create(I.Class.UNIVERSAL,I.Type.OID,!1,I.oidToDer(Ur.pkcs5PBKDF2).getBytes()),x]),I.create(I.Class.UNIVERSAL,I.Type.SEQUENCE,!0,[I.create(I.Class.UNIVERSAL,I.Type.OID,!1,I.oidToDer(f).getBytes()),I.create(I.Class.UNIVERSAL,I.Type.OCTETSTRING,!1,g)])])])}else if(r.algorithm==="3des"){s=24;var v=new U.util.ByteBuffer(n),y=Y.pbe.generatePkcs12Key(t,v,1,i,s),g=Y.pbe.generatePkcs12Key(t,v,2,i,s),m=U.des.createEncryptionCipher(y);m.start(g),m.update(I.toDer(e)),m.finish(),c=m.output.getBytes(),a=I.create(I.Class.UNIVERSAL,I.Type.SEQUENCE,!0,[I.create(I.Class.UNIVERSAL,I.Type.OID,!1,I.oidToDer(Ur["pbeWithSHAAnd3-KeyTripleDES-CBC"]).getBytes()),I.create(I.Class.UNIVERSAL,I.Type.SEQUENCE,!0,[I.create(I.Class.UNIVERSAL,I.Type.OCTETSTRING,!1,n),I.create(I.Class.UNIVERSAL,I.Type.INTEGER,!1,o.getBytes())])])}else{var p=new Error("Cannot encrypt private key. Unknown encryption algorithm.");throw p.algorithm=r.algorithm,p}var T=I.create(I.Class.UNIVERSAL,I.Type.SEQUENCE,!0,[a,I.create(I.Class.UNIVERSAL,I.Type.OCTETSTRING,!1,c)]);return T};Y.decryptPrivateKeyInfo=function(e,t){var r=null,n={},i=[];if(!I.validate(e,Rf,n,i)){var o=new Error("Cannot read encrypted private key. ASN.1 object is not a supported EncryptedPrivateKeyInfo.");throw o.errors=i,o}var s=I.derToOid(n.encryptionOid),a=Y.pbe.getCipher(s,n.encryptionParams,t),c=U.util.createBuffer(n.encryptedData);return a.update(c),a.finish()&&(r=I.fromDer(a.output)),r};Y.encryptedPrivateKeyToPem=function(e,t){var r={type:"ENCRYPTED PRIVATE KEY",body:I.toDer(e).getBytes()};return U.pem.encode(r,{maxline:t})};Y.encryptedPrivateKeyFromPem=function(e){var t=U.pem.decode(e)[0];if(t.type!=="ENCRYPTED PRIVATE KEY"){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&&t.procType.type==="ENCRYPTED")throw new Error("Could not convert encrypted private key from PEM; PEM is encrypted.");return I.fromDer(t.body)};Y.encryptRsaPrivateKey=function(e,t,r){if(r=r||{},!r.legacy){var n=Y.wrapRsaPrivateKey(Y.privateKeyToAsn1(e));return n=Y.encryptPrivateKeyInfo(n,t,r),Y.encryptedPrivateKeyToPem(n)}var i,o,s,a;switch(r.algorithm){case"aes128":i="AES-128-CBC",s=16,o=U.random.getBytesSync(16),a=U.aes.createEncryptionCipher;break;case"aes192":i="AES-192-CBC",s=24,o=U.random.getBytesSync(16),a=U.aes.createEncryptionCipher;break;case"aes256":i="AES-256-CBC",s=32,o=U.random.getBytesSync(16),a=U.aes.createEncryptionCipher;break;case"3des":i="DES-EDE3-CBC",s=24,o=U.random.getBytesSync(8),a=U.des.createEncryptionCipher;break;case"des":i="DES-CBC",s=8,o=U.random.getBytesSync(8),a=U.des.createEncryptionCipher;break;default:var c=new Error('Could not encrypt RSA private key; unsupported encryption algorithm "'+r.algorithm+'".');throw c.algorithm=r.algorithm,c}var u=U.pbe.opensslDeriveBytes(t,o.substr(0,8),s),f=a(u);f.start(o),f.update(I.toDer(Y.privateKeyToAsn1(e))),f.finish();var l={type:"RSA PRIVATE KEY",procType:{version:"4",type:"ENCRYPTED"},dekInfo:{algorithm:i,parameters:U.util.bytesToHex(o).toUpperCase()},body:f.output.getBytes()};return U.pem.encode(l)};Y.decryptRsaPrivateKey=function(e,t){var r=null,n=U.pem.decode(e)[0];if(n.type!=="ENCRYPTED PRIVATE KEY"&&n.type!=="PRIVATE KEY"&&n.type!=="RSA PRIVATE KEY"){var i=new Error('Could not convert private key from PEM; PEM header type is not "ENCRYPTED PRIVATE KEY", "PRIVATE KEY", or "RSA PRIVATE KEY".');throw i.headerType=i,i}if(n.procType&&n.procType.type==="ENCRYPTED"){var o,s;switch(n.dekInfo.algorithm){case"DES-CBC":o=8,s=U.des.createDecryptionCipher;break;case"DES-EDE3-CBC":o=24,s=U.des.createDecryptionCipher;break;case"AES-128-CBC":o=16,s=U.aes.createDecryptionCipher;break;case"AES-192-CBC":o=24,s=U.aes.createDecryptionCipher;break;case"AES-256-CBC":o=32,s=U.aes.createDecryptionCipher;break;case"RC2-40-CBC":o=5,s=function(l){return U.rc2.createDecryptionCipher(l,40)};break;case"RC2-64-CBC":o=8,s=function(l){return U.rc2.createDecryptionCipher(l,64)};break;case"RC2-128-CBC":o=16,s=function(l){return U.rc2.createDecryptionCipher(l,128)};break;default:var i=new Error('Could not decrypt private key; unsupported encryption algorithm "'+n.dekInfo.algorithm+'".');throw i.algorithm=n.dekInfo.algorithm,i}var a=U.util.hexToBytes(n.dekInfo.parameters),c=U.pbe.opensslDeriveBytes(t,a.substr(0,8),o),u=s(c);if(u.start(a),u.update(U.util.createBuffer(n.body)),u.finish())r=u.output.getBytes();else return r}else r=n.body;return n.type==="ENCRYPTED PRIVATE KEY"?r=Y.decryptPrivateKeyInfo(I.fromDer(r),t):r=I.fromDer(r),r!==null&&(r=Y.privateKeyFromAsn1(r)),r};Y.pbe.generatePkcs12Key=function(e,t,r,n,i,o){var s,a;if(typeof o>"u"||o===null){if(!("sha1"in U.md))throw new Error('"sha1" hash algorithm unavailable.');o=U.md.sha1.create()}var c=o.digestLength,u=o.blockLength,f=new U.util.ByteBuffer,l=new U.util.ByteBuffer;if(e!=null){for(a=0;a<e.length;a++)l.putInt16(e.charCodeAt(a));l.putInt16(0)}var p=l.length(),d=t.length(),h=new U.util.ByteBuffer;h.fillWithByte(r,u);var y=u*Math.ceil(d/u),g=new U.util.ByteBuffer;for(a=0;a<y;a++)g.putByte(t.at(a%d));var m=u*Math.ceil(p/u),x=new U.util.ByteBuffer;for(a=0;a<m;a++)x.putByte(l.at(a%p));var v=g;v.putBuffer(x);for(var T=Math.ceil(i/c),E=1;E<=T;E++){var S=new U.util.ByteBuffer;S.putBytes(h.bytes()),S.putBytes(v.bytes());for(var L=0;L<n;L++)o.start(),o.update(S.getBytes()),S=o.digest();var N=new U.util.ByteBuffer;for(a=0;a<u;a++)N.putByte(S.at(a%c));var $=Math.ceil(d/u)+Math.ceil(p/u),H=new U.util.ByteBuffer;for(s=0;s<$;s++){var V=new U.util.ByteBuffer(v.getBytes(u)),X=511;for(a=N.length()-1;a>=0;a--)X=X>>8,X+=N.at(a)+V.at(a),V.setAt(a,X&255);H.putBuffer(V)}v=H,f.putBuffer(S)}return f.truncate(f.length()-i),f};Y.pbe.getCipher=function(e,t,r){switch(e){case Y.oids.pkcs5PBES2:return Y.pbe.getCipherForPBES2(e,t,r);case Y.oids["pbeWithSHAAnd3-KeyTripleDES-CBC"]:case Y.oids["pbewithSHAAnd40BitRC2-CBC"]:return Y.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}};Y.pbe.getCipherForPBES2=function(e,t,r){var n={},i=[];if(!I.validate(t,_f,n,i)){var o=new Error("Cannot read password-based-encryption algorithm parameters. ASN.1 object is not a supported EncryptedPrivateKeyInfo.");throw o.errors=i,o}if(e=I.derToOid(n.kdfOid),e!==Y.oids.pkcs5PBKDF2){var o=new Error("Cannot read encrypted private key. Unsupported key derivation function OID.");throw o.oid=e,o.supportedOids=["pkcs5PBKDF2"],o}if(e=I.derToOid(n.encOid),e!==Y.oids["aes128-CBC"]&&e!==Y.oids["aes192-CBC"]&&e!==Y.oids["aes256-CBC"]&&e!==Y.oids["des-EDE3-CBC"]&&e!==Y.oids.desCBC){var o=new Error("Cannot read encrypted private key. Unsupported encryption scheme OID.");throw o.oid=e,o.supportedOids=["aes128-CBC","aes192-CBC","aes256-CBC","des-EDE3-CBC","desCBC"],o}var s=n.kdfSalt,a=U.util.createBuffer(n.kdfIterationCount);a=a.getInt(a.length()<<3);var c,u;switch(Y.oids[e]){case"aes128-CBC":c=16,u=U.aes.createDecryptionCipher;break;case"aes192-CBC":c=24,u=U.aes.createDecryptionCipher;break;case"aes256-CBC":c=32,u=U.aes.createDecryptionCipher;break;case"des-EDE3-CBC":c=24,u=U.des.createDecryptionCipher;break;case"desCBC":c=8,u=U.des.createDecryptionCipher;break}var f=H3(n.prfOid),l=U.pkcs5.pbkdf2(r,s,a,c,f),p=n.encIv,d=u(l);return d.start(p),d};Y.pbe.getCipherForPKCS12PBE=function(e,t,r){var n={},i=[];if(!I.validate(t,Pf,n,i)){var o=new Error("Cannot read password-based-encryption algorithm parameters. ASN.1 object is not a supported EncryptedPrivateKeyInfo.");throw o.errors=i,o}var s=U.util.createBuffer(n.salt),a=U.util.createBuffer(n.iterations);a=a.getInt(a.length()<<3);var c,u,f;switch(e){case Y.oids["pbeWithSHAAnd3-KeyTripleDES-CBC"]:c=24,u=8,f=U.des.startDecrypting;break;case Y.oids["pbewithSHAAnd40BitRC2-CBC"]:c=5,u=8,f=function(y,g){var m=U.rc2.createDecryptionCipher(y,40);return m.start(g,null),m};break;default:var o=new Error("Cannot read PKCS #12 PBE data block. Unsupported OID.");throw o.oid=e,o}var l=H3(n.prfOid),p=Y.pbe.generatePkcs12Key(r,s,1,a,c,l);l.start();var d=Y.pbe.generatePkcs12Key(r,s,2,a,u,l);return f(p,d)};Y.pbe.opensslDeriveBytes=function(e,t,r,n){if(typeof n>"u"||n===null){if(!("md5"in U.md))throw new Error('"md5" hash algorithm unavailable.');n=U.md.md5.create()}t===null&&(t="");for(var i=[z3(n,e+t)],o=16,s=1;o<r;++s,o+=16)i.push(z3(n,i[s-1]+e+t));return i.join("").substr(0,r)};function z3(e,t){return e.start().update(t).digest().getBytes()}function H3(e){var t;if(!e)t="hmacWithSHA1";else if(t=Y.oids[I.derToOid(e)],!t){var r=new Error("Unsupported PRF OID.");throw r.oid=e,r.supported=["hmacWithSHA1","hmacWithSHA224","hmacWithSHA256","hmacWithSHA384","hmacWithSHA512"],r}return $3(t)}function $3(e){var t=U.md;switch(e){case"hmacWithSHA224":t=U.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()}function Lf(e,t,r,n){var i=I.create(I.Class.UNIVERSAL,I.Type.SEQUENCE,!0,[I.create(I.Class.UNIVERSAL,I.Type.OCTETSTRING,!1,e),I.create(I.Class.UNIVERSAL,I.Type.INTEGER,!1,t.getBytes())]);return n!=="hmacWithSHA1"&&i.value.push(I.create(I.Class.UNIVERSAL,I.Type.INTEGER,!1,U.util.hexToBytes(r.toString(16))),I.create(I.Class.UNIVERSAL,I.Type.SEQUENCE,!0,[I.create(I.Class.UNIVERSAL,I.Type.OID,!1,I.oidToDer(Y.oids[n]).getBytes()),I.create(I.Class.UNIVERSAL,I.Type.NULL,!1,"")])),i}});var L4=it((Hv,P4)=>{var mt=ut();Dr();Tt();var f0=P4.exports=mt.sha512=mt.sha512||{};mt.md.sha512=mt.md.algorithms.sha512=f0;var R4=mt.sha384=mt.sha512.sha384=mt.sha512.sha384||{};R4.create=function(){return f0.create("SHA-384")};mt.md.sha384=mt.md.algorithms.sha384=R4;mt.sha512.sha256=mt.sha512.sha256||{create:function(){return f0.create("SHA-512/256")}};mt.md["sha512/256"]=mt.md.algorithms["sha512/256"]=mt.sha512.sha256;mt.sha512.sha224=mt.sha512.sha224||{create:function(){return f0.create("SHA-512/224")}};mt.md["sha512/224"]=mt.md.algorithms["sha512/224"]=mt.sha512.sha224;f0.create=function(e){if(_4||H7(),typeof e>"u"&&(e="SHA-512"),!(e in qr))throw new Error("Invalid SHA-512 algorithm: "+e);for(var t=qr[e],r=null,n=mt.util.createBuffer(),i=new Array(80),o=0;o<80;++o)i[o]=new Array(2);var s=64;switch(e){case"SHA-384":s=48;break;case"SHA-512/256":s=32;break;case"SHA-512/224":s=28;break}var a={algorithm:e.replace("-","").toLowerCase(),blockLength:128,digestLength:s,messageLength:0,fullMessageLength:null,messageLengthSize:16};return a.start=function(){a.messageLength=0,a.fullMessageLength=a.messageLength128=[];for(var c=a.messageLengthSize/4,u=0;u<c;++u)a.fullMessageLength.push(0);n=mt.util.createBuffer(),r=new Array(t.length);for(var u=0;u<t.length;++u)r[u]=t[u].slice(0);return a},a.start(),a.update=function(c,u){u==="utf8"&&(c=mt.util.encodeUtf8(c));var f=c.length;a.messageLength+=f,f=[f/4294967296>>>0,f>>>0];for(var l=a.fullMessageLength.length-1;l>=0;--l)a.fullMessageLength[l]+=f[1],f[1]=f[0]+(a.fullMessageLength[l]/4294967296>>>0),a.fullMessageLength[l]=a.fullMessageLength[l]>>>0,f[0]=f[1]/4294967296>>>0;return n.putBytes(c),C4(r,i,n),(n.read>2048||n.length()===0)&&n.compact(),a},a.digest=function(){var c=mt.util.createBuffer();c.putBytes(n.bytes());var u=a.fullMessageLength[a.fullMessageLength.length-1]+a.messageLengthSize,f=u&a.blockLength-1;c.putBytes(cs.substr(0,a.blockLength-f));for(var l,p,d=a.fullMessageLength[0]*8,h=0;h<a.fullMessageLength.length-1;++h)l=a.fullMessageLength[h+1]*8,p=l/4294967296>>>0,d+=p,c.putInt32(d>>>0),d=l>>>0;c.putInt32(d);for(var y=new Array(r.length),h=0;h<r.length;++h)y[h]=r[h].slice(0);C4(y,i,c);var g=mt.util.createBuffer(),m;e==="SHA-512"?m=y.length:e==="SHA-384"?m=y.length-2:m=y.length-4;for(var h=0;h<m;++h)g.putInt32(y[h][0]),(h!==m-1||e!=="SHA-512/224")&&g.putInt32(y[h][1]);return g},a};var cs=null,_4=!1,us=null,qr=null;function H7(){cs="\x80",cs+=mt.util.fillString("\0",128),us=[[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]],qr={},qr["SHA-512"]=[[1779033703,4089235720],[3144134277,2227873595],[1013904242,4271175723],[2773480762,1595750129],[1359893119,2917565137],[2600822924,725511199],[528734635,4215389547],[1541459225,327033209]],qr["SHA-384"]=[[3418070365,3238371032],[1654270250,914150663],[2438529370,812702999],[355462360,4144912697],[1731405415,4290775857],[2394180231,1750603025],[3675008525,1694076839],[1203062813,3204075428]],qr["SHA-512/256"]=[[573645204,4230739756],[2673172387,3360449730],[596883563,1867755857],[2520282905,1497426621],[2519219938,2827943907],[3193839141,1401305490],[721525244,746961066],[246885852,2177182882]],qr["SHA-512/224"]=[[2352822216,424955298],[1944164710,2312950998],[502970286,855612546],[1738396948,1479516111],[258812777,2077511080],[2011393907,79989058],[1067287976,1780299464],[286451373,2446758561]],_4=!0}function C4(e,t,r){for(var n,i,o,s,a,c,u,f,l,p,d,h,y,g,m,x,v,T,E,S,L,N,$,H,V,X,ft,Kt,C,k,P,D,A,F,M,z=r.length();z>=128;){for(C=0;C<16;++C)t[C][0]=r.getInt32()>>>0,t[C][1]=r.getInt32()>>>0;for(;C<80;++C)D=t[C-2],k=D[0],P=D[1],n=((k>>>19|P<<13)^(P>>>29|k<<3)^k>>>6)>>>0,i=((k<<13|P>>>19)^(P<<3|k>>>29)^(k<<26|P>>>6))>>>0,F=t[C-15],k=F[0],P=F[1],o=((k>>>1|P<<31)^(k>>>8|P<<24)^k>>>7)>>>0,s=((k<<31|P>>>1)^(k<<24|P>>>8)^(k<<25|P>>>7))>>>0,A=t[C-7],M=t[C-16],P=i+A[1]+s+M[1],t[C][0]=n+A[0]+o+M[0]+(P/4294967296>>>0)>>>0,t[C][1]=P>>>0;for(y=e[0][0],g=e[0][1],m=e[1][0],x=e[1][1],v=e[2][0],T=e[2][1],E=e[3][0],S=e[3][1],L=e[4][0],N=e[4][1],$=e[5][0],H=e[5][1],V=e[6][0],X=e[6][1],ft=e[7][0],Kt=e[7][1],C=0;C<80;++C)u=((L>>>14|N<<18)^(L>>>18|N<<14)^(N>>>9|L<<23))>>>0,f=((L<<18|N>>>14)^(L<<14|N>>>18)^(N<<23|L>>>9))>>>0,l=(V^L&($^V))>>>0,p=(X^N&(H^X))>>>0,a=((y>>>28|g<<4)^(g>>>2|y<<30)^(g>>>7|y<<25))>>>0,c=((y<<4|g>>>28)^(g<<30|y>>>2)^(g<<25|y>>>7))>>>0,d=(y&m|v&(y^m))>>>0,h=(g&x|T&(g^x))>>>0,P=Kt+f+p+us[C][1]+t[C][1],n=ft+u+l+us[C][0]+t[C][0]+(P/4294967296>>>0)>>>0,i=P>>>0,P=c+h,o=a+d+(P/4294967296>>>0)>>>0,s=P>>>0,ft=V,Kt=X,V=$,X=H,$=L,H=N,P=S+i,L=E+n+(P/4294967296>>>0)>>>0,N=P>>>0,E=v,S=T,v=m,T=x,m=y,x=g,P=i+s,y=n+o+(P/4294967296>>>0)>>>0,g=P>>>0;P=e[0][1]+g,e[0][0]=e[0][0]+y+(P/4294967296>>>0)>>>0,e[0][1]=P>>>0,P=e[1][1]+x,e[1][0]=e[1][0]+m+(P/4294967296>>>0)>>>0,e[1][1]=P>>>0,P=e[2][1]+T,e[2][0]=e[2][0]+v+(P/4294967296>>>0)>>>0,e[2][1]=P>>>0,P=e[3][1]+S,e[3][0]=e[3][0]+E+(P/4294967296>>>0)>>>0,e[3][1]=P>>>0,P=e[4][1]+N,e[4][0]=e[4][0]+L+(P/4294967296>>>0)>>>0,e[4][1]=P>>>0,P=e[5][1]+H,e[5][0]=e[5][0]+$+(P/4294967296>>>0)>>>0,e[5][1]=P>>>0,P=e[6][1]+X,e[6][0]=e[6][0]+V+(P/4294967296>>>0)>>>0,e[6][1]=P>>>0,P=e[7][1]+Kt,e[7][0]=e[7][0]+ft+(P/4294967296>>>0)>>>0,e[7][1]=P>>>0,z-=128}}});var i5=it((Iw,n5)=>{n5.exports=function(e){if(!e)throw Error("hashlru must have a max value, of type number, greater than 0");var t=0,r=Object.create(null),n=Object.create(null);function i(o,s){r[o]=s,t++,t>=e&&(t=0,n=r,r=Object.create(null))}return{has:function(o){return r[o]!==void 0||n[o]!==void 0},remove:function(o){r[o]!==void 0&&(r[o]=void 0),n[o]!==void 0&&(n[o]=void 0)},get:function(o){var s=r[o];if(s!==void 0)return s;if((s=n[o])!==void 0)return i(o,s),s},set:function(o,s){r[o]!==void 0?r[o]=s:i(o,s)},clear:function(){r=Object.create(null),n=Object.create(null)}}}});var s5=it((Aw,ws)=>{"use strict";var Il=Object.prototype.hasOwnProperty,Jt="~";function g0(){}Object.create&&(g0.prototype=Object.create(null),new g0().__proto__||(Jt=!1));function Al(e,t,r){this.fn=e,this.context=t,this.once=r||!1}function o5(e,t,r,n,i){if(typeof r!="function")throw new TypeError("The listener must be a function");var o=new Al(r,n||e,i),s=Jt?Jt+t:t;return e._events[s]?e._events[s].fn?e._events[s]=[e._events[s],o]:e._events[s].push(o):(e._events[s]=o,e._eventsCount++),e}function F1(e,t){--e._eventsCount===0?e._events=new g0:delete e._events[t]}function Yt(){this._events=new g0,this._eventsCount=0}Yt.prototype.eventNames=function(){var t=[],r,n;if(this._eventsCount===0)return t;for(n in r=this._events)Il.call(r,n)&&t.push(Jt?n.slice(1):n);return Object.getOwnPropertySymbols?t.concat(Object.getOwnPropertySymbols(r)):t};Yt.prototype.listeners=function(t){var r=Jt?Jt+t:t,n=this._events[r];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};Yt.prototype.listenerCount=function(t){var r=Jt?Jt+t:t,n=this._events[r];return n?n.fn?1:n.length:0};Yt.prototype.emit=function(t,r,n,i,o,s){var a=Jt?Jt+t:t;if(!this._events[a])return!1;var c=this._events[a],u=arguments.length,f,l;if(c.fn){switch(c.once&&this.removeListener(t,c.fn,void 0,!0),u){case 1:return c.fn.call(c.context),!0;case 2:return c.fn.call(c.context,r),!0;case 3:return c.fn.call(c.context,r,n),!0;case 4:return c.fn.call(c.context,r,n,i),!0;case 5:return c.fn.call(c.context,r,n,i,o),!0;case 6:return c.fn.call(c.context,r,n,i,o,s),!0}for(l=1,f=new Array(u-1);l<u;l++)f[l-1]=arguments[l];c.fn.apply(c.context,f)}else{var p=c.length,d;for(l=0;l<p;l++)switch(c[l].once&&this.removeListener(t,c[l].fn,void 0,!0),u){case 1:c[l].fn.call(c[l].context);break;case 2:c[l].fn.call(c[l].context,r);break;case 3:c[l].fn.call(c[l].context,r,n);break;case 4:c[l].fn.call(c[l].context,r,n,i);break;default:if(!f)for(d=1,f=new Array(u-1);d<u;d++)f[d-1]=arguments[d];c[l].fn.apply(c[l].context,f)}}return!0};Yt.prototype.on=function(t,r,n){return o5(this,t,r,n,!1)};Yt.prototype.once=function(t,r,n){return o5(this,t,r,n,!0)};Yt.prototype.removeListener=function(t,r,n,i){var o=Jt?Jt+t:t;if(!this._events[o])return this;if(!r)return F1(this,o),this;var s=this._events[o];if(s.fn)s.fn===r&&(!i||s.once)&&(!n||s.context===n)&&F1(this,o);else{for(var a=0,c=[],u=s.length;a<u;a++)(s[a].fn!==r||i&&!s[a].once||n&&s[a].context!==n)&&c.push(s[a]);c.length?this._events[o]=c.length===1?c[0]:c:F1(this,o)}return this};Yt.prototype.removeAllListeners=function(t){var r;return t?(r=Jt?Jt+t:t,this._events[r]&&F1(this,r)):(this._events=new g0,this._eventsCount=0),this};Yt.prototype.off=Yt.prototype.removeListener;Yt.prototype.addListener=Yt.prototype.on;Yt.prefixed=Jt;Yt.EventEmitter=Yt;typeof ws<"u"&&(ws.exports=Yt)});var jl={};_t(jl,{EventTypes:()=>Rs,MessageType:()=>_s,Record:()=>kt,kadDHT:()=>Jl,passthroughMapper:()=>W2,removePrivateAddressesMapper:()=>K0,removePublicAddressesMapper:()=>Q2});var e9=Symbol.for("@libp2p/connection");var Ks=Symbol.for("@libp2p/content-routing");var Vs=Symbol.for("@libp2p/peer-discovery");var qs=Symbol.for("@libp2p/peer-id");var zs=Symbol.for("@libp2p/peer-routing");var Hs;(function(e){e.Accept="accept",e.Ignore="ignore",e.Reject="reject"})(Hs||(Hs={}));var f9=Symbol.for("@libp2p/transport");var $s;(function(e){e[e.FATAL_ALL=0]="FATAL_ALL",e[e.NO_FATAL=1]="NO_FATAL"})($s||($s={}));var I0=class e extends Error{code;type;constructor(t="The operation was aborted"){super(t),this.code=e.code,this.type=e.type}static code="ABORT_ERR";static type="aborted"},_=class extends Error{code;props;constructor(t,r,n){super(t),this.code=r,this.name=n?.name??"CodeError",this.props=n??{}}};var oi="ERR_INVALID_PARAMETERS";var jt=class extends EventTarget{#t=new Map;listenerCount(t){let r=this.#t.get(t);return r==null?0:r.length}addEventListener(t,r,n){super.addEventListener(t,r,n);let i=this.#t.get(t);i==null&&(i=[],this.#t.set(t,i)),i.push({callback:r,once:(n!==!0&&n!==!1&&n?.once)??!1})}removeEventListener(t,r,n){super.removeEventListener(t.toString(),r??null,n);let i=this.#t.get(t);i!=null&&(i=i.filter(({callback:o})=>o!==r),this.#t.set(t,i))}dispatchEvent(t){let r=super.dispatchEvent(t),n=this.#t.get(t.type);return n==null||(n=n.filter(({once:i})=>!i),this.#t.set(t.type,n)),r}safeDispatchEvent(t,r){return this.dispatchEvent(new Qt(t,r))}},si=class extends Event{detail;constructor(t,r){super(t,r),this.detail=r?.detail}},Qt=globalThis.CustomEvent??si;var Qr=(e,...t)=>{try{[...t]}catch{}};function D5(e){return e[Symbol.asyncIterator]!=null}function k5(e){if(D5(e))return(async()=>{for await(let t of e);})();for(let t of e);}var ai=k5;function O5(e){let[t,r]=e[Symbol.asyncIterator]!=null?[e[Symbol.asyncIterator](),Symbol.asyncIterator]:[e[Symbol.iterator](),Symbol.iterator],n=[];return{peek:()=>t.next(),push:i=>{n.push(i)},next:()=>n.length>0?{done:!1,value:n.shift()}:t.next(),[r](){return this}}}var Gs=O5;function U5(e){return e[Symbol.asyncIterator]!=null}function F5(e,t){if(U5(e))return async function*(){for await(let a of e)yield t(a)}();let r=Gs(e),{value:n,done:i}=r.next();if(i===!0)return function*(){}();let o=t(n);if(typeof o.then=="function")return async function*(){yield await o;for await(let a of r)yield t(a)}();let s=t;return function*(){yield o;for(let a of r)yield s(a)}()}var Wr=F5;function Pt(){let e={};return e.promise=new Promise((t,r)=>{e.resolve=t,e.reject=r}),e}var A0=globalThis.CustomEvent??Event;async function*sr(e,t={}){let r=t.concurrency??1/0;r<1&&(r=1/0);let n=t.ordered==null?!1:t.ordered,i=new EventTarget,o=[],s=Pt(),a=Pt(),c=!1,u,f=!1;i.addEventListener("task-complete",()=>{a.resolve()}),Promise.resolve().then(async()=>{try{for await(let h of e){if(o.length===r&&(s=Pt(),await s.promise),f)break;let y={done:!1};o.push(y),h().then(g=>{y.done=!0,y.ok=!0,y.value=g,i.dispatchEvent(new A0("task-complete"))},g=>{y.done=!0,y.err=g,i.dispatchEvent(new A0("task-complete"))})}c=!0,i.dispatchEvent(new A0("task-complete"))}catch(h){u=h,i.dispatchEvent(new A0("task-complete"))}});function l(){return n?o[0]?.done:!!o.find(h=>h.done)}function*p(){for(;o.length>0&&o[0].done;){let h=o[0];if(o.shift(),h.ok)yield h.value;else throw f=!0,s.resolve(),h.err;s.resolve()}}function*d(){for(;l();)for(let h=0;h<o.length;h++)if(o[h].done){let y=o[h];if(o.splice(h,1),h--,y.ok)yield y.value;else throw f=!0,s.resolve(),y.err;s.resolve()}}for(;;){if(l()||(a=Pt(),await a.promise),u!=null)throw u;if(n?yield*p():yield*d(),c&&o.length===0)break}}var Ys="/ipfs/kad/1.0.0",Qs="/dht/record",ci="/dht/provider";var B0=class{buffer;mask;top;btm;next;constructor(t){if(!(t>0)||t-1&t)throw new Error("Max size for a FixedFIFO should be a power of two");this.buffer=new Array(t),this.mask=t-1,this.top=0,this.btm=0,this.next=null}push(t){return this.buffer[this.top]!==void 0?!1:(this.buffer[this.top]=t,this.top=this.top+1&this.mask,!0)}shift(){let t=this.buffer[this.btm];if(t!==void 0)return this.buffer[this.btm]=void 0,this.btm=this.btm+1&this.mask,t}isEmpty(){return this.buffer[this.btm]===void 0}},Zr=class{size;hwm;head;tail;constructor(t={}){this.hwm=t.splitLimit??16,this.head=new B0(this.hwm),this.tail=this.head,this.size=0}calculateSize(t){return t?.byteLength!=null?t.byteLength:1}push(t){if(t?.value!=null&&(this.size+=this.calculateSize(t.value)),!this.head.push(t)){let r=this.head;this.head=r.next=new B0(2*this.head.buffer.length),this.head.push(t)}}shift(){let t=this.tail.shift();if(t===void 0&&this.tail.next!=null){let r=this.tail.next;this.tail.next=null,this.tail=r,t=this.tail.shift()}return t?.value!=null&&(this.size-=this.calculateSize(t.value)),t}isEmpty(){return this.head.isEmpty()}};var ui=class extends Error{type;code;constructor(t,r){super(t??"The operation was aborted"),this.type="aborted",this.code=r??"ABORT_ERR"}};function Xr(e={}){return M5(r=>{let n=r.shift();if(n==null)return{done:!0};if(n.error!=null)throw n.error;return{done:n.done===!0,value:n.value}},e)}function M5(e,t){t=t??{};let r=t.onEnd,n=new Zr,i,o,s,a=Pt(),c=async()=>{try{return n.isEmpty()?s?{done:!0}:await new Promise((g,m)=>{o=x=>{o=null,n.push(x);try{g(e(n))}catch(v){m(v)}return i}}):e(n)}finally{n.isEmpty()&&queueMicrotask(()=>{a.resolve(),a=Pt()})}},u=g=>o!=null?o(g):(n.push(g),i),f=g=>(n=new Zr,o!=null?o({error:g}):(n.push({error:g}),i)),l=g=>{if(s)return i;if(t?.objectMode!==!0&&g?.byteLength==null)throw new Error("objectMode was not true but tried to push non-Uint8Array value");return u({done:!1,value:g})},p=g=>s?i:(s=!0,g!=null?f(g):u({done:!0})),d=()=>(n=new Zr,p(),{done:!0}),h=g=>(p(g),{done:!0});if(i={[Symbol.asyncIterator](){return this},next:c,return:d,throw:h,push:l,end:p,get readableLength(){return n.size},onEmpty:async g=>{let m=g?.signal;if(m?.throwIfAborted(),n.isEmpty())return;let x,v;m!=null&&(x=new Promise((T,E)=>{v=()=>{E(new ui)},m.addEventListener("abort",v)}));try{await Promise.race([a.promise,x])}finally{v!=null&&m!=null&&m?.removeEventListener("abort",v)}}},r==null)return i;let y=i;return i={[Symbol.asyncIterator](){return this},next(){return y.next()},throw(g){return y.throw(g),r!=null&&(r(g),r=void 0),{done:!0}},return(){return y.return(),r!=null&&(r(),r=void 0),{done:!0}},push:l,end(g){return y.end(g),r!=null&&(r(g),r=void 0),i},get readableLength(){return y.readableLength},onEmpty:g=>y.onEmpty(g)},i}function K5(e){return e[Symbol.asyncIterator]!=null}function V5(...e){let t=[];for(let r of e)K5(r)||t.push(r);return t.length===e.length?function*(){for(let r of t)yield*r}():async function*(){let r=Xr({objectMode:!0});Promise.resolve().then(async()=>{try{await Promise.all(e.map(async n=>{for await(let i of n)r.push(i)})),r.end()}catch(n){r.end(n)}}),yield*r}()}var T0=V5;function ar(e,...t){if(e==null)throw new Error("Empty pipeline");if(fi(e)){let n=e;e=()=>n.source}else if(Zs(e)||Ws(e)){let n=e;e=()=>n}let r=[e,...t];if(r.length>1&&fi(r[r.length-1])&&(r[r.length-1]=r[r.length-1].sink),r.length>2)for(let n=1;n<r.length-1;n++)fi(r[n])&&(r[n]=z5(r[n]));return q5(...r)}var q5=(...e)=>{let t;for(;e.length>0;)t=e.shift()(t);return t},Ws=e=>e?.[Symbol.asyncIterator]!=null,Zs=e=>e?.[Symbol.iterator]!=null,fi=e=>e==null?!1:e.sink!=null&&e.source!=null,z5=e=>t=>{let r=e.sink(t);if(r?.then!=null){let n=Xr({objectMode:!0});r.then(()=>{n.end()},s=>{n.end(s)});let i,o=e.source;if(Ws(o))i=async function*(){yield*o,n.end()};else if(Zs(o))i=function*(){yield*o,n.end()};else throw new Error("Unknown duplex source type - must be Iterable or AsyncIterable");return T0(n,i())}return e.source};function pt(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 li=new Float32Array([-0]),cr=new Uint8Array(li.buffer);function Xs(e,t,r){li[0]=e,t[r]=cr[0],t[r+1]=cr[1],t[r+2]=cr[2],t[r+3]=cr[3]}function Js(e,t){return cr[0]=e[t],cr[1]=e[t+1],cr[2]=e[t+2],cr[3]=e[t+3],li[0]}var hi=new Float64Array([-0]),Ht=new Uint8Array(hi.buffer);function js(e,t,r){hi[0]=e,t[r]=Ht[0],t[r+1]=Ht[1],t[r+2]=Ht[2],t[r+3]=Ht[3],t[r+4]=Ht[4],t[r+5]=Ht[5],t[r+6]=Ht[6],t[r+7]=Ht[7]}function t2(e,t){return Ht[0]=e[t],Ht[1]=e[t+1],Ht[2]=e[t+2],Ht[3]=e[t+3],Ht[4]=e[t+4],Ht[5]=e[t+5],Ht[6]=e[t+6],Ht[7]=e[t+7],hi[0]}var H5=BigInt(Number.MAX_SAFE_INTEGER),$5=BigInt(Number.MIN_SAFE_INTEGER),te=class e{lo;hi;constructor(t,r){this.lo=t|0,this.hi=r|0}toNumber(t=!1){if(!t&&this.hi>>>31>0){let r=~this.lo+1>>>0,n=~this.hi>>>0;return r===0&&(n=n+1>>>0),-(r+n*4294967296)}return this.lo+this.hi*4294967296}toBigInt(t=!1){if(t)return BigInt(this.lo>>>0)+(BigInt(this.hi>>>0)<<32n);if(this.hi>>>31){let r=~this.lo+1>>>0,n=~this.hi>>>0;return r===0&&(n=n+1>>>0),-(BigInt(r)+(BigInt(n)<<32n))}return BigInt(this.lo>>>0)+(BigInt(this.hi>>>0)<<32n)}toString(t=!1){return this.toBigInt(t).toString()}zzEncode(){let t=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^t)>>>0,this.lo=(this.lo<<1^t)>>>0,this}zzDecode(){let t=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^t)>>>0,this.hi=(this.hi>>>1^t)>>>0,this}length(){let t=this.lo,r=(this.lo>>>28|this.hi<<4)>>>0,n=this.hi>>>24;return n===0?r===0?t<16384?t<128?1:2:t<2097152?3:4:r<16384?r<128?5:6:r<2097152?7:8:n<128?9:10}static fromBigInt(t){if(t===0n)return Br;if(t<H5&&t>$5)return this.fromNumber(Number(t));let r=t<0n;r&&(t=-t);let n=t>>32n,i=t-(n<<32n);return r&&(n=~n|0n,i=~i|0n,++i>e2&&(i=0n,++n>e2&&(n=0n))),new e(Number(i),Number(n))}static fromNumber(t){if(t===0)return Br;let r=t<0;r&&(t=-t);let n=t>>>0,i=(t-n)/4294967296>>>0;return r&&(i=~i>>>0,n=~n>>>0,++n>4294967295&&(n=0,++i>4294967295&&(i=0))),new e(n,i)}static from(t){return typeof t=="number"?e.fromNumber(t):typeof t=="bigint"?e.fromBigInt(t):typeof t=="string"?e.fromBigInt(BigInt(t)):t.low!=null||t.high!=null?new e(t.low>>>0,t.high>>>0):Br}},Br=new te(0,0);Br.toBigInt=function(){return 0n};Br.zzEncode=Br.zzDecode=function(){return this};Br.length=function(){return 1};var e2=4294967296n;function r2(e){let t=0,r=0;for(let n=0;n<e.length;++n)r=e.charCodeAt(n),r<128?t+=1:r<2048?t+=2:(r&64512)===55296&&(e.charCodeAt(n+1)&64512)===56320?(++n,t+=4):t+=3;return t}function n2(e,t,r){if(r-t<1)return"";let i,o=[],s=0,a;for(;t<r;)a=e[t++],a<128?o[s++]=a:a>191&&a<224?o[s++]=(a&31)<<6|e[t++]&63:a>239&&a<365?(a=((a&7)<<18|(e[t++]&63)<<12|(e[t++]&63)<<6|e[t++]&63)-65536,o[s++]=55296+(a>>10),o[s++]=56320+(a&1023)):o[s++]=(a&15)<<12|(e[t++]&63)<<6|e[t++]&63,s>8191&&((i??(i=[])).push(String.fromCharCode.apply(String,o)),s=0);return i!=null?(s>0&&i.push(String.fromCharCode.apply(String,o.slice(0,s))),i.join("")):String.fromCharCode.apply(String,o.slice(0,s))}function di(e,t,r){let n=r,i,o;for(let s=0;s<e.length;++s)i=e.charCodeAt(s),i<128?t[r++]=i:i<2048?(t[r++]=i>>6|192,t[r++]=i&63|128):(i&64512)===55296&&((o=e.charCodeAt(s+1))&64512)===56320?(i=65536+((i&1023)<<10)+(o&1023),++s,t[r++]=i>>18|240,t[r++]=i>>12&63|128,t[r++]=i>>6&63|128,t[r++]=i&63|128):(t[r++]=i>>12|224,t[r++]=i>>6&63|128,t[r++]=i&63|128);return r-n}function pe(e,t){return RangeError(`index out of range: ${e.pos} + ${t??1} > ${e.len}`)}function C0(e,t){return(e[t-4]|e[t-3]<<8|e[t-2]<<16|e[t-1]<<24)>>>0}var pi=class{buf;pos;len;_slice=Uint8Array.prototype.subarray;constructor(t){this.buf=t,this.pos=0,this.len=t.length}uint32(){let t=4294967295;if(t=(this.buf[this.pos]&127)>>>0,this.buf[this.pos++]<128||(t=(t|(this.buf[this.pos]&127)<<7)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&127)<<14)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&127)<<21)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&15)<<28)>>>0,this.buf[this.pos++]<128))return t;if((this.pos+=5)>this.len)throw this.pos=this.len,pe(this,10);return t}int32(){return this.uint32()|0}sint32(){let t=this.uint32();return t>>>1^-(t&1)|0}bool(){return this.uint32()!==0}fixed32(){if(this.pos+4>this.len)throw pe(this,4);return C0(this.buf,this.pos+=4)}sfixed32(){if(this.pos+4>this.len)throw pe(this,4);return C0(this.buf,this.pos+=4)|0}float(){if(this.pos+4>this.len)throw pe(this,4);let t=Js(this.buf,this.pos);return this.pos+=4,t}double(){if(this.pos+8>this.len)throw pe(this,4);let t=t2(this.buf,this.pos);return this.pos+=8,t}bytes(){let t=this.uint32(),r=this.pos,n=this.pos+t;if(n>this.len)throw pe(this,t);return this.pos+=t,r===n?new Uint8Array(0):this.buf.subarray(r,n)}string(){let t=this.bytes();return n2(t,0,t.length)}skip(t){if(typeof t=="number"){if(this.pos+t>this.len)throw pe(this,t);this.pos+=t}else do if(this.pos>=this.len)throw pe(this);while(this.buf[this.pos++]&128);return this}skipType(t){switch(t){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;(t=this.uint32()&7)!==4;)this.skipType(t);break;case 5:this.skip(4);break;default:throw Error(`invalid wire type ${t} at offset ${this.pos}`)}return this}readLongVarint(){let t=new te(0,0),r=0;if(this.len-this.pos>4){for(;r<4;++r)if(t.lo=(t.lo|(this.buf[this.pos]&127)<<r*7)>>>0,this.buf[this.pos++]<128)return t;if(t.lo=(t.lo|(this.buf[this.pos]&127)<<28)>>>0,t.hi=(t.hi|(this.buf[this.pos]&127)>>4)>>>0,this.buf[this.pos++]<128)return t;r=0}else{for(;r<3;++r){if(this.pos>=this.len)throw pe(this);if(t.lo=(t.lo|(this.buf[this.pos]&127)<<r*7)>>>0,this.buf[this.pos++]<128)return t}return t.lo=(t.lo|(this.buf[this.pos++]&127)<<r*7)>>>0,t}if(this.len-this.pos>4){for(;r<5;++r)if(t.hi=(t.hi|(this.buf[this.pos]&127)<<r*7+3)>>>0,this.buf[this.pos++]<128)return t}else for(;r<5;++r){if(this.pos>=this.len)throw pe(this);if(t.hi=(t.hi|(this.buf[this.pos]&127)<<r*7+3)>>>0,this.buf[this.pos++]<128)return t}throw Error("invalid varint encoding")}readFixed64(){if(this.pos+8>this.len)throw pe(this,8);let t=C0(this.buf,this.pos+=4),r=C0(this.buf,this.pos+=4);return new te(t,r)}int64(){return this.readLongVarint().toBigInt()}int64Number(){return this.readLongVarint().toNumber()}int64String(){return this.readLongVarint().toString()}uint64(){return this.readLongVarint().toBigInt(!0)}uint64Number(){return this.readLongVarint().toNumber(!0)}uint64String(){return this.readLongVarint().toString(!0)}sint64(){return this.readLongVarint().zzDecode().toBigInt()}sint64Number(){return this.readLongVarint().zzDecode().toNumber()}sint64String(){return this.readLongVarint().zzDecode().toString()}fixed64(){return this.readFixed64().toBigInt()}fixed64Number(){return this.readFixed64().toNumber()}fixed64String(){return this.readFixed64().toString()}sfixed64(){return this.readFixed64().toBigInt()}sfixed64Number(){return this.readFixed64().toNumber()}sfixed64String(){return this.readFixed64().toString()}};function yi(e){return new pi(e instanceof Uint8Array?e:e.subarray())}function Te(e,t){let r=yi(e);return t.decode(r)}function Ce(e){return globalThis.Buffer!=null?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):e}function o2(e=0){return globalThis.Buffer?.alloc!=null?Ce(globalThis.Buffer.alloc(e)):new Uint8Array(e)}function re(e=0){return globalThis.Buffer?.allocUnsafe!=null?Ce(globalThis.Buffer.allocUnsafe(e)):new Uint8Array(e)}var bi={};_t(bi,{base10:()=>X5});var gh=new Uint8Array(0);function s2(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}function qe(e){if(e instanceof Uint8Array&&e.constructor.name==="Uint8Array")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")}function a2(e){return new TextEncoder().encode(e)}function c2(e){return new TextDecoder().decode(e)}function G5(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(r[s]!==255)throw new TypeError(o+" is ambiguous");r[s]=i}var a=e.length,c=e.charAt(0),u=Math.log(a)/Math.log(256),f=Math.log(256)/Math.log(a);function l(h){if(h instanceof Uint8Array||(ArrayBuffer.isView(h)?h=new Uint8Array(h.buffer,h.byteOffset,h.byteLength):Array.isArray(h)&&(h=Uint8Array.from(h))),!(h instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(h.length===0)return"";for(var y=0,g=0,m=0,x=h.length;m!==x&&h[m]===0;)m++,y++;for(var v=(x-m)*f+1>>>0,T=new Uint8Array(v);m!==x;){for(var E=h[m],S=0,L=v-1;(E!==0||S<g)&&L!==-1;L--,S++)E+=256*T[L]>>>0,T[L]=E%a>>>0,E=E/a>>>0;if(E!==0)throw new Error("Non-zero carry");g=S,m++}for(var N=v-g;N!==v&&T[N]===0;)N++;for(var $=c.repeat(y);N<v;++N)$+=e.charAt(T[N]);return $}function p(h){if(typeof h!="string")throw new TypeError("Expected String");if(h.length===0)return new Uint8Array;var y=0;if(h[y]!==" "){for(var g=0,m=0;h[y]===c;)g++,y++;for(var x=(h.length-y)*u+1>>>0,v=new Uint8Array(x);h[y];){var T=r[h.charCodeAt(y)];if(T===255)return;for(var E=0,S=x-1;(T!==0||E<m)&&S!==-1;S--,E++)T+=a*v[S]>>>0,v[S]=T%256>>>0,T=T/256>>>0;if(T!==0)throw new Error("Non-zero carry");m=E,y++}if(h[y]!==" "){for(var L=x-m;L!==x&&v[L]===0;)L++;for(var N=new Uint8Array(g+(x-L)),$=g;L!==x;)N[$++]=v[L++];return N}}}function d(h){var y=p(h);if(y)return y;throw new Error(`Non-${t} character`)}return{encode:l,decodeUnsafe:p,decode:d}}var Y5=G5,Q5=Y5,f2=Q5;var gi=class{name;prefix;baseEncode;constructor(t,r,n){this.name=t,this.prefix=r,this.baseEncode=n}encode(t){if(t instanceof Uint8Array)return`${this.prefix}${this.baseEncode(t)}`;throw Error("Unknown type, must be binary type")}},mi=class{name;prefix;baseDecode;prefixCodePoint;constructor(t,r,n){if(this.name=t,this.prefix=r,r.codePointAt(0)===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=r.codePointAt(0),this.baseDecode=n}decode(t){if(typeof t=="string"){if(t.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(t)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(t.slice(this.prefix.length))}else throw Error("Can only multibase decode strings")}or(t){return l2(this,t)}},xi=class{decoders;constructor(t){this.decoders=t}or(t){return l2(this,t)}decode(t){let r=t[0],n=this.decoders[r];if(n!=null)return n.decode(t);throw RangeError(`Unable to decode multibase string ${JSON.stringify(t)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}};function l2(e,t){return new xi({...e.decoders??{[e.prefix]:e},...t.decoders??{[t.prefix]:t}})}var vi=class{name;prefix;baseEncode;baseDecode;encoder;decoder;constructor(t,r,n,i){this.name=t,this.prefix=r,this.baseEncode=n,this.baseDecode=i,this.encoder=new gi(t,r,n),this.decoder=new mi(t,r,i)}encode(t){return this.encoder.encode(t)}decode(t){return this.decoder.decode(t)}};function Jr({name:e,prefix:t,encode:r,decode:n}){return new vi(e,t,r,n)}function ur({name:e,prefix:t,alphabet:r}){let{encode:n,decode:i}=f2(r,e);return Jr({prefix:t,name:e,encode:n,decode:o=>qe(i(o))})}function W5(e,t,r,n){let i={};for(let f=0;f<t.length;++f)i[t[f]]=f;let o=e.length;for(;e[o-1]==="=";)--o;let s=new Uint8Array(o*r/8|0),a=0,c=0,u=0;for(let f=0;f<o;++f){let l=i[e[f]];if(l===void 0)throw new SyntaxError(`Non-${n} character`);c=c<<r|l,a+=r,a>=8&&(a-=8,s[u++]=255&c>>a)}if(a>=r||255&c<<8-a)throw new SyntaxError("Unexpected end of data");return s}function Z5(e,t,r){let n=t[t.length-1]==="=",i=(1<<r)-1,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!==0&&(o+=t[i&a<<r-s]),n)for(;o.length*r&7;)o+="=";return o}function It({name:e,prefix:t,bitsPerChar:r,alphabet:n}){return Jr({prefix:t,name:e,encode(i){return Z5(i,n,r)},decode(i){return W5(i,n,r,e)}})}var X5=ur({prefix:"9",name:"base10",alphabet:"0123456789"});var wi={};_t(wi,{base16:()=>J5,base16upper:()=>j5});var J5=It({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),j5=It({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var Ei={};_t(Ei,{base2:()=>t8});var t8=It({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var Si={};_t(Si,{base256emoji:()=>o8});var h2=Array.from("\u{1F680}\u{1FA90}\u2604\u{1F6F0}\u{1F30C}\u{1F311}\u{1F312}\u{1F313}\u{1F314}\u{1F315}\u{1F316}\u{1F317}\u{1F318}\u{1F30D}\u{1F30F}\u{1F30E}\u{1F409}\u2600\u{1F4BB}\u{1F5A5}\u{1F4BE}\u{1F4BF}\u{1F602}\u2764\u{1F60D}\u{1F923}\u{1F60A}\u{1F64F}\u{1F495}\u{1F62D}\u{1F618}\u{1F44D}\u{1F605}\u{1F44F}\u{1F601}\u{1F525}\u{1F970}\u{1F494}\u{1F496}\u{1F499}\u{1F622}\u{1F914}\u{1F606}\u{1F644}\u{1F4AA}\u{1F609}\u263A\u{1F44C}\u{1F917}\u{1F49C}\u{1F614}\u{1F60E}\u{1F607}\u{1F339}\u{1F926}\u{1F389}\u{1F49E}\u270C\u2728\u{1F937}\u{1F631}\u{1F60C}\u{1F338}\u{1F64C}\u{1F60B}\u{1F497}\u{1F49A}\u{1F60F}\u{1F49B}\u{1F642}\u{1F493}\u{1F929}\u{1F604}\u{1F600}\u{1F5A4}\u{1F603}\u{1F4AF}\u{1F648}\u{1F447}\u{1F3B6}\u{1F612}\u{1F92D}\u2763\u{1F61C}\u{1F48B}\u{1F440}\u{1F62A}\u{1F611}\u{1F4A5}\u{1F64B}\u{1F61E}\u{1F629}\u{1F621}\u{1F92A}\u{1F44A}\u{1F973}\u{1F625}\u{1F924}\u{1F449}\u{1F483}\u{1F633}\u270B\u{1F61A}\u{1F61D}\u{1F634}\u{1F31F}\u{1F62C}\u{1F643}\u{1F340}\u{1F337}\u{1F63B}\u{1F613}\u2B50\u2705\u{1F97A}\u{1F308}\u{1F608}\u{1F918}\u{1F4A6}\u2714\u{1F623}\u{1F3C3}\u{1F490}\u2639\u{1F38A}\u{1F498}\u{1F620}\u261D\u{1F615}\u{1F33A}\u{1F382}\u{1F33B}\u{1F610}\u{1F595}\u{1F49D}\u{1F64A}\u{1F639}\u{1F5E3}\u{1F4AB}\u{1F480}\u{1F451}\u{1F3B5}\u{1F91E}\u{1F61B}\u{1F534}\u{1F624}\u{1F33C}\u{1F62B}\u26BD\u{1F919}\u2615\u{1F3C6}\u{1F92B}\u{1F448}\u{1F62E}\u{1F646}\u{1F37B}\u{1F343}\u{1F436}\u{1F481}\u{1F632}\u{1F33F}\u{1F9E1}\u{1F381}\u26A1\u{1F31E}\u{1F388}\u274C\u270A\u{1F44B}\u{1F630}\u{1F928}\u{1F636}\u{1F91D}\u{1F6B6}\u{1F4B0}\u{1F353}\u{1F4A2}\u{1F91F}\u{1F641}\u{1F6A8}\u{1F4A8}\u{1F92C}\u2708\u{1F380}\u{1F37A}\u{1F913}\u{1F619}\u{1F49F}\u{1F331}\u{1F616}\u{1F476}\u{1F974}\u25B6\u27A1\u2753\u{1F48E}\u{1F4B8}\u2B07\u{1F628}\u{1F31A}\u{1F98B}\u{1F637}\u{1F57A}\u26A0\u{1F645}\u{1F61F}\u{1F635}\u{1F44E}\u{1F932}\u{1F920}\u{1F927}\u{1F4CC}\u{1F535}\u{1F485}\u{1F9D0}\u{1F43E}\u{1F352}\u{1F617}\u{1F911}\u{1F30A}\u{1F92F}\u{1F437}\u260E\u{1F4A7}\u{1F62F}\u{1F486}\u{1F446}\u{1F3A4}\u{1F647}\u{1F351}\u2744\u{1F334}\u{1F4A3}\u{1F438}\u{1F48C}\u{1F4CD}\u{1F940}\u{1F922}\u{1F445}\u{1F4A1}\u{1F4A9}\u{1F450}\u{1F4F8}\u{1F47B}\u{1F910}\u{1F92E}\u{1F3BC}\u{1F975}\u{1F6A9}\u{1F34E}\u{1F34A}\u{1F47C}\u{1F48D}\u{1F4E3}\u{1F942}"),e8=h2.reduce((e,t,r)=>(e[r]=t,e),[]),r8=h2.reduce((e,t,r)=>(e[t.codePointAt(0)]=r,e),[]);function n8(e){return e.reduce((t,r)=>(t+=e8[r],t),"")}function i8(e){let t=[];for(let r of e){let n=r8[r.codePointAt(0)];if(n===void 0)throw new Error(`Non-base256emoji character: ${r}`);t.push(n)}return new Uint8Array(t)}var o8=Jr({prefix:"\u{1F680}",name:"base256emoji",encode:n8,decode:i8});var Ii={};_t(Ii,{base32:()=>ze,base32hex:()=>u8,base32hexpad:()=>l8,base32hexpadupper:()=>h8,base32hexupper:()=>f8,base32pad:()=>a8,base32padupper:()=>c8,base32upper:()=>s8,base32z:()=>d8});var ze=It({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),s8=It({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),a8=It({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),c8=It({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),u8=It({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),f8=It({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),l8=It({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),h8=It({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),d8=It({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var Ai={};_t(Ai,{base36:()=>p8,base36upper:()=>y8});var p8=ur({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),y8=ur({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var Bi={};_t(Bi,{base58btc:()=>Dt,base58flickr:()=>g8});var Dt=ur({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),g8=ur({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var Ti={};_t(Ti,{base64:()=>kn,base64pad:()=>m8,base64url:()=>x8,base64urlpad:()=>v8});var kn=It({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),m8=It({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),x8=It({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),v8=It({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var Ci={};_t(Ci,{base8:()=>b8});var b8=It({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var Ri={};_t(Ri,{identity:()=>w8});var w8=Jr({prefix:"\0",name:"identity",encode:e=>c2(e),decode:e=>a2(e)});var Lh=new TextEncoder,Nh=new TextDecoder;var Pi={};_t(Pi,{identity:()=>fr});var I8=y2,d2=128,A8=127,B8=~A8,T8=Math.pow(2,31);function y2(e,t,r){t=t||[],r=r||0;for(var n=r;e>=T8;)t[r++]=e&255|d2,e/=128;for(;e&B8;)t[r++]=e&255|d2,e>>>=7;return t[r]=e|0,y2.bytes=r-n+1,t}var C8=_i,R8=128,p2=127;function _i(e,n){var r=0,n=n||0,i=0,o=n,s,a=e.length;do{if(o>=a)throw _i.bytes=0,new RangeError("Could not decode varint");s=e[o++],r+=i<28?(s&p2)<<i:(s&p2)*Math.pow(2,i),i+=7}while(s>=R8);return _i.bytes=o-n,r}var _8=Math.pow(2,7),P8=Math.pow(2,14),L8=Math.pow(2,21),N8=Math.pow(2,28),D8=Math.pow(2,35),k8=Math.pow(2,42),O8=Math.pow(2,49),U8=Math.pow(2,56),F8=Math.pow(2,63),M8=function(e){return e<_8?1:e<P8?2:e<L8?3:e<N8?4:e<D8?5:e<k8?6:e<O8?7:e<U8?8:e<F8?9:10},K8={encode:I8,decode:C8,encodingLength:M8},V8=K8,On=V8;function Un(e,t=0){return[On.decode(e,t),On.decode.bytes]}function jr(e,t,r=0){return On.encode(e,t,r),t}function tn(e){return On.encodingLength(e)}function Re(e,t){let r=t.byteLength,n=tn(e),i=n+tn(r),o=new Uint8Array(i+r);return jr(e,o,0),jr(r,o,n),o.set(t,i),new en(e,r,t,o)}function Tr(e){let t=qe(e),[r,n]=Un(t),[i,o]=Un(t.subarray(n)),s=t.subarray(n+o);if(s.byteLength!==i)throw new Error("Incorrect length");return new en(r,i,s,t)}function g2(e,t){if(e===t)return!0;{let r=t;return e.code===r.code&&e.size===r.size&&r.bytes instanceof Uint8Array&&s2(e.bytes,r.bytes)}}var en=class{code;size;digest;bytes;constructor(t,r,n,i){this.code=t,this.size=r,this.digest=n,this.bytes=i}};var m2=0,q8="identity",x2=qe;function z8(e){return Re(m2,x2(e))}var fr={code:m2,name:q8,encode:x2,digest:z8};var Di={};_t(Di,{sha256:()=>wt,sha512:()=>H8});function Ni({name:e,code:t,encode:r}){return new Li(e,t,r)}var Li=class{name;code;encode;constructor(t,r,n){this.name=t,this.code=r,this.encode=n}digest(t){if(t instanceof Uint8Array){let r=this.encode(t);return r instanceof Uint8Array?Re(this.code,r):r.then(n=>Re(this.code,n))}else throw Error("Unknown type, must be binary type")}};function b2(e){return async t=>new Uint8Array(await crypto.subtle.digest(e,t))}var wt=Ni({name:"sha2-256",code:18,encode:b2("SHA-256")}),H8=Ni({name:"sha2-512",code:19,encode:b2("SHA-512")});function w2(e,t){let{bytes:r,version:n}=e;switch(n){case 0:return G8(r,ki(e),t??Dt.encoder);default:return Y8(r,ki(e),t??ze.encoder)}}var E2=new WeakMap;function ki(e){let t=E2.get(e);if(t==null){let r=new Map;return E2.set(e,r),r}return t}var Wt=class e{code;version;multihash;bytes;"/";constructor(t,r,n,i){this.code=r,this.version=t,this.multihash=n,this.bytes=i,this["/"]=i}get asCID(){return this}get byteOffset(){return this.bytes.byteOffset}get byteLength(){return this.bytes.byteLength}toV0(){switch(this.version){case 0:return this;case 1:{let{code:t,multihash:r}=this;if(t!==Fn)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(r.code!==Q8)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return e.createV0(r)}default:throw Error(`Can not convert CID version ${this.version} to version 0. This is a bug please report`)}}toV1(){switch(this.version){case 0:{let{code:t,digest:r}=this.multihash,n=Re(t,r);return e.createV1(this.code,n)}case 1:return this;default:throw Error(`Can not convert CID version ${this.version} to version 1. This is a bug please report`)}}equals(t){return e.equals(this,t)}static equals(t,r){let n=r;return n!=null&&t.code===n.code&&t.version===n.version&&g2(t.multihash,n.multihash)}toString(t){return w2(this,t)}toJSON(){return{"/":w2(this)}}link(){return this}[Symbol.toStringTag]="CID";[Symbol.for("nodejs.util.inspect.custom")](){return`CID(${this.toString()})`}static asCID(t){if(t==null)return null;let r=t;if(r instanceof e)return r;if(r["/"]!=null&&r["/"]===r.bytes||r.asCID===r){let{version:n,code:i,multihash:o,bytes:s}=r;return new e(n,i,o,s??S2(n,i,o.bytes))}else if(r[W8]===!0){let{version:n,multihash:i,code:o}=r,s=Tr(i);return e.create(n,o,s)}else return null}static create(t,r,n){if(typeof r!="number")throw new Error("String codecs are no longer supported");if(!(n.bytes instanceof Uint8Array))throw new Error("Invalid digest");switch(t){case 0:{if(r!==Fn)throw new Error(`Version 0 CID must use dag-pb (code: ${Fn}) block encoding`);return new e(t,r,n,n.bytes)}case 1:{let i=S2(t,r,n.bytes);return new e(t,r,n,i)}default:throw new Error("Invalid version")}}static createV0(t){return e.create(0,Fn,t)}static createV1(t,r){return e.create(1,t,r)}static decode(t){let[r,n]=e.decodeFirst(t);if(n.length!==0)throw new Error("Incorrect length");return r}static decodeFirst(t){let r=e.inspectBytes(t),n=r.size-r.multihashSize,i=qe(t.subarray(n,n+r.multihashSize));if(i.byteLength!==r.multihashSize)throw new Error("Incorrect length");let o=i.subarray(r.multihashSize-r.digestSize),s=new en(r.multihashCode,r.digestSize,o,i);return[r.version===0?e.createV0(s):e.createV1(r.codec,s),t.subarray(r.size)]}static inspectBytes(t){let r=0,n=()=>{let[l,p]=Un(t.subarray(r));return r+=p,l},i=n(),o=Fn;if(i===18?(i=0,r=0):o=n(),i!==0&&i!==1)throw new RangeError(`Invalid CID version ${i}`);let s=r,a=n(),c=n(),u=r+c,f=u-s;return{version:i,codec:o,multihashCode:a,digestSize:c,multihashSize:f,size:u}}static parse(t,r){let[n,i]=$8(t,r),o=e.decode(i);if(o.version===0&&t[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return ki(o).set(n,t),o}};function $8(e,t){switch(e[0]){case"Q":{let r=t??Dt;return[Dt.prefix,r.decode(`${Dt.prefix}${e}`)]}case Dt.prefix:{let r=t??Dt;return[Dt.prefix,r.decode(e)]}case ze.prefix:{let r=t??ze;return[ze.prefix,r.decode(e)]}default:{if(t==null)throw Error("To parse non base32 or base58btc encoded CID multibase decoder must be provided");return[e[0],t.decode(e)]}}}function G8(e,t,r){let{prefix:n}=r;if(n!==Dt.prefix)throw Error(`Cannot string encode V0 in ${r.name} encoding`);let i=t.get(n);if(i==null){let o=r.encode(e).slice(1);return t.set(n,o),o}else return i}function Y8(e,t,r){let{prefix:n}=r,i=t.get(n);if(i==null){let o=r.encode(e);return t.set(n,o),o}else return i}var Fn=112,Q8=18;function S2(e,t,r){let n=tn(e),i=n+tn(t),o=new Uint8Array(i+r.byteLength);return jr(e,o,0),jr(t,o,n),o.set(r,i),o}var W8=Symbol.for("@ipld/js-cid/CID");var lr={...Ri,...Ei,...Ci,...bi,...wi,...Ii,...Ai,...Bi,...Ti,...Si},td={...Di,...Pi};function A2(e,t,r,n){return{name:e,prefix:t,encoder:{name:e,prefix:t,encode:r},decoder:{decode:n}}}var I2=A2("utf8","u",e=>"u"+new TextDecoder("utf8").decode(e),e=>new TextEncoder().encode(e.substring(1))),Oi=A2("ascii","a",e=>{let t="a";for(let r=0;r<e.length;r++)t+=String.fromCharCode(e[r]);return t},e=>{e=e.substring(1);let t=re(e.length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t}),Z8={utf8:I2,"utf-8":I2,hex:lr.base16,latin1:Oi,ascii:Oi,binary:Oi,...lr},_0=Z8;function ht(e,t="utf8"){let r=_0[t];if(r==null)throw new Error(`Unsupported encoding "${t}"`);return(t==="utf8"||t==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?Ce(globalThis.Buffer.from(e,"utf-8")):r.decoder.decode(`${r.prefix}${e}`)}function Ui(e){let t=e??8192,r=t>>>1,n,i=t;return function(s){if(s<1||s>r)return re(s);i+s>t&&(n=re(t),i=0);let a=n.subarray(i,i+=s);return i&7&&(i=(i|7)+1),a}}var Rr=class{fn;len;next;val;constructor(t,r,n){this.fn=t,this.len=r,this.next=void 0,this.val=n}};function Fi(){}var Ki=class{head;tail;len;next;constructor(t){this.head=t.head,this.tail=t.tail,this.len=t.len,this.next=t.states}},X8=Ui();function J8(e){return globalThis.Buffer!=null?re(e):X8(e)}var Vn=class{len;head;tail;states;constructor(){this.len=0,this.head=new Rr(Fi,0,0),this.tail=this.head,this.states=null}_push(t,r,n){return this.tail=this.tail.next=new Rr(t,r,n),this.len+=r,this}uint32(t){return this.len+=(this.tail=this.tail.next=new Vi((t=t>>>0)<128?1:t<16384?2:t<2097152?3:t<268435456?4:5,t)).len,this}int32(t){return t<0?this._push(Mn,10,te.fromNumber(t)):this.uint32(t)}sint32(t){return this.uint32((t<<1^t>>31)>>>0)}uint64(t){let r=te.fromBigInt(t);return this._push(Mn,r.length(),r)}uint64Number(t){let r=te.fromNumber(t);return this._push(Mn,r.length(),r)}uint64String(t){return this.uint64(BigInt(t))}int64(t){return this.uint64(t)}int64Number(t){return this.uint64Number(t)}int64String(t){return this.uint64String(t)}sint64(t){let r=te.fromBigInt(t).zzEncode();return this._push(Mn,r.length(),r)}sint64Number(t){let r=te.fromNumber(t).zzEncode();return this._push(Mn,r.length(),r)}sint64String(t){return this.sint64(BigInt(t))}bool(t){return this._push(Mi,1,t?1:0)}fixed32(t){return this._push(Kn,4,t>>>0)}sfixed32(t){return this.fixed32(t)}fixed64(t){let r=te.fromBigInt(t);return this._push(Kn,4,r.lo)._push(Kn,4,r.hi)}fixed64Number(t){let r=te.fromNumber(t);return this._push(Kn,4,r.lo)._push(Kn,4,r.hi)}fixed64String(t){return this.fixed64(BigInt(t))}sfixed64(t){return this.fixed64(t)}sfixed64Number(t){return this.fixed64Number(t)}sfixed64String(t){return this.fixed64String(t)}float(t){return this._push(Xs,4,t)}double(t){return this._push(js,8,t)}bytes(t){let r=t.length>>>0;return r===0?this._push(Mi,1,0):this.uint32(r)._push(t6,r,t)}string(t){let r=r2(t);return r!==0?this.uint32(r)._push(di,r,t):this._push(Mi,1,0)}fork(){return this.states=new Ki(this),this.head=this.tail=new Rr(Fi,0,0),this.len=0,this}reset(){return this.states!=null?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new Rr(Fi,0,0),this.len=0),this}ldelim(){let t=this.head,r=this.tail,n=this.len;return this.reset().uint32(n),n!==0&&(this.tail.next=t.next,this.tail=r,this.len+=n),this}finish(){let t=this.head.next,r=J8(this.len),n=0;for(;t!=null;)t.fn(t.val,r,n),n+=t.len,t=t.next;return r}};function Mi(e,t,r){t[r]=e&255}function j8(e,t,r){for(;e>127;)t[r++]=e&127|128,e>>>=7;t[r]=e}var Vi=class extends Rr{next;constructor(t,r){super(j8,t,r),this.next=void 0}};function Mn(e,t,r){for(;e.hi!==0;)t[r++]=e.lo&127|128,e.lo=(e.lo>>>7|e.hi<<25)>>>0,e.hi>>>=7;for(;e.lo>127;)t[r++]=e.lo&127|128,e.lo=e.lo>>>7;t[r++]=e.lo}function Kn(e,t,r){t[r]=e&255,t[r+1]=e>>>8&255,t[r+2]=e>>>16&255,t[r+3]=e>>>24}function t6(e,t,r){t.set(e,r)}globalThis.Buffer!=null&&(Vn.prototype.bytes=function(e){let t=e.length>>>0;return this.uint32(t),t>0&&this._push(e6,t,e),this},Vn.prototype.string=function(e){let t=globalThis.Buffer.byteLength(e);return this.uint32(t),t>0&&this._push(r6,t,e),this});function e6(e,t,r){t.set(e,r)}function r6(e,t,r){e.length<40?di(e,t,r):t.utf8Write!=null?t.utf8Write(e,r):t.set(ht(e),r)}function qi(){return new Vn}function _e(e,t){let r=qi();return t.encode(e,r,{lengthDelimited:!1}),r.finish()}var rn;(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"})(rn||(rn={}));function P0(e,t,r,n){return{name:e,type:t,encode:r,decode:n}}function nn(e){function t(i){if(e[i.toString()]==null)throw new Error("Invalid enum value");return e[i]}let r=function(o,s){let a=t(o);s.int32(a)},n=function(o){let s=o.int32();return t(s)};return P0("enum",rn.VARINT,r,n)}function Pe(e,t){return P0("message",rn.LENGTH_DELIMITED,e,t)}var qn=class extends Error{code;constructor(t,r,n){super(t,n),this.code=r}};var B2;(function(e){let t;e.codec=()=>(t==null&&(t=Pe((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.key!=null&&(n.uint32(10),n.bytes(r.key)),r.value!=null&&(n.uint32(18),n.bytes(r.value)),r.author!=null&&(n.uint32(26),n.bytes(r.author)),r.signature!=null&&(n.uint32(34),n.bytes(r.signature)),r.timeReceived!=null&&(n.uint32(42),n.string(r.timeReceived)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={},o=n==null?r.len:r.pos+n;for(;r.pos<o;){let s=r.uint32();switch(s>>>3){case 1:{i.key=r.bytes();break}case 2:{i.value=r.bytes();break}case 3:{i.author=r.bytes();break}case 4:{i.signature=r.bytes();break}case 5:{i.timeReceived=r.string();break}default:{r.skipType(s&7);break}}}return i})),t),e.encode=r=>_e(r,e.codec()),e.decode=r=>Te(r,e.codec())})(B2||(B2={}));var J;(function(e){e.PUT_VALUE="PUT_VALUE",e.GET_VALUE="GET_VALUE",e.ADD_PROVIDER="ADD_PROVIDER",e.GET_PROVIDERS="GET_PROVIDERS",e.FIND_NODE="FIND_NODE",e.PING="PING"})(J||(J={}));var L0;(function(e){e[e.PUT_VALUE=0]="PUT_VALUE",e[e.GET_VALUE=1]="GET_VALUE",e[e.ADD_PROVIDER=2]="ADD_PROVIDER",e[e.GET_PROVIDERS=3]="GET_PROVIDERS",e[e.FIND_NODE=4]="FIND_NODE",e[e.PING=5]="PING"})(L0||(L0={}));(function(e){e.codec=()=>nn(L0)})(J||(J={}));var sn;(function(e){e.NOT_CONNECTED="NOT_CONNECTED",e.CONNECTED="CONNECTED",e.CAN_CONNECT="CAN_CONNECT",e.CANNOT_CONNECT="CANNOT_CONNECT"})(sn||(sn={}));var zi;(function(e){e[e.NOT_CONNECTED=0]="NOT_CONNECTED",e[e.CONNECTED=1]="CONNECTED",e[e.CAN_CONNECT=2]="CAN_CONNECT",e[e.CANNOT_CONNECT=3]="CANNOT_CONNECT"})(zi||(zi={}));(function(e){e.codec=()=>nn(zi)})(sn||(sn={}));var on;(function(e){let t;e.codec=()=>(t==null&&(t=Pe((r,n,i={})=>{if(i.lengthDelimited!==!1&&n.fork(),r.id!=null&&r.id.byteLength>0&&(n.uint32(10),n.bytes(r.id)),r.multiaddrs!=null)for(let o of r.multiaddrs)n.uint32(18),n.bytes(o);r.connection!=null&&(n.uint32(24),sn.codec().encode(r.connection,n)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={id:o2(0),multiaddrs:[]},o=n==null?r.len:r.pos+n;for(;r.pos<o;){let s=r.uint32();switch(s>>>3){case 1:{i.id=r.bytes();break}case 2:{i.multiaddrs.push(r.bytes());break}case 3:{i.connection=sn.codec().decode(r);break}default:{r.skipType(s&7);break}}}return i})),t),e.encode=r=>_e(r,e.codec()),e.decode=r=>Te(r,e.codec())})(on||(on={}));var ae;(function(e){let t;e.codec=()=>(t==null&&(t=Pe((r,n,i={})=>{if(i.lengthDelimited!==!1&&n.fork(),r.type!=null&&L0[r.type]!==0&&(n.uint32(8),J.codec().encode(r.type,n)),r.clusterLevel!=null&&(n.uint32(80),n.int32(r.clusterLevel)),r.key!=null&&(n.uint32(18),n.bytes(r.key)),r.record!=null&&(n.uint32(26),n.bytes(r.record)),r.closer!=null)for(let o of r.closer)n.uint32(66),on.codec().encode(o,n);if(r.providers!=null)for(let o of r.providers)n.uint32(74),on.codec().encode(o,n);i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={type:J.PUT_VALUE,closer:[],providers:[]},o=n==null?r.len:r.pos+n;for(;r.pos<o;){let s=r.uint32();switch(s>>>3){case 1:{i.type=J.codec().decode(r);break}case 10:{i.clusterLevel=r.int32();break}case 2:{i.key=r.bytes();break}case 3:{i.record=r.bytes();break}case 8:{i.closer.push(on.codec().decode(r,r.uint32()));break}case 9:{i.providers.push(on.codec().decode(r,r.uint32()));break}default:{r.skipType(s&7);break}}}return i})),t),e.encode=r=>_e(r,e.codec()),e.decode=r=>Te(r,e.codec())})(ae||(ae={}));function Hi(e,t={}){let r={...e,name:"SEND_QUERY",type:0,messageName:e.type,messageType:J[e.type]};return t.onProgress?.(new Qt("kad-dht:query:send-query",{detail:r})),r}function zn(e,t={}){let r={...e,name:"PEER_RESPONSE",type:1,messageName:e.messageType,closer:e.closer!=null?e.closer:[],providers:e.providers!=null?e.providers:[]};return t.onProgress?.(new Qt("kad-dht:query:peer-response",{detail:r})),r}function N0(e,t={}){let r={...e,name:"FINAL_PEER",type:2};return t.onProgress?.(new Qt("kad-dht:query:final-peer",{detail:r})),r}function ne(e,t={}){let r={...e,name:"QUERY_ERROR",type:3};return t.onProgress?.(new Qt("kad-dht:query:query-error",{detail:r})),r}function $i(e,t={}){let r={...e,name:"PROVIDER",type:4};return t.onProgress?.(new Qt("kad-dht:query:provider",{detail:r})),r}function Hn(e,t={}){let r={...e,name:"VALUE",type:5};return t.onProgress?.(new Qt("kad-dht:query:value",{detail:r})),r}function Gi(e,t={}){let r={...e,name:"DIAL_PEER",type:7};return t.onProgress?.(new Qt("kad-dht:query:dial-peer",{detail:r})),r}var $n;(function(e){let t;e.codec=()=>(t==null&&(t=Pe((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.key!=null&&r.key.byteLength>0&&(n.uint32(10),n.bytes(r.key)),r.value!=null&&r.value.byteLength>0&&(n.uint32(18),n.bytes(r.value)),r.timeReceived!=null&&r.timeReceived!==""&&(n.uint32(42),n.string(r.timeReceived)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={key:new Uint8Array(0),value:new Uint8Array(0),timeReceived:""},o=n==null?r.len:r.pos+n;for(;r.pos<o;){let s=r.uint32();switch(s>>>3){case 1:i.key=r.bytes();break;case 2:i.value=r.bytes();break;case 5:i.timeReceived=r.string();break;default:r.skipType(s&7);break}}return i})),t),e.encode=r=>_e(r,e.codec()),e.decode=r=>Te(r,e.codec())})($n||($n={}));function T2(e){let t=e.getUTCFullYear(),r=String(e.getUTCMonth()+1).padStart(2,"0"),n=String(e.getUTCDate()).padStart(2,"0"),i=String(e.getUTCHours()).padStart(2,"0"),o=String(e.getUTCMinutes()).padStart(2,"0"),s=String(e.getUTCSeconds()).padStart(2,"0"),a=e.getUTCMilliseconds(),c=String(a*1e3*1e3).padStart(9,"0");return`${t}-${r}-${n}T${i}:${o}:${s}.${c}Z`}function C2(e){let t=new RegExp("(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2})\\.(\\d+)Z"),r=String(e).trim().match(t);if(r==null)throw new Error("Invalid format");let n=parseInt(r[1],10),i=parseInt(r[2],10)-1,o=parseInt(r[3],10),s=parseInt(r[4],10),a=parseInt(r[5],10),c=parseInt(r[6],10),u=parseInt(r[7].slice(0,-6),10);return new Date(Date.UTC(n,i,o,s,a,c,u))}var kt=class e{key;value;timeReceived;constructor(t,r,n){if(!(t instanceof Uint8Array))throw new Error("key must be a Uint8Array");if(!(r instanceof Uint8Array))throw new Error("value must be a Uint8Array");this.key=t,this.value=r,this.timeReceived=n}serialize(){return $n.encode(this.prepareSerialize())}prepareSerialize(){return{key:this.key,value:this.value,timeReceived:T2(this.timeReceived)}}static deserialize(t){let r=$n.decode(t);return new e(r.key,r.value,new Date(r.timeReceived))}static fromDeserialized(t){let r=C2(t.timeReceived);if(t.key==null)throw new Error("key missing from deserialized object");if(t.value==null)throw new Error("value missing from deserialized object");return new e(t.key,t.value,r)}};function q(e,t="utf8"){let r=_0[t];if(r==null)throw new Error(`Unsupported encoding "${t}"`);return(t==="utf8"||t==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?globalThis.Buffer.from(e.buffer,e.byteOffset,e.byteLength).toString("utf8"):r.encoder.encode(e).substring(1)}function R2(e,t,r){if(r.length===0){let s="No records given";throw new _(s,"ERR_NO_RECORDS_RECEIVED")}let i=q(t).split("/");if(i.length<3){let s="Record key does not have a selector function";throw new _(s,"ERR_NO_SELECTOR_FUNCTION_FOR_RECORD_KEY")}let o=e[i[1].toString()];if(o==null){let s=`No selector function configured for key type "${i[1]}"`;throw new _(s,"ERR_UNRECOGNIZED_KEY_PREFIX")}return r.length===1?0:o(t,r)}function i6(e,t){return 0}var _2={pk:i6};async function an(e,t){let r=t.key,i=q(r).split("/");if(i.length<3)return;let o=e[i[1].toString()];if(o==null){let s=`No validator available for key type "${i[1]}"`;throw new _(s,"ERR_INVALID_RECORD_KEY_TYPE")}await o(r,t.value)}var o6=async(e,t)=>{if(!(e instanceof Uint8Array))throw new _('"key" must be a Uint8Array',"ERR_INVALID_RECORD_KEY_NOT_BUFFER");if(e.byteLength<5)throw new _("invalid public key record","ERR_INVALID_RECORD_KEY_TOO_SHORT");if(q(e.subarray(0,4))!=="/pk/")throw new _("key was not prefixed with /pk/","ERR_INVALID_RECORD_KEY_BAD_PREFIX");let n=e.slice(4),i=await wt.digest(t);if(!pt(n,i.bytes))throw new _("public key does not match passed in key","ERR_INVALID_RECORD_HASH_MISMATCH")},P2={pk:o6};var s6=Symbol.for("nodejs.util.inspect.custom"),L2=Object.values(lr).map(e=>e.decoder).reduce((e,t)=>e.or(t),lr.identity.decoder),N2=114,Yi=36,Qi=37,Gn=class{type;multihash;privateKey;publicKey;string;constructor(t){this.type=t.type,this.multihash=t.multihash,this.privateKey=t.privateKey,Object.defineProperty(this,"string",{enumerable:!1,writable:!0})}get[Symbol.toStringTag](){return`PeerId(${this.toString()})`}[qs]=!0;toString(){return this.string==null&&(this.string=Dt.encode(this.multihash.bytes).slice(1)),this.string}toCID(){return Wt.createV1(N2,this.multihash)}toBytes(){return this.multihash.bytes}toJSON(){return this.toString()}equals(t){if(t==null)return!1;if(t instanceof Uint8Array)return pt(this.multihash.bytes,t);if(typeof t=="string")return ce(t).equals(this);if(t?.multihash?.bytes!=null)return pt(this.multihash.bytes,t.multihash.bytes);throw new Error("not valid Id")}[s6](){return`PeerId(${this.toString()})`}},cn=class extends Gn{type="RSA";publicKey;constructor(t){super({...t,type:"RSA"}),this.publicKey=t.publicKey}},un=class extends Gn{type="Ed25519";publicKey;constructor(t){super({...t,type:"Ed25519"}),this.publicKey=t.multihash.digest}},fn=class extends Gn{type="secp256k1";publicKey;constructor(t){super({...t,type:"secp256k1"}),this.publicKey=t.multihash.digest}};function ce(e,t){if(t=t??L2,e.charAt(0)==="1"||e.charAt(0)==="Q"){let r=Tr(Dt.decode(`z${e}`));return e.startsWith("12D")?new un({multihash:r}):e.startsWith("16U")?new fn({multihash:r}):new cn({multihash:r})}return He(L2.decode(e))}function He(e){try{let t=Tr(e);if(t.code===fr.code){if(t.digest.length===Yi)return new un({multihash:t});if(t.digest.length===Qi)return new fn({multihash:t})}if(t.code===wt.code)return new cn({multihash:t})}catch{return a6(Wt.decode(e))}throw new Error("Supplied PeerID CID is invalid")}function a6(e){if(e==null||e.multihash==null||e.version==null||e.version===1&&e.code!==N2)throw new Error("Supplied PeerID CID is invalid");let t=e.multihash;if(t.code===wt.code)return new cn({multihash:e.multihash});if(t.code===fr.code){if(t.digest.length===Yi)return new un({multihash:e.multihash});if(t.digest.length===Qi)return new fn({multihash:e.multihash})}throw new Error("Supplied PeerID CID is invalid")}async function D2(e,t){return e.length===Yi?new un({multihash:Re(fr.code,e),privateKey:t}):e.length===Qi?new fn({multihash:Re(fr.code,e),privateKey:t}):new cn({multihash:await wt.digest(e),publicKey:e,privateKey:t})}var $e="/",k2=new TextEncoder().encode($e),D0=k2[0],ln=class e{_buf;constructor(t,r){if(typeof t=="string")this._buf=ht(t);else if(t instanceof Uint8Array)this._buf=t;else throw new Error("Invalid key, should be String of Uint8Array");if(r==null&&(r=!0),r&&this.clean(),this._buf.byteLength===0||this._buf[0]!==D0)throw new Error("Invalid key")}toString(t="utf8"){return q(this._buf,t)}uint8Array(){return this._buf}get[Symbol.toStringTag](){return`Key(${this.toString()})`}static withNamespaces(t){return new e(t.join($e))}static random(){return new e(Math.random().toString().substring(2))}static asKey(t){return t instanceof Uint8Array||typeof t=="string"?new e(t):typeof t.uint8Array=="function"?new e(t.uint8Array()):null}clean(){if((this._buf==null||this._buf.byteLength===0)&&(this._buf=k2),this._buf[0]!==D0){let t=new Uint8Array(this._buf.byteLength+1);t.fill(D0,0,1),t.set(this._buf,1),this._buf=t}for(;this._buf.byteLength>1&&this._buf[this._buf.byteLength-1]===D0;)this._buf=this._buf.subarray(0,-1)}less(t){let r=this.list(),n=t.list();for(let i=0;i<r.length;i++){if(n.length<i+1)return!1;let o=r[i],s=n[i];if(o<s)return!0;if(o>s)return!1}return r.length<n.length}reverse(){return e.withNamespaces(this.list().slice().reverse())}namespaces(){return this.list()}baseNamespace(){let t=this.namespaces();return t[t.length-1]}list(){return this.toString().split($e).slice(1)}type(){return c6(this.baseNamespace())}name(){return u6(this.baseNamespace())}instance(t){return new e(this.toString()+":"+t)}path(){let t=this.parent().toString();return t.endsWith($e)||(t+=$e),t+=this.type(),new e(t)}parent(){let t=this.list();return t.length===1?new e($e):new e(t.slice(0,-1).join($e))}child(t){return this.toString()===$e?t:t.toString()===$e?this:new e(this.toString()+t.toString(),!1)}isAncestorOf(t){return t.toString()===this.toString()?!1:t.toString().startsWith(this.toString())}isDecendantOf(t){return t.toString()===this.toString()?!1:this.toString().startsWith(t.toString())}isTopLevel(){return this.list().length===1}concat(...t){return e.withNamespaces([...this.namespaces(),...f6(t.map(r=>r.namespaces()))])}};function c6(e){let t=e.split(":");return t.length<2?"":t.slice(0,-1).join(":")}function u6(e){let t=e.split(":");return t[t.length-1]}function f6(e){return[].concat(...e)}var $2=St(O2(),1);var U2="[a-fA-F\\d:]",hr=e=>e&&e.includeBoundaries?`(?:(?<=\\s|^)(?=${U2})|(?<=${U2})(?=\\s|$))`:"",ye="(?: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}",Lt="[a-fA-F\\d]{1,4}",k0=`
|
|
16
16
|
(?:
|
|
17
|
-
(?:${
|
|
18
|
-
(?:${
|
|
19
|
-
(?:${
|
|
20
|
-
(?:${
|
|
21
|
-
(?:${
|
|
22
|
-
(?:${
|
|
23
|
-
(?:${
|
|
24
|
-
(?::(?:(?::${
|
|
17
|
+
(?:${Lt}:){7}(?:${Lt}|:)| // 1:2:3:4:5:6:7:: 1:2:3:4:5:6:7:8
|
|
18
|
+
(?:${Lt}:){6}(?:${ye}|:${Lt}|:)| // 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
|
|
19
|
+
(?:${Lt}:){5}(?::${ye}|(?::${Lt}){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
|
|
20
|
+
(?:${Lt}:){4}(?:(?::${Lt}){0,1}:${ye}|(?::${Lt}){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
|
|
21
|
+
(?:${Lt}:){3}(?:(?::${Lt}){0,2}:${ye}|(?::${Lt}){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
|
|
22
|
+
(?:${Lt}:){2}(?:(?::${Lt}){0,3}:${ye}|(?::${Lt}){1,5}|:)| // 1:2:: 1:2::4:5:6:7:8 1:2::8 1:2::4:5:6:7:1.2.3.4
|
|
23
|
+
(?:${Lt}:){1}(?:(?::${Lt}){0,4}:${ye}|(?::${Lt}){1,6}|:)| // 1:: 1::3:4:5:6:7:8 1::8 1::3:4:5:6:7:1.2.3.4
|
|
24
|
+
(?::(?:(?::${Lt}){0,5}:${ye}|(?::${Lt}){1,7}|:)) // ::2:3:4:5:6:7:8 ::2:3:4:5:6:7:8 ::8 ::1.2.3.4
|
|
25
25
|
)(?:%[0-9a-zA-Z]{1,})? // %eth0 %1
|
|
26
|
-
`.replace(/\s*\/\/.*$/gm,"").replace(/\n/g,"").trim(),O6=new RegExp(`(?:^${me}$)|(?:^${H0}$)`),F6=new RegExp(`^${me}$`),M6=new RegExp(`^${H0}$`),lo=e=>e&&e.exact?O6:new RegExp(`(?:${mr(e)}${me}${mr(e)})|(?:${mr(e)}${H0}${mr(e)})`,"g");lo.v4=e=>e&&e.exact?F6:new RegExp(`${mr(e)}${me}${mr(e)}`,"g");lo.v6=e=>e&&e.exact?M6:new RegExp(`${mr(e)}${H0}${mr(e)}`,"g");var ua=lo;var $0=class{index=0;input="";new(t){return this.index=0,this.input=t,this}readAtomically(t){let r=this.index,n=t();return n===void 0&&(this.index=r),n}parseWith(t){let r=t();if(this.index===this.input.length)return r}peekChar(){if(!(this.index>=this.input.length))return this.input[this.index]}readChar(){if(!(this.index>=this.input.length))return this.input[this.index++]}readGivenChar(t){return this.readAtomically(()=>{let r=this.readChar();if(r===t)return r})}readSeparator(t,r,n){return this.readAtomically(()=>{if(!(r>0&&this.readGivenChar(t)===void 0))return n()})}readNumber(t,r,n,i){return this.readAtomically(()=>{let o=0,s=0,a=this.peekChar();if(a===void 0)return;let c=a==="0",u=2**(8*i)-1;for(;;){let f=this.readAtomically(()=>{let l=this.readChar();if(l===void 0)return;let p=Number.parseInt(l,t);if(!Number.isNaN(p))return p});if(f===void 0)break;if(o*=t,o+=f,o>u||(s+=1,r!==void 0&&s>r))return}if(s!==0)return!n&&c&&s>1?void 0:o})}readIPv4Addr(){return this.readAtomically(()=>{let t=new Uint8Array(4);for(let r=0;r<t.length;r++){let n=this.readSeparator(".",r,()=>this.readNumber(10,3,!1,1));if(n===void 0)return;t[r]=n}return t})}readIPv6Addr(){let t=r=>{for(let n=0;n<r.length/2;n++){let i=n*2;if(n<r.length-3){let s=this.readSeparator(":",n,()=>this.readIPv4Addr());if(s!==void 0)return r[i]=s[0],r[i+1]=s[1],r[i+2]=s[2],r[i+3]=s[3],[i+4,!0]}let o=this.readSeparator(":",n,()=>this.readNumber(16,4,!0,2));if(o===void 0)return[i,!1];r[i]=o>>8,r[i+1]=o&255}return[r.length,!1]};return this.readAtomically(()=>{let r=new Uint8Array(16),[n,i]=t(r);if(n===16)return r;if(i||this.readGivenChar(":")===void 0||this.readGivenChar(":")===void 0)return;let o=new Uint8Array(14),s=16-(n+2),[a]=t(o.subarray(0,s));return r.set(o.subarray(0,a),16-a),r})}readIPAddr(){return this.readIPv4Addr()??this.readIPv6Addr()}};var fa=45,K6=15,vn=new $0;function ho(e){if(!(e.length>K6))return vn.new(e).parseWith(()=>vn.readIPv4Addr())}function po(e){if(e.includes("%")&&(e=e.split("%")[0]),!(e.length>fa))return vn.new(e).parseWith(()=>vn.readIPv6Addr())}function G0(e){if(e.includes("%")&&(e=e.split("%")[0]),!(e.length>fa))return vn.new(e).parseWith(()=>vn.readIPAddr())}function la(e){return!!ho(e)}function ha(e){return!!po(e)}function bn(e){return!!G0(e)}var ma=bt(pa(),1),{isValid:V6,parse:q6}=ma.default,z6=["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"],H6=z6.map(e=>new ya.Netmask(e));function $6(e){for(let t of H6)if(t.contains(e))return!0;return!1}function ga(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)}var xa=e=>{if(V6(e)){let t=q6(e);if(t.kind()==="ipv4")return $6(t.toNormalizedString());if(t.kind()==="ipv6")return ga(e)}else if(bn(e)&&ua.v6().test(e))return ga(e)};var Q0=xa;function go(e,t){if(globalThis.Buffer!=null)return De(globalThis.Buffer.concat(e,t));t==null&&(t=e.reduce((i,o)=>i+o.length,0));let r=ln(t),n=0;for(let i of e)r.set(i,n),n+=i.length;return De(r)}function yo(e,t="utf8"){let r=K0[t];if(r==null)throw new Error(`Unsupported encoding "${t}"`);return(t==="utf8"||t==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?De(globalThis.Buffer.from(e,"utf-8")):r.decoder.decode(`${r.prefix}${e}`)}var G6=yo("/pk/");function W0(e){return{...e,multiaddrs:e.multiaddrs.filter(t=>{let[[r,n]]=t.stringTuples();if(r===53||r===54||r===55)return n!=="localhost";if(r!==4&&r!==6||n==null)return!1;let i=Q0(n);return i==null?!0:!i})}}function va(e){return{...e,multiaddrs:e.multiaddrs.filter(t=>{let[[r,n]]=t.stringTuples();if(n==="localhost")return!0;if(r!==4&&r!==6||n==null)return!1;let i=Q0(n);return i??!1})}}function ba(e){return e}async function xr(e){return(await xt.digest(e)).digest}async function xe(e){return xr(e.toBytes())}function Je(e){return new xn(`${h2}/${Dt(e,"base32")}`,!1)}function wa(e){return go([G6,e.toBytes()])}function Ea(e){return Dt(e.subarray(0,4))==="/pk/"}function Sa(e){return Ze(e.subarray(4))}function mo(e,t){let r=new Date;return new Lt(e,t,r).serialize()}function Ia(e,t=100){let r;return()=>{clearTimeout(r),r=setTimeout(()=>{e()},t)}}var Y6=290,Q6=54,W6=55,Z6=56,X6=4,J6=41;function Aa(e){let t=e.stringTuples();for(let r of t)if(r[0]===Y6)return!1;if(t[0][0]===Q6||t[0][0]===W6||t[0][0]===Z6)return!0;if(t[0][0]===X6||t[0][0]===J6){let r=Q0(`${t[0][1]}`);return r==null||!r}return!1}var Z0=class{log;components;validators;selectors;peerRouting;queryManager;network;constructor(t,r){let{validators:n,selectors:i,peerRouting:o,queryManager:s,network:a,logPrefix:c}=r;this.components=t,this.log=t.logger.forComponent(`${c}:content-fetching`),this.validators=n,this.selectors=i,this.peerRouting=o,this.queryManager=s,this.network=a}async putLocal(t,r){let n=Je(t);await this.components.datastore.put(n,r)}async getLocal(t){this.log("getLocal %b",t);let r=Je(t);this.log("fetching record for key %k",r);let n=await this.components.datastore.get(r);this.log("found %k in local datastore",r);let i=Lt.deserialize(n);return await pn(this.validators,i),i}async*sendCorrectionRecord(t,r,n,i={}){this.log("sendCorrection for %b",t);let o=mo(t,n);for(let{value:s,from:a}of r){if(Ge(s,n)){this.log("record was ok");continue}if(this.components.peerId.equals(a)){try{let f=Je(t);this.log(`Storing corrected record for key ${f.toString()}`),await this.components.datastore.put(f,o.subarray())}catch(f){this.log.error("Failed error correcting self",f)}continue}let c=!1,u={type:X.PUT_VALUE,key:t,record:o};for await(let f of this.network.sendRequest(a,u,i))f.name==="PEER_RESPONSE"&&f.record!=null&&Ge(f.record.value,Lt.deserialize(o).value)&&(c=!0),yield f;c||(yield oe({from:a,error:new _("value not put correctly","ERR_PUT_VALUE_INVALID")},i)),this.log.error("Failed error correcting entry")}}async*put(t,r,n={}){this.log("put key %b value %b",t,r);let i=mo(t,r),o=Je(t);this.log(`storing record for key ${o.toString()}`),await this.components.datastore.put(o,i.subarray()),yield*dr(this.peerRouting.getClosestPeers(t,{signal:n.signal}),s=>en(s,a=>async()=>{if(a.name!=="FINAL_PEER")return[a];let c=[],u={type:X.PUT_VALUE,key:t,record:i};this.log("send put to %p",a.peer.id);for await(let f of this.network.sendRequest(a.peer.id,u,n))c.push(f),f.name==="PEER_RESPONSE"&&(f.record!=null&&Ge(f.record.value,Lt.deserialize(i).value)||c.push(oe({from:a.peer.id,error:new _("value not put correctly","ERR_PUT_VALUE_INVALID")},n)));return c}),s=>hr(s,{ordered:!1,concurrency:3}),async function*(s){for await(let a of s)yield*a})}async*get(t,r={}){this.log("get %b",t);let n=[];for await(let a of this.getMany(t,r))a.name==="VALUE"&&n.push(a),yield a;if(n.length===0)return;let i=n.map(a=>a.value),o=0;try{o=W2(this.selectors,t,i)}catch(a){if(a.code!=="ERR_NO_SELECTOR_FUNCTION_FOR_RECORD_KEY")throw a}let s=i[o];if(this.log("GetValue %b %b",t,s),s==null)throw new _("best value was not found","ERR_NOT_FOUND");yield*this.sendCorrectionRecord(t,n,s,r),yield n[o]}async*getMany(t,r={}){this.log("getMany values for %b",t);try{let o=await this.getLocal(t);yield Jn({value:o.value,from:this.components.peerId},r)}catch(o){this.log("error getting local value for %b",t,o)}let n=this,i=async function*({peer:o,signal:s}){for await(let a of n.peerRouting.getValueOrPeers(o,t,{signal:s}))yield a,a.name==="PEER_RESPONSE"&&a.record!=null&&(yield Jn({from:o,value:a.record.value},r))};yield*this.queryManager.run(t,i,r)}};function je(e,t){let r={[Symbol.iterator]:()=>r,next:()=>{let n=e.next(),i=n.value;return n.done===!0||i==null?{done:!0,value:void 0}:{done:!1,value:t(i)}}};return r}var En=class{map;constructor(t){if(this.map=new Map,t!=null)for(let[r,n]of t.entries())this.map.set(r.toString(),n)}[Symbol.iterator](){return this.entries()}clear(){this.map.clear()}delete(t){return this.map.delete(t.toString())}entries(){return je(this.map.entries(),t=>[Et(t[0]),t[1]])}forEach(t){this.map.forEach((r,n)=>{t(r,Et(n),this)})}get(t){return this.map.get(t.toString())}has(t){return this.map.has(t.toString())}set(t,r){this.map.set(t.toString(),r)}keys(){return je(this.map.keys(),t=>Et(t))}values(){return this.map.values()}get size(){return this.map.size}};var ve=class e{set;constructor(t){if(this.set=new Set,t!=null)for(let r of t)this.set.add(r.toString())}get size(){return this.set.size}[Symbol.iterator](){return this.values()}add(t){this.set.add(t.toString())}clear(){this.set.clear()}delete(t){this.set.delete(t.toString())}entries(){return je(this.set.entries(),t=>{let r=Et(t[0]);return[r,r]})}forEach(t){this.set.forEach(r=>{let n=Et(r);t(n,n,this)})}has(t){return this.set.has(t.toString())}values(){return je(this.set.values(),t=>Et(t))}intersection(t){let r=new e;for(let n of t)this.has(n)&&r.add(n);return r}difference(t){let r=new e;for(let n of this)t.has(n)||r.add(n);return r}union(t){let r=new e;for(let n of t)r.add(n);for(let n of this)r.add(n);return r}};var X0=class e{list;constructor(t){if(this.list=[],t!=null)for(let r of t)this.list.push(r.toString())}[Symbol.iterator](){return je(this.list.entries(),t=>Et(t[1]))}concat(t){let r=new e(this);for(let n of t)r.push(n);return r}entries(){return je(this.list.entries(),t=>[t[0],Et(t[1])])}every(t){return this.list.every((r,n)=>t(Et(r),n,this))}filter(t){let r=new e;return this.list.forEach((n,i)=>{let o=Et(n);t(o,i,this)&&r.push(o)}),r}find(t){let r=this.list.find((n,i)=>t(Et(n),i,this));if(r!=null)return Et(r)}findIndex(t){return this.list.findIndex((r,n)=>t(Et(r),n,this))}forEach(t){this.list.forEach((r,n)=>{t(Et(r),n,this)})}includes(t){return this.list.includes(t.toString())}indexOf(t){return this.list.indexOf(t.toString())}pop(){let t=this.list.pop();if(t!=null)return Et(t)}push(...t){for(let r of t)this.list.push(r.toString())}shift(){let t=this.list.shift();if(t!=null)return Et(t)}unshift(...t){let r=this.list.length;for(let n=t.length-1;n>-1;n--)r=this.list.unshift(t[n].toString());return r}clear(){this.list=[]}get length(){return this.list.length}};function J0(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}function ne(e,t="utf8"){let r=U0[t];if(r==null)throw new Error(`Unsupported encoding "${t}"`);return(t==="utf8"||t==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?globalThis.Buffer.from(e.buffer,e.byteOffset,e.byteLength).toString("utf8"):r.encoder.encode(e).substring(1)}var j6=Math.pow(2,7),tc=Math.pow(2,14),ec=Math.pow(2,21),vo=Math.pow(2,28),bo=Math.pow(2,35),wo=Math.pow(2,42),Eo=Math.pow(2,49),it=128,Gt=127;function Yt(e){if(e<j6)return 1;if(e<tc)return 2;if(e<ec)return 3;if(e<vo)return 4;if(e<bo)return 5;if(e<wo)return 6;if(e<Eo)return 7;if(Number.MAX_SAFE_INTEGER!=null&&e>Number.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return 8}function rc(e,t,r=0){switch(Yt(e)){case 8:t[r++]=e&255|it,e/=128;case 7:t[r++]=e&255|it,e/=128;case 6:t[r++]=e&255|it,e/=128;case 5:t[r++]=e&255|it,e/=128;case 4:t[r++]=e&255|it,e>>>=7;case 3:t[r++]=e&255|it,e>>>=7;case 2:t[r++]=e&255|it,e>>>=7;case 1:{t[r++]=e&255,e>>>=7;break}default:throw new Error("unreachable")}return t}function nc(e,t,r=0){switch(Yt(e)){case 8:t.set(r++,e&255|it),e/=128;case 7:t.set(r++,e&255|it),e/=128;case 6:t.set(r++,e&255|it),e/=128;case 5:t.set(r++,e&255|it),e/=128;case 4:t.set(r++,e&255|it),e>>>=7;case 3:t.set(r++,e&255|it),e>>>=7;case 2:t.set(r++,e&255|it),e>>>=7;case 1:{t.set(r++,e&255),e>>>=7;break}default:throw new Error("unreachable")}return t}function ic(e,t){let r=e[t],n=0;if(n+=r&Gt,r<it||(r=e[t+1],n+=(r&Gt)<<7,r<it)||(r=e[t+2],n+=(r&Gt)<<14,r<it)||(r=e[t+3],n+=(r&Gt)<<21,r<it)||(r=e[t+4],n+=(r&Gt)*vo,r<it)||(r=e[t+5],n+=(r&Gt)*bo,r<it)||(r=e[t+6],n+=(r&Gt)*wo,r<it)||(r=e[t+7],n+=(r&Gt)*Eo,r<it))return n;throw new RangeError("Could not decode varint")}function oc(e,t){let r=e.get(t),n=0;if(n+=r&Gt,r<it||(r=e.get(t+1),n+=(r&Gt)<<7,r<it)||(r=e.get(t+2),n+=(r&Gt)<<14,r<it)||(r=e.get(t+3),n+=(r&Gt)<<21,r<it)||(r=e.get(t+4),n+=(r&Gt)*vo,r<it)||(r=e.get(t+5),n+=(r&Gt)*bo,r<it)||(r=e.get(t+6),n+=(r&Gt)*wo,r<it)||(r=e.get(t+7),n+=(r&Gt)*Eo,r<it))return n;throw new RangeError("Could not decode varint")}function ke(e,t,r=0){return t==null&&(t=$t(Yt(e))),t instanceof Uint8Array?rc(e,t,r):nc(e,t,r)}function se(e,t=0){return e instanceof Uint8Array?ic(e,t):oc(e,t)}function fe(e,t){t==null&&(t=e.reduce((i,o)=>i+o.length,0));let r=$t(t),n=0;for(let i of e)r.set(i,n),n+=i.length;return Lr(r)}var wy=parseInt("0xFFFF",16),Ey=new Uint8Array([0,0,0,0,0,0,0,0,0,0,255,255]);var Ca=la,fc=ha,So=function(e){let t=0;if(e=e.toString().trim(),Ca(e)){let r=new Uint8Array(t+4);return e.split(/\./g).forEach(n=>{r[t++]=parseInt(n,10)&255}),r}if(fc(e)){let r=e.split(":",8),n;for(n=0;n<r.length;n++){let o=Ca(r[n]),s;o&&(s=So(r[n]),r[n]=ne(s.slice(0,2),"base16")),s!=null&&++n<8&&r.splice(n,0,ne(s.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++);let o=[n,1];for(n=9-r.length;n>0;n--)o.push("0");r.splice.apply(r,o)}let i=new Uint8Array(t+16);for(n=0;n<r.length;n++){let o=parseInt(r[n],16);i[t++]=o>>8&255,i[t++]=o&255}return i}throw new Error("invalid ip address")},Ra=function(e,t=0,r){t=~~t,r=r??e.length-t;let n=new DataView(e.buffer);if(r===4){let i=[];for(let o=0;o<r;o++)i.push(e[t+o]);return i.join(".")}if(r===16){let i=[];for(let o=0;o<r;o+=2)i.push(n.getUint16(t+o).toString(16));return i.join(":").replace(/(^|:)0(:0)*:0(:|$)/,"$1::$3").replace(/:{3,4}/,"::")}return""};var In={},Io={},hc=[[4,32,"ip4"],[6,16,"tcp"],[33,16,"dccp"],[41,128,"ip6"],[42,-1,"ip6zone"],[43,8,"ipcidr"],[53,-1,"dns",!0],[54,-1,"dns4",!0],[55,-1,"dns6",!0],[56,-1,"dnsaddr",!0],[132,16,"sctp"],[273,16,"udp"],[275,0,"p2p-webrtc-star"],[276,0,"p2p-webrtc-direct"],[277,0,"p2p-stardust"],[280,0,"webrtc-direct"],[281,0,"webrtc"],[290,0,"p2p-circuit"],[301,0,"udt"],[302,0,"utp"],[400,-1,"unix",!1,!0],[421,-1,"ipfs"],[421,-1,"p2p"],[443,0,"https"],[444,96,"onion"],[445,296,"onion3"],[446,-1,"garlic64"],[448,0,"tls"],[449,-1,"sni"],[460,0,"quic"],[461,0,"quic-v1"],[465,0,"webtransport"],[466,-1,"certhash"],[477,0,"ws"],[478,0,"wss"],[479,0,"p2p-websocket-star"],[480,0,"http"],[777,-1,"memory"]];hc.forEach(e=>{let t=dc(...e);Io[t.code]=t,In[t.name]=t});function dc(e,t,r,n,i){return{code:e,size:t,name:r,resolvable:!!n,path:!!i}}function at(e){if(typeof e=="number"){if(Io[e]!=null)return Io[e];throw new Error(`no protocol with code: ${e}`)}else if(typeof e=="string"){if(In[e]!=null)return In[e];throw new Error(`no protocol with name: ${e}`)}throw new Error(`invalid protocol id type: ${typeof e}`)}var nm=at("ip4"),im=at("ip6"),om=at("ipcidr");function Bo(e,t){switch(at(e).code){case 4:case 41:return gc(t);case 42:return La(t);case 6:case 273:case 33:case 132:return Da(t).toString();case 53:case 54:case 55:case 56:case 400:case 449:case 777:return La(t);case 421:return vc(t);case 444:return Na(t);case 445:return Na(t);case 466:return xc(t);default:return ne(t,"base16")}}function To(e,t){switch(at(e).code){case 4:return _a(t);case 41:return _a(t);case 42:return Pa(t);case 6:case 273:case 33:case 132:return Co(parseInt(t,10));case 53:case 54:case 55:case 56:case 400:case 449:case 777:return Pa(t);case 421:return yc(t);case 444:return bc(t);case 445:return wc(t);case 466:return mc(t);default:return Gn(t,"base16")}}var Ao=Object.values(Vt).map(e=>e.decoder),pc=function(){let e=Ao[0].or(Ao[1]);return Ao.slice(2).forEach(t=>e=e.or(t)),e}();function _a(e){if(!bn(e))throw new Error("invalid ip address");return So(e)}function gc(e){let t=Ra(e,0,e.length);if(t==null)throw new Error("ipBuff is required");if(!bn(t))throw new Error("invalid ip address");return t}function Co(e){let t=new ArrayBuffer(2);return new DataView(t).setUint16(0,e),new Uint8Array(t)}function Da(e){return new DataView(e.buffer).getUint16(e.byteOffset)}function Pa(e){let t=Gn(e),r=Uint8Array.from(ke(t.length));return fe([r,t],r.length+t.length)}function La(e){let t=se(e);if(e=e.slice(Yt(t)),e.length!==t)throw new Error("inconsistent lengths");return ne(e)}function yc(e){let t;e[0]==="Q"||e[0]==="1"?t=Nr(Pt.decode(`z${e}`)).bytes:t=Xt.parse(e).multihash.bytes;let r=Uint8Array.from(ke(t.length));return fe([r,t],r.length+t.length)}function mc(e){let t=pc.decode(e),r=Uint8Array.from(ke(t.length));return fe([r,t],r.length+t.length)}function xc(e){let t=se(e),r=e.slice(Yt(t));if(r.length!==t)throw new Error("inconsistent lengths");return"u"+ne(r,"base64url")}function vc(e){let t=se(e),r=e.slice(Yt(t));if(r.length!==t)throw new Error("inconsistent lengths");return ne(r,"base58btc")}function bc(e){let t=e.split(":");if(t.length!==2)throw new Error(`failed to parse onion addr: ["'${t.join('", "')}'"]' does not contain a port number`);if(t[0].length!==16)throw new Error(`failed to parse onion addr: ${t[0]} not a Tor onion address.`);let r=We.decode("b"+t[0]),n=parseInt(t[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let i=Co(n);return fe([r,i],r.length+i.length)}function wc(e){let t=e.split(":");if(t.length!==2)throw new Error(`failed to parse onion addr: ["'${t.join('", "')}'"]' does not contain a port number`);if(t[0].length!==56)throw new Error(`failed to parse onion addr: ${t[0]} not a Tor onion3 address.`);let r=We.decode(`b${t[0]}`),n=parseInt(t[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let i=Co(n);return fe([r,i],r.length+i.length)}function Na(e){let t=e.slice(0,e.length-2),r=e.slice(e.length-2),n=ne(t,"base32"),i=Da(r);return`${n}:${i}`}function ka(e){e=Ro(e);let t=[],r=[],n=null,i=e.split("/").slice(1);if(i.length===1&&i[0]==="")return{bytes:new Uint8Array,string:"/",tuples:[],stringTuples:[],path:null};for(let o=0;o<i.length;o++){let s=i[o],a=at(s);if(a.size===0){t.push([a.code]),r.push([a.code]);continue}if(o++,o>=i.length)throw Oa("invalid address: "+e);if(a.path===!0){n=Ro(i.slice(o).join("/")),t.push([a.code,To(a.code,n)]),r.push([a.code,n]);break}let c=To(a.code,i[o]);t.push([a.code,c]),r.push([a.code,Bo(a.code,c)])}return{string:Ua(r),bytes:Po(t),tuples:t,stringTuples:r,path:n}}function _o(e){let t=[],r=[],n=null,i=0;for(;i<e.length;){let o=se(e,i),s=Yt(o),a=at(o),c=Ec(a,e.slice(i+s));if(c===0){t.push([o]),r.push([o]),i+=s;continue}let u=e.slice(i+s,i+s+c);if(i+=c+s,i>e.length)throw Oa("Invalid address Uint8Array: "+ne(e,"base16"));t.push([o,u]);let f=Bo(o,u);if(r.push([o,f]),a.path===!0){n=f;break}}return{bytes:Uint8Array.from(e),string:Ua(r),tuples:t,stringTuples:r,path:n}}function Ua(e){let t=[];return e.map(r=>{let n=at(r[0]);return t.push(n.name),r.length>1&&r[1]!=null&&t.push(r[1]),null}),Ro(t.join("/"))}function Po(e){return fe(e.map(t=>{let r=at(t[0]),n=Uint8Array.from(ke(r.code));return t.length>1&&t[1]!=null&&(n=fe([n,t[1]])),n}))}function Ec(e,t){if(e.size>0)return e.size/8;if(e.size===0)return 0;{let r=se(t instanceof Uint8Array?t:Uint8Array.from(t));return r+Yt(r)}}function Ro(e){return"/"+e.trim().split("/").filter(t=>t).join("/")}function Oa(e){return new Error("Error parsing address: "+e)}var Sc=Symbol.for("nodejs.util.inspect.custom"),Lo=Symbol.for("@multiformats/js-multiaddr/multiaddr"),Ic=[at("dns").code,at("dns4").code,at("dns6").code,at("dnsaddr").code],j0=class e{bytes;#t;#o;#i;#a;[Lo]=!0;constructor(t){t==null&&(t="");let r;if(t instanceof Uint8Array)r=_o(t);else if(typeof t=="string"){if(t.length>0&&t.charAt(0)!=="/")throw new Error(`multiaddr "${t}" must start with a "/"`);r=ka(t)}else if(Ma(t))r=_o(t.bytes);else throw new Error("addr must be a string, Buffer, or another Multiaddr");this.bytes=r.bytes,this.#t=r.string,this.#o=r.tuples,this.#i=r.stringTuples,this.#a=r.path}toString(){return this.#t}toJSON(){return this.toString()}toOptions(){let t,r,n,i,o="",s=at("tcp"),a=at("udp"),c=at("ip4"),u=at("ip6"),f=at("dns6"),l=at("ip6zone");for(let[d,h]of this.stringTuples())d===l.code&&(o=`%${h??""}`),Ic.includes(d)&&(r=s.name,i=443,n=`${h??""}${o}`,t=d===f.code?6:4),(d===s.code||d===a.code)&&(r=at(d).name,i=parseInt(h??"")),(d===c.code||d===u.code)&&(r=at(d).name,n=`${h??""}${o}`,t=d===u.code?6:4);if(t==null||r==null||n==null||i==null)throw new Error('multiaddr must have a valid format: "/{ip4, ip6, dns4, dns6, dnsaddr}/{address}/{tcp, udp}/{port}".');return{family:t,host:n,transport:r,port:i}}protos(){return this.#o.map(([t])=>Object.assign({},at(t)))}protoCodes(){return this.#o.map(([t])=>t)}protoNames(){return this.#o.map(([t])=>at(t).name)}tuples(){return this.#o}stringTuples(){return this.#i}encapsulate(t){return t=new e(t),new e(this.toString()+t.toString())}decapsulate(t){let r=t.toString(),n=this.toString(),i=n.lastIndexOf(r);if(i<0)throw new Error(`Address ${this.toString()} does not contain subaddress: ${t.toString()}`);return new e(n.slice(0,i))}decapsulateCode(t){let r=this.tuples();for(let n=r.length-1;n>=0;n--)if(r[n][0]===t)return new e(Po(r.slice(0,n)));return this}getPeerId(){try{let t=[];this.stringTuples().forEach(([n,i])=>{n===In.p2p.code&&t.push([n,i]),n===In["p2p-circuit"].code&&(t=[])});let r=t.pop();if(r?.[1]!=null){let n=r[1];return n[0]==="Q"||n[0]==="1"?ne(Pt.decode(`z${n}`),"base58btc"):ne(Xt.parse(n).multihash.bytes,"base58btc")}return null}catch{return null}}getPath(){return this.#a}equals(t){return J0(this.bytes,t.bytes)}async resolve(t){let r=this.protos().find(o=>o.resolvable);if(r==null)return[this];let n=Fa.get(r.name);if(n==null)throw new _(`no available resolver for ${r.name}`,"ERR_NO_AVAILABLE_RESOLVER");return(await n(this,t)).map(o=>new e(o))}nodeAddress(){let t=this.toOptions();if(t.transport!=="tcp"&&t.transport!=="udp")throw new Error(`multiaddr must have a valid format - no protocol with name: "${t.transport}". Must have a valid transport protocol: "{tcp, udp}"`);return{family:t.family,address:t.host,port:t.port}}isThinWaistAddress(t){let r=(t??this).protos();return!(r.length!==2||r[0].code!==4&&r[0].code!==41||r[1].code!==6&&r[1].code!==273)}[Sc](){return`Multiaddr(${this.#t})`}};var Fa=new Map;function Ma(e){return!!e?.[Lo]}function r0(e){return new j0(e)}function Ka(e,t){return{id:e.id.toBytes(),multiaddrs:(e.multiaddrs??[]).map(n=>n.bytes),connection:t}}function n0(e){if(e.id==null)throw new Error("Invalid peer in message");return{id:Ze(e.id),multiaddrs:(e.multiaddrs??[]).map(t=>r0(t))}}var t1=class{log;components;network;peerRouting;queryManager;routingTable;providers;constructor(t,r){let{network:n,peerRouting:i,queryManager:o,routingTable:s,providers:a,logPrefix:c}=r;this.components=t,this.log=t.logger.forComponent(`${c}:content-routing`),this.network=n,this.peerRouting=i,this.queryManager=o,this.routingTable=s,this.providers=a}async*provide(t,r,n={}){this.log("provide %s",t),await this.providers.addProvider(t,this.components.peerId);let i={type:X.ADD_PROVIDER,key:t.multihash.bytes,providers:[Ka({id:this.components.peerId,multiaddrs:r})]},o=0,s=a=>async()=>{if(a.name!=="FINAL_PEER")return[a];let c=[];this.log("putProvider %s to %p",t,a.peer.id);try{this.log("sending provider record for %s to %p",t,a.peer.id);for await(let u of this.network.sendMessage(a.peer.id,i,n))u.name==="PEER_RESPONSE"&&(this.log("sent provider record for %s to %p",t,a.peer.id),o++),c.push(u)}catch(u){this.log.error("error sending provide record to peer %p",a.peer.id,u),c.push(oe({from:a.peer.id,error:u},n))}return c};yield*dr(this.peerRouting.getClosestPeers(t.multihash.bytes,n),a=>en(a,c=>s(c)),a=>hr(a,{ordered:!1,concurrency:3}),async function*(a){for await(let c of a)yield*c}),this.log("sent provider records to %d peers",o)}async*findProviders(t,r){let n=this.routingTable.kBucketSize,i=t.multihash.bytes,o=this;this.log("findProviders %c",t);let s=await this.providers.getProviders(t);if(s.length>0){let u=[];for(let f of s.slice(0,n))try{let l=await this.components.peerStore.get(f);u.push({id:f,multiaddrs:l.addresses.map(({multiaddr:p})=>p)})}catch(l){if(l.code!=="ERR_NOT_FOUND")throw l;this.log("no peer store entry for %p",f)}yield Xn({from:this.components.peerId,messageType:X.GET_PROVIDERS,providers:u},r),yield io({from:this.components.peerId,providers:u},r)}if(s.length>=n)return;let a=async function*({peer:u,signal:f}){let l={type:X.GET_PROVIDERS,key:i};yield*o.network.sendRequest(u,l,{...r,signal:f})},c=new ve(s);for await(let u of this.queryManager.run(i,a,r))if(yield u,u.name==="PEER_RESPONSE"){this.log("Found %d provider entries for %c and %d closer peers",u.providers.length,t,u.closer.length);let f=[];for(let l of u.providers)c.has(l.id)||(c.add(l.id),f.push(l));if(f.length>0&&(yield io({from:u.from,providers:f},r)),c.size===n)return}}};var qa=Symbol.for("@achingbrain/uint8arraylist");function Va(e,t){if(t==null||t<0)throw new RangeError("index is out of bounds");let r=0;for(let n of e){let i=r+n.byteLength;if(t<i)return{buf:n,index:t-r};r=i}throw new RangeError("index is out of bounds")}function e1(e){return!!e?.[qa]}var le=class e{bufs;length;[qa]=!0;constructor(...t){this.bufs=[],this.length=0,t.length>0&&this.appendAll(t)}*[Symbol.iterator](){yield*this.bufs}get byteLength(){return this.length}append(...t){this.appendAll(t)}appendAll(t){let r=0;for(let n of t)if(n instanceof Uint8Array)r+=n.byteLength,this.bufs.push(n);else if(e1(n))r+=n.byteLength,this.bufs.push(...n.bufs);else throw new Error("Could not append value, must be an Uint8Array or a Uint8ArrayList");this.length+=r}prepend(...t){this.prependAll(t)}prependAll(t){let r=0;for(let n of t.reverse())if(n instanceof Uint8Array)r+=n.byteLength,this.bufs.unshift(n);else if(e1(n))r+=n.byteLength,this.bufs.unshift(...n.bufs);else throw new Error("Could not prepend value, must be an Uint8Array or a Uint8ArrayList");this.length+=r}get(t){let r=Va(this.bufs,t);return r.buf[r.index]}set(t,r){let n=Va(this.bufs,t);n.buf[n.index]=r}write(t,r=0){if(t instanceof Uint8Array)for(let n=0;n<t.length;n++)this.set(r+n,t[n]);else if(e1(t))for(let n=0;n<t.length;n++)this.set(r+n,t.get(n));else throw new Error("Could not write value, must be an Uint8Array or a Uint8ArrayList")}consume(t){if(t=Math.trunc(t),!(Number.isNaN(t)||t<=0)){if(t===this.byteLength){this.bufs=[],this.length=0;return}for(;this.bufs.length>0;)if(t>=this.bufs[0].byteLength)t-=this.bufs[0].byteLength,this.length-=this.bufs[0].byteLength,this.bufs.shift();else{this.bufs[0]=this.bufs[0].subarray(t),this.length-=t;break}}}slice(t,r){let{bufs:n,length:i}=this._subList(t,r);return fe(n,i)}subarray(t,r){let{bufs:n,length:i}=this._subList(t,r);return n.length===1?n[0]:fe(n,i)}sublist(t,r){let{bufs:n,length:i}=this._subList(t,r),o=new e;return o.length=i,o.bufs=[...n],o}_subList(t,r){if(t=t??0,r=r??this.length,t<0&&(t=this.length+t),r<0&&(r=this.length+r),t<0||r>this.length)throw new RangeError("index is out of bounds");if(t===r)return{bufs:[],length:0};if(t===0&&r===this.length)return{bufs:this.bufs,length:this.length};let n=[],i=0;for(let o=0;o<this.bufs.length;o++){let s=this.bufs[o],a=i,c=a+s.byteLength;if(i=c,t>=c)continue;let u=t>=a&&t<c,f=r>a&&r<=c;if(u&&f){if(t===a&&r===c){n.push(s);break}let l=t-a;n.push(s.subarray(l,l+(r-t)));break}if(u){if(t===0){n.push(s);continue}n.push(s.subarray(t-a));continue}if(f){if(r===c){n.push(s);break}n.push(s.subarray(0,r-a));break}n.push(s)}return{bufs:n,length:r-t}}indexOf(t,r=0){if(!e1(t)&&!(t instanceof Uint8Array))throw new TypeError('The "value" argument must be a Uint8ArrayList or Uint8Array');let n=t instanceof Uint8Array?t:t.subarray();if(r=Number(r??0),isNaN(r)&&(r=0),r<0&&(r=this.length+r),r<0&&(r=0),t.length===0)return r>this.length?this.length:r;let i=n.byteLength;if(i===0)throw new TypeError("search must be at least 1 byte long");let o=256,s=new Int32Array(o);for(let l=0;l<o;l++)s[l]=-1;for(let l=0;l<i;l++)s[n[l]]=l;let a=s,c=this.byteLength-n.byteLength,u=n.byteLength-1,f;for(let l=r;l<=c;l+=f){f=0;for(let p=u;p>=0;p--){let d=this.get(l+p);if(n[p]!==d){f=Math.max(1,p-a[d]);break}}if(f===0)return l}return-1}getInt8(t){let r=this.subarray(t,t+1);return new DataView(r.buffer,r.byteOffset,r.byteLength).getInt8(0)}setInt8(t,r){let n=$t(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setInt8(0,r),this.write(n,t)}getInt16(t,r){let n=this.subarray(t,t+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt16(0,r)}setInt16(t,r,n){let i=Ye(2);new DataView(i.buffer,i.byteOffset,i.byteLength).setInt16(0,r,n),this.write(i,t)}getInt32(t,r){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt32(0,r)}setInt32(t,r,n){let i=Ye(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setInt32(0,r,n),this.write(i,t)}getBigInt64(t,r){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigInt64(0,r)}setBigInt64(t,r,n){let i=Ye(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setBigInt64(0,r,n),this.write(i,t)}getUint8(t){let r=this.subarray(t,t+1);return new DataView(r.buffer,r.byteOffset,r.byteLength).getUint8(0)}setUint8(t,r){let n=$t(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setUint8(0,r),this.write(n,t)}getUint16(t,r){let n=this.subarray(t,t+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint16(0,r)}setUint16(t,r,n){let i=Ye(2);new DataView(i.buffer,i.byteOffset,i.byteLength).setUint16(0,r,n),this.write(i,t)}getUint32(t,r){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint32(0,r)}setUint32(t,r,n){let i=Ye(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setUint32(0,r,n),this.write(i,t)}getBigUint64(t,r){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigUint64(0,r)}setBigUint64(t,r,n){let i=Ye(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setBigUint64(0,r,n),this.write(i,t)}getFloat32(t,r){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat32(0,r)}setFloat32(t,r,n){let i=Ye(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setFloat32(0,r,n),this.write(i,t)}getFloat64(t,r){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat64(0,r)}setFloat64(t,r,n){let i=Ye(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setFloat64(0,r,n),this.write(i,t)}equals(t){if(t==null||!(t instanceof e)||t.bufs.length!==this.bufs.length)return!1;for(let r=0;r<this.bufs.length;r++)if(!J0(this.bufs[r],t.bufs[r]))return!1;return!0}static fromUint8Arrays(t,r){let n=new e;return n.bufs=t,r==null&&(r=t.reduce((i,o)=>i+o.byteLength,0)),n.length=r,n}};var r1=class extends Error{type;code;constructor(t,r){super(t??"The operation was aborted"),this.type="aborted",this.name="AbortError",this.code=r??"ABORT_ERR"}};async function za(e,t,r){if(t==null)return e;if(t.aborted)return Promise.reject(new r1(r?.errorMessage,r?.errorCode));let n,i=new r1(r?.errorMessage,r?.errorCode);try{return await Promise.race([e,new Promise((o,s)=>{n=()=>{s(i)},t.addEventListener("abort",n)})])}finally{n!=null&&t.removeEventListener("abort",n)}}var No=class{needNext;haveNext;ended;nextResult;constructor(){this.ended=!1,this.needNext=Ct(),this.haveNext=Ct()}[Symbol.asyncIterator](){return this}async next(){if(this.nextResult==null&&await this.haveNext.promise,this.nextResult==null)throw new Error("Have next but next was undefined");let t=this.nextResult;return this.nextResult=void 0,this.needNext.resolve(),this.needNext=Ct(),t}async throw(t){return this.ended=!0,t!=null&&this.haveNext.reject(t),{done:!0,value:void 0}}async return(){let t={done:!0,value:void 0};return await this._push(void 0),t}async push(t,r){await this._push(t,r)}async end(t,r){t!=null?await this.throw(t):await this._push(void 0,r)}async _push(t,r){if(t!=null&&this.ended)throw new Error("Cannot push value onto an ended pushable");this.nextResult!=null&&await this.needNext.promise,t!=null?this.nextResult={done:!1,value:t}:(this.ended=!0,this.nextResult={done:!0,value:void 0}),this.haveNext.resolve(),this.haveNext=Ct(),await za(this.needNext.promise,r?.signal,r)}};function Ha(){return new No}var n1=class extends Error{code;constructor(t,r){super(t),this.code=r}},Do=class extends n1{type;constructor(t){super(t,"ABORT_ERR"),this.type="aborted"}};function $a(e,t){let r=Ha();e.sink(r).catch(async s=>{await r.end(s)}),e.sink=async s=>{for await(let a of s)await r.push(a);await r.end()};let n=e.source;e.source[Symbol.iterator]!=null?n=e.source[Symbol.iterator]():e.source[Symbol.asyncIterator]!=null&&(n=e.source[Symbol.asyncIterator]());let i=new le;return{read:async(s,a)=>{a?.signal?.throwIfAborted();let c,u=new Promise((f,l)=>{c=()=>{l(new Do("Read aborted"))},a?.signal?.addEventListener("abort",c)});try{if(s==null){let{done:l,value:p}=await Promise.race([n.next(),u]);return l===!0?new le:p}for(;i.byteLength<s;){let{value:l,done:p}=await Promise.race([n.next(),u]);if(p===!0)throw new n1("unexpected end of input","ERR_UNEXPECTED_EOF");i.append(l)}let f=i.sublist(0,s);return i.consume(s),f}finally{c!=null&&a?.signal?.removeEventListener("abort",c)}},write:async(s,a)=>{a?.signal?.throwIfAborted(),s instanceof Uint8Array?await r.push(s,a):await r.push(s.subarray(),a)},unwrap:()=>{if(i.byteLength>0){let s=e.source;e.source=async function*(){t?.yieldBytes===!1?yield i:yield*i,yield*s}()}return e}}}function i1(e){return e[Symbol.asyncIterator]!=null}var o1=e=>{let t=Yt(e),r=$t(t);return ke(e,r),o1.bytes=t,r};o1.bytes=0;function Ur(e,t){t=t??{};let r=t.lengthEncoder??o1;function*n(i){let o=r(i.byteLength);o instanceof Uint8Array?yield o:yield*o,i instanceof Uint8Array?yield i:yield*i}return i1(e)?async function*(){for await(let i of e)yield*n(i)}():function*(){for(let i of e)yield*n(i)}()}Ur.single=(e,t)=>{t=t??{};let r=t.lengthEncoder??o1;return new le(r(e.byteLength),e)};var An=bt(Qa(),1);var Bc=8,Tc=1024*1024*4,Or;(function(e){e[e.LENGTH=0]="LENGTH",e[e.DATA=1]="DATA"})(Or||(Or={}));var ko=e=>{let t=se(e);return ko.bytes=Yt(t),t};ko.bytes=0;function i0(e,t){let r=new le,n=Or.LENGTH,i=-1,o=t?.lengthDecoder??ko,s=t?.maxLengthLength??Bc,a=t?.maxDataLength??Tc;function*c(){for(;r.byteLength>0;){if(n===Or.LENGTH)try{if(i=o(r),i<0)throw(0,An.default)(new Error("invalid message length"),"ERR_INVALID_MSG_LENGTH");if(i>a)throw(0,An.default)(new Error("message length too long"),"ERR_MSG_DATA_TOO_LONG");let u=o.bytes;r.consume(u),t?.onLength!=null&&t.onLength(i),n=Or.DATA}catch(u){if(u instanceof RangeError){if(r.byteLength>s)throw(0,An.default)(new Error("message length length too long"),"ERR_MSG_LENGTH_TOO_LONG");break}throw u}if(n===Or.DATA){if(r.byteLength<i)break;let u=r.sublist(0,i);r.consume(i),t?.onData!=null&&t.onData(u),yield u,n=Or.LENGTH}}}return i1(e)?async function*(){for await(let u of e)r.append(u),yield*c();if(r.byteLength>0)throw(0,An.default)(new Error("unexpected end of input"),"ERR_UNEXPECTED_EOF")}():function*(){for(let u of e)r.append(u),yield*c();if(r.byteLength>0)throw(0,An.default)(new Error("unexpected end of input"),"ERR_UNEXPECTED_EOF")}()}i0.fromReader=(e,t)=>{let r=1,n=async function*(){for(;;)try{let{done:o,value:s}=await e.next(r);if(o===!0)return;s!=null&&(yield s)}catch(o){if(o.code==="ERR_UNDER_READ")return{done:!0,value:null};throw o}finally{r=1}}();return i0(n,{...t??{},onLength:o=>{r=o}})};var s1=class extends Error{code;constructor(t,r){super(t),this.code=r}},Za=e=>se(e);Za.bytes=0;function Xa(e,t={}){let r=$a(e,t);return t.maxDataLength!=null&&t.maxLengthLength==null&&(t.maxLengthLength=Yt(t.maxDataLength)),{read:async i=>{let o=-1,s=new le,a=t?.lengthDecoder??Za;for(;;){s.append(await r.read(1,i));try{o=a(s)}catch(c){if(c instanceof RangeError)continue;throw c}if(t?.maxLengthLength!=null&&s.byteLength>t.maxLengthLength)throw new s1("message length length too long","ERR_MSG_LENGTH_TOO_LONG");if(o>-1)break}if(t?.maxDataLength!=null&&o>t.maxDataLength)throw new s1("message length too long","ERR_MSG_DATA_TOO_LONG");return r.read(o,i)},write:async(i,o)=>{await r.write(Ur.single(i,t),o)},writeV:async(i,o)=>{let s=new le(...i.map(a=>Ur.single(a,t)));await r.write(s,o)},unwrap:()=>r.unwrap()}}function o0(e,t){let r=Xa(e,t),n={read:async(i,o)=>{let s=await r.read(o);return i.decode(s)},write:async(i,o,s)=>{await r.write(o.encode(i),s)},writeV:async(i,o,s)=>{await r.writeV(i.map(a=>o.encode(a)),s)},pb:i=>({read:async o=>n.read(i,o),write:async(o,s)=>n.write(o,i,s),writeV:async(o,s)=>n.writeV(o,i,s),unwrap:()=>n}),unwrap:()=>r.unwrap()};return n}var a1=class extends ee{log;protocol;running;components;constructor(t,r){super();let{protocol:n}=r;this.components=t,this.log=t.logger.forComponent(`${r.logPrefix}:network`),this.running=!1,this.protocol=n}async start(){this.running||(this.running=!0)}async stop(){this.running=!1}isStarted(){return this.running}async*sendRequest(t,r,n={}){if(!this.running)return;let i=r.type;if(i==null)throw new Zn("Message type was missing","ERR_INVALID_PARAMETERS");this.log("sending %s to %p",r.type,t),yield oo({peer:t},n),yield no({to:t,type:i},n);let o;try{let a=await(await this.components.connectionManager.openConnection(t,n)).newStream(this.protocol,n),c=await this._writeReadMessage(a,r,n);yield Xn({from:t,messageType:c.type,closer:c.closer.map(n0),providers:c.providers.map(n0),record:c.record==null?void 0:Lt.deserialize(c.record)},n)}catch(s){this.log.error("could not send %s to %p",r.type,t,s),yield oe({from:t,error:s},n)}finally{o!=null&&await o.close()}}async*sendMessage(t,r,n={}){if(!this.running)return;let i=r.type;if(i==null)throw new Zn("Message type was missing","ERR_INVALID_PARAMETERS");this.log("sending %s to %p",r.type,t),yield oo({peer:t},n),yield no({to:t,type:i},n);let o;try{let a=await(await this.components.connectionManager.openConnection(t,n)).newStream(this.protocol,n);await this._writeMessage(a,r,n),yield Xn({from:t,messageType:i},n)}catch(s){yield oe({from:t,error:s},n)}finally{o!=null&&await o.close()}}async _writeMessage(t,r,n){let i=o0(t);await i.write(r,ue,n),await i.unwrap().close(n)}async _writeReadMessage(t,r,n){let i=o0(t);await i.write(r,ue,n);let o=await i.read(ue,n);return await i.unwrap().close(n),o.closer.forEach(s=>{this.safeDispatchEvent("peer",{detail:n0(s)})}),o.providers.forEach(s=>{this.safeDispatchEvent("peer",{detail:n0(s)})}),o}};var zx=bt(h1(),1),Uc=bt(ct(),1);function Mr(e){return globalThis.Buffer!=null?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):e}function d1(e=0){return globalThis.Buffer?.allocUnsafe!=null?Mr(globalThis.Buffer.allocUnsafe(e)):new Uint8Array(e)}function d3(e,t,r,n){return{name:e,prefix:t,encoder:{name:e,prefix:t,encode:r},decoder:{decode:n}}}var h3=d3("utf8","u",e=>"u"+new TextDecoder("utf8").decode(e),e=>new TextEncoder().encode(e.substring(1))),Yo=d3("ascii","a",e=>{let t="a";for(let r=0;r<e.length;r++)t+=String.fromCharCode(e[r]);return t},e=>{e=e.substring(1);let t=d1(e.length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t}),kc={utf8:h3,"utf-8":h3,hex:Vt.base16,latin1:Yo,ascii:Yo,binary:Yo,...Vt},p1=kc;function Qt(e,t="utf8"){let r=p1[t];if(r==null)throw new Error(`Unsupported encoding "${t}"`);return(t==="utf8"||t==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?Mr(globalThis.Buffer.from(e,"utf-8")):r.decoder.decode(`${r.prefix}${e}`)}function qt(e,t="utf8"){let r=p1[t];if(r==null)throw new Error(`Unsupported encoding "${t}"`);return(t==="utf8"||t==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?globalThis.Buffer.from(e.buffer,e.byteOffset,e.byteLength).toString("utf8"):r.encoder.encode(e).substring(1)}var At={get(e=globalThis){let t=e.crypto;if(t==null||t.subtle==null)throw Object.assign(new Error("Missing Web Crypto API. The most likely cause of this error is that this page is being accessed from an insecure context (i.e. not HTTPS). For more information and possible resolutions see https://github.com/libp2p/js-libp2p/blob/main/packages/crypto/README.md#web-crypto-api"),{code:"ERR_MISSING_WEB_CRYPTO"});return t}};var p3={SHA1:20,SHA256:32,SHA512:64};var Mc={SHA1:"SHA-1",SHA256:"SHA-256",SHA512:"SHA-512"},Kc=async(e,t)=>{let r=await At.get().subtle.sign({name:"HMAC"},e,t);return new Uint8Array(r,0,r.byteLength)};async function g3(e,t){let r=Mc[e],n=await At.get().subtle.importKey("raw",t,{name:"HMAC",hash:{name:r}},!1,["sign"]);return{async digest(i){return Kc(n,i)},length:p3[e]}}var Y1={};Tt(Y1,{generateEphemeralKeyPair:()=>Q4,generateKeyPair:()=>ql,generateKeyPairFromSeed:()=>zl,importKey:()=>Yl,keyStretcher:()=>X4,keysPBM:()=>On,marshalPrivateKey:()=>Gl,marshalPublicKey:()=>$l,supportedKeys:()=>He,unmarshalPrivateKey:()=>B5,unmarshalPublicKey:()=>Hl});var Yw=bt(u0(),1),Qw=bt(m4(),1);var G1=bt(ct(),1);var Is={};Tt(Is,{Ed25519PrivateKey:()=>Yr,Ed25519PublicKey:()=>g0,generateKeyPair:()=>hl,generateKeyPairFromSeed:()=>Ss,unmarshalEd25519PrivateKey:()=>fl,unmarshalEd25519PublicKey:()=>ll});function Ee(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 Sv=bt(It(),1),Iv=bt(A1(),1),x4=bt(ct(),1);function qe(e,t){if(globalThis.Buffer!=null)return Mr(globalThis.Buffer.concat(e,t));t==null&&(t=e.reduce((i,o)=>i+o.length,0));let r=d1(t),n=0;for(let i of e)r.set(i,n),n+=i.length;return Mr(r)}function Se(e,t){let r=Uint8Array.from(e.abs().toByteArray());if(r=r[0]===0?r.subarray(1):r,t!=null){if(r.length>t)throw new Error("byte array longer than desired length");r=qe([new Uint8Array(t-r.length),r])}return qt(r,"base64url")}function ae(e){let t=R1(e);return new x4.default.jsbn.BigInteger(qt(t,"base16"),16)}function R1(e,t){let r=Qt(e,"base64urlpad");if(t!=null){if(r.length>t)throw new Error("byte array longer than desired length");r=qe([new Uint8Array(t-r.length),r])}return r}function pe(e){return e==null?!1:typeof e.then=="function"&&typeof e.catch=="function"&&typeof e.finally=="function"}function v4(e){if(!Number.isSafeInteger(e)||e<0)throw new Error(`Wrong positive integer: ${e}`)}function o7(e){return e instanceof Uint8Array||e!=null&&typeof e=="object"&&e.constructor.name==="Uint8Array"}function os(e,...t){if(!o7(e))throw new Error("Expected Uint8Array");if(t.length>0&&!t.includes(e.length))throw new Error(`Expected Uint8Array of length ${t}, not of length=${e.length}`)}function b4(e){if(typeof e!="function"||typeof e.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");v4(e.outputLen),v4(e.blockLen)}function _n(e,t=!0){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 w4(e,t){os(e);let r=t.outputLen;if(e.length<r)throw new Error(`digestInto() expects output buffer of length at least ${r}`)}var _1=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0;function E4(e){return e instanceof Uint8Array||e!=null&&typeof e=="object"&&e.constructor.name==="Uint8Array"}var P1=e=>new DataView(e.buffer,e.byteOffset,e.byteLength),Ie=(e,t)=>e<<32-t|e>>>t,s7=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!s7)throw new Error("Non little-endian hardware is not supported");function ss(e){if(typeof e!="string")throw new Error(`utf8ToBytes expected string, got ${typeof e}`);return new Uint8Array(new TextEncoder().encode(e))}function h0(e){if(typeof e=="string"&&(e=ss(e)),!E4(e))throw new Error(`expected Uint8Array, got ${typeof e}`);return e}function L1(...e){let t=0;for(let n=0;n<e.length;n++){let i=e[n];if(!E4(i))throw new Error("Uint8Array expected");t+=i.length}let r=new Uint8Array(t);for(let n=0,i=0;n<e.length;n++){let o=e[n];r.set(o,i),i+=o.length}return r}var Pn=class{clone(){return this._cloneInto()}},Lv={}.toString;function N1(e){let t=n=>e().update(h0(n)).digest(),r=e();return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=()=>e(),t}function Ln(e=32){if(_1&&typeof _1.getRandomValues=="function")return _1.getRandomValues(new Uint8Array(e));throw new Error("crypto.getRandomValues must be defined")}function a7(e,t,r,n){if(typeof e.setBigUint64=="function")return e.setBigUint64(t,r,n);let i=BigInt(32),o=BigInt(4294967295),s=Number(r>>i&o),a=Number(r&o),c=n?4:0,u=n?0:4;e.setUint32(t+c,s,n),e.setUint32(t+u,a,n)}var Nn=class extends Pn{constructor(t,r,n,i){super(),this.blockLen=t,this.outputLen=r,this.padOffset=n,this.isLE=i,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(t),this.view=P1(this.buffer)}update(t){_n(this);let{view:r,buffer:n,blockLen:i}=this;t=h0(t);let o=t.length;for(let s=0;s<o;){let a=Math.min(i-this.pos,o-s);if(a===i){let c=P1(t);for(;i<=o-s;s+=i)this.process(c,s);continue}n.set(t.subarray(s,s+a),this.pos),this.pos+=a,s+=a,this.pos===i&&(this.process(r,0),this.pos=0)}return this.length+=t.length,this.roundClean(),this}digestInto(t){_n(this),w4(t,this),this.finished=!0;let{buffer:r,view:n,blockLen:i,isLE:o}=this,{pos:s}=this;r[s++]=128,this.buffer.subarray(s).fill(0),this.padOffset>i-s&&(this.process(n,0),s=0);for(let l=s;l<i;l++)r[l]=0;a7(n,i-8,BigInt(this.length*8),o),this.process(n,0);let a=P1(t),c=this.outputLen;if(c%4)throw new Error("_sha2: outputLen should be aligned to 32bit");let u=c/4,f=this.get();if(u>f.length)throw new Error("_sha2: outputLen bigger than state");for(let l=0;l<u;l++)a.setUint32(4*l,f[l],o)}digest(){let{buffer:t,outputLen:r}=this;this.digestInto(t);let n=t.slice(0,r);return this.destroy(),n}_cloneInto(t){t||(t=new this.constructor),t.set(...this.get());let{blockLen:r,buffer:n,length:i,finished:o,destroyed:s,pos:a}=this;return t.length=i,t.pos=a,t.finished=o,t.destroyed=s,i%r&&t.buffer.set(n),t}};var D1=BigInt(4294967295),as=BigInt(32);function S4(e,t=!1){return t?{h:Number(e&D1),l:Number(e>>as&D1)}:{h:Number(e>>as&D1)|0,l:Number(e&D1)|0}}function c7(e,t=!1){let r=new Uint32Array(e.length),n=new Uint32Array(e.length);for(let i=0;i<e.length;i++){let{h:o,l:s}=S4(e[i],t);[r[i],n[i]]=[o,s]}return[r,n]}var u7=(e,t)=>BigInt(e>>>0)<<as|BigInt(t>>>0),f7=(e,t,r)=>e>>>r,l7=(e,t,r)=>e<<32-r|t>>>r,h7=(e,t,r)=>e>>>r|t<<32-r,d7=(e,t,r)=>e<<32-r|t>>>r,p7=(e,t,r)=>e<<64-r|t>>>r-32,g7=(e,t,r)=>e>>>r-32|t<<64-r,y7=(e,t)=>t,m7=(e,t)=>e,x7=(e,t,r)=>e<<r|t>>>32-r,v7=(e,t,r)=>t<<r|e>>>32-r,b7=(e,t,r)=>t<<r-32|e>>>64-r,w7=(e,t,r)=>e<<r-32|t>>>64-r;function E7(e,t,r,n){let i=(t>>>0)+(n>>>0);return{h:e+r+(i/2**32|0)|0,l:i|0}}var S7=(e,t,r)=>(e>>>0)+(t>>>0)+(r>>>0),I7=(e,t,r,n)=>t+r+n+(e/2**32|0)|0,A7=(e,t,r,n)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0),B7=(e,t,r,n,i)=>t+r+n+i+(e/2**32|0)|0,T7=(e,t,r,n,i)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0)+(i>>>0),C7=(e,t,r,n,i,o)=>t+r+n+i+o+(e/2**32|0)|0;var R7={fromBig:S4,split:c7,toBig:u7,shrSH:f7,shrSL:l7,rotrSH:h7,rotrSL:d7,rotrBH:p7,rotrBL:g7,rotr32H:y7,rotr32L:m7,rotlSH:x7,rotlSL:v7,rotlBH:b7,rotlBL:w7,add:E7,add3L:S7,add3H:I7,add4L:A7,add4H:B7,add5H:C7,add5L:T7},Y=R7;var[_7,P7]=Y.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))),Sr=new Uint32Array(80),Ir=new Uint32Array(80),cs=class extends Nn{constructor(){super(128,64,16,!1),this.Ah=1779033703,this.Al=-205731576,this.Bh=-1150833019,this.Bl=-2067093701,this.Ch=1013904242,this.Cl=-23791573,this.Dh=-1521486534,this.Dl=1595750129,this.Eh=1359893119,this.El=-1377402159,this.Fh=-1694144372,this.Fl=725511199,this.Gh=528734635,this.Gl=-79577749,this.Hh=1541459225,this.Hl=327033209}get(){let{Ah:t,Al:r,Bh:n,Bl:i,Ch:o,Cl:s,Dh:a,Dl:c,Eh:u,El:f,Fh:l,Fl:p,Gh:d,Gl:h,Hh:g,Hl:y}=this;return[t,r,n,i,o,s,a,c,u,f,l,p,d,h,g,y]}set(t,r,n,i,o,s,a,c,u,f,l,p,d,h,g,y){this.Ah=t|0,this.Al=r|0,this.Bh=n|0,this.Bl=i|0,this.Ch=o|0,this.Cl=s|0,this.Dh=a|0,this.Dl=c|0,this.Eh=u|0,this.El=f|0,this.Fh=l|0,this.Fl=p|0,this.Gh=d|0,this.Gl=h|0,this.Hh=g|0,this.Hl=y|0}process(t,r){for(let v=0;v<16;v++,r+=4)Sr[v]=t.getUint32(r),Ir[v]=t.getUint32(r+=4);for(let v=16;v<80;v++){let T=Sr[v-15]|0,E=Ir[v-15]|0,S=Y.rotrSH(T,E,1)^Y.rotrSH(T,E,8)^Y.shrSH(T,E,7),L=Y.rotrSL(T,E,1)^Y.rotrSL(T,E,8)^Y.shrSL(T,E,7),N=Sr[v-2]|0,H=Ir[v-2]|0,z=Y.rotrSH(N,H,19)^Y.rotrBH(N,H,61)^Y.shrSH(N,H,6),V=Y.rotrSL(N,H,19)^Y.rotrBL(N,H,61)^Y.shrSL(N,H,6),Z=Y.add4L(L,V,Ir[v-7],Ir[v-16]),ut=Y.add4H(Z,S,z,Sr[v-7],Sr[v-16]);Sr[v]=ut|0,Ir[v]=Z|0}let{Ah:n,Al:i,Bh:o,Bl:s,Ch:a,Cl:c,Dh:u,Dl:f,Eh:l,El:p,Fh:d,Fl:h,Gh:g,Gl:y,Hh:m,Hl:x}=this;for(let v=0;v<80;v++){let T=Y.rotrSH(l,p,14)^Y.rotrSH(l,p,18)^Y.rotrBH(l,p,41),E=Y.rotrSL(l,p,14)^Y.rotrSL(l,p,18)^Y.rotrBL(l,p,41),S=l&d^~l&g,L=p&h^~p&y,N=Y.add5L(x,E,L,P7[v],Ir[v]),H=Y.add5H(N,m,T,S,_7[v],Sr[v]),z=N|0,V=Y.rotrSH(n,i,28)^Y.rotrBH(n,i,34)^Y.rotrBH(n,i,39),Z=Y.rotrSL(n,i,28)^Y.rotrBL(n,i,34)^Y.rotrBL(n,i,39),ut=n&o^n&a^o&a,Ft=i&s^i&c^s&c;m=g|0,x=y|0,g=d|0,y=h|0,d=l|0,h=p|0,{h:l,l:p}=Y.add(u|0,f|0,H|0,z|0),u=a|0,f=c|0,a=o|0,c=s|0,o=n|0,s=i|0;let C=Y.add3L(z,Z,Ft);n=Y.add3H(C,H,V,ut),i=C|0}({h:n,l:i}=Y.add(this.Ah|0,this.Al|0,n|0,i|0)),{h:o,l:s}=Y.add(this.Bh|0,this.Bl|0,o|0,s|0),{h:a,l:c}=Y.add(this.Ch|0,this.Cl|0,a|0,c|0),{h:u,l:f}=Y.add(this.Dh|0,this.Dl|0,u|0,f|0),{h:l,l:p}=Y.add(this.Eh|0,this.El|0,l|0,p|0),{h:d,l:h}=Y.add(this.Fh|0,this.Fl|0,d|0,h|0),{h:g,l:y}=Y.add(this.Gh|0,this.Gl|0,g|0,y|0),{h:m,l:x}=Y.add(this.Hh|0,this.Hl|0,m|0,x|0),this.set(n,i,o,s,a,c,u,f,l,p,d,h,g,y,m,x)}roundClean(){Sr.fill(0),Ir.fill(0)}destroy(){this.buffer.fill(0),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}};var us=N1(()=>new cs);var U1={};Tt(U1,{bitGet:()=>F7,bitLen:()=>O7,bitMask:()=>d0,bitSet:()=>M7,bytesToHex:()=>ir,bytesToNumberBE:()=>or,bytesToNumberLE:()=>Ar,concatBytes:()=>sr,createHmacDrbg:()=>hs,ensureBytes:()=>St,equalBytes:()=>k7,hexToBytes:()=>Hr,hexToNumber:()=>ls,isBytes:()=>Ae,numberToBytesBE:()=>Br,numberToBytesLE:()=>$r,numberToHexUnpadded:()=>T4,numberToVarBytesBE:()=>D7,utf8ToBytes:()=>U7,validateObject:()=>ze});var B4=BigInt(0),k1=BigInt(1),L7=BigInt(2);function Ae(e){return e instanceof Uint8Array||e!=null&&typeof e=="object"&&e.constructor.name==="Uint8Array"}var N7=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function ir(e){if(!Ae(e))throw new Error("Uint8Array expected");let t="";for(let r=0;r<e.length;r++)t+=N7[e[r]];return t}function T4(e){let t=e.toString(16);return t.length&1?`0${t}`:t}function ls(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);return BigInt(e===""?"0":`0x${e}`)}var nr={_0:48,_9:57,_A:65,_F:70,_a:97,_f:102};function I4(e){if(e>=nr._0&&e<=nr._9)return e-nr._0;if(e>=nr._A&&e<=nr._F)return e-(nr._A-10);if(e>=nr._a&&e<=nr._f)return e-(nr._a-10)}function Hr(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);let t=e.length,r=t/2;if(t%2)throw new Error("padded hex string expected, got unpadded hex of length "+t);let n=new Uint8Array(r);for(let i=0,o=0;i<r;i++,o+=2){let s=I4(e.charCodeAt(o)),a=I4(e.charCodeAt(o+1));if(s===void 0||a===void 0){let c=e[o]+e[o+1];throw new Error('hex string expected, got non-hex character "'+c+'" at index '+o)}n[i]=s*16+a}return n}function or(e){return ls(ir(e))}function Ar(e){if(!Ae(e))throw new Error("Uint8Array expected");return ls(ir(Uint8Array.from(e).reverse()))}function Br(e,t){return Hr(e.toString(16).padStart(t*2,"0"))}function $r(e,t){return Br(e,t).reverse()}function D7(e){return Hr(T4(e))}function St(e,t,r){let n;if(typeof t=="string")try{n=Hr(t)}catch(o){throw new Error(`${e} must be valid hex string, got "${t}". Cause: ${o}`)}else if(Ae(t))n=Uint8Array.from(t);else throw new Error(`${e} must be hex string or Uint8Array`);let i=n.length;if(typeof r=="number"&&i!==r)throw new Error(`${e} expected ${r} bytes, got ${i}`);return n}function sr(...e){let t=0;for(let i=0;i<e.length;i++){let o=e[i];if(!Ae(o))throw new Error("Uint8Array expected");t+=o.length}let r=new Uint8Array(t),n=0;for(let i=0;i<e.length;i++){let o=e[i];r.set(o,n),n+=o.length}return r}function k7(e,t){if(e.length!==t.length)return!1;let r=0;for(let n=0;n<e.length;n++)r|=e[n]^t[n];return r===0}function U7(e){if(typeof e!="string")throw new Error(`utf8ToBytes expected string, got ${typeof e}`);return new Uint8Array(new TextEncoder().encode(e))}function O7(e){let t;for(t=0;e>B4;e>>=k1,t+=1);return t}function F7(e,t){return e>>BigInt(t)&k1}var M7=(e,t,r)=>e|(r?k1:B4)<<BigInt(t),d0=e=>(L7<<BigInt(e-1))-k1,fs=e=>new Uint8Array(e),A4=e=>Uint8Array.from(e);function hs(e,t,r){if(typeof e!="number"||e<2)throw new Error("hashLen must be a number");if(typeof t!="number"||t<2)throw new Error("qByteLen must be a number");if(typeof r!="function")throw new Error("hmacFn must be a function");let n=fs(e),i=fs(e),o=0,s=()=>{n.fill(1),i.fill(0),o=0},a=(...l)=>r(i,n,...l),c=(l=fs())=>{i=a(A4([0]),l),n=a(),l.length!==0&&(i=a(A4([1]),l),n=a())},u=()=>{if(o++>=1e3)throw new Error("drbg: tried 1000 values");let l=0,p=[];for(;l<t;){n=a();let d=n.slice();p.push(d),l+=n.length}return sr(...p)};return(l,p)=>{s(),c(l);let d;for(;!(d=p(u()));)c();return s(),d}}var K7={bigint:e=>typeof e=="bigint",function:e=>typeof e=="function",boolean:e=>typeof e=="boolean",string:e=>typeof e=="string",stringOrUint8Array:e=>typeof e=="string"||Ae(e),isSafeInteger:e=>Number.isSafeInteger(e),array:e=>Array.isArray(e),field:(e,t)=>t.Fp.isValid(e),hash:e=>typeof e=="function"&&Number.isSafeInteger(e.outputLen)};function ze(e,t,r={}){let n=(i,o,s)=>{let a=K7[o];if(typeof a!="function")throw new Error(`Invalid validator "${o}", expected function`);let c=e[i];if(!(s&&c===void 0)&&!a(c,e))throw new Error(`Invalid param ${String(i)}=${c} (${typeof c}), expected ${o}`)};for(let[i,o]of Object.entries(t))n(i,o,!1);for(let[i,o]of Object.entries(r))n(i,o,!0);return e}var Nt=BigInt(0),yt=BigInt(1),Gr=BigInt(2),V7=BigInt(3),ds=BigInt(4),C4=BigInt(5),R4=BigInt(8),q7=BigInt(9),z7=BigInt(16);function ft(e,t){let r=e%t;return r>=Nt?r:t+r}function H7(e,t,r){if(r<=Nt||t<Nt)throw new Error("Expected power/modulo > 0");if(r===yt)return Nt;let n=yt;for(;t>Nt;)t&yt&&(n=n*e%r),e=e*e%r,t>>=yt;return n}function mt(e,t,r){let n=e;for(;t-- >Nt;)n*=n,n%=r;return n}function O1(e,t){if(e===Nt||t<=Nt)throw new Error(`invert: expected positive integers, got n=${e} mod=${t}`);let r=ft(e,t),n=t,i=Nt,o=yt,s=yt,a=Nt;for(;r!==Nt;){let u=n/r,f=n%r,l=i-s*u,p=o-a*u;n=r,r=f,i=s,o=a,s=l,a=p}if(n!==yt)throw new Error("invert: does not exist");return ft(i,t)}function $7(e){let t=(e-yt)/Gr,r,n,i;for(r=e-yt,n=0;r%Gr===Nt;r/=Gr,n++);for(i=Gr;i<e&&H7(i,t,e)!==e-yt;i++);if(n===1){let s=(e+yt)/ds;return function(c,u){let f=c.pow(u,s);if(!c.eql(c.sqr(f),u))throw new Error("Cannot find square root");return f}}let o=(r+yt)/Gr;return function(a,c){if(a.pow(c,t)===a.neg(a.ONE))throw new Error("Cannot find square root");let u=n,f=a.pow(a.mul(a.ONE,i),r),l=a.pow(c,o),p=a.pow(c,r);for(;!a.eql(p,a.ONE);){if(a.eql(p,a.ZERO))return a.ZERO;let d=1;for(let g=a.sqr(p);d<u&&!a.eql(g,a.ONE);d++)g=a.sqr(g);let h=a.pow(f,yt<<BigInt(u-d-1));f=a.sqr(h),l=a.mul(l,h),p=a.mul(p,f),u=d}return l}}function G7(e){if(e%ds===V7){let t=(e+yt)/ds;return function(n,i){let o=n.pow(i,t);if(!n.eql(n.sqr(o),i))throw new Error("Cannot find square root");return o}}if(e%R4===C4){let t=(e-C4)/R4;return function(n,i){let o=n.mul(i,Gr),s=n.pow(o,t),a=n.mul(i,s),c=n.mul(n.mul(a,Gr),s),u=n.mul(a,n.sub(c,n.ONE));if(!n.eql(n.sqr(u),i))throw new Error("Cannot find square root");return u}}return e%z7,$7(e)}var _4=(e,t)=>(ft(e,t)&yt)===yt,Y7=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function ps(e){let t={ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"},r=Y7.reduce((n,i)=>(n[i]="function",n),t);return ze(e,r)}function Q7(e,t,r){if(r<Nt)throw new Error("Expected power > 0");if(r===Nt)return e.ONE;if(r===yt)return t;let n=e.ONE,i=t;for(;r>Nt;)r&yt&&(n=e.mul(n,i)),i=e.sqr(i),r>>=yt;return n}function W7(e,t){let r=new Array(t.length),n=t.reduce((o,s,a)=>e.is0(s)?o:(r[a]=o,e.mul(o,s)),e.ONE),i=e.inv(n);return t.reduceRight((o,s,a)=>e.is0(s)?o:(r[a]=e.mul(o,r[a]),e.mul(o,s)),i),r}function gs(e,t){let r=t!==void 0?t:e.toString(2).length,n=Math.ceil(r/8);return{nBitLength:r,nByteLength:n}}function F1(e,t,r=!1,n={}){if(e<=Nt)throw new Error(`Expected Field ORDER > 0, got ${e}`);let{nBitLength:i,nByteLength:o}=gs(e,t);if(o>2048)throw new Error("Field lengths over 2048 bytes are not supported");let s=G7(e),a=Object.freeze({ORDER:e,BITS:i,BYTES:o,MASK:d0(i),ZERO:Nt,ONE:yt,create:c=>ft(c,e),isValid:c=>{if(typeof c!="bigint")throw new Error(`Invalid field element: expected bigint, got ${typeof c}`);return Nt<=c&&c<e},is0:c=>c===Nt,isOdd:c=>(c&yt)===yt,neg:c=>ft(-c,e),eql:(c,u)=>c===u,sqr:c=>ft(c*c,e),add:(c,u)=>ft(c+u,e),sub:(c,u)=>ft(c-u,e),mul:(c,u)=>ft(c*u,e),pow:(c,u)=>Q7(a,c,u),div:(c,u)=>ft(c*O1(u,e),e),sqrN:c=>c*c,addN:(c,u)=>c+u,subN:(c,u)=>c-u,mulN:(c,u)=>c*u,inv:c=>O1(c,e),sqrt:n.sqrt||(c=>s(a,c)),invertBatch:c=>W7(a,c),cmov:(c,u,f)=>f?u:c,toBytes:c=>r?$r(c,o):Br(c,o),fromBytes:c=>{if(c.length!==o)throw new Error(`Fp.fromBytes: expected ${o}, got ${c.length}`);return r?Ar(c):or(c)}});return Object.freeze(a)}function P4(e,t){if(!e.isOdd)throw new Error("Field doesn't have isOdd");let r=e.sqrt(t);return e.isOdd(r)?e.neg(r):r}function L4(e){if(typeof e!="bigint")throw new Error("field order must be bigint");let t=e.toString(2).length;return Math.ceil(t/8)}function ys(e){let t=L4(e);return t+Math.ceil(t/2)}function N4(e,t,r=!1){let n=e.length,i=L4(t),o=ys(t);if(n<16||n<o||n>1024)throw new Error(`expected ${o}-1024 bytes of input, got ${n}`);let s=r?or(e):Ar(e),a=ft(s,t-yt)+yt;return r?$r(a,i):Br(a,i)}var X7=BigInt(0),ms=BigInt(1);function M1(e,t){let r=(i,o)=>{let s=o.negate();return i?s:o},n=i=>{let o=Math.ceil(t/i)+1,s=2**(i-1);return{windows:o,windowSize:s}};return{constTimeNegate:r,unsafeLadder(i,o){let s=e.ZERO,a=i;for(;o>X7;)o&ms&&(s=s.add(a)),a=a.double(),o>>=ms;return s},precomputeWindow(i,o){let{windows:s,windowSize:a}=n(o),c=[],u=i,f=u;for(let l=0;l<s;l++){f=u,c.push(f);for(let p=1;p<a;p++)f=f.add(u),c.push(f);u=f.double()}return c},wNAF(i,o,s){let{windows:a,windowSize:c}=n(i),u=e.ZERO,f=e.BASE,l=BigInt(2**i-1),p=2**i,d=BigInt(i);for(let h=0;h<a;h++){let g=h*c,y=Number(s&l);s>>=d,y>c&&(y-=p,s+=ms);let m=g,x=g+Math.abs(y)-1,v=h%2!==0,T=y<0;y===0?f=f.add(r(v,o[m])):u=u.add(r(T,o[x]))}return{p:u,f}},wNAFCached(i,o,s,a){let c=i._WINDOW_SIZE||1,u=o.get(i);return u||(u=this.precomputeWindow(i,c),c!==1&&o.set(i,a(u))),this.wNAF(c,u,s)}}}function p0(e){return ps(e.Fp),ze(e,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...gs(e.n,e.nBitLength),...e,p:e.Fp.ORDER})}var Be=BigInt(0),ce=BigInt(1),K1=BigInt(2),J7=BigInt(8),j7={zip215:!0};function tl(e){let t=p0(e);return ze(e,{hash:"function",a:"bigint",d:"bigint",randomBytes:"function"},{adjustScalarBytes:"function",domain:"function",uvRatio:"function",mapToCurve:"function"}),Object.freeze({...t})}function V1(e){let t=tl(e),{Fp:r,n,prehash:i,hash:o,randomBytes:s,nByteLength:a,h:c}=t,u=K1<<BigInt(a*8)-ce,f=r.create,l=t.uvRatio||((D,A)=>{try{return{isValid:!0,value:r.sqrt(D*r.inv(A))}}catch{return{isValid:!1,value:Be}}}),p=t.adjustScalarBytes||(D=>D),d=t.domain||((D,A,F)=>{if(A.length||F)throw new Error("Contexts/pre-hash are not supported");return D}),h=D=>typeof D=="bigint"&&Be<D,g=(D,A)=>h(D)&&h(A)&&D<A,y=D=>D===Be||g(D,u);function m(D,A){if(g(D,A))return D;throw new Error(`Expected valid scalar < ${A}, got ${typeof D} ${D}`)}function x(D){return D===Be?D:m(D,n)}let v=new Map;function T(D){if(!(D instanceof E))throw new Error("ExtendedPoint expected")}class E{constructor(A,F,M,q){if(this.ex=A,this.ey=F,this.ez=M,this.et=q,!y(A))throw new Error("x required");if(!y(F))throw new Error("y required");if(!y(M))throw new Error("z required");if(!y(q))throw new Error("t required")}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static fromAffine(A){if(A instanceof E)throw new Error("extended point not allowed");let{x:F,y:M}=A||{};if(!y(F)||!y(M))throw new Error("invalid affine point");return new E(F,M,ce,f(F*M))}static normalizeZ(A){let F=r.invertBatch(A.map(M=>M.ez));return A.map((M,q)=>M.toAffine(F[q])).map(E.fromAffine)}_setWindowSize(A){this._WINDOW_SIZE=A,v.delete(this)}assertValidity(){let{a:A,d:F}=t;if(this.is0())throw new Error("bad point: ZERO");let{ex:M,ey:q,ez:Q,et:J}=this,st=f(M*M),j=f(q*q),rt=f(Q*Q),Bt=f(rt*rt),vt=f(st*A),Mt=f(rt*f(vt+j)),Kt=f(Bt+f(F*f(st*j)));if(Mt!==Kt)throw new Error("bad point: equation left != right (1)");let _t=f(M*q),zt=f(Q*J);if(_t!==zt)throw new Error("bad point: equation left != right (2)")}equals(A){T(A);let{ex:F,ey:M,ez:q}=this,{ex:Q,ey:J,ez:st}=A,j=f(F*st),rt=f(Q*q),Bt=f(M*st),vt=f(J*q);return j===rt&&Bt===vt}is0(){return this.equals(E.ZERO)}negate(){return new E(f(-this.ex),this.ey,this.ez,f(-this.et))}double(){let{a:A}=t,{ex:F,ey:M,ez:q}=this,Q=f(F*F),J=f(M*M),st=f(K1*f(q*q)),j=f(A*Q),rt=F+M,Bt=f(f(rt*rt)-Q-J),vt=j+J,Mt=vt-st,Kt=j-J,_t=f(Bt*Mt),zt=f(vt*Kt),$e=f(Bt*Kt),_r=f(Mt*vt);return new E(_t,zt,_r,$e)}add(A){T(A);let{a:F,d:M}=t,{ex:q,ey:Q,ez:J,et:st}=this,{ex:j,ey:rt,ez:Bt,et:vt}=A;if(F===BigInt(-1)){let Zs=f((Q-q)*(rt+j)),Xs=f((Q+q)*(rt-j)),mi=f(Xs-Zs);if(mi===Be)return this.double();let Js=f(J*K1*vt),js=f(st*K1*Bt),t2=js+Js,e2=Xs+Zs,r2=js-Js,Q5=f(t2*mi),W5=f(e2*r2),Z5=f(t2*r2),X5=f(mi*e2);return new E(Q5,W5,X5,Z5)}let Mt=f(q*j),Kt=f(Q*rt),_t=f(st*M*vt),zt=f(J*Bt),$e=f((q+Q)*(j+rt)-Mt-Kt),_r=zt-_t,Vn=zt+_t,Ws=f(Kt-F*Mt),H5=f($e*_r),$5=f(Vn*Ws),G5=f($e*Ws),Y5=f(_r*Vn);return new E(H5,$5,Y5,G5)}subtract(A){return this.add(A.negate())}wNAF(A){return N.wNAFCached(this,v,A,E.normalizeZ)}multiply(A){let{p:F,f:M}=this.wNAF(m(A,n));return E.normalizeZ([F,M])[0]}multiplyUnsafe(A){let F=x(A);return F===Be?L:this.equals(L)||F===ce?this:this.equals(S)?this.wNAF(F).p:N.unsafeLadder(this,F)}isSmallOrder(){return this.multiplyUnsafe(c).is0()}isTorsionFree(){return N.unsafeLadder(this,n).is0()}toAffine(A){let{ex:F,ey:M,ez:q}=this,Q=this.is0();A==null&&(A=Q?J7:r.inv(q));let J=f(F*A),st=f(M*A),j=f(q*A);if(Q)return{x:Be,y:ce};if(j!==ce)throw new Error("invZ was invalid");return{x:J,y:st}}clearCofactor(){let{h:A}=t;return A===ce?this:this.multiplyUnsafe(A)}static fromHex(A,F=!1){let{d:M,a:q}=t,Q=r.BYTES;A=St("pointHex",A,Q);let J=A.slice(),st=A[Q-1];J[Q-1]=st&-129;let j=Ar(J);j===Be||(F?m(j,u):m(j,r.ORDER));let rt=f(j*j),Bt=f(rt-ce),vt=f(M*rt-q),{isValid:Mt,value:Kt}=l(Bt,vt);if(!Mt)throw new Error("Point.fromHex: invalid y coordinate");let _t=(Kt&ce)===ce,zt=(st&128)!==0;if(!F&&Kt===Be&&zt)throw new Error("Point.fromHex: x=0 and x_0=1");return zt!==_t&&(Kt=f(-Kt)),E.fromAffine({x:Kt,y:j})}static fromPrivateKey(A){return V(A).point}toRawBytes(){let{x:A,y:F}=this.toAffine(),M=$r(F,r.BYTES);return M[M.length-1]|=A&ce?128:0,M}toHex(){return ir(this.toRawBytes())}}E.BASE=new E(t.Gx,t.Gy,ce,f(t.Gx*t.Gy)),E.ZERO=new E(Be,ce,ce,Be);let{BASE:S,ZERO:L}=E,N=M1(E,a*8);function H(D){return ft(D,n)}function z(D){return H(Ar(D))}function V(D){let A=a;D=St("private key",D,A);let F=St("hashed private key",o(D),2*A),M=p(F.slice(0,A)),q=F.slice(A,2*A),Q=z(M),J=S.multiply(Q),st=J.toRawBytes();return{head:M,prefix:q,scalar:Q,point:J,pointBytes:st}}function Z(D){return V(D).pointBytes}function ut(D=new Uint8Array,...A){let F=sr(...A);return z(o(d(F,St("context",D),!!i)))}function Ft(D,A,F={}){D=St("message",D),i&&(D=i(D));let{prefix:M,scalar:q,pointBytes:Q}=V(A),J=ut(F.context,M,D),st=S.multiply(J).toRawBytes(),j=ut(F.context,st,Q,D),rt=H(J+j*q);x(rt);let Bt=sr(st,$r(rt,r.BYTES));return St("result",Bt,a*2)}let C=j7;function k(D,A,F,M=C){let{context:q,zip215:Q}=M,J=r.BYTES;D=St("signature",D,2*J),A=St("message",A),i&&(A=i(A));let st=Ar(D.slice(J,2*J)),j,rt,Bt;try{j=E.fromHex(F,Q),rt=E.fromHex(D.slice(0,J),Q),Bt=S.multiplyUnsafe(st)}catch{return!1}if(!Q&&j.isSmallOrder())return!1;let vt=ut(q,rt.toRawBytes(),j.toRawBytes(),A);return rt.add(j.multiplyUnsafe(vt)).subtract(Bt).clearCofactor().equals(E.ZERO)}return S._setWindowSize(8),{CURVE:t,getPublicKey:Z,sign:Ft,verify:k,ExtendedPoint:E,utils:{getExtendedPublicKey:V,randomPrivateKey:()=>s(r.BYTES),precompute(D=8,A=E.BASE){return A._setWindowSize(D),A.multiply(BigInt(3)),A}}}}var vs=BigInt("57896044618658097711785492504343953926634992332820282019728792003956564819949"),D4=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752"),tb=BigInt(0),el=BigInt(1),xs=BigInt(2),rl=BigInt(5),k4=BigInt(10),nl=BigInt(20),il=BigInt(40),U4=BigInt(80);function ol(e){let t=vs,n=e*e%t*e%t,i=mt(n,xs,t)*n%t,o=mt(i,el,t)*e%t,s=mt(o,rl,t)*o%t,a=mt(s,k4,t)*s%t,c=mt(a,nl,t)*a%t,u=mt(c,il,t)*c%t,f=mt(u,U4,t)*u%t,l=mt(f,U4,t)*u%t,p=mt(l,k4,t)*s%t;return{pow_p_5_8:mt(p,xs,t)*e%t,b2:n}}function sl(e){return e[0]&=248,e[31]&=127,e[31]|=64,e}function al(e,t){let r=vs,n=ft(t*t*t,r),i=ft(n*n*t,r),o=ol(e*i).pow_p_5_8,s=ft(e*n*o,r),a=ft(t*s*s,r),c=s,u=ft(s*D4,r),f=a===e,l=a===ft(-e,r),p=a===ft(-e*D4,r);return f&&(s=c),(l||p)&&(s=u),_4(s,r)&&(s=ft(-s,r)),{isValid:f||l,value:s}}var ar=F1(vs,void 0,!0),bs={a:BigInt(-1),d:BigInt("37095705934669439343138083508754565189542113879843219016388785533085940283555"),Fp:ar,n:BigInt("7237005577332262213973186563042994240857116359379907606001950938285454250989"),h:BigInt(8),Gx:BigInt("15112221349535400772501151409588531511454012693041857206046113283949847762202"),Gy:BigInt("46316835694926478169428394003475163141307993866256225615783033603165251855960"),hash:us,randomBytes:Ln,adjustScalarBytes:sl,uvRatio:al},Dn=V1(bs);function O4(e,t,r){if(t.length>255)throw new Error("Context is too big");return L1(ss("SigEd25519 no Ed25519 collisions"),new Uint8Array([r?1:0,t.length]),t,e)}var eb=V1({...bs,domain:O4}),rb=V1({...bs,domain:O4,prehash:us});var cl=(ar.ORDER+BigInt(3))/BigInt(8),nb=ar.pow(xs,cl),ib=ar.sqrt(ar.neg(ar.ONE)),ob=(ar.ORDER-BigInt(5))/BigInt(8),sb=BigInt(486662);var ab=P4(ar,ar.neg(BigInt(486664)));var cb=BigInt("25063068953384623474111414158702152701244531502492656460079210482610430750235"),ub=BigInt("54469307008909316920995813868745141605393597292927456921205312896311721017578"),fb=BigInt("1159843021668779879193775521855586647937357759715417654439879720876111806838"),lb=BigInt("40440834346308536858101042469323190826248399146238708352240133220865137265952");var hb=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");var kn=32,cr=64,q1=32;function F4(){let e=Dn.utils.randomPrivateKey(),t=Dn.getPublicKey(e);return{privateKey:q4(e,t),publicKey:t}}function M4(e){if(e.length!==q1)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.');let t=e,r=Dn.getPublicKey(t);return{privateKey:q4(t,r),publicKey:r}}function K4(e,t){let r=e.subarray(0,q1);return Dn.sign(t instanceof Uint8Array?t:t.subarray(),r)}function V4(e,t,r){return Dn.verify(t,r instanceof Uint8Array?r:r.subarray(),e)}function q4(e,t){let r=new Uint8Array(cr);for(let n=0;n<q1;n++)r[n]=e[n],r[q1+n]=t[n];return r}var ws={alg:"A128GCM",ext:!0,k:"scm9jmO_4BJAgdwWGVulLg",key_ops:["encrypt","decrypt"],kty:"oct"};function z1(e){let t=e?.algorithm??"AES-GCM",r=e?.keyLength??16,n=e?.nonceLength??12,i=e?.digest??"SHA-256",o=e?.saltLength??16,s=e?.iterations??32767,a=At.get();r*=8;async function c(l,p){let d=a.getRandomValues(new Uint8Array(o)),h=a.getRandomValues(new Uint8Array(n)),g={name:t,iv:h};typeof p=="string"&&(p=Qt(p));let y;if(p.length===0){y=await a.subtle.importKey("jwk",ws,{name:"AES-GCM"},!0,["encrypt"]);try{let x={name:"PBKDF2",salt:d,iterations:s,hash:{name:i}},v=await a.subtle.importKey("raw",p,{name:"PBKDF2"},!1,["deriveKey"]);y=await a.subtle.deriveKey(x,v,{name:t,length:r},!0,["encrypt"])}catch{y=await a.subtle.importKey("jwk",ws,{name:"AES-GCM"},!0,["encrypt"])}}else{let x={name:"PBKDF2",salt:d,iterations:s,hash:{name:i}},v=await a.subtle.importKey("raw",p,{name:"PBKDF2"},!1,["deriveKey"]);y=await a.subtle.deriveKey(x,v,{name:t,length:r},!0,["encrypt"])}let m=await a.subtle.encrypt(g,y,l);return qe([d,g.iv,new Uint8Array(m)])}async function u(l,p){let d=l.subarray(0,o),h=l.subarray(o,o+n),g=l.subarray(o+n),y={name:t,iv:h};typeof p=="string"&&(p=Qt(p));let m;if(p.length===0)try{let v={name:"PBKDF2",salt:d,iterations:s,hash:{name:i}},T=await a.subtle.importKey("raw",p,{name:"PBKDF2"},!1,["deriveKey"]);m=await a.subtle.deriveKey(v,T,{name:t,length:r},!0,["decrypt"])}catch{m=await a.subtle.importKey("jwk",ws,{name:"AES-GCM"},!0,["decrypt"])}else{let v={name:"PBKDF2",salt:d,iterations:s,hash:{name:i}},T=await a.subtle.importKey("raw",p,{name:"PBKDF2"},!1,["deriveKey"]);m=await a.subtle.deriveKey(v,T,{name:t,length:r},!0,["decrypt"])}let x=await a.subtle.decrypt(y,m,g);return new Uint8Array(x)}return{encrypt:c,decrypt:u}}async function Un(e,t){let n=await z1().encrypt(e,t);return qn.encode(n)}var On={};Tt(On,{KeyType:()=>dt,PrivateKey:()=>Ce,PublicKey:()=>Te});var dt;(function(e){e.RSA="RSA",e.Ed25519="Ed25519",e.Secp256k1="Secp256k1"})(dt||(dt={}));var Es;(function(e){e[e.RSA=0]="RSA",e[e.Ed25519=1]="Ed25519",e[e.Secp256k1=2]="Secp256k1"})(Es||(Es={}));(function(e){e.codec=()=>fn(Es)})(dt||(dt={}));var Te;(function(e){let t;e.codec=()=>(t==null&&(t=Ne((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.Type!=null&&(n.uint32(8),dt.codec().encode(r.Type,n)),r.Data!=null&&(n.uint32(18),n.bytes(r.Data)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={},o=n==null?r.len:r.pos+n;for(;r.pos<o;){let s=r.uint32();switch(s>>>3){case 1:i.Type=dt.codec().decode(r);break;case 2:i.Data=r.bytes();break;default:r.skipType(s&7);break}}return i})),t),e.encode=r=>Le(r,e.codec()),e.decode=r=>_e(r,e.codec())})(Te||(Te={}));var Ce;(function(e){let t;e.codec=()=>(t==null&&(t=Ne((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.Type!=null&&(n.uint32(8),dt.codec().encode(r.Type,n)),r.Data!=null&&(n.uint32(18),n.bytes(r.Data)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={},o=n==null?r.len:r.pos+n;for(;r.pos<o;){let s=r.uint32();switch(s>>>3){case 1:i.Type=dt.codec().decode(r);break;case 2:i.Data=r.bytes();break;default:r.skipType(s&7);break}}return i})),t),e.encode=r=>Le(r,e.codec()),e.decode=r=>_e(r,e.codec())})(Ce||(Ce={}));var g0=class{_key;constructor(t){this._key=Fn(t,kn)}verify(t,r){return V4(this._key,r,t)}marshal(){return this._key}get bytes(){return Te.encode({Type:dt.Ed25519,Data:this.marshal()}).subarray()}equals(t){return Ee(this.bytes,t.bytes)}hash(){let t=xt.digest(this.bytes);return pe(t)?t.then(({bytes:r})=>r):t.bytes}},Yr=class{_key;_publicKey;constructor(t,r){this._key=Fn(t,cr),this._publicKey=Fn(r,kn)}sign(t){return K4(this._key,t)}get public(){return new g0(this._publicKey)}marshal(){return this._key}get bytes(){return Ce.encode({Type:dt.Ed25519,Data:this.marshal()}).subarray()}equals(t){return Ee(this.bytes,t.bytes)}async hash(){let t=xt.digest(this.bytes),r;return pe(t)?{bytes:r}=await t:r=t.bytes,r}async id(){let t=yr.digest(this.public.bytes);return Pt.encode(t.bytes).substring(1)}async export(t,r="libp2p-key"){if(r==="libp2p-key")return Un(this.bytes,t);throw new _(`export format '${r}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};function fl(e){if(e.length>cr){e=Fn(e,cr+kn);let n=e.subarray(0,cr),i=e.subarray(cr,e.length);return new Yr(n,i)}e=Fn(e,cr);let t=e.subarray(0,cr),r=e.subarray(kn);return new Yr(t,r)}function ll(e){return e=Fn(e,kn),new g0(e)}async function hl(){let{privateKey:e,publicKey:t}=F4();return new Yr(e,t)}async function Ss(e){let{privateKey:t,publicKey:r}=M4(e);return new Yr(t,r)}function Fn(e,t){if(e=Uint8Array.from(e??[]),e.length!==t)throw new _(`Key must be a Uint8Array of length ${t}, got ${e.length}`,"ERR_INVALID_KEY_TYPE");return e}var H4={"P-256":256,"P-384":384,"P-521":521},dl=Object.keys(H4),As=dl.join(" / ");async function $4(e){if(e!=="P-256"&&e!=="P-384"&&e!=="P-521")throw new _(`Unknown curve: ${e}. Must be ${As}`,"ERR_INVALID_CURVE");let t=await At.get().subtle.generateKey({name:"ECDH",namedCurve:e},!0,["deriveBits"]),r=async(o,s)=>{let a;s!=null?a=await At.get().subtle.importKey("jwk",gl(e,s),{name:"ECDH",namedCurve:e},!1,["deriveBits"]):a=t.privateKey;let c=await At.get().subtle.importKey("jwk",Y4(e,o),{name:"ECDH",namedCurve:e},!1,[]),u=await At.get().subtle.deriveBits({name:"ECDH",namedCurve:e,public:c},a,H4[e]);return new Uint8Array(u,0,u.byteLength)},n=await At.get().subtle.exportKey("jwk",t.publicKey);return{key:pl(n),genSharedKey:r}}var G4={"P-256":32,"P-384":48,"P-521":66};function pl(e){if(e.crv==null||e.x==null||e.y==null)throw new _("JWK was missing components","ERR_INVALID_PARAMETERS");if(e.crv!=="P-256"&&e.crv!=="P-384"&&e.crv!=="P-521")throw new _(`Unknown curve: ${e.crv}. Must be ${As}`,"ERR_INVALID_CURVE");let t=G4[e.crv];return qe([Uint8Array.from([4]),R1(e.x,t),R1(e.y,t)],1+t*2)}function Y4(e,t){if(e!=="P-256"&&e!=="P-384"&&e!=="P-521")throw new _(`Unknown curve: ${e}. Must be ${As}`,"ERR_INVALID_CURVE");let r=G4[e];if(!Ee(t.subarray(0,1),Uint8Array.from([4])))throw new _("Cannot unmarshal public key - invalid key format","ERR_INVALID_KEY_FORMAT");return{kty:"EC",crv:e,x:qt(t.subarray(1,r+1),"base64url"),y:qt(t.subarray(1+r),"base64url"),ext:!0}}var gl=(e,t)=>({...Y4(e,t.public),d:qt(t.private,"base64url")});var Q4=$4;async function W4(e,t){let r=qn.decode(e);return z1().decrypt(r,t)}var Z4={"AES-128":{ivSize:16,keySize:16},"AES-256":{ivSize:16,keySize:32},Blowfish:{ivSize:8,keySize:32}};async function X4(e,t,r){let n=Z4[e];if(n==null){let x=Object.keys(Z4).join(" / ");throw new _(`unknown cipher type '${e}'. Must be ${x}`,"ERR_INVALID_CIPHER_TYPE")}if(t==null)throw new _("missing hash type","ERR_MISSING_HASH_TYPE");let i=n.keySize,o=n.ivSize,s=20,a=Qt("key expansion"),c=2*(o+i+s),u=await g3(t,r),f=await u.digest(a),l=[],p=0;for(;p<c;){let x=await u.digest(qe([f,a])),v=x.length;p+v>c&&(v=c-p),l.push(x),p+=v,f=await u.digest(f)}let d=c/2,h=qe(l),g=h.subarray(0,d),y=h.subarray(d,c),m=x=>({iv:x.subarray(0,o),cipherKey:x.subarray(o,o+i),macKey:x.subarray(o+i)});return{k1:m(g),k2:m(y)}}var _s={};Tt(_s,{MAX_KEY_SIZE:()=>v0,RsaPrivateKey:()=>Mn,RsaPublicKey:()=>x0,fromJwk:()=>Al,generateKeyPair:()=>Bl,unmarshalRsaPrivateKey:()=>Sl,unmarshalRsaPublicKey:()=>Il});var m0=bt(ct(),1);var lw=bt(r5(),1);function Wr(e){if(isNaN(e)||e<=0)throw new _("random bytes length must be a Number bigger than 0","ERR_INVALID_LENGTH");return Ln(e)}var Yb=bt(C1(),1),Cs=bt(ct(),1);function n5(e,t){return t.map(r=>ae(e[r]))}function i5(e){return Cs.default.pki.setRsaPrivateKey(...n5(e,["n","e","d","p","q","dp","dq","qi"]))}function o5(e){return Cs.default.pki.setRsaPublicKey(...n5(e,["n","e"]))}var Zr={};Tt(Zr,{jwkToPkcs1:()=>xl,jwkToPkix:()=>bl,pkcs1ToJwk:()=>ml,pkixToJwk:()=>vl});var Zb=bt(u0(),1),Xb=bt(C1(),1);var ur=bt(ct(),1);function ml(e){let t=ur.default.asn1.fromDer(qt(e,"ascii")),r=ur.default.pki.privateKeyFromAsn1(t);return{kty:"RSA",n:Se(r.n),e:Se(r.e),d:Se(r.d),p:Se(r.p),q:Se(r.q),dp:Se(r.dP),dq:Se(r.dQ),qi:Se(r.qInv),alg:"RS256"}}function xl(e){if(e.n==null||e.e==null||e.d==null||e.p==null||e.q==null||e.dp==null||e.dq==null||e.qi==null)throw new _("JWK was missing components","ERR_INVALID_PARAMETERS");let t=ur.default.pki.privateKeyToAsn1({n:ae(e.n),e:ae(e.e),d:ae(e.d),p:ae(e.p),q:ae(e.q),dP:ae(e.dp),dQ:ae(e.dq),qInv:ae(e.qi)});return Qt(ur.default.asn1.toDer(t).getBytes(),"ascii")}function vl(e){let t=ur.default.asn1.fromDer(qt(e,"ascii")),r=ur.default.pki.publicKeyFromAsn1(t);return{kty:"RSA",n:Se(r.n),e:Se(r.e)}}function bl(e){if(e.n==null||e.e==null)throw new _("JWK was missing components","ERR_INVALID_PARAMETERS");let t=ur.default.pki.publicKeyToAsn1({n:ae(e.n),e:ae(e.e)});return Qt(ur.default.asn1.toDer(t).getBytes(),"ascii")}async function s5(e){let t=await At.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 u5(t);return{privateKey:r[0],publicKey:r[1]}}async function Rs(e){let r=[await At.get().subtle.importKey("jwk",e,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["sign"]),await wl(e)],n=await u5({privateKey:r[0],publicKey:r[1]});return{privateKey:n[0],publicKey:n[1]}}async function a5(e,t){let r=await At.get().subtle.importKey("jwk",e,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["sign"]),n=await At.get().subtle.sign({name:"RSASSA-PKCS1-v1_5"},r,t instanceof Uint8Array?t:t.subarray());return new Uint8Array(n,0,n.byteLength)}async function c5(e,t,r){let n=await At.get().subtle.importKey("jwk",e,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["verify"]);return At.get().subtle.verify({name:"RSASSA-PKCS1-v1_5"},n,t,r instanceof Uint8Array?r:r.subarray())}async function u5(e){if(e.privateKey==null||e.publicKey==null)throw new _("Private and public key are required","ERR_INVALID_PARAMETERS");return Promise.all([At.get().subtle.exportKey("jwk",e.privateKey),At.get().subtle.exportKey("jwk",e.publicKey)])}async function wl(e){return At.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 f5(e,t,r,n){let i=t?o5(e):i5(e),o=qt(r instanceof Uint8Array?r:r.subarray(),"ascii"),s=n(o,i);return Qt(s,"ascii")}function l5(e,t){return f5(e,!0,t,(r,n)=>n.encrypt(r))}function h5(e,t){return f5(e,!1,t,(r,n)=>n.decrypt(r))}function H1(e){if(e.kty!=="RSA")throw new _("invalid key type","ERR_INVALID_KEY_TYPE");if(e.n==null)throw new _("invalid key modulus","ERR_INVALID_KEY_MODULUS");return Qt(e.n,"base64url").length*8}var v0=8192,x0=class{_key;constructor(t){this._key=t}verify(t,r){return c5(this._key,r,t)}marshal(){return Zr.jwkToPkix(this._key)}get bytes(){return Te.encode({Type:dt.RSA,Data:this.marshal()}).subarray()}encrypt(t){return l5(this._key,t)}equals(t){return Ee(this.bytes,t.bytes)}hash(){let t=xt.digest(this.bytes);return pe(t)?t.then(({bytes:r})=>r):t.bytes}},Mn=class{_key;_publicKey;constructor(t,r){this._key=t,this._publicKey=r}genSecret(){return Wr(16)}sign(t){return a5(this._key,t)}get public(){if(this._publicKey==null)throw new _("public key not provided","ERR_PUBKEY_NOT_PROVIDED");return new x0(this._publicKey)}decrypt(t){return h5(this._key,t)}marshal(){return Zr.jwkToPkcs1(this._key)}get bytes(){return Ce.encode({Type:dt.RSA,Data:this.marshal()}).subarray()}equals(t){return Ee(this.bytes,t.bytes)}hash(){let t=xt.digest(this.bytes);return pe(t)?t.then(({bytes:r})=>r):t.bytes}async id(){let t=await this.public.hash();return qt(t,"base58btc")}async export(t,r="pkcs-8"){if(r==="pkcs-8"){let n=new m0.default.util.ByteBuffer(this.marshal()),i=m0.default.asn1.fromDer(n),o=m0.default.pki.privateKeyFromAsn1(i),s={algorithm:"aes256",count:1e4,saltSize:128/8,prfAlgorithm:"sha512"};return m0.default.pki.encryptRsaPrivateKey(o,t,s)}else{if(r==="libp2p-key")return Un(this.bytes,t);throw new _(`export format '${r}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}}};async function Sl(e){let t=Zr.pkcs1ToJwk(e);if(H1(t)>v0)throw new _("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let r=await Rs(t);return new Mn(r.privateKey,r.publicKey)}function Il(e){let t=Zr.pkixToJwk(e);if(H1(t)>v0)throw new _("key size is too large","ERR_KEY_SIZE_TOO_LARGE");return new x0(t)}async function Al(e){if(H1(e)>v0)throw new _("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let t=await Rs(e);return new Mn(t.privateKey,t.publicKey)}async function Bl(e){if(e>v0)throw new _("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let t=await s5(e);return new Mn(t.privateKey,t.publicKey)}var Us={};Tt(Us,{Secp256k1PrivateKey:()=>w0,Secp256k1PublicKey:()=>b0,generateKeyPair:()=>Vl,unmarshalSecp256k1PrivateKey:()=>Ml,unmarshalSecp256k1PublicKey:()=>Kl});var Tl=(e,t,r)=>e&t^~e&r,Cl=(e,t,r)=>e&t^e&r^t&r,Rl=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]),Tr=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Cr=new Uint32Array(64),Ps=class extends Nn{constructor(){super(64,32,8,!1),this.A=Tr[0]|0,this.B=Tr[1]|0,this.C=Tr[2]|0,this.D=Tr[3]|0,this.E=Tr[4]|0,this.F=Tr[5]|0,this.G=Tr[6]|0,this.H=Tr[7]|0}get(){let{A:t,B:r,C:n,D:i,E:o,F:s,G:a,H:c}=this;return[t,r,n,i,o,s,a,c]}set(t,r,n,i,o,s,a,c){this.A=t|0,this.B=r|0,this.C=n|0,this.D=i|0,this.E=o|0,this.F=s|0,this.G=a|0,this.H=c|0}process(t,r){for(let l=0;l<16;l++,r+=4)Cr[l]=t.getUint32(r,!1);for(let l=16;l<64;l++){let p=Cr[l-15],d=Cr[l-2],h=Ie(p,7)^Ie(p,18)^p>>>3,g=Ie(d,17)^Ie(d,19)^d>>>10;Cr[l]=g+Cr[l-7]+h+Cr[l-16]|0}let{A:n,B:i,C:o,D:s,E:a,F:c,G:u,H:f}=this;for(let l=0;l<64;l++){let p=Ie(a,6)^Ie(a,11)^Ie(a,25),d=f+p+Tl(a,c,u)+Rl[l]+Cr[l]|0,g=(Ie(n,2)^Ie(n,13)^Ie(n,22))+Cl(n,i,o)|0;f=u,u=c,c=a,a=s+d|0,s=o,o=i,i=n,n=d+g|0}n=n+this.A|0,i=i+this.B|0,o=o+this.C|0,s=s+this.D|0,a=a+this.E|0,c=c+this.F|0,u=u+this.G|0,f=f+this.H|0,this.set(n,i,o,s,a,c,u,f)}roundClean(){Cr.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};var d5=N1(()=>new Ps);function _l(e){let t=p0(e);ze(t,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});let{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(typeof r!="object"||typeof r.beta!="bigint"||typeof r.splitScalar!="function")throw new Error("Expected endomorphism with beta: bigint and splitScalar: function")}return Object.freeze({...t})}var{bytesToNumberBE:Pl,hexToBytes:Ll}=U1,Xr={Err:class extends Error{constructor(t=""){super(t)}},_parseInt(e){let{Err:t}=Xr;if(e.length<2||e[0]!==2)throw new t("Invalid signature integer tag");let r=e[1],n=e.subarray(2,r+2);if(!r||n.length!==r)throw new t("Invalid signature integer: wrong length");if(n[0]&128)throw new t("Invalid signature integer: negative");if(n[0]===0&&!(n[1]&128))throw new t("Invalid signature integer: unnecessary leading zero");return{d:Pl(n),l:e.subarray(r+2)}},toSig(e){let{Err:t}=Xr,r=typeof e=="string"?Ll(e):e;if(!Ae(r))throw new Error("ui8a expected");let n=r.length;if(n<2||r[0]!=48)throw new t("Invalid signature tag");if(r[1]!==n-2)throw new t("Invalid signature: incorrect length");let{d:i,l:o}=Xr._parseInt(r.subarray(2)),{d:s,l:a}=Xr._parseInt(o);if(a.length)throw new t("Invalid signature: left bytes after parsing");return{r:i,s}},hexFromSig(e){let t=u=>Number.parseInt(u[0],16)&8?"00"+u:u,r=u=>{let f=u.toString(16);return f.length&1?`0${f}`:f},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${r(s+o+4)}02${c}${i}02${a}${n}`}},fr=BigInt(0),ge=BigInt(1),ww=BigInt(2),p5=BigInt(3),Ew=BigInt(4);function Nl(e){let t=_l(e),{Fp:r}=t,n=t.toBytes||((h,g,y)=>{let m=g.toAffine();return sr(Uint8Array.from([4]),r.toBytes(m.x),r.toBytes(m.y))}),i=t.fromBytes||(h=>{let g=h.subarray(1),y=r.fromBytes(g.subarray(0,r.BYTES)),m=r.fromBytes(g.subarray(r.BYTES,2*r.BYTES));return{x:y,y:m}});function o(h){let{a:g,b:y}=t,m=r.sqr(h),x=r.mul(m,h);return r.add(r.add(x,r.mul(h,g)),y)}if(!r.eql(r.sqr(t.Gy),o(t.Gx)))throw new Error("bad generator point: equation left != right");function s(h){return typeof h=="bigint"&&fr<h&&h<t.n}function a(h){if(!s(h))throw new Error("Expected valid bigint: 0 < bigint < curve.n")}function c(h){let{allowedPrivateKeyLengths:g,nByteLength:y,wrapPrivateKey:m,n:x}=t;if(g&&typeof h!="bigint"){if(Ae(h)&&(h=ir(h)),typeof h!="string"||!g.includes(h.length))throw new Error("Invalid key");h=h.padStart(y*2,"0")}let v;try{v=typeof h=="bigint"?h:or(St("private key",h,y))}catch{throw new Error(`private key must be ${y} bytes, hex or bigint, not ${typeof h}`)}return m&&(v=ft(v,x)),a(v),v}let u=new Map;function f(h){if(!(h instanceof l))throw new Error("ProjectivePoint expected")}class l{constructor(g,y,m){if(this.px=g,this.py=y,this.pz=m,g==null||!r.isValid(g))throw new Error("x required");if(y==null||!r.isValid(y))throw new Error("y required");if(m==null||!r.isValid(m))throw new Error("z required")}static fromAffine(g){let{x:y,y:m}=g||{};if(!g||!r.isValid(y)||!r.isValid(m))throw new Error("invalid affine point");if(g instanceof l)throw new Error("projective point not allowed");let x=v=>r.eql(v,r.ZERO);return x(y)&&x(m)?l.ZERO:new l(y,m,r.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(g){let y=r.invertBatch(g.map(m=>m.pz));return g.map((m,x)=>m.toAffine(y[x])).map(l.fromAffine)}static fromHex(g){let y=l.fromAffine(i(St("pointHex",g)));return y.assertValidity(),y}static fromPrivateKey(g){return l.BASE.multiply(c(g))}_setWindowSize(g){this._WINDOW_SIZE=g,u.delete(this)}assertValidity(){if(this.is0()){if(t.allowInfinityPoint&&!r.is0(this.py))return;throw new Error("bad point: ZERO")}let{x:g,y}=this.toAffine();if(!r.isValid(g)||!r.isValid(y))throw new Error("bad point: x or y not FE");let m=r.sqr(y),x=o(g);if(!r.eql(m,x))throw new Error("bad point: equation left != right");if(!this.isTorsionFree())throw new Error("bad point: not in prime-order subgroup")}hasEvenY(){let{y:g}=this.toAffine();if(r.isOdd)return!r.isOdd(g);throw new Error("Field doesn't support isOdd")}equals(g){f(g);let{px:y,py:m,pz:x}=this,{px:v,py:T,pz:E}=g,S=r.eql(r.mul(y,E),r.mul(v,x)),L=r.eql(r.mul(m,E),r.mul(T,x));return S&&L}negate(){return new l(this.px,r.neg(this.py),this.pz)}double(){let{a:g,b:y}=t,m=r.mul(y,p5),{px:x,py:v,pz:T}=this,E=r.ZERO,S=r.ZERO,L=r.ZERO,N=r.mul(x,x),H=r.mul(v,v),z=r.mul(T,T),V=r.mul(x,v);return V=r.add(V,V),L=r.mul(x,T),L=r.add(L,L),E=r.mul(g,L),S=r.mul(m,z),S=r.add(E,S),E=r.sub(H,S),S=r.add(H,S),S=r.mul(E,S),E=r.mul(V,E),L=r.mul(m,L),z=r.mul(g,z),V=r.sub(N,z),V=r.mul(g,V),V=r.add(V,L),L=r.add(N,N),N=r.add(L,N),N=r.add(N,z),N=r.mul(N,V),S=r.add(S,N),z=r.mul(v,T),z=r.add(z,z),N=r.mul(z,V),E=r.sub(E,N),L=r.mul(z,H),L=r.add(L,L),L=r.add(L,L),new l(E,S,L)}add(g){f(g);let{px:y,py:m,pz:x}=this,{px:v,py:T,pz:E}=g,S=r.ZERO,L=r.ZERO,N=r.ZERO,H=t.a,z=r.mul(t.b,p5),V=r.mul(y,v),Z=r.mul(m,T),ut=r.mul(x,E),Ft=r.add(y,m),C=r.add(v,T);Ft=r.mul(Ft,C),C=r.add(V,Z),Ft=r.sub(Ft,C),C=r.add(y,x);let k=r.add(v,E);return C=r.mul(C,k),k=r.add(V,ut),C=r.sub(C,k),k=r.add(m,x),S=r.add(T,E),k=r.mul(k,S),S=r.add(Z,ut),k=r.sub(k,S),N=r.mul(H,C),S=r.mul(z,ut),N=r.add(S,N),S=r.sub(Z,N),N=r.add(Z,N),L=r.mul(S,N),Z=r.add(V,V),Z=r.add(Z,V),ut=r.mul(H,ut),C=r.mul(z,C),Z=r.add(Z,ut),ut=r.sub(V,ut),ut=r.mul(H,ut),C=r.add(C,ut),V=r.mul(Z,C),L=r.add(L,V),V=r.mul(k,C),S=r.mul(Ft,S),S=r.sub(S,V),V=r.mul(Ft,Z),N=r.mul(k,N),N=r.add(N,V),new l(S,L,N)}subtract(g){return this.add(g.negate())}is0(){return this.equals(l.ZERO)}wNAF(g){return d.wNAFCached(this,u,g,y=>{let m=r.invertBatch(y.map(x=>x.pz));return y.map((x,v)=>x.toAffine(m[v])).map(l.fromAffine)})}multiplyUnsafe(g){let y=l.ZERO;if(g===fr)return y;if(a(g),g===ge)return this;let{endo:m}=t;if(!m)return d.unsafeLadder(this,g);let{k1neg:x,k1:v,k2neg:T,k2:E}=m.splitScalar(g),S=y,L=y,N=this;for(;v>fr||E>fr;)v&ge&&(S=S.add(N)),E&ge&&(L=L.add(N)),N=N.double(),v>>=ge,E>>=ge;return x&&(S=S.negate()),T&&(L=L.negate()),L=new l(r.mul(L.px,m.beta),L.py,L.pz),S.add(L)}multiply(g){a(g);let y=g,m,x,{endo:v}=t;if(v){let{k1neg:T,k1:E,k2neg:S,k2:L}=v.splitScalar(y),{p:N,f:H}=this.wNAF(E),{p:z,f:V}=this.wNAF(L);N=d.constTimeNegate(T,N),z=d.constTimeNegate(S,z),z=new l(r.mul(z.px,v.beta),z.py,z.pz),m=N.add(z),x=H.add(V)}else{let{p:T,f:E}=this.wNAF(y);m=T,x=E}return l.normalizeZ([m,x])[0]}multiplyAndAddUnsafe(g,y,m){let x=l.BASE,v=(E,S)=>S===fr||S===ge||!E.equals(x)?E.multiplyUnsafe(S):E.multiply(S),T=v(this,y).add(v(g,m));return T.is0()?void 0:T}toAffine(g){let{px:y,py:m,pz:x}=this,v=this.is0();g==null&&(g=v?r.ONE:r.inv(x));let T=r.mul(y,g),E=r.mul(m,g),S=r.mul(x,g);if(v)return{x:r.ZERO,y:r.ZERO};if(!r.eql(S,r.ONE))throw new Error("invZ was invalid");return{x:T,y:E}}isTorsionFree(){let{h:g,isTorsionFree:y}=t;if(g===ge)return!0;if(y)return y(l,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){let{h:g,clearCofactor:y}=t;return g===ge?this:y?y(l,this):this.multiplyUnsafe(t.h)}toRawBytes(g=!0){return this.assertValidity(),n(l,this,g)}toHex(g=!0){return ir(this.toRawBytes(g))}}l.BASE=new l(t.Gx,t.Gy,r.ONE),l.ZERO=new l(r.ZERO,r.ONE,r.ZERO);let p=t.nBitLength,d=M1(l,t.endo?Math.ceil(p/2):p);return{CURVE:t,ProjectivePoint:l,normPrivateKeyToScalar:c,weierstrassEquation:o,isWithinCurveOrder:s}}function Dl(e){let t=p0(e);return ze(t,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...t})}function g5(e){let t=Dl(e),{Fp:r,n}=t,i=r.BYTES+1,o=2*r.BYTES+1;function s(C){return fr<C&&C<r.ORDER}function a(C){return ft(C,n)}function c(C){return O1(C,n)}let{ProjectivePoint:u,normPrivateKeyToScalar:f,weierstrassEquation:l,isWithinCurveOrder:p}=Nl({...t,toBytes(C,k,P){let D=k.toAffine(),A=r.toBytes(D.x),F=sr;return P?F(Uint8Array.from([k.hasEvenY()?2:3]),A):F(Uint8Array.from([4]),A,r.toBytes(D.y))},fromBytes(C){let k=C.length,P=C[0],D=C.subarray(1);if(k===i&&(P===2||P===3)){let A=or(D);if(!s(A))throw new Error("Point is not on curve");let F=l(A),M=r.sqrt(F),q=(M&ge)===ge;return(P&1)===1!==q&&(M=r.neg(M)),{x:A,y:M}}else if(k===o&&P===4){let A=r.fromBytes(D.subarray(0,r.BYTES)),F=r.fromBytes(D.subarray(r.BYTES,2*r.BYTES));return{x:A,y:F}}else throw new Error(`Point of length ${k} was invalid. Expected ${i} compressed bytes or ${o} uncompressed bytes`)}}),d=C=>ir(Br(C,t.nByteLength));function h(C){let k=n>>ge;return C>k}function g(C){return h(C)?a(-C):C}let y=(C,k,P)=>or(C.slice(k,P));class m{constructor(k,P,D){this.r=k,this.s=P,this.recovery=D,this.assertValidity()}static fromCompact(k){let P=t.nByteLength;return k=St("compactSignature",k,P*2),new m(y(k,0,P),y(k,P,2*P))}static fromDER(k){let{r:P,s:D}=Xr.toSig(St("DER",k));return new m(P,D)}assertValidity(){if(!p(this.r))throw new Error("r must be 0 < r < CURVE.n");if(!p(this.s))throw new Error("s must be 0 < s < CURVE.n")}addRecoveryBit(k){return new m(this.r,this.s,k)}recoverPublicKey(k){let{r:P,s:D,recovery:A}=this,F=L(St("msgHash",k));if(A==null||![0,1,2,3].includes(A))throw new Error("recovery id invalid");let M=A===2||A===3?P+t.n:P;if(M>=r.ORDER)throw new Error("recovery id 2 or 3 invalid");let q=A&1?"03":"02",Q=u.fromHex(q+d(M)),J=c(M),st=a(-F*J),j=a(D*J),rt=u.BASE.multiplyAndAddUnsafe(Q,st,j);if(!rt)throw new Error("point at infinify");return rt.assertValidity(),rt}hasHighS(){return h(this.s)}normalizeS(){return this.hasHighS()?new m(this.r,a(-this.s),this.recovery):this}toDERRawBytes(){return Hr(this.toDERHex())}toDERHex(){return Xr.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return Hr(this.toCompactHex())}toCompactHex(){return d(this.r)+d(this.s)}}let x={isValidPrivateKey(C){try{return f(C),!0}catch{return!1}},normPrivateKeyToScalar:f,randomPrivateKey:()=>{let C=ys(t.n);return N4(t.randomBytes(C),t.n)},precompute(C=8,k=u.BASE){return k._setWindowSize(C),k.multiply(BigInt(3)),k}};function v(C,k=!0){return u.fromPrivateKey(C).toRawBytes(k)}function T(C){let k=Ae(C),P=typeof C=="string",D=(k||P)&&C.length;return k?D===i||D===o:P?D===2*i||D===2*o:C instanceof u}function E(C,k,P=!0){if(T(C))throw new Error("first arg must be private key");if(!T(k))throw new Error("second arg must be public key");return u.fromHex(k).multiply(f(C)).toRawBytes(P)}let S=t.bits2int||function(C){let k=or(C),P=C.length*8-t.nBitLength;return P>0?k>>BigInt(P):k},L=t.bits2int_modN||function(C){return a(S(C))},N=d0(t.nBitLength);function H(C){if(typeof C!="bigint")throw new Error("bigint expected");if(!(fr<=C&&C<N))throw new Error(`bigint expected < 2^${t.nBitLength}`);return Br(C,t.nByteLength)}function z(C,k,P=V){if(["recovered","canonical"].some(vt=>vt in P))throw new Error("sign() legacy options not supported");let{hash:D,randomBytes:A}=t,{lowS:F,prehash:M,extraEntropy:q}=P;F==null&&(F=!0),C=St("msgHash",C),M&&(C=St("prehashed msgHash",D(C)));let Q=L(C),J=f(k),st=[H(J),H(Q)];if(q!=null){let vt=q===!0?A(r.BYTES):q;st.push(St("extraEntropy",vt))}let j=sr(...st),rt=Q;function Bt(vt){let Mt=S(vt);if(!p(Mt))return;let Kt=c(Mt),_t=u.BASE.multiply(Mt).toAffine(),zt=a(_t.x);if(zt===fr)return;let $e=a(Kt*a(rt+zt*J));if($e===fr)return;let _r=(_t.x===zt?0:2)|Number(_t.y&ge),Vn=$e;return F&&h($e)&&(Vn=g($e),_r^=1),new m(zt,Vn,_r)}return{seed:j,k2sig:Bt}}let V={lowS:t.lowS,prehash:!1},Z={lowS:t.lowS,prehash:!1};function ut(C,k,P=V){let{seed:D,k2sig:A}=z(C,k,P),F=t;return hs(F.hash.outputLen,F.nByteLength,F.hmac)(D,A)}u.BASE._setWindowSize(8);function Ft(C,k,P,D=Z){let A=C;if(k=St("msgHash",k),P=St("publicKey",P),"strict"in D)throw new Error("options.strict was renamed to lowS");let{lowS:F,prehash:M}=D,q,Q;try{if(typeof A=="string"||Ae(A))try{q=m.fromDER(A)}catch(_t){if(!(_t instanceof Xr.Err))throw _t;q=m.fromCompact(A)}else if(typeof A=="object"&&typeof A.r=="bigint"&&typeof A.s=="bigint"){let{r:_t,s:zt}=A;q=new m(_t,zt)}else throw new Error("PARSE");Q=u.fromHex(P)}catch(_t){if(_t.message==="PARSE")throw new Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(F&&q.hasHighS())return!1;M&&(k=t.hash(k));let{r:J,s:st}=q,j=L(k),rt=c(st),Bt=a(j*rt),vt=a(J*rt),Mt=u.BASE.multiplyAndAddUnsafe(Q,Bt,vt)?.toAffine();return Mt?a(Mt.x)===J:!1}return{CURVE:t,getPublicKey:v,getSharedSecret:E,sign:ut,verify:Ft,ProjectivePoint:u,Signature:m,utils:x}}var $1=class extends Pn{constructor(t,r){super(),this.finished=!1,this.destroyed=!1,b4(t);let n=h0(r);if(this.iHash=t.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let i=this.blockLen,o=new Uint8Array(i);o.set(n.length>i?t.create().update(n).digest():n);for(let s=0;s<o.length;s++)o[s]^=54;this.iHash.update(o),this.oHash=t.create();for(let s=0;s<o.length;s++)o[s]^=106;this.oHash.update(o),o.fill(0)}update(t){return _n(this),this.iHash.update(t),this}digestInto(t){_n(this),os(t,this.outputLen),this.finished=!0,this.iHash.digestInto(t),this.oHash.update(t),this.oHash.digestInto(t),this.destroy()}digest(){let t=new Uint8Array(this.oHash.outputLen);return this.digestInto(t),t}_cloneInto(t){t||(t=Object.create(Object.getPrototypeOf(this),{}));let{oHash:r,iHash:n,finished:i,destroyed:o,blockLen:s,outputLen:a}=this;return t=t,t.finished=i,t.destroyed=o,t.blockLen=s,t.outputLen=a,t.oHash=r._cloneInto(t.oHash),t.iHash=n._cloneInto(t.iHash),t}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}},Ls=(e,t,r)=>new $1(e,t).update(r).digest();Ls.create=(e,t)=>new $1(e,t);function kl(e){return{hash:e,hmac:(t,...r)=>Ls(e,t,L1(...r)),randomBytes:Ln}}function y5(e,t){let r=n=>g5({...e,...kl(n)});return Object.freeze({...r(t),create:r})}var v5=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),m5=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),Ul=BigInt(1),Ns=BigInt(2),x5=(e,t)=>(e+t/Ns)/t;function Ol(e){let t=v5,r=BigInt(3),n=BigInt(6),i=BigInt(11),o=BigInt(22),s=BigInt(23),a=BigInt(44),c=BigInt(88),u=e*e*e%t,f=u*u*e%t,l=mt(f,r,t)*f%t,p=mt(l,r,t)*f%t,d=mt(p,Ns,t)*u%t,h=mt(d,i,t)*d%t,g=mt(h,o,t)*h%t,y=mt(g,a,t)*g%t,m=mt(y,c,t)*y%t,x=mt(m,a,t)*g%t,v=mt(x,r,t)*f%t,T=mt(v,s,t)*h%t,E=mt(T,n,t)*u%t,S=mt(E,Ns,t);if(!Ds.eql(Ds.sqr(S),e))throw new Error("Cannot find square root");return S}var Ds=F1(v5,void 0,void 0,{sqrt:Ol}),Re=y5({a:BigInt(0),b:BigInt(7),Fp:Ds,n:m5,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:e=>{let t=m5,r=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),n=-Ul*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),i=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),o=r,s=BigInt("0x100000000000000000000000000000000"),a=x5(o*e,t),c=x5(-n*e,t),u=ft(e-a*r-c*i,t),f=ft(-a*n-c*o,t),l=u>s,p=f>s;if(l&&(u=t-u),p&&(f=t-f),u>s||f>s)throw new Error("splitScalar: Endomorphism failed, k="+e);return{k1neg:l,k1:u,k2neg:p,k2:f}}}},d5),Dw=BigInt(0);var kw=Re.ProjectivePoint;function b5(){return Re.utils.randomPrivateKey()}function w5(e,t){let r=xt.digest(t instanceof Uint8Array?t:t.subarray());if(pe(r))return r.then(({digest:n})=>Re.sign(n,e).toDERRawBytes()).catch(n=>{throw new _(String(n),"ERR_INVALID_INPUT")});try{return Re.sign(r.digest,e).toDERRawBytes()}catch(n){throw new _(String(n),"ERR_INVALID_INPUT")}}function E5(e,t,r){let n=xt.digest(r instanceof Uint8Array?r:r.subarray());if(pe(n))return n.then(({digest:i})=>Re.verify(t,i,e)).catch(i=>{throw new _(String(i),"ERR_INVALID_INPUT")});try{return Re.verify(t,n.digest,e)}catch(i){throw new _(String(i),"ERR_INVALID_INPUT")}}function S5(e){return Re.ProjectivePoint.fromHex(e).toRawBytes(!0)}function I5(e){try{Re.getPublicKey(e,!0)}catch(t){throw new _(String(t),"ERR_INVALID_PRIVATE_KEY")}}function ks(e){try{Re.ProjectivePoint.fromHex(e)}catch(t){throw new _(String(t),"ERR_INVALID_PUBLIC_KEY")}}function A5(e){try{return Re.getPublicKey(e,!0)}catch(t){throw new _(String(t),"ERR_INVALID_PRIVATE_KEY")}}var b0=class{_key;constructor(t){ks(t),this._key=t}verify(t,r){return E5(this._key,r,t)}marshal(){return S5(this._key)}get bytes(){return Te.encode({Type:dt.Secp256k1,Data:this.marshal()}).subarray()}equals(t){return Ee(this.bytes,t.bytes)}async hash(){let t=xt.digest(this.bytes),r;return pe(t)?{bytes:r}=await t:r=t.bytes,r}},w0=class{_key;_publicKey;constructor(t,r){this._key=t,this._publicKey=r??A5(t),I5(this._key),ks(this._publicKey)}sign(t){return w5(this._key,t)}get public(){return new b0(this._publicKey)}marshal(){return this._key}get bytes(){return Ce.encode({Type:dt.Secp256k1,Data:this.marshal()}).subarray()}equals(t){return Ee(this.bytes,t.bytes)}hash(){let t=xt.digest(this.bytes);return pe(t)?t.then(({bytes:r})=>r):t.bytes}async id(){let t=await this.public.hash();return qt(t,"base58btc")}async export(t,r="libp2p-key"){if(r==="libp2p-key")return Un(this.bytes,t);throw new _(`export format '${r}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};function Ml(e){return new w0(e)}function Kl(e){return new b0(e)}async function Vl(){let e=b5();return new w0(e)}var He={rsa:_s,ed25519:Is,secp256k1:Us};function Os(e){let t=Object.keys(He).join(" / ");return new _(`invalid or unsupported key type ${e}. Must be ${t}`,"ERR_UNSUPPORTED_KEY_TYPE")}function Fs(e){if(e=e.toLowerCase(),e==="rsa"||e==="ed25519"||e==="secp256k1")return He[e];throw Os(e)}async function ql(e,t){return Fs(e).generateKeyPair(t??2048)}async function zl(e,t,r){if(e.toLowerCase()!=="ed25519")throw new _("Seed key derivation is unimplemented for RSA or secp256k1","ERR_UNSUPPORTED_KEY_DERIVATION_TYPE");return Ss(t)}function Hl(e){let t=Te.decode(e),r=t.Data??new Uint8Array;switch(t.Type){case dt.RSA:return He.rsa.unmarshalRsaPublicKey(r);case dt.Ed25519:return He.ed25519.unmarshalEd25519PublicKey(r);case dt.Secp256k1:return He.secp256k1.unmarshalSecp256k1PublicKey(r);default:throw Os(t.Type??"unknown")}}function $l(e,t){return t=(t??"rsa").toLowerCase(),Fs(t),e.bytes}async function B5(e){let t=Ce.decode(e),r=t.Data??new Uint8Array;switch(t.Type){case dt.RSA:return He.rsa.unmarshalRsaPrivateKey(r);case dt.Ed25519:return He.ed25519.unmarshalEd25519PrivateKey(r);case dt.Secp256k1:return He.secp256k1.unmarshalSecp256k1PrivateKey(r);default:throw Os(t.Type??"RSA")}}function Gl(e,t){return t=(t??"rsa").toLowerCase(),Fs(t),e.bytes}async function Yl(e,t){try{let i=await W4(e,t);return await B5(i)}catch{}let r=G1.default.pki.decryptRsaPrivateKey(e,t);if(r===null)throw new _("Cannot read the key, most likely the password is wrong or not a RSA key","ERR_CANNOT_DECRYPT_PEM");let n=G1.default.asn1.toDer(G1.default.pki.privateKeyToAsn1(r));return n=Qt(n.getBytes(),"ascii"),He.rsa.unmarshalRsaPrivateKey(n)}var Ql=bt(Wo(),1),Wl=bt(It(),1);function Q1(e,t){if(globalThis.Buffer!=null)return globalThis.Buffer.compare(e,t);for(let r=0;r<e.byteLength;r++){if(e[r]<t[r])return-1;if(e[r]>t[r])return 1}return e.byteLength>t.byteLength?1:e.byteLength<t.byteLength?-1:0}function lr(e,t){if(e.length!==t.length)throw new Error("Inputs should have the same length");let r=ln(e.length);for(let n=0;n<e.length;n++)r[n]=e[n]^t[n];return De(r)}var W1=class{originDhtKey;capacity;peerDistances;constructor(t,r){this.originDhtKey=t,this.capacity=r,this.peerDistances=[]}get length(){return this.peerDistances.length}get peers(){return this.peerDistances.map(t=>t.peerId)}async add(t){if(this.peerDistances.find(i=>i.peerId.equals(t))!=null)return;let r=await xe(t),n={peerId:t,distance:lr(this.originDhtKey,r)};this.peerDistances.push(n),this.peerDistances.sort((i,o)=>Q1(i.distance,o.distance)),this.peerDistances=this.peerDistances.slice(0,this.capacity)}async anyCloser(t){if(t.length===0)return!1;if(this.length===0)return!0;let r=await Promise.all(t.map(xe)),n=this.peerDistances[this.peerDistances.length-1].distance;for(let i of r){let o=lr(this.originDhtKey,i);if(Q1(o,n)<0)return!0}return!1}};var Z1=class{log;routingTable;network;validators;queryManager;peerStore;peerId;constructor(t,r){let{routingTable:n,network:i,validators:o,queryManager:s,logPrefix:a}=r;this.routingTable=n,this.network=i,this.validators=o,this.queryManager=s,this.peerStore=t.peerStore,this.peerId=t.peerId,this.log=t.logger.forComponent(`${a}:peer-routing`)}async findPeerLocal(t){let r,n=await this.routingTable.find(t);if(n!=null){this.log("findPeerLocal found %p in routing table",t);try{r=await this.peerStore.get(n)}catch(i){if(i.code!=="ERR_NOT_FOUND")throw i}}if(r==null)try{r=await this.peerStore.get(t)}catch(i){if(i.code!=="ERR_NOT_FOUND")throw i}if(r!=null)return this.log("findPeerLocal found %p in peer store",t),{id:r.id,multiaddrs:r.addresses.map(i=>i.multiaddr)}}async*_getValueSingle(t,r,n={}){let i={type:X.GET_VALUE,key:r};yield*this.network.sendRequest(t,i,n)}async*getPublicKeyFromNode(t,r={}){let n=wa(t);for await(let i of this._getValueSingle(t,n,r))if(yield i,i.name==="PEER_RESPONSE"&&i.record!=null){let o=await ta(Y1.marshalPublicKey({bytes:i.record.value}));if(!o.equals(t))throw new _("public key does not match id","ERR_PUBLIC_KEY_DOES_NOT_MATCH_ID");if(o.publicKey==null)throw new _("public key missing","ERR_PUBLIC_KEY_MISSING");yield Jn({from:t,value:o.publicKey},r)}throw new _(`Node not responding with its public key: ${t.toString()}`,"ERR_INVALID_RECORD")}async*findPeer(t,r={}){if(this.log("findPeer %p",t),r.useCache!==!1){let i=await this.findPeerLocal(t);if(i!=null){this.log("found local"),yield M0({from:this.peerId,peer:i},r);return}}let n=!1;if(r.useNetwork!==!1){let i=this,o=async function*({peer:s,signal:a}){let c={type:X.FIND_NODE,key:t.toBytes()};for await(let u of i.network.sendRequest(s,c,{...r,signal:a}))if(yield u,u.name==="PEER_RESPONSE"){let f=u.closer.find(l=>l.id.equals(t));f!=null&&(yield M0({from:u.from,peer:f},r))}};for await(let s of this.queryManager.run(t.toBytes(),o,r))s.name==="FINAL_PEER"&&(n=!0),yield s}n||(yield oe({from:this.peerId,error:new _("Not found","ERR_NOT_FOUND")},r))}async*getClosestPeers(t,r={}){this.log("getClosestPeers to %b",t);let n=await xr(t),i=this.routingTable.closestPeers(n),o=this,s=new W1(n,this.routingTable.kBucketSize);await Promise.all(i.map(async c=>{await s.add(c)}));let a=async function*({peer:c,signal:u}){o.log("closerPeersSingle %s from %p",Dt(t,"base32"),c);let f={type:X.FIND_NODE,key:t};yield*o.network.sendRequest(c,f,{...r,signal:u})};for await(let c of this.queryManager.run(t,a,r))yield c,c.name==="PEER_RESPONSE"&&await Promise.all(c.closer.map(async u=>{await s.add(u.id)}));this.log("found %d peers close to %b",s.length,t);for(let c of s.peers)try{let u=await this.peerStore.get(c);yield M0({from:this.peerId,peer:{id:c,multiaddrs:u.addresses.map(({multiaddr:f})=>f)}},r)}catch(u){if(u.code!=="ERR_NOT_FOUND")throw u}}async*getValueOrPeers(t,r,n={}){for await(let i of this._getValueSingle(t,r,n)){if(i.name==="PEER_RESPONSE"&&i.record!=null)try{await this._verifyRecordOnline(i.record)}catch{let s="invalid record received, discarded";this.log(s),yield oe({from:i.from,error:new _(s,"ERR_INVALID_RECORD")},n);continue}yield i}}async _verifyRecordOnline(t){if(t.timeReceived==null)throw new _("invalid record received","ERR_INVALID_RECORD");await pn(this.validators,new Lt(t.key,t.value,t.timeReceived))}async getCloserPeersOffline(t,r){let n=await xr(t),i=this.routingTable.closestPeers(n),o=[];for(let s of i)if(!s.equals(r))try{let a=await this.peerStore.get(s);o.push({id:s,multiaddrs:a.addresses.map(({multiaddr:c})=>c)})}catch(a){if(a.code!=="ERR_NOT_FOUND")throw a}return o.length>0?this.log("getCloserPeersOffline found %d peer(s) closer to %b than %p",o.length,t,r):this.log("getCloserPeersOffline could not find peer closer to %b than %p",t,r),o}};var N5=bt(C5(),1);var S0=bt(_5(),1);var Rr=class extends Error{constructor(t){super(t),this.name="TimeoutError"}},Ks=class extends Error{constructor(t){super(),this.name="AbortError",this.message=t}},P5=e=>globalThis.DOMException===void 0?new Ks(e):new DOMException(e),L5=e=>{let t=e.reason===void 0?P5("This operation was aborted."):e.reason;return t instanceof Error?t:P5(t)};function Jr(e,t){let{milliseconds:r,fallback:n,message:i,customTimers:o={setTimeout,clearTimeout}}=t,s,c=new Promise((u,f)=>{if(typeof r!="number"||Math.sign(r)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${r}\``);if(t.signal){let{signal:p}=t;p.aborted&&f(L5(p)),p.addEventListener("abort",()=>{f(L5(p))})}if(r===Number.POSITIVE_INFINITY){e.then(u,f);return}let l=new Rr;s=o.setTimeout.call(void 0,()=>{if(n){try{u(n())}catch(p){f(p)}return}typeof e.cancel=="function"&&e.cancel(),i===!1?u():i instanceof Error?f(i):(l.message=i??`Promise timed out after ${r} milliseconds`,f(l))},r),(async()=>{try{u(await e)}catch(p){f(p)}})()}).finally(()=>{c.clear()});return c.clear=()=>{o.clearTimeout.call(void 0,s),s=void 0},c}function Vs(e,t,r){let n=0,i=e.length;for(;i>0;){let o=Math.trunc(i/2),s=n+o;r(e[s],t)<=0?(n=++s,i-=o+1):i=o}return n}var I0=class{#t=[];enqueue(t,r){r={priority:0,...r};let n={priority:r.priority,run:t};if(this.size&&this.#t[this.size-1].priority>=r.priority){this.#t.push(n);return}let i=Vs(this.#t,n,(o,s)=>s.priority-o.priority);this.#t.splice(i,0,n)}dequeue(){return this.#t.shift()?.run}filter(t){return this.#t.filter(r=>r.priority===t.priority).map(r=>r.run)}get size(){return this.#t.length}};var jr=class extends S0.default{#t;#o;#i=0;#a;#c;#p=0;#r;#u;#e;#g;#n=0;#f;#s;#y;timeout;constructor(t){if(super(),t={carryoverConcurrencyCount:!1,intervalCap:Number.POSITIVE_INFINITY,interval:0,concurrency:Number.POSITIVE_INFINITY,autoStart:!0,queueClass:I0,...t},!(typeof t.intervalCap=="number"&&t.intervalCap>=1))throw new TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${t.intervalCap?.toString()??""}\` (${typeof t.intervalCap})`);if(t.interval===void 0||!(Number.isFinite(t.interval)&&t.interval>=0))throw new TypeError(`Expected \`interval\` to be a finite number >= 0, got \`${t.interval?.toString()??""}\` (${typeof t.interval})`);this.#t=t.carryoverConcurrencyCount,this.#o=t.intervalCap===Number.POSITIVE_INFINITY||t.interval===0,this.#a=t.intervalCap,this.#c=t.interval,this.#e=new t.queueClass,this.#g=t.queueClass,this.concurrency=t.concurrency,this.timeout=t.timeout,this.#y=t.throwOnTimeout===!0,this.#s=t.autoStart===!1}get#v(){return this.#o||this.#i<this.#a}get#b(){return this.#n<this.#f}#w(){this.#n--,this.#l(),this.emit("next")}#E(){this.#x(),this.#m(),this.#u=void 0}get#S(){let t=Date.now();if(this.#r===void 0){let r=this.#p-t;if(r<0)this.#i=this.#t?this.#n:0;else return this.#u===void 0&&(this.#u=setTimeout(()=>{this.#E()},r)),!0}return!1}#l(){if(this.#e.size===0)return this.#r&&clearInterval(this.#r),this.#r=void 0,this.emit("empty"),this.#n===0&&this.emit("idle"),!1;if(!this.#s){let t=!this.#S;if(this.#v&&this.#b){let r=this.#e.dequeue();return r?(this.emit("active"),r(),t&&this.#m(),!0):!1}}return!1}#m(){this.#o||this.#r!==void 0||(this.#r=setInterval(()=>{this.#x()},this.#c),this.#p=Date.now()+this.#c)}#x(){this.#i===0&&this.#n===0&&this.#r&&(clearInterval(this.#r),this.#r=void 0),this.#i=this.#t?this.#n:0,this.#h()}#h(){for(;this.#l(););}get concurrency(){return this.#f}set concurrency(t){if(!(typeof t=="number"&&t>=1))throw new TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${t}\` (${typeof t})`);this.#f=t,this.#h()}async#I(t){return new Promise((r,n)=>{t.addEventListener("abort",()=>{n(t.reason)},{once:!0})})}async add(t,r={}){return r={timeout:this.timeout,throwOnTimeout:this.#y,...r},new Promise((n,i)=>{this.#e.enqueue(async()=>{this.#n++,this.#i++;try{r.signal?.throwIfAborted();let o=t({signal:r.signal});r.timeout&&(o=Jr(Promise.resolve(o),{milliseconds:r.timeout})),r.signal&&(o=Promise.race([o,this.#I(r.signal)]));let s=await o;n(s),this.emit("completed",s)}catch(o){if(o instanceof Rr&&!r.throwOnTimeout){n();return}i(o),this.emit("error",o)}finally{this.#w()}},r),this.emit("add"),this.#l()})}async addAll(t,r){return Promise.all(t.map(async n=>this.add(n,r)))}start(){return this.#s?(this.#s=!1,this.#h(),this):this}pause(){this.#s=!0}clear(){this.#e=new this.#g}async onEmpty(){this.#e.size!==0&&await this.#d("empty")}async onSizeLessThan(t){this.#e.size<t||await this.#d("next",()=>this.#e.size<t)}async onIdle(){this.#n===0&&this.#e.size===0||await this.#d("idle")}async#d(t,r){return new Promise(n=>{let i=()=>{r&&!r()||(this.off(t,i),n())};this.on(t,i)})}get size(){return this.#e.size}sizeBy(t){return this.#e.filter(t).length}get pending(){return this.#n}get isPaused(){return this.#s}};var J1=class{log;datastore;cache;cleanupInterval;provideValidity;syncQueue;started;cleaner;constructor(t,r={}){let{cacheSize:n,cleanupInterval:i,provideValidity:o}=r;this.log=t.logger.forComponent("libp2p:kad-dht:providers"),this.datastore=t.datastore,this.cleanupInterval=i??36e5,this.provideValidity=o??864e5,this.cache=(0,N5.default)(n??256),this.syncQueue=new jr({concurrency:1}),this.started=!1}isStarted(){return this.started}async start(){this.started||(this.started=!0,this.cleaner=setInterval(()=>{this._cleanup().catch(t=>{this.log.error(t)})},this.cleanupInterval))}async stop(){this.started=!1,this.cleaner!=null&&(clearInterval(this.cleaner),this.cleaner=void 0)}async _cleanup(){await this.syncQueue.add(async()=>{let t=Date.now(),r=0,n=0,i=new Map,o=this.datastore.batch(),s=this.datastore.query({prefix:wi});for await(let a of s)try{let{cid:c,peerId:u}=D5(a.key),f=k5(a.value).getTime(),l=Date.now(),p=l-f,d=p>this.provideValidity;if(this.log("comparing: %d - %d = %d > %d %s",l,f,p,this.provideValidity,d?"(expired)":""),d){n++,o.delete(a.key);let h=i.get(c)??new Set;h.add(u),i.set(c,h)}r++}catch(c){this.log.error(c.message)}i.size>0?(this.log("deleting %d / %d entries",n,r),await o.commit()):this.log("nothing to delete");for(let[a,c]of i){let u=A0(a),f=this.cache.get(u);if(f!=null){for(let l of c)f.delete(l);f.size===0?this.cache.remove(u):this.cache.set(u,f)}}this.log("Cleanup successful (%dms)",Date.now()-t)})}async _getProvidersMap(t){let r=A0(t),n=this.cache.get(r);return n==null&&(n=await r9(this.datastore,t),this.cache.set(r,n)),n}async addProvider(t,r){await this.syncQueue.add(async()=>{this.log("%p provides %s",r,t);let n=await this._getProvidersMap(t);this.log("loaded %s provs",n.size);let i=new Date;n.set(r.toString(),i);let o=A0(t);this.cache.set(o,n),await e9(this.datastore,t,r,i)})}async getProviders(t){return this.syncQueue.add(async()=>(this.log("get providers for %s",t),[...(await this._getProvidersMap(t)).keys()].map(n=>Et(n))),{throwOnTimeout:!0})}};function A0(e){let t=typeof e=="string"?e:Dt(e.multihash.bytes,"base32");return`${wi}/${t}`}async function e9(e,t,r,n){let i=[A0(t),"/",r.toString()].join(""),o=new xn(i),s=ke(n.getTime());await e.put(o,s)}function D5(e){let t=e.toString().split("/");if(t.length!==5)throw new Error(`incorrectly formatted provider entry key in datastore: ${e.toString()}`);return{cid:t[3],peerId:t[4]}}async function r9(e,t){let r=new Map,n=e.query({prefix:A0(t)});for await(let i of n){let{peerId:o}=D5(i.key);r.set(o,k5(i.value))}return r}function k5(e){return new Date(se(e))}function Kn(e){let t=new globalThis.AbortController;function r(){t.abort();for(let o of e)o?.removeEventListener!=null&&o.removeEventListener("abort",r)}for(let o of e){if(o?.aborted===!0){r();break}o?.addEventListener!=null&&o.addEventListener("abort",r)}function n(){for(let o of e)o?.removeEventListener!=null&&o.removeEventListener("abort",r)}let i=t.signal;return i.clear=n,i}async function*U5(e,t,r,n){let i=nn({objectMode:!0}),o=l=>{n("clean up queue, results %d, queue size %d, pending tasks %d",i.readableLength,e.size,e.pending),e.clear(),i.end(l)},s=l=>{l!=null&&i.push(l)},a=l=>{n("queue error",l),o(l)},c=()=>{n("queue idle"),o()},u=()=>{n("abort queue"),o(new _("Query aborted","ERR_QUERY_ABORTED"))},f=()=>{o()};e.on("completed",s),e.on("error",a),e.on("idle",c),t.addEventListener("abort",u),r.addEventListener("cleanup",f);try{yield*i}finally{e.removeListener("completed",s),e.removeListener("error",a),e.removeListener("idle",c),t.removeEventListener("abort",u),r.removeEventListener("cleanup",f)}}var n9=BigInt("0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF");async function*O5(e){let{key:t,startingPeer:r,ourPeerId:n,signal:i,query:o,alpha:s,pathIndex:a,numPaths:c,cleanUp:u,queryFuncTimeout:f,log:l,peersSeen:p}=e,d=new jr({concurrency:s}),h=await xr(t);function g(y,m){if(y==null)return;p.add(y);let x=BigInt("0x"+Dt(lr(m,h),"base16"));d.add(async()=>{let v=[i];f!=null&&v.push(AbortSignal.timeout(f));let T=Kn(v);try{for await(let E of o({key:t,peer:y,signal:T,pathIndex:a,numPaths:c})){if(T.aborted)return;if(E.name==="PEER_RESPONSE")for(let S of E.closer){if(p.has(S.id)){l("already seen %p in query",S.id);continue}if(n.equals(S.id)){l("not querying ourselves");continue}let L=await xe(S.id);if(BigInt("0x"+Dt(lr(L,h),"base16"))>x){l("skipping %p as they are not closer to %b than %p",S.id,t,y);continue}l("querying closer peer %p",S.id),g(S.id,L)}d.emit("completed",E)}}catch(E){if(!i.aborted)return oe({from:y,error:E},e)}finally{T.clear()}},{priority:n9-x}).catch(v=>{l.error(v)})}g(r,await xe(r)),yield*U5(d,i,u,l)}var ti=class{disjointPaths;alpha;shutDownController;running;queries;logger;peerId;routingTable;initialQuerySelfHasRun;logPrefix;metrics;constructor(t,r){let{disjointPaths:n=20,alpha:i=3,logPrefix:o}=r;this.logPrefix=o,this.disjointPaths=n??20,this.running=!1,this.alpha=i??3,this.queries=0,this.initialQuerySelfHasRun=r.initialQuerySelfHasRun,this.routingTable=r.routingTable,this.logger=t.logger,this.peerId=t.peerId,t.metrics!=null&&(this.metrics={runningQueries:t.metrics.registerMetric(`${o.replaceAll(":","_")}_running_queries`),queryTime:t.metrics.registerMetric(`${o.replaceAll(":","_")}_query_time_seconds`)}),this.shutDownController=new AbortController,tn(1/0,this.shutDownController.signal)}isStarted(){return this.running}async start(){this.running=!0}async stop(){this.running=!1,this.shutDownController.abort()}async*run(t,r,n={}){if(!this.running)throw new Error("QueryManager not started");let i=this.metrics?.queryTime.timer();if(n.signal==null){let u=AbortSignal.timeout(3e4);tn(1/0,u),n={...n,signal:u}}let o=Kn([this.shutDownController.signal,n.signal]);tn(1/0,o);let s=this.logger.forComponent(`${this.logPrefix}:query:`+Dt(t,"base58btc")),a=Date.now(),c=new ee;try{n.isSelfQuery!==!0&&this.initialQuerySelfHasRun!=null&&(s("waiting for initial query-self query before continuing"),await Promise.race([new Promise((h,g)=>{o.addEventListener("abort",()=>{g(new _0("Query was aborted before self-query ran"))})}),this.initialQuerySelfHasRun.promise]),this.initialQuerySelfHasRun=void 0),s("query:start"),this.queries++,this.metrics?.runningQueries.update(this.queries);let u=await xr(t),f=this.routingTable.closestPeers(u),l=f.slice(0,Math.min(this.disjointPaths,f.length));if(f.length===0){s.error("Running query with no peers");return}let p=new ve,d=l.map((h,g)=>O5({key:t,startingPeer:h,ourPeerId:this.peerId,signal:o,query:r,pathIndex:g,numPaths:l.length,alpha:this.alpha,cleanUp:c,queryFuncTimeout:n.queryFuncTimeout,log:s,peersSeen:p,onProgress:n.onProgress}));for await(let h of N0(...d))yield h,h.name==="QUERY_ERROR"&&s("error",h.error)}catch(u){if(!(!this.running&&u.code==="ERR_QUERY_ABORTED"))throw u}finally{o.clear(),this.queries--,this.metrics?.runningQueries.update(this.queries),i?.(),c.dispatchEvent(new Zt("cleanup")),s("query:done in %dms",Date.now()-a)}}};function o9(e){return e[Symbol.asyncIterator]!=null}function s9(e){if(o9(e))return(async()=>{let t=0;for await(let r of e)t++;return t})();{let t=0;for(let r of e)t++;return t}}var ei=s9;function a9(e){return e[Symbol.asyncIterator]!=null}function c9(e,t){return a9(e)?async function*(){let r=0;if(!(t<1)){for await(let n of e)if(yield n,r++,r===t)return}}():function*(){let r=0;if(!(t<1)){for(let n of e)if(yield n,r++,r===t)return}}()}var F5=c9;var u9=e=>{let 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 f9(e,t,r){let n,i=new Promise((o,s)=>{if(r={rejectionEvents:["error"],multiArgs:!1,resolveImmediately:!1,...r},!(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");r.signal?.throwIfAborted();let a=[t].flat(),c=[],{addListener:u,removeListener:f}=u9(e),l=(...d)=>{let h=r.multiArgs?d:d[0];r.filter&&!r.filter(h)||(c.push(h),r.count===c.length&&(n(),o(c)))},p=d=>{n(),s(d)};n=()=>{for(let d of a)f(d,l);for(let d of r.rejectionEvents)f(d,p)};for(let d of a)u(d,l);for(let d of r.rejectionEvents)u(d,p);r.signal&&r.signal.addEventListener("abort",()=>{p(r.signal.reason)},{once:!0}),r.resolveImmediately&&o(c)});if(i.cancel=n,typeof r.timeout=="number"){let o=Jr(i,{milliseconds:r.timeout});return o.cancel=n,o}return i}function M5(e,t,r){typeof r=="function"&&(r={filter:r}),r={...r,count:1,resolveImmediately:!1};let n=f9(e,t,r),i=n.then(o=>o[0]);return i.cancel=n.cancel,i}var ri=class{log;peerId;peerRouting;routingTable;count;interval;initialInterval;queryTimeout;started;timeoutId;controller;initialQuerySelfHasRun;querySelfPromise;constructor(t,r){let{peerRouting:n,logPrefix:i,count:o,interval:s,queryTimeout:a,routingTable:c}=r;this.peerId=t.peerId,this.log=t.logger.forComponent(`${i}:query-self`),this.started=!1,this.peerRouting=n,this.routingTable=c,this.count=o??20,this.interval=s??3e5,this.initialInterval=r.initialInterval??1e3,this.queryTimeout=a??5e3,this.initialQuerySelfHasRun=r.initialQuerySelfHasRun}isStarted(){return this.started}start(){this.started||(this.started=!0,clearTimeout(this.timeoutId),this.timeoutId=setTimeout(()=>{this.querySelf().catch(t=>{this.log.error("error running self-query",t)})},this.initialInterval))}stop(){this.started=!1,this.timeoutId!=null&&clearTimeout(this.timeoutId),this.controller!=null&&this.controller.abort()}async querySelf(){if(!this.started){this.log("skip self-query because we are not started");return}if(this.querySelfPromise!=null)return this.log("joining existing self query"),this.querySelfPromise.promise;if(this.querySelfPromise=Ct(),this.started){this.controller=new AbortController;let t=Kn([this.controller.signal,AbortSignal.timeout(this.queryTimeout)]);tn(1/0,t);try{this.routingTable.size===0&&(this.log("routing table was empty, waiting for some peers before running query"),await M5(this.routingTable,"peer:add",{signal:t})),this.log("run self-query, look for %d peers timing out after %dms",this.count,this.queryTimeout);let r=Date.now(),n=await dr(this.peerRouting.getClosestPeers(this.peerId.toBytes(),{signal:t,isSelfQuery:!0}),i=>F5(i,this.count),async i=>ei(i));this.log("self-query found %d peers in %dms",n,Date.now()-r)}catch(r){this.log.error("self-query error",r)}finally{t.clear(),this.initialQuerySelfHasRun!=null&&(this.initialQuerySelfHasRun.resolve(),this.initialQuerySelfHasRun=void 0)}}this.querySelfPromise.resolve(),this.querySelfPromise=void 0,this.started&&(this.timeoutId=setTimeout(()=>{this.querySelf().catch(t=>{this.log.error("error running self-query",t)})},this.interval))}};function qs(e,t,r){let n=0,i=e.length;for(;i>0;){let o=Math.trunc(i/2),s=n+o;r(e[s],t)<=0?(n=++s,i-=o+1):i=o}return n}var B0=class{#t=[];enqueue(t,r){r={priority:0,...r};let n={priority:r.priority,run:t};if(this.size&&this.#t[this.size-1].priority>=r.priority){this.#t.push(n);return}let i=qs(this.#t,n,(o,s)=>s.priority-o.priority);this.#t.splice(i,0,n)}dequeue(){return this.#t.shift()?.run}filter(t){return this.#t.filter(r=>r.priority===t.priority).map(r=>r.run)}get size(){return this.#t.length}};var T0=class extends S0.default{#t;#o;#i=0;#a;#c;#p=0;#r;#u;#e;#g;#n=0;#f;#s;#y;timeout;constructor(t){if(super(),t={carryoverConcurrencyCount:!1,intervalCap:Number.POSITIVE_INFINITY,interval:0,concurrency:Number.POSITIVE_INFINITY,autoStart:!0,queueClass:B0,...t},!(typeof t.intervalCap=="number"&&t.intervalCap>=1))throw new TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${t.intervalCap?.toString()??""}\` (${typeof t.intervalCap})`);if(t.interval===void 0||!(Number.isFinite(t.interval)&&t.interval>=0))throw new TypeError(`Expected \`interval\` to be a finite number >= 0, got \`${t.interval?.toString()??""}\` (${typeof t.interval})`);this.#t=t.carryoverConcurrencyCount,this.#o=t.intervalCap===Number.POSITIVE_INFINITY||t.interval===0,this.#a=t.intervalCap,this.#c=t.interval,this.#e=new t.queueClass,this.#g=t.queueClass,this.concurrency=t.concurrency,this.timeout=t.timeout,this.#y=t.throwOnTimeout===!0,this.#s=t.autoStart===!1}get#v(){return this.#o||this.#i<this.#a}get#b(){return this.#n<this.#f}#w(){this.#n--,this.#l(),this.emit("next")}#E(){this.#x(),this.#m(),this.#u=void 0}get#S(){let t=Date.now();if(this.#r===void 0){let r=this.#p-t;if(r<0)this.#i=this.#t?this.#n:0;else return this.#u===void 0&&(this.#u=setTimeout(()=>{this.#E()},r)),!0}return!1}#l(){if(this.#e.size===0)return this.#r&&clearInterval(this.#r),this.#r=void 0,this.emit("empty"),this.#n===0&&this.emit("idle"),!1;if(!this.#s){let t=!this.#S;if(this.#v&&this.#b){let r=this.#e.dequeue();return r?(this.emit("active"),r(),t&&this.#m(),!0):!1}}return!1}#m(){this.#o||this.#r!==void 0||(this.#r=setInterval(()=>{this.#x()},this.#c),this.#p=Date.now()+this.#c)}#x(){this.#i===0&&this.#n===0&&this.#r&&(clearInterval(this.#r),this.#r=void 0),this.#i=this.#t?this.#n:0,this.#h()}#h(){for(;this.#l(););}get concurrency(){return this.#f}set concurrency(t){if(!(typeof t=="number"&&t>=1))throw new TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${t}\` (${typeof t})`);this.#f=t,this.#h()}async#I(t){return new Promise((r,n)=>{t.addEventListener("abort",()=>{n(t.reason)},{once:!0})})}async add(t,r={}){return r={timeout:this.timeout,throwOnTimeout:this.#y,...r},new Promise((n,i)=>{this.#e.enqueue(async()=>{this.#n++,this.#i++;try{r.signal?.throwIfAborted();let o=t({signal:r.signal});r.timeout&&(o=Jr(Promise.resolve(o),{milliseconds:r.timeout})),r.signal&&(o=Promise.race([o,this.#I(r.signal)]));let s=await o;n(s),this.emit("completed",s)}catch(o){if(o instanceof Rr&&!r.throwOnTimeout){n();return}i(o),this.emit("error",o)}finally{this.#w()}},r),this.emit("add"),this.#l()})}async addAll(t,r){return Promise.all(t.map(async n=>this.add(n,r)))}start(){return this.#s?(this.#s=!1,this.#h(),this):this}pause(){this.#s=!0}clear(){this.#e=new this.#g}async onEmpty(){this.#e.size!==0&&await this.#d("empty")}async onSizeLessThan(t){this.#e.size<t||await this.#d("next",()=>this.#e.size<t)}async onIdle(){this.#n===0&&this.#e.size===0||await this.#d("idle")}async#d(t,r){return new Promise(n=>{let i=()=>{r&&!r()||(this.off(t,i),n())};this.on(t,i)})}get size(){return this.#e.size}sizeBy(t){return this.#e.filter(t).length}get pending(){return this.#n}get isPaused(){return this.#s}};function p9(e,t,r){let n=0,i=e.length;for(;i>0;){let o=Math.trunc(i/2),s=n+o;r(e[s],t)<=0?(n=++s,i-=o+1):i=o}return n}var zs=class{#t=[];enqueue(t,r){let n=r?.peerId,i=r?.priority??0;if(n==null)throw new _("missing peer id",xi);let o={priority:i,peerId:n,run:t};if(this.size>0&&this.#t[this.size-1].priority>=i){this.#t.push(o);return}let s=p9(this.#t,o,(a,c)=>c.priority-a.priority);this.#t.splice(s,0,o)}dequeue(){return this.#t.shift()?.run}filter(t){if(t.peerId!=null){let r=t.peerId;return this.#t.filter(n=>r.equals(n.peerId)).map(n=>n.run)}return this.#t.filter(r=>r.priority===t.priority).map(r=>r.run)}get size(){return this.#t.length}},ni=class extends T0{results;constructor(t={}){super({...t,queueClass:zs}),this.results=new En}hasJob(t){return this.sizeBy({peerId:t})>0}async joinJob(t){let r=this.results.get(t);if(r==null)throw new _("No job found for peer id","ERR_NO_JOB_FOR_PEER_ID");return r===!0&&(r=Ct(),this.results.set(t,r)),r.promise}async add(t,r){let n=r?.peerId;if(n==null)throw new _("missing peer id",xi);return this.results.set(r.peerId,!0),super.add(async i=>{try{let o=await t(i),s=this.results.get(n);return s!=null&&s!==!0&&s.resolve(o),o}catch(o){let s=this.results.get(n);throw s!=null&&s!==!0&&s.reject(o),o}finally{this.results.delete(n)}},r)}clear(){this.results.clear(),super.clear()}};function K5(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let r=0,n=e.length;r<n;++r)if(e[r]!==t[r])return!1;return!0}function Hs(){return{contacts:[],dontSplit:!1,left:null,right:null}}function C0(e,t){if(!(t instanceof Uint8Array))throw new TypeError(e+" is not a Uint8Array")}var ii=class e extends ee{localNodeId;root;numberOfNodesPerKBucket;numberOfNodesToPing;distance;arbiter;constructor(t){super(),this.localNodeId=t.localNodeId,this.numberOfNodesPerKBucket=t.numberOfNodesPerKBucket??20,this.numberOfNodesToPing=t.numberOfNodesToPing??3,this.distance=t.distance??e.distance,this.arbiter=t.arbiter??e.arbiter,C0("option.localNodeId as parameter 1",this.localNodeId),this.root=Hs()}static arbiter(t,r){return(t.vectorClock??0)>(r.vectorClock??0)?t:r}static distance(t,r){let n=0,i=0,o=Math.min(t.length,r.length),s=Math.max(t.length,r.length);for(;i<o;++i)n=n*256+(t[i]^r[i]);for(;i<s;++i)n=n*256+255;return n}add(t){C0("contact.id",t?.id);let r=0,n=this.root;for(;n.contacts===null;)n=this._determineNode(n,t.id,r++);let i=this._indexOf(n,t.id);return i>=0?(this._update(n,i,t),this):n.contacts.length<this.numberOfNodesPerKBucket?(n.contacts.push(t),this.safeDispatchEvent("added",{detail:t}),this):n.dontSplit?(this.safeDispatchEvent("ping",{detail:{oldContacts:n.contacts.slice(0,this.numberOfNodesToPing),newContact:t}}),this):(this._split(n,r),this.add(t))}closest(t,r=1/0){if(C0("id",t),!Number.isInteger(r)&&r!==1/0||r<=0)throw new TypeError("n is not positive number");let n=[];for(let i=[this.root],o=0;i.length>0&&n.length<r;){let s=i.pop();if(s!=null)if(s.contacts===null){let a=this._determineNode(s,t,o++);i.push(s.left===a?s.right:s.left),i.push(a)}else n=n.concat(s.contacts)}return n.map(i=>({distance:this.distance(i.id,t),contact:i})).sort((i,o)=>i.distance-o.distance).slice(0,r).map(i=>i.contact)}count(){let t=0;for(let r=[this.root];r.length>0;){let n=r.pop();n!=null&&(n.contacts===null?r.push(n.right,n.left):t+=n.contacts.length)}return t}_determineNode(t,r,n){let i=n>>3,o=n%8;return r.length<=i&&o!==0?t.left:r[i]&1<<7-o?t.right:t.left}get(t){C0("id",t);let r=0,n=this.root;for(;n.contacts===null;)n=this._determineNode(n,t,r++);let i=this._indexOf(n,t);return i>=0?n.contacts[i]:void 0}_indexOf(t,r){for(let n=0;n<t.contacts.length;++n)if(K5(t.contacts[n].id,r))return n;return-1}remove(t){C0("the id as parameter 1",t);let r=0,n=this.root;for(;n.contacts===null;)n=this._determineNode(n,t,r++);let i=this._indexOf(n,t);if(i>=0){let o=n.contacts.splice(i,1)[0];this.safeDispatchEvent("removed",{detail:o})}return this}_split(t,r){t.left=Hs(),t.right=Hs();for(let o of t.contacts)this._determineNode(t,o.id,r).contacts.push(o);t.contacts=null;let n=this._determineNode(t,this.localNodeId,r),i=t.left===n?t.right:t.left;i.dontSplit=!0}toArray(){let t=[];for(let r=[this.root];r.length>0;){let n=r.pop();n!=null&&(n.contacts===null?r.push(n.right,n.left):t=t.concat(n.contacts))}return t}*toIterable(){for(let t=[this.root];t.length>0;){let r=t.pop();r!=null&&(r.contacts===null?t.push(r.right,r.left):yield*r.contacts)}}_update(t,r,n){if(!K5(t.contacts[r].id,n.id))throw new Error("wrong index for _update");let i=t.contacts[r],o=this.arbiter(i,n);o===i&&i!==n||(t.contacts.splice(r,1),t.contacts.push(o),this.safeDispatchEvent("updated",{detail:{incumbent:i,selection:o}}))}};var g9="kad-close",y9=50,V5=20,m9=1e4,x9=10,oi=class extends ee{kBucketSize;kb;pingQueue;log;components;pingTimeout;pingConcurrency;running;protocol;tagName;tagValue;metrics;constructor(t,r){super();let{kBucketSize:n,pingTimeout:i,logPrefix:o,pingConcurrency:s,protocol:a,tagName:c,tagValue:u}=r;this.components=t,this.log=t.logger.forComponent(`${o}:routing-table`),this.kBucketSize=n??V5,this.pingTimeout=i??m9,this.pingConcurrency=s??x9,this.running=!1,this.protocol=a,this.tagName=c??g9,this.tagValue=u??y9;let f=()=>{this.metrics?.pingQueueSize.update(this.pingQueue.size),this.metrics?.pingRunning.update(this.pingQueue.pending)};this.pingQueue=new ni({concurrency:this.pingConcurrency}),this.pingQueue.addListener("add",f),this.pingQueue.addListener("next",f),this.pingQueue.addListener("error",l=>{this.log.error("error pinging peer",l)}),this.components.metrics!=null&&(this.metrics={routingTableSize:this.components.metrics.registerMetric(`${o.replaceAll(":","_")}_routing_table_size`),pingQueueSize:this.components.metrics.registerMetric(`${o.replaceAll(":","_")}_ping_queue_size`),pingRunning:this.components.metrics.registerMetric(`${o.replaceAll(":","_")}_ping_running`)})}isStarted(){return this.running}async start(){this.running=!0;let t=new ii({localNodeId:await xe(this.components.peerId),numberOfNodesPerKBucket:this.kBucketSize,numberOfNodesToPing:1});this.kb=t,t.addEventListener("ping",r=>{this._onPing(r).catch(n=>{this.log.error("could not process k-bucket ping event",n)})}),this._tagPeers(t)}async stop(){this.running=!1,this.pingQueue.clear(),this.kb=void 0}_tagPeers(t){let r=new ve,n=Ia(()=>{let i=new ve(t.closest(t.localNodeId,V5).map(a=>a.peer)),o=i.difference(r),s=r.difference(i);Promise.resolve().then(async()=>{for(let a of o)await this.components.peerStore.merge(a,{tags:{[this.tagName]:{value:this.tagValue}}});for(let a of s)await this.components.peerStore.merge(a,{tags:{[this.tagName]:void 0}})}).catch(a=>{this.log.error("Could not update peer tags",a)}),r=i});t.addEventListener("added",i=>{n(),this.safeDispatchEvent("peer:add",{detail:i.detail.peer})}),t.addEventListener("removed",i=>{n(),this.safeDispatchEvent("peer:remove",{detail:i.detail.peer})})}async _onPing(t){if(!this.running)return;let{oldContacts:r,newContact:n}=t.detail,o=(await Promise.all(r.map(async s=>this.pingQueue.hasJob(s.peer)?this.pingQueue.joinJob(s.peer):this.pingQueue.add(async()=>{let a;try{let c={signal:AbortSignal.timeout(this.pingTimeout)};this.log("pinging old contact %p",s.peer),a=await(await this.components.connectionManager.openConnection(s.peer,c)).newStream(this.protocol,c);let f=o0(a);await f.write({type:X.PING},ue,c);let l=await f.read(ue,c);if(await f.unwrap().close(),l.type!==X.PING)throw new _(`Incorrect message type received, expected PING got ${l.type}`,"ERR_BAD_PING_RESPONSE");return!0}catch(c){return this.running&&this.kb!=null&&(this.log.error("could not ping peer %p",s.peer,c),this.log("evicting old contact after ping failed %p",s.peer),this.kb.remove(s.id)),a?.abort(c),!1}finally{this.metrics?.routingTableSize.update(this.size)}},{peerId:s.peer})))).filter(s=>s).length;this.running&&o<r.length&&this.kb!=null&&(this.log("adding new contact %p",n.peer),this.kb.add(n))}get size(){return this.kb==null?0:this.kb.count()}async find(t){let r=await xe(t),n=this.closestPeer(r);if(n!=null&&t.equals(n))return n}closestPeer(t){let r=this.closestPeers(t,1);if(r.length>0)return r[0]}closestPeers(t,r=this.kBucketSize){return this.kb==null?[]:this.kb.closest(t,r).map(i=>i.peer)}async add(t){if(this.kb==null)throw new Error("RoutingTable is not started");let r=await xe(t);this.kb.add({id:r,peer:t}),this.log("added %p with kad id %b",t,r),this.metrics?.routingTableSize.update(this.size)}async remove(t){if(this.kb==null)throw new Error("RoutingTable is not started");let r=await xe(t);this.kb.remove(r),this.metrics?.routingTableSize.update(this.size)}};var q5=[77591,22417,43971,28421,740,29829,71467,228973,196661,78537,27689,36431,44415,14362,19456,106025,96308,2882,49509,21149,87173,131409,75844,23676,121838,30291,17492,2953,7564,110620,129477,127283,53113,72417,165166,109690,21200,102125,24049,71504,90342,25307,72039,26812,26715,32264,133800,71161,88956,171987,51779,24425,16671,30251,186294,247761,14202,2121,8465,35024,4876,85917,169730,3638,256836,96184,943,18678,6583,52907,35807,112254,214097,18796,11595,9243,23554,887,268203,382004,24590,111335,11625,16619,29039,102425,69006,97976,92362,32552,63717,41433,128974,137630,59943,10019,13986,35430,33665,108037,43799,43280,38195,29078,58629,18265,14425,46832,235538,40830,77881,110717,58937,3463,325358,51300,47623,117252,19007,10170,20540,91237,294813,4951,79841,56232,36270,128547,69209,66275,100156,32063,73531,34439,80937,28892,44466,88595,216307,32583,49620,16605,82127,45807,21630,78726,20235,40163,111007,96926,5567,72083,21665,58844,39419,179767,48328,42662,51550,5251,37811,49608,81056,50854,55513,20922,18891,197409,164656,32593,71449,220474,58919,85682,67854,13758,35066,3565,61905,214793,119572,141419,21504,10302,27354,67003,46131,32668,15165,64871,34450,17821,2757,11452,34189,5160,12257,85523,560,53385,65887,119549,135620,312353,115979,122356,10867,193231,124537,54783,90675,120791,4715,142253,50943,17271,43358,25331,4917,120566,34580,12878,33786,160528,32523,4869,301307,104817,81491,23276,8832,97911,31265,52065,7998,49622,9715,43998,34091,84587,20664,69041,29419,53205,10838,58288,116145,6185,5154,141795,35924,21307,144738,43730,12085,8279,10002,119,133779,199668,72938,31768,39176,67875,38453,9700,44144,4121,116048,41733,12868,82669,92308,128,34262,11332,7712,90764,36141,13553,71312,77470,117314,96549,49135,23602,54468,28605,6327,62308,17171,67531,21319,14105,894,107722,46157,8503,51069,100472,45138,15246,14577,35609,191464,1757,13364,161349,32067,91705,81144,52339,5408,91066,21983,14157,100545,4372,26630,129112,1423,29676,213626,4397,88436,99190,6877,49958,26122,114348,60661,29818,293118,50042,179738,16400,163423,89627,31040,43973,36638,45952,5153,1894,109322,1898,134021,12402,112077,68309,190269,69866,31938,107383,11522,105232,11248,14868,39852,71707,186525,16530,38162,106212,11700,5130,16608,26998,59586,108399,230033,43683,48135,82179,2073,5015,196684,189293,16378,23452,8301,35640,11632,214551,29240,57644,33137,91949,55157,52384,117313,5090,17717,89668,49363,82238,241035,66216,29066,184088,97206,62820,26595,4241,135635,173672,8202,459,71355,146294,29587,3008,135385,141203,14803,6634,45094,69362,50925,546,51884,62011,83296,234584,44515,56050,89476,87751,19373,12691,149923,19794,13833,35846,87557,58339,2884,19145,25647,12224,11024,77338,64608,122297,53025,7205,36189,36294,170779,21750,7739,173883,75192,35664,224240,113121,30181,26267,27036,117827,92015,106516,55628,203549,67949,60462,60844,35911,20457,1820,920,19773,8738,73173,181993,38521,98254,76257,46008,92796,5384,26868,151566,22124,2411,15919,186872,180021,28099,152961,78811,80237,62352,102653,74259,184890,16792,123702,224945,29940,19512,75283,14059,112691,92811,233329,20411,138569,53341,109802,50600,134528,66747,5529,166531,31578,64732,67189,1596,126357,967,167999,206598,109752,119431,207825,78791,91938,10301,27311,24233,252343,28831,32812,66002,112267,90895,8786,8095,16824,22866,21813,60507,174833,19549,130985,117051,52110,6938,81923,123864,38061,919,18680,53534,46739,112893,161529,85429,26761,11900,81121,91968,15390,217947,56524,1713,6654,37089,85630,138866,61850,16491,75577,16884,98296,73523,6140,44645,6062,36366,29844,57946,37932,42472,5266,20834,19309,33753,127182,134259,35810,41805,45878,312001,14881,47757,49251,120050,44252,3708,25856,107864,120347,1228,36550,41682,34496,47025,8393,173365,246526,12894,161607,35670,90785,126572,2095,124731,157033,58694,554,12786,9642,4817,16136,47864,174698,66992,4639,69284,10625,40710,27763,51738,30404,264105,137904,109882,52487,42824,57514,2740,10479,146799,107390,16586,88038,174951,9410,16185,44158,5568,40658,46108,12763,97385,26175,108859,664,230732,67470,46663,14395,50750,141320,93140,15361,47997,55784,6791,307840,118569,107326,18056,58281,260415,54691,8790,73332,45633,7511,45674,143373,14031,11799,94491,35646,96544,14560,26049,32983,25791,83814,42094,231370,63955,139212,2359,169908,3108,183486,105867,28197,32941,124968,26402,88267,149768,23053,3078,19091,52924,25383,19209,111548,97361,3959,24880,235061,9099,24921,161254,151405,20508,7159,34381,20133,11434,74036,19974,34769,36585,1076,22454,17354,38727,235160,111547,96454,117448,156940,91330,37299,7310,26915,117060,51369,22620,61861,322264,106850,111694,15091,2624,40345,300446,177064,1707,27389,54792,327783,132669,183543,59003,17744,20603,151134,106923,53084,71803,279424,319816,11579,21946,16728,38274,72711,5085,83391,88646,40159,25027,34680,10752,12988,54126,30365,18338,100445,230674,44874,84974,143877,123253,139372,28082,91477,144002,13096,219729,46016,50029,42377,14601,6660,58244,58978,23918,88206,113611,64452,17541,41032,10942,12021,49189,10978,40175,37156,10947,71709,106894,112538,57007,137486,150608,152719,40615,7746,279716,13101,19524,28708,40578,72320,1096,182051,94527,51275,22833,45164,81917,77519,48508,5421,140302,37845,149830,5587,27579,5357,428725,248187,6326,206760,39814,32585,89923,44341,288753,284443,96368,31201,94189,119504,20359,52073,103216,179,27934,32801,96035,34111,34309,101326,18198,20704,210266,37643,27880,141873,106e3,19414,56614,167714,66483,107885,86602,4379,20796,75467,4987,5017,118857,26003,34308,114428,29198,6686,29697,73632,3739,69795,16798,41504,7207,30722,21436,36735,28067,28545,3239,11221,36031,41889,100010,19247,317673,29495,174554,6424,129725,53845,94986,7955,59676,2604,191497,19735,102214,62954,23844,11872,179525,261436,34492,428,78404,142035,16747,17246,27578,37021,33672,57944,26056,135760,2369,61674,122066,31327,19374,157065,40553,130982,69619,71290,38855,72100,92903,95940,51422,165999,65713,57873,50726,7288,20272,2081,42326,22624,81120,57914,79352,19447,1684,72302,11774,302559,161481,96396,13692,414988,3721,79066,56627,46883,21150,11747,12184,5856,113458,176117,84416,52079,27933,3354,59765,141359,2212,216309,2555,23458,196722,142463,45701,44548,28798,19418,215,29916,9396,10574,114226,84475,13520,18694,34056,4524,90302,62930,13539,19407,77209,7728,38088,9535,2263,23875,183945,17750,26274,67172,10585,28042,22199,7478,51331,66030,26774,192929,31434,25850,50197,52926,178158,4679,181256,70184,229600,9959,105594,72158,73974,2726,35085,78087,23284,35568,51713,155676,5401,27254,11966,17569,223253,71993,103357,111477,55722,30504,26034,46774,35392,36285,214814,41143,163465,1051,16094,81044,6636,76489,179102,20712,39178,35683,125177,54219,30617,52994,25324,50123,2543,87529,58995,10688,125199,12388,60158,125481,131646,7642,133350,65874,3438,97277,101450,10075,56344,116821,50778,60547,98016,106135,13859,14255,16300,77373,173521,8285,45932,37426,4054,114295,55947,7703,39114,52,51119,128135,19714,60715,9554,50492,88180,2823,118271,52993,122625,97919,23859,37895,25040,33614,32102,20431,3577,9275,15686,43031,157741,110358,1884,40291,125391,13736,5008,64881,87336,77381,70711,43032,49155,118587,70494,4318,10168,30126,12580,10524,280104,104001,145413,2862,84140,6603,106005,13566,12780,11251,42830,571,179910,82443,13146,469,42714,32591,265217,424024,92553,54721,134100,6007,15242,114681,59030,16718,85465,200214,85982,55174,165013,23493,56964,82529,109150,32706,27568,82442,5350,14976,13165,44890,60021,21343,33978,17264,4655,22328,27819,75730,16567,55483,14510,17926,45827,150609,3704,7385,272531,161543,76904,122163,52405,2039,19165,41623,14423,228354,3369,176360,85491,7122,35789,303724,4465,13628,2233,55311,118771,20713,10006,221519,45115,71021,35650,29775,7337,10864,20665,21142,1746,15080,1624,32449,10905,105743,229797,7701,3940,22997,178467,57208,389057,39683,59403,63344,63125,54847,69691,18336,56448,3362,37202,18282,29648,138224,35867,10495,5911,28814,26653,31514,176702,26550,45621,11734,4525,40543,73944,121080,27858,155561,14887,44670,30742,8796,107455,113472,56369,75581,183777,240095,133699,153299,8768,160464,26058,49078,103971,21875,71486,44888,17156,9678,89541,123019,102337,3972,83930,21245,87852,109660,287918,183019,686,10100,39177,283941,11274,24736,26793,26214,25995,77011,141580,4070,23742,46285,46632,30700,26669,19056,35951,115575,174034,56097,35463,87425,24575,44245,38701,82317,85922,281616,100333,147697,61503,7730,84330,8530,59917,61597,17173,9092,32658,90288,193136,39023,20381,56654,31132,7779,1919,1375,117128,30819,11169,40938,23935,115201,101155,151034,4835,11231,74550,89388,59951,91704,107312,167882,115062,12732,72738,88703,464019,158267,57995,60496,737,14371,123867,4174,243339,159946,7568,16025,134556,110916,38103,191,80226,88794,29688,27230,10454,76308,57647,77409,113483,66864,14745,19808,12023,46583,84805,16015,17102,2231,20611,3547,95740,250131,34559,108894,8498,15853,159169,148920,20942,2813,93160,45188,210613,45531,52587,149062,39782,28194,57849,60965,84954,89766,84453,100927,16501,27658,165311,103841,54192,207341,19558,20084,319622,5672,205467,98462,61849,36279,13609,147177,24726,165015,209489,59591,31157,6551,117580,75060,141146,277310,21072,22023,106474,63041,137443,122965,68371,5383,42146,98961,113467,30863,23794,4843,99630,30392,82679,13699,241612,33601,93146,24319,18643,32155,95669,40440,15333,34089,67799,142144,58245,38633,114531,117400,77861,188726,5507,2568,8853,10987,107222,2663,2421,11530,13345,30075,41785,118661,104786,17459,12490,16281,71936,193555,17431,5944,71758,26485,77317,20803,367167,158,7362,93430,11735,172445,46002,11532,54482,930,62911,2235,23004,179236,4764,101859,208113,22477,55163,95579,14098,67320,162556,90709,156949,3826,57492,4025,34092,87442,104565,6718,186015,28214,14209,10039,107186,233912,58877,81637,55265,39828,6194,145813,50831,105849,4974,88319,122296,10272,197216,95714,51540,72418,23324,91555,8743,140452,250249,51666,34124,7229,38592,129641,78169,174242,22464,149964,51450,14034,10026,95376,26190,120062,14401,8700,265,31386,143573,7203,229889,61567,4227,140981,2466,72052,10787,10062,30958,6099,38471,30103,23202,208101,70847,467,58934,32271,32984,36637,24107,30771,17109,73353,13650,2098,157040,67366,66904,106018,265380,107238,18535,44025,32681,144983,62505,91295,56120,3082,77508,10322,63023,36700,81885,224127,16721,45023,239261,111272,13852,7866,149243,204199,32309,22084,42029,38316,126644,104973,14406,43454,67322,61310,15789,40285,24026,181047,6301,70927,23319,115823,27248,66693,115875,278566,63007,146844,56841,59007,87368,180001,22370,42114,80605,12022,10374,308,25079,14689,12618,63368,7936,264973,212291,136713,95999,105801,18965,32075,48700,52230,35119,96912,32992,8586,16606,101333,101812,14969,39930,759,193090,27387,42914,12937,5058,62646,64528,38624,25743,37502,3716,4435,30352,178687,26461,132611,42002,138442,35833,59582,16345,8048,60319,49349,309,47800,49739,90482,26405,34470,63786,32479,85028,39866,47846,11649,23934,29466,2816,42864,31828,7410,74885,49632,47629,111801,90749,19536,18767,105764,59606,21223,10746,76298,22220,39408,7190,79654,64856,11602,82156,272765,17079,70089,245473,51813,184407,384678,1576,122249,5064,27481,6188,25790,74361,27541,318284,45430,31488,620,93579,45723,192118,22670,51913,4162,70244,35966,26397,16199,50899,209613,121702,287507,2993,36101,132229,67345,33062,76295,118628,78705,52316,34375,107083,107454,44863,127561,33964,3073,154010,190914,55967,39074,6272,31047,5550,41123,26154,98638,47110,19998,148091,50229,31329,59900,195442,19106,61347,73497,70015,682,45850,25776,38022,148951,6288,37411,232526,109277,27286,32342,9262,5220,16651,23175,46740,129438,78614,121925,66914,88710,127952,5563,21500,34521,10739,14863,191006,62956,17359,16749,67027,56284,69134,43301,35039,58883,54466,60823,404451,75743,59856,86979,7923,34273,83785,32142,7693,268986,197428,282681,17049,22346,22990,92245,107180,3357,37104,96724,49153,7683,31197,43267,82231,164276,23696,20848,188364,22309,24821,158707,1018,22514,70922,27792,45589,59709,10765,736,35218,63479,51987,24275,63588,55361,92929,81964,4658,20122,12330,44058,13065,311456,72224,8337,211229,38979,22590,138478,52757,32595,133600,8838,31549,94412,43391,90056,1585,94802,127271,6223,31889,137038,132910,2165,57616,230152,6080,10748,36737,74579,134062,50525,180532,119270,34556,76155,82394,52595,29258,31435,87820,67996,26943,183878,38007,2410,13526,180297,69856,3503,187396,167700,7838,16701,9199,56267,3661,37407,65994,23767,5708,62508,221700,67088,86978,46776,84434,32088,5612,9149,88244,21685,95151,46750,189612,2979,506311,2594,3628,40074,105039,78243,28523,6651,38058,71999,30992,12764,68261,108991,6165,26450,61961,13400,22426,7490,60890,109623,2070,12958,50355,67979,257096,7213,42578,52121,35716,65461,7516,124758,39268,302,64712,14977,1467,219452,2840,34229,11121,21602,19270,63574,8024,1532,17331,79839,78885,52029,180767,57957,6069,91265,61380,55767,8927,32881,287603,22149,35029,68876,6428,199567,46926,13412,104132,21434,366616,45060,110046,81924,128910,45886,52821,130416,29416,77342,21762,67329,121432,79924,11724,38625,81006,102033,28338,13326,3250,82056,82526,38212,21112,12382,111495,3263,7414,86274,93490,40844,30224,45212,24019,48411,71367,24941,76729,57776,3769,38114,202019,197745,31953,237533,33270,201580,255648,100798,44741,32241,98468,106931,10085,15090,170358,33154,66787,18819,69760,25061,234005,82660,6295,131975,16874,9076,4094,25005,17740,40908,19533,220019,44330,99792,50040,19619,13950,55228,24423,31253,95308,103177,184795,28590,82285,5059,3210,75525,49894,70007,56178,10580,36051,139681,21617,98736,3555,106306,164189,37352,63915,47824,24883,145530,61904,28444,11483,19837,145446,30420,112972,85939,11835,191233,2262,20705,58630,1753,148334,1197,144714,6887,11223,107667,60879,77914,4151,57417,81594,96681,169430,1784,20444,95138,254041,27038,596,7117,72808,13759,3353,126776,21074,55322,27081,36942,39547,139830,179275,4453,713,8722,71399,19204,25785,22794,23923,104114,11291,25458,102309,88396,75288,230440,206396,104551,58447,130857,37247,94734,31548,176529,226077,65159,20104,10096,66881,94191,237909,27109,37404,1520,27421,25220,113003,23423,24884,50585,6286,231877,150800,11789,3226,90004,60642,5053,202400,61442,132531,175329,57138,30116,103847,9973,75367,16452,32360,59119,21246,10191,164804,23305,61051,37348,154530,13214,5468,50403,66754,130976,50559,80515,14436,155492,84017,5472,43107,41240,2890,90431,70188,382,76234,48040,50211,281038,237007,32115,142178,1536,22761,96429,1811,31243,1679,49143,55209,17402,235054,61494,7462,77030,34925,87609,78002,9499,9027,73289,201078,101379,63544,27666,5469,10642,30029,49816,132979,95620,58086,351930,116300,2110,2043,30845,6154,11279,16727,4122,2277,27281,4971,3650,39060,61970,65951,39674,75686,38151,11370,130809,177895,32665,63725,122267,7857,39618,118483,44792,157755,178624,136994,24260,41308,22471,12404,21707,12486,30473,52781,50246,20247,39065,909,56825,103158,128603,31542,1089,41935,32744,12428,37963,84420,33134,72921,208449,42622,168151,127335,147107,46699,38216,12591,94342,85814,31423,24944,2605,87542,67473,192551,4496,56321,91819,17630,6300,256183,114569,202090,33209,35289,34897,24967,40520,43470,5344,10199,34810,14283,10381,10017,62923,49924,23233,64539,13051,35686,19698,11570,135555,120868,44924,87065,52318,52335,47586,140906,245885,109834,78668,9065,46990,25258,72022,61243,40838,4545,146387,10537,11557,17470,36930,68104,46711,24264,79401,81043,18225,120488,24746,84338,81652,28266,13776,21878,46973,1047,230465,73357,95777,24973,210160,62210,58404,110633,169651,6937,41870,9909,26822,191062,76553,27519,96256,239070,2478,205678,67955,58532,20601,50120,19148,78501,195724,110740,8249,109665,27446,30568,57631,31425,49752,32820,65504,50079,3663,102256,219898,23849,211315,14645,4359,91767,9528,12449,49366,7941,49763,107848,8930,27086,50686,9744,10447,81935,39513,46514,1670,29229,6172,22312,137280,97759,9806,14445,22976,56458,73391,34983,93760,174219,52573,33149,59747,2429,136277,75123,165263,91040,7446,57632,48633,97140,246081,84766,151684,79918,93268,120346,54059,54875,77858,32996,103590,45276,11968,19600,25849,17159,132907,42828,16817,4913,99462,103303,27395,5737,74184,20749,21160,14377,77062,131403,158735,10999,27799,77785,9320,34366,51593,61070,33746,47048,29268,36675,30262,53297,9832,82e3,20188,122292,39917,7331,18160,68301,185935,134830,15031,4935,10004,165845,185534,46923,30109,44134,122631,18874,22903,112790,26561,18549,348902,82871,140345,255565,135390,63556,103747,145055,179600,145662,296111,61661,211987,23952,52342,126343,48450,32919,44277,82185,9591,62139,205363,376969,394874,108461,18040,120885,14798,39863,16571,16794,58271,81025,55206,14640,118656,6361,44092,85970,6262,153863,108244,180200,72264,79947,38044,10050,5735,61221,80712,5471,115689,11391,11661,184257,20010,60116,30320,19327,134598,45455,27542,18004,125092,452272,1549,91523,46567,180063,156026,2608,11174,58848,37788,65907,80194,30490,5786,40775,119519,106241,11323,156297,8425,61495,2617,29675,2425,59886,112582,49142,59618,4863,50597,86710,50650,168632,27693,85641,83643,18993,25768,84284,28090,93592,36627,312804,43381,9887,9402,100931,97165,3311,173330,66805,28935,4963,184460,3201,78102,19126,21607,37496,24938,22615,16153,32862,134792,153318,61120,6067,2812,12826,12792,23825,37559,64662,202250,102694,155488,85881,149193,46233,65383,15521,106982,11358,176786,25752,39717,34208,24510,32464,77742,39371,72028,138229,60688,71386,102834,132477,2208,11548,63670,271279,28351,30338,38620,32491,99845,143885,152266,13252,2825,178663,108097,1775,78201,14897,113573,163346,62292,171129,22183,96598,38733,64971,166776,117445,9968,146393,44677,74867,20908,97328,12761,25656,26785,9148,112344,26115,99176,110121,22437,49547,6180,79320,5835,31392,43328,33377,75870,119860,69497,80273,7325,155219,43167,111173,28347,20222,3763,71752,55041,47252,14618,28088,15012,97805,194698,54636,2036,41349,6173,96604,61530,51859,43782,13361,24334,22668,24792,7070,23441,16789,3209,36211,208475,26242,32880,122181,182407,21444,31060,88459,29929,77907,12716,10934,97005,20599,31690,8403,58445,30303,22700,10336,86731,103115,337709,72556,46788,112566,47684,67089,53548,36874,56487,41387,125985,26893,40071,106683,73712,18787,40105,72992,67246,137276,50802,36790,70328,138827,22466,39263,183295,29858,50975,9322,57397,10654,24364,30383,55799,41600,23584,127295,296610,129078,143558,244131,86397,36049,1085,80677,3820,108139,5476,34767,24683,7758,13060,7239,131671,250593,59556,103392,29810,4188,252323,39404,116877,7651,43600,40338,13554,157253,39196,25978,144387,61211,234,50104,6129,10449,93777,9240,356378,274148,4439,72970,3724,147770,78680,62570,115877,40027,40547,36817,224392,64609,34795,165027,67440,2477,37206,23431,50754,164797,46018,94995,170982,27051,7957,22767,3674,27900,56419,18930,60701,41302,2692,84749,339721,61996,111094,80221,50129,1045,8153,62945,19202,8250,37208,37418,32560,79477,41106,88569,33963,36693,5892,30570,1581,66471,49647,11922,160717,29442,5643,114865,82962,95982,132098,22633,22838,94726,54556,28566,205039,162340,33216,16849,35847,221339,94851,26533,71469,1805,3804,12935,45483,71020,36310,65381,192960,34240,35165,59773,1248,46954,155332,96864,4246,388800,16129,57133,74592,44807,442014,38203,42574,80818,91592,26377,36424,65760,977,77387,22628,147610,28018,30561,98454,6969,119628,63648,18170,36854,26601,64018,22027,37279,51395,152934,21153,9430,58760,194742,5330,55115,34158,28917,174111,13171,122326,1526,43896,66094,25325,4234,148354,11450,275,18999,112191,44365,22723,68409,8733,57746,96565,75007,14196,108844,29475,88599,177563,100792,106156,86323,93726,14248,135341,194131,40126,47099,14779,8272,39597,95983,171398,65882,28052,10393,47213,40689,22120,72212,106829,34964,109146,753,648,21660,30047,17527,181025,5619,145357,4085,216883,9359,186951,24779,53931,24545,36197,223296,62628,168101,4243,107313,30321,26642,13049,51059,31027,107912,807,73550,26551,84369,122422,165872,49754,74213,234264,33151,52014,33100,87183,22365,52500,40013,23302,5652,72723,21404,26107,48434,587,94049,168493,96418,32871,70860,31709,25128,443,71597,166253,15670,70994,26341,133675,28280,75491,54756,47955,56028,26182,11952,113272,472197,64640,110753,17919,337,50642,22576,142,87371,53391,93210,126694,15285,19642,85667,14148,1506,42092,52962,33243,11970,20734,135843,57044,58880,13002,219134,22876,64754,232519,4257,43120,321573,24799,64526,124728,52579,81472,70831,276848,17403,74359,23021,182101,74597,23744,148267,12055,7976,5349,11772,67540,167347,65318,18720,127832,108238,22828,90233,9987,259080,118185,73209,79270,13775,90100,137742,90799,70569,15699,19961,9087,67475,57872,39731,8810,134897,131868,146849,19898,3334,2281,167061,91073,60356,467742,74712,188,53179,137679,92769,29241,9537,132595,80119,1041,88962,5976,40171,44911,102859,139059,104558,98987,47761,19272,71472,113864,175377,73338,10857,23402,23758,1591,139864,5644,4076,118760,16427,134198,18853,20291,100849,37423,22038,36677,19071,195521,57445,11069,31869,55718,66882,148490,44,41296,75242,49704,166810,9906,20943,122258,49112,105667,15969,10344,6408,187694,21399,72742,58970,14867,14376,81889,41856,23225,15042,56993,16074,131389,74276,72407,53875,383108,53597,37363,68993,44854,122548,430927,198279,38430,80409,12245,2981,628,2818,17760,37437,238229,7968,46892,2200,3730,34190,65983,37959,112291,87850,70827,6522,20750,73913,111621,41652,19587,2780,58668,25916,85259,18200,168962,95781,42445,102050,7776,57662,103313,47742,96358,41964,66174,100396,29069,204735,19679,27978,7479,40264,22534,61183,36081,107436,58223,14680,23002,101311,24716,124108,12908,5646,31750,40380,14215,232799,102772,14122,96775,61398,50917,12096,149880,67833,598749,124194,155871,49216,790,14677,65319,56917,7440,145744,95701,12206,49405,129269,76199,45732,9767,11058,9047,210885,11051,7392,26307,2130,8132,147526,20802,232698,115660,50060,59789,57344,107623,80343,112676,23291,9866,160971,34032,118291,15719,59730,164911,28975,2659,58046,78480,21854,66209,53863,109085,116045,29021,46481,107552,22130,18764,70254,31272,11300,52460,43933,84738,20721,53869,190840,79673,105300,7561,321817,66924,13940,33281,101046,183181,32176,71878,5678,62924,79535,56646,40303,19559,27703,93042,73368,42187,3670,37376,46440,7023,36816,109628,20680,5940,276440,275233,170848,112093,136996,14984,20226,111441,77693,112960,48577,39370,55707,50314,123404,26570,54281,61372,123391,4857,35928,246740,132507,106646,44241,7196,92258,9825,37688,51197,303141,5590,15476,132986,10955,85782,34486,26696,7991,28813,18858,39546,11703,11365,38185,5716,93555,11925,40121,60002,6985,10976,171384,3887,43394,13337,56346,6381,252336,39573,75042,53711,1028,31781,44295,95925,131713,7214,68125,43571,70954,213234,1628,8760,13391,65485,17320,56038,1710,25248,60803,57399,19839,3870,326,281556,50945,72400,21460,316244,75619,56246,98775,481,13513,55765,50427,7388,123519,32929,57908,27124,61316,101097,57467,30228,48792,10788,20402,37318,50526,155730,34456,158065,145305,17832,43733,64052,4506,35072,205355,177028,184004,187081,68616,35938,83703,10367,36892,93186,260137,51934,89970,4985,23445,26755,21558,7948,78741,23376,124405,85594,68596,57536,49351,12619,56593,132668,99924,109728,71844,71935,196018,65464,17617,14987,89701,143773,33997,8687,22701,33258,2914,4436,72108,85610,9671,49067,2327,82988,1361,1672,44033,35777,30269,24057,10605,82236,616,15793,13919,47249,112086,116698,9484,80207,90574,33304,68624,93127,56101,42210,160929,4827,38995,38095,4701,125119,5027,33680,9236,231236,14135,87837,23318,70261,78893,30151,81482,14332,1084,74256,27532,46644,79185,3148,62615,6981,55672,31668,36825,1849,14536,37446,14738,23779,43058,162749,72199,1168,21346,5592,85932,85302,9668,18351,57135,150360,2080,228015,77953,34670,119302,151751,31009,106725,84265,45214,59289,74178,113071,263206,111009,4021,44449,188119,192629,123592,392506,292847,114487,12831,205858,9852,20780,79648,75767,357014,97721,18166,21005,67950,33226,204009,16536,2987,11335,66717,144910,47950,17262,55060,15063,2934,51038,26775,178497,66008,3427,49433,128592,20036,157553,63861,3089,23015,51210,28696,35933,49942,71135,231518,99620,17248,21835,176536,20676,16944,38700,165831,233253,295625,36723,13023,52745,10907,19423,67972,125868,95473,82875,1183,108455,52685,33417,64095,21433,52438,33191,127809,44505,211823,7810,2752,95548,162031,7185,91196,47563,61721,33359,17897,23682,42806,178101,22874,49707,199897,75419,82456,8618,11171,79712,116847,18783,44190,46564,5346,59046,95032,7893,14916,3214,26800,24172,121453,34362,10250,17408,18888,4840,68696,22831,13162,36005,32512,14800,62357,41723,45046,27247,37486,5372,2564,34261,298500,66509,133920,89138,31305,117697,19097,108304,81386,84106,23802,46411,63304,946,51417,41777,41041,19501,115864,60743,294354,37955,94165,18116,1156,17937,20645,57114,90804,58042,48643,92288,9861,2557,88546,61333,101008,12853,5148,87856,4152,144503,73841,18718,9789,147565,10846,42085,12789,30223,8993,56352,67203,2448,28215,6052,23540,126319,75933,36689,80235,23231,23561,21383,38800,77548,102798,21234,31468,158608,46188,63960,191679,8051,67014,11185,170078,42186,28827,34777,41930,212079,12421,34750,24111,110344,73918,45171,70826,141949,40063,23979,24254,37309,26724,27179,24718,83648,54938,14591,17425,29525,102675,48975,48654,12316,8929,60640,41709,50168,63264,89812,50716,48632,38755,138583,160123,55579,71829,24230,233277,46322,39650,166388,34718,24108,98252,7031,106695,62498,18258,35062,217827,78731,34824,33354,19520,60852,2432,60224,8587,2836,62955,702,20227,42285,40560,95592,62486,11094,53035,143291,18842,46177,77994,1770,9657,107422,172915,32655,128716,25886,25164,156740,119928,165875,85817,11007,89110,33956,12652,65156,180266,8494,36889,19958,20955,96,1264,118288,135769,44754,86671,5632,19026,168220,289120,33569,93821,66144,70635,7687,5642,2714,55445,56636,71545,184182,93133,7332,37389,12643,52315,22729,11014,158742,17050,152889,50178,34601,41945,52136,9948,26914,63548,95721,115951,40759,8960,158258,38938,49232,48325,42234,81523,253019,66128,40978,20048,238048,38760,62928,122560,118532,43687,137472,163689,26680,9878,17448,51035,16211,60834,36749,29178,14241,59868,150086,2305,26477,42422,34342,165341,83279,33894,14257,29928,12743,13957,125571,89134,66712,10952,16507,147839,30146,7249,16565,45399,39874,114565,215780,31990,230881,171477,102,196546,44538,10880,84948,281705,86651,10617,31395,2342,453658,43569,60561,132901,21845,17727,58556,258242,22262,58728,4008,77997,11806,37431,30599,81375,109137,185787,114085,217292,97453,169085,30593,60212,11544,102056,65580,2384,91655,4855,95725,7295,157994,16228,20669,53276,141590,105246,17334,25440,76067,17967,39321,38911,11362,28559,63807,21627,26468,85816,40120,1025,15234,58319,69516,66512,124548,75845,78873,22137,46681,51242,85683,32909,76747,35555,43396,101465,1765,73094,1077,2962,39028,66777,57831,42048,15828,13962,36041,63657,52412,5242,58846,2141,5506,219012,134451,3936,182230,17558,17153,152237,22621,49377,170216,35257,68233,65374,6510,11126,212151,7184,2480,22517,3437,33073,30156,16557,3768,55067,86829,91e3,12350,148650,66017,79424,70885,49066,28250,21369,51213,34533,11510,3258,18176,18465,84413,6315,36411,163765,4346,356,107618,598,13727,285026,162695,8749,14583,7132,63521,184253,32378,25991,5604,30961,53675,4874,84693,5086,34811,26978,56564,7904,33519,51221,113942,69253,6664,125563,22055,220680,102008,742,51930,19494,176108,44424,35123,13025,75685,11759,74335,22250,181453,131147,16984,132115,154311,11991,76452,52609,85351,196,30969,9198,74919,2529,56838,71779,29187,116304,3504,62330,41190,86153,28393,254926,104228,105189,13264,84359,3574,12415,8534,57147,10175,188174,59504,60932,66318,16407,107921,17638,99103,49278,28403,39786,145865,8462,3558,43406,142271,29139,21989,36552,93955,72365,7176,13556,106185,37957,321774,17782,129017,51154,27938,24952,1935,39366,2791,33489,41582,56078,24558,9311,5449,218786,27808,190429,68013,36020,86003,29735,3404,87348,119357,115714,2324,86796,81973,40992,43376,93621,28784,16808,36367,2517,2909,191926,24978,55303,53308,205724,60068,3098,21375,64784,23949,26579,63121,12319,80145,39967,97861,6757,70143,67642,37082,34698,69140,122883,46151,62187,80934,429,19437,135071,137885,222647,13331,154065,327,61778,74257,40116,37493,14855,85079,237641,42342,102164,199965,71204,4662,29368,5042,113914,122214,8955,13149,102503,43173,5659,163787,69003,307084,63392,171080,21390,81918,86666,36622,24126,28887,5736,28054,207170,163428,79891,346467,95363,38980,111806,80828,9200,19288,294896,114468,87405,111715,141705,7015,72754,68463,48738,243147,33397,101210,37051,98801,82847,20397,4940,185559,18716,54718,83491,11725,40803,1128,12128,23060,5174,7745,67007,46701,1571,27807,180186,256996,18975,16837,7877,212758,250379,15440,87954,57755,24719,124057,83461,258,50864,8874,29038,71289,31627,15429,9005,4061,113851,107716,82819,13651,79656,117851,17539,111446,12938,39724,190787,4352,15402,21070,62708,8539,23777,73853,13552,38810,86117,16285,56400,1718,75342,142863,29033,378,110113,180321,32586,23606,26393,160984,207987,23783,8406,16904,24596,47274,11693,46539,60524,78595,48423,31718,20170,9009,146268,15183,191060,172765,1349,138436,37365,10970,40509,225817,20021,70394,152138,21541,66559,66544,89352,2725,17258,91345,7313,3815,115868,8660,40362,4071,103524,39388,118275,21950,6549,38226,32754,209574,29201,43495,18028,20296,40597,18370,47520,202450,24134,2219,8195,69545,38041,136934,46374,19041,159811,84865,58620,846,98749,13569,30714,97246,32186,4479,27355,92973,35214,151491,75963,37631,1561,27200,238083,23182,60756,12291,25766,39355,102333,87362,65741,59906,19538,201575,48772,102938,24438,292580,39964,66366,9004,61379,50548,37622,38732,28379,68180,76622,17488,69849,5963,7219,48143,43413,55358,540,58691,29506,19245,52193,48621,5518,13048,118625,44755,191081,42061,89197,2259,60665,66994,71210,51232,3585,142096,55024,7892,8345,58653,463307,65658,64319,137941,136323,53499,12746,43492,6978,95163,29925,60175,5128,7352,41463,184756,121146,20473,18426,4598,5309,54580,14277,121151,10691,56711,43880,63409,76682,11830,172218,264898,32632,66536,81062,31649,25788,92774,60222,11100,63159,9432,224657,25240,53613,152,138620,163829,2397,85345,12501,37507,64932,38575,43522,65789,80198,78796,35226,3851,108891,73311,3060,28391,93671,39663,46142,30982,66041,37281,68157,26553,71872,81142,211527,39747,118119,22695,2859,11066,20232,168911,7933,197005,17066,111071,44434,133994,120798,12766,227798,45756,132852,29917,36076,55352,65281,129800,41958,18944,84678,18580,168093,132621,39997,54092,27740,32354,3770,114118,103242,43918,15899,18574,145944,3190,123469,219903,24169,100571,62403,16776,92779,14535,17168,16475,14304,37231,1712,28218,242754,61688,28980,1318,51359,222657,99200,67989,31772,23932,35351,201251,49041,27306,19128,40135,3986,77333,19649,120683,151927,21081,7076,78375,77501,101599,8011,89585,96715,58179,5378,102138,106793,26051,217276,4197,16297,27014,46721,13322,22806,5278,29629,70632,9647,71519,58818,40603,128530,8903,36770,56900,31483,26935,43845,34265,34920,87658,6114,84767,64250,47318,50720,19264,162514,33357,13117,6705,46696,75032,71054,87004,42035,69138,11903,99854,102328,19611,34525,69312,6431,49842,101600,133178,108751,41829,89939,225664,48916,99556,9195,130387,5960,36857,116724,53518,94002,39077,53996,6945,22261,64291,8314,152785,57588,16522,9091,5048,87671,35441,39509,1945,12423,158923,178413,37549,14095,1475,73188,62878,4819,24012,68534,42606,4010,120809,57497,59564,101758,103718,32701,80116,12345,95834,46918,21468,53213,15665,31200,3867,5140,96013,250744,21016,10069,13968,35449,180829,27683,39704,59956,22893,3115,26293,32785,75934,62445,141162,62720,2018,83638,19949,114012,95006,3330,99829,130935,309272,9565,55874,121727,37017,23586,319858,40970,27602,8625,112329,61060,100088,118525,25922,16232,1907,60671,51583,44553,80993,5262,94679,8676,940,20736,11823,3020,16476,12340,152600,97416,3703,25744,66826,16245,16876,46446,84798,74227,176020,45192,61955,75496,23946,23626,40372,26036,6149,11822,30582,16541,41914,82385,232823,40921,80773,14930,3631,7517,39619,4348,36180,126106,138939,62611,1477,113512,47321,25052,14546,118881,29060,23589,128322,36795,18401,137921,104699,267929,36194,172791,18113,4766,188215,30083,332586,94089,5805,77909,22194,68234,154976,43220,40660,70001,184893,138095,11128,103010,22663,5108,212615,8485,5565,49222,54614,26530,42639,16319,55062,152662,105595,21114,22216,10294,68158,10436,86950,7206,62115,3977,3657,59874,456,118617,18156,106663,112229,80992,17442,8217,55551,5133,34344,251927,51153,39364,201321,7816,66803,23057,156724,145664,14276,95705,979,2796,6875,13429,212525,50602,26276,28284,3424,19465,52397,46963,31420,51399,206476,92317,48851,637,100820,83349,10317,60227,21972,6908,282439,32857,224767,95629,83882,42106,87338,69757,29840,68709,37665,45244,114577,49188,175943,54009,186746,106158,70168,3358,234002,50555,9221,129338,9562,20118,32923,78479,118280,65752,4977,10474,102174,60947,129006,10570,83451,8598,8078,159367,123785,80438,16742,5905,5281,181513,42402,6977,163136,93179,42191,14968,50421,112401,105440,33456,57347,121611,4221,94954,36517,24046,27796,6255,33394,72990,135408,116627,1233,57874,25654,95419,68156,401399,313338,55208,45573,93124,119251,47200,38196,11909,130667,45391,73904,64964,167846,4137,115606,52036,62214,7969,160925,7187,1132,134835,40309,73195,64494,80472,444841,61111,26500,45323,40743,53625,52797,22659,15631,29739,36706,28841,39147,102836,26794,10536,14845,87305,45874,12241,127587,83833,57183,79722,30844,41304,84655,20825,92500,3722,25655,27811,10157,81634,31362,34088,92487,70123,22190,185100,72658,139035,192523,88241,2078,230490,44528,85638,100198,22088,29982,291233,241062,13865,4445,137791,37835,107218,31726,19718,38234,72528,23046,19177,66695,5109,17251,28077,5617,21554,47839,72425,133825,1486,73065,181275,141508,21768,62971,63082,2512,34200,9904,120309,6392,91243,68416,268253,41199,116757,138551,185526,41246,28986,4093,19057,17295,4148,245766,122360,35356,112075,20301,75441,10998,7977,19769,62922,937,63547,100196,26427,157820,20983,236696,22935,8140,90315,156004,47204,140973,7726,45097,52725,22636,23436,257282,105247,522,88389,216031,202204,46812,211666,19693,68828,81691,45925,11256,30292,372,5236,167826,88328,232776,151611,5360,82104,18841,80393,25465,18285,20320,72377,31730,33160,45803,38715,27705,37379,24163,18360,103586,4015,32305,269494,91252,20080,36567,54650,7797,57073,12650,31164,42209,6375,261663,105528,81661,106002,2800,5375,17247,43151,4442,15727,194619,100855,144898,62320,78465,39929,16454,1967,28311,61363,17219,9395,8745,121445,76939,80385,162380,22009,54191,44248,16299,122830,48151,74429,78291,64755,14238,44966,2511,17712,67954,93583,829,105899,49935,84750,11591,33185,85447,42717,27409,208542,28965,62052,52525,5597,25694,65594,16343,63224,276188,12475,9331,127507,38522,57287,24128,133161,79723,105548,133695,48917,27558,43278,46520,13778,141954,110785,83366,17715,46317,105763,66298,147013,41086,94180,16478,220447,44611,730,19722,78975,117889,125643,26254,16574,18480,65006,15806,38549,246418,46052,36056,8440,34984,30170,3163,59800,4458,115442,4283,41970,33507,104078,1653,22,121158,276486,3655,6338,24048,133421,23641,2161,24422,36006,8086,10675,181474,12307,29514,59143,14729,52509,87128,122470,19446,80852,33314,24573,119864,14237,9652,57779,6612,51851,15284,98871,90581,124466,156831,21190,22015,71380,161906,87247,69201,18392,17908,108470,72962,40719,14338,17911,95260,43339,20610,78916,20710,72451,11315,31448,17263,58853,178878,48111,116002,45497,80506,82605,85880,36300,121755,25215,36118,301929,88728,405223,276136,553,34704,212438,49970,78329,922,20711,25036,257130,38295,145369,18128,15385,30829,55656,48345,8012,3561,28004,122041,192900,58338,112508,41085,29976,87040,47117,23905,4336,92061,138880,97407,42083,172121,6256,25192,172671,5,93568,1420,12677,31605,56743,40620,6015,78415,231077,31298,80026,13902,19048,24924,170586,32955,176119,87859,36731,6773,27711,24658,26475,115216,133207,93250,95820,88522,8317,5714,124047,55219,86860,19677,23961,22928,162209,8904,225992,359835,56084,96201,29392,96558,86071,93643,55114,13347,8183,95129,82012,2017,123336,34219,115554,157159,47747,101684,41008,18735,193781,104151,226906,7552,179874,124113,31159,21162,44010,14771,51268,166128,31382,73124,77438,92830,205709,12113,1292,38937,13114,1334,2118,15597,69581,14449,21934,76618,48728,67038,14967,51495,24243,87736,147249,26720,11119,46063,43749,5843,44147,152629,133428,65703,14269,45604,57982,28672,55616,45957,8438,95433,37698,220862,132034,39456,61870,4161,26501,73560,56418,9845,4654,20916,10456,88920,119358,9015,65931,96507,48029,38534,21676,109081,43078,34943,25089,6131,28766,23665,5477,10255,16695,67,45778,42443,42770,29534,23733,100513,62617,42630,48746,14191,43753,50295,26007,8792,57243,43119,54725,164253,58250,112304,131796,25165,4651,3188,24831,47748,3705,19540,13211,102095,5593,18699,23666,32005,117571,33541,60584,74573,86311,99443,25172,27222,168938,7143,11853,53560,18834,19960,86522,28217,53266,117700,72989,34323,18721,66450,34346,74056,47217,202002,46269,9429,68582,75458,37823,82843,96652,32549,145144,27958,19820,158086,31955,201406,135379,31207,192545,12950,51704,9094,248263,76147,64028,110009,79407,89345,99284,223492,47966,26848,15359,201137,2861,110507,71231,72297,31851,118777,71039,151051,240855,16333,50766,14727,7939,4149,80908,418780,88378,59276,1327,7284,38576,79814,65820,42199,84860,49574,62596,12396,70598,40117,8648,7994,16836,7630,14047,359699,106878,525,29037,28064,13380,11675,50669,74216,103539,180314,27449,56299,172344,19274,7301,246099,32043,19422,36506,129317,6806,30140,4614,46639,66926,932,86600,6322,27847,233103,10541,39025,34887,3517,12972,26220,2031,66561,115015,48658,47596,12714,33845,3893,16165,35237,89983,14769,11962,147224,47018,29977,27979,5552,82338,86023,131368,1218,24853,237840,132193,15455,40873,3668,65351,53388,15229,59889,272245,47934,11858,34347,18038,90853,86981,300602,19343,114181,29362,84921,6095,106059,79472,38015,1206,48741,6208,8e4,21916,17423,6002,108083,24479,34931,56661,9511,26995,100694,163853,35997,81254,58321,18919,171890,86877,91341,74503,70477,53412,7027,59281,39892,131302,5864,15947,61301,67466,162369,47956,27874,35624,282324,21270,111847,102548,41482,30955,116737,28264,8592,55458,22301,75090,29821,30697,51709,3041,19208,8038,24634,30467,87509,126428,19389,18814,152686,20701,83474,45832,80891,105808,11378,153223,120770,98186,150633,49838,9141,12755,30962,5260,74490,21256,31678,65062,33326,289838,187831,20595,89768,2805,58535,10844,70085,12090,2451,138068,98544,24461,4511,6754,41684,28203,3383,65355,82833,30161,83924,234361,128424,28921,222594,33975,125491,34069,11508,67464,144226,41850,98703,34371,7901,21254,38398,65651,23549,53883,213340,123269,12028,71764,177701,28758,2623,68395,11549,15232,68603,9660,63116,36079,57093,31198,20475,48467,89984,35619,186847,107469,31389,43631,73867,41949,68841,114250,1605,30564,63403,17588,27680,99533,12641,70325,50428,73426,78379,11855,91651,72081,91720,60198,15743,12065,83398,140046,6761,46598,45900,5068,886,62448,148968,37347,19405,9680,15819,43496,63370,75667,163700,37639,3633,22774,34341,183131,134335,37200,23915,7054,14194,12970,26438,13350,285521,25594,8219,104410,91039,168804,138480,149734,15907,33818,61132,60082,4622,110187,56736,13551,73571,3945,73463,65498,17758,263266,17593,2710,27585,54469,38200,45367,63754,28881,3473,12791,98287,31895,65787,4463,94536,24951,36332,59901,28803,52130,86403,7668,181822,74831,18977,9850,177206,145485,109798,7292,31421,26280,77211,58511,12507,127004,11113,147,8729,56208,43066,79926,129937,31345,83947,39915,46146,98763,42566,1337,13192,18323,105163,80570,117753,16555,72883,11077,159438,40764,70933,83329,26066,12276,72059,21655,173836,126713,69454,153482,91585,70644,102558,110483,6764,127864,190133,3961,101798,20945,71138,82402,90884,69669,44753,923,16939,59700,164258,25969,27082,31399,43846,6306,246093,51342,6153,151581,202801,182731,56475,162188,89426,141356,14355,121815,27536,28023,65257,77523,106668,127314,24947,12790,38796,169698,23555,10725,44573,183083,42088,62716,43265,105958,32050,44067,50118,1668,3874,6243,318411,16599,1691,94999,52378,28671,216728,123258,2059,34969,69225,5913,136280,171443,141515,91662,22175,135282,80020,92270,1663,4808,4482,3495,34691,5226,109830,108512,17342,107488,11606,123190,100247,29666,146527,113014,15794,30894,13224,39585,243192,22351,9903,7836,47699,11078,25468,122291,48821,26780,122679,75521,81450,630,4895,92900,55074,74293,17441,3563,111657,103102,51613,12318,52370,36191,68245,34269,40445,41354,122901,168604,182500,62012,42557,11259,24428,115113,86345,12362,3909,78430,86852,134602,20459,47853,93879,22577,7659,3688,38555,13349,17381,56715,91639,12493,10895,92438,3142,37057,28928,2004,36427,32268,34222,209974,10432,67436,41989,173518,107930,27079,62729,30908,55558,5828,45031,14902,53546,8204,144263,60255,14520,88212,86582,109589,69356,8064,47449,8505,66558,16886,4844,52817,111260,215129,12941,91118,650,20770,6273,73089,40618,62790,2873,35002,14023,97208,19386,102646,36993,143736,135457,35385,113601,17893,32627,84439,100619,56016,6581,57264,172160,45452,111710,203627,70131,24100,322787,1996,35665,70078,22358,90922,83658,4097,63200,58499,14542,99153,52159,6615,12414,63415,31986,16823,1579,65405,137809,8841,16898,48082,259,33014,42375,12260,179850,73667,91389,98882,29532,17311,326251,41092,5928,20742,44964,48019,43505,9317,49265,6643,192712,48424,163487,19861,20113,70848,31928,105333,23685,78563,14638,54755,7158,24142,44018,20774,125255,20331,24280,10163,1285,2336,39851,4299,117269,46714,63816,87779,159624,11731,9971,990,137317,108831,50994,74554,162680,23640,131597,146962,170620,34829,91205,21184,1913,63616,18427,93136,156592,17519,67565,115882,138220,78622,88535,18115,2711,33554,109492,54298,971,24914,25863,36363,45715,27099,194995,14299,178181,111488,72395,322385,157719,130787,11897,81843,83999,11369,49280,118604,40922,61332,110343,53407,75639,40582,300440,54722,25637,13694,48248,48278,194521,56203,52779,48783,72627,10953,376,16733,280238,26351,230789,15132,25168,137270,3588,63704,73376,94031,74284,19443,159557,9697,39901,13351,119050,15406,146455,3460,29556,75195,37673,102524,92329,47289,98413,15311,100684,56345,7116,95480,11590,7200,167,23610,58426,17730,136656,27944,53151,2701,8824,103124,3017,90744,113588,53216,79736,65940,26931,498,29568,80540,143543,21292,1740,59268,16561,180816,42323,50174,40890,52866,10703,57169,4700,17191,4424,93511,49698,166650,26972,48631,165169,82879,69326,202970,4007,2376,231325,139592,22119,62851,37504,68816,58345,67398,186643,43331,277416,53749,15746,23102,17432,4793,151138,48822,54265,48203,198688,14305,54287,2291,18018,113378,123260,7180,97549,87027,120085,2920,76080,8190,102005,5641,64580,14955,59802,54028,58884,19367,81779,412567,85957,97053,103637,78871,29364,27637,141728,4767,30686,112738,130146,42745,12730,105040,14844,232,210944,36581,152317,135543,29744,3129,55647,58149,46319,27265,17499,28005,59948,7170,34138,5702,293047,110892,408,91760,218674,18469,46095,81403,14389,4610,35672,73060,11006,74848,104820,118143,190357,20043,105358,141735,5115,27093,45924,123073,52599,29433,9616,238350,78610,24851,58858,26769,31969,24613,18294,4982,32735,39639,143563,112073,202205,12567,4873,88601,44897,81503,101648,81362,34662,85277,17574,48173,21435,221188,40215,39576,80786,26544,64668,81841,10731,37733,247986,149188,127703,495,18382,54388,72446,43071,30974,198723,89608,41360,190,33045,8386,31658,19992,237838,119015,137622,50890,100913,6460,116233,267230,26621,104129,65114,14190,41542,14888,85962,23342,23041,26453,43725,71809,45186,4770,46452,53894,56616,221286,18973,9038,109299,55365,19366,26863,18808,60909,69353,41738,83463,12100,68561,72860,3980,13796,49340,12332,31311,27418,4255,53430,18976,45523,510,14224,30477,26581,4530,3651,101663,139840,22709,150861,31996,63923,120623,262522,3076,10528,2929,14672,130238,18087,9816,121894,100308,25085,55111,14565,18952,53293,2042,369988,23674,61789,133529,28783,108293,35477,47119,36448,71049,40015,33055,78598,198442,1833,159937,40654,77444,189245,113153,8621,18599,38553,35223,166072,2375,11659,21786,89523,6032,12116,63046,159398,18454,3678,32521,47626,11411,103527,38896,42946,15696,26370,10185,8413,37080,165583,4331,63555,14907,72220,50056,6623,62236,36565,49783,10049,17503,100581,55951,146244,24724,9626,17969,25524,109300,173965,99994,101056,46459,43647,53737,277968,8347,123521,74858,33829,44762,77574,877,81377,222525,123532,30602,43881,53145,2973,16284,81940,61281,127044,63620,9875,14756,114829,19032,9202,52759,119141,23928,120551,19607,3599,33401,76821,73233,117430,39968,36539,7071,5446,121735,194059,15206,45283,6706,15603,65615,1207,165723,92275,34773,104447,8396,32353,205240,164323,13600,60555,79205,25532,22907,33410,57480,107111,69630,32137,47832,70913,33161,20321,2371,117348,10714,86246,1625,11763,17900,268,78457,99175,97940,101092,86660,32221,14041,128504,125080,53744,124263,31017,13897,403,31859,21964,5633,111630,5547,77329,17961,18241,84995,25984,12983,67491,62168,47262,5241,297,51191,7351,8967,147212,82060,16821,782,11033,82431,62957,5026,43459,77963,203477,53528,6247,191852,87774,74164,215654,13467,1522,219964,28589,244104,16242,117821,67725,72570,156792,17186,15979,26990,44128,193014,35276,57125,16212,166451,68017,6905,77608,16364,53777,75921,76426,37975,26203,269296,64099,84122,12077,38533,830,4407,20139,963,43028,38902,42911,37503,83343,85045,16979,1165,60835,137387,58380,86990,110066,134540,56331,193845,81238,17922,163093,38744,110641,12502,56404,34862,26865,125964,12965,111648,25547,7771,27196,136980,9555,29551,107158,57885,18831,37705,35505,101742,13970,102109,62548,124657,23328,11124,89592,146376,248050,6241,22033,18337,80685,29898,11908,216623,67721,106162,146610,21377,15085,91552,42041,62560,122532,125336,102365,121537,142559,29693,223919,11515,110495,18776,22494,5895,185059,103592,229351,51220,100102,37027,257855,29359,54123,36066,106493,12244,79258,32002,432,56205,94836,90182,6726,14762,29391,48938,26864,38083,60364,3310,60192,14766,205567,57504,110760,22649,24666,46333,21517,3430,13135,28873,27052,158809,11597,20529,6695,23138,22960,37137,45574,6545,305877,43423,26153,24769,59844,14501,10430,134352,56169,13213,103432,49523,35181,13435,12408,129475,64620,230854,77390,51990,15653,83248,33466,44571,117828,51481,2187,10559,68019,18021,54895,48247,18354,33737,4554,108595,37288,39767,116707,9175,3726,108877,21616,83684,49862,1938,8543,276466,20134,108498,48770,102254,31914,131520,185291,100559,51890,209,19526,76471,50544,71814,99351,8172,198526,28816,20419,9109,98389,136777,76479,75596,30635,165417,48216,120220,25955,211071,39314,24308,32164,2559,146280,43403,9233,17947,90585,1786,86920,125662,2457,64741,32152,32918,122882,78538,44001,31723,56426,23375,103172,88177,145697,52506,49319,68016,31664,41488,18486,110400,7030,28241,986,109199,19900,42147,56864,65287,49183,7858,24e3,30453,840,16673,25907,68916,89927,6309,158335,36407,199737,130464,13137,59603,201778,195292,21015,42466,179062,172561,89492,11075,180407,31868,72493,20998,60217,9865,19530,39274,130266,54539,21623,12535,13505,40641,73375,4087,85633,2153,3117,70680,55788,92096,47509,98493,37490,271936,151475,3032,16171,96642,34106,78425,125761,19591,3366,19316,54508,24183,50786,194248,91528,33253,34622,108355,41741,705,3814,3883,108929,13203,67831,10142,59754,68208,29128,84820,56880,38794,24972,48571,40821,40476,18137,164254,24064,236309,79181,11282,395,39169,2013,51587,28551,9645,701,109513,115899,113566,12762,62045,58322,103726,41343,40866,244102,143816,2490,70346,40973,52618,15412,30720,104315,38917,42027,93676,17513,107418,20706,123890,13399,97727,24044,87962,65606,44250,98044,65276,74790,101473,19350,91570,1326,87790,172042,7577,100813,86896,85891,41512,108130,27794,14875,71431,12835,156250,58135,3759,22476,42176,115873,34686,56523,73643,108505,51491,20838,12721,32863,45700,29496,13700,34294,55360,29206,155942,123812,7706,163234,203,132720,49358,144431,8130,175788,35818,3270,76832,25710,54095,97274,28779,94621,74396,19092,128242,58067,20885,14670,93255,15107,63291,23654,126900,129421,59294,262659,9798,3251,67344,28600,44629,50672,29072,26999,31526,23183,49175,165843,175455,17282,175411,32022,45989,30298,90690,78118,83156,23749,35636,31317,7069,80381,94561,133756,14960,97404,6138,41065,78041,32843,16601,34123,9559,146529,123377,96395,54441,42012,84257,123541,10745,22139,106459,11720,150883,172651,154996,110538,4728,53447,25704,2009,71152,119354,21166,66604,1429,216162,8637,122250,63520,27180,29172,36124,276428,107787,77184,4680,14952,104903,24418,14793,51561,52931,8371,26342,48526,7118,92066,67280,40653,8847,34597,105438,14198,50163,61188,146286,50315,41205,170829,161496,585,197359,95056,1687,365794,91349,48507,5804,49263,5146,104902,96365,117343,132222,46084,96919,16875,8073,262381,79982,52663,13928,16056,153908,15145,109256,132308,18763,24904,167644,13618,40750,18686,147124,114709,150038,52849,2938,12568,48617,8778,5459,44202,44591,74914,17183,248689,13878,7822,80060,23116,194037,18487,2067,7798,43077,33678,244028,31320,74273,2794,19466,8218,36280,183997,48124,19416,29656,19280,98734,7715,18311,30701,133602,150307,126956,7378,2933,79903,13178,12593,86571,26604,92446,13574,44205,65699,427599,21118,8245,14407,27877,47936,33542,7916,26460,117762,21596,37818,2249,127359,209394,60044,47677,308089,36791,154971,31417,6998,150042,174360,12255,43009,29335,48739,3912,101398,53340,2580,146939,151295,45360,125275,15273,45383,27456,48761,23314,8750,60801,85823,104759,27894,123685,66968,39480,26917,55290,83305,2696,98390,57569,145853,340733,4919,20024,52268,30884,7413,203685,70989,112855,4129,50536,349518,68205,332641,159581,135361,236026,37563,176404,64899,6578,122033,63871,1850,85234,82089,66124,74145,121098,107351,12687,36881,117334,13136,14698,85933,93866,18047,32620,310,15094,46e3,88451,23632,36645,27940,87618,80520,58892,20976,27702,140090,96075,67841,103292,238964,87778,107338,17019,83427,67522,7302,8261,47570,116787,8730,80484,61772,174422,56005,131193,52875,14588,28471,59817,9586,15720,158155,51307,109734,15196,11025,59331,3884,52626,102602,84797,25158,27314,4437,20488,76214,189248,35023,114952,157376,2827,62439,102878,129749,36405,10329,109339,108633,36662,1254,13267,5470,87105,58004,15397,10434,159667,21864,52022,179464,3013,32147,31496,116832,18494,105502,129227,107267,50033,13481,9954,24267,22141,16257,116154,36185,950,115685,11305,176708,2048,178671,112573,287867,162328,497663,95170,50979,193861,50987,30368,136257,31830,46549,15119,169876,23788,17462,249887,57377,1949,35448,14791,43769,210091,3783,34612,282103,88380,245190,5457,20491,98908,11402,86899,117916,16028,162584,60644,320177,156096,31065,55876,22e3,77655,9992,23397,13757,317623,63978,215255,2443,17648,93231,27388,104529,93807,55505,140477,12046,112040,70887,40152,94365,112353,25063,114679,266061,71248,119555,15589,2244,617,14129,211431,70110,100652,7777,4383,85911,89221,21010,120615,58357,86405,37554,41647,18,15143,69662,60491,14714,186134,148344,42347,5410,168175,44535,42449,343894,129417,99682,20659,27272,140483,63455,222159,17536,13722,42637,62324,11976,114691,148109,2283,32057,182393,4295,147364,33705,2075,44303,30274,28331,63740,69740,29148,10346,44862,33716,73937,153333,12930,38784,247159,2515,41053,20256,83368,256189,54639,115240,5096,24661,175419,153552,26516,141,138176,63885,34115,47222,55709,2765,28479,38875,236608,12229,22921,77291,54426,45388,2860,57787,114579,295139,105782,17826,71066,19119,54364,69385,16568,12323,28057,33346,34919,124763,155533,101386,31644,8627,49001,303600,29868,63213,9103,77280,71333,9696,138789,37059,24823,5057,21352,32368,114208,56803,19424,10445,58514,8661,209508,26187,171838,10460,63454,14016,122504,41328,21329,46618,32493,38225,7855,31763,7945,29876,8734,6438,24205,97490,139977,130740,47323,33195,85390,57194,13813,60600,21313,96251,7699,27584,170521,139271,1363,4402,336738,129223,84983,69150,13147,3590,163929,207225,155260,55916,20288,4503,8398,98490,11773,27512,37113,84976,86558,28365,11756,116005,182148,13733,115313,47644,67208,85069,9347,14995,226141,14704,101835,41159,35314,13113,63526,214039,29978,50446,83339,17440,129441,72522,118641,97816,24907,73844,15717,118884,167255,96509,162793,30847,36849,51297,78974,77793,10427,1873,2972,9999,35074,28190,64297,146836,46298,60038,163007,108919,61219,2403,75022,127339,4233,110389,69022,9833,128097,88016,79390,222936,22570,94657,28462,56956,38803,81536,30474,152794,19566,16481,147408,74574,81895,20731,1918,1366,76367,187321,54494,24366,21690,61696,33283,107477,77499,31112,414383,74362,18463,218441,120929,59848,258629,201924,69269,454,19989,13054,59894,3623,58908,20681,35723,78523,102680,38988,184112,108087,50944,132704,52966,21699,18860,96349,201411,82697,85395,95658,5093,6427,177894,44191,32755,26961,155739,6249,31310,81030,26574,84311,120155,86730,113535,7424,48888,13516,45747,98098,20077,183995,81945,43210,26704,40420,75831,45648,11180,6855,57927,65528,124096,34851,2598,156633,107572,127352,38169,123845,60142,62722,105584,232364,23211,68120,1601,22169,89299,747,258039,80572,7258,152249,11862,101204,8834,121434,33761,19175,133142,46343,40178,48723,3589,41977,30210,38868,62257,10087,82658,87827,90646,16415,47552,351723,28298,72225,91146,272760,1701,11295,1652,109651,300747,51863,198800,29446,11794,32345,37538,22356,33102,37590,113544,37970,11478,179743,25454,103417,59905,221970,105196,145604,7817,164809,102360,16974,75840,255333,56902,6659,1954,645,59400,67769,7689,18675,5215,13793,20536,27852,3387,29523,259718,16860,94625,43143,29245,15848,233581,22685,63631,78557,22836,133302,84513,1348,51826,47129,98836,58284,1830,1749,94642,10933,6145,12506,10975,13879,103781,144434,10268,28409,32346,52968,121567,107374,77268,23686,35097,10501,155275,15303,47136,21102,168741,55332,90385,15996,84817,681,137803,25054,142275,6163,38175,8056,124296,240642,65621,4934,178205,16101,62803,60964,18230,100622,76465,44689,14545,9543,47514,16852,93380,28048,12047,107106,37575,101485,77047,57326,34819,96137,76916,6469,46264,115983,75768,87668,69942,13027,165,8373,114231,26434,52844,42799,182044,23580,146254,38081,43236,33883,146220,382894,14606,46035,36481,166621,35417,95382,2957,59384,60428,36358,66343,75378,22267,22950,83528,17577,56474,25285,4619,179691,75355,95836,53295,34588,171410,4487,14679,84208,44015,18562,109133,54101,11531,86052,174479,303157,28095,9953,35642,14564,39802,16145,77606,117406,53038,121117,53624,22062,1212,7632,127157,237292,189087,10478,127345,102515,181997,86752,87623,10966,121602,68783,68681,83042,114380,138349,191305,67176,50085,39016,1427,42384,1412,67118,122616,72389,25260,2237,13576,137346,19938,20304,2191,68759,5373,61364,238507,75814,23931,69565,38993,131741,38364,12528,87762,5679,129853,5310,186831,32653,90338,260176,389531,108118,26843,43985,50175,30563,25106,56965,18130,140428,4542,165503,117991,24219,229605,1819,129663,1240,3797,76093,18398,71339,51919,93043,27175,47060,216257,6483,35051,1217,16512,80798,129064,13225,69339,8548,237079,72298,2575,34280,51379,117910,55671,53345,247552,29486,39328,140821,34681,57045,60177,5004,90269,78522,2479,322607,48474,61296,13057,31558,4678,59271,6699,27044,31988,35944,12503,83480,4389,136508,3781,114121,70279,4488,155829,42214,2898,68191,75695,305850,45041,74344,106509,30087,17429,93292,12477,290,23080,114802,35714,18751,26554,105424,17775,2144,2412,100610,65192,113975,52975,180272,135050,129815,76238,106483,21440,63186,4260,46189,9711,28249,4169,23429,23390,8324,141585,63809,67668,38457,38063,39226,59972,1189,203916,62368,14403,16949,61767,85801,1739,40147,35049,76757,33124,62102,15780,103593,103009,53484,22952,67973,114645,6566,5245,50462,7601,8288,3513,194571,80276,1908,54592,5124,58571,2513,6800,273997,193904,1119,17991,117245,2508,129156,82366,26278,71465,63341,56943,39662,106116,94966,156875,9736,2204,122308,94418,27134,1280,24539,49022,45314,3764,50904,46424,30699,28087,293839,9400,33646,40165,822,147499,50263,116179,29085,11863,31314,5578,17797,5104,12454,1604,15342,219206,10232,67800,94261,25872,13565,90339,78971,75377,26649,41184,47695,11514,35369,20767,14227,41953,309396,148270,147938,33074,14453,27499,109019,39018,25738,240196,158931,52820,8612,95853,21524,137010,84901,70869,70021,116794,48404,38771,6732,1070,70990,187297,49140,5238,576,3564,253975,16027,16483,2811,37775,19034,25259,4053,2e3,70083,95774,19713,33431,92703,91314,42381,288770,48194,95985,3991,77418,13406,241328,245086,56533,35275,62725,9246,51924,70181,95331,16163,31410,79016,39312,120878,119371,275987,80124,27712,9186,220,23598,146167,85209,68238,282190,57048,31273,30555,80913,17594,75779,59160,135002,101219,189377,29225,96735,60126,62522,104e3,27620,86814,17240,147533,11001,5425,43682,410,49460,87270,69480,46315,59448,1816,76201,9431,11788,87960,29063,65539,47347,11678,33846,7008,196704,9895,6753,8633,120892,59970,572824,115934,6646,202559,892,48351,37611,251282,57823,67263,57750,26527,34485,90747,7685,88370,6144,64182,1709,41969,21458,62327,181657,49247,225330,122600,114574,107124,85361,111833,63243,71420,15655,191178,72430,18063,51425,54002,12364,53225,86557,18193,97580,41232,138398,67821,128724,8944,233212,101353,52099,42127,14006,120107,32789,32132,3498,18123,33758,56058,5779,128760,59888,98869,18445,84702,51911,13234,218379,20093,39031,8074,70195,20708,23462,24355,131384,60189,26390,10403,41060,7140,10781,49410,42261,87202,82566,41663,43105,60276,2768,5733,74176,28329,2297,145430,131632,83615,122915,105441,655,224102,5284,136426,67763,16294,188511,32538,61049,27893,3394,13951,159099,28542,17930,145360,9492,190122,32285,78855,26440,13570,58648,73908,4239,124561,2444,74172,53131,11468,10794,73566,11623,35343,64710,30481,4163,10328,38309,29901,10538,154377,76132,92405,24839,11679,3465,13449,11637,7824,2337,57754,1260,14458,41118,19878,38661,13416,159180,37074,163164,54137,28627,52134,184900,8520,40385,29546,30502,22386,66527,107458,6850,24022,47983,30603,35083,8934,304066,39500,9,28261,33026,77251,9374,44833,116312,34990,29236,63563,125639,135405,165398,159055,55690,88141,69643,236964,31983,25572,20436,36746,60896,31850,16179,11828,5888,3043,66368,9750,31167,7915,53111,36430,1333,64344,93659,20061,60596,180191,51630,6792,30244,43509,101058,22409,420,44210,109783,43223,27030,72477,72831,32679,29235,7675,47556,12258,39907,149412,84926,118247,24692,71717,105038,86009,45941,41189,89453,29856,52543,30627,226798,67303,59230,67415,34408,1367,99685,16867,128419,52147,4111,125381,117881,16173,44093,102224,31575,23234,24870,83790,127407,239098,3200,994,1255,100903,242275,117266,55116,38205,16140,29662,11307,40414,208793,123355,56470,4862,75600,30119,58218,70828,24075,26974,7802,192353,4851,5475,78720,66596,3409,28573,64396,30381,30690,59859,88256,5406,99945,103064,34463,37727,24238,86643,60088,4057,23741,5967,162904,38240,28356,93858,25510,122879,6897,3278,7057,11971,4400,35461,211413,21395,59615,39471,87233,55795,128426,3051,22470,41950,14705,3974,180108,80476,78442,204996,91987,15634,67610,139015,142373,35611,51134,10387,4353,153456,57749,181039,14183,68447,151532,21107,36452,20551,3186,46247,46383,129666,88736,140662,146243,2066,8360,7978,64818,106963,17896,47801,10723,114821,223295,74192,3293,3393,16987,74064,11277,91622,4270,29828,27951,387869,103235,1374,61988,120083,477,145892,128378,11779,211263,61354,18221,17869,46530,83061,108538,157981,90608,67199,95080,49064,195814,12302,66307,10348,231346,160732,112859,63633,146558,21271,31037,198802,47622,12862,95710,3910,77850,73961,85585,34752,61e3,4082,24595,103679,71107,8208,79568,150019,16615,24961,139857,32664,197366,4559,54735,32696,4126,162019,75698,13916,70108,159638,19834,9349,24675,175560,49643,18206,52459,27992,10809,88865,401975,133172,29e3,34558,30915,3658,25834,42430,36562,125265,18182,10155,40149,97082,208980,19575,60853,90529,66545,9600,789,46420,2317,88593,55595,98980,115302,5742,169155,1073,177901,3472,11189,63711,78643,65472,50459,127979,93,42202,67053,21720,157650,11145,141378,42033,22824,85705,79114,35584,15974,1510,54172,28562,12451,104226,19190,97151,73024,20948,5151,81741,21499,29006,84183,198074,54003,45120,170125,26240,35177,28389,64863,79974,60778,176915,232183,45342,2038,80253,41564,40703,32689,5430,100689,5366,23007,134279,14266,26712,73993,24934,64242,52113,102887,61801,46415,201049,54251,62133,122757,164883,30815,139966,2319,30842,766,13362,10287,134518,86111,81665,82440,28333,43019,18963,8804,161944,23439,102144,101145,80029,39052,248708,30350,117340,11878,128467,974,138625,63961,5237,74778,61834,67040,43814,13690,65947,33809,232476,115258,181745,28824,94013,9510,10246,93722,81976,7217,114383,3493,16014,69045,72692,12145,80981,9507,6692,1620,60820,330444,35474,33962,4797,7053,295463,46445,27026,12491,77988,49524,35675,90947,29114,166705,101385,133782,32704,6186,84595,176031,185623,45966,151302,63069,1699,107491,947,15458,74452,196212,6046,10498,12163,10239,35191,243951,9277,9090,29539,54460,22820,26514,112549,60372,51753,48756,21812,70861,260326,41,44222,10441,16961,48148,138771,216194,5914,52153,53400,212036,56519,26245,10117,45888,15294,138019,90913,26368,43842,42111,23348,6082,194845,161089,156206,51546,11647,30759,302912,262094,8635,78876,26535,35283,54183,31183,85484,147873,12989,5197,6356,72894,65347,20150,27370,73787,1493,45918,12366,190217,20724,13858,10981,67449,81213,7553,14115,72242,271517,11842,48310,88743,143726,22177,3290,243231,58452,62937,12592,1654,40066,33477,13751,9921,128442,15868,7106,75236,83773,10775,36938,10482,170465,17368,17469,161508,32752,98340,800,19824,264456,3901,87319,2867,26782,9630,113102,185815,24197,44584,86366,40224,3636,140916,31731,267731,9567,53678,72984,29389,27963,17106,50282,284911,60170,8322,12608,23374,89652,5268,39044,229766,8869,151350,31436,177342,12269,183212,120418,116270,2843,78888,69192,7865,184099,1086,129897,18383,70508,20242,18508,229924,124569,35749,50589,55626,9884,83115,40971,30671,18135,14452,38861,17844,201826,5549,26413,17189,13561,38539,10679,143331,3314,36785,171194,49685,187713,67506,4618,104039,17060,195080,50648,33159,19238,67559,134840,28599,157523,17130,38064,117398,94355,31918,13575,34538,40326,13997,3494,348283,62481,26862,3603,104426,244363,153709,112487,304612,199674,41239,35545,54869,293005,28223,26277,26899,4533,18518,15492,38587,80488,70485,160395,263,60162,11382,222152,4696,250751,51921,182609,10707,48463,46243,1227,49111,111564,46502,33342,56846,68541,63559,858,139927,16654,229375,76759,26478,33205,95828,23399,92945,2637,35630,28470,143992,50214,14174,21456,166191,65665,1711,21594,78019,97599,111701,36,147151,110246,189022,43021,30397,40757,131935,42065,73335,48039,26596,28984,15102,2361,7421,202167,69744,43766,52826,3642,83304,33873,75140,63169,192389,36551,92748,13039,123959,233220,21738,84447,77230,20228,187852,19095,25799,92136,108774,29237,53947,2299,118106,2687,8830,42331,202924,33667,2023,73763,30704,19363,19779,16737,35629,48081,24068,101013,162338,291912,13749,24745,328289,167679,70086,48299,23306,16732,17801,43322,54589,3586,63653,43624,53474,925,109177,251316,43805,13082,19511,86565,142182,92461,17117,101033,103319,64589,4022,4351,235897,5352,82705,107142,46391,156084,5860,61365,10558,13045,7717,18357,33922,12590,33065,6928,46993,783,46937,67846,8952,26295,6107,119656,18799,17458,50747,4229,179559,112727,118080,20683,41464,125468,51560,49749,44231,7359,35339,62988,136487,67015,5208,29150,24956,105186,48858,6143,18097,6972,16404,73489,58742,97196,36357,164616,5834,32267,13746,147733,15113,132091,34127,106298,39729,106426,22294,9780,15602,36213,71502,42808,66802,599,60755,5851,39120,67363,108623,126368,72770,91263,32486,30596,151717,7951,52002,43103,11768,68942,40901,39344,24037,127500,116890,48403,16926,86750,17745,48648,159545,34460,58419,5634,114317,67865,31462,23352,24010,98185,125708,69686,68337,13610,26271,70691,2980,4768,27225,102402,75453,28106,8104,6931,1176,6274,6475,112635,22498,6176,238686,26832,28893,90319,14441,15682,15087,39517,45270,109134,104440,45965,47645,81772,7876,52683,87720,12898,4505,185665,2769,113401,15664,57592,105229,137381,97059,119268,6876,43309,33886,128363,35476,144249,67013,143587,83367,25703,91436,59347,53236,2289,16519,19844,46309,58558,99834,23313,218816,231303,36388,51333,183535,109792,139277,54306,90139,18235,8275,32710,37677,82464,86025,92204,88842,117723,37570,128723,234242,76350,73795,34896,148247,58424,11105,11744,45746,63372,17118,49772,199520,81902,38004,22911,33752,3125,1995,53792,4689,26909,108150,146062,69674,41811,161444,84855,8999,28561,16731,93937,3189,21967,24890,22943,1356,145300,51569,28802,517,118679,31703,40607,48098,108854,25003,10233,73969,177495,5248,24516,215347,146192,48712,60626,69188,40735,5866,586,101541,6509,47590,52129,5969,222045,110933,25733,24223,65339,62812,2414,155418,35819,16022,78423,43138,20995,128255,240673,46745,236093,72176,57085,97841,61248,107,36068,193177,105427,55726,215229,20446,47228,100420,87091,14429,121708,23605,21157,187721,21880,2997,203976,99166,95068,25877,7724,98925,83401,4829,13182,18229,13718,239662,38653,116505,153497,30589,89029,38962,181302,43853,78872,180301,4786,248240,7401,106136,112590,77745,19731,60880,77789,125748,135487,5975,48627,34084,12419,215770,47557,254582,10364,106495,21856,67539,88981,38805,21428,48732,42316,12149,16078,52808,25327,51322,33850,51147,12253,122354,46077,56483,254553,115417,81834,150991,94662,86668,7381,12841,100650,18218,15741,22372,68294,50705,15535,84660,61887,22553,72299,31361,24824,17743,46820,64288,31582,77006,111674,116384,30760,80920,86149,77192,51979,79691,60342,122805,103800,240873,160744,233114,78962,54920,8608,3484,316104,72548,24337,5088,230040,21926,10172,36838,26,86221,83458,102176,12062,17571,41929,41170,28428,68239,41750,103930,2634,18313,53019,34825,97837,63115,24606,73157,152474,14715,91439,37033,109806,140259,30668,174760,380,135597,95673,136073,65073,134249,13829,17279,122305,4420,46444,10237,64848,203623,70728,10349,182885,65075,24519,25783,40318,34139,22222,63394,55266,102764,41422,20126,65100,90408,53640,35128,48932,11192,38935,96839,34782,39492,19396,41332,6250,5511,19492,51304,25936,104466,54099,73771,86115,5080,7669,30891,111700,13931,25276,72289,135447,14820,258641,25265,31005,281179,75286,393,95359,14623,13584,6680,101227,80173,44933,76666,54542,13244,39348,458,25379,109451,134348,81143,6959,65554,12027,51311,8716,57589,140731,28467,23316,17272,30458,25980,55229,77197,83798,28302,114784,7428,34548,26241,14712,39336,103304,18928,54080,12870,334,87722,15208,16895,142098,114262,39820,83913,57817,28682,7721,14900,108672,11250,62246,42849,415188,1724,26555,24549,25505,26443,107450,145899,61035,43528,6901,60726,65906,267741,21338,147590,42079,18924,73017,135236,15393,5206,4026,84185,1531,5988,113890,82647,303391,7386,69844,71611,189865,76523,31877,13315,19314,198575,32821,1928,67641,25913,104475,103489,3297,70391,18406,15446,113347,19295,93790,27856,1792,167471,116449,8541,4408,41757,63233,25765,86680,64501,27034,24816,34975,6079,4486,49693,36229,16917,21581,62426,27862,11612,54284,35702,194034,355,24277,48262,87411,70504,310164,118018,12516,47559,43502,57433,107139,9290,66533,80863,14634,34312,91725,28606,21342,67241,72355,43244,375789,37402,174015,105070,8342,44167,67494,1890,16365,11723,271002,1865,47918,8350,45564,27742,25110,125803,8553,49504,81925,62211,4534,15491,19011,80373,206920,667,102405,128623,245524,5553,113309,192739,65766,19567,22832,261958,29679,21293,71134,20962,105123,24721,860,21752,33448,18372,157167,94822,35770,173224,232737,75729,28937,46828,28062,25453,5207,140366,36665,30652,6169,67920,150458,92040,23186,184604,92330,20891,176492,49427,27828,38305,42495,143982,49560,25503,90043,29747,65328,47830,12932,11068,77721,9003,25213,94205,140426,46090,89945,138173,192691,33329,112232,129905,35709,27514,1841,19957,31411,127476,53572,17497,173549,55063,175135,19841,69314,5192,237921,117660,150697,4060,273045,50414,98940,65348,153665,164423,58804,156695,48994,213928,86036,28608,8355,39574,34540,16927,135680,18374,151587,10830,53805,16878,16623,4282,48030,8537,14986,46102,13062,72897,72,33050,108227,39451,45935,651,113320,40535,95176,57450,48843,5003,19019,10407,211163,3848,1068,4988,32091,30095,41692,15099,43602,107434,50744,7627,171349,16313,150832,352665,207750,33937,38256,51091,156e3,87889,90663,84175,24908,114900,50365,31494,83829,5398,169342,47521,54818,18935,8356,43094,41212,174536,10082,92550,6678,60614,23355,69721,14796,34149,128830,58187,3179,208,40325,28399,225029,401412,51150,31580,207268,6657,10993,69818,64282,289845,23308,12961,38447,6681,52944,31855,2572,47646,120728,179148,37240,45196,218274,4816,3695,21961,50084,35209,18073,51452,27004,6100,33941,1377,84831,171214,85,141510,9078,99227,32610,6417,11718,49868,65579,87902,73018,49062,46280,61742,21512,40862,107733,15941,29168,157765,144919,14487,5767,158014,140070,7241,573,71584,16921,223566,40331,179473,35081,47926,140885,41508,52104,59180,42310,32811,29048,123517,102413,80208,10104,14746,12649,153641,126022,37965,113017,4171,83,142592,2809,6362,50416,71323,116894,260776,16204,1524,5760,30351,12658,20703,54403,36083,45408,74772,4946,14485,50759,111222,10890,2195,167147,92962,130534,16283,177256,35016,15472,210156,151187,73922,117691,43250,52051,37392,24811,24358,30830,5775,818,21969,1476,127322,151783,58392,31021,106913,65215,89407,90802,28531,11690,20234,95249,44602,37256,18707,11928,5161,4410,26571,51903,49768,22008,25252,65780,209499,68769,203726,13249,137363,48845,86823,6658,5674,31881,1083,1823,108676,34518,166752,13791,14287,91576,91429,8665,11529,26401,16191,91972,30964,5254,28486,54697,79613,66520,18447,22870,45203,194466,22822,51703,12278,76716,44595,73455,33546,12235,144843,36154,51247,11116,33040,3180,225753,60864,1972,28469,12891,28879,10338,144157,56294,353058,38302,41447,87532,110616,27065,168438,6557,1213,50804,144643,24817,2390,136531,38174,247513,16190,4059,122791,131994,137430,39506,57650,16305,5188,54309,106128,20628,88071,67394,395446,250285,66176,91254,1399,114196,43915,60230,44853,27206,106353,43013,18733,345105,226453,51202,16607,57106,117175,35492,10476,89598,127439,15187,39624,13688,61570,10615,31111,59370,6238,175252,32143,224492,41388,95408,34384,148238,78307,38959,9340,160091,61443,15737,11216,41244,170,38299,102443,113097,26382,14027,33707,3957,76300,66160,19431,18900,6952,1717,108656,82206,188021,257335,27295,43999,41210,31777,46956,57457,12657,11489,15697,48060,204748,53583,82422,284790,30503,137341,8120,19615,220311,15991,10217,63424,9808,67431,70976,98221,4491,15177,28535,144789,751,13230,2394,1504,33977,132104,30316,22230,931,97193,185240,24826,22687,174322,15307,22988,1390,188745,180325,29580,59068,74903,18994,29195,79,15436,7622,38462,11566,138710,44828,45774,37768,99236,68137,84083,19282,22698,17134,74807,126662,173497,46248,16938,119735,3212,28292,213652,49013,9975,32180,45660,86250,4801,68788,95490,77482,113751,11994,44624,94452,46839,128497,100316,5798,58588,73184,202987,65417,37790,88524,1606,43156,97964,105717,34947,11203,100060,37742,130074,93653,107799,94311,196106,41347,8035,10780,16390,27883,118236,167395,1979,25006,19375,31628,18916,144723,78502,114047,103107,86492,107686,5844,20934,206963,23556,22591,16562,146333,20167,10471,117434,33085,2863,9740,36669,41849,37271,22790,18209,28979,8231,12952,54408,21731,25130,45208,55748,138120,75826,414,29593,9925,292865,25999,683,123149,7036,92159,86055,61827,103680,23176,54918,58466,57578,13305,5709,86479,16697,31064,17660,200919,10770,49793,33423,32370,52047,16488,62555,6459,8426,83493,7763,59725,82812,18628,67760,79405,68557,9612,7673,28102,56517,69620,171797,32458,29541,15870,81109,32080,207644,71495,21202,11039,91036,61230,2810,130800,32260,4613,60590,37112,75214,33979,126402,155062,30642,63875,12810,194463,82799,47664,16725,36685,43367,61099,449,172150,102867,21691,301838,36745,7130,18671,57316,34852,38034,54182,35578,65900,99486,19771,3456,2658,16914,99866,28390,28109,8262,21147,34353,20006,4228,137085,1675,203023,283196,198286,214375,163329,290603,152574,40471,83506,30068,14730,23177,131539,34759,27668,32178,71896,104799,116305,85430,119262,42860,25160,8911,23428,49437,105322,6519,16203,6349,74711,1230,38045,8540,75165,44736,25909,51026,317034,4984,32281,91312,27060,44431,17817,45363,155937,239085,35697,59784,91993,29531,126740,213757,76560,167776,285273,24262,8237,65030,41160,74437,48804,118916,13159,37842,1031,75349,1478,11655,108777,23435,277425,101734,67469,70231,124711,43532,28514,65526,54956,1e3,21882,17728,25302,40952,52214,149632,1999,2111,3259,63362,89961,220561,39777,26335,9063,10572,12416,34551,34623,38604,24723,5947,15588,69927,66252,119177,69173,46629,28714,70715,212408,20521,406913,74380,11716,50659,50862,37009,88460,130101,7210,53853,538,65120,151950,55806,163748,52837,13153,21100,16674,64536,6091,138201,44837,58547,3723,163,2177,32288,85454,34033,8497,14282,25742,10535,10741,79559,117493,243787,49337,100718,79495,40139,42956,7551,55433,15421,31509,23034,45081,547,61176,53434,328001,8470,36263,30145,4519,74173,53935,11845,73774,60211,78025,3,4102,73782,109293,315332,48412,26683,13714,6865,20128,18490,104141,325,39470,171970,115860,15707,7268,73301,74336,31370,2368,111827,107757,136231,142844,97138,96638,84053,38691,23801,1588,10573,122098,77039,240,186135,146101,11996,18143,112963,46171,155836,348769,47795,121213,116266,132515,3344,144804,31286,99187,255838,129694,35894,48779,55235,148582,71967,65282,15174,13920,47080,6147,108242,157593,125025,7136,1286,28957,127956,28402,98813,20805,7532,109417,40610,5041,32958,15142,18408,108596,33543,50517,27748,80114,233434,91447,487,37094,100048,30541,43477,10639,89862,155868,37667,8726,60684,237903,73408,99589,12190,38739,97348,3914,13594,2680,149016,13907,30171,28343,23530,115225,61104,35821,147679,14337,4297,244282,24085,326976,56428,7851,21303,131620,71446,83253,68692,111870,5224,15813,38197,49026,45057,13660,3306,76345,40671,27905,91072,996,68527,62085,91351,122634,55109,168209,2024,27560,112707,17352,8306,167115,169921,166958,5031,46020,11844,67284,19130,76185,6920,32849,5450,14610,22451,21002,17392,31872,66682,84796,13709,40210,59898,12029,8719,53564,21462,91884,21647,88379,194428,12754,37797,132826,160016,22567,54383,53186,77611,31107,8339,4694,19185,90355,23597,17222,140675,28442,23668,55977,9128,61555,28774,155229,17658,9390,24379,69357,15752,127381,239631,62460,93181,55913,45133,140155,18676,25249,33164,29581,82837,67223,22362,29975,7317,52813,1943,29613,20012,207130,49617,49651,5636,15334,36313,29226,28084,95247,72072,19e3,224932,15811,114,32127,38097,37508,88507,37225,27359,91626,12193,69279,20608,11055,88156,92808,2152,57259,55275,72789,24475,104414,1708,9882,3818,48661,66897,1631,34806,227930,85815,87753,18321,250664,72733,25107,206797,50891,8082,196411,92596,96764,152823,65514,22819,387277,62176,51225,40329,15563,189,3659,73670,64357,51793,275136,33482,86653,74615,67058,11318,125720,15388,22388,8267,1730,102663,170910,40784,7144,85373,13040,7088,94309,583,44224,140424,77439,18496,164026,36578,4722,9151,5824,63365,26510,35199,40500,79277,32495,44614,35233,9566,203293,152144,7097,2330,183480,98629,13423,330887,44130,68600,30939,97829,31012,345465,56747,94879,4939,160027,149761,99423,46099,32251,15332,8761,96094,128555,5763,235318,222223,55729,30241,55420,201746,3987,81382,8259,49325,23287,7719,24633,251100,92311,18591,110533,64759,170260,393860,7175,21144,132887,3593,75346,101277,91109,16387,259187,11627,57459,173829,44694,55780,49797,89192,120443,62622,3904,14814,23887,1027,112258,64955,99800,11132,66353,36202,48624,18158,88481,96882,43059,11040,2455,7077,21651,181159,99126,100434,61388,68186,19161,110468,120052,8819,55324,41494,7014,37689,3618,87729,92615,207943,9823,128657,12587,15857,6379,67628,51216,71775,157617,63244,1503,3864,218754,110864,5769,21492,7243,1192,87921,85529,31512,18537,42698,35350,73510,84474,34301,8991,21013,35034,566,38832,19838,35586,37216,39413,55006,12178,59742,856,84563,6900,25632,17437,49786,30723,13847,70845,4044,7843,23944,235976,55530,48942,6518,20939,73769,192653,52936,95207,23895,132542,142982,22632,87452,48042,54018,178468,10728,26230,23559,363,81269,142012,5718,346258,31456,84333,246476,51018,66692,101804,120570,39962,30373,70593,2864,60541,19425,54209,104092,7201,31545,48018,25865,15442,46257,40443,8328,6451,111782,47527,97754,33046,470,245116,31095,39,91934,87208,73470,36708,36521,12801,70624,36272,8892,79768,12427,55454,103756,5908,52390,62962,22720,141138,94634,41689,128402,126390,6628,106394,35527,134394,82727,254651,194502,148064,89549,3202,28359,957,21954,27906,49840,142747,8307,24206,48978,1186,71728,133038,71474,91306,6333,110959,74600,70387,18983,62609,56057,22970,1147,135850,1321,28834,3578,59715,102227,32827,81415,99952,55636,257598,390,22702,35701,85872,402916,39216,189795,14929,19467,10112,144422,61514,5279,63421,134686,41436,8424,51925,10598,132295,124416,4604,194739,210929,57866,31829,51626,50007,9976,91878,61906,56168,81906,60918,61859,40017,23059,16887,40927,62064,12785,32893,32913,21782,93965,20169,44387,79084,38463,11457,93950,27127,157050,2697,337088,5116,54128,48255,33279,8821,27352,25515,124022,65710,28906,38557,33390,1722,104435,72215,38551,12094,30978,25113,6671,37355,175109,42862,98024,65406,221276,59624,118012,64637,78760,86697,21426,1639,40350,12584,67193,84144,31396,7863,143011,69629,63112,9454,28666,65798,46372,134721,6314,51402,30837,151922,2847,38676,38008,92823,136245,17540,5504,109295,205242,37606,5211,214892,1586,20670,208711,137743,19328,40652,16995,20023,14657,154919,34422,12996,13918,38221,47690,16398,2959,37680,89122,6721,198469,91876,172043,83898,101992,26084,94570,3635,76958,22853,76497,38266,176590,168403,44464,142840,79180,184594,1984,41806,83147,11985,6546,366068,59732,24533,271505,8736,39084,222992,93429,28962,58985,86665,8432,30028,14548,32439,54424,165029,55175,27458,69046,121277,46168,33732,20661,24581,135574,123110,37556,79260,72611,16957,12939,46162,58238,44907,72936,253758,41324,32518,96480,11949,124438,65280,43256,34107,53533,43531,37037,28366,45970,32741,173438,6121,194202,62969,26355,30314,58370,28455,1848,50519,82830,90393,21761,295490,10936,256940,133568,44050,20269,4089,27457,21610,219460,36743,14821,101388,52005,13124,30979,140816,167362,26054,18458,60789,34917,40447,26606,33422,9066,3452,83614,5761,20263,137238,25038,91310,101,52322,74548,42572,38084,214054,186568,31802,17665,30620,141936,37730,14420,4265,187218,49640,188208,51441,55388,96452,66659,40869,42039,60967,221027,19234,178581,29105,96050,9165,196118,157335,3738,40354,117436,2965,34136,59659,15570,50843,230035,31444,71260,43886,18316,5387,38500,168508,17406,32174,8828,103373,143806,90367,3560,18719,122310,16508,26719,2541,105429,6645,37998,73190,10591,235916,49737,87112,233941,53188,32193,79154,4544,52905,126477,7580,63501,57314,3216,31337,6541,103083,60846,49,9756,15481,1355,43840,14319,13743,27486,10222,73114,230718,418644,16706,6674,279748,23058,45273,295831,86306,2743,5535,88773,21829,35253,120938,31153,3169,16839,42847,8751,80974,33942,36867,35514,16485,26474,77775,56877,5391,48346,3882,108713,31403,27804,55248,26235,43821,136104,40118,175507,28034,203908,18732,1788,34030,106427,36958,54359,7251,44936,15356,69139,455,157915,22173,140291,50348,43275,82066,49621,54952,15216,36226,96695,66855,6936,1987,8227,196087,4631,68827,99004,47541,110265,17953,147605,110242,58520,31312,38724,329975,642,3155,34497,75937,6207,73843,6120,17249,51429,117746,3218,910,68961,319671,14938,29555,34700,1649,66673,72268,9655,76800,153087,6941,210168,27130,35398,1780,73242,3135,56689,19556,165307,8765,35967,121458,13333,70453,17350,117253,22265,13340,44265,39869,441,3742,135025,23581,33309,16543,17731,13291,157637,283005,21408,101360,63887,52312,83873,5338,233779,23759,186949,34531,177320,38069,156465,91004,19353,59852,68160,14891,1338,1072,29823,1950,28901,81407,313445,73038,84807,162348,240257,37162,138934,16111,58013,41253,102951,16457,96056,19541,56402,67217,41638,94381,89674,29481,37456,80815,151579,13937,13683,132537,19699,134545,67020,29816,222341,141235,427578,48868,129557,233342,23077,87871,16213,18728,16184,9469,37913,19680,2798,171356,178328,13216,50049,72690,71904,124644,55455,7504,29052,41036,266546,19899,30391,188755,8659,59469,16,104298,112943,53865,76203,138226,68857,139953,14125,107625,119795,173133,4398,50273,48808,54390,16466,122086,31835,67035,50971,48859,7508,46427,66477,73021,84615,39985,83076,46779,201569,53336,36443,60865,168164,143810,51393,25548,169307,32896,24485,38424,21837,29087,275813,51674,6714,64883,46169,187369,55186,76192,12852,12018,62134,31067,118303,16542,12125,10579,4928,26291,43854,7091,10946,253716,109062,39283,17261,113012,258512,47764,125126,32646,55892,80279,201623,149872,3192,385,1208,48750,5376,58738,22335,5427,82416,47811,32435,143086,38930,94128,59975,156037,37977,38224,62485,7698,50405,71027,16462,21559,136153,34131,107506,162069,63703,3101,215029,40407,4178,3774,9187,80019,17880,97926,67579,2600,18405,8351,47924,86638,70820,92206,86453,29610,42241,119200,3198,15466,67813,57863,35454,4779,99518,4649,104641,144269,33730,38073,65864,6838,109456,193298,154007,5623,45741,30846,182578,25573,157224,1543,58575,138703,146140,44971,49356,18275,59064,20300,13122,11848,24453,11973,9797,86843,2919,25530,49210,1130,161220,76788,75373,85604,34926,36014,17777,17255,51533,11676,92226,51845,119859,21525,5936,18507,28050,1140,31418,14857,34207,47859,10750,36382,32079,106909,59426,87757,38393,110042,15965,97104,33757,35344,97993,53979,33651,45407,41884,82515,173089,7177,58371,35365,47543,51927,35587,10670,23544,29306,84233,39976,76076,62097,9007,8668,28119,78281,120790,19835,143020,54968,18670,64959,20649,34469,42570,33001,136570,87796,120044,1106,58700,63951,127623,12805,83057,40212,31773,49850,7361,54336,347524,101314,23751,19569,48791,29174,49369,20467,7465,75842,38281,623,112457,60210,28849,51003,94720,6426,90047,85560,43761,3579,85105,34607,90410,118528,7224,42907,111163,18168,6960,161135,191298,5247,100584,127552,171568,20121,91173,12636,54615,20199,63730,98105,2396,40387,14438,125012,4765,33235,12865,45299,37728,82098,77872,114037,59253,19675,24838,398016,102561,11446,17069,57508,178277,65836,99941,26114,2585,271882,136866,50126,11027,155648,118367,14585,8910,123015,335383,40434,41016,53021,14439,87098,176860,201543,121888,2358,9286,5739,22666,54270,37884,169381,33984,93859,16124,89364,72207,51639,76366,99029,65812,2198,12147,174891,194289,6986,30252,88822,21284,11445,288337,160821,33034,100869,43852,25761,52882,1144,103809,1924,84458,86079,43411,13542,139276,18141,34978,41298,7276,26481,173800,33210,17951,142652,33616,33677,2210,19941,98568,2486,192414,80136,12058,235883,50963,249638,29572,27221,47034,6124,72107,63346,97620,158513,299699,40388,23235,37176,224244,198386,121323,67992,23827,63170,17838,106622,158590,26807,5345,23489,91891,55474,74834,37981,13058,5977,72552,34706,26828,145172,19904,21367,34043,960,77092,91381,4733,47446,7680,41697,5170,16960,14741,46101,13656,473,51842,37433,11103,11551,121951,13191,97536,165932,50397,51628,129028,9069,44885,6590,59195,47045,32940,225472,90345,21833,13303,29407,96615,141951,5198,6028,18395,7181,3861,14966,156358,167182,36529,55253,25942,173153,30959,27261,50691,150176,162201,38467,48462,80602,42163,118482,168,108756,26011,17166,54149,456538,22512,91374,13816,90358,131615,18132,226707,1824,28139,26860,42253,93877,77351,65575,8980,80574,22020,27948,40422,91324,76376,13528,39281,91685,82215,122541,144066,1983,193851,17283,26320,2739,194978,4790,26845,42627,61300,65815,174612,55133,4200,191130,79771,158321,52280,166796,221620,62461,11278,4067,88152,83409,31717,121367,13522,47325,37945,10406,174348,249321,154101,64912,29938,51775,17220,15776,166138,78890,84425,54121,42861,16368,24572,291647,10197,32073,22651,11677,97509,26952,35787,18424,41910,71614,94977,72318,41594,70024,275419,37702,60199,7335,39107,61315,18271,18394,33768,87884,104277,123724,7277,56288,71981,189803,49320,3352,6798,14240,8954,69220,94433,57372,28620,68863,193727,85575,42309,41667,67689,42081,22543,44824,12719,28540,114236,101553,27638,27296,4300,5353,4663,19379,94098,3758,95888,95144,80344,87320,28447,259518,12718,71391,152731,37063,24132,31911,104896,15672,103782,1521,4945,72541,23717,122632,15619,87175,206120,29428,189780,61416,28350,44457,972,1175,47233,198738,95789,41907,21953,97034,59341,22864,53713,16873,32971,20693,20954,31336,21477,16169,38370,16412,9019,3841,24599,21938,17085,6484,81198,76413,5849,72514,12320,65247,276175,37234,59796,52642,16312,57349,198507,94148,46134,18958,125552,1747,18725,151873,14901,5490,68287,29470,3689,64794,40814,26018,25692,54450,2703,88278,124886,173087,174e3,24159,179477,24276,46004,201876,209202,445,52876,31948,30206,157610,39180,18439,44124,50469,5774,96278,222758,200216,50290,45486,20435,46986,46276,140133,142326,15569,13363,47522,92583,2182,7135,16853,22998,30272,4952,63263,35623,39096,53789,44864,20053,110392,124213,4630,16087,28221,127787,25839,77481,44693,13464,113146,6983,27069,55717,50102,4760,7107,26186,66507,59145,36032,104182,71328,29425,64317,50781,47465,94298,69706,74899,22754,120756,25108,93077,56834,73286,39928,16218,41699,176763,7555,70819,50083,26895,23315,26014,16773,123079,41712,5719,31516,90427,158540,85051,183128,40864,27505,55392,9058,45224,96857,30901,136622,96557,56304,120061,11501,151448,5773,89743,7769,86069,2935,18471,41628,10114,33660,110170,49479,26745,92846,33221,26731,18795,87076,8550,2100,29972,120289,3077,72490,33784,2630,208722,50861,63483,79029,6419,39467,14302,45286,64207,9686,67513,44170,1050,77246,59266,17055,53801,7150,11111,42432,4278,94579,362117,36175,42902,41933,39002,98489,22913,74161,84773,57036,17556,162288,74485,178760,93867,73635,128860,50362,261,67455,80001,46080,35662,4368,25247,19230,74393,22588,1822,27682,235324,13798,85998,13194,235067,23514,71669,147632,23191,134748,214683,105101,1518,25489,247114,7380,54842,26922,3971,26361,20844,68642,170517,77339,123255,8963,77818,150998,48466,36806,2732,23261,11741,236162,18243,126216,28690,50546,16385,92760,197383,246558,201295,88255,67588,71687,176076,172653,169058,33906,63747,24835,157621,43338,30050,46152,132741,2770,51371,94835,6614,15112,11749,56936,1250,19027,399017,58036,100215,23388,55815,308768,124152,94803,9521,64186,8971,28,30427,62163,7616,103838,35079,29203,131235,7743,17389,10882,37420,61460,228512,85363,41581,131077,62822,119647,10130,54445,26925,19968,29016,24446,74028,24176,61448,67185,9254,8563,119129,9771,99184,37716,39514,10532,221512,258753,218630,55980,23394,32141,61924,66749,32411,3741,36475,26678,77010,44946,91203,128749,116953,20476,49625,53116,13735,102335,29376,51946,83407,67892,59212,34685,21083,1546,112982,32972,74397,1078,190545,16082,86140,58591,89611,101531,10061,105104,76319,20035,17551,52611,169061,190842,100780,23907,90413,115619,9675,34710,193435,49443,129734,11183,258877,16318,136182,126808,44635,27304,192375,2599,125648,47051,12091,23814,721,58800,40137,66726,97930,60877,74487,7942,54326,9841,41428,13762,8211,85383,6950,99177,79806,201786,296464,124087,13144,29741,41721,47634,55088,254286,106408,17041,99064,12942,64086,45233,14005,2612,55827,255,7984,13980,38574,12776,46654,73499,249951,2101,26676,25996,132326,116415,119062,50449,31033,23038,11589,179252,20007,14860,129270,21143,17796,144715,60106,70758,69842,34674,282133,44014,16774,57268,38528,24053,46373,201667,28327,471023,51889,102667,21193,114909,84132,69317,96723,67969,16134,68145,15058,28765,32035,2524,101089,98664,25045,76571,14957,86040,118506,262428,154764,81573,39681,283900,73287,127825,544,80448,52347,38512,175971,15180,45467,33086,46552,48894,81107,43213,36672,54025,76703,8053,7608,13299,56619,20752,238099,54164,105133,1444,32942,953,37564,8e3,66316,119463,106817,404,13667,149108,128597,31267,10269,49836,106150,1484,52330,76965,160486,171648,38456,31263,22424,37738,66245,67467,143369,60471,75610,20895,115528,86070,60854,40796,49347,18989,15030,11371,37578,15779,79867,10187,86462,46402,155626,93200,40229,7090,57547,108053,99598,11088,47505,41218,206017,2173,20988,30219,22919,80563,57566,42369,93141,41675,2407,182519,120495,27154,16702,29456,14349,7958,16688,117177,140375,42467,261919,74916,153569,10836,34742,49526,7621,105997,12212,2270,392377,7755,17959,25086,232152,138791,33847,13860,35316,5811,1344,71259,50452,207539,92635,50359,5821,33674,30255,2086,2587,96264,17543,42,6029,9580,43007,139248,82831,12917,29607,25786,51467,42137,85161,100698,31561,88989,121990,278500,3602,109344,37982,15279,116442,28936,30880,87894,58079,128661,126731,67392,28051,146885,4861,16216,97344,42827,147561,153948,22684,21335,47685,1853,43349,15185,59642,10229,25520,187921,108972,5579,98037,24945,6697,19193,63734,137934,75056,89740,19767,224268,56138,63643,151661,39313,70618,84031,89723,84074,13703,85626,35460,8867,64845,3439,57906,99776,63968,49270,81130,34356,16210,23547,36446,34090,140028,72439,2221,22163,57058,363492,113754,18913,95451,48663,54464,54037,176097,68425,3023,34906,29482,117389,341780,80431,58330,16753,92616,60907,94846,147486,4498,48646,7773,46801,7778,18946,464978,47558,33223,177444,7328,15626,63337,94700,11743,9351,255024,39098,16447,42647,96230,39769,58840,10068,63439,35800,65843,58823,413844,9156,51258,7434,61791,85018,6872,3692,28096,7121,33024,6009,75532,31997,192535,9661,3304,9547,14753,31987,25314,55689,15896,20430,39472,31340,99744,25398,115569,54883,28719,205423,23071,57855,64638,149867,25671,82403,37616,20668,39989,77996,74948,140555,175248,64810,36515,46595,4958,248773,24045,28728,136673,168704,20804,114833,100325,27135,21205,96151,153134,45992,7093,13992,76047,1980,19432,145001,75159,87462,17710,1013,45556,34297,144882,20648,26061,11319,129567,108555,18872,464580,33386,22717,65948,167189,5603,135042,79542,8801,202632,18114,91882,5973,5239,67315,4431,60916,47819,71693,32597,32606,18183,45072,80329,76385,24749,51305,40314,156514,14693,130345,13168,66214,18029,12858,34801,27628,14544,10823,40522,40185,33739,148694,23548,9923,61012,28859,17933,19442,34364,99849,164107,141167,30629,21054,6744,36491,8096,42474,41706,155060,30650,10600,163442,1143,96655,61390,52359,7559,51568,64256,203854,4467,22453,14504,436398,7878,6980,8293,63610,293747,16167,35763,19627,147603,15419,18032,110744,51346,33681,54571,40472,48615,39073,21604,13754,173027,92560,11083,47299,63062,11813,52007,29883,9734,139722,15953,1550,20651,13616,49306,16113,90089,92326,7584,30712,72424,164858,6831,152871,55746,197721,34167,196442,6022,112107,55215,7538,123381,4920,43539,77165,8939,50392,34192,20225,79762,22505,58667,40770,29788,97180,82835,4568,8579,13273,363569,35898,49983,436,36598,3237,131691,62418,35591,8101,4073,379438,65218,76072,33887,2968,27573,212619,288680,68278,72851,150504,217896,6913,121339,22017,35340,51072,43616,75043,31437,10833,81487,4364,22968,41454,106687,85446,19863,109625,149241,524,141850,214404,54376,657,237023,9401,108137,53800,32474,49712,53334,126876,27337,45552,177696,8269,15036,12097,42240,2328,125374,119295,99715,2500,19624,39441,27220,102691,60957,94543,39101,18566,67362,13975,78230,25017,34017,239007,90027,39351,41681,35354,43822,1043,916,58587,141983,94818,38799,75459,41114,67432,16195,36606,59568,22272,126769,31424,68659,12287,134302,257977,5756,207285,95637,47248,117689,19583,77451,22373,12200,54993,117118,34244,29386,34562,53819,71267,64172,77665,49368,7716,59301,25749,45426,194789,17297,2650,1766,32501,45198,20403,20984,6600,14171,94604,19037,5402,29896,9938,59935,109708,88081,145182,44844,39167,352626,164173,35374,45982,6122,154,73419,220487,53834,53601,17992,8609,229321,5610,68098,66815,71012,95069,140968,27396,8957,134489,24656,86659,56598,134852,17316,123838,255436,6613,41610,138033,81452,32023,32396,123687,63398,8693,29712,30407,19296,121188,3551,36099,20032,111948,56624,16547,27453,35916,15378,52039,56849,13489,22214,73177,53097,277349,2157,14029,187886,10260,141743,246460,91880,50869,3788,49486,133566,54950,33120,129337,53768,18333,9525,26902,312251,10297,9020,70759,16647,112432,59260,84609,9818,82766,73569,468,46001,75780,55028,52106,11498,43645,108069,17150,17753,29417,16705,31799,9606,289,122254,115975,8620,6133,255357,56908,14456,133464,43554,79224,11247,29630,160,12756,25464,65960,350428,62521,321796,100359,67358,35169,46172,113128,48988,88868,31094,33266,6847,60887,98188,49659,69117,92977,220228,13947,80181,35103,62170,97351,13475,2440,199768,19498,36597,46971,25234,67806,62881,84717,73648,181966,10488,94149,21550,26655,63436,48375,14405,165650,9621,24439,28043,42735,4490,29963,56674,45373,1934,262446,50855,67098,26898,5261,52696,40644,33900,9440,180286,87162,22940,19704,26936,69769,10254,101759,27406,12243,48e3,73926,113215,54935,5726,192787,4312,106216,9366,11550,52949,23457,212271,277152,133895,108374,6191,96477,29980,218916,58024,54696,40853,91124,65894,91170,65908,252552,6793,29212,15389,44516,122515,52617,35058,9017,103536,39510,49136,19242,130652,662077,74699,47024,31422,8517,73351,24399,13867,128360,4810,4434,61779,111983,61036,17798,110240,59722,102960,39688,10001,23803,23039,176498,56659,44814,134295,17188,77577,74466,226175,102472,154333,63900,111747,18062,41171,79669,32773,408933,42562,28931,30907,107388,43487,2946,240310,23938,24354,319,184983,7927,6488,1422,10790,68809,68209,64775,4361,202,17123,59634,51200,44391,18188,17843,2619,74278,3230,9540,47187,21702,36274,56894,43907,16310,34790,16866,6150,5561,13587,107545,108873,126867,86986,28640,33427,19017,5762,80637,17430,46903,2047,131055,25958,13558,5444,47152,13900,44563,122857,45348,70863,39593,54332,38068,33637,318,40310,143467,18502,24520,11377,62013,28942,27246,28269,83545,17999,59015,90707,30065,15161,34720,1263,37008,2012,6060,98575,92933,5721,299,199555,24578,29223,2985,743,115825,109523,136657,47454,26378,53586,3733,174945,93340,244456,5693,37386,28782,89767,27545,23573,18798,136425,34320,84778,20041,48453,38215,7477,71958,40621,8773,5874,187927,105965,51100,43533,18083,8443,10180,43597,2003,183999,69689,12216,129696,146188,62389,34044,68410,12765,43273,26949,266807,3345,34477,79197,5688,47539,213110,21634,22257,50092,32222,42346,39530,63668,98,134978,74022,5152,59088,174145,37220,9934,9545,118937,5724,87240,19875,15784,40143,23263,87513,181654,285152,37881,263241,4966,43934,10433,186657,6470,74416,225854,25908,142677,246262,32280,6192,75890,45546,143264,135305,29742,47013,77787,11732,126658,8763,37950,21806,57557,113464,89465,108995,164574,23894,22996,23169,15369,23117,17642,130607,40503,36239,280990,44666,9981,40427,147487,26869,168452,32886,32991,46798,240839,15111,70502,65697,88548,44145,28701,48767,31139,206777,35659,181164,166262,14554,171445,31786,66523,76607,17956,6507,31279,90476,116611,167918,6560,1243,115324,80128,41867,55897,187323,37069,32596,189444,145931,13390,105530,65709,26805,6999,55714,41300,22915,68951,22138,21120,22264,10058,19945,33635,56123,99085,10032,5818,6016,46649,57476,35264,94413,112522,262288,93686,83038,14341,23204,28807,66084,77987,6101,126673,7133,38126,5923,122091,170240,97772,46874,215746,43948,41622,3272,55596,8332,146411,251315,13533,8561,81521,115449,48616,175175,2063,186556,3036,134537,75772,29728,82360,22973,186559,86348,89100,38388,82297,45610,2613,87082,9986,177812,57884,23591,47485,42543,33582,44713,74439,257444,252451,31825,35631,38540,33066,5147,13973,4343,51830,70378,22827,26448,95560,36896,241741,48067,203953,298860,61620,20450,3220,67272,6586,107662,100160,108684,6929,57226,4762,7457,1320,40404,77204,99309,62750,208653,59977,44e3,74315,34332,5819,172217,64904,114077,18147,84012,1791,98456,90930,21446,116669,103938,7422,85140,59713,5768,326211,16239,75411,13229,29398,10758,236107,1539,112472,95979,152154,151294,306,21196,38146,10700,6891,84282,109646,56492,40539,6589,119491,51354,30685,140209,136906,29622,73617,49553,70525,51671,166869,139616,74395,37439,49595,45678,11959,33211,86560,52434,9282,62690,112155,130810,5243,108261,99970,265613,72551,80049,6391,33365,90721,66737,69872,87011,1860,9032,112544,60905,37371,89015,140351,19076,850,373531,2802,36725,218795,72062,28990,16550,24614,7815,6187,26336,33373,32162,42791,73555,32062,23386,10244,56392,49442,27076,136262,12412,14883,1134,33675,97153,199281,15608,100152,74072,47942,254301,36451,16026,10687,65067,56708,254030,30290,50490,13864,57941,259331,35588,23485,43486,24869,21620,92971,22072,88645,1048,182050,13343,32452,14825,19509,3325,216938,45740,99716,189082,53740,78245,25609,24311,176777,47340,308354,40669,66085,14102,125339,9225,128709,97207,1271,200933,78439,113451,88975,18324,46521,11819,18570,141756,72512,170020,52754,63550,118515,103073,93330,32736,50499,14722,31600,68452,398867,29316,172786,18417,104924,2606,5670,84818,16288,67106,59580,82929,607401,291,85829,359,15897,35830,50696,65630,52672,22115,356968,29895,40837,231192,34024,38957,26722,406,23335,124952,72068,68804,13268,147101,164740,276569,162596,66943,11569,26654,66358,4777,23229,102127,5848,978,2921,59666,5371,28212,90108,42938,39320,2499,4271,108792,33510,125072,71653,65239,38250,66357,38577,13964,86251,35708,50755,36010,29448,12209,3844,38222,206337,100876,67827,137088,14167,252225,84163,195270,1306,5703,54198,779,46802,22028,51124,86759,70560,113164,35685,162145,45471,34561,422,2611,6464,47486,19223,38246,9191,18331,89942,243642,212364,15893,17518,22617,6409,30046,126182,59716,36560,104428,18846,26592,19458,50793,147333,30826,1388,27647,10922,14495,33545,19269,135828,39727,41601,46931,233379,49169,131130,182112,16276,82381,118209,142445,128310,19672,28740,82907,33436,3118,102206,28723,24819,41937,38854,5157,3881,111491,1142,9776,421673,152241,29309,14961,87854,6054,15424,3796,82656,54996,2108,55367,239450,154525,9643,118103,106041,64601,68549,48707,30266,25772,18740,9462,229669,91798,112152,191327,14493,72828,8175,66636,236474,25817,87351,129027,76653,20422,22983,71240,27846,44661,12399,46158,77704,53101,35032,11072,17300,109294,33638,24408,1895,11241,760,17584,82479,125877,63150,141075,34259,23274,81698,15732,43577,48340,91584,14688,16379,24481,150280,96420,262050,48635,43727,61819,56268,72003,88178,17281,79912,13218,122519,125295,166396,11811,2171,118930,67746,17636,178278,174656,95661,173039,83845,79689,17473,98555,127696,203415,54730,22925,232239,9309,12136,175026,20740,180188,10747,39816,314017,266131,10040,175732,112550,220651,31974,37393,888,23008,86799,4303,64905,148467,75337,251,3284,370102,50264,9835,5438,23655,4481,29851,329,12855,7162,64931,78141,12804,42372,296771,83547,18624,34874,86271,3360,48665,77735,88767,11463,63527,28889,22258,29140,194315,113924,25499,6406,31334,1845,4802,49184,43455,35469,127594,92970,61038,115005,38840,87761,106838,8811,20572,55637,11162,96721,132425,108925,2948,125457,36356,3502,75270,27622,127192,2561,123095,49394,61155,16897,110064,9699,89448,53356,19628,220310,21622,83036,9885,112214,6087,26713,17901,161912,91492,3440,68594,9266,92238,8087,6866,150194,72175,80701,13459,31836,43243,239700,95846,44749,50647,21945,230538,120612,132371,244604,5193,105637,34661,41341,68775,85393,1874,8771,33718,49672,77403,595452,99507,6490,58895,128742,7704,39239,73217,43816,62824,37804,199976,22361,80005,87514,94832,14089,4574,139975,59142,75523,100268,43906,53442,15152,2547,186002,17011,19513,204282,3343,60568,128318,119250,4298,51871,41336,71759,21921,45074,98169,145889,99427,11350,1237,5520,28799,7803,53702,21026,136352,38293,128690,12158,90132,44600,10184,26957,39459,126025,78904,82999,59373,39301,150198,120529,153042,20177,50089,14764,271571,30530,123161,38975,101562,22941,5648,124654,109243,69817,71675,49162,106884,21241,107795,30258,16572,188262,141456,7688,60718,8271,11044,32440,104608,103419,236109,93156,43293,128929,42107,67180,25201,115254,185488,130954,72813,167547,20537,39969,38432,22582,184022,1139,27199,5655,17767,97412,122606,209377,27070,35871,326617,188954,42680,73512,80911,22629,3011,95021,315242,157737,383,41821,41808,19335,27950,15674,25677,110950,35375,76835,59108,57370,35262,16569,160415,37706,78086,32041,49691,137143,9782,172080,50148,77917,6323,10110,69172,17711,21795,59511,76184,135114,31046,132319,59105,157578,20549,80778,57649,158421,65143,4575,72235,21899,10797,92745,34035,106079,80159,4508,78304,25350,75457,46458,32937,25623,47,8531,104751,84953,8138,36508,187199,66310,115274,13253,32461,38536,1916,42007,187160,35055,26325,84394,35963,94216,45590,97782];var si=15,ai=class{log;peerRouting;routingTable;refreshInterval;refreshQueryTimeout;commonPrefixLengthRefreshedAt;refreshTimeoutId;constructor(t,r){let{peerRouting:n,routingTable:i,refreshInterval:o,refreshQueryTimeout:s,logPrefix:a}=r;this.log=t.logger.forComponent(`${a}:routing-table:refresh`),this.peerRouting=n,this.routingTable=i,this.refreshInterval=o??3e5,this.refreshQueryTimeout=s??3e4,this.commonPrefixLengthRefreshedAt=[],this.refreshTable=this.refreshTable.bind(this)}async start(){this.log(`refreshing routing table every ${this.refreshInterval}ms`),this.refreshTable(!0)}async stop(){this.refreshTimeoutId!=null&&clearTimeout(this.refreshTimeoutId)}refreshTable(t=!1){this.log("refreshing routing table");let r=this._maxCommonPrefix(),n=this._getTrackedCommonPrefixLengthsForRefresh(r);this.log(`max common prefix length ${r}`),this.log(`tracked CPLs [ ${n.map(i=>i.toISOString()).join(", ")} ]`),Promise.all(n.map(async(i,o)=>{try{if(await this._refreshCommonPrefixLength(o,i,t),this._numPeersForCpl(r)===0){let s=Math.min(2*(o+1),n.length-1);for(let a=o+1;a<s+1;a++)try{await this._refreshCommonPrefixLength(a,i,t)}catch(c){this.log.error(c)}}}catch(s){this.log.error(s)}})).catch(i=>{this.log.error(i)}).then(()=>{this.refreshTimeoutId=setTimeout(this.refreshTable,this.refreshInterval),this.refreshTimeoutId.unref!=null&&this.refreshTimeoutId.unref()}).catch(i=>{this.log.error(i)})}async _refreshCommonPrefixLength(t,r,n){if(!n&&r.getTime()>Date.now()-this.refreshInterval){this.log("not running refresh for cpl %s as time since last refresh not above interval",t);return}let i=await this._generateRandomPeerId(t);this.log("starting refreshing cpl %s with key %p (routing table size was %s)",t,i,this.routingTable.size);let o=await ei(this.peerRouting.getClosestPeers(i.toBytes(),{signal:AbortSignal.timeout(this.refreshQueryTimeout)}));this.log(`found ${o} peers that were close to imaginary peer %p`,i),this.log("finished refreshing cpl %s with key %p (routing table size is now %s)",t,i,this.routingTable.size)}_getTrackedCommonPrefixLengthsForRefresh(t){t>si&&(t=si);let r=[];for(let n=0;n<=t;n++)r[n]=this.commonPrefixLengthRefreshedAt[n]??new Date;return r}async _generateRandomPeerId(t){if(this.routingTable.kb==null)throw new Error("Routing table not started");let r=Wr(2),n=(r[1]<<8)+r[0],i=await this._makePeerId(this.routingTable.kb.localNodeId,n,t);return Ze(i)}async _makePeerId(t,r,n){if(n>si)throw new Error(`Cannot generate peer ID for common prefix length greater than ${si}`);let s=new DataView(t.buffer,t.byteOffset,t.byteLength).getUint16(0,!1)^32768>>n,a=65535<<16-(n+1),c=s&a|r&~a,u=q5[c],f=new ArrayBuffer(34),l=new DataView(f,0,f.byteLength);return l.setUint8(0,xt.code),l.setUint8(1,32),l.setUint32(2,u,!1),new Uint8Array(l.buffer,l.byteOffset,l.byteLength)}_maxCommonPrefix(){let t=0;for(let r of this._prefixLengths())r>t&&(t=r);return t}_numPeersForCpl(t){let r=0;for(let n of this._prefixLengths())n===t&&r++;return r}*_prefixLengths(){if(this.routingTable.kb!=null)for(let{id:t}of this.routingTable.kb.toIterable()){let r=lr(this.routingTable.kb.localNodeId,t),n=0;for(let i of r)if(i===0)n++;else break;yield n}}};var ci=class{providers;log;constructor(t,r){this.log=t.logger.forComponent(`${r.logPrefix}:rpc:handlers:add-provider`),this.providers=r.providers}async handle(t,r){if(this.log("start"),r.key==null||r.key.length===0)throw new _("Missing key","ERR_MISSING_KEY");let n;try{n=Xt.decode(r.key)}catch{throw new _("Invalid CID","ERR_INVALID_CID")}(r.providers==null||r.providers.length===0)&&this.log.error("no providers found in message"),await Promise.all(r.providers.map(async i=>{if(!t.equals(i.id)){this.log("invalid provider peer %p from %p",i.id,t);return}if(i.multiaddrs.length<1){this.log("no valid addresses for provider %p. Ignore",t);return}this.log("received provider %p for %s (addrs %s)",t,n,i.multiaddrs.map(o=>r0(o).toString())),await this.providers.addProvider(n,Ze(i.id))}))}};var ui=class{peerRouting;peerInfoMapper;peerId;addressManager;log;constructor(t,r){let{peerRouting:n,logPrefix:i}=r;this.log=t.logger.forComponent(`${i}:rpc:handlers:find-node`),this.peerId=t.peerId,this.addressManager=t.addressManager,this.peerRouting=n,this.peerInfoMapper=r.peerInfoMapper}async handle(t,r){this.log("incoming request from %p for peers closer to %b",t,r.key);let n=[];if(r.key==null)throw new _("Invalid FIND_NODE message received - key was missing","ERR_INVALID_MESSAGE");Ge(this.peerId.toBytes(),r.key)?n=[{id:this.peerId,multiaddrs:this.addressManager.getAddresses().map(o=>o.decapsulateCode(at("p2p").code))}]:n=await this.peerRouting.getCloserPeersOffline(r.key,t);let i={type:X.FIND_NODE,clusterLevel:r.clusterLevel,closer:n.map(this.peerInfoMapper).filter(({multiaddrs:o})=>o.length).map(o=>({id:o.id.toBytes(),multiaddrs:o.multiaddrs.map(s=>s.bytes)})),providers:[]};return i.closer.length===0&&this.log("could not find any peers closer to %b than %p",r.key,t),i}};var fi=class{peerRouting;providers;peerStore;peerInfoMapper;log;constructor(t,r){let{peerRouting:n,providers:i,logPrefix:o}=r;this.log=t.logger.forComponent(`${o}:rpc:handlers:get-providers`),this.peerStore=t.peerStore,this.peerRouting=n,this.providers=i,this.peerInfoMapper=r.peerInfoMapper}async handle(t,r){if(r.key==null)throw new _("Invalid FIND_NODE message received - key was missing","ERR_INVALID_MESSAGE");let n;try{n=Xt.decode(r.key)}catch{throw new _("Invalid CID","ERR_INVALID_CID")}this.log("%p asking for providers for %s",t,n);let[i,o]=await Promise.all([this.providers.getProviders(n),this.peerRouting.getCloserPeersOffline(r.key,t)]),s=await this._getPeers(i),a=await this._getPeers(o.map(({id:u})=>u)),c={type:X.GET_PROVIDERS,key:r.key,clusterLevel:r.clusterLevel,closer:a.map(this.peerInfoMapper).filter(({multiaddrs:u})=>u.length).map(u=>({id:u.id.toBytes(),multiaddrs:u.multiaddrs.map(f=>f.bytes)})),providers:s.map(this.peerInfoMapper).filter(({multiaddrs:u})=>u.length).map(u=>({id:u.id.toBytes(),multiaddrs:u.multiaddrs.map(f=>f.bytes)}))};return this.log("got %s providers %s closerPeers",c.providers.length,c.closer.length),c}async _getAddresses(t){return[]}async _getPeers(t){let r=[];for(let n of t)try{let i=await this.peerStore.get(n),o=this.peerInfoMapper({id:n,multiaddrs:i.addresses.map(({multiaddr:s})=>s)});o.multiaddrs.length>0&&r.push(o)}catch(i){if(i.code!=="ERR_NOT_FOUND")throw i}return r}};var li=class{peerStore;datastore;peerRouting;log;constructor(t,r){this.log=t.logger.forComponent(`${r.logPrefix}:rpc:handlers:get-value`),this.peerStore=t.peerStore,this.datastore=t.datastore,this.peerRouting=r.peerRouting}async handle(t,r){let n=r.key;if(this.log("%p asked for key %b",t,n),n==null||n.length===0)throw new _("Invalid key","ERR_INVALID_KEY");let i={type:X.GET_VALUE,key:n,clusterLevel:r.clusterLevel,closer:[],providers:[]};if(Ea(n)){this.log("is public key");let a=Sa(n),c;try{let u=await this.peerStore.get(a);if(u.id.publicKey==null)throw new _("No public key found in key book","ERR_NOT_FOUND");c=u.id.publicKey}catch(u){if(u.code!=="ERR_NOT_FOUND")throw u}if(c!=null)return this.log("returning found public key"),i.record=new Lt(n,c,new Date).serialize(),i}let[o,s]=await Promise.all([this._checkLocalDatastore(n),this.peerRouting.getCloserPeersOffline(n,t)]);return o!=null&&(this.log("had record for %b in local datastore",n),i.record=o.serialize()),s.length>0&&(this.log("had %s closer peers in routing table",s.length),i.closer=s.map(a=>({id:a.id.toBytes(),multiaddrs:a.multiaddrs.map(c=>c.bytes)}))),i}async _checkLocalDatastore(t){this.log("checkLocalDatastore looking for %b",t);let r=Je(t),n;try{n=await this.datastore.get(r)}catch(o){if(o.code==="ERR_NOT_FOUND")return;throw o}let i=Lt.deserialize(n);if(i==null)throw new _("Invalid record","ERR_INVALID_RECORD");if(i.timeReceived==null||Date.now()-i.timeReceived.getTime()>1296e5){await this.datastore.delete(r);return}return i}};var hi=class{log;constructor(t,r){this.log=t.logger.forComponent(`${r.logPrefix}:rpc:handlers:ping`)}async handle(t,r){return this.log("ping from %p",t),r}};var di=class{components;validators;log;constructor(t,r){let{validators:n}=r;this.components=t,this.log=t.logger.forComponent(`${r.logPrefix}:rpc:handlers:put-value`),this.validators=n}async handle(t,r){let n=r.key;if(this.log("%p asked us to store value for key %b",t,n),r.record==null){let i=`Empty record from: ${t.toString()}`;throw this.log.error(i),new _(i,"ERR_EMPTY_RECORD")}try{let i=Lt.deserialize(r.record);await pn(this.validators,i),i.timeReceived=new Date;let o=Je(i.key);await this.components.datastore.put(o,i.serialize().subarray()),this.log("put record for %b into datastore under key %k",n,o)}catch(i){this.log("did not put record for key %b into datastore %o",n,i)}return r}};var pi=class{handlers;routingTable;log;constructor(t,r){let{providers:n,peerRouting:i,validators:o,logPrefix:s,peerInfoMapper:a}=r;this.log=t.logger.forComponent(`${s}:rpc`),this.routingTable=r.routingTable,this.handlers={[X.GET_VALUE.toString()]:new li(t,{peerRouting:i,logPrefix:s}),[X.PUT_VALUE.toString()]:new di(t,{validators:o,logPrefix:s}),[X.FIND_NODE.toString()]:new ui(t,{peerRouting:i,logPrefix:s,peerInfoMapper:a}),[X.ADD_PROVIDER.toString()]:new ci(t,{providers:n,logPrefix:s}),[X.GET_PROVIDERS.toString()]:new fi(t,{peerRouting:i,providers:n,logPrefix:s,peerInfoMapper:a}),[X.PING.toString()]:new hi(t,{logPrefix:s})}}async handleMessage(t,r){try{await this.routingTable.add(t)}catch(i){this.log.error("Failed to update the kbucket store",i)}let n=this.handlers[r.type];if(n==null){this.log.error(`no handler found for message type: ${r.type}`);return}return n.handle(t,r)}onIncomingStream(t){Promise.resolve().then(async()=>{let{stream:r,connection:n}=t,i=n.remotePeer;try{await this.routingTable.add(i)}catch(s){this.log.error(s)}let o=this;await dr(r,s=>i0(s),async function*(s){for await(let a of s){let c=ue.decode(a);o.log("incoming %s from %p",c.type,i);let u=await o.handleMessage(i,c);u!=null&&(yield ue.encode(u))}},s=>Ur(s),r)}).catch(r=>{this.log.error(r)})}};var gi=class extends ee{log;components;protocol;running;registrarId;constructor(t,r){super();let{protocol:n,logPrefix:i}=r;this.components=t,this.log=t.logger.forComponent(`${i}:topology-listener`),this.running=!1,this.protocol=n}isStarted(){return this.running}async start(){this.running||(this.running=!0,this.registrarId=await this.components.registrar.register(this.protocol,{onConnect:t=>{this.log("observed peer %p with protocol %s",t,this.protocol),this.dispatchEvent(new Zt("peer",{detail:t}))}}))}async stop(){this.running=!1,this.registrarId!=null&&(this.components.registrar.unregister(this.registrarId),this.registrarId=void 0)}};async function*z5(e,t,r,n={}){yield*en(e,i=>async()=>{if(i.multiaddrs.length>0)return i;try{return await t.findPeer(i.id,{...n,useCache:!1})}catch(o){r.error("could not find peer",o)}})}var $s=class{dht;peerInfoMapper;peerRouting;log;constructor(t,r,n,i){this.dht=t,this.peerInfoMapper=r,this.peerRouting=n,this.log=i}async provide(t,r={}){await bi(this.dht.provide(t,r))}async*findProviders(t,r={}){let n=this,i=async function*(){for await(let o of n.dht.findProviders(t,r))o.name==="PROVIDER"&&(yield*o.providers)};for await(let o of hr(z5(i(),this.peerRouting,this.log,r)))o!=null&&(o=this.peerInfoMapper(o),o.multiaddrs.length!==0&&(yield o))}async put(t,r,n){await bi(this.dht.put(t,r,n))}async get(t,r){for await(let n of this.dht.get(t,r))if(n.name==="VALUE")return n.value;throw new _("Not found","ERR_NOT_FOUND")}},Gs=class{dht;peerInfoMapper;log;constructor(t,r,n){this.dht=t,this.peerInfoMapper=r,this.log=n}async findPeer(t,r={}){for await(let n of this.dht.findPeer(t,r))if(n.name==="FINAL_PEER"&&this.peerInfoMapper(n.peer).multiaddrs.length>0)return n.peer;throw new _("Not found","ERR_NOT_FOUND")}async*getClosestPeers(t,r={}){let n=this,i=async function*(){for await(let o of n.dht.getClosestPeers(t,r))o.name==="FINAL_PEER"&&(yield o.peer)};for await(let o of hr(z5(i(),this,this.log,r)))o!=null&&(o=this.peerInfoMapper(o),o.multiaddrs.length!==0&&(yield o))}},E9=32,S9=64,yi=class extends ee{protocol;routingTable;providers;network;peerRouting;components;log;running;kBucketSize;clientMode;validators;selectors;queryManager;contentFetching;contentRouting;routingTableRefresh;rpc;topologyListener;querySelf;maxInboundStreams;maxOutboundStreams;dhtContentRouting;dhtPeerRouting;peerInfoMapper;constructor(t,r){super();let{kBucketSize:n,clientMode:i,validators:o,selectors:s,querySelfInterval:a,protocol:c,logPrefix:u,pingTimeout:f,pingConcurrency:l,maxInboundStreams:p,maxOutboundStreams:d,providers:h}=r,g=u??"libp2p:kad-dht";this.running=!1,this.components=t,this.log=t.logger.forComponent(g),this.protocol=c??l2,this.kBucketSize=n??20,this.clientMode=i??!0,this.maxInboundStreams=p??E9,this.maxOutboundStreams=d??S9,this.peerInfoMapper=r.peerInfoMapper??W0,this.routingTable=new oi(t,{kBucketSize:n,pingTimeout:f,pingConcurrency:l,protocol:this.protocol,logPrefix:g}),this.providers=new J1(t,h??{}),this.validators={...X2,...o},this.selectors={...Z2,...s},this.network=new a1(t,{protocol:this.protocol,logPrefix:g});let y=Ct();r.allowQueryWithZeroPeers===!0&&y.resolve(),this.queryManager=new ti(t,{disjointPaths:Math.ceil(this.kBucketSize/2),logPrefix:g,initialQuerySelfHasRun:y,routingTable:this.routingTable}),this.peerRouting=new Z1(t,{routingTable:this.routingTable,network:this.network,validators:this.validators,queryManager:this.queryManager,logPrefix:g}),this.contentFetching=new Z0(t,{validators:this.validators,selectors:this.selectors,peerRouting:this.peerRouting,queryManager:this.queryManager,network:this.network,logPrefix:g}),this.contentRouting=new t1(t,{network:this.network,peerRouting:this.peerRouting,queryManager:this.queryManager,routingTable:this.routingTable,providers:this.providers,logPrefix:g}),this.routingTableRefresh=new ai(t,{peerRouting:this.peerRouting,routingTable:this.routingTable,logPrefix:g}),this.rpc=new pi(t,{routingTable:this.routingTable,providers:this.providers,peerRouting:this.peerRouting,validators:this.validators,logPrefix:g,peerInfoMapper:this.peerInfoMapper}),this.topologyListener=new gi(t,{protocol:this.protocol,logPrefix:g}),this.querySelf=new ri(t,{peerRouting:this.peerRouting,interval:a,initialInterval:r.initialQuerySelfInterval,logPrefix:g,initialQuerySelfHasRun:y,routingTable:this.routingTable}),this.network.addEventListener("peer",m=>{let x=m.detail;this.onPeerConnect(x).catch(v=>{this.log.error("could not add %p to routing table",x.id,v)}),this.dispatchEvent(new Zt("peer",{detail:x}))}),this.topologyListener.addEventListener("peer",m=>{let x=m.detail;Promise.resolve().then(async()=>{let v=await this.components.peerStore.get(x),T={id:x,multiaddrs:v.addresses.map(({multiaddr:E})=>E),protocols:v.protocols};await this.onPeerConnect(T)}).catch(v=>{this.log.error("could not add %p to routing table",x,v)})}),this.dhtPeerRouting=new Gs(this,this.peerInfoMapper,this.log),this.dhtContentRouting=new $s(this,this.peerInfoMapper,this.dhtPeerRouting,this.log),r.clientMode==null&&t.events.addEventListener("self:peer:update",m=>{this.log("received update of self-peer info"),Promise.resolve().then(async()=>{let x=m.detail.peer.addresses.some(({multiaddr:T})=>Aa(T)),v=this.getMode();x&&v==="client"?await this.setMode("server"):v==="server"&&!x&&await this.setMode("client")}).catch(x=>{this.log.error("error setting dht server mode",x)})})}get[i2](){return this.dhtContentRouting}get[a2](){return this.dhtPeerRouting}get[o2](){return this}async onPeerConnect(t){if(this.log("peer %p connected",t.id),t=this.peerInfoMapper(t),t.multiaddrs.length===0){this.log("ignoring %p as there were no valid addresses in %s after filtering",t.id,t.multiaddrs.map(r=>r.toString()));return}try{await this.routingTable.add(t.id)}catch(r){this.log.error("could not add %p to routing table",t.id,r)}}isStarted(){return this.running}getMode(){return this.clientMode?"client":"server"}async setMode(t){await this.components.registrar.unhandle(this.protocol),t==="client"?(this.log("enabling client mode"),this.clientMode=!0):(this.log("enabling server mode"),this.clientMode=!1,await this.components.registrar.handle(this.protocol,this.rpc.onIncomingStream.bind(this.rpc),{maxInboundStreams:this.maxInboundStreams,maxOutboundStreams:this.maxOutboundStreams}))}async start(){this.running=!0,await this.setMode(this.clientMode?"client":"server"),this.querySelf.start(),await Promise.all([this.providers.start(),this.queryManager.start(),this.network.start(),this.routingTable.start(),this.topologyListener.start(),this.routingTableRefresh.start()])}async stop(){this.running=!1,this.querySelf.stop(),await Promise.all([this.providers.stop(),this.queryManager.stop(),this.network.stop(),this.routingTable.stop(),this.routingTableRefresh.stop(),this.topologyListener.stop()])}async*put(t,r,n={}){yield*this.contentFetching.put(t,r,n)}async*get(t,r={}){yield*this.contentFetching.get(t,r)}async*provide(t,r={}){yield*this.contentRouting.provide(t,this.components.addressManager.getAddresses(),r)}async*findProviders(t,r={}){yield*this.contentRouting.findProviders(t,r)}async*findPeer(t,r={}){yield*this.peerRouting.findPeer(t,r)}async*getClosestPeers(t,r={}){yield*this.peerRouting.getClosestPeers(t,r)}async refreshRoutingTable(){this.routingTableRefresh.refreshTable(!0)}};var Ys;(function(e){e[e.SEND_QUERY=0]="SEND_QUERY",e[e.PEER_RESPONSE=1]="PEER_RESPONSE",e[e.FINAL_PEER=2]="FINAL_PEER",e[e.QUERY_ERROR=3]="QUERY_ERROR",e[e.PROVIDER=4]="PROVIDER",e[e.VALUE=5]="VALUE",e[e.ADD_PEER=6]="ADD_PEER",e[e.DIAL_PEER=7]="DIAL_PEER"})(Ys||(Ys={}));var Qs;(function(e){e[e.PUT_VALUE=0]="PUT_VALUE",e[e.GET_VALUE=1]="GET_VALUE",e[e.ADD_PROVIDER=2]="ADD_PROVIDER",e[e.GET_PROVIDERS=3]="GET_PROVIDERS",e[e.FIND_NODE=4]="FIND_NODE",e[e.PING=5]="PING"})(Qs||(Qs={}));function I9(e){return t=>new yi(t,e)}return n8(A9);})();
|
|
26
|
+
`.replace(/\s*\/\/.*$/gm,"").replace(/\n/g,"").trim(),l6=new RegExp(`(?:^${ye}$)|(?:^${k0}$)`),h6=new RegExp(`^${ye}$`),d6=new RegExp(`^${k0}$`),Wi=e=>e&&e.exact?l6:new RegExp(`(?:${hr(e)}${ye}${hr(e)})|(?:${hr(e)}${k0}${hr(e)})`,"g");Wi.v4=e=>e&&e.exact?h6:new RegExp(`${hr(e)}${ye}${hr(e)}`,"g");Wi.v6=e=>e&&e.exact?d6:new RegExp(`${hr(e)}${k0}${hr(e)}`,"g");var F2=Wi;var O0=class{index=0;input="";new(t){return this.index=0,this.input=t,this}readAtomically(t){let r=this.index,n=t();return n===void 0&&(this.index=r),n}parseWith(t){let r=t();if(this.index===this.input.length)return r}peekChar(){if(!(this.index>=this.input.length))return this.input[this.index]}readChar(){if(!(this.index>=this.input.length))return this.input[this.index++]}readGivenChar(t){return this.readAtomically(()=>{let r=this.readChar();if(r===t)return r})}readSeparator(t,r,n){return this.readAtomically(()=>{if(!(r>0&&this.readGivenChar(t)===void 0))return n()})}readNumber(t,r,n,i){return this.readAtomically(()=>{let o=0,s=0,a=this.peekChar();if(a===void 0)return;let c=a==="0",u=2**(8*i)-1;for(;;){let f=this.readAtomically(()=>{let l=this.readChar();if(l===void 0)return;let p=Number.parseInt(l,t);if(!Number.isNaN(p))return p});if(f===void 0)break;if(o*=t,o+=f,o>u||(s+=1,r!==void 0&&s>r))return}if(s!==0)return!n&&c&&s>1?void 0:o})}readIPv4Addr(){return this.readAtomically(()=>{let t=new Uint8Array(4);for(let r=0;r<t.length;r++){let n=this.readSeparator(".",r,()=>this.readNumber(10,3,!1,1));if(n===void 0)return;t[r]=n}return t})}readIPv6Addr(){let t=r=>{for(let n=0;n<r.length/2;n++){let i=n*2;if(n<r.length-3){let s=this.readSeparator(":",n,()=>this.readIPv4Addr());if(s!==void 0)return r[i]=s[0],r[i+1]=s[1],r[i+2]=s[2],r[i+3]=s[3],[i+4,!0]}let o=this.readSeparator(":",n,()=>this.readNumber(16,4,!0,2));if(o===void 0)return[i,!1];r[i]=o>>8,r[i+1]=o&255}return[r.length,!1]};return this.readAtomically(()=>{let r=new Uint8Array(16),[n,i]=t(r);if(n===16)return r;if(i||this.readGivenChar(":")===void 0||this.readGivenChar(":")===void 0)return;let o=new Uint8Array(14),s=16-(n+2),[a]=t(o.subarray(0,s));return r.set(o.subarray(0,a),16-a),r})}readIPAddr(){return this.readIPv4Addr()??this.readIPv6Addr()}};var M2=45,p6=15,hn=new O0;function Zi(e){if(!(e.length>p6))return hn.new(e).parseWith(()=>hn.readIPv4Addr())}function Xi(e){if(e.includes("%")&&(e=e.split("%")[0]),!(e.length>M2))return hn.new(e).parseWith(()=>hn.readIPv6Addr())}function U0(e){if(e.includes("%")&&(e=e.split("%")[0]),!(e.length>M2))return hn.new(e).parseWith(()=>hn.readIPAddr())}function K2(e){return!!Zi(e)}function V2(e){return!!Xi(e)}function dn(e){return!!U0(e)}var G2=St(z2(),1),{isValid:y6,parse:g6}=G2.default,m6=["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"],x6=m6.map(e=>new $2.Netmask(e));function v6(e){for(let t of x6)if(t.contains(e))return!0;return!1}function H2(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)}var Y2=e=>{if(y6(e)){let t=g6(e);if(t.kind()==="ipv4")return v6(t.toNormalizedString());if(t.kind()==="ipv6")return H2(e)}else if(dn(e)&&F2.v6().test(e))return H2(e)};var M0=Y2;function At(e,t){if(globalThis.Buffer!=null)return Ce(globalThis.Buffer.concat(e,t));t==null&&(t=e.reduce((i,o)=>i+o.length,0));let r=re(t),n=0;for(let i of e)r.set(i,n),n+=i.length;return Ce(r)}var b6=ht("/pk/");function K0(e){return{...e,multiaddrs:e.multiaddrs.filter(t=>{let[[r,n]]=t.stringTuples();if(r===53||r===54||r===55)return n!=="localhost";if(r!==4&&r!==6||n==null)return!1;let i=M0(n);return i==null?!0:!i})}}function Q2(e){return{...e,multiaddrs:e.multiaddrs.filter(t=>{let[[r,n]]=t.stringTuples();if(n==="localhost")return!0;if(r!==4&&r!==6||n==null)return!1;let i=M0(n);return i??!1})}}function W2(e){return e}async function dr(e){return(await wt.digest(e)).digest}async function ge(e){return dr(e.toBytes())}function Ge(e){return new ln(`${Qs}/${q(e,"base32")}`,!1)}function Z2(e){return At([b6,e.toBytes()])}function X2(e){return q(e.subarray(0,4))==="/pk/"}function J2(e){return He(e.subarray(4))}function Ji(e,t){let r=new Date;return new kt(e,t,r).serialize()}function j2(e,t=100){let r;return()=>{clearTimeout(r),r=setTimeout(()=>{e()},t)}}var w6=290,E6=54,S6=55,I6=56,A6=4,B6=41;function ta(e){let t=e.stringTuples();for(let r of t)if(r[0]===w6)return!1;if(t[0][0]===E6||t[0][0]===S6||t[0][0]===I6)return!0;if(t[0][0]===A6||t[0][0]===B6){let r=M0(`${t[0][1]}`);return r==null||!r}return!1}var V0=class{log;components;validators;selectors;peerRouting;queryManager;network;constructor(t,r){let{validators:n,selectors:i,peerRouting:o,queryManager:s,network:a,logPrefix:c}=r;this.components=t,this.log=t.logger.forComponent(`${c}:content-fetching`),this.validators=n,this.selectors=i,this.peerRouting=o,this.queryManager=s,this.network=a}async putLocal(t,r){let n=Ge(t);await this.components.datastore.put(n,r)}async getLocal(t){this.log("getLocal %b",t);let r=Ge(t);this.log("fetching record for key %k",r);let n=await this.components.datastore.get(r);this.log("found %k in local datastore",r);let i=kt.deserialize(n);return await an(this.validators,i),i}async*sendCorrectionRecord(t,r,n,i={}){this.log("sendCorrection for %b",t);let o=Ji(t,n);for(let{value:s,from:a}of r){if(pt(s,n)){this.log("record was ok");continue}if(this.components.peerId.equals(a)){try{let f=Ge(t);this.log(`Storing corrected record for key ${f.toString()}`),await this.components.datastore.put(f,o.subarray())}catch(f){this.log.error("Failed error correcting self",f)}continue}let c=!1,u={type:J.PUT_VALUE,key:t,record:o};for await(let f of this.network.sendRequest(a,u,i))f.name==="PEER_RESPONSE"&&f.record!=null&&pt(f.record.value,kt.deserialize(o).value)&&(c=!0),yield f;c||(yield ne({from:a,error:new _("value not put correctly","ERR_PUT_VALUE_INVALID")},i)),this.log.error("Failed error correcting entry")}}async*put(t,r,n={}){this.log("put key %b value %b",t,r);let i=Ji(t,r),o=Ge(t);this.log(`storing record for key ${o.toString()}`),await this.components.datastore.put(o,i.subarray()),yield*ar(this.peerRouting.getClosestPeers(t,{signal:n.signal}),s=>Wr(s,a=>async()=>{if(a.name!=="FINAL_PEER")return[a];let c=[],u={type:J.PUT_VALUE,key:t,record:i};this.log("send put to %p",a.peer.id);for await(let f of this.network.sendRequest(a.peer.id,u,n))c.push(f),f.name==="PEER_RESPONSE"&&(f.record!=null&&pt(f.record.value,kt.deserialize(i).value)||c.push(ne({from:a.peer.id,error:new _("value not put correctly","ERR_PUT_VALUE_INVALID")},n)));return c}),s=>sr(s,{ordered:!1,concurrency:3}),async function*(s){for await(let a of s)yield*a})}async*get(t,r={}){this.log("get %b",t);let n=[];for await(let a of this.getMany(t,r))a.name==="VALUE"&&n.push(a),yield a;if(n.length===0)return;let i=n.map(a=>a.value),o=0;try{o=R2(this.selectors,t,i)}catch(a){if(a.code!=="ERR_NO_SELECTOR_FUNCTION_FOR_RECORD_KEY")throw a}let s=i[o];if(this.log("GetValue %b %b",t,s),s==null)throw new _("best value was not found","ERR_NOT_FOUND");yield*this.sendCorrectionRecord(t,n,s,r),yield n[o]}async*getMany(t,r={}){this.log("getMany values for %b",t);try{let o=await this.getLocal(t);yield Hn({value:o.value,from:this.components.peerId},r)}catch(o){this.log("error getting local value for %b",t,o)}let n=this,i=async function*({peer:o,signal:s}){for await(let a of n.peerRouting.getValueOrPeers(o,t,{signal:s}))yield a,a.name==="PEER_RESPONSE"&&a.record!=null&&(yield Hn({from:o,value:a.record.value},r))};yield*this.queryManager.run(t,i,r)}};function _r(e,t){let r={[Symbol.iterator]:()=>r,next:()=>{let n=e.next(),i=n.value;return n.done===!0||i==null?{done:!0,value:void 0}:{done:!1,value:t(i)}}};return r}var yn=class{map;constructor(t){if(this.map=new Map,t!=null)for(let[r,n]of t.entries())this.map.set(r.toString(),n)}[Symbol.iterator](){return this.entries()}clear(){this.map.clear()}delete(t){return this.map.delete(t.toString())}entries(){return _r(this.map.entries(),t=>[ce(t[0]),t[1]])}forEach(t){this.map.forEach((r,n)=>{t(r,ce(n),this)})}get(t){return this.map.get(t.toString())}has(t){return this.map.has(t.toString())}set(t,r){this.map.set(t.toString(),r)}keys(){return _r(this.map.keys(),t=>ce(t))}values(){return this.map.values()}get size(){return this.map.size}};var me=class e{set;constructor(t){if(this.set=new Set,t!=null)for(let r of t)this.set.add(r.toString())}get size(){return this.set.size}[Symbol.iterator](){return this.values()}add(t){this.set.add(t.toString())}clear(){this.set.clear()}delete(t){this.set.delete(t.toString())}entries(){return _r(this.set.entries(),t=>{let r=ce(t[0]);return[r,r]})}forEach(t){this.set.forEach(r=>{let n=ce(r);t(n,n,this)})}has(t){return this.set.has(t.toString())}values(){return _r(this.set.values(),t=>ce(t))}intersection(t){let r=new e;for(let n of t)this.has(n)&&r.add(n);return r}difference(t){let r=new e;for(let n of this)t.has(n)||r.add(n);return r}union(t){let r=new e;for(let n of t)r.add(n);for(let n of this)r.add(n);return r}};var C6=Math.pow(2,7),R6=Math.pow(2,14),_6=Math.pow(2,21),to=Math.pow(2,28),eo=Math.pow(2,35),ro=Math.pow(2,42),no=Math.pow(2,49),ot=128,$t=127;function Gt(e){if(e<C6)return 1;if(e<R6)return 2;if(e<_6)return 3;if(e<to)return 4;if(e<eo)return 5;if(e<ro)return 6;if(e<no)return 7;if(Number.MAX_SAFE_INTEGER!=null&&e>Number.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return 8}function P6(e,t,r=0){switch(Gt(e)){case 8:t[r++]=e&255|ot,e/=128;case 7:t[r++]=e&255|ot,e/=128;case 6:t[r++]=e&255|ot,e/=128;case 5:t[r++]=e&255|ot,e/=128;case 4:t[r++]=e&255|ot,e>>>=7;case 3:t[r++]=e&255|ot,e>>>=7;case 2:t[r++]=e&255|ot,e>>>=7;case 1:{t[r++]=e&255,e>>>=7;break}default:throw new Error("unreachable")}return t}function L6(e,t,r=0){switch(Gt(e)){case 8:t.set(r++,e&255|ot),e/=128;case 7:t.set(r++,e&255|ot),e/=128;case 6:t.set(r++,e&255|ot),e/=128;case 5:t.set(r++,e&255|ot),e/=128;case 4:t.set(r++,e&255|ot),e>>>=7;case 3:t.set(r++,e&255|ot),e>>>=7;case 2:t.set(r++,e&255|ot),e>>>=7;case 1:{t.set(r++,e&255),e>>>=7;break}default:throw new Error("unreachable")}return t}function N6(e,t){let r=e[t],n=0;if(n+=r&$t,r<ot||(r=e[t+1],n+=(r&$t)<<7,r<ot)||(r=e[t+2],n+=(r&$t)<<14,r<ot)||(r=e[t+3],n+=(r&$t)<<21,r<ot)||(r=e[t+4],n+=(r&$t)*to,r<ot)||(r=e[t+5],n+=(r&$t)*eo,r<ot)||(r=e[t+6],n+=(r&$t)*ro,r<ot)||(r=e[t+7],n+=(r&$t)*no,r<ot))return n;throw new RangeError("Could not decode varint")}function D6(e,t){let r=e.get(t),n=0;if(n+=r&$t,r<ot||(r=e.get(t+1),n+=(r&$t)<<7,r<ot)||(r=e.get(t+2),n+=(r&$t)<<14,r<ot)||(r=e.get(t+3),n+=(r&$t)<<21,r<ot)||(r=e.get(t+4),n+=(r&$t)*to,r<ot)||(r=e.get(t+5),n+=(r&$t)*eo,r<ot)||(r=e.get(t+6),n+=(r&$t)*ro,r<ot)||(r=e.get(t+7),n+=(r&$t)*no,r<ot))return n;throw new RangeError("Could not decode varint")}function Le(e,t,r=0){return t==null&&(t=re(Gt(e))),t instanceof Uint8Array?P6(e,t,r):L6(e,t,r)}function ie(e,t=0){return e instanceof Uint8Array?N6(e,t):D6(e,t)}var Ty=parseInt("0xFFFF",16),Cy=new Uint8Array([0,0,0,0,0,0,0,0,0,0,255,255]);var na=K2,M6=V2,io=function(e){let t=0;if(e=e.toString().trim(),na(e)){let r=new Uint8Array(t+4);return e.split(/\./g).forEach(n=>{r[t++]=parseInt(n,10)&255}),r}if(M6(e)){let r=e.split(":",8),n;for(n=0;n<r.length;n++){let o=na(r[n]),s;o&&(s=io(r[n]),r[n]=q(s.slice(0,2),"base16")),s!=null&&++n<8&&r.splice(n,0,q(s.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++);let o=[n,1];for(n=9-r.length;n>0;n--)o.push("0");r.splice.apply(r,o)}let i=new Uint8Array(t+16);for(n=0;n<r.length;n++){let o=parseInt(r[n],16);i[t++]=o>>8&255,i[t++]=o&255}return i}throw new Error("invalid ip address")},ia=function(e,t=0,r){t=~~t,r=r??e.length-t;let n=new DataView(e.buffer);if(r===4){let i=[];for(let o=0;o<r;o++)i.push(e[t+o]);return i.join(".")}if(r===16){let i=[];for(let o=0;o<r;o+=2)i.push(n.getUint16(t+o).toString(16));return i.join(":").replace(/(^|:)0(:0)*:0(:|$)/,"$1::$3").replace(/:{3,4}/,"::")}return""};var mn={},oo={},V6=[[4,32,"ip4"],[6,16,"tcp"],[33,16,"dccp"],[41,128,"ip6"],[42,-1,"ip6zone"],[43,8,"ipcidr"],[53,-1,"dns",!0],[54,-1,"dns4",!0],[55,-1,"dns6",!0],[56,-1,"dnsaddr",!0],[132,16,"sctp"],[273,16,"udp"],[275,0,"p2p-webrtc-star"],[276,0,"p2p-webrtc-direct"],[277,0,"p2p-stardust"],[280,0,"webrtc-direct"],[281,0,"webrtc"],[290,0,"p2p-circuit"],[301,0,"udt"],[302,0,"utp"],[400,-1,"unix",!1,!0],[421,-1,"ipfs"],[421,-1,"p2p"],[443,0,"https"],[444,96,"onion"],[445,296,"onion3"],[446,-1,"garlic64"],[448,0,"tls"],[449,-1,"sni"],[460,0,"quic"],[461,0,"quic-v1"],[465,0,"webtransport"],[466,-1,"certhash"],[477,0,"ws"],[478,0,"wss"],[479,0,"p2p-websocket-star"],[480,0,"http"],[777,-1,"memory"]];V6.forEach(e=>{let t=q6(...e);oo[t.code]=t,mn[t.name]=t});function q6(e,t,r,n,i){return{code:e,size:t,name:r,resolvable:!!n,path:!!i}}function ct(e){if(typeof e=="number"){if(oo[e]!=null)return oo[e];throw new Error(`no protocol with code: ${e}`)}else if(typeof e=="string"){if(mn[e]!=null)return mn[e];throw new Error(`no protocol with name: ${e}`)}throw new Error(`invalid protocol id type: ${typeof e}`)}var ug=ct("ip4"),fg=ct("ip6"),lg=ct("ipcidr");function ao(e,t){switch(ct(e).code){case 4:case 41:return H6(t);case 42:return aa(t);case 6:case 273:case 33:case 132:return ua(t).toString();case 53:case 54:case 55:case 56:case 400:case 449:case 777:return aa(t);case 421:return Q6(t);case 444:return ca(t);case 445:return ca(t);case 466:return Y6(t);default:return q(t,"base16")}}function co(e,t){switch(ct(e).code){case 4:return oa(t);case 41:return oa(t);case 42:return sa(t);case 6:case 273:case 33:case 132:return uo(parseInt(t,10));case 53:case 54:case 55:case 56:case 400:case 449:case 777:return sa(t);case 421:return $6(t);case 444:return W6(t);case 445:return Z6(t);case 466:return G6(t);default:return ht(t,"base16")}}var so=Object.values(lr).map(e=>e.decoder),z6=function(){let e=so[0].or(so[1]);return so.slice(2).forEach(t=>e=e.or(t)),e}();function oa(e){if(!dn(e))throw new Error("invalid ip address");return io(e)}function H6(e){let t=ia(e,0,e.length);if(t==null)throw new Error("ipBuff is required");if(!dn(t))throw new Error("invalid ip address");return t}function uo(e){let t=new ArrayBuffer(2);return new DataView(t).setUint16(0,e),new Uint8Array(t)}function ua(e){return new DataView(e.buffer).getUint16(e.byteOffset)}function sa(e){let t=ht(e),r=Uint8Array.from(Le(t.length));return At([r,t],r.length+t.length)}function aa(e){let t=ie(e);if(e=e.slice(Gt(t)),e.length!==t)throw new Error("inconsistent lengths");return q(e)}function $6(e){let t;e[0]==="Q"||e[0]==="1"?t=Tr(Dt.decode(`z${e}`)).bytes:t=Wt.parse(e).multihash.bytes;let r=Uint8Array.from(Le(t.length));return At([r,t],r.length+t.length)}function G6(e){let t=z6.decode(e),r=Uint8Array.from(Le(t.length));return At([r,t],r.length+t.length)}function Y6(e){let t=ie(e),r=e.slice(Gt(t));if(r.length!==t)throw new Error("inconsistent lengths");return"u"+q(r,"base64url")}function Q6(e){let t=ie(e),r=e.slice(Gt(t));if(r.length!==t)throw new Error("inconsistent lengths");return q(r,"base58btc")}function W6(e){let t=e.split(":");if(t.length!==2)throw new Error(`failed to parse onion addr: ["'${t.join('", "')}'"]' does not contain a port number`);if(t[0].length!==16)throw new Error(`failed to parse onion addr: ${t[0]} not a Tor onion address.`);let r=ze.decode("b"+t[0]),n=parseInt(t[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let i=uo(n);return At([r,i],r.length+i.length)}function Z6(e){let t=e.split(":");if(t.length!==2)throw new Error(`failed to parse onion addr: ["'${t.join('", "')}'"]' does not contain a port number`);if(t[0].length!==56)throw new Error(`failed to parse onion addr: ${t[0]} not a Tor onion3 address.`);let r=ze.decode(`b${t[0]}`),n=parseInt(t[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let i=uo(n);return At([r,i],r.length+i.length)}function ca(e){let t=e.slice(0,e.length-2),r=e.slice(e.length-2),n=q(t,"base32"),i=ua(r);return`${n}:${i}`}function fa(e){e=fo(e);let t=[],r=[],n=null,i=e.split("/").slice(1);if(i.length===1&&i[0]==="")return{bytes:new Uint8Array,string:"/",tuples:[],stringTuples:[],path:null};for(let o=0;o<i.length;o++){let s=i[o],a=ct(s);if(a.size===0){t.push([a.code]),r.push([a.code]);continue}if(o++,o>=i.length)throw ha("invalid address: "+e);if(a.path===!0){n=fo(i.slice(o).join("/")),t.push([a.code,co(a.code,n)]),r.push([a.code,n]);break}let c=co(a.code,i[o]);t.push([a.code,c]),r.push([a.code,ao(a.code,c)])}return{string:la(r),bytes:ho(t),tuples:t,stringTuples:r,path:n}}function lo(e){let t=[],r=[],n=null,i=0;for(;i<e.length;){let o=ie(e,i),s=Gt(o),a=ct(o),c=X6(a,e.slice(i+s));if(c===0){t.push([o]),r.push([o]),i+=s;continue}let u=e.slice(i+s,i+s+c);if(i+=c+s,i>e.length)throw ha("Invalid address Uint8Array: "+q(e,"base16"));t.push([o,u]);let f=ao(o,u);if(r.push([o,f]),a.path===!0){n=f;break}}return{bytes:Uint8Array.from(e),string:la(r),tuples:t,stringTuples:r,path:n}}function la(e){let t=[];return e.map(r=>{let n=ct(r[0]);return t.push(n.name),r.length>1&&r[1]!=null&&t.push(r[1]),null}),fo(t.join("/"))}function ho(e){return At(e.map(t=>{let r=ct(t[0]),n=Uint8Array.from(Le(r.code));return t.length>1&&t[1]!=null&&(n=At([n,t[1]])),n}))}function X6(e,t){if(e.size>0)return e.size/8;if(e.size===0)return 0;{let r=ie(t instanceof Uint8Array?t:Uint8Array.from(t));return r+Gt(r)}}function fo(e){return"/"+e.trim().split("/").filter(t=>t).join("/")}function ha(e){return new Error("Error parsing address: "+e)}var J6=Symbol.for("nodejs.util.inspect.custom"),po=Symbol.for("@multiformats/js-multiaddr/multiaddr"),j6=[ct("dns").code,ct("dns4").code,ct("dns6").code,ct("dnsaddr").code],q0=class e{bytes;#t;#o;#i;#a;[po]=!0;constructor(t){t==null&&(t="");let r;if(t instanceof Uint8Array)r=lo(t);else if(typeof t=="string"){if(t.length>0&&t.charAt(0)!=="/")throw new Error(`multiaddr "${t}" must start with a "/"`);r=fa(t)}else if(pa(t))r=lo(t.bytes);else throw new Error("addr must be a string, Buffer, or another Multiaddr");this.bytes=r.bytes,this.#t=r.string,this.#o=r.tuples,this.#i=r.stringTuples,this.#a=r.path}toString(){return this.#t}toJSON(){return this.toString()}toOptions(){let t,r,n,i,o="",s=ct("tcp"),a=ct("udp"),c=ct("ip4"),u=ct("ip6"),f=ct("dns6"),l=ct("ip6zone");for(let[d,h]of this.stringTuples())d===l.code&&(o=`%${h??""}`),j6.includes(d)&&(r=s.name,i=443,n=`${h??""}${o}`,t=d===f.code?6:4),(d===s.code||d===a.code)&&(r=ct(d).name,i=parseInt(h??"")),(d===c.code||d===u.code)&&(r=ct(d).name,n=`${h??""}${o}`,t=d===u.code?6:4);if(t==null||r==null||n==null||i==null)throw new Error('multiaddr must have a valid format: "/{ip4, ip6, dns4, dns6, dnsaddr}/{address}/{tcp, udp}/{port}".');return{family:t,host:n,transport:r,port:i}}protos(){return this.#o.map(([t])=>Object.assign({},ct(t)))}protoCodes(){return this.#o.map(([t])=>t)}protoNames(){return this.#o.map(([t])=>ct(t).name)}tuples(){return this.#o}stringTuples(){return this.#i}encapsulate(t){return t=new e(t),new e(this.toString()+t.toString())}decapsulate(t){let r=t.toString(),n=this.toString(),i=n.lastIndexOf(r);if(i<0)throw new Error(`Address ${this.toString()} does not contain subaddress: ${t.toString()}`);return new e(n.slice(0,i))}decapsulateCode(t){let r=this.tuples();for(let n=r.length-1;n>=0;n--)if(r[n][0]===t)return new e(ho(r.slice(0,n)));return this}getPeerId(){try{let t=[];this.stringTuples().forEach(([n,i])=>{n===mn.p2p.code&&t.push([n,i]),n===mn["p2p-circuit"].code&&(t=[])});let r=t.pop();if(r?.[1]!=null){let n=r[1];return n[0]==="Q"||n[0]==="1"?q(Dt.decode(`z${n}`),"base58btc"):q(Wt.parse(n).multihash.bytes,"base58btc")}return null}catch{return null}}getPath(){return this.#a}equals(t){return pt(this.bytes,t.bytes)}async resolve(t){let r=this.protos().find(o=>o.resolvable);if(r==null)return[this];let n=da.get(r.name);if(n==null)throw new _(`no available resolver for ${r.name}`,"ERR_NO_AVAILABLE_RESOLVER");return(await n(this,t)).map(o=>new e(o))}nodeAddress(){let t=this.toOptions();if(t.transport!=="tcp"&&t.transport!=="udp")throw new Error(`multiaddr must have a valid format - no protocol with name: "${t.transport}". Must have a valid transport protocol: "{tcp, udp}"`);return{family:t.family,address:t.host,port:t.port}}isThinWaistAddress(t){let r=(t??this).protos();return!(r.length!==2||r[0].code!==4&&r[0].code!==41||r[1].code!==6&&r[1].code!==273)}[J6](){return`Multiaddr(${this.#t})`}};var da=new Map;function pa(e){return!!e?.[po]}function Qn(e){return new q0(e)}function ya(e,t){return{id:e.id.toBytes(),multiaddrs:(e.multiaddrs??[]).map(n=>n.bytes),connection:t}}function Wn(e){if(e.id==null)throw new Error("Invalid peer in message");return{id:He(e.id),multiaddrs:(e.multiaddrs??[]).map(t=>Qn(t))}}var z0=class{log;components;network;peerRouting;queryManager;routingTable;providers;constructor(t,r){let{network:n,peerRouting:i,queryManager:o,routingTable:s,providers:a,logPrefix:c}=r;this.components=t,this.log=t.logger.forComponent(`${c}:content-routing`),this.network=n,this.peerRouting=i,this.queryManager=o,this.routingTable=s,this.providers=a}async*provide(t,r,n={}){this.log("provide %s",t),await this.providers.addProvider(t,this.components.peerId);let i={type:J.ADD_PROVIDER,key:t.multihash.bytes,providers:[ya({id:this.components.peerId,multiaddrs:r})]},o=0,s=a=>async()=>{if(a.name!=="FINAL_PEER")return[a];let c=[];this.log("putProvider %s to %p",t,a.peer.id);try{this.log("sending provider record for %s to %p",t,a.peer.id);for await(let u of this.network.sendMessage(a.peer.id,i,n))u.name==="PEER_RESPONSE"&&(this.log("sent provider record for %s to %p",t,a.peer.id),o++),c.push(u)}catch(u){this.log.error("error sending provide record to peer %p",a.peer.id,u),c.push(ne({from:a.peer.id,error:u},n))}return c};yield*ar(this.peerRouting.getClosestPeers(t.multihash.bytes,n),a=>Wr(a,c=>s(c)),a=>sr(a,{ordered:!1,concurrency:3}),async function*(a){for await(let c of a)yield*c}),this.log("sent provider records to %d peers",o)}async*findProviders(t,r){let n=this.routingTable.kBucketSize,i=t.multihash.bytes,o=this;this.log("findProviders %c",t);let s=await this.providers.getProviders(t);if(s.length>0){let u=[];for(let f of s.slice(0,n))try{let l=await this.components.peerStore.get(f);u.push({id:f,multiaddrs:l.addresses.map(({multiaddr:p})=>p)})}catch(l){if(l.code!=="ERR_NOT_FOUND")throw l;this.log("no peer store entry for %p",f)}yield zn({from:this.components.peerId,messageType:J.GET_PROVIDERS,providers:u},r),yield $i({from:this.components.peerId,providers:u},r)}if(s.length>=n)return;let a=async function*({peer:u,signal:f}){let l={type:J.GET_PROVIDERS,key:i};yield*o.network.sendRequest(u,l,{...r,signal:f})},c=new me(s);for await(let u of this.queryManager.run(i,a,r))if(yield u,u.name==="PEER_RESPONSE"){this.log("Found %d provider entries for %c and %d closer peers",u.providers.length,t,u.closer.length);let f=[];for(let l of u.providers)c.has(l.id)||(c.add(l.id),f.push(l));if(f.length>0&&(yield $i({from:u.from,providers:f},r)),c.size===n)return}}};function Zn(e){return globalThis.Buffer!=null?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):e}function Ye(e=0){return globalThis.Buffer?.alloc!=null?Zn(globalThis.Buffer.alloc(e)):new Uint8Array(e)}function Xn(e=0){return globalThis.Buffer?.allocUnsafe!=null?Zn(globalThis.Buffer.allocUnsafe(e)):new Uint8Array(e)}function yo(e,t){t==null&&(t=e.reduce((i,o)=>i+o.length,0));let r=Xn(t),n=0;for(let i of e)r.set(i,n),n+=i.length;return Zn(r)}function ga(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 xa=Symbol.for("@achingbrain/uint8arraylist");function ma(e,t){if(t==null||t<0)throw new RangeError("index is out of bounds");let r=0;for(let n of e){let i=r+n.byteLength;if(t<i)return{buf:n,index:t-r};r=i}throw new RangeError("index is out of bounds")}function H0(e){return!!e?.[xa]}var ue=class e{bufs;length;[xa]=!0;constructor(...t){this.bufs=[],this.length=0,t.length>0&&this.appendAll(t)}*[Symbol.iterator](){yield*this.bufs}get byteLength(){return this.length}append(...t){this.appendAll(t)}appendAll(t){let r=0;for(let n of t)if(n instanceof Uint8Array)r+=n.byteLength,this.bufs.push(n);else if(H0(n))r+=n.byteLength,this.bufs.push(...n.bufs);else throw new Error("Could not append value, must be an Uint8Array or a Uint8ArrayList");this.length+=r}prepend(...t){this.prependAll(t)}prependAll(t){let r=0;for(let n of t.reverse())if(n instanceof Uint8Array)r+=n.byteLength,this.bufs.unshift(n);else if(H0(n))r+=n.byteLength,this.bufs.unshift(...n.bufs);else throw new Error("Could not prepend value, must be an Uint8Array or a Uint8ArrayList");this.length+=r}get(t){let r=ma(this.bufs,t);return r.buf[r.index]}set(t,r){let n=ma(this.bufs,t);n.buf[n.index]=r}write(t,r=0){if(t instanceof Uint8Array)for(let n=0;n<t.length;n++)this.set(r+n,t[n]);else if(H0(t))for(let n=0;n<t.length;n++)this.set(r+n,t.get(n));else throw new Error("Could not write value, must be an Uint8Array or a Uint8ArrayList")}consume(t){if(t=Math.trunc(t),!(Number.isNaN(t)||t<=0)){if(t===this.byteLength){this.bufs=[],this.length=0;return}for(;this.bufs.length>0;)if(t>=this.bufs[0].byteLength)t-=this.bufs[0].byteLength,this.length-=this.bufs[0].byteLength,this.bufs.shift();else{this.bufs[0]=this.bufs[0].subarray(t),this.length-=t;break}}}slice(t,r){let{bufs:n,length:i}=this._subList(t,r);return yo(n,i)}subarray(t,r){let{bufs:n,length:i}=this._subList(t,r);return n.length===1?n[0]:yo(n,i)}sublist(t,r){let{bufs:n,length:i}=this._subList(t,r),o=new e;return o.length=i,o.bufs=[...n],o}_subList(t,r){if(t=t??0,r=r??this.length,t<0&&(t=this.length+t),r<0&&(r=this.length+r),t<0||r>this.length)throw new RangeError("index is out of bounds");if(t===r)return{bufs:[],length:0};if(t===0&&r===this.length)return{bufs:this.bufs,length:this.length};let n=[],i=0;for(let o=0;o<this.bufs.length;o++){let s=this.bufs[o],a=i,c=a+s.byteLength;if(i=c,t>=c)continue;let u=t>=a&&t<c,f=r>a&&r<=c;if(u&&f){if(t===a&&r===c){n.push(s);break}let l=t-a;n.push(s.subarray(l,l+(r-t)));break}if(u){if(t===0){n.push(s);continue}n.push(s.subarray(t-a));continue}if(f){if(r===c){n.push(s);break}n.push(s.subarray(0,r-a));break}n.push(s)}return{bufs:n,length:r-t}}indexOf(t,r=0){if(!H0(t)&&!(t instanceof Uint8Array))throw new TypeError('The "value" argument must be a Uint8ArrayList or Uint8Array');let n=t instanceof Uint8Array?t:t.subarray();if(r=Number(r??0),isNaN(r)&&(r=0),r<0&&(r=this.length+r),r<0&&(r=0),t.length===0)return r>this.length?this.length:r;let i=n.byteLength;if(i===0)throw new TypeError("search must be at least 1 byte long");let o=256,s=new Int32Array(o);for(let l=0;l<o;l++)s[l]=-1;for(let l=0;l<i;l++)s[n[l]]=l;let a=s,c=this.byteLength-n.byteLength,u=n.byteLength-1,f;for(let l=r;l<=c;l+=f){f=0;for(let p=u;p>=0;p--){let d=this.get(l+p);if(n[p]!==d){f=Math.max(1,p-a[d]);break}}if(f===0)return l}return-1}getInt8(t){let r=this.subarray(t,t+1);return new DataView(r.buffer,r.byteOffset,r.byteLength).getInt8(0)}setInt8(t,r){let n=Xn(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setInt8(0,r),this.write(n,t)}getInt16(t,r){let n=this.subarray(t,t+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt16(0,r)}setInt16(t,r,n){let i=Ye(2);new DataView(i.buffer,i.byteOffset,i.byteLength).setInt16(0,r,n),this.write(i,t)}getInt32(t,r){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt32(0,r)}setInt32(t,r,n){let i=Ye(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setInt32(0,r,n),this.write(i,t)}getBigInt64(t,r){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigInt64(0,r)}setBigInt64(t,r,n){let i=Ye(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setBigInt64(0,r,n),this.write(i,t)}getUint8(t){let r=this.subarray(t,t+1);return new DataView(r.buffer,r.byteOffset,r.byteLength).getUint8(0)}setUint8(t,r){let n=Xn(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setUint8(0,r),this.write(n,t)}getUint16(t,r){let n=this.subarray(t,t+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint16(0,r)}setUint16(t,r,n){let i=Ye(2);new DataView(i.buffer,i.byteOffset,i.byteLength).setUint16(0,r,n),this.write(i,t)}getUint32(t,r){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint32(0,r)}setUint32(t,r,n){let i=Ye(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setUint32(0,r,n),this.write(i,t)}getBigUint64(t,r){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigUint64(0,r)}setBigUint64(t,r,n){let i=Ye(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setBigUint64(0,r,n),this.write(i,t)}getFloat32(t,r){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat32(0,r)}setFloat32(t,r,n){let i=Ye(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setFloat32(0,r,n),this.write(i,t)}getFloat64(t,r){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat64(0,r)}setFloat64(t,r,n){let i=Ye(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setFloat64(0,r,n),this.write(i,t)}equals(t){if(t==null||!(t instanceof e)||t.bufs.length!==this.bufs.length)return!1;for(let r=0;r<this.bufs.length;r++)if(!ga(this.bufs[r],t.bufs[r]))return!1;return!0}static fromUint8Arrays(t,r){let n=new e;return n.bufs=t,r==null&&(r=t.reduce((i,o)=>i+o.byteLength,0)),n.length=r,n}};var $0=class extends Error{type;code;constructor(t,r){super(t??"The operation was aborted"),this.type="aborted",this.name="AbortError",this.code=r??"ABORT_ERR"}};async function va(e,t,r){if(t==null)return e;if(t.aborted)return Promise.reject(new $0(r?.errorMessage,r?.errorCode));let n,i=new $0(r?.errorMessage,r?.errorCode);try{return await Promise.race([e,new Promise((o,s)=>{n=()=>{s(i)},t.addEventListener("abort",n)})])}finally{n!=null&&t.removeEventListener("abort",n)}}var go=class{needNext;haveNext;ended;nextResult;constructor(){this.ended=!1,this.needNext=Pt(),this.haveNext=Pt()}[Symbol.asyncIterator](){return this}async next(){if(this.nextResult==null&&await this.haveNext.promise,this.nextResult==null)throw new Error("Have next but next was undefined");let t=this.nextResult;return this.nextResult=void 0,this.needNext.resolve(),this.needNext=Pt(),t}async throw(t){return this.ended=!0,t!=null&&this.haveNext.reject(t),{done:!0,value:void 0}}async return(){let t={done:!0,value:void 0};return await this._push(void 0),t}async push(t,r){await this._push(t,r)}async end(t,r){t!=null?await this.throw(t):await this._push(void 0,r)}async _push(t,r){if(t!=null&&this.ended)throw new Error("Cannot push value onto an ended pushable");this.nextResult!=null&&await this.needNext.promise,t!=null?this.nextResult={done:!1,value:t}:(this.ended=!0,this.nextResult={done:!0,value:void 0}),this.haveNext.resolve(),this.haveNext=Pt(),await va(this.needNext.promise,r?.signal,r)}};function ba(){return new go}var G0=class extends Error{code;constructor(t,r){super(t),this.code=r}},mo=class extends G0{type;constructor(t){super(t,"ABORT_ERR"),this.type="aborted"}};function wa(e,t){let r=ba();e.sink(r).catch(async s=>{await r.end(s)}),e.sink=async s=>{for await(let a of s)await r.push(a);await r.end()};let n=e.source;e.source[Symbol.iterator]!=null?n=e.source[Symbol.iterator]():e.source[Symbol.asyncIterator]!=null&&(n=e.source[Symbol.asyncIterator]());let i=new ue;return{read:async(s,a)=>{a?.signal?.throwIfAborted();let c,u=new Promise((f,l)=>{c=()=>{l(new mo("Read aborted"))},a?.signal?.addEventListener("abort",c)});try{if(s==null){let{done:l,value:p}=await Promise.race([n.next(),u]);return l===!0?new ue:p}for(;i.byteLength<s;){let{value:l,done:p}=await Promise.race([n.next(),u]);if(p===!0)throw new G0("unexpected end of input","ERR_UNEXPECTED_EOF");i.append(l)}let f=i.sublist(0,s);return i.consume(s),f}finally{c!=null&&a?.signal?.removeEventListener("abort",c)}},write:async(s,a)=>{a?.signal?.throwIfAborted(),s instanceof Uint8Array?await r.push(s,a):await r.push(s.subarray(),a)},unwrap:()=>{if(i.byteLength>0){let s=e.source;e.source=async function*(){t?.yieldBytes===!1?yield i:yield*i,yield*s}()}return e}}}function Ea(e){return globalThis.Buffer!=null?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):e}function Sa(e=0){return globalThis.Buffer?.allocUnsafe!=null?Ea(globalThis.Buffer.allocUnsafe(e)):new Uint8Array(e)}function Y0(e){return e[Symbol.asyncIterator]!=null}var Q0=e=>{let t=Gt(e),r=Sa(t);return Le(e,r),Q0.bytes=t,r};Q0.bytes=0;function Pr(e,t){t=t??{};let r=t.lengthEncoder??Q0;function*n(i){let o=r(i.byteLength);o instanceof Uint8Array?yield o:yield*o,i instanceof Uint8Array?yield i:yield*i}return Y0(e)?async function*(){for await(let i of e)yield*n(i)}():function*(){for(let i of e)yield*n(i)}()}Pr.single=(e,t)=>{t=t??{};let r=t.lengthEncoder??Q0;return new ue(r(e.byteLength),e)};var xn=St(Ba(),1);var ec=8,rc=1024*1024*4,Lr;(function(e){e[e.LENGTH=0]="LENGTH",e[e.DATA=1]="DATA"})(Lr||(Lr={}));var xo=e=>{let t=ie(e);return xo.bytes=Gt(t),t};xo.bytes=0;function Jn(e,t){let r=new ue,n=Lr.LENGTH,i=-1,o=t?.lengthDecoder??xo,s=t?.maxLengthLength??ec,a=t?.maxDataLength??rc;function*c(){for(;r.byteLength>0;){if(n===Lr.LENGTH)try{if(i=o(r),i<0)throw(0,xn.default)(new Error("invalid message length"),"ERR_INVALID_MSG_LENGTH");if(i>a)throw(0,xn.default)(new Error("message length too long"),"ERR_MSG_DATA_TOO_LONG");let u=o.bytes;r.consume(u),t?.onLength!=null&&t.onLength(i),n=Lr.DATA}catch(u){if(u instanceof RangeError){if(r.byteLength>s)throw(0,xn.default)(new Error("message length length too long"),"ERR_MSG_LENGTH_TOO_LONG");break}throw u}if(n===Lr.DATA){if(r.byteLength<i)break;let u=r.sublist(0,i);r.consume(i),t?.onData!=null&&t.onData(u),yield u,n=Lr.LENGTH}}}return Y0(e)?async function*(){for await(let u of e)r.append(u),yield*c();if(r.byteLength>0)throw(0,xn.default)(new Error("unexpected end of input"),"ERR_UNEXPECTED_EOF")}():function*(){for(let u of e)r.append(u),yield*c();if(r.byteLength>0)throw(0,xn.default)(new Error("unexpected end of input"),"ERR_UNEXPECTED_EOF")}()}Jn.fromReader=(e,t)=>{let r=1,n=async function*(){for(;;)try{let{done:o,value:s}=await e.next(r);if(o===!0)return;s!=null&&(yield s)}catch(o){if(o.code==="ERR_UNDER_READ")return{done:!0,value:null};throw o}finally{r=1}}();return Jn(n,{...t??{},onLength:o=>{r=o}})};var W0=class extends Error{code;constructor(t,r){super(t),this.code=r}},Ca=e=>ie(e);Ca.bytes=0;function Ra(e,t={}){let r=wa(e,t);return t.maxDataLength!=null&&t.maxLengthLength==null&&(t.maxLengthLength=Gt(t.maxDataLength)),{read:async i=>{let o=-1,s=new ue,a=t?.lengthDecoder??Ca;for(;;){s.append(await r.read(1,i));try{o=a(s)}catch(c){if(c instanceof RangeError)continue;throw c}if(t?.maxLengthLength!=null&&s.byteLength>t.maxLengthLength)throw new W0("message length length too long","ERR_MSG_LENGTH_TOO_LONG");if(o>-1)break}if(t?.maxDataLength!=null&&o>t.maxDataLength)throw new W0("message length too long","ERR_MSG_DATA_TOO_LONG");return r.read(o,i)},write:async(i,o)=>{await r.write(Pr.single(i,t),o)},writeV:async(i,o)=>{let s=new ue(...i.map(a=>Pr.single(a,t)));await r.write(s,o)},unwrap:()=>r.unwrap()}}function jn(e,t){let r=Ra(e,t),n={read:async(i,o)=>{let s=await r.read(o);return i.decode(s)},write:async(i,o,s)=>{await r.write(o.encode(i),s)},writeV:async(i,o,s)=>{await r.writeV(i.map(a=>o.encode(a)),s)},pb:i=>({read:async o=>n.read(i,o),write:async(o,s)=>n.write(o,i,s),writeV:async(o,s)=>n.writeV(o,i,s),unwrap:()=>n}),unwrap:()=>r.unwrap()};return n}var Z0=class extends jt{log;protocol;running;components;constructor(t,r){super();let{protocol:n}=r;this.components=t,this.log=t.logger.forComponent(`${r.logPrefix}:network`),this.running=!1,this.protocol=n}async start(){this.running||(this.running=!0)}async stop(){this.running=!1}isStarted(){return this.running}async*sendRequest(t,r,n={}){if(!this.running)return;let i=r.type;if(i==null)throw new qn("Message type was missing","ERR_INVALID_PARAMETERS");this.log("sending %s to %p",r.type,t),yield Gi({peer:t},n),yield Hi({to:t,type:i},n);let o;try{let a=await(await this.components.connectionManager.openConnection(t,n)).newStream(this.protocol,n),c=await this._writeReadMessage(a,r,n);yield zn({from:t,messageType:c.type,closer:c.closer.map(Wn),providers:c.providers.map(Wn),record:c.record==null?void 0:kt.deserialize(c.record)},n)}catch(s){this.log.error("could not send %s to %p",r.type,t,s),yield ne({from:t,error:s},n)}finally{o!=null&&await o.close()}}async*sendMessage(t,r,n={}){if(!this.running)return;let i=r.type;if(i==null)throw new qn("Message type was missing","ERR_INVALID_PARAMETERS");this.log("sending %s to %p",r.type,t),yield Gi({peer:t},n),yield Hi({to:t,type:i},n);let o;try{let a=await(await this.components.connectionManager.openConnection(t,n)).newStream(this.protocol,n);await this._writeMessage(a,r,n),yield zn({from:t,messageType:i},n)}catch(s){yield ne({from:t,error:s},n)}finally{o!=null&&await o.close()}}async _writeMessage(t,r,n){let i=jn(t);await i.write(r,ae,n),await i.unwrap().close(n)}async _writeReadMessage(t,r,n){let i=jn(t);await i.write(r,ae,n);let o=await i.read(ae,n);return await i.unwrap().close(n),o.closer.forEach(s=>{this.safeDispatchEvent("peer",{detail:Wn(s)})}),o.providers.forEach(s=>{this.safeDispatchEvent("peer",{detail:Wn(s)})}),o}};var Qm=St(e1(),1),fc=St(ut(),1);var Ct={get(e=globalThis){let t=e.crypto;if(t==null||t.subtle==null)throw Object.assign(new Error("Missing Web Crypto API. The most likely cause of this error is that this page is being accessed from an insecure context (i.e. not HTTPS). For more information and possible resolutions see https://github.com/libp2p/js-libp2p/blob/main/packages/crypto/README.md#web-crypto-api"),{code:"ERR_MISSING_WEB_CRYPTO"});return t}};var Ha={SHA1:20,SHA256:32,SHA512:64};var dc={SHA1:"SHA-1",SHA256:"SHA-256",SHA512:"SHA-512"},pc=async(e,t)=>{let r=await Ct.get().subtle.sign({name:"HMAC"},e,t);return new Uint8Array(r,0,r.byteLength)};async function $a(e,t){let r=dc[e],n=await Ct.get().subtle.importKey("raw",t,{name:"HMAC",hash:{name:r}},!1,["sign"]);return{async digest(i){return pc(n,i)},length:Ha[e]}}var D1={};_t(D1,{generateEphemeralKeyPair:()=>I4,generateKeyPair:()=>gl,generateKeyPairFromSeed:()=>ml,importKey:()=>wl,keyStretcher:()=>T4,keysPBM:()=>_n,marshalPrivateKey:()=>bl,marshalPublicKey:()=>vl,supportedKeys:()=>Ke,unmarshalPrivateKey:()=>r5,unmarshalPublicKey:()=>xl});var Qb=St(n0(),1),Wb=St(Y3(),1);var N1=St(ut(),1);var ss={};_t(ss,{Ed25519PrivateKey:()=>Vr,Ed25519PublicKey:()=>u0,generateKeyPair:()=>K7,generateKeyPairFromSeed:()=>os,unmarshalEd25519PrivateKey:()=>F7,unmarshalEd25519PublicKey:()=>M7});var Ix=St(Tt(),1),Ax=St(h1(),1),Q3=St(ut(),1);function be(e,t){let r=Uint8Array.from(e.abs().toByteArray());if(r=r[0]===0?r.subarray(1):r,t!=null){if(r.length>t)throw new Error("byte array longer than desired length");r=At([new Uint8Array(t-r.length),r])}return q(r,"base64url")}function oe(e){let t=g1(e);return new Q3.default.jsbn.BigInteger(q(t,"base16"),16)}function g1(e,t){let r=ht(e,"base64urlpad");if(t!=null){if(r.length>t)throw new Error("byte array longer than desired length");r=At([new Uint8Array(t-r.length),r])}return r}function he(e){return e==null?!1:typeof e.then=="function"&&typeof e.catch=="function"&&typeof e.finally=="function"}function W3(e){if(!Number.isSafeInteger(e)||e<0)throw new Error(`Wrong positive integer: ${e}`)}function Nf(e){return e instanceof Uint8Array||e!=null&&typeof e=="object"&&e.constructor.name==="Uint8Array"}function Vo(e,...t){if(!Nf(e))throw new Error("Expected Uint8Array");if(t.length>0&&!t.includes(e.length))throw new Error(`Expected Uint8Array of length ${t}, not of length=${e.length}`)}function Z3(e){if(typeof e!="function"||typeof e.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");W3(e.outputLen),W3(e.blockLen)}function Sn(e,t=!0){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 X3(e,t){Vo(e);let r=t.outputLen;if(e.length<r)throw new Error(`digestInto() expects output buffer of length at least ${r}`)}var m1=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0;function J3(e){return e instanceof Uint8Array||e!=null&&typeof e=="object"&&e.constructor.name==="Uint8Array"}var x1=e=>new DataView(e.buffer,e.byteOffset,e.byteLength),we=(e,t)=>e<<32-t|e>>>t,Df=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!Df)throw new Error("Non little-endian hardware is not supported");function qo(e){if(typeof e!="string")throw new Error(`utf8ToBytes expected string, got ${typeof e}`);return new Uint8Array(new TextEncoder().encode(e))}function s0(e){if(typeof e=="string"&&(e=qo(e)),!J3(e))throw new Error(`expected Uint8Array, got ${typeof e}`);return e}function v1(...e){let t=0;for(let n=0;n<e.length;n++){let i=e[n];if(!J3(i))throw new Error("Uint8Array expected");t+=i.length}let r=new Uint8Array(t);for(let n=0,i=0;n<e.length;n++){let o=e[n];r.set(o,i),i+=o.length}return r}var In=class{clone(){return this._cloneInto()}},Nx={}.toString;function b1(e){let t=n=>e().update(s0(n)).digest(),r=e();return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=()=>e(),t}function An(e=32){if(m1&&typeof m1.getRandomValues=="function")return m1.getRandomValues(new Uint8Array(e));throw new Error("crypto.getRandomValues must be defined")}function kf(e,t,r,n){if(typeof e.setBigUint64=="function")return e.setBigUint64(t,r,n);let i=BigInt(32),o=BigInt(4294967295),s=Number(r>>i&o),a=Number(r&o),c=n?4:0,u=n?0:4;e.setUint32(t+c,s,n),e.setUint32(t+u,a,n)}var Bn=class extends In{constructor(t,r,n,i){super(),this.blockLen=t,this.outputLen=r,this.padOffset=n,this.isLE=i,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(t),this.view=x1(this.buffer)}update(t){Sn(this);let{view:r,buffer:n,blockLen:i}=this;t=s0(t);let o=t.length;for(let s=0;s<o;){let a=Math.min(i-this.pos,o-s);if(a===i){let c=x1(t);for(;i<=o-s;s+=i)this.process(c,s);continue}n.set(t.subarray(s,s+a),this.pos),this.pos+=a,s+=a,this.pos===i&&(this.process(r,0),this.pos=0)}return this.length+=t.length,this.roundClean(),this}digestInto(t){Sn(this),X3(t,this),this.finished=!0;let{buffer:r,view:n,blockLen:i,isLE:o}=this,{pos:s}=this;r[s++]=128,this.buffer.subarray(s).fill(0),this.padOffset>i-s&&(this.process(n,0),s=0);for(let l=s;l<i;l++)r[l]=0;kf(n,i-8,BigInt(this.length*8),o),this.process(n,0);let a=x1(t),c=this.outputLen;if(c%4)throw new Error("_sha2: outputLen should be aligned to 32bit");let u=c/4,f=this.get();if(u>f.length)throw new Error("_sha2: outputLen bigger than state");for(let l=0;l<u;l++)a.setUint32(4*l,f[l],o)}digest(){let{buffer:t,outputLen:r}=this;this.digestInto(t);let n=t.slice(0,r);return this.destroy(),n}_cloneInto(t){t||(t=new this.constructor),t.set(...this.get());let{blockLen:r,buffer:n,length:i,finished:o,destroyed:s,pos:a}=this;return t.length=i,t.pos=a,t.finished=o,t.destroyed=s,i%r&&t.buffer.set(n),t}};var w1=BigInt(4294967295),zo=BigInt(32);function j3(e,t=!1){return t?{h:Number(e&w1),l:Number(e>>zo&w1)}:{h:Number(e>>zo&w1)|0,l:Number(e&w1)|0}}function Of(e,t=!1){let r=new Uint32Array(e.length),n=new Uint32Array(e.length);for(let i=0;i<e.length;i++){let{h:o,l:s}=j3(e[i],t);[r[i],n[i]]=[o,s]}return[r,n]}var Uf=(e,t)=>BigInt(e>>>0)<<zo|BigInt(t>>>0),Ff=(e,t,r)=>e>>>r,Mf=(e,t,r)=>e<<32-r|t>>>r,Kf=(e,t,r)=>e>>>r|t<<32-r,Vf=(e,t,r)=>e<<32-r|t>>>r,qf=(e,t,r)=>e<<64-r|t>>>r-32,zf=(e,t,r)=>e>>>r-32|t<<64-r,Hf=(e,t)=>t,$f=(e,t)=>e,Gf=(e,t,r)=>e<<r|t>>>32-r,Yf=(e,t,r)=>t<<r|e>>>32-r,Qf=(e,t,r)=>t<<r-32|e>>>64-r,Wf=(e,t,r)=>e<<r-32|t>>>64-r;function Zf(e,t,r,n){let i=(t>>>0)+(n>>>0);return{h:e+r+(i/2**32|0)|0,l:i|0}}var Xf=(e,t,r)=>(e>>>0)+(t>>>0)+(r>>>0),Jf=(e,t,r,n)=>t+r+n+(e/2**32|0)|0,jf=(e,t,r,n)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0),t7=(e,t,r,n,i)=>t+r+n+i+(e/2**32|0)|0,e7=(e,t,r,n,i)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0)+(i>>>0),r7=(e,t,r,n,i,o)=>t+r+n+i+o+(e/2**32|0)|0;var n7={fromBig:j3,split:Of,toBig:Uf,shrSH:Ff,shrSL:Mf,rotrSH:Kf,rotrSL:Vf,rotrBH:qf,rotrBL:zf,rotr32H:Hf,rotr32L:$f,rotlSH:Gf,rotlSL:Yf,rotlBH:Qf,rotlBL:Wf,add:Zf,add3L:Xf,add3H:Jf,add4L:jf,add4H:t7,add5H:r7,add5L:e7},Q=n7;var[i7,o7]=Q.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))),xr=new Uint32Array(80),vr=new Uint32Array(80),Ho=class extends Bn{constructor(){super(128,64,16,!1),this.Ah=1779033703,this.Al=-205731576,this.Bh=-1150833019,this.Bl=-2067093701,this.Ch=1013904242,this.Cl=-23791573,this.Dh=-1521486534,this.Dl=1595750129,this.Eh=1359893119,this.El=-1377402159,this.Fh=-1694144372,this.Fl=725511199,this.Gh=528734635,this.Gl=-79577749,this.Hh=1541459225,this.Hl=327033209}get(){let{Ah:t,Al:r,Bh:n,Bl:i,Ch:o,Cl:s,Dh:a,Dl:c,Eh:u,El:f,Fh:l,Fl:p,Gh:d,Gl:h,Hh:y,Hl:g}=this;return[t,r,n,i,o,s,a,c,u,f,l,p,d,h,y,g]}set(t,r,n,i,o,s,a,c,u,f,l,p,d,h,y,g){this.Ah=t|0,this.Al=r|0,this.Bh=n|0,this.Bl=i|0,this.Ch=o|0,this.Cl=s|0,this.Dh=a|0,this.Dl=c|0,this.Eh=u|0,this.El=f|0,this.Fh=l|0,this.Fl=p|0,this.Gh=d|0,this.Gl=h|0,this.Hh=y|0,this.Hl=g|0}process(t,r){for(let v=0;v<16;v++,r+=4)xr[v]=t.getUint32(r),vr[v]=t.getUint32(r+=4);for(let v=16;v<80;v++){let T=xr[v-15]|0,E=vr[v-15]|0,S=Q.rotrSH(T,E,1)^Q.rotrSH(T,E,8)^Q.shrSH(T,E,7),L=Q.rotrSL(T,E,1)^Q.rotrSL(T,E,8)^Q.shrSL(T,E,7),N=xr[v-2]|0,$=vr[v-2]|0,H=Q.rotrSH(N,$,19)^Q.rotrBH(N,$,61)^Q.shrSH(N,$,6),V=Q.rotrSL(N,$,19)^Q.rotrBL(N,$,61)^Q.shrSL(N,$,6),X=Q.add4L(L,V,vr[v-7],vr[v-16]),ft=Q.add4H(X,S,H,xr[v-7],xr[v-16]);xr[v]=ft|0,vr[v]=X|0}let{Ah:n,Al:i,Bh:o,Bl:s,Ch:a,Cl:c,Dh:u,Dl:f,Eh:l,El:p,Fh:d,Fl:h,Gh:y,Gl:g,Hh:m,Hl:x}=this;for(let v=0;v<80;v++){let T=Q.rotrSH(l,p,14)^Q.rotrSH(l,p,18)^Q.rotrBH(l,p,41),E=Q.rotrSL(l,p,14)^Q.rotrSL(l,p,18)^Q.rotrBL(l,p,41),S=l&d^~l&y,L=p&h^~p&g,N=Q.add5L(x,E,L,o7[v],vr[v]),$=Q.add5H(N,m,T,S,i7[v],xr[v]),H=N|0,V=Q.rotrSH(n,i,28)^Q.rotrBH(n,i,34)^Q.rotrBH(n,i,39),X=Q.rotrSL(n,i,28)^Q.rotrBL(n,i,34)^Q.rotrBL(n,i,39),ft=n&o^n&a^o&a,Kt=i&s^i&c^s&c;m=y|0,x=g|0,y=d|0,g=h|0,d=l|0,h=p|0,{h:l,l:p}=Q.add(u|0,f|0,$|0,H|0),u=a|0,f=c|0,a=o|0,c=s|0,o=n|0,s=i|0;let C=Q.add3L(H,X,Kt);n=Q.add3H(C,$,V,ft),i=C|0}({h:n,l:i}=Q.add(this.Ah|0,this.Al|0,n|0,i|0)),{h:o,l:s}=Q.add(this.Bh|0,this.Bl|0,o|0,s|0),{h:a,l:c}=Q.add(this.Ch|0,this.Cl|0,a|0,c|0),{h:u,l:f}=Q.add(this.Dh|0,this.Dl|0,u|0,f|0),{h:l,l:p}=Q.add(this.Eh|0,this.El|0,l|0,p|0),{h:d,l:h}=Q.add(this.Fh|0,this.Fl|0,d|0,h|0),{h:y,l:g}=Q.add(this.Gh|0,this.Gl|0,y|0,g|0),{h:m,l:x}=Q.add(this.Hh|0,this.Hl|0,m|0,x|0),this.set(n,i,o,s,a,c,u,f,l,p,d,h,y,g,m,x)}roundClean(){xr.fill(0),vr.fill(0)}destroy(){this.buffer.fill(0),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}};var $o=b1(()=>new Ho);var S1={};_t(S1,{bitGet:()=>h7,bitLen:()=>l7,bitMask:()=>a0,bitSet:()=>d7,bytesToHex:()=>Je,bytesToNumberBE:()=>je,bytesToNumberLE:()=>br,concatBytes:()=>tr,createHmacDrbg:()=>Qo,ensureBytes:()=>Bt,equalBytes:()=>u7,hexToBytes:()=>Fr,hexToNumber:()=>Yo,isBytes:()=>Ee,numberToBytesBE:()=>wr,numberToBytesLE:()=>Mr,numberToHexUnpadded:()=>n4,numberToVarBytesBE:()=>c7,utf8ToBytes:()=>f7,validateObject:()=>Me});var r4=BigInt(0),E1=BigInt(1),s7=BigInt(2);function Ee(e){return e instanceof Uint8Array||e!=null&&typeof e=="object"&&e.constructor.name==="Uint8Array"}var a7=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function Je(e){if(!Ee(e))throw new Error("Uint8Array expected");let t="";for(let r=0;r<e.length;r++)t+=a7[e[r]];return t}function n4(e){let t=e.toString(16);return t.length&1?`0${t}`:t}function Yo(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);return BigInt(e===""?"0":`0x${e}`)}var Xe={_0:48,_9:57,_A:65,_F:70,_a:97,_f:102};function t4(e){if(e>=Xe._0&&e<=Xe._9)return e-Xe._0;if(e>=Xe._A&&e<=Xe._F)return e-(Xe._A-10);if(e>=Xe._a&&e<=Xe._f)return e-(Xe._a-10)}function Fr(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);let t=e.length,r=t/2;if(t%2)throw new Error("padded hex string expected, got unpadded hex of length "+t);let n=new Uint8Array(r);for(let i=0,o=0;i<r;i++,o+=2){let s=t4(e.charCodeAt(o)),a=t4(e.charCodeAt(o+1));if(s===void 0||a===void 0){let c=e[o]+e[o+1];throw new Error('hex string expected, got non-hex character "'+c+'" at index '+o)}n[i]=s*16+a}return n}function je(e){return Yo(Je(e))}function br(e){if(!Ee(e))throw new Error("Uint8Array expected");return Yo(Je(Uint8Array.from(e).reverse()))}function wr(e,t){return Fr(e.toString(16).padStart(t*2,"0"))}function Mr(e,t){return wr(e,t).reverse()}function c7(e){return Fr(n4(e))}function Bt(e,t,r){let n;if(typeof t=="string")try{n=Fr(t)}catch(o){throw new Error(`${e} must be valid hex string, got "${t}". Cause: ${o}`)}else if(Ee(t))n=Uint8Array.from(t);else throw new Error(`${e} must be hex string or Uint8Array`);let i=n.length;if(typeof r=="number"&&i!==r)throw new Error(`${e} expected ${r} bytes, got ${i}`);return n}function tr(...e){let t=0;for(let i=0;i<e.length;i++){let o=e[i];if(!Ee(o))throw new Error("Uint8Array expected");t+=o.length}let r=new Uint8Array(t),n=0;for(let i=0;i<e.length;i++){let o=e[i];r.set(o,n),n+=o.length}return r}function u7(e,t){if(e.length!==t.length)return!1;let r=0;for(let n=0;n<e.length;n++)r|=e[n]^t[n];return r===0}function f7(e){if(typeof e!="string")throw new Error(`utf8ToBytes expected string, got ${typeof e}`);return new Uint8Array(new TextEncoder().encode(e))}function l7(e){let t;for(t=0;e>r4;e>>=E1,t+=1);return t}function h7(e,t){return e>>BigInt(t)&E1}var d7=(e,t,r)=>e|(r?E1:r4)<<BigInt(t),a0=e=>(s7<<BigInt(e-1))-E1,Go=e=>new Uint8Array(e),e4=e=>Uint8Array.from(e);function Qo(e,t,r){if(typeof e!="number"||e<2)throw new Error("hashLen must be a number");if(typeof t!="number"||t<2)throw new Error("qByteLen must be a number");if(typeof r!="function")throw new Error("hmacFn must be a function");let n=Go(e),i=Go(e),o=0,s=()=>{n.fill(1),i.fill(0),o=0},a=(...l)=>r(i,n,...l),c=(l=Go())=>{i=a(e4([0]),l),n=a(),l.length!==0&&(i=a(e4([1]),l),n=a())},u=()=>{if(o++>=1e3)throw new Error("drbg: tried 1000 values");let l=0,p=[];for(;l<t;){n=a();let d=n.slice();p.push(d),l+=n.length}return tr(...p)};return(l,p)=>{s(),c(l);let d;for(;!(d=p(u()));)c();return s(),d}}var p7={bigint:e=>typeof e=="bigint",function:e=>typeof e=="function",boolean:e=>typeof e=="boolean",string:e=>typeof e=="string",stringOrUint8Array:e=>typeof e=="string"||Ee(e),isSafeInteger:e=>Number.isSafeInteger(e),array:e=>Array.isArray(e),field:(e,t)=>t.Fp.isValid(e),hash:e=>typeof e=="function"&&Number.isSafeInteger(e.outputLen)};function Me(e,t,r={}){let n=(i,o,s)=>{let a=p7[o];if(typeof a!="function")throw new Error(`Invalid validator "${o}", expected function`);let c=e[i];if(!(s&&c===void 0)&&!a(c,e))throw new Error(`Invalid param ${String(i)}=${c} (${typeof c}), expected ${o}`)};for(let[i,o]of Object.entries(t))n(i,o,!1);for(let[i,o]of Object.entries(r))n(i,o,!0);return e}var Ot=BigInt(0),vt=BigInt(1),Kr=BigInt(2),y7=BigInt(3),Wo=BigInt(4),i4=BigInt(5),o4=BigInt(8),g7=BigInt(9),m7=BigInt(16);function lt(e,t){let r=e%t;return r>=Ot?r:t+r}function x7(e,t,r){if(r<=Ot||t<Ot)throw new Error("Expected power/modulo > 0");if(r===vt)return Ot;let n=vt;for(;t>Ot;)t&vt&&(n=n*e%r),e=e*e%r,t>>=vt;return n}function bt(e,t,r){let n=e;for(;t-- >Ot;)n*=n,n%=r;return n}function I1(e,t){if(e===Ot||t<=Ot)throw new Error(`invert: expected positive integers, got n=${e} mod=${t}`);let r=lt(e,t),n=t,i=Ot,o=vt,s=vt,a=Ot;for(;r!==Ot;){let u=n/r,f=n%r,l=i-s*u,p=o-a*u;n=r,r=f,i=s,o=a,s=l,a=p}if(n!==vt)throw new Error("invert: does not exist");return lt(i,t)}function v7(e){let t=(e-vt)/Kr,r,n,i;for(r=e-vt,n=0;r%Kr===Ot;r/=Kr,n++);for(i=Kr;i<e&&x7(i,t,e)!==e-vt;i++);if(n===1){let s=(e+vt)/Wo;return function(c,u){let f=c.pow(u,s);if(!c.eql(c.sqr(f),u))throw new Error("Cannot find square root");return f}}let o=(r+vt)/Kr;return function(a,c){if(a.pow(c,t)===a.neg(a.ONE))throw new Error("Cannot find square root");let u=n,f=a.pow(a.mul(a.ONE,i),r),l=a.pow(c,o),p=a.pow(c,r);for(;!a.eql(p,a.ONE);){if(a.eql(p,a.ZERO))return a.ZERO;let d=1;for(let y=a.sqr(p);d<u&&!a.eql(y,a.ONE);d++)y=a.sqr(y);let h=a.pow(f,vt<<BigInt(u-d-1));f=a.sqr(h),l=a.mul(l,h),p=a.mul(p,f),u=d}return l}}function b7(e){if(e%Wo===y7){let t=(e+vt)/Wo;return function(n,i){let o=n.pow(i,t);if(!n.eql(n.sqr(o),i))throw new Error("Cannot find square root");return o}}if(e%o4===i4){let t=(e-i4)/o4;return function(n,i){let o=n.mul(i,Kr),s=n.pow(o,t),a=n.mul(i,s),c=n.mul(n.mul(a,Kr),s),u=n.mul(a,n.sub(c,n.ONE));if(!n.eql(n.sqr(u),i))throw new Error("Cannot find square root");return u}}return e%m7,v7(e)}var s4=(e,t)=>(lt(e,t)&vt)===vt,w7=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function Zo(e){let t={ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"},r=w7.reduce((n,i)=>(n[i]="function",n),t);return Me(e,r)}function E7(e,t,r){if(r<Ot)throw new Error("Expected power > 0");if(r===Ot)return e.ONE;if(r===vt)return t;let n=e.ONE,i=t;for(;r>Ot;)r&vt&&(n=e.mul(n,i)),i=e.sqr(i),r>>=vt;return n}function S7(e,t){let r=new Array(t.length),n=t.reduce((o,s,a)=>e.is0(s)?o:(r[a]=o,e.mul(o,s)),e.ONE),i=e.inv(n);return t.reduceRight((o,s,a)=>e.is0(s)?o:(r[a]=e.mul(o,r[a]),e.mul(o,s)),i),r}function Xo(e,t){let r=t!==void 0?t:e.toString(2).length,n=Math.ceil(r/8);return{nBitLength:r,nByteLength:n}}function A1(e,t,r=!1,n={}){if(e<=Ot)throw new Error(`Expected Field ORDER > 0, got ${e}`);let{nBitLength:i,nByteLength:o}=Xo(e,t);if(o>2048)throw new Error("Field lengths over 2048 bytes are not supported");let s=b7(e),a=Object.freeze({ORDER:e,BITS:i,BYTES:o,MASK:a0(i),ZERO:Ot,ONE:vt,create:c=>lt(c,e),isValid:c=>{if(typeof c!="bigint")throw new Error(`Invalid field element: expected bigint, got ${typeof c}`);return Ot<=c&&c<e},is0:c=>c===Ot,isOdd:c=>(c&vt)===vt,neg:c=>lt(-c,e),eql:(c,u)=>c===u,sqr:c=>lt(c*c,e),add:(c,u)=>lt(c+u,e),sub:(c,u)=>lt(c-u,e),mul:(c,u)=>lt(c*u,e),pow:(c,u)=>E7(a,c,u),div:(c,u)=>lt(c*I1(u,e),e),sqrN:c=>c*c,addN:(c,u)=>c+u,subN:(c,u)=>c-u,mulN:(c,u)=>c*u,inv:c=>I1(c,e),sqrt:n.sqrt||(c=>s(a,c)),invertBatch:c=>S7(a,c),cmov:(c,u,f)=>f?u:c,toBytes:c=>r?Mr(c,o):wr(c,o),fromBytes:c=>{if(c.length!==o)throw new Error(`Fp.fromBytes: expected ${o}, got ${c.length}`);return r?br(c):je(c)}});return Object.freeze(a)}function a4(e,t){if(!e.isOdd)throw new Error("Field doesn't have isOdd");let r=e.sqrt(t);return e.isOdd(r)?e.neg(r):r}function c4(e){if(typeof e!="bigint")throw new Error("field order must be bigint");let t=e.toString(2).length;return Math.ceil(t/8)}function Jo(e){let t=c4(e);return t+Math.ceil(t/2)}function u4(e,t,r=!1){let n=e.length,i=c4(t),o=Jo(t);if(n<16||n<o||n>1024)throw new Error(`expected ${o}-1024 bytes of input, got ${n}`);let s=r?je(e):br(e),a=lt(s,t-vt)+vt;return r?Mr(a,i):wr(a,i)}var A7=BigInt(0),jo=BigInt(1);function B1(e,t){let r=(i,o)=>{let s=o.negate();return i?s:o},n=i=>{let o=Math.ceil(t/i)+1,s=2**(i-1);return{windows:o,windowSize:s}};return{constTimeNegate:r,unsafeLadder(i,o){let s=e.ZERO,a=i;for(;o>A7;)o&jo&&(s=s.add(a)),a=a.double(),o>>=jo;return s},precomputeWindow(i,o){let{windows:s,windowSize:a}=n(o),c=[],u=i,f=u;for(let l=0;l<s;l++){f=u,c.push(f);for(let p=1;p<a;p++)f=f.add(u),c.push(f);u=f.double()}return c},wNAF(i,o,s){let{windows:a,windowSize:c}=n(i),u=e.ZERO,f=e.BASE,l=BigInt(2**i-1),p=2**i,d=BigInt(i);for(let h=0;h<a;h++){let y=h*c,g=Number(s&l);s>>=d,g>c&&(g-=p,s+=jo);let m=y,x=y+Math.abs(g)-1,v=h%2!==0,T=g<0;g===0?f=f.add(r(v,o[m])):u=u.add(r(T,o[x]))}return{p:u,f}},wNAFCached(i,o,s,a){let c=i._WINDOW_SIZE||1,u=o.get(i);return u||(u=this.precomputeWindow(i,c),c!==1&&o.set(i,a(u))),this.wNAF(c,u,s)}}}function c0(e){return Zo(e.Fp),Me(e,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...Xo(e.n,e.nBitLength),...e,p:e.Fp.ORDER})}var Se=BigInt(0),se=BigInt(1),T1=BigInt(2),B7=BigInt(8),T7={zip215:!0};function C7(e){let t=c0(e);return Me(e,{hash:"function",a:"bigint",d:"bigint",randomBytes:"function"},{adjustScalarBytes:"function",domain:"function",uvRatio:"function",mapToCurve:"function"}),Object.freeze({...t})}function C1(e){let t=C7(e),{Fp:r,n,prehash:i,hash:o,randomBytes:s,nByteLength:a,h:c}=t,u=T1<<BigInt(a*8)-se,f=r.create,l=t.uvRatio||((D,A)=>{try{return{isValid:!0,value:r.sqrt(D*r.inv(A))}}catch{return{isValid:!1,value:Se}}}),p=t.adjustScalarBytes||(D=>D),d=t.domain||((D,A,F)=>{if(A.length||F)throw new Error("Contexts/pre-hash are not supported");return D}),h=D=>typeof D=="bigint"&&Se<D,y=(D,A)=>h(D)&&h(A)&&D<A,g=D=>D===Se||y(D,u);function m(D,A){if(y(D,A))return D;throw new Error(`Expected valid scalar < ${A}, got ${typeof D} ${D}`)}function x(D){return D===Se?D:m(D,n)}let v=new Map;function T(D){if(!(D instanceof E))throw new Error("ExtendedPoint expected")}class E{constructor(A,F,M,z){if(this.ex=A,this.ey=F,this.ez=M,this.et=z,!g(A))throw new Error("x required");if(!g(F))throw new Error("y required");if(!g(M))throw new Error("z required");if(!g(z))throw new Error("t required")}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static fromAffine(A){if(A instanceof E)throw new Error("extended point not allowed");let{x:F,y:M}=A||{};if(!g(F)||!g(M))throw new Error("invalid affine point");return new E(F,M,se,f(F*M))}static normalizeZ(A){let F=r.invertBatch(A.map(M=>M.ez));return A.map((M,z)=>M.toAffine(F[z])).map(E.fromAffine)}_setWindowSize(A){this._WINDOW_SIZE=A,v.delete(this)}assertValidity(){let{a:A,d:F}=t;if(this.is0())throw new Error("bad point: ZERO");let{ex:M,ey:z,ez:W,et:j}=this,at=f(M*M),tt=f(z*z),nt=f(W*W),Rt=f(nt*nt),Et=f(at*A),Vt=f(nt*f(Et+tt)),qt=f(Rt+f(F*f(at*tt)));if(Vt!==qt)throw new Error("bad point: equation left != right (1)");let Nt=f(M*z),zt=f(W*j);if(Nt!==zt)throw new Error("bad point: equation left != right (2)")}equals(A){T(A);let{ex:F,ey:M,ez:z}=this,{ex:W,ey:j,ez:at}=A,tt=f(F*at),nt=f(W*z),Rt=f(M*at),Et=f(j*z);return tt===nt&&Rt===Et}is0(){return this.equals(E.ZERO)}negate(){return new E(f(-this.ex),this.ey,this.ez,f(-this.et))}double(){let{a:A}=t,{ex:F,ey:M,ez:z}=this,W=f(F*F),j=f(M*M),at=f(T1*f(z*z)),tt=f(A*W),nt=F+M,Rt=f(f(nt*nt)-W-j),Et=tt+j,Vt=Et-at,qt=tt-j,Nt=f(Rt*Vt),zt=f(Et*qt),Ve=f(Rt*qt),Ar=f(Vt*Et);return new E(Nt,zt,Ar,Ve)}add(A){T(A);let{a:F,d:M}=t,{ex:z,ey:W,ez:j,et:at}=this,{ex:tt,ey:nt,ez:Rt,et:Et}=A;if(F===BigInt(-1)){let Ls=f((W-z)*(nt+tt)),Ns=f((W+z)*(nt-tt)),ii=f(Ns-Ls);if(ii===Se)return this.double();let Ds=f(j*T1*Et),ks=f(at*T1*Rt),Os=ks+Ds,Us=Ns+Ls,Fs=ks-Ds,I5=f(Os*ii),A5=f(Us*Fs),B5=f(Os*Fs),T5=f(ii*Us);return new E(I5,A5,T5,B5)}let Vt=f(z*tt),qt=f(W*nt),Nt=f(at*M*Et),zt=f(j*Rt),Ve=f((z+W)*(tt+nt)-Vt-qt),Ar=zt-Nt,Dn=zt+Nt,Ps=f(qt-F*Vt),b5=f(Ve*Ar),w5=f(Dn*Ps),E5=f(Ve*Ps),S5=f(Ar*Dn);return new E(b5,w5,S5,E5)}subtract(A){return this.add(A.negate())}wNAF(A){return N.wNAFCached(this,v,A,E.normalizeZ)}multiply(A){let{p:F,f:M}=this.wNAF(m(A,n));return E.normalizeZ([F,M])[0]}multiplyUnsafe(A){let F=x(A);return F===Se?L:this.equals(L)||F===se?this:this.equals(S)?this.wNAF(F).p:N.unsafeLadder(this,F)}isSmallOrder(){return this.multiplyUnsafe(c).is0()}isTorsionFree(){return N.unsafeLadder(this,n).is0()}toAffine(A){let{ex:F,ey:M,ez:z}=this,W=this.is0();A==null&&(A=W?B7:r.inv(z));let j=f(F*A),at=f(M*A),tt=f(z*A);if(W)return{x:Se,y:se};if(tt!==se)throw new Error("invZ was invalid");return{x:j,y:at}}clearCofactor(){let{h:A}=t;return A===se?this:this.multiplyUnsafe(A)}static fromHex(A,F=!1){let{d:M,a:z}=t,W=r.BYTES;A=Bt("pointHex",A,W);let j=A.slice(),at=A[W-1];j[W-1]=at&-129;let tt=br(j);tt===Se||(F?m(tt,u):m(tt,r.ORDER));let nt=f(tt*tt),Rt=f(nt-se),Et=f(M*nt-z),{isValid:Vt,value:qt}=l(Rt,Et);if(!Vt)throw new Error("Point.fromHex: invalid y coordinate");let Nt=(qt&se)===se,zt=(at&128)!==0;if(!F&&qt===Se&&zt)throw new Error("Point.fromHex: x=0 and x_0=1");return zt!==Nt&&(qt=f(-qt)),E.fromAffine({x:qt,y:tt})}static fromPrivateKey(A){return V(A).point}toRawBytes(){let{x:A,y:F}=this.toAffine(),M=Mr(F,r.BYTES);return M[M.length-1]|=A&se?128:0,M}toHex(){return Je(this.toRawBytes())}}E.BASE=new E(t.Gx,t.Gy,se,f(t.Gx*t.Gy)),E.ZERO=new E(Se,se,se,Se);let{BASE:S,ZERO:L}=E,N=B1(E,a*8);function $(D){return lt(D,n)}function H(D){return $(br(D))}function V(D){let A=a;D=Bt("private key",D,A);let F=Bt("hashed private key",o(D),2*A),M=p(F.slice(0,A)),z=F.slice(A,2*A),W=H(M),j=S.multiply(W),at=j.toRawBytes();return{head:M,prefix:z,scalar:W,point:j,pointBytes:at}}function X(D){return V(D).pointBytes}function ft(D=new Uint8Array,...A){let F=tr(...A);return H(o(d(F,Bt("context",D),!!i)))}function Kt(D,A,F={}){D=Bt("message",D),i&&(D=i(D));let{prefix:M,scalar:z,pointBytes:W}=V(A),j=ft(F.context,M,D),at=S.multiply(j).toRawBytes(),tt=ft(F.context,at,W,D),nt=$(j+tt*z);x(nt);let Rt=tr(at,Mr(nt,r.BYTES));return Bt("result",Rt,a*2)}let C=T7;function k(D,A,F,M=C){let{context:z,zip215:W}=M,j=r.BYTES;D=Bt("signature",D,2*j),A=Bt("message",A),i&&(A=i(A));let at=br(D.slice(j,2*j)),tt,nt,Rt;try{tt=E.fromHex(F,W),nt=E.fromHex(D.slice(0,j),W),Rt=S.multiplyUnsafe(at)}catch{return!1}if(!W&&tt.isSmallOrder())return!1;let Et=ft(z,nt.toRawBytes(),tt.toRawBytes(),A);return nt.add(tt.multiplyUnsafe(Et)).subtract(Rt).clearCofactor().equals(E.ZERO)}return S._setWindowSize(8),{CURVE:t,getPublicKey:X,sign:Kt,verify:k,ExtendedPoint:E,utils:{getExtendedPublicKey:V,randomPrivateKey:()=>s(r.BYTES),precompute(D=8,A=E.BASE){return A._setWindowSize(D),A.multiply(BigInt(3)),A}}}}var es=BigInt("57896044618658097711785492504343953926634992332820282019728792003956564819949"),f4=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752"),ev=BigInt(0),R7=BigInt(1),ts=BigInt(2),_7=BigInt(5),l4=BigInt(10),P7=BigInt(20),L7=BigInt(40),h4=BigInt(80);function N7(e){let t=es,n=e*e%t*e%t,i=bt(n,ts,t)*n%t,o=bt(i,R7,t)*e%t,s=bt(o,_7,t)*o%t,a=bt(s,l4,t)*s%t,c=bt(a,P7,t)*a%t,u=bt(c,L7,t)*c%t,f=bt(u,h4,t)*u%t,l=bt(f,h4,t)*u%t,p=bt(l,l4,t)*s%t;return{pow_p_5_8:bt(p,ts,t)*e%t,b2:n}}function D7(e){return e[0]&=248,e[31]&=127,e[31]|=64,e}function k7(e,t){let r=es,n=lt(t*t*t,r),i=lt(n*n*t,r),o=N7(e*i).pow_p_5_8,s=lt(e*n*o,r),a=lt(t*s*s,r),c=s,u=lt(s*f4,r),f=a===e,l=a===lt(-e,r),p=a===lt(-e*f4,r);return f&&(s=c),(l||p)&&(s=u),s4(s,r)&&(s=lt(-s,r)),{isValid:f||l,value:s}}var er=A1(es,void 0,!0),rs={a:BigInt(-1),d:BigInt("37095705934669439343138083508754565189542113879843219016388785533085940283555"),Fp:er,n:BigInt("7237005577332262213973186563042994240857116359379907606001950938285454250989"),h:BigInt(8),Gx:BigInt("15112221349535400772501151409588531511454012693041857206046113283949847762202"),Gy:BigInt("46316835694926478169428394003475163141307993866256225615783033603165251855960"),hash:$o,randomBytes:An,adjustScalarBytes:D7,uvRatio:k7},Tn=C1(rs);function d4(e,t,r){if(t.length>255)throw new Error("Context is too big");return v1(qo("SigEd25519 no Ed25519 collisions"),new Uint8Array([r?1:0,t.length]),t,e)}var rv=C1({...rs,domain:d4}),nv=C1({...rs,domain:d4,prehash:$o});var O7=(er.ORDER+BigInt(3))/BigInt(8),iv=er.pow(ts,O7),ov=er.sqrt(er.neg(er.ONE)),sv=(er.ORDER-BigInt(5))/BigInt(8),av=BigInt(486662);var cv=a4(er,er.neg(BigInt(486664)));var uv=BigInt("25063068953384623474111414158702152701244531502492656460079210482610430750235"),fv=BigInt("54469307008909316920995813868745141605393597292927456921205312896311721017578"),lv=BigInt("1159843021668779879193775521855586647937357759715417654439879720876111806838"),hv=BigInt("40440834346308536858101042469323190826248399146238708352240133220865137265952");var dv=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");var Cn=32,rr=64,R1=32;function p4(){let e=Tn.utils.randomPrivateKey(),t=Tn.getPublicKey(e);return{privateKey:x4(e,t),publicKey:t}}function y4(e){if(e.length!==R1)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.');let t=e,r=Tn.getPublicKey(t);return{privateKey:x4(t,r),publicKey:r}}function g4(e,t){let r=e.subarray(0,R1);return Tn.sign(t instanceof Uint8Array?t:t.subarray(),r)}function m4(e,t,r){return Tn.verify(t,r instanceof Uint8Array?r:r.subarray(),e)}function x4(e,t){let r=new Uint8Array(rr);for(let n=0;n<R1;n++)r[n]=e[n],r[R1+n]=t[n];return r}var ns={alg:"A128GCM",ext:!0,k:"scm9jmO_4BJAgdwWGVulLg",key_ops:["encrypt","decrypt"],kty:"oct"};function _1(e){let t=e?.algorithm??"AES-GCM",r=e?.keyLength??16,n=e?.nonceLength??12,i=e?.digest??"SHA-256",o=e?.saltLength??16,s=e?.iterations??32767,a=Ct.get();r*=8;async function c(l,p){let d=a.getRandomValues(new Uint8Array(o)),h=a.getRandomValues(new Uint8Array(n)),y={name:t,iv:h};typeof p=="string"&&(p=ht(p));let g;if(p.length===0){g=await a.subtle.importKey("jwk",ns,{name:"AES-GCM"},!0,["encrypt"]);try{let x={name:"PBKDF2",salt:d,iterations:s,hash:{name:i}},v=await a.subtle.importKey("raw",p,{name:"PBKDF2"},!1,["deriveKey"]);g=await a.subtle.deriveKey(x,v,{name:t,length:r},!0,["encrypt"])}catch{g=await a.subtle.importKey("jwk",ns,{name:"AES-GCM"},!0,["encrypt"])}}else{let x={name:"PBKDF2",salt:d,iterations:s,hash:{name:i}},v=await a.subtle.importKey("raw",p,{name:"PBKDF2"},!1,["deriveKey"]);g=await a.subtle.deriveKey(x,v,{name:t,length:r},!0,["encrypt"])}let m=await a.subtle.encrypt(y,g,l);return At([d,y.iv,new Uint8Array(m)])}async function u(l,p){let d=l.subarray(0,o),h=l.subarray(o,o+n),y=l.subarray(o+n),g={name:t,iv:h};typeof p=="string"&&(p=ht(p));let m;if(p.length===0)try{let v={name:"PBKDF2",salt:d,iterations:s,hash:{name:i}},T=await a.subtle.importKey("raw",p,{name:"PBKDF2"},!1,["deriveKey"]);m=await a.subtle.deriveKey(v,T,{name:t,length:r},!0,["decrypt"])}catch{m=await a.subtle.importKey("jwk",ns,{name:"AES-GCM"},!0,["decrypt"])}else{let v={name:"PBKDF2",salt:d,iterations:s,hash:{name:i}},T=await a.subtle.importKey("raw",p,{name:"PBKDF2"},!1,["deriveKey"]);m=await a.subtle.deriveKey(v,T,{name:t,length:r},!0,["decrypt"])}let x=await a.subtle.decrypt(g,m,y);return new Uint8Array(x)}return{encrypt:c,decrypt:u}}async function Rn(e,t){let n=await _1().encrypt(e,t);return kn.encode(n)}var _n={};_t(_n,{KeyType:()=>gt,PrivateKey:()=>Ae,PublicKey:()=>Ie});var gt;(function(e){e.RSA="RSA",e.Ed25519="Ed25519",e.Secp256k1="Secp256k1"})(gt||(gt={}));var is;(function(e){e[e.RSA=0]="RSA",e[e.Ed25519=1]="Ed25519",e[e.Secp256k1=2]="Secp256k1"})(is||(is={}));(function(e){e.codec=()=>nn(is)})(gt||(gt={}));var Ie;(function(e){let t;e.codec=()=>(t==null&&(t=Pe((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.Type!=null&&(n.uint32(8),gt.codec().encode(r.Type,n)),r.Data!=null&&(n.uint32(18),n.bytes(r.Data)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={},o=n==null?r.len:r.pos+n;for(;r.pos<o;){let s=r.uint32();switch(s>>>3){case 1:i.Type=gt.codec().decode(r);break;case 2:i.Data=r.bytes();break;default:r.skipType(s&7);break}}return i})),t),e.encode=r=>_e(r,e.codec()),e.decode=r=>Te(r,e.codec())})(Ie||(Ie={}));var Ae;(function(e){let t;e.codec=()=>(t==null&&(t=Pe((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.Type!=null&&(n.uint32(8),gt.codec().encode(r.Type,n)),r.Data!=null&&(n.uint32(18),n.bytes(r.Data)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={},o=n==null?r.len:r.pos+n;for(;r.pos<o;){let s=r.uint32();switch(s>>>3){case 1:i.Type=gt.codec().decode(r);break;case 2:i.Data=r.bytes();break;default:r.skipType(s&7);break}}return i})),t),e.encode=r=>_e(r,e.codec()),e.decode=r=>Te(r,e.codec())})(Ae||(Ae={}));var u0=class{_key;constructor(t){this._key=Pn(t,Cn)}verify(t,r){return m4(this._key,r,t)}marshal(){return this._key}get bytes(){return Ie.encode({Type:gt.Ed25519,Data:this.marshal()}).subarray()}equals(t){return pt(this.bytes,t.bytes)}hash(){let t=wt.digest(this.bytes);return he(t)?t.then(({bytes:r})=>r):t.bytes}},Vr=class{_key;_publicKey;constructor(t,r){this._key=Pn(t,rr),this._publicKey=Pn(r,Cn)}sign(t){return g4(this._key,t)}get public(){return new u0(this._publicKey)}marshal(){return this._key}get bytes(){return Ae.encode({Type:gt.Ed25519,Data:this.marshal()}).subarray()}equals(t){return pt(this.bytes,t.bytes)}async hash(){let t=wt.digest(this.bytes),r;return he(t)?{bytes:r}=await t:r=t.bytes,r}async id(){let t=fr.digest(this.public.bytes);return Dt.encode(t.bytes).substring(1)}async export(t,r="libp2p-key"){if(r==="libp2p-key")return Rn(this.bytes,t);throw new _(`export format '${r}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};function F7(e){if(e.length>rr){e=Pn(e,rr+Cn);let n=e.subarray(0,rr),i=e.subarray(rr,e.length);return new Vr(n,i)}e=Pn(e,rr);let t=e.subarray(0,rr),r=e.subarray(Cn);return new Vr(t,r)}function M7(e){return e=Pn(e,Cn),new u0(e)}async function K7(){let{privateKey:e,publicKey:t}=p4();return new Vr(e,t)}async function os(e){let{privateKey:t,publicKey:r}=y4(e);return new Vr(t,r)}function Pn(e,t){if(e=Uint8Array.from(e??[]),e.length!==t)throw new _(`Key must be a Uint8Array of length ${t}, got ${e.length}`,"ERR_INVALID_KEY_TYPE");return e}var b4={"P-256":256,"P-384":384,"P-521":521},V7=Object.keys(b4),as=V7.join(" / ");async function w4(e){if(e!=="P-256"&&e!=="P-384"&&e!=="P-521")throw new _(`Unknown curve: ${e}. Must be ${as}`,"ERR_INVALID_CURVE");let t=await Ct.get().subtle.generateKey({name:"ECDH",namedCurve:e},!0,["deriveBits"]),r=async(o,s)=>{let a;s!=null?a=await Ct.get().subtle.importKey("jwk",z7(e,s),{name:"ECDH",namedCurve:e},!1,["deriveBits"]):a=t.privateKey;let c=await Ct.get().subtle.importKey("jwk",S4(e,o),{name:"ECDH",namedCurve:e},!1,[]),u=await Ct.get().subtle.deriveBits({name:"ECDH",namedCurve:e,public:c},a,b4[e]);return new Uint8Array(u,0,u.byteLength)},n=await Ct.get().subtle.exportKey("jwk",t.publicKey);return{key:q7(n),genSharedKey:r}}var E4={"P-256":32,"P-384":48,"P-521":66};function q7(e){if(e.crv==null||e.x==null||e.y==null)throw new _("JWK was missing components","ERR_INVALID_PARAMETERS");if(e.crv!=="P-256"&&e.crv!=="P-384"&&e.crv!=="P-521")throw new _(`Unknown curve: ${e.crv}. Must be ${as}`,"ERR_INVALID_CURVE");let t=E4[e.crv];return At([Uint8Array.from([4]),g1(e.x,t),g1(e.y,t)],1+t*2)}function S4(e,t){if(e!=="P-256"&&e!=="P-384"&&e!=="P-521")throw new _(`Unknown curve: ${e}. Must be ${as}`,"ERR_INVALID_CURVE");let r=E4[e];if(!pt(t.subarray(0,1),Uint8Array.from([4])))throw new _("Cannot unmarshal public key - invalid key format","ERR_INVALID_KEY_FORMAT");return{kty:"EC",crv:e,x:q(t.subarray(1,r+1),"base64url"),y:q(t.subarray(1+r),"base64url"),ext:!0}}var z7=(e,t)=>({...S4(e,t.public),d:q(t.private,"base64url")});var I4=w4;async function A4(e,t){let r=kn.decode(e);return _1().decrypt(r,t)}var B4={"AES-128":{ivSize:16,keySize:16},"AES-256":{ivSize:16,keySize:32},Blowfish:{ivSize:8,keySize:32}};async function T4(e,t,r){let n=B4[e];if(n==null){let x=Object.keys(B4).join(" / ");throw new _(`unknown cipher type '${e}'. Must be ${x}`,"ERR_INVALID_CIPHER_TYPE")}if(t==null)throw new _("missing hash type","ERR_MISSING_HASH_TYPE");let i=n.keySize,o=n.ivSize,s=20,a=ht("key expansion"),c=2*(o+i+s),u=await $a(t,r),f=await u.digest(a),l=[],p=0;for(;p<c;){let x=await u.digest(At([f,a])),v=x.length;p+v>c&&(v=c-p),l.push(x),p+=v,f=await u.digest(f)}let d=c/2,h=At(l),y=h.subarray(0,d),g=h.subarray(d,c),m=x=>({iv:x.subarray(0,o),cipherKey:x.subarray(o,o+i),macKey:x.subarray(o+i)});return{k1:m(y),k2:m(g)}}var hs={};_t(hs,{MAX_KEY_SIZE:()=>d0,RsaPrivateKey:()=>Ln,RsaPublicKey:()=>h0,fromJwk:()=>j7,generateKeyPair:()=>tl,unmarshalRsaPrivateKey:()=>X7,unmarshalRsaPublicKey:()=>J7});var l0=St(ut(),1);var hb=St(L4(),1);function zr(e){if(isNaN(e)||e<=0)throw new _("random bytes length must be a Number bigger than 0","ERR_INVALID_LENGTH");return An(e)}var Qv=St(y1(),1),fs=St(ut(),1);function N4(e,t){return t.map(r=>oe(e[r]))}function D4(e){return fs.default.pki.setRsaPrivateKey(...N4(e,["n","e","d","p","q","dp","dq","qi"]))}function k4(e){return fs.default.pki.setRsaPublicKey(...N4(e,["n","e"]))}var Hr={};_t(Hr,{jwkToPkcs1:()=>G7,jwkToPkix:()=>Q7,pkcs1ToJwk:()=>$7,pkixToJwk:()=>Y7});var Xv=St(n0(),1),Jv=St(y1(),1);var nr=St(ut(),1);function $7(e){let t=nr.default.asn1.fromDer(q(e,"ascii")),r=nr.default.pki.privateKeyFromAsn1(t);return{kty:"RSA",n:be(r.n),e:be(r.e),d:be(r.d),p:be(r.p),q:be(r.q),dp:be(r.dP),dq:be(r.dQ),qi:be(r.qInv),alg:"RS256"}}function G7(e){if(e.n==null||e.e==null||e.d==null||e.p==null||e.q==null||e.dp==null||e.dq==null||e.qi==null)throw new _("JWK was missing components","ERR_INVALID_PARAMETERS");let t=nr.default.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 ht(nr.default.asn1.toDer(t).getBytes(),"ascii")}function Y7(e){let t=nr.default.asn1.fromDer(q(e,"ascii")),r=nr.default.pki.publicKeyFromAsn1(t);return{kty:"RSA",n:be(r.n),e:be(r.e)}}function Q7(e){if(e.n==null||e.e==null)throw new _("JWK was missing components","ERR_INVALID_PARAMETERS");let t=nr.default.pki.publicKeyToAsn1({n:oe(e.n),e:oe(e.e)});return ht(nr.default.asn1.toDer(t).getBytes(),"ascii")}async function O4(e){let t=await Ct.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 M4(t);return{privateKey:r[0],publicKey:r[1]}}async function ls(e){let r=[await Ct.get().subtle.importKey("jwk",e,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["sign"]),await W7(e)],n=await M4({privateKey:r[0],publicKey:r[1]});return{privateKey:n[0],publicKey:n[1]}}async function U4(e,t){let r=await Ct.get().subtle.importKey("jwk",e,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["sign"]),n=await Ct.get().subtle.sign({name:"RSASSA-PKCS1-v1_5"},r,t instanceof Uint8Array?t:t.subarray());return new Uint8Array(n,0,n.byteLength)}async function F4(e,t,r){let n=await Ct.get().subtle.importKey("jwk",e,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["verify"]);return Ct.get().subtle.verify({name:"RSASSA-PKCS1-v1_5"},n,t,r instanceof Uint8Array?r:r.subarray())}async function M4(e){if(e.privateKey==null||e.publicKey==null)throw new _("Private and public key are required","ERR_INVALID_PARAMETERS");return Promise.all([Ct.get().subtle.exportKey("jwk",e.privateKey),Ct.get().subtle.exportKey("jwk",e.publicKey)])}async function W7(e){return Ct.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 K4(e,t,r,n){let i=t?k4(e):D4(e),o=q(r instanceof Uint8Array?r:r.subarray(),"ascii"),s=n(o,i);return ht(s,"ascii")}function V4(e,t){return K4(e,!0,t,(r,n)=>n.encrypt(r))}function q4(e,t){return K4(e,!1,t,(r,n)=>n.decrypt(r))}function P1(e){if(e.kty!=="RSA")throw new _("invalid key type","ERR_INVALID_KEY_TYPE");if(e.n==null)throw new _("invalid key modulus","ERR_INVALID_KEY_MODULUS");return ht(e.n,"base64url").length*8}var d0=8192,h0=class{_key;constructor(t){this._key=t}verify(t,r){return F4(this._key,r,t)}marshal(){return Hr.jwkToPkix(this._key)}get bytes(){return Ie.encode({Type:gt.RSA,Data:this.marshal()}).subarray()}encrypt(t){return V4(this._key,t)}equals(t){return pt(this.bytes,t.bytes)}hash(){let t=wt.digest(this.bytes);return he(t)?t.then(({bytes:r})=>r):t.bytes}},Ln=class{_key;_publicKey;constructor(t,r){this._key=t,this._publicKey=r}genSecret(){return zr(16)}sign(t){return U4(this._key,t)}get public(){if(this._publicKey==null)throw new _("public key not provided","ERR_PUBKEY_NOT_PROVIDED");return new h0(this._publicKey)}decrypt(t){return q4(this._key,t)}marshal(){return Hr.jwkToPkcs1(this._key)}get bytes(){return Ae.encode({Type:gt.RSA,Data:this.marshal()}).subarray()}equals(t){return pt(this.bytes,t.bytes)}hash(){let t=wt.digest(this.bytes);return he(t)?t.then(({bytes:r})=>r):t.bytes}async id(){let t=await this.public.hash();return q(t,"base58btc")}async export(t,r="pkcs-8"){if(r==="pkcs-8"){let n=new l0.default.util.ByteBuffer(this.marshal()),i=l0.default.asn1.fromDer(n),o=l0.default.pki.privateKeyFromAsn1(i),s={algorithm:"aes256",count:1e4,saltSize:128/8,prfAlgorithm:"sha512"};return l0.default.pki.encryptRsaPrivateKey(o,t,s)}else{if(r==="libp2p-key")return Rn(this.bytes,t);throw new _(`export format '${r}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}}};async function X7(e){let t=Hr.pkcs1ToJwk(e);if(P1(t)>d0)throw new _("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let r=await ls(t);return new Ln(r.privateKey,r.publicKey)}function J7(e){let t=Hr.pkixToJwk(e);if(P1(t)>d0)throw new _("key size is too large","ERR_KEY_SIZE_TOO_LARGE");return new h0(t)}async function j7(e){if(P1(e)>d0)throw new _("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let t=await ls(e);return new Ln(t.privateKey,t.publicKey)}async function tl(e){if(e>d0)throw new _("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let t=await O4(e);return new Ln(t.privateKey,t.publicKey)}var xs={};_t(xs,{Secp256k1PrivateKey:()=>y0,Secp256k1PublicKey:()=>p0,generateKeyPair:()=>yl,unmarshalSecp256k1PrivateKey:()=>dl,unmarshalSecp256k1PublicKey:()=>pl});var el=(e,t,r)=>e&t^~e&r,rl=(e,t,r)=>e&t^e&r^t&r,nl=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]),Er=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Sr=new Uint32Array(64),ds=class extends Bn{constructor(){super(64,32,8,!1),this.A=Er[0]|0,this.B=Er[1]|0,this.C=Er[2]|0,this.D=Er[3]|0,this.E=Er[4]|0,this.F=Er[5]|0,this.G=Er[6]|0,this.H=Er[7]|0}get(){let{A:t,B:r,C:n,D:i,E:o,F:s,G:a,H:c}=this;return[t,r,n,i,o,s,a,c]}set(t,r,n,i,o,s,a,c){this.A=t|0,this.B=r|0,this.C=n|0,this.D=i|0,this.E=o|0,this.F=s|0,this.G=a|0,this.H=c|0}process(t,r){for(let l=0;l<16;l++,r+=4)Sr[l]=t.getUint32(r,!1);for(let l=16;l<64;l++){let p=Sr[l-15],d=Sr[l-2],h=we(p,7)^we(p,18)^p>>>3,y=we(d,17)^we(d,19)^d>>>10;Sr[l]=y+Sr[l-7]+h+Sr[l-16]|0}let{A:n,B:i,C:o,D:s,E:a,F:c,G:u,H:f}=this;for(let l=0;l<64;l++){let p=we(a,6)^we(a,11)^we(a,25),d=f+p+el(a,c,u)+nl[l]+Sr[l]|0,y=(we(n,2)^we(n,13)^we(n,22))+rl(n,i,o)|0;f=u,u=c,c=a,a=s+d|0,s=o,o=i,i=n,n=d+y|0}n=n+this.A|0,i=i+this.B|0,o=o+this.C|0,s=s+this.D|0,a=a+this.E|0,c=c+this.F|0,u=u+this.G|0,f=f+this.H|0,this.set(n,i,o,s,a,c,u,f)}roundClean(){Sr.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};var z4=b1(()=>new ds);function il(e){let t=c0(e);Me(t,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});let{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(typeof r!="object"||typeof r.beta!="bigint"||typeof r.splitScalar!="function")throw new Error("Expected endomorphism with beta: bigint and splitScalar: function")}return Object.freeze({...t})}var{bytesToNumberBE:ol,hexToBytes:sl}=S1,$r={Err:class extends Error{constructor(t=""){super(t)}},_parseInt(e){let{Err:t}=$r;if(e.length<2||e[0]!==2)throw new t("Invalid signature integer tag");let r=e[1],n=e.subarray(2,r+2);if(!r||n.length!==r)throw new t("Invalid signature integer: wrong length");if(n[0]&128)throw new t("Invalid signature integer: negative");if(n[0]===0&&!(n[1]&128))throw new t("Invalid signature integer: unnecessary leading zero");return{d:ol(n),l:e.subarray(r+2)}},toSig(e){let{Err:t}=$r,r=typeof e=="string"?sl(e):e;if(!Ee(r))throw new Error("ui8a expected");let n=r.length;if(n<2||r[0]!=48)throw new t("Invalid signature tag");if(r[1]!==n-2)throw new t("Invalid signature: incorrect length");let{d:i,l:o}=$r._parseInt(r.subarray(2)),{d:s,l:a}=$r._parseInt(o);if(a.length)throw new t("Invalid signature: left bytes after parsing");return{r:i,s}},hexFromSig(e){let t=u=>Number.parseInt(u[0],16)&8?"00"+u:u,r=u=>{let f=u.toString(16);return f.length&1?`0${f}`:f},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${r(s+o+4)}02${c}${i}02${a}${n}`}},ir=BigInt(0),de=BigInt(1),Eb=BigInt(2),H4=BigInt(3),Sb=BigInt(4);function al(e){let t=il(e),{Fp:r}=t,n=t.toBytes||((h,y,g)=>{let m=y.toAffine();return tr(Uint8Array.from([4]),r.toBytes(m.x),r.toBytes(m.y))}),i=t.fromBytes||(h=>{let y=h.subarray(1),g=r.fromBytes(y.subarray(0,r.BYTES)),m=r.fromBytes(y.subarray(r.BYTES,2*r.BYTES));return{x:g,y:m}});function o(h){let{a:y,b:g}=t,m=r.sqr(h),x=r.mul(m,h);return r.add(r.add(x,r.mul(h,y)),g)}if(!r.eql(r.sqr(t.Gy),o(t.Gx)))throw new Error("bad generator point: equation left != right");function s(h){return typeof h=="bigint"&&ir<h&&h<t.n}function a(h){if(!s(h))throw new Error("Expected valid bigint: 0 < bigint < curve.n")}function c(h){let{allowedPrivateKeyLengths:y,nByteLength:g,wrapPrivateKey:m,n:x}=t;if(y&&typeof h!="bigint"){if(Ee(h)&&(h=Je(h)),typeof h!="string"||!y.includes(h.length))throw new Error("Invalid key");h=h.padStart(g*2,"0")}let v;try{v=typeof h=="bigint"?h:je(Bt("private key",h,g))}catch{throw new Error(`private key must be ${g} bytes, hex or bigint, not ${typeof h}`)}return m&&(v=lt(v,x)),a(v),v}let u=new Map;function f(h){if(!(h instanceof l))throw new Error("ProjectivePoint expected")}class l{constructor(y,g,m){if(this.px=y,this.py=g,this.pz=m,y==null||!r.isValid(y))throw new Error("x required");if(g==null||!r.isValid(g))throw new Error("y required");if(m==null||!r.isValid(m))throw new Error("z required")}static fromAffine(y){let{x:g,y:m}=y||{};if(!y||!r.isValid(g)||!r.isValid(m))throw new Error("invalid affine point");if(y instanceof l)throw new Error("projective point not allowed");let x=v=>r.eql(v,r.ZERO);return x(g)&&x(m)?l.ZERO:new l(g,m,r.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(y){let g=r.invertBatch(y.map(m=>m.pz));return y.map((m,x)=>m.toAffine(g[x])).map(l.fromAffine)}static fromHex(y){let g=l.fromAffine(i(Bt("pointHex",y)));return g.assertValidity(),g}static fromPrivateKey(y){return l.BASE.multiply(c(y))}_setWindowSize(y){this._WINDOW_SIZE=y,u.delete(this)}assertValidity(){if(this.is0()){if(t.allowInfinityPoint&&!r.is0(this.py))return;throw new Error("bad point: ZERO")}let{x:y,y:g}=this.toAffine();if(!r.isValid(y)||!r.isValid(g))throw new Error("bad point: x or y not FE");let m=r.sqr(g),x=o(y);if(!r.eql(m,x))throw new Error("bad point: equation left != right");if(!this.isTorsionFree())throw new Error("bad point: not in prime-order subgroup")}hasEvenY(){let{y}=this.toAffine();if(r.isOdd)return!r.isOdd(y);throw new Error("Field doesn't support isOdd")}equals(y){f(y);let{px:g,py:m,pz:x}=this,{px:v,py:T,pz:E}=y,S=r.eql(r.mul(g,E),r.mul(v,x)),L=r.eql(r.mul(m,E),r.mul(T,x));return S&&L}negate(){return new l(this.px,r.neg(this.py),this.pz)}double(){let{a:y,b:g}=t,m=r.mul(g,H4),{px:x,py:v,pz:T}=this,E=r.ZERO,S=r.ZERO,L=r.ZERO,N=r.mul(x,x),$=r.mul(v,v),H=r.mul(T,T),V=r.mul(x,v);return V=r.add(V,V),L=r.mul(x,T),L=r.add(L,L),E=r.mul(y,L),S=r.mul(m,H),S=r.add(E,S),E=r.sub($,S),S=r.add($,S),S=r.mul(E,S),E=r.mul(V,E),L=r.mul(m,L),H=r.mul(y,H),V=r.sub(N,H),V=r.mul(y,V),V=r.add(V,L),L=r.add(N,N),N=r.add(L,N),N=r.add(N,H),N=r.mul(N,V),S=r.add(S,N),H=r.mul(v,T),H=r.add(H,H),N=r.mul(H,V),E=r.sub(E,N),L=r.mul(H,$),L=r.add(L,L),L=r.add(L,L),new l(E,S,L)}add(y){f(y);let{px:g,py:m,pz:x}=this,{px:v,py:T,pz:E}=y,S=r.ZERO,L=r.ZERO,N=r.ZERO,$=t.a,H=r.mul(t.b,H4),V=r.mul(g,v),X=r.mul(m,T),ft=r.mul(x,E),Kt=r.add(g,m),C=r.add(v,T);Kt=r.mul(Kt,C),C=r.add(V,X),Kt=r.sub(Kt,C),C=r.add(g,x);let k=r.add(v,E);return C=r.mul(C,k),k=r.add(V,ft),C=r.sub(C,k),k=r.add(m,x),S=r.add(T,E),k=r.mul(k,S),S=r.add(X,ft),k=r.sub(k,S),N=r.mul($,C),S=r.mul(H,ft),N=r.add(S,N),S=r.sub(X,N),N=r.add(X,N),L=r.mul(S,N),X=r.add(V,V),X=r.add(X,V),ft=r.mul($,ft),C=r.mul(H,C),X=r.add(X,ft),ft=r.sub(V,ft),ft=r.mul($,ft),C=r.add(C,ft),V=r.mul(X,C),L=r.add(L,V),V=r.mul(k,C),S=r.mul(Kt,S),S=r.sub(S,V),V=r.mul(Kt,X),N=r.mul(k,N),N=r.add(N,V),new l(S,L,N)}subtract(y){return this.add(y.negate())}is0(){return this.equals(l.ZERO)}wNAF(y){return d.wNAFCached(this,u,y,g=>{let m=r.invertBatch(g.map(x=>x.pz));return g.map((x,v)=>x.toAffine(m[v])).map(l.fromAffine)})}multiplyUnsafe(y){let g=l.ZERO;if(y===ir)return g;if(a(y),y===de)return this;let{endo:m}=t;if(!m)return d.unsafeLadder(this,y);let{k1neg:x,k1:v,k2neg:T,k2:E}=m.splitScalar(y),S=g,L=g,N=this;for(;v>ir||E>ir;)v&de&&(S=S.add(N)),E&de&&(L=L.add(N)),N=N.double(),v>>=de,E>>=de;return x&&(S=S.negate()),T&&(L=L.negate()),L=new l(r.mul(L.px,m.beta),L.py,L.pz),S.add(L)}multiply(y){a(y);let g=y,m,x,{endo:v}=t;if(v){let{k1neg:T,k1:E,k2neg:S,k2:L}=v.splitScalar(g),{p:N,f:$}=this.wNAF(E),{p:H,f:V}=this.wNAF(L);N=d.constTimeNegate(T,N),H=d.constTimeNegate(S,H),H=new l(r.mul(H.px,v.beta),H.py,H.pz),m=N.add(H),x=$.add(V)}else{let{p:T,f:E}=this.wNAF(g);m=T,x=E}return l.normalizeZ([m,x])[0]}multiplyAndAddUnsafe(y,g,m){let x=l.BASE,v=(E,S)=>S===ir||S===de||!E.equals(x)?E.multiplyUnsafe(S):E.multiply(S),T=v(this,g).add(v(y,m));return T.is0()?void 0:T}toAffine(y){let{px:g,py:m,pz:x}=this,v=this.is0();y==null&&(y=v?r.ONE:r.inv(x));let T=r.mul(g,y),E=r.mul(m,y),S=r.mul(x,y);if(v)return{x:r.ZERO,y:r.ZERO};if(!r.eql(S,r.ONE))throw new Error("invZ was invalid");return{x:T,y:E}}isTorsionFree(){let{h:y,isTorsionFree:g}=t;if(y===de)return!0;if(g)return g(l,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){let{h:y,clearCofactor:g}=t;return y===de?this:g?g(l,this):this.multiplyUnsafe(t.h)}toRawBytes(y=!0){return this.assertValidity(),n(l,this,y)}toHex(y=!0){return Je(this.toRawBytes(y))}}l.BASE=new l(t.Gx,t.Gy,r.ONE),l.ZERO=new l(r.ZERO,r.ONE,r.ZERO);let p=t.nBitLength,d=B1(l,t.endo?Math.ceil(p/2):p);return{CURVE:t,ProjectivePoint:l,normPrivateKeyToScalar:c,weierstrassEquation:o,isWithinCurveOrder:s}}function cl(e){let t=c0(e);return Me(t,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...t})}function $4(e){let t=cl(e),{Fp:r,n}=t,i=r.BYTES+1,o=2*r.BYTES+1;function s(C){return ir<C&&C<r.ORDER}function a(C){return lt(C,n)}function c(C){return I1(C,n)}let{ProjectivePoint:u,normPrivateKeyToScalar:f,weierstrassEquation:l,isWithinCurveOrder:p}=al({...t,toBytes(C,k,P){let D=k.toAffine(),A=r.toBytes(D.x),F=tr;return P?F(Uint8Array.from([k.hasEvenY()?2:3]),A):F(Uint8Array.from([4]),A,r.toBytes(D.y))},fromBytes(C){let k=C.length,P=C[0],D=C.subarray(1);if(k===i&&(P===2||P===3)){let A=je(D);if(!s(A))throw new Error("Point is not on curve");let F=l(A),M=r.sqrt(F),z=(M&de)===de;return(P&1)===1!==z&&(M=r.neg(M)),{x:A,y:M}}else if(k===o&&P===4){let A=r.fromBytes(D.subarray(0,r.BYTES)),F=r.fromBytes(D.subarray(r.BYTES,2*r.BYTES));return{x:A,y:F}}else throw new Error(`Point of length ${k} was invalid. Expected ${i} compressed bytes or ${o} uncompressed bytes`)}}),d=C=>Je(wr(C,t.nByteLength));function h(C){let k=n>>de;return C>k}function y(C){return h(C)?a(-C):C}let g=(C,k,P)=>je(C.slice(k,P));class m{constructor(k,P,D){this.r=k,this.s=P,this.recovery=D,this.assertValidity()}static fromCompact(k){let P=t.nByteLength;return k=Bt("compactSignature",k,P*2),new m(g(k,0,P),g(k,P,2*P))}static fromDER(k){let{r:P,s:D}=$r.toSig(Bt("DER",k));return new m(P,D)}assertValidity(){if(!p(this.r))throw new Error("r must be 0 < r < CURVE.n");if(!p(this.s))throw new Error("s must be 0 < s < CURVE.n")}addRecoveryBit(k){return new m(this.r,this.s,k)}recoverPublicKey(k){let{r:P,s:D,recovery:A}=this,F=L(Bt("msgHash",k));if(A==null||![0,1,2,3].includes(A))throw new Error("recovery id invalid");let M=A===2||A===3?P+t.n:P;if(M>=r.ORDER)throw new Error("recovery id 2 or 3 invalid");let z=A&1?"03":"02",W=u.fromHex(z+d(M)),j=c(M),at=a(-F*j),tt=a(D*j),nt=u.BASE.multiplyAndAddUnsafe(W,at,tt);if(!nt)throw new Error("point at infinify");return nt.assertValidity(),nt}hasHighS(){return h(this.s)}normalizeS(){return this.hasHighS()?new m(this.r,a(-this.s),this.recovery):this}toDERRawBytes(){return Fr(this.toDERHex())}toDERHex(){return $r.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return Fr(this.toCompactHex())}toCompactHex(){return d(this.r)+d(this.s)}}let x={isValidPrivateKey(C){try{return f(C),!0}catch{return!1}},normPrivateKeyToScalar:f,randomPrivateKey:()=>{let C=Jo(t.n);return u4(t.randomBytes(C),t.n)},precompute(C=8,k=u.BASE){return k._setWindowSize(C),k.multiply(BigInt(3)),k}};function v(C,k=!0){return u.fromPrivateKey(C).toRawBytes(k)}function T(C){let k=Ee(C),P=typeof C=="string",D=(k||P)&&C.length;return k?D===i||D===o:P?D===2*i||D===2*o:C instanceof u}function E(C,k,P=!0){if(T(C))throw new Error("first arg must be private key");if(!T(k))throw new Error("second arg must be public key");return u.fromHex(k).multiply(f(C)).toRawBytes(P)}let S=t.bits2int||function(C){let k=je(C),P=C.length*8-t.nBitLength;return P>0?k>>BigInt(P):k},L=t.bits2int_modN||function(C){return a(S(C))},N=a0(t.nBitLength);function $(C){if(typeof C!="bigint")throw new Error("bigint expected");if(!(ir<=C&&C<N))throw new Error(`bigint expected < 2^${t.nBitLength}`);return wr(C,t.nByteLength)}function H(C,k,P=V){if(["recovered","canonical"].some(Et=>Et in P))throw new Error("sign() legacy options not supported");let{hash:D,randomBytes:A}=t,{lowS:F,prehash:M,extraEntropy:z}=P;F==null&&(F=!0),C=Bt("msgHash",C),M&&(C=Bt("prehashed msgHash",D(C)));let W=L(C),j=f(k),at=[$(j),$(W)];if(z!=null){let Et=z===!0?A(r.BYTES):z;at.push(Bt("extraEntropy",Et))}let tt=tr(...at),nt=W;function Rt(Et){let Vt=S(Et);if(!p(Vt))return;let qt=c(Vt),Nt=u.BASE.multiply(Vt).toAffine(),zt=a(Nt.x);if(zt===ir)return;let Ve=a(qt*a(nt+zt*j));if(Ve===ir)return;let Ar=(Nt.x===zt?0:2)|Number(Nt.y&de),Dn=Ve;return F&&h(Ve)&&(Dn=y(Ve),Ar^=1),new m(zt,Dn,Ar)}return{seed:tt,k2sig:Rt}}let V={lowS:t.lowS,prehash:!1},X={lowS:t.lowS,prehash:!1};function ft(C,k,P=V){let{seed:D,k2sig:A}=H(C,k,P),F=t;return Qo(F.hash.outputLen,F.nByteLength,F.hmac)(D,A)}u.BASE._setWindowSize(8);function Kt(C,k,P,D=X){let A=C;if(k=Bt("msgHash",k),P=Bt("publicKey",P),"strict"in D)throw new Error("options.strict was renamed to lowS");let{lowS:F,prehash:M}=D,z,W;try{if(typeof A=="string"||Ee(A))try{z=m.fromDER(A)}catch(Nt){if(!(Nt instanceof $r.Err))throw Nt;z=m.fromCompact(A)}else if(typeof A=="object"&&typeof A.r=="bigint"&&typeof A.s=="bigint"){let{r:Nt,s:zt}=A;z=new m(Nt,zt)}else throw new Error("PARSE");W=u.fromHex(P)}catch(Nt){if(Nt.message==="PARSE")throw new Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(F&&z.hasHighS())return!1;M&&(k=t.hash(k));let{r:j,s:at}=z,tt=L(k),nt=c(at),Rt=a(tt*nt),Et=a(j*nt),Vt=u.BASE.multiplyAndAddUnsafe(W,Rt,Et)?.toAffine();return Vt?a(Vt.x)===j:!1}return{CURVE:t,getPublicKey:v,getSharedSecret:E,sign:ft,verify:Kt,ProjectivePoint:u,Signature:m,utils:x}}var L1=class extends In{constructor(t,r){super(),this.finished=!1,this.destroyed=!1,Z3(t);let n=s0(r);if(this.iHash=t.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let i=this.blockLen,o=new Uint8Array(i);o.set(n.length>i?t.create().update(n).digest():n);for(let s=0;s<o.length;s++)o[s]^=54;this.iHash.update(o),this.oHash=t.create();for(let s=0;s<o.length;s++)o[s]^=106;this.oHash.update(o),o.fill(0)}update(t){return Sn(this),this.iHash.update(t),this}digestInto(t){Sn(this),Vo(t,this.outputLen),this.finished=!0,this.iHash.digestInto(t),this.oHash.update(t),this.oHash.digestInto(t),this.destroy()}digest(){let t=new Uint8Array(this.oHash.outputLen);return this.digestInto(t),t}_cloneInto(t){t||(t=Object.create(Object.getPrototypeOf(this),{}));let{oHash:r,iHash:n,finished:i,destroyed:o,blockLen:s,outputLen:a}=this;return t=t,t.finished=i,t.destroyed=o,t.blockLen=s,t.outputLen=a,t.oHash=r._cloneInto(t.oHash),t.iHash=n._cloneInto(t.iHash),t}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}},ps=(e,t,r)=>new L1(e,t).update(r).digest();ps.create=(e,t)=>new L1(e,t);function ul(e){return{hash:e,hmac:(t,...r)=>ps(e,t,v1(...r)),randomBytes:An}}function G4(e,t){let r=n=>$4({...e,...ul(n)});return Object.freeze({...r(t),create:r})}var W4=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),Y4=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),fl=BigInt(1),ys=BigInt(2),Q4=(e,t)=>(e+t/ys)/t;function ll(e){let t=W4,r=BigInt(3),n=BigInt(6),i=BigInt(11),o=BigInt(22),s=BigInt(23),a=BigInt(44),c=BigInt(88),u=e*e*e%t,f=u*u*e%t,l=bt(f,r,t)*f%t,p=bt(l,r,t)*f%t,d=bt(p,ys,t)*u%t,h=bt(d,i,t)*d%t,y=bt(h,o,t)*h%t,g=bt(y,a,t)*y%t,m=bt(g,c,t)*g%t,x=bt(m,a,t)*y%t,v=bt(x,r,t)*f%t,T=bt(v,s,t)*h%t,E=bt(T,n,t)*u%t,S=bt(E,ys,t);if(!gs.eql(gs.sqr(S),e))throw new Error("Cannot find square root");return S}var gs=A1(W4,void 0,void 0,{sqrt:ll}),Be=G4({a:BigInt(0),b:BigInt(7),Fp:gs,n:Y4,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:e=>{let t=Y4,r=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),n=-fl*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),i=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),o=r,s=BigInt("0x100000000000000000000000000000000"),a=Q4(o*e,t),c=Q4(-n*e,t),u=lt(e-a*r-c*i,t),f=lt(-a*n-c*o,t),l=u>s,p=f>s;if(l&&(u=t-u),p&&(f=t-f),u>s||f>s)throw new Error("splitScalar: Endomorphism failed, k="+e);return{k1neg:l,k1:u,k2neg:p,k2:f}}}},z4),kb=BigInt(0);var Ob=Be.ProjectivePoint;function Z4(){return Be.utils.randomPrivateKey()}function X4(e,t){let r=wt.digest(t instanceof Uint8Array?t:t.subarray());if(he(r))return r.then(({digest:n})=>Be.sign(n,e).toDERRawBytes()).catch(n=>{throw new _(String(n),"ERR_INVALID_INPUT")});try{return Be.sign(r.digest,e).toDERRawBytes()}catch(n){throw new _(String(n),"ERR_INVALID_INPUT")}}function J4(e,t,r){let n=wt.digest(r instanceof Uint8Array?r:r.subarray());if(he(n))return n.then(({digest:i})=>Be.verify(t,i,e)).catch(i=>{throw new _(String(i),"ERR_INVALID_INPUT")});try{return Be.verify(t,n.digest,e)}catch(i){throw new _(String(i),"ERR_INVALID_INPUT")}}function j4(e){return Be.ProjectivePoint.fromHex(e).toRawBytes(!0)}function t5(e){try{Be.getPublicKey(e,!0)}catch(t){throw new _(String(t),"ERR_INVALID_PRIVATE_KEY")}}function ms(e){try{Be.ProjectivePoint.fromHex(e)}catch(t){throw new _(String(t),"ERR_INVALID_PUBLIC_KEY")}}function e5(e){try{return Be.getPublicKey(e,!0)}catch(t){throw new _(String(t),"ERR_INVALID_PRIVATE_KEY")}}var p0=class{_key;constructor(t){ms(t),this._key=t}verify(t,r){return J4(this._key,r,t)}marshal(){return j4(this._key)}get bytes(){return Ie.encode({Type:gt.Secp256k1,Data:this.marshal()}).subarray()}equals(t){return pt(this.bytes,t.bytes)}async hash(){let t=wt.digest(this.bytes),r;return he(t)?{bytes:r}=await t:r=t.bytes,r}},y0=class{_key;_publicKey;constructor(t,r){this._key=t,this._publicKey=r??e5(t),t5(this._key),ms(this._publicKey)}sign(t){return X4(this._key,t)}get public(){return new p0(this._publicKey)}marshal(){return this._key}get bytes(){return Ae.encode({Type:gt.Secp256k1,Data:this.marshal()}).subarray()}equals(t){return pt(this.bytes,t.bytes)}hash(){let t=wt.digest(this.bytes);return he(t)?t.then(({bytes:r})=>r):t.bytes}async id(){let t=await this.public.hash();return q(t,"base58btc")}async export(t,r="libp2p-key"){if(r==="libp2p-key")return Rn(this.bytes,t);throw new _(`export format '${r}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};function dl(e){return new y0(e)}function pl(e){return new p0(e)}async function yl(){let e=Z4();return new y0(e)}var Ke={rsa:hs,ed25519:ss,secp256k1:xs};function vs(e){let t=Object.keys(Ke).join(" / ");return new _(`invalid or unsupported key type ${e}. Must be ${t}`,"ERR_UNSUPPORTED_KEY_TYPE")}function bs(e){if(e=e.toLowerCase(),e==="rsa"||e==="ed25519"||e==="secp256k1")return Ke[e];throw vs(e)}async function gl(e,t){return bs(e).generateKeyPair(t??2048)}async function ml(e,t,r){if(e.toLowerCase()!=="ed25519")throw new _("Seed key derivation is unimplemented for RSA or secp256k1","ERR_UNSUPPORTED_KEY_DERIVATION_TYPE");return os(t)}function xl(e){let t=Ie.decode(e),r=t.Data??new Uint8Array;switch(t.Type){case gt.RSA:return Ke.rsa.unmarshalRsaPublicKey(r);case gt.Ed25519:return Ke.ed25519.unmarshalEd25519PublicKey(r);case gt.Secp256k1:return Ke.secp256k1.unmarshalSecp256k1PublicKey(r);default:throw vs(t.Type??"unknown")}}function vl(e,t){return t=(t??"rsa").toLowerCase(),bs(t),e.bytes}async function r5(e){let t=Ae.decode(e),r=t.Data??new Uint8Array;switch(t.Type){case gt.RSA:return Ke.rsa.unmarshalRsaPrivateKey(r);case gt.Ed25519:return Ke.ed25519.unmarshalEd25519PrivateKey(r);case gt.Secp256k1:return Ke.secp256k1.unmarshalSecp256k1PrivateKey(r);default:throw vs(t.Type??"RSA")}}function bl(e,t){return t=(t??"rsa").toLowerCase(),bs(t),e.bytes}async function wl(e,t){try{let i=await A4(e,t);return await r5(i)}catch{}let r=N1.default.pki.decryptRsaPrivateKey(e,t);if(r===null)throw new _("Cannot read the key, most likely the password is wrong or not a RSA key","ERR_CANNOT_DECRYPT_PEM");let n=N1.default.asn1.toDer(N1.default.pki.privateKeyToAsn1(r));return n=ht(n.getBytes(),"ascii"),Ke.rsa.unmarshalRsaPrivateKey(n)}var El=St(Po(),1),Sl=St(Tt(),1);function k1(e,t){if(globalThis.Buffer!=null)return globalThis.Buffer.compare(e,t);for(let r=0;r<e.byteLength;r++){if(e[r]<t[r])return-1;if(e[r]>t[r])return 1}return e.byteLength>t.byteLength?1:e.byteLength<t.byteLength?-1:0}function or(e,t){if(e.length!==t.length)throw new Error("Inputs should have the same length");let r=re(e.length);for(let n=0;n<e.length;n++)r[n]=e[n]^t[n];return Ce(r)}var O1=class{originDhtKey;capacity;peerDistances;constructor(t,r){this.originDhtKey=t,this.capacity=r,this.peerDistances=[]}get length(){return this.peerDistances.length}get peers(){return this.peerDistances.map(t=>t.peerId)}async add(t){if(this.peerDistances.find(i=>i.peerId.equals(t))!=null)return;let r=await ge(t),n={peerId:t,distance:or(this.originDhtKey,r)};this.peerDistances.push(n),this.peerDistances.sort((i,o)=>k1(i.distance,o.distance)),this.peerDistances=this.peerDistances.slice(0,this.capacity)}async anyCloser(t){if(t.length===0)return!1;if(this.length===0)return!0;let r=await Promise.all(t.map(ge)),n=this.peerDistances[this.peerDistances.length-1].distance;for(let i of r){let o=or(this.originDhtKey,i);if(k1(o,n)<0)return!0}return!1}};var U1=class{log;routingTable;network;validators;queryManager;peerStore;peerId;constructor(t,r){let{routingTable:n,network:i,validators:o,queryManager:s,logPrefix:a}=r;this.routingTable=n,this.network=i,this.validators=o,this.queryManager=s,this.peerStore=t.peerStore,this.peerId=t.peerId,this.log=t.logger.forComponent(`${a}:peer-routing`)}async findPeerLocal(t){let r,n=await this.routingTable.find(t);if(n!=null){this.log("findPeerLocal found %p in routing table",t);try{r=await this.peerStore.get(n)}catch(i){if(i.code!=="ERR_NOT_FOUND")throw i}}if(r==null)try{r=await this.peerStore.get(t)}catch(i){if(i.code!=="ERR_NOT_FOUND")throw i}if(r!=null)return this.log("findPeerLocal found %p in peer store",t),{id:r.id,multiaddrs:r.addresses.map(i=>i.multiaddr)}}async*_getValueSingle(t,r,n={}){let i={type:J.GET_VALUE,key:r};yield*this.network.sendRequest(t,i,n)}async*getPublicKeyFromNode(t,r={}){let n=Z2(t);for await(let i of this._getValueSingle(t,n,r))if(yield i,i.name==="PEER_RESPONSE"&&i.record!=null){let o=await D2(D1.marshalPublicKey({bytes:i.record.value}));if(!o.equals(t))throw new _("public key does not match id","ERR_PUBLIC_KEY_DOES_NOT_MATCH_ID");if(o.publicKey==null)throw new _("public key missing","ERR_PUBLIC_KEY_MISSING");yield Hn({from:t,value:o.publicKey},r)}throw new _(`Node not responding with its public key: ${t.toString()}`,"ERR_INVALID_RECORD")}async*findPeer(t,r={}){if(this.log("findPeer %p",t),r.useCache!==!1){let i=await this.findPeerLocal(t);if(i!=null){this.log("found local"),yield N0({from:this.peerId,peer:i},r);return}}let n=!1;if(r.useNetwork!==!1){let i=this,o=async function*({peer:s,signal:a}){let c={type:J.FIND_NODE,key:t.toBytes()};for await(let u of i.network.sendRequest(s,c,{...r,signal:a}))if(yield u,u.name==="PEER_RESPONSE"){let f=u.closer.find(l=>l.id.equals(t));f!=null&&(yield N0({from:u.from,peer:f},r))}};for await(let s of this.queryManager.run(t.toBytes(),o,r))s.name==="FINAL_PEER"&&(n=!0),yield s}n||(yield ne({from:this.peerId,error:new _("Not found","ERR_NOT_FOUND")},r))}async*getClosestPeers(t,r={}){this.log("getClosestPeers to %b",t);let n=await dr(t),i=this.routingTable.closestPeers(n),o=this,s=new O1(n,this.routingTable.kBucketSize);await Promise.all(i.map(async c=>{await s.add(c)}));let a=async function*({peer:c,signal:u}){o.log("closerPeersSingle %s from %p",q(t,"base32"),c);let f={type:J.FIND_NODE,key:t};yield*o.network.sendRequest(c,f,{...r,signal:u})};for await(let c of this.queryManager.run(t,a,r))yield c,c.name==="PEER_RESPONSE"&&await Promise.all(c.closer.map(async u=>{await s.add(u.id)}));this.log("found %d peers close to %b",s.length,t);for(let c of s.peers)try{let u=await this.peerStore.get(c);yield N0({from:this.peerId,peer:{id:c,multiaddrs:u.addresses.map(({multiaddr:f})=>f)}},r)}catch(u){if(u.code!=="ERR_NOT_FOUND")throw u}}async*getValueOrPeers(t,r,n={}){for await(let i of this._getValueSingle(t,r,n)){if(i.name==="PEER_RESPONSE"&&i.record!=null)try{await this._verifyRecordOnline(i.record)}catch{let s="invalid record received, discarded";this.log(s),yield ne({from:i.from,error:new _(s,"ERR_INVALID_RECORD")},n);continue}yield i}}async _verifyRecordOnline(t){if(t.timeReceived==null)throw new _("invalid record received","ERR_INVALID_RECORD");await an(this.validators,new kt(t.key,t.value,t.timeReceived))}async getCloserPeersOffline(t,r){let n=await dr(t),i=this.routingTable.closestPeers(n),o=[];for(let s of i)if(!s.equals(r))try{let a=await this.peerStore.get(s);o.push({id:s,multiaddrs:a.addresses.map(({multiaddr:c})=>c)})}catch(a){if(a.code!=="ERR_NOT_FOUND")throw a}return o.length>0?this.log("getCloserPeersOffline found %d peer(s) closer to %b than %p",o.length,t,r):this.log("getCloserPeersOffline could not find peer closer to %b than %p",t,r),o}};var u5=St(i5(),1);var m0=St(s5(),1);var Ir=class extends Error{constructor(t){super(t),this.name="TimeoutError"}},Es=class extends Error{constructor(t){super(),this.name="AbortError",this.message=t}},a5=e=>globalThis.DOMException===void 0?new Es(e):new DOMException(e),c5=e=>{let t=e.reason===void 0?a5("This operation was aborted."):e.reason;return t instanceof Error?t:a5(t)};function Gr(e,t){let{milliseconds:r,fallback:n,message:i,customTimers:o={setTimeout,clearTimeout}}=t,s,c=new Promise((u,f)=>{if(typeof r!="number"||Math.sign(r)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${r}\``);if(t.signal){let{signal:p}=t;p.aborted&&f(c5(p)),p.addEventListener("abort",()=>{f(c5(p))})}if(r===Number.POSITIVE_INFINITY){e.then(u,f);return}let l=new Ir;s=o.setTimeout.call(void 0,()=>{if(n){try{u(n())}catch(p){f(p)}return}typeof e.cancel=="function"&&e.cancel(),i===!1?u():i instanceof Error?f(i):(l.message=i??`Promise timed out after ${r} milliseconds`,f(l))},r),(async()=>{try{u(await e)}catch(p){f(p)}})()}).finally(()=>{c.clear()});return c.clear=()=>{o.clearTimeout.call(void 0,s),s=void 0},c}function Ss(e,t,r){let n=0,i=e.length;for(;i>0;){let o=Math.trunc(i/2),s=n+o;r(e[s],t)<=0?(n=++s,i-=o+1):i=o}return n}var x0=class{#t=[];enqueue(t,r){r={priority:0,...r};let n={priority:r.priority,run:t};if(this.size&&this.#t[this.size-1].priority>=r.priority){this.#t.push(n);return}let i=Ss(this.#t,n,(o,s)=>s.priority-o.priority);this.#t.splice(i,0,n)}dequeue(){return this.#t.shift()?.run}filter(t){return this.#t.filter(r=>r.priority===t.priority).map(r=>r.run)}get size(){return this.#t.length}};var Yr=class extends m0.default{#t;#o;#i=0;#a;#c;#p=0;#r;#u;#e;#y;#n=0;#f;#s;#g;timeout;constructor(t){if(super(),t={carryoverConcurrencyCount:!1,intervalCap:Number.POSITIVE_INFINITY,interval:0,concurrency:Number.POSITIVE_INFINITY,autoStart:!0,queueClass:x0,...t},!(typeof t.intervalCap=="number"&&t.intervalCap>=1))throw new TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${t.intervalCap?.toString()??""}\` (${typeof t.intervalCap})`);if(t.interval===void 0||!(Number.isFinite(t.interval)&&t.interval>=0))throw new TypeError(`Expected \`interval\` to be a finite number >= 0, got \`${t.interval?.toString()??""}\` (${typeof t.interval})`);this.#t=t.carryoverConcurrencyCount,this.#o=t.intervalCap===Number.POSITIVE_INFINITY||t.interval===0,this.#a=t.intervalCap,this.#c=t.interval,this.#e=new t.queueClass,this.#y=t.queueClass,this.concurrency=t.concurrency,this.timeout=t.timeout,this.#g=t.throwOnTimeout===!0,this.#s=t.autoStart===!1}get#v(){return this.#o||this.#i<this.#a}get#b(){return this.#n<this.#f}#w(){this.#n--,this.#l(),this.emit("next")}#E(){this.#x(),this.#m(),this.#u=void 0}get#S(){let t=Date.now();if(this.#r===void 0){let r=this.#p-t;if(r<0)this.#i=this.#t?this.#n:0;else return this.#u===void 0&&(this.#u=setTimeout(()=>{this.#E()},r)),!0}return!1}#l(){if(this.#e.size===0)return this.#r&&clearInterval(this.#r),this.#r=void 0,this.emit("empty"),this.#n===0&&this.emit("idle"),!1;if(!this.#s){let t=!this.#S;if(this.#v&&this.#b){let r=this.#e.dequeue();return r?(this.emit("active"),r(),t&&this.#m(),!0):!1}}return!1}#m(){this.#o||this.#r!==void 0||(this.#r=setInterval(()=>{this.#x()},this.#c),this.#p=Date.now()+this.#c)}#x(){this.#i===0&&this.#n===0&&this.#r&&(clearInterval(this.#r),this.#r=void 0),this.#i=this.#t?this.#n:0,this.#h()}#h(){for(;this.#l(););}get concurrency(){return this.#f}set concurrency(t){if(!(typeof t=="number"&&t>=1))throw new TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${t}\` (${typeof t})`);this.#f=t,this.#h()}async#I(t){return new Promise((r,n)=>{t.addEventListener("abort",()=>{n(t.reason)},{once:!0})})}async add(t,r={}){return r={timeout:this.timeout,throwOnTimeout:this.#g,...r},new Promise((n,i)=>{this.#e.enqueue(async()=>{this.#n++,this.#i++;try{r.signal?.throwIfAborted();let o=t({signal:r.signal});r.timeout&&(o=Gr(Promise.resolve(o),{milliseconds:r.timeout})),r.signal&&(o=Promise.race([o,this.#I(r.signal)]));let s=await o;n(s),this.emit("completed",s)}catch(o){if(o instanceof Ir&&!r.throwOnTimeout){n();return}i(o),this.emit("error",o)}finally{this.#w()}},r),this.emit("add"),this.#l()})}async addAll(t,r){return Promise.all(t.map(async n=>this.add(n,r)))}start(){return this.#s?(this.#s=!1,this.#h(),this):this}pause(){this.#s=!0}clear(){this.#e=new this.#y}async onEmpty(){this.#e.size!==0&&await this.#d("empty")}async onSizeLessThan(t){this.#e.size<t||await this.#d("next",()=>this.#e.size<t)}async onIdle(){this.#n===0&&this.#e.size===0||await this.#d("idle")}async#d(t,r){return new Promise(n=>{let i=()=>{r&&!r()||(this.off(t,i),n())};this.on(t,i)})}get size(){return this.#e.size}sizeBy(t){return this.#e.filter(t).length}get pending(){return this.#n}get isPaused(){return this.#s}};var M1=class{log;datastore;cache;cleanupInterval;provideValidity;syncQueue;started;cleaner;constructor(t,r={}){let{cacheSize:n,cleanupInterval:i,provideValidity:o}=r;this.log=t.logger.forComponent("libp2p:kad-dht:providers"),this.datastore=t.datastore,this.cleanupInterval=i??36e5,this.provideValidity=o??864e5,this.cache=(0,u5.default)(n??256),this.syncQueue=new Yr({concurrency:1}),this.started=!1}isStarted(){return this.started}async start(){this.started||(this.started=!0,this.cleaner=setInterval(()=>{this._cleanup().catch(t=>{this.log.error(t)})},this.cleanupInterval))}async stop(){this.started=!1,this.cleaner!=null&&(clearInterval(this.cleaner),this.cleaner=void 0)}async _cleanup(){await this.syncQueue.add(async()=>{let t=Date.now(),r=0,n=0,i=new Map,o=this.datastore.batch(),s=this.datastore.query({prefix:ci});for await(let a of s)try{let{cid:c,peerId:u}=f5(a.key),f=l5(a.value).getTime(),l=Date.now(),p=l-f,d=p>this.provideValidity;if(this.log("comparing: %d - %d = %d > %d %s",l,f,p,this.provideValidity,d?"(expired)":""),d){n++,o.delete(a.key);let h=i.get(c)??new Set;h.add(u),i.set(c,h)}r++}catch(c){this.log.error(c.message)}i.size>0?(this.log("deleting %d / %d entries",n,r),await o.commit()):this.log("nothing to delete");for(let[a,c]of i){let u=v0(a),f=this.cache.get(u);if(f!=null){for(let l of c)f.delete(l);f.size===0?this.cache.remove(u):this.cache.set(u,f)}}this.log("Cleanup successful (%dms)",Date.now()-t)})}async _getProvidersMap(t){let r=v0(t),n=this.cache.get(r);return n==null&&(n=await _l(this.datastore,t),this.cache.set(r,n)),n}async addProvider(t,r){await this.syncQueue.add(async()=>{this.log("%p provides %s",r,t);let n=await this._getProvidersMap(t);this.log("loaded %s provs",n.size);let i=new Date;n.set(r.toString(),i);let o=v0(t);this.cache.set(o,n),await Rl(this.datastore,t,r,i)})}async getProviders(t){return this.syncQueue.add(async()=>(this.log("get providers for %s",t),[...(await this._getProvidersMap(t)).keys()].map(n=>ce(n))),{throwOnTimeout:!0})}};function v0(e){let t=typeof e=="string"?e:q(e.multihash.bytes,"base32");return`${ci}/${t}`}async function Rl(e,t,r,n){let i=[v0(t),"/",r.toString()].join(""),o=new ln(i),s=Le(n.getTime());await e.put(o,s)}function f5(e){let t=e.toString().split("/");if(t.length!==5)throw new Error(`incorrectly formatted provider entry key in datastore: ${e.toString()}`);return{cid:t[3],peerId:t[4]}}async function _l(e,t){let r=new Map,n=e.query({prefix:v0(t)});for await(let i of n){let{peerId:o}=f5(i.key);r.set(o,l5(i.value))}return r}function l5(e){return new Date(ie(e))}function Nn(e){let t=new globalThis.AbortController;function r(){t.abort();for(let o of e)o?.removeEventListener!=null&&o.removeEventListener("abort",r)}for(let o of e){if(o?.aborted===!0){r();break}o?.addEventListener!=null&&o.addEventListener("abort",r)}function n(){for(let o of e)o?.removeEventListener!=null&&o.removeEventListener("abort",r)}let i=t.signal;return i.clear=n,i}async function*h5(e,t,r,n){let i=Xr({objectMode:!0}),o=l=>{n("clean up queue, results %d, queue size %d, pending tasks %d",i.readableLength,e.size,e.pending),e.clear(),i.end(l)},s=l=>{l!=null&&i.push(l)},a=l=>{n("queue error",l),o(l)},c=()=>{n("queue idle"),o()},u=()=>{n("abort queue"),o(new _("Query aborted","ERR_QUERY_ABORTED"))},f=()=>{o()};e.on("completed",s),e.on("error",a),e.on("idle",c),t.addEventListener("abort",u),r.addEventListener("cleanup",f);try{yield*i}finally{e.removeListener("completed",s),e.removeListener("error",a),e.removeListener("idle",c),t.removeEventListener("abort",u),r.removeEventListener("cleanup",f)}}var Pl=BigInt("0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF");async function*d5(e){let{key:t,startingPeer:r,ourPeerId:n,signal:i,query:o,alpha:s,pathIndex:a,numPaths:c,cleanUp:u,queryFuncTimeout:f,log:l,peersSeen:p}=e,d=new Yr({concurrency:s}),h=await dr(t);function y(g,m){if(g==null)return;p.add(g);let x=BigInt("0x"+q(or(m,h),"base16"));d.add(async()=>{let v=[i];f!=null&&v.push(AbortSignal.timeout(f));let T=Nn(v);try{for await(let E of o({key:t,peer:g,signal:T,pathIndex:a,numPaths:c})){if(T.aborted)return;if(E.name==="PEER_RESPONSE")for(let S of E.closer){if(p.has(S.id)){l("already seen %p in query",S.id);continue}if(n.equals(S.id)){l("not querying ourselves");continue}let L=await ge(S.id);if(BigInt("0x"+q(or(L,h),"base16"))>x){l("skipping %p as they are not closer to %b than %p",S.id,t,g);continue}l("querying closer peer %p",S.id),y(S.id,L)}d.emit("completed",E)}}catch(E){if(!i.aborted)return ne({from:g,error:E},e)}finally{T.clear()}},{priority:Pl-x}).catch(v=>{l.error(v)})}y(r,await ge(r)),yield*h5(d,i,u,l)}var V1=class{disjointPaths;alpha;shutDownController;running;queries;logger;peerId;routingTable;initialQuerySelfHasRun;logPrefix;metrics;constructor(t,r){let{disjointPaths:n=20,alpha:i=3,logPrefix:o}=r;this.logPrefix=o,this.disjointPaths=n??20,this.running=!1,this.alpha=i??3,this.queries=0,this.initialQuerySelfHasRun=r.initialQuerySelfHasRun,this.routingTable=r.routingTable,this.logger=t.logger,this.peerId=t.peerId,t.metrics!=null&&(this.metrics={runningQueries:t.metrics.registerMetric(`${o.replaceAll(":","_")}_running_queries`),queryTime:t.metrics.registerMetric(`${o.replaceAll(":","_")}_query_time_seconds`)}),this.shutDownController=new AbortController,Qr(1/0,this.shutDownController.signal)}isStarted(){return this.running}async start(){this.running=!0}async stop(){this.running=!1,this.shutDownController.abort()}async*run(t,r,n={}){if(!this.running)throw new Error("QueryManager not started");let i=this.metrics?.queryTime.timer();if(n.signal==null){let u=AbortSignal.timeout(3e4);Qr(1/0,u),n={...n,signal:u}}let o=Nn([this.shutDownController.signal,n.signal]);Qr(1/0,o);let s=this.logger.forComponent(`${this.logPrefix}:query:`+q(t,"base58btc")),a=Date.now(),c=new jt;try{n.isSelfQuery!==!0&&this.initialQuerySelfHasRun!=null&&(s("waiting for initial query-self query before continuing"),await Promise.race([new Promise((h,y)=>{o.addEventListener("abort",()=>{y(new I0("Query was aborted before self-query ran"))})}),this.initialQuerySelfHasRun.promise]),this.initialQuerySelfHasRun=void 0),s("query:start"),this.queries++,this.metrics?.runningQueries.update(this.queries);let u=await dr(t),f=this.routingTable.closestPeers(u),l=f.slice(0,Math.min(this.disjointPaths,f.length));if(f.length===0){s.error("Running query with no peers");return}let p=new me,d=l.map((h,y)=>d5({key:t,startingPeer:h,ourPeerId:this.peerId,signal:o,query:r,pathIndex:y,numPaths:l.length,alpha:this.alpha,cleanUp:c,queryFuncTimeout:n.queryFuncTimeout,log:s,peersSeen:p,onProgress:n.onProgress}));for await(let h of T0(...d))yield h,h.name==="QUERY_ERROR"&&s("error",h.error)}catch(u){if(!(!this.running&&u.code==="ERR_QUERY_ABORTED"))throw u}finally{o.clear(),this.queries--,this.metrics?.runningQueries.update(this.queries),i?.(),c.dispatchEvent(new Qt("cleanup")),s("query:done in %dms",Date.now()-a)}}};function Nl(e){return e[Symbol.asyncIterator]!=null}function Dl(e){if(Nl(e))return(async()=>{let t=0;for await(let r of e)t++;return t})();{let t=0;for(let r of e)t++;return t}}var q1=Dl;function kl(e){return e[Symbol.asyncIterator]!=null}function Ol(e,t){return kl(e)?async function*(){let r=0;if(!(t<1)){for await(let n of e)if(yield n,r++,r===t)return}}():function*(){let r=0;if(!(t<1)){for(let n of e)if(yield n,r++,r===t)return}}()}var p5=Ol;var Ul=e=>{let 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 Fl(e,t,r){let n,i=new Promise((o,s)=>{if(r={rejectionEvents:["error"],multiArgs:!1,resolveImmediately:!1,...r},!(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");r.signal?.throwIfAborted();let a=[t].flat(),c=[],{addListener:u,removeListener:f}=Ul(e),l=(...d)=>{let h=r.multiArgs?d:d[0];r.filter&&!r.filter(h)||(c.push(h),r.count===c.length&&(n(),o(c)))},p=d=>{n(),s(d)};n=()=>{for(let d of a)f(d,l);for(let d of r.rejectionEvents)f(d,p)};for(let d of a)u(d,l);for(let d of r.rejectionEvents)u(d,p);r.signal&&r.signal.addEventListener("abort",()=>{p(r.signal.reason)},{once:!0}),r.resolveImmediately&&o(c)});if(i.cancel=n,typeof r.timeout=="number"){let o=Gr(i,{milliseconds:r.timeout});return o.cancel=n,o}return i}function y5(e,t,r){typeof r=="function"&&(r={filter:r}),r={...r,count:1,resolveImmediately:!1};let n=Fl(e,t,r),i=n.then(o=>o[0]);return i.cancel=n.cancel,i}var z1=class{log;peerId;peerRouting;routingTable;count;interval;initialInterval;queryTimeout;started;timeoutId;controller;initialQuerySelfHasRun;querySelfPromise;constructor(t,r){let{peerRouting:n,logPrefix:i,count:o,interval:s,queryTimeout:a,routingTable:c}=r;this.peerId=t.peerId,this.log=t.logger.forComponent(`${i}:query-self`),this.started=!1,this.peerRouting=n,this.routingTable=c,this.count=o??20,this.interval=s??3e5,this.initialInterval=r.initialInterval??1e3,this.queryTimeout=a??5e3,this.initialQuerySelfHasRun=r.initialQuerySelfHasRun}isStarted(){return this.started}start(){this.started||(this.started=!0,clearTimeout(this.timeoutId),this.timeoutId=setTimeout(()=>{this.querySelf().catch(t=>{this.log.error("error running self-query",t)})},this.initialInterval))}stop(){this.started=!1,this.timeoutId!=null&&clearTimeout(this.timeoutId),this.controller!=null&&this.controller.abort()}async querySelf(){if(!this.started){this.log("skip self-query because we are not started");return}if(this.querySelfPromise!=null)return this.log("joining existing self query"),this.querySelfPromise.promise;if(this.querySelfPromise=Pt(),this.started){this.controller=new AbortController;let t=Nn([this.controller.signal,AbortSignal.timeout(this.queryTimeout)]);Qr(1/0,t);try{this.routingTable.size===0&&(this.log("routing table was empty, waiting for some peers before running query"),await y5(this.routingTable,"peer:add",{signal:t})),this.log("run self-query, look for %d peers timing out after %dms",this.count,this.queryTimeout);let r=Date.now(),n=await ar(this.peerRouting.getClosestPeers(this.peerId.toBytes(),{signal:t,isSelfQuery:!0}),i=>p5(i,this.count),async i=>q1(i));this.log("self-query found %d peers in %dms",n,Date.now()-r)}catch(r){this.log.error("self-query error",r)}finally{t.clear(),this.initialQuerySelfHasRun!=null&&(this.initialQuerySelfHasRun.resolve(),this.initialQuerySelfHasRun=void 0)}}this.querySelfPromise.resolve(),this.querySelfPromise=void 0,this.started&&(this.timeoutId=setTimeout(()=>{this.querySelf().catch(t=>{this.log.error("error running self-query",t)})},this.interval))}};function Is(e,t,r){let n=0,i=e.length;for(;i>0;){let o=Math.trunc(i/2),s=n+o;r(e[s],t)<=0?(n=++s,i-=o+1):i=o}return n}var b0=class{#t=[];enqueue(t,r){r={priority:0,...r};let n={priority:r.priority,run:t};if(this.size&&this.#t[this.size-1].priority>=r.priority){this.#t.push(n);return}let i=Is(this.#t,n,(o,s)=>s.priority-o.priority);this.#t.splice(i,0,n)}dequeue(){return this.#t.shift()?.run}filter(t){return this.#t.filter(r=>r.priority===t.priority).map(r=>r.run)}get size(){return this.#t.length}};var w0=class extends m0.default{#t;#o;#i=0;#a;#c;#p=0;#r;#u;#e;#y;#n=0;#f;#s;#g;timeout;constructor(t){if(super(),t={carryoverConcurrencyCount:!1,intervalCap:Number.POSITIVE_INFINITY,interval:0,concurrency:Number.POSITIVE_INFINITY,autoStart:!0,queueClass:b0,...t},!(typeof t.intervalCap=="number"&&t.intervalCap>=1))throw new TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${t.intervalCap?.toString()??""}\` (${typeof t.intervalCap})`);if(t.interval===void 0||!(Number.isFinite(t.interval)&&t.interval>=0))throw new TypeError(`Expected \`interval\` to be a finite number >= 0, got \`${t.interval?.toString()??""}\` (${typeof t.interval})`);this.#t=t.carryoverConcurrencyCount,this.#o=t.intervalCap===Number.POSITIVE_INFINITY||t.interval===0,this.#a=t.intervalCap,this.#c=t.interval,this.#e=new t.queueClass,this.#y=t.queueClass,this.concurrency=t.concurrency,this.timeout=t.timeout,this.#g=t.throwOnTimeout===!0,this.#s=t.autoStart===!1}get#v(){return this.#o||this.#i<this.#a}get#b(){return this.#n<this.#f}#w(){this.#n--,this.#l(),this.emit("next")}#E(){this.#x(),this.#m(),this.#u=void 0}get#S(){let t=Date.now();if(this.#r===void 0){let r=this.#p-t;if(r<0)this.#i=this.#t?this.#n:0;else return this.#u===void 0&&(this.#u=setTimeout(()=>{this.#E()},r)),!0}return!1}#l(){if(this.#e.size===0)return this.#r&&clearInterval(this.#r),this.#r=void 0,this.emit("empty"),this.#n===0&&this.emit("idle"),!1;if(!this.#s){let t=!this.#S;if(this.#v&&this.#b){let r=this.#e.dequeue();return r?(this.emit("active"),r(),t&&this.#m(),!0):!1}}return!1}#m(){this.#o||this.#r!==void 0||(this.#r=setInterval(()=>{this.#x()},this.#c),this.#p=Date.now()+this.#c)}#x(){this.#i===0&&this.#n===0&&this.#r&&(clearInterval(this.#r),this.#r=void 0),this.#i=this.#t?this.#n:0,this.#h()}#h(){for(;this.#l(););}get concurrency(){return this.#f}set concurrency(t){if(!(typeof t=="number"&&t>=1))throw new TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${t}\` (${typeof t})`);this.#f=t,this.#h()}async#I(t){return new Promise((r,n)=>{t.addEventListener("abort",()=>{n(t.reason)},{once:!0})})}async add(t,r={}){return r={timeout:this.timeout,throwOnTimeout:this.#g,...r},new Promise((n,i)=>{this.#e.enqueue(async()=>{this.#n++,this.#i++;try{r.signal?.throwIfAborted();let o=t({signal:r.signal});r.timeout&&(o=Gr(Promise.resolve(o),{milliseconds:r.timeout})),r.signal&&(o=Promise.race([o,this.#I(r.signal)]));let s=await o;n(s),this.emit("completed",s)}catch(o){if(o instanceof Ir&&!r.throwOnTimeout){n();return}i(o),this.emit("error",o)}finally{this.#w()}},r),this.emit("add"),this.#l()})}async addAll(t,r){return Promise.all(t.map(async n=>this.add(n,r)))}start(){return this.#s?(this.#s=!1,this.#h(),this):this}pause(){this.#s=!0}clear(){this.#e=new this.#y}async onEmpty(){this.#e.size!==0&&await this.#d("empty")}async onSizeLessThan(t){this.#e.size<t||await this.#d("next",()=>this.#e.size<t)}async onIdle(){this.#n===0&&this.#e.size===0||await this.#d("idle")}async#d(t,r){return new Promise(n=>{let i=()=>{r&&!r()||(this.off(t,i),n())};this.on(t,i)})}get size(){return this.#e.size}sizeBy(t){return this.#e.filter(t).length}get pending(){return this.#n}get isPaused(){return this.#s}};function ql(e,t,r){let n=0,i=e.length;for(;i>0;){let o=Math.trunc(i/2),s=n+o;r(e[s],t)<=0?(n=++s,i-=o+1):i=o}return n}var As=class{#t=[];enqueue(t,r){let n=r?.peerId,i=r?.priority??0;if(n==null)throw new _("missing peer id",oi);let o={priority:i,peerId:n,run:t};if(this.size>0&&this.#t[this.size-1].priority>=i){this.#t.push(o);return}let s=ql(this.#t,o,(a,c)=>c.priority-a.priority);this.#t.splice(s,0,o)}dequeue(){return this.#t.shift()?.run}filter(t){if(t.peerId!=null){let r=t.peerId;return this.#t.filter(n=>r.equals(n.peerId)).map(n=>n.run)}return this.#t.filter(r=>r.priority===t.priority).map(r=>r.run)}get size(){return this.#t.length}},H1=class extends w0{results;constructor(t={}){super({...t,queueClass:As}),this.results=new yn}hasJob(t){return this.sizeBy({peerId:t})>0}async joinJob(t){let r=this.results.get(t);if(r==null)throw new _("No job found for peer id","ERR_NO_JOB_FOR_PEER_ID");return r===!0&&(r=Pt(),this.results.set(t,r)),r.promise}async add(t,r){let n=r?.peerId;if(n==null)throw new _("missing peer id",oi);return this.results.set(r.peerId,!0),super.add(async i=>{try{let o=await t(i),s=this.results.get(n);return s!=null&&s!==!0&&s.resolve(o),o}catch(o){let s=this.results.get(n);throw s!=null&&s!==!0&&s.reject(o),o}finally{this.results.delete(n)}},r)}clear(){this.results.clear(),super.clear()}};function g5(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let r=0,n=e.length;r<n;++r)if(e[r]!==t[r])return!1;return!0}function Bs(){return{contacts:[],dontSplit:!1,left:null,right:null}}function E0(e,t){if(!(t instanceof Uint8Array))throw new TypeError(e+" is not a Uint8Array")}var $1=class e extends jt{localNodeId;root;numberOfNodesPerKBucket;numberOfNodesToPing;distance;arbiter;constructor(t){super(),this.localNodeId=t.localNodeId,this.numberOfNodesPerKBucket=t.numberOfNodesPerKBucket??20,this.numberOfNodesToPing=t.numberOfNodesToPing??3,this.distance=t.distance??e.distance,this.arbiter=t.arbiter??e.arbiter,E0("option.localNodeId as parameter 1",this.localNodeId),this.root=Bs()}static arbiter(t,r){return(t.vectorClock??0)>(r.vectorClock??0)?t:r}static distance(t,r){let n=0,i=0,o=Math.min(t.length,r.length),s=Math.max(t.length,r.length);for(;i<o;++i)n=n*256+(t[i]^r[i]);for(;i<s;++i)n=n*256+255;return n}add(t){E0("contact.id",t?.id);let r=0,n=this.root;for(;n.contacts===null;)n=this._determineNode(n,t.id,r++);let i=this._indexOf(n,t.id);return i>=0?(this._update(n,i,t),this):n.contacts.length<this.numberOfNodesPerKBucket?(n.contacts.push(t),this.safeDispatchEvent("added",{detail:t}),this):n.dontSplit?(this.safeDispatchEvent("ping",{detail:{oldContacts:n.contacts.slice(0,this.numberOfNodesToPing),newContact:t}}),this):(this._split(n,r),this.add(t))}closest(t,r=1/0){if(E0("id",t),!Number.isInteger(r)&&r!==1/0||r<=0)throw new TypeError("n is not positive number");let n=[];for(let i=[this.root],o=0;i.length>0&&n.length<r;){let s=i.pop();if(s!=null)if(s.contacts===null){let a=this._determineNode(s,t,o++);i.push(s.left===a?s.right:s.left),i.push(a)}else n=n.concat(s.contacts)}return n.map(i=>({distance:this.distance(i.id,t),contact:i})).sort((i,o)=>i.distance-o.distance).slice(0,r).map(i=>i.contact)}count(){let t=0;for(let r=[this.root];r.length>0;){let n=r.pop();n!=null&&(n.contacts===null?r.push(n.right,n.left):t+=n.contacts.length)}return t}_determineNode(t,r,n){let i=n>>3,o=n%8;return r.length<=i&&o!==0?t.left:r[i]&1<<7-o?t.right:t.left}get(t){E0("id",t);let r=0,n=this.root;for(;n.contacts===null;)n=this._determineNode(n,t,r++);let i=this._indexOf(n,t);return i>=0?n.contacts[i]:void 0}_indexOf(t,r){for(let n=0;n<t.contacts.length;++n)if(g5(t.contacts[n].id,r))return n;return-1}remove(t){E0("the id as parameter 1",t);let r=0,n=this.root;for(;n.contacts===null;)n=this._determineNode(n,t,r++);let i=this._indexOf(n,t);if(i>=0){let o=n.contacts.splice(i,1)[0];this.safeDispatchEvent("removed",{detail:o})}return this}_split(t,r){t.left=Bs(),t.right=Bs();for(let o of t.contacts)this._determineNode(t,o.id,r).contacts.push(o);t.contacts=null;let n=this._determineNode(t,this.localNodeId,r),i=t.left===n?t.right:t.left;i.dontSplit=!0}toArray(){let t=[];for(let r=[this.root];r.length>0;){let n=r.pop();n!=null&&(n.contacts===null?r.push(n.right,n.left):t=t.concat(n.contacts))}return t}*toIterable(){for(let t=[this.root];t.length>0;){let r=t.pop();r!=null&&(r.contacts===null?t.push(r.right,r.left):yield*r.contacts)}}_update(t,r,n){if(!g5(t.contacts[r].id,n.id))throw new Error("wrong index for _update");let i=t.contacts[r],o=this.arbiter(i,n);o===i&&i!==n||(t.contacts.splice(r,1),t.contacts.push(o),this.safeDispatchEvent("updated",{detail:{incumbent:i,selection:o}}))}};var zl="kad-close",Hl=50,m5=20,$l=1e4,Gl=10,G1=class extends jt{kBucketSize;kb;pingQueue;log;components;pingTimeout;pingConcurrency;running;protocol;tagName;tagValue;metrics;constructor(t,r){super();let{kBucketSize:n,pingTimeout:i,logPrefix:o,pingConcurrency:s,protocol:a,tagName:c,tagValue:u}=r;this.components=t,this.log=t.logger.forComponent(`${o}:routing-table`),this.kBucketSize=n??m5,this.pingTimeout=i??$l,this.pingConcurrency=s??Gl,this.running=!1,this.protocol=a,this.tagName=c??zl,this.tagValue=u??Hl;let f=()=>{this.metrics?.pingQueueSize.update(this.pingQueue.size),this.metrics?.pingRunning.update(this.pingQueue.pending)};this.pingQueue=new H1({concurrency:this.pingConcurrency}),this.pingQueue.addListener("add",f),this.pingQueue.addListener("next",f),this.pingQueue.addListener("error",l=>{this.log.error("error pinging peer",l)}),this.components.metrics!=null&&(this.metrics={routingTableSize:this.components.metrics.registerMetric(`${o.replaceAll(":","_")}_routing_table_size`),pingQueueSize:this.components.metrics.registerMetric(`${o.replaceAll(":","_")}_ping_queue_size`),pingRunning:this.components.metrics.registerMetric(`${o.replaceAll(":","_")}_ping_running`)})}isStarted(){return this.running}async start(){this.running=!0;let t=new $1({localNodeId:await ge(this.components.peerId),numberOfNodesPerKBucket:this.kBucketSize,numberOfNodesToPing:1});this.kb=t,t.addEventListener("ping",r=>{this._onPing(r).catch(n=>{this.log.error("could not process k-bucket ping event",n)})}),this._tagPeers(t)}async stop(){this.running=!1,this.pingQueue.clear(),this.kb=void 0}_tagPeers(t){let r=new me,n=j2(()=>{let i=new me(t.closest(t.localNodeId,m5).map(a=>a.peer)),o=i.difference(r),s=r.difference(i);Promise.resolve().then(async()=>{for(let a of o)await this.components.peerStore.merge(a,{tags:{[this.tagName]:{value:this.tagValue}}});for(let a of s)await this.components.peerStore.merge(a,{tags:{[this.tagName]:void 0}})}).catch(a=>{this.log.error("Could not update peer tags",a)}),r=i});t.addEventListener("added",i=>{n(),this.safeDispatchEvent("peer:add",{detail:i.detail.peer})}),t.addEventListener("removed",i=>{n(),this.safeDispatchEvent("peer:remove",{detail:i.detail.peer})})}async _onPing(t){if(!this.running)return;let{oldContacts:r,newContact:n}=t.detail,o=(await Promise.all(r.map(async s=>this.pingQueue.hasJob(s.peer)?this.pingQueue.joinJob(s.peer):this.pingQueue.add(async()=>{let a;try{let c={signal:AbortSignal.timeout(this.pingTimeout)};this.log("pinging old contact %p",s.peer),a=await(await this.components.connectionManager.openConnection(s.peer,c)).newStream(this.protocol,c);let f=jn(a);await f.write({type:J.PING},ae,c);let l=await f.read(ae,c);if(await f.unwrap().close(),l.type!==J.PING)throw new _(`Incorrect message type received, expected PING got ${l.type}`,"ERR_BAD_PING_RESPONSE");return!0}catch(c){return this.running&&this.kb!=null&&(this.log.error("could not ping peer %p",s.peer,c),this.log("evicting old contact after ping failed %p",s.peer),this.kb.remove(s.id)),a?.abort(c),!1}finally{this.metrics?.routingTableSize.update(this.size)}},{peerId:s.peer})))).filter(s=>s).length;this.running&&o<r.length&&this.kb!=null&&(this.log("adding new contact %p",n.peer),this.kb.add(n))}get size(){return this.kb==null?0:this.kb.count()}async find(t){let r=await ge(t),n=this.closestPeer(r);if(n!=null&&t.equals(n))return n}closestPeer(t){let r=this.closestPeers(t,1);if(r.length>0)return r[0]}closestPeers(t,r=this.kBucketSize){return this.kb==null?[]:this.kb.closest(t,r).map(i=>i.peer)}async add(t){if(this.kb==null)throw new Error("RoutingTable is not started");let r=await ge(t);this.kb.add({id:r,peer:t}),this.log("added %p with kad id %b",t,r),this.metrics?.routingTableSize.update(this.size)}async remove(t){if(this.kb==null)throw new Error("RoutingTable is not started");let r=await ge(t);this.kb.remove(r),this.metrics?.routingTableSize.update(this.size)}};var x5=[77591,22417,43971,28421,740,29829,71467,228973,196661,78537,27689,36431,44415,14362,19456,106025,96308,2882,49509,21149,87173,131409,75844,23676,121838,30291,17492,2953,7564,110620,129477,127283,53113,72417,165166,109690,21200,102125,24049,71504,90342,25307,72039,26812,26715,32264,133800,71161,88956,171987,51779,24425,16671,30251,186294,247761,14202,2121,8465,35024,4876,85917,169730,3638,256836,96184,943,18678,6583,52907,35807,112254,214097,18796,11595,9243,23554,887,268203,382004,24590,111335,11625,16619,29039,102425,69006,97976,92362,32552,63717,41433,128974,137630,59943,10019,13986,35430,33665,108037,43799,43280,38195,29078,58629,18265,14425,46832,235538,40830,77881,110717,58937,3463,325358,51300,47623,117252,19007,10170,20540,91237,294813,4951,79841,56232,36270,128547,69209,66275,100156,32063,73531,34439,80937,28892,44466,88595,216307,32583,49620,16605,82127,45807,21630,78726,20235,40163,111007,96926,5567,72083,21665,58844,39419,179767,48328,42662,51550,5251,37811,49608,81056,50854,55513,20922,18891,197409,164656,32593,71449,220474,58919,85682,67854,13758,35066,3565,61905,214793,119572,141419,21504,10302,27354,67003,46131,32668,15165,64871,34450,17821,2757,11452,34189,5160,12257,85523,560,53385,65887,119549,135620,312353,115979,122356,10867,193231,124537,54783,90675,120791,4715,142253,50943,17271,43358,25331,4917,120566,34580,12878,33786,160528,32523,4869,301307,104817,81491,23276,8832,97911,31265,52065,7998,49622,9715,43998,34091,84587,20664,69041,29419,53205,10838,58288,116145,6185,5154,141795,35924,21307,144738,43730,12085,8279,10002,119,133779,199668,72938,31768,39176,67875,38453,9700,44144,4121,116048,41733,12868,82669,92308,128,34262,11332,7712,90764,36141,13553,71312,77470,117314,96549,49135,23602,54468,28605,6327,62308,17171,67531,21319,14105,894,107722,46157,8503,51069,100472,45138,15246,14577,35609,191464,1757,13364,161349,32067,91705,81144,52339,5408,91066,21983,14157,100545,4372,26630,129112,1423,29676,213626,4397,88436,99190,6877,49958,26122,114348,60661,29818,293118,50042,179738,16400,163423,89627,31040,43973,36638,45952,5153,1894,109322,1898,134021,12402,112077,68309,190269,69866,31938,107383,11522,105232,11248,14868,39852,71707,186525,16530,38162,106212,11700,5130,16608,26998,59586,108399,230033,43683,48135,82179,2073,5015,196684,189293,16378,23452,8301,35640,11632,214551,29240,57644,33137,91949,55157,52384,117313,5090,17717,89668,49363,82238,241035,66216,29066,184088,97206,62820,26595,4241,135635,173672,8202,459,71355,146294,29587,3008,135385,141203,14803,6634,45094,69362,50925,546,51884,62011,83296,234584,44515,56050,89476,87751,19373,12691,149923,19794,13833,35846,87557,58339,2884,19145,25647,12224,11024,77338,64608,122297,53025,7205,36189,36294,170779,21750,7739,173883,75192,35664,224240,113121,30181,26267,27036,117827,92015,106516,55628,203549,67949,60462,60844,35911,20457,1820,920,19773,8738,73173,181993,38521,98254,76257,46008,92796,5384,26868,151566,22124,2411,15919,186872,180021,28099,152961,78811,80237,62352,102653,74259,184890,16792,123702,224945,29940,19512,75283,14059,112691,92811,233329,20411,138569,53341,109802,50600,134528,66747,5529,166531,31578,64732,67189,1596,126357,967,167999,206598,109752,119431,207825,78791,91938,10301,27311,24233,252343,28831,32812,66002,112267,90895,8786,8095,16824,22866,21813,60507,174833,19549,130985,117051,52110,6938,81923,123864,38061,919,18680,53534,46739,112893,161529,85429,26761,11900,81121,91968,15390,217947,56524,1713,6654,37089,85630,138866,61850,16491,75577,16884,98296,73523,6140,44645,6062,36366,29844,57946,37932,42472,5266,20834,19309,33753,127182,134259,35810,41805,45878,312001,14881,47757,49251,120050,44252,3708,25856,107864,120347,1228,36550,41682,34496,47025,8393,173365,246526,12894,161607,35670,90785,126572,2095,124731,157033,58694,554,12786,9642,4817,16136,47864,174698,66992,4639,69284,10625,40710,27763,51738,30404,264105,137904,109882,52487,42824,57514,2740,10479,146799,107390,16586,88038,174951,9410,16185,44158,5568,40658,46108,12763,97385,26175,108859,664,230732,67470,46663,14395,50750,141320,93140,15361,47997,55784,6791,307840,118569,107326,18056,58281,260415,54691,8790,73332,45633,7511,45674,143373,14031,11799,94491,35646,96544,14560,26049,32983,25791,83814,42094,231370,63955,139212,2359,169908,3108,183486,105867,28197,32941,124968,26402,88267,149768,23053,3078,19091,52924,25383,19209,111548,97361,3959,24880,235061,9099,24921,161254,151405,20508,7159,34381,20133,11434,74036,19974,34769,36585,1076,22454,17354,38727,235160,111547,96454,117448,156940,91330,37299,7310,26915,117060,51369,22620,61861,322264,106850,111694,15091,2624,40345,300446,177064,1707,27389,54792,327783,132669,183543,59003,17744,20603,151134,106923,53084,71803,279424,319816,11579,21946,16728,38274,72711,5085,83391,88646,40159,25027,34680,10752,12988,54126,30365,18338,100445,230674,44874,84974,143877,123253,139372,28082,91477,144002,13096,219729,46016,50029,42377,14601,6660,58244,58978,23918,88206,113611,64452,17541,41032,10942,12021,49189,10978,40175,37156,10947,71709,106894,112538,57007,137486,150608,152719,40615,7746,279716,13101,19524,28708,40578,72320,1096,182051,94527,51275,22833,45164,81917,77519,48508,5421,140302,37845,149830,5587,27579,5357,428725,248187,6326,206760,39814,32585,89923,44341,288753,284443,96368,31201,94189,119504,20359,52073,103216,179,27934,32801,96035,34111,34309,101326,18198,20704,210266,37643,27880,141873,106e3,19414,56614,167714,66483,107885,86602,4379,20796,75467,4987,5017,118857,26003,34308,114428,29198,6686,29697,73632,3739,69795,16798,41504,7207,30722,21436,36735,28067,28545,3239,11221,36031,41889,100010,19247,317673,29495,174554,6424,129725,53845,94986,7955,59676,2604,191497,19735,102214,62954,23844,11872,179525,261436,34492,428,78404,142035,16747,17246,27578,37021,33672,57944,26056,135760,2369,61674,122066,31327,19374,157065,40553,130982,69619,71290,38855,72100,92903,95940,51422,165999,65713,57873,50726,7288,20272,2081,42326,22624,81120,57914,79352,19447,1684,72302,11774,302559,161481,96396,13692,414988,3721,79066,56627,46883,21150,11747,12184,5856,113458,176117,84416,52079,27933,3354,59765,141359,2212,216309,2555,23458,196722,142463,45701,44548,28798,19418,215,29916,9396,10574,114226,84475,13520,18694,34056,4524,90302,62930,13539,19407,77209,7728,38088,9535,2263,23875,183945,17750,26274,67172,10585,28042,22199,7478,51331,66030,26774,192929,31434,25850,50197,52926,178158,4679,181256,70184,229600,9959,105594,72158,73974,2726,35085,78087,23284,35568,51713,155676,5401,27254,11966,17569,223253,71993,103357,111477,55722,30504,26034,46774,35392,36285,214814,41143,163465,1051,16094,81044,6636,76489,179102,20712,39178,35683,125177,54219,30617,52994,25324,50123,2543,87529,58995,10688,125199,12388,60158,125481,131646,7642,133350,65874,3438,97277,101450,10075,56344,116821,50778,60547,98016,106135,13859,14255,16300,77373,173521,8285,45932,37426,4054,114295,55947,7703,39114,52,51119,128135,19714,60715,9554,50492,88180,2823,118271,52993,122625,97919,23859,37895,25040,33614,32102,20431,3577,9275,15686,43031,157741,110358,1884,40291,125391,13736,5008,64881,87336,77381,70711,43032,49155,118587,70494,4318,10168,30126,12580,10524,280104,104001,145413,2862,84140,6603,106005,13566,12780,11251,42830,571,179910,82443,13146,469,42714,32591,265217,424024,92553,54721,134100,6007,15242,114681,59030,16718,85465,200214,85982,55174,165013,23493,56964,82529,109150,32706,27568,82442,5350,14976,13165,44890,60021,21343,33978,17264,4655,22328,27819,75730,16567,55483,14510,17926,45827,150609,3704,7385,272531,161543,76904,122163,52405,2039,19165,41623,14423,228354,3369,176360,85491,7122,35789,303724,4465,13628,2233,55311,118771,20713,10006,221519,45115,71021,35650,29775,7337,10864,20665,21142,1746,15080,1624,32449,10905,105743,229797,7701,3940,22997,178467,57208,389057,39683,59403,63344,63125,54847,69691,18336,56448,3362,37202,18282,29648,138224,35867,10495,5911,28814,26653,31514,176702,26550,45621,11734,4525,40543,73944,121080,27858,155561,14887,44670,30742,8796,107455,113472,56369,75581,183777,240095,133699,153299,8768,160464,26058,49078,103971,21875,71486,44888,17156,9678,89541,123019,102337,3972,83930,21245,87852,109660,287918,183019,686,10100,39177,283941,11274,24736,26793,26214,25995,77011,141580,4070,23742,46285,46632,30700,26669,19056,35951,115575,174034,56097,35463,87425,24575,44245,38701,82317,85922,281616,100333,147697,61503,7730,84330,8530,59917,61597,17173,9092,32658,90288,193136,39023,20381,56654,31132,7779,1919,1375,117128,30819,11169,40938,23935,115201,101155,151034,4835,11231,74550,89388,59951,91704,107312,167882,115062,12732,72738,88703,464019,158267,57995,60496,737,14371,123867,4174,243339,159946,7568,16025,134556,110916,38103,191,80226,88794,29688,27230,10454,76308,57647,77409,113483,66864,14745,19808,12023,46583,84805,16015,17102,2231,20611,3547,95740,250131,34559,108894,8498,15853,159169,148920,20942,2813,93160,45188,210613,45531,52587,149062,39782,28194,57849,60965,84954,89766,84453,100927,16501,27658,165311,103841,54192,207341,19558,20084,319622,5672,205467,98462,61849,36279,13609,147177,24726,165015,209489,59591,31157,6551,117580,75060,141146,277310,21072,22023,106474,63041,137443,122965,68371,5383,42146,98961,113467,30863,23794,4843,99630,30392,82679,13699,241612,33601,93146,24319,18643,32155,95669,40440,15333,34089,67799,142144,58245,38633,114531,117400,77861,188726,5507,2568,8853,10987,107222,2663,2421,11530,13345,30075,41785,118661,104786,17459,12490,16281,71936,193555,17431,5944,71758,26485,77317,20803,367167,158,7362,93430,11735,172445,46002,11532,54482,930,62911,2235,23004,179236,4764,101859,208113,22477,55163,95579,14098,67320,162556,90709,156949,3826,57492,4025,34092,87442,104565,6718,186015,28214,14209,10039,107186,233912,58877,81637,55265,39828,6194,145813,50831,105849,4974,88319,122296,10272,197216,95714,51540,72418,23324,91555,8743,140452,250249,51666,34124,7229,38592,129641,78169,174242,22464,149964,51450,14034,10026,95376,26190,120062,14401,8700,265,31386,143573,7203,229889,61567,4227,140981,2466,72052,10787,10062,30958,6099,38471,30103,23202,208101,70847,467,58934,32271,32984,36637,24107,30771,17109,73353,13650,2098,157040,67366,66904,106018,265380,107238,18535,44025,32681,144983,62505,91295,56120,3082,77508,10322,63023,36700,81885,224127,16721,45023,239261,111272,13852,7866,149243,204199,32309,22084,42029,38316,126644,104973,14406,43454,67322,61310,15789,40285,24026,181047,6301,70927,23319,115823,27248,66693,115875,278566,63007,146844,56841,59007,87368,180001,22370,42114,80605,12022,10374,308,25079,14689,12618,63368,7936,264973,212291,136713,95999,105801,18965,32075,48700,52230,35119,96912,32992,8586,16606,101333,101812,14969,39930,759,193090,27387,42914,12937,5058,62646,64528,38624,25743,37502,3716,4435,30352,178687,26461,132611,42002,138442,35833,59582,16345,8048,60319,49349,309,47800,49739,90482,26405,34470,63786,32479,85028,39866,47846,11649,23934,29466,2816,42864,31828,7410,74885,49632,47629,111801,90749,19536,18767,105764,59606,21223,10746,76298,22220,39408,7190,79654,64856,11602,82156,272765,17079,70089,245473,51813,184407,384678,1576,122249,5064,27481,6188,25790,74361,27541,318284,45430,31488,620,93579,45723,192118,22670,51913,4162,70244,35966,26397,16199,50899,209613,121702,287507,2993,36101,132229,67345,33062,76295,118628,78705,52316,34375,107083,107454,44863,127561,33964,3073,154010,190914,55967,39074,6272,31047,5550,41123,26154,98638,47110,19998,148091,50229,31329,59900,195442,19106,61347,73497,70015,682,45850,25776,38022,148951,6288,37411,232526,109277,27286,32342,9262,5220,16651,23175,46740,129438,78614,121925,66914,88710,127952,5563,21500,34521,10739,14863,191006,62956,17359,16749,67027,56284,69134,43301,35039,58883,54466,60823,404451,75743,59856,86979,7923,34273,83785,32142,7693,268986,197428,282681,17049,22346,22990,92245,107180,3357,37104,96724,49153,7683,31197,43267,82231,164276,23696,20848,188364,22309,24821,158707,1018,22514,70922,27792,45589,59709,10765,736,35218,63479,51987,24275,63588,55361,92929,81964,4658,20122,12330,44058,13065,311456,72224,8337,211229,38979,22590,138478,52757,32595,133600,8838,31549,94412,43391,90056,1585,94802,127271,6223,31889,137038,132910,2165,57616,230152,6080,10748,36737,74579,134062,50525,180532,119270,34556,76155,82394,52595,29258,31435,87820,67996,26943,183878,38007,2410,13526,180297,69856,3503,187396,167700,7838,16701,9199,56267,3661,37407,65994,23767,5708,62508,221700,67088,86978,46776,84434,32088,5612,9149,88244,21685,95151,46750,189612,2979,506311,2594,3628,40074,105039,78243,28523,6651,38058,71999,30992,12764,68261,108991,6165,26450,61961,13400,22426,7490,60890,109623,2070,12958,50355,67979,257096,7213,42578,52121,35716,65461,7516,124758,39268,302,64712,14977,1467,219452,2840,34229,11121,21602,19270,63574,8024,1532,17331,79839,78885,52029,180767,57957,6069,91265,61380,55767,8927,32881,287603,22149,35029,68876,6428,199567,46926,13412,104132,21434,366616,45060,110046,81924,128910,45886,52821,130416,29416,77342,21762,67329,121432,79924,11724,38625,81006,102033,28338,13326,3250,82056,82526,38212,21112,12382,111495,3263,7414,86274,93490,40844,30224,45212,24019,48411,71367,24941,76729,57776,3769,38114,202019,197745,31953,237533,33270,201580,255648,100798,44741,32241,98468,106931,10085,15090,170358,33154,66787,18819,69760,25061,234005,82660,6295,131975,16874,9076,4094,25005,17740,40908,19533,220019,44330,99792,50040,19619,13950,55228,24423,31253,95308,103177,184795,28590,82285,5059,3210,75525,49894,70007,56178,10580,36051,139681,21617,98736,3555,106306,164189,37352,63915,47824,24883,145530,61904,28444,11483,19837,145446,30420,112972,85939,11835,191233,2262,20705,58630,1753,148334,1197,144714,6887,11223,107667,60879,77914,4151,57417,81594,96681,169430,1784,20444,95138,254041,27038,596,7117,72808,13759,3353,126776,21074,55322,27081,36942,39547,139830,179275,4453,713,8722,71399,19204,25785,22794,23923,104114,11291,25458,102309,88396,75288,230440,206396,104551,58447,130857,37247,94734,31548,176529,226077,65159,20104,10096,66881,94191,237909,27109,37404,1520,27421,25220,113003,23423,24884,50585,6286,231877,150800,11789,3226,90004,60642,5053,202400,61442,132531,175329,57138,30116,103847,9973,75367,16452,32360,59119,21246,10191,164804,23305,61051,37348,154530,13214,5468,50403,66754,130976,50559,80515,14436,155492,84017,5472,43107,41240,2890,90431,70188,382,76234,48040,50211,281038,237007,32115,142178,1536,22761,96429,1811,31243,1679,49143,55209,17402,235054,61494,7462,77030,34925,87609,78002,9499,9027,73289,201078,101379,63544,27666,5469,10642,30029,49816,132979,95620,58086,351930,116300,2110,2043,30845,6154,11279,16727,4122,2277,27281,4971,3650,39060,61970,65951,39674,75686,38151,11370,130809,177895,32665,63725,122267,7857,39618,118483,44792,157755,178624,136994,24260,41308,22471,12404,21707,12486,30473,52781,50246,20247,39065,909,56825,103158,128603,31542,1089,41935,32744,12428,37963,84420,33134,72921,208449,42622,168151,127335,147107,46699,38216,12591,94342,85814,31423,24944,2605,87542,67473,192551,4496,56321,91819,17630,6300,256183,114569,202090,33209,35289,34897,24967,40520,43470,5344,10199,34810,14283,10381,10017,62923,49924,23233,64539,13051,35686,19698,11570,135555,120868,44924,87065,52318,52335,47586,140906,245885,109834,78668,9065,46990,25258,72022,61243,40838,4545,146387,10537,11557,17470,36930,68104,46711,24264,79401,81043,18225,120488,24746,84338,81652,28266,13776,21878,46973,1047,230465,73357,95777,24973,210160,62210,58404,110633,169651,6937,41870,9909,26822,191062,76553,27519,96256,239070,2478,205678,67955,58532,20601,50120,19148,78501,195724,110740,8249,109665,27446,30568,57631,31425,49752,32820,65504,50079,3663,102256,219898,23849,211315,14645,4359,91767,9528,12449,49366,7941,49763,107848,8930,27086,50686,9744,10447,81935,39513,46514,1670,29229,6172,22312,137280,97759,9806,14445,22976,56458,73391,34983,93760,174219,52573,33149,59747,2429,136277,75123,165263,91040,7446,57632,48633,97140,246081,84766,151684,79918,93268,120346,54059,54875,77858,32996,103590,45276,11968,19600,25849,17159,132907,42828,16817,4913,99462,103303,27395,5737,74184,20749,21160,14377,77062,131403,158735,10999,27799,77785,9320,34366,51593,61070,33746,47048,29268,36675,30262,53297,9832,82e3,20188,122292,39917,7331,18160,68301,185935,134830,15031,4935,10004,165845,185534,46923,30109,44134,122631,18874,22903,112790,26561,18549,348902,82871,140345,255565,135390,63556,103747,145055,179600,145662,296111,61661,211987,23952,52342,126343,48450,32919,44277,82185,9591,62139,205363,376969,394874,108461,18040,120885,14798,39863,16571,16794,58271,81025,55206,14640,118656,6361,44092,85970,6262,153863,108244,180200,72264,79947,38044,10050,5735,61221,80712,5471,115689,11391,11661,184257,20010,60116,30320,19327,134598,45455,27542,18004,125092,452272,1549,91523,46567,180063,156026,2608,11174,58848,37788,65907,80194,30490,5786,40775,119519,106241,11323,156297,8425,61495,2617,29675,2425,59886,112582,49142,59618,4863,50597,86710,50650,168632,27693,85641,83643,18993,25768,84284,28090,93592,36627,312804,43381,9887,9402,100931,97165,3311,173330,66805,28935,4963,184460,3201,78102,19126,21607,37496,24938,22615,16153,32862,134792,153318,61120,6067,2812,12826,12792,23825,37559,64662,202250,102694,155488,85881,149193,46233,65383,15521,106982,11358,176786,25752,39717,34208,24510,32464,77742,39371,72028,138229,60688,71386,102834,132477,2208,11548,63670,271279,28351,30338,38620,32491,99845,143885,152266,13252,2825,178663,108097,1775,78201,14897,113573,163346,62292,171129,22183,96598,38733,64971,166776,117445,9968,146393,44677,74867,20908,97328,12761,25656,26785,9148,112344,26115,99176,110121,22437,49547,6180,79320,5835,31392,43328,33377,75870,119860,69497,80273,7325,155219,43167,111173,28347,20222,3763,71752,55041,47252,14618,28088,15012,97805,194698,54636,2036,41349,6173,96604,61530,51859,43782,13361,24334,22668,24792,7070,23441,16789,3209,36211,208475,26242,32880,122181,182407,21444,31060,88459,29929,77907,12716,10934,97005,20599,31690,8403,58445,30303,22700,10336,86731,103115,337709,72556,46788,112566,47684,67089,53548,36874,56487,41387,125985,26893,40071,106683,73712,18787,40105,72992,67246,137276,50802,36790,70328,138827,22466,39263,183295,29858,50975,9322,57397,10654,24364,30383,55799,41600,23584,127295,296610,129078,143558,244131,86397,36049,1085,80677,3820,108139,5476,34767,24683,7758,13060,7239,131671,250593,59556,103392,29810,4188,252323,39404,116877,7651,43600,40338,13554,157253,39196,25978,144387,61211,234,50104,6129,10449,93777,9240,356378,274148,4439,72970,3724,147770,78680,62570,115877,40027,40547,36817,224392,64609,34795,165027,67440,2477,37206,23431,50754,164797,46018,94995,170982,27051,7957,22767,3674,27900,56419,18930,60701,41302,2692,84749,339721,61996,111094,80221,50129,1045,8153,62945,19202,8250,37208,37418,32560,79477,41106,88569,33963,36693,5892,30570,1581,66471,49647,11922,160717,29442,5643,114865,82962,95982,132098,22633,22838,94726,54556,28566,205039,162340,33216,16849,35847,221339,94851,26533,71469,1805,3804,12935,45483,71020,36310,65381,192960,34240,35165,59773,1248,46954,155332,96864,4246,388800,16129,57133,74592,44807,442014,38203,42574,80818,91592,26377,36424,65760,977,77387,22628,147610,28018,30561,98454,6969,119628,63648,18170,36854,26601,64018,22027,37279,51395,152934,21153,9430,58760,194742,5330,55115,34158,28917,174111,13171,122326,1526,43896,66094,25325,4234,148354,11450,275,18999,112191,44365,22723,68409,8733,57746,96565,75007,14196,108844,29475,88599,177563,100792,106156,86323,93726,14248,135341,194131,40126,47099,14779,8272,39597,95983,171398,65882,28052,10393,47213,40689,22120,72212,106829,34964,109146,753,648,21660,30047,17527,181025,5619,145357,4085,216883,9359,186951,24779,53931,24545,36197,223296,62628,168101,4243,107313,30321,26642,13049,51059,31027,107912,807,73550,26551,84369,122422,165872,49754,74213,234264,33151,52014,33100,87183,22365,52500,40013,23302,5652,72723,21404,26107,48434,587,94049,168493,96418,32871,70860,31709,25128,443,71597,166253,15670,70994,26341,133675,28280,75491,54756,47955,56028,26182,11952,113272,472197,64640,110753,17919,337,50642,22576,142,87371,53391,93210,126694,15285,19642,85667,14148,1506,42092,52962,33243,11970,20734,135843,57044,58880,13002,219134,22876,64754,232519,4257,43120,321573,24799,64526,124728,52579,81472,70831,276848,17403,74359,23021,182101,74597,23744,148267,12055,7976,5349,11772,67540,167347,65318,18720,127832,108238,22828,90233,9987,259080,118185,73209,79270,13775,90100,137742,90799,70569,15699,19961,9087,67475,57872,39731,8810,134897,131868,146849,19898,3334,2281,167061,91073,60356,467742,74712,188,53179,137679,92769,29241,9537,132595,80119,1041,88962,5976,40171,44911,102859,139059,104558,98987,47761,19272,71472,113864,175377,73338,10857,23402,23758,1591,139864,5644,4076,118760,16427,134198,18853,20291,100849,37423,22038,36677,19071,195521,57445,11069,31869,55718,66882,148490,44,41296,75242,49704,166810,9906,20943,122258,49112,105667,15969,10344,6408,187694,21399,72742,58970,14867,14376,81889,41856,23225,15042,56993,16074,131389,74276,72407,53875,383108,53597,37363,68993,44854,122548,430927,198279,38430,80409,12245,2981,628,2818,17760,37437,238229,7968,46892,2200,3730,34190,65983,37959,112291,87850,70827,6522,20750,73913,111621,41652,19587,2780,58668,25916,85259,18200,168962,95781,42445,102050,7776,57662,103313,47742,96358,41964,66174,100396,29069,204735,19679,27978,7479,40264,22534,61183,36081,107436,58223,14680,23002,101311,24716,124108,12908,5646,31750,40380,14215,232799,102772,14122,96775,61398,50917,12096,149880,67833,598749,124194,155871,49216,790,14677,65319,56917,7440,145744,95701,12206,49405,129269,76199,45732,9767,11058,9047,210885,11051,7392,26307,2130,8132,147526,20802,232698,115660,50060,59789,57344,107623,80343,112676,23291,9866,160971,34032,118291,15719,59730,164911,28975,2659,58046,78480,21854,66209,53863,109085,116045,29021,46481,107552,22130,18764,70254,31272,11300,52460,43933,84738,20721,53869,190840,79673,105300,7561,321817,66924,13940,33281,101046,183181,32176,71878,5678,62924,79535,56646,40303,19559,27703,93042,73368,42187,3670,37376,46440,7023,36816,109628,20680,5940,276440,275233,170848,112093,136996,14984,20226,111441,77693,112960,48577,39370,55707,50314,123404,26570,54281,61372,123391,4857,35928,246740,132507,106646,44241,7196,92258,9825,37688,51197,303141,5590,15476,132986,10955,85782,34486,26696,7991,28813,18858,39546,11703,11365,38185,5716,93555,11925,40121,60002,6985,10976,171384,3887,43394,13337,56346,6381,252336,39573,75042,53711,1028,31781,44295,95925,131713,7214,68125,43571,70954,213234,1628,8760,13391,65485,17320,56038,1710,25248,60803,57399,19839,3870,326,281556,50945,72400,21460,316244,75619,56246,98775,481,13513,55765,50427,7388,123519,32929,57908,27124,61316,101097,57467,30228,48792,10788,20402,37318,50526,155730,34456,158065,145305,17832,43733,64052,4506,35072,205355,177028,184004,187081,68616,35938,83703,10367,36892,93186,260137,51934,89970,4985,23445,26755,21558,7948,78741,23376,124405,85594,68596,57536,49351,12619,56593,132668,99924,109728,71844,71935,196018,65464,17617,14987,89701,143773,33997,8687,22701,33258,2914,4436,72108,85610,9671,49067,2327,82988,1361,1672,44033,35777,30269,24057,10605,82236,616,15793,13919,47249,112086,116698,9484,80207,90574,33304,68624,93127,56101,42210,160929,4827,38995,38095,4701,125119,5027,33680,9236,231236,14135,87837,23318,70261,78893,30151,81482,14332,1084,74256,27532,46644,79185,3148,62615,6981,55672,31668,36825,1849,14536,37446,14738,23779,43058,162749,72199,1168,21346,5592,85932,85302,9668,18351,57135,150360,2080,228015,77953,34670,119302,151751,31009,106725,84265,45214,59289,74178,113071,263206,111009,4021,44449,188119,192629,123592,392506,292847,114487,12831,205858,9852,20780,79648,75767,357014,97721,18166,21005,67950,33226,204009,16536,2987,11335,66717,144910,47950,17262,55060,15063,2934,51038,26775,178497,66008,3427,49433,128592,20036,157553,63861,3089,23015,51210,28696,35933,49942,71135,231518,99620,17248,21835,176536,20676,16944,38700,165831,233253,295625,36723,13023,52745,10907,19423,67972,125868,95473,82875,1183,108455,52685,33417,64095,21433,52438,33191,127809,44505,211823,7810,2752,95548,162031,7185,91196,47563,61721,33359,17897,23682,42806,178101,22874,49707,199897,75419,82456,8618,11171,79712,116847,18783,44190,46564,5346,59046,95032,7893,14916,3214,26800,24172,121453,34362,10250,17408,18888,4840,68696,22831,13162,36005,32512,14800,62357,41723,45046,27247,37486,5372,2564,34261,298500,66509,133920,89138,31305,117697,19097,108304,81386,84106,23802,46411,63304,946,51417,41777,41041,19501,115864,60743,294354,37955,94165,18116,1156,17937,20645,57114,90804,58042,48643,92288,9861,2557,88546,61333,101008,12853,5148,87856,4152,144503,73841,18718,9789,147565,10846,42085,12789,30223,8993,56352,67203,2448,28215,6052,23540,126319,75933,36689,80235,23231,23561,21383,38800,77548,102798,21234,31468,158608,46188,63960,191679,8051,67014,11185,170078,42186,28827,34777,41930,212079,12421,34750,24111,110344,73918,45171,70826,141949,40063,23979,24254,37309,26724,27179,24718,83648,54938,14591,17425,29525,102675,48975,48654,12316,8929,60640,41709,50168,63264,89812,50716,48632,38755,138583,160123,55579,71829,24230,233277,46322,39650,166388,34718,24108,98252,7031,106695,62498,18258,35062,217827,78731,34824,33354,19520,60852,2432,60224,8587,2836,62955,702,20227,42285,40560,95592,62486,11094,53035,143291,18842,46177,77994,1770,9657,107422,172915,32655,128716,25886,25164,156740,119928,165875,85817,11007,89110,33956,12652,65156,180266,8494,36889,19958,20955,96,1264,118288,135769,44754,86671,5632,19026,168220,289120,33569,93821,66144,70635,7687,5642,2714,55445,56636,71545,184182,93133,7332,37389,12643,52315,22729,11014,158742,17050,152889,50178,34601,41945,52136,9948,26914,63548,95721,115951,40759,8960,158258,38938,49232,48325,42234,81523,253019,66128,40978,20048,238048,38760,62928,122560,118532,43687,137472,163689,26680,9878,17448,51035,16211,60834,36749,29178,14241,59868,150086,2305,26477,42422,34342,165341,83279,33894,14257,29928,12743,13957,125571,89134,66712,10952,16507,147839,30146,7249,16565,45399,39874,114565,215780,31990,230881,171477,102,196546,44538,10880,84948,281705,86651,10617,31395,2342,453658,43569,60561,132901,21845,17727,58556,258242,22262,58728,4008,77997,11806,37431,30599,81375,109137,185787,114085,217292,97453,169085,30593,60212,11544,102056,65580,2384,91655,4855,95725,7295,157994,16228,20669,53276,141590,105246,17334,25440,76067,17967,39321,38911,11362,28559,63807,21627,26468,85816,40120,1025,15234,58319,69516,66512,124548,75845,78873,22137,46681,51242,85683,32909,76747,35555,43396,101465,1765,73094,1077,2962,39028,66777,57831,42048,15828,13962,36041,63657,52412,5242,58846,2141,5506,219012,134451,3936,182230,17558,17153,152237,22621,49377,170216,35257,68233,65374,6510,11126,212151,7184,2480,22517,3437,33073,30156,16557,3768,55067,86829,91e3,12350,148650,66017,79424,70885,49066,28250,21369,51213,34533,11510,3258,18176,18465,84413,6315,36411,163765,4346,356,107618,598,13727,285026,162695,8749,14583,7132,63521,184253,32378,25991,5604,30961,53675,4874,84693,5086,34811,26978,56564,7904,33519,51221,113942,69253,6664,125563,22055,220680,102008,742,51930,19494,176108,44424,35123,13025,75685,11759,74335,22250,181453,131147,16984,132115,154311,11991,76452,52609,85351,196,30969,9198,74919,2529,56838,71779,29187,116304,3504,62330,41190,86153,28393,254926,104228,105189,13264,84359,3574,12415,8534,57147,10175,188174,59504,60932,66318,16407,107921,17638,99103,49278,28403,39786,145865,8462,3558,43406,142271,29139,21989,36552,93955,72365,7176,13556,106185,37957,321774,17782,129017,51154,27938,24952,1935,39366,2791,33489,41582,56078,24558,9311,5449,218786,27808,190429,68013,36020,86003,29735,3404,87348,119357,115714,2324,86796,81973,40992,43376,93621,28784,16808,36367,2517,2909,191926,24978,55303,53308,205724,60068,3098,21375,64784,23949,26579,63121,12319,80145,39967,97861,6757,70143,67642,37082,34698,69140,122883,46151,62187,80934,429,19437,135071,137885,222647,13331,154065,327,61778,74257,40116,37493,14855,85079,237641,42342,102164,199965,71204,4662,29368,5042,113914,122214,8955,13149,102503,43173,5659,163787,69003,307084,63392,171080,21390,81918,86666,36622,24126,28887,5736,28054,207170,163428,79891,346467,95363,38980,111806,80828,9200,19288,294896,114468,87405,111715,141705,7015,72754,68463,48738,243147,33397,101210,37051,98801,82847,20397,4940,185559,18716,54718,83491,11725,40803,1128,12128,23060,5174,7745,67007,46701,1571,27807,180186,256996,18975,16837,7877,212758,250379,15440,87954,57755,24719,124057,83461,258,50864,8874,29038,71289,31627,15429,9005,4061,113851,107716,82819,13651,79656,117851,17539,111446,12938,39724,190787,4352,15402,21070,62708,8539,23777,73853,13552,38810,86117,16285,56400,1718,75342,142863,29033,378,110113,180321,32586,23606,26393,160984,207987,23783,8406,16904,24596,47274,11693,46539,60524,78595,48423,31718,20170,9009,146268,15183,191060,172765,1349,138436,37365,10970,40509,225817,20021,70394,152138,21541,66559,66544,89352,2725,17258,91345,7313,3815,115868,8660,40362,4071,103524,39388,118275,21950,6549,38226,32754,209574,29201,43495,18028,20296,40597,18370,47520,202450,24134,2219,8195,69545,38041,136934,46374,19041,159811,84865,58620,846,98749,13569,30714,97246,32186,4479,27355,92973,35214,151491,75963,37631,1561,27200,238083,23182,60756,12291,25766,39355,102333,87362,65741,59906,19538,201575,48772,102938,24438,292580,39964,66366,9004,61379,50548,37622,38732,28379,68180,76622,17488,69849,5963,7219,48143,43413,55358,540,58691,29506,19245,52193,48621,5518,13048,118625,44755,191081,42061,89197,2259,60665,66994,71210,51232,3585,142096,55024,7892,8345,58653,463307,65658,64319,137941,136323,53499,12746,43492,6978,95163,29925,60175,5128,7352,41463,184756,121146,20473,18426,4598,5309,54580,14277,121151,10691,56711,43880,63409,76682,11830,172218,264898,32632,66536,81062,31649,25788,92774,60222,11100,63159,9432,224657,25240,53613,152,138620,163829,2397,85345,12501,37507,64932,38575,43522,65789,80198,78796,35226,3851,108891,73311,3060,28391,93671,39663,46142,30982,66041,37281,68157,26553,71872,81142,211527,39747,118119,22695,2859,11066,20232,168911,7933,197005,17066,111071,44434,133994,120798,12766,227798,45756,132852,29917,36076,55352,65281,129800,41958,18944,84678,18580,168093,132621,39997,54092,27740,32354,3770,114118,103242,43918,15899,18574,145944,3190,123469,219903,24169,100571,62403,16776,92779,14535,17168,16475,14304,37231,1712,28218,242754,61688,28980,1318,51359,222657,99200,67989,31772,23932,35351,201251,49041,27306,19128,40135,3986,77333,19649,120683,151927,21081,7076,78375,77501,101599,8011,89585,96715,58179,5378,102138,106793,26051,217276,4197,16297,27014,46721,13322,22806,5278,29629,70632,9647,71519,58818,40603,128530,8903,36770,56900,31483,26935,43845,34265,34920,87658,6114,84767,64250,47318,50720,19264,162514,33357,13117,6705,46696,75032,71054,87004,42035,69138,11903,99854,102328,19611,34525,69312,6431,49842,101600,133178,108751,41829,89939,225664,48916,99556,9195,130387,5960,36857,116724,53518,94002,39077,53996,6945,22261,64291,8314,152785,57588,16522,9091,5048,87671,35441,39509,1945,12423,158923,178413,37549,14095,1475,73188,62878,4819,24012,68534,42606,4010,120809,57497,59564,101758,103718,32701,80116,12345,95834,46918,21468,53213,15665,31200,3867,5140,96013,250744,21016,10069,13968,35449,180829,27683,39704,59956,22893,3115,26293,32785,75934,62445,141162,62720,2018,83638,19949,114012,95006,3330,99829,130935,309272,9565,55874,121727,37017,23586,319858,40970,27602,8625,112329,61060,100088,118525,25922,16232,1907,60671,51583,44553,80993,5262,94679,8676,940,20736,11823,3020,16476,12340,152600,97416,3703,25744,66826,16245,16876,46446,84798,74227,176020,45192,61955,75496,23946,23626,40372,26036,6149,11822,30582,16541,41914,82385,232823,40921,80773,14930,3631,7517,39619,4348,36180,126106,138939,62611,1477,113512,47321,25052,14546,118881,29060,23589,128322,36795,18401,137921,104699,267929,36194,172791,18113,4766,188215,30083,332586,94089,5805,77909,22194,68234,154976,43220,40660,70001,184893,138095,11128,103010,22663,5108,212615,8485,5565,49222,54614,26530,42639,16319,55062,152662,105595,21114,22216,10294,68158,10436,86950,7206,62115,3977,3657,59874,456,118617,18156,106663,112229,80992,17442,8217,55551,5133,34344,251927,51153,39364,201321,7816,66803,23057,156724,145664,14276,95705,979,2796,6875,13429,212525,50602,26276,28284,3424,19465,52397,46963,31420,51399,206476,92317,48851,637,100820,83349,10317,60227,21972,6908,282439,32857,224767,95629,83882,42106,87338,69757,29840,68709,37665,45244,114577,49188,175943,54009,186746,106158,70168,3358,234002,50555,9221,129338,9562,20118,32923,78479,118280,65752,4977,10474,102174,60947,129006,10570,83451,8598,8078,159367,123785,80438,16742,5905,5281,181513,42402,6977,163136,93179,42191,14968,50421,112401,105440,33456,57347,121611,4221,94954,36517,24046,27796,6255,33394,72990,135408,116627,1233,57874,25654,95419,68156,401399,313338,55208,45573,93124,119251,47200,38196,11909,130667,45391,73904,64964,167846,4137,115606,52036,62214,7969,160925,7187,1132,134835,40309,73195,64494,80472,444841,61111,26500,45323,40743,53625,52797,22659,15631,29739,36706,28841,39147,102836,26794,10536,14845,87305,45874,12241,127587,83833,57183,79722,30844,41304,84655,20825,92500,3722,25655,27811,10157,81634,31362,34088,92487,70123,22190,185100,72658,139035,192523,88241,2078,230490,44528,85638,100198,22088,29982,291233,241062,13865,4445,137791,37835,107218,31726,19718,38234,72528,23046,19177,66695,5109,17251,28077,5617,21554,47839,72425,133825,1486,73065,181275,141508,21768,62971,63082,2512,34200,9904,120309,6392,91243,68416,268253,41199,116757,138551,185526,41246,28986,4093,19057,17295,4148,245766,122360,35356,112075,20301,75441,10998,7977,19769,62922,937,63547,100196,26427,157820,20983,236696,22935,8140,90315,156004,47204,140973,7726,45097,52725,22636,23436,257282,105247,522,88389,216031,202204,46812,211666,19693,68828,81691,45925,11256,30292,372,5236,167826,88328,232776,151611,5360,82104,18841,80393,25465,18285,20320,72377,31730,33160,45803,38715,27705,37379,24163,18360,103586,4015,32305,269494,91252,20080,36567,54650,7797,57073,12650,31164,42209,6375,261663,105528,81661,106002,2800,5375,17247,43151,4442,15727,194619,100855,144898,62320,78465,39929,16454,1967,28311,61363,17219,9395,8745,121445,76939,80385,162380,22009,54191,44248,16299,122830,48151,74429,78291,64755,14238,44966,2511,17712,67954,93583,829,105899,49935,84750,11591,33185,85447,42717,27409,208542,28965,62052,52525,5597,25694,65594,16343,63224,276188,12475,9331,127507,38522,57287,24128,133161,79723,105548,133695,48917,27558,43278,46520,13778,141954,110785,83366,17715,46317,105763,66298,147013,41086,94180,16478,220447,44611,730,19722,78975,117889,125643,26254,16574,18480,65006,15806,38549,246418,46052,36056,8440,34984,30170,3163,59800,4458,115442,4283,41970,33507,104078,1653,22,121158,276486,3655,6338,24048,133421,23641,2161,24422,36006,8086,10675,181474,12307,29514,59143,14729,52509,87128,122470,19446,80852,33314,24573,119864,14237,9652,57779,6612,51851,15284,98871,90581,124466,156831,21190,22015,71380,161906,87247,69201,18392,17908,108470,72962,40719,14338,17911,95260,43339,20610,78916,20710,72451,11315,31448,17263,58853,178878,48111,116002,45497,80506,82605,85880,36300,121755,25215,36118,301929,88728,405223,276136,553,34704,212438,49970,78329,922,20711,25036,257130,38295,145369,18128,15385,30829,55656,48345,8012,3561,28004,122041,192900,58338,112508,41085,29976,87040,47117,23905,4336,92061,138880,97407,42083,172121,6256,25192,172671,5,93568,1420,12677,31605,56743,40620,6015,78415,231077,31298,80026,13902,19048,24924,170586,32955,176119,87859,36731,6773,27711,24658,26475,115216,133207,93250,95820,88522,8317,5714,124047,55219,86860,19677,23961,22928,162209,8904,225992,359835,56084,96201,29392,96558,86071,93643,55114,13347,8183,95129,82012,2017,123336,34219,115554,157159,47747,101684,41008,18735,193781,104151,226906,7552,179874,124113,31159,21162,44010,14771,51268,166128,31382,73124,77438,92830,205709,12113,1292,38937,13114,1334,2118,15597,69581,14449,21934,76618,48728,67038,14967,51495,24243,87736,147249,26720,11119,46063,43749,5843,44147,152629,133428,65703,14269,45604,57982,28672,55616,45957,8438,95433,37698,220862,132034,39456,61870,4161,26501,73560,56418,9845,4654,20916,10456,88920,119358,9015,65931,96507,48029,38534,21676,109081,43078,34943,25089,6131,28766,23665,5477,10255,16695,67,45778,42443,42770,29534,23733,100513,62617,42630,48746,14191,43753,50295,26007,8792,57243,43119,54725,164253,58250,112304,131796,25165,4651,3188,24831,47748,3705,19540,13211,102095,5593,18699,23666,32005,117571,33541,60584,74573,86311,99443,25172,27222,168938,7143,11853,53560,18834,19960,86522,28217,53266,117700,72989,34323,18721,66450,34346,74056,47217,202002,46269,9429,68582,75458,37823,82843,96652,32549,145144,27958,19820,158086,31955,201406,135379,31207,192545,12950,51704,9094,248263,76147,64028,110009,79407,89345,99284,223492,47966,26848,15359,201137,2861,110507,71231,72297,31851,118777,71039,151051,240855,16333,50766,14727,7939,4149,80908,418780,88378,59276,1327,7284,38576,79814,65820,42199,84860,49574,62596,12396,70598,40117,8648,7994,16836,7630,14047,359699,106878,525,29037,28064,13380,11675,50669,74216,103539,180314,27449,56299,172344,19274,7301,246099,32043,19422,36506,129317,6806,30140,4614,46639,66926,932,86600,6322,27847,233103,10541,39025,34887,3517,12972,26220,2031,66561,115015,48658,47596,12714,33845,3893,16165,35237,89983,14769,11962,147224,47018,29977,27979,5552,82338,86023,131368,1218,24853,237840,132193,15455,40873,3668,65351,53388,15229,59889,272245,47934,11858,34347,18038,90853,86981,300602,19343,114181,29362,84921,6095,106059,79472,38015,1206,48741,6208,8e4,21916,17423,6002,108083,24479,34931,56661,9511,26995,100694,163853,35997,81254,58321,18919,171890,86877,91341,74503,70477,53412,7027,59281,39892,131302,5864,15947,61301,67466,162369,47956,27874,35624,282324,21270,111847,102548,41482,30955,116737,28264,8592,55458,22301,75090,29821,30697,51709,3041,19208,8038,24634,30467,87509,126428,19389,18814,152686,20701,83474,45832,80891,105808,11378,153223,120770,98186,150633,49838,9141,12755,30962,5260,74490,21256,31678,65062,33326,289838,187831,20595,89768,2805,58535,10844,70085,12090,2451,138068,98544,24461,4511,6754,41684,28203,3383,65355,82833,30161,83924,234361,128424,28921,222594,33975,125491,34069,11508,67464,144226,41850,98703,34371,7901,21254,38398,65651,23549,53883,213340,123269,12028,71764,177701,28758,2623,68395,11549,15232,68603,9660,63116,36079,57093,31198,20475,48467,89984,35619,186847,107469,31389,43631,73867,41949,68841,114250,1605,30564,63403,17588,27680,99533,12641,70325,50428,73426,78379,11855,91651,72081,91720,60198,15743,12065,83398,140046,6761,46598,45900,5068,886,62448,148968,37347,19405,9680,15819,43496,63370,75667,163700,37639,3633,22774,34341,183131,134335,37200,23915,7054,14194,12970,26438,13350,285521,25594,8219,104410,91039,168804,138480,149734,15907,33818,61132,60082,4622,110187,56736,13551,73571,3945,73463,65498,17758,263266,17593,2710,27585,54469,38200,45367,63754,28881,3473,12791,98287,31895,65787,4463,94536,24951,36332,59901,28803,52130,86403,7668,181822,74831,18977,9850,177206,145485,109798,7292,31421,26280,77211,58511,12507,127004,11113,147,8729,56208,43066,79926,129937,31345,83947,39915,46146,98763,42566,1337,13192,18323,105163,80570,117753,16555,72883,11077,159438,40764,70933,83329,26066,12276,72059,21655,173836,126713,69454,153482,91585,70644,102558,110483,6764,127864,190133,3961,101798,20945,71138,82402,90884,69669,44753,923,16939,59700,164258,25969,27082,31399,43846,6306,246093,51342,6153,151581,202801,182731,56475,162188,89426,141356,14355,121815,27536,28023,65257,77523,106668,127314,24947,12790,38796,169698,23555,10725,44573,183083,42088,62716,43265,105958,32050,44067,50118,1668,3874,6243,318411,16599,1691,94999,52378,28671,216728,123258,2059,34969,69225,5913,136280,171443,141515,91662,22175,135282,80020,92270,1663,4808,4482,3495,34691,5226,109830,108512,17342,107488,11606,123190,100247,29666,146527,113014,15794,30894,13224,39585,243192,22351,9903,7836,47699,11078,25468,122291,48821,26780,122679,75521,81450,630,4895,92900,55074,74293,17441,3563,111657,103102,51613,12318,52370,36191,68245,34269,40445,41354,122901,168604,182500,62012,42557,11259,24428,115113,86345,12362,3909,78430,86852,134602,20459,47853,93879,22577,7659,3688,38555,13349,17381,56715,91639,12493,10895,92438,3142,37057,28928,2004,36427,32268,34222,209974,10432,67436,41989,173518,107930,27079,62729,30908,55558,5828,45031,14902,53546,8204,144263,60255,14520,88212,86582,109589,69356,8064,47449,8505,66558,16886,4844,52817,111260,215129,12941,91118,650,20770,6273,73089,40618,62790,2873,35002,14023,97208,19386,102646,36993,143736,135457,35385,113601,17893,32627,84439,100619,56016,6581,57264,172160,45452,111710,203627,70131,24100,322787,1996,35665,70078,22358,90922,83658,4097,63200,58499,14542,99153,52159,6615,12414,63415,31986,16823,1579,65405,137809,8841,16898,48082,259,33014,42375,12260,179850,73667,91389,98882,29532,17311,326251,41092,5928,20742,44964,48019,43505,9317,49265,6643,192712,48424,163487,19861,20113,70848,31928,105333,23685,78563,14638,54755,7158,24142,44018,20774,125255,20331,24280,10163,1285,2336,39851,4299,117269,46714,63816,87779,159624,11731,9971,990,137317,108831,50994,74554,162680,23640,131597,146962,170620,34829,91205,21184,1913,63616,18427,93136,156592,17519,67565,115882,138220,78622,88535,18115,2711,33554,109492,54298,971,24914,25863,36363,45715,27099,194995,14299,178181,111488,72395,322385,157719,130787,11897,81843,83999,11369,49280,118604,40922,61332,110343,53407,75639,40582,300440,54722,25637,13694,48248,48278,194521,56203,52779,48783,72627,10953,376,16733,280238,26351,230789,15132,25168,137270,3588,63704,73376,94031,74284,19443,159557,9697,39901,13351,119050,15406,146455,3460,29556,75195,37673,102524,92329,47289,98413,15311,100684,56345,7116,95480,11590,7200,167,23610,58426,17730,136656,27944,53151,2701,8824,103124,3017,90744,113588,53216,79736,65940,26931,498,29568,80540,143543,21292,1740,59268,16561,180816,42323,50174,40890,52866,10703,57169,4700,17191,4424,93511,49698,166650,26972,48631,165169,82879,69326,202970,4007,2376,231325,139592,22119,62851,37504,68816,58345,67398,186643,43331,277416,53749,15746,23102,17432,4793,151138,48822,54265,48203,198688,14305,54287,2291,18018,113378,123260,7180,97549,87027,120085,2920,76080,8190,102005,5641,64580,14955,59802,54028,58884,19367,81779,412567,85957,97053,103637,78871,29364,27637,141728,4767,30686,112738,130146,42745,12730,105040,14844,232,210944,36581,152317,135543,29744,3129,55647,58149,46319,27265,17499,28005,59948,7170,34138,5702,293047,110892,408,91760,218674,18469,46095,81403,14389,4610,35672,73060,11006,74848,104820,118143,190357,20043,105358,141735,5115,27093,45924,123073,52599,29433,9616,238350,78610,24851,58858,26769,31969,24613,18294,4982,32735,39639,143563,112073,202205,12567,4873,88601,44897,81503,101648,81362,34662,85277,17574,48173,21435,221188,40215,39576,80786,26544,64668,81841,10731,37733,247986,149188,127703,495,18382,54388,72446,43071,30974,198723,89608,41360,190,33045,8386,31658,19992,237838,119015,137622,50890,100913,6460,116233,267230,26621,104129,65114,14190,41542,14888,85962,23342,23041,26453,43725,71809,45186,4770,46452,53894,56616,221286,18973,9038,109299,55365,19366,26863,18808,60909,69353,41738,83463,12100,68561,72860,3980,13796,49340,12332,31311,27418,4255,53430,18976,45523,510,14224,30477,26581,4530,3651,101663,139840,22709,150861,31996,63923,120623,262522,3076,10528,2929,14672,130238,18087,9816,121894,100308,25085,55111,14565,18952,53293,2042,369988,23674,61789,133529,28783,108293,35477,47119,36448,71049,40015,33055,78598,198442,1833,159937,40654,77444,189245,113153,8621,18599,38553,35223,166072,2375,11659,21786,89523,6032,12116,63046,159398,18454,3678,32521,47626,11411,103527,38896,42946,15696,26370,10185,8413,37080,165583,4331,63555,14907,72220,50056,6623,62236,36565,49783,10049,17503,100581,55951,146244,24724,9626,17969,25524,109300,173965,99994,101056,46459,43647,53737,277968,8347,123521,74858,33829,44762,77574,877,81377,222525,123532,30602,43881,53145,2973,16284,81940,61281,127044,63620,9875,14756,114829,19032,9202,52759,119141,23928,120551,19607,3599,33401,76821,73233,117430,39968,36539,7071,5446,121735,194059,15206,45283,6706,15603,65615,1207,165723,92275,34773,104447,8396,32353,205240,164323,13600,60555,79205,25532,22907,33410,57480,107111,69630,32137,47832,70913,33161,20321,2371,117348,10714,86246,1625,11763,17900,268,78457,99175,97940,101092,86660,32221,14041,128504,125080,53744,124263,31017,13897,403,31859,21964,5633,111630,5547,77329,17961,18241,84995,25984,12983,67491,62168,47262,5241,297,51191,7351,8967,147212,82060,16821,782,11033,82431,62957,5026,43459,77963,203477,53528,6247,191852,87774,74164,215654,13467,1522,219964,28589,244104,16242,117821,67725,72570,156792,17186,15979,26990,44128,193014,35276,57125,16212,166451,68017,6905,77608,16364,53777,75921,76426,37975,26203,269296,64099,84122,12077,38533,830,4407,20139,963,43028,38902,42911,37503,83343,85045,16979,1165,60835,137387,58380,86990,110066,134540,56331,193845,81238,17922,163093,38744,110641,12502,56404,34862,26865,125964,12965,111648,25547,7771,27196,136980,9555,29551,107158,57885,18831,37705,35505,101742,13970,102109,62548,124657,23328,11124,89592,146376,248050,6241,22033,18337,80685,29898,11908,216623,67721,106162,146610,21377,15085,91552,42041,62560,122532,125336,102365,121537,142559,29693,223919,11515,110495,18776,22494,5895,185059,103592,229351,51220,100102,37027,257855,29359,54123,36066,106493,12244,79258,32002,432,56205,94836,90182,6726,14762,29391,48938,26864,38083,60364,3310,60192,14766,205567,57504,110760,22649,24666,46333,21517,3430,13135,28873,27052,158809,11597,20529,6695,23138,22960,37137,45574,6545,305877,43423,26153,24769,59844,14501,10430,134352,56169,13213,103432,49523,35181,13435,12408,129475,64620,230854,77390,51990,15653,83248,33466,44571,117828,51481,2187,10559,68019,18021,54895,48247,18354,33737,4554,108595,37288,39767,116707,9175,3726,108877,21616,83684,49862,1938,8543,276466,20134,108498,48770,102254,31914,131520,185291,100559,51890,209,19526,76471,50544,71814,99351,8172,198526,28816,20419,9109,98389,136777,76479,75596,30635,165417,48216,120220,25955,211071,39314,24308,32164,2559,146280,43403,9233,17947,90585,1786,86920,125662,2457,64741,32152,32918,122882,78538,44001,31723,56426,23375,103172,88177,145697,52506,49319,68016,31664,41488,18486,110400,7030,28241,986,109199,19900,42147,56864,65287,49183,7858,24e3,30453,840,16673,25907,68916,89927,6309,158335,36407,199737,130464,13137,59603,201778,195292,21015,42466,179062,172561,89492,11075,180407,31868,72493,20998,60217,9865,19530,39274,130266,54539,21623,12535,13505,40641,73375,4087,85633,2153,3117,70680,55788,92096,47509,98493,37490,271936,151475,3032,16171,96642,34106,78425,125761,19591,3366,19316,54508,24183,50786,194248,91528,33253,34622,108355,41741,705,3814,3883,108929,13203,67831,10142,59754,68208,29128,84820,56880,38794,24972,48571,40821,40476,18137,164254,24064,236309,79181,11282,395,39169,2013,51587,28551,9645,701,109513,115899,113566,12762,62045,58322,103726,41343,40866,244102,143816,2490,70346,40973,52618,15412,30720,104315,38917,42027,93676,17513,107418,20706,123890,13399,97727,24044,87962,65606,44250,98044,65276,74790,101473,19350,91570,1326,87790,172042,7577,100813,86896,85891,41512,108130,27794,14875,71431,12835,156250,58135,3759,22476,42176,115873,34686,56523,73643,108505,51491,20838,12721,32863,45700,29496,13700,34294,55360,29206,155942,123812,7706,163234,203,132720,49358,144431,8130,175788,35818,3270,76832,25710,54095,97274,28779,94621,74396,19092,128242,58067,20885,14670,93255,15107,63291,23654,126900,129421,59294,262659,9798,3251,67344,28600,44629,50672,29072,26999,31526,23183,49175,165843,175455,17282,175411,32022,45989,30298,90690,78118,83156,23749,35636,31317,7069,80381,94561,133756,14960,97404,6138,41065,78041,32843,16601,34123,9559,146529,123377,96395,54441,42012,84257,123541,10745,22139,106459,11720,150883,172651,154996,110538,4728,53447,25704,2009,71152,119354,21166,66604,1429,216162,8637,122250,63520,27180,29172,36124,276428,107787,77184,4680,14952,104903,24418,14793,51561,52931,8371,26342,48526,7118,92066,67280,40653,8847,34597,105438,14198,50163,61188,146286,50315,41205,170829,161496,585,197359,95056,1687,365794,91349,48507,5804,49263,5146,104902,96365,117343,132222,46084,96919,16875,8073,262381,79982,52663,13928,16056,153908,15145,109256,132308,18763,24904,167644,13618,40750,18686,147124,114709,150038,52849,2938,12568,48617,8778,5459,44202,44591,74914,17183,248689,13878,7822,80060,23116,194037,18487,2067,7798,43077,33678,244028,31320,74273,2794,19466,8218,36280,183997,48124,19416,29656,19280,98734,7715,18311,30701,133602,150307,126956,7378,2933,79903,13178,12593,86571,26604,92446,13574,44205,65699,427599,21118,8245,14407,27877,47936,33542,7916,26460,117762,21596,37818,2249,127359,209394,60044,47677,308089,36791,154971,31417,6998,150042,174360,12255,43009,29335,48739,3912,101398,53340,2580,146939,151295,45360,125275,15273,45383,27456,48761,23314,8750,60801,85823,104759,27894,123685,66968,39480,26917,55290,83305,2696,98390,57569,145853,340733,4919,20024,52268,30884,7413,203685,70989,112855,4129,50536,349518,68205,332641,159581,135361,236026,37563,176404,64899,6578,122033,63871,1850,85234,82089,66124,74145,121098,107351,12687,36881,117334,13136,14698,85933,93866,18047,32620,310,15094,46e3,88451,23632,36645,27940,87618,80520,58892,20976,27702,140090,96075,67841,103292,238964,87778,107338,17019,83427,67522,7302,8261,47570,116787,8730,80484,61772,174422,56005,131193,52875,14588,28471,59817,9586,15720,158155,51307,109734,15196,11025,59331,3884,52626,102602,84797,25158,27314,4437,20488,76214,189248,35023,114952,157376,2827,62439,102878,129749,36405,10329,109339,108633,36662,1254,13267,5470,87105,58004,15397,10434,159667,21864,52022,179464,3013,32147,31496,116832,18494,105502,129227,107267,50033,13481,9954,24267,22141,16257,116154,36185,950,115685,11305,176708,2048,178671,112573,287867,162328,497663,95170,50979,193861,50987,30368,136257,31830,46549,15119,169876,23788,17462,249887,57377,1949,35448,14791,43769,210091,3783,34612,282103,88380,245190,5457,20491,98908,11402,86899,117916,16028,162584,60644,320177,156096,31065,55876,22e3,77655,9992,23397,13757,317623,63978,215255,2443,17648,93231,27388,104529,93807,55505,140477,12046,112040,70887,40152,94365,112353,25063,114679,266061,71248,119555,15589,2244,617,14129,211431,70110,100652,7777,4383,85911,89221,21010,120615,58357,86405,37554,41647,18,15143,69662,60491,14714,186134,148344,42347,5410,168175,44535,42449,343894,129417,99682,20659,27272,140483,63455,222159,17536,13722,42637,62324,11976,114691,148109,2283,32057,182393,4295,147364,33705,2075,44303,30274,28331,63740,69740,29148,10346,44862,33716,73937,153333,12930,38784,247159,2515,41053,20256,83368,256189,54639,115240,5096,24661,175419,153552,26516,141,138176,63885,34115,47222,55709,2765,28479,38875,236608,12229,22921,77291,54426,45388,2860,57787,114579,295139,105782,17826,71066,19119,54364,69385,16568,12323,28057,33346,34919,124763,155533,101386,31644,8627,49001,303600,29868,63213,9103,77280,71333,9696,138789,37059,24823,5057,21352,32368,114208,56803,19424,10445,58514,8661,209508,26187,171838,10460,63454,14016,122504,41328,21329,46618,32493,38225,7855,31763,7945,29876,8734,6438,24205,97490,139977,130740,47323,33195,85390,57194,13813,60600,21313,96251,7699,27584,170521,139271,1363,4402,336738,129223,84983,69150,13147,3590,163929,207225,155260,55916,20288,4503,8398,98490,11773,27512,37113,84976,86558,28365,11756,116005,182148,13733,115313,47644,67208,85069,9347,14995,226141,14704,101835,41159,35314,13113,63526,214039,29978,50446,83339,17440,129441,72522,118641,97816,24907,73844,15717,118884,167255,96509,162793,30847,36849,51297,78974,77793,10427,1873,2972,9999,35074,28190,64297,146836,46298,60038,163007,108919,61219,2403,75022,127339,4233,110389,69022,9833,128097,88016,79390,222936,22570,94657,28462,56956,38803,81536,30474,152794,19566,16481,147408,74574,81895,20731,1918,1366,76367,187321,54494,24366,21690,61696,33283,107477,77499,31112,414383,74362,18463,218441,120929,59848,258629,201924,69269,454,19989,13054,59894,3623,58908,20681,35723,78523,102680,38988,184112,108087,50944,132704,52966,21699,18860,96349,201411,82697,85395,95658,5093,6427,177894,44191,32755,26961,155739,6249,31310,81030,26574,84311,120155,86730,113535,7424,48888,13516,45747,98098,20077,183995,81945,43210,26704,40420,75831,45648,11180,6855,57927,65528,124096,34851,2598,156633,107572,127352,38169,123845,60142,62722,105584,232364,23211,68120,1601,22169,89299,747,258039,80572,7258,152249,11862,101204,8834,121434,33761,19175,133142,46343,40178,48723,3589,41977,30210,38868,62257,10087,82658,87827,90646,16415,47552,351723,28298,72225,91146,272760,1701,11295,1652,109651,300747,51863,198800,29446,11794,32345,37538,22356,33102,37590,113544,37970,11478,179743,25454,103417,59905,221970,105196,145604,7817,164809,102360,16974,75840,255333,56902,6659,1954,645,59400,67769,7689,18675,5215,13793,20536,27852,3387,29523,259718,16860,94625,43143,29245,15848,233581,22685,63631,78557,22836,133302,84513,1348,51826,47129,98836,58284,1830,1749,94642,10933,6145,12506,10975,13879,103781,144434,10268,28409,32346,52968,121567,107374,77268,23686,35097,10501,155275,15303,47136,21102,168741,55332,90385,15996,84817,681,137803,25054,142275,6163,38175,8056,124296,240642,65621,4934,178205,16101,62803,60964,18230,100622,76465,44689,14545,9543,47514,16852,93380,28048,12047,107106,37575,101485,77047,57326,34819,96137,76916,6469,46264,115983,75768,87668,69942,13027,165,8373,114231,26434,52844,42799,182044,23580,146254,38081,43236,33883,146220,382894,14606,46035,36481,166621,35417,95382,2957,59384,60428,36358,66343,75378,22267,22950,83528,17577,56474,25285,4619,179691,75355,95836,53295,34588,171410,4487,14679,84208,44015,18562,109133,54101,11531,86052,174479,303157,28095,9953,35642,14564,39802,16145,77606,117406,53038,121117,53624,22062,1212,7632,127157,237292,189087,10478,127345,102515,181997,86752,87623,10966,121602,68783,68681,83042,114380,138349,191305,67176,50085,39016,1427,42384,1412,67118,122616,72389,25260,2237,13576,137346,19938,20304,2191,68759,5373,61364,238507,75814,23931,69565,38993,131741,38364,12528,87762,5679,129853,5310,186831,32653,90338,260176,389531,108118,26843,43985,50175,30563,25106,56965,18130,140428,4542,165503,117991,24219,229605,1819,129663,1240,3797,76093,18398,71339,51919,93043,27175,47060,216257,6483,35051,1217,16512,80798,129064,13225,69339,8548,237079,72298,2575,34280,51379,117910,55671,53345,247552,29486,39328,140821,34681,57045,60177,5004,90269,78522,2479,322607,48474,61296,13057,31558,4678,59271,6699,27044,31988,35944,12503,83480,4389,136508,3781,114121,70279,4488,155829,42214,2898,68191,75695,305850,45041,74344,106509,30087,17429,93292,12477,290,23080,114802,35714,18751,26554,105424,17775,2144,2412,100610,65192,113975,52975,180272,135050,129815,76238,106483,21440,63186,4260,46189,9711,28249,4169,23429,23390,8324,141585,63809,67668,38457,38063,39226,59972,1189,203916,62368,14403,16949,61767,85801,1739,40147,35049,76757,33124,62102,15780,103593,103009,53484,22952,67973,114645,6566,5245,50462,7601,8288,3513,194571,80276,1908,54592,5124,58571,2513,6800,273997,193904,1119,17991,117245,2508,129156,82366,26278,71465,63341,56943,39662,106116,94966,156875,9736,2204,122308,94418,27134,1280,24539,49022,45314,3764,50904,46424,30699,28087,293839,9400,33646,40165,822,147499,50263,116179,29085,11863,31314,5578,17797,5104,12454,1604,15342,219206,10232,67800,94261,25872,13565,90339,78971,75377,26649,41184,47695,11514,35369,20767,14227,41953,309396,148270,147938,33074,14453,27499,109019,39018,25738,240196,158931,52820,8612,95853,21524,137010,84901,70869,70021,116794,48404,38771,6732,1070,70990,187297,49140,5238,576,3564,253975,16027,16483,2811,37775,19034,25259,4053,2e3,70083,95774,19713,33431,92703,91314,42381,288770,48194,95985,3991,77418,13406,241328,245086,56533,35275,62725,9246,51924,70181,95331,16163,31410,79016,39312,120878,119371,275987,80124,27712,9186,220,23598,146167,85209,68238,282190,57048,31273,30555,80913,17594,75779,59160,135002,101219,189377,29225,96735,60126,62522,104e3,27620,86814,17240,147533,11001,5425,43682,410,49460,87270,69480,46315,59448,1816,76201,9431,11788,87960,29063,65539,47347,11678,33846,7008,196704,9895,6753,8633,120892,59970,572824,115934,6646,202559,892,48351,37611,251282,57823,67263,57750,26527,34485,90747,7685,88370,6144,64182,1709,41969,21458,62327,181657,49247,225330,122600,114574,107124,85361,111833,63243,71420,15655,191178,72430,18063,51425,54002,12364,53225,86557,18193,97580,41232,138398,67821,128724,8944,233212,101353,52099,42127,14006,120107,32789,32132,3498,18123,33758,56058,5779,128760,59888,98869,18445,84702,51911,13234,218379,20093,39031,8074,70195,20708,23462,24355,131384,60189,26390,10403,41060,7140,10781,49410,42261,87202,82566,41663,43105,60276,2768,5733,74176,28329,2297,145430,131632,83615,122915,105441,655,224102,5284,136426,67763,16294,188511,32538,61049,27893,3394,13951,159099,28542,17930,145360,9492,190122,32285,78855,26440,13570,58648,73908,4239,124561,2444,74172,53131,11468,10794,73566,11623,35343,64710,30481,4163,10328,38309,29901,10538,154377,76132,92405,24839,11679,3465,13449,11637,7824,2337,57754,1260,14458,41118,19878,38661,13416,159180,37074,163164,54137,28627,52134,184900,8520,40385,29546,30502,22386,66527,107458,6850,24022,47983,30603,35083,8934,304066,39500,9,28261,33026,77251,9374,44833,116312,34990,29236,63563,125639,135405,165398,159055,55690,88141,69643,236964,31983,25572,20436,36746,60896,31850,16179,11828,5888,3043,66368,9750,31167,7915,53111,36430,1333,64344,93659,20061,60596,180191,51630,6792,30244,43509,101058,22409,420,44210,109783,43223,27030,72477,72831,32679,29235,7675,47556,12258,39907,149412,84926,118247,24692,71717,105038,86009,45941,41189,89453,29856,52543,30627,226798,67303,59230,67415,34408,1367,99685,16867,128419,52147,4111,125381,117881,16173,44093,102224,31575,23234,24870,83790,127407,239098,3200,994,1255,100903,242275,117266,55116,38205,16140,29662,11307,40414,208793,123355,56470,4862,75600,30119,58218,70828,24075,26974,7802,192353,4851,5475,78720,66596,3409,28573,64396,30381,30690,59859,88256,5406,99945,103064,34463,37727,24238,86643,60088,4057,23741,5967,162904,38240,28356,93858,25510,122879,6897,3278,7057,11971,4400,35461,211413,21395,59615,39471,87233,55795,128426,3051,22470,41950,14705,3974,180108,80476,78442,204996,91987,15634,67610,139015,142373,35611,51134,10387,4353,153456,57749,181039,14183,68447,151532,21107,36452,20551,3186,46247,46383,129666,88736,140662,146243,2066,8360,7978,64818,106963,17896,47801,10723,114821,223295,74192,3293,3393,16987,74064,11277,91622,4270,29828,27951,387869,103235,1374,61988,120083,477,145892,128378,11779,211263,61354,18221,17869,46530,83061,108538,157981,90608,67199,95080,49064,195814,12302,66307,10348,231346,160732,112859,63633,146558,21271,31037,198802,47622,12862,95710,3910,77850,73961,85585,34752,61e3,4082,24595,103679,71107,8208,79568,150019,16615,24961,139857,32664,197366,4559,54735,32696,4126,162019,75698,13916,70108,159638,19834,9349,24675,175560,49643,18206,52459,27992,10809,88865,401975,133172,29e3,34558,30915,3658,25834,42430,36562,125265,18182,10155,40149,97082,208980,19575,60853,90529,66545,9600,789,46420,2317,88593,55595,98980,115302,5742,169155,1073,177901,3472,11189,63711,78643,65472,50459,127979,93,42202,67053,21720,157650,11145,141378,42033,22824,85705,79114,35584,15974,1510,54172,28562,12451,104226,19190,97151,73024,20948,5151,81741,21499,29006,84183,198074,54003,45120,170125,26240,35177,28389,64863,79974,60778,176915,232183,45342,2038,80253,41564,40703,32689,5430,100689,5366,23007,134279,14266,26712,73993,24934,64242,52113,102887,61801,46415,201049,54251,62133,122757,164883,30815,139966,2319,30842,766,13362,10287,134518,86111,81665,82440,28333,43019,18963,8804,161944,23439,102144,101145,80029,39052,248708,30350,117340,11878,128467,974,138625,63961,5237,74778,61834,67040,43814,13690,65947,33809,232476,115258,181745,28824,94013,9510,10246,93722,81976,7217,114383,3493,16014,69045,72692,12145,80981,9507,6692,1620,60820,330444,35474,33962,4797,7053,295463,46445,27026,12491,77988,49524,35675,90947,29114,166705,101385,133782,32704,6186,84595,176031,185623,45966,151302,63069,1699,107491,947,15458,74452,196212,6046,10498,12163,10239,35191,243951,9277,9090,29539,54460,22820,26514,112549,60372,51753,48756,21812,70861,260326,41,44222,10441,16961,48148,138771,216194,5914,52153,53400,212036,56519,26245,10117,45888,15294,138019,90913,26368,43842,42111,23348,6082,194845,161089,156206,51546,11647,30759,302912,262094,8635,78876,26535,35283,54183,31183,85484,147873,12989,5197,6356,72894,65347,20150,27370,73787,1493,45918,12366,190217,20724,13858,10981,67449,81213,7553,14115,72242,271517,11842,48310,88743,143726,22177,3290,243231,58452,62937,12592,1654,40066,33477,13751,9921,128442,15868,7106,75236,83773,10775,36938,10482,170465,17368,17469,161508,32752,98340,800,19824,264456,3901,87319,2867,26782,9630,113102,185815,24197,44584,86366,40224,3636,140916,31731,267731,9567,53678,72984,29389,27963,17106,50282,284911,60170,8322,12608,23374,89652,5268,39044,229766,8869,151350,31436,177342,12269,183212,120418,116270,2843,78888,69192,7865,184099,1086,129897,18383,70508,20242,18508,229924,124569,35749,50589,55626,9884,83115,40971,30671,18135,14452,38861,17844,201826,5549,26413,17189,13561,38539,10679,143331,3314,36785,171194,49685,187713,67506,4618,104039,17060,195080,50648,33159,19238,67559,134840,28599,157523,17130,38064,117398,94355,31918,13575,34538,40326,13997,3494,348283,62481,26862,3603,104426,244363,153709,112487,304612,199674,41239,35545,54869,293005,28223,26277,26899,4533,18518,15492,38587,80488,70485,160395,263,60162,11382,222152,4696,250751,51921,182609,10707,48463,46243,1227,49111,111564,46502,33342,56846,68541,63559,858,139927,16654,229375,76759,26478,33205,95828,23399,92945,2637,35630,28470,143992,50214,14174,21456,166191,65665,1711,21594,78019,97599,111701,36,147151,110246,189022,43021,30397,40757,131935,42065,73335,48039,26596,28984,15102,2361,7421,202167,69744,43766,52826,3642,83304,33873,75140,63169,192389,36551,92748,13039,123959,233220,21738,84447,77230,20228,187852,19095,25799,92136,108774,29237,53947,2299,118106,2687,8830,42331,202924,33667,2023,73763,30704,19363,19779,16737,35629,48081,24068,101013,162338,291912,13749,24745,328289,167679,70086,48299,23306,16732,17801,43322,54589,3586,63653,43624,53474,925,109177,251316,43805,13082,19511,86565,142182,92461,17117,101033,103319,64589,4022,4351,235897,5352,82705,107142,46391,156084,5860,61365,10558,13045,7717,18357,33922,12590,33065,6928,46993,783,46937,67846,8952,26295,6107,119656,18799,17458,50747,4229,179559,112727,118080,20683,41464,125468,51560,49749,44231,7359,35339,62988,136487,67015,5208,29150,24956,105186,48858,6143,18097,6972,16404,73489,58742,97196,36357,164616,5834,32267,13746,147733,15113,132091,34127,106298,39729,106426,22294,9780,15602,36213,71502,42808,66802,599,60755,5851,39120,67363,108623,126368,72770,91263,32486,30596,151717,7951,52002,43103,11768,68942,40901,39344,24037,127500,116890,48403,16926,86750,17745,48648,159545,34460,58419,5634,114317,67865,31462,23352,24010,98185,125708,69686,68337,13610,26271,70691,2980,4768,27225,102402,75453,28106,8104,6931,1176,6274,6475,112635,22498,6176,238686,26832,28893,90319,14441,15682,15087,39517,45270,109134,104440,45965,47645,81772,7876,52683,87720,12898,4505,185665,2769,113401,15664,57592,105229,137381,97059,119268,6876,43309,33886,128363,35476,144249,67013,143587,83367,25703,91436,59347,53236,2289,16519,19844,46309,58558,99834,23313,218816,231303,36388,51333,183535,109792,139277,54306,90139,18235,8275,32710,37677,82464,86025,92204,88842,117723,37570,128723,234242,76350,73795,34896,148247,58424,11105,11744,45746,63372,17118,49772,199520,81902,38004,22911,33752,3125,1995,53792,4689,26909,108150,146062,69674,41811,161444,84855,8999,28561,16731,93937,3189,21967,24890,22943,1356,145300,51569,28802,517,118679,31703,40607,48098,108854,25003,10233,73969,177495,5248,24516,215347,146192,48712,60626,69188,40735,5866,586,101541,6509,47590,52129,5969,222045,110933,25733,24223,65339,62812,2414,155418,35819,16022,78423,43138,20995,128255,240673,46745,236093,72176,57085,97841,61248,107,36068,193177,105427,55726,215229,20446,47228,100420,87091,14429,121708,23605,21157,187721,21880,2997,203976,99166,95068,25877,7724,98925,83401,4829,13182,18229,13718,239662,38653,116505,153497,30589,89029,38962,181302,43853,78872,180301,4786,248240,7401,106136,112590,77745,19731,60880,77789,125748,135487,5975,48627,34084,12419,215770,47557,254582,10364,106495,21856,67539,88981,38805,21428,48732,42316,12149,16078,52808,25327,51322,33850,51147,12253,122354,46077,56483,254553,115417,81834,150991,94662,86668,7381,12841,100650,18218,15741,22372,68294,50705,15535,84660,61887,22553,72299,31361,24824,17743,46820,64288,31582,77006,111674,116384,30760,80920,86149,77192,51979,79691,60342,122805,103800,240873,160744,233114,78962,54920,8608,3484,316104,72548,24337,5088,230040,21926,10172,36838,26,86221,83458,102176,12062,17571,41929,41170,28428,68239,41750,103930,2634,18313,53019,34825,97837,63115,24606,73157,152474,14715,91439,37033,109806,140259,30668,174760,380,135597,95673,136073,65073,134249,13829,17279,122305,4420,46444,10237,64848,203623,70728,10349,182885,65075,24519,25783,40318,34139,22222,63394,55266,102764,41422,20126,65100,90408,53640,35128,48932,11192,38935,96839,34782,39492,19396,41332,6250,5511,19492,51304,25936,104466,54099,73771,86115,5080,7669,30891,111700,13931,25276,72289,135447,14820,258641,25265,31005,281179,75286,393,95359,14623,13584,6680,101227,80173,44933,76666,54542,13244,39348,458,25379,109451,134348,81143,6959,65554,12027,51311,8716,57589,140731,28467,23316,17272,30458,25980,55229,77197,83798,28302,114784,7428,34548,26241,14712,39336,103304,18928,54080,12870,334,87722,15208,16895,142098,114262,39820,83913,57817,28682,7721,14900,108672,11250,62246,42849,415188,1724,26555,24549,25505,26443,107450,145899,61035,43528,6901,60726,65906,267741,21338,147590,42079,18924,73017,135236,15393,5206,4026,84185,1531,5988,113890,82647,303391,7386,69844,71611,189865,76523,31877,13315,19314,198575,32821,1928,67641,25913,104475,103489,3297,70391,18406,15446,113347,19295,93790,27856,1792,167471,116449,8541,4408,41757,63233,25765,86680,64501,27034,24816,34975,6079,4486,49693,36229,16917,21581,62426,27862,11612,54284,35702,194034,355,24277,48262,87411,70504,310164,118018,12516,47559,43502,57433,107139,9290,66533,80863,14634,34312,91725,28606,21342,67241,72355,43244,375789,37402,174015,105070,8342,44167,67494,1890,16365,11723,271002,1865,47918,8350,45564,27742,25110,125803,8553,49504,81925,62211,4534,15491,19011,80373,206920,667,102405,128623,245524,5553,113309,192739,65766,19567,22832,261958,29679,21293,71134,20962,105123,24721,860,21752,33448,18372,157167,94822,35770,173224,232737,75729,28937,46828,28062,25453,5207,140366,36665,30652,6169,67920,150458,92040,23186,184604,92330,20891,176492,49427,27828,38305,42495,143982,49560,25503,90043,29747,65328,47830,12932,11068,77721,9003,25213,94205,140426,46090,89945,138173,192691,33329,112232,129905,35709,27514,1841,19957,31411,127476,53572,17497,173549,55063,175135,19841,69314,5192,237921,117660,150697,4060,273045,50414,98940,65348,153665,164423,58804,156695,48994,213928,86036,28608,8355,39574,34540,16927,135680,18374,151587,10830,53805,16878,16623,4282,48030,8537,14986,46102,13062,72897,72,33050,108227,39451,45935,651,113320,40535,95176,57450,48843,5003,19019,10407,211163,3848,1068,4988,32091,30095,41692,15099,43602,107434,50744,7627,171349,16313,150832,352665,207750,33937,38256,51091,156e3,87889,90663,84175,24908,114900,50365,31494,83829,5398,169342,47521,54818,18935,8356,43094,41212,174536,10082,92550,6678,60614,23355,69721,14796,34149,128830,58187,3179,208,40325,28399,225029,401412,51150,31580,207268,6657,10993,69818,64282,289845,23308,12961,38447,6681,52944,31855,2572,47646,120728,179148,37240,45196,218274,4816,3695,21961,50084,35209,18073,51452,27004,6100,33941,1377,84831,171214,85,141510,9078,99227,32610,6417,11718,49868,65579,87902,73018,49062,46280,61742,21512,40862,107733,15941,29168,157765,144919,14487,5767,158014,140070,7241,573,71584,16921,223566,40331,179473,35081,47926,140885,41508,52104,59180,42310,32811,29048,123517,102413,80208,10104,14746,12649,153641,126022,37965,113017,4171,83,142592,2809,6362,50416,71323,116894,260776,16204,1524,5760,30351,12658,20703,54403,36083,45408,74772,4946,14485,50759,111222,10890,2195,167147,92962,130534,16283,177256,35016,15472,210156,151187,73922,117691,43250,52051,37392,24811,24358,30830,5775,818,21969,1476,127322,151783,58392,31021,106913,65215,89407,90802,28531,11690,20234,95249,44602,37256,18707,11928,5161,4410,26571,51903,49768,22008,25252,65780,209499,68769,203726,13249,137363,48845,86823,6658,5674,31881,1083,1823,108676,34518,166752,13791,14287,91576,91429,8665,11529,26401,16191,91972,30964,5254,28486,54697,79613,66520,18447,22870,45203,194466,22822,51703,12278,76716,44595,73455,33546,12235,144843,36154,51247,11116,33040,3180,225753,60864,1972,28469,12891,28879,10338,144157,56294,353058,38302,41447,87532,110616,27065,168438,6557,1213,50804,144643,24817,2390,136531,38174,247513,16190,4059,122791,131994,137430,39506,57650,16305,5188,54309,106128,20628,88071,67394,395446,250285,66176,91254,1399,114196,43915,60230,44853,27206,106353,43013,18733,345105,226453,51202,16607,57106,117175,35492,10476,89598,127439,15187,39624,13688,61570,10615,31111,59370,6238,175252,32143,224492,41388,95408,34384,148238,78307,38959,9340,160091,61443,15737,11216,41244,170,38299,102443,113097,26382,14027,33707,3957,76300,66160,19431,18900,6952,1717,108656,82206,188021,257335,27295,43999,41210,31777,46956,57457,12657,11489,15697,48060,204748,53583,82422,284790,30503,137341,8120,19615,220311,15991,10217,63424,9808,67431,70976,98221,4491,15177,28535,144789,751,13230,2394,1504,33977,132104,30316,22230,931,97193,185240,24826,22687,174322,15307,22988,1390,188745,180325,29580,59068,74903,18994,29195,79,15436,7622,38462,11566,138710,44828,45774,37768,99236,68137,84083,19282,22698,17134,74807,126662,173497,46248,16938,119735,3212,28292,213652,49013,9975,32180,45660,86250,4801,68788,95490,77482,113751,11994,44624,94452,46839,128497,100316,5798,58588,73184,202987,65417,37790,88524,1606,43156,97964,105717,34947,11203,100060,37742,130074,93653,107799,94311,196106,41347,8035,10780,16390,27883,118236,167395,1979,25006,19375,31628,18916,144723,78502,114047,103107,86492,107686,5844,20934,206963,23556,22591,16562,146333,20167,10471,117434,33085,2863,9740,36669,41849,37271,22790,18209,28979,8231,12952,54408,21731,25130,45208,55748,138120,75826,414,29593,9925,292865,25999,683,123149,7036,92159,86055,61827,103680,23176,54918,58466,57578,13305,5709,86479,16697,31064,17660,200919,10770,49793,33423,32370,52047,16488,62555,6459,8426,83493,7763,59725,82812,18628,67760,79405,68557,9612,7673,28102,56517,69620,171797,32458,29541,15870,81109,32080,207644,71495,21202,11039,91036,61230,2810,130800,32260,4613,60590,37112,75214,33979,126402,155062,30642,63875,12810,194463,82799,47664,16725,36685,43367,61099,449,172150,102867,21691,301838,36745,7130,18671,57316,34852,38034,54182,35578,65900,99486,19771,3456,2658,16914,99866,28390,28109,8262,21147,34353,20006,4228,137085,1675,203023,283196,198286,214375,163329,290603,152574,40471,83506,30068,14730,23177,131539,34759,27668,32178,71896,104799,116305,85430,119262,42860,25160,8911,23428,49437,105322,6519,16203,6349,74711,1230,38045,8540,75165,44736,25909,51026,317034,4984,32281,91312,27060,44431,17817,45363,155937,239085,35697,59784,91993,29531,126740,213757,76560,167776,285273,24262,8237,65030,41160,74437,48804,118916,13159,37842,1031,75349,1478,11655,108777,23435,277425,101734,67469,70231,124711,43532,28514,65526,54956,1e3,21882,17728,25302,40952,52214,149632,1999,2111,3259,63362,89961,220561,39777,26335,9063,10572,12416,34551,34623,38604,24723,5947,15588,69927,66252,119177,69173,46629,28714,70715,212408,20521,406913,74380,11716,50659,50862,37009,88460,130101,7210,53853,538,65120,151950,55806,163748,52837,13153,21100,16674,64536,6091,138201,44837,58547,3723,163,2177,32288,85454,34033,8497,14282,25742,10535,10741,79559,117493,243787,49337,100718,79495,40139,42956,7551,55433,15421,31509,23034,45081,547,61176,53434,328001,8470,36263,30145,4519,74173,53935,11845,73774,60211,78025,3,4102,73782,109293,315332,48412,26683,13714,6865,20128,18490,104141,325,39470,171970,115860,15707,7268,73301,74336,31370,2368,111827,107757,136231,142844,97138,96638,84053,38691,23801,1588,10573,122098,77039,240,186135,146101,11996,18143,112963,46171,155836,348769,47795,121213,116266,132515,3344,144804,31286,99187,255838,129694,35894,48779,55235,148582,71967,65282,15174,13920,47080,6147,108242,157593,125025,7136,1286,28957,127956,28402,98813,20805,7532,109417,40610,5041,32958,15142,18408,108596,33543,50517,27748,80114,233434,91447,487,37094,100048,30541,43477,10639,89862,155868,37667,8726,60684,237903,73408,99589,12190,38739,97348,3914,13594,2680,149016,13907,30171,28343,23530,115225,61104,35821,147679,14337,4297,244282,24085,326976,56428,7851,21303,131620,71446,83253,68692,111870,5224,15813,38197,49026,45057,13660,3306,76345,40671,27905,91072,996,68527,62085,91351,122634,55109,168209,2024,27560,112707,17352,8306,167115,169921,166958,5031,46020,11844,67284,19130,76185,6920,32849,5450,14610,22451,21002,17392,31872,66682,84796,13709,40210,59898,12029,8719,53564,21462,91884,21647,88379,194428,12754,37797,132826,160016,22567,54383,53186,77611,31107,8339,4694,19185,90355,23597,17222,140675,28442,23668,55977,9128,61555,28774,155229,17658,9390,24379,69357,15752,127381,239631,62460,93181,55913,45133,140155,18676,25249,33164,29581,82837,67223,22362,29975,7317,52813,1943,29613,20012,207130,49617,49651,5636,15334,36313,29226,28084,95247,72072,19e3,224932,15811,114,32127,38097,37508,88507,37225,27359,91626,12193,69279,20608,11055,88156,92808,2152,57259,55275,72789,24475,104414,1708,9882,3818,48661,66897,1631,34806,227930,85815,87753,18321,250664,72733,25107,206797,50891,8082,196411,92596,96764,152823,65514,22819,387277,62176,51225,40329,15563,189,3659,73670,64357,51793,275136,33482,86653,74615,67058,11318,125720,15388,22388,8267,1730,102663,170910,40784,7144,85373,13040,7088,94309,583,44224,140424,77439,18496,164026,36578,4722,9151,5824,63365,26510,35199,40500,79277,32495,44614,35233,9566,203293,152144,7097,2330,183480,98629,13423,330887,44130,68600,30939,97829,31012,345465,56747,94879,4939,160027,149761,99423,46099,32251,15332,8761,96094,128555,5763,235318,222223,55729,30241,55420,201746,3987,81382,8259,49325,23287,7719,24633,251100,92311,18591,110533,64759,170260,393860,7175,21144,132887,3593,75346,101277,91109,16387,259187,11627,57459,173829,44694,55780,49797,89192,120443,62622,3904,14814,23887,1027,112258,64955,99800,11132,66353,36202,48624,18158,88481,96882,43059,11040,2455,7077,21651,181159,99126,100434,61388,68186,19161,110468,120052,8819,55324,41494,7014,37689,3618,87729,92615,207943,9823,128657,12587,15857,6379,67628,51216,71775,157617,63244,1503,3864,218754,110864,5769,21492,7243,1192,87921,85529,31512,18537,42698,35350,73510,84474,34301,8991,21013,35034,566,38832,19838,35586,37216,39413,55006,12178,59742,856,84563,6900,25632,17437,49786,30723,13847,70845,4044,7843,23944,235976,55530,48942,6518,20939,73769,192653,52936,95207,23895,132542,142982,22632,87452,48042,54018,178468,10728,26230,23559,363,81269,142012,5718,346258,31456,84333,246476,51018,66692,101804,120570,39962,30373,70593,2864,60541,19425,54209,104092,7201,31545,48018,25865,15442,46257,40443,8328,6451,111782,47527,97754,33046,470,245116,31095,39,91934,87208,73470,36708,36521,12801,70624,36272,8892,79768,12427,55454,103756,5908,52390,62962,22720,141138,94634,41689,128402,126390,6628,106394,35527,134394,82727,254651,194502,148064,89549,3202,28359,957,21954,27906,49840,142747,8307,24206,48978,1186,71728,133038,71474,91306,6333,110959,74600,70387,18983,62609,56057,22970,1147,135850,1321,28834,3578,59715,102227,32827,81415,99952,55636,257598,390,22702,35701,85872,402916,39216,189795,14929,19467,10112,144422,61514,5279,63421,134686,41436,8424,51925,10598,132295,124416,4604,194739,210929,57866,31829,51626,50007,9976,91878,61906,56168,81906,60918,61859,40017,23059,16887,40927,62064,12785,32893,32913,21782,93965,20169,44387,79084,38463,11457,93950,27127,157050,2697,337088,5116,54128,48255,33279,8821,27352,25515,124022,65710,28906,38557,33390,1722,104435,72215,38551,12094,30978,25113,6671,37355,175109,42862,98024,65406,221276,59624,118012,64637,78760,86697,21426,1639,40350,12584,67193,84144,31396,7863,143011,69629,63112,9454,28666,65798,46372,134721,6314,51402,30837,151922,2847,38676,38008,92823,136245,17540,5504,109295,205242,37606,5211,214892,1586,20670,208711,137743,19328,40652,16995,20023,14657,154919,34422,12996,13918,38221,47690,16398,2959,37680,89122,6721,198469,91876,172043,83898,101992,26084,94570,3635,76958,22853,76497,38266,176590,168403,44464,142840,79180,184594,1984,41806,83147,11985,6546,366068,59732,24533,271505,8736,39084,222992,93429,28962,58985,86665,8432,30028,14548,32439,54424,165029,55175,27458,69046,121277,46168,33732,20661,24581,135574,123110,37556,79260,72611,16957,12939,46162,58238,44907,72936,253758,41324,32518,96480,11949,124438,65280,43256,34107,53533,43531,37037,28366,45970,32741,173438,6121,194202,62969,26355,30314,58370,28455,1848,50519,82830,90393,21761,295490,10936,256940,133568,44050,20269,4089,27457,21610,219460,36743,14821,101388,52005,13124,30979,140816,167362,26054,18458,60789,34917,40447,26606,33422,9066,3452,83614,5761,20263,137238,25038,91310,101,52322,74548,42572,38084,214054,186568,31802,17665,30620,141936,37730,14420,4265,187218,49640,188208,51441,55388,96452,66659,40869,42039,60967,221027,19234,178581,29105,96050,9165,196118,157335,3738,40354,117436,2965,34136,59659,15570,50843,230035,31444,71260,43886,18316,5387,38500,168508,17406,32174,8828,103373,143806,90367,3560,18719,122310,16508,26719,2541,105429,6645,37998,73190,10591,235916,49737,87112,233941,53188,32193,79154,4544,52905,126477,7580,63501,57314,3216,31337,6541,103083,60846,49,9756,15481,1355,43840,14319,13743,27486,10222,73114,230718,418644,16706,6674,279748,23058,45273,295831,86306,2743,5535,88773,21829,35253,120938,31153,3169,16839,42847,8751,80974,33942,36867,35514,16485,26474,77775,56877,5391,48346,3882,108713,31403,27804,55248,26235,43821,136104,40118,175507,28034,203908,18732,1788,34030,106427,36958,54359,7251,44936,15356,69139,455,157915,22173,140291,50348,43275,82066,49621,54952,15216,36226,96695,66855,6936,1987,8227,196087,4631,68827,99004,47541,110265,17953,147605,110242,58520,31312,38724,329975,642,3155,34497,75937,6207,73843,6120,17249,51429,117746,3218,910,68961,319671,14938,29555,34700,1649,66673,72268,9655,76800,153087,6941,210168,27130,35398,1780,73242,3135,56689,19556,165307,8765,35967,121458,13333,70453,17350,117253,22265,13340,44265,39869,441,3742,135025,23581,33309,16543,17731,13291,157637,283005,21408,101360,63887,52312,83873,5338,233779,23759,186949,34531,177320,38069,156465,91004,19353,59852,68160,14891,1338,1072,29823,1950,28901,81407,313445,73038,84807,162348,240257,37162,138934,16111,58013,41253,102951,16457,96056,19541,56402,67217,41638,94381,89674,29481,37456,80815,151579,13937,13683,132537,19699,134545,67020,29816,222341,141235,427578,48868,129557,233342,23077,87871,16213,18728,16184,9469,37913,19680,2798,171356,178328,13216,50049,72690,71904,124644,55455,7504,29052,41036,266546,19899,30391,188755,8659,59469,16,104298,112943,53865,76203,138226,68857,139953,14125,107625,119795,173133,4398,50273,48808,54390,16466,122086,31835,67035,50971,48859,7508,46427,66477,73021,84615,39985,83076,46779,201569,53336,36443,60865,168164,143810,51393,25548,169307,32896,24485,38424,21837,29087,275813,51674,6714,64883,46169,187369,55186,76192,12852,12018,62134,31067,118303,16542,12125,10579,4928,26291,43854,7091,10946,253716,109062,39283,17261,113012,258512,47764,125126,32646,55892,80279,201623,149872,3192,385,1208,48750,5376,58738,22335,5427,82416,47811,32435,143086,38930,94128,59975,156037,37977,38224,62485,7698,50405,71027,16462,21559,136153,34131,107506,162069,63703,3101,215029,40407,4178,3774,9187,80019,17880,97926,67579,2600,18405,8351,47924,86638,70820,92206,86453,29610,42241,119200,3198,15466,67813,57863,35454,4779,99518,4649,104641,144269,33730,38073,65864,6838,109456,193298,154007,5623,45741,30846,182578,25573,157224,1543,58575,138703,146140,44971,49356,18275,59064,20300,13122,11848,24453,11973,9797,86843,2919,25530,49210,1130,161220,76788,75373,85604,34926,36014,17777,17255,51533,11676,92226,51845,119859,21525,5936,18507,28050,1140,31418,14857,34207,47859,10750,36382,32079,106909,59426,87757,38393,110042,15965,97104,33757,35344,97993,53979,33651,45407,41884,82515,173089,7177,58371,35365,47543,51927,35587,10670,23544,29306,84233,39976,76076,62097,9007,8668,28119,78281,120790,19835,143020,54968,18670,64959,20649,34469,42570,33001,136570,87796,120044,1106,58700,63951,127623,12805,83057,40212,31773,49850,7361,54336,347524,101314,23751,19569,48791,29174,49369,20467,7465,75842,38281,623,112457,60210,28849,51003,94720,6426,90047,85560,43761,3579,85105,34607,90410,118528,7224,42907,111163,18168,6960,161135,191298,5247,100584,127552,171568,20121,91173,12636,54615,20199,63730,98105,2396,40387,14438,125012,4765,33235,12865,45299,37728,82098,77872,114037,59253,19675,24838,398016,102561,11446,17069,57508,178277,65836,99941,26114,2585,271882,136866,50126,11027,155648,118367,14585,8910,123015,335383,40434,41016,53021,14439,87098,176860,201543,121888,2358,9286,5739,22666,54270,37884,169381,33984,93859,16124,89364,72207,51639,76366,99029,65812,2198,12147,174891,194289,6986,30252,88822,21284,11445,288337,160821,33034,100869,43852,25761,52882,1144,103809,1924,84458,86079,43411,13542,139276,18141,34978,41298,7276,26481,173800,33210,17951,142652,33616,33677,2210,19941,98568,2486,192414,80136,12058,235883,50963,249638,29572,27221,47034,6124,72107,63346,97620,158513,299699,40388,23235,37176,224244,198386,121323,67992,23827,63170,17838,106622,158590,26807,5345,23489,91891,55474,74834,37981,13058,5977,72552,34706,26828,145172,19904,21367,34043,960,77092,91381,4733,47446,7680,41697,5170,16960,14741,46101,13656,473,51842,37433,11103,11551,121951,13191,97536,165932,50397,51628,129028,9069,44885,6590,59195,47045,32940,225472,90345,21833,13303,29407,96615,141951,5198,6028,18395,7181,3861,14966,156358,167182,36529,55253,25942,173153,30959,27261,50691,150176,162201,38467,48462,80602,42163,118482,168,108756,26011,17166,54149,456538,22512,91374,13816,90358,131615,18132,226707,1824,28139,26860,42253,93877,77351,65575,8980,80574,22020,27948,40422,91324,76376,13528,39281,91685,82215,122541,144066,1983,193851,17283,26320,2739,194978,4790,26845,42627,61300,65815,174612,55133,4200,191130,79771,158321,52280,166796,221620,62461,11278,4067,88152,83409,31717,121367,13522,47325,37945,10406,174348,249321,154101,64912,29938,51775,17220,15776,166138,78890,84425,54121,42861,16368,24572,291647,10197,32073,22651,11677,97509,26952,35787,18424,41910,71614,94977,72318,41594,70024,275419,37702,60199,7335,39107,61315,18271,18394,33768,87884,104277,123724,7277,56288,71981,189803,49320,3352,6798,14240,8954,69220,94433,57372,28620,68863,193727,85575,42309,41667,67689,42081,22543,44824,12719,28540,114236,101553,27638,27296,4300,5353,4663,19379,94098,3758,95888,95144,80344,87320,28447,259518,12718,71391,152731,37063,24132,31911,104896,15672,103782,1521,4945,72541,23717,122632,15619,87175,206120,29428,189780,61416,28350,44457,972,1175,47233,198738,95789,41907,21953,97034,59341,22864,53713,16873,32971,20693,20954,31336,21477,16169,38370,16412,9019,3841,24599,21938,17085,6484,81198,76413,5849,72514,12320,65247,276175,37234,59796,52642,16312,57349,198507,94148,46134,18958,125552,1747,18725,151873,14901,5490,68287,29470,3689,64794,40814,26018,25692,54450,2703,88278,124886,173087,174e3,24159,179477,24276,46004,201876,209202,445,52876,31948,30206,157610,39180,18439,44124,50469,5774,96278,222758,200216,50290,45486,20435,46986,46276,140133,142326,15569,13363,47522,92583,2182,7135,16853,22998,30272,4952,63263,35623,39096,53789,44864,20053,110392,124213,4630,16087,28221,127787,25839,77481,44693,13464,113146,6983,27069,55717,50102,4760,7107,26186,66507,59145,36032,104182,71328,29425,64317,50781,47465,94298,69706,74899,22754,120756,25108,93077,56834,73286,39928,16218,41699,176763,7555,70819,50083,26895,23315,26014,16773,123079,41712,5719,31516,90427,158540,85051,183128,40864,27505,55392,9058,45224,96857,30901,136622,96557,56304,120061,11501,151448,5773,89743,7769,86069,2935,18471,41628,10114,33660,110170,49479,26745,92846,33221,26731,18795,87076,8550,2100,29972,120289,3077,72490,33784,2630,208722,50861,63483,79029,6419,39467,14302,45286,64207,9686,67513,44170,1050,77246,59266,17055,53801,7150,11111,42432,4278,94579,362117,36175,42902,41933,39002,98489,22913,74161,84773,57036,17556,162288,74485,178760,93867,73635,128860,50362,261,67455,80001,46080,35662,4368,25247,19230,74393,22588,1822,27682,235324,13798,85998,13194,235067,23514,71669,147632,23191,134748,214683,105101,1518,25489,247114,7380,54842,26922,3971,26361,20844,68642,170517,77339,123255,8963,77818,150998,48466,36806,2732,23261,11741,236162,18243,126216,28690,50546,16385,92760,197383,246558,201295,88255,67588,71687,176076,172653,169058,33906,63747,24835,157621,43338,30050,46152,132741,2770,51371,94835,6614,15112,11749,56936,1250,19027,399017,58036,100215,23388,55815,308768,124152,94803,9521,64186,8971,28,30427,62163,7616,103838,35079,29203,131235,7743,17389,10882,37420,61460,228512,85363,41581,131077,62822,119647,10130,54445,26925,19968,29016,24446,74028,24176,61448,67185,9254,8563,119129,9771,99184,37716,39514,10532,221512,258753,218630,55980,23394,32141,61924,66749,32411,3741,36475,26678,77010,44946,91203,128749,116953,20476,49625,53116,13735,102335,29376,51946,83407,67892,59212,34685,21083,1546,112982,32972,74397,1078,190545,16082,86140,58591,89611,101531,10061,105104,76319,20035,17551,52611,169061,190842,100780,23907,90413,115619,9675,34710,193435,49443,129734,11183,258877,16318,136182,126808,44635,27304,192375,2599,125648,47051,12091,23814,721,58800,40137,66726,97930,60877,74487,7942,54326,9841,41428,13762,8211,85383,6950,99177,79806,201786,296464,124087,13144,29741,41721,47634,55088,254286,106408,17041,99064,12942,64086,45233,14005,2612,55827,255,7984,13980,38574,12776,46654,73499,249951,2101,26676,25996,132326,116415,119062,50449,31033,23038,11589,179252,20007,14860,129270,21143,17796,144715,60106,70758,69842,34674,282133,44014,16774,57268,38528,24053,46373,201667,28327,471023,51889,102667,21193,114909,84132,69317,96723,67969,16134,68145,15058,28765,32035,2524,101089,98664,25045,76571,14957,86040,118506,262428,154764,81573,39681,283900,73287,127825,544,80448,52347,38512,175971,15180,45467,33086,46552,48894,81107,43213,36672,54025,76703,8053,7608,13299,56619,20752,238099,54164,105133,1444,32942,953,37564,8e3,66316,119463,106817,404,13667,149108,128597,31267,10269,49836,106150,1484,52330,76965,160486,171648,38456,31263,22424,37738,66245,67467,143369,60471,75610,20895,115528,86070,60854,40796,49347,18989,15030,11371,37578,15779,79867,10187,86462,46402,155626,93200,40229,7090,57547,108053,99598,11088,47505,41218,206017,2173,20988,30219,22919,80563,57566,42369,93141,41675,2407,182519,120495,27154,16702,29456,14349,7958,16688,117177,140375,42467,261919,74916,153569,10836,34742,49526,7621,105997,12212,2270,392377,7755,17959,25086,232152,138791,33847,13860,35316,5811,1344,71259,50452,207539,92635,50359,5821,33674,30255,2086,2587,96264,17543,42,6029,9580,43007,139248,82831,12917,29607,25786,51467,42137,85161,100698,31561,88989,121990,278500,3602,109344,37982,15279,116442,28936,30880,87894,58079,128661,126731,67392,28051,146885,4861,16216,97344,42827,147561,153948,22684,21335,47685,1853,43349,15185,59642,10229,25520,187921,108972,5579,98037,24945,6697,19193,63734,137934,75056,89740,19767,224268,56138,63643,151661,39313,70618,84031,89723,84074,13703,85626,35460,8867,64845,3439,57906,99776,63968,49270,81130,34356,16210,23547,36446,34090,140028,72439,2221,22163,57058,363492,113754,18913,95451,48663,54464,54037,176097,68425,3023,34906,29482,117389,341780,80431,58330,16753,92616,60907,94846,147486,4498,48646,7773,46801,7778,18946,464978,47558,33223,177444,7328,15626,63337,94700,11743,9351,255024,39098,16447,42647,96230,39769,58840,10068,63439,35800,65843,58823,413844,9156,51258,7434,61791,85018,6872,3692,28096,7121,33024,6009,75532,31997,192535,9661,3304,9547,14753,31987,25314,55689,15896,20430,39472,31340,99744,25398,115569,54883,28719,205423,23071,57855,64638,149867,25671,82403,37616,20668,39989,77996,74948,140555,175248,64810,36515,46595,4958,248773,24045,28728,136673,168704,20804,114833,100325,27135,21205,96151,153134,45992,7093,13992,76047,1980,19432,145001,75159,87462,17710,1013,45556,34297,144882,20648,26061,11319,129567,108555,18872,464580,33386,22717,65948,167189,5603,135042,79542,8801,202632,18114,91882,5973,5239,67315,4431,60916,47819,71693,32597,32606,18183,45072,80329,76385,24749,51305,40314,156514,14693,130345,13168,66214,18029,12858,34801,27628,14544,10823,40522,40185,33739,148694,23548,9923,61012,28859,17933,19442,34364,99849,164107,141167,30629,21054,6744,36491,8096,42474,41706,155060,30650,10600,163442,1143,96655,61390,52359,7559,51568,64256,203854,4467,22453,14504,436398,7878,6980,8293,63610,293747,16167,35763,19627,147603,15419,18032,110744,51346,33681,54571,40472,48615,39073,21604,13754,173027,92560,11083,47299,63062,11813,52007,29883,9734,139722,15953,1550,20651,13616,49306,16113,90089,92326,7584,30712,72424,164858,6831,152871,55746,197721,34167,196442,6022,112107,55215,7538,123381,4920,43539,77165,8939,50392,34192,20225,79762,22505,58667,40770,29788,97180,82835,4568,8579,13273,363569,35898,49983,436,36598,3237,131691,62418,35591,8101,4073,379438,65218,76072,33887,2968,27573,212619,288680,68278,72851,150504,217896,6913,121339,22017,35340,51072,43616,75043,31437,10833,81487,4364,22968,41454,106687,85446,19863,109625,149241,524,141850,214404,54376,657,237023,9401,108137,53800,32474,49712,53334,126876,27337,45552,177696,8269,15036,12097,42240,2328,125374,119295,99715,2500,19624,39441,27220,102691,60957,94543,39101,18566,67362,13975,78230,25017,34017,239007,90027,39351,41681,35354,43822,1043,916,58587,141983,94818,38799,75459,41114,67432,16195,36606,59568,22272,126769,31424,68659,12287,134302,257977,5756,207285,95637,47248,117689,19583,77451,22373,12200,54993,117118,34244,29386,34562,53819,71267,64172,77665,49368,7716,59301,25749,45426,194789,17297,2650,1766,32501,45198,20403,20984,6600,14171,94604,19037,5402,29896,9938,59935,109708,88081,145182,44844,39167,352626,164173,35374,45982,6122,154,73419,220487,53834,53601,17992,8609,229321,5610,68098,66815,71012,95069,140968,27396,8957,134489,24656,86659,56598,134852,17316,123838,255436,6613,41610,138033,81452,32023,32396,123687,63398,8693,29712,30407,19296,121188,3551,36099,20032,111948,56624,16547,27453,35916,15378,52039,56849,13489,22214,73177,53097,277349,2157,14029,187886,10260,141743,246460,91880,50869,3788,49486,133566,54950,33120,129337,53768,18333,9525,26902,312251,10297,9020,70759,16647,112432,59260,84609,9818,82766,73569,468,46001,75780,55028,52106,11498,43645,108069,17150,17753,29417,16705,31799,9606,289,122254,115975,8620,6133,255357,56908,14456,133464,43554,79224,11247,29630,160,12756,25464,65960,350428,62521,321796,100359,67358,35169,46172,113128,48988,88868,31094,33266,6847,60887,98188,49659,69117,92977,220228,13947,80181,35103,62170,97351,13475,2440,199768,19498,36597,46971,25234,67806,62881,84717,73648,181966,10488,94149,21550,26655,63436,48375,14405,165650,9621,24439,28043,42735,4490,29963,56674,45373,1934,262446,50855,67098,26898,5261,52696,40644,33900,9440,180286,87162,22940,19704,26936,69769,10254,101759,27406,12243,48e3,73926,113215,54935,5726,192787,4312,106216,9366,11550,52949,23457,212271,277152,133895,108374,6191,96477,29980,218916,58024,54696,40853,91124,65894,91170,65908,252552,6793,29212,15389,44516,122515,52617,35058,9017,103536,39510,49136,19242,130652,662077,74699,47024,31422,8517,73351,24399,13867,128360,4810,4434,61779,111983,61036,17798,110240,59722,102960,39688,10001,23803,23039,176498,56659,44814,134295,17188,77577,74466,226175,102472,154333,63900,111747,18062,41171,79669,32773,408933,42562,28931,30907,107388,43487,2946,240310,23938,24354,319,184983,7927,6488,1422,10790,68809,68209,64775,4361,202,17123,59634,51200,44391,18188,17843,2619,74278,3230,9540,47187,21702,36274,56894,43907,16310,34790,16866,6150,5561,13587,107545,108873,126867,86986,28640,33427,19017,5762,80637,17430,46903,2047,131055,25958,13558,5444,47152,13900,44563,122857,45348,70863,39593,54332,38068,33637,318,40310,143467,18502,24520,11377,62013,28942,27246,28269,83545,17999,59015,90707,30065,15161,34720,1263,37008,2012,6060,98575,92933,5721,299,199555,24578,29223,2985,743,115825,109523,136657,47454,26378,53586,3733,174945,93340,244456,5693,37386,28782,89767,27545,23573,18798,136425,34320,84778,20041,48453,38215,7477,71958,40621,8773,5874,187927,105965,51100,43533,18083,8443,10180,43597,2003,183999,69689,12216,129696,146188,62389,34044,68410,12765,43273,26949,266807,3345,34477,79197,5688,47539,213110,21634,22257,50092,32222,42346,39530,63668,98,134978,74022,5152,59088,174145,37220,9934,9545,118937,5724,87240,19875,15784,40143,23263,87513,181654,285152,37881,263241,4966,43934,10433,186657,6470,74416,225854,25908,142677,246262,32280,6192,75890,45546,143264,135305,29742,47013,77787,11732,126658,8763,37950,21806,57557,113464,89465,108995,164574,23894,22996,23169,15369,23117,17642,130607,40503,36239,280990,44666,9981,40427,147487,26869,168452,32886,32991,46798,240839,15111,70502,65697,88548,44145,28701,48767,31139,206777,35659,181164,166262,14554,171445,31786,66523,76607,17956,6507,31279,90476,116611,167918,6560,1243,115324,80128,41867,55897,187323,37069,32596,189444,145931,13390,105530,65709,26805,6999,55714,41300,22915,68951,22138,21120,22264,10058,19945,33635,56123,99085,10032,5818,6016,46649,57476,35264,94413,112522,262288,93686,83038,14341,23204,28807,66084,77987,6101,126673,7133,38126,5923,122091,170240,97772,46874,215746,43948,41622,3272,55596,8332,146411,251315,13533,8561,81521,115449,48616,175175,2063,186556,3036,134537,75772,29728,82360,22973,186559,86348,89100,38388,82297,45610,2613,87082,9986,177812,57884,23591,47485,42543,33582,44713,74439,257444,252451,31825,35631,38540,33066,5147,13973,4343,51830,70378,22827,26448,95560,36896,241741,48067,203953,298860,61620,20450,3220,67272,6586,107662,100160,108684,6929,57226,4762,7457,1320,40404,77204,99309,62750,208653,59977,44e3,74315,34332,5819,172217,64904,114077,18147,84012,1791,98456,90930,21446,116669,103938,7422,85140,59713,5768,326211,16239,75411,13229,29398,10758,236107,1539,112472,95979,152154,151294,306,21196,38146,10700,6891,84282,109646,56492,40539,6589,119491,51354,30685,140209,136906,29622,73617,49553,70525,51671,166869,139616,74395,37439,49595,45678,11959,33211,86560,52434,9282,62690,112155,130810,5243,108261,99970,265613,72551,80049,6391,33365,90721,66737,69872,87011,1860,9032,112544,60905,37371,89015,140351,19076,850,373531,2802,36725,218795,72062,28990,16550,24614,7815,6187,26336,33373,32162,42791,73555,32062,23386,10244,56392,49442,27076,136262,12412,14883,1134,33675,97153,199281,15608,100152,74072,47942,254301,36451,16026,10687,65067,56708,254030,30290,50490,13864,57941,259331,35588,23485,43486,24869,21620,92971,22072,88645,1048,182050,13343,32452,14825,19509,3325,216938,45740,99716,189082,53740,78245,25609,24311,176777,47340,308354,40669,66085,14102,125339,9225,128709,97207,1271,200933,78439,113451,88975,18324,46521,11819,18570,141756,72512,170020,52754,63550,118515,103073,93330,32736,50499,14722,31600,68452,398867,29316,172786,18417,104924,2606,5670,84818,16288,67106,59580,82929,607401,291,85829,359,15897,35830,50696,65630,52672,22115,356968,29895,40837,231192,34024,38957,26722,406,23335,124952,72068,68804,13268,147101,164740,276569,162596,66943,11569,26654,66358,4777,23229,102127,5848,978,2921,59666,5371,28212,90108,42938,39320,2499,4271,108792,33510,125072,71653,65239,38250,66357,38577,13964,86251,35708,50755,36010,29448,12209,3844,38222,206337,100876,67827,137088,14167,252225,84163,195270,1306,5703,54198,779,46802,22028,51124,86759,70560,113164,35685,162145,45471,34561,422,2611,6464,47486,19223,38246,9191,18331,89942,243642,212364,15893,17518,22617,6409,30046,126182,59716,36560,104428,18846,26592,19458,50793,147333,30826,1388,27647,10922,14495,33545,19269,135828,39727,41601,46931,233379,49169,131130,182112,16276,82381,118209,142445,128310,19672,28740,82907,33436,3118,102206,28723,24819,41937,38854,5157,3881,111491,1142,9776,421673,152241,29309,14961,87854,6054,15424,3796,82656,54996,2108,55367,239450,154525,9643,118103,106041,64601,68549,48707,30266,25772,18740,9462,229669,91798,112152,191327,14493,72828,8175,66636,236474,25817,87351,129027,76653,20422,22983,71240,27846,44661,12399,46158,77704,53101,35032,11072,17300,109294,33638,24408,1895,11241,760,17584,82479,125877,63150,141075,34259,23274,81698,15732,43577,48340,91584,14688,16379,24481,150280,96420,262050,48635,43727,61819,56268,72003,88178,17281,79912,13218,122519,125295,166396,11811,2171,118930,67746,17636,178278,174656,95661,173039,83845,79689,17473,98555,127696,203415,54730,22925,232239,9309,12136,175026,20740,180188,10747,39816,314017,266131,10040,175732,112550,220651,31974,37393,888,23008,86799,4303,64905,148467,75337,251,3284,370102,50264,9835,5438,23655,4481,29851,329,12855,7162,64931,78141,12804,42372,296771,83547,18624,34874,86271,3360,48665,77735,88767,11463,63527,28889,22258,29140,194315,113924,25499,6406,31334,1845,4802,49184,43455,35469,127594,92970,61038,115005,38840,87761,106838,8811,20572,55637,11162,96721,132425,108925,2948,125457,36356,3502,75270,27622,127192,2561,123095,49394,61155,16897,110064,9699,89448,53356,19628,220310,21622,83036,9885,112214,6087,26713,17901,161912,91492,3440,68594,9266,92238,8087,6866,150194,72175,80701,13459,31836,43243,239700,95846,44749,50647,21945,230538,120612,132371,244604,5193,105637,34661,41341,68775,85393,1874,8771,33718,49672,77403,595452,99507,6490,58895,128742,7704,39239,73217,43816,62824,37804,199976,22361,80005,87514,94832,14089,4574,139975,59142,75523,100268,43906,53442,15152,2547,186002,17011,19513,204282,3343,60568,128318,119250,4298,51871,41336,71759,21921,45074,98169,145889,99427,11350,1237,5520,28799,7803,53702,21026,136352,38293,128690,12158,90132,44600,10184,26957,39459,126025,78904,82999,59373,39301,150198,120529,153042,20177,50089,14764,271571,30530,123161,38975,101562,22941,5648,124654,109243,69817,71675,49162,106884,21241,107795,30258,16572,188262,141456,7688,60718,8271,11044,32440,104608,103419,236109,93156,43293,128929,42107,67180,25201,115254,185488,130954,72813,167547,20537,39969,38432,22582,184022,1139,27199,5655,17767,97412,122606,209377,27070,35871,326617,188954,42680,73512,80911,22629,3011,95021,315242,157737,383,41821,41808,19335,27950,15674,25677,110950,35375,76835,59108,57370,35262,16569,160415,37706,78086,32041,49691,137143,9782,172080,50148,77917,6323,10110,69172,17711,21795,59511,76184,135114,31046,132319,59105,157578,20549,80778,57649,158421,65143,4575,72235,21899,10797,92745,34035,106079,80159,4508,78304,25350,75457,46458,32937,25623,47,8531,104751,84953,8138,36508,187199,66310,115274,13253,32461,38536,1916,42007,187160,35055,26325,84394,35963,94216,45590,97782];var Y1=15,Q1=class{log;peerRouting;routingTable;refreshInterval;refreshQueryTimeout;commonPrefixLengthRefreshedAt;refreshTimeoutId;constructor(t,r){let{peerRouting:n,routingTable:i,refreshInterval:o,refreshQueryTimeout:s,logPrefix:a}=r;this.log=t.logger.forComponent(`${a}:routing-table:refresh`),this.peerRouting=n,this.routingTable=i,this.refreshInterval=o??3e5,this.refreshQueryTimeout=s??3e4,this.commonPrefixLengthRefreshedAt=[],this.refreshTable=this.refreshTable.bind(this)}async start(){this.log(`refreshing routing table every ${this.refreshInterval}ms`),this.refreshTable(!0)}async stop(){this.refreshTimeoutId!=null&&clearTimeout(this.refreshTimeoutId)}refreshTable(t=!1){this.log("refreshing routing table");let r=this._maxCommonPrefix(),n=this._getTrackedCommonPrefixLengthsForRefresh(r);this.log(`max common prefix length ${r}`),this.log(`tracked CPLs [ ${n.map(i=>i.toISOString()).join(", ")} ]`),Promise.all(n.map(async(i,o)=>{try{if(await this._refreshCommonPrefixLength(o,i,t),this._numPeersForCpl(r)===0){let s=Math.min(2*(o+1),n.length-1);for(let a=o+1;a<s+1;a++)try{await this._refreshCommonPrefixLength(a,i,t)}catch(c){this.log.error(c)}}}catch(s){this.log.error(s)}})).catch(i=>{this.log.error(i)}).then(()=>{this.refreshTimeoutId=setTimeout(this.refreshTable,this.refreshInterval),this.refreshTimeoutId.unref!=null&&this.refreshTimeoutId.unref()}).catch(i=>{this.log.error(i)})}async _refreshCommonPrefixLength(t,r,n){if(!n&&r.getTime()>Date.now()-this.refreshInterval){this.log("not running refresh for cpl %s as time since last refresh not above interval",t);return}let i=await this._generateRandomPeerId(t);this.log("starting refreshing cpl %s with key %p (routing table size was %s)",t,i,this.routingTable.size);let o=await q1(this.peerRouting.getClosestPeers(i.toBytes(),{signal:AbortSignal.timeout(this.refreshQueryTimeout)}));this.log(`found ${o} peers that were close to imaginary peer %p`,i),this.log("finished refreshing cpl %s with key %p (routing table size is now %s)",t,i,this.routingTable.size)}_getTrackedCommonPrefixLengthsForRefresh(t){t>Y1&&(t=Y1);let r=[];for(let n=0;n<=t;n++)r[n]=this.commonPrefixLengthRefreshedAt[n]??new Date;return r}async _generateRandomPeerId(t){if(this.routingTable.kb==null)throw new Error("Routing table not started");let r=zr(2),n=(r[1]<<8)+r[0],i=await this._makePeerId(this.routingTable.kb.localNodeId,n,t);return He(i)}async _makePeerId(t,r,n){if(n>Y1)throw new Error(`Cannot generate peer ID for common prefix length greater than ${Y1}`);let s=new DataView(t.buffer,t.byteOffset,t.byteLength).getUint16(0,!1)^32768>>n,a=65535<<16-(n+1),c=s&a|r&~a,u=x5[c],f=new ArrayBuffer(34),l=new DataView(f,0,f.byteLength);return l.setUint8(0,wt.code),l.setUint8(1,32),l.setUint32(2,u,!1),new Uint8Array(l.buffer,l.byteOffset,l.byteLength)}_maxCommonPrefix(){let t=0;for(let r of this._prefixLengths())r>t&&(t=r);return t}_numPeersForCpl(t){let r=0;for(let n of this._prefixLengths())n===t&&r++;return r}*_prefixLengths(){if(this.routingTable.kb!=null)for(let{id:t}of this.routingTable.kb.toIterable()){let r=or(this.routingTable.kb.localNodeId,t),n=0;for(let i of r)if(i===0)n++;else break;yield n}}};var W1=class{providers;log;constructor(t,r){this.log=t.logger.forComponent(`${r.logPrefix}:rpc:handlers:add-provider`),this.providers=r.providers}async handle(t,r){if(this.log("start"),r.key==null||r.key.length===0)throw new _("Missing key","ERR_MISSING_KEY");let n;try{n=Wt.decode(r.key)}catch{throw new _("Invalid CID","ERR_INVALID_CID")}(r.providers==null||r.providers.length===0)&&this.log.error("no providers found in message"),await Promise.all(r.providers.map(async i=>{if(!t.equals(i.id)){this.log("invalid provider peer %p from %p",i.id,t);return}if(i.multiaddrs.length<1){this.log("no valid addresses for provider %p. Ignore",t);return}this.log("received provider %p for %s (addrs %s)",t,n,i.multiaddrs.map(o=>Qn(o).toString())),await this.providers.addProvider(n,He(i.id))}))}};var Z1=class{peerRouting;peerInfoMapper;peerId;addressManager;log;constructor(t,r){let{peerRouting:n,logPrefix:i}=r;this.log=t.logger.forComponent(`${i}:rpc:handlers:find-node`),this.peerId=t.peerId,this.addressManager=t.addressManager,this.peerRouting=n,this.peerInfoMapper=r.peerInfoMapper}async handle(t,r){this.log("incoming request from %p for peers closer to %b",t,r.key);let n=[];if(r.key==null)throw new _("Invalid FIND_NODE message received - key was missing","ERR_INVALID_MESSAGE");pt(this.peerId.toBytes(),r.key)?n=[{id:this.peerId,multiaddrs:this.addressManager.getAddresses().map(o=>o.decapsulateCode(ct("p2p").code))}]:n=await this.peerRouting.getCloserPeersOffline(r.key,t);let i={type:J.FIND_NODE,clusterLevel:r.clusterLevel,closer:n.map(this.peerInfoMapper).filter(({multiaddrs:o})=>o.length).map(o=>({id:o.id.toBytes(),multiaddrs:o.multiaddrs.map(s=>s.bytes)})),providers:[]};return i.closer.length===0&&this.log("could not find any peers closer to %b than %p",r.key,t),i}};var X1=class{peerRouting;providers;peerStore;peerInfoMapper;log;constructor(t,r){let{peerRouting:n,providers:i,logPrefix:o}=r;this.log=t.logger.forComponent(`${o}:rpc:handlers:get-providers`),this.peerStore=t.peerStore,this.peerRouting=n,this.providers=i,this.peerInfoMapper=r.peerInfoMapper}async handle(t,r){if(r.key==null)throw new _("Invalid FIND_NODE message received - key was missing","ERR_INVALID_MESSAGE");let n;try{n=Wt.decode(r.key)}catch{throw new _("Invalid CID","ERR_INVALID_CID")}this.log("%p asking for providers for %s",t,n);let[i,o]=await Promise.all([this.providers.getProviders(n),this.peerRouting.getCloserPeersOffline(r.key,t)]),s=await this._getPeers(i),a=await this._getPeers(o.map(({id:u})=>u)),c={type:J.GET_PROVIDERS,key:r.key,clusterLevel:r.clusterLevel,closer:a.map(this.peerInfoMapper).filter(({multiaddrs:u})=>u.length).map(u=>({id:u.id.toBytes(),multiaddrs:u.multiaddrs.map(f=>f.bytes)})),providers:s.map(this.peerInfoMapper).filter(({multiaddrs:u})=>u.length).map(u=>({id:u.id.toBytes(),multiaddrs:u.multiaddrs.map(f=>f.bytes)}))};return this.log("got %s providers %s closerPeers",c.providers.length,c.closer.length),c}async _getAddresses(t){return[]}async _getPeers(t){let r=[];for(let n of t)try{let i=await this.peerStore.get(n),o=this.peerInfoMapper({id:n,multiaddrs:i.addresses.map(({multiaddr:s})=>s)});o.multiaddrs.length>0&&r.push(o)}catch(i){if(i.code!=="ERR_NOT_FOUND")throw i}return r}};var J1=class{peerStore;datastore;peerRouting;log;constructor(t,r){this.log=t.logger.forComponent(`${r.logPrefix}:rpc:handlers:get-value`),this.peerStore=t.peerStore,this.datastore=t.datastore,this.peerRouting=r.peerRouting}async handle(t,r){let n=r.key;if(this.log("%p asked for key %b",t,n),n==null||n.length===0)throw new _("Invalid key","ERR_INVALID_KEY");let i={type:J.GET_VALUE,key:n,clusterLevel:r.clusterLevel,closer:[],providers:[]};if(X2(n)){this.log("is public key");let a=J2(n),c;try{let u=await this.peerStore.get(a);if(u.id.publicKey==null)throw new _("No public key found in key book","ERR_NOT_FOUND");c=u.id.publicKey}catch(u){if(u.code!=="ERR_NOT_FOUND")throw u}if(c!=null)return this.log("returning found public key"),i.record=new kt(n,c,new Date).serialize(),i}let[o,s]=await Promise.all([this._checkLocalDatastore(n),this.peerRouting.getCloserPeersOffline(n,t)]);return o!=null&&(this.log("had record for %b in local datastore",n),i.record=o.serialize()),s.length>0&&(this.log("had %s closer peers in routing table",s.length),i.closer=s.map(a=>({id:a.id.toBytes(),multiaddrs:a.multiaddrs.map(c=>c.bytes)}))),i}async _checkLocalDatastore(t){this.log("checkLocalDatastore looking for %b",t);let r=Ge(t),n;try{n=await this.datastore.get(r)}catch(o){if(o.code==="ERR_NOT_FOUND")return;throw o}let i=kt.deserialize(n);if(i==null)throw new _("Invalid record","ERR_INVALID_RECORD");if(i.timeReceived==null||Date.now()-i.timeReceived.getTime()>1296e5){await this.datastore.delete(r);return}return i}};var j1=class{log;constructor(t,r){this.log=t.logger.forComponent(`${r.logPrefix}:rpc:handlers:ping`)}async handle(t,r){return this.log("ping from %p",t),r}};var ti=class{components;validators;log;constructor(t,r){let{validators:n}=r;this.components=t,this.log=t.logger.forComponent(`${r.logPrefix}:rpc:handlers:put-value`),this.validators=n}async handle(t,r){let n=r.key;if(this.log("%p asked us to store value for key %b",t,n),r.record==null){let i=`Empty record from: ${t.toString()}`;throw this.log.error(i),new _(i,"ERR_EMPTY_RECORD")}try{let i=kt.deserialize(r.record);await an(this.validators,i),i.timeReceived=new Date;let o=Ge(i.key);await this.components.datastore.put(o,i.serialize().subarray()),this.log("put record for %b into datastore under key %k",n,o)}catch(i){this.log("did not put record for key %b into datastore %o",n,i)}return r}};var ei=class{handlers;routingTable;log;constructor(t,r){let{providers:n,peerRouting:i,validators:o,logPrefix:s,peerInfoMapper:a}=r;this.log=t.logger.forComponent(`${s}:rpc`),this.routingTable=r.routingTable,this.handlers={[J.GET_VALUE.toString()]:new J1(t,{peerRouting:i,logPrefix:s}),[J.PUT_VALUE.toString()]:new ti(t,{validators:o,logPrefix:s}),[J.FIND_NODE.toString()]:new Z1(t,{peerRouting:i,logPrefix:s,peerInfoMapper:a}),[J.ADD_PROVIDER.toString()]:new W1(t,{providers:n,logPrefix:s}),[J.GET_PROVIDERS.toString()]:new X1(t,{peerRouting:i,providers:n,logPrefix:s,peerInfoMapper:a}),[J.PING.toString()]:new j1(t,{logPrefix:s})}}async handleMessage(t,r){try{await this.routingTable.add(t)}catch(i){this.log.error("Failed to update the kbucket store",i)}let n=this.handlers[r.type];if(n==null){this.log.error(`no handler found for message type: ${r.type}`);return}return n.handle(t,r)}onIncomingStream(t){Promise.resolve().then(async()=>{let{stream:r,connection:n}=t,i=n.remotePeer;try{await this.routingTable.add(i)}catch(s){this.log.error(s)}let o=this;await ar(r,s=>Jn(s),async function*(s){for await(let a of s){let c=ae.decode(a);o.log("incoming %s from %p",c.type,i);let u=await o.handleMessage(i,c);u!=null&&(yield ae.encode(u))}},s=>Pr(s),r)}).catch(r=>{this.log.error(r)})}};var ri=class extends jt{log;components;protocol;running;registrarId;constructor(t,r){super();let{protocol:n,logPrefix:i}=r;this.components=t,this.log=t.logger.forComponent(`${i}:topology-listener`),this.running=!1,this.protocol=n}isStarted(){return this.running}async start(){this.running||(this.running=!0,this.registrarId=await this.components.registrar.register(this.protocol,{onConnect:t=>{this.log("observed peer %p with protocol %s",t,this.protocol),this.dispatchEvent(new Qt("peer",{detail:t}))}}))}async stop(){this.running=!1,this.registrarId!=null&&(this.components.registrar.unregister(this.registrarId),this.registrarId=void 0)}};async function*v5(e,t,r,n={}){yield*Wr(e,i=>async()=>{if(i.multiaddrs.length>0)return i;try{return await t.findPeer(i.id,{...n,useCache:!1})}catch(o){r.error("could not find peer",o)}})}var Ts=class{dht;peerInfoMapper;peerRouting;log;constructor(t,r,n,i){this.dht=t,this.peerInfoMapper=r,this.peerRouting=n,this.log=i}async provide(t,r={}){await ai(this.dht.provide(t,r))}async*findProviders(t,r={}){let n=this,i=async function*(){for await(let o of n.dht.findProviders(t,r))o.name==="PROVIDER"&&(yield*o.providers)};for await(let o of sr(v5(i(),this.peerRouting,this.log,r)))o!=null&&(o=this.peerInfoMapper(o),o.multiaddrs.length!==0&&(yield o))}async put(t,r,n){await ai(this.dht.put(t,r,n))}async get(t,r){for await(let n of this.dht.get(t,r))if(n.name==="VALUE")return n.value;throw new _("Not found","ERR_NOT_FOUND")}},Cs=class{dht;peerInfoMapper;log;constructor(t,r,n){this.dht=t,this.peerInfoMapper=r,this.log=n}async findPeer(t,r={}){for await(let n of this.dht.findPeer(t,r))if(n.name==="FINAL_PEER"&&this.peerInfoMapper(n.peer).multiaddrs.length>0)return n.peer;throw new _("Not found","ERR_NOT_FOUND")}async*getClosestPeers(t,r={}){let n=this,i=async function*(){for await(let o of n.dht.getClosestPeers(t,r))o.name==="FINAL_PEER"&&(yield o.peer)};for await(let o of sr(v5(i(),this,this.log,r)))o!=null&&(o=this.peerInfoMapper(o),o.multiaddrs.length!==0&&(yield o))}},Zl=32,Xl=64,ni=class extends jt{protocol;routingTable;providers;network;peerRouting;components;log;running;kBucketSize;clientMode;validators;selectors;queryManager;contentFetching;contentRouting;routingTableRefresh;rpc;topologyListener;querySelf;maxInboundStreams;maxOutboundStreams;dhtContentRouting;dhtPeerRouting;peerInfoMapper;constructor(t,r){super();let{kBucketSize:n,clientMode:i,validators:o,selectors:s,querySelfInterval:a,protocol:c,logPrefix:u,pingTimeout:f,pingConcurrency:l,maxInboundStreams:p,maxOutboundStreams:d,providers:h}=r,y=u??"libp2p:kad-dht";this.running=!1,this.components=t,this.log=t.logger.forComponent(y),this.protocol=c??Ys,this.kBucketSize=n??20,this.clientMode=i??!0,this.maxInboundStreams=p??Zl,this.maxOutboundStreams=d??Xl,this.peerInfoMapper=r.peerInfoMapper??K0,this.routingTable=new G1(t,{kBucketSize:n,pingTimeout:f,pingConcurrency:l,protocol:this.protocol,logPrefix:y}),this.providers=new M1(t,h??{}),this.validators={...P2,...o},this.selectors={..._2,...s},this.network=new Z0(t,{protocol:this.protocol,logPrefix:y});let g=Pt();r.allowQueryWithZeroPeers===!0&&g.resolve(),this.queryManager=new V1(t,{disjointPaths:Math.ceil(this.kBucketSize/2),logPrefix:y,initialQuerySelfHasRun:g,routingTable:this.routingTable}),this.peerRouting=new U1(t,{routingTable:this.routingTable,network:this.network,validators:this.validators,queryManager:this.queryManager,logPrefix:y}),this.contentFetching=new V0(t,{validators:this.validators,selectors:this.selectors,peerRouting:this.peerRouting,queryManager:this.queryManager,network:this.network,logPrefix:y}),this.contentRouting=new z0(t,{network:this.network,peerRouting:this.peerRouting,queryManager:this.queryManager,routingTable:this.routingTable,providers:this.providers,logPrefix:y}),this.routingTableRefresh=new Q1(t,{peerRouting:this.peerRouting,routingTable:this.routingTable,logPrefix:y}),this.rpc=new ei(t,{routingTable:this.routingTable,providers:this.providers,peerRouting:this.peerRouting,validators:this.validators,logPrefix:y,peerInfoMapper:this.peerInfoMapper}),this.topologyListener=new ri(t,{protocol:this.protocol,logPrefix:y}),this.querySelf=new z1(t,{peerRouting:this.peerRouting,interval:a,initialInterval:r.initialQuerySelfInterval,logPrefix:y,initialQuerySelfHasRun:g,routingTable:this.routingTable}),this.network.addEventListener("peer",m=>{let x=m.detail;this.onPeerConnect(x).catch(v=>{this.log.error("could not add %p to routing table",x.id,v)}),this.dispatchEvent(new Qt("peer",{detail:x}))}),this.topologyListener.addEventListener("peer",m=>{let x=m.detail;Promise.resolve().then(async()=>{let v=await this.components.peerStore.get(x),T={id:x,multiaddrs:v.addresses.map(({multiaddr:E})=>E),protocols:v.protocols};await this.onPeerConnect(T)}).catch(v=>{this.log.error("could not add %p to routing table",x,v)})}),this.dhtPeerRouting=new Cs(this,this.peerInfoMapper,this.log),this.dhtContentRouting=new Ts(this,this.peerInfoMapper,this.dhtPeerRouting,this.log),r.clientMode==null&&t.events.addEventListener("self:peer:update",m=>{this.log("received update of self-peer info"),Promise.resolve().then(async()=>{let x=m.detail.peer.addresses.some(({multiaddr:T})=>ta(T)),v=this.getMode();x&&v==="client"?await this.setMode("server"):v==="server"&&!x&&await this.setMode("client")}).catch(x=>{this.log.error("error setting dht server mode",x)})})}get[Ks](){return this.dhtContentRouting}get[zs](){return this.dhtPeerRouting}get[Vs](){return this}async onPeerConnect(t){if(this.log("peer %p connected",t.id),t=this.peerInfoMapper(t),t.multiaddrs.length===0){this.log("ignoring %p as there were no valid addresses in %s after filtering",t.id,t.multiaddrs.map(r=>r.toString()));return}try{await this.routingTable.add(t.id)}catch(r){this.log.error("could not add %p to routing table",t.id,r)}}isStarted(){return this.running}getMode(){return this.clientMode?"client":"server"}async setMode(t){await this.components.registrar.unhandle(this.protocol),t==="client"?(this.log("enabling client mode"),this.clientMode=!0):(this.log("enabling server mode"),this.clientMode=!1,await this.components.registrar.handle(this.protocol,this.rpc.onIncomingStream.bind(this.rpc),{maxInboundStreams:this.maxInboundStreams,maxOutboundStreams:this.maxOutboundStreams}))}async start(){this.running=!0,await this.setMode(this.clientMode?"client":"server"),this.querySelf.start(),await Promise.all([this.providers.start(),this.queryManager.start(),this.network.start(),this.routingTable.start(),this.topologyListener.start(),this.routingTableRefresh.start()])}async stop(){this.running=!1,this.querySelf.stop(),await Promise.all([this.providers.stop(),this.queryManager.stop(),this.network.stop(),this.routingTable.stop(),this.routingTableRefresh.stop(),this.topologyListener.stop()])}async*put(t,r,n={}){yield*this.contentFetching.put(t,r,n)}async*get(t,r={}){yield*this.contentFetching.get(t,r)}async*provide(t,r={}){yield*this.contentRouting.provide(t,this.components.addressManager.getAddresses(),r)}async*findProviders(t,r={}){yield*this.contentRouting.findProviders(t,r)}async*findPeer(t,r={}){yield*this.peerRouting.findPeer(t,r)}async*getClosestPeers(t,r={}){yield*this.peerRouting.getClosestPeers(t,r)}async refreshRoutingTable(){this.routingTableRefresh.refreshTable(!0)}};var Rs;(function(e){e[e.SEND_QUERY=0]="SEND_QUERY",e[e.PEER_RESPONSE=1]="PEER_RESPONSE",e[e.FINAL_PEER=2]="FINAL_PEER",e[e.QUERY_ERROR=3]="QUERY_ERROR",e[e.PROVIDER=4]="PROVIDER",e[e.VALUE=5]="VALUE",e[e.ADD_PEER=6]="ADD_PEER",e[e.DIAL_PEER=7]="DIAL_PEER"})(Rs||(Rs={}));var _s;(function(e){e[e.PUT_VALUE=0]="PUT_VALUE",e[e.GET_VALUE=1]="GET_VALUE",e[e.ADD_PROVIDER=2]="ADD_PROVIDER",e[e.GET_PROVIDERS=3]="GET_PROVIDERS",e[e.FIND_NODE=4]="FIND_NODE",e[e.PING=5]="PING"})(_s||(_s={}));function Jl(e){return t=>new ni(t,e)}return N5(jl);})();
|
|
27
27
|
/*! Bundled license information:
|
|
28
28
|
|
|
29
29
|
@noble/hashes/esm/utils.js:
|