@libp2p/kad-dht 10.0.3 → 10.0.4-725f5df1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.min.js CHANGED
@@ -1,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 T8=Object.create;var W0=Object.defineProperty;var R8=Object.getOwnPropertyDescriptor;var P8=Object.getOwnPropertyNames;var L8=Object.getPrototypeOf,N8=Object.prototype.hasOwnProperty;var H=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),qt=(e,t)=>{for(var r in t)W0(e,r,{get:t[r],enumerable:!0})},L2=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of P8(t))!N8.call(e,i)&&i!==r&&W0(e,i,{get:()=>t[i],enumerable:!(n=R8(t,i))||n.enumerable});return e};var ot=(e,t,r)=>(r=e!=null?T8(L8(e)):{},L2(t||!e||!e.__esModule?W0(r,"default",{value:e,enumerable:!0}):r,e)),k8=e=>L2(W0({},"__esModule",{value:!0}),e);var U2=H((Jd,O2)=>{var mn=1e3,xn=mn*60,vn=xn*60,zr=vn*24,D8=zr*7,O8=zr*365.25;O2.exports=function(e,t){t=t||{};var r=typeof e;if(r==="string"&&e.length>0)return U8(e);if(r==="number"&&isFinite(e))return t.long?M8(e):F8(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function U8(e){if(e=String(e),!(e.length>100)){var t=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(t){var r=parseFloat(t[1]),n=(t[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return r*O8;case"weeks":case"week":case"w":return r*D8;case"days":case"day":case"d":return r*zr;case"hours":case"hour":case"hrs":case"hr":case"h":return r*vn;case"minutes":case"minute":case"mins":case"min":case"m":return r*xn;case"seconds":case"second":case"secs":case"sec":case"s":return r*mn;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function F8(e){var t=Math.abs(e);return t>=zr?Math.round(e/zr)+"d":t>=vn?Math.round(e/vn)+"h":t>=xn?Math.round(e/xn)+"m":t>=mn?Math.round(e/mn)+"s":e+"ms"}function M8(e){var t=Math.abs(e);return t>=zr?X0(e,t,zr,"day"):t>=vn?X0(e,t,vn,"hour"):t>=xn?X0(e,t,xn,"minute"):t>=mn?X0(e,t,mn,"second"):e+" ms"}function X0(e,t,r,n){var i=t>=r*1.5;return Math.round(e/r)+" "+n+(i?"s":"")}});var M2=H((tp,F2)=>{function K8(e){r.debug=r,r.default=r,r.coerce=c,r.disable=o,r.enable=i,r.enabled=s,r.humanize=U2(),r.destroy=u,Object.keys(e).forEach(f=>{r[f]=e[f]}),r.names=[],r.skips=[],r.formatters={};function t(f){let l=0;for(let p=0;p<f.length;p++)l=(l<<5)-l+f.charCodeAt(p),l|=0;return r.colors[Math.abs(l)%r.colors.length]}r.selectColor=t;function r(f){let l,p=null,d,h;function y(...g){if(!y.enabled)return;let m=y,x=Number(new Date),v=x-(l||x);m.diff=v,m.prev=l,m.curr=x,l=x,g[0]=r.coerce(g[0]),typeof g[0]!="string"&&g.unshift("%O");let B=0;g[0]=g[0].replace(/%([a-zA-Z%])/g,(S,L)=>{if(S==="%%")return"%";B++;let N=r.formatters[L];if(typeof N=="function"){let Q=g[B];S=N.call(m,Q),g.splice(B,1),B--}return S}),r.formatArgs.call(m,g),(m.log||r.log).apply(m,g)}return y.namespace=f,y.useColors=r.useColors(),y.color=r.selectColor(f),y.extend=n,y.destroy=r.destroy,Object.defineProperty(y,"enabled",{enumerable:!0,configurable:!1,get:()=>p!==null?p:(d!==r.namespaces&&(d=r.namespaces,h=r.enabled(f)),h),set:g=>{p=g}}),typeof r.init=="function"&&r.init(y),y}function n(f,l){let p=r(this.namespace+(typeof l>"u"?":":l)+f);return p.log=this.log,p}function i(f){r.save(f),r.namespaces=f,r.names=[],r.skips=[];let l,p=(typeof f=="string"?f:"").split(/[\s,]+/),d=p.length;for(l=0;l<d;l++)p[l]&&(f=p[l].replace(/\*/g,".*?"),f[0]==="-"?r.skips.push(new RegExp("^"+f.slice(1)+"$")):r.names.push(new RegExp("^"+f+"$")))}function o(){let f=[...r.names.map(a),...r.skips.map(a).map(l=>"-"+l)].join(",");return r.enable(""),f}function s(f){if(f[f.length-1]==="*")return!0;let l,p;for(l=0,p=r.skips.length;l<p;l++)if(r.skips[l].test(f))return!1;for(l=0,p=r.names.length;l<p;l++)if(r.names[l].test(f))return!0;return!1}function a(f){return f.toString().substring(2,f.toString().length-2).replace(/\.\*\?$/,"*")}function c(f){return f instanceof Error?f.stack||f.message:f}function u(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return r.enable(r.load()),r}F2.exports=K8});var K2=H((ue,j0)=>{ue.formatArgs=V8;ue.save=z8;ue.load=H8;ue.useColors=q8;ue.storage=$8();ue.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();ue.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function q8(){return typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs)?!0:typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)?!1:typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function V8(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+j0.exports.humanize(this.diff),!this.useColors)return;let t="color: "+this.color;e.splice(1,0,t,"color: inherit");let r=0,n=0;e[0].replace(/%[a-zA-Z%]/g,i=>{i!=="%%"&&(r++,i==="%c"&&(n=r))}),e.splice(n,0,t)}ue.log=console.debug||console.log||(()=>{});function z8(e){try{e?ue.storage.setItem("debug",e):ue.storage.removeItem("debug")}catch{}}function H8(){let e;try{e=ue.storage.getItem("debug")}catch{}return!e&&typeof process<"u"&&"env"in process&&(e=process.env.DEBUG),e}function $8(){try{return localStorage}catch{}}j0.exports=M2()(ue);var{formatters:G8}=j0.exports;G8.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}});var Q2=H(a0=>{(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}(),a0.ip2long=s,a0.long2ip=a,a0.Netmask=e}).call(a0)});var ta=H((J2,ii)=>{(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 B=d.split(":"),E=[];for(let S=0;S<B.length;S++)E.push(parseInt(B[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 ii<"u"&&ii.exports?ii.exports=p:e.ipaddr=p})(J2)});var La=H((Uy,Pa)=>{Pa.exports=wo;var Ra=128,bu=127,wu=~bu,Eu=Math.pow(2,31);function wo(e,t,r){if(Number.MAX_SAFE_INTEGER&&e>Number.MAX_SAFE_INTEGER)throw wo.bytes=0,new RangeError("Could not encode varint");t=t||[],r=r||0;for(var n=r;e>=Eu;)t[r++]=e&255|Ra,e/=128;for(;e&wu;)t[r++]=e&255|Ra,e>>>=7;return t[r]=e|0,wo.bytes=r-n+1,t}});var Da=H((Fy,ka)=>{ka.exports=Eo;var Su=128,Na=127;function Eo(e,n){var r=0,n=n||0,i=0,o=n,s,a=e.length;do{if(o>=a||i>49)throw Eo.bytes=0,new RangeError("Could not decode varint");s=e[o++],r+=i<28?(s&Na)<<i:(s&Na)*Math.pow(2,i),i+=7}while(s>=Su);return Eo.bytes=o-n,r}});var Ua=H((My,Oa)=>{var Iu=Math.pow(2,7),Au=Math.pow(2,14),Bu=Math.pow(2,21),_u=Math.pow(2,28),Cu=Math.pow(2,35),Tu=Math.pow(2,42),Ru=Math.pow(2,49),Pu=Math.pow(2,56),Lu=Math.pow(2,63);Oa.exports=function(e){return e<Iu?1:e<Au?2:e<Bu?3:e<_u?4:e<Cu?5:e<Tu?6:e<Ru?7:e<Pu?8:e<Lu?9:10}});var ui=H((Ky,Fa)=>{Fa.exports={encode:La(),decode:Da(),encodingLength:Ua()}});var Ja=H((em,ja)=>{"use strict";ja.exports=tf;function tf(e,t){for(var r=new Array(arguments.length-1),n=0,i=2,o=!0;i<arguments.length;)r[n++]=arguments[i++];return new Promise(function(a,c){r[n]=function(f){if(o)if(o=!1,f)c(f);else{for(var l=new Array(arguments.length-1),p=0;p<l.length;)l[p++]=arguments[p];a.apply(null,l)}};try{e.apply(t||null,r)}catch(u){o&&(o=!1,c(u))}})}});var n3=H(r3=>{"use strict";var fi=r3;fi.length=function(t){var r=t.length;if(!r)return 0;for(var n=0;--r%4>1&&t.charAt(r)==="=";)++n;return Math.ceil(t.length*3)/4-n};var Ln=new Array(64),e3=new Array(123);for(Ae=0;Ae<64;)e3[Ln[Ae]=Ae<26?Ae+65:Ae<52?Ae+71:Ae<62?Ae-4:Ae-59|43]=Ae++;var Ae;fi.encode=function(t,r,n){for(var i=null,o=[],s=0,a=0,c;r<n;){var u=t[r++];switch(a){case 0:o[s++]=Ln[u>>2],c=(u&3)<<4,a=1;break;case 1:o[s++]=Ln[c|u>>4],c=(u&15)<<2,a=2;break;case 2:o[s++]=Ln[c|u>>6],o[s++]=Ln[u&63],a=0;break}s>8191&&((i||(i=[])).push(String.fromCharCode.apply(String,o)),s=0)}return a&&(o[s++]=Ln[c],o[s++]=61,a===1&&(o[s++]=61)),i?(s&&i.push(String.fromCharCode.apply(String,o.slice(0,s))),i.join("")):String.fromCharCode.apply(String,o.slice(0,s))};var t3="invalid encoding";fi.decode=function(t,r,n){for(var i=n,o=0,s,a=0;a<t.length;){var c=t.charCodeAt(a++);if(c===61&&o>1)break;if((c=e3[c])===void 0)throw Error(t3);switch(o){case 0:s=c,o=1;break;case 1:r[n++]=s<<2|(c&48)>>4,s=c,o=2;break;case 2:r[n++]=(s&15)<<4|(c&60)>>2,s=c,o=3;break;case 3:r[n++]=(s&3)<<6|c,o=0;break}}if(o===1)throw Error(t3);return n-i};fi.test=function(t){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(t)}});var o3=H((nm,i3)=>{"use strict";i3.exports=li;function li(){this._listeners={}}li.prototype.on=function(t,r,n){return(this._listeners[t]||(this._listeners[t]=[])).push({fn:r,ctx:n||this}),this};li.prototype.off=function(t,r){if(t===void 0)this._listeners={};else if(r===void 0)this._listeners[t]=[];else for(var n=this._listeners[t],i=0;i<n.length;)n[i].fn===r?n.splice(i,1):++i;return this};li.prototype.emit=function(t){var r=this._listeners[t];if(r){for(var n=[],i=1;i<arguments.length;)n.push(arguments[i++]);for(i=0;i<r.length;)r[i].fn.apply(r[i++].ctx,n)}return this}});var h3=H((im,l3)=>{"use strict";l3.exports=s3(s3);function s3(e){return typeof Float32Array<"u"?function(){var t=new Float32Array([-0]),r=new Uint8Array(t.buffer),n=r[3]===128;function i(c,u,f){t[0]=c,u[f]=r[0],u[f+1]=r[1],u[f+2]=r[2],u[f+3]=r[3]}function o(c,u,f){t[0]=c,u[f]=r[3],u[f+1]=r[2],u[f+2]=r[1],u[f+3]=r[0]}e.writeFloatLE=n?i:o,e.writeFloatBE=n?o:i;function s(c,u){return r[0]=c[u],r[1]=c[u+1],r[2]=c[u+2],r[3]=c[u+3],t[0]}function a(c,u){return r[3]=c[u],r[2]=c[u+1],r[1]=c[u+2],r[0]=c[u+3],t[0]}e.readFloatLE=n?s:a,e.readFloatBE=n?a:s}():function(){function t(n,i,o,s){var a=i<0?1:0;if(a&&(i=-i),i===0)n(1/i>0?0:2147483648,o,s);else if(isNaN(i))n(2143289344,o,s);else if(i>34028234663852886e22)n((a<<31|2139095040)>>>0,o,s);else if(i<11754943508222875e-54)n((a<<31|Math.round(i/1401298464324817e-60))>>>0,o,s);else{var c=Math.floor(Math.log(i)/Math.LN2),u=Math.round(i*Math.pow(2,-c)*8388608)&8388607;n((a<<31|c+127<<23|u)>>>0,o,s)}}e.writeFloatLE=t.bind(null,a3),e.writeFloatBE=t.bind(null,c3);function r(n,i,o){var s=n(i,o),a=(s>>31)*2+1,c=s>>>23&255,u=s&8388607;return c===255?u?NaN:a*(1/0):c===0?a*1401298464324817e-60*u:a*Math.pow(2,c-150)*(u+8388608)}e.readFloatLE=r.bind(null,u3),e.readFloatBE=r.bind(null,f3)}(),typeof Float64Array<"u"?function(){var t=new Float64Array([-0]),r=new Uint8Array(t.buffer),n=r[7]===128;function i(c,u,f){t[0]=c,u[f]=r[0],u[f+1]=r[1],u[f+2]=r[2],u[f+3]=r[3],u[f+4]=r[4],u[f+5]=r[5],u[f+6]=r[6],u[f+7]=r[7]}function o(c,u,f){t[0]=c,u[f]=r[7],u[f+1]=r[6],u[f+2]=r[5],u[f+3]=r[4],u[f+4]=r[3],u[f+5]=r[2],u[f+6]=r[1],u[f+7]=r[0]}e.writeDoubleLE=n?i:o,e.writeDoubleBE=n?o:i;function s(c,u){return r[0]=c[u],r[1]=c[u+1],r[2]=c[u+2],r[3]=c[u+3],r[4]=c[u+4],r[5]=c[u+5],r[6]=c[u+6],r[7]=c[u+7],t[0]}function a(c,u){return r[7]=c[u],r[6]=c[u+1],r[5]=c[u+2],r[4]=c[u+3],r[3]=c[u+4],r[2]=c[u+5],r[1]=c[u+6],r[0]=c[u+7],t[0]}e.readDoubleLE=n?s:a,e.readDoubleBE=n?a:s}():function(){function t(n,i,o,s,a,c){var u=s<0?1:0;if(u&&(s=-s),s===0)n(0,a,c+i),n(1/s>0?0:2147483648,a,c+o);else if(isNaN(s))n(0,a,c+i),n(2146959360,a,c+o);else if(s>17976931348623157e292)n(0,a,c+i),n((u<<31|2146435072)>>>0,a,c+o);else{var f;if(s<22250738585072014e-324)f=s/5e-324,n(f>>>0,a,c+i),n((u<<31|f/4294967296)>>>0,a,c+o);else{var l=Math.floor(Math.log(s)/Math.LN2);l===1024&&(l=1023),f=s*Math.pow(2,-l),n(f*4503599627370496>>>0,a,c+i),n((u<<31|l+1023<<20|f*1048576&1048575)>>>0,a,c+o)}}}e.writeDoubleLE=t.bind(null,a3,0,4),e.writeDoubleBE=t.bind(null,c3,4,0);function r(n,i,o,s,a){var c=n(s,a+i),u=n(s,a+o),f=(u>>31)*2+1,l=u>>>20&2047,p=4294967296*(u&1048575)+c;return l===2047?p?NaN:f*(1/0):l===0?f*5e-324*p:f*Math.pow(2,l-1075)*(p+4503599627370496)}e.readDoubleLE=r.bind(null,u3,0,4),e.readDoubleBE=r.bind(null,f3,4,0)}(),e}function a3(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 c3(e,t,r){t[r]=e>>>24,t[r+1]=e>>>16&255,t[r+2]=e>>>8&255,t[r+3]=e&255}function u3(e,t){return(e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24)>>>0}function f3(e,t){return(e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3])>>>0}});var d3=H((exports,module)=>{"use strict";module.exports=inquire;function inquire(moduleName){try{var mod=eval("quire".replace(/^/,"re"))(moduleName);if(mod&&(mod.length||Object.keys(mod).length))return mod}catch(e){}return null}});var y3=H(p3=>{"use strict";var ko=p3;ko.length=function(t){for(var r=0,n=0,i=0;i<t.length;++i)n=t.charCodeAt(i),n<128?r+=1:n<2048?r+=2:(n&64512)===55296&&(t.charCodeAt(i+1)&64512)===56320?(++i,r+=4):r+=3;return r};ko.read=function(t,r,n){var i=n-r;if(i<1)return"";for(var o=null,s=[],a=0,c;r<n;)c=t[r++],c<128?s[a++]=c:c>191&&c<224?s[a++]=(c&31)<<6|t[r++]&63:c>239&&c<365?(c=((c&7)<<18|(t[r++]&63)<<12|(t[r++]&63)<<6|t[r++]&63)-65536,s[a++]=55296+(c>>10),s[a++]=56320+(c&1023)):s[a++]=(c&15)<<12|(t[r++]&63)<<6|t[r++]&63,a>8191&&((o||(o=[])).push(String.fromCharCode.apply(String,s)),a=0);return o?(a&&o.push(String.fromCharCode.apply(String,s.slice(0,a))),o.join("")):String.fromCharCode.apply(String,s.slice(0,a))};ko.write=function(t,r,n){for(var i=n,o,s,a=0;a<t.length;++a)o=t.charCodeAt(a),o<128?r[n++]=o:o<2048?(r[n++]=o>>6|192,r[n++]=o&63|128):(o&64512)===55296&&((s=t.charCodeAt(a+1))&64512)===56320?(o=65536+((o&1023)<<10)+(s&1023),++a,r[n++]=o>>18|240,r[n++]=o>>12&63|128,r[n++]=o>>6&63|128,r[n++]=o&63|128):(r[n++]=o>>12|224,r[n++]=o>>6&63|128,r[n++]=o&63|128);return n-i}});var m3=H((sm,g3)=>{"use strict";g3.exports=ef;function ef(e,t,r){var n=r||8192,i=n>>>1,o=null,s=n;return function(c){if(c<1||c>i)return e(c);s+c>n&&(o=e(n),s=0);var u=t.call(o,s,s+=c);return s&7&&(s=(s|7)+1),u}}});var v3=H((am,x3)=>{"use strict";x3.exports=$t;var p0=Wr();function $t(e,t){this.lo=e>>>0,this.hi=t>>>0}var Yr=$t.zero=new $t(0,0);Yr.toNumber=function(){return 0};Yr.zzEncode=Yr.zzDecode=function(){return this};Yr.length=function(){return 1};var rf=$t.zeroHash="\0\0\0\0\0\0\0\0";$t.fromNumber=function(t){if(t===0)return Yr;var r=t<0;r&&(t=-t);var 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 $t(n,i)};$t.from=function(t){if(typeof t=="number")return $t.fromNumber(t);if(p0.isString(t))if(p0.Long)t=p0.Long.fromString(t);else return $t.fromNumber(parseInt(t,10));return t.low||t.high?new $t(t.low>>>0,t.high>>>0):Yr};$t.prototype.toNumber=function(t){if(!t&&this.hi>>>31){var r=~this.lo+1>>>0,n=~this.hi>>>0;return r||(n=n+1>>>0),-(r+n*4294967296)}return this.lo+this.hi*4294967296};$t.prototype.toLong=function(t){return p0.Long?new p0.Long(this.lo|0,this.hi|0,!!t):{low:this.lo|0,high:this.hi|0,unsigned:!!t}};var Ar=String.prototype.charCodeAt;$t.fromHash=function(t){return t===rf?Yr:new $t((Ar.call(t,0)|Ar.call(t,1)<<8|Ar.call(t,2)<<16|Ar.call(t,3)<<24)>>>0,(Ar.call(t,4)|Ar.call(t,5)<<8|Ar.call(t,6)<<16|Ar.call(t,7)<<24)>>>0)};$t.prototype.toHash=function(){return String.fromCharCode(this.lo&255,this.lo>>>8&255,this.lo>>>16&255,this.lo>>>24,this.hi&255,this.hi>>>8&255,this.hi>>>16&255,this.hi>>>24)};$t.prototype.zzEncode=function(){var t=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^t)>>>0,this.lo=(this.lo<<1^t)>>>0,this};$t.prototype.zzDecode=function(){var t=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^t)>>>0,this.hi=(this.hi>>>1^t)>>>0,this};$t.prototype.length=function(){var 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}});var Wr=H(Do=>{"use strict";var q=Do;q.asPromise=Ja();q.base64=n3();q.EventEmitter=o3();q.float=h3();q.inquire=d3();q.utf8=y3();q.pool=m3();q.LongBits=v3();q.isNode=!!(typeof globalThis<"u"&&globalThis&&globalThis.process&&globalThis.process.versions&&globalThis.process.versions.node);q.global=q.isNode&&globalThis||typeof window<"u"&&window||typeof self<"u"&&self||Do;q.emptyArray=Object.freeze?Object.freeze([]):[];q.emptyObject=Object.freeze?Object.freeze({}):{};q.isInteger=Number.isInteger||function(t){return typeof t=="number"&&isFinite(t)&&Math.floor(t)===t};q.isString=function(t){return typeof t=="string"||t instanceof String};q.isObject=function(t){return t&&typeof t=="object"};q.isset=q.isSet=function(t,r){var n=t[r];return n!=null&&t.hasOwnProperty(r)?typeof n!="object"||(Array.isArray(n)?n.length:Object.keys(n).length)>0:!1};q.Buffer=function(){try{var e=q.inquire("buffer").Buffer;return e.prototype.utf8Write?e:null}catch{return null}}();q._Buffer_from=null;q._Buffer_allocUnsafe=null;q.newBuffer=function(t){return typeof t=="number"?q.Buffer?q._Buffer_allocUnsafe(t):new q.Array(t):q.Buffer?q._Buffer_from(t):typeof Uint8Array>"u"?t:new Uint8Array(t)};q.Array=typeof Uint8Array<"u"?Uint8Array:Array;q.Long=q.global.dcodeIO&&q.global.dcodeIO.Long||q.global.Long||q.inquire("long");q.key2Re=/^true|false|0|1$/;q.key32Re=/^-?(?:0|[1-9][0-9]*)$/;q.key64Re=/^(?:[\\x00-\\xff]{8}|-?(?:0|[1-9][0-9]*))$/;q.longToHash=function(t){return t?q.LongBits.from(t).toHash():q.LongBits.zeroHash};q.longFromHash=function(t,r){var n=q.LongBits.fromHash(t);return q.Long?q.Long.fromBits(n.lo,n.hi,r):n.toNumber(!!r)};function b3(e,t,r){for(var n=Object.keys(t),i=0;i<n.length;++i)(e[n[i]]===void 0||!r)&&(e[n[i]]=t[n[i]]);return e}q.merge=b3;q.lcFirst=function(t){return t.charAt(0).toLowerCase()+t.substring(1)};function w3(e){function t(r,n){if(!(this instanceof t))return new t(r,n);Object.defineProperty(this,"message",{get:function(){return r}}),Error.captureStackTrace?Error.captureStackTrace(this,t):Object.defineProperty(this,"stack",{value:new Error().stack||""}),n&&b3(this,n)}return t.prototype=Object.create(Error.prototype,{constructor:{value:t,writable:!0,enumerable:!1,configurable:!0},name:{get:function(){return e},set:void 0,enumerable:!1,configurable:!0},toString:{value:function(){return this.name+": "+this.message},writable:!0,enumerable:!1,configurable:!0}}),t}q.newError=w3;q.ProtocolError=w3("ProtocolError");q.oneOfGetter=function(t){for(var r={},n=0;n<t.length;++n)r[t[n]]=1;return function(){for(var i=Object.keys(this),o=i.length-1;o>-1;--o)if(r[i[o]]===1&&this[i[o]]!==void 0&&this[i[o]]!==null)return i[o]}};q.oneOfSetter=function(t){return function(r){for(var n=0;n<t.length;++n)t[n]!==r&&delete this[t[n]]}};q.toJSONOptions={longs:String,enums:String,bytes:String,json:!0};q._configure=function(){var e=q.Buffer;if(!e){q._Buffer_from=q._Buffer_allocUnsafe=null;return}q._Buffer_from=e.from!==Uint8Array.from&&e.from||function(r,n){return new e(r,n)},q._Buffer_allocUnsafe=e.allocUnsafe||function(r){return new e(r)}}});var Fo=H((um,B3)=>{"use strict";B3.exports=Dt;var Ke=Wr(),Uo,I3=Ke.LongBits,nf=Ke.utf8;function Be(e,t){return RangeError("index out of range: "+e.pos+" + "+(t||1)+" > "+e.len)}function Dt(e){this.buf=e,this.pos=0,this.len=e.length}var E3=typeof Uint8Array<"u"?function(t){if(t instanceof Uint8Array||Array.isArray(t))return new Dt(t);throw Error("illegal buffer")}:function(t){if(Array.isArray(t))return new Dt(t);throw Error("illegal buffer")},A3=function(){return Ke.Buffer?function(r){return(Dt.create=function(i){return Ke.Buffer.isBuffer(i)?new Uo(i):E3(i)})(r)}:E3};Dt.create=A3();Dt.prototype._slice=Ke.Array.prototype.subarray||Ke.Array.prototype.slice;Dt.prototype.uint32=function(){var t=4294967295;return function(){if(t=(this.buf[this.pos]&127)>>>0,this.buf[this.pos++]<128||(t=(t|(this.buf[this.pos]&127)<<7)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&127)<<14)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&127)<<21)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&15)<<28)>>>0,this.buf[this.pos++]<128))return t;if((this.pos+=5)>this.len)throw this.pos=this.len,Be(this,10);return t}}();Dt.prototype.int32=function(){return this.uint32()|0};Dt.prototype.sint32=function(){var t=this.uint32();return t>>>1^-(t&1)|0};function Oo(){var e=new I3(0,0),t=0;if(this.len-this.pos>4){for(;t<4;++t)if(e.lo=(e.lo|(this.buf[this.pos]&127)<<t*7)>>>0,this.buf[this.pos++]<128)return e;if(e.lo=(e.lo|(this.buf[this.pos]&127)<<28)>>>0,e.hi=(e.hi|(this.buf[this.pos]&127)>>4)>>>0,this.buf[this.pos++]<128)return e;t=0}else{for(;t<3;++t){if(this.pos>=this.len)throw Be(this);if(e.lo=(e.lo|(this.buf[this.pos]&127)<<t*7)>>>0,this.buf[this.pos++]<128)return e}return e.lo=(e.lo|(this.buf[this.pos++]&127)<<t*7)>>>0,e}if(this.len-this.pos>4){for(;t<5;++t)if(e.hi=(e.hi|(this.buf[this.pos]&127)<<t*7+3)>>>0,this.buf[this.pos++]<128)return e}else for(;t<5;++t){if(this.pos>=this.len)throw Be(this);if(e.hi=(e.hi|(this.buf[this.pos]&127)<<t*7+3)>>>0,this.buf[this.pos++]<128)return e}throw Error("invalid varint encoding")}Dt.prototype.bool=function(){return this.uint32()!==0};function hi(e,t){return(e[t-4]|e[t-3]<<8|e[t-2]<<16|e[t-1]<<24)>>>0}Dt.prototype.fixed32=function(){if(this.pos+4>this.len)throw Be(this,4);return hi(this.buf,this.pos+=4)};Dt.prototype.sfixed32=function(){if(this.pos+4>this.len)throw Be(this,4);return hi(this.buf,this.pos+=4)|0};function S3(){if(this.pos+8>this.len)throw Be(this,8);return new I3(hi(this.buf,this.pos+=4),hi(this.buf,this.pos+=4))}Dt.prototype.float=function(){if(this.pos+4>this.len)throw Be(this,4);var t=Ke.float.readFloatLE(this.buf,this.pos);return this.pos+=4,t};Dt.prototype.double=function(){if(this.pos+8>this.len)throw Be(this,4);var t=Ke.float.readDoubleLE(this.buf,this.pos);return this.pos+=8,t};Dt.prototype.bytes=function(){var t=this.uint32(),r=this.pos,n=this.pos+t;if(n>this.len)throw Be(this,t);return this.pos+=t,Array.isArray(this.buf)?this.buf.slice(r,n):r===n?new this.buf.constructor(0):this._slice.call(this.buf,r,n)};Dt.prototype.string=function(){var t=this.bytes();return nf.read(t,0,t.length)};Dt.prototype.skip=function(t){if(typeof t=="number"){if(this.pos+t>this.len)throw Be(this,t);this.pos+=t}else do if(this.pos>=this.len)throw Be(this);while(this.buf[this.pos++]&128);return this};Dt.prototype.skipType=function(e){switch(e){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;(e=this.uint32()&7)!==4;)this.skipType(e);break;case 5:this.skip(4);break;default:throw Error("invalid wire type "+e+" at offset "+this.pos)}return this};Dt._configure=function(e){Uo=e,Dt.create=A3(),Uo._configure();var t=Ke.Long?"toLong":"toNumber";Ke.merge(Dt.prototype,{int64:function(){return Oo.call(this)[t](!1)},uint64:function(){return Oo.call(this)[t](!0)},sint64:function(){return Oo.call(this).zzDecode()[t](!1)},fixed64:function(){return S3.call(this)[t](!0)},sfixed64:function(){return S3.call(this)[t](!1)}})}});var R3=H((fm,T3)=>{"use strict";T3.exports=Zr;var C3=Fo();(Zr.prototype=Object.create(C3.prototype)).constructor=Zr;var _3=Wr();function Zr(e){C3.call(this,e)}Zr._configure=function(){_3.Buffer&&(Zr.prototype._slice=_3.Buffer.prototype.slice)};Zr.prototype.string=function(){var t=this.uint32();return this.buf.utf8Slice?this.buf.utf8Slice(this.pos,this.pos=Math.min(this.pos+t,this.len)):this.buf.toString("utf-8",this.pos,this.pos=Math.min(this.pos+t,this.len))};Zr._configure()});var $o=H((lm,k3)=>{"use strict";k3.exports=st;var ge=Wr(),Mo,di=ge.LongBits,P3=ge.base64,L3=ge.utf8;function y0(e,t,r){this.fn=e,this.len=t,this.next=void 0,this.val=r}function qo(){}function of(e){this.head=e.head,this.tail=e.tail,this.len=e.len,this.next=e.states}function st(){this.len=0,this.head=new y0(qo,0,0),this.tail=this.head,this.states=null}var N3=function(){return ge.Buffer?function(){return(st.create=function(){return new Mo})()}:function(){return new st}};st.create=N3();st.alloc=function(t){return new ge.Array(t)};ge.Array!==Array&&(st.alloc=ge.pool(st.alloc,ge.Array.prototype.subarray));st.prototype._push=function(t,r,n){return this.tail=this.tail.next=new y0(t,r,n),this.len+=r,this};function Vo(e,t,r){t[r]=e&255}function sf(e,t,r){for(;e>127;)t[r++]=e&127|128,e>>>=7;t[r]=e}function zo(e,t){this.len=e,this.next=void 0,this.val=t}zo.prototype=Object.create(y0.prototype);zo.prototype.fn=sf;st.prototype.uint32=function(t){return this.len+=(this.tail=this.tail.next=new zo((t=t>>>0)<128?1:t<16384?2:t<2097152?3:t<268435456?4:5,t)).len,this};st.prototype.int32=function(t){return t<0?this._push(Ho,10,di.fromNumber(t)):this.uint32(t)};st.prototype.sint32=function(t){return this.uint32((t<<1^t>>31)>>>0)};function Ho(e,t,r){for(;e.hi;)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}st.prototype.uint64=function(t){var r=di.from(t);return this._push(Ho,r.length(),r)};st.prototype.int64=st.prototype.uint64;st.prototype.sint64=function(t){var r=di.from(t).zzEncode();return this._push(Ho,r.length(),r)};st.prototype.bool=function(t){return this._push(Vo,1,t?1:0)};function Ko(e,t,r){t[r]=e&255,t[r+1]=e>>>8&255,t[r+2]=e>>>16&255,t[r+3]=e>>>24}st.prototype.fixed32=function(t){return this._push(Ko,4,t>>>0)};st.prototype.sfixed32=st.prototype.fixed32;st.prototype.fixed64=function(t){var r=di.from(t);return this._push(Ko,4,r.lo)._push(Ko,4,r.hi)};st.prototype.sfixed64=st.prototype.fixed64;st.prototype.float=function(t){return this._push(ge.float.writeFloatLE,4,t)};st.prototype.double=function(t){return this._push(ge.float.writeDoubleLE,8,t)};var af=ge.Array.prototype.set?function(t,r,n){r.set(t,n)}:function(t,r,n){for(var i=0;i<t.length;++i)r[n+i]=t[i]};st.prototype.bytes=function(t){var r=t.length>>>0;if(!r)return this._push(Vo,1,0);if(ge.isString(t)){var n=st.alloc(r=P3.length(t));P3.decode(t,n,0),t=n}return this.uint32(r)._push(af,r,t)};st.prototype.string=function(t){var r=L3.length(t);return r?this.uint32(r)._push(L3.write,r,t):this._push(Vo,1,0)};st.prototype.fork=function(){return this.states=new of(this),this.head=this.tail=new y0(qo,0,0),this.len=0,this};st.prototype.reset=function(){return this.states?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new y0(qo,0,0),this.len=0),this};st.prototype.ldelim=function(){var t=this.head,r=this.tail,n=this.len;return this.reset().uint32(n),n&&(this.tail.next=t.next,this.tail=r,this.len+=n),this};st.prototype.finish=function(){for(var t=this.head.next,r=this.constructor.alloc(this.len),n=0;t;)t.fn(t.val,r,n),n+=t.len,t=t.next;return r};st._configure=function(e){Mo=e,st.create=N3(),Mo._configure()}});var U3=H((hm,O3)=>{"use strict";O3.exports=qe;var D3=$o();(qe.prototype=Object.create(D3.prototype)).constructor=qe;var Br=Wr();function qe(){D3.call(this)}qe._configure=function(){qe.alloc=Br._Buffer_allocUnsafe,qe.writeBytesBuffer=Br.Buffer&&Br.Buffer.prototype instanceof Uint8Array&&Br.Buffer.prototype.set.name==="set"?function(t,r,n){r.set(t,n)}:function(t,r,n){if(t.copy)t.copy(r,n,0,t.length);else for(var i=0;i<t.length;)r[n++]=t[i++]}};qe.prototype.bytes=function(t){Br.isString(t)&&(t=Br._Buffer_from(t,"base64"));var r=t.length>>>0;return this.uint32(r),r&&this._push(qe.writeBytesBuffer,r,t),this};function cf(e,t,r){e.length<40?Br.utf8.write(e,t,r):t.utf8Write?t.utf8Write(e,r):t.write(e,r)}qe.prototype.string=function(t){var r=Br.Buffer.byteLength(t);return this.uint32(r),r&&this._push(cf,r,t),this};qe._configure()});var l4=H((ev,f4)=>{"use strict";function u4(e,t){for(let r in t)Object.defineProperty(e,r,{value:t[r],enumerable:!0,configurable:!0});return e}function Lf(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 u4(e,r)}catch{r.message=e.message,r.stack=e.stack;let i=function(){};return i.prototype=Object.create(Object.getPrototypeOf(e)),u4(new i,r)}}f4.exports=Lf});var ht=H((bv,d4)=>{d4.exports={options:{usePureJavaScript:!1}}});var g4=H((wv,y4)=>{var ns={};y4.exports=ns;var p4={};ns.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=Df(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};ns.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=p4[t];if(!r){r=p4[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 Df(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 Ut=H((Ev,b4)=>{var m4=ht(),x4=g4(),b=b4.exports=m4.util=m4.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 w0(e){if(!(e===8||e===16||e===24||e===32))throw new Error("Only 8, 16, 24, or 32 bits supported: "+e)}b.ByteBuffer=is;function is(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 is||typeof e=="object"&&typeof e.data=="string"&&typeof e.read=="number")&&(this.data=e.data,this.read=e.read);this._constructedStringLength=0}b.ByteStringBuffer=is;var Of=4096;b.ByteStringBuffer.prototype._optimizeConstructedString=function(e){this._constructedStringLength+=e,this._constructedStringLength>Of&&(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){w0(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){w0(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 Uf(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=Uf;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){w0(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 w0(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){w0(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 Tr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",Rr=[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],v4="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+=Tr.charAt(i>>2),r+=Tr.charAt((i&3)<<4|o>>4),isNaN(o)?r+="==":(r+=Tr.charAt((o&15)<<2|s>>6),r+=isNaN(s)?"=":Tr.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=Rr[e.charCodeAt(s++)-43],n=Rr[e.charCodeAt(s++)-43],i=Rr[e.charCodeAt(s++)-43],o=Rr[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:x4.encode,decode:x4.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+=Tr.charAt(i>>2),r+=Tr.charAt((i&3)<<4|o>>4),isNaN(o)?r+="==":(r+=Tr.charAt((o&15)<<2|s>>6),r+=isNaN(s)?"=":Tr.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=Rr[e.charCodeAt(c++)-43],o=Rr[e.charCodeAt(c++)-43],s=Rr[e.charCodeAt(c++)-43],a=Rr[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,v4,t)};b.binary.base58.decode=function(e,t){return b.binary.baseN.decode(e,v4,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 os=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}},ss=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},Ff=function(e,t,r,n){var i=ss(e,t);i===null&&(i={}),i[r]=n,os(e,t,i)},Mf=function(e,t,r){var n=ss(e,t);return n!==null&&(n=r in n?n[r]:null),n},Kf=function(e,t,r){var n=ss(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),os(e,t,n)}},qf=function(e,t){os(e,t,null)},Ii=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){Ii(Ff,arguments,i)};b.getItem=function(e,t,r,n){return Ii(Mf,arguments,n)};b.removeItem=function(e,t,r,n){Ii(Kf,arguments,n)};b.clearItems=function(e,t,r){Ii(qf,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 cs=H((Sv,w4)=>{var Gt=ht();Ut();w4.exports=Gt.cipher=Gt.cipher||{};Gt.cipher.algorithms=Gt.cipher.algorithms||{};Gt.cipher.createCipher=function(e,t){var r=e;if(typeof r=="string"&&(r=Gt.cipher.getAlgorithm(r),r&&(r=r())),!r)throw new Error("Unsupported algorithm: "+e);return new Gt.cipher.BlockCipher({algorithm:r,key:t,decrypt:!1})};Gt.cipher.createDecipher=function(e,t){var r=e;if(typeof r=="string"&&(r=Gt.cipher.getAlgorithm(r),r&&(r=r())),!r)throw new Error("Unsupported algorithm: "+e);return new Gt.cipher.BlockCipher({algorithm:r,key:t,decrypt:!0})};Gt.cipher.registerAlgorithm=function(e,t){e=e.toUpperCase(),Gt.cipher.algorithms[e]=t};Gt.cipher.getAlgorithm=function(e){return e=e.toUpperCase(),e in Gt.cipher.algorithms?Gt.cipher.algorithms[e]:null};var as=Gt.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)};as.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=Gt.util.createBuffer(),this.output=e.output||Gt.util.createBuffer(),this.mode.start(t)};as.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()};as.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 fs=H((Iv,E4)=>{var Qt=ht();Ut();Qt.cipher=Qt.cipher||{};var tt=E4.exports=Qt.cipher.modes=Qt.cipher.modes||{};tt.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)};tt.ecb.prototype.start=function(e){};tt.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])};tt.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])};tt.ecb.prototype.pad=function(e,t){var r=e.length()===this.blockSize?this.blockSize:this.blockSize-e.length();return e.fillWithByte(r,r),!0};tt.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)};tt.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)};tt.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=Ai(e.iv,this.blockSize),this._prev=this._iv.slice(0);else throw new Error("Invalid IV parameter.")};tt.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};tt.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)};tt.cbc.prototype.pad=function(e,t){var r=e.length()===this.blockSize?this.blockSize:this.blockSize-e.length();return e.fillWithByte(r,r),!0};tt.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)};tt.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=Qt.util.createBuffer(),this._partialBytes=0};tt.cfb.prototype.start=function(e){if(!("iv"in e))throw new Error("Invalid IV parameter.");this._iv=Ai(e.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0};tt.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};tt.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};tt.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=Qt.util.createBuffer(),this._partialBytes=0};tt.ofb.prototype.start=function(e){if(!("iv"in e))throw new Error("Invalid IV parameter.");this._iv=Ai(e.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0};tt.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};tt.ofb.prototype.decrypt=tt.ofb.prototype.encrypt;tt.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=Qt.util.createBuffer(),this._partialBytes=0};tt.ctr.prototype.start=function(e){if(!("iv"in e))throw new Error("Invalid IV parameter.");this._iv=Ai(e.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0};tt.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}Bi(this._inBlock)};tt.ctr.prototype.decrypt=tt.ctr.prototype.encrypt;tt.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=Qt.util.createBuffer(),this._partialBytes=0,this._R=3774873600};tt.gcm.prototype.start=function(e){if(!("iv"in e))throw new Error("Invalid IV parameter.");var t=Qt.util.createBuffer(e.iv);this._cipherLength=0;var r;if("additionalData"in e?r=Qt.util.createBuffer(e.additionalData):r=Qt.util.createBuffer(),"tagLength"in e?this._tagLength=e.tagLength:this._tagLength=128,this._tag=null,e.decrypt&&(this._tag=Qt.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(us(n*8)))}this._inBlock=this._j0.slice(0),Bi(this._inBlock),this._partialBytes=0,r=Qt.util.createBuffer(r),this._aDataLength=us(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()])};tt.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),Bi(this._inBlock)};tt.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),Bi(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};tt.gcm.prototype.afterFinish=function(e,t){var r=!0;t.decrypt&&t.overflow&&e.truncate(this.blockSize-t.overflow),this.tag=Qt.util.createBuffer();var n=this._aDataLength.concat(us(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};tt.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};tt.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)};tt.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};tt.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)};tt.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};tt.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 Ai(e,t){if(typeof e=="string"&&(e=Qt.util.createBuffer(e)),Qt.util.isArray(e)&&e.length>4){var r=e;e=Qt.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(!Qt.util.isArray(e)){for(var i=[],o=t/4,n=0;n<o;++n)i.push(e.getInt32());e=i}return e}function Bi(e){e[e.length-1]=e[e.length-1]+1&4294967295}function us(e){return[e/4294967296|0,e&4294967295]}});var Ci=H((Av,B4)=>{var mt=ht();cs();fs();Ut();B4.exports=mt.aes=mt.aes||{};mt.aes.startEncrypting=function(e,t,r,n){var i=_i({key:e,output:r,decrypt:!1,mode:n});return i.start(t),i};mt.aes.createEncryptionCipher=function(e,t){return _i({key:e,output:null,decrypt:!1,mode:t})};mt.aes.startDecrypting=function(e,t,r,n){var i=_i({key:e,output:r,decrypt:!0,mode:n});return i.start(t),i};mt.aes.createDecryptionCipher=function(e,t){return _i({key:e,output:null,decrypt:!0,mode:t})};mt.aes.Algorithm=function(e,t){ds||I4();var r=this;r.name=e,r.mode=new t({blockSize:16,cipher:{encrypt:function(n,i){return hs(r._w,n,i,!1)},decrypt:function(n,i){return hs(r._w,n,i,!0)}}}),r._init=!1};mt.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=mt.util.createBuffer(t);else if(mt.util.isArray(t)&&(t.length===16||t.length===24||t.length===32)){r=t,t=mt.util.createBuffer();for(var n=0;n<r.length;++n)t.putByte(r[n])}if(!mt.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(!mt.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=A4(t,e.decrypt&&!s),this._init=!0}};mt.aes._expandKey=function(e,t){return ds||I4(),A4(e,t)};mt.aes._updateBlock=hs;zn("AES-ECB",mt.cipher.modes.ecb);zn("AES-CBC",mt.cipher.modes.cbc);zn("AES-CFB",mt.cipher.modes.cfb);zn("AES-OFB",mt.cipher.modes.ofb);zn("AES-CTR",mt.cipher.modes.ctr);zn("AES-GCM",mt.cipher.modes.gcm);function zn(e,t){var r=function(){return new mt.aes.Algorithm(e,t)};mt.cipher.registerAlgorithm(e,r)}var ds=!1,Vn=4,oe,ls,S4,en,Ce;function I4(){ds=!0,S4=[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;oe=new Array(256),ls=new Array(256),en=new Array(4),Ce=new Array(4);for(var t=0;t<4;++t)en[t]=new Array(256),Ce[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,oe[r]=a,ls[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)en[l][r]=u,Ce[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 A4(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=oe[n>>>16&255]<<24^oe[n>>>8&255]<<16^oe[n&255]<<8^oe[n>>>24]^S4[i]<<24,i++):o>6&&c%o===4&&(n=oe[n>>>24]<<24^oe[n>>>16&255]<<16^oe[n>>>8&255]<<8^oe[n&255]),r[c]=r[c-o]^n;if(t){var u,f=Ce[0],l=Ce[1],p=Ce[2],d=Ce[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[oe[u>>>24]]^l[oe[u>>>16&255]]^p[oe[u>>>8&255]]^d[oe[u&255]];r=h}return r}function hs(e,t,r,n){var i=e.length/4-1,o,s,a,c,u;n?(o=Ce[0],s=Ce[1],a=Ce[2],c=Ce[3],u=ls):(o=en[0],s=en[1],a=en[2],c=en[3],u=oe);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 _i(e){e=e||{};var t=(e.mode||"CBC").toUpperCase(),r="AES-"+t,n;e.decrypt?n=mt.cipher.createDecipher(r,e.key):n=mt.cipher.createCipher(r,e.key);var i=n.start;return n.start=function(o,s){var a=null;s instanceof mt.util.ByteBuffer&&(a=s,s={}),s=s||{},s.output=a,s.iv=o,i.call(n,s)},n}});var Ti=H((Uv,R4)=>{var E0=ht();E0.pki=E0.pki||{};var ps=R4.exports=E0.pki.oids=E0.oids=E0.oids||{};function T(e,t){ps[e]=t,ps[t]=e}function ut(e,t){ps[e]=t}T("1.2.840.113549.1.1.1","rsaEncryption");T("1.2.840.113549.1.1.4","md5WithRSAEncryption");T("1.2.840.113549.1.1.5","sha1WithRSAEncryption");T("1.2.840.113549.1.1.7","RSAES-OAEP");T("1.2.840.113549.1.1.8","mgf1");T("1.2.840.113549.1.1.9","pSpecified");T("1.2.840.113549.1.1.10","RSASSA-PSS");T("1.2.840.113549.1.1.11","sha256WithRSAEncryption");T("1.2.840.113549.1.1.12","sha384WithRSAEncryption");T("1.2.840.113549.1.1.13","sha512WithRSAEncryption");T("1.3.101.112","EdDSA25519");T("1.2.840.10040.4.3","dsa-with-sha1");T("1.3.14.3.2.7","desCBC");T("1.3.14.3.2.26","sha1");T("1.3.14.3.2.29","sha1WithRSASignature");T("2.16.840.1.101.3.4.2.1","sha256");T("2.16.840.1.101.3.4.2.2","sha384");T("2.16.840.1.101.3.4.2.3","sha512");T("2.16.840.1.101.3.4.2.4","sha224");T("2.16.840.1.101.3.4.2.5","sha512-224");T("2.16.840.1.101.3.4.2.6","sha512-256");T("1.2.840.113549.2.2","md2");T("1.2.840.113549.2.5","md5");T("1.2.840.113549.1.7.1","data");T("1.2.840.113549.1.7.2","signedData");T("1.2.840.113549.1.7.3","envelopedData");T("1.2.840.113549.1.7.4","signedAndEnvelopedData");T("1.2.840.113549.1.7.5","digestedData");T("1.2.840.113549.1.7.6","encryptedData");T("1.2.840.113549.1.9.1","emailAddress");T("1.2.840.113549.1.9.2","unstructuredName");T("1.2.840.113549.1.9.3","contentType");T("1.2.840.113549.1.9.4","messageDigest");T("1.2.840.113549.1.9.5","signingTime");T("1.2.840.113549.1.9.6","counterSignature");T("1.2.840.113549.1.9.7","challengePassword");T("1.2.840.113549.1.9.8","unstructuredAddress");T("1.2.840.113549.1.9.14","extensionRequest");T("1.2.840.113549.1.9.20","friendlyName");T("1.2.840.113549.1.9.21","localKeyId");T("1.2.840.113549.1.9.22.1","x509Certificate");T("1.2.840.113549.1.12.10.1.1","keyBag");T("1.2.840.113549.1.12.10.1.2","pkcs8ShroudedKeyBag");T("1.2.840.113549.1.12.10.1.3","certBag");T("1.2.840.113549.1.12.10.1.4","crlBag");T("1.2.840.113549.1.12.10.1.5","secretBag");T("1.2.840.113549.1.12.10.1.6","safeContentsBag");T("1.2.840.113549.1.5.13","pkcs5PBES2");T("1.2.840.113549.1.5.12","pkcs5PBKDF2");T("1.2.840.113549.1.12.1.1","pbeWithSHAAnd128BitRC4");T("1.2.840.113549.1.12.1.2","pbeWithSHAAnd40BitRC4");T("1.2.840.113549.1.12.1.3","pbeWithSHAAnd3-KeyTripleDES-CBC");T("1.2.840.113549.1.12.1.4","pbeWithSHAAnd2-KeyTripleDES-CBC");T("1.2.840.113549.1.12.1.5","pbeWithSHAAnd128BitRC2-CBC");T("1.2.840.113549.1.12.1.6","pbewithSHAAnd40BitRC2-CBC");T("1.2.840.113549.2.7","hmacWithSHA1");T("1.2.840.113549.2.8","hmacWithSHA224");T("1.2.840.113549.2.9","hmacWithSHA256");T("1.2.840.113549.2.10","hmacWithSHA384");T("1.2.840.113549.2.11","hmacWithSHA512");T("1.2.840.113549.3.7","des-EDE3-CBC");T("2.16.840.1.101.3.4.1.2","aes128-CBC");T("2.16.840.1.101.3.4.1.22","aes192-CBC");T("2.16.840.1.101.3.4.1.42","aes256-CBC");T("2.5.4.3","commonName");T("2.5.4.4","surname");T("2.5.4.5","serialNumber");T("2.5.4.6","countryName");T("2.5.4.7","localityName");T("2.5.4.8","stateOrProvinceName");T("2.5.4.9","streetAddress");T("2.5.4.10","organizationName");T("2.5.4.11","organizationalUnitName");T("2.5.4.12","title");T("2.5.4.13","description");T("2.5.4.15","businessCategory");T("2.5.4.17","postalCode");T("2.5.4.42","givenName");T("1.3.6.1.4.1.311.60.2.1.2","jurisdictionOfIncorporationStateOrProvinceName");T("1.3.6.1.4.1.311.60.2.1.3","jurisdictionOfIncorporationCountryName");T("2.16.840.1.113730.1.1","nsCertType");T("2.16.840.1.113730.1.13","nsComment");ut("2.5.29.1","authorityKeyIdentifier");ut("2.5.29.2","keyAttributes");ut("2.5.29.3","certificatePolicies");ut("2.5.29.4","keyUsageRestriction");ut("2.5.29.5","policyMapping");ut("2.5.29.6","subtreesConstraint");ut("2.5.29.7","subjectAltName");ut("2.5.29.8","issuerAltName");ut("2.5.29.9","subjectDirectoryAttributes");ut("2.5.29.10","basicConstraints");ut("2.5.29.11","nameConstraints");ut("2.5.29.12","policyConstraints");ut("2.5.29.13","basicConstraints");T("2.5.29.14","subjectKeyIdentifier");T("2.5.29.15","keyUsage");ut("2.5.29.16","privateKeyUsagePeriod");T("2.5.29.17","subjectAltName");T("2.5.29.18","issuerAltName");T("2.5.29.19","basicConstraints");ut("2.5.29.20","cRLNumber");ut("2.5.29.21","cRLReason");ut("2.5.29.22","expirationDate");ut("2.5.29.23","instructionCode");ut("2.5.29.24","invalidityDate");ut("2.5.29.25","cRLDistributionPoints");ut("2.5.29.26","issuingDistributionPoint");ut("2.5.29.27","deltaCRLIndicator");ut("2.5.29.28","issuingDistributionPoint");ut("2.5.29.29","certificateIssuer");ut("2.5.29.30","nameConstraints");T("2.5.29.31","cRLDistributionPoints");T("2.5.29.32","certificatePolicies");ut("2.5.29.33","policyMappings");ut("2.5.29.34","policyConstraints");T("2.5.29.35","authorityKeyIdentifier");ut("2.5.29.36","policyConstraints");T("2.5.29.37","extKeyUsage");ut("2.5.29.46","freshestCRL");ut("2.5.29.54","inhibitAnyPolicy");T("1.3.6.1.4.1.11129.2.4.2","timestampList");T("1.3.6.1.5.5.7.1.1","authorityInfoAccess");T("1.3.6.1.5.5.7.3.1","serverAuth");T("1.3.6.1.5.5.7.3.2","clientAuth");T("1.3.6.1.5.5.7.3.3","codeSigning");T("1.3.6.1.5.5.7.3.4","emailProtection");T("1.3.6.1.5.5.7.3.8","timeStamping")});var I0=H((Fv,L4)=>{var bt=ht();Ut();Ti();var O=L4.exports=bt.asn1=bt.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(bt.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||bt.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(bt.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(bt.util.isArray(e)){if(!bt.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 S0(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 Qf=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;S0(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=bt.util.createBuffer(e));var r=e.length(),n=Ri(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 Ri(e,t,r,n){var i;S0(e,t,2);var o=e.getByte();t--;var s=o&192,a=o&31;i=e.length();var c=Qf(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(S0(e,t,2),e.bytes(2)===String.fromCharCode(0,0)){e.getBytes(2),t-=2;break}i=e.length(),f.push(Ri(e,t,r+1,n)),t-=i-e.length()}else for(;c>0;)i=e.length(),f.push(Ri(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&&(S0(e,t,1),y=e.getByte(),t--),y===0)try{i=e.length();var g={strict:!0,decodeBitStrings:!0},m=Ri(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)S0(e,t,2),f+=String.fromCharCode(e.getInt16()),t-=2;else f=e.getBytes(c),t-=c}var B=l===void 0?null:{bitStringContents:l};return O.create(s,a,p,f,B)}O.toDer=function(e){var t=bt.util.createBuffer(),r=e.tagClass|e.type,n=bt.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=bt.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=bt.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=bt.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=bt.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&&bt.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 P4=/[^\\u0000-\\u00ff]/;O.prettyPrint=function(e,t,r){var n="";t=t||0,r=r||2,t>0&&(n+=`
2
+ "use strict";var Libp2PKadDht=(()=>{var b8=Object.create;var X0=Object.defineProperty;var w8=Object.getOwnPropertyDescriptor;var E8=Object.getOwnPropertyNames;var S8=Object.getPrototypeOf,I8=Object.prototype.hasOwnProperty;var G=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Vt=(e,t)=>{for(var r in t)X0(e,r,{get:t[r],enumerable:!0})},N2=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of E8(t))!I8.call(e,i)&&i!==r&&X0(e,i,{get:()=>t[i],enumerable:!(n=w8(t,i))||n.enumerable});return e};var ct=(e,t,r)=>(r=e!=null?b8(S8(e)):{},N2(t||!e||!e.__esModule?X0(r,"default",{value:e,enumerable:!0}):r,e)),A8=e=>N2(X0({},"__esModule",{value:!0}),e);var F2=G((Td,U2)=>{var bn=1e3,wn=bn*60,En=wn*60,Qr=En*24,_8=Qr*7,C8=Qr*365.25;U2.exports=function(e,t){t=t||{};var r=typeof e;if(r==="string"&&e.length>0)return B8(e);if(r==="number"&&isFinite(e))return t.long?R8(e):T8(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function B8(e){if(e=String(e),!(e.length>100)){var t=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(t){var r=parseFloat(t[1]),n=(t[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return r*C8;case"weeks":case"week":case"w":return r*_8;case"days":case"day":case"d":return r*Qr;case"hours":case"hour":case"hrs":case"hr":case"h":return r*En;case"minutes":case"minute":case"mins":case"min":case"m":return r*wn;case"seconds":case"second":case"secs":case"sec":case"s":return r*bn;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function T8(e){var t=Math.abs(e);return t>=Qr?Math.round(e/Qr)+"d":t>=En?Math.round(e/En)+"h":t>=wn?Math.round(e/wn)+"m":t>=bn?Math.round(e/bn)+"s":e+"ms"}function R8(e){var t=Math.abs(e);return t>=Qr?J0(e,t,Qr,"day"):t>=En?J0(e,t,En,"hour"):t>=wn?J0(e,t,wn,"minute"):t>=bn?J0(e,t,bn,"second"):e+" ms"}function J0(e,t,r,n){var i=t>=r*1.5;return Math.round(e/r)+" "+n+(i?"s":"")}});var K2=G((Rd,M2)=>{function P8(e){r.debug=r,r.default=r,r.coerce=c,r.disable=o,r.enable=i,r.enabled=s,r.humanize=F2(),r.destroy=u,Object.keys(e).forEach(f=>{r[f]=e[f]}),r.names=[],r.skips=[],r.formatters={};function t(f){let l=0;for(let p=0;p<f.length;p++)l=(l<<5)-l+f.charCodeAt(p),l|=0;return r.colors[Math.abs(l)%r.colors.length]}r.selectColor=t;function r(f){let l,p=null,d,h;function y(...g){if(!y.enabled)return;let m=y,x=Number(new Date),v=x-(l||x);m.diff=v,m.prev=l,m.curr=x,l=x,g[0]=r.coerce(g[0]),typeof g[0]!="string"&&g.unshift("%O");let _=0;g[0]=g[0].replace(/%([a-zA-Z%])/g,(S,L)=>{if(S==="%%")return"%";_++;let N=r.formatters[L];if(typeof N=="function"){let Q=g[_];S=N.call(m,Q),g.splice(_,1),_--}return S}),r.formatArgs.call(m,g),(m.log||r.log).apply(m,g)}return y.namespace=f,y.useColors=r.useColors(),y.color=r.selectColor(f),y.extend=n,y.destroy=r.destroy,Object.defineProperty(y,"enabled",{enumerable:!0,configurable:!1,get:()=>p!==null?p:(d!==r.namespaces&&(d=r.namespaces,h=r.enabled(f)),h),set:g=>{p=g}}),typeof r.init=="function"&&r.init(y),y}function n(f,l){let p=r(this.namespace+(typeof l>"u"?":":l)+f);return p.log=this.log,p}function i(f){r.save(f),r.namespaces=f,r.names=[],r.skips=[];let l,p=(typeof f=="string"?f:"").split(/[\s,]+/),d=p.length;for(l=0;l<d;l++)p[l]&&(f=p[l].replace(/\*/g,".*?"),f[0]==="-"?r.skips.push(new RegExp("^"+f.slice(1)+"$")):r.names.push(new RegExp("^"+f+"$")))}function o(){let f=[...r.names.map(a),...r.skips.map(a).map(l=>"-"+l)].join(",");return r.enable(""),f}function s(f){if(f[f.length-1]==="*")return!0;let l,p;for(l=0,p=r.skips.length;l<p;l++)if(r.skips[l].test(f))return!1;for(l=0,p=r.names.length;l<p;l++)if(r.names[l].test(f))return!0;return!1}function a(f){return f.toString().substring(2,f.toString().length-2).replace(/\.\*\?$/,"*")}function c(f){return f instanceof Error?f.stack||f.message:f}function u(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return r.enable(r.load()),r}M2.exports=P8});var q2=G((he,ti)=>{he.formatArgs=N8;he.save=k8;he.load=D8;he.useColors=L8;he.storage=O8();he.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();he.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function L8(){return typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs)?!0:typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)?!1:typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function N8(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+ti.exports.humanize(this.diff),!this.useColors)return;let t="color: "+this.color;e.splice(1,0,t,"color: inherit");let r=0,n=0;e[0].replace(/%[a-zA-Z%]/g,i=>{i!=="%%"&&(r++,i==="%c"&&(n=r))}),e.splice(n,0,t)}he.log=console.debug||console.log||(()=>{});function k8(e){try{e?he.storage.setItem("debug",e):he.storage.removeItem("debug")}catch{}}function D8(){let e;try{e=he.storage.getItem("debug")}catch{}return!e&&typeof process<"u"&&"env"in process&&(e=process.env.DEBUG),e}function O8(){try{return localStorage}catch{}}ti.exports=K2()(he);var{formatters:U8}=ti.exports;U8.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}});var Y2=G(u0=>{(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}(),u0.ip2long=s,u0.long2ip=a,u0.Netmask=e}).call(u0)});var ea=G((ta,si)=>{(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 _=d.split(":"),E=[];for(let S=0;S<_.length;S++)E.push(parseInt(_[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 si<"u"&&si.exports?si.exports=p:e.ipaddr=p})(ta)});var $a=G((Bg,Ha)=>{"use strict";Ha.exports=Mu;function Mu(e,t){for(var r=new Array(arguments.length-1),n=0,i=2,o=!0;i<arguments.length;)r[n++]=arguments[i++];return new Promise(function(a,c){r[n]=function(f){if(o)if(o=!1,f)c(f);else{for(var l=new Array(arguments.length-1),p=0;p<l.length;)l[p++]=arguments[p];a.apply(null,l)}};try{e.apply(t||null,r)}catch(u){o&&(o=!1,c(u))}})}});var Wa=G(Ya=>{"use strict";var li=Ya;li.length=function(t){var r=t.length;if(!r)return 0;for(var n=0;--r%4>1&&t.charAt(r)==="=";)++n;return Math.ceil(t.length*3)/4-n};var kn=new Array(64),Qa=new Array(123);for(Te=0;Te<64;)Qa[kn[Te]=Te<26?Te+65:Te<52?Te+71:Te<62?Te-4:Te-59|43]=Te++;var Te;li.encode=function(t,r,n){for(var i=null,o=[],s=0,a=0,c;r<n;){var u=t[r++];switch(a){case 0:o[s++]=kn[u>>2],c=(u&3)<<4,a=1;break;case 1:o[s++]=kn[c|u>>4],c=(u&15)<<2,a=2;break;case 2:o[s++]=kn[c|u>>6],o[s++]=kn[u&63],a=0;break}s>8191&&((i||(i=[])).push(String.fromCharCode.apply(String,o)),s=0)}return a&&(o[s++]=kn[c],o[s++]=61,a===1&&(o[s++]=61)),i?(s&&i.push(String.fromCharCode.apply(String,o.slice(0,s))),i.join("")):String.fromCharCode.apply(String,o.slice(0,s))};var Ga="invalid encoding";li.decode=function(t,r,n){for(var i=n,o=0,s,a=0;a<t.length;){var c=t.charCodeAt(a++);if(c===61&&o>1)break;if((c=Qa[c])===void 0)throw Error(Ga);switch(o){case 0:s=c,o=1;break;case 1:r[n++]=s<<2|(c&48)>>4,s=c,o=2;break;case 2:r[n++]=(s&15)<<4|(c&60)>>2,s=c,o=3;break;case 3:r[n++]=(s&3)<<6|c,o=0;break}}if(o===1)throw Error(Ga);return n-i};li.test=function(t){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(t)}});var Xa=G((Rg,Za)=>{"use strict";Za.exports=hi;function hi(){this._listeners={}}hi.prototype.on=function(t,r,n){return(this._listeners[t]||(this._listeners[t]=[])).push({fn:r,ctx:n||this}),this};hi.prototype.off=function(t,r){if(t===void 0)this._listeners={};else if(r===void 0)this._listeners[t]=[];else for(var n=this._listeners[t],i=0;i<n.length;)n[i].fn===r?n.splice(i,1):++i;return this};hi.prototype.emit=function(t){var r=this._listeners[t];if(r){for(var n=[],i=1;i<arguments.length;)n.push(arguments[i++]);for(i=0;i<r.length;)r[i].fn.apply(r[i++].ctx,n)}return this}});var i3=G((Pg,n3)=>{"use strict";n3.exports=ja(ja);function ja(e){return typeof Float32Array<"u"?function(){var t=new Float32Array([-0]),r=new Uint8Array(t.buffer),n=r[3]===128;function i(c,u,f){t[0]=c,u[f]=r[0],u[f+1]=r[1],u[f+2]=r[2],u[f+3]=r[3]}function o(c,u,f){t[0]=c,u[f]=r[3],u[f+1]=r[2],u[f+2]=r[1],u[f+3]=r[0]}e.writeFloatLE=n?i:o,e.writeFloatBE=n?o:i;function s(c,u){return r[0]=c[u],r[1]=c[u+1],r[2]=c[u+2],r[3]=c[u+3],t[0]}function a(c,u){return r[3]=c[u],r[2]=c[u+1],r[1]=c[u+2],r[0]=c[u+3],t[0]}e.readFloatLE=n?s:a,e.readFloatBE=n?a:s}():function(){function t(n,i,o,s){var a=i<0?1:0;if(a&&(i=-i),i===0)n(1/i>0?0:2147483648,o,s);else if(isNaN(i))n(2143289344,o,s);else if(i>34028234663852886e22)n((a<<31|2139095040)>>>0,o,s);else if(i<11754943508222875e-54)n((a<<31|Math.round(i/1401298464324817e-60))>>>0,o,s);else{var c=Math.floor(Math.log(i)/Math.LN2),u=Math.round(i*Math.pow(2,-c)*8388608)&8388607;n((a<<31|c+127<<23|u)>>>0,o,s)}}e.writeFloatLE=t.bind(null,Ja),e.writeFloatBE=t.bind(null,t3);function r(n,i,o){var s=n(i,o),a=(s>>31)*2+1,c=s>>>23&255,u=s&8388607;return c===255?u?NaN:a*(1/0):c===0?a*1401298464324817e-60*u:a*Math.pow(2,c-150)*(u+8388608)}e.readFloatLE=r.bind(null,e3),e.readFloatBE=r.bind(null,r3)}(),typeof Float64Array<"u"?function(){var t=new Float64Array([-0]),r=new Uint8Array(t.buffer),n=r[7]===128;function i(c,u,f){t[0]=c,u[f]=r[0],u[f+1]=r[1],u[f+2]=r[2],u[f+3]=r[3],u[f+4]=r[4],u[f+5]=r[5],u[f+6]=r[6],u[f+7]=r[7]}function o(c,u,f){t[0]=c,u[f]=r[7],u[f+1]=r[6],u[f+2]=r[5],u[f+3]=r[4],u[f+4]=r[3],u[f+5]=r[2],u[f+6]=r[1],u[f+7]=r[0]}e.writeDoubleLE=n?i:o,e.writeDoubleBE=n?o:i;function s(c,u){return r[0]=c[u],r[1]=c[u+1],r[2]=c[u+2],r[3]=c[u+3],r[4]=c[u+4],r[5]=c[u+5],r[6]=c[u+6],r[7]=c[u+7],t[0]}function a(c,u){return r[7]=c[u],r[6]=c[u+1],r[5]=c[u+2],r[4]=c[u+3],r[3]=c[u+4],r[2]=c[u+5],r[1]=c[u+6],r[0]=c[u+7],t[0]}e.readDoubleLE=n?s:a,e.readDoubleBE=n?a:s}():function(){function t(n,i,o,s,a,c){var u=s<0?1:0;if(u&&(s=-s),s===0)n(0,a,c+i),n(1/s>0?0:2147483648,a,c+o);else if(isNaN(s))n(0,a,c+i),n(2146959360,a,c+o);else if(s>17976931348623157e292)n(0,a,c+i),n((u<<31|2146435072)>>>0,a,c+o);else{var f;if(s<22250738585072014e-324)f=s/5e-324,n(f>>>0,a,c+i),n((u<<31|f/4294967296)>>>0,a,c+o);else{var l=Math.floor(Math.log(s)/Math.LN2);l===1024&&(l=1023),f=s*Math.pow(2,-l),n(f*4503599627370496>>>0,a,c+i),n((u<<31|l+1023<<20|f*1048576&1048575)>>>0,a,c+o)}}}e.writeDoubleLE=t.bind(null,Ja,0,4),e.writeDoubleBE=t.bind(null,t3,4,0);function r(n,i,o,s,a){var c=n(s,a+i),u=n(s,a+o),f=(u>>31)*2+1,l=u>>>20&2047,p=4294967296*(u&1048575)+c;return l===2047?p?NaN:f*(1/0):l===0?f*5e-324*p:f*Math.pow(2,l-1075)*(p+4503599627370496)}e.readDoubleLE=r.bind(null,e3,0,4),e.readDoubleBE=r.bind(null,r3,4,0)}(),e}function Ja(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 t3(e,t,r){t[r]=e>>>24,t[r+1]=e>>>16&255,t[r+2]=e>>>8&255,t[r+3]=e&255}function e3(e,t){return(e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24)>>>0}function r3(e,t){return(e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3])>>>0}});var o3=G((exports,module)=>{"use strict";module.exports=inquire;function inquire(moduleName){try{var mod=eval("quire".replace(/^/,"re"))(moduleName);if(mod&&(mod.length||Object.keys(mod).length))return mod}catch(e){}return null}});var a3=G(s3=>{"use strict";var Oo=s3;Oo.length=function(t){for(var r=0,n=0,i=0;i<t.length;++i)n=t.charCodeAt(i),n<128?r+=1:n<2048?r+=2:(n&64512)===55296&&(t.charCodeAt(i+1)&64512)===56320?(++i,r+=4):r+=3;return r};Oo.read=function(t,r,n){var i=n-r;if(i<1)return"";for(var o=null,s=[],a=0,c;r<n;)c=t[r++],c<128?s[a++]=c:c>191&&c<224?s[a++]=(c&31)<<6|t[r++]&63:c>239&&c<365?(c=((c&7)<<18|(t[r++]&63)<<12|(t[r++]&63)<<6|t[r++]&63)-65536,s[a++]=55296+(c>>10),s[a++]=56320+(c&1023)):s[a++]=(c&15)<<12|(t[r++]&63)<<6|t[r++]&63,a>8191&&((o||(o=[])).push(String.fromCharCode.apply(String,s)),a=0);return o?(a&&o.push(String.fromCharCode.apply(String,s.slice(0,a))),o.join("")):String.fromCharCode.apply(String,s.slice(0,a))};Oo.write=function(t,r,n){for(var i=n,o,s,a=0;a<t.length;++a)o=t.charCodeAt(a),o<128?r[n++]=o:o<2048?(r[n++]=o>>6|192,r[n++]=o&63|128):(o&64512)===55296&&((s=t.charCodeAt(a+1))&64512)===56320?(o=65536+((o&1023)<<10)+(s&1023),++a,r[n++]=o>>18|240,r[n++]=o>>12&63|128,r[n++]=o>>6&63|128,r[n++]=o&63|128):(r[n++]=o>>12|224,r[n++]=o>>6&63|128,r[n++]=o&63|128);return n-i}});var u3=G((Ng,c3)=>{"use strict";c3.exports=Ku;function Ku(e,t,r){var n=r||8192,i=n>>>1,o=null,s=n;return function(c){if(c<1||c>i)return e(c);s+c>n&&(o=e(n),s=0);var u=t.call(o,s,s+=c);return s&7&&(s=(s|7)+1),u}}});var l3=G((kg,f3)=>{"use strict";f3.exports=Gt;var m0=Jr();function Gt(e,t){this.lo=e>>>0,this.hi=t>>>0}var jr=Gt.zero=new Gt(0,0);jr.toNumber=function(){return 0};jr.zzEncode=jr.zzDecode=function(){return this};jr.length=function(){return 1};var qu=Gt.zeroHash="\0\0\0\0\0\0\0\0";Gt.fromNumber=function(t){if(t===0)return jr;var r=t<0;r&&(t=-t);var 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 Gt(n,i)};Gt.from=function(t){if(typeof t=="number")return Gt.fromNumber(t);if(m0.isString(t))if(m0.Long)t=m0.Long.fromString(t);else return Gt.fromNumber(parseInt(t,10));return t.low||t.high?new Gt(t.low>>>0,t.high>>>0):jr};Gt.prototype.toNumber=function(t){if(!t&&this.hi>>>31){var r=~this.lo+1>>>0,n=~this.hi>>>0;return r||(n=n+1>>>0),-(r+n*4294967296)}return this.lo+this.hi*4294967296};Gt.prototype.toLong=function(t){return m0.Long?new m0.Long(this.lo|0,this.hi|0,!!t):{low:this.lo|0,high:this.hi|0,unsigned:!!t}};var Tr=String.prototype.charCodeAt;Gt.fromHash=function(t){return t===qu?jr:new Gt((Tr.call(t,0)|Tr.call(t,1)<<8|Tr.call(t,2)<<16|Tr.call(t,3)<<24)>>>0,(Tr.call(t,4)|Tr.call(t,5)<<8|Tr.call(t,6)<<16|Tr.call(t,7)<<24)>>>0)};Gt.prototype.toHash=function(){return String.fromCharCode(this.lo&255,this.lo>>>8&255,this.lo>>>16&255,this.lo>>>24,this.hi&255,this.hi>>>8&255,this.hi>>>16&255,this.hi>>>24)};Gt.prototype.zzEncode=function(){var t=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^t)>>>0,this.lo=(this.lo<<1^t)>>>0,this};Gt.prototype.zzDecode=function(){var t=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^t)>>>0,this.hi=(this.hi>>>1^t)>>>0,this};Gt.prototype.length=function(){var 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}});var Jr=G(Uo=>{"use strict";var q=Uo;q.asPromise=$a();q.base64=Wa();q.EventEmitter=Xa();q.float=i3();q.inquire=o3();q.utf8=a3();q.pool=u3();q.LongBits=l3();q.isNode=!!(typeof globalThis<"u"&&globalThis&&globalThis.process&&globalThis.process.versions&&globalThis.process.versions.node);q.global=q.isNode&&globalThis||typeof window<"u"&&window||typeof self<"u"&&self||Uo;q.emptyArray=Object.freeze?Object.freeze([]):[];q.emptyObject=Object.freeze?Object.freeze({}):{};q.isInteger=Number.isInteger||function(t){return typeof t=="number"&&isFinite(t)&&Math.floor(t)===t};q.isString=function(t){return typeof t=="string"||t instanceof String};q.isObject=function(t){return t&&typeof t=="object"};q.isset=q.isSet=function(t,r){var n=t[r];return n!=null&&t.hasOwnProperty(r)?typeof n!="object"||(Array.isArray(n)?n.length:Object.keys(n).length)>0:!1};q.Buffer=function(){try{var e=q.inquire("buffer").Buffer;return e.prototype.utf8Write?e:null}catch{return null}}();q._Buffer_from=null;q._Buffer_allocUnsafe=null;q.newBuffer=function(t){return typeof t=="number"?q.Buffer?q._Buffer_allocUnsafe(t):new q.Array(t):q.Buffer?q._Buffer_from(t):typeof Uint8Array>"u"?t:new Uint8Array(t)};q.Array=typeof Uint8Array<"u"?Uint8Array:Array;q.Long=q.global.dcodeIO&&q.global.dcodeIO.Long||q.global.Long||q.inquire("long");q.key2Re=/^true|false|0|1$/;q.key32Re=/^-?(?:0|[1-9][0-9]*)$/;q.key64Re=/^(?:[\\x00-\\xff]{8}|-?(?:0|[1-9][0-9]*))$/;q.longToHash=function(t){return t?q.LongBits.from(t).toHash():q.LongBits.zeroHash};q.longFromHash=function(t,r){var n=q.LongBits.fromHash(t);return q.Long?q.Long.fromBits(n.lo,n.hi,r):n.toNumber(!!r)};function h3(e,t,r){for(var n=Object.keys(t),i=0;i<n.length;++i)(e[n[i]]===void 0||!r)&&(e[n[i]]=t[n[i]]);return e}q.merge=h3;q.lcFirst=function(t){return t.charAt(0).toLowerCase()+t.substring(1)};function d3(e){function t(r,n){if(!(this instanceof t))return new t(r,n);Object.defineProperty(this,"message",{get:function(){return r}}),Error.captureStackTrace?Error.captureStackTrace(this,t):Object.defineProperty(this,"stack",{value:new Error().stack||""}),n&&h3(this,n)}return t.prototype=Object.create(Error.prototype,{constructor:{value:t,writable:!0,enumerable:!1,configurable:!0},name:{get:function(){return e},set:void 0,enumerable:!1,configurable:!0},toString:{value:function(){return this.name+": "+this.message},writable:!0,enumerable:!1,configurable:!0}}),t}q.newError=d3;q.ProtocolError=d3("ProtocolError");q.oneOfGetter=function(t){for(var r={},n=0;n<t.length;++n)r[t[n]]=1;return function(){for(var i=Object.keys(this),o=i.length-1;o>-1;--o)if(r[i[o]]===1&&this[i[o]]!==void 0&&this[i[o]]!==null)return i[o]}};q.oneOfSetter=function(t){return function(r){for(var n=0;n<t.length;++n)t[n]!==r&&delete this[t[n]]}};q.toJSONOptions={longs:String,enums:String,bytes:String,json:!0};q._configure=function(){var e=q.Buffer;if(!e){q._Buffer_from=q._Buffer_allocUnsafe=null;return}q._Buffer_from=e.from!==Uint8Array.from&&e.from||function(r,n){return new e(r,n)},q._Buffer_allocUnsafe=e.allocUnsafe||function(r){return new e(r)}}});var Ko=G((Og,x3)=>{"use strict";x3.exports=Ot;var He=Jr(),Mo,g3=He.LongBits,Vu=He.utf8;function Re(e,t){return RangeError("index out of range: "+e.pos+" + "+(t||1)+" > "+e.len)}function Ot(e){this.buf=e,this.pos=0,this.len=e.length}var p3=typeof Uint8Array<"u"?function(t){if(t instanceof Uint8Array||Array.isArray(t))return new Ot(t);throw Error("illegal buffer")}:function(t){if(Array.isArray(t))return new Ot(t);throw Error("illegal buffer")},m3=function(){return He.Buffer?function(r){return(Ot.create=function(i){return He.Buffer.isBuffer(i)?new Mo(i):p3(i)})(r)}:p3};Ot.create=m3();Ot.prototype._slice=He.Array.prototype.subarray||He.Array.prototype.slice;Ot.prototype.uint32=function(){var t=4294967295;return function(){if(t=(this.buf[this.pos]&127)>>>0,this.buf[this.pos++]<128||(t=(t|(this.buf[this.pos]&127)<<7)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&127)<<14)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&127)<<21)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&15)<<28)>>>0,this.buf[this.pos++]<128))return t;if((this.pos+=5)>this.len)throw this.pos=this.len,Re(this,10);return t}}();Ot.prototype.int32=function(){return this.uint32()|0};Ot.prototype.sint32=function(){var t=this.uint32();return t>>>1^-(t&1)|0};function Fo(){var e=new g3(0,0),t=0;if(this.len-this.pos>4){for(;t<4;++t)if(e.lo=(e.lo|(this.buf[this.pos]&127)<<t*7)>>>0,this.buf[this.pos++]<128)return e;if(e.lo=(e.lo|(this.buf[this.pos]&127)<<28)>>>0,e.hi=(e.hi|(this.buf[this.pos]&127)>>4)>>>0,this.buf[this.pos++]<128)return e;t=0}else{for(;t<3;++t){if(this.pos>=this.len)throw Re(this);if(e.lo=(e.lo|(this.buf[this.pos]&127)<<t*7)>>>0,this.buf[this.pos++]<128)return e}return e.lo=(e.lo|(this.buf[this.pos++]&127)<<t*7)>>>0,e}if(this.len-this.pos>4){for(;t<5;++t)if(e.hi=(e.hi|(this.buf[this.pos]&127)<<t*7+3)>>>0,this.buf[this.pos++]<128)return e}else for(;t<5;++t){if(this.pos>=this.len)throw Re(this);if(e.hi=(e.hi|(this.buf[this.pos]&127)<<t*7+3)>>>0,this.buf[this.pos++]<128)return e}throw Error("invalid varint encoding")}Ot.prototype.bool=function(){return this.uint32()!==0};function di(e,t){return(e[t-4]|e[t-3]<<8|e[t-2]<<16|e[t-1]<<24)>>>0}Ot.prototype.fixed32=function(){if(this.pos+4>this.len)throw Re(this,4);return di(this.buf,this.pos+=4)};Ot.prototype.sfixed32=function(){if(this.pos+4>this.len)throw Re(this,4);return di(this.buf,this.pos+=4)|0};function y3(){if(this.pos+8>this.len)throw Re(this,8);return new g3(di(this.buf,this.pos+=4),di(this.buf,this.pos+=4))}Ot.prototype.float=function(){if(this.pos+4>this.len)throw Re(this,4);var t=He.float.readFloatLE(this.buf,this.pos);return this.pos+=4,t};Ot.prototype.double=function(){if(this.pos+8>this.len)throw Re(this,4);var t=He.float.readDoubleLE(this.buf,this.pos);return this.pos+=8,t};Ot.prototype.bytes=function(){var t=this.uint32(),r=this.pos,n=this.pos+t;if(n>this.len)throw Re(this,t);return this.pos+=t,Array.isArray(this.buf)?this.buf.slice(r,n):r===n?new this.buf.constructor(0):this._slice.call(this.buf,r,n)};Ot.prototype.string=function(){var t=this.bytes();return Vu.read(t,0,t.length)};Ot.prototype.skip=function(t){if(typeof t=="number"){if(this.pos+t>this.len)throw Re(this,t);this.pos+=t}else do if(this.pos>=this.len)throw Re(this);while(this.buf[this.pos++]&128);return this};Ot.prototype.skipType=function(e){switch(e){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;(e=this.uint32()&7)!==4;)this.skipType(e);break;case 5:this.skip(4);break;default:throw Error("invalid wire type "+e+" at offset "+this.pos)}return this};Ot._configure=function(e){Mo=e,Ot.create=m3(),Mo._configure();var t=He.Long?"toLong":"toNumber";He.merge(Ot.prototype,{int64:function(){return Fo.call(this)[t](!1)},uint64:function(){return Fo.call(this)[t](!0)},sint64:function(){return Fo.call(this).zzDecode()[t](!1)},fixed64:function(){return y3.call(this)[t](!0)},sfixed64:function(){return y3.call(this)[t](!1)}})}});var E3=G((Ug,w3)=>{"use strict";w3.exports=tn;var b3=Ko();(tn.prototype=Object.create(b3.prototype)).constructor=tn;var v3=Jr();function tn(e){b3.call(this,e)}tn._configure=function(){v3.Buffer&&(tn.prototype._slice=v3.Buffer.prototype.slice)};tn.prototype.string=function(){var t=this.uint32();return this.buf.utf8Slice?this.buf.utf8Slice(this.pos,this.pos=Math.min(this.pos+t,this.len)):this.buf.toString("utf-8",this.pos,this.pos=Math.min(this.pos+t,this.len))};tn._configure()});var Qo=G((Fg,_3)=>{"use strict";_3.exports=ot;var ve=Jr(),qo,pi=ve.LongBits,S3=ve.base64,I3=ve.utf8;function x0(e,t,r){this.fn=e,this.len=t,this.next=void 0,this.val=r}function zo(){}function zu(e){this.head=e.head,this.tail=e.tail,this.len=e.len,this.next=e.states}function ot(){this.len=0,this.head=new x0(zo,0,0),this.tail=this.head,this.states=null}var A3=function(){return ve.Buffer?function(){return(ot.create=function(){return new qo})()}:function(){return new ot}};ot.create=A3();ot.alloc=function(t){return new ve.Array(t)};ve.Array!==Array&&(ot.alloc=ve.pool(ot.alloc,ve.Array.prototype.subarray));ot.prototype._push=function(t,r,n){return this.tail=this.tail.next=new x0(t,r,n),this.len+=r,this};function Ho(e,t,r){t[r]=e&255}function Hu(e,t,r){for(;e>127;)t[r++]=e&127|128,e>>>=7;t[r]=e}function $o(e,t){this.len=e,this.next=void 0,this.val=t}$o.prototype=Object.create(x0.prototype);$o.prototype.fn=Hu;ot.prototype.uint32=function(t){return this.len+=(this.tail=this.tail.next=new $o((t=t>>>0)<128?1:t<16384?2:t<2097152?3:t<268435456?4:5,t)).len,this};ot.prototype.int32=function(t){return t<0?this._push(Go,10,pi.fromNumber(t)):this.uint32(t)};ot.prototype.sint32=function(t){return this.uint32((t<<1^t>>31)>>>0)};function Go(e,t,r){for(;e.hi;)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}ot.prototype.uint64=function(t){var r=pi.from(t);return this._push(Go,r.length(),r)};ot.prototype.int64=ot.prototype.uint64;ot.prototype.sint64=function(t){var r=pi.from(t).zzEncode();return this._push(Go,r.length(),r)};ot.prototype.bool=function(t){return this._push(Ho,1,t?1:0)};function Vo(e,t,r){t[r]=e&255,t[r+1]=e>>>8&255,t[r+2]=e>>>16&255,t[r+3]=e>>>24}ot.prototype.fixed32=function(t){return this._push(Vo,4,t>>>0)};ot.prototype.sfixed32=ot.prototype.fixed32;ot.prototype.fixed64=function(t){var r=pi.from(t);return this._push(Vo,4,r.lo)._push(Vo,4,r.hi)};ot.prototype.sfixed64=ot.prototype.fixed64;ot.prototype.float=function(t){return this._push(ve.float.writeFloatLE,4,t)};ot.prototype.double=function(t){return this._push(ve.float.writeDoubleLE,8,t)};var $u=ve.Array.prototype.set?function(t,r,n){r.set(t,n)}:function(t,r,n){for(var i=0;i<t.length;++i)r[n+i]=t[i]};ot.prototype.bytes=function(t){var r=t.length>>>0;if(!r)return this._push(Ho,1,0);if(ve.isString(t)){var n=ot.alloc(r=S3.length(t));S3.decode(t,n,0),t=n}return this.uint32(r)._push($u,r,t)};ot.prototype.string=function(t){var r=I3.length(t);return r?this.uint32(r)._push(I3.write,r,t):this._push(Ho,1,0)};ot.prototype.fork=function(){return this.states=new zu(this),this.head=this.tail=new x0(zo,0,0),this.len=0,this};ot.prototype.reset=function(){return this.states?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new x0(zo,0,0),this.len=0),this};ot.prototype.ldelim=function(){var t=this.head,r=this.tail,n=this.len;return this.reset().uint32(n),n&&(this.tail.next=t.next,this.tail=r,this.len+=n),this};ot.prototype.finish=function(){for(var t=this.head.next,r=this.constructor.alloc(this.len),n=0;t;)t.fn(t.val,r,n),n+=t.len,t=t.next;return r};ot._configure=function(e){qo=e,ot.create=A3(),qo._configure()}});var T3=G((Mg,B3)=>{"use strict";B3.exports=$e;var C3=Qo();($e.prototype=Object.create(C3.prototype)).constructor=$e;var Rr=Jr();function $e(){C3.call(this)}$e._configure=function(){$e.alloc=Rr._Buffer_allocUnsafe,$e.writeBytesBuffer=Rr.Buffer&&Rr.Buffer.prototype instanceof Uint8Array&&Rr.Buffer.prototype.set.name==="set"?function(t,r,n){r.set(t,n)}:function(t,r,n){if(t.copy)t.copy(r,n,0,t.length);else for(var i=0;i<t.length;)r[n++]=t[i++]}};$e.prototype.bytes=function(t){Rr.isString(t)&&(t=Rr._Buffer_from(t,"base64"));var r=t.length>>>0;return this.uint32(r),r&&this._push($e.writeBytesBuffer,r,t),this};function Gu(e,t,r){e.length<40?Rr.utf8.write(e,t,r):t.utf8Write?t.utf8Write(e,r):t.write(e,r)}$e.prototype.string=function(t){var r=Rr.Buffer.byteLength(t);return this.uint32(r),r&&this._push(Gu,r,t),this};$e._configure()});var r4=G((wx,e4)=>{"use strict";function t4(e,t){for(let r in t)Object.defineProperty(e,r,{value:t[r],enumerable:!0,configurable:!0});return e}function cf(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 t4(e,r)}catch{r.message=e.message,r.stack=e.stack;let i=function(){};return i.prototype=Object.create(Object.getPrototypeOf(e)),t4(new i,r)}}e4.exports=cf});var dt=G((Mx,i4)=>{i4.exports={options:{usePureJavaScript:!1}}});var a4=G((Kx,s4)=>{var os={};s4.exports=os;var o4={};os.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=lf(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};os.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=o4[t];if(!r){r=o4[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 lf(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 Ft=G((qx,l4)=>{var c4=dt(),u4=a4(),b=l4.exports=c4.util=c4.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=ss;function ss(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 ss||typeof e=="object"&&typeof e.data=="string"&&typeof e.read=="number")&&(this.data=e.data,this.read=e.read);this._constructedStringLength=0}b.ByteStringBuffer=ss;var hf=4096;b.ByteStringBuffer.prototype._optimizeConstructedString=function(e){this._constructedStringLength+=e,this._constructedStringLength>hf&&(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 df(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=df;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 Nr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",kr=[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],f4="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+=Nr.charAt(i>>2),r+=Nr.charAt((i&3)<<4|o>>4),isNaN(o)?r+="==":(r+=Nr.charAt((o&15)<<2|s>>6),r+=isNaN(s)?"=":Nr.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=kr[e.charCodeAt(s++)-43],n=kr[e.charCodeAt(s++)-43],i=kr[e.charCodeAt(s++)-43],o=kr[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:u4.encode,decode:u4.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+=Nr.charAt(i>>2),r+=Nr.charAt((i&3)<<4|o>>4),isNaN(o)?r+="==":(r+=Nr.charAt((o&15)<<2|s>>6),r+=isNaN(s)?"=":Nr.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=kr[e.charCodeAt(c++)-43],o=kr[e.charCodeAt(c++)-43],s=kr[e.charCodeAt(c++)-43],a=kr[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,f4,t)};b.binary.base58.decode=function(e,t){return b.binary.baseN.decode(e,f4,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 as=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}},cs=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},pf=function(e,t,r,n){var i=cs(e,t);i===null&&(i={}),i[r]=n,as(e,t,i)},yf=function(e,t,r){var n=cs(e,t);return n!==null&&(n=r in n?n[r]:null),n},gf=function(e,t,r){var n=cs(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),as(e,t,n)}},mf=function(e,t){as(e,t,null)},Ii=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){Ii(pf,arguments,i)};b.getItem=function(e,t,r,n){return Ii(yf,arguments,n)};b.removeItem=function(e,t,r,n){Ii(gf,arguments,n)};b.clearItems=function(e,t,r){Ii(mf,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 fs=G((Vx,h4)=>{var Qt=dt();Ft();h4.exports=Qt.cipher=Qt.cipher||{};Qt.cipher.algorithms=Qt.cipher.algorithms||{};Qt.cipher.createCipher=function(e,t){var r=e;if(typeof r=="string"&&(r=Qt.cipher.getAlgorithm(r),r&&(r=r())),!r)throw new Error("Unsupported algorithm: "+e);return new Qt.cipher.BlockCipher({algorithm:r,key:t,decrypt:!1})};Qt.cipher.createDecipher=function(e,t){var r=e;if(typeof r=="string"&&(r=Qt.cipher.getAlgorithm(r),r&&(r=r())),!r)throw new Error("Unsupported algorithm: "+e);return new Qt.cipher.BlockCipher({algorithm:r,key:t,decrypt:!0})};Qt.cipher.registerAlgorithm=function(e,t){e=e.toUpperCase(),Qt.cipher.algorithms[e]=t};Qt.cipher.getAlgorithm=function(e){return e=e.toUpperCase(),e in Qt.cipher.algorithms?Qt.cipher.algorithms[e]:null};var us=Qt.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)};us.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=Qt.util.createBuffer(),this.output=e.output||Qt.util.createBuffer(),this.mode.start(t)};us.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()};us.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 hs=G((zx,d4)=>{var Yt=dt();Ft();Yt.cipher=Yt.cipher||{};var tt=d4.exports=Yt.cipher.modes=Yt.cipher.modes||{};tt.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)};tt.ecb.prototype.start=function(e){};tt.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])};tt.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])};tt.ecb.prototype.pad=function(e,t){var r=e.length()===this.blockSize?this.blockSize:this.blockSize-e.length();return e.fillWithByte(r,r),!0};tt.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)};tt.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)};tt.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=Ai(e.iv,this.blockSize),this._prev=this._iv.slice(0);else throw new Error("Invalid IV parameter.")};tt.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};tt.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)};tt.cbc.prototype.pad=function(e,t){var r=e.length()===this.blockSize?this.blockSize:this.blockSize-e.length();return e.fillWithByte(r,r),!0};tt.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)};tt.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=Yt.util.createBuffer(),this._partialBytes=0};tt.cfb.prototype.start=function(e){if(!("iv"in e))throw new Error("Invalid IV parameter.");this._iv=Ai(e.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0};tt.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};tt.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};tt.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=Yt.util.createBuffer(),this._partialBytes=0};tt.ofb.prototype.start=function(e){if(!("iv"in e))throw new Error("Invalid IV parameter.");this._iv=Ai(e.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0};tt.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};tt.ofb.prototype.decrypt=tt.ofb.prototype.encrypt;tt.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=Yt.util.createBuffer(),this._partialBytes=0};tt.ctr.prototype.start=function(e){if(!("iv"in e))throw new Error("Invalid IV parameter.");this._iv=Ai(e.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0};tt.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}_i(this._inBlock)};tt.ctr.prototype.decrypt=tt.ctr.prototype.encrypt;tt.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=Yt.util.createBuffer(),this._partialBytes=0,this._R=3774873600};tt.gcm.prototype.start=function(e){if(!("iv"in e))throw new Error("Invalid IV parameter.");var t=Yt.util.createBuffer(e.iv);this._cipherLength=0;var r;if("additionalData"in e?r=Yt.util.createBuffer(e.additionalData):r=Yt.util.createBuffer(),"tagLength"in e?this._tagLength=e.tagLength:this._tagLength=128,this._tag=null,e.decrypt&&(this._tag=Yt.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(ls(n*8)))}this._inBlock=this._j0.slice(0),_i(this._inBlock),this._partialBytes=0,r=Yt.util.createBuffer(r),this._aDataLength=ls(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()])};tt.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),_i(this._inBlock)};tt.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),_i(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};tt.gcm.prototype.afterFinish=function(e,t){var r=!0;t.decrypt&&t.overflow&&e.truncate(this.blockSize-t.overflow),this.tag=Yt.util.createBuffer();var n=this._aDataLength.concat(ls(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};tt.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};tt.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)};tt.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};tt.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)};tt.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};tt.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 Ai(e,t){if(typeof e=="string"&&(e=Yt.util.createBuffer(e)),Yt.util.isArray(e)&&e.length>4){var r=e;e=Yt.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(!Yt.util.isArray(e)){for(var i=[],o=t/4,n=0;n<o;++n)i.push(e.getInt32());e=i}return e}function _i(e){e[e.length-1]=e[e.length-1]+1&4294967295}function ls(e){return[e/4294967296|0,e&4294967295]}});var Bi=G((Hx,m4)=>{var xt=dt();fs();hs();Ft();m4.exports=xt.aes=xt.aes||{};xt.aes.startEncrypting=function(e,t,r,n){var i=Ci({key:e,output:r,decrypt:!1,mode:n});return i.start(t),i};xt.aes.createEncryptionCipher=function(e,t){return Ci({key:e,output:null,decrypt:!1,mode:t})};xt.aes.startDecrypting=function(e,t,r,n){var i=Ci({key:e,output:r,decrypt:!0,mode:n});return i.start(t),i};xt.aes.createDecryptionCipher=function(e,t){return Ci({key:e,output:null,decrypt:!0,mode:t})};xt.aes.Algorithm=function(e,t){ys||y4();var r=this;r.name=e,r.mode=new t({blockSize:16,cipher:{encrypt:function(n,i){return ps(r._w,n,i,!1)},decrypt:function(n,i){return ps(r._w,n,i,!0)}}}),r._init=!1};xt.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=xt.util.createBuffer(t);else if(xt.util.isArray(t)&&(t.length===16||t.length===24||t.length===32)){r=t,t=xt.util.createBuffer();for(var n=0;n<r.length;++n)t.putByte(r[n])}if(!xt.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(!xt.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=g4(t,e.decrypt&&!s),this._init=!0}};xt.aes._expandKey=function(e,t){return ys||y4(),g4(e,t)};xt.aes._updateBlock=ps;$n("AES-ECB",xt.cipher.modes.ecb);$n("AES-CBC",xt.cipher.modes.cbc);$n("AES-CFB",xt.cipher.modes.cfb);$n("AES-OFB",xt.cipher.modes.ofb);$n("AES-CTR",xt.cipher.modes.ctr);$n("AES-GCM",xt.cipher.modes.gcm);function $n(e,t){var r=function(){return new xt.aes.Algorithm(e,t)};xt.cipher.registerAlgorithm(e,r)}var ys=!1,Hn=4,ae,ds,p4,on,Le;function y4(){ys=!0,p4=[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;ae=new Array(256),ds=new Array(256),on=new Array(4),Le=new Array(4);for(var t=0;t<4;++t)on[t]=new Array(256),Le[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,ae[r]=a,ds[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)on[l][r]=u,Le[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 g4(e,t){for(var r=e.slice(0),n,i=1,o=r.length,s=o+6+1,a=Hn*s,c=o;c<a;++c)n=r[c-1],c%o===0?(n=ae[n>>>16&255]<<24^ae[n>>>8&255]<<16^ae[n&255]<<8^ae[n>>>24]^p4[i]<<24,i++):o>6&&c%o===4&&(n=ae[n>>>24]<<24^ae[n>>>16&255]<<16^ae[n>>>8&255]<<8^ae[n&255]),r[c]=r[c-o]^n;if(t){var u,f=Le[0],l=Le[1],p=Le[2],d=Le[3],h=r.slice(0);a=r.length;for(var c=0,y=a-Hn;c<a;c+=Hn,y-=Hn)if(c===0||c===a-Hn)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<Hn;++g)u=r[y+g],h[c+(3&-g)]=f[ae[u>>>24]]^l[ae[u>>>16&255]]^p[ae[u>>>8&255]]^d[ae[u&255]];r=h}return r}function ps(e,t,r,n){var i=e.length/4-1,o,s,a,c,u;n?(o=Le[0],s=Le[1],a=Le[2],c=Le[3],u=ds):(o=on[0],s=on[1],a=on[2],c=on[3],u=ae);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 Ci(e){e=e||{};var t=(e.mode||"CBC").toUpperCase(),r="AES-"+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 Ti=G((rv,w4)=>{var I0=dt();I0.pki=I0.pki||{};var gs=w4.exports=I0.pki.oids=I0.oids=I0.oids||{};function T(e,t){gs[e]=t,gs[t]=e}function ft(e,t){gs[e]=t}T("1.2.840.113549.1.1.1","rsaEncryption");T("1.2.840.113549.1.1.4","md5WithRSAEncryption");T("1.2.840.113549.1.1.5","sha1WithRSAEncryption");T("1.2.840.113549.1.1.7","RSAES-OAEP");T("1.2.840.113549.1.1.8","mgf1");T("1.2.840.113549.1.1.9","pSpecified");T("1.2.840.113549.1.1.10","RSASSA-PSS");T("1.2.840.113549.1.1.11","sha256WithRSAEncryption");T("1.2.840.113549.1.1.12","sha384WithRSAEncryption");T("1.2.840.113549.1.1.13","sha512WithRSAEncryption");T("1.3.101.112","EdDSA25519");T("1.2.840.10040.4.3","dsa-with-sha1");T("1.3.14.3.2.7","desCBC");T("1.3.14.3.2.26","sha1");T("1.3.14.3.2.29","sha1WithRSASignature");T("2.16.840.1.101.3.4.2.1","sha256");T("2.16.840.1.101.3.4.2.2","sha384");T("2.16.840.1.101.3.4.2.3","sha512");T("2.16.840.1.101.3.4.2.4","sha224");T("2.16.840.1.101.3.4.2.5","sha512-224");T("2.16.840.1.101.3.4.2.6","sha512-256");T("1.2.840.113549.2.2","md2");T("1.2.840.113549.2.5","md5");T("1.2.840.113549.1.7.1","data");T("1.2.840.113549.1.7.2","signedData");T("1.2.840.113549.1.7.3","envelopedData");T("1.2.840.113549.1.7.4","signedAndEnvelopedData");T("1.2.840.113549.1.7.5","digestedData");T("1.2.840.113549.1.7.6","encryptedData");T("1.2.840.113549.1.9.1","emailAddress");T("1.2.840.113549.1.9.2","unstructuredName");T("1.2.840.113549.1.9.3","contentType");T("1.2.840.113549.1.9.4","messageDigest");T("1.2.840.113549.1.9.5","signingTime");T("1.2.840.113549.1.9.6","counterSignature");T("1.2.840.113549.1.9.7","challengePassword");T("1.2.840.113549.1.9.8","unstructuredAddress");T("1.2.840.113549.1.9.14","extensionRequest");T("1.2.840.113549.1.9.20","friendlyName");T("1.2.840.113549.1.9.21","localKeyId");T("1.2.840.113549.1.9.22.1","x509Certificate");T("1.2.840.113549.1.12.10.1.1","keyBag");T("1.2.840.113549.1.12.10.1.2","pkcs8ShroudedKeyBag");T("1.2.840.113549.1.12.10.1.3","certBag");T("1.2.840.113549.1.12.10.1.4","crlBag");T("1.2.840.113549.1.12.10.1.5","secretBag");T("1.2.840.113549.1.12.10.1.6","safeContentsBag");T("1.2.840.113549.1.5.13","pkcs5PBES2");T("1.2.840.113549.1.5.12","pkcs5PBKDF2");T("1.2.840.113549.1.12.1.1","pbeWithSHAAnd128BitRC4");T("1.2.840.113549.1.12.1.2","pbeWithSHAAnd40BitRC4");T("1.2.840.113549.1.12.1.3","pbeWithSHAAnd3-KeyTripleDES-CBC");T("1.2.840.113549.1.12.1.4","pbeWithSHAAnd2-KeyTripleDES-CBC");T("1.2.840.113549.1.12.1.5","pbeWithSHAAnd128BitRC2-CBC");T("1.2.840.113549.1.12.1.6","pbewithSHAAnd40BitRC2-CBC");T("1.2.840.113549.2.7","hmacWithSHA1");T("1.2.840.113549.2.8","hmacWithSHA224");T("1.2.840.113549.2.9","hmacWithSHA256");T("1.2.840.113549.2.10","hmacWithSHA384");T("1.2.840.113549.2.11","hmacWithSHA512");T("1.2.840.113549.3.7","des-EDE3-CBC");T("2.16.840.1.101.3.4.1.2","aes128-CBC");T("2.16.840.1.101.3.4.1.22","aes192-CBC");T("2.16.840.1.101.3.4.1.42","aes256-CBC");T("2.5.4.3","commonName");T("2.5.4.4","surname");T("2.5.4.5","serialNumber");T("2.5.4.6","countryName");T("2.5.4.7","localityName");T("2.5.4.8","stateOrProvinceName");T("2.5.4.9","streetAddress");T("2.5.4.10","organizationName");T("2.5.4.11","organizationalUnitName");T("2.5.4.12","title");T("2.5.4.13","description");T("2.5.4.15","businessCategory");T("2.5.4.17","postalCode");T("2.5.4.42","givenName");T("1.3.6.1.4.1.311.60.2.1.2","jurisdictionOfIncorporationStateOrProvinceName");T("1.3.6.1.4.1.311.60.2.1.3","jurisdictionOfIncorporationCountryName");T("2.16.840.1.113730.1.1","nsCertType");T("2.16.840.1.113730.1.13","nsComment");ft("2.5.29.1","authorityKeyIdentifier");ft("2.5.29.2","keyAttributes");ft("2.5.29.3","certificatePolicies");ft("2.5.29.4","keyUsageRestriction");ft("2.5.29.5","policyMapping");ft("2.5.29.6","subtreesConstraint");ft("2.5.29.7","subjectAltName");ft("2.5.29.8","issuerAltName");ft("2.5.29.9","subjectDirectoryAttributes");ft("2.5.29.10","basicConstraints");ft("2.5.29.11","nameConstraints");ft("2.5.29.12","policyConstraints");ft("2.5.29.13","basicConstraints");T("2.5.29.14","subjectKeyIdentifier");T("2.5.29.15","keyUsage");ft("2.5.29.16","privateKeyUsagePeriod");T("2.5.29.17","subjectAltName");T("2.5.29.18","issuerAltName");T("2.5.29.19","basicConstraints");ft("2.5.29.20","cRLNumber");ft("2.5.29.21","cRLReason");ft("2.5.29.22","expirationDate");ft("2.5.29.23","instructionCode");ft("2.5.29.24","invalidityDate");ft("2.5.29.25","cRLDistributionPoints");ft("2.5.29.26","issuingDistributionPoint");ft("2.5.29.27","deltaCRLIndicator");ft("2.5.29.28","issuingDistributionPoint");ft("2.5.29.29","certificateIssuer");ft("2.5.29.30","nameConstraints");T("2.5.29.31","cRLDistributionPoints");T("2.5.29.32","certificatePolicies");ft("2.5.29.33","policyMappings");ft("2.5.29.34","policyConstraints");T("2.5.29.35","authorityKeyIdentifier");ft("2.5.29.36","policyConstraints");T("2.5.29.37","extKeyUsage");ft("2.5.29.46","freshestCRL");ft("2.5.29.54","inhibitAnyPolicy");T("1.3.6.1.4.1.11129.2.4.2","timestampList");T("1.3.6.1.5.5.7.1.1","authorityInfoAccess");T("1.3.6.1.5.5.7.3.1","serverAuth");T("1.3.6.1.5.5.7.3.2","clientAuth");T("1.3.6.1.5.5.7.3.3","codeSigning");T("1.3.6.1.5.5.7.3.4","emailProtection");T("1.3.6.1.5.5.7.3.8","timeStamping")});var _0=G((nv,S4)=>{var wt=dt();Ft();Ti();var O=S4.exports=wt.asn1=wt.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(wt.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||wt.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(wt.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(wt.util.isArray(e)){if(!wt.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 A0(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 Sf=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;A0(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=wt.util.createBuffer(e));var r=e.length(),n=Ri(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 Ri(e,t,r,n){var i;A0(e,t,2);var o=e.getByte();t--;var s=o&192,a=o&31;i=e.length();var c=Sf(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(A0(e,t,2),e.bytes(2)===String.fromCharCode(0,0)){e.getBytes(2),t-=2;break}i=e.length(),f.push(Ri(e,t,r+1,n)),t-=i-e.length()}else for(;c>0;)i=e.length(),f.push(Ri(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&&(A0(e,t,1),y=e.getByte(),t--),y===0)try{i=e.length();var g={strict:!0,decodeBitStrings:!0},m=Ri(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)A0(e,t,2),f+=String.fromCharCode(e.getInt16()),t-=2;else f=e.getBytes(c),t-=c}var _=l===void 0?null:{bitStringContents:l};return O.create(s,a,p,f,_)}O.toDer=function(e){var t=wt.util.createBuffer(),r=e.tagClass|e.type,n=wt.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=wt.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=wt.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=wt.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=wt.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&&wt.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 E4=/[^\\u0000-\\u00ff]/;O.prettyPrint=function(e,t,r){var n="";t=t||0,r=r||2,t>0&&(n+=`
6
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+=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,bt.pki&&bt.pki.oids&&c in bt.pki.oids&&(n+=" ("+bt.pki.oids[c]+") ")}if(e.type===O.Type.INTEGER)try{n+=O.derToInteger(e.value)}catch{n+="0x"+bt.util.bytesToHex(e.value)}else if(e.type===O.Type.BITSTRING){if(e.value.length>1?n+="0x"+bt.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)P4.test(e.value)||(n+="("+e.value+") "),n+="0x"+bt.util.bytesToHex(e.value);else if(e.type===O.Type.UTF8)try{n+=bt.util.decodeUtf8(e.value)}catch(f){if(f.message==="URI malformed")n+="0x"+bt.util.bytesToHex(e.value)+" (malformed UTF8)";else throw f}else e.type===O.Type.PRINTABLESTRING||e.type===O.Type.IA5String?n+=e.value:P4.test(e.value)?n+="0x"+bt.util.bytesToHex(e.value):e.value.length===0?n+="[null]":n+=e.value}return n}});var D4=H((Mv,k4)=>{var It=ht();cs();fs();Ut();k4.exports=It.des=It.des||{};It.des.startEncrypting=function(e,t,r,n){var i=Pi({key:e,output:r,decrypt:!1,mode:n||(t===null?"ECB":"CBC")});return i.start(t),i};It.des.createEncryptionCipher=function(e,t){return Pi({key:e,output:null,decrypt:!1,mode:t})};It.des.startDecrypting=function(e,t,r,n){var i=Pi({key:e,output:r,decrypt:!0,mode:n||(t===null?"ECB":"CBC")});return i.start(t),i};It.des.createDecryptionCipher=function(e,t){return Pi({key:e,output:null,decrypt:!0,mode:t})};It.des.Algorithm=function(e,t){var r=this;r.name=e,r.mode=new t({blockSize:8,cipher:{encrypt:function(n,i){return N4(r._keys,n,i,!1)},decrypt:function(n,i){return N4(r._keys,n,i,!0)}}}),r._init=!1};It.des.Algorithm.prototype.initialize=function(e){if(!this._init){var t=It.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=rl(t),this._init=!0}};$e("DES-ECB",It.cipher.modes.ecb);$e("DES-CBC",It.cipher.modes.cbc);$e("DES-CFB",It.cipher.modes.cfb);$e("DES-OFB",It.cipher.modes.ofb);$e("DES-CTR",It.cipher.modes.ctr);$e("3DES-ECB",It.cipher.modes.ecb);$e("3DES-CBC",It.cipher.modes.cbc);$e("3DES-CFB",It.cipher.modes.cfb);$e("3DES-OFB",It.cipher.modes.ofb);$e("3DES-CTR",It.cipher.modes.ctr);function $e(e,t){var r=function(){return new It.des.Algorithm(e,t)};It.cipher.registerAlgorithm(e,r)}var Yf=[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],Wf=[-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],Zf=[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],Xf=[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],jf=[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],Jf=[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],tl=[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],el=[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 rl(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,B=0;B<y;B++){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],Q=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=(Q>>>16^N)&65535,g[x++]=N^v,g[x++]=Q^v<<16}}return g}function N4(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^(Wf[d>>>24&63]|Xf[d>>>16&63]|Jf[d>>>8&63]|el[d&63]|Yf[h>>>24&63]|Zf[h>>>16&63]|jf[h>>>8&63]|tl[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 Pi(e){e=e||{};var t=(e.mode||"CBC").toUpperCase(),r="DES-"+t,n;e.decrypt?n=It.cipher.createDecipher(r,e.key):n=It.cipher.createCipher(r,e.key);var i=n.start;return n.start=function(o,s){var a=null;s instanceof It.util.ByteBuffer&&(a=s,s={}),s=s||{},s.output=a,s.iv=o,i.call(n,s)},n}});var rn=H((Kv,O4)=>{var Li=ht();O4.exports=Li.md=Li.md||{};Li.md.algorithms=Li.md.algorithms||{}});var F4=H((qv,U4)=>{var sr=ht();rn();Ut();var nl=U4.exports=sr.hmac=sr.hmac||{};nl.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 sr.md.algorithms)t=sr.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=sr.util.createBuffer(s);else if(sr.util.isArray(s)){var a=s;s=sr.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=sr.util.createBuffer(),n=sr.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 Ni=H(()=>{});var ys=H((Hv,M4)=>{var se=ht();F4();rn();Ut();var il=se.pkcs5=se.pkcs5||{},ar;se.util.isNodejs&&!se.options.usePureJavaScript&&(ar=Ni());M4.exports=se.pbkdf2=il.pbkdf2=function(e,t,r,n,i,o){if(typeof i=="function"&&(o=i,i=null),se.util.isNodejs&&!se.options.usePureJavaScript&&ar.pbkdf2&&(i===null||typeof i!="object")&&(ar.pbkdf2Sync.length>4||!i||i==="sha1"))return typeof i!="string"&&(i="sha1"),e=Buffer.from(e,"binary"),t=Buffer.from(t,"binary"),o?ar.pbkdf2Sync.length===4?ar.pbkdf2(e,t,r,n,function(v,B){if(v)return o(v);o(null,B.toString("binary"))}):ar.pbkdf2(e,t,r,n,i,function(v,B){if(v)return o(v);o(null,B.toString("binary"))}):ar.pbkdf2Sync.length===4?ar.pbkdf2Sync(e,t,r,n).toString("binary"):ar.pbkdf2Sync(e,t,r,n,i).toString("binary");if((typeof i>"u"||i===null)&&(i="sha1"),typeof i=="string"){if(!(i in se.md.algorithms))throw new Error("Unknown hash algorithm: "+i);i=se.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=se.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(se.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=se.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(se.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=se.util.xorBytes(p,d,s),h=d,++g,se.util.setImmediate(x);l+=y<c?p:p.substr(0,u),++y,m()}m()}});var V4=H(($v,q4)=>{var Di=ht();Ut();var K4=q4.exports=Di.pem=Di.pem||{};K4.encode=function(e,t){t=t||{};var r="-----BEGIN "+e.type+`-----\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,wt.pki&&wt.pki.oids&&c in wt.pki.oids&&(n+=" ("+wt.pki.oids[c]+") ")}if(e.type===O.Type.INTEGER)try{n+=O.derToInteger(e.value)}catch{n+="0x"+wt.util.bytesToHex(e.value)}else if(e.type===O.Type.BITSTRING){if(e.value.length>1?n+="0x"+wt.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)E4.test(e.value)||(n+="("+e.value+") "),n+="0x"+wt.util.bytesToHex(e.value);else if(e.type===O.Type.UTF8)try{n+=wt.util.decodeUtf8(e.value)}catch(f){if(f.message==="URI malformed")n+="0x"+wt.util.bytesToHex(e.value)+" (malformed UTF8)";else throw f}else e.type===O.Type.PRINTABLESTRING||e.type===O.Type.IA5String?n+=e.value:E4.test(e.value)?n+="0x"+wt.util.bytesToHex(e.value):e.value.length===0?n+="[null]":n+=e.value}return n}});var _4=G((iv,A4)=>{var At=dt();fs();hs();Ft();A4.exports=At.des=At.des||{};At.des.startEncrypting=function(e,t,r,n){var i=Pi({key:e,output:r,decrypt:!1,mode:n||(t===null?"ECB":"CBC")});return i.start(t),i};At.des.createEncryptionCipher=function(e,t){return Pi({key:e,output:null,decrypt:!1,mode:t})};At.des.startDecrypting=function(e,t,r,n){var i=Pi({key:e,output:r,decrypt:!0,mode:n||(t===null?"ECB":"CBC")});return i.start(t),i};At.des.createDecryptionCipher=function(e,t){return Pi({key:e,output:null,decrypt:!0,mode:t})};At.des.Algorithm=function(e,t){var r=this;r.name=e,r.mode=new t({blockSize:8,cipher:{encrypt:function(n,i){return I4(r._keys,n,i,!1)},decrypt:function(n,i){return I4(r._keys,n,i,!0)}}}),r._init=!1};At.des.Algorithm.prototype.initialize=function(e){if(!this._init){var t=At.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=Lf(t),this._init=!0}};We("DES-ECB",At.cipher.modes.ecb);We("DES-CBC",At.cipher.modes.cbc);We("DES-CFB",At.cipher.modes.cfb);We("DES-OFB",At.cipher.modes.ofb);We("DES-CTR",At.cipher.modes.ctr);We("3DES-ECB",At.cipher.modes.ecb);We("3DES-CBC",At.cipher.modes.cbc);We("3DES-CFB",At.cipher.modes.cfb);We("3DES-OFB",At.cipher.modes.ofb);We("3DES-CTR",At.cipher.modes.ctr);function We(e,t){var r=function(){return new At.des.Algorithm(e,t)};At.cipher.registerAlgorithm(e,r)}var If=[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],Af=[-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],_f=[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],Cf=[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],Bf=[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],Tf=[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],Rf=[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],Pf=[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 Lf(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,_=0;_<y;_++){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],Q=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=(Q>>>16^N)&65535,g[x++]=N^v,g[x++]=Q^v<<16}}return g}function I4(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^(Af[d>>>24&63]|Cf[d>>>16&63]|Tf[d>>>8&63]|Pf[d&63]|If[h>>>24&63]|_f[h>>>16&63]|Bf[h>>>8&63]|Rf[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 Pi(e){e=e||{};var t=(e.mode||"CBC").toUpperCase(),r="DES-"+t,n;e.decrypt?n=At.cipher.createDecipher(r,e.key):n=At.cipher.createCipher(r,e.key);var i=n.start;return n.start=function(o,s){var a=null;s instanceof At.util.ByteBuffer&&(a=s,s={}),s=s||{},s.output=a,s.iv=o,i.call(n,s)},n}});var sn=G((ov,C4)=>{var Li=dt();C4.exports=Li.md=Li.md||{};Li.md.algorithms=Li.md.algorithms||{}});var T4=G((sv,B4)=>{var fr=dt();sn();Ft();var Nf=B4.exports=fr.hmac=fr.hmac||{};Nf.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 fr.md.algorithms)t=fr.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=fr.util.createBuffer(s);else if(fr.util.isArray(s)){var a=s;s=fr.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=fr.util.createBuffer(),n=fr.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 Ni=G(()=>{});var ms=G((uv,R4)=>{var ce=dt();T4();sn();Ft();var kf=ce.pkcs5=ce.pkcs5||{},lr;ce.util.isNodejs&&!ce.options.usePureJavaScript&&(lr=Ni());R4.exports=ce.pbkdf2=kf.pbkdf2=function(e,t,r,n,i,o){if(typeof i=="function"&&(o=i,i=null),ce.util.isNodejs&&!ce.options.usePureJavaScript&&lr.pbkdf2&&(i===null||typeof i!="object")&&(lr.pbkdf2Sync.length>4||!i||i==="sha1"))return typeof i!="string"&&(i="sha1"),e=Buffer.from(e,"binary"),t=Buffer.from(t,"binary"),o?lr.pbkdf2Sync.length===4?lr.pbkdf2(e,t,r,n,function(v,_){if(v)return o(v);o(null,_.toString("binary"))}):lr.pbkdf2(e,t,r,n,i,function(v,_){if(v)return o(v);o(null,_.toString("binary"))}):lr.pbkdf2Sync.length===4?lr.pbkdf2Sync(e,t,r,n).toString("binary"):lr.pbkdf2Sync(e,t,r,n,i).toString("binary");if((typeof i>"u"||i===null)&&(i="sha1"),typeof i=="string"){if(!(i in ce.md.algorithms))throw new Error("Unknown hash algorithm: "+i);i=ce.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=ce.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(ce.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=ce.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(ce.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=ce.util.xorBytes(p,d,s),h=d,++g,ce.util.setImmediate(x);l+=y<c?p:p.substr(0,u),++y,m()}m()}});var N4=G((fv,L4)=>{var Di=dt();Ft();var P4=L4.exports=Di.pem=Di.pem||{};P4.encode=function(e,t){t=t||{};var r="-----BEGIN "+e.type+`-----\r
9
9
  `,n;if(e.procType&&(n={name:"Proc-Type",values:[String(e.procType.version),e.procType.type]},r+=ki(n)),e.contentDomain&&(n={name:"Content-Domain",values:[e.contentDomain]},r+=ki(n)),e.dekInfo&&(n={name:"DEK-Info",values:[e.dekInfo.algorithm]},e.dekInfo.parameters&&n.values.push(e.dekInfo.parameters),r+=ki(n)),e.headers)for(var i=0;i<e.headers.length;++i)r+=ki(e.headers[i]);return e.procType&&(r+=`\r
10
10
  `),r+=Di.util.encode64(e.body,t.maxline||64)+`\r
11
11
  `,r+="-----END "+e.type+`-----\r
12
- `,r};K4.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:Di.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(ol(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 ki(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
12
+ `,r};P4.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:Di.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(Df(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 ki(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 ol(e){return e.replace(/^\s+/,"")}});var Y4=H((Gv,Q4)=>{var Ge=ht();rn();Ut();var H4=Q4.exports=Ge.sha256=Ge.sha256||{};Ge.md.sha256=Ge.md.algorithms.sha256=H4;H4.create=function(){$4||sl();var e=null,t=Ge.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=Ge.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=Ge.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),z4(e,r,t),(t.read>2048||t.length()===0)&&t.compact(),n},n.digest=function(){var i=Ge.util.createBuffer();i.putBytes(t.bytes());var o=n.fullMessageLength[n.fullMessageLength.length-1]+n.messageLengthSize,s=o&n.blockLength-1;i.putBytes(gs.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};z4(l,r,i);var p=Ge.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 gs=null,$4=!1,G4=null;function sl(){gs=String.fromCharCode(128),gs+=Ge.util.fillString(String.fromCharCode(0),64),G4=[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],$4=!0}function z4(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+G4[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 Z4=H((Qv,W4)=>{var Qe=ht();Ut();var Oi=null;Qe.util.isNodejs&&!Qe.options.usePureJavaScript&&!process.versions["node-webkit"]&&(Oi=Ni());var al=W4.exports=Qe.prng=Qe.prng||{};al.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=Qe.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 Qe.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)),Qe.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=Qe.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=Qe.util.globalScope,p=l.crypto||l.msCrypto;p&&p.getRandomValues&&(f=function(E){return p.getRandomValues(E)});var d=Qe.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,B=Math.floor(Math.random()*65536);d.length()<u;){x=16807*(B&65535),m=16807*(B>>16),x+=(m&32767)<<16,x+=m>>15,x=(x&2147483647)+(x>>31),B=x&4294967295;for(var g=0;g<3;++g)v=B>>>(g<<3),v^=Math.floor(Math.random()*256),d.putByte(v&255)}return d.getBytes(u)}return Oi?(t.seedFile=function(u,f){Oi.randomBytes(u,function(l,p){if(l)return f(l);f(null,p.toString())})},t.seedFileSync=function(u){return Oi.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 A0=H((Yv,ms)=>{var Yt=ht();Ci();Y4();Z4();Ut();(function(){if(Yt.random&&Yt.random.getBytes){ms.exports=Yt.random;return}(function(e){var t={},r=new Array(4),n=Yt.util.createBuffer();t.formatKey=function(l){var p=Yt.util.createBuffer(l);return l=new Array(4),l[0]=p.getInt32(),l[1]=p.getInt32(),l[2]=p.getInt32(),l[3]=p.getInt32(),Yt.aes._expandKey(l,!1)},t.formatSeed=function(l){var p=Yt.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 Yt.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=Yt.md.sha256;function i(){var l=Yt.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=Yt.util.globalScope,c=a.crypto||a.msCrypto;if(c&&c.getRandomValues&&(s=function(l){return c.getRandomValues(l)}),Yt.options.usePureJavaScript||!Yt.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(!Yt.random)Yt.random=o;else for(var f in o)Yt.random[f]=o[f];Yt.random.createInstance=i,ms.exports=Yt.random})(typeof jQuery<"u"?jQuery:null)})()});var tc=H((Wv,J4)=>{var ce=ht();Ut();var xs=[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],X4=[1,2,3,5],cl=function(e,t){return e<<t&65535|(e&65535)>>16-t},ul=function(e,t){return(e&65535)>>t|e<<16-t&65535};J4.exports=ce.rc2=ce.rc2||{};ce.rc2.expandKey=function(e,t){typeof e=="string"&&(e=ce.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(xs[r.at(a-1)+r.at(a-n)&255]);for(r.setAt(128-o,xs[r.at(128-o)&s]),a=127-o;a>=0;a--)r.setAt(a,xs[r.at(a+1)^r.at(a+o)]);return r};var j4=function(e,t,r){var n=!1,i=null,o=null,s=null,a,c,u,f,l=[];for(e=ce.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]=cl(h[u],X4[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]=ul(h[u],X4[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=ce.util.createBuffer(h)),n=!1,i=ce.util.createBuffer(),o=y||new ce.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};ce.rc2.startEncrypting=function(e,t,r){var n=ce.rc2.createEncryptionCipher(e,128);return n.start(t,r),n};ce.rc2.createEncryptionCipher=function(e,t){return j4(e,t,!0)};ce.rc2.startDecrypting=function(e,t,r){var n=ce.rc2.createDecryptionCipher(e,128);return n.start(t,r),n};ce.rc2.createDecryptionCipher=function(e,t){return j4(e,t,!1)}});var Mi=H((Zv,cc)=>{var vs=ht();cc.exports=vs.jsbn=vs.jsbn||{};var cr,fl=0xdeadbeefcafe,ec=(fl&16777215)==15715070;function _(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))}vs.jsbn.BigInteger=_;function at(){return new _(null)}function ll(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 hl(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 rc(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"?(_.prototype.am=rc,cr=28):ec&&navigator.appName=="Microsoft Internet Explorer"?(_.prototype.am=hl,cr=30):ec&&navigator.appName!="Netscape"?(_.prototype.am=ll,cr=26):(_.prototype.am=rc,cr=28);_.prototype.DB=cr;_.prototype.DM=(1<<cr)-1;_.prototype.DV=1<<cr;var bs=52;_.prototype.FV=Math.pow(2,bs);_.prototype.F1=bs-cr;_.prototype.F2=2*cr-bs;var dl="0123456789abcdefghijklmnopqrstuvwxyz",Ui=new Array,Hn,me;Hn="0".charCodeAt(0);for(me=0;me<=9;++me)Ui[Hn++]=me;Hn="a".charCodeAt(0);for(me=10;me<36;++me)Ui[Hn++]=me;Hn="A".charCodeAt(0);for(me=10;me<36;++me)Ui[Hn++]=me;function nc(e){return dl.charAt(e)}function ic(e,t){var r=Ui[e.charCodeAt(t)];return r??-1}function pl(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 yl(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 Pr(e){var t=at();return t.fromInt(e),t}function gl(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:ic(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&&_.ZERO.subTo(this,this)}function ml(){for(var e=this.s&this.DM;this.t>0&&this.data[this.t-1]==e;)--this.t}function xl(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=nc(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+=nc(n));return i?o:"0"}function vl(){var e=at();return _.ZERO.subTo(this,e),e}function bl(){return this.s<0?this.negate():this}function wl(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 Fi(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 El(){return this.t<=0?0:this.DB*(this.t-1)+Fi(this.data[this.t-1]^this.s&this.DM)}function Sl(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 Il(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 Al(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 Bl(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 _l(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 Cl(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&&_.ZERO.subTo(t,t)}function Tl(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 Rl(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=at());var o=at(),s=this.s,a=e.s,c=this.DB-Fi(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??at();for(o.dlShiftTo(g,m),r.compareTo(m)>=0&&(r.data[r.t++]=1,r.subTo(m,r)),_.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&&_.ZERO.subTo(t,t)),r.t=u,r.clamp(),c>0&&r.rShiftTo(c,r),s<0&&_.ZERO.subTo(r,r)}}}function Pl(e){var t=at();return this.abs().divRemTo(e,null,t),this.s<0&&t.compareTo(_.ZERO)>0&&e.subTo(t,t),t}function nn(e){this.m=e}function Ll(e){return e.s<0||e.compareTo(this.m)>=0?e.mod(this.m):e}function Nl(e){return e}function kl(e){e.divRemTo(this.m,null,e)}function Dl(e,t,r){e.multiplyTo(t,r),this.reduce(r)}function Ol(e,t){e.squareTo(t),this.reduce(t)}nn.prototype.convert=Ll;nn.prototype.revert=Nl;nn.prototype.reduce=kl;nn.prototype.mulTo=Dl;nn.prototype.sqrTo=Ol;function Ul(){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 on(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 Fl(e){var t=at();return e.abs().dlShiftTo(this.m.t,t),t.divRemTo(this.m,null,t),e.s<0&&t.compareTo(_.ZERO)>0&&this.m.subTo(t,t),t}function Ml(e){var t=at();return e.copyTo(t),this.reduce(t),t}function Kl(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 ql(e,t){e.squareTo(t),this.reduce(t)}function Vl(e,t,r){e.multiplyTo(t,r),this.reduce(r)}on.prototype.convert=Fl;on.prototype.revert=Ml;on.prototype.reduce=Kl;on.prototype.mulTo=Vl;on.prototype.sqrTo=ql;function zl(){return(this.t>0?this.data[0]&1:this.s)==0}function Hl(e,t){if(e>4294967295||e<1)return _.ONE;var r=at(),n=at(),i=t.convert(this),o=Fi(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 $l(e,t){var r;return e<256||t.isEven()?r=new nn(t):r=new on(t),this.exp(e,r)}_.prototype.copyTo=pl;_.prototype.fromInt=yl;_.prototype.fromString=gl;_.prototype.clamp=ml;_.prototype.dlShiftTo=Sl;_.prototype.drShiftTo=Il;_.prototype.lShiftTo=Al;_.prototype.rShiftTo=Bl;_.prototype.subTo=_l;_.prototype.multiplyTo=Cl;_.prototype.squareTo=Tl;_.prototype.divRemTo=Rl;_.prototype.invDigit=Ul;_.prototype.isEven=zl;_.prototype.exp=Hl;_.prototype.toString=xl;_.prototype.negate=vl;_.prototype.abs=bl;_.prototype.compareTo=wl;_.prototype.bitLength=El;_.prototype.mod=Pl;_.prototype.modPowInt=$l;_.ZERO=Pr(0);_.ONE=Pr(1);function Gl(){var e=at();return this.copyTo(e),e}function Ql(){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 Yl(){return this.t==0?this.s:this.data[0]<<24>>24}function Wl(){return this.t==0?this.s:this.data[0]<<16>>16}function Zl(e){return Math.floor(Math.LN2*this.DB/Math.log(e))}function Xl(){return this.s<0?-1:this.t<=0||this.t==1&&this.data[0]<=0?0:1}function jl(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=Pr(r),i=at(),o=at(),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 Jl(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=ic(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&&_.ZERO.subTo(this,this)}function t7(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(_.ONE.shiftLeft(e-1),ws,this),this.isEven()&&this.dAddOffset(1,0);!this.isProbablePrime(t);)this.dAddOffset(2,0),this.bitLength()>e&&this.subTo(_.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 e7(){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 r7(e){return this.compareTo(e)==0}function n7(e){return this.compareTo(e)<0?this:e}function i7(e){return this.compareTo(e)>0?this:e}function o7(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 s7(e,t){return e&t}function a7(e){var t=at();return this.bitwiseTo(e,s7,t),t}function ws(e,t){return e|t}function c7(e){var t=at();return this.bitwiseTo(e,ws,t),t}function oc(e,t){return e^t}function u7(e){var t=at();return this.bitwiseTo(e,oc,t),t}function sc(e,t){return e&~t}function f7(e){var t=at();return this.bitwiseTo(e,sc,t),t}function l7(){for(var e=at(),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 h7(e){var t=at();return e<0?this.rShiftTo(-e,t):this.lShiftTo(e,t),t}function d7(e){var t=at();return e<0?this.lShiftTo(-e,t):this.rShiftTo(e,t),t}function p7(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 y7(){for(var e=0;e<this.t;++e)if(this.data[e]!=0)return e*this.DB+p7(this.data[e]);return this.s<0?this.t*this.DB:-1}function g7(e){for(var t=0;e!=0;)e&=e-1,++t;return t}function m7(){for(var e=0,t=this.s&this.DM,r=0;r<this.t;++r)e+=g7(this.data[r]^t);return e}function x7(e){var t=Math.floor(e/this.DB);return t>=this.t?this.s!=0:(this.data[t]&1<<e%this.DB)!=0}function v7(e,t){var r=_.ONE.shiftLeft(e);return this.bitwiseTo(r,t,r),r}function b7(e){return this.changeBit(e,ws)}function w7(e){return this.changeBit(e,sc)}function E7(e){return this.changeBit(e,oc)}function S7(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 I7(e){var t=at();return this.addTo(e,t),t}function A7(e){var t=at();return this.subTo(e,t),t}function B7(e){var t=at();return this.multiplyTo(e,t),t}function _7(e){var t=at();return this.divRemTo(e,t,null),t}function C7(e){var t=at();return this.divRemTo(e,null,t),t}function T7(e){var t=at(),r=at();return this.divRemTo(e,t,r),new Array(t,r)}function R7(e){this.data[this.t]=this.am(0,e-1,this,0,0,this.t),++this.t,this.clamp()}function P7(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 B0(){}function ac(e){return e}function L7(e,t,r){e.multiplyTo(t,r)}function N7(e,t){e.squareTo(t)}B0.prototype.convert=ac;B0.prototype.revert=ac;B0.prototype.mulTo=L7;B0.prototype.sqrTo=N7;function k7(e){return this.exp(e,new B0)}function D7(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 O7(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 $n(e){this.r2=at(),this.q3=at(),_.ONE.dlShiftTo(2*e.t,this.r2),this.mu=this.r2.divide(e),this.m=e}function U7(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=at();return e.copyTo(t),this.reduce(t),t}function F7(e){return e}function M7(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 K7(e,t){e.squareTo(t),this.reduce(t)}function q7(e,t,r){e.multiplyTo(t,r),this.reduce(r)}$n.prototype.convert=U7;$n.prototype.revert=F7;$n.prototype.reduce=M7;$n.prototype.mulTo=q7;$n.prototype.sqrTo=K7;function V7(e,t){var r=e.bitLength(),n,i=Pr(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 nn(t):t.isEven()?o=new $n(t):o=new on(t);var s=new Array,a=3,c=n-1,u=(1<<n)-1;if(s[1]=o.convert(this),n>1){var f=at();for(o.sqrTo(s[1],f);a<=u;)s[a]=at(),o.mulTo(f,s[a-2],s[a]),a+=2}var l=e.t-1,p,d=!0,h=at(),y;for(r=Fi(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 z7(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 H7(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 $7(e){var t=e.isEven();if(this.isEven()&&t||e.signum()==0)return _.ZERO;for(var r=e.clone(),n=this.clone(),i=Pr(1),o=Pr(0),s=Pr(0),a=Pr(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(_.ONE)!=0)return _.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 Te=[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],G7=(1<<26)/Te[Te.length-1];function Q7(e){var t,r=this.abs();if(r.t==1&&r.data[0]<=Te[Te.length-1]){for(t=0;t<Te.length;++t)if(r.data[0]==Te[t])return!0;return!1}if(r.isEven())return!1;for(t=1;t<Te.length;){for(var n=Te[t],i=t+1;i<Te.length&&n<G7;)n*=Te[i++];for(n=r.modInt(n);t<i;)if(n%Te[t++]==0)return!1}return r.millerRabin(e)}function Y7(e){var t=this.subtract(_.ONE),r=t.getLowestSetBit();if(r<=0)return!1;for(var n=t.shiftRight(r),i=W7(),o,s=0;s<e;++s){do o=new _(this.bitLength(),i);while(o.compareTo(_.ONE)<=0||o.compareTo(t)>=0);var a=o.modPow(n,this);if(a.compareTo(_.ONE)!=0&&a.compareTo(t)!=0){for(var c=1;c++<r&&a.compareTo(t)!=0;)if(a=a.modPowInt(2,this),a.compareTo(_.ONE)==0)return!1;if(a.compareTo(t)!=0)return!1}}return!0}function W7(){return{nextBytes:function(e){for(var t=0;t<e.length;++t)e[t]=Math.floor(Math.random()*256)}}}_.prototype.chunkSize=Zl;_.prototype.toRadix=jl;_.prototype.fromRadix=Jl;_.prototype.fromNumber=t7;_.prototype.bitwiseTo=o7;_.prototype.changeBit=v7;_.prototype.addTo=S7;_.prototype.dMultiply=R7;_.prototype.dAddOffset=P7;_.prototype.multiplyLowerTo=D7;_.prototype.multiplyUpperTo=O7;_.prototype.modInt=H7;_.prototype.millerRabin=Y7;_.prototype.clone=Gl;_.prototype.intValue=Ql;_.prototype.byteValue=Yl;_.prototype.shortValue=Wl;_.prototype.signum=Xl;_.prototype.toByteArray=e7;_.prototype.equals=r7;_.prototype.min=n7;_.prototype.max=i7;_.prototype.and=a7;_.prototype.or=c7;_.prototype.xor=u7;_.prototype.andNot=f7;_.prototype.not=l7;_.prototype.shiftLeft=h7;_.prototype.shiftRight=d7;_.prototype.getLowestSetBit=y7;_.prototype.bitCount=m7;_.prototype.testBit=x7;_.prototype.setBit=b7;_.prototype.clearBit=w7;_.prototype.flipBit=E7;_.prototype.add=I7;_.prototype.subtract=A7;_.prototype.multiply=B7;_.prototype.divide=_7;_.prototype.remainder=C7;_.prototype.divideAndRemainder=T7;_.prototype.modPow=V7;_.prototype.modInverse=$7;_.prototype.pow=k7;_.prototype.gcd=z7;_.prototype.isProbablePrime=Q7});var dc=H((Xv,hc)=>{var Ye=ht();rn();Ut();var fc=hc.exports=Ye.sha1=Ye.sha1||{};Ye.md.sha1=Ye.md.algorithms.sha1=fc;fc.create=function(){lc||Z7();var e=null,t=Ye.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=Ye.util.createBuffer(),e={h0:1732584193,h1:4023233417,h2:2562383102,h3:271733878,h4:3285377520},n},n.start(),n.update=function(i,o){o==="utf8"&&(i=Ye.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),uc(e,r,t),(t.read>2048||t.length()===0)&&t.compact(),n},n.digest=function(){var i=Ye.util.createBuffer();i.putBytes(t.bytes());var o=n.fullMessageLength[n.fullMessageLength.length-1]+n.messageLengthSize,s=o&n.blockLength-1;i.putBytes(Es.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};uc(l,r,i);var p=Ye.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 Es=null,lc=!1;function Z7(){Es=String.fromCharCode(128),Es+=Ye.util.fillString(String.fromCharCode(0),64),lc=!0}function uc(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 gc=H((jv,yc)=>{var We=ht();Ut();A0();dc();var pc=yc.exports=We.pkcs1=We.pkcs1||{};pc.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=We.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=We.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=Ki(i,a-o.digestLength-1,s),g=We.util.xorBytes(h,y,h.length),m=Ki(g,o.digestLength,s),x=We.util.xorBytes(i,m,i.length);return"\0"+x+g};pc.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=We.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=Ki(f,i.digestLength,o),p=We.util.xorBytes(u,l,u.length),d=Ki(p,s-i.digestLength-1,o),h=We.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,B=i.digestLength;B<h.length;B++){var E=h.charCodeAt(B),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 Ki(e,t,r){r||(r=We.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 mc=H((Jv,Ss)=>{var Lr=ht();Ut();Mi();A0();(function(){if(Lr.prime){Ss.exports=Lr.prime;return}var e=Ss.exports=Lr.prime=Lr.prime||{},t=Lr.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||Lr.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);Lr.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 Lr.util.estimateCores(function(E,S){E&&(S=2),g=S-1,B()});B();function B(){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",Q);var N=!1;function Q(Y){if(!N){--L;var z=Y.data;if(z.found){for(var et=0;et<E.length;++et)E[et].terminate();return N=!0,h(null,new t(z.prime,16))}y.bitLength()>l&&(y=u(l,p));var dt=y.toString(16);Y.target.postMessage({hex:dt,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 Vi=H((tb,Ic)=>{var V=ht();I0();Mi();Ti();gc();mc();A0();Ut();typeof it>"u"&&(it=V.jsbn.BigInteger);var it,Is=V.util.isNodejs?Ni():null,w=V.asn1,xe=V.util;V.pki=V.pki||{};Ic.exports=V.pki.rsa=V.rsa=V.rsa||{};var W=V.pki,X7=[6,4,2,4,2,4,6,2],j7={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"}]},J7={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"}]},t9={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"}]},e9=V.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"}]}]},r9={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"}]},n9=function(e){var t;if(e.algorithm in W.oids)t=W.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()},Ec=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(it.ONE))),t.dQ||(t.dQ=t.d.mod(t.q.subtract(it.ONE))),t.qInv||(t.qInv=t.q.modInverse(t.p));var n;do n=new it(V.util.bytesToHex(V.random.getBytes(t.n.bitLength()/8)),16);while(n.compareTo(t.n)>=0||!n.gcd(t.n).equals(it.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};W.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=Sc(e,t,r)):(i=V.util.createBuffer(),i.putBytes(e));for(var s=new it(i.toHex(),16),a=Ec(s,t,n),c=a.toString(16),u=V.util.createBuffer(),f=o-Math.ceil(c.length/2);f>0;)u.putByte(0),--f;return u.putBytes(V.util.hexToBytes(c)),u.getBytes()};W.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 it(V.util.createBuffer(e).toHex(),16);if(s.compareTo(t.n)>=0)throw new Error("Encrypted message is invalid.");for(var a=Ec(s,t,r),c=a.toString(16),u=V.util.createBuffer(),f=i-Math.ceil(c.length/2);f>0;)u.putByte(0),--f;return u.putBytes(V.util.hexToBytes(c)),n!==!1?qi(u.getBytes(),t,r):u.getBytes()};W.rsa.createKeyPairGenerationState=function(e,t,r){typeof e=="string"&&(e=parseInt(e,10)),e=e||2048,r=r||{};var n=r.prng||V.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 it(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};W.rsa.stepKeyPairGenerationState=function(e,t){"algorithm"in e||(e.algorithm="PRIMEINC");var r=new it(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 it(c,e.rng),e.num.testBit(u)||e.num.bitwiseTo(it.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(o9(e.num.bitLength()))?++e.pqState:e.num.dAddOffset(X7[n++%8],0):e.pqState===2?e.pqState=e.num.subtract(it.ONE).gcd(e.e).compareTo(it.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(it.ONE),e.q1=e.q.subtract(it.ONE),e.phi=e.p1.multiply(e.q1),++e.state;else if(e.state===3)e.phi.gcd(e.e).compareTo(it.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:W.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:W.rsa.setPublicKey(e.n,e.e)}}s=+new Date,a+=s-o,o=s}return e.keys!==null};W.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),!V.options.usePureJavaScript&&!r.prng&&e>=256&&e<=16384&&(t===65537||t===3)){if(n){if(xc("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:W.privateKeyFromPem(u),publicKey:W.publicKeyFromPem(c)})});if(vc("generateKey")&&vc("exportKey"))return xe.globalScope.crypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:e,publicExponent:wc(t),hash:{name:"SHA-256"}},!0,["sign","verify"]).then(function(a){return xe.globalScope.crypto.subtle.exportKey("pkcs8",a.privateKey)}).then(void 0,function(a){n(a)}).then(function(a){if(a){var c=W.privateKeyFromAsn1(w.fromDer(V.util.createBuffer(a)));n(null,{privateKey:c,publicKey:W.setRsaPublicKey(c.n,c.e)})}});if(bc("generateKey")&&bc("exportKey")){var i=xe.globalScope.msCrypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:e,publicExponent:wc(t),hash:{name:"SHA-256"}},!0,["sign","verify"]);i.oncomplete=function(a){var c=a.target.result,u=xe.globalScope.msCrypto.subtle.exportKey("pkcs8",c.privateKey);u.oncomplete=function(f){var l=f.target.result,p=W.privateKeyFromAsn1(w.fromDer(V.util.createBuffer(l)));n(null,{privateKey:p,publicKey:W.setRsaPublicKey(p.n,p.e)})},u.onerror=function(f){n(f)}},i.onerror=function(a){n(a)};return}}else if(xc("generateKeyPairSync")){var o=Is.generateKeyPairSync("rsa",{modulusLength:e,publicExponent:t,publicKeyEncoding:{type:"spki",format:"pem"},privateKeyEncoding:{type:"pkcs8",format:"pem"}});return{privateKey:W.privateKeyFromPem(o.privateKey),publicKey:W.publicKeyFromPem(o.publicKey)}}}var s=W.rsa.createKeyPairGenerationState(e,t,r);if(!n)return W.rsa.stepKeyPairGenerationState(s,0),s.keys;i9(s,r,n)};W.setRsaPublicKey=W.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 Sc(a,c,2).getBytes()}};else if(i==="RSA-OAEP"||i==="RSAES-OAEP")i={encode:function(a,c){return V.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 W.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=qi(u,r,!0);var f=w.fromDer(u,{parseAllBytes:s._parseAllDigestBytes}),l={},p=[];if(!w.validate(f,r9,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===V.oids.md2||h===V.oids.md5||h===V.oids.sha1||h===V.oids.sha224||h===V.oids.sha256||h===V.oids.sha384||h===V.oids.sha512||h===V.oids["sha512-224"]||h===V.oids["sha512-256"])){var d=new Error("Unknown RSASSA-PKCS1-v1_5 DigestAlgorithm identifier.");throw d.oid=h,d}if((h===V.oids.md2||h===V.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=qi(u,r,!0),c===u}});var a=W.rsa.decrypt(i,r,!0,!1);return o.verify(n,a,r.n.bitLength())},r};W.setRsaPrivateKey=W.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=W.rsa.decrypt(u,c,!1,!1);if(f==="RSAES-PKCS1-V1_5")f={decode:qi};else if(f==="RSA-OAEP"||f==="RSAES-OAEP")f={decode:function(d,h){return V.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:n9},l=1):(f==="NONE"||f==="NULL"||f===null)&&(f={encode:function(){return u}},l=1);var p=f.encode(u,c.n.bitLength());return W.rsa.encrypt(p,c,l)},c};W.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(W.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())])};W.privateKeyFromAsn1=function(e){var t={},r=[];if(w.validate(e,j7,t,r)&&(e=w.fromDer(V.util.createBuffer(t.privateKey))),t={},r=[],!w.validate(e,J7,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=V.util.createBuffer(t.privateKeyModulus).toHex(),o=V.util.createBuffer(t.privateKeyPublicExponent).toHex(),s=V.util.createBuffer(t.privateKeyPrivateExponent).toHex(),a=V.util.createBuffer(t.privateKeyPrime1).toHex(),c=V.util.createBuffer(t.privateKeyPrime2).toHex(),u=V.util.createBuffer(t.privateKeyExponent1).toHex(),f=V.util.createBuffer(t.privateKeyExponent2).toHex(),l=V.util.createBuffer(t.privateKeyCoefficient).toHex(),W.setRsaPrivateKey(new it(i,16),new it(o,16),new it(s,16),new it(a,16),new it(c,16),new it(u,16),new it(f,16),new it(l,16))};W.privateKeyToAsn1=W.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,Ze(e.n)),w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,Ze(e.e)),w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,Ze(e.d)),w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,Ze(e.p)),w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,Ze(e.q)),w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,Ze(e.dP)),w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,Ze(e.dQ)),w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,Ze(e.qInv))])};W.publicKeyFromAsn1=function(e){var t={},r=[];if(w.validate(e,e9,t,r)){var n=w.derToOid(t.publicKeyOid);if(n!==W.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,t9,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=V.util.createBuffer(t.publicKeyModulus).toHex(),s=V.util.createBuffer(t.publicKeyExponent).toHex();return W.setRsaPublicKey(new it(o,16),new it(s,16))};W.publicKeyToAsn1=W.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(W.oids.rsaEncryption).getBytes()),w.create(w.Class.UNIVERSAL,w.Type.NULL,!1,"")]),w.create(w.Class.UNIVERSAL,w.Type.BITSTRING,!1,[W.publicKeyToRSAPublicKey(e)])])};W.publicKeyToRSAPublicKey=function(e){return w.create(w.Class.UNIVERSAL,w.Type.SEQUENCE,!0,[w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,Ze(e.n)),w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,Ze(e.e))])};function Sc(e,t,r){var n=V.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=V.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 qi(e,t,r,n){var i=Math.ceil(t.n.bitLength()/8),o=V.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 i9(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){V.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(it.ONE).gcd(e.e).compareTo(it.ONE)!==0){e.p=null,i();return}if(e.q.subtract(it.ONE).gcd(e.e).compareTo(it.ONE)!==0){e.q=null,o(e.qBits,s);return}if(e.p1=e.p.subtract(it.ONE),e.q1=e.q.subtract(it.ONE),e.phi=e.p1.multiply(e.q1),e.phi.gcd(e.e).compareTo(it.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:W.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:W.rsa.setPublicKey(e.n,e.e)},r(null,e.keys)}}function Ze(e){var t=e.toString(16);t[0]>="8"&&(t="00"+t);var r=V.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 o9(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 xc(e){return V.util.isNodejs&&typeof Is[e]=="function"}function vc(e){return typeof xe.globalScope<"u"&&typeof xe.globalScope.crypto=="object"&&typeof xe.globalScope.crypto.subtle=="object"&&typeof xe.globalScope.crypto.subtle[e]=="function"}function bc(e){return typeof xe.globalScope<"u"&&typeof xe.globalScope.msCrypto=="object"&&typeof xe.globalScope.msCrypto.subtle=="object"&&typeof xe.globalScope.msCrypto.subtle[e]=="function"}function wc(e){for(var t=V.util.hexToBytes(e.toString(16)),r=new Uint8Array(t.length),n=0;n<t.length;++n)r[n]=t.charCodeAt(n);return r}});var Rc=H((eb,Tc)=>{var U=ht();Ci();I0();D4();rn();Ti();ys();V4();A0();tc();Vi();Ut();typeof Ac>"u"&&(Ac=U.jsbn.BigInteger);var Ac,I=U.asn1,Z=U.pki=U.pki||{};Tc.exports=Z.pbe=U.pbe=U.pbe||{};var sn=Z.oids,s9={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"}]},a9={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"}]}]},c9={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"}]};Z.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=sn["aes128-CBC"],l=U.aes.createEncryptionCipher;break;case"aes192":s=24,u=16,f=sn["aes192-CBC"],l=U.aes.createEncryptionCipher;break;case"aes256":s=32,u=16,f=sn["aes256-CBC"],l=U.aes.createEncryptionCipher;break;case"des":s=8,u=8,f=sn.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=Cc(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=u9(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(sn.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(sn.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=Z.pbe.generatePkcs12Key(t,v,1,i,s),g=Z.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(sn["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 B=I.create(I.Class.UNIVERSAL,I.Type.SEQUENCE,!0,[a,I.create(I.Class.UNIVERSAL,I.Type.OCTETSTRING,!1,c)]);return B};Z.decryptPrivateKeyInfo=function(e,t){var r=null,n={},i=[];if(!I.validate(e,s9,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=Z.pbe.getCipher(s,n.encryptionParams,t),c=U.util.createBuffer(n.encryptedData);return a.update(c),a.finish()&&(r=I.fromDer(a.output)),r};Z.encryptedPrivateKeyToPem=function(e,t){var r={type:"ENCRYPTED PRIVATE KEY",body:I.toDer(e).getBytes()};return U.pem.encode(r,{maxline:t})};Z.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)};Z.encryptRsaPrivateKey=function(e,t,r){if(r=r||{},!r.legacy){var n=Z.wrapRsaPrivateKey(Z.privateKeyToAsn1(e));return n=Z.encryptPrivateKeyInfo(n,t,r),Z.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(Z.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)};Z.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=Z.decryptPrivateKeyInfo(I.fromDer(r),t):r=I.fromDer(r),r!==null&&(r=Z.privateKeyFromAsn1(r)),r};Z.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 B=Math.ceil(i/c),E=1;E<=B;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 Q=Math.ceil(d/u)+Math.ceil(p/u),Y=new U.util.ByteBuffer;for(s=0;s<Q;s++){var z=new U.util.ByteBuffer(v.getBytes(u)),et=511;for(a=N.length()-1;a>=0;a--)et=et>>8,et+=N.at(a)+z.at(a),z.setAt(a,et&255);Y.putBuffer(z)}v=Y,f.putBuffer(S)}return f.truncate(f.length()-i),f};Z.pbe.getCipher=function(e,t,r){switch(e){case Z.oids.pkcs5PBES2:return Z.pbe.getCipherForPBES2(e,t,r);case Z.oids["pbeWithSHAAnd3-KeyTripleDES-CBC"]:case Z.oids["pbewithSHAAnd40BitRC2-CBC"]:return Z.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}};Z.pbe.getCipherForPBES2=function(e,t,r){var n={},i=[];if(!I.validate(t,a9,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!==Z.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!==Z.oids["aes128-CBC"]&&e!==Z.oids["aes192-CBC"]&&e!==Z.oids["aes256-CBC"]&&e!==Z.oids["des-EDE3-CBC"]&&e!==Z.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(Z.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=_c(n.prfOid),l=U.pkcs5.pbkdf2(r,s,a,c,f),p=n.encIv,d=u(l);return d.start(p),d};Z.pbe.getCipherForPKCS12PBE=function(e,t,r){var n={},i=[];if(!I.validate(t,c9,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 Z.oids["pbeWithSHAAnd3-KeyTripleDES-CBC"]:c=24,u=8,f=U.des.startDecrypting;break;case Z.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=_c(n.prfOid),p=Z.pbe.generatePkcs12Key(r,s,1,a,c,l);l.start();var d=Z.pbe.generatePkcs12Key(r,s,2,a,u,l);return f(p,d)};Z.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=[Bc(n,e+t)],o=16,s=1;o<r;++s,o+=16)i.push(Bc(n,i[s-1]+e+t));return i.join("").substr(0,r)};function Bc(e,t){return e.start().update(t).digest().getBytes()}function _c(e){var t;if(!e)t="hmacWithSHA1";else if(t=Z.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 Cc(t)}function Cc(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 u9(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(Z.oids[n]).getBytes()),I.create(I.Class.UNIVERSAL,I.Type.NULL,!1,"")])),i}});var p5=H((Uw,d5)=>{var Et=ht();rn();Ut();var P0=d5.exports=Et.sha512=Et.sha512||{};Et.md.sha512=Et.md.algorithms.sha512=P0;var l5=Et.sha384=Et.sha512.sha384=Et.sha512.sha384||{};l5.create=function(){return P0.create("SHA-384")};Et.md.sha384=Et.md.algorithms.sha384=l5;Et.sha512.sha256=Et.sha512.sha256||{create:function(){return P0.create("SHA-512/256")}};Et.md["sha512/256"]=Et.md.algorithms["sha512/256"]=Et.sha512.sha256;Et.sha512.sha224=Et.sha512.sha224||{create:function(){return P0.create("SHA-512/224")}};Et.md["sha512/224"]=Et.md.algorithms["sha512/224"]=Et.sha512.sha224;P0.create=function(e){if(h5||Sh(),typeof e>"u"&&(e="SHA-512"),!(e in ln))throw new Error("Invalid SHA-512 algorithm: "+e);for(var t=ln[e],r=null,n=Et.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=Et.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=Et.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),f5(r,i,n),(n.read>2048||n.length()===0)&&n.compact(),a},a.digest=function(){var c=Et.util.createBuffer();c.putBytes(n.bytes());var u=a.fullMessageLength[a.fullMessageLength.length-1]+a.messageLengthSize,f=u&a.blockLength-1;c.putBytes(Gs.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);f5(y,i,c);var g=Et.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 Gs=null,h5=!1,Qs=null,ln=null;function Sh(){Gs=String.fromCharCode(128),Gs+=Et.util.fillString(String.fromCharCode(0),128),Qs=[[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]],ln={},ln["SHA-512"]=[[1779033703,4089235720],[3144134277,2227873595],[1013904242,4271175723],[2773480762,1595750129],[1359893119,2917565137],[2600822924,725511199],[528734635,4215389547],[1541459225,327033209]],ln["SHA-384"]=[[3418070365,3238371032],[1654270250,914150663],[2438529370,812702999],[355462360,4144912697],[1731405415,4290775857],[2394180231,1750603025],[3675008525,1694076839],[1203062813,3204075428]],ln["SHA-512/256"]=[[573645204,4230739756],[2673172387,3360449730],[596883563,1867755857],[2520282905,1497426621],[2519219938,2827943907],[3193839141,1401305490],[721525244,746961066],[246885852,2177182882]],ln["SHA-512/224"]=[[2352822216,424955298],[1944164710,2312950998],[502970286,855612546],[1738396948,1479516111],[258812777,2077511080],[2011393907,79989058],[1067287976,1780299464],[286451373,2446758561]],h5=!0}function f5(e,t,r){for(var n,i,o,s,a,c,u,f,l,p,d,h,y,g,m,x,v,B,E,S,L,N,Q,Y,z,et,dt,Wt,C,D,P,k,A,F,K,G=r.length();G>=128;){for(C=0;C<16;++C)t[C][0]=r.getInt32()>>>0,t[C][1]=r.getInt32()>>>0;for(;C<80;++C)k=t[C-2],D=k[0],P=k[1],n=((D>>>19|P<<13)^(P>>>29|D<<3)^D>>>6)>>>0,i=((D<<13|P>>>19)^(P<<3|D>>>29)^(D<<26|P>>>6))>>>0,F=t[C-15],D=F[0],P=F[1],o=((D>>>1|P<<31)^(D>>>8|P<<24)^D>>>7)>>>0,s=((D<<31|P>>>1)^(D<<24|P>>>8)^(D<<25|P>>>7))>>>0,A=t[C-7],K=t[C-16],P=i+A[1]+s+K[1],t[C][0]=n+A[0]+o+K[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],B=e[2][1],E=e[3][0],S=e[3][1],L=e[4][0],N=e[4][1],Q=e[5][0],Y=e[5][1],z=e[6][0],et=e[6][1],dt=e[7][0],Wt=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=(z^L&(Q^z))>>>0,p=(et^N&(Y^et))>>>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|B&(g^x))>>>0,P=Wt+f+p+Qs[C][1]+t[C][1],n=dt+u+l+Qs[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,dt=z,Wt=et,z=Q,et=Y,Q=L,Y=N,P=S+i,L=E+n+(P/4294967296>>>0)>>>0,N=P>>>0,E=v,S=B,v=m,B=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]+B,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]+Y,e[5][0]=e[5][0]+Q+(P/4294967296>>>0)>>>0,e[5][1]=P>>>0,P=e[6][1]+et,e[6][0]=e[6][0]+z+(P/4294967296>>>0)>>>0,e[6][1]=P>>>0,P=e[7][1]+Wt,e[7][0]=e[7][0]+dt+(P/4294967296>>>0)>>>0,e[7][1]=P>>>0,G-=128}}});var K5=H((ES,M5)=>{M5.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 V5=H((SS,o2)=>{"use strict";var nd=Object.prototype.hasOwnProperty,ae="~";function U0(){}Object.create&&(U0.prototype=Object.create(null),new U0().__proto__||(ae=!1));function id(e,t,r){this.fn=e,this.context=t,this.once=r||!1}function q5(e,t,r,n,i){if(typeof r!="function")throw new TypeError("The listener must be a function");var o=new id(r,n||e,i),s=ae?ae+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 d1(e,t){--e._eventsCount===0?e._events=new U0:delete e._events[t]}function re(){this._events=new U0,this._eventsCount=0}re.prototype.eventNames=function(){var t=[],r,n;if(this._eventsCount===0)return t;for(n in r=this._events)nd.call(r,n)&&t.push(ae?n.slice(1):n);return Object.getOwnPropertySymbols?t.concat(Object.getOwnPropertySymbols(r)):t};re.prototype.listeners=function(t){var r=ae?ae+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};re.prototype.listenerCount=function(t){var r=ae?ae+t:t,n=this._events[r];return n?n.fn?1:n.length:0};re.prototype.emit=function(t,r,n,i,o,s){var a=ae?ae+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};re.prototype.on=function(t,r,n){return q5(this,t,r,n,!1)};re.prototype.once=function(t,r,n){return q5(this,t,r,n,!0)};re.prototype.removeListener=function(t,r,n,i){var o=ae?ae+t:t;if(!this._events[o])return this;if(!r)return d1(this,o),this;var s=this._events[o];if(s.fn)s.fn===r&&(!i||s.once)&&(!n||s.context===n)&&d1(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:d1(this,o)}return this};re.prototype.removeAllListeners=function(t){var r;return t?(r=ae?ae+t:t,this._events[r]&&d1(this,r)):(this._events=new U0,this._eventsCount=0),this};re.prototype.off=re.prototype.removeListener;re.prototype.addListener=re.prototype.on;re.prefixed=ae;re.EventEmitter=re;typeof o2<"u"&&(o2.exports=re)});var d2=H((FS,h2)=>{"use strict";var e0=typeof Reflect=="object"?Reflect:null,e8=e0&&typeof e0.apply=="function"?e0.apply:function(t,r,n){return Function.prototype.apply.call(t,r,n)},S1;e0&&typeof e0.ownKeys=="function"?S1=e0.ownKeys:Object.getOwnPropertySymbols?S1=function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:S1=function(t){return Object.getOwnPropertyNames(t)};function fd(e){console&&console.warn&&console.warn(e)}var n8=Number.isNaN||function(t){return t!==t};function yt(){yt.init.call(this)}h2.exports=yt;h2.exports.once=pd;yt.EventEmitter=yt;yt.prototype._events=void 0;yt.prototype._eventsCount=0;yt.prototype._maxListeners=void 0;var r8=10;function I1(e){if(typeof e!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}Object.defineProperty(yt,"defaultMaxListeners",{enumerable:!0,get:function(){return r8},set:function(e){if(typeof e!="number"||e<0||n8(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");r8=e}});yt.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0};yt.prototype.setMaxListeners=function(t){if(typeof t!="number"||t<0||n8(t))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+t+".");return this._maxListeners=t,this};function i8(e){return e._maxListeners===void 0?yt.defaultMaxListeners:e._maxListeners}yt.prototype.getMaxListeners=function(){return i8(this)};yt.prototype.emit=function(t){for(var r=[],n=1;n<arguments.length;n++)r.push(arguments[n]);var i=t==="error",o=this._events;if(o!==void 0)i=i&&o.error===void 0;else if(!i)return!1;if(i){var s;if(r.length>0&&(s=r[0]),s instanceof Error)throw s;var a=new Error("Unhandled error."+(s?" ("+s.message+")":""));throw a.context=s,a}var c=o[t];if(c===void 0)return!1;if(typeof c=="function")e8(c,this,r);else for(var u=c.length,f=u8(c,u),n=0;n<u;++n)e8(f[n],this,r);return!0};function o8(e,t,r,n){var i,o,s;if(I1(r),o=e._events,o===void 0?(o=e._events=Object.create(null),e._eventsCount=0):(o.newListener!==void 0&&(e.emit("newListener",t,r.listener?r.listener:r),o=e._events),s=o[t]),s===void 0)s=o[t]=r,++e._eventsCount;else if(typeof s=="function"?s=o[t]=n?[r,s]:[s,r]:n?s.unshift(r):s.push(r),i=i8(e),i>0&&s.length>i&&!s.warned){s.warned=!0;var a=new Error("Possible EventEmitter memory leak detected. "+s.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");a.name="MaxListenersExceededWarning",a.emitter=e,a.type=t,a.count=s.length,fd(a)}return e}yt.prototype.addListener=function(t,r){return o8(this,t,r,!1)};yt.prototype.on=yt.prototype.addListener;yt.prototype.prependListener=function(t,r){return o8(this,t,r,!0)};function ld(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function s8(e,t,r){var n={fired:!1,wrapFn:void 0,target:e,type:t,listener:r},i=ld.bind(n);return i.listener=r,n.wrapFn=i,i}yt.prototype.once=function(t,r){return I1(r),this.on(t,s8(this,t,r)),this};yt.prototype.prependOnceListener=function(t,r){return I1(r),this.prependListener(t,s8(this,t,r)),this};yt.prototype.removeListener=function(t,r){var n,i,o,s,a;if(I1(r),i=this._events,i===void 0)return this;if(n=i[t],n===void 0)return this;if(n===r||n.listener===r)--this._eventsCount===0?this._events=Object.create(null):(delete i[t],i.removeListener&&this.emit("removeListener",t,n.listener||r));else if(typeof n!="function"){for(o=-1,s=n.length-1;s>=0;s--)if(n[s]===r||n[s].listener===r){a=n[s].listener,o=s;break}if(o<0)return this;o===0?n.shift():hd(n,o),n.length===1&&(i[t]=n[0]),i.removeListener!==void 0&&this.emit("removeListener",t,a||r)}return this};yt.prototype.off=yt.prototype.removeListener;yt.prototype.removeAllListeners=function(t){var r,n,i;if(n=this._events,n===void 0)return this;if(n.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):n[t]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete n[t]),this;if(arguments.length===0){var o=Object.keys(n),s;for(i=0;i<o.length;++i)s=o[i],s!=="removeListener"&&this.removeAllListeners(s);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if(r=n[t],typeof r=="function")this.removeListener(t,r);else if(r!==void 0)for(i=r.length-1;i>=0;i--)this.removeListener(t,r[i]);return this};function a8(e,t,r){var n=e._events;if(n===void 0)return[];var i=n[t];return i===void 0?[]:typeof i=="function"?r?[i.listener||i]:[i]:r?dd(i):u8(i,i.length)}yt.prototype.listeners=function(t){return a8(this,t,!0)};yt.prototype.rawListeners=function(t){return a8(this,t,!1)};yt.listenerCount=function(e,t){return typeof e.listenerCount=="function"?e.listenerCount(t):c8.call(e,t)};yt.prototype.listenerCount=c8;function c8(e){var t=this._events;if(t!==void 0){var r=t[e];if(typeof r=="function")return 1;if(r!==void 0)return r.length}return 0}yt.prototype.eventNames=function(){return this._eventsCount>0?S1(this._events):[]};function u8(e,t){for(var r=new Array(t),n=0;n<t;++n)r[n]=e[n];return r}function hd(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}function dd(e){for(var t=new Array(e.length),r=0;r<t.length;++r)t[r]=e[r].listener||e[r];return t}function pd(e,t){return new Promise(function(r,n){function i(s){e.removeListener(t,o),n(s)}function o(){typeof e.removeListener=="function"&&e.removeListener("error",i),r([].slice.call(arguments))}f8(e,t,o,{once:!0}),t!=="error"&&yd(e,i,{once:!0})})}function yd(e,t,r){typeof e.on=="function"&&f8(e,"error",t,r)}function f8(e,t,r,n){if(typeof e.on=="function")n.once?e.once(t,r):e.on(t,r);else if(typeof e.addEventListener=="function")e.addEventListener(t,function i(o){n.once&&e.removeEventListener(t,i),r(o)});else throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof e)}});var Gd={};qt(Gd,{EventTypes:()=>E2,MessageType:()=>S2,kadDHT:()=>$d});var N2=Symbol.for("@libp2p/content-routing");var Z0=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"},R=class extends Error{code;props;constructor(t,r,n){super(t),this.code=r,this.name=n?.name??"CodeError",this.props=n??{}}};var te=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 Nt(t,r))}},H1=class extends Event{detail;constructor(t,r){super(t,r),this.detail=r?.detail}},Nt=globalThis.CustomEvent??H1;var k2=Symbol.for("@libp2p/peer-discovery");var D2=Symbol.for("@libp2p/peer-routing");var fe=ot(K2(),1);var W1={};qt(W1,{base32:()=>we,base32hex:()=>e6,base32hexpad:()=>n6,base32hexpadupper:()=>i6,base32hexupper:()=>r6,base32pad:()=>J8,base32padupper:()=>t6,base32upper:()=>j8,base32z:()=>o6});function Q8(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,B=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*B[L]>>>0,B[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&&B[N]===0;)N++;for(var Q=c.repeat(y);N<v;++N)Q+=e.charAt(B[N]);return Q}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 B=r[h.charCodeAt(y)];if(B===255)return;for(var E=0,S=x-1;(B!==0||E<m)&&S!==-1;S--,E++)B+=a*v[S]>>>0,v[S]=B%256>>>0,B=B/256>>>0;if(B!==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)),Q=g;L!==x;)N[Q++]=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 Y8=Q8,W8=Y8,q2=W8;var rp=new Uint8Array(0);var V2=(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},er=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 z2=e=>new TextEncoder().encode(e),H2=e=>new TextDecoder().decode(e);var $1=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")}},G1=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 G2(this,t)}},Q1=class{constructor(t){this.decoders=t}or(t){return G2(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`)}},G2=(e,t)=>new Q1({...e.decoders||{[e.prefix]:e},...t.decoders||{[t.prefix]:t}}),Y1=class{constructor(t,r,n,i){this.name=t,this.prefix=r,this.baseEncode=n,this.baseDecode=i,this.encoder=new $1(t,r,n),this.decoder=new G1(t,r,i)}encode(t){return this.encoder.encode(t)}decode(t){return this.decoder.decode(t)}},bn=({name:e,prefix:t,encode:r,decode:n})=>new Y1(e,t,r,n),wr=({prefix:e,name:t,alphabet:r})=>{let{encode:n,decode:i}=q2(r,t);return bn({prefix:e,name:t,encode:n,decode:o=>er(i(o))})},Z8=(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},X8=(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},Rt=({name:e,prefix:t,bitsPerChar:r,alphabet:n})=>bn({prefix:t,name:e,encode(i){return X8(i,n,r)},decode(i){return Z8(i,n,r,e)}});var we=Rt({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),j8=Rt({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),J8=Rt({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),t6=Rt({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),e6=Rt({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),r6=Rt({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),n6=Rt({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),i6=Rt({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),o6=Rt({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var Z1={};qt(Z1,{base58btc:()=>kt,base58flickr:()=>s6});var kt=wr({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),s6=wr({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var X1={};qt(X1,{base64:()=>Hr,base64pad:()=>a6,base64url:()=>c6,base64urlpad:()=>u6});var Hr=Rt({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),a6=Rt({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),c6=Rt({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),u6=Rt({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});fe.default.formatters.b=e=>e==null?"undefined":kt.baseEncode(e);fe.default.formatters.t=e=>e==null?"undefined":we.baseEncode(e);fe.default.formatters.m=e=>e==null?"undefined":Hr.baseEncode(e);fe.default.formatters.p=e=>e==null?"undefined":e.toString();fe.default.formatters.c=e=>e==null?"undefined":e.toString();fe.default.formatters.k=e=>e==null?"undefined":e.toString();fe.default.formatters.a=e=>e==null?"undefined":e.toString();function f6(e){let t=()=>{};return t.enabled=!1,t.color="",t.diff=0,t.log=()=>{},t.namespace=e,t.destroy=()=>!0,t.extend=()=>t,t}function J(e){let t=f6(`${e}:trace`);return fe.default.enabled(`${e}:trace`)&&fe.default.names.map(r=>r.toString()).find(r=>r.includes(":trace"))!=null&&(t=(0,fe.default)(`${e}:trace`)),Object.assign((0,fe.default)(e),{error:(0,fe.default)(`${e}:error`),trace:t})}function l6(e){return e[Symbol.asyncIterator]!=null}function h6(e){if(l6(e))return(async()=>{for await(let t of e);})();for(let t of e);}var s0=h6;function ee(){let e={};return e.promise=new Promise((t,r)=>{e.resolve=t,e.reject=r}),e}var J0=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}},wn=class{size;hwm;head;tail;constructor(t={}){this.hwm=t.splitLimit??16,this.head=new J0(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 J0(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 j1=class extends Error{type;code;constructor(t,r){super(t??"The operation was aborted"),this.type="aborted",this.code=r??"ABORT_ERR"}};function ti(e={}){return d6(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 d6(e,t){t=t??{};let r=t.onEnd,n=new wn,i,o,s,a=ee(),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=ee()})}},u=g=>o!=null?o(g):(n.push(g),i),f=g=>(n=new wn,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 wn,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((B,E)=>{v=()=>{E(new j1)},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}},i}function p6(e){return e[Symbol.asyncIterator]!=null}function y6(...e){let t=[];for(let r of e)p6(r)||t.push(r);return t.length===e.length?function*(){for(let r of t)yield*r}():async function*(){let r=ti({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 Ee=y6;var ra=ot(Q2(),1);var Y2="[a-fA-F\\d:]",Er=e=>e&&e.includeBoundaries?`(?:(?<=\\s|^)(?=${Y2})|(?<=${Y2})(?=\\s|$))`:"",Se="(?: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}",Vt="[a-fA-F\\d]{1,4}",ei=`
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 Df(e){return e.replace(/^\s+/,"")}});var M4=G((lv,F4)=>{var Ze=dt();sn();Ft();var D4=F4.exports=Ze.sha256=Ze.sha256||{};Ze.md.sha256=Ze.md.algorithms.sha256=D4;D4.create=function(){O4||Of();var e=null,t=Ze.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=Ze.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=Ze.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),k4(e,r,t),(t.read>2048||t.length()===0)&&t.compact(),n},n.digest=function(){var i=Ze.util.createBuffer();i.putBytes(t.bytes());var o=n.fullMessageLength[n.fullMessageLength.length-1]+n.messageLengthSize,s=o&n.blockLength-1;i.putBytes(xs.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};k4(l,r,i);var p=Ze.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 xs=null,O4=!1,U4=null;function Of(){xs=String.fromCharCode(128),xs+=Ze.util.fillString(String.fromCharCode(0),64),U4=[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],O4=!0}function k4(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+U4[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 q4=G((hv,K4)=>{var Xe=dt();Ft();var Oi=null;Xe.util.isNodejs&&!Xe.options.usePureJavaScript&&!process.versions["node-webkit"]&&(Oi=Ni());var Uf=K4.exports=Xe.prng=Xe.prng||{};Uf.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=Xe.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 Xe.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)),Xe.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=Xe.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=Xe.util.globalScope,p=l.crypto||l.msCrypto;p&&p.getRandomValues&&(f=function(E){return p.getRandomValues(E)});var d=Xe.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,_=Math.floor(Math.random()*65536);d.length()<u;){x=16807*(_&65535),m=16807*(_>>16),x+=(m&32767)<<16,x+=m>>15,x=(x&2147483647)+(x>>31),_=x&4294967295;for(var g=0;g<3;++g)v=_>>>(g<<3),v^=Math.floor(Math.random()*256),d.putByte(v&255)}return d.getBytes(u)}return Oi?(t.seedFile=function(u,f){Oi.randomBytes(u,function(l,p){if(l)return f(l);f(null,p.toString())})},t.seedFileSync=function(u){return Oi.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 C0=G((dv,vs)=>{var Wt=dt();Bi();M4();q4();Ft();(function(){if(Wt.random&&Wt.random.getBytes){vs.exports=Wt.random;return}(function(e){var t={},r=new Array(4),n=Wt.util.createBuffer();t.formatKey=function(l){var p=Wt.util.createBuffer(l);return l=new Array(4),l[0]=p.getInt32(),l[1]=p.getInt32(),l[2]=p.getInt32(),l[3]=p.getInt32(),Wt.aes._expandKey(l,!1)},t.formatSeed=function(l){var p=Wt.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 Wt.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=Wt.md.sha256;function i(){var l=Wt.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=Wt.util.globalScope,c=a.crypto||a.msCrypto;if(c&&c.getRandomValues&&(s=function(l){return c.getRandomValues(l)}),Wt.options.usePureJavaScript||!Wt.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(!Wt.random)Wt.random=o;else for(var f in o)Wt.random[f]=o[f];Wt.random.createInstance=i,vs.exports=Wt.random})(typeof jQuery<"u"?jQuery:null)})()});var $4=G((pv,H4)=>{var le=dt();Ft();var bs=[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],V4=[1,2,3,5],Ff=function(e,t){return e<<t&65535|(e&65535)>>16-t},Mf=function(e,t){return(e&65535)>>t|e<<16-t&65535};H4.exports=le.rc2=le.rc2||{};le.rc2.expandKey=function(e,t){typeof e=="string"&&(e=le.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(bs[r.at(a-1)+r.at(a-n)&255]);for(r.setAt(128-o,bs[r.at(128-o)&s]),a=127-o;a>=0;a--)r.setAt(a,bs[r.at(a+1)^r.at(a+o)]);return r};var z4=function(e,t,r){var n=!1,i=null,o=null,s=null,a,c,u,f,l=[];for(e=le.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]=Ff(h[u],V4[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]=Mf(h[u],V4[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=le.util.createBuffer(h)),n=!1,i=le.util.createBuffer(),o=y||new le.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};le.rc2.startEncrypting=function(e,t,r){var n=le.rc2.createEncryptionCipher(e,128);return n.start(t,r),n};le.rc2.createEncryptionCipher=function(e,t){return z4(e,t,!0)};le.rc2.startDecrypting=function(e,t,r){var n=le.rc2.createDecryptionCipher(e,128);return n.start(t,r),n};le.rc2.createDecryptionCipher=function(e,t){return z4(e,t,!1)}});var Mi=G((yv,J4)=>{var ws=dt();J4.exports=ws.jsbn=ws.jsbn||{};var hr,Kf=0xdeadbeefcafe,G4=(Kf&16777215)==15715070;function C(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))}ws.jsbn.BigInteger=C;function st(){return new C(null)}function qf(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 Vf(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 Q4(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"?(C.prototype.am=Q4,hr=28):G4&&navigator.appName=="Microsoft Internet Explorer"?(C.prototype.am=Vf,hr=30):G4&&navigator.appName!="Netscape"?(C.prototype.am=qf,hr=26):(C.prototype.am=Q4,hr=28);C.prototype.DB=hr;C.prototype.DM=(1<<hr)-1;C.prototype.DV=1<<hr;var Es=52;C.prototype.FV=Math.pow(2,Es);C.prototype.F1=Es-hr;C.prototype.F2=2*hr-Es;var zf="0123456789abcdefghijklmnopqrstuvwxyz",Ui=new Array,Gn,be;Gn="0".charCodeAt(0);for(be=0;be<=9;++be)Ui[Gn++]=be;Gn="a".charCodeAt(0);for(be=10;be<36;++be)Ui[Gn++]=be;Gn="A".charCodeAt(0);for(be=10;be<36;++be)Ui[Gn++]=be;function Y4(e){return zf.charAt(e)}function W4(e,t){var r=Ui[e.charCodeAt(t)];return r??-1}function Hf(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 $f(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 Dr(e){var t=st();return t.fromInt(e),t}function Gf(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:W4(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&&C.ZERO.subTo(this,this)}function Qf(){for(var e=this.s&this.DM;this.t>0&&this.data[this.t-1]==e;)--this.t}function Yf(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=Y4(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+=Y4(n));return i?o:"0"}function Wf(){var e=st();return C.ZERO.subTo(this,e),e}function Zf(){return this.s<0?this.negate():this}function Xf(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 Fi(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 jf(){return this.t<=0?0:this.DB*(this.t-1)+Fi(this.data[this.t-1]^this.s&this.DM)}function Jf(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 tl(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 el(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 rl(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 nl(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 il(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&&C.ZERO.subTo(t,t)}function ol(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 sl(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=st());var o=st(),s=this.s,a=e.s,c=this.DB-Fi(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??st();for(o.dlShiftTo(g,m),r.compareTo(m)>=0&&(r.data[r.t++]=1,r.subTo(m,r)),C.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&&C.ZERO.subTo(t,t)),r.t=u,r.clamp(),c>0&&r.rShiftTo(c,r),s<0&&C.ZERO.subTo(r,r)}}}function al(e){var t=st();return this.abs().divRemTo(e,null,t),this.s<0&&t.compareTo(C.ZERO)>0&&e.subTo(t,t),t}function an(e){this.m=e}function cl(e){return e.s<0||e.compareTo(this.m)>=0?e.mod(this.m):e}function ul(e){return e}function fl(e){e.divRemTo(this.m,null,e)}function ll(e,t,r){e.multiplyTo(t,r),this.reduce(r)}function hl(e,t){e.squareTo(t),this.reduce(t)}an.prototype.convert=cl;an.prototype.revert=ul;an.prototype.reduce=fl;an.prototype.mulTo=ll;an.prototype.sqrTo=hl;function dl(){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 cn(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 pl(e){var t=st();return e.abs().dlShiftTo(this.m.t,t),t.divRemTo(this.m,null,t),e.s<0&&t.compareTo(C.ZERO)>0&&this.m.subTo(t,t),t}function yl(e){var t=st();return e.copyTo(t),this.reduce(t),t}function gl(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 ml(e,t){e.squareTo(t),this.reduce(t)}function xl(e,t,r){e.multiplyTo(t,r),this.reduce(r)}cn.prototype.convert=pl;cn.prototype.revert=yl;cn.prototype.reduce=gl;cn.prototype.mulTo=xl;cn.prototype.sqrTo=ml;function vl(){return(this.t>0?this.data[0]&1:this.s)==0}function bl(e,t){if(e>4294967295||e<1)return C.ONE;var r=st(),n=st(),i=t.convert(this),o=Fi(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 wl(e,t){var r;return e<256||t.isEven()?r=new an(t):r=new cn(t),this.exp(e,r)}C.prototype.copyTo=Hf;C.prototype.fromInt=$f;C.prototype.fromString=Gf;C.prototype.clamp=Qf;C.prototype.dlShiftTo=Jf;C.prototype.drShiftTo=tl;C.prototype.lShiftTo=el;C.prototype.rShiftTo=rl;C.prototype.subTo=nl;C.prototype.multiplyTo=il;C.prototype.squareTo=ol;C.prototype.divRemTo=sl;C.prototype.invDigit=dl;C.prototype.isEven=vl;C.prototype.exp=bl;C.prototype.toString=Yf;C.prototype.negate=Wf;C.prototype.abs=Zf;C.prototype.compareTo=Xf;C.prototype.bitLength=jf;C.prototype.mod=al;C.prototype.modPowInt=wl;C.ZERO=Dr(0);C.ONE=Dr(1);function El(){var e=st();return this.copyTo(e),e}function Sl(){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 Il(){return this.t==0?this.s:this.data[0]<<24>>24}function Al(){return this.t==0?this.s:this.data[0]<<16>>16}function _l(e){return Math.floor(Math.LN2*this.DB/Math.log(e))}function Cl(){return this.s<0?-1:this.t<=0||this.t==1&&this.data[0]<=0?0:1}function Bl(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=Dr(r),i=st(),o=st(),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 Tl(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=W4(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&&C.ZERO.subTo(this,this)}function Rl(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(C.ONE.shiftLeft(e-1),Ss,this),this.isEven()&&this.dAddOffset(1,0);!this.isProbablePrime(t);)this.dAddOffset(2,0),this.bitLength()>e&&this.subTo(C.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 Pl(){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 Ll(e){return this.compareTo(e)==0}function Nl(e){return this.compareTo(e)<0?this:e}function kl(e){return this.compareTo(e)>0?this:e}function Dl(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 Ol(e,t){return e&t}function Ul(e){var t=st();return this.bitwiseTo(e,Ol,t),t}function Ss(e,t){return e|t}function Fl(e){var t=st();return this.bitwiseTo(e,Ss,t),t}function Z4(e,t){return e^t}function Ml(e){var t=st();return this.bitwiseTo(e,Z4,t),t}function X4(e,t){return e&~t}function Kl(e){var t=st();return this.bitwiseTo(e,X4,t),t}function ql(){for(var e=st(),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 Vl(e){var t=st();return e<0?this.rShiftTo(-e,t):this.lShiftTo(e,t),t}function zl(e){var t=st();return e<0?this.lShiftTo(-e,t):this.rShiftTo(e,t),t}function Hl(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 $l(){for(var e=0;e<this.t;++e)if(this.data[e]!=0)return e*this.DB+Hl(this.data[e]);return this.s<0?this.t*this.DB:-1}function Gl(e){for(var t=0;e!=0;)e&=e-1,++t;return t}function Ql(){for(var e=0,t=this.s&this.DM,r=0;r<this.t;++r)e+=Gl(this.data[r]^t);return e}function Yl(e){var t=Math.floor(e/this.DB);return t>=this.t?this.s!=0:(this.data[t]&1<<e%this.DB)!=0}function Wl(e,t){var r=C.ONE.shiftLeft(e);return this.bitwiseTo(r,t,r),r}function Zl(e){return this.changeBit(e,Ss)}function Xl(e){return this.changeBit(e,X4)}function jl(e){return this.changeBit(e,Z4)}function Jl(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 t7(e){var t=st();return this.addTo(e,t),t}function e7(e){var t=st();return this.subTo(e,t),t}function r7(e){var t=st();return this.multiplyTo(e,t),t}function n7(e){var t=st();return this.divRemTo(e,t,null),t}function i7(e){var t=st();return this.divRemTo(e,null,t),t}function o7(e){var t=st(),r=st();return this.divRemTo(e,t,r),new Array(t,r)}function s7(e){this.data[this.t]=this.am(0,e-1,this,0,0,this.t),++this.t,this.clamp()}function a7(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 B0(){}function j4(e){return e}function c7(e,t,r){e.multiplyTo(t,r)}function u7(e,t){e.squareTo(t)}B0.prototype.convert=j4;B0.prototype.revert=j4;B0.prototype.mulTo=c7;B0.prototype.sqrTo=u7;function f7(e){return this.exp(e,new B0)}function l7(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 h7(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 Qn(e){this.r2=st(),this.q3=st(),C.ONE.dlShiftTo(2*e.t,this.r2),this.mu=this.r2.divide(e),this.m=e}function d7(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=st();return e.copyTo(t),this.reduce(t),t}function p7(e){return e}function y7(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 g7(e,t){e.squareTo(t),this.reduce(t)}function m7(e,t,r){e.multiplyTo(t,r),this.reduce(r)}Qn.prototype.convert=d7;Qn.prototype.revert=p7;Qn.prototype.reduce=y7;Qn.prototype.mulTo=m7;Qn.prototype.sqrTo=g7;function x7(e,t){var r=e.bitLength(),n,i=Dr(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 an(t):t.isEven()?o=new Qn(t):o=new cn(t);var s=new Array,a=3,c=n-1,u=(1<<n)-1;if(s[1]=o.convert(this),n>1){var f=st();for(o.sqrTo(s[1],f);a<=u;)s[a]=st(),o.mulTo(f,s[a-2],s[a]),a+=2}var l=e.t-1,p,d=!0,h=st(),y;for(r=Fi(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 v7(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 b7(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 w7(e){var t=e.isEven();if(this.isEven()&&t||e.signum()==0)return C.ZERO;for(var r=e.clone(),n=this.clone(),i=Dr(1),o=Dr(0),s=Dr(0),a=Dr(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(C.ONE)!=0)return C.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 Ne=[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],E7=(1<<26)/Ne[Ne.length-1];function S7(e){var t,r=this.abs();if(r.t==1&&r.data[0]<=Ne[Ne.length-1]){for(t=0;t<Ne.length;++t)if(r.data[0]==Ne[t])return!0;return!1}if(r.isEven())return!1;for(t=1;t<Ne.length;){for(var n=Ne[t],i=t+1;i<Ne.length&&n<E7;)n*=Ne[i++];for(n=r.modInt(n);t<i;)if(n%Ne[t++]==0)return!1}return r.millerRabin(e)}function I7(e){var t=this.subtract(C.ONE),r=t.getLowestSetBit();if(r<=0)return!1;for(var n=t.shiftRight(r),i=A7(),o,s=0;s<e;++s){do o=new C(this.bitLength(),i);while(o.compareTo(C.ONE)<=0||o.compareTo(t)>=0);var a=o.modPow(n,this);if(a.compareTo(C.ONE)!=0&&a.compareTo(t)!=0){for(var c=1;c++<r&&a.compareTo(t)!=0;)if(a=a.modPowInt(2,this),a.compareTo(C.ONE)==0)return!1;if(a.compareTo(t)!=0)return!1}}return!0}function A7(){return{nextBytes:function(e){for(var t=0;t<e.length;++t)e[t]=Math.floor(Math.random()*256)}}}C.prototype.chunkSize=_l;C.prototype.toRadix=Bl;C.prototype.fromRadix=Tl;C.prototype.fromNumber=Rl;C.prototype.bitwiseTo=Dl;C.prototype.changeBit=Wl;C.prototype.addTo=Jl;C.prototype.dMultiply=s7;C.prototype.dAddOffset=a7;C.prototype.multiplyLowerTo=l7;C.prototype.multiplyUpperTo=h7;C.prototype.modInt=b7;C.prototype.millerRabin=I7;C.prototype.clone=El;C.prototype.intValue=Sl;C.prototype.byteValue=Il;C.prototype.shortValue=Al;C.prototype.signum=Cl;C.prototype.toByteArray=Pl;C.prototype.equals=Ll;C.prototype.min=Nl;C.prototype.max=kl;C.prototype.and=Ul;C.prototype.or=Fl;C.prototype.xor=Ml;C.prototype.andNot=Kl;C.prototype.not=ql;C.prototype.shiftLeft=Vl;C.prototype.shiftRight=zl;C.prototype.getLowestSetBit=$l;C.prototype.bitCount=Ql;C.prototype.testBit=Yl;C.prototype.setBit=Zl;C.prototype.clearBit=Xl;C.prototype.flipBit=jl;C.prototype.add=t7;C.prototype.subtract=e7;C.prototype.multiply=r7;C.prototype.divide=n7;C.prototype.remainder=i7;C.prototype.divideAndRemainder=o7;C.prototype.modPow=x7;C.prototype.modInverse=w7;C.prototype.pow=f7;C.prototype.gcd=v7;C.prototype.isProbablePrime=S7});var ic=G((gv,nc)=>{var je=dt();sn();Ft();var ec=nc.exports=je.sha1=je.sha1||{};je.md.sha1=je.md.algorithms.sha1=ec;ec.create=function(){rc||_7();var e=null,t=je.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=je.util.createBuffer(),e={h0:1732584193,h1:4023233417,h2:2562383102,h3:271733878,h4:3285377520},n},n.start(),n.update=function(i,o){o==="utf8"&&(i=je.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),tc(e,r,t),(t.read>2048||t.length()===0)&&t.compact(),n},n.digest=function(){var i=je.util.createBuffer();i.putBytes(t.bytes());var o=n.fullMessageLength[n.fullMessageLength.length-1]+n.messageLengthSize,s=o&n.blockLength-1;i.putBytes(Is.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};tc(l,r,i);var p=je.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 Is=null,rc=!1;function _7(){Is=String.fromCharCode(128),Is+=je.util.fillString(String.fromCharCode(0),64),rc=!0}function tc(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 ac=G((mv,sc)=>{var Je=dt();Ft();C0();ic();var oc=sc.exports=Je.pkcs1=Je.pkcs1||{};oc.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=Je.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=Je.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=Ki(i,a-o.digestLength-1,s),g=Je.util.xorBytes(h,y,h.length),m=Ki(g,o.digestLength,s),x=Je.util.xorBytes(i,m,i.length);return"\0"+x+g};oc.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=Je.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=Ki(f,i.digestLength,o),p=Je.util.xorBytes(u,l,u.length),d=Ki(p,s-i.digestLength-1,o),h=Je.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,_=i.digestLength;_<h.length;_++){var E=h.charCodeAt(_),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 Ki(e,t,r){r||(r=Je.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 cc=G((xv,As)=>{var Or=dt();Ft();Mi();C0();(function(){if(Or.prime){As.exports=Or.prime;return}var e=As.exports=Or.prime=Or.prime||{},t=Or.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||Or.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);Or.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 Or.util.estimateCores(function(E,S){E&&(S=2),g=S-1,_()});_();function _(){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",Q);var N=!1;function Q(Y){if(!N){--L;var z=Y.data;if(z.found){for(var et=0;et<E.length;++et)E[et].terminate();return N=!0,h(null,new t(z.prime,16))}y.bitLength()>l&&(y=u(l,p));var pt=y.toString(16);Y.target.postMessage({hex:pt,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 Vi=G((vv,yc)=>{var V=dt();_0();Mi();Ti();ac();cc();C0();Ft();typeof it>"u"&&(it=V.jsbn.BigInteger);var it,_s=V.util.isNodejs?Ni():null,w=V.asn1,we=V.util;V.pki=V.pki||{};yc.exports=V.pki.rsa=V.rsa=V.rsa||{};var W=V.pki,C7=[6,4,2,4,2,4,6,2],B7={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"}]},T7={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"}]},R7={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"}]},P7=V.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"}]}]},L7={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"}]},N7=function(e){var t;if(e.algorithm in W.oids)t=W.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()},dc=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(it.ONE))),t.dQ||(t.dQ=t.d.mod(t.q.subtract(it.ONE))),t.qInv||(t.qInv=t.q.modInverse(t.p));var n;do n=new it(V.util.bytesToHex(V.random.getBytes(t.n.bitLength()/8)),16);while(n.compareTo(t.n)>=0||!n.gcd(t.n).equals(it.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};W.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=pc(e,t,r)):(i=V.util.createBuffer(),i.putBytes(e));for(var s=new it(i.toHex(),16),a=dc(s,t,n),c=a.toString(16),u=V.util.createBuffer(),f=o-Math.ceil(c.length/2);f>0;)u.putByte(0),--f;return u.putBytes(V.util.hexToBytes(c)),u.getBytes()};W.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 it(V.util.createBuffer(e).toHex(),16);if(s.compareTo(t.n)>=0)throw new Error("Encrypted message is invalid.");for(var a=dc(s,t,r),c=a.toString(16),u=V.util.createBuffer(),f=i-Math.ceil(c.length/2);f>0;)u.putByte(0),--f;return u.putBytes(V.util.hexToBytes(c)),n!==!1?qi(u.getBytes(),t,r):u.getBytes()};W.rsa.createKeyPairGenerationState=function(e,t,r){typeof e=="string"&&(e=parseInt(e,10)),e=e||2048,r=r||{};var n=r.prng||V.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 it(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};W.rsa.stepKeyPairGenerationState=function(e,t){"algorithm"in e||(e.algorithm="PRIMEINC");var r=new it(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 it(c,e.rng),e.num.testBit(u)||e.num.bitwiseTo(it.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(D7(e.num.bitLength()))?++e.pqState:e.num.dAddOffset(C7[n++%8],0):e.pqState===2?e.pqState=e.num.subtract(it.ONE).gcd(e.e).compareTo(it.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(it.ONE),e.q1=e.q.subtract(it.ONE),e.phi=e.p1.multiply(e.q1),++e.state;else if(e.state===3)e.phi.gcd(e.e).compareTo(it.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:W.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:W.rsa.setPublicKey(e.n,e.e)}}s=+new Date,a+=s-o,o=s}return e.keys!==null};W.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),!V.options.usePureJavaScript&&!r.prng&&e>=256&&e<=16384&&(t===65537||t===3)){if(n){if(uc("generateKeyPair"))return _s.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:W.privateKeyFromPem(u),publicKey:W.publicKeyFromPem(c)})});if(fc("generateKey")&&fc("exportKey"))return we.globalScope.crypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:e,publicExponent:hc(t),hash:{name:"SHA-256"}},!0,["sign","verify"]).then(function(a){return we.globalScope.crypto.subtle.exportKey("pkcs8",a.privateKey)}).then(void 0,function(a){n(a)}).then(function(a){if(a){var c=W.privateKeyFromAsn1(w.fromDer(V.util.createBuffer(a)));n(null,{privateKey:c,publicKey:W.setRsaPublicKey(c.n,c.e)})}});if(lc("generateKey")&&lc("exportKey")){var i=we.globalScope.msCrypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:e,publicExponent:hc(t),hash:{name:"SHA-256"}},!0,["sign","verify"]);i.oncomplete=function(a){var c=a.target.result,u=we.globalScope.msCrypto.subtle.exportKey("pkcs8",c.privateKey);u.oncomplete=function(f){var l=f.target.result,p=W.privateKeyFromAsn1(w.fromDer(V.util.createBuffer(l)));n(null,{privateKey:p,publicKey:W.setRsaPublicKey(p.n,p.e)})},u.onerror=function(f){n(f)}},i.onerror=function(a){n(a)};return}}else if(uc("generateKeyPairSync")){var o=_s.generateKeyPairSync("rsa",{modulusLength:e,publicExponent:t,publicKeyEncoding:{type:"spki",format:"pem"},privateKeyEncoding:{type:"pkcs8",format:"pem"}});return{privateKey:W.privateKeyFromPem(o.privateKey),publicKey:W.publicKeyFromPem(o.publicKey)}}}var s=W.rsa.createKeyPairGenerationState(e,t,r);if(!n)return W.rsa.stepKeyPairGenerationState(s,0),s.keys;k7(s,r,n)};W.setRsaPublicKey=W.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 pc(a,c,2).getBytes()}};else if(i==="RSA-OAEP"||i==="RSAES-OAEP")i={encode:function(a,c){return V.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 W.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=qi(u,r,!0);var f=w.fromDer(u,{parseAllBytes:s._parseAllDigestBytes}),l={},p=[];if(!w.validate(f,L7,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===V.oids.md2||h===V.oids.md5||h===V.oids.sha1||h===V.oids.sha224||h===V.oids.sha256||h===V.oids.sha384||h===V.oids.sha512||h===V.oids["sha512-224"]||h===V.oids["sha512-256"])){var d=new Error("Unknown RSASSA-PKCS1-v1_5 DigestAlgorithm identifier.");throw d.oid=h,d}if((h===V.oids.md2||h===V.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=qi(u,r,!0),c===u}});var a=W.rsa.decrypt(i,r,!0,!1);return o.verify(n,a,r.n.bitLength())},r};W.setRsaPrivateKey=W.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=W.rsa.decrypt(u,c,!1,!1);if(f==="RSAES-PKCS1-V1_5")f={decode:qi};else if(f==="RSA-OAEP"||f==="RSAES-OAEP")f={decode:function(d,h){return V.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:N7},l=1):(f==="NONE"||f==="NULL"||f===null)&&(f={encode:function(){return u}},l=1);var p=f.encode(u,c.n.bitLength());return W.rsa.encrypt(p,c,l)},c};W.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(W.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())])};W.privateKeyFromAsn1=function(e){var t={},r=[];if(w.validate(e,B7,t,r)&&(e=w.fromDer(V.util.createBuffer(t.privateKey))),t={},r=[],!w.validate(e,T7,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=V.util.createBuffer(t.privateKeyModulus).toHex(),o=V.util.createBuffer(t.privateKeyPublicExponent).toHex(),s=V.util.createBuffer(t.privateKeyPrivateExponent).toHex(),a=V.util.createBuffer(t.privateKeyPrime1).toHex(),c=V.util.createBuffer(t.privateKeyPrime2).toHex(),u=V.util.createBuffer(t.privateKeyExponent1).toHex(),f=V.util.createBuffer(t.privateKeyExponent2).toHex(),l=V.util.createBuffer(t.privateKeyCoefficient).toHex(),W.setRsaPrivateKey(new it(i,16),new it(o,16),new it(s,16),new it(a,16),new it(c,16),new it(u,16),new it(f,16),new it(l,16))};W.privateKeyToAsn1=W.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,tr(e.n)),w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,tr(e.e)),w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,tr(e.d)),w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,tr(e.p)),w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,tr(e.q)),w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,tr(e.dP)),w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,tr(e.dQ)),w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,tr(e.qInv))])};W.publicKeyFromAsn1=function(e){var t={},r=[];if(w.validate(e,P7,t,r)){var n=w.derToOid(t.publicKeyOid);if(n!==W.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,R7,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=V.util.createBuffer(t.publicKeyModulus).toHex(),s=V.util.createBuffer(t.publicKeyExponent).toHex();return W.setRsaPublicKey(new it(o,16),new it(s,16))};W.publicKeyToAsn1=W.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(W.oids.rsaEncryption).getBytes()),w.create(w.Class.UNIVERSAL,w.Type.NULL,!1,"")]),w.create(w.Class.UNIVERSAL,w.Type.BITSTRING,!1,[W.publicKeyToRSAPublicKey(e)])])};W.publicKeyToRSAPublicKey=function(e){return w.create(w.Class.UNIVERSAL,w.Type.SEQUENCE,!0,[w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,tr(e.n)),w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,tr(e.e))])};function pc(e,t,r){var n=V.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=V.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 qi(e,t,r,n){var i=Math.ceil(t.n.bitLength()/8),o=V.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 k7(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){V.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(it.ONE).gcd(e.e).compareTo(it.ONE)!==0){e.p=null,i();return}if(e.q.subtract(it.ONE).gcd(e.e).compareTo(it.ONE)!==0){e.q=null,o(e.qBits,s);return}if(e.p1=e.p.subtract(it.ONE),e.q1=e.q.subtract(it.ONE),e.phi=e.p1.multiply(e.q1),e.phi.gcd(e.e).compareTo(it.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:W.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:W.rsa.setPublicKey(e.n,e.e)},r(null,e.keys)}}function tr(e){var t=e.toString(16);t[0]>="8"&&(t="00"+t);var r=V.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 D7(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 uc(e){return V.util.isNodejs&&typeof _s[e]=="function"}function fc(e){return typeof we.globalScope<"u"&&typeof we.globalScope.crypto=="object"&&typeof we.globalScope.crypto.subtle=="object"&&typeof we.globalScope.crypto.subtle[e]=="function"}function lc(e){return typeof we.globalScope<"u"&&typeof we.globalScope.msCrypto=="object"&&typeof we.globalScope.msCrypto.subtle=="object"&&typeof we.globalScope.msCrypto.subtle[e]=="function"}function hc(e){for(var t=V.util.hexToBytes(e.toString(16)),r=new Uint8Array(t.length),n=0;n<t.length;++n)r[n]=t.charCodeAt(n);return r}});var wc=G((bv,bc)=>{var U=dt();Bi();_0();_4();sn();Ti();ms();N4();C0();$4();Vi();Ft();typeof gc>"u"&&(gc=U.jsbn.BigInteger);var gc,I=U.asn1,Z=U.pki=U.pki||{};bc.exports=Z.pbe=U.pbe=U.pbe||{};var un=Z.oids,O7={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"}]},U7={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"}]}]},F7={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"}]};Z.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=un["aes128-CBC"],l=U.aes.createEncryptionCipher;break;case"aes192":s=24,u=16,f=un["aes192-CBC"],l=U.aes.createEncryptionCipher;break;case"aes256":s=32,u=16,f=un["aes256-CBC"],l=U.aes.createEncryptionCipher;break;case"des":s=8,u=8,f=un.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=vc(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=M7(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(un.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(un.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=Z.pbe.generatePkcs12Key(t,v,1,i,s),g=Z.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(un["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 _=I.create(I.Class.UNIVERSAL,I.Type.SEQUENCE,!0,[a,I.create(I.Class.UNIVERSAL,I.Type.OCTETSTRING,!1,c)]);return _};Z.decryptPrivateKeyInfo=function(e,t){var r=null,n={},i=[];if(!I.validate(e,O7,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=Z.pbe.getCipher(s,n.encryptionParams,t),c=U.util.createBuffer(n.encryptedData);return a.update(c),a.finish()&&(r=I.fromDer(a.output)),r};Z.encryptedPrivateKeyToPem=function(e,t){var r={type:"ENCRYPTED PRIVATE KEY",body:I.toDer(e).getBytes()};return U.pem.encode(r,{maxline:t})};Z.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)};Z.encryptRsaPrivateKey=function(e,t,r){if(r=r||{},!r.legacy){var n=Z.wrapRsaPrivateKey(Z.privateKeyToAsn1(e));return n=Z.encryptPrivateKeyInfo(n,t,r),Z.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(Z.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)};Z.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=Z.decryptPrivateKeyInfo(I.fromDer(r),t):r=I.fromDer(r),r!==null&&(r=Z.privateKeyFromAsn1(r)),r};Z.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 _=Math.ceil(i/c),E=1;E<=_;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 Q=Math.ceil(d/u)+Math.ceil(p/u),Y=new U.util.ByteBuffer;for(s=0;s<Q;s++){var z=new U.util.ByteBuffer(v.getBytes(u)),et=511;for(a=N.length()-1;a>=0;a--)et=et>>8,et+=N.at(a)+z.at(a),z.setAt(a,et&255);Y.putBuffer(z)}v=Y,f.putBuffer(S)}return f.truncate(f.length()-i),f};Z.pbe.getCipher=function(e,t,r){switch(e){case Z.oids.pkcs5PBES2:return Z.pbe.getCipherForPBES2(e,t,r);case Z.oids["pbeWithSHAAnd3-KeyTripleDES-CBC"]:case Z.oids["pbewithSHAAnd40BitRC2-CBC"]:return Z.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}};Z.pbe.getCipherForPBES2=function(e,t,r){var n={},i=[];if(!I.validate(t,U7,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!==Z.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!==Z.oids["aes128-CBC"]&&e!==Z.oids["aes192-CBC"]&&e!==Z.oids["aes256-CBC"]&&e!==Z.oids["des-EDE3-CBC"]&&e!==Z.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(Z.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=xc(n.prfOid),l=U.pkcs5.pbkdf2(r,s,a,c,f),p=n.encIv,d=u(l);return d.start(p),d};Z.pbe.getCipherForPKCS12PBE=function(e,t,r){var n={},i=[];if(!I.validate(t,F7,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 Z.oids["pbeWithSHAAnd3-KeyTripleDES-CBC"]:c=24,u=8,f=U.des.startDecrypting;break;case Z.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=xc(n.prfOid),p=Z.pbe.generatePkcs12Key(r,s,1,a,c,l);l.start();var d=Z.pbe.generatePkcs12Key(r,s,2,a,u,l);return f(p,d)};Z.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=[mc(n,e+t)],o=16,s=1;o<r;++s,o+=16)i.push(mc(n,i[s-1]+e+t));return i.join("").substr(0,r)};function mc(e,t){return e.start().update(t).digest().getBytes()}function xc(e){var t;if(!e)t="hmacWithSHA1";else if(t=Z.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 vc(t)}function vc(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 M7(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(Z.oids[n]).getBytes()),I.create(I.Class.UNIVERSAL,I.Type.NULL,!1,"")])),i}});var o5=G((rw,i5)=>{var St=dt();sn();Ft();var N0=i5.exports=St.sha512=St.sha512||{};St.md.sha512=St.md.algorithms.sha512=N0;var r5=St.sha384=St.sha512.sha384=St.sha512.sha384||{};r5.create=function(){return N0.create("SHA-384")};St.md.sha384=St.md.algorithms.sha384=r5;St.sha512.sha256=St.sha512.sha256||{create:function(){return N0.create("SHA-512/256")}};St.md["sha512/256"]=St.md.algorithms["sha512/256"]=St.sha512.sha256;St.sha512.sha224=St.sha512.sha224||{create:function(){return N0.create("SHA-512/224")}};St.md["sha512/224"]=St.md.algorithms["sha512/224"]=St.sha512.sha224;N0.create=function(e){if(n5||J9(),typeof e>"u"&&(e="SHA-512"),!(e in pn))throw new Error("Invalid SHA-512 algorithm: "+e);for(var t=pn[e],r=null,n=St.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=St.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=St.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),e5(r,i,n),(n.read>2048||n.length()===0)&&n.compact(),a},a.digest=function(){var c=St.util.createBuffer();c.putBytes(n.bytes());var u=a.fullMessageLength[a.fullMessageLength.length-1]+a.messageLengthSize,f=u&a.blockLength-1;c.putBytes(Ys.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);e5(y,i,c);var g=St.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 Ys=null,n5=!1,Ws=null,pn=null;function J9(){Ys=String.fromCharCode(128),Ys+=St.util.fillString(String.fromCharCode(0),128),Ws=[[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]],pn={},pn["SHA-512"]=[[1779033703,4089235720],[3144134277,2227873595],[1013904242,4271175723],[2773480762,1595750129],[1359893119,2917565137],[2600822924,725511199],[528734635,4215389547],[1541459225,327033209]],pn["SHA-384"]=[[3418070365,3238371032],[1654270250,914150663],[2438529370,812702999],[355462360,4144912697],[1731405415,4290775857],[2394180231,1750603025],[3675008525,1694076839],[1203062813,3204075428]],pn["SHA-512/256"]=[[573645204,4230739756],[2673172387,3360449730],[596883563,1867755857],[2520282905,1497426621],[2519219938,2827943907],[3193839141,1401305490],[721525244,746961066],[246885852,2177182882]],pn["SHA-512/224"]=[[2352822216,424955298],[1944164710,2312950998],[502970286,855612546],[1738396948,1479516111],[258812777,2077511080],[2011393907,79989058],[1067287976,1780299464],[286451373,2446758561]],n5=!0}function e5(e,t,r){for(var n,i,o,s,a,c,u,f,l,p,d,h,y,g,m,x,v,_,E,S,L,N,Q,Y,z,et,pt,Zt,B,D,P,k,A,F,K,$=r.length();$>=128;){for(B=0;B<16;++B)t[B][0]=r.getInt32()>>>0,t[B][1]=r.getInt32()>>>0;for(;B<80;++B)k=t[B-2],D=k[0],P=k[1],n=((D>>>19|P<<13)^(P>>>29|D<<3)^D>>>6)>>>0,i=((D<<13|P>>>19)^(P<<3|D>>>29)^(D<<26|P>>>6))>>>0,F=t[B-15],D=F[0],P=F[1],o=((D>>>1|P<<31)^(D>>>8|P<<24)^D>>>7)>>>0,s=((D<<31|P>>>1)^(D<<24|P>>>8)^(D<<25|P>>>7))>>>0,A=t[B-7],K=t[B-16],P=i+A[1]+s+K[1],t[B][0]=n+A[0]+o+K[0]+(P/4294967296>>>0)>>>0,t[B][1]=P>>>0;for(y=e[0][0],g=e[0][1],m=e[1][0],x=e[1][1],v=e[2][0],_=e[2][1],E=e[3][0],S=e[3][1],L=e[4][0],N=e[4][1],Q=e[5][0],Y=e[5][1],z=e[6][0],et=e[6][1],pt=e[7][0],Zt=e[7][1],B=0;B<80;++B)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=(z^L&(Q^z))>>>0,p=(et^N&(Y^et))>>>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|_&(g^x))>>>0,P=Zt+f+p+Ws[B][1]+t[B][1],n=pt+u+l+Ws[B][0]+t[B][0]+(P/4294967296>>>0)>>>0,i=P>>>0,P=c+h,o=a+d+(P/4294967296>>>0)>>>0,s=P>>>0,pt=z,Zt=et,z=Q,et=Y,Q=L,Y=N,P=S+i,L=E+n+(P/4294967296>>>0)>>>0,N=P>>>0,E=v,S=_,v=m,_=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]+_,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]+Y,e[5][0]=e[5][0]+Q+(P/4294967296>>>0)>>>0,e[5][1]=P>>>0,P=e[6][1]+et,e[6][0]=e[6][0]+z+(P/4294967296>>>0)>>>0,e[6][1]=P>>>0,P=e[7][1]+Zt,e[7][0]=e[7][0]+pt+(P/4294967296>>>0)>>>0,e[7][1]=P>>>0,$-=128}}});var P5=G((qE,R5)=>{R5.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 N5=G((VE,a2)=>{"use strict";var Nh=Object.prototype.hasOwnProperty,ue="~";function M0(){}Object.create&&(M0.prototype=Object.create(null),new M0().__proto__||(ue=!1));function kh(e,t,r){this.fn=e,this.context=t,this.once=r||!1}function L5(e,t,r,n,i){if(typeof r!="function")throw new TypeError("The listener must be a function");var o=new kh(r,n||e,i),s=ue?ue+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 d1(e,t){--e._eventsCount===0?e._events=new M0:delete e._events[t]}function ie(){this._events=new M0,this._eventsCount=0}ie.prototype.eventNames=function(){var t=[],r,n;if(this._eventsCount===0)return t;for(n in r=this._events)Nh.call(r,n)&&t.push(ue?n.slice(1):n);return Object.getOwnPropertySymbols?t.concat(Object.getOwnPropertySymbols(r)):t};ie.prototype.listeners=function(t){var r=ue?ue+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};ie.prototype.listenerCount=function(t){var r=ue?ue+t:t,n=this._events[r];return n?n.fn?1:n.length:0};ie.prototype.emit=function(t,r,n,i,o,s){var a=ue?ue+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};ie.prototype.on=function(t,r,n){return L5(this,t,r,n,!1)};ie.prototype.once=function(t,r,n){return L5(this,t,r,n,!0)};ie.prototype.removeListener=function(t,r,n,i){var o=ue?ue+t:t;if(!this._events[o])return this;if(!r)return d1(this,o),this;var s=this._events[o];if(s.fn)s.fn===r&&(!i||s.once)&&(!n||s.context===n)&&d1(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:d1(this,o)}return this};ie.prototype.removeAllListeners=function(t){var r;return t?(r=ue?ue+t:t,this._events[r]&&d1(this,r)):(this._events=new M0,this._eventsCount=0),this};ie.prototype.off=ie.prototype.removeListener;ie.prototype.addListener=ie.prototype.on;ie.prefixed=ue;ie.EventEmitter=ie;typeof a2<"u"&&(a2.exports=ie)});var p2=G((nS,d2)=>{"use strict";var n0=typeof Reflect=="object"?Reflect:null,G5=n0&&typeof n0.apply=="function"?n0.apply:function(t,r,n){return Function.prototype.apply.call(t,r,n)},S1;n0&&typeof n0.ownKeys=="function"?S1=n0.ownKeys:Object.getOwnPropertySymbols?S1=function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:S1=function(t){return Object.getOwnPropertyNames(t)};function Kh(e){console&&console.warn&&console.warn(e)}var Y5=Number.isNaN||function(t){return t!==t};function gt(){gt.init.call(this)}d2.exports=gt;d2.exports.once=Hh;gt.EventEmitter=gt;gt.prototype._events=void 0;gt.prototype._eventsCount=0;gt.prototype._maxListeners=void 0;var Q5=10;function I1(e){if(typeof e!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}Object.defineProperty(gt,"defaultMaxListeners",{enumerable:!0,get:function(){return Q5},set:function(e){if(typeof e!="number"||e<0||Y5(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");Q5=e}});gt.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0};gt.prototype.setMaxListeners=function(t){if(typeof t!="number"||t<0||Y5(t))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+t+".");return this._maxListeners=t,this};function W5(e){return e._maxListeners===void 0?gt.defaultMaxListeners:e._maxListeners}gt.prototype.getMaxListeners=function(){return W5(this)};gt.prototype.emit=function(t){for(var r=[],n=1;n<arguments.length;n++)r.push(arguments[n]);var i=t==="error",o=this._events;if(o!==void 0)i=i&&o.error===void 0;else if(!i)return!1;if(i){var s;if(r.length>0&&(s=r[0]),s instanceof Error)throw s;var a=new Error("Unhandled error."+(s?" ("+s.message+")":""));throw a.context=s,a}var c=o[t];if(c===void 0)return!1;if(typeof c=="function")G5(c,this,r);else for(var u=c.length,f=t8(c,u),n=0;n<u;++n)G5(f[n],this,r);return!0};function Z5(e,t,r,n){var i,o,s;if(I1(r),o=e._events,o===void 0?(o=e._events=Object.create(null),e._eventsCount=0):(o.newListener!==void 0&&(e.emit("newListener",t,r.listener?r.listener:r),o=e._events),s=o[t]),s===void 0)s=o[t]=r,++e._eventsCount;else if(typeof s=="function"?s=o[t]=n?[r,s]:[s,r]:n?s.unshift(r):s.push(r),i=W5(e),i>0&&s.length>i&&!s.warned){s.warned=!0;var a=new Error("Possible EventEmitter memory leak detected. "+s.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");a.name="MaxListenersExceededWarning",a.emitter=e,a.type=t,a.count=s.length,Kh(a)}return e}gt.prototype.addListener=function(t,r){return Z5(this,t,r,!1)};gt.prototype.on=gt.prototype.addListener;gt.prototype.prependListener=function(t,r){return Z5(this,t,r,!0)};function qh(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function X5(e,t,r){var n={fired:!1,wrapFn:void 0,target:e,type:t,listener:r},i=qh.bind(n);return i.listener=r,n.wrapFn=i,i}gt.prototype.once=function(t,r){return I1(r),this.on(t,X5(this,t,r)),this};gt.prototype.prependOnceListener=function(t,r){return I1(r),this.prependListener(t,X5(this,t,r)),this};gt.prototype.removeListener=function(t,r){var n,i,o,s,a;if(I1(r),i=this._events,i===void 0)return this;if(n=i[t],n===void 0)return this;if(n===r||n.listener===r)--this._eventsCount===0?this._events=Object.create(null):(delete i[t],i.removeListener&&this.emit("removeListener",t,n.listener||r));else if(typeof n!="function"){for(o=-1,s=n.length-1;s>=0;s--)if(n[s]===r||n[s].listener===r){a=n[s].listener,o=s;break}if(o<0)return this;o===0?n.shift():Vh(n,o),n.length===1&&(i[t]=n[0]),i.removeListener!==void 0&&this.emit("removeListener",t,a||r)}return this};gt.prototype.off=gt.prototype.removeListener;gt.prototype.removeAllListeners=function(t){var r,n,i;if(n=this._events,n===void 0)return this;if(n.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):n[t]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete n[t]),this;if(arguments.length===0){var o=Object.keys(n),s;for(i=0;i<o.length;++i)s=o[i],s!=="removeListener"&&this.removeAllListeners(s);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if(r=n[t],typeof r=="function")this.removeListener(t,r);else if(r!==void 0)for(i=r.length-1;i>=0;i--)this.removeListener(t,r[i]);return this};function j5(e,t,r){var n=e._events;if(n===void 0)return[];var i=n[t];return i===void 0?[]:typeof i=="function"?r?[i.listener||i]:[i]:r?zh(i):t8(i,i.length)}gt.prototype.listeners=function(t){return j5(this,t,!0)};gt.prototype.rawListeners=function(t){return j5(this,t,!1)};gt.listenerCount=function(e,t){return typeof e.listenerCount=="function"?e.listenerCount(t):J5.call(e,t)};gt.prototype.listenerCount=J5;function J5(e){var t=this._events;if(t!==void 0){var r=t[e];if(typeof r=="function")return 1;if(r!==void 0)return r.length}return 0}gt.prototype.eventNames=function(){return this._eventsCount>0?S1(this._events):[]};function t8(e,t){for(var r=new Array(t),n=0;n<t;++n)r[n]=e[n];return r}function Vh(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}function zh(e){for(var t=new Array(e.length),r=0;r<t.length;++r)t[r]=e[r].listener||e[r];return t}function Hh(e,t){return new Promise(function(r,n){function i(s){e.removeListener(t,o),n(s)}function o(){typeof e.removeListener=="function"&&e.removeListener("error",i),r([].slice.call(arguments))}e8(e,t,o,{once:!0}),t!=="error"&&$h(e,i,{once:!0})})}function $h(e,t,r){typeof e.on=="function"&&e8(e,"error",t,r)}function e8(e,t,r,n){if(typeof e.on=="function")n.once?e.once(t,r):e.on(t,r);else if(typeof e.addEventListener=="function")e.addEventListener(t,function i(o){n.once&&e.removeEventListener(t,i),r(o)});else throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof e)}});var Ed={};Vt(Ed,{EventTypes:()=>S2,MessageType:()=>I2,kadDHT:()=>wd});var k2=Symbol.for("@libp2p/content-routing");var j0=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"},R=class extends Error{code;props;constructor(t,r,n){super(t),this.code=r,this.name=n?.name??"CodeError",this.props=n??{}}};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 kt(t,r))}},H1=class extends Event{detail;constructor(t,r){super(t,r),this.detail=r?.detail}},kt=globalThis.CustomEvent??H1;var D2=Symbol.for("@libp2p/peer-discovery");var O2=Symbol.for("@libp2p/peer-routing");var de=ct(q2(),1);var W1={};Vt(W1,{base32:()=>Ie,base32hex:()=>G8,base32hexpad:()=>Y8,base32hexpadupper:()=>W8,base32hexupper:()=>Q8,base32pad:()=>H8,base32padupper:()=>$8,base32upper:()=>z8,base32z:()=>Z8});function F8(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,_=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*_[L]>>>0,_[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&&_[N]===0;)N++;for(var Q=c.repeat(y);N<v;++N)Q+=e.charAt(_[N]);return Q}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 _=r[h.charCodeAt(y)];if(_===255)return;for(var E=0,S=x-1;(_!==0||E<m)&&S!==-1;S--,E++)_+=a*v[S]>>>0,v[S]=_%256>>>0,_=_/256>>>0;if(_!==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)),Q=g;L!==x;)N[Q++]=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 M8=F8,K8=M8,V2=K8;var Ld=new Uint8Array(0);var z2=(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},or=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 H2=e=>new TextEncoder().encode(e),$2=e=>new TextDecoder().decode(e);var $1=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")}},G1=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 Q2(this,t)}},Q1=class{constructor(t){this.decoders=t}or(t){return Q2(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`)}},Q2=(e,t)=>new Q1({...e.decoders||{[e.prefix]:e},...t.decoders||{[t.prefix]:t}}),Y1=class{constructor(t,r,n,i){this.name=t,this.prefix=r,this.baseEncode=n,this.baseDecode=i,this.encoder=new $1(t,r,n),this.decoder=new G1(t,r,i)}encode(t){return this.encoder.encode(t)}decode(t){return this.decoder.decode(t)}},Sn=({name:e,prefix:t,encode:r,decode:n})=>new Y1(e,t,r,n),Ar=({prefix:e,name:t,alphabet:r})=>{let{encode:n,decode:i}=V2(r,t);return Sn({prefix:e,name:t,encode:n,decode:o=>or(i(o))})},q8=(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},V8=(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},Pt=({name:e,prefix:t,bitsPerChar:r,alphabet:n})=>Sn({prefix:t,name:e,encode(i){return V8(i,n,r)},decode(i){return q8(i,n,r,e)}});var Ie=Pt({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),z8=Pt({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),H8=Pt({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),$8=Pt({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),G8=Pt({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),Q8=Pt({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),Y8=Pt({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),W8=Pt({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),Z8=Pt({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var Z1={};Vt(Z1,{base58btc:()=>Dt,base58flickr:()=>X8});var Dt=Ar({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),X8=Ar({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var X1={};Vt(X1,{base64:()=>Yr,base64pad:()=>j8,base64url:()=>J8,base64urlpad:()=>t6});var Yr=Pt({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),j8=Pt({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),J8=Pt({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),t6=Pt({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});de.default.formatters.b=e=>e==null?"undefined":Dt.baseEncode(e);de.default.formatters.t=e=>e==null?"undefined":Ie.baseEncode(e);de.default.formatters.m=e=>e==null?"undefined":Yr.baseEncode(e);de.default.formatters.p=e=>e==null?"undefined":e.toString();de.default.formatters.c=e=>e==null?"undefined":e.toString();de.default.formatters.k=e=>e==null?"undefined":e.toString();de.default.formatters.a=e=>e==null?"undefined":e.toString();function e6(e){let t=()=>{};return t.enabled=!1,t.color="",t.diff=0,t.log=()=>{},t.namespace=e,t.destroy=()=>!0,t.extend=()=>t,t}function J(e){let t=e6(`${e}:trace`);return de.default.enabled(`${e}:trace`)&&de.default.names.map(r=>r.toString()).find(r=>r.includes(":trace"))!=null&&(t=(0,de.default)(`${e}:trace`)),Object.assign((0,de.default)(e),{error:(0,de.default)(`${e}:error`),trace:t})}function r6(e){return e[Symbol.asyncIterator]!=null}function n6(e){if(r6(e))return(async()=>{for await(let t of e);})();for(let t of e);}var c0=n6;function re(){let e={};return e.promise=new Promise((t,r)=>{e.resolve=t,e.reject=r}),e}var ei=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}},In=class{size;hwm;head;tail;constructor(t={}){this.hwm=t.splitLimit??16,this.head=new ei(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 ei(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 j1=class extends Error{type;code;constructor(t,r){super(t??"The operation was aborted"),this.type="aborted",this.code=r??"ABORT_ERR"}};function ri(e={}){return i6(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 i6(e,t){t=t??{};let r=t.onEnd,n=new In,i,o,s,a=re(),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=re()})}},u=g=>o!=null?o(g):(n.push(g),i),f=g=>(n=new In,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 In,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((_,E)=>{v=()=>{E(new j1)},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}},i}function o6(e){return e[Symbol.asyncIterator]!=null}function s6(...e){let t=[];for(let r of e)o6(r)||t.push(r);return t.length===e.length?function*(){for(let r of t)yield*r}():async function*(){let r=ri({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 Ae=s6;var na=ct(Y2(),1);var W2="[a-fA-F\\d:]",_r=e=>e&&e.includeBoundaries?`(?:(?<=\\s|^)(?=${W2})|(?<=${W2})(?=\\s|$))`:"",_e="(?: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}",zt="[a-fA-F\\d]{1,4}",ni=`
16
16
  (?:
17
- (?:${Vt}:){7}(?:${Vt}|:)| // 1:2:3:4:5:6:7:: 1:2:3:4:5:6:7:8
18
- (?:${Vt}:){6}(?:${Se}|:${Vt}|:)| // 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
- (?:${Vt}:){5}(?::${Se}|(?::${Vt}){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
- (?:${Vt}:){4}(?:(?::${Vt}){0,1}:${Se}|(?::${Vt}){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
- (?:${Vt}:){3}(?:(?::${Vt}){0,2}:${Se}|(?::${Vt}){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
- (?:${Vt}:){2}(?:(?::${Vt}){0,3}:${Se}|(?::${Vt}){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
- (?:${Vt}:){1}(?:(?::${Vt}){0,4}:${Se}|(?::${Vt}){1,6}|:)| // 1:: 1::3:4:5:6:7:8 1::8 1::3:4:5:6:7:1.2.3.4
24
- (?::(?:(?::${Vt}){0,5}:${Se}|(?::${Vt}){1,7}|:)) // ::2:3:4:5:6:7:8 ::2:3:4:5:6:7:8 ::8 ::1.2.3.4
17
+ (?:${zt}:){7}(?:${zt}|:)| // 1:2:3:4:5:6:7:: 1:2:3:4:5:6:7:8
18
+ (?:${zt}:){6}(?:${_e}|:${zt}|:)| // 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
+ (?:${zt}:){5}(?::${_e}|(?::${zt}){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
+ (?:${zt}:){4}(?:(?::${zt}){0,1}:${_e}|(?::${zt}){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
+ (?:${zt}:){3}(?:(?::${zt}){0,2}:${_e}|(?::${zt}){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
+ (?:${zt}:){2}(?:(?::${zt}){0,3}:${_e}|(?::${zt}){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
+ (?:${zt}:){1}(?:(?::${zt}){0,4}:${_e}|(?::${zt}){1,6}|:)| // 1:: 1::3:4:5:6:7:8 1::8 1::3:4:5:6:7:1.2.3.4
24
+ (?::(?:(?::${zt}){0,5}:${_e}|(?::${zt}){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(),g6=new RegExp(`(?:^${Se}$)|(?:^${ei}$)`),m6=new RegExp(`^${Se}$`),x6=new RegExp(`^${ei}$`),J1=e=>e&&e.exact?g6:new RegExp(`(?:${Er(e)}${Se}${Er(e)})|(?:${Er(e)}${ei}${Er(e)})`,"g");J1.v4=e=>e&&e.exact?m6:new RegExp(`${Er(e)}${Se}${Er(e)}`,"g");J1.v6=e=>e&&e.exact?x6:new RegExp(`${Er(e)}${ei}${Er(e)}`,"g");var W2=J1;var ri=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 Z2=45,v6=15,En=new ri;function to(e){if(!(e.length>v6))return En.new(e).parseWith(()=>En.readIPv4Addr())}function eo(e){if(e.includes("%")&&(e=e.split("%")[0]),!(e.length>Z2))return En.new(e).parseWith(()=>En.readIPv6Addr())}function ni(e){if(e.includes("%")&&(e=e.split("%")[0]),!(e.length>Z2))return En.new(e).parseWith(()=>En.readIPAddr())}function X2(e){return!!to(e)}function j2(e){return!!eo(e)}function Sn(e){return!!ni(e)}var na=ot(ta(),1),{isValid:b6,parse:w6}=na.default,E6=["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"],S6=E6.map(e=>new ra.Netmask(e));function I6(e){for(let t of S6)if(t.contains(e))return!0;return!1}function ea(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 ia=e=>{if(b6(e)){let t=w6(e);if(t.kind()==="ipv4")return I6(t.toNormalizedString());if(t.kind()==="ipv6")return ea(e)}else if(Sn(e)&&W2.v6().test(e))return ea(e)};var c0=ia;var oa="/lan",sa="/ipfs",aa="/kad/1.0.0",ca="/dht/record",ro="/dht/provider";function A6(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 ua=A6;function B6(e){return e[Symbol.asyncIterator]!=null}function _6(e,t){if(B6(e))return async function*(){for await(let a of e)yield t(a)}();let r=ua(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 oi=_6;var si=globalThis.CustomEvent??Event;async function*u0(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=ee(),a=ee(),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=ee(),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 si("task-complete"))},g=>{y.done=!0,y.err=g,i.dispatchEvent(new si("task-complete"))})}c=!0,i.dispatchEvent(new si("task-complete"))}catch(h){u=h,i.dispatchEvent(new si("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=ee(),await a.promise),u!=null)throw u;if(n?yield*p():yield*d(),c&&o.length===0)break}}function Ie(e,...t){if(e==null)throw new Error("Empty pipeline");if(no(e)){let n=e;e=()=>n.source}else if(la(e)||fa(e)){let n=e;e=()=>n}let r=[e,...t];if(r.length>1&&no(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++)no(r[n])&&(r[n]=T6(r[n]));return C6(...r)}var C6=(...e)=>{let t;for(;e.length>0;)t=e.shift()(t);return t},fa=e=>e?.[Symbol.asyncIterator]!=null,la=e=>e?.[Symbol.iterator]!=null,no=e=>e==null?!1:e.sink!=null&&e.source!=null,T6=e=>t=>{let r=e.sink(t);if(r?.then!=null){let n=ti({objectMode:!0});r.then(()=>{n.end()},s=>{n.end(s)});let i,o=e.source;if(fa(o))i=async function*(){yield*o,n.end()};else if(la(o))i=function*(){yield*o,n.end()};else throw new Error("Unknown duplex source type - must be Iterable or AsyncIterable");return Ee(n,i())}return e.source};function gt(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 ha=Symbol.for("@libp2p/peer-id");var io={};qt(io,{identity:()=>R6});var R6=bn({prefix:"\0",name:"identity",encode:e=>H2(e),decode:e=>z2(e)});var oo={};qt(oo,{base2:()=>P6});var P6=Rt({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var so={};qt(so,{base8:()=>L6});var L6=Rt({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var ao={};qt(ao,{base10:()=>N6});var N6=wr({prefix:"9",name:"base10",alphabet:"0123456789"});var co={};qt(co,{base16:()=>k6,base16upper:()=>D6});var k6=Rt({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),D6=Rt({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var uo={};qt(uo,{base36:()=>O6,base36upper:()=>U6});var O6=wr({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),U6=wr({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var fo={};qt(fo,{base256emoji:()=>V6});var da=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}"),F6=da.reduce((e,t,r)=>(e[r]=t,e),[]),M6=da.reduce((e,t,r)=>(e[t.codePointAt(0)]=r,e),[]);function K6(e){return e.reduce((t,r)=>(t+=F6[r],t),"")}function q6(e){let t=[];for(let r of e){let n=M6[r.codePointAt(0)];if(n===void 0)throw new Error(`Non-base256emoji character: ${r}`);t.push(n)}return new Uint8Array(t)}var V6=bn({prefix:"\u{1F680}",name:"base256emoji",encode:K6,decode:q6});var yo={};qt(yo,{sha256:()=>_t,sha512:()=>au});var z6=ga,pa=128,H6=127,$6=~H6,G6=Math.pow(2,31);function ga(e,t,r){t=t||[],r=r||0;for(var n=r;e>=G6;)t[r++]=e&255|pa,e/=128;for(;e&$6;)t[r++]=e&255|pa,e>>>=7;return t[r]=e|0,ga.bytes=r-n+1,t}var Q6=lo,Y6=128,ya=127;function lo(e,n){var r=0,n=n||0,i=0,o=n,s,a=e.length;do{if(o>=a)throw lo.bytes=0,new RangeError("Could not decode varint");s=e[o++],r+=i<28?(s&ya)<<i:(s&ya)*Math.pow(2,i),i+=7}while(s>=Y6);return lo.bytes=o-n,r}var W6=Math.pow(2,7),Z6=Math.pow(2,14),X6=Math.pow(2,21),j6=Math.pow(2,28),J6=Math.pow(2,35),tu=Math.pow(2,42),eu=Math.pow(2,49),ru=Math.pow(2,56),nu=Math.pow(2,63),iu=function(e){return e<W6?1:e<Z6?2:e<X6?3:e<j6?4:e<J6?5:e<tu?6:e<eu?7:e<ru?8:e<nu?9:10},ou={encode:z6,decode:Q6,encodingLength:iu},su=ou,f0=su;var l0=(e,t=0)=>[f0.decode(e,t),f0.decode.bytes],In=(e,t,r=0)=>(f0.encode(e,t,r),t),An=e=>f0.encodingLength(e);var Fe=(e,t)=>{let r=t.byteLength,n=An(e),i=n+An(r),o=new Uint8Array(i+r);return In(e,o,0),In(r,o,n),o.set(t,i),new Bn(e,r,t,o)},$r=e=>{let t=er(e),[r,n]=l0(t),[i,o]=l0(t.subarray(n)),s=t.subarray(n+o);if(s.byteLength!==i)throw new Error("Incorrect length");return new Bn(r,i,s,t)},ma=(e,t)=>{if(e===t)return!0;{let r=t;return e.code===r.code&&e.size===r.size&&r.bytes instanceof Uint8Array&&V2(e.bytes,r.bytes)}},Bn=class{constructor(t,r,n,i){this.code=t,this.size=r,this.digest=n,this.bytes=i}};var po=({name:e,code:t,encode:r})=>new ho(e,t,r),ho=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?Fe(this.code,r):r.then(n=>Fe(this.code,n))}else throw Error("Unknown type, must be binary type")}};var va=e=>async t=>new Uint8Array(await crypto.subtle.digest(e,t)),_t=po({name:"sha2-256",code:18,encode:va("SHA-256")}),au=po({name:"sha2-512",code:19,encode:va("SHA-512")});var go={};qt(go,{identity:()=>Sr});var ba=0,cu="identity",wa=er,uu=e=>Fe(ba,wa(e)),Sr={code:ba,name:cu,encode:wa,digest:uu};var iy=new TextEncoder,oy=new TextDecoder;var Ea=(e,t)=>{let{bytes:r,version:n}=e;switch(n){case 0:return du(r,mo(e),t||kt.encoder);default:return pu(r,mo(e),t||we.encoder)}};var Sa=new WeakMap,mo=e=>{let t=Sa.get(e);if(t==null){let r=new Map;return Sa.set(e,r),r}return t},ne=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!==h0)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(r.code!==yu)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=Fe(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&&ma(t.multihash,n.multihash)}toString(t){return Ea(this,t)}toJSON(){return{"/":Ea(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||Ia(n,i,o.bytes))}else if(r[gu]===!0){let{version:n,multihash:i,code:o}=r,s=$r(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!==h0)throw new Error(`Version 0 CID must use dag-pb (code: ${h0}) block encoding`);return new e(t,r,n,n.bytes)}case 1:{let i=Ia(t,r,n.bytes);return new e(t,r,n,i)}default:throw new Error("Invalid version")}}static createV0(t){return e.create(0,h0,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=er(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 Bn(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]=l0(t.subarray(r));return r+=p,l},i=n(),o=h0;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]=hu(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 mo(o).set(n,t),o}},hu=(e,t)=>{switch(e[0]){case"Q":{let r=t||kt;return[kt.prefix,r.decode(`${kt.prefix}${e}`)]}case kt.prefix:{let r=t||kt;return[kt.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)]}}},du=(e,t,r)=>{let{prefix:n}=r;if(n!==kt.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},pu=(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},h0=112,yu=18,Ia=(e,t,r)=>{let n=An(e),i=n+An(t),o=new Uint8Array(i+r.byteLength);return In(e,o,0),In(t,o,n),o.set(r,i),o},gu=Symbol.for("@ipld/js-cid/CID");var Ir={...io,...oo,...so,...ao,...co,...W1,...uo,...Z1,...X1,...fo},yy={...yo,...go};var mu=Symbol.for("nodejs.util.inspect.custom"),Aa=Object.values(Ir).map(e=>e.decoder).reduce((e,t)=>e.or(t),Ir.identity.decoder),Ba=114,xo=36,vo=37,d0=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()})`}[ha]=!0;toString(){return this.string==null&&(this.string=kt.encode(this.multihash.bytes).slice(1)),this.string}toCID(){return ne.createV1(Ba,this.multihash)}toBytes(){return this.multihash.bytes}toJSON(){return this.toString()}equals(t){if(t instanceof Uint8Array)return gt(this.multihash.bytes,t);if(typeof t=="string")return Pt(t).equals(this);if(t?.multihash?.bytes!=null)return gt(this.multihash.bytes,t.multihash.bytes);throw new Error("not valid Id")}[mu](){return`PeerId(${this.toString()})`}},_n=class extends d0{type="RSA";publicKey;constructor(t){super({...t,type:"RSA"}),this.publicKey=t.publicKey}},Cn=class extends d0{type="Ed25519";publicKey;constructor(t){super({...t,type:"Ed25519"}),this.publicKey=t.multihash.digest}},Tn=class extends d0{type="secp256k1";publicKey;constructor(t){super({...t,type:"secp256k1"}),this.publicKey=t.multihash.digest}};function Pt(e,t){if(t=t??Aa,e.charAt(0)==="1"||e.charAt(0)==="Q"){let r=$r(kt.decode(`z${e}`));return e.startsWith("12D")?new Cn({multihash:r}):e.startsWith("16U")?new Tn({multihash:r}):new _n({multihash:r})}return Qr(Aa.decode(e))}function Qr(e){try{let t=$r(e);if(t.code===Sr.code){if(t.digest.length===xo)return new Cn({multihash:t});if(t.digest.length===vo)return new Tn({multihash:t})}if(t.code===_t.code)return new _n({multihash:t})}catch{return xu(ne.decode(e))}throw new Error("Supplied PeerID CID is invalid")}function xu(e){if(e==null||e.multihash==null||e.version==null||e.version===1&&e.code!==Ba)throw new Error("Supplied PeerID CID is invalid");let t=e.multihash;if(t.code===_t.code)return new _n({multihash:e.multihash});if(t.code===Sr.code){if(t.digest.length===xo)return new Cn({multihash:e.multihash});if(t.digest.length===vo)return new Tn({multihash:e.multihash})}throw new Error("Supplied PeerID CID is invalid")}async function _a(e,t){return e.length===xo?new Cn({multihash:Fe(Sr.code,e),privateKey:t}):e.length===vo?new Tn({multihash:Fe(Sr.code,e),privateKey:t}):new _n({multihash:await _t.digest(e),publicKey:e,privateKey:t})}function rr(e){return globalThis.Buffer!=null?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):e}function nr(e=0){return globalThis.Buffer?.alloc!=null?rr(globalThis.Buffer.alloc(e)):new Uint8Array(e)}function le(e=0){return globalThis.Buffer?.allocUnsafe!=null?rr(globalThis.Buffer.allocUnsafe(e)):new Uint8Array(e)}function Ta(e,t,r,n){return{name:e,prefix:t,encoder:{name:e,prefix:t,encode:r},decoder:{decode:n}}}var Ca=Ta("utf8","u",e=>"u"+new TextDecoder("utf8").decode(e),e=>new TextEncoder().encode(e.substring(1))),bo=Ta("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=le(e.length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t}),vu={utf8:Ca,"utf-8":Ca,hex:Ir.base16,latin1:bo,ascii:bo,binary:bo,...Ir},ci=vu;function $(e,t="utf8"){let r=ci[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 vt(e,t){t==null&&(t=e.reduce((i,o)=>i+o.length,0));let r=le(t),n=0;for(let i of e)r.set(i,n),n+=i.length;return rr(r)}var Pn=ot(ui(),1);var Qy=parseInt("0xFFFF",16),Yy=new Uint8Array([0,0,0,0,0,0,0,0,0,0,255,255]);function St(e,t="utf8"){let r=ci[t];if(r==null)throw new Error(`Unsupported encoding "${t}"`);return(t==="utf8"||t==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?rr(globalThis.Buffer.from(e,"utf-8")):r.decoder.decode(`${r.prefix}${e}`)}var Me=ot(ui(),1);var qa=X2,Uu=j2,So=function(e){let t=0;if(e=e.toString().trim(),qa(e)){let r=new Uint8Array(t+4);return e.split(/\./g).forEach(n=>{r[t++]=parseInt(n,10)&255}),r}if(Uu(e)){let r=e.split(":",8),n;for(n=0;n<r.length;n++){let o=qa(r[n]),s;o&&(s=So(r[n]),r[n]=$(s.slice(0,2),"base16")),s!=null&&++n<8&&r.splice(n,0,$(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")},Va=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 Rn={},Io={},Mu=[[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"]];Mu.forEach(e=>{let t=Ku(...e);Io[t.code]=t,Rn[t.name]=t});function Ku(e,t,r,n,i){return{code:e,size:t,name:r,resolvable:!!n,path:!!i}}function pt(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(Rn[e]!=null)return Rn[e];throw new Error(`no protocol with name: ${e}`)}throw new Error(`invalid protocol id type: ${typeof e}`)}var Lg=pt("ip4"),Ng=pt("ip6"),kg=pt("ipcidr");function Bo(e,t){switch(pt(e).code){case 4:case 41:return Vu(t);case 42:return $a(t);case 6:case 273:case 33:case 132:return Qa(t).toString();case 53:case 54:case 55:case 56:case 400:case 449:case 777:return $a(t);case 421:return Gu(t);case 444:return Ga(t);case 445:return Ga(t);case 466:return $u(t);default:return $(t,"base16")}}function _o(e,t){switch(pt(e).code){case 4:return za(t);case 41:return za(t);case 42:return Ha(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 Ha(t);case 421:return zu(t);case 444:return Qu(t);case 445:return Yu(t);case 466:return Hu(t);default:return St(t,"base16")}}var Ao=Object.values(Ir).map(e=>e.decoder),qu=function(){let e=Ao[0].or(Ao[1]);return Ao.slice(2).forEach(t=>e=e.or(t)),e}();function za(e){if(!Sn(e))throw new Error("invalid ip address");return So(e)}function Vu(e){let t=Va(e,0,e.length);if(t==null)throw new Error("ipBuff is required");if(!Sn(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 Qa(e){return new DataView(e.buffer).getUint16(e.byteOffset)}function Ha(e){let t=St(e),r=Uint8Array.from(Me.default.encode(t.length));return vt([r,t],r.length+t.length)}function $a(e){let t=Me.default.decode(e);if(e=e.slice(Me.default.decode.bytes),e.length!==t)throw new Error("inconsistent lengths");return $(e)}function zu(e){let t;e[0]==="Q"||e[0]==="1"?t=$r(kt.decode(`z${e}`)).bytes:t=ne.parse(e).multihash.bytes;let r=Uint8Array.from(Me.default.encode(t.length));return vt([r,t],r.length+t.length)}function Hu(e){let t=qu.decode(e),r=Uint8Array.from(Me.default.encode(t.length));return vt([r,t],r.length+t.length)}function $u(e){let t=Me.default.decode(e),r=e.slice(Me.default.decode.bytes);if(r.length!==t)throw new Error("inconsistent lengths");return"u"+$(r,"base64url")}function Gu(e){let t=Me.default.decode(e),r=e.slice(Me.default.decode.bytes);if(r.length!==t)throw new Error("inconsistent lengths");return $(r,"base58btc")}function Qu(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 vt([r,i],r.length+i.length)}function Yu(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 vt([r,i],r.length+i.length)}function Ga(e){let t=e.slice(0,e.length-2),r=e.slice(e.length-2),n=$(t,"base32"),i=Qa(r);return`${n}:${i}`}function Ya(e){e=To(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=pt(s);if(a.size===0){t.push([a.code]),r.push([a.code]);continue}if(o++,o>=i.length)throw Za("invalid address: "+e);if(a.path===!0){n=To(i.slice(o).join("/")),t.push([a.code,_o(a.code,n)]),r.push([a.code,n]);break}let c=_o(a.code,i[o]);t.push([a.code,c]),r.push([a.code,Bo(a.code,c)])}return{string:Wa(r),bytes:Po(t),tuples:t,stringTuples:r,path:n}}function Ro(e){let t=[],r=[],n=null,i=0;for(;i<e.length;){let o=Pn.default.decode(e,i),s=Pn.default.decode.bytes??0,a=pt(o),c=Wu(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 Za("Invalid address Uint8Array: "+$(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:Wa(r),tuples:t,stringTuples:r,path:n}}function Wa(e){let t=[];return e.map(r=>{let n=pt(r[0]);return t.push(n.name),r.length>1&&r[1]!=null&&t.push(r[1]),null}),To(t.join("/"))}function Po(e){return vt(e.map(t=>{let r=pt(t[0]),n=Uint8Array.from(Pn.default.encode(r.code));return t.length>1&&t[1]!=null&&(n=vt([n,t[1]])),n}))}function Wu(e,t){return e.size>0?e.size/8:e.size===0?0:Pn.default.decode(t)+(Pn.default.decode.bytes??0)}function To(e){return"/"+e.trim().split("/").filter(t=>t).join("/")}function Za(e){return new Error("Error parsing address: "+e)}var Zu=Symbol.for("nodejs.util.inspect.custom"),Xu=[pt("dns").code,pt("dns4").code,pt("dns6").code,pt("dnsaddr").code],ju=new Map,Xa=Symbol.for("@multiformats/js-multiaddr/multiaddr");function Ju(e){return!!e?.[Xa]}var No=class e{bytes;#t;#e;#r;#n;[Xa]=!0;constructor(t){t==null&&(t="");let r;if(t instanceof Uint8Array)r=Ro(t);else if(typeof t=="string"){if(t.length>0&&t.charAt(0)!=="/")throw new Error(`multiaddr "${t}" must start with a "/"`);r=Ya(t)}else if(Ju(t))r=Ro(t.bytes);else throw new Error("addr must be a string, Buffer, or another Multiaddr");this.bytes=r.bytes,this.#t=r.string,this.#e=r.tuples,this.#r=r.stringTuples,this.#n=r.path}toString(){return this.#t}toJSON(){return this.toString()}toOptions(){let t,r,n,i,o="",s=pt("tcp"),a=pt("udp"),c=pt("ip4"),u=pt("ip6"),f=pt("dns6"),l=pt("ip6zone");for(let[d,h]of this.stringTuples())d===l.code&&(o=`%${h??""}`),Xu.includes(d)&&(r=s.name,i=443,n=`${h??""}${o}`,t=d===f.code?6:4),(d===s.code||d===a.code)&&(r=pt(d).name,i=parseInt(h??"")),(d===c.code||d===u.code)&&(r=pt(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.#e.map(([t])=>Object.assign({},pt(t)))}protoCodes(){return this.#e.map(([t])=>t)}protoNames(){return this.#e.map(([t])=>pt(t).name)}tuples(){return this.#e}stringTuples(){return this.#r}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===Rn.p2p.code&&t.push([n,i]),n===Rn["p2p-circuit"].code&&(t=[])});let r=t.pop();if(r?.[1]!=null){let n=r[1];return n[0]==="Q"||n[0]==="1"?$(kt.decode(`z${n}`),"base58btc"):$(ne.parse(n).multihash.bytes,"base58btc")}return null}catch{return null}}getPath(){return this.#n}equals(t){return gt(this.bytes,t.bytes)}async resolve(t){let r=this.protos().find(o=>o.resolvable);if(r==null)return[this];let n=ju.get(r.name);if(n==null)throw new R(`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)}[Zu](){return`Multiaddr(${this.#t})`}};function Lo(e){return new No(e)}var Go=ot(Fo(),1),F3=ot(R3(),1),M3=ot(Wr(),1),Qo=ot($o(),1),K3=ot(U3(),1);function uf(){M3.default._configure(),Go.default._configure(F3.default),Qo.default._configure(K3.default)}uf();var q3=["uint64","int64","sint64","fixed64","sfixed64"];function ff(e){for(let t of q3){if(e[t]==null)continue;let r=e[t];e[t]=function(){return BigInt(r.call(this).toString())}}return e}function Yo(e){return ff(new Go.default(e))}function lf(e){for(let t of q3){if(e[t]==null)continue;let r=e[t];e[t]=function(n){return r.call(this,n.toString())}}return e}function Wo(){return lf(Qo.default.create())}function Ve(e,t){let r=Yo(e instanceof Uint8Array?e:e.subarray());return t.decode(r)}function ze(e,t){let r=Wo();return t.encode(e,r,{lengthDelimited:!1}),r.finish()}var Nn;(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"})(Nn||(Nn={}));function pi(e,t,r,n){return{name:e,type:t,encode:r,decode:n}}function kn(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 pi("enum",Nn.VARINT,r,n)}function He(e,t){return pi("message",Nn.LENGTH_DELIMITED,e,t)}var g0;(function(e){let t;e.codec=()=>(t==null&&(t=He((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=>ze(r,e.codec()),e.decode=r=>Ve(r,e.codec())})(g0||(g0={}));function V3(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 z3(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 jt=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 g0.encode(this.prepareSerialize())}prepareSerialize(){return{key:this.key,value:this.value,timeReceived:V3(this.timeReceived)}}static deserialize(t){let r=g0.decode(t);return new e(r.key,r.value,new Date(r.timeReceived))}static fromDeserialized(t){let r=z3(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)}};var H3;(function(e){let t;e.codec=()=>(t==null&&(t=He((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=>ze(r,e.codec()),e.decode=r=>Ve(r,e.codec())})(H3||(H3={}));var _r;(function(e){let t;(function(a){a.PUT_VALUE="PUT_VALUE",a.GET_VALUE="GET_VALUE",a.ADD_PROVIDER="ADD_PROVIDER",a.GET_PROVIDERS="GET_PROVIDERS",a.FIND_NODE="FIND_NODE",a.PING="PING"})(t=e.MessageType||(e.MessageType={}));let r;(function(a){a[a.PUT_VALUE=0]="PUT_VALUE",a[a.GET_VALUE=1]="GET_VALUE",a[a.ADD_PROVIDER=2]="ADD_PROVIDER",a[a.GET_PROVIDERS=3]="GET_PROVIDERS",a[a.FIND_NODE=4]="FIND_NODE",a[a.PING=5]="PING"})(r||(r={})),function(a){a.codec=()=>kn(r)}(t=e.MessageType||(e.MessageType={}));let n;(function(a){a.NOT_CONNECTED="NOT_CONNECTED",a.CONNECTED="CONNECTED",a.CAN_CONNECT="CAN_CONNECT",a.CANNOT_CONNECT="CANNOT_CONNECT"})(n=e.ConnectionType||(e.ConnectionType={}));let i;(function(a){a[a.NOT_CONNECTED=0]="NOT_CONNECTED",a[a.CONNECTED=1]="CONNECTED",a[a.CAN_CONNECT=2]="CAN_CONNECT",a[a.CANNOT_CONNECT=3]="CANNOT_CONNECT"})(i||(i={})),function(a){a.codec=()=>kn(i)}(n=e.ConnectionType||(e.ConnectionType={}));let o;(function(a){let c;a.codec=()=>(c==null&&(c=He((u,f,l={})=>{if(l.lengthDelimited!==!1&&f.fork(),u.id!=null&&(f.uint32(10),f.bytes(u.id)),u.addrs!=null)for(let p of u.addrs)f.uint32(18),f.bytes(p);u.connection!=null&&(f.uint32(24),e.ConnectionType.codec().encode(u.connection,f)),l.lengthDelimited!==!1&&f.ldelim()},(u,f)=>{let l={addrs:[]},p=f==null?u.len:u.pos+f;for(;u.pos<p;){let d=u.uint32();switch(d>>>3){case 1:l.id=u.bytes();break;case 2:l.addrs.push(u.bytes());break;case 3:l.connection=e.ConnectionType.codec().decode(u);break;default:u.skipType(d&7);break}}return l})),c),a.encode=u=>ze(u,a.codec()),a.decode=u=>Ve(u,a.codec())})(o=e.Peer||(e.Peer={}));let s;e.codec=()=>(s==null&&(s=He((a,c,u={})=>{if(u.lengthDelimited!==!1&&c.fork(),a.type!=null&&(c.uint32(8),e.MessageType.codec().encode(a.type,c)),a.clusterLevelRaw!=null&&(c.uint32(80),c.int32(a.clusterLevelRaw)),a.key!=null&&(c.uint32(18),c.bytes(a.key)),a.record!=null&&(c.uint32(26),c.bytes(a.record)),a.closerPeers!=null)for(let f of a.closerPeers)c.uint32(66),e.Peer.codec().encode(f,c);if(a.providerPeers!=null)for(let f of a.providerPeers)c.uint32(74),e.Peer.codec().encode(f,c);u.lengthDelimited!==!1&&c.ldelim()},(a,c)=>{let u={closerPeers:[],providerPeers:[]},f=c==null?a.len:a.pos+c;for(;a.pos<f;){let l=a.uint32();switch(l>>>3){case 1:u.type=e.MessageType.codec().decode(a);break;case 10:u.clusterLevelRaw=a.int32();break;case 2:u.key=a.bytes();break;case 3:u.record=a.bytes();break;case 8:u.closerPeers.push(e.Peer.codec().decode(a,a.uint32()));break;case 9:u.providerPeers.push(e.Peer.codec().decode(a,a.uint32()));break;default:a.skipType(l&7);break}}return u})),s),e.encode=a=>ze(a,e.codec()),e.decode=a=>Ve(a,e.codec())})(_r||(_r={}));var Ot=_r.MessageType,df=_r.ConnectionType,Q3=Object.keys(Ot),Lt=class e{type;key;clusterLevelRaw;closerPeers;providerPeers;record;constructor(t,r,n){if(!(r instanceof Uint8Array))throw new Error("Key must be a Uint8Array");this.type=t,this.key=r,this.clusterLevelRaw=n,this.closerPeers=[],this.providerPeers=[],this.record=void 0}get clusterLevel(){let t=this.clusterLevelRaw-1;return t<0?0:t}set clusterLevel(t){this.clusterLevelRaw=t}serialize(){return _r.encode({key:this.key,type:this.type,clusterLevelRaw:this.clusterLevelRaw,closerPeers:this.closerPeers.map($3),providerPeers:this.providerPeers.map($3),record:this.record==null?void 0:this.record.serialize().subarray()})}static deserialize(t){let r=_r.decode(t),n=new e(r.type??_r.MessageType.PUT_VALUE,r.key??Uint8Array.from([]),r.clusterLevelRaw??0);return n.closerPeers=r.closerPeers.map(G3),n.providerPeers=r.providerPeers.map(G3),r.record?.length!=null&&(n.record=jt.deserialize(r.record)),n}};function $3(e){return{id:e.id.toBytes(),addrs:(e.multiaddrs??[]).map(r=>r.bytes),connection:df.CONNECTED}}function G3(e){if(e.id==null)throw new Error("Invalid peer in message");return{id:Qr(e.id),multiaddrs:(e.addrs??[]).map(t=>Lo(t)),protocols:[]}}function Zo(e,t={}){let r={...e,name:"SEND_QUERY",type:0,messageName:e.type,messageType:Q3.indexOf(e.type.toString())};return t.onProgress?.(new Nt("kad-dht:query:send-query",{detail:r})),r}function m0(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 Nt("kad-dht:query:peer-response",{detail:r})),r}function yi(e,t={}){let r={...e,name:"FINAL_PEER",type:2};return t.onProgress?.(new Nt("kad-dht:query:final-peer",{detail:r})),r}function ie(e,t={}){let r={...e,name:"QUERY_ERROR",type:3};return t.onProgress?.(new Nt("kad-dht:query:query-error",{detail:r})),r}function Xo(e,t={}){let r={...e,name:"PROVIDER",type:4};return t.onProgress?.(new Nt("kad-dht:query:provider",{detail:r})),r}function x0(e,t={}){let r={...e,name:"VALUE",type:5};return t.onProgress?.(new Nt("kad-dht:query:value",{detail:r})),r}function jo(e,t={}){let r={...e,name:"DIAL_PEER",type:7};return t.onProgress?.(new Nt("kad-dht:query:dial-peer",{detail:r})),r}function Y3(e,t,r){if(r.length===0){let s="No records given";throw new R(s,"ERR_NO_RECORDS_RECEIVED")}let i=$(t).split("/");if(i.length<3){let s="Record key does not have a selector function";throw new R(s,"ERR_NO_SELECTOR_FUNCTION_FOR_RECORD_KEY")}let o=e[i[1].toString()];if(o==null){let s=`Unrecognized key prefix: ${i[1]}`;throw new R(s,"ERR_UNRECOGNIZED_KEY_PREFIX")}return r.length===1?0:o(t,r)}function pf(e,t){return 0}var W3={pk:pf};async function Dn(e,t){let r=t.key,i=$(r).split("/");if(i.length<3)return;let o=e[i[1].toString()];if(o==null){let s="Invalid record keytype";throw new R(s,"ERR_INVALID_RECORD_KEY_TYPE")}await o(r,t.value)}var yf=async(e,t)=>{if(!(e instanceof Uint8Array))throw new R('"key" must be a Uint8Array',"ERR_INVALID_RECORD_KEY_NOT_BUFFER");if(e.byteLength<5)throw new R("invalid public key record","ERR_INVALID_RECORD_KEY_TOO_SHORT");if($(e.subarray(0,4))!=="/pk/")throw new R("key was not prefixed with /pk/","ERR_INVALID_RECORD_KEY_BAD_PREFIX");let n=e.slice(4),i=await _t.digest(t);if(!gt(n,i.bytes))throw new R("public key does not match passed in key","ERR_INVALID_RECORD_HASH_MISMATCH")},Z3={pk:yf};var X3=(e=21)=>crypto.getRandomValues(new Uint8Array(e)).reduce((t,r)=>(r&=63,r<36?t+=r.toString(36):r<62?t+=(r-26).toString(36).toUpperCase():r>62?t+="-":t+="_",t),"");var ir="/",j3=new TextEncoder().encode(ir),gi=j3[0],On=class e{_buf;constructor(t,r){if(typeof t=="string")this._buf=St(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]!==gi)throw new Error("Invalid key")}toString(t="utf8"){return $(this._buf,t)}uint8Array(){return this._buf}get[Symbol.toStringTag](){return`Key(${this.toString()})`}static withNamespaces(t){return new e(t.join(ir))}static random(){return new e(X3().replace(/-/g,""))}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=j3),this._buf[0]!==gi){let t=new Uint8Array(this._buf.byteLength+1);t.fill(gi,0,1),t.set(this._buf,1),this._buf=t}for(;this._buf.byteLength>1&&this._buf[this._buf.byteLength-1]===gi;)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(ir).slice(1)}type(){return gf(this.baseNamespace())}name(){return mf(this.baseNamespace())}instance(t){return new e(this.toString()+":"+t)}path(){let t=this.parent().toString();return t.endsWith(ir)||(t+=ir),t+=this.type(),new e(t)}parent(){let t=this.list();return t.length===1?new e(ir):new e(t.slice(0,-1).join(ir))}child(t){return this.toString()===ir?t:t.toString()===ir?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(),...xf(t.map(r=>r.namespaces()))])}};function gf(e){let t=e.split(":");return t.length<2?"":t.slice(0,-1).join(":")}function mf(e){let t=e.split(":");return t[t.length-1]}function xf(e){return[].concat(...e)}var vf=St("/pk/");function Un(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=c0(n);return i==null?!0:!i})}}function Fn(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=c0(n);return i??!1})}}async function Cr(e){return(await _t.digest(e)).digest}async function _e(e){return Cr(e.toBytes())}function or(e){return new On(`${ca}/${$(e,"base32")}`,!1)}function J3(e){return vt([vf,e.toBytes()])}function t4(e){return $(e.subarray(0,4))==="/pk/"}function e4(e){return Qr(e.subarray(4))}function Jo(e,t){let r=new Date;return new jt(e,t,r).serialize()}function r4(e,t=100){let r;return()=>{clearTimeout(r),r=setTimeout(()=>{e()},t)}}var mi=class{log;components;validators;selectors;peerRouting;queryManager;network;constructor(t,r){let{validators:n,selectors:i,peerRouting:o,queryManager:s,network:a,lan:c}=r;this.components=t,this.log=J(`libp2p:kad-dht:${c?"lan":"wan"}:content-fetching`),this.validators=n,this.selectors=i,this.peerRouting=o,this.queryManager=s,this.network=a}async putLocal(t,r){let n=or(t);await this.components.datastore.put(n,r)}async getLocal(t){this.log("getLocal %b",t);let r=or(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=jt.deserialize(n);return await Dn(this.validators,i),i}async*sendCorrectionRecord(t,r,n,i={}){this.log("sendCorrection for %b",t);let o=Jo(t,n);for(let{value:s,from:a}of r){if(gt(s,n)){this.log("record was ok");continue}if(this.components.peerId.equals(a)){try{let f=or(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=new Lt(Ot.PUT_VALUE,t,0);u.record=jt.deserialize(o);for await(let f of this.network.sendRequest(a,u,i))f.name==="PEER_RESPONSE"&&f.record!=null&&gt(f.record.value,jt.deserialize(o).value)&&(c=!0),yield f;c||(yield ie({from:a,error:new R("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=Jo(t,r),o=or(t);this.log(`storing record for key ${o.toString()}`),await this.components.datastore.put(o,i.subarray()),yield*Ie(this.peerRouting.getClosestPeers(t,{signal:n.signal}),s=>oi(s,a=>async()=>{if(a.name!=="FINAL_PEER")return[a];let c=[],u=new Lt(Ot.PUT_VALUE,t,0);u.record=jt.deserialize(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&&gt(f.record.value,jt.deserialize(i).value)||c.push(ie({from:a.peer.id,error:new R("value not put correctly","ERR_PUT_VALUE_INVALID")},n)));return c}),s=>u0(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=Y3(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 R("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 x0({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 x0({from:o,value:a.record.value},r))};yield*this.queryManager.run(t,i,r)}};var xi=class{log;components;network;peerRouting;queryManager;routingTable;providers;constructor(t,r){let{network:n,peerRouting:i,queryManager:o,routingTable:s,providers:a,lan:c}=r;this.components=t,this.log=J(`libp2p:kad-dht:${c?"lan":"wan"}: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=new Lt(Ot.ADD_PROVIDER,t.multihash.bytes,0);i.providerPeers=[{id:this.components.peerId,multiaddrs:r,protocols:[]}];let 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(ie({from:a.peer.id,error:u},n))}return c};yield*Ie(this.peerRouting.getClosestPeers(t.multihash.bytes,n),a=>oi(a,c=>s(c)),a=>u0(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),protocols:l.protocols})}catch(l){if(l.code!=="ERR_NOT_FOUND")throw l;this.log("no peer store entry for %p",f)}yield m0({from:this.components.peerId,messageType:Ot.GET_PROVIDERS,providers:u},r),yield Xo({from:this.components.peerId,providers:u},r)}if(s.length>=n)return;let a=async function*({peer:u,signal:f}){let l=new Lt(Ot.GET_PROVIDERS,i,0);yield*o.network.sendRequest(u,l,{...r,signal:f})},c=new Set(s.map(u=>u.toString()));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.toString())||(c.add(l.id.toString()),f.push(l));if(f.length>0&&(yield Xo({from:u.from,providers:f},r)),c.size===n)return}}};var v0=class extends Error{constructor(t,r){super(t??"The operation was aborted"),this.type="aborted",this.code=r??"ABORT_ERR"}};function n4(e){if(e!=null){if(typeof e[Symbol.iterator]=="function")return e[Symbol.iterator]();if(typeof e[Symbol.asyncIterator]=="function")return e[Symbol.asyncIterator]();if(typeof e.next=="function")return e}throw new Error("argument is not an iterator or iterable")}function i4(e,t,r){let n=r??{},i=n4(e);async function*o(){let s,a=()=>{s?.()};for(t.addEventListener("abort",a);;){let c;try{if(t.aborted){let{abortMessage:f,abortCode:l}=n;throw new v0(f,l)}let u=new Promise((f,l)=>{s=()=>{let{abortMessage:p,abortCode:d}=n;l(new v0(p,d))}});c=await Promise.race([u,i.next()]),s=null}catch(u){t.removeEventListener("abort",a);let f=u.type==="aborted"&&t.aborted;if(f&&n.onAbort!=null&&n.onAbort(e),typeof i.return=="function")try{let l=i.return();l instanceof Promise&&l.catch(p=>{n.onReturnError!=null&&n.onReturnError(p)})}catch(l){n.onReturnError!=null&&n.onReturnError(l)}if(f&&n.returnOnAbort===!0)return;throw u}if(c.done===!0)break;yield c.value}t.removeEventListener("abort",a)}return o()}function bf(e,t,r){return n=>e(i4(n,t,r))}function es(e,t,r){return{sink:bf(e.sink,t,{...r,onAbort:void 0}),source:i4(e.source,t,r)}}function wf(e){return e[Symbol.asyncIterator]!=null}function Ef(e){if(wf(e))return(async()=>{for await(let t of e)return t})();for(let t of e)return t}var o4=Ef;var a4=Symbol.for("@achingbrain/uint8arraylist");function s4(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 vi(e){return!!e?.[a4]}var Kn=class e{constructor(...t){Object.defineProperty(this,a4,{value:!0}),this.bufs=[],this.length=0,t.length>0&&this.appendAll(t)}*[Symbol.iterator](){yield*this.bufs}get byteLength(){return this.length}append(...t){this.appendAll(t)}appendAll(t){let r=0;for(let n of t)if(n instanceof Uint8Array)r+=n.byteLength,this.bufs.push(n);else if(vi(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(vi(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=s4(this.bufs,t);return r.buf[r.index]}set(t,r){let n=s4(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(vi(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 vt(n,i)}subarray(t,r){let{bufs:n,length:i}=this._subList(t,r);return n.length===1?n[0]:vt(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(!vi(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=le(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=nr(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=nr(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=nr(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=le(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=nr(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=nr(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=nr(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=nr(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=nr(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(!gt(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}};function bi(e){return e instanceof Uint8Array?{get(t){return e[t]},set(t,r){e[t]=r}}:{get(t){return e.get(t)},set(t,r){e.set(t,r)}}}var c4=4294967296,b0=class e{constructor(t=0,r=0){this.hi=t,this.lo=r}toBigInt(t){if(t===!0)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)}toNumber(t){return Number(this.toBigInt(t))}zzDecode(){let t=-(this.lo&1),r=((this.lo>>>1|this.hi<<31)^t)>>>0,n=(this.hi>>>1^t)>>>0;return new e(n,r)}zzEncode(){let t=this.hi>>31,r=((this.hi<<1|this.lo>>>31)^t)>>>0,n=(this.lo<<1^t)>>>0;return new e(r,n)}toBytes(t,r=0){let n=bi(t);for(;this.hi>0;)n.set(r++,this.lo&127|128),this.lo=(this.lo>>>7|this.hi<<25)>>>0,this.hi>>>=7;for(;this.lo>127;)n.set(r++,this.lo&127|128),this.lo=this.lo>>>7;n.set(r++,this.lo)}static fromBigInt(t){if(t===0n)return new e;let r=t<0;r&&(t=-t);let n=Number(t>>32n)|0,i=Number(t-(BigInt(n)<<32n))|0;return r&&(n=~n>>>0,i=~i>>>0,++i>c4&&(i=0,++n>c4&&(n=0))),new e(n,i)}static fromNumber(t){if(t===0)return new e;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(i,n)}static fromBytes(t,r=0){let n=bi(t),i=new e,o=0;if(t.length-r>4){for(;o<4;++o)if(i.lo=(i.lo|(n.get(r)&127)<<o*7)>>>0,n.get(r++)<128)return i;if(i.lo=(i.lo|(n.get(r)&127)<<28)>>>0,i.hi=(i.hi|(n.get(r)&127)>>4)>>>0,n.get(r++)<128)return i;o=0}else for(;o<4;++o){if(r>=t.length)throw RangeError(`index out of range: ${r} > ${t.length}`);if(i.lo=(i.lo|(n.get(r)&127)<<o*7)>>>0,n.get(r++)<128)return i}if(t.length-r>4){for(;o<5;++o)if(i.hi=(i.hi|(n.get(r)&127)<<o*7+3)>>>0,n.get(r++)<128)return i}else if(r<t.byteLength)for(;o<5;++o){if(r>=t.length)throw RangeError(`index out of range: ${r} > ${t.length}`);if(i.hi=(i.hi|(n.get(r)&127)<<o*7+3)>>>0,n.get(r++)<128)return i}throw RangeError("invalid varint encoding")}};var Sf=Math.pow(2,7),If=Math.pow(2,14),Af=Math.pow(2,21),Bf=Math.pow(2,28),_f=Math.pow(2,35),Cf=Math.pow(2,42),Tf=Math.pow(2,49),Rf=Math.pow(2,56),Pf=Math.pow(2,63),Xr={encodingLength(e){return e<Sf?1:e<If?2:e<Af?3:e<Bf?4:e<_f?5:e<Cf?6:e<Tf?7:e<Rf?8:e<Pf?9:10},encode(e,t,r=0){if(Number.MAX_SAFE_INTEGER!=null&&e>Number.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return t==null&&(t=le(Xr.encodingLength(e))),b0.fromNumber(e).toBytes(t,r),t},decode(e,t=0){return b0.fromBytes(e,t).toNumber(!0)}};function wi(e){return e[Symbol.asyncIterator]!=null}var Ei=e=>{let t=Xr.encodingLength(e),r=le(t);return Xr.encode(e,r),Ei.bytes=t,r};Ei.bytes=0;function jr(e,t){t=t??{};let r=t.lengthEncoder??Ei;function*n(i){let o=r(i.byteLength);o instanceof Uint8Array?yield o:yield*o,i instanceof Uint8Array?yield i:yield*i}return wi(e)?async function*(){for await(let i of e)yield*n(i)}():function*(){for(let i of e)yield*n(i)}()}jr.single=(e,t)=>{t=t??{};let r=t.lengthEncoder??Ei;return new Kn(r(e.byteLength),e)};var qn=ot(l4(),1);var Nf=8,kf=1024*1024*4,Jr;(function(e){e[e.LENGTH=0]="LENGTH",e[e.DATA=1]="DATA"})(Jr||(Jr={}));var rs=e=>{let t=Xr.decode(e);return rs.bytes=Xr.encodingLength(t),t};rs.bytes=0;function tn(e,t){let r=new Kn,n=Jr.LENGTH,i=-1,o=t?.lengthDecoder??rs,s=t?.maxLengthLength??Nf,a=t?.maxDataLength??kf;function*c(){for(;r.byteLength>0;){if(n===Jr.LENGTH)try{if(i=o(r),i<0)throw(0,qn.default)(new Error("invalid message length"),"ERR_INVALID_MSG_LENGTH");if(i>a)throw(0,qn.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=Jr.DATA}catch(u){if(u instanceof RangeError){if(r.byteLength>s)throw(0,qn.default)(new Error("message length length too long"),"ERR_MSG_LENGTH_TOO_LONG");break}throw u}if(n===Jr.DATA){if(r.byteLength<i)break;let u=r.sublist(0,i);r.consume(i),t?.onData!=null&&t.onData(u),yield u,n=Jr.LENGTH}}}return wi(e)?async function*(){for await(let u of e)r.append(u),yield*c();if(r.byteLength>0)throw(0,qn.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,qn.default)(new Error("unexpected end of input"),"ERR_UNEXPECTED_EOF")}()}tn.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 tn(n,{...t??{},onLength:o=>{r=o}})};var Si=class extends te{log;protocol;running;components;constructor(t,r){super();let{protocol:n,lan:i}=r;this.components=t,this.log=J(`libp2p:kad-dht:${i?"lan":"wan"}: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;this.log("sending %s to %p",r.type,t),yield jo({peer:t},n),yield Zo({to:t,type:r.type},n);let i;try{let s=await(await this.components.connectionManager.openConnection(t,n)).newStream(this.protocol,n),a=await this._writeReadMessage(s,r.serialize(),n);yield m0({from:t,messageType:a.type,closer:a.closerPeers,providers:a.providerPeers,record:a.record},n)}catch(o){yield ie({from:t,error:o},n)}finally{i!=null&&await i.close()}}async*sendMessage(t,r,n={}){if(!this.running)return;this.log("sending %s to %p",r.type,t),yield jo({peer:t},n),yield Zo({to:t,type:r.type},n);let i;try{let s=await(await this.components.connectionManager.openConnection(t,n)).newStream(this.protocol,n);await this._writeMessage(s,r.serialize(),n),yield m0({from:t,messageType:r.type},n)}catch(o){yield ie({from:t,error:o},n)}finally{i!=null&&await i.close()}}async _writeMessage(t,r,n){n.signal!=null&&(t=es(t,n.signal)),await Ie([r],i=>jr(i),t,s0)}async _writeReadMessage(t,r,n){n.signal!=null&&(t=es(t,n.signal));let i=await Ie([r],s=>jr(s),t,s=>tn(s),async s=>{let a=await o4(s);if(a!=null)return a;throw new R("No message received","ERR_NO_MESSAGE_RECEIVED")}),o=Lt.deserialize(i);return o.closerPeers.forEach(s=>{this.dispatchEvent(new Nt("peer",{detail:s}))}),o.providerPeers.forEach(s=>{this.dispatchEvent(new Nt("peer",{detail:s}))}),o}};var Bv=ot(Ci(),1),Vf=ot(ht(),1);var Ft={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-crypto/blob/master/README.md#web-crypto-api"),{code:"ERR_MISSING_WEB_CRYPTO"});return t}};var _4={SHA1:20,SHA256:32,SHA512:64};var $f={SHA1:"SHA-1",SHA256:"SHA-256",SHA512:"SHA-512"},Gf=async(e,t)=>{let r=await Ft.get().subtle.sign({name:"HMAC"},e,t);return new Uint8Array(r,0,r.byteLength)};async function C4(e,t){let r=$f[e],n=await Ft.get().subtle.importKey("raw",t,{name:"HMAC",hash:{name:r}},!1,["sign"]);return{async digest(i){return Gf(n,i)},length:_4[e]}}var u1={};qt(u1,{generateEphemeralKeyPair:()=>s5,generateKeyPair:()=>Wh,generateKeyPairFromSeed:()=>Zh,importKey:()=>td,keyStretcher:()=>u5,keysPBM:()=>jn,marshalPrivateKey:()=>Jh,marshalPublicKey:()=>jh,supportedKeys:()=>Je,unmarshalPrivateKey:()=>F5,unmarshalPublicKey:()=>Xh});var $E=ot(I0(),1),GE=ot(Rc(),1);var c1=ot(ht(),1);var Hs={};qt(Hs,{Ed25519PrivateKey:()=>fn,Ed25519PublicKey:()=>R0,generateKeyPair:()=>vh,generateKeyPairFromSeed:()=>zs,unmarshalEd25519PrivateKey:()=>mh,unmarshalEd25519PublicKey:()=>xh});function As(e){if(!Number.isSafeInteger(e)||e<0)throw new Error(`Wrong positive integer: ${e}`)}function f9(e){if(typeof e!="boolean")throw new Error(`Expected boolean, not ${e}`)}function Pc(e,...t){if(!(e instanceof Uint8Array))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 l9(e){if(typeof e!="function"||typeof e.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");As(e.outputLen),As(e.blockLen)}function h9(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 d9(e,t){Pc(e);let r=t.outputLen;if(e.length<r)throw new Error(`digestInto() expects output buffer of length at least ${r}`)}var p9={number:As,bool:f9,bytes:Pc,hash:l9,exists:h9,output:d9},ur=p9;var zi=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0;var Lc=e=>e instanceof Uint8Array;var Hi=e=>new DataView(e.buffer,e.byteOffset,e.byteLength),Re=(e,t)=>e<<32-t|e>>>t,y9=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!y9)throw new Error("Non little-endian hardware is not supported");var ob=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function Bs(e){if(typeof e!="string")throw new Error(`utf8ToBytes expected string, got ${typeof e}`);return new Uint8Array(new TextEncoder().encode(e))}function _0(e){if(typeof e=="string"&&(e=Bs(e)),!Lc(e))throw new Error(`expected Uint8Array, got ${typeof e}`);return e}function $i(...e){let t=new Uint8Array(e.reduce((n,i)=>n+i.length,0)),r=0;return e.forEach(n=>{if(!Lc(n))throw new Error("Uint8Array expected");t.set(n,r),r+=n.length}),t}var Gn=class{clone(){return this._cloneInto()}};function Nr(e){let t=n=>e().update(_0(n)).digest(),r=e();return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=()=>e(),t}function an(e=32){if(zi&&typeof zi.getRandomValues=="function")return zi.getRandomValues(new Uint8Array(e));throw new Error("crypto.getRandomValues must be defined")}function g9(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 Qn=class extends Gn{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=Hi(this.buffer)}update(t){ur.exists(this);let{view:r,buffer:n,blockLen:i}=this;t=_0(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=Hi(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){ur.exists(this),ur.output(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;g9(n,i-8,BigInt(this.length*8),o),this.process(n,0);let a=Hi(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 Gi=BigInt(4294967295),_s=BigInt(32);function Nc(e,t=!1){return t?{h:Number(e&Gi),l:Number(e>>_s&Gi)}:{h:Number(e>>_s&Gi)|0,l:Number(e&Gi)|0}}function m9(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}=Nc(e[i],t);[r[i],n[i]]=[o,s]}return[r,n]}var x9=(e,t)=>BigInt(e>>>0)<<_s|BigInt(t>>>0),v9=(e,t,r)=>e>>>r,b9=(e,t,r)=>e<<32-r|t>>>r,w9=(e,t,r)=>e>>>r|t<<32-r,E9=(e,t,r)=>e<<32-r|t>>>r,S9=(e,t,r)=>e<<64-r|t>>>r-32,I9=(e,t,r)=>e>>>r-32|t<<64-r,A9=(e,t)=>t,B9=(e,t)=>e,_9=(e,t,r)=>e<<r|t>>>32-r,C9=(e,t,r)=>t<<r|e>>>32-r,T9=(e,t,r)=>t<<r-32|e>>>64-r,R9=(e,t,r)=>e<<r-32|t>>>64-r;function P9(e,t,r,n){let i=(t>>>0)+(n>>>0);return{h:e+r+(i/2**32|0)|0,l:i|0}}var L9=(e,t,r)=>(e>>>0)+(t>>>0)+(r>>>0),N9=(e,t,r,n)=>t+r+n+(e/2**32|0)|0,k9=(e,t,r,n)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0),D9=(e,t,r,n,i)=>t+r+n+i+(e/2**32|0)|0,O9=(e,t,r,n,i)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0)+(i>>>0),U9=(e,t,r,n,i,o)=>t+r+n+i+o+(e/2**32|0)|0,F9={fromBig:Nc,split:m9,toBig:x9,shrSH:v9,shrSL:b9,rotrSH:w9,rotrSL:E9,rotrBH:S9,rotrBL:I9,rotr32H:A9,rotr32L:B9,rotlSH:_9,rotlSL:C9,rotlBH:T9,rotlBL:R9,add:P9,add3L:L9,add3H:N9,add4L:k9,add4H:D9,add5H:U9,add5L:O9},X=F9;var[M9,K9]=X.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))),kr=new Uint32Array(80),Dr=new Uint32Array(80),Yn=class extends Qn{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)kr[v]=t.getUint32(r),Dr[v]=t.getUint32(r+=4);for(let v=16;v<80;v++){let B=kr[v-15]|0,E=Dr[v-15]|0,S=X.rotrSH(B,E,1)^X.rotrSH(B,E,8)^X.shrSH(B,E,7),L=X.rotrSL(B,E,1)^X.rotrSL(B,E,8)^X.shrSL(B,E,7),N=kr[v-2]|0,Q=Dr[v-2]|0,Y=X.rotrSH(N,Q,19)^X.rotrBH(N,Q,61)^X.shrSH(N,Q,6),z=X.rotrSL(N,Q,19)^X.rotrBL(N,Q,61)^X.shrSL(N,Q,6),et=X.add4L(L,z,Dr[v-7],Dr[v-16]),dt=X.add4H(et,S,Y,kr[v-7],kr[v-16]);kr[v]=dt|0,Dr[v]=et|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 B=X.rotrSH(l,p,14)^X.rotrSH(l,p,18)^X.rotrBH(l,p,41),E=X.rotrSL(l,p,14)^X.rotrSL(l,p,18)^X.rotrBL(l,p,41),S=l&d^~l&y,L=p&h^~p&g,N=X.add5L(x,E,L,K9[v],Dr[v]),Q=X.add5H(N,m,B,S,M9[v],kr[v]),Y=N|0,z=X.rotrSH(n,i,28)^X.rotrBH(n,i,34)^X.rotrBH(n,i,39),et=X.rotrSL(n,i,28)^X.rotrBL(n,i,34)^X.rotrBL(n,i,39),dt=n&o^n&a^o&a,Wt=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}=X.add(u|0,f|0,Q|0,Y|0),u=a|0,f=c|0,a=o|0,c=s|0,o=n|0,s=i|0;let C=X.add3L(Y,et,Wt);n=X.add3H(C,Q,z,dt),i=C|0}({h:n,l:i}=X.add(this.Ah|0,this.Al|0,n|0,i|0)),{h:o,l:s}=X.add(this.Bh|0,this.Bl|0,o|0,s|0),{h:a,l:c}=X.add(this.Ch|0,this.Cl|0,a|0,c|0),{h:u,l:f}=X.add(this.Dh|0,this.Dl|0,u|0,f|0),{h:l,l:p}=X.add(this.Eh|0,this.El|0,l|0,p|0),{h:d,l:h}=X.add(this.Fh|0,this.Fl|0,d|0,h|0),{h:y,l:g}=X.add(this.Gh|0,this.Gl|0,y|0,g|0),{h:m,l:x}=X.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(){kr.fill(0),Dr.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)}},Cs=class extends Yn{constructor(){super(),this.Ah=-1942145080,this.Al=424955298,this.Bh=1944164710,this.Bl=-1982016298,this.Ch=502970286,this.Cl=855612546,this.Dh=1738396948,this.Dl=1479516111,this.Eh=258812777,this.El=2077511080,this.Fh=2011393907,this.Fl=79989058,this.Gh=1067287976,this.Gl=1780299464,this.Hh=286451373,this.Hl=-1848208735,this.outputLen=28}},Ts=class extends Yn{constructor(){super(),this.Ah=573645204,this.Al=-64227540,this.Bh=-1621794909,this.Bl=-934517566,this.Ch=596883563,this.Cl=1867755857,this.Dh=-1774684391,this.Dl=1497426621,this.Eh=-1775747358,this.El=-1467023389,this.Fh=-1101128155,this.Fl=1401305490,this.Gh=721525244,this.Gl=746961066,this.Hh=246885852,this.Hl=-2117784414,this.outputLen=32}},Rs=class extends Yn{constructor(){super(),this.Ah=-876896931,this.Al=-1056596264,this.Bh=1654270250,this.Bl=914150663,this.Ch=-1856437926,this.Cl=812702999,this.Dh=355462360,this.Dl=-150054599,this.Eh=1731405415,this.El=-4191439,this.Fh=-1900787065,this.Fl=1750603025,this.Gh=-619958771,this.Gl=1694076839,this.Hh=1203062813,this.Hl=-1090891868,this.outputLen=48}},Ps=Nr(()=>new Yn),pb=Nr(()=>new Cs),yb=Nr(()=>new Ts),gb=Nr(()=>new Rs);var Wi={};qt(Wi,{bitGet:()=>$9,bitLen:()=>H9,bitMask:()=>C0,bitSet:()=>G9,bytesToHex:()=>Xe,bytesToNumberBE:()=>Pe,bytesToNumberLE:()=>je,concatBytes:()=>Le,createHmacDrbg:()=>ks,ensureBytes:()=>xt,equalBytes:()=>Uc,hexToBytes:()=>cn,hexToNumber:()=>Ns,numberToBytesBE:()=>fr,numberToBytesLE:()=>Or,numberToHexUnpadded:()=>Oc,numberToVarBytesBE:()=>z9,utf8ToBytes:()=>Fc,validateObject:()=>ve});var Dc=BigInt(0),Qi=BigInt(1),q9=BigInt(2),Yi=e=>e instanceof Uint8Array,V9=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function Xe(e){if(!Yi(e))throw new Error("Uint8Array expected");let t="";for(let r=0;r<e.length;r++)t+=V9[e[r]];return t}function Oc(e){let t=e.toString(16);return t.length&1?`0${t}`:t}function Ns(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);return BigInt(e===""?"0":`0x${e}`)}function cn(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);let t=e.length;if(t%2)throw new Error("padded hex string expected, got unpadded hex of length "+t);let r=new Uint8Array(t/2);for(let n=0;n<r.length;n++){let i=n*2,o=e.slice(i,i+2),s=Number.parseInt(o,16);if(Number.isNaN(s)||s<0)throw new Error("Invalid byte sequence");r[n]=s}return r}function Pe(e){return Ns(Xe(e))}function je(e){if(!Yi(e))throw new Error("Uint8Array expected");return Ns(Xe(Uint8Array.from(e).reverse()))}function fr(e,t){return cn(e.toString(16).padStart(t*2,"0"))}function Or(e,t){return fr(e,t).reverse()}function z9(e){return cn(Oc(e))}function xt(e,t,r){let n;if(typeof t=="string")try{n=cn(t)}catch(o){throw new Error(`${e} must be valid hex string, got "${t}". Cause: ${o}`)}else if(Yi(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 Le(...e){let t=new Uint8Array(e.reduce((n,i)=>n+i.length,0)),r=0;return e.forEach(n=>{if(!Yi(n))throw new Error("Uint8Array expected");t.set(n,r),r+=n.length}),t}function Uc(e,t){if(e.length!==t.length)return!1;for(let r=0;r<e.length;r++)if(e[r]!==t[r])return!1;return!0}function Fc(e){if(typeof e!="string")throw new Error(`utf8ToBytes expected string, got ${typeof e}`);return new Uint8Array(new TextEncoder().encode(e))}function H9(e){let t;for(t=0;e>Dc;e>>=Qi,t+=1);return t}function $9(e,t){return e>>BigInt(t)&Qi}var G9=(e,t,r)=>e|(r?Qi:Dc)<<BigInt(t),C0=e=>(q9<<BigInt(e-1))-Qi,Ls=e=>new Uint8Array(e),kc=e=>Uint8Array.from(e);function ks(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=Ls(e),i=Ls(e),o=0,s=()=>{n.fill(1),i.fill(0),o=0},a=(...l)=>r(i,n,...l),c=(l=Ls())=>{i=a(kc([0]),l),n=a(),l.length!==0&&(i=a(kc([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 Le(...p)};return(l,p)=>{s(),c(l);let d;for(;!(d=p(u()));)c();return s(),d}}var Q9={bigint:e=>typeof e=="bigint",function:e=>typeof e=="function",boolean:e=>typeof e=="boolean",string:e=>typeof e=="string",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 ve(e,t,r={}){let n=(i,o,s)=>{let a=Q9[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 Ht=BigInt(0),At=BigInt(1),un=BigInt(2),Y9=BigInt(3),Ds=BigInt(4),Mc=BigInt(5),Kc=BigInt(8),W9=BigInt(9),Z9=BigInt(16);function ft(e,t){let r=e%t;return r>=Ht?r:t+r}function qc(e,t,r){if(r<=Ht||t<Ht)throw new Error("Expected power/modulo > 0");if(r===At)return Ht;let n=At;for(;t>Ht;)t&At&&(n=n*e%r),e=e*e%r,t>>=At;return n}function Bt(e,t,r){let n=e;for(;t-- >Ht;)n*=n,n%=r;return n}function Zi(e,t){if(e===Ht||t<=Ht)throw new Error(`invert: expected positive integers, got n=${e} mod=${t}`);let r=ft(e,t),n=t,i=Ht,o=At,s=At,a=Ht;for(;r!==Ht;){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!==At)throw new Error("invert: does not exist");return ft(i,t)}function X9(e){let t=(e-At)/un,r,n,i;for(r=e-At,n=0;r%un===Ht;r/=un,n++);for(i=un;i<e&&qc(i,t,e)!==e-At;i++);if(n===1){let s=(e+At)/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+At)/un;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,At<<BigInt(u-d-1));f=a.sqr(h),l=a.mul(l,h),p=a.mul(p,f),u=d}return l}}function j9(e){if(e%Ds===Y9){let t=(e+At)/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%Kc===Mc){let t=(e-Mc)/Kc;return function(n,i){let o=n.mul(i,un),s=n.pow(o,t),a=n.mul(i,s),c=n.mul(n.mul(a,un),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%Z9,X9(e)}var Vc=(e,t)=>(ft(e,t)&At)===At,J9=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function Os(e){let t={ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"},r=J9.reduce((n,i)=>(n[i]="function",n),t);return ve(e,r)}function th(e,t,r){if(r<Ht)throw new Error("Expected power > 0");if(r===Ht)return e.ONE;if(r===At)return t;let n=e.ONE,i=t;for(;r>Ht;)r&At&&(n=e.mul(n,i)),i=e.sqr(i),r>>=At;return n}function eh(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 Xi(e,t){let r=t!==void 0?t:e.toString(2).length,n=Math.ceil(r/8);return{nBitLength:r,nByteLength:n}}function ji(e,t,r=!1,n={}){if(e<=Ht)throw new Error(`Expected Fp ORDER > 0, got ${e}`);let{nBitLength:i,nByteLength:o}=Xi(e,t);if(o>2048)throw new Error("Field lengths over 2048 bytes are not supported");let s=j9(e),a=Object.freeze({ORDER:e,BITS:i,BYTES:o,MASK:C0(i),ZERO:Ht,ONE:At,create:c=>ft(c,e),isValid:c=>{if(typeof c!="bigint")throw new Error(`Invalid field element: expected bigint, got ${typeof c}`);return Ht<=c&&c<e},is0:c=>c===Ht,isOdd:c=>(c&At)===At,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)=>th(a,c,u),div:(c,u)=>ft(c*Zi(u,e),e),sqrN:c=>c*c,addN:(c,u)=>c+u,subN:(c,u)=>c-u,mulN:(c,u)=>c*u,inv:c=>Zi(c,e),sqrt:n.sqrt||(c=>s(a,c)),invertBatch:c=>eh(a,c),cmov:(c,u,f)=>f?u:c,toBytes:c=>r?Or(c,o):fr(c,o),fromBytes:c=>{if(c.length!==o)throw new Error(`Fp.fromBytes: expected ${o}, got ${c.length}`);return r?je(c):Pe(c)}});return Object.freeze(a)}function zc(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 Hc(e,t,r=!1){e=xt("privateHash",e);let n=e.length,i=Xi(t).nByteLength+8;if(i<24||n<i||n>1024)throw new Error(`hashToPrivateScalar: expected ${i}-1024 bytes of input, got ${n}`);let o=r?je(e):Pe(e);return ft(o,t-At)+At}var nh=BigInt(0),Us=BigInt(1);function Ji(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>nh;)o&Us&&(s=s.add(a)),a=a.double(),o>>=Us;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+=Us);let m=y,x=y+Math.abs(g)-1,v=h%2!==0,B=g<0;g===0?f=f.add(r(v,o[m])):u=u.add(r(B,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 T0(e){return Os(e.Fp),ve(e,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...Xi(e.n,e.nBitLength),...e,p:e.Fp.ORDER})}var Ne=BigInt(0),he=BigInt(1),t1=BigInt(2),ih=BigInt(8),oh={zip215:!0};function sh(e){let t=T0(e);return ve(e,{hash:"function",a:"bigint",d:"bigint",randomBytes:"function"},{adjustScalarBytes:"function",domain:"function",uvRatio:"function",mapToCurve:"function"}),Object.freeze({...t})}function e1(e){let t=sh(e),{Fp:r,n,prehash:i,hash:o,randomBytes:s,nByteLength:a,h:c}=t,u=t1<<BigInt(a*8)-he,f=r.create,l=t.uvRatio||((k,A)=>{try{return{isValid:!0,value:r.sqrt(k*r.inv(A))}}catch{return{isValid:!1,value:Ne}}}),p=t.adjustScalarBytes||(k=>k),d=t.domain||((k,A,F)=>{if(A.length||F)throw new Error("Contexts/pre-hash are not supported");return k}),h=k=>typeof k=="bigint"&&Ne<k,y=(k,A)=>h(k)&&h(A)&&k<A,g=k=>k===Ne||y(k,u);function m(k,A){if(y(k,A))return k;throw new Error(`Expected valid scalar < ${A}, got ${typeof k} ${k}`)}function x(k){return k===Ne?k:m(k,n)}let v=new Map;function B(k){if(!(k instanceof E))throw new Error("ExtendedPoint expected")}class E{constructor(A,F,K,G){if(this.ex=A,this.ey=F,this.ez=K,this.et=G,!g(A))throw new Error("x required");if(!g(F))throw new Error("y required");if(!g(K))throw new Error("z required");if(!g(G))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:K}=A||{};if(!g(F)||!g(K))throw new Error("invalid affine point");return new E(F,K,he,f(F*K))}static normalizeZ(A){let F=r.invertBatch(A.map(K=>K.ez));return A.map((K,G)=>K.toAffine(F[G])).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:K,ey:G,ez:j,et:rt}=this,lt=f(K*K),nt=f(G*G),ct=f(j*j),Kt=f(ct*ct),Tt=f(lt*A),Zt=f(ct*f(Tt+nt)),Xt=f(Kt+f(F*f(lt*nt)));if(Zt!==Xt)throw new Error("bad point: equation left != right (1)");let zt=f(K*G),Jt=f(j*rt);if(zt!==Jt)throw new Error("bad point: equation left != right (2)")}equals(A){B(A);let{ex:F,ey:K,ez:G}=this,{ex:j,ey:rt,ez:lt}=A,nt=f(F*lt),ct=f(j*G),Kt=f(K*lt),Tt=f(rt*G);return nt===ct&&Kt===Tt}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:K,ez:G}=this,j=f(F*F),rt=f(K*K),lt=f(t1*f(G*G)),nt=f(A*j),ct=F+K,Kt=f(f(ct*ct)-j-rt),Tt=nt+rt,Zt=Tt-lt,Xt=nt-rt,zt=f(Kt*Zt),Jt=f(Tt*Xt),tr=f(Kt*Xt),Vr=f(Zt*Tt);return new E(zt,Jt,Vr,tr)}add(A){B(A);let{a:F,d:K}=t,{ex:G,ey:j,ez:rt,et:lt}=this,{ex:nt,ey:ct,ez:Kt,et:Tt}=A;if(F===BigInt(-1)){let A2=f((j-G)*(ct+nt)),B2=f((j+G)*(ct-nt)),z1=f(B2-A2);if(z1===Ne)return this.double();let _2=f(rt*t1*Tt),C2=f(lt*t1*Kt),T2=C2+_2,R2=B2+A2,P2=C2-_2,A8=f(T2*z1),B8=f(R2*P2),_8=f(T2*P2),C8=f(z1*R2);return new E(A8,B8,C8,_8)}let Zt=f(G*nt),Xt=f(j*ct),zt=f(lt*K*Tt),Jt=f(rt*Kt),tr=f((G+j)*(nt+ct)-Zt-Xt),Vr=Jt-zt,o0=Jt+zt,I2=f(Xt-F*Zt),w8=f(tr*Vr),E8=f(o0*I2),S8=f(tr*I2),I8=f(Vr*o0);return new E(w8,E8,I8,S8)}subtract(A){return this.add(A.negate())}wNAF(A){return N.wNAFCached(this,v,A,E.normalizeZ)}multiply(A){let{p:F,f:K}=this.wNAF(m(A,n));return E.normalizeZ([F,K])[0]}multiplyUnsafe(A){let F=x(A);return F===Ne?L:this.equals(L)||F===he?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:K,ez:G}=this,j=this.is0();A==null&&(A=j?ih:r.inv(G));let rt=f(F*A),lt=f(K*A),nt=f(G*A);if(j)return{x:Ne,y:he};if(nt!==he)throw new Error("invZ was invalid");return{x:rt,y:lt}}clearCofactor(){let{h:A}=t;return A===he?this:this.multiplyUnsafe(A)}static fromHex(A,F=!1){let{d:K,a:G}=t,j=r.BYTES;A=xt("pointHex",A,j);let rt=A.slice(),lt=A[j-1];rt[j-1]=lt&-129;let nt=je(rt);nt===Ne||(F?m(nt,u):m(nt,r.ORDER));let ct=f(nt*nt),Kt=f(ct-he),Tt=f(K*ct-G),{isValid:Zt,value:Xt}=l(Kt,Tt);if(!Zt)throw new Error("Point.fromHex: invalid y coordinate");let zt=(Xt&he)===he,Jt=(lt&128)!==0;if(!F&&Xt===Ne&&Jt)throw new Error("Point.fromHex: x=0 and x_0=1");return Jt!==zt&&(Xt=f(-Xt)),E.fromAffine({x:Xt,y:nt})}static fromPrivateKey(A){return z(A).point}toRawBytes(){let{x:A,y:F}=this.toAffine(),K=Or(F,r.BYTES);return K[K.length-1]|=A&he?128:0,K}toHex(){return Xe(this.toRawBytes())}}E.BASE=new E(t.Gx,t.Gy,he,f(t.Gx*t.Gy)),E.ZERO=new E(Ne,he,he,Ne);let{BASE:S,ZERO:L}=E,N=Ji(E,a*8);function Q(k){return ft(k,n)}function Y(k){return Q(je(k))}function z(k){let A=a;k=xt("private key",k,A);let F=xt("hashed private key",o(k),2*A),K=p(F.slice(0,A)),G=F.slice(A,2*A),j=Y(K),rt=S.multiply(j),lt=rt.toRawBytes();return{head:K,prefix:G,scalar:j,point:rt,pointBytes:lt}}function et(k){return z(k).pointBytes}function dt(k=new Uint8Array,...A){let F=Le(...A);return Y(o(d(F,xt("context",k),!!i)))}function Wt(k,A,F={}){k=xt("message",k),i&&(k=i(k));let{prefix:K,scalar:G,pointBytes:j}=z(A),rt=dt(F.context,K,k),lt=S.multiply(rt).toRawBytes(),nt=dt(F.context,lt,j,k),ct=Q(rt+nt*G);x(ct);let Kt=Le(lt,Or(ct,r.BYTES));return xt("result",Kt,a*2)}let C=oh;function D(k,A,F,K=C){let{context:G,zip215:j}=K,rt=r.BYTES;k=xt("signature",k,2*rt),A=xt("message",A),i&&(A=i(A));let lt=je(k.slice(rt,2*rt)),nt,ct,Kt;try{nt=E.fromHex(F,j),ct=E.fromHex(k.slice(0,rt),j),Kt=S.multiplyUnsafe(lt)}catch{return!1}if(!j&&nt.isSmallOrder())return!1;let Tt=dt(G,ct.toRawBytes(),nt.toRawBytes(),A);return ct.add(nt.multiplyUnsafe(Tt)).subtract(Kt).clearCofactor().equals(E.ZERO)}return S._setWindowSize(8),{CURVE:t,getPublicKey:et,sign:Wt,verify:D,ExtendedPoint:E,utils:{getExtendedPublicKey:z,randomPrivateKey:()=>s(r.BYTES),precompute(k=8,A=E.BASE){return A._setWindowSize(k),A.multiply(BigInt(3)),A}}}}var Cb=BigInt(0),Tb=BigInt(1);var Ms=BigInt("57896044618658097711785492504343953926634992332820282019728792003956564819949"),$c=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752"),zb=BigInt(0),ch=BigInt(1),Fs=BigInt(2),uh=BigInt(5),Gc=BigInt(10),fh=BigInt(20),lh=BigInt(40),Qc=BigInt(80);function hh(e){let t=Ms,n=e*e%t*e%t,i=Bt(n,Fs,t)*n%t,o=Bt(i,ch,t)*e%t,s=Bt(o,uh,t)*o%t,a=Bt(s,Gc,t)*s%t,c=Bt(a,fh,t)*a%t,u=Bt(c,lh,t)*c%t,f=Bt(u,Qc,t)*u%t,l=Bt(f,Qc,t)*u%t,p=Bt(l,Gc,t)*s%t;return{pow_p_5_8:Bt(p,Fs,t)*e%t,b2:n}}function dh(e){return e[0]&=248,e[31]&=127,e[31]|=64,e}function ph(e,t){let r=Ms,n=ft(t*t*t,r),i=ft(n*n*t,r),o=hh(e*i).pow_p_5_8,s=ft(e*n*o,r),a=ft(t*s*s,r),c=s,u=ft(s*$c,r),f=a===e,l=a===ft(-e,r),p=a===ft(-e*$c,r);return f&&(s=c),(l||p)&&(s=u),Vc(s,r)&&(s=ft(-s,r)),{isValid:f||l,value:s}}var lr=ji(Ms,void 0,!0),Ks={a:BigInt(-1),d:BigInt("37095705934669439343138083508754565189542113879843219016388785533085940283555"),Fp:lr,n:BigInt("7237005577332262213973186563042994240857116359379907606001950938285454250989"),h:BigInt(8),Gx:BigInt("15112221349535400772501151409588531511454012693041857206046113283949847762202"),Gy:BigInt("46316835694926478169428394003475163141307993866256225615783033603165251855960"),hash:Ps,randomBytes:an,adjustScalarBytes:dh,uvRatio:ph},Wn=e1(Ks);function Yc(e,t,r){if(t.length>255)throw new Error("Context is too big");return $i(Bs("SigEd25519 no Ed25519 collisions"),new Uint8Array([r?1:0,t.length]),t,e)}var Hb=e1({...Ks,domain:Yc}),$b=e1({...Ks,domain:Yc,prehash:Ps});var yh=(lr.ORDER+BigInt(3))/BigInt(8),Gb=lr.pow(Fs,yh),Qb=lr.sqrt(lr.neg(lr.ONE)),Yb=(lr.ORDER-BigInt(5))/BigInt(8),Wb=BigInt(486662);var Zb=zc(lr,lr.neg(BigInt(486664)));var Xb=BigInt("25063068953384623474111414158702152701244531502492656460079210482610430750235"),jb=BigInt("54469307008909316920995813868745141605393597292927456921205312896311721017578"),Jb=BigInt("1159843021668779879193775521855586647937357759715417654439879720876111806838"),tw=BigInt("40440834346308536858101042469323190826248399146238708352240133220865137265952");var ew=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");var Zn=32,hr=64,r1=32;async function Wc(){let e=Wn.utils.randomPrivateKey(),t=Wn.getPublicKey(e);return{privateKey:Jc(e,t),publicKey:t}}async function Zc(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=Wn.getPublicKey(t);return{privateKey:Jc(t,r),publicKey:r}}async function Xc(e,t){let r=e.subarray(0,r1);return Wn.sign(t,r)}async function jc(e,t,r){return Wn.verify(t,r,e)}function Jc(e,t){let r=new Uint8Array(hr);for(let n=0;n<r1;n++)r[n]=e[n],r[r1+n]=t[n];return r}var qs={alg:"A128GCM",ext:!0,k:"scm9jmO_4BJAgdwWGVulLg",key_ops:["encrypt","decrypt"],kty:"oct"};function n1(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=Ft.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=St(p));let g;if(p.length===0){g=await a.subtle.importKey("jwk",qs,{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",qs,{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 vt([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=St(p));let m;if(p.length===0)try{let v={name:"PBKDF2",salt:d,iterations:s,hash:{name:i}},B=await a.subtle.importKey("raw",p,{name:"PBKDF2"},!1,["deriveKey"]);m=await a.subtle.deriveKey(v,B,{name:t,length:r},!0,["decrypt"])}catch{m=await a.subtle.importKey("jwk",qs,{name:"AES-GCM"},!0,["decrypt"])}else{let v={name:"PBKDF2",salt:d,iterations:s,hash:{name:i}},B=await a.subtle.importKey("raw",p,{name:"PBKDF2"},!1,["deriveKey"]);m=await a.subtle.deriveKey(v,B,{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 Xn(e,t){let n=await n1().encrypt(e,t);return Hr.encode(n)}var jn={};qt(jn,{KeyType:()=>wt,PrivateKey:()=>De,PublicKey:()=>ke});var wt;(function(e){e.RSA="RSA",e.Ed25519="Ed25519",e.Secp256k1="Secp256k1"})(wt||(wt={}));var Vs;(function(e){e[e.RSA=0]="RSA",e[e.Ed25519=1]="Ed25519",e[e.Secp256k1=2]="Secp256k1"})(Vs||(Vs={}));(function(e){e.codec=()=>kn(Vs)})(wt||(wt={}));var ke;(function(e){let t;e.codec=()=>(t==null&&(t=He((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.Type!=null&&(n.uint32(8),wt.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=wt.codec().decode(r);break;case 2:i.Data=r.bytes();break;default:r.skipType(s&7);break}}return i})),t),e.encode=r=>ze(r,e.codec()),e.decode=r=>Ve(r,e.codec())})(ke||(ke={}));var De;(function(e){let t;e.codec=()=>(t==null&&(t=He((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.Type!=null&&(n.uint32(8),wt.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=wt.codec().decode(r);break;case 2:i.Data=r.bytes();break;default:r.skipType(s&7);break}}return i})),t),e.encode=r=>ze(r,e.codec()),e.decode=r=>Ve(r,e.codec())})(De||(De={}));var R0=class{_key;constructor(t){this._key=Jn(t,Zn)}async verify(t,r){return jc(this._key,r,t)}marshal(){return this._key}get bytes(){return ke.encode({Type:wt.Ed25519,Data:this.marshal()}).subarray()}equals(t){return gt(this.bytes,t.bytes)}async hash(){let{bytes:t}=await _t.digest(this.bytes);return t}},fn=class{_key;_publicKey;constructor(t,r){this._key=Jn(t,hr),this._publicKey=Jn(r,Zn)}async sign(t){return Xc(this._key,t)}get public(){return new R0(this._publicKey)}marshal(){return this._key}get bytes(){return De.encode({Type:wt.Ed25519,Data:this.marshal()}).subarray()}equals(t){return gt(this.bytes,t.bytes)}async hash(){let{bytes:t}=await _t.digest(this.bytes);return t}async id(){let t=Sr.digest(this.public.bytes);return kt.encode(t.bytes).substring(1)}async export(t,r="libp2p-key"){if(r==="libp2p-key")return Xn(this.bytes,t);throw new R(`export format '${r}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};function mh(e){if(e.length>hr){e=Jn(e,hr+Zn);let n=e.subarray(0,hr),i=e.subarray(hr,e.length);return new fn(n,i)}e=Jn(e,hr);let t=e.subarray(0,hr),r=e.subarray(Zn);return new fn(t,r)}function xh(e){return e=Jn(e,Zn),new R0(e)}async function vh(){let{privateKey:e,publicKey:t}=await Wc();return new fn(e,t)}async function zs(e){let{privateKey:t,publicKey:r}=await Zc(e);return new fn(t,r)}function Jn(e,t){if(e=Uint8Array.from(e??[]),e.length!==t)throw new R(`Key must be a Uint8Array of length ${t}, got ${e.length}`,"ERR_INVALID_KEY_TYPE");return e}var gw=ot(Ut(),1),mw=ot(Mi(),1),e5=ot(ht(),1);function Oe(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=vt([new Uint8Array(t-r.length),r])}return $(r,"base64url")}function de(e){let t=i1(e);return new e5.default.jsbn.BigInteger($(t,"base16"),16)}function i1(e,t){let r=St(e,"base64urlpad");if(t!=null){if(r.length>t)throw new Error("byte array longer than desired length");r=vt([new Uint8Array(t-r.length),r])}return r}var r5={"P-256":256,"P-384":384,"P-521":521},bh=Object.keys(r5),$s=bh.join(" / ");async function n5(e){if(e!=="P-256"&&e!=="P-384"&&e!=="P-521")throw new R(`Unknown curve: ${e}. Must be ${$s}`,"ERR_INVALID_CURVE");let t=await Ft.get().subtle.generateKey({name:"ECDH",namedCurve:e},!0,["deriveBits"]),r=async(o,s)=>{let a;s!=null?a=await Ft.get().subtle.importKey("jwk",Eh(e,s),{name:"ECDH",namedCurve:e},!1,["deriveBits"]):a=t.privateKey;let c=await Ft.get().subtle.importKey("jwk",o5(e,o),{name:"ECDH",namedCurve:e},!1,[]),u=await Ft.get().subtle.deriveBits({name:"ECDH",namedCurve:e,public:c},a,r5[e]);return new Uint8Array(u,0,u.byteLength)},n=await Ft.get().subtle.exportKey("jwk",t.publicKey);return{key:wh(n),genSharedKey:r}}var i5={"P-256":32,"P-384":48,"P-521":66};function wh(e){if(e.crv==null||e.x==null||e.y==null)throw new R("JWK was missing components","ERR_INVALID_PARAMETERS");if(e.crv!=="P-256"&&e.crv!=="P-384"&&e.crv!=="P-521")throw new R(`Unknown curve: ${e.crv}. Must be ${$s}`,"ERR_INVALID_CURVE");let t=i5[e.crv];return vt([Uint8Array.from([4]),i1(e.x,t),i1(e.y,t)],1+t*2)}function o5(e,t){if(e!=="P-256"&&e!=="P-384"&&e!=="P-521")throw new R(`Unknown curve: ${e}. Must be ${$s}`,"ERR_INVALID_CURVE");let r=i5[e];if(!gt(t.subarray(0,1),Uint8Array.from([4])))throw new R("Cannot unmarshal public key - invalid key format","ERR_INVALID_KEY_FORMAT");return{kty:"EC",crv:e,x:$(t.subarray(1,r+1),"base64url"),y:$(t.subarray(1+r),"base64url"),ext:!0}}var Eh=(e,t)=>({...o5(e,t.public),d:$(t.private,"base64url")});var s5=n5;async function a5(e,t){let r=Hr.decode(e);return n1().decrypt(r,t)}var c5={"AES-128":{ivSize:16,keySize:16},"AES-256":{ivSize:16,keySize:32},Blowfish:{ivSize:8,keySize:32}};async function u5(e,t,r){let n=c5[e];if(n==null){let x=Object.keys(c5).join(" / ");throw new R(`unknown cipher type '${e}'. Must be ${x}`,"ERR_INVALID_CIPHER_TYPE")}if(t==null)throw new R("missing hash type","ERR_MISSING_HASH_TYPE");let i=n.keySize,o=n.ivSize,s=20,a=St("key expansion"),c=2*(o+i+s),u=await C4(t,r),f=await u.digest(a),l=[],p=0;for(;p<c;){let x=await u.digest(vt([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=vt(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 Zs={};qt(Zs,{MAX_KEY_SIZE:()=>k0,RsaPrivateKey:()=>t0,RsaPublicKey:()=>N0,fromJwk:()=>Lh,generateKeyPair:()=>Nh,unmarshalRsaPrivateKey:()=>Rh,unmarshalRsaPublicKey:()=>Ph});var L0=ot(ht(),1);var oE=ot(p5(),1);function hn(e){if(isNaN(e)||e<=0)throw new R("random bytes length must be a Number bigger than 0","ERR_INVALID_LENGTH");return an(e)}var qw=ot(Vi(),1),Ys=ot(ht(),1);function y5(e,t){return t.map(r=>de(e[r]))}function g5(e){return Ys.default.pki.setRsaPrivateKey(...y5(e,["n","e","d","p","q","dp","dq","qi"]))}function m5(e){return Ys.default.pki.setRsaPublicKey(...y5(e,["n","e"]))}var dn={};qt(dn,{jwkToPkcs1:()=>Ah,jwkToPkix:()=>_h,pkcs1ToJwk:()=>Ih,pkixToJwk:()=>Bh});var Hw=ot(I0(),1),$w=ot(Vi(),1);var dr=ot(ht(),1);function Ih(e){let t=dr.default.asn1.fromDer($(e,"ascii")),r=dr.default.pki.privateKeyFromAsn1(t);return{kty:"RSA",n:Oe(r.n),e:Oe(r.e),d:Oe(r.d),p:Oe(r.p),q:Oe(r.q),dp:Oe(r.dP),dq:Oe(r.dQ),qi:Oe(r.qInv),alg:"RS256"}}function Ah(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 R("JWK was missing components","ERR_INVALID_PARAMETERS");let t=dr.default.pki.privateKeyToAsn1({n:de(e.n),e:de(e.e),d:de(e.d),p:de(e.p),q:de(e.q),dP:de(e.dp),dQ:de(e.dq),qInv:de(e.qi)});return St(dr.default.asn1.toDer(t).getBytes(),"ascii")}function Bh(e){let t=dr.default.asn1.fromDer($(e,"ascii")),r=dr.default.pki.publicKeyFromAsn1(t);return{kty:"RSA",n:Oe(r.n),e:Oe(r.e)}}function _h(e){if(e.n==null||e.e==null)throw new R("JWK was missing components","ERR_INVALID_PARAMETERS");let t=dr.default.pki.publicKeyToAsn1({n:de(e.n),e:de(e.e)});return St(dr.default.asn1.toDer(t).getBytes(),"ascii")}async function x5(e){let t=await Ft.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 w5(t);return{privateKey:r[0],publicKey:r[1]}}async function Ws(e){let r=[await Ft.get().subtle.importKey("jwk",e,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["sign"]),await Ch(e)],n=await w5({privateKey:r[0],publicKey:r[1]});return{privateKey:n[0],publicKey:n[1]}}async function v5(e,t){let r=await Ft.get().subtle.importKey("jwk",e,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["sign"]),n=await Ft.get().subtle.sign({name:"RSASSA-PKCS1-v1_5"},r,Uint8Array.from(t));return new Uint8Array(n,0,n.byteLength)}async function b5(e,t,r){let n=await Ft.get().subtle.importKey("jwk",e,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["verify"]);return Ft.get().subtle.verify({name:"RSASSA-PKCS1-v1_5"},n,t,r)}async function w5(e){if(e.privateKey==null||e.publicKey==null)throw new R("Private and public key are required","ERR_INVALID_PARAMETERS");return Promise.all([Ft.get().subtle.exportKey("jwk",e.privateKey),Ft.get().subtle.exportKey("jwk",e.publicKey)])}async function Ch(e){return Ft.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 E5(e,t,r,n){let i=t?m5(e):g5(e),o=$(Uint8Array.from(r),"ascii"),s=n(o,i);return St(s,"ascii")}function S5(e,t){return E5(e,!0,t,(r,n)=>n.encrypt(r))}function I5(e,t){return E5(e,!1,t,(r,n)=>n.decrypt(r))}function o1(e){if(e.kty!=="RSA")throw new R("invalid key type","ERR_INVALID_KEY_TYPE");if(e.n==null)throw new R("invalid key modulus","ERR_INVALID_KEY_MODULUS");return St(e.n,"base64url").length*8}var k0=8192,N0=class{_key;constructor(t){this._key=t}async verify(t,r){return b5(this._key,r,t)}marshal(){return dn.jwkToPkix(this._key)}get bytes(){return ke.encode({Type:wt.RSA,Data:this.marshal()}).subarray()}encrypt(t){return S5(this._key,t)}equals(t){return gt(this.bytes,t.bytes)}async hash(){let{bytes:t}=await _t.digest(this.bytes);return t}},t0=class{_key;_publicKey;constructor(t,r){this._key=t,this._publicKey=r}genSecret(){return hn(16)}async sign(t){return v5(this._key,t)}get public(){if(this._publicKey==null)throw new R("public key not provided","ERR_PUBKEY_NOT_PROVIDED");return new N0(this._publicKey)}decrypt(t){return I5(this._key,t)}marshal(){return dn.jwkToPkcs1(this._key)}get bytes(){return De.encode({Type:wt.RSA,Data:this.marshal()}).subarray()}equals(t){return gt(this.bytes,t.bytes)}async hash(){let{bytes:t}=await _t.digest(this.bytes);return t}async id(){let t=await this.public.hash();return $(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 Xn(this.bytes,t);throw new R(`export format '${r}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}}};async function Rh(e){let t=dn.pkcs1ToJwk(e);if(o1(t)>k0)throw new R("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let r=await Ws(t);return new t0(r.privateKey,r.publicKey)}function Ph(e){let t=dn.pkixToJwk(e);if(o1(t)>k0)throw new R("key size is too large","ERR_KEY_SIZE_TOO_LARGE");return new N0(t)}async function Lh(e){if(o1(e)>k0)throw new R("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let t=await Ws(e);return new t0(t.privateKey,t.publicKey)}async function Nh(e){if(e>k0)throw new R("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let t=await x5(e);return new t0(t.privateKey,t.publicKey)}var r2={};qt(r2,{Secp256k1PrivateKey:()=>O0,Secp256k1PublicKey:()=>D0,generateKeyPair:()=>Yh,unmarshalSecp256k1PrivateKey:()=>Gh,unmarshalSecp256k1PublicKey:()=>Qh});var kh=(e,t,r)=>e&t^~e&r,Dh=(e,t,r)=>e&t^e&r^t&r,Oh=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]),Ur=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Fr=new Uint32Array(64),s1=class extends Qn{constructor(){super(64,32,8,!1),this.A=Ur[0]|0,this.B=Ur[1]|0,this.C=Ur[2]|0,this.D=Ur[3]|0,this.E=Ur[4]|0,this.F=Ur[5]|0,this.G=Ur[6]|0,this.H=Ur[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)Fr[l]=t.getUint32(r,!1);for(let l=16;l<64;l++){let p=Fr[l-15],d=Fr[l-2],h=Re(p,7)^Re(p,18)^p>>>3,y=Re(d,17)^Re(d,19)^d>>>10;Fr[l]=y+Fr[l-7]+h+Fr[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=Re(a,6)^Re(a,11)^Re(a,25),d=f+p+kh(a,c,u)+Oh[l]+Fr[l]|0,y=(Re(n,2)^Re(n,13)^Re(n,22))+Dh(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(){Fr.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}},Xs=class extends s1{constructor(){super(),this.A=-1056596264,this.B=914150663,this.C=812702999,this.D=-150054599,this.E=-4191439,this.F=1750603025,this.G=1694076839,this.H=-1090891868,this.outputLen=28}},A5=Nr(()=>new s1),fE=Nr(()=>new Xs);function Uh(e){let t=T0(e);ve(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:Fh,hexToBytes:Mh}=Wi,pn={Err:class extends Error{constructor(t=""){super(t)}},_parseInt(e){let{Err:t}=pn;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:Fh(n),l:e.subarray(r+2)}},toSig(e){let{Err:t}=pn,r=typeof e=="string"?Mh(e):e;if(!(r instanceof Uint8Array))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}=pn._parseInt(r.subarray(2)),{d:s,l:a}=pn._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}`}},pr=BigInt(0),be=BigInt(1),yE=BigInt(2),B5=BigInt(3),gE=BigInt(4);function Kh(e){let t=Uh(e),{Fp:r}=t,n=t.toBytes||((h,y,g)=>{let m=y.toAffine();return Le(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"&&pr<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(h instanceof Uint8Array&&(h=Xe(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:Pe(xt("private key",h,g))}catch{throw new Error(`private key must be ${g} 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(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(xt("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)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:B,pz:E}=y,S=r.eql(r.mul(g,E),r.mul(v,x)),L=r.eql(r.mul(m,E),r.mul(B,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,B5),{px:x,py:v,pz:B}=this,E=r.ZERO,S=r.ZERO,L=r.ZERO,N=r.mul(x,x),Q=r.mul(v,v),Y=r.mul(B,B),z=r.mul(x,v);return z=r.add(z,z),L=r.mul(x,B),L=r.add(L,L),E=r.mul(y,L),S=r.mul(m,Y),S=r.add(E,S),E=r.sub(Q,S),S=r.add(Q,S),S=r.mul(E,S),E=r.mul(z,E),L=r.mul(m,L),Y=r.mul(y,Y),z=r.sub(N,Y),z=r.mul(y,z),z=r.add(z,L),L=r.add(N,N),N=r.add(L,N),N=r.add(N,Y),N=r.mul(N,z),S=r.add(S,N),Y=r.mul(v,B),Y=r.add(Y,Y),N=r.mul(Y,z),E=r.sub(E,N),L=r.mul(Y,Q),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:B,pz:E}=y,S=r.ZERO,L=r.ZERO,N=r.ZERO,Q=t.a,Y=r.mul(t.b,B5),z=r.mul(g,v),et=r.mul(m,B),dt=r.mul(x,E),Wt=r.add(g,m),C=r.add(v,B);Wt=r.mul(Wt,C),C=r.add(z,et),Wt=r.sub(Wt,C),C=r.add(g,x);let D=r.add(v,E);return C=r.mul(C,D),D=r.add(z,dt),C=r.sub(C,D),D=r.add(m,x),S=r.add(B,E),D=r.mul(D,S),S=r.add(et,dt),D=r.sub(D,S),N=r.mul(Q,C),S=r.mul(Y,dt),N=r.add(S,N),S=r.sub(et,N),N=r.add(et,N),L=r.mul(S,N),et=r.add(z,z),et=r.add(et,z),dt=r.mul(Q,dt),C=r.mul(Y,C),et=r.add(et,dt),dt=r.sub(z,dt),dt=r.mul(Q,dt),C=r.add(C,dt),z=r.mul(et,C),L=r.add(L,z),z=r.mul(D,C),S=r.mul(Wt,S),S=r.sub(S,z),z=r.mul(Wt,et),N=r.mul(D,N),N=r.add(N,z),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===pr)return g;if(a(y),y===be)return this;let{endo:m}=t;if(!m)return d.unsafeLadder(this,y);let{k1neg:x,k1:v,k2neg:B,k2:E}=m.splitScalar(y),S=g,L=g,N=this;for(;v>pr||E>pr;)v&be&&(S=S.add(N)),E&be&&(L=L.add(N)),N=N.double(),v>>=be,E>>=be;return x&&(S=S.negate()),B&&(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:B,k1:E,k2neg:S,k2:L}=v.splitScalar(g),{p:N,f:Q}=this.wNAF(E),{p:Y,f:z}=this.wNAF(L);N=d.constTimeNegate(B,N),Y=d.constTimeNegate(S,Y),Y=new l(r.mul(Y.px,v.beta),Y.py,Y.pz),m=N.add(Y),x=Q.add(z)}else{let{p:B,f:E}=this.wNAF(g);m=B,x=E}return l.normalizeZ([m,x])[0]}multiplyAndAddUnsafe(y,g,m){let x=l.BASE,v=(E,S)=>S===pr||S===be||!E.equals(x)?E.multiplyUnsafe(S):E.multiply(S),B=v(this,g).add(v(y,m));return B.is0()?void 0:B}toAffine(y){let{px:g,py:m,pz:x}=this,v=this.is0();y==null&&(y=v?r.ONE:r.inv(x));let B=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:B,y:E}}isTorsionFree(){let{h:y,isTorsionFree:g}=t;if(y===be)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===be?this:g?g(l,this):this.multiplyUnsafe(t.h)}toRawBytes(y=!0){return this.assertValidity(),n(l,this,y)}toHex(y=!0){return Xe(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=Ji(l,t.endo?Math.ceil(p/2):p);return{CURVE:t,ProjectivePoint:l,normPrivateKeyToScalar:c,weierstrassEquation:o,isWithinCurveOrder:s}}function qh(e){let t=T0(e);return ve(t,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...t})}function _5(e){let t=qh(e),{Fp:r,n}=t,i=r.BYTES+1,o=2*r.BYTES+1;function s(C){return pr<C&&C<r.ORDER}function a(C){return ft(C,n)}function c(C){return Zi(C,n)}let{ProjectivePoint:u,normPrivateKeyToScalar:f,weierstrassEquation:l,isWithinCurveOrder:p}=Kh({...t,toBytes(C,D,P){let k=D.toAffine(),A=r.toBytes(k.x),F=Le;return P?F(Uint8Array.from([D.hasEvenY()?2:3]),A):F(Uint8Array.from([4]),A,r.toBytes(k.y))},fromBytes(C){let D=C.length,P=C[0],k=C.subarray(1);if(D===i&&(P===2||P===3)){let A=Pe(k);if(!s(A))throw new Error("Point is not on curve");let F=l(A),K=r.sqrt(F),G=(K&be)===be;return(P&1)===1!==G&&(K=r.neg(K)),{x:A,y:K}}else if(D===o&&P===4){let A=r.fromBytes(k.subarray(0,r.BYTES)),F=r.fromBytes(k.subarray(r.BYTES,2*r.BYTES));return{x:A,y:F}}else throw new Error(`Point of length ${D} was invalid. Expected ${i} compressed bytes or ${o} uncompressed bytes`)}}),d=C=>Xe(fr(C,t.nByteLength));function h(C){let D=n>>be;return C>D}function y(C){return h(C)?a(-C):C}let g=(C,D,P)=>Pe(C.slice(D,P));class m{constructor(D,P,k){this.r=D,this.s=P,this.recovery=k,this.assertValidity()}static fromCompact(D){let P=t.nByteLength;return D=xt("compactSignature",D,P*2),new m(g(D,0,P),g(D,P,2*P))}static fromDER(D){let{r:P,s:k}=pn.toSig(xt("DER",D));return new m(P,k)}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(D){return new m(this.r,this.s,D)}recoverPublicKey(D){let{r:P,s:k,recovery:A}=this,F=L(xt("msgHash",D));if(A==null||![0,1,2,3].includes(A))throw new Error("recovery id invalid");let K=A===2||A===3?P+t.n:P;if(K>=r.ORDER)throw new Error("recovery id 2 or 3 invalid");let G=A&1?"03":"02",j=u.fromHex(G+d(K)),rt=c(K),lt=a(-F*rt),nt=a(k*rt),ct=u.BASE.multiplyAndAddUnsafe(j,lt,nt);if(!ct)throw new Error("point at infinify");return ct.assertValidity(),ct}hasHighS(){return h(this.s)}normalizeS(){return this.hasHighS()?new m(this.r,a(-this.s),this.recovery):this}toDERRawBytes(){return cn(this.toDERHex())}toDERHex(){return pn.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return cn(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=t.randomBytes(r.BYTES+8),D=Hc(C,n);return fr(D,t.nByteLength)},precompute(C=8,D=u.BASE){return D._setWindowSize(C),D.multiply(BigInt(3)),D}};function v(C,D=!0){return u.fromPrivateKey(C).toRawBytes(D)}function B(C){let D=C instanceof Uint8Array,P=typeof C=="string",k=(D||P)&&C.length;return D?k===i||k===o:P?k===2*i||k===2*o:C instanceof u}function E(C,D,P=!0){if(B(C))throw new Error("first arg must be private key");if(!B(D))throw new Error("second arg must be public key");return u.fromHex(D).multiply(f(C)).toRawBytes(P)}let S=t.bits2int||function(C){let D=Pe(C),P=C.length*8-t.nBitLength;return P>0?D>>BigInt(P):D},L=t.bits2int_modN||function(C){return a(S(C))},N=C0(t.nBitLength);function Q(C){if(typeof C!="bigint")throw new Error("bigint expected");if(!(pr<=C&&C<N))throw new Error(`bigint expected < 2^${t.nBitLength}`);return fr(C,t.nByteLength)}function Y(C,D,P=z){if(["recovered","canonical"].some(Tt=>Tt in P))throw new Error("sign() legacy options not supported");let{hash:k,randomBytes:A}=t,{lowS:F,prehash:K,extraEntropy:G}=P;F==null&&(F=!0),C=xt("msgHash",C),K&&(C=xt("prehashed msgHash",k(C)));let j=L(C),rt=f(D),lt=[Q(rt),Q(j)];if(G!=null){let Tt=G===!0?A(r.BYTES):G;lt.push(xt("extraEntropy",Tt,r.BYTES))}let nt=Le(...lt),ct=j;function Kt(Tt){let Zt=S(Tt);if(!p(Zt))return;let Xt=c(Zt),zt=u.BASE.multiply(Zt).toAffine(),Jt=a(zt.x);if(Jt===pr)return;let tr=a(Xt*a(ct+Jt*rt));if(tr===pr)return;let Vr=(zt.x===Jt?0:2)|Number(zt.y&be),o0=tr;return F&&h(tr)&&(o0=y(tr),Vr^=1),new m(Jt,o0,Vr)}return{seed:nt,k2sig:Kt}}let z={lowS:t.lowS,prehash:!1},et={lowS:t.lowS,prehash:!1};function dt(C,D,P=z){let{seed:k,k2sig:A}=Y(C,D,P),F=t;return ks(F.hash.outputLen,F.nByteLength,F.hmac)(k,A)}u.BASE._setWindowSize(8);function Wt(C,D,P,k=et){let A=C;if(D=xt("msgHash",D),P=xt("publicKey",P),"strict"in k)throw new Error("options.strict was renamed to lowS");let{lowS:F,prehash:K}=k,G,j;try{if(typeof A=="string"||A instanceof Uint8Array)try{G=m.fromDER(A)}catch(zt){if(!(zt instanceof pn.Err))throw zt;G=m.fromCompact(A)}else if(typeof A=="object"&&typeof A.r=="bigint"&&typeof A.s=="bigint"){let{r:zt,s:Jt}=A;G=new m(zt,Jt)}else throw new Error("PARSE");j=u.fromHex(P)}catch(zt){if(zt.message==="PARSE")throw new Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(F&&G.hasHighS())return!1;K&&(D=t.hash(D));let{r:rt,s:lt}=G,nt=L(D),ct=c(lt),Kt=a(nt*ct),Tt=a(rt*ct),Zt=u.BASE.multiplyAndAddUnsafe(j,Kt,Tt)?.toAffine();return Zt?a(Zt.x)===rt:!1}return{CURVE:t,getPublicKey:v,getSharedSecret:E,sign:dt,verify:Wt,ProjectivePoint:u,Signature:m,utils:x}}var a1=class extends Gn{constructor(t,r){super(),this.finished=!1,this.destroyed=!1,ur.hash(t);let n=_0(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 ur.exists(this),this.iHash.update(t),this}digestInto(t){ur.exists(this),ur.bytes(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()}},js=(e,t,r)=>new a1(e,t).update(r).digest();js.create=(e,t)=>new a1(e,t);function Vh(e){return{hash:e,hmac:(t,...r)=>js(e,t,$i(...r)),randomBytes:an}}function C5(e,t){let r=n=>_5({...e,...Vh(n)});return Object.freeze({...r(t),create:r})}var P5=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),T5=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),zh=BigInt(1),Js=BigInt(2),R5=(e,t)=>(e+t/Js)/t;function Hh(e){let t=P5,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,Js,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,B=Bt(v,s,t)*h%t,E=Bt(B,n,t)*u%t,S=Bt(E,Js,t);if(!t2.eql(t2.sqr(S),e))throw new Error("Cannot find square root");return S}var t2=ji(P5,void 0,void 0,{sqrt:Hh}),yr=C5({a:BigInt(0),b:BigInt(7),Fp:t2,n:T5,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:e=>{let t=T5,r=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),n=-zh*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),i=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),o=r,s=BigInt("0x100000000000000000000000000000000"),a=R5(o*e,t),c=R5(-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}}}},A5),kE=BigInt(0);var DE=yr.ProjectivePoint;function L5(){return yr.utils.randomPrivateKey()}async function N5(e,t){let{digest:r}=await _t.digest(t);try{return yr.sign(r,e).toDERRawBytes()}catch(n){throw new R(String(n),"ERR_INVALID_INPUT")}}async function k5(e,t,r){try{let{digest:n}=await _t.digest(r);return yr.verify(t,n,e)}catch(n){throw new R(String(n),"ERR_INVALID_INPUT")}}function D5(e){return yr.ProjectivePoint.fromHex(e).toRawBytes(!0)}function O5(e){try{yr.getPublicKey(e,!0)}catch(t){throw new R(String(t),"ERR_INVALID_PRIVATE_KEY")}}function e2(e){try{yr.ProjectivePoint.fromHex(e)}catch(t){throw new R(String(t),"ERR_INVALID_PUBLIC_KEY")}}function U5(e){try{return yr.getPublicKey(e,!0)}catch(t){throw new R(String(t),"ERR_INVALID_PRIVATE_KEY")}}var D0=class{_key;constructor(t){e2(t),this._key=t}async verify(t,r){return k5(this._key,r,t)}marshal(){return D5(this._key)}get bytes(){return ke.encode({Type:wt.Secp256k1,Data:this.marshal()}).subarray()}equals(t){return gt(this.bytes,t.bytes)}async hash(){let{bytes:t}=await _t.digest(this.bytes);return t}},O0=class{_key;_publicKey;constructor(t,r){this._key=t,this._publicKey=r??U5(t),O5(this._key),e2(this._publicKey)}async sign(t){return N5(this._key,t)}get public(){return new D0(this._publicKey)}marshal(){return this._key}get bytes(){return De.encode({Type:wt.Secp256k1,Data:this.marshal()}).subarray()}equals(t){return gt(this.bytes,t.bytes)}async hash(){let{bytes:t}=await _t.digest(this.bytes);return t}async id(){let t=await this.public.hash();return $(t,"base58btc")}async export(t,r="libp2p-key"){if(r==="libp2p-key")return Xn(this.bytes,t);throw new R(`export format '${r}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};function Gh(e){return new O0(e)}function Qh(e){return new D0(e)}async function Yh(){let e=L5();return new O0(e)}var Je={rsa:Zs,ed25519:Hs,secp256k1:r2};function n2(e){let t=Object.keys(Je).join(" / ");return new R(`invalid or unsupported key type ${e}. Must be ${t}`,"ERR_UNSUPPORTED_KEY_TYPE")}function i2(e){if(e=e.toLowerCase(),e==="rsa"||e==="ed25519"||e==="secp256k1")return Je[e];throw n2(e)}async function Wh(e,t){return i2(e).generateKeyPair(t??2048)}async function Zh(e,t,r){if(e.toLowerCase()!=="ed25519")throw new R("Seed key derivation is unimplemented for RSA or secp256k1","ERR_UNSUPPORTED_KEY_DERIVATION_TYPE");return zs(t)}function Xh(e){let t=ke.decode(e),r=t.Data??new Uint8Array;switch(t.Type){case wt.RSA:return Je.rsa.unmarshalRsaPublicKey(r);case wt.Ed25519:return Je.ed25519.unmarshalEd25519PublicKey(r);case wt.Secp256k1:return Je.secp256k1.unmarshalSecp256k1PublicKey(r);default:throw n2(t.Type??"RSA")}}function jh(e,t){return t=(t??"rsa").toLowerCase(),i2(t),e.bytes}async function F5(e){let t=De.decode(e),r=t.Data??new Uint8Array;switch(t.Type){case wt.RSA:return Je.rsa.unmarshalRsaPrivateKey(r);case wt.Ed25519:return Je.ed25519.unmarshalEd25519PrivateKey(r);case wt.Secp256k1:return Je.secp256k1.unmarshalSecp256k1PrivateKey(r);default:throw n2(t.Type??"RSA")}}function Jh(e,t){return t=(t??"rsa").toLowerCase(),i2(t),e.bytes}async function td(e,t){try{let i=await a5(e,t);return await F5(i)}catch{}let r=c1.default.pki.decryptRsaPrivateKey(e,t);if(r===null)throw new R("Cannot read the key, most likely the password is wrong or not a RSA key","ERR_CANNOT_DECRYPT_PEM");let n=c1.default.asn1.toDer(c1.default.pki.privateKeyToAsn1(r));return n=St(n.getBytes(),"ascii"),Je.rsa.unmarshalRsaPrivateKey(n)}var ed=ot(ys(),1),rd=ot(Ut(),1);function f1(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 gr(e,t){if(e.length!==t.length)throw new Error("Inputs should have the same length");let r=le(e.length);for(let n=0;n<e.length;n++)r[n]=e[n]^t[n];return rr(r)}var l1=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 _e(t),n={peerId:t,distance:gr(this.originDhtKey,r)};this.peerDistances.push(n),this.peerDistances.sort((i,o)=>f1(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(_e)),n=this.peerDistances[this.peerDistances.length-1].distance;for(let i of r){let o=gr(this.originDhtKey,i);if(f1(o,n)<0)return!0}return!1}};var h1=class{components;log;routingTable;network;validators;queryManager;constructor(t,r){let{routingTable:n,network:i,validators:o,queryManager:s,lan:a}=r;this.components=t,this.routingTable=n,this.network=i,this.validators=o,this.queryManager=s,this.log=J(`libp2p:kad-dht:${a?"lan":"wan"}: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.components.peerStore.get(n)}catch(i){if(i.code!=="ERR_NOT_FOUND")throw i}}if(r==null)try{r=await this.components.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),protocols:[]}}async*_getValueSingle(t,r,n={}){let i=new Lt(Ot.GET_VALUE,r,0);yield*this.network.sendRequest(t,i,n)}async*getPublicKeyFromNode(t,r={}){let n=J3(t);for await(let i of this._getValueSingle(t,n,r))if(yield i,i.name==="PEER_RESPONSE"&&i.record!=null){let o=await _a(u1.marshalPublicKey({bytes:i.record.value}));if(!o.equals(t))throw new R("public key does not match id","ERR_PUBLIC_KEY_DOES_NOT_MATCH_ID");if(o.publicKey==null)throw new R("public key missing","ERR_PUBLIC_KEY_MISSING");yield x0({from:t,value:o.publicKey},r)}throw new R(`Node not responding with its public key: ${t.toString()}`,"ERR_INVALID_RECORD")}async*findPeer(t,r={}){this.log("findPeer %p",t);let n=await this.findPeerLocal(t);if(n!=null){this.log("found local"),yield yi({from:this.components.peerId,peer:n},r);return}let i=this,o=async function*({peer:a,signal:c}){let u=new Lt(Ot.FIND_NODE,t.toBytes(),0);for await(let f of i.network.sendRequest(a,u,{...r,signal:c}))if(yield f,f.name==="PEER_RESPONSE"){let l=f.closer.find(p=>p.id.equals(t));l!=null&&(yield yi({from:f.from,peer:l},r))}},s=!1;for await(let a of this.queryManager.run(t.toBytes(),o,r))a.name==="FINAL_PEER"&&(s=!0),yield a;s||(yield ie({from:this.components.peerId,error:new R("Not found","ERR_NOT_FOUND")},r))}async*getClosestPeers(t,r={}){this.log("getClosestPeers to %b",t);let n=await Cr(t),i=this.routingTable.closestPeers(n),o=this,s=new l1(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",$(t,"base32"),c);let f=new Lt(Ot.FIND_NODE,t,0);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.components.peerStore.get(c);yield yi({from:this.components.peerId,peer:{id:c,multiaddrs:u.addresses.map(({multiaddr:f})=>f),protocols:u.protocols}},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 ie({from:i.from,error:new R(s,"ERR_INVALID_RECORD")},n);continue}yield i}}async _verifyRecordOnline(t){if(t.timeReceived==null)throw new R("invalid record received","ERR_INVALID_RECORD");await Dn(this.validators,new jt(t.key,t.value,t.timeReceived))}async getCloserPeersOffline(t,r){let n=await Cr(t),i=this.routingTable.closestPeers(n),o=[];for(let s of i)if(!s.equals(r))try{let a=await this.components.peerStore.get(s);o.push({id:s,multiaddrs:a.addresses.map(({multiaddr:c})=>c),protocols:a.protocols})}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 j5=ot(K5(),1);var X5=ot(V5(),1);var F0=class extends Error{constructor(t){super(t),this.name="TimeoutError"}},s2=class extends Error{constructor(t){super(),this.name="AbortError",this.message=t}},z5=e=>globalThis.DOMException===void 0?new s2(e):new DOMException(e),H5=e=>{let t=e.reason===void 0?z5("This operation was aborted."):e.reason;return t instanceof Error?t:z5(t)};function a2(e,t,r,n){let i,o=new Promise((s,a)=>{if(typeof t!="number"||Math.sign(t)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${t}\``);if(t===Number.POSITIVE_INFINITY){s(e);return}if(n={customTimers:{setTimeout,clearTimeout},...n},n.signal){let{signal:c}=n;c.aborted&&a(H5(c)),c.addEventListener("abort",()=>{a(H5(c))})}i=n.customTimers.setTimeout.call(void 0,()=>{if(typeof r=="function"){try{s(r())}catch(f){a(f)}return}let c=typeof r=="string"?r:`Promise timed out after ${t} milliseconds`,u=r instanceof Error?r:new F0(c);typeof e.cancel=="function"&&e.cancel(),a(u)},t),(async()=>{try{s(await e)}catch(c){a(c)}finally{n.customTimers.clearTimeout.call(void 0,i)}})()});return o.clear=()=>{clearTimeout(i),i=void 0},o}function c2(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 yn=function(e,t,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(e):n?n.value:t.get(e)},mr,M0=class{constructor(){mr.set(this,[])}enqueue(t,r){r={priority:0,...r};let n={priority:r.priority,run:t};if(this.size&&yn(this,mr,"f")[this.size-1].priority>=r.priority){yn(this,mr,"f").push(n);return}let i=c2(yn(this,mr,"f"),n,(o,s)=>s.priority-o.priority);yn(this,mr,"f").splice(i,0,n)}dequeue(){let t=yn(this,mr,"f").shift();return t?.run}filter(t){return yn(this,mr,"f").filter(r=>r.priority===t.priority).map(r=>r.run)}get size(){return yn(this,mr,"f").length}};mr=new WeakMap;var Ct=function(e,t,r,n,i){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!i)throw new TypeError("Private accessor was defined without a setter");if(typeof t=="function"?e!==t||!i:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?i.call(e,r):i?i.value=r:t.set(e,r),r},M=function(e,t,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(e):n?n.value:t.get(e)},Mt,q0,V0,Kr,v1,z0,p1,Ue,K0,pe,y1,ye,H0,Mr,g1,$5,G5,W5,Q5,Y5,m1,u2,f2,b1,Z5,x1,w1=class extends Error{},xr=class extends X5.default{constructor(t){var r,n,i,o;if(super(),Mt.add(this),q0.set(this,void 0),V0.set(this,void 0),Kr.set(this,0),v1.set(this,void 0),z0.set(this,void 0),p1.set(this,0),Ue.set(this,void 0),K0.set(this,void 0),pe.set(this,void 0),y1.set(this,void 0),ye.set(this,0),H0.set(this,void 0),Mr.set(this,void 0),g1.set(this,void 0),Object.defineProperty(this,"timeout",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),t={carryoverConcurrencyCount:!1,intervalCap:Number.POSITIVE_INFINITY,interval:0,concurrency:Number.POSITIVE_INFINITY,autoStart:!0,queueClass:M0,...t},!(typeof t.intervalCap=="number"&&t.intervalCap>=1))throw new TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${(n=(r=t.intervalCap)===null||r===void 0?void 0:r.toString())!==null&&n!==void 0?n:""}\` (${typeof t.intervalCap})`);if(t.interval===void 0||!(Number.isFinite(t.interval)&&t.interval>=0))throw new TypeError(`Expected \`interval\` to be a finite number >= 0, got \`${(o=(i=t.interval)===null||i===void 0?void 0:i.toString())!==null&&o!==void 0?o:""}\` (${typeof t.interval})`);Ct(this,q0,t.carryoverConcurrencyCount,"f"),Ct(this,V0,t.intervalCap===Number.POSITIVE_INFINITY||t.interval===0,"f"),Ct(this,v1,t.intervalCap,"f"),Ct(this,z0,t.interval,"f"),Ct(this,pe,new t.queueClass,"f"),Ct(this,y1,t.queueClass,"f"),this.concurrency=t.concurrency,this.timeout=t.timeout,Ct(this,g1,t.throwOnTimeout===!0,"f"),Ct(this,Mr,t.autoStart===!1,"f")}get concurrency(){return M(this,H0,"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})`);Ct(this,H0,t,"f"),M(this,Mt,"m",b1).call(this)}async add(t,r={}){return r={timeout:this.timeout,throwOnTimeout:M(this,g1,"f"),...r},new Promise((n,i)=>{M(this,pe,"f").enqueue(async()=>{var o,s,a;Ct(this,ye,(s=M(this,ye,"f"),s++,s),"f"),Ct(this,Kr,(a=M(this,Kr,"f"),a++,a),"f");try{if(!((o=r.signal)===null||o===void 0)&&o.aborted)throw new w1("The task was aborted.");let c=t({signal:r.signal});r.timeout&&(c=a2(Promise.resolve(c),r.timeout)),r.signal&&(c=Promise.race([c,M(this,Mt,"m",Z5).call(this,r.signal)]));let u=await c;n(u),this.emit("completed",u)}catch(c){if(c instanceof F0&&!r.throwOnTimeout){n();return}i(c),this.emit("error",c)}finally{M(this,Mt,"m",W5).call(this)}},r),this.emit("add"),M(this,Mt,"m",m1).call(this)})}async addAll(t,r){return Promise.all(t.map(async n=>this.add(n,r)))}start(){return M(this,Mr,"f")?(Ct(this,Mr,!1,"f"),M(this,Mt,"m",b1).call(this),this):this}pause(){Ct(this,Mr,!0,"f")}clear(){Ct(this,pe,new(M(this,y1,"f")),"f")}async onEmpty(){M(this,pe,"f").size!==0&&await M(this,Mt,"m",x1).call(this,"empty")}async onSizeLessThan(t){M(this,pe,"f").size<t||await M(this,Mt,"m",x1).call(this,"next",()=>M(this,pe,"f").size<t)}async onIdle(){M(this,ye,"f")===0&&M(this,pe,"f").size===0||await M(this,Mt,"m",x1).call(this,"idle")}get size(){return M(this,pe,"f").size}sizeBy(t){return M(this,pe,"f").filter(t).length}get pending(){return M(this,ye,"f")}get isPaused(){return M(this,Mr,"f")}};q0=new WeakMap,V0=new WeakMap,Kr=new WeakMap,v1=new WeakMap,z0=new WeakMap,p1=new WeakMap,Ue=new WeakMap,K0=new WeakMap,pe=new WeakMap,y1=new WeakMap,ye=new WeakMap,H0=new WeakMap,Mr=new WeakMap,g1=new WeakMap,Mt=new WeakSet,$5=function(){return M(this,V0,"f")||M(this,Kr,"f")<M(this,v1,"f")},G5=function(){return M(this,ye,"f")<M(this,H0,"f")},W5=function(){var t;Ct(this,ye,(t=M(this,ye,"f"),t--,t),"f"),M(this,Mt,"m",m1).call(this),this.emit("next")},Q5=function(){M(this,Mt,"m",f2).call(this),M(this,Mt,"m",u2).call(this),Ct(this,K0,void 0,"f")},Y5=function(){let t=Date.now();if(M(this,Ue,"f")===void 0){let r=M(this,p1,"f")-t;if(r<0)Ct(this,Kr,M(this,q0,"f")?M(this,ye,"f"):0,"f");else return M(this,K0,"f")===void 0&&Ct(this,K0,setTimeout(()=>{M(this,Mt,"m",Q5).call(this)},r),"f"),!0}return!1},m1=function(){if(M(this,pe,"f").size===0)return M(this,Ue,"f")&&clearInterval(M(this,Ue,"f")),Ct(this,Ue,void 0,"f"),this.emit("empty"),M(this,ye,"f")===0&&this.emit("idle"),!1;if(!M(this,Mr,"f")){let t=!M(this,Mt,"a",Y5);if(M(this,Mt,"a",$5)&&M(this,Mt,"a",G5)){let r=M(this,pe,"f").dequeue();return r?(this.emit("active"),r(),t&&M(this,Mt,"m",u2).call(this),!0):!1}}return!1},u2=function(){M(this,V0,"f")||M(this,Ue,"f")!==void 0||(Ct(this,Ue,setInterval(()=>{M(this,Mt,"m",f2).call(this)},M(this,z0,"f")),"f"),Ct(this,p1,Date.now()+M(this,z0,"f"),"f"))},f2=function(){M(this,Kr,"f")===0&&M(this,ye,"f")===0&&M(this,Ue,"f")&&(clearInterval(M(this,Ue,"f")),Ct(this,Ue,void 0,"f")),Ct(this,Kr,M(this,q0,"f")?M(this,ye,"f"):0,"f"),M(this,Mt,"m",b1).call(this)},b1=function(){for(;M(this,Mt,"m",m1).call(this););},Z5=async function(t){return new Promise((r,n)=>{t.addEventListener("abort",()=>{n(new w1("The task was aborted."))},{once:!0})})},x1=async function(t,r){return new Promise(n=>{let i=()=>{r&&!r()||(this.off(t,i),n())};this.on(t,i)})};var l2=ot(ui(),1);var vr=J("libp2p:kad-dht:providers"),E1=class{components;cache;cleanupInterval;provideValidity;syncQueue;started;cleaner;constructor(t,r={}){let{cacheSize:n,cleanupInterval:i,provideValidity:o}=r;this.components=t,this.cleanupInterval=i??36e5,this.provideValidity=o??864e5,this.cache=(0,j5.default)(n??256),this.syncQueue=new xr({concurrency:1}),this.started=!1}isStarted(){return this.started}async start(){this.started||(this.started=!0,this.cleaner=setInterval(()=>{this._cleanup().catch(t=>{vr.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.components.datastore.batch(),s=this.components.datastore.query({prefix:ro});for await(let a of s)try{let{cid:c,peerId:u}=J5(a.key),f=t8(a.value).getTime(),l=Date.now(),p=l-f,d=p>this.provideValidity;if(vr("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){vr.error(c.message)}i.size>0?(vr("deleting %d / %d entries",n,r),await o.commit()):vr("nothing to delete");for(let[a,c]of i){let u=$0(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)}}vr("Cleanup successful (%dms)",Date.now()-t)})}async _getProvidersMap(t){let r=$0(t),n=this.cache.get(r);return n==null&&(n=await ud(this.components.datastore,t),this.cache.set(r,n)),n}async addProvider(t,r){await this.syncQueue.add(async()=>{vr("%p provides %s",r,t);let n=await this._getProvidersMap(t);vr("loaded %s provs",n.size);let i=new Date;n.set(r.toString(),i);let o=$0(t);this.cache.set(o,n),await cd(this.components.datastore,t,r,i)})}async getProviders(t){return this.syncQueue.add(async()=>(vr("get providers for %s",t),[...(await this._getProvidersMap(t)).keys()].map(n=>Pt(n))),{throwOnTimeout:!0})}};function $0(e){let t=typeof e=="string"?e:$(e.multihash.bytes,"base32");return`${ro}/${t}`}async function cd(e,t,r,n){let i=[$0(t),"/",r.toString()].join(""),o=new On(i),s=Uint8Array.from(l2.default.encode(n.getTime()));await e.put(o,s)}function J5(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 ud(e,t){let r=new Map,n=e.query({prefix:$0(t)});for await(let i of n){let{peerId:o}=J5(i.key);r.set(o,t8(i.value))}return r}function t8(e){return new Date(l2.default.decode(e))}var gn=ot(d2(),1);function br(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 p2=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){this.map.delete(t.toString())}entries(){return br(this.map.entries(),t=>[Pt(t[0]),t[1]])}forEach(t){this.map.forEach((r,n)=>{t(r,Pt(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 br(this.map.keys(),t=>Pt(t))}values(){return this.map.values()}get size(){return this.map.size}};var qr=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 br(this.set.entries(),t=>{let r=Pt(t[0]);return[r,r]})}forEach(t){this.set.forEach(r=>{let n=Pt(r);t(n,n,this)})}has(t){return this.set.has(t.toString())}values(){return br(this.set.values(),t=>Pt(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 y2=class e{list;constructor(t){if(this.list=[],t!=null)for(let r of t)this.list.push(r.toString())}[Symbol.iterator](){return br(this.list.entries(),t=>Pt(t[1]))}concat(t){let r=new e(this);for(let n of t)r.push(n);return r}entries(){return br(this.list.entries(),t=>[t[0],Pt(t[1])])}every(t){return this.list.every((r,n)=>t(Pt(r),n,this))}filter(t){let r=new e;return this.list.forEach((n,i)=>{let o=Pt(n);t(o,i,this)&&r.push(o)}),r}find(t){let r=this.list.find((n,i)=>t(Pt(n),i,this));if(r!=null)return Pt(r)}findIndex(t){return this.list.findIndex((r,n)=>t(Pt(r),n,this))}forEach(t){this.list.forEach((r,n)=>{t(Pt(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 Pt(t)}push(...t){for(let r of t)this.list.push(r.toString())}shift(){let t=this.list.shift();if(t!=null)return Pt(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}get length(){return this.list.length}};function r0(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}var gd=BigInt("0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF");async function*l8(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 xr({concurrency:s}),h=await Cr(t);function y(g,m){if(g==null)return;p.add(g);let x=BigInt("0x"+$(gr(m,h),"base16"));d.add(async()=>{let v=[i];f!=null&&v.push(AbortSignal.timeout(f));let B=r0(v);try{for await(let E of o({key:t,peer:g,signal:B,pathIndex:a,numPaths:c})){if(B.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 _e(S.id);if(BigInt("0x"+$(gr(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 ie({from:g,error:E},e)}finally{B.clear()}},{priority:gd-x}).catch(v=>{l.error(v)})}y(r,await _e(r)),yield*md(d,i,u,l)}async function*md(e,t,r,n){let i=ee(),o=!0,s=[],a=()=>{o&&(n("clean up queue, results %d, queue size %d, pending tasks %d",s.length,e.size,e.pending),o=!1,e.clear(),s.splice(0,s.length))};for(e.on("completed",c=>{s.push(c),i.resolve()}),e.on("error",c=>{n("queue error",c),a(),i.reject(c)}),e.on("idle",()=>{n("queue idle"),o=!1,i.resolve()}),t.addEventListener("abort",()=>{n("abort queue");let c=o;a(),c&&i.reject(new R("Query aborted","ERR_QUERY_ABORTED"))}),r.addEventListener("cleanup",()=>{a(),i.resolve()});o;)for(await i.promise,i=ee();s.length>0;){let c=s.shift();c!=null&&(yield c)}yield*s}var B1=class{components;lan;disjointPaths;alpha;shutDownController;running;queries;metrics;routingTable;initialQuerySelfHasRun;constructor(t,r){let{lan:n=!1,disjointPaths:i=20,alpha:o=3}=r;this.components=t,this.disjointPaths=i??20,this.running=!1,this.alpha=o??3,this.lan=n,this.queries=0,this.initialQuerySelfHasRun=r.initialQuerySelfHasRun,this.routingTable=r.routingTable,this.shutDownController=new AbortController;try{gn.setMaxListeners!=null&&(0,gn.setMaxListeners)(1/0,this.shutDownController.signal)}catch{}}isStarted(){return this.running}async start(){this.running=!0,this.components.metrics!=null&&this.metrics==null&&(this.metrics={runningQueries:this.components.metrics.registerMetric(`libp2p_kad_dht_${this.lan?"lan":"wan"}_running_queries`),queryTime:this.components.metrics.registerMetric(`libp2p_kad_dht_${this.lan?"lan":"wan"}_query_time_seconds`)})}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){n.signal=AbortSignal.timeout(3e4);try{gn.setMaxListeners!=null&&(0,gn.setMaxListeners)(1/0,n.signal)}catch{}}let o=r0([this.shutDownController.signal,n.signal]);try{gn.setMaxListeners!=null&&(0,gn.setMaxListeners)(1/0,o)}catch{}let s=J(`libp2p:kad-dht:${this.lan?"lan":"wan"}:query:`+$(t,"base58btc")),a=Date.now(),c=new te;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 Z0("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 Cr(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 qr,d=l.map((h,y)=>l8({key:t,startingPeer:h,ourPeerId:this.components.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 Ee(...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 Nt("cleanup")),s("query:done in %dms",Date.now()-a)}}};var x2=ot(d2(),1);function vd(e){return e[Symbol.asyncIterator]!=null}function bd(e){if(vd(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 _1=bd;function wd(e){return e[Symbol.asyncIterator]!=null}function Ed(e,t){return wd(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 h8=Ed;var C1=class extends Error{constructor(t){super(t),this.name="TimeoutError"}},g2=class extends Error{constructor(t){super(),this.name="AbortError",this.message=t}},d8=e=>globalThis.DOMException===void 0?new g2(e):new DOMException(e),p8=e=>{let t=e.reason===void 0?d8("This operation was aborted."):e.reason;return t instanceof Error?t:d8(t)};function m2(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(p8(p)),p.addEventListener("abort",()=>{f(p8(p))})}if(r===Number.POSITIVE_INFINITY){e.then(u,f);return}let l=new C1;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}var Sd=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 Id(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}=Sd(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=m2(i,{milliseconds:r.timeout});return o.cancel=n,o}return i}function y8(e,t,r){typeof r=="function"&&(r={filter:r}),r={...r,count:1,resolveImmediately:!1};let n=Id(e,t,r),i=n.then(o=>o[0]);return i.cancel=n.cancel,i}var T1=class{log;components;peerRouting;routingTable;count;interval;initialInterval;queryTimeout;started;timeoutId;controller;initialQuerySelfHasRun;querySelfPromise;constructor(t,r){let{peerRouting:n,lan:i,count:o,interval:s,queryTimeout:a,routingTable:c}=r;this.components=t,this.log=J(`libp2p:kad-dht:${i?"lan":"wan"}: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=ee(),this.routingTable.size===0&&await y8(this.routingTable,"peer:add"),this.started){this.controller=new AbortController;let t=r0([this.controller.signal,AbortSignal.timeout(this.queryTimeout)]);try{x2.setMaxListeners!=null&&(0,x2.setMaxListeners)(1/0,t)}catch{}try{this.log("run self-query, look for %d peers timing out after %dms",this.count,this.queryTimeout);let r=await Ie(this.peerRouting.getClosestPeers(this.components.peerId.toBytes(),{signal:t,isSelfQuery:!0}),n=>h8(n,this.count),async n=>_1(n));this.log("self-query ran successfully - found %d peers",r),this.initialQuerySelfHasRun!=null&&(this.initialQuerySelfHasRun.resolve(),this.initialQuerySelfHasRun=void 0)}catch(r){this.log.error("self-query error",r)}finally{t.clear()}}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 g8(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 v2(){return{contacts:[],dontSplit:!1,left:null,right:null}}function G0(e,t){if(!(t instanceof Uint8Array))throw new TypeError(e+" is not a Uint8Array")}var R1=class e extends te{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,G0("option.localNodeId as parameter 1",this.localNodeId),this.root=v2()}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){G0("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(G0("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){G0("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(g8(t.contacts[n].id,r))return n;return-1}remove(t){G0("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=v2(),t.right=v2();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(!g8(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 Cd="kad-close",Td=50,m8=20,Rd=1e4,Pd=10,P1=class extends te{kBucketSize;kb;pingQueue;log;components;lan;pingTimeout;pingConcurrency;running;protocol;tagName;tagValue;metrics;constructor(t,r){super();let{kBucketSize:n,pingTimeout:i,lan:o,pingConcurrency:s,protocol:a,tagName:c,tagValue:u}=r;this.components=t,this.log=J(`libp2p:kad-dht:${o?"lan":"wan"}:routing-table`),this.kBucketSize=n??m8,this.pingTimeout=i??Rd,this.pingConcurrency=s??Pd,this.lan=o,this.running=!1,this.protocol=a,this.tagName=c??Cd,this.tagValue=u??Td;let f=()=>{this.metrics?.pingQueueSize.update(this.pingQueue.size),this.metrics?.pingRunning.update(this.pingQueue.pending)};this.pingQueue=new xr({concurrency:this.pingConcurrency}),this.pingQueue.addListener("add",f),this.pingQueue.addListener("next",f),this._onPing=this._onPing.bind(this)}isStarted(){return this.running}async start(){this.running=!0,this.components.metrics!=null&&(this.metrics={routingTableSize:this.components.metrics.registerMetric(`libp2p_kad_dht_${this.lan?"lan":"wan"}_routing_table_size`),pingQueueSize:this.components.metrics.registerMetric(`libp2p_kad_dht_${this.lan?"lan":"wan"}_ping_queue_size`),pingRunning:this.components.metrics.registerMetric(`libp2p_kad_dht_${this.lan?"lan":"wan"}_ping_running`)});let t=new R1({localNodeId:await _e(this.components.peerId),numberOfNodesPerKBucket:this.kBucketSize,numberOfNodesToPing:1});this.kb=t,t.addEventListener("ping",this._onPing),this._tagPeers(t)}async stop(){this.running=!1,this.pingQueue.clear(),this.kb=void 0}_tagPeers(t){let r=new qr,n=r4(()=>{let i=new qr(t.closest(t.localNodeId,m8).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})})}_onPing(t){let{oldContacts:r,newContact:n}=t.detail;this.pingQueue.add(async()=>{if(!this.running)return;let i=0;try{await Promise.all(r.map(async o=>{try{let s={signal:AbortSignal.timeout(this.pingTimeout)};this.log("pinging old contact %p",o.peer),await(await(await this.components.connectionManager.openConnection(o.peer,s)).newStream(this.protocol,s)).close(),i++}catch(s){this.running&&this.kb!=null&&(this.log.error("could not ping peer %p",o.peer,s),this.log("evicting old contact after ping failed %p",o.peer),this.kb.remove(o.id))}finally{this.metrics?.routingTableSize.update(this.size)}})),this.running&&i<r.length&&this.kb!=null&&(this.log("adding new contact %p",n.peer),this.kb.add(n))}catch(o){this.log.error("could not process k-bucket ping event",o)}}).catch(i=>{this.log.error("could not process k-bucket ping event",i)})}get size(){return this.kb==null?0:this.kb.count()}async find(t){let r=await _e(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 _e(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 _e(t);this.kb.remove(r),this.metrics?.routingTableSize.update(this.size)}};var x8=[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 L1=15,N1=class{log;peerRouting;routingTable;refreshInterval;refreshQueryTimeout;commonPrefixLengthRefreshedAt;refreshTimeoutId;constructor(t){let{peerRouting:r,routingTable:n,refreshInterval:i,refreshQueryTimeout:o,lan:s}=t;this.log=J(`libp2p:kad-dht:${s?"lan":"wan"}:routing-table:refresh`),this.peerRouting=r,this.routingTable=n,this.refreshInterval=i??3e5,this.refreshQueryTimeout=o??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 _1(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>L1&&(t=L1);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=hn(2),n=(r[1]<<8)+r[0],i=await this._makePeerId(this.routingTable.kb.localNodeId,n,t);return Qr(i)}async _makePeerId(t,r,n){if(n>L1)throw new Error(`Cannot generate peer ID for common prefix length greater than ${L1}`);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=x8[c],f=new ArrayBuffer(34),l=new DataView(f,0,f.byteLength);return l.setUint8(0,_t.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=gr(this.routingTable.kb.localNodeId,t),n=0;for(let i of r)if(i===0)n++;else break;yield n}}};var Q0=J("libp2p:kad-dht:rpc:handlers:add-provider"),k1=class{providers;constructor(t){let{providers:r}=t;this.providers=r}async handle(t,r){if(Q0("start"),r.key==null||r.key.length===0)throw new R("Missing key","ERR_MISSING_KEY");let n;try{n=ne.decode(r.key)}catch{throw new R("Invalid CID","ERR_INVALID_CID")}(r.providerPeers==null||r.providerPeers.length===0)&&Q0.error("no providers found in message"),await Promise.all(r.providerPeers.map(async i=>{if(!i.id.equals(t)){Q0("invalid provider peer %p from %p",i.id,t);return}if(i.multiaddrs.length<1){Q0("no valid addresses for provider %p. Ignore",t);return}Q0("received provider %p for %s (addrs %s)",t,n,i.multiaddrs.map(o=>o.toString())),await this.providers.addProvider(n,i.id)}))}};var v8=J("libp2p:kad-dht:rpc:handlers:find-node"),D1=class{peerRouting;lan;components;constructor(t,r){let{peerRouting:n,lan:i}=r;this.components=t,this.peerRouting=n,this.lan=!!i}async handle(t,r){v8("incoming request from %p for peers closer to %b",t,r.key);let n=[];gt(this.components.peerId.toBytes(),r.key)?n=[{id:this.components.peerId,multiaddrs:this.components.addressManager.getAddresses().map(o=>o.decapsulateCode(pt("p2p").code)),protocols:[]}]:n=await this.peerRouting.getCloserPeersOffline(r.key,t),n=n.map(this.lan?Fn:Un).filter(({multiaddrs:o})=>o.length);let i=new Lt(r.type,new Uint8Array(0),r.clusterLevel);return n.length>0?i.closerPeers=n:v8("could not find any peers closer to %b than %p",r.key,t),i}};var b8=J("libp2p:kad-dht:rpc:handlers:get-providers"),O1=class{components;peerRouting;providers;lan;constructor(t,r){let{peerRouting:n,providers:i,lan:o}=r;this.components=t,this.peerRouting=n,this.providers=i,this.lan=!!o}async handle(t,r){let n;try{n=ne.decode(r.key)}catch{throw new R("Invalid CID","ERR_INVALID_CID")}b8("%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=new Lt(r.type,r.key,r.clusterLevel);return s.length>0&&(c.providerPeers=s),a.length>0&&(c.closerPeers=a),b8("got %s providers %s closerPeers",s.length,a.length),c}async _getAddresses(t){return[]}async _getPeers(t){let r=[],n=this.lan?Fn:Un;for(let i of t)try{let o=await this.components.peerStore.get(i),s=n({id:i,multiaddrs:o.addresses.map(({multiaddr:a})=>a),protocols:o.protocols});s.multiaddrs.length>0&&r.push(s)}catch(o){if(o.code!=="ERR_NOT_FOUND")throw o}return r}};var n0=J("libp2p:kad-dht:rpc:handlers:get-value"),U1=class{components;peerRouting;constructor(t,r){let{peerRouting:n}=r;this.components=t,this.peerRouting=n}async handle(t,r){let n=r.key;if(n0("%p asked for key %b",t,n),n==null||n.length===0)throw new R("Invalid key","ERR_INVALID_KEY");let i=new Lt(Ot.GET_VALUE,n,r.clusterLevel);if(t4(n)){n0("is public key");let a=e4(n),c;try{let u=await this.components.peerStore.get(a);if(u.id.publicKey==null)throw new R("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 n0("returning found public key"),i.record=new jt(n,c,new Date),i}let[o,s]=await Promise.all([this._checkLocalDatastore(n),this.peerRouting.getCloserPeersOffline(r.key,t)]);return o!=null&&(n0("had record for %b in local datastore",n),i.record=o),s.length>0&&(n0("had %s closer peers in routing table",s.length),i.closerPeers=s),i}async _checkLocalDatastore(t){n0("checkLocalDatastore looking for %b",t);let r=or(t),n;try{n=await this.components.datastore.get(r)}catch(o){if(o.code==="ERR_NOT_FOUND")return;throw o}let i=jt.deserialize(n);if(i==null)throw new R("Invalid record","ERR_INVALID_RECORD");if(i.timeReceived==null||Date.now()-i.timeReceived.getTime()>1296e5){await this.components.datastore.delete(r);return}return i}};var Dd=J("libp2p:kad-dht:rpc:handlers:ping"),F1=class{async handle(t,r){return Dd("ping from %p",t),r}};var M1=class{log;components;validators;constructor(t,r){let{validators:n}=r;this.components=t,this.log=J("libp2p:kad-dht:rpc:handlers:put-value"),this.validators=n}async handle(t,r){let n=r.key;this.log("%p asked us to store value for key %b",t,n);let i=r.record;if(i==null){let o=`Empty record from: ${t.toString()}`;throw this.log.error(o),new R(o,"ERR_EMPTY_RECORD")}try{await Dn(this.validators,i),i.timeReceived=new Date;let o=or(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(o){this.log("did not put record for key %b into datastore %o",n,o)}return r}};var K1=class{handlers;routingTable;log;constructor(t,r){let{providers:n,peerRouting:i,validators:o,lan:s}=r;this.log=J("libp2p:kad-dht:rpc"),this.routingTable=r.routingTable,this.handlers={[Ot.GET_VALUE]:new U1(t,{peerRouting:i}),[Ot.PUT_VALUE]:new M1(t,{validators:o}),[Ot.FIND_NODE]:new D1(t,{peerRouting:i,lan:s}),[Ot.ADD_PROVIDER]:new k1({providers:n}),[Ot.GET_PROVIDERS]:new O1(t,{peerRouting:i,providers:n,lan:s}),[Ot.PING]:new F1}}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 Ie(r,s=>tn(s),async function*(s){for await(let a of s){let c=Lt.deserialize(a);o.log("incoming %s from %p",c.type,i);let u=await o.handleMessage(i,c);u!=null&&(yield u.serialize())}},s=>jr(s),r)}).catch(r=>{this.log.error(r)})}};var q1=class extends te{log;components;protocol;running;registrarId;constructor(t,r){super();let{protocol:n,lan:i}=r;this.components=t,this.log=J(`libp2p:kad-dht:topology-listener:${i?"lan":"wan"}`),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 Nt("peer",{detail:t}))}}))}async stop(){this.running=!1,this.registrarId!=null&&(this.components.registrar.unregister(this.registrarId),this.registrarId=void 0)}};var Od=32,Ud=64,Y0=class extends te{protocol;routingTable;providers;network;peerRouting;components;log;running;kBucketSize;clientMode;lan;validators;selectors;queryManager;contentFetching;contentRouting;routingTableRefresh;rpc;topologyListener;querySelf;maxInboundStreams;maxOutboundStreams;constructor(t,r){super();let{kBucketSize:n,clientMode:i,validators:o,selectors:s,querySelfInterval:a,lan:c,protocolPrefix:u,pingTimeout:f,pingConcurrency:l,maxInboundStreams:p,maxOutboundStreams:d,providers:h}=r;this.running=!1,this.components=t,this.lan=!!c,this.log=J(`libp2p:kad-dht:${c===!0?"lan":"wan"}`),this.protocol=`${u??sa}${c===!0?oa:""}${aa}`,this.kBucketSize=n??20,this.clientMode=i??!0,this.maxInboundStreams=p??Od,this.maxOutboundStreams=d??Ud,this.routingTable=new P1(t,{kBucketSize:n,lan:this.lan,pingTimeout:f,pingConcurrency:l,protocol:this.protocol}),this.providers=new E1(t,h??{}),this.validators={...Z3,...o},this.selectors={...W3,...s},this.network=new Si(t,{protocol:this.protocol,lan:this.lan});let y=ee();r.allowQueryWithZeroPeers===!0&&y.resolve(),this.queryManager=new B1(t,{disjointPaths:Math.ceil(this.kBucketSize/2),lan:c,initialQuerySelfHasRun:y,routingTable:this.routingTable}),this.peerRouting=new h1(t,{routingTable:this.routingTable,network:this.network,validators:this.validators,queryManager:this.queryManager,lan:this.lan}),this.contentFetching=new mi(t,{validators:this.validators,selectors:this.selectors,peerRouting:this.peerRouting,queryManager:this.queryManager,network:this.network,lan:this.lan}),this.contentRouting=new xi(t,{network:this.network,peerRouting:this.peerRouting,queryManager:this.queryManager,routingTable:this.routingTable,providers:this.providers,lan:this.lan}),this.routingTableRefresh=new N1({peerRouting:this.peerRouting,routingTable:this.routingTable,lan:this.lan}),this.rpc=new K1(t,{routingTable:this.routingTable,providers:this.providers,peerRouting:this.peerRouting,validators:this.validators,lan:this.lan}),this.topologyListener=new q1(t,{protocol:this.protocol,lan:this.lan}),this.querySelf=new T1(t,{peerRouting:this.peerRouting,interval:a,initialInterval:r.initialQuerySelfInterval,lan:this.lan,initialQuerySelfHasRun:y,routingTable:this.routingTable}),this.network.addEventListener("peer",g=>{let m=g.detail;this.onPeerConnect(m).catch(x=>{this.log.error("could not add %p to routing table",m.id,x)}),this.dispatchEvent(new Nt("peer",{detail:m}))}),this.topologyListener.addEventListener("peer",g=>{let m=g.detail;Promise.resolve().then(async()=>{let x=await this.components.peerStore.get(m),v={id:m,multiaddrs:x.addresses.map(({multiaddr:B})=>B),protocols:x.protocols};await this.onPeerConnect(v)}).catch(x=>{this.log.error("could not add %p to routing table",m,x)})})}async onPeerConnect(t){if(this.log("peer %p connected with protocols",t.id,t.protocols),this.lan?t=Fn(t):t=Un(t),t.multiaddrs.length===0){this.log("ignoring %p as they do not have any %s addresses in %s",t.id,this.lan?"private":"public",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}async 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"),await Promise.all([this.providers.start(),this.queryManager.start(),this.network.start(),this.routingTable.start(),this.topologyListener.start()]),this.querySelf.start(),await 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 i0=J("libp2p:kad-dht"),b2=class{dht;constructor(t){this.dht=t}async provide(t,r={}){await s0(this.dht.provide(t,r))}async*findProviders(t,r={}){for await(let n of this.dht.findProviders(t,r))n.name==="PROVIDER"&&(yield*n.providers)}async put(t,r,n){await s0(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 R("Not found","ERR_NOT_FOUND")}},w2=class{dht;constructor(t){this.dht=t}async findPeer(t,r={}){for await(let n of this.dht.findPeer(t,r))if(n.name==="FINAL_PEER")return n.peer;throw new R("Not found","ERR_NOT_FOUND")}async*getClosestPeers(t,r={}){for await(let n of this.dht.getClosestPeers(t,r))n.name==="FINAL_PEER"&&(yield n.peer)}},Fd=290,Md=54,Kd=55,qd=56,Vd=4,zd=41;function Hd(e){let t=e.stringTuples();for(let r of t)if(r[0]===Fd)return!1;if(t[0][0]===Md||t[0][0]===Kd||t[0][0]===qd)return i0("%m is public %s",e,!0),!0;if(t[0][0]===Vd||t[0][0]===zd){let r=c0(`${t[0][1]}`),n=r==null||!r;return i0("%m is public %s",e,n),n}return!1}var V1=class extends te{wan;lan;components;contentRouting;peerRouting;constructor(t,r={}){super(),this.components=t,this.wan=new Y0(t,{protocolPrefix:"/ipfs",...r,lan:!1}),this.lan=new Y0(t,{protocolPrefix:"/ipfs",...r,clientMode:!1,lan:!0}),this.contentRouting=new b2(this),this.peerRouting=new w2(this),this.wan.addEventListener("peer",n=>{this.dispatchEvent(new Nt("peer",{detail:n.detail}))}),this.lan.addEventListener("peer",n=>{this.dispatchEvent(new Nt("peer",{detail:n.detail}))}),r.clientMode==null&&t.events.addEventListener("self:peer:update",n=>{i0("received update of self-peer info");let i=n.detail.peer.addresses.some(({multiaddr:o})=>{let s=Hd(o);return i0("%m is public %s",o,s),s});this.getMode().then(async o=>{i&&o==="client"?await this.setMode("server"):o==="server"&&!i&&await this.setMode("client")}).catch(o=>{i0.error("error setting dht server mode",o)})})}[Symbol.toStringTag]="@libp2p/dual-kad-dht";get[N2](){return this.contentRouting}get[D2](){return this.peerRouting}get[k2](){return this}isStarted(){return this.wan.isStarted()&&this.lan.isStarted()}async getMode(){return this.wan.getMode()}async setMode(t){await this.wan.setMode(t)}async start(){await Promise.all([this.lan.start(),this.wan.start()])}async stop(){await Promise.all([this.lan.stop(),this.wan.stop()])}async*put(t,r,n={}){for await(let i of Ee(this.lan.put(t,r,n),this.wan.put(t,r,n)))yield i}async*get(t,r={}){let n=!1,i=!1;for await(let o of Ee(this.lan.get(t,r),this.wan.get(t,r)))yield o,o.name==="DIAL_PEER"&&(n=!0),o.name==="VALUE"&&(n=!0,o.value!=null&&(i=!0)),o.name==="SEND_QUERY"&&(n=!0);if(!n)throw new R("No peers found in routing table!","ERR_NO_PEERS_IN_ROUTING_TABLE");i||(yield ie({from:this.components.peerId,error:new R("Not found","ERR_NOT_FOUND")},r))}async*provide(t,r={}){let n=0,i=0,o=[],s=[this.lan];await this.wan.getMode()==="server"&&s.push(this.wan);for await(let a of Ee(...s.map(c=>c.provide(t,r))))yield a,a.name==="SEND_QUERY"&&n++,a.name==="QUERY_ERROR"&&o.push(a.error),a.name==="PEER_RESPONSE"&&a.messageName==="ADD_PROVIDER"&&(i0("sent provider record for %s to %p",t,a.from),i++);if(i===0)throw o.length>0?new R(`Failed to provide to ${o.length} of ${n} peers`,"ERR_PROVIDES_FAILED",{errors:o}):new R("Failed to provide - no peers found","ERR_PROVIDES_FAILED")}async*findProviders(t,r={}){yield*Ee(this.lan.findProviders(t,r),this.wan.findProviders(t,r))}async*findPeer(t,r={}){let n=!1;for await(let i of Ee(this.lan.findPeer(t,r),this.wan.findPeer(t,r)))yield i,(i.name==="SEND_QUERY"||i.name==="FINAL_PEER")&&(n=!0);if(!n)throw new R("Peer lookup failed","ERR_LOOKUP_FAILED")}async*getClosestPeers(t,r={}){yield*Ee(this.lan.getClosestPeers(t,r),this.wan.getClosestPeers(t,r))}async refreshRoutingTable(){await Promise.all([this.lan.refreshRoutingTable(),this.wan.refreshRoutingTable()])}};var E2;(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"})(E2||(E2={}));var S2;(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"})(S2||(S2={}));function $d(e){return t=>new V1(t,e)}return k8(Gd);})();
26
+ `.replace(/\s*\/\/.*$/gm,"").replace(/\n/g,"").trim(),a6=new RegExp(`(?:^${_e}$)|(?:^${ni}$)`),c6=new RegExp(`^${_e}$`),u6=new RegExp(`^${ni}$`),J1=e=>e&&e.exact?a6:new RegExp(`(?:${_r(e)}${_e}${_r(e)})|(?:${_r(e)}${ni}${_r(e)})`,"g");J1.v4=e=>e&&e.exact?c6:new RegExp(`${_r(e)}${_e}${_r(e)}`,"g");J1.v6=e=>e&&e.exact?u6:new RegExp(`${_r(e)}${ni}${_r(e)}`,"g");var Z2=J1;var ii=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 X2=45,f6=15,An=new ii;function to(e){if(!(e.length>f6))return An.new(e).parseWith(()=>An.readIPv4Addr())}function eo(e){if(e.includes("%")&&(e=e.split("%")[0]),!(e.length>X2))return An.new(e).parseWith(()=>An.readIPv6Addr())}function oi(e){if(e.includes("%")&&(e=e.split("%")[0]),!(e.length>X2))return An.new(e).parseWith(()=>An.readIPAddr())}function j2(e){return!!to(e)}function J2(e){return!!eo(e)}function _n(e){return!!oi(e)}var ia=ct(ea(),1),{isValid:l6,parse:h6}=ia.default,d6=["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"],p6=d6.map(e=>new na.Netmask(e));function y6(e){for(let t of p6)if(t.contains(e))return!0;return!1}function ra(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 oa=e=>{if(l6(e)){let t=h6(e);if(t.kind()==="ipv4")return y6(t.toNormalizedString());if(t.kind()==="ipv6")return ra(e)}else if(_n(e)&&Z2.v6().test(e))return ra(e)};var f0=oa;var sa="/lan",aa="/ipfs",ca="/kad/1.0.0",ua="/dht/record",ro="/dht/provider";function g6(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 fa=g6;function m6(e){return e[Symbol.asyncIterator]!=null}function x6(e,t){if(m6(e))return async function*(){for await(let a of e)yield t(a)}();let r=fa(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 ai=x6;var ci=globalThis.CustomEvent??Event;async function*l0(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=re(),a=re(),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=re(),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 ci("task-complete"))},g=>{y.done=!0,y.err=g,i.dispatchEvent(new ci("task-complete"))})}c=!0,i.dispatchEvent(new ci("task-complete"))}catch(h){u=h,i.dispatchEvent(new ci("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=re(),await a.promise),u!=null)throw u;if(n?yield*p():yield*d(),c&&o.length===0)break}}function Ce(e,...t){if(e==null)throw new Error("Empty pipeline");if(no(e)){let n=e;e=()=>n.source}else if(ha(e)||la(e)){let n=e;e=()=>n}let r=[e,...t];if(r.length>1&&no(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++)no(r[n])&&(r[n]=b6(r[n]));return v6(...r)}var v6=(...e)=>{let t;for(;e.length>0;)t=e.shift()(t);return t},la=e=>e?.[Symbol.asyncIterator]!=null,ha=e=>e?.[Symbol.iterator]!=null,no=e=>e==null?!1:e.sink!=null&&e.source!=null,b6=e=>t=>{let r=e.sink(t);if(r?.then!=null){let n=ri({objectMode:!0});r.then(()=>{n.end()},s=>{n.end(s)});let i,o=e.source;if(la(o))i=async function*(){yield*o,n.end()};else if(ha(o))i=function*(){yield*o,n.end()};else throw new Error("Unknown duplex source type - must be Iterable or AsyncIterable");return Ae(n,i())}return e.source};function mt(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 da=Symbol.for("@libp2p/peer-id");var io={};Vt(io,{identity:()=>w6});var w6=Sn({prefix:"\0",name:"identity",encode:e=>$2(e),decode:e=>H2(e)});var oo={};Vt(oo,{base2:()=>E6});var E6=Pt({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var so={};Vt(so,{base8:()=>S6});var S6=Pt({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var ao={};Vt(ao,{base10:()=>I6});var I6=Ar({prefix:"9",name:"base10",alphabet:"0123456789"});var co={};Vt(co,{base16:()=>A6,base16upper:()=>_6});var A6=Pt({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),_6=Pt({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var uo={};Vt(uo,{base36:()=>C6,base36upper:()=>B6});var C6=Ar({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),B6=Ar({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var fo={};Vt(fo,{base256emoji:()=>N6});var pa=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}"),T6=pa.reduce((e,t,r)=>(e[r]=t,e),[]),R6=pa.reduce((e,t,r)=>(e[t.codePointAt(0)]=r,e),[]);function P6(e){return e.reduce((t,r)=>(t+=T6[r],t),"")}function L6(e){let t=[];for(let r of e){let n=R6[r.codePointAt(0)];if(n===void 0)throw new Error(`Non-base256emoji character: ${r}`);t.push(n)}return new Uint8Array(t)}var N6=Sn({prefix:"\u{1F680}",name:"base256emoji",encode:P6,decode:L6});var yo={};Vt(yo,{sha256:()=>Bt,sha512:()=>j6});var k6=ma,ya=128,D6=127,O6=~D6,U6=Math.pow(2,31);function ma(e,t,r){t=t||[],r=r||0;for(var n=r;e>=U6;)t[r++]=e&255|ya,e/=128;for(;e&O6;)t[r++]=e&255|ya,e>>>=7;return t[r]=e|0,ma.bytes=r-n+1,t}var F6=lo,M6=128,ga=127;function lo(e,n){var r=0,n=n||0,i=0,o=n,s,a=e.length;do{if(o>=a)throw lo.bytes=0,new RangeError("Could not decode varint");s=e[o++],r+=i<28?(s&ga)<<i:(s&ga)*Math.pow(2,i),i+=7}while(s>=M6);return lo.bytes=o-n,r}var K6=Math.pow(2,7),q6=Math.pow(2,14),V6=Math.pow(2,21),z6=Math.pow(2,28),H6=Math.pow(2,35),$6=Math.pow(2,42),G6=Math.pow(2,49),Q6=Math.pow(2,56),Y6=Math.pow(2,63),W6=function(e){return e<K6?1:e<q6?2:e<V6?3:e<z6?4:e<H6?5:e<$6?6:e<G6?7:e<Q6?8:e<Y6?9:10},Z6={encode:k6,decode:F6,encodingLength:W6},X6=Z6,h0=X6;var d0=(e,t=0)=>[h0.decode(e,t),h0.decode.bytes],Cn=(e,t,r=0)=>(h0.encode(e,t,r),t),Bn=e=>h0.encodingLength(e);var Ve=(e,t)=>{let r=t.byteLength,n=Bn(e),i=n+Bn(r),o=new Uint8Array(i+r);return Cn(e,o,0),Cn(r,o,n),o.set(t,i),new Tn(e,r,t,o)},Wr=e=>{let t=or(e),[r,n]=d0(t),[i,o]=d0(t.subarray(n)),s=t.subarray(n+o);if(s.byteLength!==i)throw new Error("Incorrect length");return new Tn(r,i,s,t)},xa=(e,t)=>{if(e===t)return!0;{let r=t;return e.code===r.code&&e.size===r.size&&r.bytes instanceof Uint8Array&&z2(e.bytes,r.bytes)}},Tn=class{constructor(t,r,n,i){this.code=t,this.size=r,this.digest=n,this.bytes=i}};var po=({name:e,code:t,encode:r})=>new ho(e,t,r),ho=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?Ve(this.code,r):r.then(n=>Ve(this.code,n))}else throw Error("Unknown type, must be binary type")}};var ba=e=>async t=>new Uint8Array(await crypto.subtle.digest(e,t)),Bt=po({name:"sha2-256",code:18,encode:ba("SHA-256")}),j6=po({name:"sha2-512",code:19,encode:ba("SHA-512")});var go={};Vt(go,{identity:()=>Cr});var wa=0,J6="identity",Ea=or,tu=e=>Ve(wa,Ea(e)),Cr={code:wa,name:J6,encode:Ea,digest:tu};var kp=new TextEncoder,Dp=new TextDecoder;var Sa=(e,t)=>{let{bytes:r,version:n}=e;switch(n){case 0:return iu(r,mo(e),t||Dt.encoder);default:return ou(r,mo(e),t||Ie.encoder)}};var Ia=new WeakMap,mo=e=>{let t=Ia.get(e);if(t==null){let r=new Map;return Ia.set(e,r),r}return t},oe=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!==p0)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(r.code!==su)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=Ve(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&&xa(t.multihash,n.multihash)}toString(t){return Sa(this,t)}toJSON(){return{"/":Sa(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||Aa(n,i,o.bytes))}else if(r[au]===!0){let{version:n,multihash:i,code:o}=r,s=Wr(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!==p0)throw new Error(`Version 0 CID must use dag-pb (code: ${p0}) block encoding`);return new e(t,r,n,n.bytes)}case 1:{let i=Aa(t,r,n.bytes);return new e(t,r,n,i)}default:throw new Error("Invalid version")}}static createV0(t){return e.create(0,p0,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=or(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 Tn(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]=d0(t.subarray(r));return r+=p,l},i=n(),o=p0;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]=nu(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 mo(o).set(n,t),o}},nu=(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 Ie.prefix:{let r=t||Ie;return[Ie.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)]}}},iu=(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},ou=(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},p0=112,su=18,Aa=(e,t,r)=>{let n=Bn(e),i=n+Bn(t),o=new Uint8Array(i+r.byteLength);return Cn(e,o,0),Cn(t,o,n),o.set(r,i),o},au=Symbol.for("@ipld/js-cid/CID");var Br={...io,...oo,...so,...ao,...co,...W1,...uo,...Z1,...X1,...fo},$p={...yo,...go};var cu=Symbol.for("nodejs.util.inspect.custom"),_a=Object.values(Br).map(e=>e.decoder).reduce((e,t)=>e.or(t),Br.identity.decoder),Ca=114,xo=36,vo=37,y0=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()})`}[da]=!0;toString(){return this.string==null&&(this.string=Dt.encode(this.multihash.bytes).slice(1)),this.string}toCID(){return oe.createV1(Ca,this.multihash)}toBytes(){return this.multihash.bytes}toJSON(){return this.toString()}equals(t){if(t instanceof Uint8Array)return mt(this.multihash.bytes,t);if(typeof t=="string")return Lt(t).equals(this);if(t?.multihash?.bytes!=null)return mt(this.multihash.bytes,t.multihash.bytes);throw new Error("not valid Id")}[cu](){return`PeerId(${this.toString()})`}},Rn=class extends y0{type="RSA";publicKey;constructor(t){super({...t,type:"RSA"}),this.publicKey=t.publicKey}},Pn=class extends y0{type="Ed25519";publicKey;constructor(t){super({...t,type:"Ed25519"}),this.publicKey=t.multihash.digest}},Ln=class extends y0{type="secp256k1";publicKey;constructor(t){super({...t,type:"secp256k1"}),this.publicKey=t.multihash.digest}};function Lt(e,t){if(t=t??_a,e.charAt(0)==="1"||e.charAt(0)==="Q"){let r=Wr(Dt.decode(`z${e}`));return e.startsWith("12D")?new Pn({multihash:r}):e.startsWith("16U")?new Ln({multihash:r}):new Rn({multihash:r})}return Xr(_a.decode(e))}function Xr(e){try{let t=Wr(e);if(t.code===Cr.code){if(t.digest.length===xo)return new Pn({multihash:t});if(t.digest.length===vo)return new Ln({multihash:t})}if(t.code===Bt.code)return new Rn({multihash:t})}catch{return uu(oe.decode(e))}throw new Error("Supplied PeerID CID is invalid")}function uu(e){if(e==null||e.multihash==null||e.version==null||e.version===1&&e.code!==Ca)throw new Error("Supplied PeerID CID is invalid");let t=e.multihash;if(t.code===Bt.code)return new Rn({multihash:e.multihash});if(t.code===Cr.code){if(t.digest.length===xo)return new Pn({multihash:e.multihash});if(t.digest.length===vo)return new Ln({multihash:e.multihash})}throw new Error("Supplied PeerID CID is invalid")}async function Ba(e,t){return e.length===xo?new Pn({multihash:Ve(Cr.code,e),privateKey:t}):e.length===vo?new Ln({multihash:Ve(Cr.code,e),privateKey:t}):new Rn({multihash:await Bt.digest(e),publicKey:e,privateKey:t})}function sr(e){return globalThis.Buffer!=null?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):e}function ar(e=0){return globalThis.Buffer?.alloc!=null?sr(globalThis.Buffer.alloc(e)):new Uint8Array(e)}function pe(e=0){return globalThis.Buffer?.allocUnsafe!=null?sr(globalThis.Buffer.allocUnsafe(e)):new Uint8Array(e)}function Ra(e,t,r,n){return{name:e,prefix:t,encoder:{name:e,prefix:t,encode:r},decoder:{decode:n}}}var Ta=Ra("utf8","u",e=>"u"+new TextDecoder("utf8").decode(e),e=>new TextEncoder().encode(e.substring(1))),bo=Ra("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=pe(e.length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t}),fu={utf8:Ta,"utf-8":Ta,hex:Br.base16,latin1:bo,ascii:bo,binary:bo,...Br},fi=fu;function H(e,t="utf8"){let r=fi[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 lu=Math.pow(2,7),hu=Math.pow(2,14),du=Math.pow(2,21),wo=Math.pow(2,28),Eo=Math.pow(2,35),So=Math.pow(2,42),Io=Math.pow(2,49),ut=128,ne=127;function fe(e){if(e<lu)return 1;if(e<hu)return 2;if(e<du)return 3;if(e<wo)return 4;if(e<Eo)return 5;if(e<So)return 6;if(e<Io)return 7;if(Number.MAX_SAFE_INTEGER!=null&&e>Number.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return 8}function pu(e,t,r=0){switch(fe(e)){case 8:t[r++]=e&255|ut,e/=128;case 7:t[r++]=e&255|ut,e/=128;case 6:t[r++]=e&255|ut,e/=128;case 5:t[r++]=e&255|ut,e/=128;case 4:t[r++]=e&255|ut,e>>>=7;case 3:t[r++]=e&255|ut,e>>>=7;case 2:t[r++]=e&255|ut,e>>>=7;case 1:{t[r++]=e&255,e>>>=7;break}default:throw new Error("unreachable")}return t}function yu(e,t,r=0){switch(fe(e)){case 8:t.set(r++,e&255|ut),e/=128;case 7:t.set(r++,e&255|ut),e/=128;case 6:t.set(r++,e&255|ut),e/=128;case 5:t.set(r++,e&255|ut),e/=128;case 4:t.set(r++,e&255|ut),e>>>=7;case 3:t.set(r++,e&255|ut),e>>>=7;case 2:t.set(r++,e&255|ut),e>>>=7;case 1:{t.set(r++,e&255),e>>>=7;break}default:throw new Error("unreachable")}return t}function gu(e,t){let r=e[t],n=0;if(n+=r&ne,r<ut||(r=e[t+1],n+=(r&ne)<<7,r<ut)||(r=e[t+2],n+=(r&ne)<<14,r<ut)||(r=e[t+3],n+=(r&ne)<<21,r<ut)||(r=e[t+4],n+=(r&ne)*wo,r<ut)||(r=e[t+5],n+=(r&ne)*Eo,r<ut)||(r=e[t+6],n+=(r&ne)*So,r<ut)||(r=e[t+7],n+=(r&ne)*Io,r<ut))return n;throw new RangeError("Could not decode varint")}function mu(e,t){let r=e.get(t),n=0;if(n+=r&ne,r<ut||(r=e.get(t+1),n+=(r&ne)<<7,r<ut)||(r=e.get(t+2),n+=(r&ne)<<14,r<ut)||(r=e.get(t+3),n+=(r&ne)<<21,r<ut)||(r=e.get(t+4),n+=(r&ne)*wo,r<ut)||(r=e.get(t+5),n+=(r&ne)*Eo,r<ut)||(r=e.get(t+6),n+=(r&ne)*So,r<ut)||(r=e.get(t+7),n+=(r&ne)*Io,r<ut))return n;throw new RangeError("Could not decode varint")}function ze(e,t,r=0){return t==null&&(t=pe(fe(e))),t instanceof Uint8Array?pu(e,t,r):yu(e,t,r)}function Be(e,t=0){return e instanceof Uint8Array?gu(e,t):mu(e,t)}function bt(e,t){t==null&&(t=e.reduce((i,o)=>i+o.length,0));let r=pe(t),n=0;for(let i of e)r.set(i,n),n+=i.length;return sr(r)}var by=parseInt("0xFFFF",16),wy=new Uint8Array([0,0,0,0,0,0,0,0,0,0,255,255]);function It(e,t="utf8"){let r=fi[t];if(r==null)throw new Error(`Unsupported encoding "${t}"`);return(t==="utf8"||t==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?sr(globalThis.Buffer.from(e,"utf-8")):r.decoder.decode(`${r.prefix}${e}`)}var Na=j2,Eu=J2,Ao=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(Eu(e)){let r=e.split(":",8),n;for(n=0;n<r.length;n++){let o=Na(r[n]),s;o&&(s=Ao(r[n]),r[n]=H(s.slice(0,2),"base16")),s!=null&&++n<8&&r.splice(n,0,H(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")},ka=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 Nn={},_o={},Iu=[[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"]];Iu.forEach(e=>{let t=Au(...e);_o[t.code]=t,Nn[t.name]=t});function Au(e,t,r,n,i){return{code:e,size:t,name:r,resolvable:!!n,path:!!i}}function yt(e){if(typeof e=="number"){if(_o[e]!=null)return _o[e];throw new Error(`no protocol with code: ${e}`)}else if(typeof e=="string"){if(Nn[e]!=null)return Nn[e];throw new Error(`no protocol with name: ${e}`)}throw new Error(`invalid protocol id type: ${typeof e}`)}var og=yt("ip4"),sg=yt("ip6"),ag=yt("ipcidr");function Bo(e,t){switch(yt(e).code){case 4:case 41:return Cu(t);case 42:return Ua(t);case 6:case 273:case 33:case 132:return Ma(t).toString();case 53:case 54:case 55:case 56:case 400:case 449:case 777:return Ua(t);case 421:return Pu(t);case 444:return Fa(t);case 445:return Fa(t);case 466:return Ru(t);default:return H(t,"base16")}}function To(e,t){switch(yt(e).code){case 4:return Da(t);case 41:return Da(t);case 42:return Oa(t);case 6:case 273:case 33:case 132:return Ro(parseInt(t,10));case 53:case 54:case 55:case 56:case 400:case 449:case 777:return Oa(t);case 421:return Bu(t);case 444:return Lu(t);case 445:return Nu(t);case 466:return Tu(t);default:return It(t,"base16")}}var Co=Object.values(Br).map(e=>e.decoder),_u=function(){let e=Co[0].or(Co[1]);return Co.slice(2).forEach(t=>e=e.or(t)),e}();function Da(e){if(!_n(e))throw new Error("invalid ip address");return Ao(e)}function Cu(e){let t=ka(e,0,e.length);if(t==null)throw new Error("ipBuff is required");if(!_n(t))throw new Error("invalid ip address");return t}function Ro(e){let t=new ArrayBuffer(2);return new DataView(t).setUint16(0,e),new Uint8Array(t)}function Ma(e){return new DataView(e.buffer).getUint16(e.byteOffset)}function Oa(e){let t=It(e),r=Uint8Array.from(ze(t.length));return bt([r,t],r.length+t.length)}function Ua(e){let t=Be(e);if(e=e.slice(fe(t)),e.length!==t)throw new Error("inconsistent lengths");return H(e)}function Bu(e){let t;e[0]==="Q"||e[0]==="1"?t=Wr(Dt.decode(`z${e}`)).bytes:t=oe.parse(e).multihash.bytes;let r=Uint8Array.from(ze(t.length));return bt([r,t],r.length+t.length)}function Tu(e){let t=_u.decode(e),r=Uint8Array.from(ze(t.length));return bt([r,t],r.length+t.length)}function Ru(e){let t=Be(e),r=e.slice(fe(t));if(r.length!==t)throw new Error("inconsistent lengths");return"u"+H(r,"base64url")}function Pu(e){let t=Be(e),r=e.slice(fe(t));if(r.length!==t)throw new Error("inconsistent lengths");return H(r,"base58btc")}function Lu(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=Ie.decode("b"+t[0]),n=parseInt(t[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let i=Ro(n);return bt([r,i],r.length+i.length)}function Nu(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=Ie.decode(`b${t[0]}`),n=parseInt(t[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let i=Ro(n);return bt([r,i],r.length+i.length)}function Fa(e){let t=e.slice(0,e.length-2),r=e.slice(e.length-2),n=H(t,"base32"),i=Ma(r);return`${n}:${i}`}function Ka(e){e=Po(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=yt(s);if(a.size===0){t.push([a.code]),r.push([a.code]);continue}if(o++,o>=i.length)throw Va("invalid address: "+e);if(a.path===!0){n=Po(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:qa(r),bytes:No(t),tuples:t,stringTuples:r,path:n}}function Lo(e){let t=[],r=[],n=null,i=0;for(;i<e.length;){let o=Be(e,i),s=fe(o),a=yt(o),c=ku(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 Va("Invalid address Uint8Array: "+H(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:qa(r),tuples:t,stringTuples:r,path:n}}function qa(e){let t=[];return e.map(r=>{let n=yt(r[0]);return t.push(n.name),r.length>1&&r[1]!=null&&t.push(r[1]),null}),Po(t.join("/"))}function No(e){return bt(e.map(t=>{let r=yt(t[0]),n=Uint8Array.from(ze(r.code));return t.length>1&&t[1]!=null&&(n=bt([n,t[1]])),n}))}function ku(e,t){if(e.size>0)return e.size/8;if(e.size===0)return 0;{let r=Be(t instanceof Uint8Array?t:Uint8Array.from(t));return r+fe(r)}}function Po(e){return"/"+e.trim().split("/").filter(t=>t).join("/")}function Va(e){return new Error("Error parsing address: "+e)}var Du=Symbol.for("nodejs.util.inspect.custom"),Ou=[yt("dns").code,yt("dns4").code,yt("dns6").code,yt("dnsaddr").code],Uu=new Map,za=Symbol.for("@multiformats/js-multiaddr/multiaddr");function Fu(e){return!!e?.[za]}var Do=class e{bytes;#t;#e;#r;#n;[za]=!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=Ka(t)}else if(Fu(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.#e=r.tuples,this.#r=r.stringTuples,this.#n=r.path}toString(){return this.#t}toJSON(){return this.toString()}toOptions(){let t,r,n,i,o="",s=yt("tcp"),a=yt("udp"),c=yt("ip4"),u=yt("ip6"),f=yt("dns6"),l=yt("ip6zone");for(let[d,h]of this.stringTuples())d===l.code&&(o=`%${h??""}`),Ou.includes(d)&&(r=s.name,i=443,n=`${h??""}${o}`,t=d===f.code?6:4),(d===s.code||d===a.code)&&(r=yt(d).name,i=parseInt(h??"")),(d===c.code||d===u.code)&&(r=yt(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.#e.map(([t])=>Object.assign({},yt(t)))}protoCodes(){return this.#e.map(([t])=>t)}protoNames(){return this.#e.map(([t])=>yt(t).name)}tuples(){return this.#e}stringTuples(){return this.#r}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(No(r.slice(0,n)));return this}getPeerId(){try{let t=[];this.stringTuples().forEach(([n,i])=>{n===Nn.p2p.code&&t.push([n,i]),n===Nn["p2p-circuit"].code&&(t=[])});let r=t.pop();if(r?.[1]!=null){let n=r[1];return n[0]==="Q"||n[0]==="1"?H(Dt.decode(`z${n}`),"base58btc"):H(oe.parse(n).multihash.bytes,"base58btc")}return null}catch{return null}}getPath(){return this.#n}equals(t){return mt(this.bytes,t.bytes)}async resolve(t){let r=this.protos().find(o=>o.resolvable);if(r==null)return[this];let n=Uu.get(r.name);if(n==null)throw new R(`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)}[Du](){return`Multiaddr(${this.#t})`}};function ko(e){return new Do(e)}var Yo=ct(Ko(),1),R3=ct(E3(),1),P3=ct(Jr(),1),Wo=ct(Qo(),1),L3=ct(T3(),1);function Qu(){P3.default._configure(),Yo.default._configure(R3.default),Wo.default._configure(L3.default)}Qu();var N3=["uint64","int64","sint64","fixed64","sfixed64"];function Yu(e){for(let t of N3){if(e[t]==null)continue;let r=e[t];e[t]=function(){return BigInt(r.call(this).toString())}}return e}function Zo(e){return Yu(new Yo.default(e))}function Wu(e){for(let t of N3){if(e[t]==null)continue;let r=e[t];e[t]=function(n){return r.call(this,n.toString())}}return e}function Xo(){return Wu(Wo.default.create())}function Ge(e,t){let r=Zo(e instanceof Uint8Array?e:e.subarray());return t.decode(r)}function Qe(e,t){let r=Xo();return t.encode(e,r,{lengthDelimited:!1}),r.finish()}var Dn;(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"})(Dn||(Dn={}));function yi(e,t,r,n){return{name:e,type:t,encode:r,decode:n}}function On(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 yi("enum",Dn.VARINT,r,n)}function Ye(e,t){return yi("message",Dn.LENGTH_DELIMITED,e,t)}var v0;(function(e){let t;e.codec=()=>(t==null&&(t=Ye((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=>Qe(r,e.codec()),e.decode=r=>Ge(r,e.codec())})(v0||(v0={}));function k3(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 D3(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 Jt=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 v0.encode(this.prepareSerialize())}prepareSerialize(){return{key:this.key,value:this.value,timeReceived:k3(this.timeReceived)}}static deserialize(t){let r=v0.decode(t);return new e(r.key,r.value,new Date(r.timeReceived))}static fromDeserialized(t){let r=D3(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)}};var O3;(function(e){let t;e.codec=()=>(t==null&&(t=Ye((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=>Qe(r,e.codec()),e.decode=r=>Ge(r,e.codec())})(O3||(O3={}));var Pr;(function(e){let t;(function(a){a.PUT_VALUE="PUT_VALUE",a.GET_VALUE="GET_VALUE",a.ADD_PROVIDER="ADD_PROVIDER",a.GET_PROVIDERS="GET_PROVIDERS",a.FIND_NODE="FIND_NODE",a.PING="PING"})(t=e.MessageType||(e.MessageType={}));let r;(function(a){a[a.PUT_VALUE=0]="PUT_VALUE",a[a.GET_VALUE=1]="GET_VALUE",a[a.ADD_PROVIDER=2]="ADD_PROVIDER",a[a.GET_PROVIDERS=3]="GET_PROVIDERS",a[a.FIND_NODE=4]="FIND_NODE",a[a.PING=5]="PING"})(r||(r={})),function(a){a.codec=()=>On(r)}(t=e.MessageType||(e.MessageType={}));let n;(function(a){a.NOT_CONNECTED="NOT_CONNECTED",a.CONNECTED="CONNECTED",a.CAN_CONNECT="CAN_CONNECT",a.CANNOT_CONNECT="CANNOT_CONNECT"})(n=e.ConnectionType||(e.ConnectionType={}));let i;(function(a){a[a.NOT_CONNECTED=0]="NOT_CONNECTED",a[a.CONNECTED=1]="CONNECTED",a[a.CAN_CONNECT=2]="CAN_CONNECT",a[a.CANNOT_CONNECT=3]="CANNOT_CONNECT"})(i||(i={})),function(a){a.codec=()=>On(i)}(n=e.ConnectionType||(e.ConnectionType={}));let o;(function(a){let c;a.codec=()=>(c==null&&(c=Ye((u,f,l={})=>{if(l.lengthDelimited!==!1&&f.fork(),u.id!=null&&(f.uint32(10),f.bytes(u.id)),u.addrs!=null)for(let p of u.addrs)f.uint32(18),f.bytes(p);u.connection!=null&&(f.uint32(24),e.ConnectionType.codec().encode(u.connection,f)),l.lengthDelimited!==!1&&f.ldelim()},(u,f)=>{let l={addrs:[]},p=f==null?u.len:u.pos+f;for(;u.pos<p;){let d=u.uint32();switch(d>>>3){case 1:l.id=u.bytes();break;case 2:l.addrs.push(u.bytes());break;case 3:l.connection=e.ConnectionType.codec().decode(u);break;default:u.skipType(d&7);break}}return l})),c),a.encode=u=>Qe(u,a.codec()),a.decode=u=>Ge(u,a.codec())})(o=e.Peer||(e.Peer={}));let s;e.codec=()=>(s==null&&(s=Ye((a,c,u={})=>{if(u.lengthDelimited!==!1&&c.fork(),a.type!=null&&(c.uint32(8),e.MessageType.codec().encode(a.type,c)),a.clusterLevelRaw!=null&&(c.uint32(80),c.int32(a.clusterLevelRaw)),a.key!=null&&(c.uint32(18),c.bytes(a.key)),a.record!=null&&(c.uint32(26),c.bytes(a.record)),a.closerPeers!=null)for(let f of a.closerPeers)c.uint32(66),e.Peer.codec().encode(f,c);if(a.providerPeers!=null)for(let f of a.providerPeers)c.uint32(74),e.Peer.codec().encode(f,c);u.lengthDelimited!==!1&&c.ldelim()},(a,c)=>{let u={closerPeers:[],providerPeers:[]},f=c==null?a.len:a.pos+c;for(;a.pos<f;){let l=a.uint32();switch(l>>>3){case 1:u.type=e.MessageType.codec().decode(a);break;case 10:u.clusterLevelRaw=a.int32();break;case 2:u.key=a.bytes();break;case 3:u.record=a.bytes();break;case 8:u.closerPeers.push(e.Peer.codec().decode(a,a.uint32()));break;case 9:u.providerPeers.push(e.Peer.codec().decode(a,a.uint32()));break;default:a.skipType(l&7);break}}return u})),s),e.encode=a=>Qe(a,e.codec()),e.decode=a=>Ge(a,e.codec())})(Pr||(Pr={}));var Ut=Pr.MessageType,Xu=Pr.ConnectionType,M3=Object.keys(Ut),Nt=class e{type;key;clusterLevelRaw;closerPeers;providerPeers;record;constructor(t,r,n){if(!(r instanceof Uint8Array))throw new Error("Key must be a Uint8Array");this.type=t,this.key=r,this.clusterLevelRaw=n,this.closerPeers=[],this.providerPeers=[],this.record=void 0}get clusterLevel(){let t=this.clusterLevelRaw-1;return t<0?0:t}set clusterLevel(t){this.clusterLevelRaw=t}serialize(){return Pr.encode({key:this.key,type:this.type,clusterLevelRaw:this.clusterLevelRaw,closerPeers:this.closerPeers.map(U3),providerPeers:this.providerPeers.map(U3),record:this.record==null?void 0:this.record.serialize().subarray()})}static deserialize(t){let r=Pr.decode(t),n=new e(r.type??Pr.MessageType.PUT_VALUE,r.key??Uint8Array.from([]),r.clusterLevelRaw??0);return n.closerPeers=r.closerPeers.map(F3),n.providerPeers=r.providerPeers.map(F3),r.record?.length!=null&&(n.record=Jt.deserialize(r.record)),n}};function U3(e){return{id:e.id.toBytes(),addrs:(e.multiaddrs??[]).map(r=>r.bytes),connection:Xu.CONNECTED}}function F3(e){if(e.id==null)throw new Error("Invalid peer in message");return{id:Xr(e.id),multiaddrs:(e.addrs??[]).map(t=>ko(t)),protocols:[]}}function jo(e,t={}){let r={...e,name:"SEND_QUERY",type:0,messageName:e.type,messageType:M3.indexOf(e.type.toString())};return t.onProgress?.(new kt("kad-dht:query:send-query",{detail:r})),r}function b0(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 kt("kad-dht:query:peer-response",{detail:r})),r}function gi(e,t={}){let r={...e,name:"FINAL_PEER",type:2};return t.onProgress?.(new kt("kad-dht:query:final-peer",{detail:r})),r}function se(e,t={}){let r={...e,name:"QUERY_ERROR",type:3};return t.onProgress?.(new kt("kad-dht:query:query-error",{detail:r})),r}function Jo(e,t={}){let r={...e,name:"PROVIDER",type:4};return t.onProgress?.(new kt("kad-dht:query:provider",{detail:r})),r}function w0(e,t={}){let r={...e,name:"VALUE",type:5};return t.onProgress?.(new kt("kad-dht:query:value",{detail:r})),r}function ts(e,t={}){let r={...e,name:"DIAL_PEER",type:7};return t.onProgress?.(new kt("kad-dht:query:dial-peer",{detail:r})),r}function K3(e,t,r){if(r.length===0){let s="No records given";throw new R(s,"ERR_NO_RECORDS_RECEIVED")}let i=H(t).split("/");if(i.length<3){let s="Record key does not have a selector function";throw new R(s,"ERR_NO_SELECTOR_FUNCTION_FOR_RECORD_KEY")}let o=e[i[1].toString()];if(o==null){let s=`Unrecognized key prefix: ${i[1]}`;throw new R(s,"ERR_UNRECOGNIZED_KEY_PREFIX")}return r.length===1?0:o(t,r)}function ju(e,t){return 0}var q3={pk:ju};async function Un(e,t){let r=t.key,i=H(r).split("/");if(i.length<3)return;let o=e[i[1].toString()];if(o==null){let s="Invalid record keytype";throw new R(s,"ERR_INVALID_RECORD_KEY_TYPE")}await o(r,t.value)}var Ju=async(e,t)=>{if(!(e instanceof Uint8Array))throw new R('"key" must be a Uint8Array',"ERR_INVALID_RECORD_KEY_NOT_BUFFER");if(e.byteLength<5)throw new R("invalid public key record","ERR_INVALID_RECORD_KEY_TOO_SHORT");if(H(e.subarray(0,4))!=="/pk/")throw new R("key was not prefixed with /pk/","ERR_INVALID_RECORD_KEY_BAD_PREFIX");let n=e.slice(4),i=await Bt.digest(t);if(!mt(n,i.bytes))throw new R("public key does not match passed in key","ERR_INVALID_RECORD_HASH_MISMATCH")},V3={pk:Ju};var z3=(e=21)=>crypto.getRandomValues(new Uint8Array(e)).reduce((t,r)=>(r&=63,r<36?t+=r.toString(36):r<62?t+=(r-26).toString(36).toUpperCase():r>62?t+="-":t+="_",t),"");var cr="/",H3=new TextEncoder().encode(cr),mi=H3[0],Fn=class e{_buf;constructor(t,r){if(typeof t=="string")this._buf=It(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]!==mi)throw new Error("Invalid key")}toString(t="utf8"){return H(this._buf,t)}uint8Array(){return this._buf}get[Symbol.toStringTag](){return`Key(${this.toString()})`}static withNamespaces(t){return new e(t.join(cr))}static random(){return new e(z3().replace(/-/g,""))}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=H3),this._buf[0]!==mi){let t=new Uint8Array(this._buf.byteLength+1);t.fill(mi,0,1),t.set(this._buf,1),this._buf=t}for(;this._buf.byteLength>1&&this._buf[this._buf.byteLength-1]===mi;)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(cr).slice(1)}type(){return tf(this.baseNamespace())}name(){return ef(this.baseNamespace())}instance(t){return new e(this.toString()+":"+t)}path(){let t=this.parent().toString();return t.endsWith(cr)||(t+=cr),t+=this.type(),new e(t)}parent(){let t=this.list();return t.length===1?new e(cr):new e(t.slice(0,-1).join(cr))}child(t){return this.toString()===cr?t:t.toString()===cr?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(),...rf(t.map(r=>r.namespaces()))])}};function tf(e){let t=e.split(":");return t.length<2?"":t.slice(0,-1).join(":")}function ef(e){let t=e.split(":");return t[t.length-1]}function rf(e){return[].concat(...e)}var nf=It("/pk/");function Mn(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=f0(n);return i==null?!0:!i})}}function Kn(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=f0(n);return i??!1})}}async function Lr(e){return(await Bt.digest(e)).digest}async function Pe(e){return Lr(e.toBytes())}function ur(e){return new Fn(`${ua}/${H(e,"base32")}`,!1)}function $3(e){return bt([nf,e.toBytes()])}function G3(e){return H(e.subarray(0,4))==="/pk/"}function Q3(e){return Xr(e.subarray(4))}function es(e,t){let r=new Date;return new Jt(e,t,r).serialize()}function Y3(e,t=100){let r;return()=>{clearTimeout(r),r=setTimeout(()=>{e()},t)}}var xi=class{log;components;validators;selectors;peerRouting;queryManager;network;constructor(t,r){let{validators:n,selectors:i,peerRouting:o,queryManager:s,network:a,lan:c}=r;this.components=t,this.log=J(`libp2p:kad-dht:${c?"lan":"wan"}:content-fetching`),this.validators=n,this.selectors=i,this.peerRouting=o,this.queryManager=s,this.network=a}async putLocal(t,r){let n=ur(t);await this.components.datastore.put(n,r)}async getLocal(t){this.log("getLocal %b",t);let r=ur(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=Jt.deserialize(n);return await Un(this.validators,i),i}async*sendCorrectionRecord(t,r,n,i={}){this.log("sendCorrection for %b",t);let o=es(t,n);for(let{value:s,from:a}of r){if(mt(s,n)){this.log("record was ok");continue}if(this.components.peerId.equals(a)){try{let f=ur(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=new Nt(Ut.PUT_VALUE,t,0);u.record=Jt.deserialize(o);for await(let f of this.network.sendRequest(a,u,i))f.name==="PEER_RESPONSE"&&f.record!=null&&mt(f.record.value,Jt.deserialize(o).value)&&(c=!0),yield f;c||(yield se({from:a,error:new R("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=es(t,r),o=ur(t);this.log(`storing record for key ${o.toString()}`),await this.components.datastore.put(o,i.subarray()),yield*Ce(this.peerRouting.getClosestPeers(t,{signal:n.signal}),s=>ai(s,a=>async()=>{if(a.name!=="FINAL_PEER")return[a];let c=[],u=new Nt(Ut.PUT_VALUE,t,0);u.record=Jt.deserialize(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&&mt(f.record.value,Jt.deserialize(i).value)||c.push(se({from:a.peer.id,error:new R("value not put correctly","ERR_PUT_VALUE_INVALID")},n)));return c}),s=>l0(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=K3(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 R("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 w0({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 w0({from:o,value:a.record.value},r))};yield*this.queryManager.run(t,i,r)}};var vi=class{log;components;network;peerRouting;queryManager;routingTable;providers;constructor(t,r){let{network:n,peerRouting:i,queryManager:o,routingTable:s,providers:a,lan:c}=r;this.components=t,this.log=J(`libp2p:kad-dht:${c?"lan":"wan"}: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=new Nt(Ut.ADD_PROVIDER,t.multihash.bytes,0);i.providerPeers=[{id:this.components.peerId,multiaddrs:r,protocols:[]}];let 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(se({from:a.peer.id,error:u},n))}return c};yield*Ce(this.peerRouting.getClosestPeers(t.multihash.bytes,n),a=>ai(a,c=>s(c)),a=>l0(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),protocols:l.protocols})}catch(l){if(l.code!=="ERR_NOT_FOUND")throw l;this.log("no peer store entry for %p",f)}yield b0({from:this.components.peerId,messageType:Ut.GET_PROVIDERS,providers:u},r),yield Jo({from:this.components.peerId,providers:u},r)}if(s.length>=n)return;let a=async function*({peer:u,signal:f}){let l=new Nt(Ut.GET_PROVIDERS,i,0);yield*o.network.sendRequest(u,l,{...r,signal:f})},c=new Set(s.map(u=>u.toString()));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.toString())||(c.add(l.id.toString()),f.push(l));if(f.length>0&&(yield Jo({from:u.from,providers:f},r)),c.size===n)return}}};var E0=class extends Error{constructor(t,r){super(t??"The operation was aborted"),this.type="aborted",this.code=r??"ABORT_ERR"}};function W3(e){if(e!=null){if(typeof e[Symbol.iterator]=="function")return e[Symbol.iterator]();if(typeof e[Symbol.asyncIterator]=="function")return e[Symbol.asyncIterator]();if(typeof e.next=="function")return e}throw new Error("argument is not an iterator or iterable")}function Z3(e,t,r){let n=r??{},i=W3(e);async function*o(){let s,a=()=>{s?.()};for(t.addEventListener("abort",a);;){let c;try{if(t.aborted){let{abortMessage:f,abortCode:l}=n;throw new E0(f,l)}let u=new Promise((f,l)=>{s=()=>{let{abortMessage:p,abortCode:d}=n;l(new E0(p,d))}});c=await Promise.race([u,i.next()]),s=null}catch(u){t.removeEventListener("abort",a);let f=u.type==="aborted"&&t.aborted;if(f&&n.onAbort!=null&&n.onAbort(e),typeof i.return=="function")try{let l=i.return();l instanceof Promise&&l.catch(p=>{n.onReturnError!=null&&n.onReturnError(p)})}catch(l){n.onReturnError!=null&&n.onReturnError(l)}if(f&&n.returnOnAbort===!0)return;throw u}if(c.done===!0)break;yield c.value}t.removeEventListener("abort",a)}return o()}function of(e,t,r){return n=>e(Z3(n,t,r))}function ns(e,t,r){return{sink:of(e.sink,t,{...r,onAbort:void 0}),source:Z3(e.source,t,r)}}function sf(e){return e[Symbol.asyncIterator]!=null}function af(e){if(sf(e))return(async()=>{for await(let t of e)return t})();for(let t of e)return t}var X3=af;var J3=Symbol.for("@achingbrain/uint8arraylist");function j3(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 bi(e){return!!e?.[J3]}var Vn=class e{constructor(...t){Object.defineProperty(this,J3,{value:!0}),this.bufs=[],this.length=0,t.length>0&&this.appendAll(t)}*[Symbol.iterator](){yield*this.bufs}get byteLength(){return this.length}append(...t){this.appendAll(t)}appendAll(t){let r=0;for(let n of t)if(n instanceof Uint8Array)r+=n.byteLength,this.bufs.push(n);else if(bi(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(bi(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=j3(this.bufs,t);return r.buf[r.index]}set(t,r){let n=j3(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(bi(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 bt(n,i)}subarray(t,r){let{bufs:n,length:i}=this._subList(t,r);return n.length===1?n[0]:bt(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(!bi(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=pe(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=ar(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=ar(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=ar(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=pe(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=ar(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=ar(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=ar(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=ar(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=ar(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(!mt(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}};function wi(e){return e[Symbol.asyncIterator]!=null}var Ei=e=>{let t=fe(e),r=pe(t);return ze(e,r),Ei.bytes=t,r};Ei.bytes=0;function en(e,t){t=t??{};let r=t.lengthEncoder??Ei;function*n(i){let o=r(i.byteLength);o instanceof Uint8Array?yield o:yield*o,i instanceof Uint8Array?yield i:yield*i}return wi(e)?async function*(){for await(let i of e)yield*n(i)}():function*(){for(let i of e)yield*n(i)}()}en.single=(e,t)=>{t=t??{};let r=t.lengthEncoder??Ei;return new Vn(r(e.byteLength),e)};var zn=ct(r4(),1);var uf=8,ff=1024*1024*4,rn;(function(e){e[e.LENGTH=0]="LENGTH",e[e.DATA=1]="DATA"})(rn||(rn={}));var is=e=>{let t=Be(e);return is.bytes=fe(t),t};is.bytes=0;function nn(e,t){let r=new Vn,n=rn.LENGTH,i=-1,o=t?.lengthDecoder??is,s=t?.maxLengthLength??uf,a=t?.maxDataLength??ff;function*c(){for(;r.byteLength>0;){if(n===rn.LENGTH)try{if(i=o(r),i<0)throw(0,zn.default)(new Error("invalid message length"),"ERR_INVALID_MSG_LENGTH");if(i>a)throw(0,zn.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=rn.DATA}catch(u){if(u instanceof RangeError){if(r.byteLength>s)throw(0,zn.default)(new Error("message length length too long"),"ERR_MSG_LENGTH_TOO_LONG");break}throw u}if(n===rn.DATA){if(r.byteLength<i)break;let u=r.sublist(0,i);r.consume(i),t?.onData!=null&&t.onData(u),yield u,n=rn.LENGTH}}}return wi(e)?async function*(){for await(let u of e)r.append(u),yield*c();if(r.byteLength>0)throw(0,zn.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,zn.default)(new Error("unexpected end of input"),"ERR_UNEXPECTED_EOF")}()}nn.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 nn(n,{...t??{},onLength:o=>{r=o}})};var Si=class extends ee{log;protocol;running;components;constructor(t,r){super();let{protocol:n,lan:i}=r;this.components=t,this.log=J(`libp2p:kad-dht:${i?"lan":"wan"}: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;this.log("sending %s to %p",r.type,t),yield ts({peer:t},n),yield jo({to:t,type:r.type},n);let i;try{let s=await(await this.components.connectionManager.openConnection(t,n)).newStream(this.protocol,n),a=await this._writeReadMessage(s,r.serialize(),n);yield b0({from:t,messageType:a.type,closer:a.closerPeers,providers:a.providerPeers,record:a.record},n)}catch(o){yield se({from:t,error:o},n)}finally{i!=null&&await i.close()}}async*sendMessage(t,r,n={}){if(!this.running)return;this.log("sending %s to %p",r.type,t),yield ts({peer:t},n),yield jo({to:t,type:r.type},n);let i;try{let s=await(await this.components.connectionManager.openConnection(t,n)).newStream(this.protocol,n);await this._writeMessage(s,r.serialize(),n),yield b0({from:t,messageType:r.type},n)}catch(o){yield se({from:t,error:o},n)}finally{i!=null&&await i.close()}}async _writeMessage(t,r,n){n.signal!=null&&(t=ns(t,n.signal)),await Ce([r],i=>en(i),t,c0)}async _writeReadMessage(t,r,n){n.signal!=null&&(t=ns(t,n.signal));let i=await Ce([r],s=>en(s),t,s=>nn(s),async s=>{let a=await X3(s);if(a!=null)return a;throw new R("No message received","ERR_NO_MESSAGE_RECEIVED")}),o=Nt.deserialize(i);return o.closerPeers.forEach(s=>{this.dispatchEvent(new kt("peer",{detail:s}))}),o.providerPeers.forEach(s=>{this.dispatchEvent(new kt("peer",{detail:s}))}),o}};var $x=ct(Bi(),1),xf=ct(dt(),1);var Mt={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-crypto/blob/master/README.md#web-crypto-api"),{code:"ERR_MISSING_WEB_CRYPTO"});return t}};var x4={SHA1:20,SHA256:32,SHA512:64};var wf={SHA1:"SHA-1",SHA256:"SHA-256",SHA512:"SHA-512"},Ef=async(e,t)=>{let r=await Mt.get().subtle.sign({name:"HMAC"},e,t);return new Uint8Array(r,0,r.byteLength)};async function v4(e,t){let r=wf[e],n=await Mt.get().subtle.importKey("raw",t,{name:"HMAC",hash:{name:r}},!1,["sign"]);return{async digest(i){return Ef(n,i)},length:x4[e]}}var u1={};Vt(u1,{generateEphemeralKeyPair:()=>Xc,generateKeyPair:()=>Ah,generateKeyPairFromSeed:()=>_h,importKey:()=>Rh,keyStretcher:()=>t5,keysPBM:()=>t0,marshalPrivateKey:()=>Th,marshalPublicKey:()=>Bh,supportedKeys:()=>nr,unmarshalPrivateKey:()=>T5,unmarshalPublicKey:()=>Ch});var fE=ct(_0(),1),lE=ct(wc(),1);var c1=ct(dt(),1);var Gs={};Vt(Gs,{Ed25519PrivateKey:()=>dn,Ed25519PublicKey:()=>L0,generateKeyPair:()=>W9,generateKeyPairFromSeed:()=>$s,unmarshalEd25519PrivateKey:()=>Q9,unmarshalEd25519PublicKey:()=>Y9});function Cs(e){if(!Number.isSafeInteger(e)||e<0)throw new Error(`Wrong positive integer: ${e}`)}function K7(e){if(typeof e!="boolean")throw new Error(`Expected boolean, not ${e}`)}function Ec(e,...t){if(!(e instanceof Uint8Array))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 q7(e){if(typeof e!="function"||typeof e.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");Cs(e.outputLen),Cs(e.blockLen)}function V7(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 z7(e,t){Ec(e);let r=t.outputLen;if(e.length<r)throw new Error(`digestInto() expects output buffer of length at least ${r}`)}var H7={number:Cs,bool:K7,bytes:Ec,hash:q7,exists:V7,output:z7},dr=H7;var zi=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0;var Sc=e=>e instanceof Uint8Array;var Hi=e=>new DataView(e.buffer,e.byteOffset,e.byteLength),ke=(e,t)=>e<<32-t|e>>>t,$7=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!$7)throw new Error("Non little-endian hardware is not supported");var Iv=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function Bs(e){if(typeof e!="string")throw new Error(`utf8ToBytes expected string, got ${typeof e}`);return new Uint8Array(new TextEncoder().encode(e))}function T0(e){if(typeof e=="string"&&(e=Bs(e)),!Sc(e))throw new Error(`expected Uint8Array, got ${typeof e}`);return e}function $i(...e){let t=new Uint8Array(e.reduce((n,i)=>n+i.length,0)),r=0;return e.forEach(n=>{if(!Sc(n))throw new Error("Uint8Array expected");t.set(n,r),r+=n.length}),t}var Yn=class{clone(){return this._cloneInto()}};function Ur(e){let t=n=>e().update(T0(n)).digest(),r=e();return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=()=>e(),t}function fn(e=32){if(zi&&typeof zi.getRandomValues=="function")return zi.getRandomValues(new Uint8Array(e));throw new Error("crypto.getRandomValues must be defined")}function G7(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 Wn=class extends Yn{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=Hi(this.buffer)}update(t){dr.exists(this);let{view:r,buffer:n,blockLen:i}=this;t=T0(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=Hi(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){dr.exists(this),dr.output(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;G7(n,i-8,BigInt(this.length*8),o),this.process(n,0);let a=Hi(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 Gi=BigInt(4294967295),Ts=BigInt(32);function Ic(e,t=!1){return t?{h:Number(e&Gi),l:Number(e>>Ts&Gi)}:{h:Number(e>>Ts&Gi)|0,l:Number(e&Gi)|0}}function Q7(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}=Ic(e[i],t);[r[i],n[i]]=[o,s]}return[r,n]}var Y7=(e,t)=>BigInt(e>>>0)<<Ts|BigInt(t>>>0),W7=(e,t,r)=>e>>>r,Z7=(e,t,r)=>e<<32-r|t>>>r,X7=(e,t,r)=>e>>>r|t<<32-r,j7=(e,t,r)=>e<<32-r|t>>>r,J7=(e,t,r)=>e<<64-r|t>>>r-32,t9=(e,t,r)=>e>>>r-32|t<<64-r,e9=(e,t)=>t,r9=(e,t)=>e,n9=(e,t,r)=>e<<r|t>>>32-r,i9=(e,t,r)=>t<<r|e>>>32-r,o9=(e,t,r)=>t<<r-32|e>>>64-r,s9=(e,t,r)=>e<<r-32|t>>>64-r;function a9(e,t,r,n){let i=(t>>>0)+(n>>>0);return{h:e+r+(i/2**32|0)|0,l:i|0}}var c9=(e,t,r)=>(e>>>0)+(t>>>0)+(r>>>0),u9=(e,t,r,n)=>t+r+n+(e/2**32|0)|0,f9=(e,t,r,n)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0),l9=(e,t,r,n,i)=>t+r+n+i+(e/2**32|0)|0,h9=(e,t,r,n,i)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0)+(i>>>0),d9=(e,t,r,n,i,o)=>t+r+n+i+o+(e/2**32|0)|0,p9={fromBig:Ic,split:Q7,toBig:Y7,shrSH:W7,shrSL:Z7,rotrSH:X7,rotrSL:j7,rotrBH:J7,rotrBL:t9,rotr32H:e9,rotr32L:r9,rotlSH:n9,rotlSL:i9,rotlBH:o9,rotlBL:s9,add:a9,add3L:c9,add3H:u9,add4L:f9,add4H:l9,add5H:d9,add5L:h9},X=p9;var[y9,g9]=X.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))),Fr=new Uint32Array(80),Mr=new Uint32Array(80),Zn=class extends Wn{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)Fr[v]=t.getUint32(r),Mr[v]=t.getUint32(r+=4);for(let v=16;v<80;v++){let _=Fr[v-15]|0,E=Mr[v-15]|0,S=X.rotrSH(_,E,1)^X.rotrSH(_,E,8)^X.shrSH(_,E,7),L=X.rotrSL(_,E,1)^X.rotrSL(_,E,8)^X.shrSL(_,E,7),N=Fr[v-2]|0,Q=Mr[v-2]|0,Y=X.rotrSH(N,Q,19)^X.rotrBH(N,Q,61)^X.shrSH(N,Q,6),z=X.rotrSL(N,Q,19)^X.rotrBL(N,Q,61)^X.shrSL(N,Q,6),et=X.add4L(L,z,Mr[v-7],Mr[v-16]),pt=X.add4H(et,S,Y,Fr[v-7],Fr[v-16]);Fr[v]=pt|0,Mr[v]=et|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 _=X.rotrSH(l,p,14)^X.rotrSH(l,p,18)^X.rotrBH(l,p,41),E=X.rotrSL(l,p,14)^X.rotrSL(l,p,18)^X.rotrBL(l,p,41),S=l&d^~l&y,L=p&h^~p&g,N=X.add5L(x,E,L,g9[v],Mr[v]),Q=X.add5H(N,m,_,S,y9[v],Fr[v]),Y=N|0,z=X.rotrSH(n,i,28)^X.rotrBH(n,i,34)^X.rotrBH(n,i,39),et=X.rotrSL(n,i,28)^X.rotrBL(n,i,34)^X.rotrBL(n,i,39),pt=n&o^n&a^o&a,Zt=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}=X.add(u|0,f|0,Q|0,Y|0),u=a|0,f=c|0,a=o|0,c=s|0,o=n|0,s=i|0;let B=X.add3L(Y,et,Zt);n=X.add3H(B,Q,z,pt),i=B|0}({h:n,l:i}=X.add(this.Ah|0,this.Al|0,n|0,i|0)),{h:o,l:s}=X.add(this.Bh|0,this.Bl|0,o|0,s|0),{h:a,l:c}=X.add(this.Ch|0,this.Cl|0,a|0,c|0),{h:u,l:f}=X.add(this.Dh|0,this.Dl|0,u|0,f|0),{h:l,l:p}=X.add(this.Eh|0,this.El|0,l|0,p|0),{h:d,l:h}=X.add(this.Fh|0,this.Fl|0,d|0,h|0),{h:y,l:g}=X.add(this.Gh|0,this.Gl|0,y|0,g|0),{h:m,l:x}=X.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(){Fr.fill(0),Mr.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)}},Rs=class extends Zn{constructor(){super(),this.Ah=-1942145080,this.Al=424955298,this.Bh=1944164710,this.Bl=-1982016298,this.Ch=502970286,this.Cl=855612546,this.Dh=1738396948,this.Dl=1479516111,this.Eh=258812777,this.El=2077511080,this.Fh=2011393907,this.Fl=79989058,this.Gh=1067287976,this.Gl=1780299464,this.Hh=286451373,this.Hl=-1848208735,this.outputLen=28}},Ps=class extends Zn{constructor(){super(),this.Ah=573645204,this.Al=-64227540,this.Bh=-1621794909,this.Bl=-934517566,this.Ch=596883563,this.Cl=1867755857,this.Dh=-1774684391,this.Dl=1497426621,this.Eh=-1775747358,this.El=-1467023389,this.Fh=-1101128155,this.Fl=1401305490,this.Gh=721525244,this.Gl=746961066,this.Hh=246885852,this.Hl=-2117784414,this.outputLen=32}},Ls=class extends Zn{constructor(){super(),this.Ah=-876896931,this.Al=-1056596264,this.Bh=1654270250,this.Bl=914150663,this.Ch=-1856437926,this.Cl=812702999,this.Dh=355462360,this.Dl=-150054599,this.Eh=1731405415,this.El=-4191439,this.Fh=-1900787065,this.Fl=1750603025,this.Gh=-619958771,this.Gl=1694076839,this.Hh=1203062813,this.Hl=-1090891868,this.outputLen=48}},Ns=Ur(()=>new Zn),Nv=Ur(()=>new Rs),kv=Ur(()=>new Ps),Dv=Ur(()=>new Ls);var Wi={};Vt(Wi,{bitGet:()=>w9,bitLen:()=>b9,bitMask:()=>R0,bitSet:()=>E9,bytesToHex:()=>er,bytesToNumberBE:()=>De,bytesToNumberLE:()=>rr,concatBytes:()=>Oe,createHmacDrbg:()=>Os,ensureBytes:()=>vt,equalBytes:()=>Bc,hexToBytes:()=>ln,hexToNumber:()=>Ds,numberToBytesBE:()=>pr,numberToBytesLE:()=>Kr,numberToHexUnpadded:()=>Cc,numberToVarBytesBE:()=>v9,utf8ToBytes:()=>Tc,validateObject:()=>Ee});var _c=BigInt(0),Qi=BigInt(1),m9=BigInt(2),Yi=e=>e instanceof Uint8Array,x9=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function er(e){if(!Yi(e))throw new Error("Uint8Array expected");let t="";for(let r=0;r<e.length;r++)t+=x9[e[r]];return t}function Cc(e){let t=e.toString(16);return t.length&1?`0${t}`:t}function Ds(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);return BigInt(e===""?"0":`0x${e}`)}function ln(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);let t=e.length;if(t%2)throw new Error("padded hex string expected, got unpadded hex of length "+t);let r=new Uint8Array(t/2);for(let n=0;n<r.length;n++){let i=n*2,o=e.slice(i,i+2),s=Number.parseInt(o,16);if(Number.isNaN(s)||s<0)throw new Error("Invalid byte sequence");r[n]=s}return r}function De(e){return Ds(er(e))}function rr(e){if(!Yi(e))throw new Error("Uint8Array expected");return Ds(er(Uint8Array.from(e).reverse()))}function pr(e,t){return ln(e.toString(16).padStart(t*2,"0"))}function Kr(e,t){return pr(e,t).reverse()}function v9(e){return ln(Cc(e))}function vt(e,t,r){let n;if(typeof t=="string")try{n=ln(t)}catch(o){throw new Error(`${e} must be valid hex string, got "${t}". Cause: ${o}`)}else if(Yi(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 Oe(...e){let t=new Uint8Array(e.reduce((n,i)=>n+i.length,0)),r=0;return e.forEach(n=>{if(!Yi(n))throw new Error("Uint8Array expected");t.set(n,r),r+=n.length}),t}function Bc(e,t){if(e.length!==t.length)return!1;for(let r=0;r<e.length;r++)if(e[r]!==t[r])return!1;return!0}function Tc(e){if(typeof e!="string")throw new Error(`utf8ToBytes expected string, got ${typeof e}`);return new Uint8Array(new TextEncoder().encode(e))}function b9(e){let t;for(t=0;e>_c;e>>=Qi,t+=1);return t}function w9(e,t){return e>>BigInt(t)&Qi}var E9=(e,t,r)=>e|(r?Qi:_c)<<BigInt(t),R0=e=>(m9<<BigInt(e-1))-Qi,ks=e=>new Uint8Array(e),Ac=e=>Uint8Array.from(e);function Os(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=ks(e),i=ks(e),o=0,s=()=>{n.fill(1),i.fill(0),o=0},a=(...l)=>r(i,n,...l),c=(l=ks())=>{i=a(Ac([0]),l),n=a(),l.length!==0&&(i=a(Ac([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 Oe(...p)};return(l,p)=>{s(),c(l);let d;for(;!(d=p(u()));)c();return s(),d}}var S9={bigint:e=>typeof e=="bigint",function:e=>typeof e=="function",boolean:e=>typeof e=="boolean",string:e=>typeof e=="string",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 Ee(e,t,r={}){let n=(i,o,s)=>{let a=S9[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 $t=BigInt(0),_t=BigInt(1),hn=BigInt(2),I9=BigInt(3),Us=BigInt(4),Rc=BigInt(5),Pc=BigInt(8),A9=BigInt(9),_9=BigInt(16);function lt(e,t){let r=e%t;return r>=$t?r:t+r}function Lc(e,t,r){if(r<=$t||t<$t)throw new Error("Expected power/modulo > 0");if(r===_t)return $t;let n=_t;for(;t>$t;)t&_t&&(n=n*e%r),e=e*e%r,t>>=_t;return n}function Ct(e,t,r){let n=e;for(;t-- >$t;)n*=n,n%=r;return n}function Zi(e,t){if(e===$t||t<=$t)throw new Error(`invert: expected positive integers, got n=${e} mod=${t}`);let r=lt(e,t),n=t,i=$t,o=_t,s=_t,a=$t;for(;r!==$t;){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!==_t)throw new Error("invert: does not exist");return lt(i,t)}function C9(e){let t=(e-_t)/hn,r,n,i;for(r=e-_t,n=0;r%hn===$t;r/=hn,n++);for(i=hn;i<e&&Lc(i,t,e)!==e-_t;i++);if(n===1){let s=(e+_t)/Us;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+_t)/hn;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,_t<<BigInt(u-d-1));f=a.sqr(h),l=a.mul(l,h),p=a.mul(p,f),u=d}return l}}function B9(e){if(e%Us===I9){let t=(e+_t)/Us;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%Pc===Rc){let t=(e-Rc)/Pc;return function(n,i){let o=n.mul(i,hn),s=n.pow(o,t),a=n.mul(i,s),c=n.mul(n.mul(a,hn),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%_9,C9(e)}var Nc=(e,t)=>(lt(e,t)&_t)===_t,T9=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function Fs(e){let t={ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"},r=T9.reduce((n,i)=>(n[i]="function",n),t);return Ee(e,r)}function R9(e,t,r){if(r<$t)throw new Error("Expected power > 0");if(r===$t)return e.ONE;if(r===_t)return t;let n=e.ONE,i=t;for(;r>$t;)r&_t&&(n=e.mul(n,i)),i=e.sqr(i),r>>=_t;return n}function P9(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 Xi(e,t){let r=t!==void 0?t:e.toString(2).length,n=Math.ceil(r/8);return{nBitLength:r,nByteLength:n}}function ji(e,t,r=!1,n={}){if(e<=$t)throw new Error(`Expected Fp ORDER > 0, got ${e}`);let{nBitLength:i,nByteLength:o}=Xi(e,t);if(o>2048)throw new Error("Field lengths over 2048 bytes are not supported");let s=B9(e),a=Object.freeze({ORDER:e,BITS:i,BYTES:o,MASK:R0(i),ZERO:$t,ONE:_t,create:c=>lt(c,e),isValid:c=>{if(typeof c!="bigint")throw new Error(`Invalid field element: expected bigint, got ${typeof c}`);return $t<=c&&c<e},is0:c=>c===$t,isOdd:c=>(c&_t)===_t,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)=>R9(a,c,u),div:(c,u)=>lt(c*Zi(u,e),e),sqrN:c=>c*c,addN:(c,u)=>c+u,subN:(c,u)=>c-u,mulN:(c,u)=>c*u,inv:c=>Zi(c,e),sqrt:n.sqrt||(c=>s(a,c)),invertBatch:c=>P9(a,c),cmov:(c,u,f)=>f?u:c,toBytes:c=>r?Kr(c,o):pr(c,o),fromBytes:c=>{if(c.length!==o)throw new Error(`Fp.fromBytes: expected ${o}, got ${c.length}`);return r?rr(c):De(c)}});return Object.freeze(a)}function kc(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 Dc(e,t,r=!1){e=vt("privateHash",e);let n=e.length,i=Xi(t).nByteLength+8;if(i<24||n<i||n>1024)throw new Error(`hashToPrivateScalar: expected ${i}-1024 bytes of input, got ${n}`);let o=r?rr(e):De(e);return lt(o,t-_t)+_t}var N9=BigInt(0),Ms=BigInt(1);function Ji(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>N9;)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 y=h*c,g=Number(s&l);s>>=d,g>c&&(g-=p,s+=Ms);let m=y,x=y+Math.abs(g)-1,v=h%2!==0,_=g<0;g===0?f=f.add(r(v,o[m])):u=u.add(r(_,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 Fs(e.Fp),Ee(e,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...Xi(e.n,e.nBitLength),...e,p:e.Fp.ORDER})}var Ue=BigInt(0),ye=BigInt(1),t1=BigInt(2),k9=BigInt(8),D9={zip215:!0};function O9(e){let t=P0(e);return Ee(e,{hash:"function",a:"bigint",d:"bigint",randomBytes:"function"},{adjustScalarBytes:"function",domain:"function",uvRatio:"function",mapToCurve:"function"}),Object.freeze({...t})}function e1(e){let t=O9(e),{Fp:r,n,prehash:i,hash:o,randomBytes:s,nByteLength:a,h:c}=t,u=t1<<BigInt(a*8)-ye,f=r.create,l=t.uvRatio||((k,A)=>{try{return{isValid:!0,value:r.sqrt(k*r.inv(A))}}catch{return{isValid:!1,value:Ue}}}),p=t.adjustScalarBytes||(k=>k),d=t.domain||((k,A,F)=>{if(A.length||F)throw new Error("Contexts/pre-hash are not supported");return k}),h=k=>typeof k=="bigint"&&Ue<k,y=(k,A)=>h(k)&&h(A)&&k<A,g=k=>k===Ue||y(k,u);function m(k,A){if(y(k,A))return k;throw new Error(`Expected valid scalar < ${A}, got ${typeof k} ${k}`)}function x(k){return k===Ue?k:m(k,n)}let v=new Map;function _(k){if(!(k instanceof E))throw new Error("ExtendedPoint expected")}class E{constructor(A,F,K,$){if(this.ex=A,this.ey=F,this.ez=K,this.et=$,!g(A))throw new Error("x required");if(!g(F))throw new Error("y required");if(!g(K))throw new Error("z required");if(!g($))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:K}=A||{};if(!g(F)||!g(K))throw new Error("invalid affine point");return new E(F,K,ye,f(F*K))}static normalizeZ(A){let F=r.invertBatch(A.map(K=>K.ez));return A.map((K,$)=>K.toAffine(F[$])).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:K,ey:$,ez:j,et:rt}=this,ht=f(K*K),nt=f($*$),at=f(j*j),qt=f(at*at),Rt=f(ht*A),Xt=f(at*f(Rt+nt)),jt=f(qt+f(F*f(ht*nt)));if(Xt!==jt)throw new Error("bad point: equation left != right (1)");let Ht=f(K*$),te=f(j*rt);if(Ht!==te)throw new Error("bad point: equation left != right (2)")}equals(A){_(A);let{ex:F,ey:K,ez:$}=this,{ex:j,ey:rt,ez:ht}=A,nt=f(F*ht),at=f(j*$),qt=f(K*ht),Rt=f(rt*$);return nt===at&&qt===Rt}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:K,ez:$}=this,j=f(F*F),rt=f(K*K),ht=f(t1*f($*$)),nt=f(A*j),at=F+K,qt=f(f(at*at)-j-rt),Rt=nt+rt,Xt=Rt-ht,jt=nt-rt,Ht=f(qt*Xt),te=f(Rt*jt),ir=f(qt*jt),Gr=f(Xt*Rt);return new E(Ht,te,Gr,ir)}add(A){_(A);let{a:F,d:K}=t,{ex:$,ey:j,ez:rt,et:ht}=this,{ex:nt,ey:at,ez:qt,et:Rt}=A;if(F===BigInt(-1)){let _2=f((j-$)*(at+nt)),C2=f((j+$)*(at-nt)),z1=f(C2-_2);if(z1===Ue)return this.double();let B2=f(rt*t1*Rt),T2=f(ht*t1*qt),R2=T2+B2,P2=C2+_2,L2=T2-B2,g8=f(R2*z1),m8=f(P2*L2),x8=f(R2*L2),v8=f(z1*P2);return new E(g8,m8,v8,x8)}let Xt=f($*nt),jt=f(j*at),Ht=f(ht*K*Rt),te=f(rt*qt),ir=f(($+j)*(nt+at)-Xt-jt),Gr=te-Ht,a0=te+Ht,A2=f(jt-F*Xt),h8=f(ir*Gr),d8=f(a0*A2),p8=f(ir*A2),y8=f(Gr*a0);return new E(h8,d8,y8,p8)}subtract(A){return this.add(A.negate())}wNAF(A){return N.wNAFCached(this,v,A,E.normalizeZ)}multiply(A){let{p:F,f:K}=this.wNAF(m(A,n));return E.normalizeZ([F,K])[0]}multiplyUnsafe(A){let F=x(A);return F===Ue?L:this.equals(L)||F===ye?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:K,ez:$}=this,j=this.is0();A==null&&(A=j?k9:r.inv($));let rt=f(F*A),ht=f(K*A),nt=f($*A);if(j)return{x:Ue,y:ye};if(nt!==ye)throw new Error("invZ was invalid");return{x:rt,y:ht}}clearCofactor(){let{h:A}=t;return A===ye?this:this.multiplyUnsafe(A)}static fromHex(A,F=!1){let{d:K,a:$}=t,j=r.BYTES;A=vt("pointHex",A,j);let rt=A.slice(),ht=A[j-1];rt[j-1]=ht&-129;let nt=rr(rt);nt===Ue||(F?m(nt,u):m(nt,r.ORDER));let at=f(nt*nt),qt=f(at-ye),Rt=f(K*at-$),{isValid:Xt,value:jt}=l(qt,Rt);if(!Xt)throw new Error("Point.fromHex: invalid y coordinate");let Ht=(jt&ye)===ye,te=(ht&128)!==0;if(!F&&jt===Ue&&te)throw new Error("Point.fromHex: x=0 and x_0=1");return te!==Ht&&(jt=f(-jt)),E.fromAffine({x:jt,y:nt})}static fromPrivateKey(A){return z(A).point}toRawBytes(){let{x:A,y:F}=this.toAffine(),K=Kr(F,r.BYTES);return K[K.length-1]|=A&ye?128:0,K}toHex(){return er(this.toRawBytes())}}E.BASE=new E(t.Gx,t.Gy,ye,f(t.Gx*t.Gy)),E.ZERO=new E(Ue,ye,ye,Ue);let{BASE:S,ZERO:L}=E,N=Ji(E,a*8);function Q(k){return lt(k,n)}function Y(k){return Q(rr(k))}function z(k){let A=a;k=vt("private key",k,A);let F=vt("hashed private key",o(k),2*A),K=p(F.slice(0,A)),$=F.slice(A,2*A),j=Y(K),rt=S.multiply(j),ht=rt.toRawBytes();return{head:K,prefix:$,scalar:j,point:rt,pointBytes:ht}}function et(k){return z(k).pointBytes}function pt(k=new Uint8Array,...A){let F=Oe(...A);return Y(o(d(F,vt("context",k),!!i)))}function Zt(k,A,F={}){k=vt("message",k),i&&(k=i(k));let{prefix:K,scalar:$,pointBytes:j}=z(A),rt=pt(F.context,K,k),ht=S.multiply(rt).toRawBytes(),nt=pt(F.context,ht,j,k),at=Q(rt+nt*$);x(at);let qt=Oe(ht,Kr(at,r.BYTES));return vt("result",qt,a*2)}let B=D9;function D(k,A,F,K=B){let{context:$,zip215:j}=K,rt=r.BYTES;k=vt("signature",k,2*rt),A=vt("message",A),i&&(A=i(A));let ht=rr(k.slice(rt,2*rt)),nt,at,qt;try{nt=E.fromHex(F,j),at=E.fromHex(k.slice(0,rt),j),qt=S.multiplyUnsafe(ht)}catch{return!1}if(!j&&nt.isSmallOrder())return!1;let Rt=pt($,at.toRawBytes(),nt.toRawBytes(),A);return at.add(nt.multiplyUnsafe(Rt)).subtract(qt).clearCofactor().equals(E.ZERO)}return S._setWindowSize(8),{CURVE:t,getPublicKey:et,sign:Zt,verify:D,ExtendedPoint:E,utils:{getExtendedPublicKey:z,randomPrivateKey:()=>s(r.BYTES),precompute(k=8,A=E.BASE){return A._setWindowSize(k),A.multiply(BigInt(3)),A}}}}var Qv=BigInt(0),Yv=BigInt(1);var qs=BigInt("57896044618658097711785492504343953926634992332820282019728792003956564819949"),Oc=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752"),cb=BigInt(0),F9=BigInt(1),Ks=BigInt(2),M9=BigInt(5),Uc=BigInt(10),K9=BigInt(20),q9=BigInt(40),Fc=BigInt(80);function V9(e){let t=qs,n=e*e%t*e%t,i=Ct(n,Ks,t)*n%t,o=Ct(i,F9,t)*e%t,s=Ct(o,M9,t)*o%t,a=Ct(s,Uc,t)*s%t,c=Ct(a,K9,t)*a%t,u=Ct(c,q9,t)*c%t,f=Ct(u,Fc,t)*u%t,l=Ct(f,Fc,t)*u%t,p=Ct(l,Uc,t)*s%t;return{pow_p_5_8:Ct(p,Ks,t)*e%t,b2:n}}function z9(e){return e[0]&=248,e[31]&=127,e[31]|=64,e}function H9(e,t){let r=qs,n=lt(t*t*t,r),i=lt(n*n*t,r),o=V9(e*i).pow_p_5_8,s=lt(e*n*o,r),a=lt(t*s*s,r),c=s,u=lt(s*Oc,r),f=a===e,l=a===lt(-e,r),p=a===lt(-e*Oc,r);return f&&(s=c),(l||p)&&(s=u),Nc(s,r)&&(s=lt(-s,r)),{isValid:f||l,value:s}}var yr=ji(qs,void 0,!0),Vs={a:BigInt(-1),d:BigInt("37095705934669439343138083508754565189542113879843219016388785533085940283555"),Fp:yr,n:BigInt("7237005577332262213973186563042994240857116359379907606001950938285454250989"),h:BigInt(8),Gx:BigInt("15112221349535400772501151409588531511454012693041857206046113283949847762202"),Gy:BigInt("46316835694926478169428394003475163141307993866256225615783033603165251855960"),hash:Ns,randomBytes:fn,adjustScalarBytes:z9,uvRatio:H9},Xn=e1(Vs);function Mc(e,t,r){if(t.length>255)throw new Error("Context is too big");return $i(Bs("SigEd25519 no Ed25519 collisions"),new Uint8Array([r?1:0,t.length]),t,e)}var ub=e1({...Vs,domain:Mc}),fb=e1({...Vs,domain:Mc,prehash:Ns});var $9=(yr.ORDER+BigInt(3))/BigInt(8),lb=yr.pow(Ks,$9),hb=yr.sqrt(yr.neg(yr.ONE)),db=(yr.ORDER-BigInt(5))/BigInt(8),pb=BigInt(486662);var yb=kc(yr,yr.neg(BigInt(486664)));var gb=BigInt("25063068953384623474111414158702152701244531502492656460079210482610430750235"),mb=BigInt("54469307008909316920995813868745141605393597292927456921205312896311721017578"),xb=BigInt("1159843021668779879193775521855586647937357759715417654439879720876111806838"),vb=BigInt("40440834346308536858101042469323190826248399146238708352240133220865137265952");var bb=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");var jn=32,gr=64,r1=32;async function Kc(){let e=Xn.utils.randomPrivateKey(),t=Xn.getPublicKey(e);return{privateKey:Hc(e,t),publicKey:t}}async function qc(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=Xn.getPublicKey(t);return{privateKey:Hc(t,r),publicKey:r}}async function Vc(e,t){let r=e.subarray(0,r1);return Xn.sign(t,r)}async function zc(e,t,r){return Xn.verify(t,r,e)}function Hc(e,t){let r=new Uint8Array(gr);for(let n=0;n<r1;n++)r[n]=e[n],r[r1+n]=t[n];return r}var zs={alg:"A128GCM",ext:!0,k:"scm9jmO_4BJAgdwWGVulLg",key_ops:["encrypt","decrypt"],kty:"oct"};function n1(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=Mt.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=It(p));let g;if(p.length===0){g=await a.subtle.importKey("jwk",zs,{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",zs,{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 bt([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=It(p));let m;if(p.length===0)try{let v={name:"PBKDF2",salt:d,iterations:s,hash:{name:i}},_=await a.subtle.importKey("raw",p,{name:"PBKDF2"},!1,["deriveKey"]);m=await a.subtle.deriveKey(v,_,{name:t,length:r},!0,["decrypt"])}catch{m=await a.subtle.importKey("jwk",zs,{name:"AES-GCM"},!0,["decrypt"])}else{let v={name:"PBKDF2",salt:d,iterations:s,hash:{name:i}},_=await a.subtle.importKey("raw",p,{name:"PBKDF2"},!1,["deriveKey"]);m=await a.subtle.deriveKey(v,_,{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 Jn(e,t){let n=await n1().encrypt(e,t);return Yr.encode(n)}var t0={};Vt(t0,{KeyType:()=>Et,PrivateKey:()=>Me,PublicKey:()=>Fe});var Et;(function(e){e.RSA="RSA",e.Ed25519="Ed25519",e.Secp256k1="Secp256k1"})(Et||(Et={}));var Hs;(function(e){e[e.RSA=0]="RSA",e[e.Ed25519=1]="Ed25519",e[e.Secp256k1=2]="Secp256k1"})(Hs||(Hs={}));(function(e){e.codec=()=>On(Hs)})(Et||(Et={}));var Fe;(function(e){let t;e.codec=()=>(t==null&&(t=Ye((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.Type!=null&&(n.uint32(8),Et.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=Et.codec().decode(r);break;case 2:i.Data=r.bytes();break;default:r.skipType(s&7);break}}return i})),t),e.encode=r=>Qe(r,e.codec()),e.decode=r=>Ge(r,e.codec())})(Fe||(Fe={}));var Me;(function(e){let t;e.codec=()=>(t==null&&(t=Ye((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.Type!=null&&(n.uint32(8),Et.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=Et.codec().decode(r);break;case 2:i.Data=r.bytes();break;default:r.skipType(s&7);break}}return i})),t),e.encode=r=>Qe(r,e.codec()),e.decode=r=>Ge(r,e.codec())})(Me||(Me={}));var L0=class{_key;constructor(t){this._key=e0(t,jn)}async verify(t,r){return zc(this._key,r,t)}marshal(){return this._key}get bytes(){return Fe.encode({Type:Et.Ed25519,Data:this.marshal()}).subarray()}equals(t){return mt(this.bytes,t.bytes)}async hash(){let{bytes:t}=await Bt.digest(this.bytes);return t}},dn=class{_key;_publicKey;constructor(t,r){this._key=e0(t,gr),this._publicKey=e0(r,jn)}async sign(t){return Vc(this._key,t)}get public(){return new L0(this._publicKey)}marshal(){return this._key}get bytes(){return Me.encode({Type:Et.Ed25519,Data:this.marshal()}).subarray()}equals(t){return mt(this.bytes,t.bytes)}async hash(){let{bytes:t}=await Bt.digest(this.bytes);return t}async id(){let t=Cr.digest(this.public.bytes);return Dt.encode(t.bytes).substring(1)}async export(t,r="libp2p-key"){if(r==="libp2p-key")return Jn(this.bytes,t);throw new R(`export format '${r}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};function Q9(e){if(e.length>gr){e=e0(e,gr+jn);let n=e.subarray(0,gr),i=e.subarray(gr,e.length);return new dn(n,i)}e=e0(e,gr);let t=e.subarray(0,gr),r=e.subarray(jn);return new dn(t,r)}function Y9(e){return e=e0(e,jn),new L0(e)}async function W9(){let{privateKey:e,publicKey:t}=await Kc();return new dn(e,t)}async function $s(e){let{privateKey:t,publicKey:r}=await qc(e);return new dn(t,r)}function e0(e,t){if(e=Uint8Array.from(e??[]),e.length!==t)throw new R(`Key must be a Uint8Array of length ${t}, got ${e.length}`,"ERR_INVALID_KEY_TYPE");return e}var Db=ct(Ft(),1),Ob=ct(Mi(),1),Gc=ct(dt(),1);function Ke(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=bt([new Uint8Array(t-r.length),r])}return H(r,"base64url")}function ge(e){let t=i1(e);return new Gc.default.jsbn.BigInteger(H(t,"base16"),16)}function i1(e,t){let r=It(e,"base64urlpad");if(t!=null){if(r.length>t)throw new Error("byte array longer than desired length");r=bt([new Uint8Array(t-r.length),r])}return r}var Qc={"P-256":256,"P-384":384,"P-521":521},Z9=Object.keys(Qc),Qs=Z9.join(" / ");async function Yc(e){if(e!=="P-256"&&e!=="P-384"&&e!=="P-521")throw new R(`Unknown curve: ${e}. Must be ${Qs}`,"ERR_INVALID_CURVE");let t=await Mt.get().subtle.generateKey({name:"ECDH",namedCurve:e},!0,["deriveBits"]),r=async(o,s)=>{let a;s!=null?a=await Mt.get().subtle.importKey("jwk",j9(e,s),{name:"ECDH",namedCurve:e},!1,["deriveBits"]):a=t.privateKey;let c=await Mt.get().subtle.importKey("jwk",Zc(e,o),{name:"ECDH",namedCurve:e},!1,[]),u=await Mt.get().subtle.deriveBits({name:"ECDH",namedCurve:e,public:c},a,Qc[e]);return new Uint8Array(u,0,u.byteLength)},n=await Mt.get().subtle.exportKey("jwk",t.publicKey);return{key:X9(n),genSharedKey:r}}var Wc={"P-256":32,"P-384":48,"P-521":66};function X9(e){if(e.crv==null||e.x==null||e.y==null)throw new R("JWK was missing components","ERR_INVALID_PARAMETERS");if(e.crv!=="P-256"&&e.crv!=="P-384"&&e.crv!=="P-521")throw new R(`Unknown curve: ${e.crv}. Must be ${Qs}`,"ERR_INVALID_CURVE");let t=Wc[e.crv];return bt([Uint8Array.from([4]),i1(e.x,t),i1(e.y,t)],1+t*2)}function Zc(e,t){if(e!=="P-256"&&e!=="P-384"&&e!=="P-521")throw new R(`Unknown curve: ${e}. Must be ${Qs}`,"ERR_INVALID_CURVE");let r=Wc[e];if(!mt(t.subarray(0,1),Uint8Array.from([4])))throw new R("Cannot unmarshal public key - invalid key format","ERR_INVALID_KEY_FORMAT");return{kty:"EC",crv:e,x:H(t.subarray(1,r+1),"base64url"),y:H(t.subarray(1+r),"base64url"),ext:!0}}var j9=(e,t)=>({...Zc(e,t.public),d:H(t.private,"base64url")});var Xc=Yc;async function jc(e,t){let r=Yr.decode(e);return n1().decrypt(r,t)}var Jc={"AES-128":{ivSize:16,keySize:16},"AES-256":{ivSize:16,keySize:32},Blowfish:{ivSize:8,keySize:32}};async function t5(e,t,r){let n=Jc[e];if(n==null){let x=Object.keys(Jc).join(" / ");throw new R(`unknown cipher type '${e}'. Must be ${x}`,"ERR_INVALID_CIPHER_TYPE")}if(t==null)throw new R("missing hash type","ERR_MISSING_HASH_TYPE");let i=n.keySize,o=n.ivSize,s=20,a=It("key expansion"),c=2*(o+i+s),u=await v4(t,r),f=await u.digest(a),l=[],p=0;for(;p<c;){let x=await u.digest(bt([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=bt(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 js={};Vt(js,{MAX_KEY_SIZE:()=>O0,RsaPrivateKey:()=>r0,RsaPublicKey:()=>D0,fromJwk:()=>ch,generateKeyPair:()=>uh,unmarshalRsaPrivateKey:()=>sh,unmarshalRsaPublicKey:()=>ah});var k0=ct(dt(),1);var Iw=ct(o5(),1);function yn(e){if(isNaN(e)||e<=0)throw new R("random bytes length must be a Number bigger than 0","ERR_INVALID_LENGTH");return fn(e)}var sw=ct(Vi(),1),Zs=ct(dt(),1);function s5(e,t){return t.map(r=>ge(e[r]))}function a5(e){return Zs.default.pki.setRsaPrivateKey(...s5(e,["n","e","d","p","q","dp","dq","qi"]))}function c5(e){return Zs.default.pki.setRsaPublicKey(...s5(e,["n","e"]))}var gn={};Vt(gn,{jwkToPkcs1:()=>eh,jwkToPkix:()=>nh,pkcs1ToJwk:()=>th,pkixToJwk:()=>rh});var uw=ct(_0(),1),fw=ct(Vi(),1);var mr=ct(dt(),1);function th(e){let t=mr.default.asn1.fromDer(H(e,"ascii")),r=mr.default.pki.privateKeyFromAsn1(t);return{kty:"RSA",n:Ke(r.n),e:Ke(r.e),d:Ke(r.d),p:Ke(r.p),q:Ke(r.q),dp:Ke(r.dP),dq:Ke(r.dQ),qi:Ke(r.qInv),alg:"RS256"}}function eh(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 R("JWK was missing components","ERR_INVALID_PARAMETERS");let t=mr.default.pki.privateKeyToAsn1({n:ge(e.n),e:ge(e.e),d:ge(e.d),p:ge(e.p),q:ge(e.q),dP:ge(e.dp),dQ:ge(e.dq),qInv:ge(e.qi)});return It(mr.default.asn1.toDer(t).getBytes(),"ascii")}function rh(e){let t=mr.default.asn1.fromDer(H(e,"ascii")),r=mr.default.pki.publicKeyFromAsn1(t);return{kty:"RSA",n:Ke(r.n),e:Ke(r.e)}}function nh(e){if(e.n==null||e.e==null)throw new R("JWK was missing components","ERR_INVALID_PARAMETERS");let t=mr.default.pki.publicKeyToAsn1({n:ge(e.n),e:ge(e.e)});return It(mr.default.asn1.toDer(t).getBytes(),"ascii")}async function u5(e){let t=await Mt.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 h5(t);return{privateKey:r[0],publicKey:r[1]}}async function Xs(e){let r=[await Mt.get().subtle.importKey("jwk",e,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["sign"]),await ih(e)],n=await h5({privateKey:r[0],publicKey:r[1]});return{privateKey:n[0],publicKey:n[1]}}async function f5(e,t){let r=await Mt.get().subtle.importKey("jwk",e,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["sign"]),n=await Mt.get().subtle.sign({name:"RSASSA-PKCS1-v1_5"},r,Uint8Array.from(t));return new Uint8Array(n,0,n.byteLength)}async function l5(e,t,r){let n=await Mt.get().subtle.importKey("jwk",e,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["verify"]);return Mt.get().subtle.verify({name:"RSASSA-PKCS1-v1_5"},n,t,r)}async function h5(e){if(e.privateKey==null||e.publicKey==null)throw new R("Private and public key are required","ERR_INVALID_PARAMETERS");return Promise.all([Mt.get().subtle.exportKey("jwk",e.privateKey),Mt.get().subtle.exportKey("jwk",e.publicKey)])}async function ih(e){return Mt.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 d5(e,t,r,n){let i=t?c5(e):a5(e),o=H(Uint8Array.from(r),"ascii"),s=n(o,i);return It(s,"ascii")}function p5(e,t){return d5(e,!0,t,(r,n)=>n.encrypt(r))}function y5(e,t){return d5(e,!1,t,(r,n)=>n.decrypt(r))}function o1(e){if(e.kty!=="RSA")throw new R("invalid key type","ERR_INVALID_KEY_TYPE");if(e.n==null)throw new R("invalid key modulus","ERR_INVALID_KEY_MODULUS");return It(e.n,"base64url").length*8}var O0=8192,D0=class{_key;constructor(t){this._key=t}async verify(t,r){return l5(this._key,r,t)}marshal(){return gn.jwkToPkix(this._key)}get bytes(){return Fe.encode({Type:Et.RSA,Data:this.marshal()}).subarray()}encrypt(t){return p5(this._key,t)}equals(t){return mt(this.bytes,t.bytes)}async hash(){let{bytes:t}=await Bt.digest(this.bytes);return t}},r0=class{_key;_publicKey;constructor(t,r){this._key=t,this._publicKey=r}genSecret(){return yn(16)}async sign(t){return f5(this._key,t)}get public(){if(this._publicKey==null)throw new R("public key not provided","ERR_PUBKEY_NOT_PROVIDED");return new D0(this._publicKey)}decrypt(t){return y5(this._key,t)}marshal(){return gn.jwkToPkcs1(this._key)}get bytes(){return Me.encode({Type:Et.RSA,Data:this.marshal()}).subarray()}equals(t){return mt(this.bytes,t.bytes)}async hash(){let{bytes:t}=await Bt.digest(this.bytes);return t}async id(){let t=await this.public.hash();return H(t,"base58btc")}async export(t,r="pkcs-8"){if(r==="pkcs-8"){let n=new k0.default.util.ByteBuffer(this.marshal()),i=k0.default.asn1.fromDer(n),o=k0.default.pki.privateKeyFromAsn1(i),s={algorithm:"aes256",count:1e4,saltSize:128/8,prfAlgorithm:"sha512"};return k0.default.pki.encryptRsaPrivateKey(o,t,s)}else{if(r==="libp2p-key")return Jn(this.bytes,t);throw new R(`export format '${r}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}}};async function sh(e){let t=gn.pkcs1ToJwk(e);if(o1(t)>O0)throw new R("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let r=await Xs(t);return new r0(r.privateKey,r.publicKey)}function ah(e){let t=gn.pkixToJwk(e);if(o1(t)>O0)throw new R("key size is too large","ERR_KEY_SIZE_TOO_LARGE");return new D0(t)}async function ch(e){if(o1(e)>O0)throw new R("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let t=await Xs(e);return new r0(t.privateKey,t.publicKey)}async function uh(e){if(e>O0)throw new R("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let t=await u5(e);return new r0(t.privateKey,t.publicKey)}var i2={};Vt(i2,{Secp256k1PrivateKey:()=>F0,Secp256k1PublicKey:()=>U0,generateKeyPair:()=>Ih,unmarshalSecp256k1PrivateKey:()=>Eh,unmarshalSecp256k1PublicKey:()=>Sh});var fh=(e,t,r)=>e&t^~e&r,lh=(e,t,r)=>e&t^e&r^t&r,hh=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]),qr=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Vr=new Uint32Array(64),s1=class extends Wn{constructor(){super(64,32,8,!1),this.A=qr[0]|0,this.B=qr[1]|0,this.C=qr[2]|0,this.D=qr[3]|0,this.E=qr[4]|0,this.F=qr[5]|0,this.G=qr[6]|0,this.H=qr[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)Vr[l]=t.getUint32(r,!1);for(let l=16;l<64;l++){let p=Vr[l-15],d=Vr[l-2],h=ke(p,7)^ke(p,18)^p>>>3,y=ke(d,17)^ke(d,19)^d>>>10;Vr[l]=y+Vr[l-7]+h+Vr[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=ke(a,6)^ke(a,11)^ke(a,25),d=f+p+fh(a,c,u)+hh[l]+Vr[l]|0,y=(ke(n,2)^ke(n,13)^ke(n,22))+lh(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(){Vr.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}},Js=class extends s1{constructor(){super(),this.A=-1056596264,this.B=914150663,this.C=812702999,this.D=-150054599,this.E=-4191439,this.F=1750603025,this.G=1694076839,this.H=-1090891868,this.outputLen=28}},g5=Ur(()=>new s1),Tw=Ur(()=>new Js);function dh(e){let t=P0(e);Ee(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:ph,hexToBytes:yh}=Wi,mn={Err:class extends Error{constructor(t=""){super(t)}},_parseInt(e){let{Err:t}=mn;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:ph(n),l:e.subarray(r+2)}},toSig(e){let{Err:t}=mn,r=typeof e=="string"?yh(e):e;if(!(r instanceof Uint8Array))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}=mn._parseInt(r.subarray(2)),{d:s,l:a}=mn._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}`}},xr=BigInt(0),Se=BigInt(1),kw=BigInt(2),m5=BigInt(3),Dw=BigInt(4);function gh(e){let t=dh(e),{Fp:r}=t,n=t.toBytes||((h,y,g)=>{let m=y.toAffine();return Oe(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"&&xr<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(h instanceof Uint8Array&&(h=er(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:De(vt("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(vt("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)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:_,pz:E}=y,S=r.eql(r.mul(g,E),r.mul(v,x)),L=r.eql(r.mul(m,E),r.mul(_,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,m5),{px:x,py:v,pz:_}=this,E=r.ZERO,S=r.ZERO,L=r.ZERO,N=r.mul(x,x),Q=r.mul(v,v),Y=r.mul(_,_),z=r.mul(x,v);return z=r.add(z,z),L=r.mul(x,_),L=r.add(L,L),E=r.mul(y,L),S=r.mul(m,Y),S=r.add(E,S),E=r.sub(Q,S),S=r.add(Q,S),S=r.mul(E,S),E=r.mul(z,E),L=r.mul(m,L),Y=r.mul(y,Y),z=r.sub(N,Y),z=r.mul(y,z),z=r.add(z,L),L=r.add(N,N),N=r.add(L,N),N=r.add(N,Y),N=r.mul(N,z),S=r.add(S,N),Y=r.mul(v,_),Y=r.add(Y,Y),N=r.mul(Y,z),E=r.sub(E,N),L=r.mul(Y,Q),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:_,pz:E}=y,S=r.ZERO,L=r.ZERO,N=r.ZERO,Q=t.a,Y=r.mul(t.b,m5),z=r.mul(g,v),et=r.mul(m,_),pt=r.mul(x,E),Zt=r.add(g,m),B=r.add(v,_);Zt=r.mul(Zt,B),B=r.add(z,et),Zt=r.sub(Zt,B),B=r.add(g,x);let D=r.add(v,E);return B=r.mul(B,D),D=r.add(z,pt),B=r.sub(B,D),D=r.add(m,x),S=r.add(_,E),D=r.mul(D,S),S=r.add(et,pt),D=r.sub(D,S),N=r.mul(Q,B),S=r.mul(Y,pt),N=r.add(S,N),S=r.sub(et,N),N=r.add(et,N),L=r.mul(S,N),et=r.add(z,z),et=r.add(et,z),pt=r.mul(Q,pt),B=r.mul(Y,B),et=r.add(et,pt),pt=r.sub(z,pt),pt=r.mul(Q,pt),B=r.add(B,pt),z=r.mul(et,B),L=r.add(L,z),z=r.mul(D,B),S=r.mul(Zt,S),S=r.sub(S,z),z=r.mul(Zt,et),N=r.mul(D,N),N=r.add(N,z),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===xr)return g;if(a(y),y===Se)return this;let{endo:m}=t;if(!m)return d.unsafeLadder(this,y);let{k1neg:x,k1:v,k2neg:_,k2:E}=m.splitScalar(y),S=g,L=g,N=this;for(;v>xr||E>xr;)v&Se&&(S=S.add(N)),E&Se&&(L=L.add(N)),N=N.double(),v>>=Se,E>>=Se;return x&&(S=S.negate()),_&&(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:_,k1:E,k2neg:S,k2:L}=v.splitScalar(g),{p:N,f:Q}=this.wNAF(E),{p:Y,f:z}=this.wNAF(L);N=d.constTimeNegate(_,N),Y=d.constTimeNegate(S,Y),Y=new l(r.mul(Y.px,v.beta),Y.py,Y.pz),m=N.add(Y),x=Q.add(z)}else{let{p:_,f:E}=this.wNAF(g);m=_,x=E}return l.normalizeZ([m,x])[0]}multiplyAndAddUnsafe(y,g,m){let x=l.BASE,v=(E,S)=>S===xr||S===Se||!E.equals(x)?E.multiplyUnsafe(S):E.multiply(S),_=v(this,g).add(v(y,m));return _.is0()?void 0:_}toAffine(y){let{px:g,py:m,pz:x}=this,v=this.is0();y==null&&(y=v?r.ONE:r.inv(x));let _=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:_,y:E}}isTorsionFree(){let{h:y,isTorsionFree:g}=t;if(y===Se)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===Se?this:g?g(l,this):this.multiplyUnsafe(t.h)}toRawBytes(y=!0){return this.assertValidity(),n(l,this,y)}toHex(y=!0){return er(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=Ji(l,t.endo?Math.ceil(p/2):p);return{CURVE:t,ProjectivePoint:l,normPrivateKeyToScalar:c,weierstrassEquation:o,isWithinCurveOrder:s}}function mh(e){let t=P0(e);return Ee(t,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...t})}function x5(e){let t=mh(e),{Fp:r,n}=t,i=r.BYTES+1,o=2*r.BYTES+1;function s(B){return xr<B&&B<r.ORDER}function a(B){return lt(B,n)}function c(B){return Zi(B,n)}let{ProjectivePoint:u,normPrivateKeyToScalar:f,weierstrassEquation:l,isWithinCurveOrder:p}=gh({...t,toBytes(B,D,P){let k=D.toAffine(),A=r.toBytes(k.x),F=Oe;return P?F(Uint8Array.from([D.hasEvenY()?2:3]),A):F(Uint8Array.from([4]),A,r.toBytes(k.y))},fromBytes(B){let D=B.length,P=B[0],k=B.subarray(1);if(D===i&&(P===2||P===3)){let A=De(k);if(!s(A))throw new Error("Point is not on curve");let F=l(A),K=r.sqrt(F),$=(K&Se)===Se;return(P&1)===1!==$&&(K=r.neg(K)),{x:A,y:K}}else if(D===o&&P===4){let A=r.fromBytes(k.subarray(0,r.BYTES)),F=r.fromBytes(k.subarray(r.BYTES,2*r.BYTES));return{x:A,y:F}}else throw new Error(`Point of length ${D} was invalid. Expected ${i} compressed bytes or ${o} uncompressed bytes`)}}),d=B=>er(pr(B,t.nByteLength));function h(B){let D=n>>Se;return B>D}function y(B){return h(B)?a(-B):B}let g=(B,D,P)=>De(B.slice(D,P));class m{constructor(D,P,k){this.r=D,this.s=P,this.recovery=k,this.assertValidity()}static fromCompact(D){let P=t.nByteLength;return D=vt("compactSignature",D,P*2),new m(g(D,0,P),g(D,P,2*P))}static fromDER(D){let{r:P,s:k}=mn.toSig(vt("DER",D));return new m(P,k)}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(D){return new m(this.r,this.s,D)}recoverPublicKey(D){let{r:P,s:k,recovery:A}=this,F=L(vt("msgHash",D));if(A==null||![0,1,2,3].includes(A))throw new Error("recovery id invalid");let K=A===2||A===3?P+t.n:P;if(K>=r.ORDER)throw new Error("recovery id 2 or 3 invalid");let $=A&1?"03":"02",j=u.fromHex($+d(K)),rt=c(K),ht=a(-F*rt),nt=a(k*rt),at=u.BASE.multiplyAndAddUnsafe(j,ht,nt);if(!at)throw new Error("point at infinify");return at.assertValidity(),at}hasHighS(){return h(this.s)}normalizeS(){return this.hasHighS()?new m(this.r,a(-this.s),this.recovery):this}toDERRawBytes(){return ln(this.toDERHex())}toDERHex(){return mn.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return ln(this.toCompactHex())}toCompactHex(){return d(this.r)+d(this.s)}}let x={isValidPrivateKey(B){try{return f(B),!0}catch{return!1}},normPrivateKeyToScalar:f,randomPrivateKey:()=>{let B=t.randomBytes(r.BYTES+8),D=Dc(B,n);return pr(D,t.nByteLength)},precompute(B=8,D=u.BASE){return D._setWindowSize(B),D.multiply(BigInt(3)),D}};function v(B,D=!0){return u.fromPrivateKey(B).toRawBytes(D)}function _(B){let D=B instanceof Uint8Array,P=typeof B=="string",k=(D||P)&&B.length;return D?k===i||k===o:P?k===2*i||k===2*o:B instanceof u}function E(B,D,P=!0){if(_(B))throw new Error("first arg must be private key");if(!_(D))throw new Error("second arg must be public key");return u.fromHex(D).multiply(f(B)).toRawBytes(P)}let S=t.bits2int||function(B){let D=De(B),P=B.length*8-t.nBitLength;return P>0?D>>BigInt(P):D},L=t.bits2int_modN||function(B){return a(S(B))},N=R0(t.nBitLength);function Q(B){if(typeof B!="bigint")throw new Error("bigint expected");if(!(xr<=B&&B<N))throw new Error(`bigint expected < 2^${t.nBitLength}`);return pr(B,t.nByteLength)}function Y(B,D,P=z){if(["recovered","canonical"].some(Rt=>Rt in P))throw new Error("sign() legacy options not supported");let{hash:k,randomBytes:A}=t,{lowS:F,prehash:K,extraEntropy:$}=P;F==null&&(F=!0),B=vt("msgHash",B),K&&(B=vt("prehashed msgHash",k(B)));let j=L(B),rt=f(D),ht=[Q(rt),Q(j)];if($!=null){let Rt=$===!0?A(r.BYTES):$;ht.push(vt("extraEntropy",Rt,r.BYTES))}let nt=Oe(...ht),at=j;function qt(Rt){let Xt=S(Rt);if(!p(Xt))return;let jt=c(Xt),Ht=u.BASE.multiply(Xt).toAffine(),te=a(Ht.x);if(te===xr)return;let ir=a(jt*a(at+te*rt));if(ir===xr)return;let Gr=(Ht.x===te?0:2)|Number(Ht.y&Se),a0=ir;return F&&h(ir)&&(a0=y(ir),Gr^=1),new m(te,a0,Gr)}return{seed:nt,k2sig:qt}}let z={lowS:t.lowS,prehash:!1},et={lowS:t.lowS,prehash:!1};function pt(B,D,P=z){let{seed:k,k2sig:A}=Y(B,D,P),F=t;return Os(F.hash.outputLen,F.nByteLength,F.hmac)(k,A)}u.BASE._setWindowSize(8);function Zt(B,D,P,k=et){let A=B;if(D=vt("msgHash",D),P=vt("publicKey",P),"strict"in k)throw new Error("options.strict was renamed to lowS");let{lowS:F,prehash:K}=k,$,j;try{if(typeof A=="string"||A instanceof Uint8Array)try{$=m.fromDER(A)}catch(Ht){if(!(Ht instanceof mn.Err))throw Ht;$=m.fromCompact(A)}else if(typeof A=="object"&&typeof A.r=="bigint"&&typeof A.s=="bigint"){let{r:Ht,s:te}=A;$=new m(Ht,te)}else throw new Error("PARSE");j=u.fromHex(P)}catch(Ht){if(Ht.message==="PARSE")throw new Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(F&&$.hasHighS())return!1;K&&(D=t.hash(D));let{r:rt,s:ht}=$,nt=L(D),at=c(ht),qt=a(nt*at),Rt=a(rt*at),Xt=u.BASE.multiplyAndAddUnsafe(j,qt,Rt)?.toAffine();return Xt?a(Xt.x)===rt:!1}return{CURVE:t,getPublicKey:v,getSharedSecret:E,sign:pt,verify:Zt,ProjectivePoint:u,Signature:m,utils:x}}var a1=class extends Yn{constructor(t,r){super(),this.finished=!1,this.destroyed=!1,dr.hash(t);let n=T0(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 dr.exists(this),this.iHash.update(t),this}digestInto(t){dr.exists(this),dr.bytes(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()}},t2=(e,t,r)=>new a1(e,t).update(r).digest();t2.create=(e,t)=>new a1(e,t);function xh(e){return{hash:e,hmac:(t,...r)=>t2(e,t,$i(...r)),randomBytes:fn}}function v5(e,t){let r=n=>x5({...e,...xh(n)});return Object.freeze({...r(t),create:r})}var E5=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),b5=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),vh=BigInt(1),e2=BigInt(2),w5=(e,t)=>(e+t/e2)/t;function bh(e){let t=E5,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=Ct(f,r,t)*f%t,p=Ct(l,r,t)*f%t,d=Ct(p,e2,t)*u%t,h=Ct(d,i,t)*d%t,y=Ct(h,o,t)*h%t,g=Ct(y,a,t)*y%t,m=Ct(g,c,t)*g%t,x=Ct(m,a,t)*y%t,v=Ct(x,r,t)*f%t,_=Ct(v,s,t)*h%t,E=Ct(_,n,t)*u%t,S=Ct(E,e2,t);if(!r2.eql(r2.sqr(S),e))throw new Error("Cannot find square root");return S}var r2=ji(E5,void 0,void 0,{sqrt:bh}),vr=v5({a:BigInt(0),b:BigInt(7),Fp:r2,n:b5,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:e=>{let t=b5,r=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),n=-vh*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),i=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),o=r,s=BigInt("0x100000000000000000000000000000000"),a=w5(o*e,t),c=w5(-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}}}},g5),Jw=BigInt(0);var tE=vr.ProjectivePoint;function S5(){return vr.utils.randomPrivateKey()}async function I5(e,t){let{digest:r}=await Bt.digest(t);try{return vr.sign(r,e).toDERRawBytes()}catch(n){throw new R(String(n),"ERR_INVALID_INPUT")}}async function A5(e,t,r){try{let{digest:n}=await Bt.digest(r);return vr.verify(t,n,e)}catch(n){throw new R(String(n),"ERR_INVALID_INPUT")}}function _5(e){return vr.ProjectivePoint.fromHex(e).toRawBytes(!0)}function C5(e){try{vr.getPublicKey(e,!0)}catch(t){throw new R(String(t),"ERR_INVALID_PRIVATE_KEY")}}function n2(e){try{vr.ProjectivePoint.fromHex(e)}catch(t){throw new R(String(t),"ERR_INVALID_PUBLIC_KEY")}}function B5(e){try{return vr.getPublicKey(e,!0)}catch(t){throw new R(String(t),"ERR_INVALID_PRIVATE_KEY")}}var U0=class{_key;constructor(t){n2(t),this._key=t}async verify(t,r){return A5(this._key,r,t)}marshal(){return _5(this._key)}get bytes(){return Fe.encode({Type:Et.Secp256k1,Data:this.marshal()}).subarray()}equals(t){return mt(this.bytes,t.bytes)}async hash(){let{bytes:t}=await Bt.digest(this.bytes);return t}},F0=class{_key;_publicKey;constructor(t,r){this._key=t,this._publicKey=r??B5(t),C5(this._key),n2(this._publicKey)}async sign(t){return I5(this._key,t)}get public(){return new U0(this._publicKey)}marshal(){return this._key}get bytes(){return Me.encode({Type:Et.Secp256k1,Data:this.marshal()}).subarray()}equals(t){return mt(this.bytes,t.bytes)}async hash(){let{bytes:t}=await Bt.digest(this.bytes);return t}async id(){let t=await this.public.hash();return H(t,"base58btc")}async export(t,r="libp2p-key"){if(r==="libp2p-key")return Jn(this.bytes,t);throw new R(`export format '${r}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};function Eh(e){return new F0(e)}function Sh(e){return new U0(e)}async function Ih(){let e=S5();return new F0(e)}var nr={rsa:js,ed25519:Gs,secp256k1:i2};function o2(e){let t=Object.keys(nr).join(" / ");return new R(`invalid or unsupported key type ${e}. Must be ${t}`,"ERR_UNSUPPORTED_KEY_TYPE")}function s2(e){if(e=e.toLowerCase(),e==="rsa"||e==="ed25519"||e==="secp256k1")return nr[e];throw o2(e)}async function Ah(e,t){return s2(e).generateKeyPair(t??2048)}async function _h(e,t,r){if(e.toLowerCase()!=="ed25519")throw new R("Seed key derivation is unimplemented for RSA or secp256k1","ERR_UNSUPPORTED_KEY_DERIVATION_TYPE");return $s(t)}function Ch(e){let t=Fe.decode(e),r=t.Data??new Uint8Array;switch(t.Type){case Et.RSA:return nr.rsa.unmarshalRsaPublicKey(r);case Et.Ed25519:return nr.ed25519.unmarshalEd25519PublicKey(r);case Et.Secp256k1:return nr.secp256k1.unmarshalSecp256k1PublicKey(r);default:throw o2(t.Type??"RSA")}}function Bh(e,t){return t=(t??"rsa").toLowerCase(),s2(t),e.bytes}async function T5(e){let t=Me.decode(e),r=t.Data??new Uint8Array;switch(t.Type){case Et.RSA:return nr.rsa.unmarshalRsaPrivateKey(r);case Et.Ed25519:return nr.ed25519.unmarshalEd25519PrivateKey(r);case Et.Secp256k1:return nr.secp256k1.unmarshalSecp256k1PrivateKey(r);default:throw o2(t.Type??"RSA")}}function Th(e,t){return t=(t??"rsa").toLowerCase(),s2(t),e.bytes}async function Rh(e,t){try{let i=await jc(e,t);return await T5(i)}catch{}let r=c1.default.pki.decryptRsaPrivateKey(e,t);if(r===null)throw new R("Cannot read the key, most likely the password is wrong or not a RSA key","ERR_CANNOT_DECRYPT_PEM");let n=c1.default.asn1.toDer(c1.default.pki.privateKeyToAsn1(r));return n=It(n.getBytes(),"ascii"),nr.rsa.unmarshalRsaPrivateKey(n)}var Ph=ct(ms(),1),Lh=ct(Ft(),1);function f1(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 br(e,t){if(e.length!==t.length)throw new Error("Inputs should have the same length");let r=pe(e.length);for(let n=0;n<e.length;n++)r[n]=e[n]^t[n];return sr(r)}var l1=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 Pe(t),n={peerId:t,distance:br(this.originDhtKey,r)};this.peerDistances.push(n),this.peerDistances.sort((i,o)=>f1(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(Pe)),n=this.peerDistances[this.peerDistances.length-1].distance;for(let i of r){let o=br(this.originDhtKey,i);if(f1(o,n)<0)return!0}return!1}};var h1=class{components;log;routingTable;network;validators;queryManager;constructor(t,r){let{routingTable:n,network:i,validators:o,queryManager:s,lan:a}=r;this.components=t,this.routingTable=n,this.network=i,this.validators=o,this.queryManager=s,this.log=J(`libp2p:kad-dht:${a?"lan":"wan"}: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.components.peerStore.get(n)}catch(i){if(i.code!=="ERR_NOT_FOUND")throw i}}if(r==null)try{r=await this.components.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),protocols:[]}}async*_getValueSingle(t,r,n={}){let i=new Nt(Ut.GET_VALUE,r,0);yield*this.network.sendRequest(t,i,n)}async*getPublicKeyFromNode(t,r={}){let n=$3(t);for await(let i of this._getValueSingle(t,n,r))if(yield i,i.name==="PEER_RESPONSE"&&i.record!=null){let o=await Ba(u1.marshalPublicKey({bytes:i.record.value}));if(!o.equals(t))throw new R("public key does not match id","ERR_PUBLIC_KEY_DOES_NOT_MATCH_ID");if(o.publicKey==null)throw new R("public key missing","ERR_PUBLIC_KEY_MISSING");yield w0({from:t,value:o.publicKey},r)}throw new R(`Node not responding with its public key: ${t.toString()}`,"ERR_INVALID_RECORD")}async*findPeer(t,r={}){this.log("findPeer %p",t);let n=await this.findPeerLocal(t);if(n!=null){this.log("found local"),yield gi({from:this.components.peerId,peer:n},r);return}let i=this,o=async function*({peer:a,signal:c}){let u=new Nt(Ut.FIND_NODE,t.toBytes(),0);for await(let f of i.network.sendRequest(a,u,{...r,signal:c}))if(yield f,f.name==="PEER_RESPONSE"){let l=f.closer.find(p=>p.id.equals(t));l!=null&&(yield gi({from:f.from,peer:l},r))}},s=!1;for await(let a of this.queryManager.run(t.toBytes(),o,r))a.name==="FINAL_PEER"&&(s=!0),yield a;s||(yield se({from:this.components.peerId,error:new R("Not found","ERR_NOT_FOUND")},r))}async*getClosestPeers(t,r={}){this.log("getClosestPeers to %b",t);let n=await Lr(t),i=this.routingTable.closestPeers(n),o=this,s=new l1(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",H(t,"base32"),c);let f=new Nt(Ut.FIND_NODE,t,0);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.components.peerStore.get(c);yield gi({from:this.components.peerId,peer:{id:c,multiaddrs:u.addresses.map(({multiaddr:f})=>f),protocols:u.protocols}},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 se({from:i.from,error:new R(s,"ERR_INVALID_RECORD")},n);continue}yield i}}async _verifyRecordOnline(t){if(t.timeReceived==null)throw new R("invalid record received","ERR_INVALID_RECORD");await Un(this.validators,new Jt(t.key,t.value,t.timeReceived))}async getCloserPeersOffline(t,r){let n=await Lr(t),i=this.routingTable.closestPeers(n),o=[];for(let s of i)if(!s.equals(r))try{let a=await this.components.peerStore.get(s);o.push({id:s,multiaddrs:a.addresses.map(({multiaddr:c})=>c),protocols:a.protocols})}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 z5=ct(P5(),1);var V5=ct(N5(),1);var K0=class extends Error{constructor(t){super(t),this.name="TimeoutError"}},c2=class extends Error{constructor(t){super(),this.name="AbortError",this.message=t}},k5=e=>globalThis.DOMException===void 0?new c2(e):new DOMException(e),D5=e=>{let t=e.reason===void 0?k5("This operation was aborted."):e.reason;return t instanceof Error?t:k5(t)};function u2(e,t,r,n){let i,o=new Promise((s,a)=>{if(typeof t!="number"||Math.sign(t)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${t}\``);if(t===Number.POSITIVE_INFINITY){s(e);return}if(n={customTimers:{setTimeout,clearTimeout},...n},n.signal){let{signal:c}=n;c.aborted&&a(D5(c)),c.addEventListener("abort",()=>{a(D5(c))})}i=n.customTimers.setTimeout.call(void 0,()=>{if(typeof r=="function"){try{s(r())}catch(f){a(f)}return}let c=typeof r=="string"?r:`Promise timed out after ${t} milliseconds`,u=r instanceof Error?r:new K0(c);typeof e.cancel=="function"&&e.cancel(),a(u)},t),(async()=>{try{s(await e)}catch(c){a(c)}finally{n.customTimers.clearTimeout.call(void 0,i)}})()});return o.clear=()=>{clearTimeout(i),i=void 0},o}function f2(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 xn=function(e,t,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(e):n?n.value:t.get(e)},wr,q0=class{constructor(){wr.set(this,[])}enqueue(t,r){r={priority:0,...r};let n={priority:r.priority,run:t};if(this.size&&xn(this,wr,"f")[this.size-1].priority>=r.priority){xn(this,wr,"f").push(n);return}let i=f2(xn(this,wr,"f"),n,(o,s)=>s.priority-o.priority);xn(this,wr,"f").splice(i,0,n)}dequeue(){let t=xn(this,wr,"f").shift();return t?.run}filter(t){return xn(this,wr,"f").filter(r=>r.priority===t.priority).map(r=>r.run)}get size(){return xn(this,wr,"f").length}};wr=new WeakMap;var Tt=function(e,t,r,n,i){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!i)throw new TypeError("Private accessor was defined without a setter");if(typeof t=="function"?e!==t||!i:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?i.call(e,r):i?i.value=r:t.set(e,r),r},M=function(e,t,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(e):n?n.value:t.get(e)},Kt,z0,H0,Hr,v1,$0,p1,qe,V0,me,y1,xe,G0,zr,g1,O5,U5,K5,F5,M5,m1,l2,h2,b1,q5,x1,w1=class extends Error{},Er=class extends V5.default{constructor(t){var r,n,i,o;if(super(),Kt.add(this),z0.set(this,void 0),H0.set(this,void 0),Hr.set(this,0),v1.set(this,void 0),$0.set(this,void 0),p1.set(this,0),qe.set(this,void 0),V0.set(this,void 0),me.set(this,void 0),y1.set(this,void 0),xe.set(this,0),G0.set(this,void 0),zr.set(this,void 0),g1.set(this,void 0),Object.defineProperty(this,"timeout",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),t={carryoverConcurrencyCount:!1,intervalCap:Number.POSITIVE_INFINITY,interval:0,concurrency:Number.POSITIVE_INFINITY,autoStart:!0,queueClass:q0,...t},!(typeof t.intervalCap=="number"&&t.intervalCap>=1))throw new TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${(n=(r=t.intervalCap)===null||r===void 0?void 0:r.toString())!==null&&n!==void 0?n:""}\` (${typeof t.intervalCap})`);if(t.interval===void 0||!(Number.isFinite(t.interval)&&t.interval>=0))throw new TypeError(`Expected \`interval\` to be a finite number >= 0, got \`${(o=(i=t.interval)===null||i===void 0?void 0:i.toString())!==null&&o!==void 0?o:""}\` (${typeof t.interval})`);Tt(this,z0,t.carryoverConcurrencyCount,"f"),Tt(this,H0,t.intervalCap===Number.POSITIVE_INFINITY||t.interval===0,"f"),Tt(this,v1,t.intervalCap,"f"),Tt(this,$0,t.interval,"f"),Tt(this,me,new t.queueClass,"f"),Tt(this,y1,t.queueClass,"f"),this.concurrency=t.concurrency,this.timeout=t.timeout,Tt(this,g1,t.throwOnTimeout===!0,"f"),Tt(this,zr,t.autoStart===!1,"f")}get concurrency(){return M(this,G0,"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})`);Tt(this,G0,t,"f"),M(this,Kt,"m",b1).call(this)}async add(t,r={}){return r={timeout:this.timeout,throwOnTimeout:M(this,g1,"f"),...r},new Promise((n,i)=>{M(this,me,"f").enqueue(async()=>{var o,s,a;Tt(this,xe,(s=M(this,xe,"f"),s++,s),"f"),Tt(this,Hr,(a=M(this,Hr,"f"),a++,a),"f");try{if(!((o=r.signal)===null||o===void 0)&&o.aborted)throw new w1("The task was aborted.");let c=t({signal:r.signal});r.timeout&&(c=u2(Promise.resolve(c),r.timeout)),r.signal&&(c=Promise.race([c,M(this,Kt,"m",q5).call(this,r.signal)]));let u=await c;n(u),this.emit("completed",u)}catch(c){if(c instanceof K0&&!r.throwOnTimeout){n();return}i(c),this.emit("error",c)}finally{M(this,Kt,"m",K5).call(this)}},r),this.emit("add"),M(this,Kt,"m",m1).call(this)})}async addAll(t,r){return Promise.all(t.map(async n=>this.add(n,r)))}start(){return M(this,zr,"f")?(Tt(this,zr,!1,"f"),M(this,Kt,"m",b1).call(this),this):this}pause(){Tt(this,zr,!0,"f")}clear(){Tt(this,me,new(M(this,y1,"f")),"f")}async onEmpty(){M(this,me,"f").size!==0&&await M(this,Kt,"m",x1).call(this,"empty")}async onSizeLessThan(t){M(this,me,"f").size<t||await M(this,Kt,"m",x1).call(this,"next",()=>M(this,me,"f").size<t)}async onIdle(){M(this,xe,"f")===0&&M(this,me,"f").size===0||await M(this,Kt,"m",x1).call(this,"idle")}get size(){return M(this,me,"f").size}sizeBy(t){return M(this,me,"f").filter(t).length}get pending(){return M(this,xe,"f")}get isPaused(){return M(this,zr,"f")}};z0=new WeakMap,H0=new WeakMap,Hr=new WeakMap,v1=new WeakMap,$0=new WeakMap,p1=new WeakMap,qe=new WeakMap,V0=new WeakMap,me=new WeakMap,y1=new WeakMap,xe=new WeakMap,G0=new WeakMap,zr=new WeakMap,g1=new WeakMap,Kt=new WeakSet,O5=function(){return M(this,H0,"f")||M(this,Hr,"f")<M(this,v1,"f")},U5=function(){return M(this,xe,"f")<M(this,G0,"f")},K5=function(){var t;Tt(this,xe,(t=M(this,xe,"f"),t--,t),"f"),M(this,Kt,"m",m1).call(this),this.emit("next")},F5=function(){M(this,Kt,"m",h2).call(this),M(this,Kt,"m",l2).call(this),Tt(this,V0,void 0,"f")},M5=function(){let t=Date.now();if(M(this,qe,"f")===void 0){let r=M(this,p1,"f")-t;if(r<0)Tt(this,Hr,M(this,z0,"f")?M(this,xe,"f"):0,"f");else return M(this,V0,"f")===void 0&&Tt(this,V0,setTimeout(()=>{M(this,Kt,"m",F5).call(this)},r),"f"),!0}return!1},m1=function(){if(M(this,me,"f").size===0)return M(this,qe,"f")&&clearInterval(M(this,qe,"f")),Tt(this,qe,void 0,"f"),this.emit("empty"),M(this,xe,"f")===0&&this.emit("idle"),!1;if(!M(this,zr,"f")){let t=!M(this,Kt,"a",M5);if(M(this,Kt,"a",O5)&&M(this,Kt,"a",U5)){let r=M(this,me,"f").dequeue();return r?(this.emit("active"),r(),t&&M(this,Kt,"m",l2).call(this),!0):!1}}return!1},l2=function(){M(this,H0,"f")||M(this,qe,"f")!==void 0||(Tt(this,qe,setInterval(()=>{M(this,Kt,"m",h2).call(this)},M(this,$0,"f")),"f"),Tt(this,p1,Date.now()+M(this,$0,"f"),"f"))},h2=function(){M(this,Hr,"f")===0&&M(this,xe,"f")===0&&M(this,qe,"f")&&(clearInterval(M(this,qe,"f")),Tt(this,qe,void 0,"f")),Tt(this,Hr,M(this,z0,"f")?M(this,xe,"f"):0,"f"),M(this,Kt,"m",b1).call(this)},b1=function(){for(;M(this,Kt,"m",m1).call(this););},q5=async function(t){return new Promise((r,n)=>{t.addEventListener("abort",()=>{n(new w1("The task was aborted."))},{once:!0})})},x1=async function(t,r){return new Promise(n=>{let i=()=>{r&&!r()||(this.off(t,i),n())};this.on(t,i)})};var Sr=J("libp2p:kad-dht:providers"),E1=class{components;cache;cleanupInterval;provideValidity;syncQueue;started;cleaner;constructor(t,r={}){let{cacheSize:n,cleanupInterval:i,provideValidity:o}=r;this.components=t,this.cleanupInterval=i??36e5,this.provideValidity=o??864e5,this.cache=(0,z5.default)(n??256),this.syncQueue=new Er({concurrency:1}),this.started=!1}isStarted(){return this.started}async start(){this.started||(this.started=!0,this.cleaner=setInterval(()=>{this._cleanup().catch(t=>{Sr.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.components.datastore.batch(),s=this.components.datastore.query({prefix:ro});for await(let a of s)try{let{cid:c,peerId:u}=H5(a.key),f=$5(a.value).getTime(),l=Date.now(),p=l-f,d=p>this.provideValidity;if(Sr("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){Sr.error(c.message)}i.size>0?(Sr("deleting %d / %d entries",n,r),await o.commit()):Sr("nothing to delete");for(let[a,c]of i){let u=Q0(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)}}Sr("Cleanup successful (%dms)",Date.now()-t)})}async _getProvidersMap(t){let r=Q0(t),n=this.cache.get(r);return n==null&&(n=await Mh(this.components.datastore,t),this.cache.set(r,n)),n}async addProvider(t,r){await this.syncQueue.add(async()=>{Sr("%p provides %s",r,t);let n=await this._getProvidersMap(t);Sr("loaded %s provs",n.size);let i=new Date;n.set(r.toString(),i);let o=Q0(t);this.cache.set(o,n),await Fh(this.components.datastore,t,r,i)})}async getProviders(t){return this.syncQueue.add(async()=>(Sr("get providers for %s",t),[...(await this._getProvidersMap(t)).keys()].map(n=>Lt(n))),{throwOnTimeout:!0})}};function Q0(e){let t=typeof e=="string"?e:H(e.multihash.bytes,"base32");return`${ro}/${t}`}async function Fh(e,t,r,n){let i=[Q0(t),"/",r.toString()].join(""),o=new Fn(i),s=ze(n.getTime());await e.put(o,s)}function H5(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 Mh(e,t){let r=new Map,n=e.query({prefix:Q0(t)});for await(let i of n){let{peerId:o}=H5(i.key);r.set(o,$5(i.value))}return r}function $5(e){return new Date(Be(e))}var vn=ct(p2(),1);function Ir(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 y2=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){this.map.delete(t.toString())}entries(){return Ir(this.map.entries(),t=>[Lt(t[0]),t[1]])}forEach(t){this.map.forEach((r,n)=>{t(r,Lt(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 Ir(this.map.keys(),t=>Lt(t))}values(){return this.map.values()}get size(){return this.map.size}};var $r=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 Ir(this.set.entries(),t=>{let r=Lt(t[0]);return[r,r]})}forEach(t){this.set.forEach(r=>{let n=Lt(r);t(n,n,this)})}has(t){return this.set.has(t.toString())}values(){return Ir(this.set.values(),t=>Lt(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 g2=class e{list;constructor(t){if(this.list=[],t!=null)for(let r of t)this.list.push(r.toString())}[Symbol.iterator](){return Ir(this.list.entries(),t=>Lt(t[1]))}concat(t){let r=new e(this);for(let n of t)r.push(n);return r}entries(){return Ir(this.list.entries(),t=>[t[0],Lt(t[1])])}every(t){return this.list.every((r,n)=>t(Lt(r),n,this))}filter(t){let r=new e;return this.list.forEach((n,i)=>{let o=Lt(n);t(o,i,this)&&r.push(o)}),r}find(t){let r=this.list.find((n,i)=>t(Lt(n),i,this));if(r!=null)return Lt(r)}findIndex(t){return this.list.findIndex((r,n)=>t(Lt(r),n,this))}forEach(t){this.list.forEach((r,n)=>{t(Lt(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 Lt(t)}push(...t){for(let r of t)this.list.push(r.toString())}shift(){let t=this.list.shift();if(t!=null)return Lt(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}get length(){return this.list.length}};function i0(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}var Gh=BigInt("0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF");async function*r8(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 Er({concurrency:s}),h=await Lr(t);function y(g,m){if(g==null)return;p.add(g);let x=BigInt("0x"+H(br(m,h),"base16"));d.add(async()=>{let v=[i];f!=null&&v.push(AbortSignal.timeout(f));let _=i0(v);try{for await(let E of o({key:t,peer:g,signal:_,pathIndex:a,numPaths:c})){if(_.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 Pe(S.id);if(BigInt("0x"+H(br(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 se({from:g,error:E},e)}finally{_.clear()}},{priority:Gh-x}).catch(v=>{l.error(v)})}y(r,await Pe(r)),yield*Qh(d,i,u,l)}async function*Qh(e,t,r,n){let i=re(),o=!0,s=[],a=()=>{o&&(n("clean up queue, results %d, queue size %d, pending tasks %d",s.length,e.size,e.pending),o=!1,e.clear(),s.splice(0,s.length))};for(e.on("completed",c=>{s.push(c),i.resolve()}),e.on("error",c=>{n("queue error",c),a(),i.reject(c)}),e.on("idle",()=>{n("queue idle"),o=!1,i.resolve()}),t.addEventListener("abort",()=>{n("abort queue");let c=o;a(),c&&i.reject(new R("Query aborted","ERR_QUERY_ABORTED"))}),r.addEventListener("cleanup",()=>{a(),i.resolve()});o;)for(await i.promise,i=re();s.length>0;){let c=s.shift();c!=null&&(yield c)}yield*s}var _1=class{components;lan;disjointPaths;alpha;shutDownController;running;queries;metrics;routingTable;initialQuerySelfHasRun;constructor(t,r){let{lan:n=!1,disjointPaths:i=20,alpha:o=3}=r;this.components=t,this.disjointPaths=i??20,this.running=!1,this.alpha=o??3,this.lan=n,this.queries=0,this.initialQuerySelfHasRun=r.initialQuerySelfHasRun,this.routingTable=r.routingTable,this.shutDownController=new AbortController;try{vn.setMaxListeners!=null&&(0,vn.setMaxListeners)(1/0,this.shutDownController.signal)}catch{}}isStarted(){return this.running}async start(){this.running=!0,this.components.metrics!=null&&this.metrics==null&&(this.metrics={runningQueries:this.components.metrics.registerMetric(`libp2p_kad_dht_${this.lan?"lan":"wan"}_running_queries`),queryTime:this.components.metrics.registerMetric(`libp2p_kad_dht_${this.lan?"lan":"wan"}_query_time_seconds`)})}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){n.signal=AbortSignal.timeout(3e4);try{vn.setMaxListeners!=null&&(0,vn.setMaxListeners)(1/0,n.signal)}catch{}}let o=i0([this.shutDownController.signal,n.signal]);try{vn.setMaxListeners!=null&&(0,vn.setMaxListeners)(1/0,o)}catch{}let s=J(`libp2p:kad-dht:${this.lan?"lan":"wan"}:query:`+H(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,y)=>{o.addEventListener("abort",()=>{y(new j0("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 Lr(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 $r,d=l.map((h,y)=>r8({key:t,startingPeer:h,ourPeerId:this.components.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 Ae(...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 kt("cleanup")),s("query:done in %dms",Date.now()-a)}}};var v2=ct(p2(),1);function Wh(e){return e[Symbol.asyncIterator]!=null}function Zh(e){if(Wh(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 C1=Zh;function Xh(e){return e[Symbol.asyncIterator]!=null}function jh(e,t){return Xh(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 n8=jh;var B1=class extends Error{constructor(t){super(t),this.name="TimeoutError"}},m2=class extends Error{constructor(t){super(),this.name="AbortError",this.message=t}},i8=e=>globalThis.DOMException===void 0?new m2(e):new DOMException(e),o8=e=>{let t=e.reason===void 0?i8("This operation was aborted."):e.reason;return t instanceof Error?t:i8(t)};function x2(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(o8(p)),p.addEventListener("abort",()=>{f(o8(p))})}if(r===Number.POSITIVE_INFINITY){e.then(u,f);return}let l=new B1;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}var Jh=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 td(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}=Jh(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=x2(i,{milliseconds:r.timeout});return o.cancel=n,o}return i}function s8(e,t,r){typeof r=="function"&&(r={filter:r}),r={...r,count:1,resolveImmediately:!1};let n=td(e,t,r),i=n.then(o=>o[0]);return i.cancel=n.cancel,i}var T1=class{log;components;peerRouting;routingTable;count;interval;initialInterval;queryTimeout;started;timeoutId;controller;initialQuerySelfHasRun;querySelfPromise;constructor(t,r){let{peerRouting:n,lan:i,count:o,interval:s,queryTimeout:a,routingTable:c}=r;this.components=t,this.log=J(`libp2p:kad-dht:${i?"lan":"wan"}: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=re(),this.routingTable.size===0&&await s8(this.routingTable,"peer:add"),this.started){this.controller=new AbortController;let t=i0([this.controller.signal,AbortSignal.timeout(this.queryTimeout)]);try{v2.setMaxListeners!=null&&(0,v2.setMaxListeners)(1/0,t)}catch{}try{this.log("run self-query, look for %d peers timing out after %dms",this.count,this.queryTimeout);let r=await Ce(this.peerRouting.getClosestPeers(this.components.peerId.toBytes(),{signal:t,isSelfQuery:!0}),n=>n8(n,this.count),async n=>C1(n));this.log("self-query ran successfully - found %d peers",r),this.initialQuerySelfHasRun!=null&&(this.initialQuerySelfHasRun.resolve(),this.initialQuerySelfHasRun=void 0)}catch(r){this.log.error("self-query error",r)}finally{t.clear()}}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 a8(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 b2(){return{contacts:[],dontSplit:!1,left:null,right:null}}function Y0(e,t){if(!(t instanceof Uint8Array))throw new TypeError(e+" is not a Uint8Array")}var R1=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,Y0("option.localNodeId as parameter 1",this.localNodeId),this.root=b2()}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){Y0("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(Y0("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){Y0("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(a8(t.contacts[n].id,r))return n;return-1}remove(t){Y0("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=b2(),t.right=b2();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(!a8(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 id="kad-close",od=50,c8=20,sd=1e4,ad=10,P1=class extends ee{kBucketSize;kb;pingQueue;log;components;lan;pingTimeout;pingConcurrency;running;protocol;tagName;tagValue;metrics;constructor(t,r){super();let{kBucketSize:n,pingTimeout:i,lan:o,pingConcurrency:s,protocol:a,tagName:c,tagValue:u}=r;this.components=t,this.log=J(`libp2p:kad-dht:${o?"lan":"wan"}:routing-table`),this.kBucketSize=n??c8,this.pingTimeout=i??sd,this.pingConcurrency=s??ad,this.lan=o,this.running=!1,this.protocol=a,this.tagName=c??id,this.tagValue=u??od;let f=()=>{this.metrics?.pingQueueSize.update(this.pingQueue.size),this.metrics?.pingRunning.update(this.pingQueue.pending)};this.pingQueue=new Er({concurrency:this.pingConcurrency}),this.pingQueue.addListener("add",f),this.pingQueue.addListener("next",f),this._onPing=this._onPing.bind(this)}isStarted(){return this.running}async start(){this.running=!0,this.components.metrics!=null&&(this.metrics={routingTableSize:this.components.metrics.registerMetric(`libp2p_kad_dht_${this.lan?"lan":"wan"}_routing_table_size`),pingQueueSize:this.components.metrics.registerMetric(`libp2p_kad_dht_${this.lan?"lan":"wan"}_ping_queue_size`),pingRunning:this.components.metrics.registerMetric(`libp2p_kad_dht_${this.lan?"lan":"wan"}_ping_running`)});let t=new R1({localNodeId:await Pe(this.components.peerId),numberOfNodesPerKBucket:this.kBucketSize,numberOfNodesToPing:1});this.kb=t,t.addEventListener("ping",this._onPing),this._tagPeers(t)}async stop(){this.running=!1,this.pingQueue.clear(),this.kb=void 0}_tagPeers(t){let r=new $r,n=Y3(()=>{let i=new $r(t.closest(t.localNodeId,c8).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})})}_onPing(t){let{oldContacts:r,newContact:n}=t.detail;this.pingQueue.add(async()=>{if(!this.running)return;let i=0;try{await Promise.all(r.map(async o=>{try{let s={signal:AbortSignal.timeout(this.pingTimeout)};this.log("pinging old contact %p",o.peer),await(await(await this.components.connectionManager.openConnection(o.peer,s)).newStream(this.protocol,s)).close(),i++}catch(s){this.running&&this.kb!=null&&(this.log.error("could not ping peer %p",o.peer,s),this.log("evicting old contact after ping failed %p",o.peer),this.kb.remove(o.id))}finally{this.metrics?.routingTableSize.update(this.size)}})),this.running&&i<r.length&&this.kb!=null&&(this.log("adding new contact %p",n.peer),this.kb.add(n))}catch(o){this.log.error("could not process k-bucket ping event",o)}}).catch(i=>{this.log.error("could not process k-bucket ping event",i)})}get size(){return this.kb==null?0:this.kb.count()}async find(t){let r=await Pe(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 Pe(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 Pe(t);this.kb.remove(r),this.metrics?.routingTableSize.update(this.size)}};var u8=[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 L1=15,N1=class{log;peerRouting;routingTable;refreshInterval;refreshQueryTimeout;commonPrefixLengthRefreshedAt;refreshTimeoutId;constructor(t){let{peerRouting:r,routingTable:n,refreshInterval:i,refreshQueryTimeout:o,lan:s}=t;this.log=J(`libp2p:kad-dht:${s?"lan":"wan"}:routing-table:refresh`),this.peerRouting=r,this.routingTable=n,this.refreshInterval=i??3e5,this.refreshQueryTimeout=o??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 C1(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>L1&&(t=L1);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=yn(2),n=(r[1]<<8)+r[0],i=await this._makePeerId(this.routingTable.kb.localNodeId,n,t);return Xr(i)}async _makePeerId(t,r,n){if(n>L1)throw new Error(`Cannot generate peer ID for common prefix length greater than ${L1}`);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=u8[c],f=new ArrayBuffer(34),l=new DataView(f,0,f.byteLength);return l.setUint8(0,Bt.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=br(this.routingTable.kb.localNodeId,t),n=0;for(let i of r)if(i===0)n++;else break;yield n}}};var W0=J("libp2p:kad-dht:rpc:handlers:add-provider"),k1=class{providers;constructor(t){let{providers:r}=t;this.providers=r}async handle(t,r){if(W0("start"),r.key==null||r.key.length===0)throw new R("Missing key","ERR_MISSING_KEY");let n;try{n=oe.decode(r.key)}catch{throw new R("Invalid CID","ERR_INVALID_CID")}(r.providerPeers==null||r.providerPeers.length===0)&&W0.error("no providers found in message"),await Promise.all(r.providerPeers.map(async i=>{if(!i.id.equals(t)){W0("invalid provider peer %p from %p",i.id,t);return}if(i.multiaddrs.length<1){W0("no valid addresses for provider %p. Ignore",t);return}W0("received provider %p for %s (addrs %s)",t,n,i.multiaddrs.map(o=>o.toString())),await this.providers.addProvider(n,i.id)}))}};var f8=J("libp2p:kad-dht:rpc:handlers:find-node"),D1=class{peerRouting;lan;components;constructor(t,r){let{peerRouting:n,lan:i}=r;this.components=t,this.peerRouting=n,this.lan=!!i}async handle(t,r){f8("incoming request from %p for peers closer to %b",t,r.key);let n=[];mt(this.components.peerId.toBytes(),r.key)?n=[{id:this.components.peerId,multiaddrs:this.components.addressManager.getAddresses().map(o=>o.decapsulateCode(yt("p2p").code)),protocols:[]}]:n=await this.peerRouting.getCloserPeersOffline(r.key,t),n=n.map(this.lan?Kn:Mn).filter(({multiaddrs:o})=>o.length);let i=new Nt(r.type,new Uint8Array(0),r.clusterLevel);return n.length>0?i.closerPeers=n:f8("could not find any peers closer to %b than %p",r.key,t),i}};var l8=J("libp2p:kad-dht:rpc:handlers:get-providers"),O1=class{components;peerRouting;providers;lan;constructor(t,r){let{peerRouting:n,providers:i,lan:o}=r;this.components=t,this.peerRouting=n,this.providers=i,this.lan=!!o}async handle(t,r){let n;try{n=oe.decode(r.key)}catch{throw new R("Invalid CID","ERR_INVALID_CID")}l8("%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=new Nt(r.type,r.key,r.clusterLevel);return s.length>0&&(c.providerPeers=s),a.length>0&&(c.closerPeers=a),l8("got %s providers %s closerPeers",s.length,a.length),c}async _getAddresses(t){return[]}async _getPeers(t){let r=[],n=this.lan?Kn:Mn;for(let i of t)try{let o=await this.components.peerStore.get(i),s=n({id:i,multiaddrs:o.addresses.map(({multiaddr:a})=>a),protocols:o.protocols});s.multiaddrs.length>0&&r.push(s)}catch(o){if(o.code!=="ERR_NOT_FOUND")throw o}return r}};var o0=J("libp2p:kad-dht:rpc:handlers:get-value"),U1=class{components;peerRouting;constructor(t,r){let{peerRouting:n}=r;this.components=t,this.peerRouting=n}async handle(t,r){let n=r.key;if(o0("%p asked for key %b",t,n),n==null||n.length===0)throw new R("Invalid key","ERR_INVALID_KEY");let i=new Nt(Ut.GET_VALUE,n,r.clusterLevel);if(G3(n)){o0("is public key");let a=Q3(n),c;try{let u=await this.components.peerStore.get(a);if(u.id.publicKey==null)throw new R("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 o0("returning found public key"),i.record=new Jt(n,c,new Date),i}let[o,s]=await Promise.all([this._checkLocalDatastore(n),this.peerRouting.getCloserPeersOffline(r.key,t)]);return o!=null&&(o0("had record for %b in local datastore",n),i.record=o),s.length>0&&(o0("had %s closer peers in routing table",s.length),i.closerPeers=s),i}async _checkLocalDatastore(t){o0("checkLocalDatastore looking for %b",t);let r=ur(t),n;try{n=await this.components.datastore.get(r)}catch(o){if(o.code==="ERR_NOT_FOUND")return;throw o}let i=Jt.deserialize(n);if(i==null)throw new R("Invalid record","ERR_INVALID_RECORD");if(i.timeReceived==null||Date.now()-i.timeReceived.getTime()>1296e5){await this.components.datastore.delete(r);return}return i}};var ld=J("libp2p:kad-dht:rpc:handlers:ping"),F1=class{async handle(t,r){return ld("ping from %p",t),r}};var M1=class{log;components;validators;constructor(t,r){let{validators:n}=r;this.components=t,this.log=J("libp2p:kad-dht:rpc:handlers:put-value"),this.validators=n}async handle(t,r){let n=r.key;this.log("%p asked us to store value for key %b",t,n);let i=r.record;if(i==null){let o=`Empty record from: ${t.toString()}`;throw this.log.error(o),new R(o,"ERR_EMPTY_RECORD")}try{await Un(this.validators,i),i.timeReceived=new Date;let o=ur(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(o){this.log("did not put record for key %b into datastore %o",n,o)}return r}};var K1=class{handlers;routingTable;log;constructor(t,r){let{providers:n,peerRouting:i,validators:o,lan:s}=r;this.log=J("libp2p:kad-dht:rpc"),this.routingTable=r.routingTable,this.handlers={[Ut.GET_VALUE]:new U1(t,{peerRouting:i}),[Ut.PUT_VALUE]:new M1(t,{validators:o}),[Ut.FIND_NODE]:new D1(t,{peerRouting:i,lan:s}),[Ut.ADD_PROVIDER]:new k1({providers:n}),[Ut.GET_PROVIDERS]:new O1(t,{peerRouting:i,providers:n,lan:s}),[Ut.PING]:new F1}}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 Ce(r,s=>nn(s),async function*(s){for await(let a of s){let c=Nt.deserialize(a);o.log("incoming %s from %p",c.type,i);let u=await o.handleMessage(i,c);u!=null&&(yield u.serialize())}},s=>en(s),r)}).catch(r=>{this.log.error(r)})}};var q1=class extends ee{log;components;protocol;running;registrarId;constructor(t,r){super();let{protocol:n,lan:i}=r;this.components=t,this.log=J(`libp2p:kad-dht:topology-listener:${i?"lan":"wan"}`),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 kt("peer",{detail:t}))}}))}async stop(){this.running=!1,this.registrarId!=null&&(this.components.registrar.unregister(this.registrarId),this.registrarId=void 0)}};var hd=32,dd=64,Z0=class extends ee{protocol;routingTable;providers;network;peerRouting;components;log;running;kBucketSize;clientMode;lan;validators;selectors;queryManager;contentFetching;contentRouting;routingTableRefresh;rpc;topologyListener;querySelf;maxInboundStreams;maxOutboundStreams;constructor(t,r){super();let{kBucketSize:n,clientMode:i,validators:o,selectors:s,querySelfInterval:a,lan:c,protocolPrefix:u,pingTimeout:f,pingConcurrency:l,maxInboundStreams:p,maxOutboundStreams:d,providers:h}=r;this.running=!1,this.components=t,this.lan=!!c,this.log=J(`libp2p:kad-dht:${c===!0?"lan":"wan"}`),this.protocol=`${u??aa}${c===!0?sa:""}${ca}`,this.kBucketSize=n??20,this.clientMode=i??!0,this.maxInboundStreams=p??hd,this.maxOutboundStreams=d??dd,this.routingTable=new P1(t,{kBucketSize:n,lan:this.lan,pingTimeout:f,pingConcurrency:l,protocol:this.protocol}),this.providers=new E1(t,h??{}),this.validators={...V3,...o},this.selectors={...q3,...s},this.network=new Si(t,{protocol:this.protocol,lan:this.lan});let y=re();r.allowQueryWithZeroPeers===!0&&y.resolve(),this.queryManager=new _1(t,{disjointPaths:Math.ceil(this.kBucketSize/2),lan:c,initialQuerySelfHasRun:y,routingTable:this.routingTable}),this.peerRouting=new h1(t,{routingTable:this.routingTable,network:this.network,validators:this.validators,queryManager:this.queryManager,lan:this.lan}),this.contentFetching=new xi(t,{validators:this.validators,selectors:this.selectors,peerRouting:this.peerRouting,queryManager:this.queryManager,network:this.network,lan:this.lan}),this.contentRouting=new vi(t,{network:this.network,peerRouting:this.peerRouting,queryManager:this.queryManager,routingTable:this.routingTable,providers:this.providers,lan:this.lan}),this.routingTableRefresh=new N1({peerRouting:this.peerRouting,routingTable:this.routingTable,lan:this.lan}),this.rpc=new K1(t,{routingTable:this.routingTable,providers:this.providers,peerRouting:this.peerRouting,validators:this.validators,lan:this.lan}),this.topologyListener=new q1(t,{protocol:this.protocol,lan:this.lan}),this.querySelf=new T1(t,{peerRouting:this.peerRouting,interval:a,initialInterval:r.initialQuerySelfInterval,lan:this.lan,initialQuerySelfHasRun:y,routingTable:this.routingTable}),this.network.addEventListener("peer",g=>{let m=g.detail;this.onPeerConnect(m).catch(x=>{this.log.error("could not add %p to routing table",m.id,x)}),this.dispatchEvent(new kt("peer",{detail:m}))}),this.topologyListener.addEventListener("peer",g=>{let m=g.detail;Promise.resolve().then(async()=>{let x=await this.components.peerStore.get(m),v={id:m,multiaddrs:x.addresses.map(({multiaddr:_})=>_),protocols:x.protocols};await this.onPeerConnect(v)}).catch(x=>{this.log.error("could not add %p to routing table",m,x)})})}async onPeerConnect(t){if(this.log("peer %p connected with protocols",t.id,t.protocols),this.lan?t=Kn(t):t=Mn(t),t.multiaddrs.length===0){this.log("ignoring %p as they do not have any %s addresses in %s",t.id,this.lan?"private":"public",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}async 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"),await Promise.all([this.providers.start(),this.queryManager.start(),this.network.start(),this.routingTable.start(),this.topologyListener.start()]),this.querySelf.start(),await 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 s0=J("libp2p:kad-dht"),w2=class{dht;constructor(t){this.dht=t}async provide(t,r={}){await c0(this.dht.provide(t,r))}async*findProviders(t,r={}){for await(let n of this.dht.findProviders(t,r))n.name==="PROVIDER"&&(yield*n.providers)}async put(t,r,n){await c0(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 R("Not found","ERR_NOT_FOUND")}},E2=class{dht;constructor(t){this.dht=t}async findPeer(t,r={}){for await(let n of this.dht.findPeer(t,r))if(n.name==="FINAL_PEER")return n.peer;throw new R("Not found","ERR_NOT_FOUND")}async*getClosestPeers(t,r={}){for await(let n of this.dht.getClosestPeers(t,r))n.name==="FINAL_PEER"&&(yield n.peer)}},pd=290,yd=54,gd=55,md=56,xd=4,vd=41;function bd(e){let t=e.stringTuples();for(let r of t)if(r[0]===pd)return!1;if(t[0][0]===yd||t[0][0]===gd||t[0][0]===md)return s0("%m is public %s",e,!0),!0;if(t[0][0]===xd||t[0][0]===vd){let r=f0(`${t[0][1]}`),n=r==null||!r;return s0("%m is public %s",e,n),n}return!1}var V1=class extends ee{wan;lan;components;contentRouting;peerRouting;constructor(t,r={}){super(),this.components=t,this.wan=new Z0(t,{protocolPrefix:"/ipfs",...r,lan:!1}),this.lan=new Z0(t,{protocolPrefix:"/ipfs",...r,clientMode:!1,lan:!0}),this.contentRouting=new w2(this),this.peerRouting=new E2(this),this.wan.addEventListener("peer",n=>{this.dispatchEvent(new kt("peer",{detail:n.detail}))}),this.lan.addEventListener("peer",n=>{this.dispatchEvent(new kt("peer",{detail:n.detail}))}),r.clientMode==null&&t.events.addEventListener("self:peer:update",n=>{s0("received update of self-peer info");let i=n.detail.peer.addresses.some(({multiaddr:o})=>{let s=bd(o);return s0("%m is public %s",o,s),s});this.getMode().then(async o=>{i&&o==="client"?await this.setMode("server"):o==="server"&&!i&&await this.setMode("client")}).catch(o=>{s0.error("error setting dht server mode",o)})})}[Symbol.toStringTag]="@libp2p/dual-kad-dht";get[k2](){return this.contentRouting}get[O2](){return this.peerRouting}get[D2](){return this}isStarted(){return this.wan.isStarted()&&this.lan.isStarted()}async getMode(){return this.wan.getMode()}async setMode(t){await this.wan.setMode(t)}async start(){await Promise.all([this.lan.start(),this.wan.start()])}async stop(){await Promise.all([this.lan.stop(),this.wan.stop()])}async*put(t,r,n={}){for await(let i of Ae(this.lan.put(t,r,n),this.wan.put(t,r,n)))yield i}async*get(t,r={}){let n=!1,i=!1;for await(let o of Ae(this.lan.get(t,r),this.wan.get(t,r)))yield o,o.name==="DIAL_PEER"&&(n=!0),o.name==="VALUE"&&(n=!0,o.value!=null&&(i=!0)),o.name==="SEND_QUERY"&&(n=!0);if(!n)throw new R("No peers found in routing table!","ERR_NO_PEERS_IN_ROUTING_TABLE");i||(yield se({from:this.components.peerId,error:new R("Not found","ERR_NOT_FOUND")},r))}async*provide(t,r={}){let n=0,i=0,o=[],s=[this.lan];await this.wan.getMode()==="server"&&s.push(this.wan);for await(let a of Ae(...s.map(c=>c.provide(t,r))))yield a,a.name==="SEND_QUERY"&&n++,a.name==="QUERY_ERROR"&&o.push(a.error),a.name==="PEER_RESPONSE"&&a.messageName==="ADD_PROVIDER"&&(s0("sent provider record for %s to %p",t,a.from),i++);if(i===0)throw o.length>0?new R(`Failed to provide to ${o.length} of ${n} peers`,"ERR_PROVIDES_FAILED",{errors:o}):new R("Failed to provide - no peers found","ERR_PROVIDES_FAILED")}async*findProviders(t,r={}){yield*Ae(this.lan.findProviders(t,r),this.wan.findProviders(t,r))}async*findPeer(t,r={}){let n=!1;for await(let i of Ae(this.lan.findPeer(t,r),this.wan.findPeer(t,r)))yield i,(i.name==="SEND_QUERY"||i.name==="FINAL_PEER")&&(n=!0);if(!n)throw new R("Peer lookup failed","ERR_LOOKUP_FAILED")}async*getClosestPeers(t,r={}){yield*Ae(this.lan.getClosestPeers(t,r),this.wan.getClosestPeers(t,r))}async refreshRoutingTable(){await Promise.all([this.lan.refreshRoutingTable(),this.wan.refreshRoutingTable()])}};var S2;(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"})(S2||(S2={}));var I2;(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"})(I2||(I2={}));function wd(e){return t=>new V1(t,e)}return A8(Ed);})();
27
27
  /*! Bundled license information:
28
28
 
29
29
  @noble/hashes/esm/utils.js: