@imtbl/sdk 0.45.3-alpha → 0.45.5

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.
@@ -6,7 +6,7 @@
6
6
  * @author Chen, Yi-Cyuan [emn178@gmail.com]
7
7
  * @copyright Chen, Yi-Cyuan 2015-2018
8
8
  * @license MIT
9
- */!function(e){!function(){var t="input is invalid type",n="object"==typeof window,r=n?window:{};r.JS_SHA3_NO_WINDOW&&(n=!1);var i=!n&&"object"==typeof self;!r.JS_SHA3_NO_NODE_JS&&"object"==typeof process&&{node:"20.10.0",acorn:"8.10.0",ada:"2.7.2",ares:"1.20.1",base64:"0.5.0",brotli:"1.0.9",cjs_module_lexer:"1.2.2",cldr:"43.1",icu:"73.2",llhttp:"8.1.1",modules:"115",napi:"9",nghttp2:"1.57.0",nghttp3:"0.7.0",ngtcp2:"0.8.1",openssl:"3.0.12+quic",simdutf:"3.2.18",tz:"2023c",undici:"5.26.4",unicode:"15.0",uv:"1.46.0",uvwasi:"0.0.19",v8:"11.3.244.8-node.25",zlib:"1.2.13.1-motley"}&&process.versions.node?r=Ft:i&&(r=self);var a=!r.JS_SHA3_NO_COMMON_JS&&e.exports,o=!r.JS_SHA3_NO_ARRAY_BUFFER&&"undefined"!=typeof ArrayBuffer,s="0123456789abcdef".split(""),u=[4,1024,262144,67108864],c=[0,8,16,24],l=[1,0,32898,0,32906,2147483648,2147516416,2147483648,32907,0,2147483649,0,2147516545,2147483648,32777,2147483648,138,0,136,0,2147516425,0,2147483658,0,2147516555,0,139,2147483648,32905,2147483648,32771,2147483648,32770,2147483648,128,2147483648,32778,0,2147483658,2147483648,2147516545,2147483648,32896,2147483648,2147483649,0,2147516424,2147483648],d=[224,256,384,512],f=[128,256],p=["hex","buffer","arrayBuffer","array","digest"],h={128:168,256:136};!r.JS_SHA3_NO_NODE_JS&&Array.isArray||(Array.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),!o||!r.JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW&&ArrayBuffer.isView||(ArrayBuffer.isView=function(e){return"object"==typeof e&&e.buffer&&e.buffer.constructor===ArrayBuffer});for(var m=function(e,t,n){return function(r){return new S(e,t,e).update(r)[n]()}},y=function(e,t,n){return function(r,i){return new S(e,t,i).update(r)[n]()}},g=function(e,t,n){return function(t,r,i,a){return E["cshake"+e].update(t,r,i,a)[n]()}},b=function(e,t,n){return function(t,r,i,a){return E["kmac"+e].update(t,r,i,a)[n]()}},v=function(e,t,n,r){for(var i=0;i<p.length;++i){var a=p[i];e[a]=t(n,r,a)}return e},T=function(e,t){var n=m(e,t,"hex");return n.create=function(){return new S(e,t,e)},n.update=function(e){return n.create().update(e)},v(n,m,e,t)},w=[{name:"keccak",padding:[1,256,65536,16777216],bits:d,createMethod:T},{name:"sha3",padding:[6,1536,393216,100663296],bits:d,createMethod:T},{name:"shake",padding:[31,7936,2031616,520093696],bits:f,createMethod:function(e,t){var n=y(e,t,"hex");return n.create=function(n){return new S(e,t,n)},n.update=function(e,t){return n.create(t).update(e)},v(n,y,e,t)}},{name:"cshake",padding:u,bits:f,createMethod:function(e,t){var n=h[e],r=g(e,0,"hex");return r.create=function(r,i,a){return i||a?new S(e,t,r).bytepad([i,a],n):E["shake"+e].create(r)},r.update=function(e,t,n,i){return r.create(t,n,i).update(e)},v(r,g,e,t)}},{name:"kmac",padding:u,bits:f,createMethod:function(e,t){var n=h[e],r=b(e,0,"hex");return r.create=function(r,i,a){return new N(e,t,i).bytepad(["KMAC",a],n).bytepad([r],n)},r.update=function(e,t,n,i){return r.create(e,n,i).update(t)},v(r,b,e,t)}}],E={},A=[],_=0;_<w.length;++_)for(var I=w[_],R=I.bits,C=0;C<R.length;++C){var O=I.name+"_"+R[C];if(A.push(O),E[O]=I.createMethod(R[C],I.padding),"sha3"!==I.name){var k=I.name+R[C];A.push(k),E[k]=E[O]}}function S(e,t,n){this.blocks=[],this.s=[],this.padding=t,this.outputBits=n,this.reset=!0,this.finalized=!1,this.block=0,this.start=0,this.blockCount=1600-(e<<1)>>5,this.byteCount=this.blockCount<<2,this.outputBlocks=n>>5,this.extraBytes=(31&n)>>3;for(var r=0;r<50;++r)this.s[r]=0}function N(e,t,n){S.call(this,e,t,n)}S.prototype.update=function(e){if(this.finalized)throw new Error("finalize already called");var n,r=typeof e;if("string"!==r){if("object"!==r)throw new Error(t);if(null===e)throw new Error(t);if(o&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!(Array.isArray(e)||o&&ArrayBuffer.isView(e)))throw new Error(t);n=!0}for(var i,a,s=this.blocks,u=this.byteCount,l=e.length,d=this.blockCount,f=0,p=this.s;f<l;){if(this.reset)for(this.reset=!1,s[0]=this.block,i=1;i<d+1;++i)s[i]=0;if(n)for(i=this.start;f<l&&i<u;++f)s[i>>2]|=e[f]<<c[3&i++];else for(i=this.start;f<l&&i<u;++f)(a=e.charCodeAt(f))<128?s[i>>2]|=a<<c[3&i++]:a<2048?(s[i>>2]|=(192|a>>6)<<c[3&i++],s[i>>2]|=(128|63&a)<<c[3&i++]):a<55296||a>=57344?(s[i>>2]|=(224|a>>12)<<c[3&i++],s[i>>2]|=(128|a>>6&63)<<c[3&i++],s[i>>2]|=(128|63&a)<<c[3&i++]):(a=65536+((1023&a)<<10|1023&e.charCodeAt(++f)),s[i>>2]|=(240|a>>18)<<c[3&i++],s[i>>2]|=(128|a>>12&63)<<c[3&i++],s[i>>2]|=(128|a>>6&63)<<c[3&i++],s[i>>2]|=(128|63&a)<<c[3&i++]);if(this.lastByteIndex=i,i>=u){for(this.start=i-u,this.block=s[d],i=0;i<d;++i)p[i]^=s[i];x(p),this.reset=!0}else this.start=i}return this},S.prototype.encode=function(e,t){var n=255&e,r=1,i=[n];for(n=255&(e>>=8);n>0;)i.unshift(n),n=255&(e>>=8),++r;return t?i.push(r):i.unshift(r),this.update(i),i.length},S.prototype.encodeString=function(e){var n,r=typeof e;if("string"!==r){if("object"!==r)throw new Error(t);if(null===e)throw new Error(t);if(o&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!(Array.isArray(e)||o&&ArrayBuffer.isView(e)))throw new Error(t);n=!0}var i=0,a=e.length;if(n)i=a;else for(var s=0;s<e.length;++s){var u=e.charCodeAt(s);u<128?i+=1:u<2048?i+=2:u<55296||u>=57344?i+=3:(u=65536+((1023&u)<<10|1023&e.charCodeAt(++s)),i+=4)}return i+=this.encode(8*i),this.update(e),i},S.prototype.bytepad=function(e,t){for(var n=this.encode(t),r=0;r<e.length;++r)n+=this.encodeString(e[r]);var i=t-n%t,a=[];return a.length=i,this.update(a),this},S.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var e=this.blocks,t=this.lastByteIndex,n=this.blockCount,r=this.s;if(e[t>>2]|=this.padding[3&t],this.lastByteIndex===this.byteCount)for(e[0]=e[n],t=1;t<n+1;++t)e[t]=0;for(e[n-1]|=2147483648,t=0;t<n;++t)r[t]^=e[t];x(r)}},S.prototype.toString=S.prototype.hex=function(){this.finalize();for(var e,t=this.blockCount,n=this.s,r=this.outputBlocks,i=this.extraBytes,a=0,o=0,u="";o<r;){for(a=0;a<t&&o<r;++a,++o)e=n[a],u+=s[e>>4&15]+s[15&e]+s[e>>12&15]+s[e>>8&15]+s[e>>20&15]+s[e>>16&15]+s[e>>28&15]+s[e>>24&15];o%t==0&&(x(n),a=0)}return i&&(e=n[a],u+=s[e>>4&15]+s[15&e],i>1&&(u+=s[e>>12&15]+s[e>>8&15]),i>2&&(u+=s[e>>20&15]+s[e>>16&15])),u},S.prototype.arrayBuffer=function(){this.finalize();var e,t=this.blockCount,n=this.s,r=this.outputBlocks,i=this.extraBytes,a=0,o=0,s=this.outputBits>>3;e=i?new ArrayBuffer(r+1<<2):new ArrayBuffer(s);for(var u=new Uint32Array(e);o<r;){for(a=0;a<t&&o<r;++a,++o)u[o]=n[a];o%t==0&&x(n)}return i&&(u[a]=n[a],e=e.slice(0,s)),e},S.prototype.buffer=S.prototype.arrayBuffer,S.prototype.digest=S.prototype.array=function(){this.finalize();for(var e,t,n=this.blockCount,r=this.s,i=this.outputBlocks,a=this.extraBytes,o=0,s=0,u=[];s<i;){for(o=0;o<n&&s<i;++o,++s)e=s<<2,t=r[o],u[e]=255&t,u[e+1]=t>>8&255,u[e+2]=t>>16&255,u[e+3]=t>>24&255;s%n==0&&x(r)}return a&&(e=s<<2,t=r[o],u[e]=255&t,a>1&&(u[e+1]=t>>8&255),a>2&&(u[e+2]=t>>16&255)),u},N.prototype=new S,N.prototype.finalize=function(){return this.encode(this.outputBits,!0),S.prototype.finalize.call(this)};var x=function(e){var t,n,r,i,a,o,s,u,c,d,f,p,h,m,y,g,b,v,T,w,E,A,_,I,R,C,O,k,S,N,x,P,M,B,D,F,L,U,q,j,G,H,z,W,V,K,X,J,Y,Q,$,Z,ee,te,ne,re,ie,ae,oe,se,ue,ce,le;for(r=0;r<48;r+=2)i=e[0]^e[10]^e[20]^e[30]^e[40],a=e[1]^e[11]^e[21]^e[31]^e[41],o=e[2]^e[12]^e[22]^e[32]^e[42],s=e[3]^e[13]^e[23]^e[33]^e[43],u=e[4]^e[14]^e[24]^e[34]^e[44],c=e[5]^e[15]^e[25]^e[35]^e[45],d=e[6]^e[16]^e[26]^e[36]^e[46],f=e[7]^e[17]^e[27]^e[37]^e[47],t=(p=e[8]^e[18]^e[28]^e[38]^e[48])^(o<<1|s>>>31),n=(h=e[9]^e[19]^e[29]^e[39]^e[49])^(s<<1|o>>>31),e[0]^=t,e[1]^=n,e[10]^=t,e[11]^=n,e[20]^=t,e[21]^=n,e[30]^=t,e[31]^=n,e[40]^=t,e[41]^=n,t=i^(u<<1|c>>>31),n=a^(c<<1|u>>>31),e[2]^=t,e[3]^=n,e[12]^=t,e[13]^=n,e[22]^=t,e[23]^=n,e[32]^=t,e[33]^=n,e[42]^=t,e[43]^=n,t=o^(d<<1|f>>>31),n=s^(f<<1|d>>>31),e[4]^=t,e[5]^=n,e[14]^=t,e[15]^=n,e[24]^=t,e[25]^=n,e[34]^=t,e[35]^=n,e[44]^=t,e[45]^=n,t=u^(p<<1|h>>>31),n=c^(h<<1|p>>>31),e[6]^=t,e[7]^=n,e[16]^=t,e[17]^=n,e[26]^=t,e[27]^=n,e[36]^=t,e[37]^=n,e[46]^=t,e[47]^=n,t=d^(i<<1|a>>>31),n=f^(a<<1|i>>>31),e[8]^=t,e[9]^=n,e[18]^=t,e[19]^=n,e[28]^=t,e[29]^=n,e[38]^=t,e[39]^=n,e[48]^=t,e[49]^=n,m=e[0],y=e[1],K=e[11]<<4|e[10]>>>28,X=e[10]<<4|e[11]>>>28,k=e[20]<<3|e[21]>>>29,S=e[21]<<3|e[20]>>>29,se=e[31]<<9|e[30]>>>23,ue=e[30]<<9|e[31]>>>23,H=e[40]<<18|e[41]>>>14,z=e[41]<<18|e[40]>>>14,B=e[2]<<1|e[3]>>>31,D=e[3]<<1|e[2]>>>31,g=e[13]<<12|e[12]>>>20,b=e[12]<<12|e[13]>>>20,J=e[22]<<10|e[23]>>>22,Y=e[23]<<10|e[22]>>>22,N=e[33]<<13|e[32]>>>19,x=e[32]<<13|e[33]>>>19,ce=e[42]<<2|e[43]>>>30,le=e[43]<<2|e[42]>>>30,te=e[5]<<30|e[4]>>>2,ne=e[4]<<30|e[5]>>>2,F=e[14]<<6|e[15]>>>26,L=e[15]<<6|e[14]>>>26,v=e[25]<<11|e[24]>>>21,T=e[24]<<11|e[25]>>>21,Q=e[34]<<15|e[35]>>>17,$=e[35]<<15|e[34]>>>17,P=e[45]<<29|e[44]>>>3,M=e[44]<<29|e[45]>>>3,I=e[6]<<28|e[7]>>>4,R=e[7]<<28|e[6]>>>4,re=e[17]<<23|e[16]>>>9,ie=e[16]<<23|e[17]>>>9,U=e[26]<<25|e[27]>>>7,q=e[27]<<25|e[26]>>>7,w=e[36]<<21|e[37]>>>11,E=e[37]<<21|e[36]>>>11,Z=e[47]<<24|e[46]>>>8,ee=e[46]<<24|e[47]>>>8,W=e[8]<<27|e[9]>>>5,V=e[9]<<27|e[8]>>>5,C=e[18]<<20|e[19]>>>12,O=e[19]<<20|e[18]>>>12,ae=e[29]<<7|e[28]>>>25,oe=e[28]<<7|e[29]>>>25,j=e[38]<<8|e[39]>>>24,G=e[39]<<8|e[38]>>>24,A=e[48]<<14|e[49]>>>18,_=e[49]<<14|e[48]>>>18,e[0]=m^~g&v,e[1]=y^~b&T,e[10]=I^~C&k,e[11]=R^~O&S,e[20]=B^~F&U,e[21]=D^~L&q,e[30]=W^~K&J,e[31]=V^~X&Y,e[40]=te^~re&ae,e[41]=ne^~ie&oe,e[2]=g^~v&w,e[3]=b^~T&E,e[12]=C^~k&N,e[13]=O^~S&x,e[22]=F^~U&j,e[23]=L^~q&G,e[32]=K^~J&Q,e[33]=X^~Y&$,e[42]=re^~ae&se,e[43]=ie^~oe&ue,e[4]=v^~w&A,e[5]=T^~E&_,e[14]=k^~N&P,e[15]=S^~x&M,e[24]=U^~j&H,e[25]=q^~G&z,e[34]=J^~Q&Z,e[35]=Y^~$&ee,e[44]=ae^~se&ce,e[45]=oe^~ue&le,e[6]=w^~A&m,e[7]=E^~_&y,e[16]=N^~P&I,e[17]=x^~M&R,e[26]=j^~H&B,e[27]=G^~z&D,e[36]=Q^~Z&W,e[37]=$^~ee&V,e[46]=se^~ce&te,e[47]=ue^~le&ne,e[8]=A^~m&g,e[9]=_^~y&b,e[18]=P^~I&C,e[19]=M^~R&O,e[28]=H^~B&F,e[29]=z^~D&L,e[38]=Z^~W&K,e[39]=ee^~V&X,e[48]=ce^~te&re,e[49]=le^~ne&ie,e[0]^=l[r],e[1]^=l[r+1]};if(a)e.exports=E;else for(_=0;_<A.length;++_)r[A[_]]=E[A[_]]}()}(Mi);var Bi=Lt(Mi.exports);function Di(e){return"0x"+Bi.keccak_256(sr(e))}var Fi=Object.freeze({__proto__:null,keccak256:Di});const Li=new Zn("rlp/5.7.0");function Ui(e){const t=[];for(;e;)t.unshift(255&e),e>>=8;return t}function qi(e,t,n){let r=0;for(let i=0;i<n;i++)r=256*r+e[t+i];return r}function ji(e){if(Array.isArray(e)){let t=[];if(e.forEach((function(e){t=t.concat(ji(e))})),t.length<=55)return t.unshift(192+t.length),t;const n=Ui(t.length);return n.unshift(247+n.length),n.concat(t)}ir(e)||Li.throwArgumentError("RLP object must be BytesLike","object",e);const t=Array.prototype.slice.call(sr(e));if(1===t.length&&t[0]<=127)return t;if(t.length<=55)return t.unshift(128+t.length),t;const n=Ui(t.length);return n.unshift(183+n.length),n.concat(t)}function Gi(e){return pr(ji(e))}function Hi(e,t,n,r){const i=[];for(;n<t+1+r;){const a=zi(e,n);i.push(a.result),(n+=a.consumed)>t+1+r&&Li.throwError("child data too short",Zn.errors.BUFFER_OVERRUN,{})}return{consumed:1+r,result:i}}function zi(e,t){if(0===e.length&&Li.throwError("data too short",Zn.errors.BUFFER_OVERRUN,{}),e[t]>=248){const n=e[t]-247;t+1+n>e.length&&Li.throwError("data short segment too short",Zn.errors.BUFFER_OVERRUN,{});const r=qi(e,t+1,n);return t+1+n+r>e.length&&Li.throwError("data long segment too short",Zn.errors.BUFFER_OVERRUN,{}),Hi(e,t,t+1+n,n+r)}if(e[t]>=192){const n=e[t]-192;return t+1+n>e.length&&Li.throwError("data array too short",Zn.errors.BUFFER_OVERRUN,{}),Hi(e,t,t+1,n)}if(e[t]>=184){const n=e[t]-183;t+1+n>e.length&&Li.throwError("data array too short",Zn.errors.BUFFER_OVERRUN,{});const r=qi(e,t+1,n);t+1+n+r>e.length&&Li.throwError("data array too short",Zn.errors.BUFFER_OVERRUN,{});return{consumed:1+n+r,result:pr(e.slice(t+1+n,t+1+n+r))}}if(e[t]>=128){const n=e[t]-128;t+1+n>e.length&&Li.throwError("data too short",Zn.errors.BUFFER_OVERRUN,{});return{consumed:1+n,result:pr(e.slice(t+1,t+1+n))}}return{consumed:1,result:pr(e[t])}}function Wi(e){const t=sr(e),n=zi(t,0);return n.consumed!==t.length&&Li.throwArgumentError("invalid rlp data","data",e),n.result}var Vi=Object.freeze({__proto__:null,decode:Wi,encode:Gi});const Ki=new Zn("address/5.7.0");function Xi(e){dr(e,20)||Ki.throwArgumentError("invalid address","address",e);const t=(e=e.toLowerCase()).substring(2).split(""),n=new Uint8Array(40);for(let e=0;e<40;e++)n[e]=t[e].charCodeAt(0);const r=sr(Di(n));for(let e=0;e<40;e+=2)r[e>>1]>>4>=8&&(t[e]=t[e].toUpperCase()),(15&r[e>>1])>=8&&(t[e+1]=t[e+1].toUpperCase());return"0x"+t.join("")}const Ji={};for(let e=0;e<10;e++)Ji[String(e)]=String(e);for(let e=0;e<26;e++)Ji[String.fromCharCode(65+e)]=String(10+e);const Yi=Math.floor(function(e){return Math.log10?Math.log10(e):Math.log(e)/Math.LN10}(9007199254740991));function Qi(e){let t=(e=(e=e.toUpperCase()).substring(4)+e.substring(0,2)+"00").split("").map((e=>Ji[e])).join("");for(;t.length>=Yi;){let e=t.substring(0,Yi);t=parseInt(e,10)%97+t.substring(e.length)}let n=String(98-parseInt(t,10)%97);for(;n.length<2;)n="0"+n;return n}function $i(e){let t=null;if("string"!=typeof e&&Ki.throwArgumentError("invalid address","address",e),e.match(/^(0x)?[0-9a-fA-F]{40}$/))"0x"!==e.substring(0,2)&&(e="0x"+e),t=Xi(e),e.match(/([A-F].*[a-f])|([a-f].*[A-F])/)&&t!==e&&Ki.throwArgumentError("bad address checksum","address",e);else if(e.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)){for(e.substring(2,4)!==Qi(e)&&Ki.throwArgumentError("bad icap checksum","address",e),n=e.substring(4),t=new _r(n,36).toString(16);t.length<40;)t="0"+t;t=Xi("0x"+t)}else Ki.throwArgumentError("invalid address","address",e);var n;return t}function Zi(e){try{return $i(e),!0}catch(e){}return!1}function ea(e){let t=(n=$i(e).substring(2),new _r(n,16).toString(36)).toUpperCase();for(var n;t.length<30;)t="0"+t;return"XE"+Qi("XE00"+t)+t}function ta(e){let t=null;try{t=$i(e.from)}catch(t){Ki.throwArgumentError("missing from address","transaction",e)}return $i(mr(Di(Gi([t,cr(sr(kr.from(e.nonce).toHexString()))])),12))}function na(e,t,n){return 32!==hr(t)&&Ki.throwArgumentError("salt must be 32 bytes","salt",t),32!==hr(n)&&Ki.throwArgumentError("initCodeHash must be 32 bytes","initCodeHash",n),$i(mr(Di(ur(["0xff",$i(e),t,n])),12))}var ra=Object.freeze({__proto__:null,getAddress:$i,getContractAddress:ta,getCreate2Address:na,getIcapAddress:ea,isAddress:Zi});let ia=class extends xi{constructor(e){super("address","address",e,!1)}defaultValue(){return"0x0000000000000000000000000000000000000000"}encode(e,t){try{t=$i(t)}catch(e){this._throwError(e.message,t)}return e.writeValue(t)}decode(e){return $i(vr(e.readValue().toHexString(),20))}},aa=class extends xi{constructor(e){super(e.name,e.type,void 0,e.dynamic),this.coder=e}defaultValue(){return this.coder.defaultValue()}encode(e,t){return this.coder.encode(e,t)}decode(e){return this.coder.decode(e)}};const oa=new Zn(oi);function sa(e,t,n){let r=null;if(Array.isArray(n))r=n;else if(n&&"object"==typeof n){let e={};r=t.map((t=>{const r=t.localName;return r||oa.throwError("cannot encode object for signature with missing names",Zn.errors.INVALID_ARGUMENT,{argument:"values",coder:t,value:n}),e[r]&&oa.throwError("cannot encode object for signature with duplicate names",Zn.errors.INVALID_ARGUMENT,{argument:"values",coder:t,value:n}),e[r]=!0,n[r]}))}else oa.throwArgumentError("invalid tuple value","tuple",n);t.length!==r.length&&oa.throwArgumentError("types/value length mismatch","tuple",n);let i=new Pi(e.wordSize),a=new Pi(e.wordSize),o=[];t.forEach(((e,t)=>{let n=r[t];if(e.dynamic){let t=a.length;e.encode(a,n);let r=i.writeUpdatableValue();o.push((e=>{r(e+t)}))}else e.encode(i,n)})),o.forEach((e=>{e(i.length)}));let s=e.appendWriter(i);return s+=e.appendWriter(a),s}function ua(e,t){let n=[],r=e.subReader(0);t.forEach((t=>{let i=null;if(t.dynamic){let n=e.readValue(),a=r.subReader(n.toNumber());try{i=t.decode(a)}catch(e){if(e.code===Zn.errors.BUFFER_OVERRUN)throw e;i=e,i.baseType=t.name,i.name=t.localName,i.type=t.type}}else try{i=t.decode(e)}catch(e){if(e.code===Zn.errors.BUFFER_OVERRUN)throw e;i=e,i.baseType=t.name,i.name=t.localName,i.type=t.type}null!=i&&n.push(i)}));const i=t.reduce(((e,t)=>{const n=t.localName;return n&&(e[n]||(e[n]=0),e[n]++),e}),{});t.forEach(((e,t)=>{let r=e.localName;if(!r||1!==i[r])return;if("length"===r&&(r="_length"),null!=n[r])return;const a=n[t];a instanceof Error?Object.defineProperty(n,r,{enumerable:!0,get:()=>{throw a}}):n[r]=a}));for(let e=0;e<n.length;e++){const t=n[e];t instanceof Error&&Object.defineProperty(n,e,{enumerable:!0,get:()=>{throw t}})}return Object.freeze(n)}let ca=class extends xi{constructor(e,t,n){super("array",e.type+"["+(t>=0?t:"")+"]",n,-1===t||e.dynamic),this.coder=e,this.length=t}defaultValue(){const e=this.coder.defaultValue(),t=[];for(let n=0;n<this.length;n++)t.push(e);return t}encode(e,t){Array.isArray(t)||this._throwError("expected array value",t);let n=this.length;-1===n&&(n=t.length,e.writeValue(t.length)),oa.checkArgumentCount(t.length,n,"coder array"+(this.localName?" "+this.localName:""));let r=[];for(let e=0;e<t.length;e++)r.push(this.coder);return sa(e,r,t)}decode(e){let t=this.length;-1===t&&(t=e.readValue().toNumber(),32*t>e._data.length&&oa.throwError("insufficient data length",Zn.errors.BUFFER_OVERRUN,{length:e._data.length,count:t}));let n=[];for(let e=0;e<t;e++)n.push(new aa(this.coder));return e.coerce(this.name,ua(e,n))}},la=class extends xi{constructor(e){super("bool","bool",e,!1)}defaultValue(){return!1}encode(e,t){return e.writeValue(t?1:0)}decode(e){return e.coerce(this.type,!e.readValue().isZero())}},da=class extends xi{constructor(e,t){super(e,e,t,!0)}defaultValue(){return"0x"}encode(e,t){t=sr(t);let n=e.writeValue(t.length);return n+=e.writeBytes(t),n}decode(e){return e.readBytes(e.readValue().toNumber(),!0)}},fa=class extends da{constructor(e){super("bytes",e)}decode(e){return e.coerce(this.name,pr(super.decode(e)))}},pa=class extends xi{constructor(e,t){let n="bytes"+String(e);super(n,n,t,!1),this.size=e}defaultValue(){return"0x0000000000000000000000000000000000000000000000000000000000000000".substring(0,2+2*this.size)}encode(e,t){let n=sr(t);return n.length!==this.size&&this._throwError("incorrect data length",t),e.writeBytes(n)}decode(e){return e.coerce(this.name,pr(e.readBytes(this.size)))}},ha=class extends xi{constructor(e){super("null","",e,!1)}defaultValue(){return null}encode(e,t){return null!=t&&this._throwError("not null",t),e.writeBytes([])}decode(e){return e.readBytes(0),e.coerce(this.name,null)}};const ma="0x0000000000000000000000000000000000000000",ya=kr.from(-1),ga=kr.from(0),ba=kr.from(1),va=kr.from(2),Ta=kr.from("1000000000000000000"),wa=kr.from("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),Ea=kr.from("-0x8000000000000000000000000000000000000000000000000000000000000000"),Aa=kr.from("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),_a="0x0000000000000000000000000000000000000000000000000000000000000000";var Ia=Object.freeze({__proto__:null,AddressZero:ma,EtherSymbol:"Ξ",HashZero:_a,MaxInt256:Aa,MaxUint256:wa,MinInt256:Ea,NegativeOne:ya,One:ba,Two:va,WeiPerEther:Ta,Zero:ga});let Ra=class extends xi{constructor(e,t,n){const r=(t?"int":"uint")+8*e;super(r,r,n,!1),this.size=e,this.signed=t}defaultValue(){return 0}encode(e,t){let n=kr.from(t),r=wa.mask(8*e.wordSize);if(this.signed){let e=r.mask(8*this.size-1);(n.gt(e)||n.lt(e.add(ba).mul(ya)))&&this._throwError("value out-of-bounds",t)}else(n.lt(ga)||n.gt(r.mask(8*this.size)))&&this._throwError("value out-of-bounds",t);return n=n.toTwos(8*this.size).mask(8*this.size),this.signed&&(n=n.fromTwos(8*this.size).toTwos(8*e.wordSize)),e.writeValue(n)}decode(e){let t=e.readValue().mask(8*this.size);return this.signed&&(t=t.fromTwos(8*this.size)),e.coerce(this.name,t)}};const Ca=new Zn("strings/5.7.0");var Oa,ka;function Sa(e,t,n,r,i){if(e===ka.BAD_PREFIX||e===ka.UNEXPECTED_CONTINUE){let e=0;for(let r=t+1;r<n.length&&n[r]>>6==2;r++)e++;return e}return e===ka.OVERRUN?n.length-t-1:0}!function(e){e.current="",e.NFC="NFC",e.NFD="NFD",e.NFKC="NFKC",e.NFKD="NFKD"}(Oa||(Oa={})),function(e){e.UNEXPECTED_CONTINUE="unexpected continuation byte",e.BAD_PREFIX="bad codepoint prefix",e.OVERRUN="string overrun",e.MISSING_CONTINUE="missing continuation byte",e.OUT_OF_RANGE="out of UTF-8 range",e.UTF16_SURROGATE="UTF-16 surrogate",e.OVERLONG="overlong representation"}(ka||(ka={}));const Na=Object.freeze({error:function(e,t,n,r,i){return Ca.throwArgumentError(`invalid codepoint at offset ${t}; ${e}`,"bytes",n)},ignore:Sa,replace:function(e,t,n,r,i){return e===ka.OVERLONG?(r.push(i),0):(r.push(65533),Sa(e,t,n))}});function xa(e,t){null==t&&(t=Na.error),e=sr(e);const n=[];let r=0;for(;r<e.length;){const i=e[r++];if(i>>7==0){n.push(i);continue}let a=null,o=null;if(192==(224&i))a=1,o=127;else if(224==(240&i))a=2,o=2047;else{if(240!=(248&i)){r+=t(128==(192&i)?ka.UNEXPECTED_CONTINUE:ka.BAD_PREFIX,r-1,e,n);continue}a=3,o=65535}if(r-1+a>=e.length){r+=t(ka.OVERRUN,r-1,e,n);continue}let s=i&(1<<8-a-1)-1;for(let i=0;i<a;i++){let i=e[r];if(128!=(192&i)){r+=t(ka.MISSING_CONTINUE,r,e,n),s=null;break}s=s<<6|63&i,r++}null!==s&&(s>1114111?r+=t(ka.OUT_OF_RANGE,r-1-a,e,n,s):s>=55296&&s<=57343?r+=t(ka.UTF16_SURROGATE,r-1-a,e,n,s):s<=o?r+=t(ka.OVERLONG,r-1-a,e,n,s):n.push(s))}return n}function Pa(e,t=Oa.current){t!=Oa.current&&(Ca.checkNormalize(),e=e.normalize(t));let n=[];for(let t=0;t<e.length;t++){const r=e.charCodeAt(t);if(r<128)n.push(r);else if(r<2048)n.push(r>>6|192),n.push(63&r|128);else if(55296==(64512&r)){t++;const i=e.charCodeAt(t);if(t>=e.length||56320!=(64512&i))throw new Error("invalid utf-8 string");const a=65536+((1023&r)<<10)+(1023&i);n.push(a>>18|240),n.push(a>>12&63|128),n.push(a>>6&63|128),n.push(63&a|128)}else n.push(r>>12|224),n.push(r>>6&63|128),n.push(63&r|128)}return sr(n)}function Ma(e){const t="0000"+e.toString(16);return"\\u"+t.substring(t.length-4)}function Ba(e,t){return'"'+xa(e,t).map((e=>{if(e<256){switch(e){case 8:return"\\b";case 9:return"\\t";case 10:return"\\n";case 13:return"\\r";case 34:return'\\"';case 92:return"\\\\"}if(e>=32&&e<127)return String.fromCharCode(e)}return e<=65535?Ma(e):Ma(55296+((e-=65536)>>10&1023))+Ma(56320+(1023&e))})).join("")+'"'}function Da(e){return e.map((e=>e<=65535?String.fromCharCode(e):(e-=65536,String.fromCharCode(55296+(e>>10&1023),56320+(1023&e))))).join("")}function Fa(e,t){return Da(xa(e,t))}function La(e,t=Oa.current){return xa(Pa(e,t))}function Ua(e){const t=Pa(e);if(t.length>31)throw new Error("bytes32 string must be less than 32 bytes");return pr(ur([t,_a]).slice(0,32))}function qa(e){const t=sr(e);if(32!==t.length)throw new Error("invalid bytes32 - not 32 bytes long");if(0!==t[31])throw new Error("invalid bytes32 string - no null terminator");let n=31;for(;0===t[n-1];)n--;return Fa(t.slice(0,n))}function ja(e,t){t||(t=function(e){return[parseInt(e,16)]});let n=0,r={};return e.split(",").forEach((e=>{let i=e.split(":");n+=parseInt(i[0],16),r[n]=t(i[1])})),r}function Ga(e){let t=0;return e.split(",").map((e=>{let n=e.split("-");1===n.length?n[1]="0":""===n[1]&&(n[1]="1");let r=t+parseInt(n[0],16);return t=parseInt(n[1],16),{l:r,h:t}}))}function Ha(e,t){let n=0;for(let r=0;r<t.length;r++){let i=t[r];if(n+=i.l,e>=n&&e<=n+i.h&&(e-n)%(i.d||1)==0){if(i.e&&-1!==i.e.indexOf(e-n))continue;return i}}return null}const za=Ga("221,13-1b,5f-,40-10,51-f,11-3,3-3,2-2,2-4,8,2,15,2d,28-8,88,48,27-,3-5,11-20,27-,8,28,3-5,12,18,b-a,1c-4,6-16,2-d,2-2,2,1b-4,17-9,8f-,10,f,1f-2,1c-34,33-14e,4,36-,13-,6-2,1a-f,4,9-,3-,17,8,2-2,5-,2,8-,3-,4-8,2-3,3,6-,16-6,2-,7-3,3-,17,8,3,3,3-,2,6-3,3-,4-a,5,2-6,10-b,4,8,2,4,17,8,3,6-,b,4,4-,2-e,2-4,b-10,4,9-,3-,17,8,3-,5-,9-2,3-,4-7,3-3,3,4-3,c-10,3,7-2,4,5-2,3,2,3-2,3-2,4-2,9,4-3,6-2,4,5-8,2-e,d-d,4,9,4,18,b,6-3,8,4,5-6,3-8,3-3,b-11,3,9,4,18,b,6-3,8,4,5-6,3-6,2,3-3,b-11,3,9,4,18,11-3,7-,4,5-8,2-7,3-3,b-11,3,13-2,19,a,2-,8-2,2-3,7,2,9-11,4-b,3b-3,1e-24,3,2-,3,2-,2-5,5,8,4,2,2-,3,e,4-,6,2,7-,b-,3-21,49,23-5,1c-3,9,25,10-,2-2f,23,6,3,8-2,5-5,1b-45,27-9,2a-,2-3,5b-4,45-4,53-5,8,40,2,5-,8,2,5-,28,2,5-,20,2,5-,8,2,5-,8,8,18,20,2,5-,8,28,14-5,1d-22,56-b,277-8,1e-2,52-e,e,8-a,18-8,15-b,e,4,3-b,5e-2,b-15,10,b-5,59-7,2b-555,9d-3,5b-5,17-,7-,27-,7-,9,2,2,2,20-,36,10,f-,7,14-,4,a,54-3,2-6,6-5,9-,1c-10,13-1d,1c-14,3c-,10-6,32-b,240-30,28-18,c-14,a0,115-,3,66-,b-76,5,5-,1d,24,2,5-2,2,8-,35-2,19,f-10,1d-3,311-37f,1b,5a-b,d7-19,d-3,41,57-,68-4,29-3,5f,29-37,2e-2,25-c,2c-2,4e-3,30,78-3,64-,20,19b7-49,51a7-59,48e-2,38-738,2ba5-5b,222f-,3c-94,8-b,6-4,1b,6,2,3,3,6d-20,16e-f,41-,37-7,2e-2,11-f,5-b,18-,b,14,5-3,6,88-,2,bf-2,7-,7-,7-,4-2,8,8-9,8-2ff,20,5-b,1c-b4,27-,27-cbb1,f7-9,28-2,b5-221,56,48,3-,2-,3-,5,d,2,5,3,42,5-,9,8,1d,5,6,2-2,8,153-3,123-3,33-27fd,a6da-5128,21f-5df,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3,2-1d,61-ff7d"),Wa="ad,34f,1806,180b,180c,180d,200b,200c,200d,2060,feff".split(",").map((e=>parseInt(e,16))),Va=[{h:25,s:32,l:65},{h:30,s:32,e:[23],l:127},{h:54,s:1,e:[48],l:64,d:2},{h:14,s:1,l:57,d:2},{h:44,s:1,l:17,d:2},{h:10,s:1,e:[2,6,8],l:61,d:2},{h:16,s:1,l:68,d:2},{h:84,s:1,e:[18,24,66],l:19,d:2},{h:26,s:32,e:[17],l:435},{h:22,s:1,l:71,d:2},{h:15,s:80,l:40},{h:31,s:32,l:16},{h:32,s:1,l:80,d:2},{h:52,s:1,l:42,d:2},{h:12,s:1,l:55,d:2},{h:40,s:1,e:[38],l:15,d:2},{h:14,s:1,l:48,d:2},{h:37,s:48,l:49},{h:148,s:1,l:6351,d:2},{h:88,s:1,l:160,d:2},{h:15,s:16,l:704},{h:25,s:26,l:854},{h:25,s:32,l:55915},{h:37,s:40,l:1247},{h:25,s:-119711,l:53248},{h:25,s:-119763,l:52},{h:25,s:-119815,l:52},{h:25,s:-119867,e:[1,4,5,7,8,11,12,17],l:52},{h:25,s:-119919,l:52},{h:24,s:-119971,e:[2,7,8,17],l:52},{h:24,s:-120023,e:[2,7,13,15,16,17],l:52},{h:25,s:-120075,l:52},{h:25,s:-120127,l:52},{h:25,s:-120179,l:52},{h:25,s:-120231,l:52},{h:25,s:-120283,l:52},{h:25,s:-120335,l:52},{h:24,s:-119543,e:[17],l:56},{h:24,s:-119601,e:[17],l:58},{h:24,s:-119659,e:[17],l:58},{h:24,s:-119717,e:[17],l:58},{h:24,s:-119775,e:[17],l:58}],Ka=ja("b5:3bc,c3:ff,7:73,2:253,5:254,3:256,1:257,5:259,1:25b,3:260,1:263,2:269,1:268,5:26f,1:272,2:275,7:280,3:283,5:288,3:28a,1:28b,5:292,3f:195,1:1bf,29:19e,125:3b9,8b:3b2,1:3b8,1:3c5,3:3c6,1:3c0,1a:3ba,1:3c1,1:3c3,2:3b8,1:3b5,1bc9:3b9,1c:1f76,1:1f77,f:1f7a,1:1f7b,d:1f78,1:1f79,1:1f7c,1:1f7d,107:63,5:25b,4:68,1:68,1:68,3:69,1:69,1:6c,3:6e,4:70,1:71,1:72,1:72,1:72,7:7a,2:3c9,2:7a,2:6b,1:e5,1:62,1:63,3:65,1:66,2:6d,b:3b3,1:3c0,6:64,1b574:3b8,1a:3c3,20:3b8,1a:3c3,20:3b8,1a:3c3,20:3b8,1a:3c3,20:3b8,1a:3c3"),Xa=ja("179:1,2:1,2:1,5:1,2:1,a:4f,a:1,8:1,2:1,2:1,3:1,5:1,3:1,4:1,2:1,3:1,4:1,8:2,1:1,2:2,1:1,2:2,27:2,195:26,2:25,1:25,1:25,2:40,2:3f,1:3f,33:1,11:-6,1:-9,1ac7:-3a,6d:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,b:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,c:-8,2:-8,2:-8,2:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,49:-8,1:-8,1:-4a,1:-4a,d:-56,1:-56,1:-56,1:-56,d:-8,1:-8,f:-8,1:-8,3:-7"),Ja=ja("df:00730073,51:00690307,19:02BC006E,a7:006A030C,18a:002003B9,16:03B903080301,20:03C503080301,1d7:05650582,190f:00680331,1:00740308,1:0077030A,1:0079030A,1:006102BE,b6:03C50313,2:03C503130300,2:03C503130301,2:03C503130342,2a:1F0003B9,1:1F0103B9,1:1F0203B9,1:1F0303B9,1:1F0403B9,1:1F0503B9,1:1F0603B9,1:1F0703B9,1:1F0003B9,1:1F0103B9,1:1F0203B9,1:1F0303B9,1:1F0403B9,1:1F0503B9,1:1F0603B9,1:1F0703B9,1:1F2003B9,1:1F2103B9,1:1F2203B9,1:1F2303B9,1:1F2403B9,1:1F2503B9,1:1F2603B9,1:1F2703B9,1:1F2003B9,1:1F2103B9,1:1F2203B9,1:1F2303B9,1:1F2403B9,1:1F2503B9,1:1F2603B9,1:1F2703B9,1:1F6003B9,1:1F6103B9,1:1F6203B9,1:1F6303B9,1:1F6403B9,1:1F6503B9,1:1F6603B9,1:1F6703B9,1:1F6003B9,1:1F6103B9,1:1F6203B9,1:1F6303B9,1:1F6403B9,1:1F6503B9,1:1F6603B9,1:1F6703B9,3:1F7003B9,1:03B103B9,1:03AC03B9,2:03B10342,1:03B1034203B9,5:03B103B9,6:1F7403B9,1:03B703B9,1:03AE03B9,2:03B70342,1:03B7034203B9,5:03B703B9,6:03B903080300,1:03B903080301,3:03B90342,1:03B903080342,b:03C503080300,1:03C503080301,1:03C10313,2:03C50342,1:03C503080342,b:1F7C03B9,1:03C903B9,1:03CE03B9,2:03C90342,1:03C9034203B9,5:03C903B9,ac:00720073,5b:00B00063,6:00B00066,d:006E006F,a:0073006D,1:00740065006C,1:0074006D,124f:006800700061,2:00610075,2:006F0076,b:00700061,1:006E0061,1:03BC0061,1:006D0061,1:006B0061,1:006B0062,1:006D0062,1:00670062,3:00700066,1:006E0066,1:03BC0066,4:0068007A,1:006B0068007A,1:006D0068007A,1:00670068007A,1:00740068007A,15:00700061,1:006B00700061,1:006D00700061,1:006700700061,8:00700076,1:006E0076,1:03BC0076,1:006D0076,1:006B0076,1:006D0076,1:00700077,1:006E0077,1:03BC0077,1:006D0077,1:006B0077,1:006D0077,1:006B03C9,1:006D03C9,2:00620071,3:00632215006B0067,1:0063006F002E,1:00640062,1:00670079,2:00680070,2:006B006B,1:006B006D,9:00700068,2:00700070006D,1:00700072,2:00730076,1:00770062,c723:00660066,1:00660069,1:0066006C,1:006600660069,1:00660066006C,1:00730074,1:00730074,d:05740576,1:05740565,1:0574056B,1:057E0576,1:0574056D",(function(e){if(e.length%4!=0)throw new Error("bad data");let t=[];for(let n=0;n<e.length;n+=4)t.push(parseInt(e.substring(n,n+4),16));return t})),Ya=Ga("80-20,2a0-,39c,32,f71,18e,7f2-f,19-7,30-4,7-5,f81-b,5,a800-20ff,4d1-1f,110,fa-6,d174-7,2e84-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,2,1f-5f,ff7f-20001");function Qa(e){if(e.match(/^[a-z0-9-]*$/i)&&e.length<=59)return e.toLowerCase();let t=La(e);var n;n=t.map((e=>{if(Wa.indexOf(e)>=0)return[];if(e>=65024&&e<=65039)return[];let t=function(e){let t=Ha(e,Va);if(t)return[e+t.s];let n=Ka[e];if(n)return n;let r=Xa[e];return r?[e+r[0]]:Ja[e]||null}(e);return t||[e]})),t=n.reduce(((e,t)=>(t.forEach((t=>{e.push(t)})),e)),[]),t=La(Da(t),Oa.NFKC),t.forEach((e=>{if(Ha(e,Ya))throw new Error("STRINGPREP_CONTAINS_PROHIBITED")})),t.forEach((e=>{if(Ha(e,za))throw new Error("STRINGPREP_CONTAINS_UNASSIGNED")}));let r=Da(t);if("-"===r.substring(0,1)||"--"===r.substring(2,4)||"-"===r.substring(r.length-1))throw new Error("invalid hyphen");return r}var $a=Object.freeze({__proto__:null,get UnicodeNormalizationForm(){return Oa},Utf8ErrorFuncs:Na,get Utf8ErrorReason(){return ka},_toEscapedUtf8String:Ba,formatBytes32String:Ua,nameprep:Qa,parseBytes32String:qa,toUtf8Bytes:Pa,toUtf8CodePoints:La,toUtf8String:Fa});let Za=class extends da{constructor(e){super("string",e)}defaultValue(){return""}encode(e,t){return super.encode(e,Pa(t))}decode(e){return Fa(super.decode(e))}},eo=class extends xi{constructor(e,t){let n=!1;const r=[];e.forEach((e=>{e.dynamic&&(n=!0),r.push(e.type)}));super("tuple","tuple("+r.join(",")+")",t,n),this.coders=e}defaultValue(){const e=[];this.coders.forEach((t=>{e.push(t.defaultValue())}));const t=this.coders.reduce(((e,t)=>{const n=t.localName;return n&&(e[n]||(e[n]=0),e[n]++),e}),{});return this.coders.forEach(((n,r)=>{let i=n.localName;i&&1===t[i]&&("length"===i&&(i="_length"),null==e[i]&&(e[i]=e[r]))})),Object.freeze(e)}encode(e,t){return sa(e,this.coders,t)}decode(e){return e.coerce(this.name,ua(e,this.coders))}};const to=new Zn(oi),no=new RegExp(/^bytes([0-9]*)$/),ro=new RegExp(/^(u?int)([0-9]*)$/);let io=class{constructor(e){Jr(this,"coerceFunc",e||null)}_getCoder(e){switch(e.baseType){case"address":return new ia(e.name);case"bool":return new la(e.name);case"string":return new Za(e.name);case"bytes":return new fa(e.name);case"array":return new ca(this._getCoder(e.arrayChildren),e.arrayLength,e.name);case"tuple":return new eo((e.components||[]).map((e=>this._getCoder(e))),e.name);case"":return new ha(e.name)}let t=e.type.match(ro);if(t){let n=parseInt(t[2]||"256");return(0===n||n>256||n%8!=0)&&to.throwArgumentError("invalid "+t[1]+" bit length","param",e),new Ra(n/8,"int"===t[1],e.name)}if(t=e.type.match(no),t){let n=parseInt(t[1]);return(0===n||n>32)&&to.throwArgumentError("invalid bytes length","param",e),new pa(n,e.name)}return to.throwArgumentError("invalid type","type",e.type)}_getWordSize(){return 32}_getReader(e,t){return new class e{constructor(e,t,n,r){Jr(this,"_data",sr(e)),Jr(this,"wordSize",t||32),Jr(this,"_coerceFunc",n),Jr(this,"allowLoose",r),this._offset=0}get data(){return pr(this._data)}get consumed(){return this._offset}static coerce(e,t){let n=e.match("^u?int([0-9]+)$");return n&&parseInt(n[1])<=48&&(t=t.toNumber()),t}coerce(t,n){return this._coerceFunc?this._coerceFunc(t,n):e.coerce(t,n)}_peekBytes(e,t,n){let r=Math.ceil(t/this.wordSize)*this.wordSize;return this._offset+r>this._data.length&&(this.allowLoose&&n&&this._offset+t<=this._data.length?r=t:Si.throwError("data out-of-bounds",Zn.errors.BUFFER_OVERRUN,{length:this._data.length,offset:this._offset+r})),this._data.slice(this._offset,this._offset+r)}subReader(t){return new e(this._data.slice(this._offset+t),this.wordSize,this._coerceFunc,this.allowLoose)}readBytes(e,t){let n=this._peekBytes(0,e,!!t);return this._offset+=n.length,n.slice(0,e)}readValue(){return kr.from(this.readBytes(this.wordSize))}}(e,this._getWordSize(),this.coerceFunc,t)}_getWriter(){return new Pi(this._getWordSize())}getDefaultValue(e){const t=e.map((e=>this._getCoder(mi.from(e))));return new eo(t,"_").defaultValue()}encode(e,t){e.length!==t.length&&to.throwError("types/values length mismatch",Zn.errors.INVALID_ARGUMENT,{count:{types:e.length,values:t.length},value:{types:e,values:t}});const n=e.map((e=>this._getCoder(mi.from(e)))),r=new eo(n,"_"),i=this._getWriter();return r.encode(i,t),i.data}decode(e,t,n){const r=e.map((e=>this._getCoder(mi.from(e))));return new eo(r,"_").decode(this._getReader(sr(t),n))}};const ao=new io;function oo(e){return Di(Pa(e))}const so="hash/5.7.0";function uo(e){e=atob(e);const t=[];for(let n=0;n<e.length;n++)t.push(e.charCodeAt(n));return sr(t)}function co(e){e=sr(e);let t="";for(let n=0;n<e.length;n++)t+=String.fromCharCode(e[n]);return btoa(t)}var lo=Object.freeze({__proto__:null,decode:uo,encode:co});function fo(e,t){null==t&&(t=1);const n=[],r=n.forEach,i=function(e,t){r.call(e,(function(e){t>0&&Array.isArray(e)?i(e,t-1):n.push(e)}))};return i(e,t),n}function po(e){return function(e){let t=0;return()=>e[t++]}(function(e){let t=0;function n(){return e[t++]<<8|e[t++]}let r=n(),i=1,a=[0,1];for(let e=1;e<r;e++)a.push(i+=n());let o=n(),s=t;t+=o;let u=0,c=0;function l(){return 0==u&&(c=c<<8|e[t++],u=8),c>>--u&1}const d=Math.pow(2,31),f=d>>>1,p=f>>1,h=d-1;let m=0;for(let e=0;e<31;e++)m=m<<1|l();let y=[],g=0,b=d;for(;;){let e=Math.floor(((m-g+1)*i-1)/b),t=0,n=r;for(;n-t>1;){let r=t+n>>>1;e<a[r]?n=r:t=r}if(0==t)break;y.push(t);let o=g+Math.floor(b*a[t]/i),s=g+Math.floor(b*a[t+1]/i)-1;for(;0==((o^s)&f);)m=m<<1&h|l(),o=o<<1&h,s=s<<1&h|1;for(;o&~s&p;)m=m&f|m<<1&h>>>1|l(),o=o<<1^f,s=(s^f)<<1|f|1;g=o,b=1+s-o}let v=r-4;return y.map((t=>{switch(t-v){case 3:return v+65792+(e[s++]<<16|e[s++]<<8|e[s++]);case 2:return v+256+(e[s++]<<8|e[s++]);case 1:return v+e[s++];default:return t-1}}))}(e))}function ho(e){return 1&e?~e>>1:e>>1}function mo(e,t){let n=Array(e);for(let r=0,i=-1;r<e;r++)n[r]=i+=1+t();return n}function yo(e,t){let n=Array(e);for(let r=0,i=0;r<e;r++)n[r]=i+=ho(t());return n}function go(e,t){let n=mo(e(),e),r=e(),i=mo(r,e),a=function(e,t){let n=Array(e);for(let r=0;r<e;r++)n[r]=1+t();return n}(r,e);for(let e=0;e<r;e++)for(let t=0;t<a[e];t++)n.push(i[e]+t);return t?n.map((e=>t[e])):n}function bo(e,t,n){let r=Array(e).fill(void 0).map((()=>[]));for(let i=0;i<t;i++)yo(e,n).forEach(((e,t)=>r[t].push(e)));return r}function vo(e,t){let n=1+t(),r=t(),i=function(e){let t=[];for(;;){let n=e();if(0==n)break;t.push(n)}return t}(t);return fo(bo(i.length,1+e,t).map(((e,t)=>{const a=e[0],o=e.slice(1);return Array(i[t]).fill(void 0).map(((e,t)=>{let i=t*r;return[a+t*n,o.map((e=>e+i))]}))})))}function To(e,t){return bo(1+t(),1+e,t).map((e=>[e[0],e.slice(1)]))}const wo=po(uo("AEQF2AO2DEsA2wIrAGsBRABxAN8AZwCcAEwAqgA0AGwAUgByADcATAAVAFYAIQAyACEAKAAYAFgAGwAjABQAMAAmADIAFAAfABQAKwATACoADgAbAA8AHQAYABoAGQAxADgALAAoADwAEwA9ABMAGgARAA4ADwAWABMAFgAIAA8AHgQXBYMA5BHJAS8JtAYoAe4AExozi0UAH21tAaMnBT8CrnIyhrMDhRgDygIBUAEHcoFHUPe8AXBjAewCjgDQR8IICIcEcQLwATXCDgzvHwBmBoHNAqsBdBcUAykgDhAMShskMgo8AY8jqAQfAUAfHw8BDw87MioGlCIPBwZCa4ELatMAAMspJVgsDl8AIhckSg8XAHdvTwBcIQEiDT4OPhUqbyECAEoAS34Aej8Ybx83JgT/Xw8gHxZ/7w8RICxPHA9vBw+Pfw8PHwAPFv+fAsAvCc8vEr8ivwD/EQ8Bol8OEBa/A78hrwAPCU8vESNvvwWfHwNfAVoDHr+ZAAED34YaAdJPAK7PLwSEgDLHAGo1Pz8Pvx9fUwMrpb8O/58VTzAPIBoXIyQJNF8hpwIVAT8YGAUADDNBaX3RAMomJCg9EhUeA29MABsZBTMNJipjOhc19gcIDR8bBwQHEggCWi6DIgLuAQYA+BAFCha3A5XiAEsqM7UFFgFLhAMjFTMYE1Klnw74nRVBG/ASCm0BYRN/BrsU3VoWy+S0vV8LQx+vN8gF2AC2AK5EAWwApgYDKmAAroQ0NDQ0AT+OCg7wAAIHRAbpNgVcBV0APTA5BfbPFgMLzcYL/QqqA82eBALKCjQCjqYCht0/k2+OAsXQAoP3ASTKDgDw6ACKAUYCMpIKJpRaAE4A5womABzZvs0REEKiACIQAd5QdAECAj4Ywg/wGqY2AVgAYADYvAoCGAEubA0gvAY2ALAAbpbvqpyEAGAEpgQAJgAG7gAgAEACmghUFwCqAMpAINQIwC4DthRAAPcycKgApoIdABwBfCisABoATwBqASIAvhnSBP8aH/ECeAKXAq40NjgDBTwFYQU6AXs3oABgAD4XNgmcCY1eCl5tIFZeUqGgyoNHABgAEQAaABNwWQAmABMATPMa3T34ADldyprmM1M2XociUQgLzvwAXT3xABgAEQAaABNwIGFAnADD8AAgAD4BBJWzaCcIAIEBFMAWwKoAAdq9BWAF5wLQpALEtQAKUSGkahR4GnJM+gsAwCgeFAiUAECQ0BQuL8AAIAAAADKeIheclvFqQAAETr4iAMxIARMgAMIoHhQIAn0E0pDQFC4HhznoAAAAIAI2C0/4lvFqQAAETgBJJwYCAy4ABgYAFAA8MBKYEH4eRhTkAjYeFcgACAYAeABsOqyQ5gRwDayqugEgaIIAtgoACgDmEABmBAWGme5OBJJA2m4cDeoAmITWAXwrMgOgAGwBCh6CBXYF1Tzg1wKAAFdiuABRAFwAXQBsAG8AdgBrAHYAbwCEAHEwfxQBVE5TEQADVFhTBwBDANILAqcCzgLTApQCrQL6vAAMAL8APLhNBKkE6glGKTAU4Dr4N2EYEwBCkABKk8rHAbYBmwIoAiU4Ajf/Aq4CowCAANIChzgaNBsCsTgeODcFXrgClQKdAqQBiQGYAqsCsjTsNHsfNPA0ixsAWTWiOAMFPDQSNCk2BDZHNow2TTZUNhk28Jk9VzI3QkEoAoICoQKwAqcAQAAxBV4FXbS9BW47YkIXP1ciUqs05DS/FwABUwJW11e6nHuYZmSh/RAYA8oMKvZ8KASoUAJYWAJ6ILAsAZSoqjpgA0ocBIhmDgDWAAawRDQoAAcuAj5iAHABZiR2AIgiHgCaAU68ACxuHAG0ygM8MiZIAlgBdF4GagJqAPZOHAMuBgoATkYAsABiAHgAMLoGDPj0HpKEBAAOJgAuALggTAHWAeAMEDbd20Uege0ADwAWADkAQgA9OHd+2MUQZBBhBgNNDkxxPxUQArEPqwvqERoM1irQ090ANK4H8ANYB/ADWANYB/AH8ANYB/ADWANYA1gDWBwP8B/YxRBkD00EcgWTBZAE2wiIJk4RhgctCNdUEnQjHEwDSgEBIypJITuYMxAlR0wRTQgIATZHbKx9PQNMMbBU+pCnA9AyVDlxBgMedhKlAC8PeCE1uk6DekxxpQpQT7NX9wBFBgASqwAS5gBJDSgAUCwGPQBI4zTYABNGAE2bAE3KAExdGABKaAbgAFBXAFCOAFBJABI2SWdObALDOq0//QomCZhvwHdTBkIQHCemEPgMNAG2ATwN7kvZBPIGPATKH34ZGg/OlZ0Ipi3eDO4m5C6igFsj9iqEBe5L9TzeC05RaQ9aC2YJ5DpkgU8DIgEOIowK3g06CG4Q9ArKbA3mEUYHOgPWSZsApgcCCxIdNhW2JhFirQsKOXgG/Br3C5AmsBMqev0F1BoiBk4BKhsAANAu6IWxWjJcHU9gBgQLJiPIFKlQIQ0mQLh4SRocBxYlqgKSQ3FKiFE3HpQh9zw+DWcuFFF9B/Y8BhlQC4I8n0asRQ8R0z6OPUkiSkwtBDaALDAnjAnQD4YMunxzAVoJIgmyDHITMhEYN8YIOgcaLpclJxYIIkaWYJsE+KAD9BPSAwwFQAlCBxQDthwuEy8VKgUOgSXYAvQ21i60ApBWgQEYBcwPJh/gEFFH4Q7qCJwCZgOEJewALhUiABginAhEZABgj9lTBi7MCMhqbSN1A2gU6GIRdAeSDlgHqBw0FcAc4nDJXgyGCSiksAlcAXYJmgFgBOQICjVcjKEgQmdUi1kYnCBiQUBd/QIyDGYVoES+h3kCjA9sEhwBNgF0BzoNAgJ4Ee4RbBCWCOyGBTW2M/k6JgRQIYQgEgooA1BszwsoJvoM+WoBpBJjAw00PnfvZ6xgtyUX/gcaMsZBYSHyC5NPzgydGsIYQ1QvGeUHwAP0GvQn60FYBgADpAQUOk4z7wS+C2oIjAlAAEoOpBgH2BhrCnKM0QEyjAG4mgNYkoQCcJAGOAcMAGgMiAV65gAeAqgIpAAGANADWAA6Aq4HngAaAIZCAT4DKDABIuYCkAOUCDLMAZYwAfQqBBzEDBYA+DhuSwLDsgKAa2ajBd5ZAo8CSjYBTiYEBk9IUgOwcuIA3ABMBhTgSAEWrEvMG+REAeBwLADIAPwABjYHBkIBzgH0bgC4AWALMgmjtLYBTuoqAIQAFmwB2AKKAN4ANgCA8gFUAE4FWvoF1AJQSgESMhksWGIBvAMgATQBDgB6BsyOpsoIIARuB9QCEBwV4gLvLwe2AgMi4BPOQsYCvd9WADIXUu5eZwqoCqdeaAC0YTQHMnM9UQAPH6k+yAdy/BZIiQImSwBQ5gBQQzSaNTFWSTYBpwGqKQK38AFtqwBI/wK37gK3rQK3sAK6280C0gK33AK3zxAAUEIAUD9SklKDArekArw5AEQAzAHCO147WTteO1k7XjtZO147WTteO1kDmChYI03AVU0oJqkKbV9GYewMpw3VRMk6ShPcYFJgMxPJLbgUwhXPJVcZPhq9JwYl5VUKDwUt1GYxCC00dhe9AEApaYNCY4ceMQpMHOhTklT5LRwAskujM7ANrRsWREEFSHXuYisWDwojAmSCAmJDXE6wXDchAqH4AmiZAmYKAp+FOBwMAmY8AmYnBG8EgAN/FAN+kzkHOXgYOYM6JCQCbB4CMjc4CwJtyAJtr/CLADRoRiwBaADfAOIASwYHmQyOAP8MwwAOtgJ3MAJ2o0ACeUxEAni7Hl3cRa9G9AJ8QAJ6yQJ9CgJ88UgBSH5kJQAsFklZSlwWGErNAtECAtDNSygDiFADh+dExpEzAvKiXQQDA69Lz0wuJgTQTU1NsAKLQAKK2cIcCB5EaAa4Ao44Ao5dQZiCAo7aAo5deVG1UzYLUtVUhgKT/AKTDQDqAB1VH1WwVdEHLBwplocy4nhnRTw6ApegAu+zWCKpAFomApaQApZ9nQCqWa1aCoJOADwClrYClk9cRVzSApnMApllXMtdCBoCnJw5wzqeApwXAp+cAp65iwAeEDIrEAKd8gKekwC2PmE1YfACntQCoG8BqgKeoCACnk+mY8lkKCYsAiewAiZ/AqD8AqBN2AKmMAKlzwKoAAB+AqfzaH1osgAESmodatICrOQCrK8CrWgCrQMCVx4CVd0CseLYAx9PbJgCsr4OArLpGGzhbWRtSWADJc4Ctl08QG6RAylGArhfArlIFgK5K3hwN3DiAr0aAy2zAzISAr6JcgMDM3ICvhtzI3NQAsPMAsMFc4N0TDZGdOEDPKgDPJsDPcACxX0CxkgCxhGKAshqUgLIRQLJUALJLwJkngLd03h6YniveSZL0QMYpGcDAmH1GfSVJXsMXpNevBICz2wCz20wTFTT9BSgAMeuAs90ASrrA04TfkwGAtwoAtuLAtJQA1JdA1NgAQIDVY2AikABzBfuYUZ2AILPg44C2sgC2d+EEYRKpz0DhqYAMANkD4ZyWvoAVgLfZgLeuXR4AuIw7RUB8zEoAfScAfLTiALr9ALpcXoAAur6AurlAPpIAboC7ooC652Wq5cEAu5AA4XhmHpw4XGiAvMEAGoDjheZlAL3FAORbwOSiAL3mQL52gL4Z5odmqy8OJsfA52EAv77ARwAOp8dn7QDBY4DpmsDptoA0sYDBmuhiaIGCgMMSgFgASACtgNGAJwEgLpoBgC8BGzAEowcggCEDC6kdjoAJAM0C5IKRoABZCgiAIzw3AYBLACkfng9ogigkgNmWAN6AEQCvrkEVqTGAwCsBRbAA+4iQkMCHR072jI2PTbUNsk2RjY5NvA23TZKNiU3EDcZN5I+RTxDRTBCJkK5VBYKFhZfwQCWygU3AJBRHpu+OytgNxa61A40GMsYjsn7BVwFXQVcBV0FaAVdBVwFXQVcBV0FXAVdBVwFXUsaCNyKAK4AAQUHBwKU7oICoW1e7jAEzgPxA+YDwgCkBFDAwADABKzAAOxFLhitA1UFTDeyPkM+bj51QkRCuwTQWWQ8X+0AWBYzsACNA8xwzAGm7EZ/QisoCTAbLDs6fnLfb8H2GccsbgFw13M1HAVkBW/Jxsm9CNRO8E8FDD0FBQw9FkcClOYCoMFegpDfADgcMiA2AJQACB8AsigKAIzIEAJKeBIApY5yPZQIAKQiHb4fvj5BKSRPQrZCOz0oXyxgOywfKAnGbgMClQaCAkILXgdeCD9IIGUgQj5fPoY+dT52Ao5CM0dAX9BTVG9SDzFwWTQAbxBzJF/lOEIQQglCCkKJIAls5AcClQICoKPMODEFxhi6KSAbiyfIRrMjtCgdWCAkPlFBIitCsEJRzAbMAV/OEyQzDg0OAQQEJ36i328/Mk9AybDJsQlq3tDRApUKAkFzXf1d/j9uALYP6hCoFgCTGD8kPsFKQiobrm0+zj0KSD8kPnVCRBwMDyJRTHFgMTJa5rwXQiQ2YfI/JD7BMEJEHGINTw4TOFlIRzwJO0icMQpyPyQ+wzJCRBv6DVgnKB01NgUKj2bwYzMqCoBkznBgEF+zYDIocwRIX+NgHj4HICNfh2C4CwdwFWpTG/lgUhYGAwRfv2Ts8mAaXzVgml/XYIJfuWC4HI1gUF9pYJZgMR6ilQHMAOwLAlDRefC0in4AXAEJA6PjCwc0IamOANMMCAECRQDFNRTZBgd+CwQlRA+r6+gLBDEFBnwUBXgKATIArwAGRAAHA3cDdAN2A3kDdwN9A3oDdQN7A30DfAN4A3oDfQAYEAAlAtYASwMAUAFsAHcKAHcAmgB3AHUAdQB2AHVu8UgAygDAAHcAdQB1AHYAdQALCgB3AAsAmgB3AAsCOwB3AAtu8UgAygDAAHgKAJoAdwB3AHUAdQB2AHUAeAB1AHUAdgB1bvFIAMoAwAALCgCaAHcACwB3AAsCOwB3AAtu8UgAygDAAH4ACwGgALcBpwC6AahdAu0COwLtbvFIAMoAwAALCgCaAu0ACwLtAAsCOwLtAAtu8UgAygDAA24ACwNvAAu0VsQAAzsAABCkjUIpAAsAUIusOggWcgMeBxVsGwL67U/2HlzmWOEeOgALASvuAAseAfpKUpnpGgYJDCIZM6YyARUE9ThqAD5iXQgnAJYJPnOzw0ZAEZxEKsIAkA4DhAHnTAIDxxUDK0lxCQlPYgIvIQVYJQBVqE1GakUAKGYiDToSBA1EtAYAXQJYAIF8GgMHRyAAIAjOe9YncekRAA0KACUrjwE7Ayc6AAYWAqaiKG4McEcqANoN3+Mg9TwCBhIkuCny+JwUQ29L008JluRxu3K+oAdqiHOqFH0AG5SUIfUJ5SxCGfxdipRzqTmT4V5Zb+r1Uo4Vm+NqSSEl2mNvR2JhIa8SpYO6ntdwFXHCWTCK8f2+Hxo7uiG3drDycAuKIMP5bhi06ACnqArH1rz4Rqg//lm6SgJGEVbF9xJHISaR6HxqxSnkw6shDnelHKNEfGUXSJRJ1GcsmtJw25xrZMDK9gXSm1/YMkdX4/6NKYOdtk/NQ3/NnDASjTc3fPjIjW/5sVfVObX2oTDWkr1dF9f3kxBsD3/3aQO8hPfRz+e0uEiJqt1161griu7gz8hDDwtpy+F+BWtefnKHZPAxcZoWbnznhJpy0e842j36bcNzGnIEusgGX0a8ZxsnjcSsPDZ09yZ36fCQbriHeQ72JRMILNl6ePPf2HWoVwgWAm1fb3V2sAY0+B6rAXqSwPBgseVmoqsBTSrm91+XasMYYySI8eeRxH3ZvHkMz3BQ5aJ3iUVbYPNM3/7emRtjlsMgv/9VyTsyt/mK+8fgWeT6SoFaclXqn42dAIsvAarF5vNNWHzKSkKQ/8Hfk5ZWK7r9yliOsooyBjRhfkHP4Q2DkWXQi6FG/9r/IwbmkV5T7JSopHKn1pJwm9tb5Ot0oyN1Z2mPpKXHTxx2nlK08fKk1hEYA8WgVVWL5lgx0iTv+KdojJeU23ZDjmiubXOxVXJKKi2Wjuh2HLZOFLiSC7Tls5SMh4f+Pj6xUSrNjFqLGehRNB8lC0QSLNmkJJx/wSG3MnjE9T1CkPwJI0wH2lfzwETIiVqUxg0dfu5q39Gt+hwdcxkhhNvQ4TyrBceof3Mhs/IxFci1HmHr4FMZgXEEczPiGCx0HRwzAqDq2j9AVm1kwN0mRVLWLylgtoPNapF5cY4Y1wJh/e0BBwZj44YgZrDNqvD/9Hv7GFYdUQeDJuQ3EWI4HaKqavU1XjC/n41kT4L79kqGq0kLhdTZvgP3TA3fS0ozVz+5piZsoOtIvBUFoMKbNcmBL6YxxaUAusHB38XrS8dQMnQwJfUUkpRoGr5AUeWicvBTzyK9g77+yCkf5PAysL7r/JjcZgrbvRpMW9iyaxZvKO6ceZN2EwIxKwVFPuvFuiEPGCoagbMo+SpydLrXqBzNCDGFCrO/rkcwa2xhokQZ5CdZ0AsU3JfSqJ6n5I14YA+P/uAgfhPU84Tlw7cEFfp7AEE8ey4sP12PTt4Cods1GRgDOB5xvyiR5m+Bx8O5nBCNctU8BevfV5A08x6RHd5jcwPTMDSZJOedIZ1cGQ704lxbAzqZOP05ZxaOghzSdvFBHYqomATARyAADK4elP8Ly3IrUZKfWh23Xy20uBUmLS4Pfagu9+oyVa2iPgqRP3F2CTUsvJ7+RYnN8fFZbU/HVvxvcFFDKkiTqV5UBZ3Gz54JAKByi9hkKMZJvuGgcSYXFmw08UyoQyVdfTD1/dMkCHXcTGAKeROgArsvmRrQTLUOXioOHGK2QkjHuoYFgXciZoTJd6Fs5q1QX1G+p/e26hYsEf7QZD1nnIyl/SFkNtYYmmBhpBrxl9WbY0YpHWRuw2Ll/tj9mD8P4snVzJl4F9J+1arVeTb9E5r2ILH04qStjxQNwn3m4YNqxmaNbLAqW2TN6LidwuJRqS+NXbtqxoeDXpxeGWmxzSkWxjkyCkX4NQRme6q5SAcC+M7+9ETfA/EwrzQajKakCwYyeunP6ZFlxU2oMEn1Pz31zeStW74G406ZJFCl1wAXIoUKkWotYEpOuXB1uVNxJ63dpJEqfxBeptwIHNrPz8BllZoIcBoXwgfJ+8VAUnVPvRvexnw0Ma/WiGYuJO5y8QTvEYBigFmhUxY5RqzE8OcywN/8m4UYrlaniJO75XQ6KSo9+tWHlu+hMi0UVdiKQp7NelnoZUzNaIyBPVeOwK6GNp+FfHuPOoyhaWuNvTYFkvxscMQWDh+zeFCFkgwbXftiV23ywJ4+uwRqmg9k3KzwIQpzppt8DBBOMbrqwQM5Gb05sEwdKzMiAqOloaA/lr0KA+1pr0/+HiWoiIjHA/wir2nIuS3PeU/ji3O6ZwoxcR1SZ9FhtLC5S0FIzFhbBWcGVP/KpxOPSiUoAdWUpqKH++6Scz507iCcxYI6rdMBICPJZea7OcmeFw5mObJSiqpjg2UoWNIs+cFhyDSt6geV5qgi3FunmwwDoGSMgerFOZGX1m0dMCYo5XOruxO063dwENK9DbnVM9wYFREzh4vyU1WYYJ/LRRp6oxgjqP/X5a8/4Af6p6NWkQferzBmXme0zY/4nwMJm/wd1tIqSwGz+E3xPEAOoZlJit3XddD7/BT1pllzOx+8bmQtANQ/S6fZexc6qi3W+Q2xcmXTUhuS5mpHQRvcxZUN0S5+PL9lXWUAaRZhEH8hTdAcuNMMCuVNKTEGtSUKNi3O6KhSaTzck8csZ2vWRZ+d7mW8c4IKwXIYd25S/zIftPkwPzufjEvOHWVD1m+FjpDVUTV0DGDuHj6QnaEwLu/dEgdLQOg9E1Sro9XHJ8ykLAwtPu+pxqKDuFexqON1sKQm7rwbE1E68UCfA/erovrTCG+DBSNg0l4goDQvZN6uNlbyLpcZAwj2UclycvLpIZMgv4yRlpb3YuMftozorbcGVHt/VeDV3+Fdf1TP0iuaCsPi2G4XeGhsyF1ubVDxkoJhmniQ0/jSg/eYML9KLfnCFgISWkp91eauR3IQvED0nAPXK+6hPCYs+n3+hCZbiskmVMG2da+0EsZPonUeIY8EbfusQXjsK/eFDaosbPjEfQS0RKG7yj5GG69M7MeO1HmiUYocgygJHL6M1qzUDDwUSmr99V7Sdr2F3JjQAJY+F0yH33Iv3+C9M38eML7gTgmNu/r2bUMiPvpYbZ6v1/IaESirBHNa7mPKn4dEmYg7v/+HQgPN1G79jBQ1+soydfDC2r+h2Bl/KIc5KjMK7OH6nb1jLsNf0EHVe2KBiE51ox636uyG6Lho0t3J34L5QY/ilE3mikaF4HKXG1mG1rCevT1Vv6GavltxoQe/bMrpZvRggnBxSEPEeEzkEdOxTnPXHVjUYdw8JYvjB/o7Eegc3Ma+NUxLLnsK0kJlinPmUHzHGtrk5+CAbVzFOBqpyy3QVUnzTDfC/0XD94/okH+OB+i7g9lolhWIjSnfIb+Eq43ZXOWmwvjyV/qqD+t0e+7mTEM74qP/Ozt8nmC7mRpyu63OB4KnUzFc074SqoyPUAgM+/TJGFo6T44EHnQU4X4z6qannVqgw/U7zCpwcmXV1AubIrvOmkKHazJAR55ePjp5tLBsN8vAqs3NAHdcEHOR2xQ0lsNAFzSUuxFQCFYvXLZJdOj9p4fNq6p0HBGUik2YzaI4xySy91KzhQ0+q1hjxvImRwPRf76tChlRkhRCi74NXZ9qUNeIwP+s5p+3m5nwPdNOHgSLD79n7O9m1n1uDHiMntq4nkYwV5OZ1ENbXxFd4PgrlvavZsyUO4MqYlqqn1O8W/I1dEZq5dXhrbETLaZIbC2Kj/Aa/QM+fqUOHdf0tXAQ1huZ3cmWECWSXy/43j35+Mvq9xws7JKseriZ1pEWKc8qlzNrGPUGcVgOa9cPJYIJsGnJTAUsEcDOEVULO5x0rXBijc1lgXEzQQKhROf8zIV82w8eswc78YX11KYLWQRcgHNJElBxfXr72lS2RBSl07qTKorO2uUDZr3sFhYsvnhLZn0A94KRzJ/7DEGIAhW5ZWFpL8gEwu1aLA9MuWZzNwl8Oze9Y+bX+v9gywRVnoB5I/8kXTXU3141yRLYrIOOz6SOnyHNy4SieqzkBXharjfjqq1q6tklaEbA8Qfm2DaIPs7OTq/nvJBjKfO2H9bH2cCMh1+5gspfycu8f/cuuRmtDjyqZ7uCIMyjdV3a+p3fqmXsRx4C8lujezIFHnQiVTXLXuI1XrwN3+siYYj2HHTvESUx8DlOTXpak9qFRK+L3mgJ1WsD7F4cu1aJoFoYQnu+wGDMOjJM3kiBQWHCcvhJ/HRdxodOQp45YZaOTA22Nb4XKCVxqkbwMYFhzYQYIAnCW8FW14uf98jhUG2zrKhQQ0q0CEq0t5nXyvUyvR8DvD69LU+g3i+HFWQMQ8PqZuHD+sNKAV0+M6EJC0szq7rEr7B5bQ8BcNHzvDMc9eqB5ZCQdTf80Obn4uzjwpYU7SISdtV0QGa9D3Wrh2BDQtpBKxaNFV+/Cy2P/Sv+8s7Ud0Fd74X4+o/TNztWgETUapy+majNQ68Lq3ee0ZO48VEbTZYiH1Co4OlfWef82RWeyUXo7woM03PyapGfikTnQinoNq5z5veLpeMV3HCAMTaZmA1oGLAn7XS3XYsz+XK7VMQsc4XKrmDXOLU/pSXVNUq8dIqTba///3x6LiLS6xs1xuCAYSfcQ3+rQgmu7uvf3THKt5Ooo97TqcbRqxx7EASizaQCBQllG/rYxVapMLgtLbZS64w1MDBMXX+PQpBKNwqUKOf2DDRDUXQf9EhOS0Qj4nTmlA8dzSLz/G1d+Ud8MTy/6ghhdiLpeerGY/UlDOfiuqFsMUU5/UYlP+BAmgRLuNpvrUaLlVkrqDievNVEAwF+4CoM1MZTmjxjJMsKJq+u8Zd7tNCUFy6LiyYXRJQ4VyvEQFFaCGKsxIwQkk7EzZ6LTJq2hUuPhvAW+gQnSG6J+MszC+7QCRHcnqDdyNRJ6T9xyS87A6MDutbzKGvGktpbXqtzWtXb9HsfK2cBMomjN9a4y+TaJLnXxAeX/HWzmf4cR4vALt/P4w4qgKY04ml4ZdLOinFYS6cup3G/1ie4+t1eOnpBNlqGqs75ilzkT4+DsZQxNvaSKJ//6zIbbk/M7LOhFmRc/1R+kBtz7JFGdZm/COotIdvQoXpTqP/1uqEUmCb/QWoGLMwO5ANcHzxdY48IGP5+J+zKOTBFZ4Pid+GTM+Wq12MV/H86xEJptBa6T+p3kgpwLedManBHC2GgNrFpoN2xnrMz9WFWX/8/ygSBkavq2Uv7FdCsLEYLu9LLIvAU0bNRDtzYl+/vXmjpIvuJFYjmI0im6QEYqnIeMsNjXG4vIutIGHijeAG/9EDBozKV5cldkHbLxHh25vT+ZEzbhXlqvpzKJwcEgfNwLAKFeo0/pvEE10XDB+EXRTXtSzJozQKFFAJhMxYkVaCW+E9AL7tMeU8acxidHqzb6lX4691UsDpy/LLRmT+epgW56+5Cw8tB4kMUv6s9lh3eRKbyGs+H/4mQMaYzPTf2OOdokEn+zzgvoD3FqNKk8QqGAXVsqcGdXrT62fSPkR2vROFi68A6se86UxRUk4cajfPyCC4G5wDhD+zNq4jodQ4u4n/m37Lr36n4LIAAsVr02dFi9AiwA81MYs2rm4eDlDNmdMRvEKRHfBwW5DdMNp0jPFZMeARqF/wL4XBfd+EMLBfMzpH5GH6NaW+1vrvMdg+VxDzatk3MXgO3ro3P/DpcC6+Mo4MySJhKJhSR01SGGGp5hPWmrrUgrv3lDnP+HhcI3nt3YqBoVAVTBAQT5iuhTg8nvPtd8ZeYj6w1x6RqGUBrSku7+N1+BaasZvjTk64RoIDlL8brpEcJx3OmY7jLoZsswdtmhfC/G21llXhITOwmvRDDeTTPbyASOa16cF5/A1fZAidJpqju3wYAy9avPR1ya6eNp9K8XYrrtuxlqi+bDKwlfrYdR0RRiKRVTLOH85+ZY7XSmzRpfZBJjaTa81VDcJHpZnZnSQLASGYW9l51ZV/h7eVzTi3Hv6hUsgc/51AqJRTkpbFVLXXszoBL8nBX0u/0jBLT8nH+fJePbrwURT58OY+UieRjd1vs04w0VG5VN2U6MoGZkQzKN/ptz0Q366dxoTGmj7i1NQGHi9GgnquXFYdrCfZBmeb7s0T6yrdlZH5cZuwHFyIJ/kAtGsTg0xH5taAAq44BAk1CPk9KVVbqQzrCUiFdF/6gtlPQ8bHHc1G1W92MXGZ5HEHftyLYs8mbD/9xYRUWkHmlM0zC2ilJlnNgV4bfALpQghxOUoZL7VTqtCHIaQSXm+YUMnpkXybnV+A6xlm2CVy8fn0Xlm2XRa0+zzOa21JWWmixfiPMSCZ7qA4rS93VN3pkpF1s5TonQjisHf7iU9ZGvUPOAKZcR1pbeVf/Ul7OhepGCaId9wOtqo7pJ7yLcBZ0pFkOF28y4zEI/kcUNmutBHaQpBdNM8vjCS6HZRokkeo88TBAjGyG7SR+6vUgTcyK9Imalj0kuxz0wmK+byQU11AiJFk/ya5dNduRClcnU64yGu/ieWSeOos1t3ep+RPIWQ2pyTYVbZltTbsb7NiwSi3AV+8KLWk7LxCnfZUetEM8ThnsSoGH38/nyAwFguJp8FjvlHtcWZuU4hPva0rHfr0UhOOJ/F6vS62FW7KzkmRll2HEc7oUq4fyi5T70Vl7YVIfsPHUCdHesf9Lk7WNVWO75JDkYbMI8TOW8JKVtLY9d6UJRITO8oKo0xS+o99Yy04iniGHAaGj88kEWgwv0OrHdY/nr76DOGNS59hXCGXzTKUvDl9iKpLSWYN1lxIeyywdNpTkhay74w2jFT6NS8qkjo5CxA1yfSYwp6AJIZNKIeEK5PJAW7ORgWgwp0VgzYpqovMrWxbu+DGZ6Lhie1RAqpzm8VUzKJOH3mCzWuTOLsN3VT/dv2eeYe9UjbR8YTBsLz7q60VN1sU51k+um1f8JxD5pPhbhSC8rRaB454tmh6YUWrJI3+GWY0qeWioj/tbkYITOkJaeuGt4JrJvHA+l0Gu7kY7XOaa05alMnRWVCXqFgLIwSY4uF59Ue5SU4QKuc/HamDxbr0x6csCetXGoP7Qn1Bk/J9DsynO/UD6iZ1Hyrz+jit0hDCwi/E9OjgKTbB3ZQKQ/0ZOvevfNHG0NK4Aj3Cp7NpRk07RT1i/S0EL93Ag8GRgKI9CfpajKyK6+Jj/PI1KO5/85VAwz2AwzP8FTBb075IxCXv6T9RVvWT2tUaqxDS92zrGUbWzUYk9mSs82pECH+fkqsDt93VW++4YsR/dHCYcQSYTO/KaBMDj9LSD/J/+z20Kq8XvZUAIHtm9hRPP3ItbuAu2Hm5lkPs92pd7kCxgRs0xOVBnZ13ccdA0aunrwv9SdqElJRC3g+oCu+nXyCgmXUs9yMjTMAIHfxZV+aPKcZeUBWt057Xo85Ks1Ir5gzEHCWqZEhrLZMuF11ziGtFQUds/EESajhagzcKsxamcSZxGth4UII+adPhQkUnx2WyN+4YWR+r3f8MnkyGFuR4zjzxJS8WsQYR5PTyRaD9ixa6Mh741nBHbzfjXHskGDq179xaRNrCIB1z1xRfWfjqw2pHc1zk9xlPpL8sQWAIuETZZhbnmL54rceXVNRvUiKrrqIkeogsl0XXb17ylNb0f4GA9Wd44vffEG8FSZGHEL2fbaTGRcSiCeA8PmA/f6Hz8HCS76fXUHwgwkzSwlI71ekZ7Fapmlk/KC+Hs8hUcw3N2LN5LhkVYyizYFl/uPeVP5lsoJHhhfWvvSWruCUW1ZcJOeuTbrDgywJ/qG07gZJplnTvLcYdNaH0KMYOYMGX+rB4NGPFmQsNaIwlWrfCezxre8zXBrsMT+edVLbLqN1BqB76JH4BvZTqUIMfGwPGEn+EnmTV86fPBaYbFL3DFEhjB45CewkXEAtJxk4/Ms2pPXnaRqdky0HOYdcUcE2zcXq4vaIvW2/v0nHFJH2XXe22ueDmq/18XGtELSq85j9X8q0tcNSSKJIX8FTuJF/Pf8j5PhqG2u+osvsLxYrvvfeVJL+4tkcXcr9JV7v0ERmj/X6fM3NC4j6dS1+9Umr2oPavqiAydTZPLMNRGY23LO9zAVDly7jD+70G5TPPLdhRIl4WxcYjLnM+SNcJ26FOrkrISUtPObIz5Zb3AG612krnpy15RMW+1cQjlnWFI6538qky9axd2oJmHIHP08KyP0ubGO+TQNOYuv2uh17yCIvR8VcStw7o1g0NM60sk+8Tq7YfIBJrtp53GkvzXH7OA0p8/n/u1satf/VJhtR1l8Wa6Gmaug7haSpaCaYQax6ta0mkutlb+eAOSG1aobM81D9A4iS1RRlzBBoVX6tU1S6WE2N9ORY6DfeLRC4l9Rvr5h95XDWB2mR1d4WFudpsgVYwiTwT31ljskD8ZyDOlm5DkGh9N/UB/0AI5Xvb8ZBmai2hQ4BWMqFwYnzxwB26YHSOv9WgY3JXnvoN+2R4rqGVh/LLDMtpFP+SpMGJNWvbIl5SOodbCczW2RKleksPoUeGEzrjtKHVdtZA+kfqO+rVx/iclCqwoopepvJpSTDjT+b9GWylGRF8EDbGlw6eUzmJM95Ovoz+kwLX3c2fTjFeYEsE7vUZm3mqdGJuKh2w9/QGSaqRHs99aScGOdDqkFcACoqdbBoQqqjamhH6Q9ng39JCg3lrGJwd50Qk9ovnqBTr8MME7Ps2wiVfygUmPoUBJJfJWX5Nda0nuncbFkA==")),Eo=new Set(go(wo)),Ao=new Set(go(wo)),_o=function(e){let t=[];for(;;){let n=e();if(0==n)break;t.push(vo(n,e))}for(;;){let n=e()-1;if(n<0)break;t.push(To(n,e))}return function(e){const t={};for(let n=0;n<e.length;n++){const r=e[n];t[r[0]]=r[1]}return t}(fo(t))}(wo),Io=function(e){let t=go(e).sort(((e,t)=>e-t));return function n(){let r=[];for(;;){let i=go(e,t);if(0==i.length)break;r.push({set:new Set(i),node:n()})}r.sort(((e,t)=>t.set.size-e.set.size));let i=e(),a=i%3;i=i/3|0;let o=!!(1&i);return i>>=1,{branches:r,valid:a,fe0f:o,save:1==i,check:2==i}}()}(wo),Ro=45,Co=95;function Oo(e){return La(e)}function ko(e){return e.filter((e=>65039!=e))}function So(e){for(let t of e.split(".")){let e=Oo(t);try{for(let t=e.lastIndexOf(Co)-1;t>=0;t--)if(e[t]!==Co)throw new Error("underscore only allowed at start");if(e.length>=4&&e.every((e=>e<128))&&e[2]===Ro&&e[3]===Ro)throw new Error("invalid label extension")}catch(e){throw new Error(`Invalid label "${t}": ${e.message}`)}}return e}function No(e){return So(function(e,t){let n=Oo(e).reverse(),r=[];for(;n.length;){let e=xo(n);if(e){r.push(...t(e));continue}let i=n.pop();if(Eo.has(i)){r.push(i);continue}if(Ao.has(i))continue;let a=_o[i];if(!a)throw new Error(`Disallowed codepoint: 0x${i.toString(16).toUpperCase()}`);r.push(...a)}return So(function(e){return e.normalize("NFC")}(String.fromCodePoint(...r)))}(e,ko))}function xo(e,t){var n;let r,i,a=Io,o=[],s=e.length;for(t&&(t.length=0);s;){let u=e[--s];if(a=null===(n=a.branches.find((e=>e.set.has(u))))||void 0===n?void 0:n.node,!a)break;if(a.save)i=u;else if(a.check&&u===i)break;o.push(u),a.fe0f&&(o.push(65039),s>0&&65039==e[s-1]&&s--),a.valid&&(r=o.slice(),2==a.valid&&r.splice(1,1),t&&t.push(...e.slice(s).reverse()),e.length=s)}return r}const Po=new Zn(so),Mo=new Uint8Array(32);function Bo(e){if(0===e.length)throw new Error("invalid ENS name; empty component");return e}function Do(e){const t=Pa(No(e)),n=[];if(0===e.length)return n;let r=0;for(let e=0;e<t.length;e++){46===t[e]&&(n.push(Bo(t.slice(r,e))),r=e+1)}if(r>=t.length)throw new Error("invalid ENS name; empty component");return n.push(Bo(t.slice(r))),n}function Fo(e){try{return 0!==Do(e).length}catch(e){}return!1}function Lo(e){"string"!=typeof e&&Po.throwArgumentError("invalid ENS name; not a string","name",e);let t=Mo;const n=Do(e);for(;n.length;)t=Di(ur([t,Di(n.pop())]));return pr(t)}function Uo(e){return pr(ur(Do(e).map((e=>{if(e.length>63)throw new Error("invalid DNS encoded entry; length exceeds 63 bytes");const t=new Uint8Array(e.length+1);return t.set(e,1),t[0]=t.length-1,t}))))+"00"}Mo.fill(0);const qo="Ethereum Signed Message:\n";function jo(e){return"string"==typeof e&&(e=Pa(e)),Di(ur([Pa(qo),Pa(String(e.length)),e]))}var Go=window&&window.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};const Ho=new Zn(so),zo=new Uint8Array(32);zo.fill(0);const Wo=kr.from(-1),Vo=kr.from(0),Ko=kr.from(1),Xo=kr.from("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");const Jo=vr(Ko.toHexString(),32),Yo=vr(Vo.toHexString(),32),Qo={name:"string",version:"string",chainId:"uint256",verifyingContract:"address",salt:"bytes32"},$o=["name","version","chainId","verifyingContract","salt"];function Zo(e){return function(t){return"string"!=typeof t&&Ho.throwArgumentError(`invalid domain value for ${JSON.stringify(e)}`,`domain.${e}`,t),t}}const es={name:Zo("name"),version:Zo("version"),chainId:function(e){try{return kr.from(e).toString()}catch(e){}return Ho.throwArgumentError('invalid domain value for "chainId"',"domain.chainId",e)},verifyingContract:function(e){try{return $i(e).toLowerCase()}catch(e){}return Ho.throwArgumentError('invalid domain value "verifyingContract"',"domain.verifyingContract",e)},salt:function(e){try{const t=sr(e);if(32!==t.length)throw new Error("bad length");return pr(t)}catch(e){}return Ho.throwArgumentError('invalid domain value "salt"',"domain.salt",e)}};function ts(e){{const t=e.match(/^(u?)int(\d*)$/);if(t){const n=""===t[1],r=parseInt(t[2]||"256");(r%8!=0||r>256||t[2]&&t[2]!==String(r))&&Ho.throwArgumentError("invalid numeric width","type",e);const i=Xo.mask(n?r-1:r),a=n?i.add(Ko).mul(Wo):Vo;return function(t){const n=kr.from(t);return(n.lt(a)||n.gt(i))&&Ho.throwArgumentError(`value out-of-bounds for ${e}`,"value",t),vr(n.toTwos(256).toHexString(),32)}}}{const t=e.match(/^bytes(\d+)$/);if(t){const n=parseInt(t[1]);return(0===n||n>32||t[1]!==String(n))&&Ho.throwArgumentError("invalid bytes width","type",e),function(t){return sr(t).length!==n&&Ho.throwArgumentError(`invalid length for ${e}`,"value",t),function(e){const t=sr(e),n=t.length%32;return n?yr([t,zo.slice(n)]):pr(t)}(t)}}}switch(e){case"address":return function(e){return vr($i(e),32)};case"bool":return function(e){return e?Jo:Yo};case"bytes":return function(e){return Di(e)};case"string":return function(e){return oo(e)}}return null}function ns(e,t){return`${e}(${t.map((({name:e,type:t})=>t+" "+e)).join(",")})`}class rs{constructor(e){Jr(this,"types",Object.freeze(ri(e))),Jr(this,"_encoderCache",{}),Jr(this,"_types",{});const t={},n={},r={};Object.keys(e).forEach((e=>{t[e]={},n[e]=[],r[e]={}}));for(const r in e){const i={};e[r].forEach((a=>{i[a.name]&&Ho.throwArgumentError(`duplicate variable name ${JSON.stringify(a.name)} in ${JSON.stringify(r)}`,"types",e),i[a.name]=!0;const o=a.type.match(/^([^\x5b]*)(\x5b|$)/)[1];o===r&&Ho.throwArgumentError(`circular type reference to ${JSON.stringify(o)}`,"types",e);ts(o)||(n[o]||Ho.throwArgumentError(`unknown type ${JSON.stringify(o)}`,"types",e),n[o].push(r),t[r][o]=!0)}))}const i=Object.keys(n).filter((e=>0===n[e].length));0===i.length?Ho.throwArgumentError("missing primary type","types",e):i.length>1&&Ho.throwArgumentError(`ambiguous primary types or unused types: ${i.map((e=>JSON.stringify(e))).join(", ")}`,"types",e),Jr(this,"primaryType",i[0]),function i(a,o){o[a]&&Ho.throwArgumentError(`circular type reference to ${JSON.stringify(a)}`,"types",e),o[a]=!0,Object.keys(t[a]).forEach((e=>{n[e]&&(i(e,o),Object.keys(o).forEach((t=>{r[t][e]=!0})))})),delete o[a]}(this.primaryType,{});for(const t in r){const n=Object.keys(r[t]);n.sort(),this._types[t]=ns(t,e[t])+n.map((t=>ns(t,e[t]))).join("")}}getEncoder(e){let t=this._encoderCache[e];return t||(t=this._encoderCache[e]=this._getEncoder(e)),t}_getEncoder(e){{const t=ts(e);if(t)return t}const t=e.match(/^(.*)(\x5b(\d*)\x5d)$/);if(t){const e=t[1],n=this.getEncoder(e),r=parseInt(t[3]);return t=>{r>=0&&t.length!==r&&Ho.throwArgumentError("array length mismatch; expected length ${ arrayLength }","value",t);let i=t.map(n);return this._types[e]&&(i=i.map(Di)),Di(yr(i))}}const n=this.types[e];if(n){const t=oo(this._types[e]);return e=>{const r=n.map((({name:t,type:n})=>{const r=this.getEncoder(n)(e[t]);return this._types[n]?Di(r):r}));return r.unshift(t),yr(r)}}return Ho.throwArgumentError(`unknown type: ${e}`,"type",e)}encodeType(e){const t=this._types[e];return t||Ho.throwArgumentError(`unknown type: ${JSON.stringify(e)}`,"name",e),t}encodeData(e,t){return this.getEncoder(e)(t)}hashStruct(e,t){return Di(this.encodeData(e,t))}encode(e){return this.encodeData(this.primaryType,e)}hash(e){return this.hashStruct(this.primaryType,e)}_visit(e,t,n){if(ts(e))return n(e,t);const r=e.match(/^(.*)(\x5b(\d*)\x5d)$/);if(r){const e=r[1],i=parseInt(r[3]);return i>=0&&t.length!==i&&Ho.throwArgumentError("array length mismatch; expected length ${ arrayLength }","value",t),t.map((t=>this._visit(e,t,n)))}const i=this.types[e];return i?i.reduce(((e,{name:r,type:i})=>(e[r]=this._visit(i,t[r],n),e)),{}):Ho.throwArgumentError(`unknown type: ${e}`,"type",e)}visit(e,t){return this._visit(this.primaryType,e,t)}static from(e){return new rs(e)}static getPrimaryType(e){return rs.from(e).primaryType}static hashStruct(e,t,n){return rs.from(t).hashStruct(e,n)}static hashDomain(e){const t=[];for(const n in e){const r=Qo[n];r||Ho.throwArgumentError(`invalid typed-data domain key: ${JSON.stringify(n)}`,"domain",e),t.push({name:n,type:r})}return t.sort(((e,t)=>$o.indexOf(e.name)-$o.indexOf(t.name))),rs.hashStruct("EIP712Domain",{EIP712Domain:t},e)}static encode(e,t,n){return yr(["0x1901",rs.hashDomain(e),rs.from(t).hash(n)])}static hash(e,t,n){return Di(rs.encode(e,t,n))}static resolveNames(e,t,n,r){return Go(this,void 0,void 0,(function*(){e=Zr(e);const i={};e.verifyingContract&&!dr(e.verifyingContract,20)&&(i[e.verifyingContract]="0x");const a=rs.from(t);a.visit(n,((e,t)=>("address"!==e||dr(t,20)||(i[t]="0x"),t)));for(const e in i)i[e]=yield r(e);return e.verifyingContract&&i[e.verifyingContract]&&(e.verifyingContract=i[e.verifyingContract]),n=a.visit(n,((e,t)=>"address"===e&&i[t]?i[t]:t)),{domain:e,value:n}}))}static getPayload(e,t,n){rs.hashDomain(e);const r={},i=[];$o.forEach((t=>{const n=e[t];null!=n&&(r[t]=es[t](n),i.push({name:t,type:Qo[t]}))}));const a=rs.from(t),o=Zr(t);return o.EIP712Domain?Ho.throwArgumentError("types must not contain EIP712Domain type","types.EIP712Domain",t):o.EIP712Domain=i,a.encode(n),{types:o,domain:r,primaryType:a.primaryType,message:a.visit(n,((e,t)=>{if(e.match(/^bytes(\d*)/))return pr(sr(t));if(e.match(/^u?int/))return kr.from(t).toString();switch(e){case"address":return t.toLowerCase();case"bool":return!!t;case"string":return"string"!=typeof t&&Ho.throwArgumentError("invalid string","value",t),t}return Ho.throwArgumentError("unsupported type","type",e)}))}}}var is=Object.freeze({__proto__:null,_TypedDataEncoder:rs,dnsEncode:Uo,ensNormalize:function(e){return Do(e).map((e=>Fa(e))).join(".")},hashMessage:jo,id:oo,isValidName:Fo,messagePrefix:qo,namehash:Lo});const as=new Zn(oi);let os=class extends ii{},ss=class extends ii{},us=class extends ii{},cs=class extends ii{static isIndexed(e){return!(!e||!e._isIndexed)}};const ls={"0x08c379a0":{signature:"Error(string)",name:"Error",inputs:["string"],reason:!0},"0x4e487b71":{signature:"Panic(uint256)",name:"Panic",inputs:["uint256"]}};function ds(e,t){const n=new Error(`deferred error during ABI decoding triggered accessing ${e}`);return n.error=t,n}let fs=class{constructor(e){let t=[];t="string"==typeof e?JSON.parse(e):e,Jr(this,"fragments",t.map((e=>gi.from(e))).filter((e=>null!=e))),Jr(this,"_abiCoder",Yr(new.target,"getAbiCoder")()),Jr(this,"functions",{}),Jr(this,"errors",{}),Jr(this,"events",{}),Jr(this,"structs",{}),this.fragments.forEach((e=>{let t=null;switch(e.type){case"constructor":return this.deploy?void as.warn("duplicate definition - constructor"):void Jr(this,"deploy",e);case"function":t=this.functions;break;case"event":t=this.events;break;case"error":t=this.errors;break;default:return}let n=e.format();t[n]?as.warn("duplicate definition - "+n):t[n]=e})),this.deploy||Jr(this,"deploy",Ei.from({payable:!1,type:"constructor"})),Jr(this,"_isInterface",!0)}format(e){e||(e=pi.full),e===pi.sighash&&as.throwArgumentError("interface does not support formatting sighash","format",e);const t=this.fragments.map((t=>t.format(e)));return e===pi.json?JSON.stringify(t.map((e=>JSON.parse(e)))):t}static getAbiCoder(){return ao}static getAddress(e){return $i(e)}static getSighash(e){return mr(oo(e.format()),0,4)}static getEventTopic(e){return oo(e.format())}getFunction(e){if(dr(e)){for(const t in this.functions)if(e===this.getSighash(t))return this.functions[t];as.throwArgumentError("no matching function","sighash",e)}if(-1===e.indexOf("(")){const t=e.trim(),n=Object.keys(this.functions).filter((e=>e.split("(")[0]===t));return 0===n.length?as.throwArgumentError("no matching function","name",t):n.length>1&&as.throwArgumentError("multiple matching functions","name",t),this.functions[n[0]]}const t=this.functions[Ai.fromString(e).format()];return t||as.throwArgumentError("no matching function","signature",e),t}getEvent(e){if(dr(e)){const t=e.toLowerCase();for(const e in this.events)if(t===this.getEventTopic(e))return this.events[e];as.throwArgumentError("no matching event","topichash",t)}if(-1===e.indexOf("(")){const t=e.trim(),n=Object.keys(this.events).filter((e=>e.split("(")[0]===t));return 0===n.length?as.throwArgumentError("no matching event","name",t):n.length>1&&as.throwArgumentError("multiple matching events","name",t),this.events[n[0]]}const t=this.events[bi.fromString(e).format()];return t||as.throwArgumentError("no matching event","signature",e),t}getError(e){if(dr(e)){const t=Yr(this.constructor,"getSighash");for(const n in this.errors){if(e===t(this.errors[n]))return this.errors[n]}as.throwArgumentError("no matching error","sighash",e)}if(-1===e.indexOf("(")){const t=e.trim(),n=Object.keys(this.errors).filter((e=>e.split("(")[0]===t));return 0===n.length?as.throwArgumentError("no matching error","name",t):n.length>1&&as.throwArgumentError("multiple matching errors","name",t),this.errors[n[0]]}const t=this.errors[Ai.fromString(e).format()];return t||as.throwArgumentError("no matching error","signature",e),t}getSighash(e){if("string"==typeof e)try{e=this.getFunction(e)}catch(t){try{e=this.getError(e)}catch(e){throw t}}return Yr(this.constructor,"getSighash")(e)}getEventTopic(e){return"string"==typeof e&&(e=this.getEvent(e)),Yr(this.constructor,"getEventTopic")(e)}_decodeParams(e,t){return this._abiCoder.decode(e,t)}_encodeParams(e,t){return this._abiCoder.encode(e,t)}encodeDeploy(e){return this._encodeParams(this.deploy.inputs,e||[])}decodeErrorResult(e,t){"string"==typeof e&&(e=this.getError(e));const n=sr(t);return pr(n.slice(0,4))!==this.getSighash(e)&&as.throwArgumentError(`data signature does not match error ${e.name}.`,"data",pr(n)),this._decodeParams(e.inputs,n.slice(4))}encodeErrorResult(e,t){return"string"==typeof e&&(e=this.getError(e)),pr(ur([this.getSighash(e),this._encodeParams(e.inputs,t||[])]))}decodeFunctionData(e,t){"string"==typeof e&&(e=this.getFunction(e));const n=sr(t);return pr(n.slice(0,4))!==this.getSighash(e)&&as.throwArgumentError(`data signature does not match function ${e.name}.`,"data",pr(n)),this._decodeParams(e.inputs,n.slice(4))}encodeFunctionData(e,t){return"string"==typeof e&&(e=this.getFunction(e)),pr(ur([this.getSighash(e),this._encodeParams(e.inputs,t||[])]))}decodeFunctionResult(e,t){"string"==typeof e&&(e=this.getFunction(e));let n=sr(t),r=null,i="",a=null,o=null,s=null;switch(n.length%this._abiCoder._getWordSize()){case 0:try{return this._abiCoder.decode(e.outputs,n)}catch(e){}break;case 4:{const e=pr(n.slice(0,4)),t=ls[e];if(t)a=this._abiCoder.decode(t.inputs,n.slice(4)),o=t.name,s=t.signature,t.reason&&(r=a[0]),"Error"===o?i=`; VM Exception while processing transaction: reverted with reason string ${JSON.stringify(a[0])}`:"Panic"===o&&(i=`; VM Exception while processing transaction: reverted with panic code ${a[0]}`);else try{const t=this.getError(e);a=this._abiCoder.decode(t.inputs,n.slice(4)),o=t.name,s=t.format()}catch(e){}break}}return as.throwError("call revert exception"+i,Zn.errors.CALL_EXCEPTION,{method:e.format(),data:pr(t),errorArgs:a,errorName:o,errorSignature:s,reason:r})}encodeFunctionResult(e,t){return"string"==typeof e&&(e=this.getFunction(e)),pr(this._abiCoder.encode(e.outputs,t||[]))}encodeFilterTopics(e,t){"string"==typeof e&&(e=this.getEvent(e)),t.length>e.inputs.length&&as.throwError("too many arguments for "+e.format(),Zn.errors.UNEXPECTED_ARGUMENT,{argument:"values",value:t});let n=[];e.anonymous||n.push(this.getEventTopic(e));const r=(e,t)=>"string"===e.type?oo(t):"bytes"===e.type?Di(pr(t)):("bool"===e.type&&"boolean"==typeof t&&(t=t?"0x01":"0x00"),e.type.match(/^u?int/)&&(t=kr.from(t).toHexString()),"address"===e.type&&this._abiCoder.encode(["address"],[t]),vr(pr(t),32));for(t.forEach(((t,i)=>{let a=e.inputs[i];a.indexed?null==t?n.push(null):"array"===a.baseType||"tuple"===a.baseType?as.throwArgumentError("filtering with tuples or arrays not supported","contract."+a.name,t):Array.isArray(t)?n.push(t.map((e=>r(a,e)))):n.push(r(a,t)):null!=t&&as.throwArgumentError("cannot filter non-indexed parameters; must be null","contract."+a.name,t)}));n.length&&null===n[n.length-1];)n.pop();return n}encodeEventLog(e,t){"string"==typeof e&&(e=this.getEvent(e));const n=[],r=[],i=[];return e.anonymous||n.push(this.getEventTopic(e)),t.length!==e.inputs.length&&as.throwArgumentError("event arguments/values mismatch","values",t),e.inputs.forEach(((e,a)=>{const o=t[a];if(e.indexed)if("string"===e.type)n.push(oo(o));else if("bytes"===e.type)n.push(Di(o));else{if("tuple"===e.baseType||"array"===e.baseType)throw new Error("not implemented");n.push(this._abiCoder.encode([e.type],[o]))}else r.push(e),i.push(o)})),{data:this._abiCoder.encode(r,i),topics:n}}decodeEventLog(e,t,n){if("string"==typeof e&&(e=this.getEvent(e)),null!=n&&!e.anonymous){let t=this.getEventTopic(e);dr(n[0],32)&&n[0].toLowerCase()===t||as.throwError("fragment/topic mismatch",Zn.errors.INVALID_ARGUMENT,{argument:"topics[0]",expected:t,value:n[0]}),n=n.slice(1)}let r=[],i=[],a=[];e.inputs.forEach(((e,t)=>{e.indexed?"string"===e.type||"bytes"===e.type||"tuple"===e.baseType||"array"===e.baseType?(r.push(mi.fromObject({type:"bytes32",name:e.name})),a.push(!0)):(r.push(e),a.push(!1)):(i.push(e),a.push(!1))}));let o=null!=n?this._abiCoder.decode(r,ur(n)):null,s=this._abiCoder.decode(i,t,!0),u=[],c=0,l=0;e.inputs.forEach(((e,t)=>{if(e.indexed)if(null==o)u[t]=new cs({_isIndexed:!0,hash:null});else if(a[t])u[t]=new cs({_isIndexed:!0,hash:o[l++]});else try{u[t]=o[l++]}catch(e){u[t]=e}else try{u[t]=s[c++]}catch(e){u[t]=e}if(e.name&&null==u[e.name]){const n=u[t];n instanceof Error?Object.defineProperty(u,e.name,{enumerable:!0,get:()=>{throw ds(`property ${JSON.stringify(e.name)}`,n)}}):u[e.name]=n}}));for(let e=0;e<u.length;e++){const t=u[e];t instanceof Error&&Object.defineProperty(u,e,{enumerable:!0,get:()=>{throw ds(`index ${e}`,t)}})}return Object.freeze(u)}parseTransaction(e){let t=this.getFunction(e.data.substring(0,10).toLowerCase());return t?new ss({args:this._abiCoder.decode(t.inputs,"0x"+e.data.substring(10)),functionFragment:t,name:t.name,signature:t.format(),sighash:this.getSighash(t),value:kr.from(e.value||"0")}):null}parseLog(e){let t=this.getEvent(e.topics[0]);return!t||t.anonymous?null:new os({eventFragment:t,name:t.name,signature:t.format(),topic:this.getEventTopic(t),args:this.decodeEventLog(t,e.data,e.topics)})}parseError(e){const t=pr(e);let n=this.getError(t.substring(0,10).toLowerCase());return n?new us({args:this._abiCoder.decode(n.inputs,"0x"+t.substring(10)),errorFragment:n,name:n.name,signature:n.format(),sighash:this.getSighash(n)}):null}static isInterface(e){return!(!e||!e._isInterface)}};var ps=Object.freeze({__proto__:null,AbiCoder:io,ConstructorFragment:Ei,ErrorFragment:Ii,EventFragment:bi,FormatTypes:pi,Fragment:gi,FunctionFragment:Ai,Indexed:cs,Interface:fs,LogDescription:os,ParamType:mi,TransactionDescription:ss,checkResultErrors:Ni,defaultAbiCoder:ao});var hs=window&&window.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};const ms=new Zn("abstract-provider/5.7.0");class ys extends ii{static isForkEvent(e){return!(!e||!e._isForkEvent)}}let gs=class e{constructor(){ms.checkAbstract(new.target,e),Jr(this,"_isProvider",!0)}getFeeData(){return hs(this,void 0,void 0,(function*(){const{block:e,gasPrice:t}=yield Qr({block:this.getBlock("latest"),gasPrice:this.getGasPrice().catch((e=>null))});let n=null,r=null,i=null;return e&&e.baseFeePerGas&&(n=e.baseFeePerGas,i=kr.from("1500000000"),r=e.baseFeePerGas.mul(2).add(i)),{lastBaseFeePerGas:n,maxFeePerGas:r,maxPriorityFeePerGas:i,gasPrice:t}}))}addListener(e,t){return this.on(e,t)}removeListener(e,t){return this.off(e,t)}static isProvider(e){return!(!e||!e._isProvider)}};var bs=window&&window.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};const vs=new Zn("abstract-signer/5.7.0"),Ts=["accessList","ccipReadEnabled","chainId","customData","data","from","gasLimit","gasPrice","maxFeePerGas","maxPriorityFeePerGas","nonce","to","type","value"],ws=[Zn.errors.INSUFFICIENT_FUNDS,Zn.errors.NONCE_EXPIRED,Zn.errors.REPLACEMENT_UNDERPRICED];let Es=class e{constructor(){vs.checkAbstract(new.target,e),Jr(this,"_isSigner",!0)}getBalance(e){return bs(this,void 0,void 0,(function*(){return this._checkProvider("getBalance"),yield this.provider.getBalance(this.getAddress(),e)}))}getTransactionCount(e){return bs(this,void 0,void 0,(function*(){return this._checkProvider("getTransactionCount"),yield this.provider.getTransactionCount(this.getAddress(),e)}))}estimateGas(e){return bs(this,void 0,void 0,(function*(){this._checkProvider("estimateGas");const t=yield Qr(this.checkTransaction(e));return yield this.provider.estimateGas(t)}))}call(e,t){return bs(this,void 0,void 0,(function*(){this._checkProvider("call");const n=yield Qr(this.checkTransaction(e));return yield this.provider.call(n,t)}))}sendTransaction(e){return bs(this,void 0,void 0,(function*(){this._checkProvider("sendTransaction");const t=yield this.populateTransaction(e),n=yield this.signTransaction(t);return yield this.provider.sendTransaction(n)}))}getChainId(){return bs(this,void 0,void 0,(function*(){this._checkProvider("getChainId");return(yield this.provider.getNetwork()).chainId}))}getGasPrice(){return bs(this,void 0,void 0,(function*(){return this._checkProvider("getGasPrice"),yield this.provider.getGasPrice()}))}getFeeData(){return bs(this,void 0,void 0,(function*(){return this._checkProvider("getFeeData"),yield this.provider.getFeeData()}))}resolveName(e){return bs(this,void 0,void 0,(function*(){return this._checkProvider("resolveName"),yield this.provider.resolveName(e)}))}checkTransaction(e){for(const t in e)-1===Ts.indexOf(t)&&vs.throwArgumentError("invalid transaction key: "+t,"transaction",e);const t=Zr(e);return null==t.from?t.from=this.getAddress():t.from=Promise.all([Promise.resolve(t.from),this.getAddress()]).then((t=>(t[0].toLowerCase()!==t[1].toLowerCase()&&vs.throwArgumentError("from address mismatch","transaction",e),t[0]))),t}populateTransaction(e){return bs(this,void 0,void 0,(function*(){const t=yield Qr(this.checkTransaction(e));null!=t.to&&(t.to=Promise.resolve(t.to).then((e=>bs(this,void 0,void 0,(function*(){if(null==e)return null;const t=yield this.resolveName(e);return null==t&&vs.throwArgumentError("provided ENS name resolves to null","tx.to",e),t})))),t.to.catch((e=>{})));const n=null!=t.maxFeePerGas||null!=t.maxPriorityFeePerGas;if(null==t.gasPrice||2!==t.type&&!n?0!==t.type&&1!==t.type||!n||vs.throwArgumentError("pre-eip-1559 transaction do not support maxFeePerGas/maxPriorityFeePerGas","transaction",e):vs.throwArgumentError("eip-1559 transaction do not support gasPrice","transaction",e),2!==t.type&&null!=t.type||null==t.maxFeePerGas||null==t.maxPriorityFeePerGas)if(0===t.type||1===t.type)null==t.gasPrice&&(t.gasPrice=this.getGasPrice());else{const e=yield this.getFeeData();if(null==t.type)if(null!=e.maxFeePerGas&&null!=e.maxPriorityFeePerGas)if(t.type=2,null!=t.gasPrice){const e=t.gasPrice;delete t.gasPrice,t.maxFeePerGas=e,t.maxPriorityFeePerGas=e}else null==t.maxFeePerGas&&(t.maxFeePerGas=e.maxFeePerGas),null==t.maxPriorityFeePerGas&&(t.maxPriorityFeePerGas=e.maxPriorityFeePerGas);else null!=e.gasPrice?(n&&vs.throwError("network does not support EIP-1559",Zn.errors.UNSUPPORTED_OPERATION,{operation:"populateTransaction"}),null==t.gasPrice&&(t.gasPrice=e.gasPrice),t.type=0):vs.throwError("failed to get consistent fee data",Zn.errors.UNSUPPORTED_OPERATION,{operation:"signer.getFeeData"});else 2===t.type&&(null==t.maxFeePerGas&&(t.maxFeePerGas=e.maxFeePerGas),null==t.maxPriorityFeePerGas&&(t.maxPriorityFeePerGas=e.maxPriorityFeePerGas))}else t.type=2;return null==t.nonce&&(t.nonce=this.getTransactionCount("pending")),null==t.gasLimit&&(t.gasLimit=this.estimateGas(t).catch((e=>{if(ws.indexOf(e.code)>=0)throw e;return vs.throwError("cannot estimate gas; transaction may fail or may require manual gas limit",Zn.errors.UNPREDICTABLE_GAS_LIMIT,{error:e,tx:t})}))),null==t.chainId?t.chainId=this.getChainId():t.chainId=Promise.all([Promise.resolve(t.chainId),this.getChainId()]).then((t=>(0!==t[1]&&t[0]!==t[1]&&vs.throwArgumentError("chainId address mismatch","transaction",e),t[0]))),yield Qr(t)}))}_checkProvider(e){this.provider||vs.throwError("missing provider",Zn.errors.UNSUPPORTED_OPERATION,{operation:e||"_checkProvider"})}static isSigner(e){return!(!e||!e._isSigner)}},As=class e extends Es{constructor(e,t){super(),Jr(this,"address",e),Jr(this,"provider",t||null)}getAddress(){return Promise.resolve(this.address)}_fail(e,t){return Promise.resolve().then((()=>{vs.throwError(e,Zn.errors.UNSUPPORTED_OPERATION,{operation:t})}))}signMessage(e){return this._fail("VoidSigner cannot sign messages","signMessage")}signTransaction(e){return this._fail("VoidSigner cannot sign transactions","signTransaction")}_signTypedData(e,t,n){return this._fail("VoidSigner cannot sign typed data","signTypedData")}connect(t){return new e(this.address,t)}};var _s={},Is={},Rs=Cs;function Cs(e,t){if(!e)throw new Error(t||"Assertion failed")}Cs.equal=function(e,t,n){if(e!=t)throw new Error(n||"Assertion failed: "+e+" != "+t)};var Os="function"==typeof Object.create?function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:function(e,t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e},ks=Rs,Ss=Ut(Object.freeze({__proto__:null,default:Os}));function Ns(e,t){return 55296==(64512&e.charCodeAt(t))&&(!(t<0||t+1>=e.length)&&56320==(64512&e.charCodeAt(t+1)))}function xs(e){return(e>>>24|e>>>8&65280|e<<8&16711680|(255&e)<<24)>>>0}function Ps(e){return 1===e.length?"0"+e:e}function Ms(e){return 7===e.length?"0"+e:6===e.length?"00"+e:5===e.length?"000"+e:4===e.length?"0000"+e:3===e.length?"00000"+e:2===e.length?"000000"+e:1===e.length?"0000000"+e:e}Is.inherits=Ss,Is.toArray=function(e,t){if(Array.isArray(e))return e.slice();if(!e)return[];var n=[];if("string"==typeof e)if(t){if("hex"===t)for((e=e.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(e="0"+e),i=0;i<e.length;i+=2)n.push(parseInt(e[i]+e[i+1],16))}else for(var r=0,i=0;i<e.length;i++){var a=e.charCodeAt(i);a<128?n[r++]=a:a<2048?(n[r++]=a>>6|192,n[r++]=63&a|128):Ns(e,i)?(a=65536+((1023&a)<<10)+(1023&e.charCodeAt(++i)),n[r++]=a>>18|240,n[r++]=a>>12&63|128,n[r++]=a>>6&63|128,n[r++]=63&a|128):(n[r++]=a>>12|224,n[r++]=a>>6&63|128,n[r++]=63&a|128)}else for(i=0;i<e.length;i++)n[i]=0|e[i];return n},Is.toHex=function(e){for(var t="",n=0;n<e.length;n++)t+=Ps(e[n].toString(16));return t},Is.htonl=xs,Is.toHex32=function(e,t){for(var n="",r=0;r<e.length;r++){var i=e[r];"little"===t&&(i=xs(i)),n+=Ms(i.toString(16))}return n},Is.zero2=Ps,Is.zero8=Ms,Is.join32=function(e,t,n,r){var i=n-t;ks(i%4==0);for(var a=new Array(i/4),o=0,s=t;o<a.length;o++,s+=4){var u;u="big"===r?e[s]<<24|e[s+1]<<16|e[s+2]<<8|e[s+3]:e[s+3]<<24|e[s+2]<<16|e[s+1]<<8|e[s],a[o]=u>>>0}return a},Is.split32=function(e,t){for(var n=new Array(4*e.length),r=0,i=0;r<e.length;r++,i+=4){var a=e[r];"big"===t?(n[i]=a>>>24,n[i+1]=a>>>16&255,n[i+2]=a>>>8&255,n[i+3]=255&a):(n[i+3]=a>>>24,n[i+2]=a>>>16&255,n[i+1]=a>>>8&255,n[i]=255&a)}return n},Is.rotr32=function(e,t){return e>>>t|e<<32-t},Is.rotl32=function(e,t){return e<<t|e>>>32-t},Is.sum32=function(e,t){return e+t>>>0},Is.sum32_3=function(e,t,n){return e+t+n>>>0},Is.sum32_4=function(e,t,n,r){return e+t+n+r>>>0},Is.sum32_5=function(e,t,n,r,i){return e+t+n+r+i>>>0},Is.sum64=function(e,t,n,r){var i=e[t],a=r+e[t+1]>>>0,o=(a<r?1:0)+n+i;e[t]=o>>>0,e[t+1]=a},Is.sum64_hi=function(e,t,n,r){return(t+r>>>0<t?1:0)+e+n>>>0},Is.sum64_lo=function(e,t,n,r){return t+r>>>0},Is.sum64_4_hi=function(e,t,n,r,i,a,o,s){var u=0,c=t;return u+=(c=c+r>>>0)<t?1:0,u+=(c=c+a>>>0)<a?1:0,e+n+i+o+(u+=(c=c+s>>>0)<s?1:0)>>>0},Is.sum64_4_lo=function(e,t,n,r,i,a,o,s){return t+r+a+s>>>0},Is.sum64_5_hi=function(e,t,n,r,i,a,o,s,u,c){var l=0,d=t;return l+=(d=d+r>>>0)<t?1:0,l+=(d=d+a>>>0)<a?1:0,l+=(d=d+s>>>0)<s?1:0,e+n+i+o+u+(l+=(d=d+c>>>0)<c?1:0)>>>0},Is.sum64_5_lo=function(e,t,n,r,i,a,o,s,u,c){return t+r+a+s+c>>>0},Is.rotr64_hi=function(e,t,n){return(t<<32-n|e>>>n)>>>0},Is.rotr64_lo=function(e,t,n){return(e<<32-n|t>>>n)>>>0},Is.shr64_hi=function(e,t,n){return e>>>n},Is.shr64_lo=function(e,t,n){return(e<<32-n|t>>>n)>>>0};var Bs={},Ds=Is,Fs=Rs;function Ls(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}Bs.BlockHash=Ls,Ls.prototype.update=function(e,t){if(e=Ds.toArray(e,t),this.pending?this.pending=this.pending.concat(e):this.pending=e,this.pendingTotal+=e.length,this.pending.length>=this._delta8){var n=(e=this.pending).length%this._delta8;this.pending=e.slice(e.length-n,e.length),0===this.pending.length&&(this.pending=null),e=Ds.join32(e,0,e.length-n,this.endian);for(var r=0;r<e.length;r+=this._delta32)this._update(e,r,r+this._delta32)}return this},Ls.prototype.digest=function(e){return this.update(this._pad()),Fs(null===this.pending),this._digest(e)},Ls.prototype._pad=function(){var e=this.pendingTotal,t=this._delta8,n=t-(e+this.padLength)%t,r=new Array(n+this.padLength);r[0]=128;for(var i=1;i<n;i++)r[i]=0;if(e<<=3,"big"===this.endian){for(var a=8;a<this.padLength;a++)r[i++]=0;r[i++]=0,r[i++]=0,r[i++]=0,r[i++]=0,r[i++]=e>>>24&255,r[i++]=e>>>16&255,r[i++]=e>>>8&255,r[i++]=255&e}else for(r[i++]=255&e,r[i++]=e>>>8&255,r[i++]=e>>>16&255,r[i++]=e>>>24&255,r[i++]=0,r[i++]=0,r[i++]=0,r[i++]=0,a=8;a<this.padLength;a++)r[i++]=0;return r};var Us={},qs={},js=Is.rotr32;function Gs(e,t,n){return e&t^~e&n}function Hs(e,t,n){return e&t^e&n^t&n}function zs(e,t,n){return e^t^n}qs.ft_1=function(e,t,n,r){return 0===e?Gs(t,n,r):1===e||3===e?zs(t,n,r):2===e?Hs(t,n,r):void 0},qs.ch32=Gs,qs.maj32=Hs,qs.p32=zs,qs.s0_256=function(e){return js(e,2)^js(e,13)^js(e,22)},qs.s1_256=function(e){return js(e,6)^js(e,11)^js(e,25)},qs.g0_256=function(e){return js(e,7)^js(e,18)^e>>>3},qs.g1_256=function(e){return js(e,17)^js(e,19)^e>>>10};var Ws=Is,Vs=Bs,Ks=qs,Xs=Ws.rotl32,Js=Ws.sum32,Ys=Ws.sum32_5,Qs=Ks.ft_1,$s=Vs.BlockHash,Zs=[1518500249,1859775393,2400959708,3395469782];function eu(){if(!(this instanceof eu))return new eu;$s.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}Ws.inherits(eu,$s);var tu=eu;eu.blockSize=512,eu.outSize=160,eu.hmacStrength=80,eu.padLength=64,eu.prototype._update=function(e,t){for(var n=this.W,r=0;r<16;r++)n[r]=e[t+r];for(;r<n.length;r++)n[r]=Xs(n[r-3]^n[r-8]^n[r-14]^n[r-16],1);var i=this.h[0],a=this.h[1],o=this.h[2],s=this.h[3],u=this.h[4];for(r=0;r<n.length;r++){var c=~~(r/20),l=Ys(Xs(i,5),Qs(c,a,o,s),u,n[r],Zs[c]);u=s,s=o,o=Xs(a,30),a=i,i=l}this.h[0]=Js(this.h[0],i),this.h[1]=Js(this.h[1],a),this.h[2]=Js(this.h[2],o),this.h[3]=Js(this.h[3],s),this.h[4]=Js(this.h[4],u)},eu.prototype._digest=function(e){return"hex"===e?Ws.toHex32(this.h,"big"):Ws.split32(this.h,"big")};var nu=Is,ru=Bs,iu=qs,au=Rs,ou=nu.sum32,su=nu.sum32_4,uu=nu.sum32_5,cu=iu.ch32,lu=iu.maj32,du=iu.s0_256,fu=iu.s1_256,pu=iu.g0_256,hu=iu.g1_256,mu=ru.BlockHash,yu=[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];function gu(){if(!(this instanceof gu))return new gu;mu.call(this),this.h=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],this.k=yu,this.W=new Array(64)}nu.inherits(gu,mu);var bu=gu;gu.blockSize=512,gu.outSize=256,gu.hmacStrength=192,gu.padLength=64,gu.prototype._update=function(e,t){for(var n=this.W,r=0;r<16;r++)n[r]=e[t+r];for(;r<n.length;r++)n[r]=su(hu(n[r-2]),n[r-7],pu(n[r-15]),n[r-16]);var i=this.h[0],a=this.h[1],o=this.h[2],s=this.h[3],u=this.h[4],c=this.h[5],l=this.h[6],d=this.h[7];for(au(this.k.length===n.length),r=0;r<n.length;r++){var f=uu(d,fu(u),cu(u,c,l),this.k[r],n[r]),p=ou(du(i),lu(i,a,o));d=l,l=c,c=u,u=ou(s,f),s=o,o=a,a=i,i=ou(f,p)}this.h[0]=ou(this.h[0],i),this.h[1]=ou(this.h[1],a),this.h[2]=ou(this.h[2],o),this.h[3]=ou(this.h[3],s),this.h[4]=ou(this.h[4],u),this.h[5]=ou(this.h[5],c),this.h[6]=ou(this.h[6],l),this.h[7]=ou(this.h[7],d)},gu.prototype._digest=function(e){return"hex"===e?nu.toHex32(this.h,"big"):nu.split32(this.h,"big")};var vu=Is,Tu=bu;function wu(){if(!(this instanceof wu))return new wu;Tu.call(this),this.h=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]}vu.inherits(wu,Tu);var Eu=wu;wu.blockSize=512,wu.outSize=224,wu.hmacStrength=192,wu.padLength=64,wu.prototype._digest=function(e){return"hex"===e?vu.toHex32(this.h.slice(0,7),"big"):vu.split32(this.h.slice(0,7),"big")};var Au=Is,_u=Bs,Iu=Rs,Ru=Au.rotr64_hi,Cu=Au.rotr64_lo,Ou=Au.shr64_hi,ku=Au.shr64_lo,Su=Au.sum64,Nu=Au.sum64_hi,xu=Au.sum64_lo,Pu=Au.sum64_4_hi,Mu=Au.sum64_4_lo,Bu=Au.sum64_5_hi,Du=Au.sum64_5_lo,Fu=_u.BlockHash,Lu=[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];function Uu(){if(!(this instanceof Uu))return new Uu;Fu.call(this),this.h=[1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209],this.k=Lu,this.W=new Array(160)}Au.inherits(Uu,Fu);var qu=Uu;function ju(e,t,n,r,i){var a=e&n^~e&i;return a<0&&(a+=4294967296),a}function Gu(e,t,n,r,i,a){var o=t&r^~t&a;return o<0&&(o+=4294967296),o}function Hu(e,t,n,r,i){var a=e&n^e&i^n&i;return a<0&&(a+=4294967296),a}function zu(e,t,n,r,i,a){var o=t&r^t&a^r&a;return o<0&&(o+=4294967296),o}function Wu(e,t){var n=Ru(e,t,28)^Ru(t,e,2)^Ru(t,e,7);return n<0&&(n+=4294967296),n}function Vu(e,t){var n=Cu(e,t,28)^Cu(t,e,2)^Cu(t,e,7);return n<0&&(n+=4294967296),n}function Ku(e,t){var n=Ru(e,t,14)^Ru(e,t,18)^Ru(t,e,9);return n<0&&(n+=4294967296),n}function Xu(e,t){var n=Cu(e,t,14)^Cu(e,t,18)^Cu(t,e,9);return n<0&&(n+=4294967296),n}function Ju(e,t){var n=Ru(e,t,1)^Ru(e,t,8)^Ou(e,t,7);return n<0&&(n+=4294967296),n}function Yu(e,t){var n=Cu(e,t,1)^Cu(e,t,8)^ku(e,t,7);return n<0&&(n+=4294967296),n}function Qu(e,t){var n=Ru(e,t,19)^Ru(t,e,29)^Ou(e,t,6);return n<0&&(n+=4294967296),n}function $u(e,t){var n=Cu(e,t,19)^Cu(t,e,29)^ku(e,t,6);return n<0&&(n+=4294967296),n}Uu.blockSize=1024,Uu.outSize=512,Uu.hmacStrength=192,Uu.padLength=128,Uu.prototype._prepareBlock=function(e,t){for(var n=this.W,r=0;r<32;r++)n[r]=e[t+r];for(;r<n.length;r+=2){var i=Qu(n[r-4],n[r-3]),a=$u(n[r-4],n[r-3]),o=n[r-14],s=n[r-13],u=Ju(n[r-30],n[r-29]),c=Yu(n[r-30],n[r-29]),l=n[r-32],d=n[r-31];n[r]=Pu(i,a,o,s,u,c,l,d),n[r+1]=Mu(i,a,o,s,u,c,l,d)}},Uu.prototype._update=function(e,t){this._prepareBlock(e,t);var n=this.W,r=this.h[0],i=this.h[1],a=this.h[2],o=this.h[3],s=this.h[4],u=this.h[5],c=this.h[6],l=this.h[7],d=this.h[8],f=this.h[9],p=this.h[10],h=this.h[11],m=this.h[12],y=this.h[13],g=this.h[14],b=this.h[15];Iu(this.k.length===n.length);for(var v=0;v<n.length;v+=2){var T=g,w=b,E=Ku(d,f),A=Xu(d,f),_=ju(d,f,p,h,m),I=Gu(d,f,p,h,m,y),R=this.k[v],C=this.k[v+1],O=n[v],k=n[v+1],S=Bu(T,w,E,A,_,I,R,C,O,k),N=Du(T,w,E,A,_,I,R,C,O,k);T=Wu(r,i),w=Vu(r,i),E=Hu(r,i,a,o,s),A=zu(r,i,a,o,s,u);var x=Nu(T,w,E,A),P=xu(T,w,E,A);g=m,b=y,m=p,y=h,p=d,h=f,d=Nu(c,l,S,N),f=xu(l,l,S,N),c=s,l=u,s=a,u=o,a=r,o=i,r=Nu(S,N,x,P),i=xu(S,N,x,P)}Su(this.h,0,r,i),Su(this.h,2,a,o),Su(this.h,4,s,u),Su(this.h,6,c,l),Su(this.h,8,d,f),Su(this.h,10,p,h),Su(this.h,12,m,y),Su(this.h,14,g,b)},Uu.prototype._digest=function(e){return"hex"===e?Au.toHex32(this.h,"big"):Au.split32(this.h,"big")};var Zu=Is,ec=qu;function tc(){if(!(this instanceof tc))return new tc;ec.call(this),this.h=[3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]}Zu.inherits(tc,ec);var nc=tc;tc.blockSize=1024,tc.outSize=384,tc.hmacStrength=192,tc.padLength=128,tc.prototype._digest=function(e){return"hex"===e?Zu.toHex32(this.h.slice(0,12),"big"):Zu.split32(this.h.slice(0,12),"big")},Us.sha1=tu,Us.sha224=Eu,Us.sha256=bu,Us.sha384=nc,Us.sha512=qu;var rc={},ic=Is,ac=Bs,oc=ic.rotl32,sc=ic.sum32,uc=ic.sum32_3,cc=ic.sum32_4,lc=ac.BlockHash;function dc(){if(!(this instanceof dc))return new dc;lc.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.endian="little"}function fc(e,t,n,r){return e<=15?t^n^r:e<=31?t&n|~t&r:e<=47?(t|~n)^r:e<=63?t&r|n&~r:t^(n|~r)}function pc(e){return e<=15?0:e<=31?1518500249:e<=47?1859775393:e<=63?2400959708:2840853838}function hc(e){return e<=15?1352829926:e<=31?1548603684:e<=47?1836072691:e<=63?2053994217:0}ic.inherits(dc,lc),rc.ripemd160=dc,dc.blockSize=512,dc.outSize=160,dc.hmacStrength=192,dc.padLength=64,dc.prototype._update=function(e,t){for(var n=this.h[0],r=this.h[1],i=this.h[2],a=this.h[3],o=this.h[4],s=n,u=r,c=i,l=a,d=o,f=0;f<80;f++){var p=sc(oc(cc(n,fc(f,r,i,a),e[mc[f]+t],pc(f)),gc[f]),o);n=o,o=a,a=oc(i,10),i=r,r=p,p=sc(oc(cc(s,fc(79-f,u,c,l),e[yc[f]+t],hc(f)),bc[f]),d),s=d,d=l,l=oc(c,10),c=u,u=p}p=uc(this.h[1],i,l),this.h[1]=uc(this.h[2],a,d),this.h[2]=uc(this.h[3],o,s),this.h[3]=uc(this.h[4],n,u),this.h[4]=uc(this.h[0],r,c),this.h[0]=p},dc.prototype._digest=function(e){return"hex"===e?ic.toHex32(this.h,"little"):ic.split32(this.h,"little")};var mc=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],yc=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],gc=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],bc=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],vc=Is,Tc=Rs;function wc(e,t,n){if(!(this instanceof wc))return new wc(e,t,n);this.Hash=e,this.blockSize=e.blockSize/8,this.outSize=e.outSize/8,this.inner=null,this.outer=null,this._init(vc.toArray(t,n))}var Ec=wc;wc.prototype._init=function(e){e.length>this.blockSize&&(e=(new this.Hash).update(e).digest()),Tc(e.length<=this.blockSize);for(var t=e.length;t<this.blockSize;t++)e.push(0);for(t=0;t<e.length;t++)e[t]^=54;for(this.inner=(new this.Hash).update(e),t=0;t<e.length;t++)e[t]^=106;this.outer=(new this.Hash).update(e)},wc.prototype.update=function(e,t){return this.inner.update(e,t),this},wc.prototype.digest=function(e){return this.outer.update(this.inner.digest()),this.outer.digest(e)},function(e){var t=e;t.utils=Is,t.common=Bs,t.sha=Us,t.ripemd=rc,t.hmac=Ec,t.sha1=t.sha.sha1,t.sha256=t.sha.sha256,t.sha224=t.sha.sha224,t.sha384=t.sha.sha384,t.sha512=t.sha.sha512,t.ripemd160=t.ripemd.ripemd160}(_s);var Ac=Lt(_s);function _c(e,t,n){return n={path:t,exports:{},require:function(e,t){return function(){throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs")}(null==t&&n.path)}},e(n,n.exports),n.exports}var Ic=Rc;function Rc(e,t){if(!e)throw new Error(t||"Assertion failed")}Rc.equal=function(e,t,n){if(e!=t)throw new Error(n||"Assertion failed: "+e+" != "+t)};var Cc=_c((function(e,t){var n=t;function r(e){return 1===e.length?"0"+e:e}function i(e){for(var t="",n=0;n<e.length;n++)t+=r(e[n].toString(16));return t}n.toArray=function(e,t){if(Array.isArray(e))return e.slice();if(!e)return[];var n=[];if("string"!=typeof e){for(var r=0;r<e.length;r++)n[r]=0|e[r];return n}if("hex"===t){(e=e.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(e="0"+e);for(r=0;r<e.length;r+=2)n.push(parseInt(e[r]+e[r+1],16))}else for(r=0;r<e.length;r++){var i=e.charCodeAt(r),a=i>>8,o=255&i;a?n.push(a,o):n.push(o)}return n},n.zero2=r,n.toHex=i,n.encode=function(e,t){return"hex"===t?i(e):e}})),Oc=_c((function(e,t){var n=t;n.assert=Ic,n.toArray=Cc.toArray,n.zero2=Cc.zero2,n.toHex=Cc.toHex,n.encode=Cc.encode,n.getNAF=function(e,t,n){var r=new Array(Math.max(e.bitLength(),n)+1);r.fill(0);for(var i=1<<t+1,a=e.clone(),o=0;o<r.length;o++){var s,u=a.andln(i-1);a.isOdd()?(s=u>(i>>1)-1?(i>>1)-u:u,a.isubn(s)):s=0,r[o]=s,a.iushrn(1)}return r},n.getJSF=function(e,t){var n=[[],[]];e=e.clone(),t=t.clone();for(var r,i=0,a=0;e.cmpn(-i)>0||t.cmpn(-a)>0;){var o,s,u=e.andln(3)+i&3,c=t.andln(3)+a&3;3===u&&(u=-1),3===c&&(c=-1),o=0==(1&u)?0:3!==(r=e.andln(7)+i&7)&&5!==r||2!==c?u:-u,n[0].push(o),s=0==(1&c)?0:3!==(r=t.andln(7)+a&7)&&5!==r||2!==u?c:-c,n[1].push(s),2*i===o+1&&(i=1-i),2*a===s+1&&(a=1-a),e.iushrn(1),t.iushrn(1)}return n},n.cachedProperty=function(e,t,n){var r="_"+t;e.prototype[t]=function(){return void 0!==this[r]?this[r]:this[r]=n.call(this)}},n.parseBytes=function(e){return"string"==typeof e?n.toArray(e,"hex"):e},n.intFromLE=function(e){return new Hn(e,"hex","le")}})),kc=Oc.getNAF,Sc=Oc.getJSF,Nc=Oc.assert;function xc(e,t){this.type=e,this.p=new Hn(t.p,16),this.red=t.prime?Hn.red(t.prime):Hn.mont(this.p),this.zero=new Hn(0).toRed(this.red),this.one=new Hn(1).toRed(this.red),this.two=new Hn(2).toRed(this.red),this.n=t.n&&new Hn(t.n,16),this.g=t.g&&this.pointFromJSON(t.g,t.gRed),this._wnafT1=new Array(4),this._wnafT2=new Array(4),this._wnafT3=new Array(4),this._wnafT4=new Array(4),this._bitLength=this.n?this.n.bitLength():0;var n=this.n&&this.p.div(this.n);!n||n.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}var Pc=xc;function Mc(e,t){this.curve=e,this.type=t,this.precomputed=null}xc.prototype.point=function(){throw new Error("Not implemented")},xc.prototype.validate=function(){throw new Error("Not implemented")},xc.prototype._fixedNafMul=function(e,t){Nc(e.precomputed);var n=e._getDoubles(),r=kc(t,1,this._bitLength),i=(1<<n.step+1)-(n.step%2==0?2:1);i/=3;var a,o,s=[];for(a=0;a<r.length;a+=n.step){o=0;for(var u=a+n.step-1;u>=a;u--)o=(o<<1)+r[u];s.push(o)}for(var c=this.jpoint(null,null,null),l=this.jpoint(null,null,null),d=i;d>0;d--){for(a=0;a<s.length;a++)(o=s[a])===d?l=l.mixedAdd(n.points[a]):o===-d&&(l=l.mixedAdd(n.points[a].neg()));c=c.add(l)}return c.toP()},xc.prototype._wnafMul=function(e,t){var n=4,r=e._getNAFPoints(n);n=r.wnd;for(var i=r.points,a=kc(t,n,this._bitLength),o=this.jpoint(null,null,null),s=a.length-1;s>=0;s--){for(var u=0;s>=0&&0===a[s];s--)u++;if(s>=0&&u++,o=o.dblp(u),s<0)break;var c=a[s];Nc(0!==c),o="affine"===e.type?c>0?o.mixedAdd(i[c-1>>1]):o.mixedAdd(i[-c-1>>1].neg()):c>0?o.add(i[c-1>>1]):o.add(i[-c-1>>1].neg())}return"affine"===e.type?o.toP():o},xc.prototype._wnafMulAdd=function(e,t,n,r,i){var a,o,s,u=this._wnafT1,c=this._wnafT2,l=this._wnafT3,d=0;for(a=0;a<r;a++){var f=(s=t[a])._getNAFPoints(e);u[a]=f.wnd,c[a]=f.points}for(a=r-1;a>=1;a-=2){var p=a-1,h=a;if(1===u[p]&&1===u[h]){var m=[t[p],null,null,t[h]];0===t[p].y.cmp(t[h].y)?(m[1]=t[p].add(t[h]),m[2]=t[p].toJ().mixedAdd(t[h].neg())):0===t[p].y.cmp(t[h].y.redNeg())?(m[1]=t[p].toJ().mixedAdd(t[h]),m[2]=t[p].add(t[h].neg())):(m[1]=t[p].toJ().mixedAdd(t[h]),m[2]=t[p].toJ().mixedAdd(t[h].neg()));var y=[-3,-1,-5,-7,0,7,5,1,3],g=Sc(n[p],n[h]);for(d=Math.max(g[0].length,d),l[p]=new Array(d),l[h]=new Array(d),o=0;o<d;o++){var b=0|g[0][o],v=0|g[1][o];l[p][o]=y[3*(b+1)+(v+1)],l[h][o]=0,c[p]=m}}else l[p]=kc(n[p],u[p],this._bitLength),l[h]=kc(n[h],u[h],this._bitLength),d=Math.max(l[p].length,d),d=Math.max(l[h].length,d)}var T=this.jpoint(null,null,null),w=this._wnafT4;for(a=d;a>=0;a--){for(var E=0;a>=0;){var A=!0;for(o=0;o<r;o++)w[o]=0|l[o][a],0!==w[o]&&(A=!1);if(!A)break;E++,a--}if(a>=0&&E++,T=T.dblp(E),a<0)break;for(o=0;o<r;o++){var _=w[o];0!==_&&(_>0?s=c[o][_-1>>1]:_<0&&(s=c[o][-_-1>>1].neg()),T="affine"===s.type?T.mixedAdd(s):T.add(s))}}for(a=0;a<r;a++)c[a]=null;return i?T:T.toP()},xc.BasePoint=Mc,Mc.prototype.eq=function(){throw new Error("Not implemented")},Mc.prototype.validate=function(){return this.curve.validate(this)},xc.prototype.decodePoint=function(e,t){e=Oc.toArray(e,t);var n=this.p.byteLength();if((4===e[0]||6===e[0]||7===e[0])&&e.length-1==2*n)return 6===e[0]?Nc(e[e.length-1]%2==0):7===e[0]&&Nc(e[e.length-1]%2==1),this.point(e.slice(1,1+n),e.slice(1+n,1+2*n));if((2===e[0]||3===e[0])&&e.length-1===n)return this.pointFromX(e.slice(1,1+n),3===e[0]);throw new Error("Unknown point format")},Mc.prototype.encodeCompressed=function(e){return this.encode(e,!0)},Mc.prototype._encode=function(e){var t=this.curve.p.byteLength(),n=this.getX().toArray("be",t);return e?[this.getY().isEven()?2:3].concat(n):[4].concat(n,this.getY().toArray("be",t))},Mc.prototype.encode=function(e,t){return Oc.encode(this._encode(t),e)},Mc.prototype.precompute=function(e){if(this.precomputed)return this;var t={doubles:null,naf:null,beta:null};return t.naf=this._getNAFPoints(8),t.doubles=this._getDoubles(4,e),t.beta=this._getBeta(),this.precomputed=t,this},Mc.prototype._hasDoubles=function(e){if(!this.precomputed)return!1;var t=this.precomputed.doubles;return!!t&&t.points.length>=Math.ceil((e.bitLength()+1)/t.step)},Mc.prototype._getDoubles=function(e,t){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var n=[this],r=this,i=0;i<t;i+=e){for(var a=0;a<e;a++)r=r.dbl();n.push(r)}return{step:e,points:n}},Mc.prototype._getNAFPoints=function(e){if(this.precomputed&&this.precomputed.naf)return this.precomputed.naf;for(var t=[this],n=(1<<e)-1,r=1===n?null:this.dbl(),i=1;i<n;i++)t[i]=t[i-1].add(r);return{wnd:e,points:t}},Mc.prototype._getBeta=function(){return null},Mc.prototype.dblp=function(e){for(var t=this,n=0;n<e;n++)t=t.dbl();return t};var Bc=_c((function(e){"function"==typeof Object.create?e.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:e.exports=function(e,t){if(t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}}})),Dc=Oc.assert;function Fc(e){Pc.call(this,"short",e),this.a=new Hn(e.a,16).toRed(this.red),this.b=new Hn(e.b,16).toRed(this.red),this.tinv=this.two.redInvm(),this.zeroA=0===this.a.fromRed().cmpn(0),this.threeA=0===this.a.fromRed().sub(this.p).cmpn(-3),this.endo=this._getEndomorphism(e),this._endoWnafT1=new Array(4),this._endoWnafT2=new Array(4)}Bc(Fc,Pc);var Lc=Fc;function Uc(e,t,n,r){Pc.BasePoint.call(this,e,"affine"),null===t&&null===n?(this.x=null,this.y=null,this.inf=!0):(this.x=new Hn(t,16),this.y=new Hn(n,16),r&&(this.x.forceRed(this.curve.red),this.y.forceRed(this.curve.red)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.inf=!1)}function qc(e,t,n,r){Pc.BasePoint.call(this,e,"jacobian"),null===t&&null===n&&null===r?(this.x=this.curve.one,this.y=this.curve.one,this.z=new Hn(0)):(this.x=new Hn(t,16),this.y=new Hn(n,16),this.z=new Hn(r,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}Fc.prototype._getEndomorphism=function(e){if(this.zeroA&&this.g&&this.n&&1===this.p.modn(3)){var t,n;if(e.beta)t=new Hn(e.beta,16).toRed(this.red);else{var r=this._getEndoRoots(this.p);t=(t=r[0].cmp(r[1])<0?r[0]:r[1]).toRed(this.red)}if(e.lambda)n=new Hn(e.lambda,16);else{var i=this._getEndoRoots(this.n);0===this.g.mul(i[0]).x.cmp(this.g.x.redMul(t))?n=i[0]:(n=i[1],Dc(0===this.g.mul(n).x.cmp(this.g.x.redMul(t))))}return{beta:t,lambda:n,basis:e.basis?e.basis.map((function(e){return{a:new Hn(e.a,16),b:new Hn(e.b,16)}})):this._getEndoBasis(n)}}},Fc.prototype._getEndoRoots=function(e){var t=e===this.p?this.red:Hn.mont(e),n=new Hn(2).toRed(t).redInvm(),r=n.redNeg(),i=new Hn(3).toRed(t).redNeg().redSqrt().redMul(n);return[r.redAdd(i).fromRed(),r.redSub(i).fromRed()]},Fc.prototype._getEndoBasis=function(e){for(var t,n,r,i,a,o,s,u,c,l=this.n.ushrn(Math.floor(this.n.bitLength()/2)),d=e,f=this.n.clone(),p=new Hn(1),h=new Hn(0),m=new Hn(0),y=new Hn(1),g=0;0!==d.cmpn(0);){var b=f.div(d);u=f.sub(b.mul(d)),c=m.sub(b.mul(p));var v=y.sub(b.mul(h));if(!r&&u.cmp(l)<0)t=s.neg(),n=p,r=u.neg(),i=c;else if(r&&2==++g)break;s=u,f=d,d=u,m=p,p=c,y=h,h=v}a=u.neg(),o=c;var T=r.sqr().add(i.sqr());return a.sqr().add(o.sqr()).cmp(T)>=0&&(a=t,o=n),r.negative&&(r=r.neg(),i=i.neg()),a.negative&&(a=a.neg(),o=o.neg()),[{a:r,b:i},{a:a,b:o}]},Fc.prototype._endoSplit=function(e){var t=this.endo.basis,n=t[0],r=t[1],i=r.b.mul(e).divRound(this.n),a=n.b.neg().mul(e).divRound(this.n),o=i.mul(n.a),s=a.mul(r.a),u=i.mul(n.b),c=a.mul(r.b);return{k1:e.sub(o).sub(s),k2:u.add(c).neg()}},Fc.prototype.pointFromX=function(e,t){(e=new Hn(e,16)).red||(e=e.toRed(this.red));var n=e.redSqr().redMul(e).redIAdd(e.redMul(this.a)).redIAdd(this.b),r=n.redSqrt();if(0!==r.redSqr().redSub(n).cmp(this.zero))throw new Error("invalid point");var i=r.fromRed().isOdd();return(t&&!i||!t&&i)&&(r=r.redNeg()),this.point(e,r)},Fc.prototype.validate=function(e){if(e.inf)return!0;var t=e.x,n=e.y,r=this.a.redMul(t),i=t.redSqr().redMul(t).redIAdd(r).redIAdd(this.b);return 0===n.redSqr().redISub(i).cmpn(0)},Fc.prototype._endoWnafMulAdd=function(e,t,n){for(var r=this._endoWnafT1,i=this._endoWnafT2,a=0;a<e.length;a++){var o=this._endoSplit(t[a]),s=e[a],u=s._getBeta();o.k1.negative&&(o.k1.ineg(),s=s.neg(!0)),o.k2.negative&&(o.k2.ineg(),u=u.neg(!0)),r[2*a]=s,r[2*a+1]=u,i[2*a]=o.k1,i[2*a+1]=o.k2}for(var c=this._wnafMulAdd(1,r,i,2*a,n),l=0;l<2*a;l++)r[l]=null,i[l]=null;return c},Bc(Uc,Pc.BasePoint),Fc.prototype.point=function(e,t,n){return new Uc(this,e,t,n)},Fc.prototype.pointFromJSON=function(e,t){return Uc.fromJSON(this,e,t)},Uc.prototype._getBeta=function(){if(this.curve.endo){var e=this.precomputed;if(e&&e.beta)return e.beta;var t=this.curve.point(this.x.redMul(this.curve.endo.beta),this.y);if(e){var n=this.curve,r=function(e){return n.point(e.x.redMul(n.endo.beta),e.y)};e.beta=t,t.precomputed={beta:null,naf:e.naf&&{wnd:e.naf.wnd,points:e.naf.points.map(r)},doubles:e.doubles&&{step:e.doubles.step,points:e.doubles.points.map(r)}}}return t}},Uc.prototype.toJSON=function(){return this.precomputed?[this.x,this.y,this.precomputed&&{doubles:this.precomputed.doubles&&{step:this.precomputed.doubles.step,points:this.precomputed.doubles.points.slice(1)},naf:this.precomputed.naf&&{wnd:this.precomputed.naf.wnd,points:this.precomputed.naf.points.slice(1)}}]:[this.x,this.y]},Uc.fromJSON=function(e,t,n){"string"==typeof t&&(t=JSON.parse(t));var r=e.point(t[0],t[1],n);if(!t[2])return r;function i(t){return e.point(t[0],t[1],n)}var a=t[2];return r.precomputed={beta:null,doubles:a.doubles&&{step:a.doubles.step,points:[r].concat(a.doubles.points.map(i))},naf:a.naf&&{wnd:a.naf.wnd,points:[r].concat(a.naf.points.map(i))}},r},Uc.prototype.inspect=function(){return this.isInfinity()?"<EC Point Infinity>":"<EC Point x: "+this.x.fromRed().toString(16,2)+" y: "+this.y.fromRed().toString(16,2)+">"},Uc.prototype.isInfinity=function(){return this.inf},Uc.prototype.add=function(e){if(this.inf)return e;if(e.inf)return this;if(this.eq(e))return this.dbl();if(this.neg().eq(e))return this.curve.point(null,null);if(0===this.x.cmp(e.x))return this.curve.point(null,null);var t=this.y.redSub(e.y);0!==t.cmpn(0)&&(t=t.redMul(this.x.redSub(e.x).redInvm()));var n=t.redSqr().redISub(this.x).redISub(e.x),r=t.redMul(this.x.redSub(n)).redISub(this.y);return this.curve.point(n,r)},Uc.prototype.dbl=function(){if(this.inf)return this;var e=this.y.redAdd(this.y);if(0===e.cmpn(0))return this.curve.point(null,null);var t=this.curve.a,n=this.x.redSqr(),r=e.redInvm(),i=n.redAdd(n).redIAdd(n).redIAdd(t).redMul(r),a=i.redSqr().redISub(this.x.redAdd(this.x)),o=i.redMul(this.x.redSub(a)).redISub(this.y);return this.curve.point(a,o)},Uc.prototype.getX=function(){return this.x.fromRed()},Uc.prototype.getY=function(){return this.y.fromRed()},Uc.prototype.mul=function(e){return e=new Hn(e,16),this.isInfinity()?this:this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve.endo?this.curve._endoWnafMulAdd([this],[e]):this.curve._wnafMul(this,e)},Uc.prototype.mulAdd=function(e,t,n){var r=[this,t],i=[e,n];return this.curve.endo?this.curve._endoWnafMulAdd(r,i):this.curve._wnafMulAdd(1,r,i,2)},Uc.prototype.jmulAdd=function(e,t,n){var r=[this,t],i=[e,n];return this.curve.endo?this.curve._endoWnafMulAdd(r,i,!0):this.curve._wnafMulAdd(1,r,i,2,!0)},Uc.prototype.eq=function(e){return this===e||this.inf===e.inf&&(this.inf||0===this.x.cmp(e.x)&&0===this.y.cmp(e.y))},Uc.prototype.neg=function(e){if(this.inf)return this;var t=this.curve.point(this.x,this.y.redNeg());if(e&&this.precomputed){var n=this.precomputed,r=function(e){return e.neg()};t.precomputed={naf:n.naf&&{wnd:n.naf.wnd,points:n.naf.points.map(r)},doubles:n.doubles&&{step:n.doubles.step,points:n.doubles.points.map(r)}}}return t},Uc.prototype.toJ=function(){return this.inf?this.curve.jpoint(null,null,null):this.curve.jpoint(this.x,this.y,this.curve.one)},Bc(qc,Pc.BasePoint),Fc.prototype.jpoint=function(e,t,n){return new qc(this,e,t,n)},qc.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var e=this.z.redInvm(),t=e.redSqr(),n=this.x.redMul(t),r=this.y.redMul(t).redMul(e);return this.curve.point(n,r)},qc.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},qc.prototype.add=function(e){if(this.isInfinity())return e;if(e.isInfinity())return this;var t=e.z.redSqr(),n=this.z.redSqr(),r=this.x.redMul(t),i=e.x.redMul(n),a=this.y.redMul(t.redMul(e.z)),o=e.y.redMul(n.redMul(this.z)),s=r.redSub(i),u=a.redSub(o);if(0===s.cmpn(0))return 0!==u.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var c=s.redSqr(),l=c.redMul(s),d=r.redMul(c),f=u.redSqr().redIAdd(l).redISub(d).redISub(d),p=u.redMul(d.redISub(f)).redISub(a.redMul(l)),h=this.z.redMul(e.z).redMul(s);return this.curve.jpoint(f,p,h)},qc.prototype.mixedAdd=function(e){if(this.isInfinity())return e.toJ();if(e.isInfinity())return this;var t=this.z.redSqr(),n=this.x,r=e.x.redMul(t),i=this.y,a=e.y.redMul(t).redMul(this.z),o=n.redSub(r),s=i.redSub(a);if(0===o.cmpn(0))return 0!==s.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var u=o.redSqr(),c=u.redMul(o),l=n.redMul(u),d=s.redSqr().redIAdd(c).redISub(l).redISub(l),f=s.redMul(l.redISub(d)).redISub(i.redMul(c)),p=this.z.redMul(o);return this.curve.jpoint(d,f,p)},qc.prototype.dblp=function(e){if(0===e)return this;if(this.isInfinity())return this;if(!e)return this.dbl();var t;if(this.curve.zeroA||this.curve.threeA){var n=this;for(t=0;t<e;t++)n=n.dbl();return n}var r=this.curve.a,i=this.curve.tinv,a=this.x,o=this.y,s=this.z,u=s.redSqr().redSqr(),c=o.redAdd(o);for(t=0;t<e;t++){var l=a.redSqr(),d=c.redSqr(),f=d.redSqr(),p=l.redAdd(l).redIAdd(l).redIAdd(r.redMul(u)),h=a.redMul(d),m=p.redSqr().redISub(h.redAdd(h)),y=h.redISub(m),g=p.redMul(y);g=g.redIAdd(g).redISub(f);var b=c.redMul(s);t+1<e&&(u=u.redMul(f)),a=m,s=b,c=g}return this.curve.jpoint(a,c.redMul(i),s)},qc.prototype.dbl=function(){return this.isInfinity()?this:this.curve.zeroA?this._zeroDbl():this.curve.threeA?this._threeDbl():this._dbl()},qc.prototype._zeroDbl=function(){var e,t,n;if(this.zOne){var r=this.x.redSqr(),i=this.y.redSqr(),a=i.redSqr(),o=this.x.redAdd(i).redSqr().redISub(r).redISub(a);o=o.redIAdd(o);var s=r.redAdd(r).redIAdd(r),u=s.redSqr().redISub(o).redISub(o),c=a.redIAdd(a);c=(c=c.redIAdd(c)).redIAdd(c),e=u,t=s.redMul(o.redISub(u)).redISub(c),n=this.y.redAdd(this.y)}else{var l=this.x.redSqr(),d=this.y.redSqr(),f=d.redSqr(),p=this.x.redAdd(d).redSqr().redISub(l).redISub(f);p=p.redIAdd(p);var h=l.redAdd(l).redIAdd(l),m=h.redSqr(),y=f.redIAdd(f);y=(y=y.redIAdd(y)).redIAdd(y),e=m.redISub(p).redISub(p),t=h.redMul(p.redISub(e)).redISub(y),n=(n=this.y.redMul(this.z)).redIAdd(n)}return this.curve.jpoint(e,t,n)},qc.prototype._threeDbl=function(){var e,t,n;if(this.zOne){var r=this.x.redSqr(),i=this.y.redSqr(),a=i.redSqr(),o=this.x.redAdd(i).redSqr().redISub(r).redISub(a);o=o.redIAdd(o);var s=r.redAdd(r).redIAdd(r).redIAdd(this.curve.a),u=s.redSqr().redISub(o).redISub(o);e=u;var c=a.redIAdd(a);c=(c=c.redIAdd(c)).redIAdd(c),t=s.redMul(o.redISub(u)).redISub(c),n=this.y.redAdd(this.y)}else{var l=this.z.redSqr(),d=this.y.redSqr(),f=this.x.redMul(d),p=this.x.redSub(l).redMul(this.x.redAdd(l));p=p.redAdd(p).redIAdd(p);var h=f.redIAdd(f),m=(h=h.redIAdd(h)).redAdd(h);e=p.redSqr().redISub(m),n=this.y.redAdd(this.z).redSqr().redISub(d).redISub(l);var y=d.redSqr();y=(y=(y=y.redIAdd(y)).redIAdd(y)).redIAdd(y),t=p.redMul(h.redISub(e)).redISub(y)}return this.curve.jpoint(e,t,n)},qc.prototype._dbl=function(){var e=this.curve.a,t=this.x,n=this.y,r=this.z,i=r.redSqr().redSqr(),a=t.redSqr(),o=n.redSqr(),s=a.redAdd(a).redIAdd(a).redIAdd(e.redMul(i)),u=t.redAdd(t),c=(u=u.redIAdd(u)).redMul(o),l=s.redSqr().redISub(c.redAdd(c)),d=c.redISub(l),f=o.redSqr();f=(f=(f=f.redIAdd(f)).redIAdd(f)).redIAdd(f);var p=s.redMul(d).redISub(f),h=n.redAdd(n).redMul(r);return this.curve.jpoint(l,p,h)},qc.prototype.trpl=function(){if(!this.curve.zeroA)return this.dbl().add(this);var e=this.x.redSqr(),t=this.y.redSqr(),n=this.z.redSqr(),r=t.redSqr(),i=e.redAdd(e).redIAdd(e),a=i.redSqr(),o=this.x.redAdd(t).redSqr().redISub(e).redISub(r),s=(o=(o=(o=o.redIAdd(o)).redAdd(o).redIAdd(o)).redISub(a)).redSqr(),u=r.redIAdd(r);u=(u=(u=u.redIAdd(u)).redIAdd(u)).redIAdd(u);var c=i.redIAdd(o).redSqr().redISub(a).redISub(s).redISub(u),l=t.redMul(c);l=(l=l.redIAdd(l)).redIAdd(l);var d=this.x.redMul(s).redISub(l);d=(d=d.redIAdd(d)).redIAdd(d);var f=this.y.redMul(c.redMul(u.redISub(c)).redISub(o.redMul(s)));f=(f=(f=f.redIAdd(f)).redIAdd(f)).redIAdd(f);var p=this.z.redAdd(o).redSqr().redISub(n).redISub(s);return this.curve.jpoint(d,f,p)},qc.prototype.mul=function(e,t){return e=new Hn(e,t),this.curve._wnafMul(this,e)},qc.prototype.eq=function(e){if("affine"===e.type)return this.eq(e.toJ());if(this===e)return!0;var t=this.z.redSqr(),n=e.z.redSqr();if(0!==this.x.redMul(n).redISub(e.x.redMul(t)).cmpn(0))return!1;var r=t.redMul(this.z),i=n.redMul(e.z);return 0===this.y.redMul(i).redISub(e.y.redMul(r)).cmpn(0)},qc.prototype.eqXToP=function(e){var t=this.z.redSqr(),n=e.toRed(this.curve.red).redMul(t);if(0===this.x.cmp(n))return!0;for(var r=e.clone(),i=this.curve.redN.redMul(t);;){if(r.iadd(this.curve.n),r.cmp(this.curve.p)>=0)return!1;if(n.redIAdd(i),0===this.x.cmp(n))return!0}},qc.prototype.inspect=function(){return this.isInfinity()?"<EC JPoint Infinity>":"<EC JPoint x: "+this.x.toString(16,2)+" y: "+this.y.toString(16,2)+" z: "+this.z.toString(16,2)+">"},qc.prototype.isInfinity=function(){return 0===this.z.cmpn(0)};var jc=_c((function(e,t){var n=t;n.base=Pc,n.short=Lc,n.mont=null,n.edwards=null})),Gc=_c((function(e,t){var n,r=t,i=Oc.assert;function a(e){"short"===e.type?this.curve=new jc.short(e):"edwards"===e.type?this.curve=new jc.edwards(e):this.curve=new jc.mont(e),this.g=this.curve.g,this.n=this.curve.n,this.hash=e.hash,i(this.g.validate(),"Invalid curve"),i(this.g.mul(this.n).isInfinity(),"Invalid curve, G*N != O")}function o(e,t){Object.defineProperty(r,e,{configurable:!0,enumerable:!0,get:function(){var n=new a(t);return Object.defineProperty(r,e,{configurable:!0,enumerable:!0,value:n}),n}})}r.PresetCurve=a,o("p192",{type:"short",prime:"p192",p:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff",a:"ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc",b:"64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1",n:"ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831",hash:Ac.sha256,gRed:!1,g:["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012","07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"]}),o("p224",{type:"short",prime:"p224",p:"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001",a:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe",b:"b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4",n:"ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d",hash:Ac.sha256,gRed:!1,g:["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21","bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"]}),o("p256",{type:"short",prime:null,p:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff",a:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc",b:"5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b",n:"ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551",hash:Ac.sha256,gRed:!1,g:["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296","4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"]}),o("p384",{type:"short",prime:null,p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff",a:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc",b:"b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef",n:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973",hash:Ac.sha384,gRed:!1,g:["aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7","3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f"]}),o("p521",{type:"short",prime:null,p:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff",a:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc",b:"00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00",n:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409",hash:Ac.sha512,gRed:!1,g:["000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66","00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650"]}),o("curve25519",{type:"mont",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"76d06",b:"1",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:Ac.sha256,gRed:!1,g:["9"]}),o("ed25519",{type:"edwards",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"-1",c:"1",d:"52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:Ac.sha256,gRed:!1,g:["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a","6666666666666666666666666666666666666666666666666666666666666658"]});try{n=null.crash()}catch(e){n=void 0}o("secp256k1",{type:"short",prime:"k256",p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f",a:"0",b:"7",n:"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141",h:"1",hash:Ac.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",n]})}));function Hc(e){if(!(this instanceof Hc))return new Hc(e);this.hash=e.hash,this.predResist=!!e.predResist,this.outLen=this.hash.outSize,this.minEntropy=e.minEntropy||this.hash.hmacStrength,this._reseed=null,this.reseedInterval=null,this.K=null,this.V=null;var t=Cc.toArray(e.entropy,e.entropyEnc||"hex"),n=Cc.toArray(e.nonce,e.nonceEnc||"hex"),r=Cc.toArray(e.pers,e.persEnc||"hex");Ic(t.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(t,n,r)}var zc=Hc;Hc.prototype._init=function(e,t,n){var r=e.concat(t).concat(n);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var i=0;i<this.V.length;i++)this.K[i]=0,this.V[i]=1;this._update(r),this._reseed=1,this.reseedInterval=281474976710656},Hc.prototype._hmac=function(){return new Ac.hmac(this.hash,this.K)},Hc.prototype._update=function(e){var t=this._hmac().update(this.V).update([0]);e&&(t=t.update(e)),this.K=t.digest(),this.V=this._hmac().update(this.V).digest(),e&&(this.K=this._hmac().update(this.V).update([1]).update(e).digest(),this.V=this._hmac().update(this.V).digest())},Hc.prototype.reseed=function(e,t,n,r){"string"!=typeof t&&(r=n,n=t,t=null),e=Cc.toArray(e,t),n=Cc.toArray(n,r),Ic(e.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(e.concat(n||[])),this._reseed=1},Hc.prototype.generate=function(e,t,n,r){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");"string"!=typeof t&&(r=n,n=t,t=null),n&&(n=Cc.toArray(n,r||"hex"),this._update(n));for(var i=[];i.length<e;)this.V=this._hmac().update(this.V).digest(),i=i.concat(this.V);var a=i.slice(0,e);return this._update(n),this._reseed++,Cc.encode(a,t)};var Wc=Oc.assert;function Vc(e,t){this.ec=e,this.priv=null,this.pub=null,t.priv&&this._importPrivate(t.priv,t.privEnc),t.pub&&this._importPublic(t.pub,t.pubEnc)}var Kc=Vc;Vc.fromPublic=function(e,t,n){return t instanceof Vc?t:new Vc(e,{pub:t,pubEnc:n})},Vc.fromPrivate=function(e,t,n){return t instanceof Vc?t:new Vc(e,{priv:t,privEnc:n})},Vc.prototype.validate=function(){var e=this.getPublic();return e.isInfinity()?{result:!1,reason:"Invalid public key"}:e.validate()?e.mul(this.ec.curve.n).isInfinity()?{result:!0,reason:null}:{result:!1,reason:"Public key * N != O"}:{result:!1,reason:"Public key is not a point"}},Vc.prototype.getPublic=function(e,t){return"string"==typeof e&&(t=e,e=null),this.pub||(this.pub=this.ec.g.mul(this.priv)),t?this.pub.encode(t,e):this.pub},Vc.prototype.getPrivate=function(e){return"hex"===e?this.priv.toString(16,2):this.priv},Vc.prototype._importPrivate=function(e,t){this.priv=new Hn(e,t||16),this.priv=this.priv.umod(this.ec.curve.n)},Vc.prototype._importPublic=function(e,t){if(e.x||e.y)return"mont"===this.ec.curve.type?Wc(e.x,"Need x coordinate"):"short"!==this.ec.curve.type&&"edwards"!==this.ec.curve.type||Wc(e.x&&e.y,"Need both x and y coordinate"),void(this.pub=this.ec.curve.point(e.x,e.y));this.pub=this.ec.curve.decodePoint(e,t)},Vc.prototype.derive=function(e){return e.validate()||Wc(e.validate(),"public point not validated"),e.mul(this.priv).getX()},Vc.prototype.sign=function(e,t,n){return this.ec.sign(e,this,t,n)},Vc.prototype.verify=function(e,t){return this.ec.verify(e,t,this)},Vc.prototype.inspect=function(){return"<Key priv: "+(this.priv&&this.priv.toString(16,2))+" pub: "+(this.pub&&this.pub.inspect())+" >"};var Xc=Oc.assert;function Jc(e,t){if(e instanceof Jc)return e;this._importDER(e,t)||(Xc(e.r&&e.s,"Signature without r or s"),this.r=new Hn(e.r,16),this.s=new Hn(e.s,16),void 0===e.recoveryParam?this.recoveryParam=null:this.recoveryParam=e.recoveryParam)}var Yc=Jc;function Qc(){this.place=0}function $c(e,t){var n=e[t.place++];if(!(128&n))return n;var r=15&n;if(0===r||r>4)return!1;for(var i=0,a=0,o=t.place;a<r;a++,o++)i<<=8,i|=e[o],i>>>=0;return!(i<=127)&&(t.place=o,i)}function Zc(e){for(var t=0,n=e.length-1;!e[t]&&!(128&e[t+1])&&t<n;)t++;return 0===t?e:e.slice(t)}function el(e,t){if(t<128)e.push(t);else{var n=1+(Math.log(t)/Math.LN2>>>3);for(e.push(128|n);--n;)e.push(t>>>(n<<3)&255);e.push(t)}}Jc.prototype._importDER=function(e,t){e=Oc.toArray(e,t);var n=new Qc;if(48!==e[n.place++])return!1;var r=$c(e,n);if(!1===r)return!1;if(r+n.place!==e.length)return!1;if(2!==e[n.place++])return!1;var i=$c(e,n);if(!1===i)return!1;var a=e.slice(n.place,i+n.place);if(n.place+=i,2!==e[n.place++])return!1;var o=$c(e,n);if(!1===o)return!1;if(e.length!==o+n.place)return!1;var s=e.slice(n.place,o+n.place);if(0===a[0]){if(!(128&a[1]))return!1;a=a.slice(1)}if(0===s[0]){if(!(128&s[1]))return!1;s=s.slice(1)}return this.r=new Hn(a),this.s=new Hn(s),this.recoveryParam=null,!0},Jc.prototype.toDER=function(e){var t=this.r.toArray(),n=this.s.toArray();for(128&t[0]&&(t=[0].concat(t)),128&n[0]&&(n=[0].concat(n)),t=Zc(t),n=Zc(n);!(n[0]||128&n[1]);)n=n.slice(1);var r=[2];el(r,t.length),(r=r.concat(t)).push(2),el(r,n.length);var i=r.concat(n),a=[48];return el(a,i.length),a=a.concat(i),Oc.encode(a,e)};var tl=function(){throw new Error("unsupported")},nl=Oc.assert;function rl(e){if(!(this instanceof rl))return new rl(e);"string"==typeof e&&(nl(Object.prototype.hasOwnProperty.call(Gc,e),"Unknown curve "+e),e=Gc[e]),e instanceof Gc.PresetCurve&&(e={curve:e}),this.curve=e.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=e.curve.g,this.g.precompute(e.curve.n.bitLength()+1),this.hash=e.hash||e.curve.hash}var il=rl;rl.prototype.keyPair=function(e){return new Kc(this,e)},rl.prototype.keyFromPrivate=function(e,t){return Kc.fromPrivate(this,e,t)},rl.prototype.keyFromPublic=function(e,t){return Kc.fromPublic(this,e,t)},rl.prototype.genKeyPair=function(e){e||(e={});for(var t=new zc({hash:this.hash,pers:e.pers,persEnc:e.persEnc||"utf8",entropy:e.entropy||tl(this.hash.hmacStrength),entropyEnc:e.entropy&&e.entropyEnc||"utf8",nonce:this.n.toArray()}),n=this.n.byteLength(),r=this.n.sub(new Hn(2));;){var i=new Hn(t.generate(n));if(!(i.cmp(r)>0))return i.iaddn(1),this.keyFromPrivate(i)}},rl.prototype._truncateToN=function(e,t){var n=8*e.byteLength()-this.n.bitLength();return n>0&&(e=e.ushrn(n)),!t&&e.cmp(this.n)>=0?e.sub(this.n):e},rl.prototype.sign=function(e,t,n,r){"object"==typeof n&&(r=n,n=null),r||(r={}),t=this.keyFromPrivate(t,n),e=this._truncateToN(new Hn(e,16));for(var i=this.n.byteLength(),a=t.getPrivate().toArray("be",i),o=e.toArray("be",i),s=new zc({hash:this.hash,entropy:a,nonce:o,pers:r.pers,persEnc:r.persEnc||"utf8"}),u=this.n.sub(new Hn(1)),c=0;;c++){var l=r.k?r.k(c):new Hn(s.generate(this.n.byteLength()));if(!((l=this._truncateToN(l,!0)).cmpn(1)<=0||l.cmp(u)>=0)){var d=this.g.mul(l);if(!d.isInfinity()){var f=d.getX(),p=f.umod(this.n);if(0!==p.cmpn(0)){var h=l.invm(this.n).mul(p.mul(t.getPrivate()).iadd(e));if(0!==(h=h.umod(this.n)).cmpn(0)){var m=(d.getY().isOdd()?1:0)|(0!==f.cmp(p)?2:0);return r.canonical&&h.cmp(this.nh)>0&&(h=this.n.sub(h),m^=1),new Yc({r:p,s:h,recoveryParam:m})}}}}}},rl.prototype.verify=function(e,t,n,r){e=this._truncateToN(new Hn(e,16)),n=this.keyFromPublic(n,r);var i=(t=new Yc(t,"hex")).r,a=t.s;if(i.cmpn(1)<0||i.cmp(this.n)>=0)return!1;if(a.cmpn(1)<0||a.cmp(this.n)>=0)return!1;var o,s=a.invm(this.n),u=s.mul(e).umod(this.n),c=s.mul(i).umod(this.n);return this.curve._maxwellTrick?!(o=this.g.jmulAdd(u,n.getPublic(),c)).isInfinity()&&o.eqXToP(i):!(o=this.g.mulAdd(u,n.getPublic(),c)).isInfinity()&&0===o.getX().umod(this.n).cmp(i)},rl.prototype.recoverPubKey=function(e,t,n,r){nl((3&n)===n,"The recovery param is more than two bits"),t=new Yc(t,r);var i=this.n,a=new Hn(e),o=t.r,s=t.s,u=1&n,c=n>>1;if(o.cmp(this.curve.p.umod(this.curve.n))>=0&&c)throw new Error("Unable to find sencond key candinate");o=c?this.curve.pointFromX(o.add(this.curve.n),u):this.curve.pointFromX(o,u);var l=t.r.invm(i),d=i.sub(a).mul(l).umod(i),f=s.mul(l).umod(i);return this.g.mulAdd(d,o,f)},rl.prototype.getKeyRecoveryParam=function(e,t,n,r){if(null!==(t=new Yc(t,r)).recoveryParam)return t.recoveryParam;for(var i=0;i<4;i++){var a;try{a=this.recoverPubKey(e,t,i)}catch(e){continue}if(a.eq(n))return i}throw new Error("Unable to find valid recovery factor")};var al=_c((function(e,t){var n=t;n.version="6.5.4",n.utils=Oc,n.rand=function(){throw new Error("unsupported")},n.curve=jc,n.curves=Gc,n.ec=il,n.eddsa=null})),ol=al.ec;const sl=new Zn("signing-key/5.7.0");let ul=null;function cl(){return ul||(ul=new ol("secp256k1")),ul}class ll{constructor(e){Jr(this,"curve","secp256k1"),Jr(this,"privateKey",pr(e)),32!==hr(this.privateKey)&&sl.throwArgumentError("invalid private key","privateKey","[[ REDACTED ]]");const t=cl().keyFromPrivate(sr(this.privateKey));Jr(this,"publicKey","0x"+t.getPublic(!1,"hex")),Jr(this,"compressedPublicKey","0x"+t.getPublic(!0,"hex")),Jr(this,"_isSigningKey",!0)}_addPoint(e){const t=cl().keyFromPublic(sr(this.publicKey)),n=cl().keyFromPublic(sr(e));return"0x"+t.pub.add(n.pub).encodeCompressed("hex")}signDigest(e){const t=cl().keyFromPrivate(sr(this.privateKey)),n=sr(e);32!==n.length&&sl.throwArgumentError("bad digest length","digest",e);const r=t.sign(n,{canonical:!0});return Tr({recoveryParam:r.recoveryParam,r:vr("0x"+r.r.toString(16),32),s:vr("0x"+r.s.toString(16),32)})}computeSharedSecret(e){const t=cl().keyFromPrivate(sr(this.privateKey)),n=cl().keyFromPublic(sr(fl(e)));return vr("0x"+t.derive(n.getPublic()).toString(16),32)}static isSigningKey(e){return!(!e||!e._isSigningKey)}}function dl(e,t){const n=Tr(t),r={r:sr(n.r),s:sr(n.s)};return"0x"+cl().recoverPubKey(sr(e),r,n.recoveryParam).encode("hex",!1)}function fl(e,t){const n=sr(e);if(32===n.length){const e=new ll(n);return t?"0x"+cl().keyFromPrivate(n).getPublic(!0,"hex"):e.publicKey}return 33===n.length?t?pr(n):"0x"+cl().keyFromPublic(n).getPublic(!1,"hex"):65===n.length?t?"0x"+cl().keyFromPublic(n).getPublic(!0,"hex"):pr(n):sl.throwArgumentError("invalid public or private key","key","[REDACTED]")}var pl=Object.freeze({__proto__:null,SigningKey:ll,computePublicKey:fl,recoverPublicKey:dl});const hl=new Zn("transactions/5.7.0");var ml;function yl(e){return"0x"===e?null:$i(e)}function gl(e){return"0x"===e?ga:kr.from(e)}!function(e){e[e.legacy=0]="legacy",e[e.eip2930=1]="eip2930",e[e.eip1559=2]="eip1559"}(ml||(ml={}));const bl=[{name:"nonce",maxLength:32,numeric:!0},{name:"gasPrice",maxLength:32,numeric:!0},{name:"gasLimit",maxLength:32,numeric:!0},{name:"to",length:20},{name:"value",maxLength:32,numeric:!0},{name:"data"}],vl={chainId:!0,data:!0,gasLimit:!0,gasPrice:!0,nonce:!0,to:!0,type:!0,value:!0};function Tl(e){return $i(mr(Di(mr(fl(e),1)),12))}function wl(e,t){return Tl(dl(sr(e),t))}function El(e,t){const n=cr(kr.from(e).toHexString());return n.length>32&&hl.throwArgumentError("invalid length for "+t,"transaction:"+t,e),n}function Al(e,t){return{address:$i(e),storageKeys:(t||[]).map(((t,n)=>(32!==hr(t)&&hl.throwArgumentError("invalid access list storageKey",`accessList[${e}:${n}]`,t),t.toLowerCase())))}}function _l(e){if(Array.isArray(e))return e.map(((e,t)=>Array.isArray(e)?(e.length>2&&hl.throwArgumentError("access list expected to be [ address, storageKeys[] ]",`value[${t}]`,e),Al(e[0],e[1])):Al(e.address,e.storageKeys)));const t=Object.keys(e).map((t=>{const n=e[t].reduce(((e,t)=>(e[t]=!0,e)),{});return Al(t,Object.keys(n).sort())}));return t.sort(((e,t)=>e.address.localeCompare(t.address))),t}function Il(e){return _l(e).map((e=>[e.address,e.storageKeys]))}function Rl(e,t){if(null!=e.gasPrice){const t=kr.from(e.gasPrice),n=kr.from(e.maxFeePerGas||0);t.eq(n)||hl.throwArgumentError("mismatch EIP-1559 gasPrice != maxFeePerGas","tx",{gasPrice:t,maxFeePerGas:n})}const n=[El(e.chainId||0,"chainId"),El(e.nonce||0,"nonce"),El(e.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),El(e.maxFeePerGas||0,"maxFeePerGas"),El(e.gasLimit||0,"gasLimit"),null!=e.to?$i(e.to):"0x",El(e.value||0,"value"),e.data||"0x",Il(e.accessList||[])];if(t){const e=Tr(t);n.push(El(e.recoveryParam,"recoveryParam")),n.push(cr(e.r)),n.push(cr(e.s))}return yr(["0x02",Gi(n)])}function Cl(e,t){const n=[El(e.chainId||0,"chainId"),El(e.nonce||0,"nonce"),El(e.gasPrice||0,"gasPrice"),El(e.gasLimit||0,"gasLimit"),null!=e.to?$i(e.to):"0x",El(e.value||0,"value"),e.data||"0x",Il(e.accessList||[])];if(t){const e=Tr(t);n.push(El(e.recoveryParam,"recoveryParam")),n.push(cr(e.r)),n.push(cr(e.s))}return yr(["0x01",Gi(n)])}function Ol(e,t){if(null==e.type||0===e.type)return null!=e.accessList&&hl.throwArgumentError("untyped transactions do not support accessList; include type: 1","transaction",e),function(e,t){$r(e,vl);const n=[];bl.forEach((function(t){let r=e[t.name]||[];const i={};t.numeric&&(i.hexPad="left"),r=sr(pr(r,i)),t.length&&r.length!==t.length&&r.length>0&&hl.throwArgumentError("invalid length for "+t.name,"transaction:"+t.name,r),t.maxLength&&(r=cr(r),r.length>t.maxLength&&hl.throwArgumentError("invalid length for "+t.name,"transaction:"+t.name,r)),n.push(pr(r))}));let r=0;if(null!=e.chainId?(r=e.chainId,"number"!=typeof r&&hl.throwArgumentError("invalid transaction.chainId","transaction",e)):t&&!ir(t)&&t.v>28&&(r=Math.floor((t.v-35)/2)),0!==r&&(n.push(pr(r)),n.push("0x"),n.push("0x")),!t)return Gi(n);const i=Tr(t);let a=27+i.recoveryParam;return 0!==r?(n.pop(),n.pop(),n.pop(),a+=2*r+8,i.v>28&&i.v!==a&&hl.throwArgumentError("transaction.chainId/signature.v mismatch","signature",t)):i.v!==a&&hl.throwArgumentError("transaction.chainId/signature.v mismatch","signature",t),n.push(pr(a)),n.push(cr(sr(i.r))),n.push(cr(sr(i.s))),Gi(n)}(e,t);switch(e.type){case 1:return Cl(e,t);case 2:return Rl(e,t)}return hl.throwError(`unsupported transaction type: ${e.type}`,Zn.errors.UNSUPPORTED_OPERATION,{operation:"serializeTransaction",transactionType:e.type})}function kl(e,t,n){try{const n=gl(t[0]).toNumber();if(0!==n&&1!==n)throw new Error("bad recid");e.v=n}catch(e){hl.throwArgumentError("invalid v for transaction type: 1","v",t[0])}e.r=vr(t[1],32),e.s=vr(t[2],32);try{const t=Di(n(e));e.from=wl(t,{r:e.r,s:e.s,recoveryParam:e.v})}catch(e){}}function Sl(e){const t=sr(e);if(t[0]>127)return function(e){const t=Wi(e);9!==t.length&&6!==t.length&&hl.throwArgumentError("invalid raw transaction","rawTransaction",e);const n={nonce:gl(t[0]).toNumber(),gasPrice:gl(t[1]),gasLimit:gl(t[2]),to:yl(t[3]),value:gl(t[4]),data:t[5],chainId:0};if(6===t.length)return n;try{n.v=kr.from(t[6]).toNumber()}catch(e){return n}if(n.r=vr(t[7],32),n.s=vr(t[8],32),kr.from(n.r).isZero()&&kr.from(n.s).isZero())n.chainId=n.v,n.v=0;else{n.chainId=Math.floor((n.v-35)/2),n.chainId<0&&(n.chainId=0);let r=n.v-27;const i=t.slice(0,6);0!==n.chainId&&(i.push(pr(n.chainId)),i.push("0x"),i.push("0x"),r-=2*n.chainId+8);const a=Di(Gi(i));try{n.from=wl(a,{r:pr(n.r),s:pr(n.s),recoveryParam:r})}catch(e){}n.hash=Di(e)}return n.type=null,n}(t);switch(t[0]){case 1:return function(e){const t=Wi(e.slice(1));8!==t.length&&11!==t.length&&hl.throwArgumentError("invalid component count for transaction type: 1","payload",pr(e));const n={type:1,chainId:gl(t[0]).toNumber(),nonce:gl(t[1]).toNumber(),gasPrice:gl(t[2]),gasLimit:gl(t[3]),to:yl(t[4]),value:gl(t[5]),data:t[6],accessList:_l(t[7])};return 8===t.length||(n.hash=Di(e),kl(n,t.slice(8),Cl)),n}(t);case 2:return function(e){const t=Wi(e.slice(1));9!==t.length&&12!==t.length&&hl.throwArgumentError("invalid component count for transaction type: 2","payload",pr(e));const n=gl(t[2]),r=gl(t[3]),i={type:2,chainId:gl(t[0]).toNumber(),nonce:gl(t[1]).toNumber(),maxPriorityFeePerGas:n,maxFeePerGas:r,gasPrice:null,gasLimit:gl(t[4]),to:yl(t[5]),value:gl(t[6]),data:t[7],accessList:_l(t[8])};return 9===t.length||(i.hash=Di(e),kl(i,t.slice(9),Rl)),i}(t)}return hl.throwError(`unsupported transaction type: ${t[0]}`,Zn.errors.UNSUPPORTED_OPERATION,{operation:"parseTransaction",transactionType:t[0]})}var Nl=Object.freeze({__proto__:null,get TransactionTypes(){return ml},accessListify:_l,computeAddress:Tl,parse:Sl,recoverAddress:wl,serialize:Ol});var xl=window&&window.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};const Pl=new Zn("contracts/5.7.0"),Ml={chainId:!0,data:!0,from:!0,gasLimit:!0,gasPrice:!0,nonce:!0,to:!0,value:!0,type:!0,accessList:!0,maxFeePerGas:!0,maxPriorityFeePerGas:!0,customData:!0,ccipReadEnabled:!0};function Bl(e,t){return xl(this,void 0,void 0,(function*(){const n=yield t;"string"!=typeof n&&Pl.throwArgumentError("invalid address or ENS name","name",n);try{return $i(n)}catch(e){}e||Pl.throwError("a provider or signer is needed to resolve ENS names",Zn.errors.UNSUPPORTED_OPERATION,{operation:"resolveName"});const r=yield e.resolveName(n);return null==r&&Pl.throwArgumentError("resolver or addr is not configured for ENS name","name",n),r}))}function Dl(e,t,n){return xl(this,void 0,void 0,(function*(){return Array.isArray(n)?yield Promise.all(n.map(((n,r)=>Dl(e,Array.isArray(t)?t[r]:t[n.name],n)))):"address"===n.type?yield Bl(e,t):"tuple"===n.type?yield Dl(e,t,n.components):"array"===n.baseType?Array.isArray(t)?yield Promise.all(t.map((t=>Dl(e,t,n.arrayChildren)))):Promise.reject(Pl.makeError("invalid value for array",Zn.errors.INVALID_ARGUMENT,{argument:"value",value:t})):t}))}function Fl(e,t,n){return xl(this,void 0,void 0,(function*(){let r={};n.length===t.inputs.length+1&&"object"==typeof n[n.length-1]&&(r=Zr(n.pop())),Pl.checkArgumentCount(n.length,t.inputs.length,"passed to contract"),e.signer?r.from?r.from=Qr({override:Bl(e.signer,r.from),signer:e.signer.getAddress()}).then((e=>xl(this,void 0,void 0,(function*(){return $i(e.signer)!==e.override&&Pl.throwError("Contract with a Signer cannot override from",Zn.errors.UNSUPPORTED_OPERATION,{operation:"overrides.from"}),e.override})))):r.from=e.signer.getAddress():r.from&&(r.from=Bl(e.provider,r.from));const i=yield Qr({args:Dl(e.signer||e.provider,n,t.inputs),address:e.resolvedAddress,overrides:Qr(r)||{}}),a=e.interface.encodeFunctionData(t,i.args),o={data:a,to:i.address},s=i.overrides;if(null!=s.nonce&&(o.nonce=kr.from(s.nonce).toNumber()),null!=s.gasLimit&&(o.gasLimit=kr.from(s.gasLimit)),null!=s.gasPrice&&(o.gasPrice=kr.from(s.gasPrice)),null!=s.maxFeePerGas&&(o.maxFeePerGas=kr.from(s.maxFeePerGas)),null!=s.maxPriorityFeePerGas&&(o.maxPriorityFeePerGas=kr.from(s.maxPriorityFeePerGas)),null!=s.from&&(o.from=s.from),null!=s.type&&(o.type=s.type),null!=s.accessList&&(o.accessList=_l(s.accessList)),null==o.gasLimit&&null!=t.gas){let e=21e3;const n=sr(a);for(let t=0;t<n.length;t++)e+=4,n[t]&&(e+=64);o.gasLimit=kr.from(t.gas).add(e)}if(s.value){const e=kr.from(s.value);e.isZero()||t.payable||Pl.throwError("non-payable method cannot override value",Zn.errors.UNSUPPORTED_OPERATION,{operation:"overrides.value",value:r.value}),o.value=e}s.customData&&(o.customData=Zr(s.customData)),s.ccipReadEnabled&&(o.ccipReadEnabled=!!s.ccipReadEnabled),delete r.nonce,delete r.gasLimit,delete r.gasPrice,delete r.from,delete r.value,delete r.type,delete r.accessList,delete r.maxFeePerGas,delete r.maxPriorityFeePerGas,delete r.customData,delete r.ccipReadEnabled;const u=Object.keys(r).filter((e=>null!=r[e]));return u.length&&Pl.throwError(`cannot override ${u.map((e=>JSON.stringify(e))).join(",")}`,Zn.errors.UNSUPPORTED_OPERATION,{operation:"overrides",overrides:u}),o}))}function Ll(e,t){const n=t.wait.bind(t);t.wait=t=>n(t).then((t=>(t.events=t.logs.map((n=>{let r=ri(n),i=null;try{i=e.interface.parseLog(n)}catch(e){}return i&&(r.args=i.args,r.decode=(t,n)=>e.interface.decodeEventLog(i.eventFragment,t,n),r.event=i.name,r.eventSignature=i.signature),r.removeListener=()=>e.provider,r.getBlock=()=>e.provider.getBlock(t.blockHash),r.getTransaction=()=>e.provider.getTransaction(t.transactionHash),r.getTransactionReceipt=()=>Promise.resolve(t),r})),t)))}function Ul(e,t,n){const r=e.signer||e.provider;return function(...i){return xl(this,void 0,void 0,(function*(){let a;if(i.length===t.inputs.length+1&&"object"==typeof i[i.length-1]){const e=Zr(i.pop());null!=e.blockTag&&(a=yield e.blockTag),delete e.blockTag,i.push(e)}null!=e.deployTransaction&&(yield e._deployed(a));const o=yield Fl(e,t,i),s=yield r.call(o,a);try{let r=e.interface.decodeFunctionResult(t,s);return n&&1===t.outputs.length&&(r=r[0]),r}catch(t){throw t.code===Zn.errors.CALL_EXCEPTION&&(t.address=e.address,t.args=i,t.transaction=o),t}}))}}function ql(e,t,n){return t.constant?Ul(e,t,n):function(e,t){return function(...n){return xl(this,void 0,void 0,(function*(){e.signer||Pl.throwError("sending a transaction requires a signer",Zn.errors.UNSUPPORTED_OPERATION,{operation:"sendTransaction"}),null!=e.deployTransaction&&(yield e._deployed());const r=yield Fl(e,t,n),i=yield e.signer.sendTransaction(r);return Ll(e,i),i}))}}(e,t)}function jl(e){return!e.address||null!=e.topics&&0!==e.topics.length?(e.address||"*")+"@"+(e.topics?e.topics.map((e=>Array.isArray(e)?e.join("|"):e)).join(":"):""):"*"}let Gl=class{constructor(e,t){Jr(this,"tag",e),Jr(this,"filter",t),this._listeners=[]}addListener(e,t){this._listeners.push({listener:e,once:t})}removeListener(e){let t=!1;this._listeners=this._listeners.filter((n=>!(!t&&n.listener===e)||(t=!0,!1)))}removeAllListeners(){this._listeners=[]}listeners(){return this._listeners.map((e=>e.listener))}listenerCount(){return this._listeners.length}run(e){const t=this.listenerCount();return this._listeners=this._listeners.filter((t=>{const n=e.slice();return setTimeout((()=>{t.listener.apply(this,n)}),0),!t.once})),t}prepareEvent(e){}getEmit(e){return[e]}},Hl=class extends Gl{constructor(){super("error",null)}},zl=class extends Gl{constructor(e,t,n,r){const i={address:e};let a=t.getEventTopic(n);r?(a!==r[0]&&Pl.throwArgumentError("topic mismatch","topics",r),i.topics=r.slice()):i.topics=[a],super(jl(i),i),Jr(this,"address",e),Jr(this,"interface",t),Jr(this,"fragment",n)}prepareEvent(e){super.prepareEvent(e),e.event=this.fragment.name,e.eventSignature=this.fragment.format(),e.decode=(e,t)=>this.interface.decodeEventLog(this.fragment,e,t);try{e.args=this.interface.decodeEventLog(this.fragment,e.data,e.topics)}catch(t){e.args=null,e.decodeError=t}}getEmit(e){const t=Ni(e.args);if(t.length)throw t[0].error;const n=(e.args||[]).slice();return n.push(e),n}},Wl=class extends Gl{constructor(e,t){super("*",{address:e}),Jr(this,"address",e),Jr(this,"interface",t)}prepareEvent(e){super.prepareEvent(e);try{const t=this.interface.parseLog(e);e.event=t.name,e.eventSignature=t.signature,e.decode=(e,n)=>this.interface.decodeEventLog(t.eventFragment,e,n),e.args=t.args}catch(e){}}},Vl=class{constructor(e,t,n){Jr(this,"interface",Yr(new.target,"getInterface")(t)),null==n?(Jr(this,"provider",null),Jr(this,"signer",null)):Es.isSigner(n)?(Jr(this,"provider",n.provider||null),Jr(this,"signer",n)):gs.isProvider(n)?(Jr(this,"provider",n),Jr(this,"signer",null)):Pl.throwArgumentError("invalid signer or provider","signerOrProvider",n),Jr(this,"callStatic",{}),Jr(this,"estimateGas",{}),Jr(this,"functions",{}),Jr(this,"populateTransaction",{}),Jr(this,"filters",{});{const e={};Object.keys(this.interface.events).forEach((t=>{const n=this.interface.events[t];Jr(this.filters,t,((...e)=>({address:this.address,topics:this.interface.encodeFilterTopics(n,e)}))),e[n.name]||(e[n.name]=[]),e[n.name].push(t)})),Object.keys(e).forEach((t=>{const n=e[t];1===n.length?Jr(this.filters,t,this.filters[n[0]]):Pl.warn(`Duplicate definition of ${t} (${n.join(", ")})`)}))}if(Jr(this,"_runningEvents",{}),Jr(this,"_wrappedEmits",{}),null==e&&Pl.throwArgumentError("invalid contract address or ENS name","addressOrName",e),Jr(this,"address",e),this.provider)Jr(this,"resolvedAddress",Bl(this.provider,e));else try{Jr(this,"resolvedAddress",Promise.resolve($i(e)))}catch(e){Pl.throwError("provider is required to use ENS name as contract address",Zn.errors.UNSUPPORTED_OPERATION,{operation:"new Contract"})}this.resolvedAddress.catch((e=>{}));const r={},i={};Object.keys(this.interface.functions).forEach((e=>{const t=this.interface.functions[e];if(i[e])Pl.warn(`Duplicate ABI entry for ${JSON.stringify(e)}`);else{i[e]=!0;{const n=t.name;r[`%${n}`]||(r[`%${n}`]=[]),r[`%${n}`].push(e)}null==this[e]&&Jr(this,e,ql(this,t,!0)),null==this.functions[e]&&Jr(this.functions,e,ql(this,t,!1)),null==this.callStatic[e]&&Jr(this.callStatic,e,Ul(this,t,!0)),null==this.populateTransaction[e]&&Jr(this.populateTransaction,e,function(e,t){return function(...n){return Fl(e,t,n)}}(this,t)),null==this.estimateGas[e]&&Jr(this.estimateGas,e,function(e,t){const n=e.signer||e.provider;return function(...r){return xl(this,void 0,void 0,(function*(){n||Pl.throwError("estimate require a provider or signer",Zn.errors.UNSUPPORTED_OPERATION,{operation:"estimateGas"});const i=yield Fl(e,t,r);return yield n.estimateGas(i)}))}}(this,t))}})),Object.keys(r).forEach((e=>{const t=r[e];if(t.length>1)return;e=e.substring(1);const n=t[0];try{null==this[e]&&Jr(this,e,this[n])}catch(e){}null==this.functions[e]&&Jr(this.functions,e,this.functions[n]),null==this.callStatic[e]&&Jr(this.callStatic,e,this.callStatic[n]),null==this.populateTransaction[e]&&Jr(this.populateTransaction,e,this.populateTransaction[n]),null==this.estimateGas[e]&&Jr(this.estimateGas,e,this.estimateGas[n])}))}static getContractAddress(e){return ta(e)}static getInterface(e){return fs.isInterface(e)?e:new fs(e)}deployed(){return this._deployed()}_deployed(e){return this._deployedPromise||(this.deployTransaction?this._deployedPromise=this.deployTransaction.wait().then((()=>this)):this._deployedPromise=this.provider.getCode(this.address,e).then((e=>("0x"===e&&Pl.throwError("contract not deployed",Zn.errors.UNSUPPORTED_OPERATION,{contractAddress:this.address,operation:"getDeployed"}),this)))),this._deployedPromise}fallback(e){this.signer||Pl.throwError("sending a transactions require a signer",Zn.errors.UNSUPPORTED_OPERATION,{operation:"sendTransaction(fallback)"});const t=Zr(e||{});return["from","to"].forEach((function(e){null!=t[e]&&Pl.throwError("cannot override "+e,Zn.errors.UNSUPPORTED_OPERATION,{operation:e})})),t.to=this.resolvedAddress,this.deployed().then((()=>this.signer.sendTransaction(t)))}connect(e){"string"==typeof e&&(e=new As(e,this.provider));const t=new this.constructor(this.address,this.interface,e);return this.deployTransaction&&Jr(t,"deployTransaction",this.deployTransaction),t}attach(e){return new this.constructor(e,this.interface,this.signer||this.provider)}static isIndexed(e){return cs.isIndexed(e)}_normalizeRunningEvent(e){return this._runningEvents[e.tag]?this._runningEvents[e.tag]:e}_getRunningEvent(e){if("string"==typeof e){if("error"===e)return this._normalizeRunningEvent(new Hl);if("event"===e)return this._normalizeRunningEvent(new Gl("event",null));if("*"===e)return this._normalizeRunningEvent(new Wl(this.address,this.interface));const t=this.interface.getEvent(e);return this._normalizeRunningEvent(new zl(this.address,this.interface,t))}if(e.topics&&e.topics.length>0){try{const t=e.topics[0];if("string"!=typeof t)throw new Error("invalid topic");const n=this.interface.getEvent(t);return this._normalizeRunningEvent(new zl(this.address,this.interface,n,e.topics))}catch(e){}const t={address:this.address,topics:e.topics};return this._normalizeRunningEvent(new Gl(jl(t),t))}return this._normalizeRunningEvent(new Wl(this.address,this.interface))}_checkRunningEvents(e){if(0===e.listenerCount()){delete this._runningEvents[e.tag];const t=this._wrappedEmits[e.tag];t&&e.filter&&(this.provider.off(e.filter,t),delete this._wrappedEmits[e.tag])}}_wrapEvent(e,t,n){const r=ri(t);return r.removeListener=()=>{n&&(e.removeListener(n),this._checkRunningEvents(e))},r.getBlock=()=>this.provider.getBlock(t.blockHash),r.getTransaction=()=>this.provider.getTransaction(t.transactionHash),r.getTransactionReceipt=()=>this.provider.getTransactionReceipt(t.transactionHash),e.prepareEvent(r),r}_addEventListener(e,t,n){if(this.provider||Pl.throwError("events require a provider or a signer with a provider",Zn.errors.UNSUPPORTED_OPERATION,{operation:"once"}),e.addListener(t,n),this._runningEvents[e.tag]=e,!this._wrappedEmits[e.tag]){const n=n=>{let r=this._wrapEvent(e,n,t);if(null==r.decodeError)try{const t=e.getEmit(r);this.emit(e.filter,...t)}catch(e){r.decodeError=e.error}null!=e.filter&&this.emit("event",r),null!=r.decodeError&&this.emit("error",r.decodeError,r)};this._wrappedEmits[e.tag]=n,null!=e.filter&&this.provider.on(e.filter,n)}}queryFilter(e,t,n){const r=this._getRunningEvent(e),i=Zr(r.filter);return"string"==typeof t&&dr(t,32)?(null!=n&&Pl.throwArgumentError("cannot specify toBlock with blockhash","toBlock",n),i.blockHash=t):(i.fromBlock=null!=t?t:0,i.toBlock=null!=n?n:"latest"),this.provider.getLogs(i).then((e=>e.map((e=>this._wrapEvent(r,e,null)))))}on(e,t){return this._addEventListener(this._getRunningEvent(e),t,!1),this}once(e,t){return this._addEventListener(this._getRunningEvent(e),t,!0),this}emit(e,...t){if(!this.provider)return!1;const n=this._getRunningEvent(e),r=n.run(t)>0;return this._checkRunningEvents(n),r}listenerCount(e){return this.provider?null==e?Object.keys(this._runningEvents).reduce(((e,t)=>e+this._runningEvents[t].listenerCount()),0):this._getRunningEvent(e).listenerCount():0}listeners(e){if(!this.provider)return[];if(null==e){const e=[];for(let t in this._runningEvents)this._runningEvents[t].listeners().forEach((t=>{e.push(t)}));return e}return this._getRunningEvent(e).listeners()}removeAllListeners(e){if(!this.provider)return this;if(null==e){for(const e in this._runningEvents){const t=this._runningEvents[e];t.removeAllListeners(),this._checkRunningEvents(t)}return this}const t=this._getRunningEvent(e);return t.removeAllListeners(),this._checkRunningEvents(t),this}off(e,t){if(!this.provider)return this;const n=this._getRunningEvent(e);return n.removeListener(t),this._checkRunningEvents(n),this}removeListener(e,t){return this.off(e,t)}},Kl=class extends Vl{};class Xl{constructor(e,t,n){let r=null;r="string"==typeof t?t:or(t)?pr(t):t&&"string"==typeof t.object?t.object:"!","0x"!==r.substring(0,2)&&(r="0x"+r),(!dr(r)||r.length%2)&&Pl.throwArgumentError("invalid bytecode","bytecode",t),n&&!Es.isSigner(n)&&Pl.throwArgumentError("invalid signer","signer",n),Jr(this,"bytecode",r),Jr(this,"interface",Yr(new.target,"getInterface")(e)),Jr(this,"signer",n||null)}getDeployTransaction(...e){let t={};if(e.length===this.interface.deploy.inputs.length+1&&"object"==typeof e[e.length-1]){t=Zr(e.pop());for(const e in t)if(!Ml[e])throw new Error("unknown transaction override "+e)}if(["data","from","to"].forEach((e=>{null!=t[e]&&Pl.throwError("cannot override "+e,Zn.errors.UNSUPPORTED_OPERATION,{operation:e})})),t.value){kr.from(t.value).isZero()||this.interface.deploy.payable||Pl.throwError("non-payable constructor cannot override value",Zn.errors.UNSUPPORTED_OPERATION,{operation:"overrides.value",value:t.value})}return Pl.checkArgumentCount(e.length,this.interface.deploy.inputs.length," in Contract constructor"),t.data=pr(ur([this.bytecode,this.interface.encodeDeploy(e)])),t}deploy(...e){return xl(this,void 0,void 0,(function*(){let t={};e.length===this.interface.deploy.inputs.length+1&&(t=e.pop()),Pl.checkArgumentCount(e.length,this.interface.deploy.inputs.length," in Contract constructor");const n=yield Dl(this.signer,e,this.interface.deploy.inputs);n.push(t);const r=this.getDeployTransaction(...n),i=yield this.signer.sendTransaction(r),a=Yr(this.constructor,"getContractAddress")(i),o=Yr(this.constructor,"getContract")(a,this.interface,this.signer);return Ll(o,i),Jr(o,"deployTransaction",i),o}))}attach(e){return this.constructor.getContract(e,this.interface,this.signer)}connect(e){return new this.constructor(this.interface,this.bytecode,e)}static fromSolidity(e,t){null==e&&Pl.throwError("missing compiler output",Zn.errors.MISSING_ARGUMENT,{argument:"compilerOutput"}),"string"==typeof e&&(e=JSON.parse(e));const n=e.abi;let r=null;return e.bytecode?r=e.bytecode:e.evm&&e.evm.bytecode&&(r=e.evm.bytecode),new this(n,r,t)}static getInterface(e){return Kl.getInterface(e)}static getContractAddress(e){return ta(e)}static getContract(e,t,n){return new Kl(e,t,n)}}class Jl{constructor(e){Jr(this,"alphabet",e),Jr(this,"base",e.length),Jr(this,"_alphabetMap",{}),Jr(this,"_leader",e.charAt(0));for(let t=0;t<e.length;t++)this._alphabetMap[e.charAt(t)]=t}encode(e){let t=sr(e);if(0===t.length)return"";let n=[0];for(let e=0;e<t.length;++e){let r=t[e];for(let e=0;e<n.length;++e)r+=n[e]<<8,n[e]=r%this.base,r=r/this.base|0;for(;r>0;)n.push(r%this.base),r=r/this.base|0}let r="";for(let e=0;0===t[e]&&e<t.length-1;++e)r+=this._leader;for(let e=n.length-1;e>=0;--e)r+=this.alphabet[n[e]];return r}decode(e){if("string"!=typeof e)throw new TypeError("Expected String");let t=[];if(0===e.length)return new Uint8Array(t);t.push(0);for(let n=0;n<e.length;n++){let r=this._alphabetMap[e[n]];if(void 0===r)throw new Error("Non-base"+this.base+" character");let i=r;for(let e=0;e<t.length;++e)i+=t[e]*this.base,t[e]=255&i,i>>=8;for(;i>0;)t.push(255&i),i>>=8}for(let n=0;e[n]===this._leader&&n<e.length-1;++n)t.push(0);return sr(new Uint8Array(t.reverse()))}}const Yl=new Jl("abcdefghijklmnopqrstuvwxyz234567"),Ql=new Jl("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz");var $l,Zl=Object.freeze({__proto__:null,Base32:Yl,Base58:Ql,BaseX:Jl});!function(e){e.sha256="sha256",e.sha512="sha512"}($l||($l={}));const ed=new Zn("sha2/5.7.0");function td(e){return"0x"+Ac.ripemd160().update(sr(e)).digest("hex")}function nd(e){return"0x"+Ac.sha256().update(sr(e)).digest("hex")}function rd(e){return"0x"+Ac.sha512().update(sr(e)).digest("hex")}function id(e,t,n){return $l[e]||ed.throwError("unsupported algorithm "+e,Zn.errors.UNSUPPORTED_OPERATION,{operation:"hmac",algorithm:e}),"0x"+Ac.hmac(Ac[e],sr(t)).update(sr(n)).digest("hex")}var ad=Object.freeze({__proto__:null,get SupportedAlgorithm(){return $l},computeHmac:id,ripemd160:td,sha256:nd,sha512:rd});function od(e,t,n,r,i){let a;e=sr(e),t=sr(t);let o=1;const s=new Uint8Array(r),u=new Uint8Array(t.length+4);let c,l;u.set(t);for(let d=1;d<=o;d++){u[t.length]=d>>24&255,u[t.length+1]=d>>16&255,u[t.length+2]=d>>8&255,u[t.length+3]=255&d;let f=sr(id(i,e,u));a||(a=f.length,l=new Uint8Array(a),o=Math.ceil(r/a),c=r-(o-1)*a),l.set(f);for(let t=1;t<n;t++){f=sr(id(i,e,f));for(let e=0;e<a;e++)l[e]^=f[e]}const p=(d-1)*a,h=d===o?c:a;s.set(sr(l).slice(0,h),p)}return pr(s)}const sd=new Zn("wordlists/5.7.0");class ud{constructor(e){sd.checkAbstract(new.target,ud),Jr(this,"locale",e)}split(e){return e.toLowerCase().split(/ +/g)}join(e){return e.join(" ")}static check(e){const t=[];for(let n=0;n<2048;n++){const r=e.getWord(n);if(n!==e.getWordIndex(r))return"0x";t.push(r)}return oo(t.join("\n")+"\n")}static register(e,t){t||(t=e.locale)}}let cd=null;function ld(e){if(null==cd&&(cd="AbandonAbilityAbleAboutAboveAbsentAbsorbAbstractAbsurdAbuseAccessAccidentAccountAccuseAchieveAcidAcousticAcquireAcrossActActionActorActressActualAdaptAddAddictAddressAdjustAdmitAdultAdvanceAdviceAerobicAffairAffordAfraidAgainAgeAgentAgreeAheadAimAirAirportAisleAlarmAlbumAlcoholAlertAlienAllAlleyAllowAlmostAloneAlphaAlreadyAlsoAlterAlwaysAmateurAmazingAmongAmountAmusedAnalystAnchorAncientAngerAngleAngryAnimalAnkleAnnounceAnnualAnotherAnswerAntennaAntiqueAnxietyAnyApartApologyAppearAppleApproveAprilArchArcticAreaArenaArgueArmArmedArmorArmyAroundArrangeArrestArriveArrowArtArtefactArtistArtworkAskAspectAssaultAssetAssistAssumeAsthmaAthleteAtomAttackAttendAttitudeAttractAuctionAuditAugustAuntAuthorAutoAutumnAverageAvocadoAvoidAwakeAwareAwayAwesomeAwfulAwkwardAxisBabyBachelorBaconBadgeBagBalanceBalconyBallBambooBananaBannerBarBarelyBargainBarrelBaseBasicBasketBattleBeachBeanBeautyBecauseBecomeBeefBeforeBeginBehaveBehindBelieveBelowBeltBenchBenefitBestBetrayBetterBetweenBeyondBicycleBidBikeBindBiologyBirdBirthBitterBlackBladeBlameBlanketBlastBleakBlessBlindBloodBlossomBlouseBlueBlurBlushBoardBoatBodyBoilBombBoneBonusBookBoostBorderBoringBorrowBossBottomBounceBoxBoyBracketBrainBrandBrassBraveBreadBreezeBrickBridgeBriefBrightBringBriskBroccoliBrokenBronzeBroomBrotherBrownBrushBubbleBuddyBudgetBuffaloBuildBulbBulkBulletBundleBunkerBurdenBurgerBurstBusBusinessBusyButterBuyerBuzzCabbageCabinCableCactusCageCakeCallCalmCameraCampCanCanalCancelCandyCannonCanoeCanvasCanyonCapableCapitalCaptainCarCarbonCardCargoCarpetCarryCartCaseCashCasinoCastleCasualCatCatalogCatchCategoryCattleCaughtCauseCautionCaveCeilingCeleryCementCensusCenturyCerealCertainChairChalkChampionChangeChaosChapterChargeChaseChatCheapCheckCheeseChefCherryChestChickenChiefChildChimneyChoiceChooseChronicChuckleChunkChurnCigarCinnamonCircleCitizenCityCivilClaimClapClarifyClawClayCleanClerkCleverClickClientCliffClimbClinicClipClockClogCloseClothCloudClownClubClumpClusterClutchCoachCoastCoconutCodeCoffeeCoilCoinCollectColorColumnCombineComeComfortComicCommonCompanyConcertConductConfirmCongressConnectConsiderControlConvinceCookCoolCopperCopyCoralCoreCornCorrectCostCottonCouchCountryCoupleCourseCousinCoverCoyoteCrackCradleCraftCramCraneCrashCraterCrawlCrazyCreamCreditCreekCrewCricketCrimeCrispCriticCropCrossCrouchCrowdCrucialCruelCruiseCrumbleCrunchCrushCryCrystalCubeCultureCupCupboardCuriousCurrentCurtainCurveCushionCustomCuteCycleDadDamageDampDanceDangerDaringDashDaughterDawnDayDealDebateDebrisDecadeDecemberDecideDeclineDecorateDecreaseDeerDefenseDefineDefyDegreeDelayDeliverDemandDemiseDenialDentistDenyDepartDependDepositDepthDeputyDeriveDescribeDesertDesignDeskDespairDestroyDetailDetectDevelopDeviceDevoteDiagramDialDiamondDiaryDiceDieselDietDifferDigitalDignityDilemmaDinnerDinosaurDirectDirtDisagreeDiscoverDiseaseDishDismissDisorderDisplayDistanceDivertDivideDivorceDizzyDoctorDocumentDogDollDolphinDomainDonateDonkeyDonorDoorDoseDoubleDoveDraftDragonDramaDrasticDrawDreamDressDriftDrillDrinkDripDriveDropDrumDryDuckDumbDuneDuringDustDutchDutyDwarfDynamicEagerEagleEarlyEarnEarthEasilyEastEasyEchoEcologyEconomyEdgeEditEducateEffortEggEightEitherElbowElderElectricElegantElementElephantElevatorEliteElseEmbarkEmbodyEmbraceEmergeEmotionEmployEmpowerEmptyEnableEnactEndEndlessEndorseEnemyEnergyEnforceEngageEngineEnhanceEnjoyEnlistEnoughEnrichEnrollEnsureEnterEntireEntryEnvelopeEpisodeEqualEquipEraEraseErodeErosionErrorEruptEscapeEssayEssenceEstateEternalEthicsEvidenceEvilEvokeEvolveExactExampleExcessExchangeExciteExcludeExcuseExecuteExerciseExhaustExhibitExileExistExitExoticExpandExpectExpireExplainExposeExpressExtendExtraEyeEyebrowFabricFaceFacultyFadeFaintFaithFallFalseFameFamilyFamousFanFancyFantasyFarmFashionFatFatalFatherFatigueFaultFavoriteFeatureFebruaryFederalFeeFeedFeelFemaleFenceFestivalFetchFeverFewFiberFictionFieldFigureFileFilmFilterFinalFindFineFingerFinishFireFirmFirstFiscalFishFitFitnessFixFlagFlameFlashFlatFlavorFleeFlightFlipFloatFlockFloorFlowerFluidFlushFlyFoamFocusFogFoilFoldFollowFoodFootForceForestForgetForkFortuneForumForwardFossilFosterFoundFoxFragileFrameFrequentFreshFriendFringeFrogFrontFrostFrownFrozenFruitFuelFunFunnyFurnaceFuryFutureGadgetGainGalaxyGalleryGameGapGarageGarbageGardenGarlicGarmentGasGaspGateGatherGaugeGazeGeneralGeniusGenreGentleGenuineGestureGhostGiantGiftGiggleGingerGiraffeGirlGiveGladGlanceGlareGlassGlideGlimpseGlobeGloomGloryGloveGlowGlueGoatGoddessGoldGoodGooseGorillaGospelGossipGovernGownGrabGraceGrainGrantGrapeGrassGravityGreatGreenGridGriefGritGroceryGroupGrowGruntGuardGuessGuideGuiltGuitarGunGymHabitHairHalfHammerHamsterHandHappyHarborHardHarshHarvestHatHaveHawkHazardHeadHealthHeartHeavyHedgehogHeightHelloHelmetHelpHenHeroHiddenHighHillHintHipHireHistoryHobbyHockeyHoldHoleHolidayHollowHomeHoneyHoodHopeHornHorrorHorseHospitalHostHotelHourHoverHubHugeHumanHumbleHumorHundredHungryHuntHurdleHurryHurtHusbandHybridIceIconIdeaIdentifyIdleIgnoreIllIllegalIllnessImageImitateImmenseImmuneImpactImposeImproveImpulseInchIncludeIncomeIncreaseIndexIndicateIndoorIndustryInfantInflictInformInhaleInheritInitialInjectInjuryInmateInnerInnocentInputInquiryInsaneInsectInsideInspireInstallIntactInterestIntoInvestInviteInvolveIronIslandIsolateIssueItemIvoryJacketJaguarJarJazzJealousJeansJellyJewelJobJoinJokeJourneyJoyJudgeJuiceJumpJungleJuniorJunkJustKangarooKeenKeepKetchupKeyKickKidKidneyKindKingdomKissKitKitchenKiteKittenKiwiKneeKnifeKnockKnowLabLabelLaborLadderLadyLakeLampLanguageLaptopLargeLaterLatinLaughLaundryLavaLawLawnLawsuitLayerLazyLeaderLeafLearnLeaveLectureLeftLegLegalLegendLeisureLemonLendLengthLensLeopardLessonLetterLevelLiarLibertyLibraryLicenseLifeLiftLightLikeLimbLimitLinkLionLiquidListLittleLiveLizardLoadLoanLobsterLocalLockLogicLonelyLongLoopLotteryLoudLoungeLoveLoyalLuckyLuggageLumberLunarLunchLuxuryLyricsMachineMadMagicMagnetMaidMailMainMajorMakeMammalManManageMandateMangoMansionManualMapleMarbleMarchMarginMarineMarketMarriageMaskMassMasterMatchMaterialMathMatrixMatterMaximumMazeMeadowMeanMeasureMeatMechanicMedalMediaMelodyMeltMemberMemoryMentionMenuMercyMergeMeritMerryMeshMessageMetalMethodMiddleMidnightMilkMillionMimicMindMinimumMinorMinuteMiracleMirrorMiseryMissMistakeMixMixedMixtureMobileModelModifyMomMomentMonitorMonkeyMonsterMonthMoonMoralMoreMorningMosquitoMotherMotionMotorMountainMouseMoveMovieMuchMuffinMuleMultiplyMuscleMuseumMushroomMusicMustMutualMyselfMysteryMythNaiveNameNapkinNarrowNastyNationNatureNearNeckNeedNegativeNeglectNeitherNephewNerveNestNetNetworkNeutralNeverNewsNextNiceNightNobleNoiseNomineeNoodleNormalNorthNoseNotableNoteNothingNoticeNovelNowNuclearNumberNurseNutOakObeyObjectObligeObscureObserveObtainObviousOccurOceanOctoberOdorOffOfferOfficeOftenOilOkayOldOliveOlympicOmitOnceOneOnionOnlineOnlyOpenOperaOpinionOpposeOptionOrangeOrbitOrchardOrderOrdinaryOrganOrientOriginalOrphanOstrichOtherOutdoorOuterOutputOutsideOvalOvenOverOwnOwnerOxygenOysterOzonePactPaddlePagePairPalacePalmPandaPanelPanicPantherPaperParadeParentParkParrotPartyPassPatchPathPatientPatrolPatternPausePavePaymentPeacePeanutPearPeasantPelicanPenPenaltyPencilPeoplePepperPerfectPermitPersonPetPhonePhotoPhrasePhysicalPianoPicnicPicturePiecePigPigeonPillPilotPinkPioneerPipePistolPitchPizzaPlacePlanetPlasticPlatePlayPleasePledgePluckPlugPlungePoemPoetPointPolarPolePolicePondPonyPoolPopularPortionPositionPossiblePostPotatoPotteryPovertyPowderPowerPracticePraisePredictPreferPreparePresentPrettyPreventPricePridePrimaryPrintPriorityPrisonPrivatePrizeProblemProcessProduceProfitProgramProjectPromoteProofPropertyProsperProtectProudProvidePublicPuddingPullPulpPulsePumpkinPunchPupilPuppyPurchasePurityPurposePursePushPutPuzzlePyramidQualityQuantumQuarterQuestionQuickQuitQuizQuoteRabbitRaccoonRaceRackRadarRadioRailRainRaiseRallyRampRanchRandomRangeRapidRareRateRatherRavenRawRazorReadyRealReasonRebelRebuildRecallReceiveRecipeRecordRecycleReduceReflectReformRefuseRegionRegretRegularRejectRelaxReleaseReliefRelyRemainRememberRemindRemoveRenderRenewRentReopenRepairRepeatReplaceReportRequireRescueResembleResistResourceResponseResultRetireRetreatReturnReunionRevealReviewRewardRhythmRibRibbonRiceRichRideRidgeRifleRightRigidRingRiotRippleRiskRitualRivalRiverRoadRoastRobotRobustRocketRomanceRoofRookieRoomRoseRotateRoughRoundRouteRoyalRubberRudeRugRuleRunRunwayRuralSadSaddleSadnessSafeSailSaladSalmonSalonSaltSaluteSameSampleSandSatisfySatoshiSauceSausageSaveSayScaleScanScareScatterSceneSchemeSchoolScienceScissorsScorpionScoutScrapScreenScriptScrubSeaSearchSeasonSeatSecondSecretSectionSecuritySeedSeekSegmentSelectSellSeminarSeniorSenseSentenceSeriesServiceSessionSettleSetupSevenShadowShaftShallowShareShedShellSheriffShieldShiftShineShipShiverShockShoeShootShopShortShoulderShoveShrimpShrugShuffleShySiblingSickSideSiegeSightSignSilentSilkSillySilverSimilarSimpleSinceSingSirenSisterSituateSixSizeSkateSketchSkiSkillSkinSkirtSkullSlabSlamSleepSlenderSliceSlideSlightSlimSloganSlotSlowSlushSmallSmartSmileSmokeSmoothSnackSnakeSnapSniffSnowSoapSoccerSocialSockSodaSoftSolarSoldierSolidSolutionSolveSomeoneSongSoonSorrySortSoulSoundSoupSourceSouthSpaceSpareSpatialSpawnSpeakSpecialSpeedSpellSpendSphereSpiceSpiderSpikeSpinSpiritSplitSpoilSponsorSpoonSportSpotSpraySpreadSpringSpySquareSqueezeSquirrelStableStadiumStaffStageStairsStampStandStartStateStaySteakSteelStemStepStereoStickStillStingStockStomachStoneStoolStoryStoveStrategyStreetStrikeStrongStruggleStudentStuffStumbleStyleSubjectSubmitSubwaySuccessSuchSuddenSufferSugarSuggestSuitSummerSunSunnySunsetSuperSupplySupremeSureSurfaceSurgeSurpriseSurroundSurveySuspectSustainSwallowSwampSwapSwarmSwearSweetSwiftSwimSwingSwitchSwordSymbolSymptomSyrupSystemTableTackleTagTailTalentTalkTankTapeTargetTaskTasteTattooTaxiTeachTeamTellTenTenantTennisTentTermTestTextThankThatThemeThenTheoryThereTheyThingThisThoughtThreeThriveThrowThumbThunderTicketTideTigerTiltTimberTimeTinyTipTiredTissueTitleToastTobaccoTodayToddlerToeTogetherToiletTokenTomatoTomorrowToneTongueTonightToolToothTopTopicToppleTorchTornadoTortoiseTossTotalTouristTowardTowerTownToyTrackTradeTrafficTragicTrainTransferTrapTrashTravelTrayTreatTreeTrendTrialTribeTrickTriggerTrimTripTrophyTroubleTruckTrueTrulyTrumpetTrustTruthTryTubeTuitionTumbleTunaTunnelTurkeyTurnTurtleTwelveTwentyTwiceTwinTwistTwoTypeTypicalUglyUmbrellaUnableUnawareUncleUncoverUnderUndoUnfairUnfoldUnhappyUniformUniqueUnitUniverseUnknownUnlockUntilUnusualUnveilUpdateUpgradeUpholdUponUpperUpsetUrbanUrgeUsageUseUsedUsefulUselessUsualUtilityVacantVacuumVagueValidValleyValveVanVanishVaporVariousVastVaultVehicleVelvetVendorVentureVenueVerbVerifyVersionVeryVesselVeteranViableVibrantViciousVictoryVideoViewVillageVintageViolinVirtualVirusVisaVisitVisualVitalVividVocalVoiceVoidVolcanoVolumeVoteVoyageWageWagonWaitWalkWallWalnutWantWarfareWarmWarriorWashWaspWasteWaterWaveWayWealthWeaponWearWeaselWeatherWebWeddingWeekendWeirdWelcomeWestWetWhaleWhatWheatWheelWhenWhereWhipWhisperWideWidthWifeWildWillWinWindowWineWingWinkWinnerWinterWireWisdomWiseWishWitnessWolfWomanWonderWoodWoolWordWorkWorldWorryWorthWrapWreckWrestleWristWriteWrongYardYearYellowYouYoungYouthZebraZeroZoneZoo".replace(/([A-Z])/g," $1").toLowerCase().substring(1).split(" "),"0x3c8acc1e7b08d8e76f9fda015ef48dc8c710a73cb7e0f77b2c18a9b5a7adde60"!==ud.check(e)))throw cd=null,new Error("BIP39 Wordlist for en (English) FAILED")}const dd=new class extends ud{constructor(){super("en")}getWord(e){return ld(this),cd[e]}getWordIndex(e){return ld(this),cd.indexOf(e)}};ud.register(dd);const fd={en:dd},pd=new Zn("hdnode/5.7.0"),hd=kr.from("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),md=Pa("Bitcoin seed"),yd=2147483648;function gd(e){return(1<<e)-1<<8-e}function bd(e){return vr(pr(e),32)}function vd(e){return Ql.encode(ur([e,mr(nd(nd(e)),0,4)]))}function Td(e){if(null==e)return fd.en;if("string"==typeof e){const t=fd[e];return null==t&&pd.throwArgumentError("unknown locale","wordlist",e),t}return e}const wd={},Ed="m/44'/60'/0'/0/0";class Ad{constructor(e,t,n,r,i,a,o,s){if(e!==wd)throw new Error("HDNode constructor cannot be called directly");if(t){const e=new ll(t);Jr(this,"privateKey",e.privateKey),Jr(this,"publicKey",e.compressedPublicKey)}else Jr(this,"privateKey",null),Jr(this,"publicKey",pr(n));Jr(this,"parentFingerprint",r),Jr(this,"fingerprint",mr(td(nd(this.publicKey)),0,4)),Jr(this,"address",Tl(this.publicKey)),Jr(this,"chainCode",i),Jr(this,"index",a),Jr(this,"depth",o),null==s?(Jr(this,"mnemonic",null),Jr(this,"path",null)):"string"==typeof s?(Jr(this,"mnemonic",null),Jr(this,"path",s)):(Jr(this,"mnemonic",s),Jr(this,"path",s.path))}get extendedKey(){if(this.depth>=256)throw new Error("Depth too large!");return vd(ur([null!=this.privateKey?"0x0488ADE4":"0x0488B21E",pr(this.depth),this.parentFingerprint,vr(pr(this.index),4),this.chainCode,null!=this.privateKey?ur(["0x00",this.privateKey]):this.publicKey]))}neuter(){return new Ad(wd,null,this.publicKey,this.parentFingerprint,this.chainCode,this.index,this.depth,this.path)}_derive(e){if(e>4294967295)throw new Error("invalid index - "+String(e));let t=this.path;t&&(t+="/"+(2147483647&e));const n=new Uint8Array(37);if(e&yd){if(!this.privateKey)throw new Error("cannot derive child of neutered node");n.set(sr(this.privateKey),1),t&&(t+="'")}else n.set(sr(this.publicKey));for(let t=24;t>=0;t-=8)n[33+(t>>3)]=e>>24-t&255;const r=sr(id($l.sha512,this.chainCode,n)),i=r.slice(0,32),a=r.slice(32);let o=null,s=null;if(this.privateKey)o=bd(kr.from(i).add(this.privateKey).mod(hd));else{s=new ll(pr(i))._addPoint(this.publicKey)}let u=t;const c=this.mnemonic;return c&&(u=Object.freeze({phrase:c.phrase,path:t,locale:c.locale||"en"})),new Ad(wd,o,s,this.fingerprint,bd(a),e,this.depth+1,u)}derivePath(e){const t=e.split("/");if(0===t.length||"m"===t[0]&&0!==this.depth)throw new Error("invalid path - "+e);"m"===t[0]&&t.shift();let n=this;for(let e=0;e<t.length;e++){const r=t[e];if(r.match(/^[0-9]+'$/)){const e=parseInt(r.substring(0,r.length-1));if(e>=yd)throw new Error("invalid path index - "+r);n=n._derive(yd+e)}else{if(!r.match(/^[0-9]+$/))throw new Error("invalid path component - "+r);{const e=parseInt(r);if(e>=yd)throw new Error("invalid path index - "+r);n=n._derive(e)}}}return n}static _fromSeed(e,t){const n=sr(e);if(n.length<16||n.length>64)throw new Error("invalid seed");const r=sr(id($l.sha512,md,n));return new Ad(wd,bd(r.slice(0,32)),null,"0x00000000",bd(r.slice(32)),0,0,t)}static fromMnemonic(e,t,n){return e=Rd(Id(e,n=Td(n)),n),Ad._fromSeed(_d(e,t),{phrase:e,path:"m",locale:n.locale})}static fromSeed(e){return Ad._fromSeed(e,null)}static fromExtendedKey(e){const t=Ql.decode(e);82===t.length&&vd(t.slice(0,78))===e||pd.throwArgumentError("invalid extended key","extendedKey","[REDACTED]");const n=t[4],r=pr(t.slice(5,9)),i=parseInt(pr(t.slice(9,13)).substring(2),16),a=pr(t.slice(13,45)),o=t.slice(45,78);switch(pr(t.slice(0,4))){case"0x0488b21e":case"0x043587cf":return new Ad(wd,null,pr(o),r,a,i,n,null);case"0x0488ade4":case"0x04358394 ":if(0!==o[0])break;return new Ad(wd,pr(o.slice(1)),null,r,a,i,n,null)}return pd.throwArgumentError("invalid extended key","extendedKey","[REDACTED]")}}function _d(e,t){t||(t="");const n=Pa("mnemonic"+t,Oa.NFKD);return od(Pa(e,Oa.NFKD),n,2048,64,"sha512")}function Id(e,t){t=Td(t),pd.checkNormalize();const n=t.split(e);if(n.length%3!=0)throw new Error("invalid mnemonic");const r=sr(new Uint8Array(Math.ceil(11*n.length/8)));let i=0;for(let e=0;e<n.length;e++){let a=t.getWordIndex(n[e].normalize("NFKD"));if(-1===a)throw new Error("invalid mnemonic");for(let e=0;e<11;e++)a&1<<10-e&&(r[i>>3]|=1<<7-i%8),i++}const a=32*n.length/3,o=gd(n.length/3);if((sr(nd(r.slice(0,a/8)))[0]&o)!==(r[r.length-1]&o))throw new Error("invalid checksum");return pr(r.slice(0,a/8))}function Rd(e,t){if(t=Td(t),(e=sr(e)).length%4!=0||e.length<16||e.length>32)throw new Error("invalid entropy");const n=[0];let r=11;for(let t=0;t<e.length;t++)r>8?(n[n.length-1]<<=8,n[n.length-1]|=e[t],r-=8):(n[n.length-1]<<=r,n[n.length-1]|=e[t]>>8-r,n.push(e[t]&(1<<8-r)-1),r+=3);const i=e.length/4,a=sr(nd(e))[0]&gd(i);return n[n.length-1]<<=i,n[n.length-1]|=a>>8-i,t.join(n.map((e=>t.getWord(e))))}function Cd(e,t){try{return Id(e,t),!0}catch(e){}return!1}function Od(e){return("number"!=typeof e||e<0||e>=yd||e%1)&&pd.throwArgumentError("invalid account index","index",e),`m/44'/60'/${e}'/0/0`}var kd=Object.freeze({__proto__:null,HDNode:Ad,defaultPath:Ed,entropyToMnemonic:Rd,getAccountPath:Od,isValidMnemonic:Cd,mnemonicToEntropy:Id,mnemonicToSeed:_d});const Sd=new Zn("random/5.7.0");const Nd=function(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if("undefined"!=typeof global)return global;throw new Error("unable to locate global object")}();let xd=Nd.crypto||Nd.msCrypto;function Pd(e){(e<=0||e>1024||e%1||e!=e)&&Sd.throwArgumentError("invalid length","length",e);const t=new Uint8Array(e);return xd.getRandomValues(t),sr(t)}function Md(e){for(let t=(e=e.slice()).length-1;t>0;t--){const n=Math.floor(Math.random()*(t+1)),r=e[t];e[t]=e[n],e[n]=r}return e}xd&&xd.getRandomValues||(Sd.warn("WARNING: Missing strong random number source"),xd={getRandomValues:function(e){return Sd.throwError("no secure random source avaialble",Zn.errors.UNSUPPORTED_OPERATION,{operation:"crypto.getRandomValues"})}});var Bd=Object.freeze({__proto__:null,randomBytes:Pd,shuffled:Md}),Dd={exports:{}};!function(e,t){!function(t){function n(e){return parseInt(e)===e}function r(e){if(!n(e.length))return!1;for(var t=0;t<e.length;t++)if(!n(e[t])||e[t]<0||e[t]>255)return!1;return!0}function i(e,t){if(e.buffer&&ArrayBuffer.isView(e)&&"Uint8Array"===e.name)return t&&(e=e.slice?e.slice():Array.prototype.slice.call(e)),e;if(Array.isArray(e)){if(!r(e))throw new Error("Array contains invalid value: "+e);return new Uint8Array(e)}if(n(e.length)&&r(e))return new Uint8Array(e);throw new Error("unsupported array-like object")}function a(e){return new Uint8Array(e)}function o(e,t,n,r,i){null==r&&null==i||(e=e.slice?e.slice(r,i):Array.prototype.slice.call(e,r,i)),t.set(e,n)}var s,u={toBytes:function(e){var t=[],n=0;for(e=encodeURI(e);n<e.length;){var r=e.charCodeAt(n++);37===r?(t.push(parseInt(e.substr(n,2),16)),n+=2):t.push(r)}return i(t)},fromBytes:function(e){for(var t=[],n=0;n<e.length;){var r=e[n];r<128?(t.push(String.fromCharCode(r)),n++):r>191&&r<224?(t.push(String.fromCharCode((31&r)<<6|63&e[n+1])),n+=2):(t.push(String.fromCharCode((15&r)<<12|(63&e[n+1])<<6|63&e[n+2])),n+=3)}return t.join("")}},c=(s="0123456789abcdef",{toBytes:function(e){for(var t=[],n=0;n<e.length;n+=2)t.push(parseInt(e.substr(n,2),16));return t},fromBytes:function(e){for(var t=[],n=0;n<e.length;n++){var r=e[n];t.push(s[(240&r)>>4]+s[15&r])}return t.join("")}}),l={16:10,24:12,32:14},d=[1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145],f=[99,124,119,123,242,107,111,197,48,1,103,43,254,215,171,118,202,130,201,125,250,89,71,240,173,212,162,175,156,164,114,192,183,253,147,38,54,63,247,204,52,165,229,241,113,216,49,21,4,199,35,195,24,150,5,154,7,18,128,226,235,39,178,117,9,131,44,26,27,110,90,160,82,59,214,179,41,227,47,132,83,209,0,237,32,252,177,91,106,203,190,57,74,76,88,207,208,239,170,251,67,77,51,133,69,249,2,127,80,60,159,168,81,163,64,143,146,157,56,245,188,182,218,33,16,255,243,210,205,12,19,236,95,151,68,23,196,167,126,61,100,93,25,115,96,129,79,220,34,42,144,136,70,238,184,20,222,94,11,219,224,50,58,10,73,6,36,92,194,211,172,98,145,149,228,121,231,200,55,109,141,213,78,169,108,86,244,234,101,122,174,8,186,120,37,46,28,166,180,198,232,221,116,31,75,189,139,138,112,62,181,102,72,3,246,14,97,53,87,185,134,193,29,158,225,248,152,17,105,217,142,148,155,30,135,233,206,85,40,223,140,161,137,13,191,230,66,104,65,153,45,15,176,84,187,22],p=[82,9,106,213,48,54,165,56,191,64,163,158,129,243,215,251,124,227,57,130,155,47,255,135,52,142,67,68,196,222,233,203,84,123,148,50,166,194,35,61,238,76,149,11,66,250,195,78,8,46,161,102,40,217,36,178,118,91,162,73,109,139,209,37,114,248,246,100,134,104,152,22,212,164,92,204,93,101,182,146,108,112,72,80,253,237,185,218,94,21,70,87,167,141,157,132,144,216,171,0,140,188,211,10,247,228,88,5,184,179,69,6,208,44,30,143,202,63,15,2,193,175,189,3,1,19,138,107,58,145,17,65,79,103,220,234,151,242,207,206,240,180,230,115,150,172,116,34,231,173,53,133,226,249,55,232,28,117,223,110,71,241,26,113,29,41,197,137,111,183,98,14,170,24,190,27,252,86,62,75,198,210,121,32,154,219,192,254,120,205,90,244,31,221,168,51,136,7,199,49,177,18,16,89,39,128,236,95,96,81,127,169,25,181,74,13,45,229,122,159,147,201,156,239,160,224,59,77,174,42,245,176,200,235,187,60,131,83,153,97,23,43,4,126,186,119,214,38,225,105,20,99,85,33,12,125],h=[3328402341,4168907908,4000806809,4135287693,4294111757,3597364157,3731845041,2445657428,1613770832,33620227,3462883241,1445669757,3892248089,3050821474,1303096294,3967186586,2412431941,528646813,2311702848,4202528135,4026202645,2992200171,2387036105,4226871307,1101901292,3017069671,1604494077,1169141738,597466303,1403299063,3832705686,2613100635,1974974402,3791519004,1033081774,1277568618,1815492186,2118074177,4126668546,2211236943,1748251740,1369810420,3521504564,4193382664,3799085459,2883115123,1647391059,706024767,134480908,2512897874,1176707941,2646852446,806885416,932615841,168101135,798661301,235341577,605164086,461406363,3756188221,3454790438,1311188841,2142417613,3933566367,302582043,495158174,1479289972,874125870,907746093,3698224818,3025820398,1537253627,2756858614,1983593293,3084310113,2108928974,1378429307,3722699582,1580150641,327451799,2790478837,3117535592,0,3253595436,1075847264,3825007647,2041688520,3059440621,3563743934,2378943302,1740553945,1916352843,2487896798,2555137236,2958579944,2244988746,3151024235,3320835882,1336584933,3992714006,2252555205,2588757463,1714631509,293963156,2319795663,3925473552,67240454,4269768577,2689618160,2017213508,631218106,1269344483,2723238387,1571005438,2151694528,93294474,1066570413,563977660,1882732616,4059428100,1673313503,2008463041,2950355573,1109467491,537923632,3858759450,4260623118,3218264685,2177748300,403442708,638784309,3287084079,3193921505,899127202,2286175436,773265209,2479146071,1437050866,4236148354,2050833735,3362022572,3126681063,840505643,3866325909,3227541664,427917720,2655997905,2749160575,1143087718,1412049534,999329963,193497219,2353415882,3354324521,1807268051,672404540,2816401017,3160301282,369822493,2916866934,3688947771,1681011286,1949973070,336202270,2454276571,201721354,1210328172,3093060836,2680341085,3184776046,1135389935,3294782118,965841320,831886756,3554993207,4068047243,3588745010,2345191491,1849112409,3664604599,26054028,2983581028,2622377682,1235855840,3630984372,2891339514,4092916743,3488279077,3395642799,4101667470,1202630377,268961816,1874508501,4034427016,1243948399,1546530418,941366308,1470539505,1941222599,2546386513,3421038627,2715671932,3899946140,1042226977,2521517021,1639824860,227249030,260737669,3765465232,2084453954,1907733956,3429263018,2420656344,100860677,4160157185,470683154,3261161891,1781871967,2924959737,1773779408,394692241,2579611992,974986535,664706745,3655459128,3958962195,731420851,571543859,3530123707,2849626480,126783113,865375399,765172662,1008606754,361203602,3387549984,2278477385,2857719295,1344809080,2782912378,59542671,1503764984,160008576,437062935,1707065306,3622233649,2218934982,3496503480,2185314755,697932208,1512910199,504303377,2075177163,2824099068,1841019862,739644986],m=[2781242211,2230877308,2582542199,2381740923,234877682,3184946027,2984144751,1418839493,1348481072,50462977,2848876391,2102799147,434634494,1656084439,3863849899,2599188086,1167051466,2636087938,1082771913,2281340285,368048890,3954334041,3381544775,201060592,3963727277,1739838676,4250903202,3930435503,3206782108,4149453988,2531553906,1536934080,3262494647,484572669,2923271059,1783375398,1517041206,1098792767,49674231,1334037708,1550332980,4098991525,886171109,150598129,2481090929,1940642008,1398944049,1059722517,201851908,1385547719,1699095331,1587397571,674240536,2704774806,252314885,3039795866,151914247,908333586,2602270848,1038082786,651029483,1766729511,3447698098,2682942837,454166793,2652734339,1951935532,775166490,758520603,3000790638,4004797018,4217086112,4137964114,1299594043,1639438038,3464344499,2068982057,1054729187,1901997871,2534638724,4121318227,1757008337,0,750906861,1614815264,535035132,3363418545,3988151131,3201591914,1183697867,3647454910,1265776953,3734260298,3566750796,3903871064,1250283471,1807470800,717615087,3847203498,384695291,3313910595,3617213773,1432761139,2484176261,3481945413,283769337,100925954,2180939647,4037038160,1148730428,3123027871,3813386408,4087501137,4267549603,3229630528,2315620239,2906624658,3156319645,1215313976,82966005,3747855548,3245848246,1974459098,1665278241,807407632,451280895,251524083,1841287890,1283575245,337120268,891687699,801369324,3787349855,2721421207,3431482436,959321879,1469301956,4065699751,2197585534,1199193405,2898814052,3887750493,724703513,2514908019,2696962144,2551808385,3516813135,2141445340,1715741218,2119445034,2872807568,2198571144,3398190662,700968686,3547052216,1009259540,2041044702,3803995742,487983883,1991105499,1004265696,1449407026,1316239930,504629770,3683797321,168560134,1816667172,3837287516,1570751170,1857934291,4014189740,2797888098,2822345105,2754712981,936633572,2347923833,852879335,1133234376,1500395319,3084545389,2348912013,1689376213,3533459022,3762923945,3034082412,4205598294,133428468,634383082,2949277029,2398386810,3913789102,403703816,3580869306,2297460856,1867130149,1918643758,607656988,4049053350,3346248884,1368901318,600565992,2090982877,2632479860,557719327,3717614411,3697393085,2249034635,2232388234,2430627952,1115438654,3295786421,2865522278,3633334344,84280067,33027830,303828494,2747425121,1600795957,4188952407,3496589753,2434238086,1486471617,658119965,3106381470,953803233,334231800,3005978776,857870609,3151128937,1890179545,2298973838,2805175444,3056442267,574365214,2450884487,550103529,1233637070,4289353045,2018519080,2057691103,2399374476,4166623649,2148108681,387583245,3664101311,836232934,3330556482,3100665960,3280093505,2955516313,2002398509,287182607,3413881008,4238890068,3597515707,975967766],y=[1671808611,2089089148,2006576759,2072901243,4061003762,1807603307,1873927791,3310653893,810573872,16974337,1739181671,729634347,4263110654,3613570519,2883997099,1989864566,3393556426,2191335298,3376449993,2106063485,4195741690,1508618841,1204391495,4027317232,2917941677,3563566036,2734514082,2951366063,2629772188,2767672228,1922491506,3227229120,3082974647,4246528509,2477669779,644500518,911895606,1061256767,4144166391,3427763148,878471220,2784252325,3845444069,4043897329,1905517169,3631459288,827548209,356461077,67897348,3344078279,593839651,3277757891,405286936,2527147926,84871685,2595565466,118033927,305538066,2157648768,3795705826,3945188843,661212711,2999812018,1973414517,152769033,2208177539,745822252,439235610,455947803,1857215598,1525593178,2700827552,1391895634,994932283,3596728278,3016654259,695947817,3812548067,795958831,2224493444,1408607827,3513301457,0,3979133421,543178784,4229948412,2982705585,1542305371,1790891114,3410398667,3201918910,961245753,1256100938,1289001036,1491644504,3477767631,3496721360,4012557807,2867154858,4212583931,1137018435,1305975373,861234739,2241073541,1171229253,4178635257,33948674,2139225727,1357946960,1011120188,2679776671,2833468328,1374921297,2751356323,1086357568,2408187279,2460827538,2646352285,944271416,4110742005,3168756668,3066132406,3665145818,560153121,271589392,4279952895,4077846003,3530407890,3444343245,202643468,322250259,3962553324,1608629855,2543990167,1154254916,389623319,3294073796,2817676711,2122513534,1028094525,1689045092,1575467613,422261273,1939203699,1621147744,2174228865,1339137615,3699352540,577127458,712922154,2427141008,2290289544,1187679302,3995715566,3100863416,339486740,3732514782,1591917662,186455563,3681988059,3762019296,844522546,978220090,169743370,1239126601,101321734,611076132,1558493276,3260915650,3547250131,2901361580,1655096418,2443721105,2510565781,3828863972,2039214713,3878868455,3359869896,928607799,1840765549,2374762893,3580146133,1322425422,2850048425,1823791212,1459268694,4094161908,3928346602,1706019429,2056189050,2934523822,135794696,3134549946,2022240376,628050469,779246638,472135708,2800834470,3032970164,3327236038,3894660072,3715932637,1956440180,522272287,1272813131,3185336765,2340818315,2323976074,1888542832,1044544574,3049550261,1722469478,1222152264,50660867,4127324150,236067854,1638122081,895445557,1475980887,3117443513,2257655686,3243809217,489110045,2662934430,3778599393,4162055160,2561878936,288563729,1773916777,3648039385,2391345038,2493985684,2612407707,505560094,2274497927,3911240169,3460925390,1442818645,678973480,3749357023,2358182796,2717407649,2306869641,219617805,3218761151,3862026214,1120306242,1756942440,1103331905,2578459033,762796589,252780047,2966125488,1425844308,3151392187,372911126],g=[1667474886,2088535288,2004326894,2071694838,4075949567,1802223062,1869591006,3318043793,808472672,16843522,1734846926,724270422,4278065639,3621216949,2880169549,1987484396,3402253711,2189597983,3385409673,2105378810,4210693615,1499065266,1195886990,4042263547,2913856577,3570689971,2728590687,2947541573,2627518243,2762274643,1920112356,3233831835,3082273397,4261223649,2475929149,640051788,909531756,1061110142,4160160501,3435941763,875846760,2779116625,3857003729,4059105529,1903268834,3638064043,825316194,353713962,67374088,3351728789,589522246,3284360861,404236336,2526454071,84217610,2593830191,117901582,303183396,2155911963,3806477791,3958056653,656894286,2998062463,1970642922,151591698,2206440989,741110872,437923380,454765878,1852748508,1515908788,2694904667,1381168804,993742198,3604373943,3014905469,690584402,3823320797,791638366,2223281939,1398011302,3520161977,0,3991743681,538992704,4244381667,2981218425,1532751286,1785380564,3419096717,3200178535,960056178,1246420628,1280103576,1482221744,3486468741,3503319995,4025428677,2863326543,4227536621,1128514950,1296947098,859002214,2240123921,1162203018,4193849577,33687044,2139062782,1347481760,1010582648,2678045221,2829640523,1364325282,2745433693,1077985408,2408548869,2459086143,2644360225,943212656,4126475505,3166494563,3065430391,3671750063,555836226,269496352,4294908645,4092792573,3537006015,3452783745,202118168,320025894,3974901699,1600119230,2543297077,1145359496,387397934,3301201811,2812801621,2122220284,1027426170,1684319432,1566435258,421079858,1936954854,1616945344,2172753945,1330631070,3705438115,572679748,707427924,2425400123,2290647819,1179044492,4008585671,3099120491,336870440,3739122087,1583276732,185277718,3688593069,3772791771,842159716,976899700,168435220,1229577106,101059084,606366792,1549591736,3267517855,3553849021,2897014595,1650632388,2442242105,2509612081,3840161747,2038008818,3890688725,3368567691,926374254,1835907034,2374863873,3587531953,1313788572,2846482505,1819063512,1448540844,4109633523,3941213647,1701162954,2054852340,2930698567,134748176,3132806511,2021165296,623210314,774795868,471606328,2795958615,3031746419,3334885783,3907527627,3722280097,1953799400,522133822,1263263126,3183336545,2341176845,2324333839,1886425312,1044267644,3048588401,1718004428,1212733584,50529542,4143317495,235803164,1633788866,892690282,1465383342,3115962473,2256965911,3250673817,488449850,2661202215,3789633753,4177007595,2560144171,286339874,1768537042,3654906025,2391705863,2492770099,2610673197,505291324,2273808917,3924369609,3469625735,1431699370,673740880,3755965093,2358021891,2711746649,2307489801,218961690,3217021541,3873845719,1111672452,1751693520,1094828930,2576986153,757954394,252645662,2964376443,1414855848,3149649517,370555436],b=[1374988112,2118214995,437757123,975658646,1001089995,530400753,2902087851,1273168787,540080725,2910219766,2295101073,4110568485,1340463100,3307916247,641025152,3043140495,3736164937,632953703,1172967064,1576976609,3274667266,2169303058,2370213795,1809054150,59727847,361929877,3211623147,2505202138,3569255213,1484005843,1239443753,2395588676,1975683434,4102977912,2572697195,666464733,3202437046,4035489047,3374361702,2110667444,1675577880,3843699074,2538681184,1649639237,2976151520,3144396420,4269907996,4178062228,1883793496,2403728665,2497604743,1383856311,2876494627,1917518562,3810496343,1716890410,3001755655,800440835,2261089178,3543599269,807962610,599762354,33778362,3977675356,2328828971,2809771154,4077384432,1315562145,1708848333,101039829,3509871135,3299278474,875451293,2733856160,92987698,2767645557,193195065,1080094634,1584504582,3178106961,1042385657,2531067453,3711829422,1306967366,2438237621,1908694277,67556463,1615861247,429456164,3602770327,2302690252,1742315127,2968011453,126454664,3877198648,2043211483,2709260871,2084704233,4169408201,0,159417987,841739592,504459436,1817866830,4245618683,260388950,1034867998,908933415,168810852,1750902305,2606453969,607530554,202008497,2472011535,3035535058,463180190,2160117071,1641816226,1517767529,470948374,3801332234,3231722213,1008918595,303765277,235474187,4069246893,766945465,337553864,1475418501,2943682380,4003061179,2743034109,4144047775,1551037884,1147550661,1543208500,2336434550,3408119516,3069049960,3102011747,3610369226,1113818384,328671808,2227573024,2236228733,3535486456,2935566865,3341394285,496906059,3702665459,226906860,2009195472,733156972,2842737049,294930682,1206477858,2835123396,2700099354,1451044056,573804783,2269728455,3644379585,2362090238,2564033334,2801107407,2776292904,3669462566,1068351396,742039012,1350078989,1784663195,1417561698,4136440770,2430122216,775550814,2193862645,2673705150,1775276924,1876241833,3475313331,3366754619,270040487,3902563182,3678124923,3441850377,1851332852,3969562369,2203032232,3868552805,2868897406,566021896,4011190502,3135740889,1248802510,3936291284,699432150,832877231,708780849,3332740144,899835584,1951317047,4236429990,3767586992,866637845,4043610186,1106041591,2144161806,395441711,1984812685,1139781709,3433712980,3835036895,2664543715,1282050075,3240894392,1181045119,2640243204,25965917,4203181171,4211818798,3009879386,2463879762,3910161971,1842759443,2597806476,933301370,1509430414,3943906441,3467192302,3076639029,3776767469,2051518780,2631065433,1441952575,404016761,1942435775,1408749034,1610459739,3745345300,2017778566,3400528769,3110650942,941896748,3265478751,371049330,3168937228,675039627,4279080257,967311729,135050206,3635733660,1683407248,2076935265,3576870512,1215061108,3501741890],v=[1347548327,1400783205,3273267108,2520393566,3409685355,4045380933,2880240216,2471224067,1428173050,4138563181,2441661558,636813900,4233094615,3620022987,2149987652,2411029155,1239331162,1730525723,2554718734,3781033664,46346101,310463728,2743944855,3328955385,3875770207,2501218972,3955191162,3667219033,768917123,3545789473,692707433,1150208456,1786102409,2029293177,1805211710,3710368113,3065962831,401639597,1724457132,3028143674,409198410,2196052529,1620529459,1164071807,3769721975,2226875310,486441376,2499348523,1483753576,428819965,2274680428,3075636216,598438867,3799141122,1474502543,711349675,129166120,53458370,2592523643,2782082824,4063242375,2988687269,3120694122,1559041666,730517276,2460449204,4042459122,2706270690,3446004468,3573941694,533804130,2328143614,2637442643,2695033685,839224033,1973745387,957055980,2856345839,106852767,1371368976,4181598602,1033297158,2933734917,1179510461,3046200461,91341917,1862534868,4284502037,605657339,2547432937,3431546947,2003294622,3182487618,2282195339,954669403,3682191598,1201765386,3917234703,3388507166,0,2198438022,1211247597,2887651696,1315723890,4227665663,1443857720,507358933,657861945,1678381017,560487590,3516619604,975451694,2970356327,261314535,3535072918,2652609425,1333838021,2724322336,1767536459,370938394,182621114,3854606378,1128014560,487725847,185469197,2918353863,3106780840,3356761769,2237133081,1286567175,3152976349,4255350624,2683765030,3160175349,3309594171,878443390,1988838185,3704300486,1756818940,1673061617,3403100636,272786309,1075025698,545572369,2105887268,4174560061,296679730,1841768865,1260232239,4091327024,3960309330,3497509347,1814803222,2578018489,4195456072,575138148,3299409036,446754879,3629546796,4011996048,3347532110,3252238545,4270639778,915985419,3483825537,681933534,651868046,2755636671,3828103837,223377554,2607439820,1649704518,3270937875,3901806776,1580087799,4118987695,3198115200,2087309459,2842678573,3016697106,1003007129,2802849917,1860738147,2077965243,164439672,4100872472,32283319,2827177882,1709610350,2125135846,136428751,3874428392,3652904859,3460984630,3572145929,3593056380,2939266226,824852259,818324884,3224740454,930369212,2801566410,2967507152,355706840,1257309336,4148292826,243256656,790073846,2373340630,1296297904,1422699085,3756299780,3818836405,457992840,3099667487,2135319889,77422314,1560382517,1945798516,788204353,1521706781,1385356242,870912086,325965383,2358957921,2050466060,2388260884,2313884476,4006521127,901210569,3990953189,1014646705,1503449823,1062597235,2031621326,3212035895,3931371469,1533017514,350174575,2256028891,2177544179,1052338372,741876788,1606591296,1914052035,213705253,2334669897,1107234197,1899603969,3725069491,2631447780,2422494913,1635502980,1893020342,1950903388,1120974935],T=[2807058932,1699970625,2764249623,1586903591,1808481195,1173430173,1487645946,59984867,4199882800,1844882806,1989249228,1277555970,3623636965,3419915562,1149249077,2744104290,1514790577,459744698,244860394,3235995134,1963115311,4027744588,2544078150,4190530515,1608975247,2627016082,2062270317,1507497298,2200818878,567498868,1764313568,3359936201,2305455554,2037970062,1047239e3,1910319033,1337376481,2904027272,2892417312,984907214,1243112415,830661914,861968209,2135253587,2011214180,2927934315,2686254721,731183368,1750626376,4246310725,1820824798,4172763771,3542330227,48394827,2404901663,2871682645,671593195,3254988725,2073724613,145085239,2280796200,2779915199,1790575107,2187128086,472615631,3029510009,4075877127,3802222185,4107101658,3201631749,1646252340,4270507174,1402811438,1436590835,3778151818,3950355702,3963161475,4020912224,2667994737,273792366,2331590177,104699613,95345982,3175501286,2377486676,1560637892,3564045318,369057872,4213447064,3919042237,1137477952,2658625497,1119727848,2340947849,1530455833,4007360968,172466556,266959938,516552836,0,2256734592,3980931627,1890328081,1917742170,4294704398,945164165,3575528878,958871085,3647212047,2787207260,1423022939,775562294,1739656202,3876557655,2530391278,2443058075,3310321856,547512796,1265195639,437656594,3121275539,719700128,3762502690,387781147,218828297,3350065803,2830708150,2848461854,428169201,122466165,3720081049,1627235199,648017665,4122762354,1002783846,2117360635,695634755,3336358691,4234721005,4049844452,3704280881,2232435299,574624663,287343814,612205898,1039717051,840019705,2708326185,793451934,821288114,1391201670,3822090177,376187827,3113855344,1224348052,1679968233,2361698556,1058709744,752375421,2431590963,1321699145,3519142200,2734591178,188127444,2177869557,3727205754,2384911031,3215212461,2648976442,2450346104,3432737375,1180849278,331544205,3102249176,4150144569,2952102595,2159976285,2474404304,766078933,313773861,2570832044,2108100632,1668212892,3145456443,2013908262,418672217,3070356634,2594734927,1852171925,3867060991,3473416636,3907448597,2614737639,919489135,164948639,2094410160,2997825956,590424639,2486224549,1723872674,3157750862,3399941250,3501252752,3625268135,2555048196,3673637356,1343127501,4130281361,3599595085,2957853679,1297403050,81781910,3051593425,2283490410,532201772,1367295589,3926170974,895287692,1953757831,1093597963,492483431,3528626907,1446242576,1192455638,1636604631,209336225,344873464,1015671571,669961897,3375740769,3857572124,2973530695,3747192018,1933530610,3464042516,935293895,3454686199,2858115069,1863638845,3683022916,4085369519,3292445032,875313188,1080017571,3279033885,621591778,1233856572,2504130317,24197544,3017672716,3835484340,3247465558,2220981195,3060847922,1551124588,1463996600],w=[4104605777,1097159550,396673818,660510266,2875968315,2638606623,4200115116,3808662347,821712160,1986918061,3430322568,38544885,3856137295,718002117,893681702,1654886325,2975484382,3122358053,3926825029,4274053469,796197571,1290801793,1184342925,3556361835,2405426947,2459735317,1836772287,1381620373,3196267988,1948373848,3764988233,3385345166,3263785589,2390325492,1480485785,3111247143,3780097726,2293045232,548169417,3459953789,3746175075,439452389,1362321559,1400849762,1685577905,1806599355,2174754046,137073913,1214797936,1174215055,3731654548,2079897426,1943217067,1258480242,529487843,1437280870,3945269170,3049390895,3313212038,923313619,679998e3,3215307299,57326082,377642221,3474729866,2041877159,133361907,1776460110,3673476453,96392454,878845905,2801699524,777231668,4082475170,2330014213,4142626212,2213296395,1626319424,1906247262,1846563261,562755902,3708173718,1040559837,3871163981,1418573201,3294430577,114585348,1343618912,2566595609,3186202582,1078185097,3651041127,3896688048,2307622919,425408743,3371096953,2081048481,1108339068,2216610296,0,2156299017,736970802,292596766,1517440620,251657213,2235061775,2933202493,758720310,265905162,1554391400,1532285339,908999204,174567692,1474760595,4002861748,2610011675,3234156416,3693126241,2001430874,303699484,2478443234,2687165888,585122620,454499602,151849742,2345119218,3064510765,514443284,4044981591,1963412655,2581445614,2137062819,19308535,1928707164,1715193156,4219352155,1126790795,600235211,3992742070,3841024952,836553431,1669664834,2535604243,3323011204,1243905413,3141400786,4180808110,698445255,2653899549,2989552604,2253581325,3252932727,3004591147,1891211689,2487810577,3915653703,4237083816,4030667424,2100090966,865136418,1229899655,953270745,3399679628,3557504664,4118925222,2061379749,3079546586,2915017791,983426092,2022837584,1607244650,2118541908,2366882550,3635996816,972512814,3283088770,1568718495,3499326569,3576539503,621982671,2895723464,410887952,2623762152,1002142683,645401037,1494807662,2595684844,1335535747,2507040230,4293295786,3167684641,367585007,3885750714,1865862730,2668221674,2960971305,2763173681,1059270954,2777952454,2724642869,1320957812,2194319100,2429595872,2815956275,77089521,3973773121,3444575871,2448830231,1305906550,4021308739,2857194700,2516901860,3518358430,1787304780,740276417,1699839814,1592394909,2352307457,2272556026,188821243,1729977011,3687994002,274084841,3594982253,3613494426,2701949495,4162096729,322734571,2837966542,1640576439,484830689,1202797690,3537852828,4067639125,349075736,3342319475,4157467219,4255800159,1030690015,1155237496,2951971274,1757691577,607398968,2738905026,499347990,3794078908,1011452712,227885567,2818666809,213114376,3034881240,1455525988,3414450555,850817237,1817998408,3092726480],E=[0,235474187,470948374,303765277,941896748,908933415,607530554,708780849,1883793496,2118214995,1817866830,1649639237,1215061108,1181045119,1417561698,1517767529,3767586992,4003061179,4236429990,4069246893,3635733660,3602770327,3299278474,3400528769,2430122216,2664543715,2362090238,2193862645,2835123396,2801107407,3035535058,3135740889,3678124923,3576870512,3341394285,3374361702,3810496343,3977675356,4279080257,4043610186,2876494627,2776292904,3076639029,3110650942,2472011535,2640243204,2403728665,2169303058,1001089995,899835584,666464733,699432150,59727847,226906860,530400753,294930682,1273168787,1172967064,1475418501,1509430414,1942435775,2110667444,1876241833,1641816226,2910219766,2743034109,2976151520,3211623147,2505202138,2606453969,2302690252,2269728455,3711829422,3543599269,3240894392,3475313331,3843699074,3943906441,4178062228,4144047775,1306967366,1139781709,1374988112,1610459739,1975683434,2076935265,1775276924,1742315127,1034867998,866637845,566021896,800440835,92987698,193195065,429456164,395441711,1984812685,2017778566,1784663195,1683407248,1315562145,1080094634,1383856311,1551037884,101039829,135050206,437757123,337553864,1042385657,807962610,573804783,742039012,2531067453,2564033334,2328828971,2227573024,2935566865,2700099354,3001755655,3168937228,3868552805,3902563182,4203181171,4102977912,3736164937,3501741890,3265478751,3433712980,1106041591,1340463100,1576976609,1408749034,2043211483,2009195472,1708848333,1809054150,832877231,1068351396,766945465,599762354,159417987,126454664,361929877,463180190,2709260871,2943682380,3178106961,3009879386,2572697195,2538681184,2236228733,2336434550,3509871135,3745345300,3441850377,3274667266,3910161971,3877198648,4110568485,4211818798,2597806476,2497604743,2261089178,2295101073,2733856160,2902087851,3202437046,2968011453,3936291284,3835036895,4136440770,4169408201,3535486456,3702665459,3467192302,3231722213,2051518780,1951317047,1716890410,1750902305,1113818384,1282050075,1584504582,1350078989,168810852,67556463,371049330,404016761,841739592,1008918595,775550814,540080725,3969562369,3801332234,4035489047,4269907996,3569255213,3669462566,3366754619,3332740144,2631065433,2463879762,2160117071,2395588676,2767645557,2868897406,3102011747,3069049960,202008497,33778362,270040487,504459436,875451293,975658646,675039627,641025152,2084704233,1917518562,1615861247,1851332852,1147550661,1248802510,1484005843,1451044056,933301370,967311729,733156972,632953703,260388950,25965917,328671808,496906059,1206477858,1239443753,1543208500,1441952575,2144161806,1908694277,1675577880,1842759443,3610369226,3644379585,3408119516,3307916247,4011190502,3776767469,4077384432,4245618683,2809771154,2842737049,3144396420,3043140495,2673705150,2438237621,2203032232,2370213795],A=[0,185469197,370938394,487725847,741876788,657861945,975451694,824852259,1483753576,1400783205,1315723890,1164071807,1950903388,2135319889,1649704518,1767536459,2967507152,3152976349,2801566410,2918353863,2631447780,2547432937,2328143614,2177544179,3901806776,3818836405,4270639778,4118987695,3299409036,3483825537,3535072918,3652904859,2077965243,1893020342,1841768865,1724457132,1474502543,1559041666,1107234197,1257309336,598438867,681933534,901210569,1052338372,261314535,77422314,428819965,310463728,3409685355,3224740454,3710368113,3593056380,3875770207,3960309330,4045380933,4195456072,2471224067,2554718734,2237133081,2388260884,3212035895,3028143674,2842678573,2724322336,4138563181,4255350624,3769721975,3955191162,3667219033,3516619604,3431546947,3347532110,2933734917,2782082824,3099667487,3016697106,2196052529,2313884476,2499348523,2683765030,1179510461,1296297904,1347548327,1533017514,1786102409,1635502980,2087309459,2003294622,507358933,355706840,136428751,53458370,839224033,957055980,605657339,790073846,2373340630,2256028891,2607439820,2422494913,2706270690,2856345839,3075636216,3160175349,3573941694,3725069491,3273267108,3356761769,4181598602,4063242375,4011996048,3828103837,1033297158,915985419,730517276,545572369,296679730,446754879,129166120,213705253,1709610350,1860738147,1945798516,2029293177,1239331162,1120974935,1606591296,1422699085,4148292826,4233094615,3781033664,3931371469,3682191598,3497509347,3446004468,3328955385,2939266226,2755636671,3106780840,2988687269,2198438022,2282195339,2501218972,2652609425,1201765386,1286567175,1371368976,1521706781,1805211710,1620529459,2105887268,1988838185,533804130,350174575,164439672,46346101,870912086,954669403,636813900,788204353,2358957921,2274680428,2592523643,2441661558,2695033685,2880240216,3065962831,3182487618,3572145929,3756299780,3270937875,3388507166,4174560061,4091327024,4006521127,3854606378,1014646705,930369212,711349675,560487590,272786309,457992840,106852767,223377554,1678381017,1862534868,1914052035,2031621326,1211247597,1128014560,1580087799,1428173050,32283319,182621114,401639597,486441376,768917123,651868046,1003007129,818324884,1503449823,1385356242,1333838021,1150208456,1973745387,2125135846,1673061617,1756818940,2970356327,3120694122,2802849917,2887651696,2637442643,2520393566,2334669897,2149987652,3917234703,3799141122,4284502037,4100872472,3309594171,3460984630,3545789473,3629546796,2050466060,1899603969,1814803222,1730525723,1443857720,1560382517,1075025698,1260232239,575138148,692707433,878443390,1062597235,243256656,91341917,409198410,325965383,3403100636,3252238545,3704300486,3620022987,3874428392,3990953189,4042459122,4227665663,2460449204,2578018489,2226875310,2411029155,3198115200,3046200461,2827177882,2743944855],_=[0,218828297,437656594,387781147,875313188,958871085,775562294,590424639,1750626376,1699970625,1917742170,2135253587,1551124588,1367295589,1180849278,1265195639,3501252752,3720081049,3399941250,3350065803,3835484340,3919042237,4270507174,4085369519,3102249176,3051593425,2734591178,2952102595,2361698556,2177869557,2530391278,2614737639,3145456443,3060847922,2708326185,2892417312,2404901663,2187128086,2504130317,2555048196,3542330227,3727205754,3375740769,3292445032,3876557655,3926170974,4246310725,4027744588,1808481195,1723872674,1910319033,2094410160,1608975247,1391201670,1173430173,1224348052,59984867,244860394,428169201,344873464,935293895,984907214,766078933,547512796,1844882806,1627235199,2011214180,2062270317,1507497298,1423022939,1137477952,1321699145,95345982,145085239,532201772,313773861,830661914,1015671571,731183368,648017665,3175501286,2957853679,2807058932,2858115069,2305455554,2220981195,2474404304,2658625497,3575528878,3625268135,3473416636,3254988725,3778151818,3963161475,4213447064,4130281361,3599595085,3683022916,3432737375,3247465558,3802222185,4020912224,4172763771,4122762354,3201631749,3017672716,2764249623,2848461854,2331590177,2280796200,2431590963,2648976442,104699613,188127444,472615631,287343814,840019705,1058709744,671593195,621591778,1852171925,1668212892,1953757831,2037970062,1514790577,1463996600,1080017571,1297403050,3673637356,3623636965,3235995134,3454686199,4007360968,3822090177,4107101658,4190530515,2997825956,3215212461,2830708150,2779915199,2256734592,2340947849,2627016082,2443058075,172466556,122466165,273792366,492483431,1047239e3,861968209,612205898,695634755,1646252340,1863638845,2013908262,1963115311,1446242576,1530455833,1277555970,1093597963,1636604631,1820824798,2073724613,1989249228,1436590835,1487645946,1337376481,1119727848,164948639,81781910,331544205,516552836,1039717051,821288114,669961897,719700128,2973530695,3157750862,2871682645,2787207260,2232435299,2283490410,2667994737,2450346104,3647212047,3564045318,3279033885,3464042516,3980931627,3762502690,4150144569,4199882800,3070356634,3121275539,2904027272,2686254721,2200818878,2384911031,2570832044,2486224549,3747192018,3528626907,3310321856,3359936201,3950355702,3867060991,4049844452,4234721005,1739656202,1790575107,2108100632,1890328081,1402811438,1586903591,1233856572,1149249077,266959938,48394827,369057872,418672217,1002783846,919489135,567498868,752375421,209336225,24197544,376187827,459744698,945164165,895287692,574624663,793451934,1679968233,1764313568,2117360635,1933530610,1343127501,1560637892,1243112415,1192455638,3704280881,3519142200,3336358691,3419915562,3907448597,3857572124,4075877127,4294704398,3029510009,3113855344,2927934315,2744104290,2159976285,2377486676,2594734927,2544078150],I=[0,151849742,303699484,454499602,607398968,758720310,908999204,1059270954,1214797936,1097159550,1517440620,1400849762,1817998408,1699839814,2118541908,2001430874,2429595872,2581445614,2194319100,2345119218,3034881240,3186202582,2801699524,2951971274,3635996816,3518358430,3399679628,3283088770,4237083816,4118925222,4002861748,3885750714,1002142683,850817237,698445255,548169417,529487843,377642221,227885567,77089521,1943217067,2061379749,1640576439,1757691577,1474760595,1592394909,1174215055,1290801793,2875968315,2724642869,3111247143,2960971305,2405426947,2253581325,2638606623,2487810577,3808662347,3926825029,4044981591,4162096729,3342319475,3459953789,3576539503,3693126241,1986918061,2137062819,1685577905,1836772287,1381620373,1532285339,1078185097,1229899655,1040559837,923313619,740276417,621982671,439452389,322734571,137073913,19308535,3871163981,4021308739,4104605777,4255800159,3263785589,3414450555,3499326569,3651041127,2933202493,2815956275,3167684641,3049390895,2330014213,2213296395,2566595609,2448830231,1305906550,1155237496,1607244650,1455525988,1776460110,1626319424,2079897426,1928707164,96392454,213114376,396673818,514443284,562755902,679998e3,865136418,983426092,3708173718,3557504664,3474729866,3323011204,4180808110,4030667424,3945269170,3794078908,2507040230,2623762152,2272556026,2390325492,2975484382,3092726480,2738905026,2857194700,3973773121,3856137295,4274053469,4157467219,3371096953,3252932727,3673476453,3556361835,2763173681,2915017791,3064510765,3215307299,2156299017,2307622919,2459735317,2610011675,2081048481,1963412655,1846563261,1729977011,1480485785,1362321559,1243905413,1126790795,878845905,1030690015,645401037,796197571,274084841,425408743,38544885,188821243,3613494426,3731654548,3313212038,3430322568,4082475170,4200115116,3780097726,3896688048,2668221674,2516901860,2366882550,2216610296,3141400786,2989552604,2837966542,2687165888,1202797690,1320957812,1437280870,1554391400,1669664834,1787304780,1906247262,2022837584,265905162,114585348,499347990,349075736,736970802,585122620,972512814,821712160,2595684844,2478443234,2293045232,2174754046,3196267988,3079546586,2895723464,2777952454,3537852828,3687994002,3234156416,3385345166,4142626212,4293295786,3841024952,3992742070,174567692,57326082,410887952,292596766,777231668,660510266,1011452712,893681702,1108339068,1258480242,1343618912,1494807662,1715193156,1865862730,1948373848,2100090966,2701949495,2818666809,3004591147,3122358053,2235061775,2352307457,2535604243,2653899549,3915653703,3764988233,4219352155,4067639125,3444575871,3294430577,3746175075,3594982253,836553431,953270745,600235211,718002117,367585007,484830689,133361907,251657213,2041877159,1891211689,1806599355,1654886325,1568718495,1418573201,1335535747,1184342925];function R(e){for(var t=[],n=0;n<e.length;n+=4)t.push(e[n]<<24|e[n+1]<<16|e[n+2]<<8|e[n+3]);return t}var C=function(e){if(!(this instanceof C))throw Error("AES must be instanitated with `new`");Object.defineProperty(this,"key",{value:i(e,!0)}),this._prepare()};C.prototype._prepare=function(){var e=l[this.key.length];if(null==e)throw new Error("invalid key size (must be 16, 24 or 32 bytes)");this._Ke=[],this._Kd=[];for(var t=0;t<=e;t++)this._Ke.push([0,0,0,0]),this._Kd.push([0,0,0,0]);var n,r=4*(e+1),i=this.key.length/4,a=R(this.key);for(t=0;t<i;t++)n=t>>2,this._Ke[n][t%4]=a[t],this._Kd[e-n][t%4]=a[t];for(var o,s=0,u=i;u<r;){if(o=a[i-1],a[0]^=f[o>>16&255]<<24^f[o>>8&255]<<16^f[255&o]<<8^f[o>>24&255]^d[s]<<24,s+=1,8!=i)for(t=1;t<i;t++)a[t]^=a[t-1];else{for(t=1;t<i/2;t++)a[t]^=a[t-1];o=a[i/2-1],a[i/2]^=f[255&o]^f[o>>8&255]<<8^f[o>>16&255]<<16^f[o>>24&255]<<24;for(t=i/2+1;t<i;t++)a[t]^=a[t-1]}for(t=0;t<i&&u<r;)c=u>>2,p=u%4,this._Ke[c][p]=a[t],this._Kd[e-c][p]=a[t++],u++}for(var c=1;c<e;c++)for(var p=0;p<4;p++)o=this._Kd[c][p],this._Kd[c][p]=E[o>>24&255]^A[o>>16&255]^_[o>>8&255]^I[255&o]},C.prototype.encrypt=function(e){if(16!=e.length)throw new Error("invalid plaintext size (must be 16 bytes)");for(var t=this._Ke.length-1,n=[0,0,0,0],r=R(e),i=0;i<4;i++)r[i]^=this._Ke[0][i];for(var o=1;o<t;o++){for(i=0;i<4;i++)n[i]=h[r[i]>>24&255]^m[r[(i+1)%4]>>16&255]^y[r[(i+2)%4]>>8&255]^g[255&r[(i+3)%4]]^this._Ke[o][i];r=n.slice()}var s,u=a(16);for(i=0;i<4;i++)s=this._Ke[t][i],u[4*i]=255&(f[r[i]>>24&255]^s>>24),u[4*i+1]=255&(f[r[(i+1)%4]>>16&255]^s>>16),u[4*i+2]=255&(f[r[(i+2)%4]>>8&255]^s>>8),u[4*i+3]=255&(f[255&r[(i+3)%4]]^s);return u},C.prototype.decrypt=function(e){if(16!=e.length)throw new Error("invalid ciphertext size (must be 16 bytes)");for(var t=this._Kd.length-1,n=[0,0,0,0],r=R(e),i=0;i<4;i++)r[i]^=this._Kd[0][i];for(var o=1;o<t;o++){for(i=0;i<4;i++)n[i]=b[r[i]>>24&255]^v[r[(i+3)%4]>>16&255]^T[r[(i+2)%4]>>8&255]^w[255&r[(i+1)%4]]^this._Kd[o][i];r=n.slice()}var s,u=a(16);for(i=0;i<4;i++)s=this._Kd[t][i],u[4*i]=255&(p[r[i]>>24&255]^s>>24),u[4*i+1]=255&(p[r[(i+3)%4]>>16&255]^s>>16),u[4*i+2]=255&(p[r[(i+2)%4]>>8&255]^s>>8),u[4*i+3]=255&(p[255&r[(i+1)%4]]^s);return u};var O=function(e){if(!(this instanceof O))throw Error("AES must be instanitated with `new`");this.description="Electronic Code Block",this.name="ecb",this._aes=new C(e)};O.prototype.encrypt=function(e){if((e=i(e)).length%16!=0)throw new Error("invalid plaintext size (must be multiple of 16 bytes)");for(var t=a(e.length),n=a(16),r=0;r<e.length;r+=16)o(e,n,0,r,r+16),o(n=this._aes.encrypt(n),t,r);return t},O.prototype.decrypt=function(e){if((e=i(e)).length%16!=0)throw new Error("invalid ciphertext size (must be multiple of 16 bytes)");for(var t=a(e.length),n=a(16),r=0;r<e.length;r+=16)o(e,n,0,r,r+16),o(n=this._aes.decrypt(n),t,r);return t};var k=function(e,t){if(!(this instanceof k))throw Error("AES must be instanitated with `new`");if(this.description="Cipher Block Chaining",this.name="cbc",t){if(16!=t.length)throw new Error("invalid initialation vector size (must be 16 bytes)")}else t=a(16);this._lastCipherblock=i(t,!0),this._aes=new C(e)};k.prototype.encrypt=function(e){if((e=i(e)).length%16!=0)throw new Error("invalid plaintext size (must be multiple of 16 bytes)");for(var t=a(e.length),n=a(16),r=0;r<e.length;r+=16){o(e,n,0,r,r+16);for(var s=0;s<16;s++)n[s]^=this._lastCipherblock[s];this._lastCipherblock=this._aes.encrypt(n),o(this._lastCipherblock,t,r)}return t},k.prototype.decrypt=function(e){if((e=i(e)).length%16!=0)throw new Error("invalid ciphertext size (must be multiple of 16 bytes)");for(var t=a(e.length),n=a(16),r=0;r<e.length;r+=16){o(e,n,0,r,r+16),n=this._aes.decrypt(n);for(var s=0;s<16;s++)t[r+s]=n[s]^this._lastCipherblock[s];o(e,this._lastCipherblock,0,r,r+16)}return t};var S=function(e,t,n){if(!(this instanceof S))throw Error("AES must be instanitated with `new`");if(this.description="Cipher Feedback",this.name="cfb",t){if(16!=t.length)throw new Error("invalid initialation vector size (must be 16 size)")}else t=a(16);n||(n=1),this.segmentSize=n,this._shiftRegister=i(t,!0),this._aes=new C(e)};S.prototype.encrypt=function(e){if(e.length%this.segmentSize!=0)throw new Error("invalid plaintext size (must be segmentSize bytes)");for(var t,n=i(e,!0),r=0;r<n.length;r+=this.segmentSize){t=this._aes.encrypt(this._shiftRegister);for(var a=0;a<this.segmentSize;a++)n[r+a]^=t[a];o(this._shiftRegister,this._shiftRegister,0,this.segmentSize),o(n,this._shiftRegister,16-this.segmentSize,r,r+this.segmentSize)}return n},S.prototype.decrypt=function(e){if(e.length%this.segmentSize!=0)throw new Error("invalid ciphertext size (must be segmentSize bytes)");for(var t,n=i(e,!0),r=0;r<n.length;r+=this.segmentSize){t=this._aes.encrypt(this._shiftRegister);for(var a=0;a<this.segmentSize;a++)n[r+a]^=t[a];o(this._shiftRegister,this._shiftRegister,0,this.segmentSize),o(e,this._shiftRegister,16-this.segmentSize,r,r+this.segmentSize)}return n};var N=function(e,t){if(!(this instanceof N))throw Error("AES must be instanitated with `new`");if(this.description="Output Feedback",this.name="ofb",t){if(16!=t.length)throw new Error("invalid initialation vector size (must be 16 bytes)")}else t=a(16);this._lastPrecipher=i(t,!0),this._lastPrecipherIndex=16,this._aes=new C(e)};N.prototype.encrypt=function(e){for(var t=i(e,!0),n=0;n<t.length;n++)16===this._lastPrecipherIndex&&(this._lastPrecipher=this._aes.encrypt(this._lastPrecipher),this._lastPrecipherIndex=0),t[n]^=this._lastPrecipher[this._lastPrecipherIndex++];return t},N.prototype.decrypt=N.prototype.encrypt;var x=function(e){if(!(this instanceof x))throw Error("Counter must be instanitated with `new`");0===e||e||(e=1),"number"==typeof e?(this._counter=a(16),this.setValue(e)):this.setBytes(e)};x.prototype.setValue=function(e){if("number"!=typeof e||parseInt(e)!=e)throw new Error("invalid counter value (must be an integer)");for(var t=15;t>=0;--t)this._counter[t]=e%256,e>>=8},x.prototype.setBytes=function(e){if(16!=(e=i(e,!0)).length)throw new Error("invalid counter bytes size (must be 16 bytes)");this._counter=e},x.prototype.increment=function(){for(var e=15;e>=0;e--){if(255!==this._counter[e]){this._counter[e]++;break}this._counter[e]=0}};var P=function(e,t){if(!(this instanceof P))throw Error("AES must be instanitated with `new`");this.description="Counter",this.name="ctr",t instanceof x||(t=new x(t)),this._counter=t,this._remainingCounter=null,this._remainingCounterIndex=16,this._aes=new C(e)};P.prototype.encrypt=function(e){for(var t=i(e,!0),n=0;n<t.length;n++)16===this._remainingCounterIndex&&(this._remainingCounter=this._aes.encrypt(this._counter._counter),this._remainingCounterIndex=0,this._counter.increment()),t[n]^=this._remainingCounter[this._remainingCounterIndex++];return t},P.prototype.decrypt=P.prototype.encrypt;var M={AES:C,Counter:x,ModeOfOperation:{ecb:O,cbc:k,cfb:S,ofb:N,ctr:P},utils:{hex:c,utf8:u},padding:{pkcs7:{pad:function(e){var t=16-(e=i(e,!0)).length%16,n=a(e.length+t);o(e,n);for(var r=e.length;r<n.length;r++)n[r]=t;return n},strip:function(e){if((e=i(e,!0)).length<16)throw new Error("PKCS#7 invalid length");var t=e[e.length-1];if(t>16)throw new Error("PKCS#7 padding byte out of range");for(var n=e.length-t,r=0;r<t;r++)if(e[n+r]!==t)throw new Error("PKCS#7 invalid padding byte");var s=a(n);return o(e,s,0,0,n),s}}},_arrayTest:{coerceArray:i,createArray:a,copyArray:o}};e.exports=M}()}(Dd);var Fd=Lt(Dd.exports);const Ld="json-wallets/5.7.0";function Ud(e){return"string"==typeof e&&"0x"!==e.substring(0,2)&&(e="0x"+e),sr(e)}function qd(e,t){for(e=String(e);e.length<t;)e="0"+e;return e}function jd(e){return"string"==typeof e?Pa(e,Oa.NFKC):sr(e)}function Gd(e,t){let n=e;const r=t.toLowerCase().split("/");for(let e=0;e<r.length;e++){let t=null;for(const i in n)if(i.toLowerCase()===r[e]){t=n[i];break}if(null===t)return null;n=t}return n}function Hd(e){const t=sr(e);t[6]=15&t[6]|64,t[8]=63&t[8]|128;const n=pr(t);return[n.substring(2,10),n.substring(10,14),n.substring(14,18),n.substring(18,22),n.substring(22,34)].join("-")}const zd=new Zn(Ld);class Wd extends ii{isCrowdsaleAccount(e){return!(!e||!e._isCrowdsaleAccount)}}function Vd(e,t){const n=JSON.parse(e);t=jd(t);const r=$i(Gd(n,"ethaddr")),i=Ud(Gd(n,"encseed"));i&&i.length%16==0||zd.throwArgumentError("invalid encseed","json",e);const a=sr(od(t,t,2e3,32,"sha256")).slice(0,16),o=i.slice(0,16),s=i.slice(16),u=new Fd.ModeOfOperation.cbc(a,o),c=Fd.padding.pkcs7.strip(sr(u.decrypt(s)));let l="";for(let e=0;e<c.length;e++)l+=String.fromCharCode(c[e]);const d=Di(Pa(l));return new Wd({_isCrowdsaleAccount:!0,address:r,privateKey:d})}function Kd(e){let t=null;try{t=JSON.parse(e)}catch(e){return!1}return t.encseed&&t.ethaddr}function Xd(e){let t=null;try{t=JSON.parse(e)}catch(e){return!1}return!(!t.version||parseInt(t.version)!==t.version||3!==parseInt(t.version))}function Jd(e){if(Kd(e))try{return $i(JSON.parse(e).ethaddr)}catch(e){return null}if(Xd(e))try{return $i(JSON.parse(e).address)}catch(e){return null}return null}var Yd={exports:{}};!function(e,t){!function(t){const n=2147483647;function r(e){const t=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]);let n=1779033703,r=3144134277,i=1013904242,a=2773480762,o=1359893119,s=2600822924,u=528734635,c=1541459225;const l=new Uint32Array(64);function d(e){let d=0,f=e.length;for(;f>=64;){let p,h,m,y,g,b=n,v=r,T=i,w=a,E=o,A=s,_=u,I=c;for(h=0;h<16;h++)m=d+4*h,l[h]=(255&e[m])<<24|(255&e[m+1])<<16|(255&e[m+2])<<8|255&e[m+3];for(h=16;h<64;h++)p=l[h-2],y=(p>>>17|p<<15)^(p>>>19|p<<13)^p>>>10,p=l[h-15],g=(p>>>7|p<<25)^(p>>>18|p<<14)^p>>>3,l[h]=(y+l[h-7]|0)+(g+l[h-16]|0)|0;for(h=0;h<64;h++)y=(((E>>>6|E<<26)^(E>>>11|E<<21)^(E>>>25|E<<7))+(E&A^~E&_)|0)+(I+(t[h]+l[h]|0)|0)|0,g=((b>>>2|b<<30)^(b>>>13|b<<19)^(b>>>22|b<<10))+(b&v^b&T^v&T)|0,I=_,_=A,A=E,E=w+y|0,w=T,T=v,v=b,b=y+g|0;n=n+b|0,r=r+v|0,i=i+T|0,a=a+w|0,o=o+E|0,s=s+A|0,u=u+_|0,c=c+I|0,d+=64,f-=64}}d(e);let f,p=e.length%64,h=e.length/536870912|0,m=e.length<<3,y=p<56?56:120,g=e.slice(e.length-p,e.length);for(g.push(128),f=p+1;f<y;f++)g.push(0);return g.push(h>>>24&255),g.push(h>>>16&255),g.push(h>>>8&255),g.push(h>>>0&255),g.push(m>>>24&255),g.push(m>>>16&255),g.push(m>>>8&255),g.push(m>>>0&255),d(g),[n>>>24&255,n>>>16&255,n>>>8&255,n>>>0&255,r>>>24&255,r>>>16&255,r>>>8&255,r>>>0&255,i>>>24&255,i>>>16&255,i>>>8&255,i>>>0&255,a>>>24&255,a>>>16&255,a>>>8&255,a>>>0&255,o>>>24&255,o>>>16&255,o>>>8&255,o>>>0&255,s>>>24&255,s>>>16&255,s>>>8&255,s>>>0&255,u>>>24&255,u>>>16&255,u>>>8&255,u>>>0&255,c>>>24&255,c>>>16&255,c>>>8&255,c>>>0&255]}function i(e,t,n){e=e.length<=64?e:r(e);const i=64+t.length+4,a=new Array(i),o=new Array(64);let s,u=[];for(s=0;s<64;s++)a[s]=54;for(s=0;s<e.length;s++)a[s]^=e[s];for(s=0;s<t.length;s++)a[64+s]=t[s];for(s=i-4;s<i;s++)a[s]=0;for(s=0;s<64;s++)o[s]=92;for(s=0;s<e.length;s++)o[s]^=e[s];function c(){for(let e=i-1;e>=i-4;e--){if(a[e]++,a[e]<=255)return;a[e]=0}}for(;n>=32;)c(),u=u.concat(r(o.concat(r(a)))),n-=32;return n>0&&(c(),u=u.concat(r(o.concat(r(a))).slice(0,n))),u}function a(e,t,n,r,i){let a;for(c(e,16*(2*n-1),i,0,16),a=0;a<2*n;a++)u(e,16*a,i,16),s(i,r),c(i,0,e,t+16*a,16);for(a=0;a<n;a++)c(e,t+2*a*16,e,16*a,16);for(a=0;a<n;a++)c(e,t+16*(2*a+1),e,16*(a+n),16)}function o(e,t){return e<<t|e>>>32-t}function s(e,t){c(e,0,t,0,16);for(let e=8;e>0;e-=2)t[4]^=o(t[0]+t[12],7),t[8]^=o(t[4]+t[0],9),t[12]^=o(t[8]+t[4],13),t[0]^=o(t[12]+t[8],18),t[9]^=o(t[5]+t[1],7),t[13]^=o(t[9]+t[5],9),t[1]^=o(t[13]+t[9],13),t[5]^=o(t[1]+t[13],18),t[14]^=o(t[10]+t[6],7),t[2]^=o(t[14]+t[10],9),t[6]^=o(t[2]+t[14],13),t[10]^=o(t[6]+t[2],18),t[3]^=o(t[15]+t[11],7),t[7]^=o(t[3]+t[15],9),t[11]^=o(t[7]+t[3],13),t[15]^=o(t[11]+t[7],18),t[1]^=o(t[0]+t[3],7),t[2]^=o(t[1]+t[0],9),t[3]^=o(t[2]+t[1],13),t[0]^=o(t[3]+t[2],18),t[6]^=o(t[5]+t[4],7),t[7]^=o(t[6]+t[5],9),t[4]^=o(t[7]+t[6],13),t[5]^=o(t[4]+t[7],18),t[11]^=o(t[10]+t[9],7),t[8]^=o(t[11]+t[10],9),t[9]^=o(t[8]+t[11],13),t[10]^=o(t[9]+t[8],18),t[12]^=o(t[15]+t[14],7),t[13]^=o(t[12]+t[15],9),t[14]^=o(t[13]+t[12],13),t[15]^=o(t[14]+t[13],18);for(let n=0;n<16;++n)e[n]+=t[n]}function u(e,t,n,r){for(let i=0;i<r;i++)n[i]^=e[t+i]}function c(e,t,n,r,i){for(;i--;)n[r++]=e[t++]}function l(e){if(!e||"number"!=typeof e.length)return!1;for(let t=0;t<e.length;t++){const n=e[t];if("number"!=typeof n||n%1||n<0||n>=256)return!1}return!0}function d(e,t){if("number"!=typeof e||e%1)throw new Error("invalid "+t);return e}function f(e,t,r,o,s,f,p){if(r=d(r,"N"),o=d(o,"r"),s=d(s,"p"),f=d(f,"dkLen"),0===r||0!=(r&r-1))throw new Error("N must be power of 2");if(r>n/128/o)throw new Error("N too large");if(o>n/128/s)throw new Error("r too large");if(!l(e))throw new Error("password must be an array or buffer");if(e=Array.prototype.slice.call(e),!l(t))throw new Error("salt must be an array or buffer");t=Array.prototype.slice.call(t);let h=i(e,t,128*s*o);const m=new Uint32Array(32*s*o);for(let e=0;e<m.length;e++){const t=4*e;m[e]=(255&h[t+3])<<24|(255&h[t+2])<<16|(255&h[t+1])<<8|(255&h[t+0])<<0}const y=new Uint32Array(64*o),g=new Uint32Array(32*o*r),b=32*o,v=new Uint32Array(16),T=new Uint32Array(16),w=s*r*2;let E,A,_=0,I=null,R=!1,C=0,O=0;const k=p?parseInt(1e3/o):4294967295,S="undefined"!=typeof setImmediate?setImmediate:setTimeout,N=function(){if(R)return p(new Error("cancelled"),_/w);let t;switch(C){case 0:A=32*O*o,c(m,A,y,0,b),C=1,E=0;case 1:t=r-E,t>k&&(t=k);for(let e=0;e<t;e++)c(y,0,g,(E+e)*b,b),a(y,b,o,v,T);if(E+=t,_+=t,p){const e=parseInt(1e3*_/w);if(e!==I){if(R=p(null,_/w),R)break;I=e}}if(E<r)break;E=0,C=2;case 2:t=r-E,t>k&&(t=k);for(let e=0;e<t;e++){const e=y[16*(2*o-1)]&r-1;u(g,e*b,y,b),a(y,b,o,v,T)}if(E+=t,_+=t,p){const e=parseInt(1e3*_/w);if(e!==I){if(R=p(null,_/w),R)break;I=e}}if(E<r)break;if(c(y,0,m,A,b),O++,O<s){C=0;break}h=[];for(let e=0;e<m.length;e++)h.push(m[e]>>0&255),h.push(m[e]>>8&255),h.push(m[e]>>16&255),h.push(m[e]>>24&255);const n=i(e,h,f);return p&&p(null,1,n),n}p&&S(N)};if(!p)for(;;){const e=N();if(null!=e)return e}N()}const p={scrypt:function(e,t,n,r,i,a,o){return new Promise((function(s,u){let c=0;o&&o(0),f(e,t,n,r,i,a,(function(e,t,n){if(e)u(e);else if(n)o&&1!==c&&o(1),s(new Uint8Array(n));else if(o&&t!==c)return c=t,o(t)}))}))},syncScrypt:function(e,t,n,r,i,a){return new Uint8Array(f(e,t,n,r,i,a))}};e.exports=p}()}(Yd);var Qd=Lt(Yd.exports),$d=window&&window.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};const Zd=new Zn(Ld);function ef(e){return null!=e&&e.mnemonic&&e.mnemonic.phrase}class tf extends ii{isKeystoreAccount(e){return!(!e||!e._isKeystoreAccount)}}function nf(e,t){const n=Ud(Gd(e,"crypto/ciphertext"));if(pr(Di(ur([t.slice(16,32),n]))).substring(2)!==Gd(e,"crypto/mac").toLowerCase())throw new Error("invalid password");const r=function(e,t,n){if("aes-128-ctr"===Gd(e,"crypto/cipher")){const r=Ud(Gd(e,"crypto/cipherparams/iv")),i=new Fd.Counter(r);return sr(new Fd.ModeOfOperation.ctr(t,i).decrypt(n))}return null}(e,t.slice(0,16),n);r||Zd.throwError("unsupported cipher",Zn.errors.UNSUPPORTED_OPERATION,{operation:"decrypt"});const i=t.slice(32,64),a=Tl(r);if(e.address){let t=e.address.toLowerCase();if("0x"!==t.substring(0,2)&&(t="0x"+t),$i(t)!==a)throw new Error("address mismatch")}const o={_isKeystoreAccount:!0,address:a,privateKey:pr(r)};if("0.1"===Gd(e,"x-ethers/version")){const t=Ud(Gd(e,"x-ethers/mnemonicCiphertext")),n=Ud(Gd(e,"x-ethers/mnemonicCounter")),r=new Fd.Counter(n),a=new Fd.ModeOfOperation.ctr(i,r),s=Gd(e,"x-ethers/path")||Ed,u=Gd(e,"x-ethers/locale")||"en",c=sr(a.decrypt(t));try{const e=Rd(c,u),t=Ad.fromMnemonic(e,null,u).derivePath(s);if(t.privateKey!=o.privateKey)throw new Error("mnemonic mismatch");o.mnemonic=t.mnemonic}catch(e){if(e.code!==Zn.errors.INVALID_ARGUMENT||"wordlist"!==e.argument)throw e}}return new tf(o)}function rf(e,t,n,r,i){return sr(od(e,t,n,r,i))}function af(e,t,n,r,i){return Promise.resolve(rf(e,t,n,r,i))}function of(e,t,n,r,i){const a=jd(t),o=Gd(e,"crypto/kdf");if(o&&"string"==typeof o){const t=function(e,t){return Zd.throwArgumentError("invalid key-derivation function parameters",e,t)};if("scrypt"===o.toLowerCase()){const n=Ud(Gd(e,"crypto/kdfparams/salt")),s=parseInt(Gd(e,"crypto/kdfparams/n")),u=parseInt(Gd(e,"crypto/kdfparams/r")),c=parseInt(Gd(e,"crypto/kdfparams/p"));s&&u&&c||t("kdf",o),0!=(s&s-1)&&t("N",s);const l=parseInt(Gd(e,"crypto/kdfparams/dklen"));return 32!==l&&t("dklen",l),r(a,n,s,u,c,64,i)}if("pbkdf2"===o.toLowerCase()){const r=Ud(Gd(e,"crypto/kdfparams/salt"));let i=null;const o=Gd(e,"crypto/kdfparams/prf");"hmac-sha256"===o?i="sha256":"hmac-sha512"===o?i="sha512":t("prf",o);const s=parseInt(Gd(e,"crypto/kdfparams/c")),u=parseInt(Gd(e,"crypto/kdfparams/dklen"));return 32!==u&&t("dklen",u),n(a,r,s,u,i)}}return Zd.throwArgumentError("unsupported key-derivation function","kdf",o)}function sf(e,t){const n=JSON.parse(e);return nf(n,of(n,t,rf,Qd.syncScrypt))}function uf(e,t,n){return $d(this,void 0,void 0,(function*(){const r=JSON.parse(e);return nf(r,yield of(r,t,af,Qd.scrypt,n))}))}function cf(e,t,n,r){try{if($i(e.address)!==Tl(e.privateKey))throw new Error("address/privateKey mismatch");if(ef(e)){const t=e.mnemonic;if(Ad.fromMnemonic(t.phrase,null,t.locale).derivePath(t.path||Ed).privateKey!=e.privateKey)throw new Error("mnemonic mismatch")}}catch(e){return Promise.reject(e)}"function"!=typeof n||r||(r=n,n={}),n||(n={});const i=sr(e.privateKey),a=jd(t);let o=null,s=null,u=null;if(ef(e)){const t=e.mnemonic;o=sr(Id(t.phrase,t.locale||"en")),s=t.path||Ed,u=t.locale||"en"}let c=n.client;c||(c="ethers.js");let l=null;l=n.salt?sr(n.salt):Pd(32);let d=null;if(n.iv){if(d=sr(n.iv),16!==d.length)throw new Error("invalid iv")}else d=Pd(16);let f=null;if(n.uuid){if(f=sr(n.uuid),16!==f.length)throw new Error("invalid uuid")}else f=Pd(16);let p=1<<17,h=8,m=1;return n.scrypt&&(n.scrypt.N&&(p=n.scrypt.N),n.scrypt.r&&(h=n.scrypt.r),n.scrypt.p&&(m=n.scrypt.p)),Qd.scrypt(a,l,p,h,m,64,r).then((t=>{const n=(t=sr(t)).slice(0,16),r=t.slice(16,32),a=t.slice(32,64),y=new Fd.Counter(d),g=sr(new Fd.ModeOfOperation.ctr(n,y).encrypt(i)),b=Di(ur([r,g])),v={address:e.address.substring(2).toLowerCase(),id:Hd(f),version:3,crypto:{cipher:"aes-128-ctr",cipherparams:{iv:pr(d).substring(2)},ciphertext:pr(g).substring(2),kdf:"scrypt",kdfparams:{salt:pr(l).substring(2),n:p,dklen:32,p:m,r:h},mac:b.substring(2)}};if(o){const e=Pd(16),t=new Fd.Counter(e),n=sr(new Fd.ModeOfOperation.ctr(a,t).encrypt(o)),r=new Date,i=r.getUTCFullYear()+"-"+qd(r.getUTCMonth()+1,2)+"-"+qd(r.getUTCDate(),2)+"T"+qd(r.getUTCHours(),2)+"-"+qd(r.getUTCMinutes(),2)+"-"+qd(r.getUTCSeconds(),2)+".0Z";v["x-ethers"]={client:c,gethFilename:"UTC--"+i+"--"+v.address,mnemonicCounter:pr(e).substring(2),mnemonicCiphertext:pr(n).substring(2),path:s,locale:u,version:"0.1"}}return JSON.stringify(v)}))}function lf(e,t,n){if(Kd(e)){n&&n(0);const r=Vd(e,t);return n&&n(1),Promise.resolve(r)}return Xd(e)?uf(e,t,n):Promise.reject(new Error("invalid JSON wallet"))}function df(e,t){if(Kd(e))return Vd(e,t);if(Xd(e))return sf(e,t);throw new Error("invalid JSON wallet")}var ff=Object.freeze({__proto__:null,decryptCrowdsale:Vd,decryptJsonWallet:lf,decryptJsonWalletSync:df,decryptKeystore:uf,decryptKeystoreSync:sf,encryptKeystore:cf,getJsonWalletAddress:Jd,isCrowdsaleWallet:Kd,isKeystoreWallet:Xd});var pf=window&&window.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};const hf=new Zn("wallet/5.7.0");class mf extends Es{constructor(e,t){if(super(),null!=(n=e)&&dr(n.privateKey,32)&&null!=n.address){const t=new ll(e.privateKey);if(Jr(this,"_signingKey",(()=>t)),Jr(this,"address",Tl(this.publicKey)),this.address!==$i(e.address)&&hf.throwArgumentError("privateKey/address mismatch","privateKey","[REDACTED]"),function(e){const t=e.mnemonic;return t&&t.phrase}(e)){const t=e.mnemonic;Jr(this,"_mnemonic",(()=>({phrase:t.phrase,path:t.path||Ed,locale:t.locale||"en"})));const n=this.mnemonic;Tl(Ad.fromMnemonic(n.phrase,null,n.locale).derivePath(n.path).privateKey)!==this.address&&hf.throwArgumentError("mnemonic/address mismatch","privateKey","[REDACTED]")}else Jr(this,"_mnemonic",(()=>null))}else{if(ll.isSigningKey(e))"secp256k1"!==e.curve&&hf.throwArgumentError("unsupported curve; must be secp256k1","privateKey","[REDACTED]"),Jr(this,"_signingKey",(()=>e));else{"string"==typeof e&&e.match(/^[0-9a-f]*$/i)&&64===e.length&&(e="0x"+e);const t=new ll(e);Jr(this,"_signingKey",(()=>t))}Jr(this,"_mnemonic",(()=>null)),Jr(this,"address",Tl(this.publicKey))}var n;t&&!gs.isProvider(t)&&hf.throwArgumentError("invalid provider","provider",t),Jr(this,"provider",t||null)}get mnemonic(){return this._mnemonic()}get privateKey(){return this._signingKey().privateKey}get publicKey(){return this._signingKey().publicKey}getAddress(){return Promise.resolve(this.address)}connect(e){return new mf(this,e)}signTransaction(e){return Qr(e).then((t=>{null!=t.from&&($i(t.from)!==this.address&&hf.throwArgumentError("transaction from address mismatch","transaction.from",e.from),delete t.from);const n=this._signingKey().signDigest(Di(Ol(t)));return Ol(t,n)}))}signMessage(e){return pf(this,void 0,void 0,(function*(){return wr(this._signingKey().signDigest(jo(e)))}))}_signTypedData(e,t,n){return pf(this,void 0,void 0,(function*(){const r=yield rs.resolveNames(e,t,n,(e=>(null==this.provider&&hf.throwError("cannot resolve ENS names without a provider",Zn.errors.UNSUPPORTED_OPERATION,{operation:"resolveName",value:e}),this.provider.resolveName(e))));return wr(this._signingKey().signDigest(rs.hash(r.domain,t,r.value)))}))}encrypt(e,t,n){if("function"!=typeof t||n||(n=t,t={}),n&&"function"!=typeof n)throw new Error("invalid callback");return t||(t={}),cf(this,e,t,n)}static createRandom(e){let t=Pd(16);e||(e={}),e.extraEntropy&&(t=sr(mr(Di(ur([t,e.extraEntropy])),0,16)));const n=Rd(t,e.locale);return mf.fromMnemonic(n,e.path,e.locale)}static fromEncryptedJson(e,t,n){return lf(e,t,n).then((e=>new mf(e)))}static fromEncryptedJsonSync(e,t){return new mf(df(e,t))}static fromMnemonic(e,t,n){return t||(t=Ed),new mf(Ad.fromMnemonic(e,null,n).derivePath(t))}}function yf(e,t){return wl(jo(e),t)}function gf(e,t,n,r){return wl(rs.hash(e,t,n),r)}var bf=Object.freeze({__proto__:null,Wallet:mf,verifyMessage:yf,verifyTypedData:gf});const vf=new Zn("networks/5.7.1");function Tf(e){const t=function(t,n){null==n&&(n={});const r=[];if(t.InfuraProvider&&"-"!==n.infura)try{r.push(new t.InfuraProvider(e,n.infura))}catch(e){}if(t.EtherscanProvider&&"-"!==n.etherscan)try{r.push(new t.EtherscanProvider(e,n.etherscan))}catch(e){}if(t.AlchemyProvider&&"-"!==n.alchemy)try{r.push(new t.AlchemyProvider(e,n.alchemy))}catch(e){}if(t.PocketProvider&&"-"!==n.pocket){const i=["goerli","ropsten","rinkeby","sepolia"];try{const a=new t.PocketProvider(e,n.pocket);a.network&&-1===i.indexOf(a.network.name)&&r.push(a)}catch(e){}}if(t.CloudflareProvider&&"-"!==n.cloudflare)try{r.push(new t.CloudflareProvider(e))}catch(e){}if(t.AnkrProvider&&"-"!==n.ankr)try{const i=["ropsten"],a=new t.AnkrProvider(e,n.ankr);a.network&&-1===i.indexOf(a.network.name)&&r.push(a)}catch(e){}if(0===r.length)return null;if(t.FallbackProvider){let i=1;return null!=n.quorum?i=n.quorum:"homestead"===e&&(i=2),new t.FallbackProvider(r,i)}return r[0]};return t.renetwork=function(e){return Tf(e)},t}function wf(e,t){const n=function(n,r){return n.JsonRpcProvider?new n.JsonRpcProvider(e,t):null};return n.renetwork=function(t){return wf(e,t)},n}const Ef={chainId:1,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"homestead",_defaultProvider:Tf("homestead")},Af={chainId:3,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"ropsten",_defaultProvider:Tf("ropsten")},_f={chainId:63,name:"classicMordor",_defaultProvider:wf("https://www.ethercluster.com/mordor","classicMordor")},If={unspecified:{chainId:0,name:"unspecified"},homestead:Ef,mainnet:Ef,morden:{chainId:2,name:"morden"},ropsten:Af,testnet:Af,rinkeby:{chainId:4,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"rinkeby",_defaultProvider:Tf("rinkeby")},kovan:{chainId:42,name:"kovan",_defaultProvider:Tf("kovan")},goerli:{chainId:5,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"goerli",_defaultProvider:Tf("goerli")},kintsugi:{chainId:1337702,name:"kintsugi"},sepolia:{chainId:11155111,name:"sepolia",_defaultProvider:Tf("sepolia")},classic:{chainId:61,name:"classic",_defaultProvider:wf("https://www.ethercluster.com/etc","classic")},classicMorden:{chainId:62,name:"classicMorden"},classicMordor:_f,classicTestnet:_f,classicKotti:{chainId:6,name:"classicKotti",_defaultProvider:wf("https://www.ethercluster.com/kotti","classicKotti")},xdai:{chainId:100,name:"xdai"},matic:{chainId:137,name:"matic",_defaultProvider:Tf("matic")},maticmum:{chainId:80001,name:"maticmum"},optimism:{chainId:10,name:"optimism",_defaultProvider:Tf("optimism")},"optimism-kovan":{chainId:69,name:"optimism-kovan"},"optimism-goerli":{chainId:420,name:"optimism-goerli"},arbitrum:{chainId:42161,name:"arbitrum"},"arbitrum-rinkeby":{chainId:421611,name:"arbitrum-rinkeby"},"arbitrum-goerli":{chainId:421613,name:"arbitrum-goerli"},bnb:{chainId:56,name:"bnb"},bnbt:{chainId:97,name:"bnbt"}};function Rf(e){if(null==e)return null;if("number"==typeof e){for(const t in If){const n=If[t];if(n.chainId===e)return{name:n.name,chainId:n.chainId,ensAddress:n.ensAddress||null,_defaultProvider:n._defaultProvider||null}}return{chainId:e,name:"unknown"}}if("string"==typeof e){const t=If[e];return null==t?null:{name:t.name,chainId:t.chainId,ensAddress:t.ensAddress,_defaultProvider:t._defaultProvider||null}}const t=If[e.name];if(!t)return"number"!=typeof e.chainId&&vf.throwArgumentError("invalid network chainId","network",e),e;0!==e.chainId&&e.chainId!==t.chainId&&vf.throwArgumentError("network chainId mismatch","network",e);let n=e._defaultProvider||null;var r;return null==n&&t._defaultProvider&&(n=(r=t._defaultProvider)&&"function"==typeof r.renetwork?t._defaultProvider.renetwork(e):t._defaultProvider),{name:e.name,chainId:t.chainId,ensAddress:e.ensAddress||t.ensAddress||null,_defaultProvider:n}}var Cf=window&&window.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};function Of(e,t){return Cf(this,void 0,void 0,(function*(){null==t&&(t={});const n={method:t.method||"GET",headers:t.headers||{},body:t.body||void 0};if(!0!==t.skipFetchSetup&&(n.mode="cors",n.cache="no-cache",n.credentials="same-origin",n.redirect="follow",n.referrer="client"),null!=t.fetchOptions){const e=t.fetchOptions;e.mode&&(n.mode=e.mode),e.cache&&(n.cache=e.cache),e.credentials&&(n.credentials=e.credentials),e.redirect&&(n.redirect=e.redirect),e.referrer&&(n.referrer=e.referrer)}const r=yield fetch(e,n),i=yield r.arrayBuffer(),a={};return r.headers.forEach?r.headers.forEach(((e,t)=>{a[t.toLowerCase()]=e})):r.headers.keys().forEach((e=>{a[e.toLowerCase()]=r.headers.get(e)})),{headers:a,statusCode:r.status,statusMessage:r.statusText,body:sr(new Uint8Array(i))}}))}var kf=window&&window.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};const Sf=new Zn("web/5.7.1");function Nf(e){return new Promise((t=>{setTimeout(t,e)}))}function xf(e,t){if(null==e)return null;if("string"==typeof e)return e;if(ir(e)){if(t&&("text"===t.split("/")[0]||"application/json"===t.split(";")[0].trim()))try{return Fa(e)}catch(e){}return pr(e)}return e}function Pf(e,t,n){const r="object"==typeof e&&null!=e.throttleLimit?e.throttleLimit:12;Sf.assertArgument(r>0&&r%1==0,"invalid connection throttle limit","connection.throttleLimit",r);const i="object"==typeof e?e.throttleCallback:null,a="object"==typeof e&&"number"==typeof e.throttleSlotInterval?e.throttleSlotInterval:100;Sf.assertArgument(a>0&&a%1==0,"invalid connection throttle slot interval","connection.throttleSlotInterval",a);const o="object"==typeof e&&!!e.errorPassThrough,s={};let u=null;const c={method:"GET"};let l=!1,d=12e4;if("string"==typeof e)u=e;else if("object"==typeof e){if(null!=e&&null!=e.url||Sf.throwArgumentError("missing URL","connection.url",e),u=e.url,"number"==typeof e.timeout&&e.timeout>0&&(d=e.timeout),e.headers)for(const t in e.headers)s[t.toLowerCase()]={key:t,value:String(e.headers[t])},["if-none-match","if-modified-since"].indexOf(t.toLowerCase())>=0&&(l=!0);if(c.allowGzip=!!e.allowGzip,null!=e.user&&null!=e.password){"https:"!==u.substring(0,6)&&!0!==e.allowInsecureAuthentication&&Sf.throwError("basic authentication requires a secure https url",Zn.errors.INVALID_ARGUMENT,{argument:"url",url:u,user:e.user,password:"[REDACTED]"});const t=e.user+":"+e.password;s.authorization={key:"Authorization",value:"Basic "+co(Pa(t))}}null!=e.skipFetchSetup&&(c.skipFetchSetup=!!e.skipFetchSetup),null!=e.fetchOptions&&(c.fetchOptions=Zr(e.fetchOptions))}const f=new RegExp("^data:([^;:]*)?(;base64)?,(.*)$","i"),p=u?u.match(f):null;if(p)try{const e={statusCode:200,statusMessage:"OK",headers:{"content-type":p[1]||"text/plain"},body:p[2]?uo(p[3]):(h=p[3],Pa(h.replace(/%([0-9a-f][0-9a-f])/gi,((e,t)=>String.fromCharCode(parseInt(t,16))))))};let t=e.body;return n&&(t=n(e.body,e)),Promise.resolve(t)}catch(e){Sf.throwError("processing response error",Zn.errors.SERVER_ERROR,{body:xf(p[1],p[2]),error:e,requestBody:null,requestMethod:"GET",url:u})}var h;t&&(c.method="POST",c.body=t,null==s["content-type"]&&(s["content-type"]={key:"Content-Type",value:"application/octet-stream"}),null==s["content-length"]&&(s["content-length"]={key:"Content-Length",value:String(t.length)}));const m={};Object.keys(s).forEach((e=>{const t=s[e];m[t.key]=t.value})),c.headers=m;const y=function(){let e=null;return{promise:new Promise((function(t,n){d&&(e=setTimeout((()=>{null!=e&&(e=null,n(Sf.makeError("timeout",Zn.errors.TIMEOUT,{requestBody:xf(c.body,m["content-type"]),requestMethod:c.method,timeout:d,url:u})))}),d))})),cancel:function(){null!=e&&(clearTimeout(e),e=null)}}}(),g=function(){return kf(this,void 0,void 0,(function*(){for(let e=0;e<r;e++){let t=null;try{if(t=yield Of(u,c),e<r)if(301===t.statusCode||302===t.statusCode){const e=t.headers.location||"";if("GET"===c.method&&e.match(/^https:/)){u=t.headers.location;continue}}else if(429===t.statusCode){let n=!0;if(i&&(n=yield i(e,u)),n){let n=0;const r=t.headers["retry-after"];n="string"==typeof r&&r.match(/^[1-9][0-9]*$/)?1e3*parseInt(r):a*parseInt(String(Math.random()*Math.pow(2,e))),yield Nf(n);continue}}}catch(e){t=e.response,null==t&&(y.cancel(),Sf.throwError("missing response",Zn.errors.SERVER_ERROR,{requestBody:xf(c.body,m["content-type"]),requestMethod:c.method,serverError:e,url:u}))}let s=t.body;if(l&&304===t.statusCode?s=null:!o&&(t.statusCode<200||t.statusCode>=300)&&(y.cancel(),Sf.throwError("bad response",Zn.errors.SERVER_ERROR,{status:t.statusCode,headers:t.headers,body:xf(s,t.headers?t.headers["content-type"]:null),requestBody:xf(c.body,m["content-type"]),requestMethod:c.method,url:u})),n)try{const e=yield n(s,t);return y.cancel(),e}catch(n){if(n.throttleRetry&&e<r){let t=!0;if(i&&(t=yield i(e,u)),t){const t=a*parseInt(String(Math.random()*Math.pow(2,e)));yield Nf(t);continue}}y.cancel(),Sf.throwError("processing response error",Zn.errors.SERVER_ERROR,{body:xf(s,t.headers?t.headers["content-type"]:null),error:n,requestBody:xf(c.body,m["content-type"]),requestMethod:c.method,url:u})}return y.cancel(),s}return Sf.throwError("failed response",Zn.errors.SERVER_ERROR,{requestBody:xf(c.body,m["content-type"]),requestMethod:c.method,url:u})}))}();return Promise.race([y.promise,g])}function Mf(e,t,n){let r=null;if(null!=t){r=Pa(t);const n="string"==typeof e?{url:e}:Zr(e);if(n.headers){0!==Object.keys(n.headers).filter((e=>"content-type"===e.toLowerCase())).length||(n.headers=Zr(n.headers),n.headers["content-type"]="application/json")}else n.headers={"content-type":"application/json"};e=n}return Pf(e,r,((e,t)=>{let r=null;if(null!=e)try{r=JSON.parse(Fa(e))}catch(t){Sf.throwError("invalid JSON",Zn.errors.SERVER_ERROR,{body:e,error:t})}return n&&(r=n(r,t)),r}))}function Bf(e,t){return t||(t={}),null==(t=Zr(t)).floor&&(t.floor=0),null==t.ceiling&&(t.ceiling=1e4),null==t.interval&&(t.interval=250),new Promise((function(n,r){let i=null,a=!1;const o=()=>!a&&(a=!0,i&&clearTimeout(i),!0);t.timeout&&(i=setTimeout((()=>{o()&&r(new Error("timeout"))}),t.timeout));const s=t.retryLimit;let u=0;!function i(){return e().then((function(e){if(void 0!==e)o()&&n(e);else if(t.oncePoll)t.oncePoll.once("poll",i);else if(t.onceBlock)t.onceBlock.once("block",i);else if(!a){if(u++,u>s)return void(o()&&r(new Error("retry limit reached")));let e=t.interval*parseInt(String(Math.random()*Math.pow(2,u)));e<t.floor&&(e=t.floor),e>t.ceiling&&(e=t.ceiling),setTimeout(i,e)}return null}),(function(e){o()&&r(e)}))}()}))}for(var Df=Object.freeze({__proto__:null,_fetchData:Pf,fetchJson:Mf,poll:Bf}),Ff="qpzry9x8gf2tvdw0s3jn54khce6mua7l",Lf={},Uf=0;Uf<32;Uf++){var qf=Ff.charAt(Uf);if(void 0!==Lf[qf])throw new TypeError(qf+" is ambiguous");Lf[qf]=Uf}function jf(e){var t=e>>25;return(33554431&e)<<5^996825010&-(t>>0&1)^642813549&-(t>>1&1)^513874426&-(t>>2&1)^1027748829&-(t>>3&1)^705979059&-(t>>4&1)}function Gf(e){for(var t=1,n=0;n<e.length;++n){var r=e.charCodeAt(n);if(r<33||r>126)return"Invalid prefix ("+e+")";t=jf(t)^r>>5}for(t=jf(t),n=0;n<e.length;++n){var i=e.charCodeAt(n);t=jf(t)^31&i}return t}function Hf(e,t){if(t=t||90,e.length<8)return e+" too short";if(e.length>t)return"Exceeds length limit";var n=e.toLowerCase(),r=e.toUpperCase();if(e!==n&&e!==r)return"Mixed-case string "+e;var i=(e=n).lastIndexOf("1");if(-1===i)return"No separator character for "+e;if(0===i)return"Missing prefix for "+e;var a=e.slice(0,i),o=e.slice(i+1);if(o.length<6)return"Data too short";var s=Gf(a);if("string"==typeof s)return s;for(var u=[],c=0;c<o.length;++c){var l=o.charAt(c),d=Lf[l];if(void 0===d)return"Unknown character "+l;s=jf(s)^d,c+6>=o.length||u.push(d)}return 1!==s?"Invalid checksum for "+e:{prefix:a,words:u}}function zf(e,t,n,r){for(var i=0,a=0,o=(1<<n)-1,s=[],u=0;u<e.length;++u)for(i=i<<t|e[u],a+=t;a>=n;)a-=n,s.push(i>>a&o);if(r)a>0&&s.push(i<<n-a&o);else{if(a>=t)return"Excess padding";if(i<<n-a&o)return"Non-zero padding"}return s}var Wf={decodeUnsafe:function(){var e=Hf.apply(null,arguments);if("object"==typeof e)return e},decode:function(e){var t=Hf.apply(null,arguments);if("object"==typeof t)return t;throw new Error(t)},encode:function(e,t,n){if(n=n||90,e.length+7+t.length>n)throw new TypeError("Exceeds length limit");var r=Gf(e=e.toLowerCase());if("string"==typeof r)throw new Error(r);for(var i=e+"1",a=0;a<t.length;++a){var o=t[a];if(o>>5!=0)throw new Error("Non 5-bit word");r=jf(r)^o,i+=Ff.charAt(o)}for(a=0;a<6;++a)r=jf(r);for(r^=1,a=0;a<6;++a){i+=Ff.charAt(r>>5*(5-a)&31)}return i},toWordsUnsafe:function(e){var t=zf(e,8,5,!0);if(Array.isArray(t))return t},toWords:function(e){var t=zf(e,8,5,!0);if(Array.isArray(t))return t;throw new Error(t)},fromWordsUnsafe:function(e){var t=zf(e,5,8,!1);if(Array.isArray(t))return t},fromWords:function(e){var t=zf(e,5,8,!1);if(Array.isArray(t))return t;throw new Error(t)}},Vf=Lt(Wf);const Kf="providers/5.7.2",Xf=new Zn(Kf);class Jf{constructor(){this.formats=this.getDefaultFormats()}getDefaultFormats(){const e={},t=this.address.bind(this),n=this.bigNumber.bind(this),r=this.blockTag.bind(this),i=this.data.bind(this),a=this.hash.bind(this),o=this.hex.bind(this),s=this.number.bind(this),u=this.type.bind(this);return e.transaction={hash:a,type:u,accessList:Jf.allowNull(this.accessList.bind(this),null),blockHash:Jf.allowNull(a,null),blockNumber:Jf.allowNull(s,null),transactionIndex:Jf.allowNull(s,null),confirmations:Jf.allowNull(s,null),from:t,gasPrice:Jf.allowNull(n),maxPriorityFeePerGas:Jf.allowNull(n),maxFeePerGas:Jf.allowNull(n),gasLimit:n,to:Jf.allowNull(t,null),value:n,nonce:s,data:i,r:Jf.allowNull(this.uint256),s:Jf.allowNull(this.uint256),v:Jf.allowNull(s),creates:Jf.allowNull(t,null),raw:Jf.allowNull(i)},e.transactionRequest={from:Jf.allowNull(t),nonce:Jf.allowNull(s),gasLimit:Jf.allowNull(n),gasPrice:Jf.allowNull(n),maxPriorityFeePerGas:Jf.allowNull(n),maxFeePerGas:Jf.allowNull(n),to:Jf.allowNull(t),value:Jf.allowNull(n),data:Jf.allowNull((e=>this.data(e,!0))),type:Jf.allowNull(s),accessList:Jf.allowNull(this.accessList.bind(this),null)},e.receiptLog={transactionIndex:s,blockNumber:s,transactionHash:a,address:t,topics:Jf.arrayOf(a),data:i,logIndex:s,blockHash:a},e.receipt={to:Jf.allowNull(this.address,null),from:Jf.allowNull(this.address,null),contractAddress:Jf.allowNull(t,null),transactionIndex:s,root:Jf.allowNull(o),gasUsed:n,logsBloom:Jf.allowNull(i),blockHash:a,transactionHash:a,logs:Jf.arrayOf(this.receiptLog.bind(this)),blockNumber:s,confirmations:Jf.allowNull(s,null),cumulativeGasUsed:n,effectiveGasPrice:Jf.allowNull(n),status:Jf.allowNull(s),type:u},e.block={hash:Jf.allowNull(a),parentHash:a,number:s,timestamp:s,nonce:Jf.allowNull(o),difficulty:this.difficulty.bind(this),gasLimit:n,gasUsed:n,miner:Jf.allowNull(t),extraData:i,transactions:Jf.allowNull(Jf.arrayOf(a)),baseFeePerGas:Jf.allowNull(n)},e.blockWithTransactions=Zr(e.block),e.blockWithTransactions.transactions=Jf.allowNull(Jf.arrayOf(this.transactionResponse.bind(this))),e.filter={fromBlock:Jf.allowNull(r,void 0),toBlock:Jf.allowNull(r,void 0),blockHash:Jf.allowNull(a,void 0),address:Jf.allowNull(t,void 0),topics:Jf.allowNull(this.topics.bind(this),void 0)},e.filterLog={blockNumber:Jf.allowNull(s),blockHash:Jf.allowNull(a),transactionIndex:s,removed:Jf.allowNull(this.boolean.bind(this)),address:t,data:Jf.allowFalsish(i,"0x"),topics:Jf.arrayOf(a),transactionHash:a,logIndex:s},e}accessList(e){return _l(e||[])}number(e){return"0x"===e?0:kr.from(e).toNumber()}type(e){return"0x"===e||null==e?0:kr.from(e).toNumber()}bigNumber(e){return kr.from(e)}boolean(e){if("boolean"==typeof e)return e;if("string"==typeof e){if("true"===(e=e.toLowerCase()))return!0;if("false"===e)return!1}throw new Error("invalid boolean - "+e)}hex(e,t){return"string"==typeof e&&(t||"0x"===e.substring(0,2)||(e="0x"+e),dr(e))?e.toLowerCase():Xf.throwArgumentError("invalid hash","value",e)}data(e,t){const n=this.hex(e,t);if(n.length%2!=0)throw new Error("invalid data; odd-length - "+e);return n}address(e){return $i(e)}callAddress(e){if(!dr(e,32))return null;const t=$i(mr(e,12));return t===ma?null:t}contractAddress(e){return ta(e)}blockTag(e){if(null==e)return"latest";if("earliest"===e)return"0x0";switch(e){case"earliest":return"0x0";case"latest":case"pending":case"safe":case"finalized":return e}if("number"==typeof e||dr(e))return gr(e);throw new Error("invalid blockTag")}hash(e,t){const n=this.hex(e,t);return 32!==hr(n)?Xf.throwArgumentError("invalid hash","value",e):n}difficulty(e){if(null==e)return null;const t=kr.from(e);try{return t.toNumber()}catch(e){}return null}uint256(e){if(!dr(e))throw new Error("invalid uint256");return vr(e,32)}_block(e,t){null!=e.author&&null==e.miner&&(e.miner=e.author);const n=null!=e._difficulty?e._difficulty:e.difficulty,r=Jf.check(t,e);return r._difficulty=null==n?null:kr.from(n),r}block(e){return this._block(e,this.formats.block)}blockWithTransactions(e){return this._block(e,this.formats.blockWithTransactions)}transactionRequest(e){return Jf.check(this.formats.transactionRequest,e)}transactionResponse(e){null!=e.gas&&null==e.gasLimit&&(e.gasLimit=e.gas),e.to&&kr.from(e.to).isZero()&&(e.to="0x0000000000000000000000000000000000000000"),null!=e.input&&null==e.data&&(e.data=e.input),null==e.to&&null==e.creates&&(e.creates=this.contractAddress(e)),1!==e.type&&2!==e.type||null!=e.accessList||(e.accessList=[]);const t=Jf.check(this.formats.transaction,e);if(null!=e.chainId){let n=e.chainId;dr(n)&&(n=kr.from(n).toNumber()),t.chainId=n}else{let n=e.networkId;null==n&&null==t.v&&(n=e.chainId),dr(n)&&(n=kr.from(n).toNumber()),"number"!=typeof n&&null!=t.v&&(n=(t.v-35)/2,n<0&&(n=0),n=parseInt(n)),"number"!=typeof n&&(n=0),t.chainId=n}return t.blockHash&&"x"===t.blockHash.replace(/0/g,"")&&(t.blockHash=null),t}transaction(e){return Sl(e)}receiptLog(e){return Jf.check(this.formats.receiptLog,e)}receipt(e){const t=Jf.check(this.formats.receipt,e);if(null!=t.root)if(t.root.length<=4){const e=kr.from(t.root).toNumber();0===e||1===e?(null!=t.status&&t.status!==e&&Xf.throwArgumentError("alt-root-status/status mismatch","value",{root:t.root,status:t.status}),t.status=e,delete t.root):Xf.throwArgumentError("invalid alt-root-status","value.root",t.root)}else 66!==t.root.length&&Xf.throwArgumentError("invalid root hash","value.root",t.root);return null!=t.status&&(t.byzantium=!0),t}topics(e){return Array.isArray(e)?e.map((e=>this.topics(e))):null!=e?this.hash(e,!0):null}filter(e){return Jf.check(this.formats.filter,e)}filterLog(e){return Jf.check(this.formats.filterLog,e)}static check(e,t){const n={};for(const r in e)try{const i=e[r](t[r]);void 0!==i&&(n[r]=i)}catch(e){throw e.checkKey=r,e.checkValue=t[r],e}return n}static allowNull(e,t){return function(n){return null==n?t:e(n)}}static allowFalsish(e,t){return function(n){return n?e(n):t}}static arrayOf(e){return function(t){if(!Array.isArray(t))throw new Error("not an array");const n=[];return t.forEach((function(t){n.push(e(t))})),n}}}function Yf(e){return e&&"function"==typeof e.isCommunityResource}function Qf(e){return Yf(e)&&e.isCommunityResource()}let $f=!1;function Zf(){$f||($f=!0,console.log("========= NOTICE ========="),console.log("Request-Rate Exceeded (this message will not be repeated)"),console.log(""),console.log("The default API keys for each service are provided as a highly-throttled,"),console.log("community resource for low-traffic projects and early prototyping."),console.log(""),console.log("While your application will continue to function, we highly recommended"),console.log("signing up for your own API keys to improve performance, increase your"),console.log("request rate/limit and enable other perks, such as metrics and advanced APIs."),console.log(""),console.log("For more details: https://docs.ethers.io/api-keys/"),console.log("=========================="))}var ep=window&&window.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};const tp=new Zn(Kf);function np(e){return null==e?"null":(32!==hr(e)&&tp.throwArgumentError("invalid topic","topic",e),e.toLowerCase())}function rp(e){for(e=e.slice();e.length>0&&null==e[e.length-1];)e.pop();return e.map((e=>{if(Array.isArray(e)){const t={};e.forEach((e=>{t[np(e)]=!0}));const n=Object.keys(t);return n.sort(),n.join("|")}return np(e)})).join("&")}function ip(e){if("string"==typeof e){if(32===hr(e=e.toLowerCase()))return"tx:"+e;if(-1===e.indexOf(":"))return e}else{if(Array.isArray(e))return"filter:*:"+rp(e);if(ys.isForkEvent(e))throw tp.warn("not implemented"),new Error("not implemented");if(e&&"object"==typeof e)return"filter:"+(e.address||"*")+":"+rp(e.topics||[])}throw new Error("invalid event - "+e)}function ap(){return(new Date).getTime()}function op(e){return new Promise((t=>{setTimeout(t,e)}))}const sp=["block","network","pending","poll"];class up{constructor(e,t,n){Jr(this,"tag",e),Jr(this,"listener",t),Jr(this,"once",n),this._lastBlockNumber=-2,this._inflight=!1}get event(){switch(this.type){case"tx":return this.hash;case"filter":return this.filter}return this.tag}get type(){return this.tag.split(":")[0]}get hash(){const e=this.tag.split(":");return"tx"!==e[0]?null:e[1]}get filter(){const e=this.tag.split(":");if("filter"!==e[0])return null;const t=e[1],n=""===(r=e[2])?[]:r.split(/&/g).map((e=>{if(""===e)return[];const t=e.split("|").map((e=>"null"===e?null:e));return 1===t.length?t[0]:t}));var r;const i={};return n.length>0&&(i.topics=n),t&&"*"!==t&&(i.address=t),i}pollable(){return this.tag.indexOf(":")>=0||sp.indexOf(this.tag)>=0}}const cp={0:{symbol:"btc",p2pkh:0,p2sh:5,prefix:"bc"},2:{symbol:"ltc",p2pkh:48,p2sh:50,prefix:"ltc"},3:{symbol:"doge",p2pkh:30,p2sh:22},60:{symbol:"eth",ilk:"eth"},61:{symbol:"etc",ilk:"eth"},700:{symbol:"xdai",ilk:"eth"}};function lp(e){return vr(kr.from(e).toHexString(),32)}function dp(e){return Ql.encode(ur([e,mr(nd(nd(e)),0,4)]))}const fp=new RegExp("^(ipfs)://(.*)$","i"),pp=[new RegExp("^(https)://(.*)$","i"),new RegExp("^(data):(.*)$","i"),fp,new RegExp("^eip155:[0-9]+/(erc[0-9]+):(.*)$","i")];function hp(e,t){try{return Fa(mp(e,t))}catch(e){}return null}function mp(e,t){if("0x"===e)return null;const n=kr.from(mr(e,t,t+32)).toNumber(),r=kr.from(mr(e,n,n+32)).toNumber();return mr(e,n+32,n+32+r)}function yp(e){return e.match(/^ipfs:\/\/ipfs\//i)?e=e.substring(12):e.match(/^ipfs:\/\//i)?e=e.substring(7):tp.throwArgumentError("unsupported IPFS format","link",e),`https://gateway.ipfs.io/ipfs/${e}`}function gp(e){const t=sr(e);if(t.length>32)throw new Error("internal; should not happen");const n=new Uint8Array(32);return n.set(t,32-t.length),n}function bp(e){if(e.length%32==0)return e;const t=new Uint8Array(32*Math.ceil(e.length/32));return t.set(e),t}function vp(e){const t=[];let n=0;for(let r=0;r<e.length;r++)t.push(null),n+=32;for(let r=0;r<e.length;r++){const i=sr(e[r]);t[r]=gp(n),t.push(gp(i.length)),t.push(bp(i)),n+=32+32*Math.ceil(i.length/32)}return yr(t)}class Tp{constructor(e,t,n,r){Jr(this,"provider",e),Jr(this,"name",n),Jr(this,"address",e.formatter.address(t)),Jr(this,"_resolvedAddress",r)}supportsWildcard(){return this._supportsEip2544||(this._supportsEip2544=this.provider.call({to:this.address,data:"0x01ffc9a79061b92300000000000000000000000000000000000000000000000000000000"}).then((e=>kr.from(e).eq(1))).catch((e=>{if(e.code===Zn.errors.CALL_EXCEPTION)return!1;throw this._supportsEip2544=null,e}))),this._supportsEip2544}_fetch(e,t){return ep(this,void 0,void 0,(function*(){const n={to:this.address,ccipReadEnabled:!0,data:yr([e,Lo(this.name),t||"0x"])};let r=!1;(yield this.supportsWildcard())&&(r=!0,n.data=yr(["0x9061b923",vp([Uo(this.name),n.data])]));try{let e=yield this.provider.call(n);return sr(e).length%32==4&&tp.throwError("resolver threw error",Zn.errors.CALL_EXCEPTION,{transaction:n,data:e}),r&&(e=mp(e,0)),e}catch(e){if(e.code===Zn.errors.CALL_EXCEPTION)return null;throw e}}))}_fetchBytes(e,t){return ep(this,void 0,void 0,(function*(){const n=yield this._fetch(e,t);return null!=n?mp(n,0):null}))}_getAddress(e,t){const n=cp[String(e)];if(null==n&&tp.throwError(`unsupported coin type: ${e}`,Zn.errors.UNSUPPORTED_OPERATION,{operation:`getAddress(${e})`}),"eth"===n.ilk)return this.provider.formatter.address(t);const r=sr(t);if(null!=n.p2pkh){const e=t.match(/^0x76a9([0-9a-f][0-9a-f])([0-9a-f]*)88ac$/);if(e){const t=parseInt(e[1],16);if(e[2].length===2*t&&t>=1&&t<=75)return dp(ur([[n.p2pkh],"0x"+e[2]]))}}if(null!=n.p2sh){const e=t.match(/^0xa9([0-9a-f][0-9a-f])([0-9a-f]*)87$/);if(e){const t=parseInt(e[1],16);if(e[2].length===2*t&&t>=1&&t<=75)return dp(ur([[n.p2sh],"0x"+e[2]]))}}if(null!=n.prefix){const e=r[1];let t=r[0];if(0===t?20!==e&&32!==e&&(t=-1):t=-1,t>=0&&r.length===2+e&&e>=1&&e<=75){const e=Vf.toWords(r.slice(2));return e.unshift(t),Vf.encode(n.prefix,e)}}return null}getAddress(e){return ep(this,void 0,void 0,(function*(){if(null==e&&(e=60),60===e)try{const e=yield this._fetch("0x3b3b57de");return"0x"===e||e===_a?null:this.provider.formatter.callAddress(e)}catch(e){if(e.code===Zn.errors.CALL_EXCEPTION)return null;throw e}const t=yield this._fetchBytes("0xf1cb7e06",lp(e));if(null==t||"0x"===t)return null;const n=this._getAddress(e,t);return null==n&&tp.throwError("invalid or unsupported coin data",Zn.errors.UNSUPPORTED_OPERATION,{operation:`getAddress(${e})`,coinType:e,data:t}),n}))}getAvatar(){return ep(this,void 0,void 0,(function*(){const e=[{type:"name",content:this.name}];try{const t=yield this.getText("avatar");if(null==t)return null;for(let n=0;n<pp.length;n++){const r=t.match(pp[n]);if(null==r)continue;const i=r[1].toLowerCase();switch(i){case"https":return e.push({type:"url",content:t}),{linkage:e,url:t};case"data":return e.push({type:"data",content:t}),{linkage:e,url:t};case"ipfs":return e.push({type:"ipfs",content:t}),{linkage:e,url:yp(t)};case"erc721":case"erc1155":{const n="erc721"===i?"0xc87b56dd":"0x0e89341c";e.push({type:i,content:t});const a=this._resolvedAddress||(yield this.getAddress()),o=(r[2]||"").split("/");if(2!==o.length)return null;const s=yield this.provider.formatter.address(o[0]),u=vr(kr.from(o[1]).toHexString(),32);if("erc721"===i){const t=this.provider.formatter.callAddress(yield this.provider.call({to:s,data:yr(["0x6352211e",u])}));if(a!==t)return null;e.push({type:"owner",content:t})}else if("erc1155"===i){const t=kr.from(yield this.provider.call({to:s,data:yr(["0x00fdd58e",vr(a,32),u])}));if(t.isZero())return null;e.push({type:"balance",content:t.toString()})}const c={to:this.provider.formatter.address(o[0]),data:yr([n,u])};let l=hp(yield this.provider.call(c),0);if(null==l)return null;e.push({type:"metadata-url-base",content:l}),"erc1155"===i&&(l=l.replace("{id}",u.substring(2)),e.push({type:"metadata-url-expanded",content:l})),l.match(/^ipfs:/i)&&(l=yp(l)),e.push({type:"metadata-url",content:l});const d=yield Mf(l);if(!d)return null;e.push({type:"metadata",content:JSON.stringify(d)});let f=d.image;if("string"!=typeof f)return null;if(f.match(/^(https:\/\/|data:)/i));else{if(null==f.match(fp))return null;e.push({type:"url-ipfs",content:f}),f=yp(f)}return e.push({type:"url",content:f}),{linkage:e,url:f}}}}}catch(e){}return null}))}getContentHash(){return ep(this,void 0,void 0,(function*(){const e=yield this._fetchBytes("0xbc1c58d1");if(null==e||"0x"===e)return null;const t=e.match(/^0xe3010170(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/);if(t){const e=parseInt(t[3],16);if(t[4].length===2*e)return"ipfs://"+Ql.encode("0x"+t[1])}const n=e.match(/^0xe5010172(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/);if(n){const e=parseInt(n[3],16);if(n[4].length===2*e)return"ipns://"+Ql.encode("0x"+n[1])}const r=e.match(/^0xe40101fa011b20([0-9a-f]*)$/);if(r&&64===r[1].length)return"bzz://"+r[1];const i=e.match(/^0x90b2c605([0-9a-f]*)$/);if(i&&68===i[1].length){const e={"=":"","+":"-","/":"_"};return"sia://"+co("0x"+i[1]).replace(/[=+\/]/g,(t=>e[t]))}return tp.throwError("invalid or unsupported content hash data",Zn.errors.UNSUPPORTED_OPERATION,{operation:"getContentHash()",data:e})}))}getText(e){return ep(this,void 0,void 0,(function*(){let t=Pa(e);t=ur([lp(64),lp(t.length),t]),t.length%32!=0&&(t=ur([t,vr("0x",32-e.length%32)]));const n=yield this._fetchBytes("0x59d1d43c",pr(t));return null==n||"0x"===n?null:Fa(n)}))}}let wp=null,Ep=1;class Ap extends gs{constructor(e){if(super(),this._events=[],this._emitted={block:-2},this.disableCcipRead=!1,this.formatter=new.target.getFormatter(),Jr(this,"anyNetwork","any"===e),this.anyNetwork&&(e=this.detectNetwork()),e instanceof Promise)this._networkPromise=e,e.catch((e=>{})),this._ready().catch((e=>{}));else{const t=Yr(new.target,"getNetwork")(e);t?(Jr(this,"_network",t),this.emit("network",t,null)):tp.throwArgumentError("invalid network","network",e)}this._maxInternalBlockNumber=-1024,this._lastBlockNumber=-2,this._maxFilterBlockRange=10,this._pollingInterval=4e3,this._fastQueryDate=0}_ready(){return ep(this,void 0,void 0,(function*(){if(null==this._network){let e=null;if(this._networkPromise)try{e=yield this._networkPromise}catch(e){}null==e&&(e=yield this.detectNetwork()),e||tp.throwError("no network detected",Zn.errors.UNKNOWN_ERROR,{}),null==this._network&&(this.anyNetwork?this._network=e:Jr(this,"_network",e),this.emit("network",e,null))}return this._network}))}get ready(){return Bf((()=>this._ready().then((e=>e),(e=>{if(e.code!==Zn.errors.NETWORK_ERROR||"noNetwork"!==e.event)throw e}))))}static getFormatter(){return null==wp&&(wp=new Jf),wp}static getNetwork(e){return Rf(null==e?"homestead":e)}ccipReadFetch(e,t,n){return ep(this,void 0,void 0,(function*(){if(this.disableCcipRead||0===n.length)return null;const r=e.to.toLowerCase(),i=t.toLowerCase(),a=[];for(let e=0;e<n.length;e++){const t=n[e],o=t.replace("{sender}",r).replace("{data}",i),s=t.indexOf("{data}")>=0?null:JSON.stringify({data:i,sender:r}),u=yield Mf({url:o,errorPassThrough:!0},s,((e,t)=>(e.status=t.statusCode,e)));if(u.data)return u.data;const c=u.message||"unknown error";if(u.status>=400&&u.status<500)return tp.throwError(`response not found during CCIP fetch: ${c}`,Zn.errors.SERVER_ERROR,{url:t,errorMessage:c});a.push(c)}return tp.throwError(`error encountered during CCIP fetch: ${a.map((e=>JSON.stringify(e))).join(", ")}`,Zn.errors.SERVER_ERROR,{urls:n,errorMessages:a})}))}_getInternalBlockNumber(e){return ep(this,void 0,void 0,(function*(){if(yield this._ready(),e>0)for(;this._internalBlockNumber;){const t=this._internalBlockNumber;try{const n=yield t;if(ap()-n.respTime<=e)return n.blockNumber;break}catch(e){if(this._internalBlockNumber===t)break}}const t=ap(),n=Qr({blockNumber:this.perform("getBlockNumber",{}),networkError:this.getNetwork().then((e=>null),(e=>e))}).then((({blockNumber:e,networkError:r})=>{if(r)throw this._internalBlockNumber===n&&(this._internalBlockNumber=null),r;const i=ap();return(e=kr.from(e).toNumber())<this._maxInternalBlockNumber&&(e=this._maxInternalBlockNumber),this._maxInternalBlockNumber=e,this._setFastBlockNumber(e),{blockNumber:e,reqTime:t,respTime:i}}));return this._internalBlockNumber=n,n.catch((e=>{this._internalBlockNumber===n&&(this._internalBlockNumber=null)})),(yield n).blockNumber}))}poll(){return ep(this,void 0,void 0,(function*(){const e=Ep++,t=[];let n=null;try{n=yield this._getInternalBlockNumber(100+this.pollingInterval/2)}catch(e){return void this.emit("error",e)}if(this._setFastBlockNumber(n),this.emit("poll",e,n),n!==this._lastBlockNumber){if(-2===this._emitted.block&&(this._emitted.block=n-1),Math.abs(this._emitted.block-n)>1e3)tp.warn(`network block skew detected; skipping block events (emitted=${this._emitted.block} blockNumber${n})`),this.emit("error",tp.makeError("network block skew detected",Zn.errors.NETWORK_ERROR,{blockNumber:n,event:"blockSkew",previousBlockNumber:this._emitted.block})),this.emit("block",n);else for(let e=this._emitted.block+1;e<=n;e++)this.emit("block",e);this._emitted.block!==n&&(this._emitted.block=n,Object.keys(this._emitted).forEach((e=>{if("block"===e)return;const t=this._emitted[e];"pending"!==t&&n-t>12&&delete this._emitted[e]}))),-2===this._lastBlockNumber&&(this._lastBlockNumber=n-1),this._events.forEach((e=>{switch(e.type){case"tx":{const n=e.hash;let r=this.getTransactionReceipt(n).then((e=>e&&null!=e.blockNumber?(this._emitted["t:"+n]=e.blockNumber,this.emit(n,e),null):null)).catch((e=>{this.emit("error",e)}));t.push(r);break}case"filter":if(!e._inflight){e._inflight=!0,-2===e._lastBlockNumber&&(e._lastBlockNumber=n-1);const r=e.filter;r.fromBlock=e._lastBlockNumber+1,r.toBlock=n;const i=r.toBlock-this._maxFilterBlockRange;i>r.fromBlock&&(r.fromBlock=i),r.fromBlock<0&&(r.fromBlock=0);const a=this.getLogs(r).then((t=>{e._inflight=!1,0!==t.length&&t.forEach((t=>{t.blockNumber>e._lastBlockNumber&&(e._lastBlockNumber=t.blockNumber),this._emitted["b:"+t.blockHash]=t.blockNumber,this._emitted["t:"+t.transactionHash]=t.blockNumber,this.emit(r,t)}))})).catch((t=>{this.emit("error",t),e._inflight=!1}));t.push(a)}}})),this._lastBlockNumber=n,Promise.all(t).then((()=>{this.emit("didPoll",e)})).catch((e=>{this.emit("error",e)}))}else this.emit("didPoll",e)}))}resetEventsBlock(e){this._lastBlockNumber=e-1,this.polling&&this.poll()}get network(){return this._network}detectNetwork(){return ep(this,void 0,void 0,(function*(){return tp.throwError("provider does not support network detection",Zn.errors.UNSUPPORTED_OPERATION,{operation:"provider.detectNetwork"})}))}getNetwork(){return ep(this,void 0,void 0,(function*(){const e=yield this._ready(),t=yield this.detectNetwork();if(e.chainId!==t.chainId){if(this.anyNetwork)return this._network=t,this._lastBlockNumber=-2,this._fastBlockNumber=null,this._fastBlockNumberPromise=null,this._fastQueryDate=0,this._emitted.block=-2,this._maxInternalBlockNumber=-1024,this._internalBlockNumber=null,this.emit("network",t,e),yield op(0),this._network;const n=tp.makeError("underlying network changed",Zn.errors.NETWORK_ERROR,{event:"changed",network:e,detectedNetwork:t});throw this.emit("error",n),n}return e}))}get blockNumber(){return this._getInternalBlockNumber(100+this.pollingInterval/2).then((e=>{this._setFastBlockNumber(e)}),(e=>{})),null!=this._fastBlockNumber?this._fastBlockNumber:-1}get polling(){return null!=this._poller}set polling(e){e&&!this._poller?(this._poller=setInterval((()=>{this.poll()}),this.pollingInterval),this._bootstrapPoll||(this._bootstrapPoll=setTimeout((()=>{this.poll(),this._bootstrapPoll=setTimeout((()=>{this._poller||this.poll(),this._bootstrapPoll=null}),this.pollingInterval)}),0))):!e&&this._poller&&(clearInterval(this._poller),this._poller=null)}get pollingInterval(){return this._pollingInterval}set pollingInterval(e){if("number"!=typeof e||e<=0||parseInt(String(e))!=e)throw new Error("invalid polling interval");this._pollingInterval=e,this._poller&&(clearInterval(this._poller),this._poller=setInterval((()=>{this.poll()}),this._pollingInterval))}_getFastBlockNumber(){const e=ap();return e-this._fastQueryDate>2*this._pollingInterval&&(this._fastQueryDate=e,this._fastBlockNumberPromise=this.getBlockNumber().then((e=>((null==this._fastBlockNumber||e>this._fastBlockNumber)&&(this._fastBlockNumber=e),this._fastBlockNumber)))),this._fastBlockNumberPromise}_setFastBlockNumber(e){null!=this._fastBlockNumber&&e<this._fastBlockNumber||(this._fastQueryDate=ap(),(null==this._fastBlockNumber||e>this._fastBlockNumber)&&(this._fastBlockNumber=e,this._fastBlockNumberPromise=Promise.resolve(e)))}waitForTransaction(e,t,n){return ep(this,void 0,void 0,(function*(){return this._waitForTransaction(e,null==t?1:t,n||0,null)}))}_waitForTransaction(e,t,n,r){return ep(this,void 0,void 0,(function*(){const i=yield this.getTransactionReceipt(e);return(i?i.confirmations:0)>=t?i:new Promise(((i,a)=>{const o=[];let s=!1;const u=function(){return!!s||(s=!0,o.forEach((e=>{e()})),!1)},c=e=>{e.confirmations<t||u()||i(e)};if(this.on(e,c),o.push((()=>{this.removeListener(e,c)})),r){let n=r.startBlock,i=null;const c=o=>ep(this,void 0,void 0,(function*(){s||(yield op(1e3),this.getTransactionCount(r.from).then((l=>ep(this,void 0,void 0,(function*(){if(!s){if(l<=r.nonce)n=o;else{{const t=yield this.getTransaction(e);if(t&&null!=t.blockNumber)return}for(null==i&&(i=n-3,i<r.startBlock&&(i=r.startBlock));i<=o;){if(s)return;const n=yield this.getBlockWithTransactions(i);for(let i=0;i<n.transactions.length;i++){const o=n.transactions[i];if(o.hash===e)return;if(o.from===r.from&&o.nonce===r.nonce){if(s)return;const n=yield this.waitForTransaction(o.hash,t);if(u())return;let i="replaced";return o.data===r.data&&o.to===r.to&&o.value.eq(r.value)?i="repriced":"0x"===o.data&&o.from===o.to&&o.value.isZero()&&(i="cancelled"),void a(tp.makeError("transaction was replaced",Zn.errors.TRANSACTION_REPLACED,{cancelled:"replaced"===i||"cancelled"===i,reason:i,replacement:this._wrapTransaction(o),hash:e,receipt:n}))}}i++}}s||this.once("block",c)}}))),(e=>{s||this.once("block",c)})))}));if(s)return;this.once("block",c),o.push((()=>{this.removeListener("block",c)}))}if("number"==typeof n&&n>0){const e=setTimeout((()=>{u()||a(tp.makeError("timeout exceeded",Zn.errors.TIMEOUT,{timeout:n}))}),n);e.unref&&e.unref(),o.push((()=>{clearTimeout(e)}))}}))}))}getBlockNumber(){return ep(this,void 0,void 0,(function*(){return this._getInternalBlockNumber(0)}))}getGasPrice(){return ep(this,void 0,void 0,(function*(){yield this.getNetwork();const e=yield this.perform("getGasPrice",{});try{return kr.from(e)}catch(t){return tp.throwError("bad result from backend",Zn.errors.SERVER_ERROR,{method:"getGasPrice",result:e,error:t})}}))}getBalance(e,t){return ep(this,void 0,void 0,(function*(){yield this.getNetwork();const n=yield Qr({address:this._getAddress(e),blockTag:this._getBlockTag(t)}),r=yield this.perform("getBalance",n);try{return kr.from(r)}catch(e){return tp.throwError("bad result from backend",Zn.errors.SERVER_ERROR,{method:"getBalance",params:n,result:r,error:e})}}))}getTransactionCount(e,t){return ep(this,void 0,void 0,(function*(){yield this.getNetwork();const n=yield Qr({address:this._getAddress(e),blockTag:this._getBlockTag(t)}),r=yield this.perform("getTransactionCount",n);try{return kr.from(r).toNumber()}catch(e){return tp.throwError("bad result from backend",Zn.errors.SERVER_ERROR,{method:"getTransactionCount",params:n,result:r,error:e})}}))}getCode(e,t){return ep(this,void 0,void 0,(function*(){yield this.getNetwork();const n=yield Qr({address:this._getAddress(e),blockTag:this._getBlockTag(t)}),r=yield this.perform("getCode",n);try{return pr(r)}catch(e){return tp.throwError("bad result from backend",Zn.errors.SERVER_ERROR,{method:"getCode",params:n,result:r,error:e})}}))}getStorageAt(e,t,n){return ep(this,void 0,void 0,(function*(){yield this.getNetwork();const r=yield Qr({address:this._getAddress(e),blockTag:this._getBlockTag(n),position:Promise.resolve(t).then((e=>gr(e)))}),i=yield this.perform("getStorageAt",r);try{return pr(i)}catch(e){return tp.throwError("bad result from backend",Zn.errors.SERVER_ERROR,{method:"getStorageAt",params:r,result:i,error:e})}}))}_wrapTransaction(e,t,n){if(null!=t&&32!==hr(t))throw new Error("invalid response - sendTransaction");const r=e;return null!=t&&e.hash!==t&&tp.throwError("Transaction hash mismatch from Provider.sendTransaction.",Zn.errors.UNKNOWN_ERROR,{expectedHash:e.hash,returnedHash:t}),r.wait=(t,r)=>ep(this,void 0,void 0,(function*(){let i;null==t&&(t=1),null==r&&(r=0),0!==t&&null!=n&&(i={data:e.data,from:e.from,nonce:e.nonce,to:e.to,value:e.value,startBlock:n});const a=yield this._waitForTransaction(e.hash,t,r,i);return null==a&&0===t?null:(this._emitted["t:"+e.hash]=a.blockNumber,0===a.status&&tp.throwError("transaction failed",Zn.errors.CALL_EXCEPTION,{transactionHash:e.hash,transaction:e,receipt:a}),a)})),r}sendTransaction(e){return ep(this,void 0,void 0,(function*(){yield this.getNetwork();const t=yield Promise.resolve(e).then((e=>pr(e))),n=this.formatter.transaction(e);null==n.confirmations&&(n.confirmations=0);const r=yield this._getInternalBlockNumber(100+2*this.pollingInterval);try{const e=yield this.perform("sendTransaction",{signedTransaction:t});return this._wrapTransaction(n,e,r)}catch(e){throw e.transaction=n,e.transactionHash=n.hash,e}}))}_getTransactionRequest(e){return ep(this,void 0,void 0,(function*(){const t=yield e,n={};return["from","to"].forEach((e=>{null!=t[e]&&(n[e]=Promise.resolve(t[e]).then((e=>e?this._getAddress(e):null)))})),["gasLimit","gasPrice","maxFeePerGas","maxPriorityFeePerGas","value"].forEach((e=>{null!=t[e]&&(n[e]=Promise.resolve(t[e]).then((e=>e?kr.from(e):null)))})),["type"].forEach((e=>{null!=t[e]&&(n[e]=Promise.resolve(t[e]).then((e=>null!=e?e:null)))})),t.accessList&&(n.accessList=this.formatter.accessList(t.accessList)),["data"].forEach((e=>{null!=t[e]&&(n[e]=Promise.resolve(t[e]).then((e=>e?pr(e):null)))})),this.formatter.transactionRequest(yield Qr(n))}))}_getFilter(e){return ep(this,void 0,void 0,(function*(){e=yield e;const t={};return null!=e.address&&(t.address=this._getAddress(e.address)),["blockHash","topics"].forEach((n=>{null!=e[n]&&(t[n]=e[n])})),["fromBlock","toBlock"].forEach((n=>{null!=e[n]&&(t[n]=this._getBlockTag(e[n]))})),this.formatter.filter(yield Qr(t))}))}_call(e,t,n){return ep(this,void 0,void 0,(function*(){n>=10&&tp.throwError("CCIP read exceeded maximum redirections",Zn.errors.SERVER_ERROR,{redirects:n,transaction:e});const r=e.to,i=yield this.perform("call",{transaction:e,blockTag:t});if(n>=0&&"latest"===t&&null!=r&&"0x556f1830"===i.substring(0,10)&&hr(i)%32==4)try{const a=mr(i,4),o=mr(a,0,32);kr.from(o).eq(r)||tp.throwError("CCIP Read sender did not match",Zn.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:e,data:i});const s=[],u=kr.from(mr(a,32,64)).toNumber(),c=kr.from(mr(a,u,u+32)).toNumber(),l=mr(a,u+32);for(let t=0;t<c;t++){const n=hp(l,32*t);null==n&&tp.throwError("CCIP Read contained corrupt URL string",Zn.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:e,data:i}),s.push(n)}const d=mp(a,64);kr.from(mr(a,100,128)).isZero()||tp.throwError("CCIP Read callback selector included junk",Zn.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:e,data:i});const f=mr(a,96,100),p=mp(a,128),h=yield this.ccipReadFetch(e,d,s);null==h&&tp.throwError("CCIP Read disabled or provided no URLs",Zn.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:e,data:i});const m={to:r,data:yr([f,vp([h,p])])};return this._call(m,t,n+1)}catch(e){if(e.code===Zn.errors.SERVER_ERROR)throw e}try{return pr(i)}catch(n){return tp.throwError("bad result from backend",Zn.errors.SERVER_ERROR,{method:"call",params:{transaction:e,blockTag:t},result:i,error:n})}}))}call(e,t){return ep(this,void 0,void 0,(function*(){yield this.getNetwork();const n=yield Qr({transaction:this._getTransactionRequest(e),blockTag:this._getBlockTag(t),ccipReadEnabled:Promise.resolve(e.ccipReadEnabled)});return this._call(n.transaction,n.blockTag,n.ccipReadEnabled?0:-1)}))}estimateGas(e){return ep(this,void 0,void 0,(function*(){yield this.getNetwork();const t=yield Qr({transaction:this._getTransactionRequest(e)}),n=yield this.perform("estimateGas",t);try{return kr.from(n)}catch(e){return tp.throwError("bad result from backend",Zn.errors.SERVER_ERROR,{method:"estimateGas",params:t,result:n,error:e})}}))}_getAddress(e){return ep(this,void 0,void 0,(function*(){"string"!=typeof(e=yield e)&&tp.throwArgumentError("invalid address or ENS name","name",e);const t=yield this.resolveName(e);return null==t&&tp.throwError("ENS name not configured",Zn.errors.UNSUPPORTED_OPERATION,{operation:`resolveName(${JSON.stringify(e)})`}),t}))}_getBlock(e,t){return ep(this,void 0,void 0,(function*(){yield this.getNetwork(),e=yield e;let n=-128;const r={includeTransactions:!!t};if(dr(e,32))r.blockHash=e;else try{r.blockTag=yield this._getBlockTag(e),dr(r.blockTag)&&(n=parseInt(r.blockTag.substring(2),16))}catch(t){tp.throwArgumentError("invalid block hash or block tag","blockHashOrBlockTag",e)}return Bf((()=>ep(this,void 0,void 0,(function*(){const e=yield this.perform("getBlock",r);if(null==e)return null!=r.blockHash&&null==this._emitted["b:"+r.blockHash]||null!=r.blockTag&&n>this._emitted.block?null:void 0;if(t){let t=null;for(let n=0;n<e.transactions.length;n++){const r=e.transactions[n];if(null==r.blockNumber)r.confirmations=0;else if(null==r.confirmations){null==t&&(t=yield this._getInternalBlockNumber(100+2*this.pollingInterval));let e=t-r.blockNumber+1;e<=0&&(e=1),r.confirmations=e}}const n=this.formatter.blockWithTransactions(e);return n.transactions=n.transactions.map((e=>this._wrapTransaction(e))),n}return this.formatter.block(e)}))),{oncePoll:this})}))}getBlock(e){return this._getBlock(e,!1)}getBlockWithTransactions(e){return this._getBlock(e,!0)}getTransaction(e){return ep(this,void 0,void 0,(function*(){yield this.getNetwork(),e=yield e;const t={transactionHash:this.formatter.hash(e,!0)};return Bf((()=>ep(this,void 0,void 0,(function*(){const n=yield this.perform("getTransaction",t);if(null==n)return null==this._emitted["t:"+e]?null:void 0;const r=this.formatter.transactionResponse(n);if(null==r.blockNumber)r.confirmations=0;else if(null==r.confirmations){let e=(yield this._getInternalBlockNumber(100+2*this.pollingInterval))-r.blockNumber+1;e<=0&&(e=1),r.confirmations=e}return this._wrapTransaction(r)}))),{oncePoll:this})}))}getTransactionReceipt(e){return ep(this,void 0,void 0,(function*(){yield this.getNetwork(),e=yield e;const t={transactionHash:this.formatter.hash(e,!0)};return Bf((()=>ep(this,void 0,void 0,(function*(){const n=yield this.perform("getTransactionReceipt",t);if(null==n)return null==this._emitted["t:"+e]?null:void 0;if(null==n.blockHash)return;const r=this.formatter.receipt(n);if(null==r.blockNumber)r.confirmations=0;else if(null==r.confirmations){let e=(yield this._getInternalBlockNumber(100+2*this.pollingInterval))-r.blockNumber+1;e<=0&&(e=1),r.confirmations=e}return r}))),{oncePoll:this})}))}getLogs(e){return ep(this,void 0,void 0,(function*(){yield this.getNetwork();const t=yield Qr({filter:this._getFilter(e)}),n=yield this.perform("getLogs",t);return n.forEach((e=>{null==e.removed&&(e.removed=!1)})),Jf.arrayOf(this.formatter.filterLog.bind(this.formatter))(n)}))}getEtherPrice(){return ep(this,void 0,void 0,(function*(){return yield this.getNetwork(),this.perform("getEtherPrice",{})}))}_getBlockTag(e){return ep(this,void 0,void 0,(function*(){if("number"==typeof(e=yield e)&&e<0){e%1&&tp.throwArgumentError("invalid BlockTag","blockTag",e);let t=yield this._getInternalBlockNumber(100+2*this.pollingInterval);return t+=e,t<0&&(t=0),this.formatter.blockTag(t)}return this.formatter.blockTag(e)}))}getResolver(e){return ep(this,void 0,void 0,(function*(){let t=e;for(;;){if(""===t||"."===t)return null;if("eth"!==e&&"eth"===t)return null;const n=yield this._getResolver(t,"getResolver");if(null!=n){const r=new Tp(this,n,e);return t===e||(yield r.supportsWildcard())?r:null}t=t.split(".").slice(1).join(".")}}))}_getResolver(e,t){return ep(this,void 0,void 0,(function*(){null==t&&(t="ENS");const n=yield this.getNetwork();n.ensAddress||tp.throwError("network does not support ENS",Zn.errors.UNSUPPORTED_OPERATION,{operation:t,network:n.name});try{const t=yield this.call({to:n.ensAddress,data:"0x0178b8bf"+Lo(e).substring(2)});return this.formatter.callAddress(t)}catch(e){}return null}))}resolveName(e){return ep(this,void 0,void 0,(function*(){e=yield e;try{return Promise.resolve(this.formatter.address(e))}catch(t){if(dr(e))throw t}"string"!=typeof e&&tp.throwArgumentError("invalid ENS name","name",e);const t=yield this.getResolver(e);return t?yield t.getAddress():null}))}lookupAddress(e){return ep(this,void 0,void 0,(function*(){e=yield e;const t=(e=this.formatter.address(e)).substring(2).toLowerCase()+".addr.reverse",n=yield this._getResolver(t,"lookupAddress");if(null==n)return null;const r=hp(yield this.call({to:n,data:"0x691f3431"+Lo(t).substring(2)}),0);return(yield this.resolveName(r))!=e?null:r}))}getAvatar(e){return ep(this,void 0,void 0,(function*(){let t=null;if(dr(e)){const n=this.formatter.address(e).substring(2).toLowerCase()+".addr.reverse",r=yield this._getResolver(n,"getAvatar");if(!r)return null;t=new Tp(this,r,n);try{const e=yield t.getAvatar();if(e)return e.url}catch(e){if(e.code!==Zn.errors.CALL_EXCEPTION)throw e}try{const e=hp(yield this.call({to:r,data:"0x691f3431"+Lo(n).substring(2)}),0);t=yield this.getResolver(e)}catch(e){if(e.code!==Zn.errors.CALL_EXCEPTION)throw e;return null}}else if(t=yield this.getResolver(e),!t)return null;const n=yield t.getAvatar();return null==n?null:n.url}))}perform(e,t){return tp.throwError(e+" not implemented",Zn.errors.NOT_IMPLEMENTED,{operation:e})}_startEvent(e){this.polling=this._events.filter((e=>e.pollable())).length>0}_stopEvent(e){this.polling=this._events.filter((e=>e.pollable())).length>0}_addEventListener(e,t,n){const r=new up(ip(e),t,n);return this._events.push(r),this._startEvent(r),this}on(e,t){return this._addEventListener(e,t,!1)}once(e,t){return this._addEventListener(e,t,!0)}emit(e,...t){let n=!1,r=[],i=ip(e);return this._events=this._events.filter((e=>e.tag!==i||(setTimeout((()=>{e.listener.apply(this,t)}),0),n=!0,!e.once||(r.push(e),!1)))),r.forEach((e=>{this._stopEvent(e)})),n}listenerCount(e){if(!e)return this._events.length;let t=ip(e);return this._events.filter((e=>e.tag===t)).length}listeners(e){if(null==e)return this._events.map((e=>e.listener));let t=ip(e);return this._events.filter((e=>e.tag===t)).map((e=>e.listener))}off(e,t){if(null==t)return this.removeAllListeners(e);const n=[];let r=!1,i=ip(e);return this._events=this._events.filter((e=>e.tag!==i||e.listener!=t||(!!r||(r=!0,n.push(e),!1)))),n.forEach((e=>{this._stopEvent(e)})),this}removeAllListeners(e){let t=[];if(null==e)t=this._events,this._events=[];else{const n=ip(e);this._events=this._events.filter((e=>e.tag!==n||(t.push(e),!1)))}return t.forEach((e=>{this._stopEvent(e)})),this}}var _p=window&&window.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};const Ip=new Zn(Kf),Rp=["call","estimateGas"];function Cp(e,t){if(null==e)return null;if("string"==typeof e.message&&e.message.match("reverted")){const n=dr(e.data)?e.data:null;if(!t||n)return{message:e.message,data:n}}if("object"==typeof e){for(const n in e){const r=Cp(e[n],t);if(r)return r}return null}if("string"==typeof e)try{return Cp(JSON.parse(e),t)}catch(e){}return null}function Op(e,t,n){const r=n.transaction||n.signedTransaction;if("call"===e){const e=Cp(t,!0);if(e)return e.data;Ip.throwError("missing revert data in call exception; Transaction reverted without a reason string",Zn.errors.CALL_EXCEPTION,{data:"0x",transaction:r,error:t})}if("estimateGas"===e){let n=Cp(t.body,!1);null==n&&(n=Cp(t,!1)),n&&Ip.throwError("cannot estimate gas; transaction may fail or may require manual gas limit",Zn.errors.UNPREDICTABLE_GAS_LIMIT,{reason:n.message,method:e,transaction:r,error:t})}let i=t.message;throw t.code===Zn.errors.SERVER_ERROR&&t.error&&"string"==typeof t.error.message?i=t.error.message:"string"==typeof t.body?i=t.body:"string"==typeof t.responseText&&(i=t.responseText),i=(i||"").toLowerCase(),i.match(/insufficient funds|base fee exceeds gas limit|InsufficientFunds/i)&&Ip.throwError("insufficient funds for intrinsic transaction cost",Zn.errors.INSUFFICIENT_FUNDS,{error:t,method:e,transaction:r}),i.match(/nonce (is )?too low/i)&&Ip.throwError("nonce has already been used",Zn.errors.NONCE_EXPIRED,{error:t,method:e,transaction:r}),i.match(/replacement transaction underpriced|transaction gas price.*too low/i)&&Ip.throwError("replacement fee too low",Zn.errors.REPLACEMENT_UNDERPRICED,{error:t,method:e,transaction:r}),i.match(/only replay-protected/i)&&Ip.throwError("legacy pre-eip-155 transactions not supported",Zn.errors.UNSUPPORTED_OPERATION,{error:t,method:e,transaction:r}),Rp.indexOf(e)>=0&&i.match(/gas required exceeds allowance|always failing transaction|execution reverted|revert/)&&Ip.throwError("cannot estimate gas; transaction may fail or may require manual gas limit",Zn.errors.UNPREDICTABLE_GAS_LIMIT,{error:t,method:e,transaction:r}),t}function kp(e){return new Promise((function(t){setTimeout(t,e)}))}function Sp(e){if(e.error){const t=new Error(e.error.message);throw t.code=e.error.code,t.data=e.error.data,t}return e.result}function Np(e){return e?e.toLowerCase():e}const xp={};class Pp extends Es{constructor(e,t,n){if(super(),e!==xp)throw new Error("do not call the JsonRpcSigner constructor directly; use provider.getSigner");Jr(this,"provider",t),null==n&&(n=0),"string"==typeof n?(Jr(this,"_address",this.provider.formatter.address(n)),Jr(this,"_index",null)):"number"==typeof n?(Jr(this,"_index",n),Jr(this,"_address",null)):Ip.throwArgumentError("invalid address or index","addressOrIndex",n)}connect(e){return Ip.throwError("cannot alter JSON-RPC Signer connection",Zn.errors.UNSUPPORTED_OPERATION,{operation:"connect"})}connectUnchecked(){return new Mp(xp,this.provider,this._address||this._index)}getAddress(){return this._address?Promise.resolve(this._address):this.provider.send("eth_accounts",[]).then((e=>(e.length<=this._index&&Ip.throwError("unknown account #"+this._index,Zn.errors.UNSUPPORTED_OPERATION,{operation:"getAddress"}),this.provider.formatter.address(e[this._index]))))}sendUncheckedTransaction(e){e=Zr(e);const t=this.getAddress().then((e=>(e&&(e=e.toLowerCase()),e)));if(null==e.gasLimit){const n=Zr(e);n.from=t,e.gasLimit=this.provider.estimateGas(n)}return null!=e.to&&(e.to=Promise.resolve(e.to).then((e=>_p(this,void 0,void 0,(function*(){if(null==e)return null;const t=yield this.provider.resolveName(e);return null==t&&Ip.throwArgumentError("provided ENS name resolves to null","tx.to",e),t}))))),Qr({tx:Qr(e),sender:t}).then((({tx:t,sender:n})=>{null!=t.from?t.from.toLowerCase()!==n&&Ip.throwArgumentError("from address mismatch","transaction",e):t.from=n;const r=this.provider.constructor.hexlifyTransaction(t,{from:!0});return this.provider.send("eth_sendTransaction",[r]).then((e=>e),(e=>("string"==typeof e.message&&e.message.match(/user denied/i)&&Ip.throwError("user rejected transaction",Zn.errors.ACTION_REJECTED,{action:"sendTransaction",transaction:t}),Op("sendTransaction",e,r))))}))}signTransaction(e){return Ip.throwError("signing transactions is unsupported",Zn.errors.UNSUPPORTED_OPERATION,{operation:"signTransaction"})}sendTransaction(e){return _p(this,void 0,void 0,(function*(){const t=yield this.provider._getInternalBlockNumber(100+2*this.provider.pollingInterval),n=yield this.sendUncheckedTransaction(e);try{return yield Bf((()=>_p(this,void 0,void 0,(function*(){const e=yield this.provider.getTransaction(n);if(null!==e)return this.provider._wrapTransaction(e,n,t)}))),{oncePoll:this.provider})}catch(e){throw e.transactionHash=n,e}}))}signMessage(e){return _p(this,void 0,void 0,(function*(){const t="string"==typeof e?Pa(e):e,n=yield this.getAddress();try{return yield this.provider.send("personal_sign",[pr(t),n.toLowerCase()])}catch(t){throw"string"==typeof t.message&&t.message.match(/user denied/i)&&Ip.throwError("user rejected signing",Zn.errors.ACTION_REJECTED,{action:"signMessage",from:n,messageData:e}),t}}))}_legacySignMessage(e){return _p(this,void 0,void 0,(function*(){const t="string"==typeof e?Pa(e):e,n=yield this.getAddress();try{return yield this.provider.send("eth_sign",[n.toLowerCase(),pr(t)])}catch(t){throw"string"==typeof t.message&&t.message.match(/user denied/i)&&Ip.throwError("user rejected signing",Zn.errors.ACTION_REJECTED,{action:"_legacySignMessage",from:n,messageData:e}),t}}))}_signTypedData(e,t,n){return _p(this,void 0,void 0,(function*(){const r=yield rs.resolveNames(e,t,n,(e=>this.provider.resolveName(e))),i=yield this.getAddress();try{return yield this.provider.send("eth_signTypedData_v4",[i.toLowerCase(),JSON.stringify(rs.getPayload(r.domain,t,r.value))])}catch(e){throw"string"==typeof e.message&&e.message.match(/user denied/i)&&Ip.throwError("user rejected signing",Zn.errors.ACTION_REJECTED,{action:"_signTypedData",from:i,messageData:{domain:r.domain,types:t,value:r.value}}),e}}))}unlock(e){return _p(this,void 0,void 0,(function*(){const t=this.provider,n=yield this.getAddress();return t.send("personal_unlockAccount",[n.toLowerCase(),e,null])}))}}class Mp extends Pp{sendTransaction(e){return this.sendUncheckedTransaction(e).then((e=>({hash:e,nonce:null,gasLimit:null,gasPrice:null,data:null,value:null,chainId:null,confirmations:0,from:null,wait:t=>this.provider.waitForTransaction(e,t)})))}}const Bp={chainId:!0,data:!0,gasLimit:!0,gasPrice:!0,nonce:!0,to:!0,value:!0,type:!0,accessList:!0,maxFeePerGas:!0,maxPriorityFeePerGas:!0};let Dp=class extends Ap{constructor(e,t){let n=t;null==n&&(n=new Promise(((e,t)=>{setTimeout((()=>{this.detectNetwork().then((t=>{e(t)}),(e=>{t(e)}))}),0)}))),super(n),e||(e=Yr(this.constructor,"defaultUrl")()),Jr(this,"connection","string"==typeof e?Object.freeze({url:e}):Object.freeze(Zr(e))),this._nextId=42}get _cache(){return null==this._eventLoopCache&&(this._eventLoopCache={}),this._eventLoopCache}static defaultUrl(){return"http://localhost:8545"}detectNetwork(){return this._cache.detectNetwork||(this._cache.detectNetwork=this._uncachedDetectNetwork(),setTimeout((()=>{this._cache.detectNetwork=null}),0)),this._cache.detectNetwork}_uncachedDetectNetwork(){return _p(this,void 0,void 0,(function*(){yield kp(0);let e=null;try{e=yield this.send("eth_chainId",[])}catch(t){try{e=yield this.send("net_version",[])}catch(e){}}if(null!=e){const t=Yr(this.constructor,"getNetwork");try{return t(kr.from(e).toNumber())}catch(t){return Ip.throwError("could not detect network",Zn.errors.NETWORK_ERROR,{chainId:e,event:"invalidNetwork",serverError:t})}}return Ip.throwError("could not detect network",Zn.errors.NETWORK_ERROR,{event:"noNetwork"})}))}getSigner(e){return new Pp(xp,this,e)}getUncheckedSigner(e){return this.getSigner(e).connectUnchecked()}listAccounts(){return this.send("eth_accounts",[]).then((e=>e.map((e=>this.formatter.address(e)))))}send(e,t){const n={method:e,params:t,id:this._nextId++,jsonrpc:"2.0"};this.emit("debug",{action:"request",request:ri(n),provider:this});const r=["eth_chainId","eth_blockNumber"].indexOf(e)>=0;if(r&&this._cache[e])return this._cache[e];const i=Mf(this.connection,JSON.stringify(n),Sp).then((e=>(this.emit("debug",{action:"response",request:n,response:e,provider:this}),e)),(e=>{throw this.emit("debug",{action:"response",error:e,request:n,provider:this}),e}));return r&&(this._cache[e]=i,setTimeout((()=>{this._cache[e]=null}),0)),i}prepareRequest(e,t){switch(e){case"getBlockNumber":return["eth_blockNumber",[]];case"getGasPrice":return["eth_gasPrice",[]];case"getBalance":return["eth_getBalance",[Np(t.address),t.blockTag]];case"getTransactionCount":return["eth_getTransactionCount",[Np(t.address),t.blockTag]];case"getCode":return["eth_getCode",[Np(t.address),t.blockTag]];case"getStorageAt":return["eth_getStorageAt",[Np(t.address),vr(t.position,32),t.blockTag]];case"sendTransaction":return["eth_sendRawTransaction",[t.signedTransaction]];case"getBlock":return t.blockTag?["eth_getBlockByNumber",[t.blockTag,!!t.includeTransactions]]:t.blockHash?["eth_getBlockByHash",[t.blockHash,!!t.includeTransactions]]:null;case"getTransaction":return["eth_getTransactionByHash",[t.transactionHash]];case"getTransactionReceipt":return["eth_getTransactionReceipt",[t.transactionHash]];case"call":return["eth_call",[Yr(this.constructor,"hexlifyTransaction")(t.transaction,{from:!0}),t.blockTag]];case"estimateGas":return["eth_estimateGas",[Yr(this.constructor,"hexlifyTransaction")(t.transaction,{from:!0})]];case"getLogs":return t.filter&&null!=t.filter.address&&(t.filter.address=Np(t.filter.address)),["eth_getLogs",[t.filter]]}return null}perform(e,t){return _p(this,void 0,void 0,(function*(){if("call"===e||"estimateGas"===e){const e=t.transaction;if(e&&null!=e.type&&kr.from(e.type).isZero()&&null==e.maxFeePerGas&&null==e.maxPriorityFeePerGas){const n=yield this.getFeeData();null==n.maxFeePerGas&&null==n.maxPriorityFeePerGas&&((t=Zr(t)).transaction=Zr(e),delete t.transaction.type)}}const n=this.prepareRequest(e,t);null==n&&Ip.throwError(e+" not implemented",Zn.errors.NOT_IMPLEMENTED,{operation:e});try{return yield this.send(n[0],n[1])}catch(n){return Op(e,n,t)}}))}_startEvent(e){"pending"===e.tag&&this._startPending(),super._startEvent(e)}_startPending(){if(null!=this._pendingFilter)return;const e=this,t=this.send("eth_newPendingTransactionFilter",[]);this._pendingFilter=t,t.then((function(n){return function r(){e.send("eth_getFilterChanges",[n]).then((function(n){if(e._pendingFilter!=t)return null;let r=Promise.resolve();return n.forEach((function(t){e._emitted["t:"+t.toLowerCase()]="pending",r=r.then((function(){return e.getTransaction(t).then((function(t){return e.emit("pending",t),null}))}))})),r.then((function(){return kp(1e3)}))})).then((function(){if(e._pendingFilter==t)return setTimeout((function(){r()}),0),null;e.send("eth_uninstallFilter",[n])})).catch((e=>{}))}(),n})).catch((e=>{}))}_stopEvent(e){"pending"===e.tag&&0===this.listenerCount("pending")&&(this._pendingFilter=null),super._stopEvent(e)}static hexlifyTransaction(e,t){const n=Zr(Bp);if(t)for(const e in t)t[e]&&(n[e]=!0);$r(e,n);const r={};return["chainId","gasLimit","gasPrice","type","maxFeePerGas","maxPriorityFeePerGas","nonce","value"].forEach((function(t){if(null==e[t])return;const n=gr(kr.from(e[t]));"gasLimit"===t&&(t="gas"),r[t]=n})),["from","to","data"].forEach((function(t){null!=e[t]&&(r[t]=pr(e[t]))})),e.accessList&&(r.accessList=_l(e.accessList)),r}},Fp=null;try{if(Fp=WebSocket,null==Fp)throw new Error("inject please")}catch(e){const t=new Zn(Kf);Fp=function(){t.throwError("WebSockets not supported in this environment",Zn.errors.UNSUPPORTED_OPERATION,{operation:"new WebSocket()"})}}var Lp=window&&window.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};const Up=new Zn(Kf);let qp=1;class jp extends Dp{constructor(e,t){"any"===t&&Up.throwError("WebSocketProvider does not support 'any' network yet",Zn.errors.UNSUPPORTED_OPERATION,{operation:"network:any"}),super("string"==typeof e?e:"_websocket",t),this._pollingInterval=-1,this._wsReady=!1,Jr(this,"_websocket","string"==typeof e?new Fp(this.connection.url):e),Jr(this,"_requests",{}),Jr(this,"_subs",{}),Jr(this,"_subIds",{}),Jr(this,"_detectNetwork",super.detectNetwork()),this.websocket.onopen=()=>{this._wsReady=!0,Object.keys(this._requests).forEach((e=>{this.websocket.send(this._requests[e].payload)}))},this.websocket.onmessage=e=>{const t=e.data,n=JSON.parse(t);if(null!=n.id){const e=String(n.id),r=this._requests[e];if(delete this._requests[e],void 0!==n.result)r.callback(null,n.result),this.emit("debug",{action:"response",request:JSON.parse(r.payload),response:n.result,provider:this});else{let e=null;n.error?(e=new Error(n.error.message||"unknown error"),Jr(e,"code",n.error.code||null),Jr(e,"response",t)):e=new Error("unknown error"),r.callback(e,void 0),this.emit("debug",{action:"response",error:e,request:JSON.parse(r.payload),provider:this})}}else if("eth_subscription"===n.method){const e=this._subs[n.params.subscription];e&&e.processFunc(n.params.result)}else console.warn("this should not happen")};const n=setInterval((()=>{this.emit("poll")}),1e3);n.unref&&n.unref()}get websocket(){return this._websocket}detectNetwork(){return this._detectNetwork}get pollingInterval(){return 0}resetEventsBlock(e){Up.throwError("cannot reset events block on WebSocketProvider",Zn.errors.UNSUPPORTED_OPERATION,{operation:"resetEventBlock"})}set pollingInterval(e){Up.throwError("cannot set polling interval on WebSocketProvider",Zn.errors.UNSUPPORTED_OPERATION,{operation:"setPollingInterval"})}poll(){return Lp(this,void 0,void 0,(function*(){return null}))}set polling(e){e&&Up.throwError("cannot set polling on WebSocketProvider",Zn.errors.UNSUPPORTED_OPERATION,{operation:"setPolling"})}send(e,t){const n=qp++;return new Promise(((r,i)=>{const a=JSON.stringify({method:e,params:t,id:n,jsonrpc:"2.0"});this.emit("debug",{action:"request",request:JSON.parse(a),provider:this}),this._requests[String(n)]={callback:function(e,t){return e?i(e):r(t)},payload:a},this._wsReady&&this.websocket.send(a)}))}static defaultUrl(){return"ws://localhost:8546"}_subscribe(e,t,n){return Lp(this,void 0,void 0,(function*(){let r=this._subIds[e];null==r&&(r=Promise.all(t).then((e=>this.send("eth_subscribe",e))),this._subIds[e]=r);const i=yield r;this._subs[i]={tag:e,processFunc:n}}))}_startEvent(e){switch(e.type){case"block":this._subscribe("block",["newHeads"],(e=>{const t=kr.from(e.number).toNumber();this._emitted.block=t,this.emit("block",t)}));break;case"pending":this._subscribe("pending",["newPendingTransactions"],(e=>{this.emit("pending",e)}));break;case"filter":this._subscribe(e.tag,["logs",this._getFilter(e.filter)],(t=>{null==t.removed&&(t.removed=!1),this.emit(e.filter,this.formatter.filterLog(t))}));break;case"tx":{const t=e=>{const t=e.hash;this.getTransactionReceipt(t).then((e=>{e&&this.emit(t,e)}))};t(e),this._subscribe("tx",["newHeads"],(e=>{this._events.filter((e=>"tx"===e.type)).forEach(t)}));break}case"debug":case"poll":case"willPoll":case"didPoll":case"error":break;default:console.log("unhandled:",e)}}_stopEvent(e){let t=e.tag;if("tx"===e.type){if(this._events.filter((e=>"tx"===e.type)).length)return;t="tx"}else if(this.listenerCount(e.event))return;const n=this._subIds[t];n&&(delete this._subIds[t],n.then((e=>{this._subs[e]&&(delete this._subs[e],this.send("eth_unsubscribe",[e]))})))}destroy(){return Lp(this,void 0,void 0,(function*(){this.websocket.readyState===Fp.CONNECTING&&(yield new Promise((e=>{this.websocket.onopen=function(){e(!0)},this.websocket.onerror=function(){e(!1)}}))),this.websocket.close(1e3)}))}}var Gp=window&&window.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};const Hp=new Zn(Kf);class zp extends Dp{detectNetwork(){const e=Object.create(null,{detectNetwork:{get:()=>super.detectNetwork}});return Gp(this,void 0,void 0,(function*(){let t=this.network;return null==t&&(t=yield e.detectNetwork.call(this),t||Hp.throwError("no network detected",Zn.errors.UNKNOWN_ERROR,{}),null==this._network&&(Jr(this,"_network",t),this.emit("network",t,null))),t}))}}class Wp extends zp{constructor(e,t){Hp.checkAbstract(new.target,Wp),e=Yr(new.target,"getNetwork")(e),t=Yr(new.target,"getApiKey")(t);super(Yr(new.target,"getUrl")(e,t),e),"string"==typeof t?Jr(this,"apiKey",t):null!=t&&Object.keys(t).forEach((e=>{Jr(this,e,t[e])}))}_startPending(){Hp.warn("WARNING: API provider does not support pending filters")}isCommunityResource(){return!1}getSigner(e){return Hp.throwError("API provider does not support signing",Zn.errors.UNSUPPORTED_OPERATION,{operation:"getSigner"})}listAccounts(){return Promise.resolve([])}static getApiKey(e){return e}static getUrl(e,t){return Hp.throwError("not implemented; sub-classes must override getUrl",Zn.errors.NOT_IMPLEMENTED,{operation:"getUrl"})}}const Vp=new Zn(Kf),Kp="_gg7wSSi0KMBsdKnGVfHDueq6xMB9EkC";class Xp extends jp{constructor(e,t){const n=new Jp(e,t);super(n.connection.url.replace(/^http/i,"ws").replace(".alchemyapi.",".ws.alchemyapi."),n.network),Jr(this,"apiKey",n.apiKey)}isCommunityResource(){return this.apiKey===Kp}}class Jp extends Wp{static getWebSocketProvider(e,t){return new Xp(e,t)}static getApiKey(e){return null==e?Kp:(e&&"string"!=typeof e&&Vp.throwArgumentError("invalid apiKey","apiKey",e),e)}static getUrl(e,t){let n=null;switch(e.name){case"homestead":n="eth-mainnet.alchemyapi.io/v2/";break;case"goerli":n="eth-goerli.g.alchemy.com/v2/";break;case"matic":n="polygon-mainnet.g.alchemy.com/v2/";break;case"maticmum":n="polygon-mumbai.g.alchemy.com/v2/";break;case"arbitrum":n="arb-mainnet.g.alchemy.com/v2/";break;case"arbitrum-goerli":n="arb-goerli.g.alchemy.com/v2/";break;case"optimism":n="opt-mainnet.g.alchemy.com/v2/";break;case"optimism-goerli":n="opt-goerli.g.alchemy.com/v2/";break;default:Vp.throwArgumentError("unsupported network","network",arguments[0])}return{allowGzip:!0,url:"https://"+n+t,throttleCallback:(e,n)=>(t===Kp&&Zf(),Promise.resolve(!0))}}isCommunityResource(){return this.apiKey===Kp}}const Yp=new Zn(Kf),Qp="9f7d929b018cdffb338517efa06f58359e86ff1ffd350bc889738523659e7972";function $p(e){switch(e){case"homestead":return"rpc.ankr.com/eth/";case"ropsten":return"rpc.ankr.com/eth_ropsten/";case"rinkeby":return"rpc.ankr.com/eth_rinkeby/";case"goerli":return"rpc.ankr.com/eth_goerli/";case"matic":return"rpc.ankr.com/polygon/";case"arbitrum":return"rpc.ankr.com/arbitrum/"}return Yp.throwArgumentError("unsupported network","name",e)}class Zp extends Wp{isCommunityResource(){return this.apiKey===Qp}static getApiKey(e){return null==e?Qp:e}static getUrl(e,t){null==t&&(t=Qp);const n={allowGzip:!0,url:"https://"+$p(e.name)+t,throttleCallback:(e,n)=>(t.apiKey===Qp&&Zf(),Promise.resolve(!0))};return null!=t.projectSecret&&(n.user="",n.password=t.projectSecret),n}}var eh=window&&window.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};const th=new Zn(Kf);class nh extends Wp{static getApiKey(e){return null!=e&&th.throwArgumentError("apiKey not supported for cloudflare","apiKey",e),null}static getUrl(e,t){let n=null;if("homestead"===e.name)n="https://cloudflare-eth.com/";else th.throwArgumentError("unsupported network","network",arguments[0]);return n}perform(e,t){const n=Object.create(null,{perform:{get:()=>super.perform}});return eh(this,void 0,void 0,(function*(){if("getBlockNumber"===e){return(yield n.perform.call(this,"getBlock",{blockTag:"latest"})).number}return n.perform.call(this,e,t)}))}}var rh=window&&window.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};const ih=new Zn(Kf);function ah(e){const t={};for(let n in e){if(null==e[n])continue;let r=e[n];"type"===n&&0===r||(r={type:!0,gasLimit:!0,gasPrice:!0,maxFeePerGs:!0,maxPriorityFeePerGas:!0,nonce:!0,value:!0}[n]?gr(pr(r)):"accessList"===n?"["+_l(r).map((e=>`{address:"${e.address}",storageKeys:["${e.storageKeys.join('","')}"]}`)).join(",")+"]":pr(r),t[n]=r)}return t}function oh(e){if(0==e.status&&("No records found"===e.message||"No transactions found"===e.message))return e.result;if(1!=e.status||"string"!=typeof e.message||!e.message.match(/^OK/)){const t=new Error("invalid response");throw t.result=JSON.stringify(e),(e.result||"").toLowerCase().indexOf("rate limit")>=0&&(t.throttleRetry=!0),t}return e.result}function sh(e){if(e&&0==e.status&&"NOTOK"==e.message&&(e.result||"").toLowerCase().indexOf("rate limit")>=0){const t=new Error("throttled response");throw t.result=JSON.stringify(e),t.throttleRetry=!0,t}if("2.0"!=e.jsonrpc){const t=new Error("invalid response");throw t.result=JSON.stringify(e),t}if(e.error){const t=new Error(e.error.message||"unknown error");throw e.error.code&&(t.code=e.error.code),e.error.data&&(t.data=e.error.data),t}return e.result}function uh(e){if("pending"===e)throw new Error("pending not supported");return"latest"===e?e:parseInt(e.substring(2),16)}function ch(e,t,n){if("call"===e&&t.code===Zn.errors.SERVER_ERROR){const e=t.error;if(e&&(e.message.match(/reverted/i)||e.message.match(/VM execution error/i))){let n=e.data;if(n&&(n="0x"+n.replace(/^.*0x/i,"")),dr(n))return n;ih.throwError("missing revert data in call exception",Zn.errors.CALL_EXCEPTION,{error:t,data:"0x"})}}let r=t.message;throw t.code===Zn.errors.SERVER_ERROR&&(t.error&&"string"==typeof t.error.message?r=t.error.message:"string"==typeof t.body?r=t.body:"string"==typeof t.responseText&&(r=t.responseText)),r=(r||"").toLowerCase(),r.match(/insufficient funds/)&&ih.throwError("insufficient funds for intrinsic transaction cost",Zn.errors.INSUFFICIENT_FUNDS,{error:t,method:e,transaction:n}),r.match(/same hash was already imported|transaction nonce is too low|nonce too low/)&&ih.throwError("nonce has already been used",Zn.errors.NONCE_EXPIRED,{error:t,method:e,transaction:n}),r.match(/another transaction with same nonce/)&&ih.throwError("replacement fee too low",Zn.errors.REPLACEMENT_UNDERPRICED,{error:t,method:e,transaction:n}),r.match(/execution failed due to an exception|execution reverted/)&&ih.throwError("cannot estimate gas; transaction may fail or may require manual gas limit",Zn.errors.UNPREDICTABLE_GAS_LIMIT,{error:t,method:e,transaction:n}),t}class lh extends Ap{constructor(e,t){super(e),Jr(this,"baseUrl",this.getBaseUrl()),Jr(this,"apiKey",t||null)}getBaseUrl(){switch(this.network?this.network.name:"invalid"){case"homestead":return"https://api.etherscan.io";case"goerli":return"https://api-goerli.etherscan.io";case"sepolia":return"https://api-sepolia.etherscan.io";case"matic":return"https://api.polygonscan.com";case"maticmum":return"https://api-testnet.polygonscan.com";case"arbitrum":return"https://api.arbiscan.io";case"arbitrum-goerli":return"https://api-goerli.arbiscan.io";case"optimism":return"https://api-optimistic.etherscan.io";case"optimism-goerli":return"https://api-goerli-optimistic.etherscan.io"}return ih.throwArgumentError("unsupported network","network",this.network.name)}getUrl(e,t){const n=Object.keys(t).reduce(((e,n)=>{const r=t[n];return null!=r&&(e+=`&${n}=${r}`),e}),""),r=this.apiKey?`&apikey=${this.apiKey}`:"";return`${this.baseUrl}/api?module=${e}${n}${r}`}getPostUrl(){return`${this.baseUrl}/api`}getPostData(e,t){return t.module=e,t.apikey=this.apiKey,t}fetch(e,t,n){return rh(this,void 0,void 0,(function*(){const r=n?this.getPostUrl():this.getUrl(e,t),i=n?this.getPostData(e,t):null,a="proxy"===e?sh:oh;this.emit("debug",{action:"request",request:r,provider:this});const o={url:r,throttleSlotInterval:1e3,throttleCallback:(e,t)=>(this.isCommunityResource()&&Zf(),Promise.resolve(!0))};let s=null;i&&(o.headers={"content-type":"application/x-www-form-urlencoded; charset=UTF-8"},s=Object.keys(i).map((e=>`${e}=${i[e]}`)).join("&"));const u=yield Mf(o,s,a||sh);return this.emit("debug",{action:"response",request:r,response:ri(u),provider:this}),u}))}detectNetwork(){return rh(this,void 0,void 0,(function*(){return this.network}))}perform(e,t){const n=Object.create(null,{perform:{get:()=>super.perform}});return rh(this,void 0,void 0,(function*(){switch(e){case"getBlockNumber":return this.fetch("proxy",{action:"eth_blockNumber"});case"getGasPrice":return this.fetch("proxy",{action:"eth_gasPrice"});case"getBalance":return this.fetch("account",{action:"balance",address:t.address,tag:t.blockTag});case"getTransactionCount":return this.fetch("proxy",{action:"eth_getTransactionCount",address:t.address,tag:t.blockTag});case"getCode":return this.fetch("proxy",{action:"eth_getCode",address:t.address,tag:t.blockTag});case"getStorageAt":return this.fetch("proxy",{action:"eth_getStorageAt",address:t.address,position:t.position,tag:t.blockTag});case"sendTransaction":return this.fetch("proxy",{action:"eth_sendRawTransaction",hex:t.signedTransaction},!0).catch((e=>ch("sendTransaction",e,t.signedTransaction)));case"getBlock":if(t.blockTag)return this.fetch("proxy",{action:"eth_getBlockByNumber",tag:t.blockTag,boolean:t.includeTransactions?"true":"false"});throw new Error("getBlock by blockHash not implemented");case"getTransaction":return this.fetch("proxy",{action:"eth_getTransactionByHash",txhash:t.transactionHash});case"getTransactionReceipt":return this.fetch("proxy",{action:"eth_getTransactionReceipt",txhash:t.transactionHash});case"call":{if("latest"!==t.blockTag)throw new Error("EtherscanProvider does not support blockTag for call");const e=ah(t.transaction);e.module="proxy",e.action="eth_call";try{return yield this.fetch("proxy",e,!0)}catch(e){return ch("call",e,t.transaction)}}case"estimateGas":{const e=ah(t.transaction);e.module="proxy",e.action="eth_estimateGas";try{return yield this.fetch("proxy",e,!0)}catch(e){return ch("estimateGas",e,t.transaction)}}case"getLogs":{const e={action:"getLogs"};if(t.filter.fromBlock&&(e.fromBlock=uh(t.filter.fromBlock)),t.filter.toBlock&&(e.toBlock=uh(t.filter.toBlock)),t.filter.address&&(e.address=t.filter.address),t.filter.topics&&t.filter.topics.length>0&&(t.filter.topics.length>1&&ih.throwError("unsupported topic count",Zn.errors.UNSUPPORTED_OPERATION,{topics:t.filter.topics}),1===t.filter.topics.length)){const n=t.filter.topics[0];"string"==typeof n&&66===n.length||ih.throwError("unsupported topic format",Zn.errors.UNSUPPORTED_OPERATION,{topic0:n}),e.topic0=n}const n=yield this.fetch("logs",e);let r={};for(let e=0;e<n.length;e++){const t=n[e];if(null==t.blockHash){if(null==r[t.blockNumber]){const e=yield this.getBlock(t.blockNumber);e&&(r[t.blockNumber]=e.hash)}t.blockHash=r[t.blockNumber]}}return n}case"getEtherPrice":return"homestead"!==this.network.name?0:parseFloat((yield this.fetch("stats",{action:"ethprice"})).ethusd)}return n.perform.call(this,e,t)}))}getHistory(e,t,n){return rh(this,void 0,void 0,(function*(){const r={action:"txlist",address:yield this.resolveName(e),startblock:null==t?0:t,endblock:null==n?99999999:n,sort:"asc"};return(yield this.fetch("account",r)).map((e=>{["contractAddress","to"].forEach((function(t){""==e[t]&&delete e[t]})),null==e.creates&&null!=e.contractAddress&&(e.creates=e.contractAddress);const t=this.formatter.transactionResponse(e);return e.timeStamp&&(t.timestamp=parseInt(e.timeStamp)),t}))}))}isCommunityResource(){return null==this.apiKey}}var dh=window&&window.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};const fh=new Zn(Kf);function ph(){return(new Date).getTime()}function hh(e){let t=null;for(let n=0;n<e.length;n++){const r=e[n];if(null==r)return null;t?t.name===r.name&&t.chainId===r.chainId&&(t.ensAddress===r.ensAddress||null==t.ensAddress&&null==r.ensAddress)||fh.throwArgumentError("provider mismatch","networks",e):t=r}return t}function mh(e,t){e=e.slice().sort();const n=Math.floor(e.length/2);if(e.length%2)return e[n];const r=e[n-1],i=e[n];return null!=t&&Math.abs(r-i)>t?null:(r+i)/2}function yh(e){if(null===e)return"null";if("number"==typeof e||"boolean"==typeof e)return JSON.stringify(e);if("string"==typeof e)return e;if(kr.isBigNumber(e))return e.toString();if(Array.isArray(e))return JSON.stringify(e.map((e=>yh(e))));if("object"==typeof e){const t=Object.keys(e);return t.sort(),"{"+t.map((t=>{let n=e[t];return n="function"==typeof n?"[function]":yh(n),JSON.stringify(t)+":"+n})).join(",")+"}"}throw new Error("unknown value type: "+typeof e)}let gh=1;function bh(e){let t=null,n=null,r=new Promise((r=>{t=function(){n&&(clearTimeout(n),n=null),r()},n=setTimeout(t,e)}));return{cancel:t,getPromise:function(){return r},wait:e=>(r=r.then(e),r)}}const vh=[Zn.errors.CALL_EXCEPTION,Zn.errors.INSUFFICIENT_FUNDS,Zn.errors.NONCE_EXPIRED,Zn.errors.REPLACEMENT_UNDERPRICED,Zn.errors.UNPREDICTABLE_GAS_LIMIT],Th=["address","args","errorArgs","errorSignature","method","transaction"];function wh(e,t){const n={weight:e.weight};return Object.defineProperty(n,"provider",{get:()=>e.provider}),e.start&&(n.start=e.start),t&&(n.duration=t-e.start),e.done&&(e.error?n.error=e.error:n.result=e.result||null),n}function Eh(e,t,n){let r=yh;switch(t){case"getBlockNumber":return function(t){const n=t.map((e=>e.result));let r=mh(t.map((e=>e.result)),2);if(null!=r)return r=Math.ceil(r),n.indexOf(r+1)>=0&&r++,r>=e._highestBlockNumber&&(e._highestBlockNumber=r),e._highestBlockNumber};case"getGasPrice":return function(e){const t=e.map((e=>e.result));return t.sort(),t[Math.floor(t.length/2)]};case"getEtherPrice":return function(e){return mh(e.map((e=>e.result)))};case"getBalance":case"getTransactionCount":case"getCode":case"getStorageAt":case"call":case"estimateGas":case"getLogs":break;case"getTransaction":case"getTransactionReceipt":r=function(e){return null==e?null:((e=Zr(e)).confirmations=-1,yh(e))};break;case"getBlock":r=n.includeTransactions?function(e){return null==e?null:((e=Zr(e)).transactions=e.transactions.map((e=>((e=Zr(e)).confirmations=-1,e))),yh(e))}:function(e){return null==e?null:yh(e)};break;default:throw new Error("unknown method: "+t)}return function(e,t){return function(n){const r={};n.forEach((t=>{const n=e(t.result);r[n]||(r[n]={count:0,result:t.result}),r[n].count++}));const i=Object.keys(r);for(let e=0;e<i.length;e++){const n=r[i[e]];if(n.count>=t)return n.result}}}(r,e.quorum)}function Ah(e,t){return dh(this,void 0,void 0,(function*(){const n=e.provider;return null!=n.blockNumber&&n.blockNumber>=t||-1===t?n:Bf((()=>new Promise(((r,i)=>{setTimeout((function(){return n.blockNumber>=t?r(n):e.cancelled?r(null):r(void 0)}),0)}))),{oncePoll:n})}))}function _h(e,t,n,r){return dh(this,void 0,void 0,(function*(){let i=e.provider;switch(n){case"getBlockNumber":case"getGasPrice":return i[n]();case"getEtherPrice":if(i.getEtherPrice)return i.getEtherPrice();break;case"getBalance":case"getTransactionCount":case"getCode":return r.blockTag&&dr(r.blockTag)&&(i=yield Ah(e,t)),i[n](r.address,r.blockTag||"latest");case"getStorageAt":return r.blockTag&&dr(r.blockTag)&&(i=yield Ah(e,t)),i.getStorageAt(r.address,r.position,r.blockTag||"latest");case"getBlock":return r.blockTag&&dr(r.blockTag)&&(i=yield Ah(e,t)),i[r.includeTransactions?"getBlockWithTransactions":"getBlock"](r.blockTag||r.blockHash);case"call":case"estimateGas":return r.blockTag&&dr(r.blockTag)&&(i=yield Ah(e,t)),"call"===n&&r.blockTag?i[n](r.transaction,r.blockTag):i[n](r.transaction);case"getTransaction":case"getTransactionReceipt":return i[n](r.transactionHash);case"getLogs":{let n=r.filter;return(n.fromBlock&&dr(n.fromBlock)||n.toBlock&&dr(n.toBlock))&&(i=yield Ah(e,t)),i.getLogs(n)}}return fh.throwError("unknown method error",Zn.errors.UNKNOWN_ERROR,{method:n,params:r})}))}class Ih extends Ap{constructor(e,t){0===e.length&&fh.throwArgumentError("missing providers","providers",e);const n=e.map(((e,t)=>{if(gs.isProvider(e)){const t=Qf(e)?2e3:750,n=1;return Object.freeze({provider:e,weight:1,stallTimeout:t,priority:n})}const n=Zr(e);null==n.priority&&(n.priority=1),null==n.stallTimeout&&(n.stallTimeout=Qf(e)?2e3:750),null==n.weight&&(n.weight=1);const r=n.weight;return(r%1||r>512||r<1)&&fh.throwArgumentError("invalid weight; must be integer in [1, 512]",`providers[${t}].weight`,r),Object.freeze(n)})),r=n.reduce(((e,t)=>e+t.weight),0);null==t?t=r/2:t>r&&fh.throwArgumentError("quorum will always fail; larger than total weight","quorum",t);let i=hh(n.map((e=>e.provider.network)));null==i&&(i=new Promise(((e,t)=>{setTimeout((()=>{this.detectNetwork().then(e,t)}),0)}))),super(i),Jr(this,"providerConfigs",Object.freeze(n)),Jr(this,"quorum",t),this._highestBlockNumber=-1}detectNetwork(){return dh(this,void 0,void 0,(function*(){return hh(yield Promise.all(this.providerConfigs.map((e=>e.provider.getNetwork()))))}))}perform(e,t){return dh(this,void 0,void 0,(function*(){if("sendTransaction"===e){const e=yield Promise.all(this.providerConfigs.map((e=>e.provider.sendTransaction(t.signedTransaction).then((e=>e.hash),(e=>e)))));for(let t=0;t<e.length;t++){const n=e[t];if("string"==typeof n)return n}throw e[0]}-1===this._highestBlockNumber&&"getBlockNumber"!==e&&(yield this.getBlockNumber());const n=Eh(this,e,t),r=Md(this.providerConfigs.map(Zr));r.sort(((e,t)=>e.priority-t.priority));const i=this._highestBlockNumber;let a=0,o=!0;for(;;){const s=ph();let u=r.filter((e=>e.runner&&s-e.start<e.stallTimeout)).reduce(((e,t)=>e+t.weight),0);for(;u<this.quorum&&a<r.length;){const n=r[a++],o=gh++;n.start=ph(),n.staller=bh(n.stallTimeout),n.staller.wait((()=>{n.staller=null})),n.runner=_h(n,i,e,t).then((r=>{n.done=!0,n.result=r,this.listenerCount("debug")&&this.emit("debug",{action:"request",rid:o,backend:wh(n,ph()),request:{method:e,params:ri(t)},provider:this})}),(r=>{n.done=!0,n.error=r,this.listenerCount("debug")&&this.emit("debug",{action:"request",rid:o,backend:wh(n,ph()),request:{method:e,params:ri(t)},provider:this})})),this.listenerCount("debug")&&this.emit("debug",{action:"request",rid:o,backend:wh(n,null),request:{method:e,params:ri(t)},provider:this}),u+=n.weight}const c=[];r.forEach((e=>{!e.done&&e.runner&&(c.push(e.runner),e.staller&&c.push(e.staller.getPromise()))})),c.length&&(yield Promise.race(c));const l=r.filter((e=>e.done&&null==e.error));if(l.length>=this.quorum){const e=n(l);if(void 0!==e)return r.forEach((e=>{e.staller&&e.staller.cancel(),e.cancelled=!0})),e;o||(yield bh(100).getPromise()),o=!1}const d=r.reduce(((e,t)=>{if(!t.done||null==t.error)return e;const n=t.error.code;return vh.indexOf(n)>=0&&(e[n]||(e[n]={error:t.error,weight:0}),e[n].weight+=t.weight),e}),{});if(Object.keys(d).forEach((e=>{const t=d[e];if(t.weight<this.quorum)return;r.forEach((e=>{e.staller&&e.staller.cancel(),e.cancelled=!0}));const n=t.error,i={};Th.forEach((e=>{null!=n[e]&&(i[e]=n[e])})),fh.throwError(n.reason||n.message,e,i)})),0===r.filter((e=>!e.done)).length)break}return r.forEach((e=>{e.staller&&e.staller.cancel(),e.cancelled=!0})),fh.throwError("failed to meet quorum",Zn.errors.SERVER_ERROR,{method:e,params:t,results:r.map((e=>wh(e))),provider:this})}))}}const Rh=new Zn(Kf),Ch="84842078b09946638c03157f83405213";class Oh extends jp{constructor(e,t){const n=new kh(e,t),r=n.connection;r.password&&Rh.throwError("INFURA WebSocket project secrets unsupported",Zn.errors.UNSUPPORTED_OPERATION,{operation:"InfuraProvider.getWebSocketProvider()"});super(r.url.replace(/^http/i,"ws").replace("/v3/","/ws/v3/"),e),Jr(this,"apiKey",n.projectId),Jr(this,"projectId",n.projectId),Jr(this,"projectSecret",n.projectSecret)}isCommunityResource(){return this.projectId===Ch}}class kh extends Wp{static getWebSocketProvider(e,t){return new Oh(e,t)}static getApiKey(e){const t={apiKey:Ch,projectId:Ch,projectSecret:null};return null==e||("string"==typeof e?t.projectId=e:null!=e.projectSecret?(Rh.assertArgument("string"==typeof e.projectId,"projectSecret requires a projectId","projectId",e.projectId),Rh.assertArgument("string"==typeof e.projectSecret,"invalid projectSecret","projectSecret","[REDACTED]"),t.projectId=e.projectId,t.projectSecret=e.projectSecret):e.projectId&&(t.projectId=e.projectId),t.apiKey=t.projectId),t}static getUrl(e,t){let n=null;switch(e?e.name:"unknown"){case"homestead":n="mainnet.infura.io";break;case"goerli":n="goerli.infura.io";break;case"sepolia":n="sepolia.infura.io";break;case"matic":n="polygon-mainnet.infura.io";break;case"maticmum":n="polygon-mumbai.infura.io";break;case"optimism":n="optimism-mainnet.infura.io";break;case"optimism-goerli":n="optimism-goerli.infura.io";break;case"arbitrum":n="arbitrum-mainnet.infura.io";break;case"arbitrum-goerli":n="arbitrum-goerli.infura.io";break;default:Rh.throwError("unsupported network",Zn.errors.INVALID_ARGUMENT,{argument:"network",value:e})}const r={allowGzip:!0,url:"https://"+n+"/v3/"+t.projectId,throttleCallback:(e,n)=>(t.projectId===Ch&&Zf(),Promise.resolve(!0))};return null!=t.projectSecret&&(r.user="",r.password=t.projectSecret),r}isCommunityResource(){return this.projectId===Ch}}class Sh extends Dp{send(e,t){const n={method:e,params:t,id:this._nextId++,jsonrpc:"2.0"};null==this._pendingBatch&&(this._pendingBatch=[]);const r={request:n,resolve:null,reject:null},i=new Promise(((e,t)=>{r.resolve=e,r.reject=t}));return this._pendingBatch.push(r),this._pendingBatchAggregator||(this._pendingBatchAggregator=setTimeout((()=>{const e=this._pendingBatch;this._pendingBatch=null,this._pendingBatchAggregator=null;const t=e.map((e=>e.request));return this.emit("debug",{action:"requestBatch",request:ri(t),provider:this}),Mf(this.connection,JSON.stringify(t)).then((n=>{this.emit("debug",{action:"response",request:t,response:n,provider:this}),e.forEach(((e,t)=>{const r=n[t];if(r.error){const t=new Error(r.error.message);t.code=r.error.code,t.data=r.error.data,e.reject(t)}else e.resolve(r.result)}))}),(n=>{this.emit("debug",{action:"response",error:n,request:t,provider:this}),e.forEach((e=>{e.reject(n)}))}))}),10)),i}}const Nh=new Zn(Kf);class xh extends Wp{static getApiKey(e){return e&&"string"!=typeof e&&Nh.throwArgumentError("invalid apiKey","apiKey",e),e||"ETHERS_JS_SHARED"}static getUrl(e,t){Nh.warn("NodeSmith will be discontinued on 2019-12-20; please migrate to another platform.");let n=null;switch(e.name){case"homestead":n="https://ethereum.api.nodesmith.io/v1/mainnet/jsonrpc";break;case"ropsten":n="https://ethereum.api.nodesmith.io/v1/ropsten/jsonrpc";break;case"rinkeby":n="https://ethereum.api.nodesmith.io/v1/rinkeby/jsonrpc";break;case"goerli":n="https://ethereum.api.nodesmith.io/v1/goerli/jsonrpc";break;case"kovan":n="https://ethereum.api.nodesmith.io/v1/kovan/jsonrpc";break;default:Nh.throwArgumentError("unsupported network","network",arguments[0])}return n+"?apiKey="+t}}const Ph=new Zn(Kf),Mh="62e1ad51b37b8e00394bda3b";class Bh extends Wp{static getApiKey(e){const t={applicationId:null,loadBalancer:!0,applicationSecretKey:null};return null==e?t.applicationId=Mh:"string"==typeof e?t.applicationId=e:null!=e.applicationSecretKey?(t.applicationId=e.applicationId,t.applicationSecretKey=e.applicationSecretKey):e.applicationId?t.applicationId=e.applicationId:Ph.throwArgumentError("unsupported PocketProvider apiKey","apiKey",e),t}static getUrl(e,t){let n=null;switch(e?e.name:"unknown"){case"goerli":n="eth-goerli.gateway.pokt.network";break;case"homestead":n="eth-mainnet.gateway.pokt.network";break;case"kovan":n="poa-kovan.gateway.pokt.network";break;case"matic":n="poly-mainnet.gateway.pokt.network";break;case"maticmum":n="polygon-mumbai-rpc.gateway.pokt.network";break;case"rinkeby":n="eth-rinkeby.gateway.pokt.network";break;case"ropsten":n="eth-ropsten.gateway.pokt.network";break;default:Ph.throwError("unsupported network",Zn.errors.INVALID_ARGUMENT,{argument:"network",value:e})}const r={headers:{},url:`https://${n}/v1/lb/${t.applicationId}`};return null!=t.applicationSecretKey&&(r.user="",r.password=t.applicationSecretKey),r}isCommunityResource(){return this.applicationId===Mh}}const Dh=new Zn(Kf);let Fh=1;function Lh(e,t){const n="Web3LegacyFetcher";return function(e,r){const i={method:e,params:r,id:Fh++,jsonrpc:"2.0"};return new Promise(((e,r)=>{this.emit("debug",{action:"request",fetcher:n,request:ri(i),provider:this}),t(i,((t,a)=>{if(t)return this.emit("debug",{action:"response",fetcher:n,error:t,request:i,provider:this}),r(t);if(this.emit("debug",{action:"response",fetcher:n,request:i,response:a,provider:this}),a.error){const e=new Error(a.error.message);return e.code=a.error.code,e.data=a.error.data,r(e)}e(a.result)}))}))}}class Uh extends Dp{constructor(e,t){null==e&&Dh.throwArgumentError("missing provider","provider",e);let n=null,r=null,i=null;"function"==typeof e?(n="unknown:",r=e):(n=e.host||e.path||"",!n&&e.isMetaMask&&(n="metamask"),i=e,e.request?(""===n&&(n="eip-1193:"),r=function(e){return function(t,n){null==n&&(n=[]);const r={method:t,params:n};return this.emit("debug",{action:"request",fetcher:"Eip1193Fetcher",request:ri(r),provider:this}),e.request(r).then((e=>(this.emit("debug",{action:"response",fetcher:"Eip1193Fetcher",request:r,response:e,provider:this}),e)),(e=>{throw this.emit("debug",{action:"response",fetcher:"Eip1193Fetcher",request:r,error:e,provider:this}),e}))}}(e)):e.sendAsync?r=Lh(0,e.sendAsync.bind(e)):e.send?r=Lh(0,e.send.bind(e)):Dh.throwArgumentError("unsupported provider","provider",e),n||(n="unknown:")),super(n,t),Jr(this,"jsonRpcFetchFunc",r),Jr(this,"provider",i)}send(e,t){return this.jsonRpcFetchFunc(e,t)}}const qh=new Zn(Kf);function jh(e,t){if(null==e&&(e="homestead"),"string"==typeof e){const t=e.match(/^(ws|http)s?:/i);if(t)switch(t[1].toLowerCase()){case"http":case"https":return new Dp(e);case"ws":case"wss":return new jp(e);default:qh.throwArgumentError("unsupported URL scheme","network",e)}}const n=Rf(e);return n&&n._defaultProvider||qh.throwError("unsupported getDefaultProvider network",Zn.errors.NETWORK_ERROR,{operation:"getDefaultProvider",network:e}),n._defaultProvider({FallbackProvider:Ih,AlchemyProvider:Jp,AnkrProvider:Zp,CloudflareProvider:nh,EtherscanProvider:lh,InfuraProvider:kh,JsonRpcProvider:Dp,NodesmithProvider:xh,PocketProvider:Bh,Web3Provider:Uh,IpcProvider:null},t)}var Gh=Object.freeze({__proto__:null,AlchemyProvider:Jp,AlchemyWebSocketProvider:Xp,AnkrProvider:Zp,BaseProvider:Ap,CloudflareProvider:nh,EtherscanProvider:lh,FallbackProvider:Ih,Formatter:Jf,InfuraProvider:kh,InfuraWebSocketProvider:Oh,IpcProvider:null,JsonRpcBatchProvider:Sh,JsonRpcProvider:Dp,JsonRpcSigner:Pp,NodesmithProvider:xh,PocketProvider:Bh,Provider:gs,Resolver:Tp,StaticJsonRpcProvider:zp,UrlJsonRpcProvider:Wp,Web3Provider:Uh,WebSocketProvider:jp,getDefaultProvider:jh,getNetwork:Rf,isCommunityResourcable:Yf,isCommunityResource:Qf,showThrottleMessage:Zf});const Hh=new RegExp("^bytes([0-9]+)$"),zh=new RegExp("^(u?int)([0-9]*)$"),Wh=new RegExp("^(.*)\\[([0-9]*)\\]$"),Vh="0000000000000000000000000000000000000000000000000000000000000000",Kh=new Zn("solidity/5.7.0");function Xh(e,t,n){switch(e){case"address":return n?lr(t,32):sr(t);case"string":return Pa(t);case"bytes":return sr(t);case"bool":return t=t?"0x01":"0x00",n?lr(t,32):sr(t)}let r=e.match(zh);if(r){let i=parseInt(r[2]||"256");return(r[2]&&String(i)!==r[2]||i%8!=0||0===i||i>256)&&Kh.throwArgumentError("invalid number type","type",e),n&&(i=256),lr(t=kr.from(t).toTwos(i),i/8)}if(r=e.match(Hh),r){const i=parseInt(r[1]);return(String(i)!==r[1]||0===i||i>32)&&Kh.throwArgumentError("invalid bytes type","type",e),sr(t).byteLength!==i&&Kh.throwArgumentError(`invalid value for ${e}`,"value",t),n?sr((t+Vh).substring(0,66)):t}if(r=e.match(Wh),r&&Array.isArray(t)){const n=r[1];parseInt(r[2]||String(t.length))!=t.length&&Kh.throwArgumentError(`invalid array length for ${e}`,"value",t);const i=[];return t.forEach((function(e){i.push(Xh(n,e,!0))})),ur(i)}return Kh.throwArgumentError("invalid type","type",e)}function Jh(e,t){e.length!=t.length&&Kh.throwArgumentError("wrong number of values; expected ${ types.length }","values",t);const n=[];return e.forEach((function(e,r){n.push(Xh(e,t[r]))})),pr(ur(n))}function Yh(e,t){return Di(Jh(e,t))}function Qh(e,t){return nd(Jh(e,t))}var $h=Object.freeze({__proto__:null,keccak256:Yh,pack:Jh,sha256:Qh});const Zh=new Zn("units/5.7.0"),em=["wei","kwei","mwei","gwei","szabo","finney","ether"];function tm(e){const t=String(e).split(".");(t.length>2||!t[0].match(/^-?[0-9]*$/)||t[1]&&!t[1].match(/^[0-9]*$/)||"."===e||"-."===e)&&Zh.throwArgumentError("invalid value","value",e);let n=t[0],r="";for("-"===n.substring(0,1)&&(r="-",n=n.substring(1));"0"===n.substring(0,1);)n=n.substring(1);""===n&&(n="0");let i="";for(2===t.length&&(i="."+(t[1]||"0"));i.length>2&&"0"===i[i.length-1];)i=i.substring(0,i.length-1);const a=[];for(;n.length;){if(n.length<=3){a.unshift(n);break}{const e=n.length-3;a.unshift(n.substring(e)),n=n.substring(0,e)}}return r+a.join(",")+i}function nm(e,t){if("string"==typeof t){const e=em.indexOf(t);-1!==e&&(t=3*e)}return jr(e,null!=t?t:18)}function rm(e,t){if("string"!=typeof e&&Zh.throwArgumentError("value must be a string","value",e),"string"==typeof t){const e=em.indexOf(t);-1!==e&&(t=3*e)}return Gr(e,null!=t?t:18)}function im(e){return nm(e,18)}function am(e){return rm(e,18)}var om=Object.freeze({__proto__:null,commify:tm,formatEther:im,formatUnits:nm,parseEther:am,parseUnits:rm}),sm=Object.freeze({__proto__:null,AbiCoder:io,ConstructorFragment:Ei,ErrorFragment:Ii,EventFragment:bi,FormatTypes:pi,Fragment:gi,FunctionFragment:Ai,HDNode:Ad,Indexed:cs,Interface:fs,LogDescription:os,Logger:Zn,ParamType:mi,RLP:Vi,SigningKey:ll,get SupportedAlgorithm(){return $l},TransactionDescription:ss,get TransactionTypes(){return ml},get UnicodeNormalizationForm(){return Oa},Utf8ErrorFuncs:Na,get Utf8ErrorReason(){return ka},_TypedDataEncoder:rs,_fetchData:Pf,_toEscapedUtf8String:Ba,accessListify:_l,arrayify:sr,base58:Ql,base64:lo,checkProperties:$r,checkResultErrors:Ni,commify:tm,computeAddress:Tl,computeHmac:id,computePublicKey:fl,concat:ur,deepCopy:ri,defaultAbiCoder:ao,defaultPath:Ed,defineReadOnly:Jr,dnsEncode:Uo,entropyToMnemonic:Rd,fetchJson:Mf,formatBytes32String:Ua,formatEther:im,formatUnits:nm,getAccountPath:Od,getAddress:$i,getContractAddress:ta,getCreate2Address:na,getIcapAddress:ea,getJsonWalletAddress:Jd,getStatic:Yr,hashMessage:jo,hexConcat:yr,hexDataLength:hr,hexDataSlice:mr,hexStripZeros:br,hexValue:gr,hexZeroPad:vr,hexlify:pr,id:oo,isAddress:Zi,isBytes:or,isBytesLike:ir,isHexString:dr,isValidMnemonic:Cd,isValidName:Fo,joinSignature:wr,keccak256:Di,mnemonicToEntropy:Id,mnemonicToSeed:_d,namehash:Lo,nameprep:Qa,parseBytes32String:qa,parseEther:am,parseTransaction:Sl,parseUnits:rm,poll:Bf,randomBytes:Pd,recoverAddress:wl,recoverPublicKey:dl,resolveProperties:Qr,ripemd160:td,serializeTransaction:Ol,sha256:nd,sha512:rd,shallowCopy:Zr,shuffled:Md,solidityKeccak256:Yh,solidityPack:Jh,soliditySha256:Qh,splitSignature:Tr,stripZeros:cr,toUtf8Bytes:Pa,toUtf8CodePoints:La,toUtf8String:Fa,verifyMessage:yf,verifyTypedData:gf,zeroPad:lr});const um="ethers/5.7.2",cm=new Zn(um);var lm=Object.freeze({__proto__:null,BaseContract:Vl,BigNumber:kr,Contract:Kl,ContractFactory:Xl,FixedNumber:zr,Signer:Es,VoidSigner:As,Wallet:mf,Wordlist:ud,constants:Ia,get errors(){return Qn},getDefaultProvider:jh,logger:cm,providers:Gh,utils:sm,version:um,wordlists:fd});try{const e=window;null==e._ethers&&(e._ethers=lm)}catch(e){}var dm,fm,pm,hm,mm,ym,gm,bm=Object.freeze({__proto__:null,BaseContract:Vl,BigNumber:kr,Contract:Kl,ContractFactory:Xl,FixedNumber:zr,Signer:Es,VoidSigner:As,Wallet:mf,Wordlist:ud,constants:Ia,get errors(){return Qn},ethers:lm,getDefaultProvider:jh,logger:cm,providers:Gh,utils:sm,version:um,wordlists:fd});e.ChainId=void 0,function(e){e[e.IMTBL_ZKEVM_MAINNET=13371]="IMTBL_ZKEVM_MAINNET",e[e.IMTBL_ZKEVM_TESTNET=13473]="IMTBL_ZKEVM_TESTNET",e[e.IMTBL_ZKEVM_DEVNET=13433]="IMTBL_ZKEVM_DEVNET",e[e.ETHEREUM=1]="ETHEREUM",e[e.SEPOLIA=11155111]="SEPOLIA"}(e.ChainId||(e.ChainId={})),e.ChainName=void 0,(dm=e.ChainName||(e.ChainName={})).ETHEREUM="Ethereum",dm.SEPOLIA="Sepolia",dm.IMTBL_ZKEVM_TESTNET="Immutable zkEVM Test",dm.IMTBL_ZKEVM_DEVNET="Immutable zkEVM Dev",dm.IMTBL_ZKEVM_MAINNET="Immutable zkEVM",e.ChainSlug=void 0,(fm=e.ChainSlug||(e.ChainSlug={})).ETHEREUM="ethereum",fm.SEPOLIA="sepolia",fm.IMTBL_ZKEVM_MAINNET="imtbl-zkevm-mainnet",fm.IMTBL_ZKEVM_TESTNET="imtbl-zkevm-testnet",fm.IMTBL_ZKEVM_DEVNET="imtbl-zkevm-devnet",function(e){e.TRANSAK="201811419111"}(pm||(pm={})),e.GasEstimateType=void 0,(hm=e.GasEstimateType||(e.GasEstimateType={})).BRIDGE_TO_L2="BRIDGE_TO_L2",hm.SWAP="SWAP",e.NetworkFilterTypes=void 0,(e.NetworkFilterTypes||(e.NetworkFilterTypes={})).ALL="all",e.TokenFilterTypes=void 0,(mm=e.TokenFilterTypes||(e.TokenFilterTypes={})).ALL="all",mm.SWAP="swap",mm.BRIDGE="bridge",mm.ONRAMP="onramp",function(e){e.CHECK_CONNECTION="eth_accounts",e.CONNECT="eth_requestAccounts",e.ADD_NETWORK="wallet_addEthereumChain",e.SWITCH_NETWORK="wallet_switchEthereumChain",e.GET_CHAINID="eth_chainId",e.REQUEST_PERMISSIONS="wallet_requestPermissions"}(ym||(ym={})),e.WalletFilterTypes=void 0,(e.WalletFilterTypes||(e.WalletFilterTypes={})).ALL="all",e.WalletProviderName=void 0,(gm=e.WalletProviderName||(e.WalletProviderName={})).PASSPORT="passport",gm.METAMASK="metamask";const vm={allowMistmatchedChainId:!1,allowUnsupportedProvider:!1};var Tm,wm,Em,Am,_m,Im,Rm;e.CheckoutStatus=void 0,(Tm=e.CheckoutStatus||(e.CheckoutStatus={})).SUCCESS="SUCCESS",Tm.FAILED="FAILED",Tm.INSUFFICIENT_FUNDS="INSUFFICIENT_FUNDS",Tm.FULFILLMENTS_UNSETTLED="FULFILLMENTS_UNSETTLED",e.ItemType=void 0,function(e){e.NATIVE="NATIVE",e.ERC20="ERC20",e.ERC721="ERC721"}(e.ItemType||(e.ItemType={})),e.TransactionOrGasType=void 0,(wm=e.TransactionOrGasType||(e.TransactionOrGasType={})).TRANSACTION="TRANSACTION",wm.GAS="GAS",e.GasTokenType=void 0,(Em=e.GasTokenType||(e.GasTokenType={})).NATIVE="NATIVE",Em.ERC20="ERC20",e.RoutingOutcomeType=void 0,(Am=e.RoutingOutcomeType||(e.RoutingOutcomeType={})).ROUTES_FOUND="ROUTES_FOUND",Am.NO_ROUTES_FOUND="NO_ROUTES_FOUND",Am.NO_ROUTE_OPTIONS="NO_ROUTE_OPTIONS",e.FeeType=void 0,function(e){e.GAS="GAS",e.BRIDGE_FEE="BRIDGE_FEE",e.SWAP_FEE="SWAP_FEE",e.IMMUTABLE_FEE="IMMUTABLE_FEE"}(e.FeeType||(e.FeeType={})),e.FundingStepType=void 0,(_m=e.FundingStepType||(e.FundingStepType={})).BRIDGE="BRIDGE",_m.SWAP="SWAP",_m.ONRAMP="ONRAMP",e.ExchangeType=void 0,(e.ExchangeType||(e.ExchangeType={})).ONRAMP="onramp",e.CheckoutErrorType=void 0,(Im=e.CheckoutErrorType||(e.CheckoutErrorType={})).MISSING_PARAMS="MISSING_PARAMS",Im.WEB3_PROVIDER_ERROR="WEB3_PROVIDER_ERROR",Im.PROVIDER_ERROR="PROVIDER_ERROR",Im.DEFAULT_PROVIDER_ERROR="DEFAULT_PROVIDER_ERROR",Im.CONNECT_PROVIDER_ERROR="CONNECT_PROVIDER_ERROR",Im.GET_BALANCE_ERROR="GET_BALANCE_ERROR",Im.GET_INDEXER_BALANCE_ERROR="GET_INDEXER_BALANCE_ERROR",Im.GET_ERC20_INFO_ERROR="GET_ERC20_INFO_ERROR",Im.GET_ERC20_BALANCE_ERROR="GET_ERC20_BALANCE_ERROR",Im.GET_ERC721_BALANCE_ERROR="GET_ERC721_BALANCE_ERROR",Im.GET_NETWORK_INFO_ERROR="GET_NETWORK_INFO_ERROR",Im.METAMASK_PROVIDER_ERROR="METAMASK_PROVIDER_ERROR",Im.CHAIN_NOT_SUPPORTED_ERROR="CHAIN_NOT_SUPPORTED_ERROR",Im.PROVIDER_REQUEST_MISSING_ERROR="PROVIDER_REQUEST_MISSING_ERROR",Im.PROVIDER_REQUEST_FAILED_ERROR="PROVIDER_REQUEST_FAILED_ERROR",Im.USER_REJECTED_REQUEST_ERROR="USER_REJECTED_REQUEST_ERROR",Im.TRANSACTION_FAILED="TRANSACTION_FAILED",Im.INSUFFICIENT_FUNDS="INSUFFICIENT_FUNDS",Im.UNPREDICTABLE_GAS_LIMIT="UNPREDICTABLE_GAS_LIMIT",Im.INVALID_GAS_ESTIMATE_TYPE="INVALID_GAS_ESTIMATE_TYPE",Im.UNSUPPORTED_TOKEN_TYPE_ERROR="UNSUPPORTED_TOKEN_TYPE_ERROR",Im.UNSUPPORTED_BALANCE_REQUIREMENT_ERROR="UNSUPPORTED_BALANCE_REQUIREMENT_ERROR",Im.GET_ORDER_LISTING_ERROR="GET_ORDER_LISTING_ERROR",Im.CANCEL_ORDER_LISTING_ERROR="CANCEL_ORDER_LISTING_ERROR",Im.PREPARE_ORDER_LISTING_ERROR="PREPARE_ORDER_LISTING_ERROR",Im.CREATE_ORDER_LISTING_ERROR="CREATE_ORDER_LISTING_ERROR",Im.FULFILL_ORDER_LISTING_ERROR="FULFILL_ORDER_LISTING_ERROR",Im.SWITCH_NETWORK_UNSUPPORTED="SWITCH_NETWORK_UNSUPPORTED",Im.GET_ERC20_ALLOWANCE_ERROR="GET_ERC20_ALLOWANCE_ERROR",Im.GET_ERC721_ALLOWANCE_ERROR="GET_ERC721_ALLOWANCE_ERROR",Im.EXECUTE_APPROVAL_TRANSACTION_ERROR="EXECUTE_APPROVAL_TRANSACTION_ERROR",Im.EXECUTE_FULFILLMENT_TRANSACTION_ERROR="EXECUTE_FULFILLMENT_TRANSACTION_ERROR",Im.SIGN_MESSAGE_ERROR="SIGN_MESSAGE_ERROR",Im.BRIDGE_GAS_ESTIMATE_ERROR="BRIDGE_GAS_ESTIMATE_ERROR",Im.ORDER_FEE_ERROR="ORDER_FEE_ERROR",Im.ITEM_REQUIREMENTS_ERROR="ITEM_REQUIREMENTS_ERROR",Im.API_ERROR="API_ERROR",Im.ORDER_EXPIRED_ERROR="ORDER_EXPIRED_ERROR",Im.WIDGETS_SCRIPT_LOAD_ERROR="WIDGETS_SCRIPT_LOAD_ERROR";class Cm extends Error{message;type;data;constructor(e,t,n){super(e),this.message=e,this.type=t,this.data=n}}!function(e){e.REJECTED_SWITCH_AFTER_ADDING_NETWORK="REJECTED_SWITCH_AFTER_ADDING_NETWORK"}(Rm||(Rm={}));const Om=async(e,t)=>{try{return await e()}catch(e){const n=`${e.message}`||"UnknownError",r=t.message?`[${t.type}]:${t.message}. Cause:${n}`:`[${t.type}] Cause:${n}`;if(e instanceof Cm)throw new Cm(r,t.type,{...t.data,innerErrorType:e.type,...e.data});throw new Cm(r,t.type,{...t.data})}};async function km(t){if(!t.provider?.request)throw new Cm("Parsed provider is not a valid Web3Provider",e.CheckoutErrorType.WEB3_PROVIDER_ERROR);const n=await t.provider.request({method:ym.GET_CHAINID,params:[]});return parseInt(n,16)}async function Sm(t,{type:n=e.NetworkFilterTypes.ALL,exclude:r}){const{networkMap:i}=t,a=await t.remote.getConfig("allowedNetworks");a||console.warn("No allowed networks configured");const o=(a||[]).filter((t=>{const i=n===e.NetworkFilterTypes.ALL,a=!(r||[]).map((e=>e.chainId)).includes(t.chainId);return i&&a})),s=[];return o.forEach((e=>{const t=i.get(e.chainId);t&&s.push({name:t.chainName,chainId:parseInt(t.chainIdHex,16),nativeCurrency:t.nativeCurrency,isSupported:!0})})),{networks:s}}async function Nm(t,n){const{networkMap:r}=t;return Om((async()=>{try{const e=await n.getNetwork();if(Array.from(r.keys()).includes(e.chainId)){const t=r.get(e.chainId);return{name:t.chainName,chainId:parseInt(t.chainIdHex,16),nativeCurrency:t.nativeCurrency,isSupported:!0}}return{chainId:e.chainId,name:e.name,isSupported:!1}}catch(e){const t=await km(n);return{chainId:t,isSupported:Array.from(r.keys()).includes(t)}}}),{type:e.CheckoutErrorType.GET_NETWORK_INFO_ERROR})}async function xm(t,n,r){const{networkMap:i}=t;if(!(await Sm(t,{type:e.NetworkFilterTypes.ALL})).networks.some((e=>e.chainId===r)))throw new Cm(`Chain:${r} is not a supported chain`,e.CheckoutErrorType.CHAIN_NOT_SUPPORTED_ERROR);if(n.provider?.isPassport)throw new Cm("Switching networks with Passport provider is not supported",e.CheckoutErrorType.SWITCH_NETWORK_UNSUPPORTED);try{await async function(e,t,n){if(t.provider?.request)return await t.provider.request({method:ym.SWITCH_NETWORK,params:[{chainId:e.get(n)?.chainIdHex}]})}(i,n,r)}catch(t){if(4902!==t.code)throw new Cm("User cancelled switch network request",e.CheckoutErrorType.USER_REJECTED_REQUEST_ERROR);try{await async function(e,t,n){if(t.provider?.request){const r=e.get(n),i={chainId:r?.chainIdHex,chainName:r?.chainName,rpcUrls:r?.rpcUrls,nativeCurrency:r?.nativeCurrency,blockExplorerUrls:r?.blockExplorerUrls};return await t.provider.request({method:ym.ADD_NETWORK,params:[i]})}}(i,n,r)}catch(t){throw new Cm("User cancelled add network request",e.CheckoutErrorType.USER_REJECTED_REQUEST_ERROR,{error:t})}}const a=new Uh(n.provider);if((await a.getNetwork()).chainId!==r)throw new Cm("User cancelled switch network request",e.CheckoutErrorType.USER_REJECTED_REQUEST_ERROR);return{network:await Nm(t,a),provider:a}}const Pm="development",Mm=18,Bm="native",Dm={name:"IMX",symbol:"IMX",decimals:Mm,address:Bm},Fm={[Pm]:"https://api.dev.immutable.com",[Bt.SANDBOX]:"https://api.sandbox.immutable.com",[Bt.PRODUCTION]:"https://api.immutable.com"},Lm={[Pm]:"https://checkout-api.dev.immutable.com",[Bt.SANDBOX]:"https://checkout-api.sandbox.immutable.com",[Bt.PRODUCTION]:"https://checkout-api.immutable.com"},Um={[Bt.SANDBOX]:"https://global-stg.transak.com",[Bt.PRODUCTION]:"https://global.transak.com/"},qm=new Map([[e.ChainId.ETHEREUM,{chainIdHex:`0x${e.ChainId.ETHEREUM.toString(16)}`,chainName:e.ChainName.ETHEREUM,rpcUrls:["https://checkout-api.immutable.com/v1/rpc/eth-mainnet"],nativeCurrency:{name:e.ChainName.ETHEREUM,symbol:"ETH",decimals:18},blockExplorerUrls:["https://etherscan.io/"]}],[e.ChainId.IMTBL_ZKEVM_MAINNET,{chainIdHex:`0x${e.ChainId.IMTBL_ZKEVM_MAINNET.toString(16)}`,chainName:e.ChainName.IMTBL_ZKEVM_MAINNET,rpcUrls:["https://rpc.immutable.com"],nativeCurrency:Dm}]]),jm=new Map([[e.ChainId.SEPOLIA,{chainIdHex:`0x${e.ChainId.SEPOLIA.toString(16)}`,chainName:e.ChainName.SEPOLIA,rpcUrls:["https://checkout-api.sandbox.immutable.com/v1/rpc/eth-sepolia"],nativeCurrency:{name:"Sep Eth",symbol:"ETH",decimals:18},blockExplorerUrls:["https://sepolia.etherscan.io/"]}],[e.ChainId.IMTBL_ZKEVM_TESTNET,{chainIdHex:`0x${e.ChainId.IMTBL_ZKEVM_TESTNET.toString(16)}`,chainName:e.ChainName.IMTBL_ZKEVM_TESTNET,rpcUrls:["https://rpc.testnet.immutable.com"],nativeCurrency:Dm}]]),Gm=new Map([[e.ChainId.SEPOLIA,{chainIdHex:`0x${e.ChainId.SEPOLIA.toString(16)}`,chainName:e.ChainName.SEPOLIA,rpcUrls:["https://checkout-api.dev.immutable.com/v1/rpc/eth-sepolia"],nativeCurrency:{name:"Sep Eth",symbol:"ETH",decimals:18},blockExplorerUrls:["https://sepolia.etherscan.io/"]}],[e.ChainId.IMTBL_ZKEVM_DEVNET,{chainIdHex:`0x${e.ChainId.IMTBL_ZKEVM_DEVNET.toString(16)}`,chainName:e.ChainName.IMTBL_ZKEVM_DEVNET,rpcUrls:["https://rpc.dev.immutable.com"],nativeCurrency:Dm}]]),Hm={[e.ChainId.IMTBL_ZKEVM_TESTNET]:{url:"https://explorer.testnet.immutable.com",nativeToken:jm.get(e.ChainId.IMTBL_ZKEVM_TESTNET).nativeCurrency},[e.ChainId.IMTBL_ZKEVM_MAINNET]:{url:"https://explorer.immutable.com",nativeToken:qm.get(e.ChainId.IMTBL_ZKEVM_MAINNET).nativeCurrency},[e.ChainId.SEPOLIA]:{url:"https://eth-sepolia.blockscout.com",nativeToken:jm.get(e.ChainId.SEPOLIA).nativeCurrency},[e.ChainId.ETHEREUM]:{url:"https://eth.blockscout.com/",nativeToken:qm.get(e.ChainId.ETHEREUM).nativeCurrency}},zm=[{constant:!0,inputs:[],name:"name",outputs:[{name:"",type:"string"}],payable:!1,type:"function"},{constant:!0,inputs:[],name:"decimals",outputs:[{name:"",type:"uint8"}],payable:!1,type:"function"},{constant:!0,inputs:[{name:"_owner",type:"address"}],name:"balanceOf",outputs:[{name:"balance",type:"uint256"}],payable:!1,type:"function"},{constant:!0,inputs:[],name:"symbol",outputs:[{name:"",type:"string"}],payable:!1,type:"function"},{constant:!0,inputs:[{name:"_owner",type:"address"},{name:"_spender",type:"address"}],name:"allowance",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_spender",type:"address"},{name:"_value",type:"uint256"}],name:"approve",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function"}],Wm=[{constant:!1,inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"approve",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"operator",type:"address"}],name:"isApprovedForAll",outputs:[{internalType:"bool",name:"",type:"bool"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"getApproved",outputs:[{internalType:"address",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"ownerOf",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"}],Vm={maxFeePerGas:kr.from(15e9),maxPriorityFeePerGas:kr.from(1e10)},Km=()=>"0.45.3-alpha";class Xm{httpClient;isDevelopment;isProduction;configCache;tokensCache;version="v1";constructor(e,t){this.isDevelopment=t.isDevelopment,this.isProduction=t.isProduction,this.httpClient=e}getEndpoint=()=>this.isDevelopment?Lm[Pm]:this.isProduction?Lm[Bt.PRODUCTION]:Lm[Bt.SANDBOX];parseResponse(t){let n=t.data;if(t.data&&"object"!=typeof t.data)try{n=JSON.parse(t.data)}catch(t){throw new Cm("Invalid configuration",e.CheckoutErrorType.API_ERROR,{error:t})}return n}async loadConfig(){if(this.configCache)return this.configCache;let t;try{t=await this.httpClient.get(`${this.getEndpoint()}/${this.version}/config`)}catch(t){throw new Cm(`Error: ${t.message}`,e.CheckoutErrorType.API_ERROR,{error:t})}return this.configCache=this.parseResponse(t),this.configCache}async loadConfigTokens(){if(this.tokensCache)return this.tokensCache;let t;try{t=await this.httpClient.get(`${this.getEndpoint()}/${this.version}/config/tokens`)}catch(t){throw new Cm(`Error: ${t.message}`,e.CheckoutErrorType.API_ERROR,{error:t})}return this.tokensCache=this.parseResponse(t),this.tokensCache}async getConfig(e){const t=await this.loadConfig();if(t)return e?t[e]:t}async getTokensConfig(e){const t=await this.loadConfigTokens();return t&&t[e]?t[e]??[]:{}}getHttpClient=()=>this.httpClient}class Jm extends Error{message;constructor(e){super(e),this.message=e}}const Ym=t=>t.isProduction?e.ChainId.ETHEREUM:e.ChainId.SEPOLIA,Qm=t=>t.isDevelopment?e.ChainId.IMTBL_ZKEVM_DEVNET:t.isProduction?e.ChainId.IMTBL_ZKEVM_MAINNET:e.ChainId.IMTBL_ZKEVM_TESTNET;class $m{isDevelopment=!1;isProduction;isOnRampEnabled;isSwapEnabled;isBridgeEnabled;remote;environment;networkMap;constructor(e,t){if(!Object.values(Bt).includes(e.baseConfig.environment))throw new Jm("Invalid checkout configuration of environment");var n;this.environment=e.baseConfig.environment,this.isProduction=!this.isDevelopment&&this.environment===Bt.PRODUCTION,this.isOnRampEnabled=e.onRamp?.enable??true,this.isSwapEnabled=e.swap?.enable??true,this.isBridgeEnabled=e.bridge?.enable??true,this.networkMap=(n=this.isProduction,this.isDevelopment?Gm:n?qm:jm),this.remote=new Xm(t,{isDevelopment:this.isDevelopment,isProduction:this.isProduction})}}const Zm=(e="",t="")=>e.toLowerCase()===t.toLowerCase(),ey=async(t,{type:n=e.TokenFilterTypes.ALL,chainId:r,exclude:i})=>{let a,o,s=[];const u=r??Ym(t);switch(n){case e.TokenFilterTypes.SWAP:s=(await t.remote.getConfig("dex")).tokens||[];break;case e.TokenFilterTypes.ONRAMP:a=await t.remote.getConfig("onramp"),a||(s=[]),s=a[pm.TRANSAK]?.tokens||[];break;case e.TokenFilterTypes.BRIDGE:o=await t.remote.getConfig("bridge"),o||(s=[]),s=o[u]?.tokens||[];break;case e.TokenFilterTypes.ALL:default:s=(await t.remote.getTokensConfig(u)).allowed}return i&&0!==i?.length?{tokens:s.filter((e=>!i.map((e=>e.address)).includes(e.address||"")))}:{tokens:s}},ty=e=>!e||Zm(e,Bm);async function ny(t,n){return await Om((async()=>{const e=new Kl(n,JSON.stringify(zm),t),[r,i,a]=await Promise.all([e.name(),e.symbol(),e.decimals()]);return{name:r,symbol:i,decimals:a,address:n}}),{type:e.CheckoutErrorType.GET_ERC20_INFO_ERROR})}class ry{url;nativeToken;ttl;chainId;cacheMap;httpClient;setCache(e,t){this.cacheMap[e]={data:t,ttl:(new Date).getTime()+1e3*this.ttl}}getCache(e){const t=this.cacheMap[e];return!t||t.ttl<=(new Date).getTime()?null:t.data}constructor(e,t,n){this.httpClient=e,this.chainId=t,this.url=Hm[this.chainId].url;const r=Hm[this.chainId].nativeToken;this.nativeToken={address:r.address??"",decimals:r.decimals.toString(),name:r.name,symbol:r.symbol},this.cacheMap={},this.ttl=void 0!==n?n:60}static isChainSupported=e=>Boolean(Hm[e]);static isBlockscoutError=e=>"code"in e;async getTokensByWalletAddress(e){try{let t=`${this.url}/api/v2/addresses/${e.walletAddress}/tokens?type=${e.tokenType}`;e.nextPage&&(t+=`&${new URLSearchParams(e.nextPage)}`);const n=this.getCache(t);if(n)return Promise.resolve(n);const r=await this.httpClient.get(t),i={items:r.data?.items?.filter((e=>e.token.address&&e.token.address!==this.nativeToken.address)),next_page_params:r.data?.next_page_params};return this.setCache(t,i),Promise.resolve(i)}catch(e){let t=dt.InternalServerError,n="InternalServerError";return $e.isAxiosError(e)&&(t=e.response?.status||t,n=e.message),Promise.reject({code:t,message:n})}}async getNativeTokenByWalletAddress(e){try{const t=`${this.url}/api/v2/addresses/${e.walletAddress}`,n=this.getCache(t);if(n)return Promise.resolve(n);const r=await this.httpClient.get(t),i={token:this.nativeToken,value:r.data.coin_balance};return this.setCache(t,i),Promise.resolve(i)}catch(e){let t=dt.InternalServerError,n="InternalServerError";return $e.isAxiosError(e)&&(t=e.response?.status||t,n=e.message),Promise.reject({code:t,message:n})}}}var iy;!function(e){e.ERC20="ERC-20"}(iy||(iy={}));const ay=(e,t,n)=>{e.isProduction||console.info(t,n)},oy=async(e,t,n)=>{const r=performance.now(),i=await n,a=performance.now();return ay(e,t,(a-r)/1e3),i},sy=async(t,n,r)=>await Om((async()=>{const i=await Nm(t,n);if(!i.isSupported)throw new Cm(`Chain:${i.chainId} is not a supported chain`,e.CheckoutErrorType.CHAIN_NOT_SUPPORTED_ERROR,{chainName:i.name});const a=await n.getBalance(r);return{balance:a,formattedBalance:nm(a,i.nativeCurrency.decimals),token:i.nativeCurrency}}),{type:e.CheckoutErrorType.GET_BALANCE_ERROR});async function uy(t,n,r){return await Om((async()=>{const e=new Kl(r,JSON.stringify(zm),t);return Promise.all([ny(t,r),e.balanceOf(n)]).then((([e,t])=>({balance:t,formattedBalance:nm(t,e.decimals),token:{name:e.name,symbol:e.symbol,decimals:e.decimals,address:r}})))}),{type:e.CheckoutErrorType.GET_ERC20_BALANCE_ERROR})}const cy=new Map,ly=()=>cy.clear(),dy=async(t,n,r,i,a=!1)=>{if(!r&&!n)throw new Cm("both walletAddress and provider are missing. At least one must be provided.",e.CheckoutErrorType.MISSING_PARAMS);if(!t.networkMap.get(i))throw new Cm(`chain ID ${i} not supported by the environment`,e.CheckoutErrorType.CHAIN_NOT_SUPPORTED_ERROR);const{tokens:o}=await ey(t,{type:e.TokenFilterTypes.ALL,chainId:i});let s=!1;try{s=(await t.remote.getTokensConfig(i)).blockscout||s}catch(e){console.error(e)}a&&ly();let u=r;if(s&&ry.isChainSupported(i)){const r=Ym(t)===i;return u||(u=await(n?.getSigner().getAddress())),await oy(t,`Time to fetch balances using blockscout for ${i}`,(async(t,n,r,i)=>{const a=void 0!==i,o=Object.assign({},...(i??[]).map((e=>({[e.address||Bm]:e}))));let s=cy.get(r);if(!s){const e=t.remote.getHttpClient();s=new ry(e,r),cy.set(r,s)}const u=[],c=iy.ERC20;await Promise.all([(async t=>{let r;try{do{r=await t.getTokensByWalletAddress({walletAddress:n,tokenType:c,nextPage:r?.next_page_params}),u.push(...r.items)}while(r.next_page_params)}catch(t){if(t?.code!==dt.NotFound)throw new Cm(t.message||"InternalServerError | getTokensByWalletAddress",e.CheckoutErrorType.GET_INDEXER_BALANCE_ERROR,{error:t})}})(s),(async t=>{try{const e=await t.getNativeTokenByWalletAddress({walletAddress:n});e.token.address||=Bm,u.push(e)}catch(t){if(t?.code!==dt.NotFound)throw new Cm(t.message||"InternalServerError | getNativeTokenByWalletAddress",e.CheckoutErrorType.GET_INDEXER_BALANCE_ERROR,{error:t})}})(s)]);const l=[];return u.forEach((e=>{if(a&&!o[e.token.address])return;const t=e.token||{},n=kr.from(e.value);let r=parseInt(t.decimals,10);Number.isNaN(r)&&(r=Mm);const i={...t,decimals:r},s=nm(e.value,i.decimals);l.push({balance:n,formattedBalance:s,token:i})})),{balances:l}})(t,u,i,r?o:void 0))}if(!n)throw new Cm("indexer is disabled for this chain, you must provide a provider.",e.CheckoutErrorType.MISSING_PARAMS);return u||=await n.getSigner().getAddress(),await oy(t,`Time to fetch balances using RPC for ${i}`,(async(e,t,n,r)=>{const i=[];return r.forEach((r=>{!r.address||Zm(r.address,Bm)?i.push(sy(e,t,n)):i.push(uy(t,n,r.address))})),{balances:(await Promise.allSettled(i)).filter((e=>"fulfilled"===e.status)).map((e=>{const t=e,{token:n}=t.value;return n.address&&!Zm(n.address,Bm)||(t.value.token.address=Bm),t.value}))}})(t,n,u,o))};var fy=function({mustBeMetaMask:e=!1,silent:t=!1,timeout:n=3e3}={}){!function(){if("boolean"!=typeof e)throw new Error("@metamask/detect-provider: Expected option 'mustBeMetaMask' to be a boolean.");if("boolean"!=typeof t)throw new Error("@metamask/detect-provider: Expected option 'silent' to be a boolean.");if("number"!=typeof n)throw new Error("@metamask/detect-provider: Expected option 'timeout' to be a number.")}();let r=!1;return new Promise((i=>{function a(){if(r)return;r=!0,window.removeEventListener("ethereum#initialized",a);const{ethereum:n}=window;if(!n||e&&!n.isMetaMask){const r=e&&n?"Non-MetaMask window.ethereum detected.":"Unable to detect window.ethereum.";!t&&console.error("@metamask/detect-provider:",r),i(null)}else i(n)}window.ethereum?a():(window.addEventListener("ethereum#initialized",a,{once:!0}),setTimeout((()=>{a()}),n))}))},py=Lt(fy);async function hy(t,n){let r=null;switch(t){case e.WalletProviderName.PASSPORT:if(!n)throw console.error("WalletProviderName was PASSPORT but the passport instance was not provided to the Checkout constructor"),new Cm("Passport not provided",e.CheckoutErrorType.DEFAULT_PROVIDER_ERROR);r=new Uh(n.connectEvm());break;case e.WalletProviderName.METAMASK:r=await async function(){const t=await Om((async()=>await py()),{type:e.CheckoutErrorType.METAMASK_PROVIDER_ERROR});if(!t||!t.request)throw new Cm("No MetaMask provider installed.",e.CheckoutErrorType.METAMASK_PROVIDER_ERROR);return new Uh(t)}();break;default:throw console.error("The WalletProviderName that was provided is not supported"),new Cm("Provider not supported",e.CheckoutErrorType.DEFAULT_PROVIDER_ERROR)}return{provider:r,walletProviderName:t}}function my(e){return!(!e||!e.provider?.request||"function"!=typeof e.provider.request)}async function yy(t,n,r){return Om((async()=>{if(n.provider?.isPassport)return n;if(!my(n))throw new Cm("Parsed provider is not a valid Web3Provider",e.CheckoutErrorType.WEB3_PROVIDER_ERROR);const i={...vm,...r},a=await km(n);let o=n.network?.chainId;try{o=n.network?.chainId,o||(o=(await n.getNetwork()).chainId)}catch(t){throw new Cm("Unable to detect the web3Provider network",e.CheckoutErrorType.WEB3_PROVIDER_ERROR,{error:t})}if(o!==a&&!i.allowMistmatchedChainId)throw new Cm("Your wallet has changed network, please switch to a supported network",e.CheckoutErrorType.WEB3_PROVIDER_ERROR);if(!(await Sm(t,{type:e.NetworkFilterTypes.ALL})).networks.some((e=>e.chainId===a))&&!i.allowUnsupportedProvider)throw new Cm("Your wallet is connected to an unsupported network, please switch to a supported network",e.CheckoutErrorType.WEB3_PROVIDER_ERROR);return n}),{type:e.CheckoutErrorType.WEB3_PROVIDER_ERROR})}const gy=async(t,n)=>{const r=n,{chainId:i}=await t.getNetwork();return(t=>t===e.ChainId.IMTBL_ZKEVM_DEVNET||t===e.ChainId.IMTBL_ZKEVM_TESTNET||t===e.ChainId.IMTBL_ZKEVM_MAINNET)(i)?(r.maxFeePerGas=Vm.maxFeePerGas,r.maxPriorityFeePerGas=Vm.maxPriorityFeePerGas,r):r},by=async(t,n)=>{try{const e=t.getSigner(),r=await gy(t,n);return{transactionResponse:await e.sendTransaction(r)}}catch(t){if(t.code===Qn.INSUFFICIENT_FUNDS)throw new Cm(t.message,e.CheckoutErrorType.INSUFFICIENT_FUNDS,{error:t});if(t.code===Qn.ACTION_REJECTED)throw new Cm(t.message,e.CheckoutErrorType.USER_REJECTED_REQUEST_ERROR,{error:t});if(t.code===Qn.UNPREDICTABLE_GAS_LIMIT)throw new Cm(t.message,e.CheckoutErrorType.UNPREDICTABLE_GAS_LIMIT,{error:t});throw new Cm(t.message,e.CheckoutErrorType.TRANSACTION_FAILED,{error:t})}};function vy(e,t){return function(){return e.apply(t,arguments)}}const{toString:Ty}=Object.prototype,{getPrototypeOf:wy}=Object,Ey=(e=>t=>{const n=Ty.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Ay=e=>(e=e.toLowerCase(),t=>Ey(t)===e),_y=e=>t=>typeof t===e,{isArray:Iy}=Array,Ry=_y("undefined");const Cy=Ay("ArrayBuffer");const Oy=_y("string"),ky=_y("function"),Sy=_y("number"),Ny=e=>null!==e&&"object"==typeof e,xy=e=>{if("object"!==Ey(e))return!1;const t=wy(e);return!(null!==t&&t!==Object.prototype&&null!==Object.getPrototypeOf(t)||Symbol.toStringTag in e||Symbol.iterator in e)},Py=Ay("Date"),My=Ay("File"),By=Ay("Blob"),Dy=Ay("FileList"),Fy=Ay("URLSearchParams");function Ly(e,t,{allOwnKeys:n=!1}={}){if(null==e)return;let r,i;if("object"!=typeof e&&(e=[e]),Iy(e))for(r=0,i=e.length;r<i;r++)t.call(null,e[r],r,e);else{const i=n?Object.getOwnPropertyNames(e):Object.keys(e),a=i.length;let o;for(r=0;r<a;r++)o=i[r],t.call(null,e[o],o,e)}}function Uy(e,t){t=t.toLowerCase();const n=Object.keys(e);let r,i=n.length;for(;i-- >0;)if(r=n[i],t===r.toLowerCase())return r;return null}const qy="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:global,jy=e=>!Ry(e)&&e!==qy;const Gy=(e=>t=>e&&t instanceof e)("undefined"!=typeof Uint8Array&&wy(Uint8Array)),Hy=Ay("HTMLFormElement"),zy=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),Wy=Ay("RegExp"),Vy=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};Ly(n,((n,i)=>{let a;!1!==(a=t(n,i,e))&&(r[i]=a||n)})),Object.defineProperties(e,r)},Ky="abcdefghijklmnopqrstuvwxyz",Xy="0123456789",Jy={DIGIT:Xy,ALPHA:Ky,ALPHA_DIGIT:Ky+Ky.toUpperCase()+Xy};const Yy=Ay("AsyncFunction");var Qy={isArray:Iy,isArrayBuffer:Cy,isBuffer:function(e){return null!==e&&!Ry(e)&&null!==e.constructor&&!Ry(e.constructor)&&ky(e.constructor.isBuffer)&&e.constructor.isBuffer(e)},isFormData:e=>{let t;return e&&("function"==typeof FormData&&e instanceof FormData||ky(e.append)&&("formdata"===(t=Ey(e))||"object"===t&&ky(e.toString)&&"[object FormData]"===e.toString()))},isArrayBufferView:function(e){let t;return t="undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&Cy(e.buffer),t},isString:Oy,isNumber:Sy,isBoolean:e=>!0===e||!1===e,isObject:Ny,isPlainObject:xy,isUndefined:Ry,isDate:Py,isFile:My,isBlob:By,isRegExp:Wy,isFunction:ky,isStream:e=>Ny(e)&&ky(e.pipe),isURLSearchParams:Fy,isTypedArray:Gy,isFileList:Dy,forEach:Ly,merge:function e(){const{caseless:t}=jy(this)&&this||{},n={},r=(r,i)=>{const a=t&&Uy(n,i)||i;xy(n[a])&&xy(r)?n[a]=e(n[a],r):xy(r)?n[a]=e({},r):Iy(r)?n[a]=r.slice():n[a]=r};for(let e=0,t=arguments.length;e<t;e++)arguments[e]&&Ly(arguments[e],r);return n},extend:(e,t,n,{allOwnKeys:r}={})=>(Ly(t,((t,r)=>{n&&ky(t)?e[r]=vy(t,n):e[r]=t}),{allOwnKeys:r}),e),trim:e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""),stripBOM:e=>(65279===e.charCodeAt(0)&&(e=e.slice(1)),e),inherits:(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},toFlatObject:(e,t,n,r)=>{let i,a,o;const s={};if(t=t||{},null==e)return t;do{for(i=Object.getOwnPropertyNames(e),a=i.length;a-- >0;)o=i[a],r&&!r(o,e,t)||s[o]||(t[o]=e[o],s[o]=!0);e=!1!==n&&wy(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},kindOf:Ey,kindOfTest:Ay,endsWith:(e,t,n)=>{e=String(e),(void 0===n||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return-1!==r&&r===n},toArray:e=>{if(!e)return null;if(Iy(e))return e;let t=e.length;if(!Sy(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},forEachEntry:(e,t)=>{const n=(e&&e[Symbol.iterator]).call(e);let r;for(;(r=n.next())&&!r.done;){const n=r.value;t.call(e,n[0],n[1])}},matchAll:(e,t)=>{let n;const r=[];for(;null!==(n=e.exec(t));)r.push(n);return r},isHTMLForm:Hy,hasOwnProperty:zy,hasOwnProp:zy,reduceDescriptors:Vy,freezeMethods:e=>{Vy(e,((t,n)=>{if(ky(e)&&-1!==["arguments","caller","callee"].indexOf(n))return!1;const r=e[n];ky(r)&&(t.enumerable=!1,"writable"in t?t.writable=!1:t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")}))}))},toObjectSet:(e,t)=>{const n={},r=e=>{e.forEach((e=>{n[e]=!0}))};return Iy(e)?r(e):r(String(e).split(t)),n},toCamelCase:e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,(function(e,t,n){return t.toUpperCase()+n})),noop:()=>{},toFiniteNumber:(e,t)=>(e=+e,Number.isFinite(e)?e:t),findKey:Uy,global:qy,isContextDefined:jy,ALPHABET:Jy,generateString:(e=16,t=Jy.ALPHA_DIGIT)=>{let n="";const{length:r}=t;for(;e--;)n+=t[Math.random()*r|0];return n},isSpecCompliantForm:function(e){return!!(e&&ky(e.append)&&"FormData"===e[Symbol.toStringTag]&&e[Symbol.iterator])},toJSONObject:e=>{const t=new Array(10),n=(e,r)=>{if(Ny(e)){if(t.indexOf(e)>=0)return;if(!("toJSON"in e)){t[r]=e;const i=Iy(e)?[]:{};return Ly(e,((e,t)=>{const a=n(e,r+1);!Ry(a)&&(i[t]=a)})),t[r]=void 0,i}}return e};return n(e,0)},isAsyncFn:Yy,isThenable:e=>e&&(Ny(e)||ky(e))&&ky(e.then)&&ky(e.catch)};function $y(e,t,n,r,i){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,this.message=e,this.name="AxiosError",t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),i&&(this.response=i)}Qy.inherits($y,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:Qy.toJSONObject(this.config),code:this.code,status:this.response&&this.response.status?this.response.status:null}}});const Zy=$y.prototype,eg={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach((e=>{eg[e]={value:e}})),Object.defineProperties($y,eg),Object.defineProperty(Zy,"isAxiosError",{value:!0}),$y.from=(e,t,n,r,i,a)=>{const o=Object.create(Zy);return Qy.toFlatObject(e,o,(function(e){return e!==Error.prototype}),(e=>"isAxiosError"!==e)),$y.call(o,e.message,t,n,r,i),o.cause=e,o.name=e.name,a&&Object.assign(o,a),o};function tg(e){return Qy.isPlainObject(e)||Qy.isArray(e)}function ng(e){return Qy.endsWith(e,"[]")?e.slice(0,-2):e}function rg(e,t,n){return e?e.concat(t).map((function(e,t){return e=ng(e),!n&&t?"["+e+"]":e})).join(n?".":""):t}const ig=Qy.toFlatObject(Qy,{},null,(function(e){return/^is[A-Z]/.test(e)}));function ag(e,t,n){if(!Qy.isObject(e))throw new TypeError("target must be an object");t=t||new FormData;const r=(n=Qy.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,(function(e,t){return!Qy.isUndefined(t[e])}))).metaTokens,i=n.visitor||c,a=n.dots,o=n.indexes,s=(n.Blob||"undefined"!=typeof Blob&&Blob)&&Qy.isSpecCompliantForm(t);if(!Qy.isFunction(i))throw new TypeError("visitor must be a function");function u(e){if(null===e)return"";if(Qy.isDate(e))return e.toISOString();if(!s&&Qy.isBlob(e))throw new $y("Blob is not supported. Use a Buffer instead.");return Qy.isArrayBuffer(e)||Qy.isTypedArray(e)?s&&"function"==typeof Blob?new Blob([e]):Buffer.from(e):e}function c(e,n,i){let s=e;if(e&&!i&&"object"==typeof e)if(Qy.endsWith(n,"{}"))n=r?n:n.slice(0,-2),e=JSON.stringify(e);else if(Qy.isArray(e)&&function(e){return Qy.isArray(e)&&!e.some(tg)}(e)||(Qy.isFileList(e)||Qy.endsWith(n,"[]"))&&(s=Qy.toArray(e)))return n=ng(n),s.forEach((function(e,r){!Qy.isUndefined(e)&&null!==e&&t.append(!0===o?rg([n],r,a):null===o?n:n+"[]",u(e))})),!1;return!!tg(e)||(t.append(rg(i,n,a),u(e)),!1)}const l=[],d=Object.assign(ig,{defaultVisitor:c,convertValue:u,isVisitable:tg});if(!Qy.isObject(e))throw new TypeError("data must be an object");return function e(n,r){if(!Qy.isUndefined(n)){if(-1!==l.indexOf(n))throw Error("Circular reference detected in "+r.join("."));l.push(n),Qy.forEach(n,(function(n,a){!0===(!(Qy.isUndefined(n)||null===n)&&i.call(t,n,Qy.isString(a)?a.trim():a,r,d))&&e(n,r?r.concat(a):[a])})),l.pop()}}(e),t}function og(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,(function(e){return t[e]}))}function sg(e,t){this._pairs=[],e&&ag(e,this,t)}const ug=sg.prototype;function cg(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function lg(e,t,n){if(!t)return e;const r=n&&n.encode||cg,i=n&&n.serialize;let a;if(a=i?i(t,n):Qy.isURLSearchParams(t)?t.toString():new sg(t,n).toString(r),a){const t=e.indexOf("#");-1!==t&&(e=e.slice(0,t)),e+=(-1===e.indexOf("?")?"?":"&")+a}return e}ug.append=function(e,t){this._pairs.push([e,t])},ug.toString=function(e){const t=e?function(t){return e.call(this,t,og)}:og;return this._pairs.map((function(e){return t(e[0])+"="+t(e[1])}),"").join("&")};var dg=class{constructor(){this.handlers=[]}use(e,t,n){return this.handlers.push({fulfilled:e,rejected:t,synchronous:!!n&&n.synchronous,runWhen:n?n.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(e){Qy.forEach(this.handlers,(function(t){null!==t&&e(t)}))}},fg={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},pg={isBrowser:!0,classes:{URLSearchParams:"undefined"!=typeof URLSearchParams?URLSearchParams:sg,FormData:"undefined"!=typeof FormData?FormData:null,Blob:"undefined"!=typeof Blob?Blob:null},protocols:["http","https","file","blob","url","data"]};const hg="undefined"!=typeof window&&"undefined"!=typeof document,mg=(e=>hg&&["ReactNative","NativeScript","NS"].indexOf(e)<0)("undefined"!=typeof navigator&&navigator.product),yg="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"==typeof self.importScripts;var gg={...Object.freeze({__proto__:null,hasBrowserEnv:hg,hasStandardBrowserEnv:mg,hasStandardBrowserWebWorkerEnv:yg}),...pg};function bg(e){function t(e,n,r,i){let a=e[i++];if("__proto__"===a)return!0;const o=Number.isFinite(+a),s=i>=e.length;if(a=!a&&Qy.isArray(r)?r.length:a,s)return Qy.hasOwnProp(r,a)?r[a]=[r[a],n]:r[a]=n,!o;r[a]&&Qy.isObject(r[a])||(r[a]=[]);return t(e,n,r[a],i)&&Qy.isArray(r[a])&&(r[a]=function(e){const t={},n=Object.keys(e);let r;const i=n.length;let a;for(r=0;r<i;r++)a=n[r],t[a]=e[a];return t}(r[a])),!o}if(Qy.isFormData(e)&&Qy.isFunction(e.entries)){const n={};return Qy.forEachEntry(e,((e,r)=>{t(function(e){return Qy.matchAll(/\w+|\[(\w*)]/g,e).map((e=>"[]"===e[0]?"":e[1]||e[0]))}(e),r,n,0)})),n}return null}const vg={transitional:fg,adapter:["xhr","http"],transformRequest:[function(e,t){const n=t.getContentType()||"",r=n.indexOf("application/json")>-1,i=Qy.isObject(e);i&&Qy.isHTMLForm(e)&&(e=new FormData(e));if(Qy.isFormData(e))return r&&r?JSON.stringify(bg(e)):e;if(Qy.isArrayBuffer(e)||Qy.isBuffer(e)||Qy.isStream(e)||Qy.isFile(e)||Qy.isBlob(e))return e;if(Qy.isArrayBufferView(e))return e.buffer;if(Qy.isURLSearchParams(e))return t.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();let a;if(i){if(n.indexOf("application/x-www-form-urlencoded")>-1)return function(e,t){return ag(e,new gg.classes.URLSearchParams,Object.assign({visitor:function(e,t,n,r){return gg.isNode&&Qy.isBuffer(e)?(this.append(t,e.toString("base64")),!1):r.defaultVisitor.apply(this,arguments)}},t))}(e,this.formSerializer).toString();if((a=Qy.isFileList(e))||n.indexOf("multipart/form-data")>-1){const t=this.env&&this.env.FormData;return ag(a?{"files[]":e}:e,t&&new t,this.formSerializer)}}return i||r?(t.setContentType("application/json",!1),function(e,t,n){if(Qy.isString(e))try{return(t||JSON.parse)(e),Qy.trim(e)}catch(e){if("SyntaxError"!==e.name)throw e}return(n||JSON.stringify)(e)}(e)):e}],transformResponse:[function(e){const t=this.transitional||vg.transitional,n=t&&t.forcedJSONParsing,r="json"===this.responseType;if(e&&Qy.isString(e)&&(n&&!this.responseType||r)){const n=!(t&&t.silentJSONParsing)&&r;try{return JSON.parse(e)}catch(e){if(n){if("SyntaxError"===e.name)throw $y.from(e,$y.ERR_BAD_RESPONSE,this,null,this.response);throw e}}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:gg.classes.FormData,Blob:gg.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};Qy.forEach(["delete","get","head","post","put","patch"],(e=>{vg.headers[e]={}}));var Tg=vg;const wg=Qy.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]);const Eg=Symbol("internals");function Ag(e){return e&&String(e).trim().toLowerCase()}function _g(e){return!1===e||null==e?e:Qy.isArray(e)?e.map(_g):String(e)}function Ig(e,t,n,r,i){return Qy.isFunction(r)?r.call(this,t,n):(i&&(t=n),Qy.isString(t)?Qy.isString(r)?-1!==t.indexOf(r):Qy.isRegExp(r)?r.test(t):void 0:void 0)}class Rg{constructor(e){e&&this.set(e)}set(e,t,n){const r=this;function i(e,t,n){const i=Ag(t);if(!i)throw new Error("header name must be a non-empty string");const a=Qy.findKey(r,i);(!a||void 0===r[a]||!0===n||void 0===n&&!1!==r[a])&&(r[a||t]=_g(e))}const a=(e,t)=>Qy.forEach(e,((e,n)=>i(e,n,t)));return Qy.isPlainObject(e)||e instanceof this.constructor?a(e,t):Qy.isString(e)&&(e=e.trim())&&!/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim())?a((e=>{const t={};let n,r,i;return e&&e.split("\n").forEach((function(e){i=e.indexOf(":"),n=e.substring(0,i).trim().toLowerCase(),r=e.substring(i+1).trim(),!n||t[n]&&wg[n]||("set-cookie"===n?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)})),t})(e),t):null!=e&&i(t,e,n),this}get(e,t){if(e=Ag(e)){const n=Qy.findKey(this,e);if(n){const e=this[n];if(!t)return e;if(!0===t)return function(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}(e);if(Qy.isFunction(t))return t.call(this,e,n);if(Qy.isRegExp(t))return t.exec(e);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,t){if(e=Ag(e)){const n=Qy.findKey(this,e);return!(!n||void 0===this[n]||t&&!Ig(0,this[n],n,t))}return!1}delete(e,t){const n=this;let r=!1;function i(e){if(e=Ag(e)){const i=Qy.findKey(n,e);!i||t&&!Ig(0,n[i],i,t)||(delete n[i],r=!0)}}return Qy.isArray(e)?e.forEach(i):i(e),r}clear(e){const t=Object.keys(this);let n=t.length,r=!1;for(;n--;){const i=t[n];e&&!Ig(0,this[i],i,e,!0)||(delete this[i],r=!0)}return r}normalize(e){const t=this,n={};return Qy.forEach(this,((r,i)=>{const a=Qy.findKey(n,i);if(a)return t[a]=_g(r),void delete t[i];const o=e?function(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,((e,t,n)=>t.toUpperCase()+n))}(i):String(i).trim();o!==i&&delete t[i],t[o]=_g(r),n[o]=!0})),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){const t=Object.create(null);return Qy.forEach(this,((n,r)=>{null!=n&&!1!==n&&(t[r]=e&&Qy.isArray(n)?n.join(", "):n)})),t}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map((([e,t])=>e+": "+t)).join("\n")}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(e){return e instanceof this?e:new this(e)}static concat(e,...t){const n=new this(e);return t.forEach((e=>n.set(e))),n}static accessor(e){const t=(this[Eg]=this[Eg]={accessors:{}}).accessors,n=this.prototype;function r(e){const r=Ag(e);t[r]||(!function(e,t){const n=Qy.toCamelCase(" "+t);["get","set","has"].forEach((r=>{Object.defineProperty(e,r+n,{value:function(e,n,i){return this[r].call(this,t,e,n,i)},configurable:!0})}))}(n,e),t[r]=!0)}return Qy.isArray(e)?e.forEach(r):r(e),this}}Rg.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),Qy.reduceDescriptors(Rg.prototype,(({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(e){this[n]=e}}})),Qy.freezeMethods(Rg);var Cg=Rg;function Og(e,t){const n=this||Tg,r=t||n,i=Cg.from(r.headers);let a=r.data;return Qy.forEach(e,(function(e){a=e.call(n,a,i.normalize(),t?t.status:void 0)})),i.normalize(),a}function kg(e){return!(!e||!e.__CANCEL__)}function Sg(e,t,n){$y.call(this,null==e?"canceled":e,$y.ERR_CANCELED,t,n),this.name="CanceledError"}Qy.inherits(Sg,$y,{__CANCEL__:!0});var Ng=gg.hasStandardBrowserEnv?{write(e,t,n,r,i,a){const o=[e+"="+encodeURIComponent(t)];Qy.isNumber(n)&&o.push("expires="+new Date(n).toGMTString()),Qy.isString(r)&&o.push("path="+r),Qy.isString(i)&&o.push("domain="+i),!0===a&&o.push("secure"),document.cookie=o.join("; ")},read(e){const t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove(e){this.write(e,"",Date.now()-864e5)}}:{write(){},read:()=>null,remove(){}};function xg(e,t){return e&&!/^([a-z][a-z\d+\-.]*:)?\/\//i.test(t)?function(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}(e,t):t}var Pg=gg.hasStandardBrowserEnv?function(){const e=/(msie|trident)/i.test(navigator.userAgent),t=document.createElement("a");let n;function r(n){let r=n;return e&&(t.setAttribute("href",r),r=t.href),t.setAttribute("href",r),{href:t.href,protocol:t.protocol?t.protocol.replace(/:$/,""):"",host:t.host,search:t.search?t.search.replace(/^\?/,""):"",hash:t.hash?t.hash.replace(/^#/,""):"",hostname:t.hostname,port:t.port,pathname:"/"===t.pathname.charAt(0)?t.pathname:"/"+t.pathname}}return n=r(window.location.href),function(e){const t=Qy.isString(e)?r(e):e;return t.protocol===n.protocol&&t.host===n.host}}():function(){return!0};function Mg(e,t){let n=0;const r=function(e,t){e=e||10;const n=new Array(e),r=new Array(e);let i,a=0,o=0;return t=void 0!==t?t:1e3,function(s){const u=Date.now(),c=r[o];i||(i=u),n[a]=s,r[a]=u;let l=o,d=0;for(;l!==a;)d+=n[l++],l%=e;if(a=(a+1)%e,a===o&&(o=(o+1)%e),u-i<t)return;const f=c&&u-c;return f?Math.round(1e3*d/f):void 0}}(50,250);return i=>{const a=i.loaded,o=i.lengthComputable?i.total:void 0,s=a-n,u=r(s);n=a;const c={loaded:a,total:o,progress:o?a/o:void 0,bytes:s,rate:u||void 0,estimated:u&&o&&a<=o?(o-a)/u:void 0,event:i};c[t?"download":"upload"]=!0,e(c)}}var Bg="undefined"!=typeof XMLHttpRequest&&function(e){return new Promise((function(t,n){let r=e.data;const i=Cg.from(e.headers).normalize();let a,o,{responseType:s,withXSRFToken:u}=e;function c(){e.cancelToken&&e.cancelToken.unsubscribe(a),e.signal&&e.signal.removeEventListener("abort",a)}if(Qy.isFormData(r))if(gg.hasStandardBrowserEnv||gg.hasStandardBrowserWebWorkerEnv)i.setContentType(!1);else if(!1!==(o=i.getContentType())){const[e,...t]=o?o.split(";").map((e=>e.trim())).filter(Boolean):[];i.setContentType([e||"multipart/form-data",...t].join("; "))}let l=new XMLHttpRequest;if(e.auth){const t=e.auth.username||"",n=e.auth.password?unescape(encodeURIComponent(e.auth.password)):"";i.set("Authorization","Basic "+btoa(t+":"+n))}const d=xg(e.baseURL,e.url);function f(){if(!l)return;const r=Cg.from("getAllResponseHeaders"in l&&l.getAllResponseHeaders());!function(e,t,n){const r=n.config.validateStatus;n.status&&r&&!r(n.status)?t(new $y("Request failed with status code "+n.status,[$y.ERR_BAD_REQUEST,$y.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n)):e(n)}((function(e){t(e),c()}),(function(e){n(e),c()}),{data:s&&"text"!==s&&"json"!==s?l.response:l.responseText,status:l.status,statusText:l.statusText,headers:r,config:e,request:l}),l=null}if(l.open(e.method.toUpperCase(),lg(d,e.params,e.paramsSerializer),!0),l.timeout=e.timeout,"onloadend"in l?l.onloadend=f:l.onreadystatechange=function(){l&&4===l.readyState&&(0!==l.status||l.responseURL&&0===l.responseURL.indexOf("file:"))&&setTimeout(f)},l.onabort=function(){l&&(n(new $y("Request aborted",$y.ECONNABORTED,e,l)),l=null)},l.onerror=function(){n(new $y("Network Error",$y.ERR_NETWORK,e,l)),l=null},l.ontimeout=function(){let t=e.timeout?"timeout of "+e.timeout+"ms exceeded":"timeout exceeded";const r=e.transitional||fg;e.timeoutErrorMessage&&(t=e.timeoutErrorMessage),n(new $y(t,r.clarifyTimeoutError?$y.ETIMEDOUT:$y.ECONNABORTED,e,l)),l=null},gg.hasStandardBrowserEnv&&(u&&Qy.isFunction(u)&&(u=u(e)),u||!1!==u&&Pg(d))){const t=e.xsrfHeaderName&&e.xsrfCookieName&&Ng.read(e.xsrfCookieName);t&&i.set(e.xsrfHeaderName,t)}void 0===r&&i.setContentType(null),"setRequestHeader"in l&&Qy.forEach(i.toJSON(),(function(e,t){l.setRequestHeader(t,e)})),Qy.isUndefined(e.withCredentials)||(l.withCredentials=!!e.withCredentials),s&&"json"!==s&&(l.responseType=e.responseType),"function"==typeof e.onDownloadProgress&&l.addEventListener("progress",Mg(e.onDownloadProgress,!0)),"function"==typeof e.onUploadProgress&&l.upload&&l.upload.addEventListener("progress",Mg(e.onUploadProgress)),(e.cancelToken||e.signal)&&(a=t=>{l&&(n(!t||t.type?new Sg(null,e,l):t),l.abort(),l=null)},e.cancelToken&&e.cancelToken.subscribe(a),e.signal&&(e.signal.aborted?a():e.signal.addEventListener("abort",a)));const p=function(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}(d);p&&-1===gg.protocols.indexOf(p)?n(new $y("Unsupported protocol "+p+":",$y.ERR_BAD_REQUEST,e)):l.send(r||null)}))};const Dg={http:null,xhr:Bg};Qy.forEach(Dg,((e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch(e){}Object.defineProperty(e,"adapterName",{value:t})}}));const Fg=e=>`- ${e}`,Lg=e=>Qy.isFunction(e)||null===e||!1===e;var Ug=e=>{e=Qy.isArray(e)?e:[e];const{length:t}=e;let n,r;const i={};for(let a=0;a<t;a++){let t;if(n=e[a],r=n,!Lg(n)&&(r=Dg[(t=String(n)).toLowerCase()],void 0===r))throw new $y(`Unknown adapter '${t}'`);if(r)break;i[t||"#"+a]=r}if(!r){const e=Object.entries(i).map((([e,t])=>`adapter ${e} `+(!1===t?"is not supported by the environment":"is not available in the build")));throw new $y("There is no suitable adapter to dispatch the request "+(t?e.length>1?"since :\n"+e.map(Fg).join("\n"):" "+Fg(e[0]):"as no adapter specified"),"ERR_NOT_SUPPORT")}return r};function qg(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new Sg(null,e)}function jg(e){qg(e),e.headers=Cg.from(e.headers),e.data=Og.call(e,e.transformRequest),-1!==["post","put","patch"].indexOf(e.method)&&e.headers.setContentType("application/x-www-form-urlencoded",!1);return Ug(e.adapter||Tg.adapter)(e).then((function(t){return qg(e),t.data=Og.call(e,e.transformResponse,t),t.headers=Cg.from(t.headers),t}),(function(t){return kg(t)||(qg(e),t&&t.response&&(t.response.data=Og.call(e,e.transformResponse,t.response),t.response.headers=Cg.from(t.response.headers))),Promise.reject(t)}))}const Gg=e=>e instanceof Cg?e.toJSON():e;function Hg(e,t){t=t||{};const n={};function r(e,t,n){return Qy.isPlainObject(e)&&Qy.isPlainObject(t)?Qy.merge.call({caseless:n},e,t):Qy.isPlainObject(t)?Qy.merge({},t):Qy.isArray(t)?t.slice():t}function i(e,t,n){return Qy.isUndefined(t)?Qy.isUndefined(e)?void 0:r(void 0,e,n):r(e,t,n)}function a(e,t){if(!Qy.isUndefined(t))return r(void 0,t)}function o(e,t){return Qy.isUndefined(t)?Qy.isUndefined(e)?void 0:r(void 0,e):r(void 0,t)}function s(n,i,a){return a in t?r(n,i):a in e?r(void 0,n):void 0}const u={url:a,method:a,data:a,baseURL:o,transformRequest:o,transformResponse:o,paramsSerializer:o,timeout:o,timeoutMessage:o,withCredentials:o,withXSRFToken:o,adapter:o,responseType:o,xsrfCookieName:o,xsrfHeaderName:o,onUploadProgress:o,onDownloadProgress:o,decompress:o,maxContentLength:o,maxBodyLength:o,beforeRedirect:o,transport:o,httpAgent:o,httpsAgent:o,cancelToken:o,socketPath:o,responseEncoding:o,validateStatus:s,headers:(e,t)=>i(Gg(e),Gg(t),!0)};return Qy.forEach(Object.keys(Object.assign({},e,t)),(function(r){const a=u[r]||i,o=a(e[r],t[r],r);Qy.isUndefined(o)&&a!==s||(n[r]=o)})),n}const zg="1.6.5",Wg={};["object","boolean","number","function","string","symbol"].forEach(((e,t)=>{Wg[e]=function(n){return typeof n===e||"a"+(t<1?"n ":" ")+e}}));const Vg={};Wg.transitional=function(e,t,n){function r(e,t){return"[Axios v1.6.5] Transitional option '"+e+"'"+t+(n?". "+n:"")}return(n,i,a)=>{if(!1===e)throw new $y(r(i," has been removed"+(t?" in "+t:"")),$y.ERR_DEPRECATED);return t&&!Vg[i]&&(Vg[i]=!0,console.warn(r(i," has been deprecated since v"+t+" and will be removed in the near future"))),!e||e(n,i,a)}};var Kg={assertOptions:function(e,t,n){if("object"!=typeof e)throw new $y("options must be an object",$y.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let i=r.length;for(;i-- >0;){const a=r[i],o=t[a];if(o){const t=e[a],n=void 0===t||o(t,a,e);if(!0!==n)throw new $y("option "+a+" must be "+n,$y.ERR_BAD_OPTION_VALUE)}else if(!0!==n)throw new $y("Unknown option "+a,$y.ERR_BAD_OPTION)}},validators:Wg};const Xg=Kg.validators;class Jg{constructor(e){this.defaults=e,this.interceptors={request:new dg,response:new dg}}request(e,t){"string"==typeof e?(t=t||{}).url=e:t=e||{},t=Hg(this.defaults,t);const{transitional:n,paramsSerializer:r,headers:i}=t;void 0!==n&&Kg.assertOptions(n,{silentJSONParsing:Xg.transitional(Xg.boolean),forcedJSONParsing:Xg.transitional(Xg.boolean),clarifyTimeoutError:Xg.transitional(Xg.boolean)},!1),null!=r&&(Qy.isFunction(r)?t.paramsSerializer={serialize:r}:Kg.assertOptions(r,{encode:Xg.function,serialize:Xg.function},!0)),t.method=(t.method||this.defaults.method||"get").toLowerCase();let a=i&&Qy.merge(i.common,i[t.method]);i&&Qy.forEach(["delete","get","head","post","put","patch","common"],(e=>{delete i[e]})),t.headers=Cg.concat(a,i);const o=[];let s=!0;this.interceptors.request.forEach((function(e){"function"==typeof e.runWhen&&!1===e.runWhen(t)||(s=s&&e.synchronous,o.unshift(e.fulfilled,e.rejected))}));const u=[];let c;this.interceptors.response.forEach((function(e){u.push(e.fulfilled,e.rejected)}));let l,d=0;if(!s){const e=[jg.bind(this),void 0];for(e.unshift.apply(e,o),e.push.apply(e,u),l=e.length,c=Promise.resolve(t);d<l;)c=c.then(e[d++],e[d++]);return c}l=o.length;let f=t;for(d=0;d<l;){const e=o[d++],t=o[d++];try{f=e(f)}catch(e){t.call(this,e);break}}try{c=jg.call(this,f)}catch(e){return Promise.reject(e)}for(d=0,l=u.length;d<l;)c=c.then(u[d++],u[d++]);return c}getUri(e){return lg(xg((e=Hg(this.defaults,e)).baseURL,e.url),e.params,e.paramsSerializer)}}Qy.forEach(["delete","get","head","options"],(function(e){Jg.prototype[e]=function(t,n){return this.request(Hg(n||{},{method:e,url:t,data:(n||{}).data}))}})),Qy.forEach(["post","put","patch"],(function(e){function t(t){return function(n,r,i){return this.request(Hg(i||{},{method:e,headers:t?{"Content-Type":"multipart/form-data"}:{},url:n,data:r}))}}Jg.prototype[e]=t(),Jg.prototype[e+"Form"]=t(!0)}));var Yg=Jg;class Qg{constructor(e){if("function"!=typeof e)throw new TypeError("executor must be a function.");let t;this.promise=new Promise((function(e){t=e}));const n=this;this.promise.then((e=>{if(!n._listeners)return;let t=n._listeners.length;for(;t-- >0;)n._listeners[t](e);n._listeners=null})),this.promise.then=e=>{let t;const r=new Promise((e=>{n.subscribe(e),t=e})).then(e);return r.cancel=function(){n.unsubscribe(t)},r},e((function(e,r,i){n.reason||(n.reason=new Sg(e,r,i),t(n.reason))}))}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){this.reason?e(this.reason):this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;const t=this._listeners.indexOf(e);-1!==t&&this._listeners.splice(t,1)}static source(){let e;return{token:new Qg((function(t){e=t})),cancel:e}}}var $g=Qg;const Zg={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(Zg).forEach((([e,t])=>{Zg[t]=e}));var eb=Zg;const tb=function e(t){const n=new Yg(t),r=vy(Yg.prototype.request,n);return Qy.extend(r,Yg.prototype,n,{allOwnKeys:!0}),Qy.extend(r,n,null,{allOwnKeys:!0}),r.create=function(n){return e(Hg(t,n))},r}(Tg);tb.Axios=Yg,tb.CanceledError=Sg,tb.CancelToken=$g,tb.isCancel=kg,tb.VERSION=zg,tb.toFormData=ag,tb.AxiosError=$y,tb.Cancel=tb.CanceledError,tb.all=function(e){return Promise.all(e)},tb.spread=function(e){return function(t){return e.apply(null,t)}},tb.isAxiosError=function(e){return Qy.isObject(e)&&!0===e.isAxiosError},tb.mergeConfig=Hg,tb.AxiosHeaders=Cg,tb.formToJSON=e=>bg(Qy.isHTMLForm(e)?new FormData(e):e),tb.getAdapter=Ug,tb.HttpStatusCode=eb,tb.default=tb;var nb=tb,rb="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function ib(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function ab(e){if(e.__esModule)return e;var t=e.default;if("function"==typeof t){var n=function e(){if(this instanceof e){var n=[null];return n.push.apply(n,arguments),new(Function.bind.apply(t,n))}return t.apply(this,arguments)};n.prototype=t.prototype}else n={};return Object.defineProperty(n,"__esModule",{value:!0}),Object.keys(e).forEach((function(t){var r=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(n,t,r.get?r:{enumerable:!0,get:function(){return e[t]}})})),n}var ob={exports:{}},sb=ab(Object.freeze({__proto__:null,default:{}}));!function(e){!function(e,t){function n(e,t){if(!e)throw new Error(t||"Assertion failed")}function r(e,t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}function i(e,t,n){if(i.isBN(e))return e;this.negative=0,this.words=null,this.length=0,this.red=null,null!==e&&("le"!==t&&"be"!==t||(n=t,t=10),this._init(e||0,t||10,n||"be"))}var a;"object"==typeof e?e.exports=i:t.BN=i,i.BN=i,i.wordSize=26;try{a="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:sb.Buffer}catch(e){}function o(e,t){var r=e.charCodeAt(t);return r>=48&&r<=57?r-48:r>=65&&r<=70?r-55:r>=97&&r<=102?r-87:void n(!1,"Invalid character in "+e)}function s(e,t,n){var r=o(e,n);return n-1>=t&&(r|=o(e,n-1)<<4),r}function u(e,t,r,i){for(var a=0,o=0,s=Math.min(e.length,r),u=t;u<s;u++){var c=e.charCodeAt(u)-48;a*=i,o=c>=49?c-49+10:c>=17?c-17+10:c,n(c>=0&&o<i,"Invalid character"),a+=o}return a}function c(e,t){e.words=t.words,e.length=t.length,e.negative=t.negative,e.red=t.red}if(i.isBN=function(e){return e instanceof i||null!==e&&"object"==typeof e&&e.constructor.wordSize===i.wordSize&&Array.isArray(e.words)},i.max=function(e,t){return e.cmp(t)>0?e:t},i.min=function(e,t){return e.cmp(t)<0?e:t},i.prototype._init=function(e,t,r){if("number"==typeof e)return this._initNumber(e,t,r);if("object"==typeof e)return this._initArray(e,t,r);"hex"===t&&(t=16),n(t===(0|t)&&t>=2&&t<=36);var i=0;"-"===(e=e.toString().replace(/\s+/g,""))[0]&&(i++,this.negative=1),i<e.length&&(16===t?this._parseHex(e,i,r):(this._parseBase(e,t,i),"le"===r&&this._initArray(this.toArray(),t,r)))},i.prototype._initNumber=function(e,t,r){e<0&&(this.negative=1,e=-e),e<67108864?(this.words=[67108863&e],this.length=1):e<4503599627370496?(this.words=[67108863&e,e/67108864&67108863],this.length=2):(n(e<9007199254740992),this.words=[67108863&e,e/67108864&67108863,1],this.length=3),"le"===r&&this._initArray(this.toArray(),t,r)},i.prototype._initArray=function(e,t,r){if(n("number"==typeof e.length),e.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(e.length/3),this.words=new Array(this.length);for(var i=0;i<this.length;i++)this.words[i]=0;var a,o,s=0;if("be"===r)for(i=e.length-1,a=0;i>=0;i-=3)o=e[i]|e[i-1]<<8|e[i-2]<<16,this.words[a]|=o<<s&67108863,this.words[a+1]=o>>>26-s&67108863,(s+=24)>=26&&(s-=26,a++);else if("le"===r)for(i=0,a=0;i<e.length;i+=3)o=e[i]|e[i+1]<<8|e[i+2]<<16,this.words[a]|=o<<s&67108863,this.words[a+1]=o>>>26-s&67108863,(s+=24)>=26&&(s-=26,a++);return this._strip()},i.prototype._parseHex=function(e,t,n){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var r=0;r<this.length;r++)this.words[r]=0;var i,a=0,o=0;if("be"===n)for(r=e.length-1;r>=t;r-=2)i=s(e,t,r)<<a,this.words[o]|=67108863&i,a>=18?(a-=18,o+=1,this.words[o]|=i>>>26):a+=8;else for(r=(e.length-t)%2==0?t+1:t;r<e.length;r+=2)i=s(e,t,r)<<a,this.words[o]|=67108863&i,a>=18?(a-=18,o+=1,this.words[o]|=i>>>26):a+=8;this._strip()},i.prototype._parseBase=function(e,t,n){this.words=[0],this.length=1;for(var r=0,i=1;i<=67108863;i*=t)r++;r--,i=i/t|0;for(var a=e.length-n,o=a%r,s=Math.min(a,a-o)+n,c=0,l=n;l<s;l+=r)c=u(e,l,l+r,t),this.imuln(i),this.words[0]+c<67108864?this.words[0]+=c:this._iaddn(c);if(0!==o){var d=1;for(c=u(e,l,e.length,t),l=0;l<o;l++)d*=t;this.imuln(d),this.words[0]+c<67108864?this.words[0]+=c:this._iaddn(c)}this._strip()},i.prototype.copy=function(e){e.words=new Array(this.length);for(var t=0;t<this.length;t++)e.words[t]=this.words[t];e.length=this.length,e.negative=this.negative,e.red=this.red},i.prototype._move=function(e){c(e,this)},i.prototype.clone=function(){var e=new i(null);return this.copy(e),e},i.prototype._expand=function(e){for(;this.length<e;)this.words[this.length++]=0;return this},i.prototype._strip=function(){for(;this.length>1&&0===this.words[this.length-1];)this.length--;return this._normSign()},i.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},"undefined"!=typeof Symbol&&"function"==typeof Symbol.for)try{i.prototype[Symbol.for("nodejs.util.inspect.custom")]=l}catch(e){i.prototype.inspect=l}else i.prototype.inspect=l;function l(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"}var d=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],f=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],p=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];i.prototype.toString=function(e,t){var r;if(t=0|t||1,16===(e=e||10)||"hex"===e){r="";for(var i=0,a=0,o=0;o<this.length;o++){var s=this.words[o],u=(16777215&(s<<i|a)).toString(16);a=s>>>24-i&16777215,(i+=2)>=26&&(i-=26,o--),r=0!==a||o!==this.length-1?d[6-u.length]+u+r:u+r}for(0!==a&&(r=a.toString(16)+r);r.length%t!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}if(e===(0|e)&&e>=2&&e<=36){var c=f[e],l=p[e];r="";var h=this.clone();for(h.negative=0;!h.isZero();){var m=h.modrn(l).toString(e);r=(h=h.idivn(l)).isZero()?m+r:d[c-m.length]+m+r}for(this.isZero()&&(r="0"+r);r.length%t!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}n(!1,"Base should be between 2 and 36")},i.prototype.toNumber=function(){var e=this.words[0];return 2===this.length?e+=67108864*this.words[1]:3===this.length&&1===this.words[2]?e+=4503599627370496+67108864*this.words[1]:this.length>2&&n(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},i.prototype.toJSON=function(){return this.toString(16,2)},a&&(i.prototype.toBuffer=function(e,t){return this.toArrayLike(a,e,t)}),i.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)};function h(e,t,n){n.negative=t.negative^e.negative;var r=e.length+t.length|0;n.length=r,r=r-1|0;var i=0|e.words[0],a=0|t.words[0],o=i*a,s=67108863&o,u=o/67108864|0;n.words[0]=s;for(var c=1;c<r;c++){for(var l=u>>>26,d=67108863&u,f=Math.min(c,t.length-1),p=Math.max(0,c-e.length+1);p<=f;p++){var h=c-p|0;l+=(o=(i=0|e.words[h])*(a=0|t.words[p])+d)/67108864|0,d=67108863&o}n.words[c]=0|d,u=0|l}return 0!==u?n.words[c]=0|u:n.length--,n._strip()}i.prototype.toArrayLike=function(e,t,r){this._strip();var i=this.byteLength(),a=r||Math.max(1,i);n(i<=a,"byte array longer than desired length"),n(a>0,"Requested array length <= 0");var o=function(e,t){return e.allocUnsafe?e.allocUnsafe(t):new e(t)}(e,a);return this["_toArrayLike"+("le"===t?"LE":"BE")](o,i),o},i.prototype._toArrayLikeLE=function(e,t){for(var n=0,r=0,i=0,a=0;i<this.length;i++){var o=this.words[i]<<a|r;e[n++]=255&o,n<e.length&&(e[n++]=o>>8&255),n<e.length&&(e[n++]=o>>16&255),6===a?(n<e.length&&(e[n++]=o>>24&255),r=0,a=0):(r=o>>>24,a+=2)}if(n<e.length)for(e[n++]=r;n<e.length;)e[n++]=0},i.prototype._toArrayLikeBE=function(e,t){for(var n=e.length-1,r=0,i=0,a=0;i<this.length;i++){var o=this.words[i]<<a|r;e[n--]=255&o,n>=0&&(e[n--]=o>>8&255),n>=0&&(e[n--]=o>>16&255),6===a?(n>=0&&(e[n--]=o>>24&255),r=0,a=0):(r=o>>>24,a+=2)}if(n>=0)for(e[n--]=r;n>=0;)e[n--]=0},Math.clz32?i.prototype._countBits=function(e){return 32-Math.clz32(e)}:i.prototype._countBits=function(e){var t=e,n=0;return t>=4096&&(n+=13,t>>>=13),t>=64&&(n+=7,t>>>=7),t>=8&&(n+=4,t>>>=4),t>=2&&(n+=2,t>>>=2),n+t},i.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,n=0;return 0==(8191&t)&&(n+=13,t>>>=13),0==(127&t)&&(n+=7,t>>>=7),0==(15&t)&&(n+=4,t>>>=4),0==(3&t)&&(n+=2,t>>>=2),0==(1&t)&&n++,n},i.prototype.bitLength=function(){var e=this.words[this.length-1],t=this._countBits(e);return 26*(this.length-1)+t},i.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;t<this.length;t++){var n=this._zeroBits(this.words[t]);if(e+=n,26!==n)break}return e},i.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},i.prototype.toTwos=function(e){return 0!==this.negative?this.abs().inotn(e).iaddn(1):this.clone()},i.prototype.fromTwos=function(e){return this.testn(e-1)?this.notn(e).iaddn(1).ineg():this.clone()},i.prototype.isNeg=function(){return 0!==this.negative},i.prototype.neg=function(){return this.clone().ineg()},i.prototype.ineg=function(){return this.isZero()||(this.negative^=1),this},i.prototype.iuor=function(e){for(;this.length<e.length;)this.words[this.length++]=0;for(var t=0;t<e.length;t++)this.words[t]=this.words[t]|e.words[t];return this._strip()},i.prototype.ior=function(e){return n(0==(this.negative|e.negative)),this.iuor(e)},i.prototype.or=function(e){return this.length>e.length?this.clone().ior(e):e.clone().ior(this)},i.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},i.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var n=0;n<t.length;n++)this.words[n]=this.words[n]&e.words[n];return this.length=t.length,this._strip()},i.prototype.iand=function(e){return n(0==(this.negative|e.negative)),this.iuand(e)},i.prototype.and=function(e){return this.length>e.length?this.clone().iand(e):e.clone().iand(this)},i.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},i.prototype.iuxor=function(e){var t,n;this.length>e.length?(t=this,n=e):(t=e,n=this);for(var r=0;r<n.length;r++)this.words[r]=t.words[r]^n.words[r];if(this!==t)for(;r<t.length;r++)this.words[r]=t.words[r];return this.length=t.length,this._strip()},i.prototype.ixor=function(e){return n(0==(this.negative|e.negative)),this.iuxor(e)},i.prototype.xor=function(e){return this.length>e.length?this.clone().ixor(e):e.clone().ixor(this)},i.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},i.prototype.inotn=function(e){n("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),r=e%26;this._expand(t),r>0&&t--;for(var i=0;i<t;i++)this.words[i]=67108863&~this.words[i];return r>0&&(this.words[i]=~this.words[i]&67108863>>26-r),this._strip()},i.prototype.notn=function(e){return this.clone().inotn(e)},i.prototype.setn=function(e,t){n("number"==typeof e&&e>=0);var r=e/26|0,i=e%26;return this._expand(r+1),this.words[r]=t?this.words[r]|1<<i:this.words[r]&~(1<<i),this._strip()},i.prototype.iadd=function(e){var t,n,r;if(0!==this.negative&&0===e.negative)return this.negative=0,t=this.isub(e),this.negative^=1,this._normSign();if(0===this.negative&&0!==e.negative)return e.negative=0,t=this.isub(e),e.negative=1,t._normSign();this.length>e.length?(n=this,r=e):(n=e,r=this);for(var i=0,a=0;a<r.length;a++)t=(0|n.words[a])+(0|r.words[a])+i,this.words[a]=67108863&t,i=t>>>26;for(;0!==i&&a<n.length;a++)t=(0|n.words[a])+i,this.words[a]=67108863&t,i=t>>>26;if(this.length=n.length,0!==i)this.words[this.length]=i,this.length++;else if(n!==this)for(;a<n.length;a++)this.words[a]=n.words[a];return this},i.prototype.add=function(e){var t;return 0!==e.negative&&0===this.negative?(e.negative=0,t=this.sub(e),e.negative^=1,t):0===e.negative&&0!==this.negative?(this.negative=0,t=e.sub(this),this.negative=1,t):this.length>e.length?this.clone().iadd(e):e.clone().iadd(this)},i.prototype.isub=function(e){if(0!==e.negative){e.negative=0;var t=this.iadd(e);return e.negative=1,t._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var n,r,i=this.cmp(e);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(n=this,r=e):(n=e,r=this);for(var a=0,o=0;o<r.length;o++)a=(t=(0|n.words[o])-(0|r.words[o])+a)>>26,this.words[o]=67108863&t;for(;0!==a&&o<n.length;o++)a=(t=(0|n.words[o])+a)>>26,this.words[o]=67108863&t;if(0===a&&o<n.length&&n!==this)for(;o<n.length;o++)this.words[o]=n.words[o];return this.length=Math.max(this.length,o),n!==this&&(this.negative=1),this._strip()},i.prototype.sub=function(e){return this.clone().isub(e)};var m=function(e,t,n){var r,i,a,o=e.words,s=t.words,u=n.words,c=0,l=0|o[0],d=8191&l,f=l>>>13,p=0|o[1],h=8191&p,m=p>>>13,y=0|o[2],g=8191&y,b=y>>>13,v=0|o[3],T=8191&v,w=v>>>13,E=0|o[4],A=8191&E,_=E>>>13,I=0|o[5],R=8191&I,C=I>>>13,O=0|o[6],k=8191&O,S=O>>>13,N=0|o[7],x=8191&N,P=N>>>13,M=0|o[8],B=8191&M,D=M>>>13,F=0|o[9],L=8191&F,U=F>>>13,q=0|s[0],j=8191&q,G=q>>>13,H=0|s[1],z=8191&H,W=H>>>13,V=0|s[2],K=8191&V,X=V>>>13,J=0|s[3],Y=8191&J,Q=J>>>13,$=0|s[4],Z=8191&$,ee=$>>>13,te=0|s[5],ne=8191&te,re=te>>>13,ie=0|s[6],ae=8191&ie,oe=ie>>>13,se=0|s[7],ue=8191&se,ce=se>>>13,le=0|s[8],de=8191&le,fe=le>>>13,pe=0|s[9],he=8191&pe,me=pe>>>13;n.negative=e.negative^t.negative,n.length=19;var ye=(c+(r=Math.imul(d,j))|0)+((8191&(i=(i=Math.imul(d,G))+Math.imul(f,j)|0))<<13)|0;c=((a=Math.imul(f,G))+(i>>>13)|0)+(ye>>>26)|0,ye&=67108863,r=Math.imul(h,j),i=(i=Math.imul(h,G))+Math.imul(m,j)|0,a=Math.imul(m,G);var ge=(c+(r=r+Math.imul(d,z)|0)|0)+((8191&(i=(i=i+Math.imul(d,W)|0)+Math.imul(f,z)|0))<<13)|0;c=((a=a+Math.imul(f,W)|0)+(i>>>13)|0)+(ge>>>26)|0,ge&=67108863,r=Math.imul(g,j),i=(i=Math.imul(g,G))+Math.imul(b,j)|0,a=Math.imul(b,G),r=r+Math.imul(h,z)|0,i=(i=i+Math.imul(h,W)|0)+Math.imul(m,z)|0,a=a+Math.imul(m,W)|0;var be=(c+(r=r+Math.imul(d,K)|0)|0)+((8191&(i=(i=i+Math.imul(d,X)|0)+Math.imul(f,K)|0))<<13)|0;c=((a=a+Math.imul(f,X)|0)+(i>>>13)|0)+(be>>>26)|0,be&=67108863,r=Math.imul(T,j),i=(i=Math.imul(T,G))+Math.imul(w,j)|0,a=Math.imul(w,G),r=r+Math.imul(g,z)|0,i=(i=i+Math.imul(g,W)|0)+Math.imul(b,z)|0,a=a+Math.imul(b,W)|0,r=r+Math.imul(h,K)|0,i=(i=i+Math.imul(h,X)|0)+Math.imul(m,K)|0,a=a+Math.imul(m,X)|0;var ve=(c+(r=r+Math.imul(d,Y)|0)|0)+((8191&(i=(i=i+Math.imul(d,Q)|0)+Math.imul(f,Y)|0))<<13)|0;c=((a=a+Math.imul(f,Q)|0)+(i>>>13)|0)+(ve>>>26)|0,ve&=67108863,r=Math.imul(A,j),i=(i=Math.imul(A,G))+Math.imul(_,j)|0,a=Math.imul(_,G),r=r+Math.imul(T,z)|0,i=(i=i+Math.imul(T,W)|0)+Math.imul(w,z)|0,a=a+Math.imul(w,W)|0,r=r+Math.imul(g,K)|0,i=(i=i+Math.imul(g,X)|0)+Math.imul(b,K)|0,a=a+Math.imul(b,X)|0,r=r+Math.imul(h,Y)|0,i=(i=i+Math.imul(h,Q)|0)+Math.imul(m,Y)|0,a=a+Math.imul(m,Q)|0;var Te=(c+(r=r+Math.imul(d,Z)|0)|0)+((8191&(i=(i=i+Math.imul(d,ee)|0)+Math.imul(f,Z)|0))<<13)|0;c=((a=a+Math.imul(f,ee)|0)+(i>>>13)|0)+(Te>>>26)|0,Te&=67108863,r=Math.imul(R,j),i=(i=Math.imul(R,G))+Math.imul(C,j)|0,a=Math.imul(C,G),r=r+Math.imul(A,z)|0,i=(i=i+Math.imul(A,W)|0)+Math.imul(_,z)|0,a=a+Math.imul(_,W)|0,r=r+Math.imul(T,K)|0,i=(i=i+Math.imul(T,X)|0)+Math.imul(w,K)|0,a=a+Math.imul(w,X)|0,r=r+Math.imul(g,Y)|0,i=(i=i+Math.imul(g,Q)|0)+Math.imul(b,Y)|0,a=a+Math.imul(b,Q)|0,r=r+Math.imul(h,Z)|0,i=(i=i+Math.imul(h,ee)|0)+Math.imul(m,Z)|0,a=a+Math.imul(m,ee)|0;var we=(c+(r=r+Math.imul(d,ne)|0)|0)+((8191&(i=(i=i+Math.imul(d,re)|0)+Math.imul(f,ne)|0))<<13)|0;c=((a=a+Math.imul(f,re)|0)+(i>>>13)|0)+(we>>>26)|0,we&=67108863,r=Math.imul(k,j),i=(i=Math.imul(k,G))+Math.imul(S,j)|0,a=Math.imul(S,G),r=r+Math.imul(R,z)|0,i=(i=i+Math.imul(R,W)|0)+Math.imul(C,z)|0,a=a+Math.imul(C,W)|0,r=r+Math.imul(A,K)|0,i=(i=i+Math.imul(A,X)|0)+Math.imul(_,K)|0,a=a+Math.imul(_,X)|0,r=r+Math.imul(T,Y)|0,i=(i=i+Math.imul(T,Q)|0)+Math.imul(w,Y)|0,a=a+Math.imul(w,Q)|0,r=r+Math.imul(g,Z)|0,i=(i=i+Math.imul(g,ee)|0)+Math.imul(b,Z)|0,a=a+Math.imul(b,ee)|0,r=r+Math.imul(h,ne)|0,i=(i=i+Math.imul(h,re)|0)+Math.imul(m,ne)|0,a=a+Math.imul(m,re)|0;var Ee=(c+(r=r+Math.imul(d,ae)|0)|0)+((8191&(i=(i=i+Math.imul(d,oe)|0)+Math.imul(f,ae)|0))<<13)|0;c=((a=a+Math.imul(f,oe)|0)+(i>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,r=Math.imul(x,j),i=(i=Math.imul(x,G))+Math.imul(P,j)|0,a=Math.imul(P,G),r=r+Math.imul(k,z)|0,i=(i=i+Math.imul(k,W)|0)+Math.imul(S,z)|0,a=a+Math.imul(S,W)|0,r=r+Math.imul(R,K)|0,i=(i=i+Math.imul(R,X)|0)+Math.imul(C,K)|0,a=a+Math.imul(C,X)|0,r=r+Math.imul(A,Y)|0,i=(i=i+Math.imul(A,Q)|0)+Math.imul(_,Y)|0,a=a+Math.imul(_,Q)|0,r=r+Math.imul(T,Z)|0,i=(i=i+Math.imul(T,ee)|0)+Math.imul(w,Z)|0,a=a+Math.imul(w,ee)|0,r=r+Math.imul(g,ne)|0,i=(i=i+Math.imul(g,re)|0)+Math.imul(b,ne)|0,a=a+Math.imul(b,re)|0,r=r+Math.imul(h,ae)|0,i=(i=i+Math.imul(h,oe)|0)+Math.imul(m,ae)|0,a=a+Math.imul(m,oe)|0;var Ae=(c+(r=r+Math.imul(d,ue)|0)|0)+((8191&(i=(i=i+Math.imul(d,ce)|0)+Math.imul(f,ue)|0))<<13)|0;c=((a=a+Math.imul(f,ce)|0)+(i>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,r=Math.imul(B,j),i=(i=Math.imul(B,G))+Math.imul(D,j)|0,a=Math.imul(D,G),r=r+Math.imul(x,z)|0,i=(i=i+Math.imul(x,W)|0)+Math.imul(P,z)|0,a=a+Math.imul(P,W)|0,r=r+Math.imul(k,K)|0,i=(i=i+Math.imul(k,X)|0)+Math.imul(S,K)|0,a=a+Math.imul(S,X)|0,r=r+Math.imul(R,Y)|0,i=(i=i+Math.imul(R,Q)|0)+Math.imul(C,Y)|0,a=a+Math.imul(C,Q)|0,r=r+Math.imul(A,Z)|0,i=(i=i+Math.imul(A,ee)|0)+Math.imul(_,Z)|0,a=a+Math.imul(_,ee)|0,r=r+Math.imul(T,ne)|0,i=(i=i+Math.imul(T,re)|0)+Math.imul(w,ne)|0,a=a+Math.imul(w,re)|0,r=r+Math.imul(g,ae)|0,i=(i=i+Math.imul(g,oe)|0)+Math.imul(b,ae)|0,a=a+Math.imul(b,oe)|0,r=r+Math.imul(h,ue)|0,i=(i=i+Math.imul(h,ce)|0)+Math.imul(m,ue)|0,a=a+Math.imul(m,ce)|0;var _e=(c+(r=r+Math.imul(d,de)|0)|0)+((8191&(i=(i=i+Math.imul(d,fe)|0)+Math.imul(f,de)|0))<<13)|0;c=((a=a+Math.imul(f,fe)|0)+(i>>>13)|0)+(_e>>>26)|0,_e&=67108863,r=Math.imul(L,j),i=(i=Math.imul(L,G))+Math.imul(U,j)|0,a=Math.imul(U,G),r=r+Math.imul(B,z)|0,i=(i=i+Math.imul(B,W)|0)+Math.imul(D,z)|0,a=a+Math.imul(D,W)|0,r=r+Math.imul(x,K)|0,i=(i=i+Math.imul(x,X)|0)+Math.imul(P,K)|0,a=a+Math.imul(P,X)|0,r=r+Math.imul(k,Y)|0,i=(i=i+Math.imul(k,Q)|0)+Math.imul(S,Y)|0,a=a+Math.imul(S,Q)|0,r=r+Math.imul(R,Z)|0,i=(i=i+Math.imul(R,ee)|0)+Math.imul(C,Z)|0,a=a+Math.imul(C,ee)|0,r=r+Math.imul(A,ne)|0,i=(i=i+Math.imul(A,re)|0)+Math.imul(_,ne)|0,a=a+Math.imul(_,re)|0,r=r+Math.imul(T,ae)|0,i=(i=i+Math.imul(T,oe)|0)+Math.imul(w,ae)|0,a=a+Math.imul(w,oe)|0,r=r+Math.imul(g,ue)|0,i=(i=i+Math.imul(g,ce)|0)+Math.imul(b,ue)|0,a=a+Math.imul(b,ce)|0,r=r+Math.imul(h,de)|0,i=(i=i+Math.imul(h,fe)|0)+Math.imul(m,de)|0,a=a+Math.imul(m,fe)|0;var Ie=(c+(r=r+Math.imul(d,he)|0)|0)+((8191&(i=(i=i+Math.imul(d,me)|0)+Math.imul(f,he)|0))<<13)|0;c=((a=a+Math.imul(f,me)|0)+(i>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,r=Math.imul(L,z),i=(i=Math.imul(L,W))+Math.imul(U,z)|0,a=Math.imul(U,W),r=r+Math.imul(B,K)|0,i=(i=i+Math.imul(B,X)|0)+Math.imul(D,K)|0,a=a+Math.imul(D,X)|0,r=r+Math.imul(x,Y)|0,i=(i=i+Math.imul(x,Q)|0)+Math.imul(P,Y)|0,a=a+Math.imul(P,Q)|0,r=r+Math.imul(k,Z)|0,i=(i=i+Math.imul(k,ee)|0)+Math.imul(S,Z)|0,a=a+Math.imul(S,ee)|0,r=r+Math.imul(R,ne)|0,i=(i=i+Math.imul(R,re)|0)+Math.imul(C,ne)|0,a=a+Math.imul(C,re)|0,r=r+Math.imul(A,ae)|0,i=(i=i+Math.imul(A,oe)|0)+Math.imul(_,ae)|0,a=a+Math.imul(_,oe)|0,r=r+Math.imul(T,ue)|0,i=(i=i+Math.imul(T,ce)|0)+Math.imul(w,ue)|0,a=a+Math.imul(w,ce)|0,r=r+Math.imul(g,de)|0,i=(i=i+Math.imul(g,fe)|0)+Math.imul(b,de)|0,a=a+Math.imul(b,fe)|0;var Re=(c+(r=r+Math.imul(h,he)|0)|0)+((8191&(i=(i=i+Math.imul(h,me)|0)+Math.imul(m,he)|0))<<13)|0;c=((a=a+Math.imul(m,me)|0)+(i>>>13)|0)+(Re>>>26)|0,Re&=67108863,r=Math.imul(L,K),i=(i=Math.imul(L,X))+Math.imul(U,K)|0,a=Math.imul(U,X),r=r+Math.imul(B,Y)|0,i=(i=i+Math.imul(B,Q)|0)+Math.imul(D,Y)|0,a=a+Math.imul(D,Q)|0,r=r+Math.imul(x,Z)|0,i=(i=i+Math.imul(x,ee)|0)+Math.imul(P,Z)|0,a=a+Math.imul(P,ee)|0,r=r+Math.imul(k,ne)|0,i=(i=i+Math.imul(k,re)|0)+Math.imul(S,ne)|0,a=a+Math.imul(S,re)|0,r=r+Math.imul(R,ae)|0,i=(i=i+Math.imul(R,oe)|0)+Math.imul(C,ae)|0,a=a+Math.imul(C,oe)|0,r=r+Math.imul(A,ue)|0,i=(i=i+Math.imul(A,ce)|0)+Math.imul(_,ue)|0,a=a+Math.imul(_,ce)|0,r=r+Math.imul(T,de)|0,i=(i=i+Math.imul(T,fe)|0)+Math.imul(w,de)|0,a=a+Math.imul(w,fe)|0;var Ce=(c+(r=r+Math.imul(g,he)|0)|0)+((8191&(i=(i=i+Math.imul(g,me)|0)+Math.imul(b,he)|0))<<13)|0;c=((a=a+Math.imul(b,me)|0)+(i>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,r=Math.imul(L,Y),i=(i=Math.imul(L,Q))+Math.imul(U,Y)|0,a=Math.imul(U,Q),r=r+Math.imul(B,Z)|0,i=(i=i+Math.imul(B,ee)|0)+Math.imul(D,Z)|0,a=a+Math.imul(D,ee)|0,r=r+Math.imul(x,ne)|0,i=(i=i+Math.imul(x,re)|0)+Math.imul(P,ne)|0,a=a+Math.imul(P,re)|0,r=r+Math.imul(k,ae)|0,i=(i=i+Math.imul(k,oe)|0)+Math.imul(S,ae)|0,a=a+Math.imul(S,oe)|0,r=r+Math.imul(R,ue)|0,i=(i=i+Math.imul(R,ce)|0)+Math.imul(C,ue)|0,a=a+Math.imul(C,ce)|0,r=r+Math.imul(A,de)|0,i=(i=i+Math.imul(A,fe)|0)+Math.imul(_,de)|0,a=a+Math.imul(_,fe)|0;var Oe=(c+(r=r+Math.imul(T,he)|0)|0)+((8191&(i=(i=i+Math.imul(T,me)|0)+Math.imul(w,he)|0))<<13)|0;c=((a=a+Math.imul(w,me)|0)+(i>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,r=Math.imul(L,Z),i=(i=Math.imul(L,ee))+Math.imul(U,Z)|0,a=Math.imul(U,ee),r=r+Math.imul(B,ne)|0,i=(i=i+Math.imul(B,re)|0)+Math.imul(D,ne)|0,a=a+Math.imul(D,re)|0,r=r+Math.imul(x,ae)|0,i=(i=i+Math.imul(x,oe)|0)+Math.imul(P,ae)|0,a=a+Math.imul(P,oe)|0,r=r+Math.imul(k,ue)|0,i=(i=i+Math.imul(k,ce)|0)+Math.imul(S,ue)|0,a=a+Math.imul(S,ce)|0,r=r+Math.imul(R,de)|0,i=(i=i+Math.imul(R,fe)|0)+Math.imul(C,de)|0,a=a+Math.imul(C,fe)|0;var ke=(c+(r=r+Math.imul(A,he)|0)|0)+((8191&(i=(i=i+Math.imul(A,me)|0)+Math.imul(_,he)|0))<<13)|0;c=((a=a+Math.imul(_,me)|0)+(i>>>13)|0)+(ke>>>26)|0,ke&=67108863,r=Math.imul(L,ne),i=(i=Math.imul(L,re))+Math.imul(U,ne)|0,a=Math.imul(U,re),r=r+Math.imul(B,ae)|0,i=(i=i+Math.imul(B,oe)|0)+Math.imul(D,ae)|0,a=a+Math.imul(D,oe)|0,r=r+Math.imul(x,ue)|0,i=(i=i+Math.imul(x,ce)|0)+Math.imul(P,ue)|0,a=a+Math.imul(P,ce)|0,r=r+Math.imul(k,de)|0,i=(i=i+Math.imul(k,fe)|0)+Math.imul(S,de)|0,a=a+Math.imul(S,fe)|0;var Se=(c+(r=r+Math.imul(R,he)|0)|0)+((8191&(i=(i=i+Math.imul(R,me)|0)+Math.imul(C,he)|0))<<13)|0;c=((a=a+Math.imul(C,me)|0)+(i>>>13)|0)+(Se>>>26)|0,Se&=67108863,r=Math.imul(L,ae),i=(i=Math.imul(L,oe))+Math.imul(U,ae)|0,a=Math.imul(U,oe),r=r+Math.imul(B,ue)|0,i=(i=i+Math.imul(B,ce)|0)+Math.imul(D,ue)|0,a=a+Math.imul(D,ce)|0,r=r+Math.imul(x,de)|0,i=(i=i+Math.imul(x,fe)|0)+Math.imul(P,de)|0,a=a+Math.imul(P,fe)|0;var Ne=(c+(r=r+Math.imul(k,he)|0)|0)+((8191&(i=(i=i+Math.imul(k,me)|0)+Math.imul(S,he)|0))<<13)|0;c=((a=a+Math.imul(S,me)|0)+(i>>>13)|0)+(Ne>>>26)|0,Ne&=67108863,r=Math.imul(L,ue),i=(i=Math.imul(L,ce))+Math.imul(U,ue)|0,a=Math.imul(U,ce),r=r+Math.imul(B,de)|0,i=(i=i+Math.imul(B,fe)|0)+Math.imul(D,de)|0,a=a+Math.imul(D,fe)|0;var xe=(c+(r=r+Math.imul(x,he)|0)|0)+((8191&(i=(i=i+Math.imul(x,me)|0)+Math.imul(P,he)|0))<<13)|0;c=((a=a+Math.imul(P,me)|0)+(i>>>13)|0)+(xe>>>26)|0,xe&=67108863,r=Math.imul(L,de),i=(i=Math.imul(L,fe))+Math.imul(U,de)|0,a=Math.imul(U,fe);var Pe=(c+(r=r+Math.imul(B,he)|0)|0)+((8191&(i=(i=i+Math.imul(B,me)|0)+Math.imul(D,he)|0))<<13)|0;c=((a=a+Math.imul(D,me)|0)+(i>>>13)|0)+(Pe>>>26)|0,Pe&=67108863;var Me=(c+(r=Math.imul(L,he))|0)+((8191&(i=(i=Math.imul(L,me))+Math.imul(U,he)|0))<<13)|0;return c=((a=Math.imul(U,me))+(i>>>13)|0)+(Me>>>26)|0,Me&=67108863,u[0]=ye,u[1]=ge,u[2]=be,u[3]=ve,u[4]=Te,u[5]=we,u[6]=Ee,u[7]=Ae,u[8]=_e,u[9]=Ie,u[10]=Re,u[11]=Ce,u[12]=Oe,u[13]=ke,u[14]=Se,u[15]=Ne,u[16]=xe,u[17]=Pe,u[18]=Me,0!==c&&(u[19]=c,n.length++),n};function y(e,t,n){n.negative=t.negative^e.negative,n.length=e.length+t.length;for(var r=0,i=0,a=0;a<n.length-1;a++){var o=i;i=0;for(var s=67108863&r,u=Math.min(a,t.length-1),c=Math.max(0,a-e.length+1);c<=u;c++){var l=a-c,d=(0|e.words[l])*(0|t.words[c]),f=67108863&d;s=67108863&(f=f+s|0),i+=(o=(o=o+(d/67108864|0)|0)+(f>>>26)|0)>>>26,o&=67108863}n.words[a]=s,r=o,o=i}return 0!==r?n.words[a]=r:n.length--,n._strip()}function g(e,t,n){return y(e,t,n)}Math.imul||(m=h),i.prototype.mulTo=function(e,t){var n=this.length+e.length;return 10===this.length&&10===e.length?m(this,e,t):n<63?h(this,e,t):n<1024?y(this,e,t):g(this,e,t)},i.prototype.mul=function(e){var t=new i(null);return t.words=new Array(this.length+e.length),this.mulTo(e,t)},i.prototype.mulf=function(e){var t=new i(null);return t.words=new Array(this.length+e.length),g(this,e,t)},i.prototype.imul=function(e){return this.clone().mulTo(e,this)},i.prototype.imuln=function(e){var t=e<0;t&&(e=-e),n("number"==typeof e),n(e<67108864);for(var r=0,i=0;i<this.length;i++){var a=(0|this.words[i])*e,o=(67108863&a)+(67108863&r);r>>=26,r+=a/67108864|0,r+=o>>>26,this.words[i]=67108863&o}return 0!==r&&(this.words[i]=r,this.length++),t?this.ineg():this},i.prototype.muln=function(e){return this.clone().imuln(e)},i.prototype.sqr=function(){return this.mul(this)},i.prototype.isqr=function(){return this.imul(this.clone())},i.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),n=0;n<t.length;n++){var r=n/26|0,i=n%26;t[n]=e.words[r]>>>i&1}return t}(e);if(0===t.length)return new i(1);for(var n=this,r=0;r<t.length&&0===t[r];r++,n=n.sqr());if(++r<t.length)for(var a=n.sqr();r<t.length;r++,a=a.sqr())0!==t[r]&&(n=n.mul(a));return n},i.prototype.iushln=function(e){n("number"==typeof e&&e>=0);var t,r=e%26,i=(e-r)/26,a=67108863>>>26-r<<26-r;if(0!==r){var o=0;for(t=0;t<this.length;t++){var s=this.words[t]&a,u=(0|this.words[t])-s<<r;this.words[t]=u|o,o=s>>>26-r}o&&(this.words[t]=o,this.length++)}if(0!==i){for(t=this.length-1;t>=0;t--)this.words[t+i]=this.words[t];for(t=0;t<i;t++)this.words[t]=0;this.length+=i}return this._strip()},i.prototype.ishln=function(e){return n(0===this.negative),this.iushln(e)},i.prototype.iushrn=function(e,t,r){var i;n("number"==typeof e&&e>=0),i=t?(t-t%26)/26:0;var a=e%26,o=Math.min((e-a)/26,this.length),s=67108863^67108863>>>a<<a,u=r;if(i-=o,i=Math.max(0,i),u){for(var c=0;c<o;c++)u.words[c]=this.words[c];u.length=o}if(0===o);else if(this.length>o)for(this.length-=o,c=0;c<this.length;c++)this.words[c]=this.words[c+o];else this.words[0]=0,this.length=1;var l=0;for(c=this.length-1;c>=0&&(0!==l||c>=i);c--){var d=0|this.words[c];this.words[c]=l<<26-a|d>>>a,l=d&s}return u&&0!==l&&(u.words[u.length++]=l),0===this.length&&(this.words[0]=0,this.length=1),this._strip()},i.prototype.ishrn=function(e,t,r){return n(0===this.negative),this.iushrn(e,t,r)},i.prototype.shln=function(e){return this.clone().ishln(e)},i.prototype.ushln=function(e){return this.clone().iushln(e)},i.prototype.shrn=function(e){return this.clone().ishrn(e)},i.prototype.ushrn=function(e){return this.clone().iushrn(e)},i.prototype.testn=function(e){n("number"==typeof e&&e>=0);var t=e%26,r=(e-t)/26,i=1<<t;return!(this.length<=r)&&!!(this.words[r]&i)},i.prototype.imaskn=function(e){n("number"==typeof e&&e>=0);var t=e%26,r=(e-t)/26;if(n(0===this.negative,"imaskn works only with positive numbers"),this.length<=r)return this;if(0!==t&&r++,this.length=Math.min(r,this.length),0!==t){var i=67108863^67108863>>>t<<t;this.words[this.length-1]&=i}return this._strip()},i.prototype.maskn=function(e){return this.clone().imaskn(e)},i.prototype.iaddn=function(e){return n("number"==typeof e),n(e<67108864),e<0?this.isubn(-e):0!==this.negative?1===this.length&&(0|this.words[0])<=e?(this.words[0]=e-(0|this.words[0]),this.negative=0,this):(this.negative=0,this.isubn(e),this.negative=1,this):this._iaddn(e)},i.prototype._iaddn=function(e){this.words[0]+=e;for(var t=0;t<this.length&&this.words[t]>=67108864;t++)this.words[t]-=67108864,t===this.length-1?this.words[t+1]=1:this.words[t+1]++;return this.length=Math.max(this.length,t+1),this},i.prototype.isubn=function(e){if(n("number"==typeof e),n(e<67108864),e<0)return this.iaddn(-e);if(0!==this.negative)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var t=0;t<this.length&&this.words[t]<0;t++)this.words[t]+=67108864,this.words[t+1]-=1;return this._strip()},i.prototype.addn=function(e){return this.clone().iaddn(e)},i.prototype.subn=function(e){return this.clone().isubn(e)},i.prototype.iabs=function(){return this.negative=0,this},i.prototype.abs=function(){return this.clone().iabs()},i.prototype._ishlnsubmul=function(e,t,r){var i,a,o=e.length+r;this._expand(o);var s=0;for(i=0;i<e.length;i++){a=(0|this.words[i+r])+s;var u=(0|e.words[i])*t;s=((a-=67108863&u)>>26)-(u/67108864|0),this.words[i+r]=67108863&a}for(;i<this.length-r;i++)s=(a=(0|this.words[i+r])+s)>>26,this.words[i+r]=67108863&a;if(0===s)return this._strip();for(n(-1===s),s=0,i=0;i<this.length;i++)s=(a=-(0|this.words[i])+s)>>26,this.words[i]=67108863&a;return this.negative=1,this._strip()},i.prototype._wordDiv=function(e,t){var n=(this.length,e.length),r=this.clone(),a=e,o=0|a.words[a.length-1];0!==(n=26-this._countBits(o))&&(a=a.ushln(n),r.iushln(n),o=0|a.words[a.length-1]);var s,u=r.length-a.length;if("mod"!==t){(s=new i(null)).length=u+1,s.words=new Array(s.length);for(var c=0;c<s.length;c++)s.words[c]=0}var l=r.clone()._ishlnsubmul(a,1,u);0===l.negative&&(r=l,s&&(s.words[u]=1));for(var d=u-1;d>=0;d--){var f=67108864*(0|r.words[a.length+d])+(0|r.words[a.length+d-1]);for(f=Math.min(f/o|0,67108863),r._ishlnsubmul(a,f,d);0!==r.negative;)f--,r.negative=0,r._ishlnsubmul(a,1,d),r.isZero()||(r.negative^=1);s&&(s.words[d]=f)}return s&&s._strip(),r._strip(),"div"!==t&&0!==n&&r.iushrn(n),{div:s||null,mod:r}},i.prototype.divmod=function(e,t,r){return n(!e.isZero()),this.isZero()?{div:new i(0),mod:new i(0)}:0!==this.negative&&0===e.negative?(s=this.neg().divmod(e,t),"mod"!==t&&(a=s.div.neg()),"div"!==t&&(o=s.mod.neg(),r&&0!==o.negative&&o.iadd(e)),{div:a,mod:o}):0===this.negative&&0!==e.negative?(s=this.divmod(e.neg(),t),"mod"!==t&&(a=s.div.neg()),{div:a,mod:s.mod}):0!=(this.negative&e.negative)?(s=this.neg().divmod(e.neg(),t),"div"!==t&&(o=s.mod.neg(),r&&0!==o.negative&&o.isub(e)),{div:s.div,mod:o}):e.length>this.length||this.cmp(e)<0?{div:new i(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new i(this.modrn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new i(this.modrn(e.words[0]))}:this._wordDiv(e,t);var a,o,s},i.prototype.div=function(e){return this.divmod(e,"div",!1).div},i.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},i.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},i.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var n=0!==t.div.negative?t.mod.isub(e):t.mod,r=e.ushrn(1),i=e.andln(1),a=n.cmp(r);return a<0||1===i&&0===a?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},i.prototype.modrn=function(e){var t=e<0;t&&(e=-e),n(e<=67108863);for(var r=(1<<26)%e,i=0,a=this.length-1;a>=0;a--)i=(r*i+(0|this.words[a]))%e;return t?-i:i},i.prototype.modn=function(e){return this.modrn(e)},i.prototype.idivn=function(e){var t=e<0;t&&(e=-e),n(e<=67108863);for(var r=0,i=this.length-1;i>=0;i--){var a=(0|this.words[i])+67108864*r;this.words[i]=a/e|0,r=a%e}return this._strip(),t?this.ineg():this},i.prototype.divn=function(e){return this.clone().idivn(e)},i.prototype.egcd=function(e){n(0===e.negative),n(!e.isZero());var t=this,r=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var a=new i(1),o=new i(0),s=new i(0),u=new i(1),c=0;t.isEven()&&r.isEven();)t.iushrn(1),r.iushrn(1),++c;for(var l=r.clone(),d=t.clone();!t.isZero();){for(var f=0,p=1;0==(t.words[0]&p)&&f<26;++f,p<<=1);if(f>0)for(t.iushrn(f);f-- >0;)(a.isOdd()||o.isOdd())&&(a.iadd(l),o.isub(d)),a.iushrn(1),o.iushrn(1);for(var h=0,m=1;0==(r.words[0]&m)&&h<26;++h,m<<=1);if(h>0)for(r.iushrn(h);h-- >0;)(s.isOdd()||u.isOdd())&&(s.iadd(l),u.isub(d)),s.iushrn(1),u.iushrn(1);t.cmp(r)>=0?(t.isub(r),a.isub(s),o.isub(u)):(r.isub(t),s.isub(a),u.isub(o))}return{a:s,b:u,gcd:r.iushln(c)}},i.prototype._invmp=function(e){n(0===e.negative),n(!e.isZero());var t=this,r=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var a,o=new i(1),s=new i(0),u=r.clone();t.cmpn(1)>0&&r.cmpn(1)>0;){for(var c=0,l=1;0==(t.words[0]&l)&&c<26;++c,l<<=1);if(c>0)for(t.iushrn(c);c-- >0;)o.isOdd()&&o.iadd(u),o.iushrn(1);for(var d=0,f=1;0==(r.words[0]&f)&&d<26;++d,f<<=1);if(d>0)for(r.iushrn(d);d-- >0;)s.isOdd()&&s.iadd(u),s.iushrn(1);t.cmp(r)>=0?(t.isub(r),o.isub(s)):(r.isub(t),s.isub(o))}return(a=0===t.cmpn(1)?o:s).cmpn(0)<0&&a.iadd(e),a},i.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),n=e.clone();t.negative=0,n.negative=0;for(var r=0;t.isEven()&&n.isEven();r++)t.iushrn(1),n.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;n.isEven();)n.iushrn(1);var i=t.cmp(n);if(i<0){var a=t;t=n,n=a}else if(0===i||0===n.cmpn(1))break;t.isub(n)}return n.iushln(r)},i.prototype.invm=function(e){return this.egcd(e).a.umod(e)},i.prototype.isEven=function(){return 0==(1&this.words[0])},i.prototype.isOdd=function(){return 1==(1&this.words[0])},i.prototype.andln=function(e){return this.words[0]&e},i.prototype.bincn=function(e){n("number"==typeof e);var t=e%26,r=(e-t)/26,i=1<<t;if(this.length<=r)return this._expand(r+1),this.words[r]|=i,this;for(var a=i,o=r;0!==a&&o<this.length;o++){var s=0|this.words[o];a=(s+=a)>>>26,s&=67108863,this.words[o]=s}return 0!==a&&(this.words[o]=a,this.length++),this},i.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},i.prototype.cmpn=function(e){var t,r=e<0;if(0!==this.negative&&!r)return-1;if(0===this.negative&&r)return 1;if(this._strip(),this.length>1)t=1;else{r&&(e=-e),n(e<=67108863,"Number is too big");var i=0|this.words[0];t=i===e?0:i<e?-1:1}return 0!==this.negative?0|-t:t},i.prototype.cmp=function(e){if(0!==this.negative&&0===e.negative)return-1;if(0===this.negative&&0!==e.negative)return 1;var t=this.ucmp(e);return 0!==this.negative?0|-t:t},i.prototype.ucmp=function(e){if(this.length>e.length)return 1;if(this.length<e.length)return-1;for(var t=0,n=this.length-1;n>=0;n--){var r=0|this.words[n],i=0|e.words[n];if(r!==i){r<i?t=-1:r>i&&(t=1);break}}return t},i.prototype.gtn=function(e){return 1===this.cmpn(e)},i.prototype.gt=function(e){return 1===this.cmp(e)},i.prototype.gten=function(e){return this.cmpn(e)>=0},i.prototype.gte=function(e){return this.cmp(e)>=0},i.prototype.ltn=function(e){return-1===this.cmpn(e)},i.prototype.lt=function(e){return-1===this.cmp(e)},i.prototype.lten=function(e){return this.cmpn(e)<=0},i.prototype.lte=function(e){return this.cmp(e)<=0},i.prototype.eqn=function(e){return 0===this.cmpn(e)},i.prototype.eq=function(e){return 0===this.cmp(e)},i.red=function(e){return new _(e)},i.prototype.toRed=function(e){return n(!this.red,"Already a number in reduction context"),n(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},i.prototype.fromRed=function(){return n(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},i.prototype._forceRed=function(e){return this.red=e,this},i.prototype.forceRed=function(e){return n(!this.red,"Already a number in reduction context"),this._forceRed(e)},i.prototype.redAdd=function(e){return n(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},i.prototype.redIAdd=function(e){return n(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},i.prototype.redSub=function(e){return n(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},i.prototype.redISub=function(e){return n(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},i.prototype.redShl=function(e){return n(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},i.prototype.redMul=function(e){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},i.prototype.redIMul=function(e){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},i.prototype.redSqr=function(){return n(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},i.prototype.redISqr=function(){return n(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},i.prototype.redSqrt=function(){return n(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},i.prototype.redInvm=function(){return n(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},i.prototype.redNeg=function(){return n(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},i.prototype.redPow=function(e){return n(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var b={k256:null,p224:null,p192:null,p25519:null};function v(e,t){this.name=e,this.p=new i(t,16),this.n=this.p.bitLength(),this.k=new i(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function T(){v.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function w(){v.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function E(){v.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function A(){v.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function _(e){if("string"==typeof e){var t=i._prime(e);this.m=t.p,this.prime=t}else n(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function I(e){_.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new i(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}v.prototype._tmp=function(){var e=new i(null);return e.words=new Array(Math.ceil(this.n/13)),e},v.prototype.ireduce=function(e){var t,n=e;do{this.split(n,this.tmp),t=(n=(n=this.imulK(n)).iadd(this.tmp)).bitLength()}while(t>this.n);var r=t<this.n?-1:n.ucmp(this.p);return 0===r?(n.words[0]=0,n.length=1):r>0?n.isub(this.p):void 0!==n.strip?n.strip():n._strip(),n},v.prototype.split=function(e,t){e.iushrn(this.n,0,t)},v.prototype.imulK=function(e){return e.imul(this.k)},r(T,v),T.prototype.split=function(e,t){for(var n=4194303,r=Math.min(e.length,9),i=0;i<r;i++)t.words[i]=e.words[i];if(t.length=r,e.length<=9)return e.words[0]=0,void(e.length=1);var a=e.words[9];for(t.words[t.length++]=a&n,i=10;i<e.length;i++){var o=0|e.words[i];e.words[i-10]=(o&n)<<4|a>>>22,a=o}a>>>=22,e.words[i-10]=a,0===a&&e.length>10?e.length-=10:e.length-=9},T.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,n=0;n<e.length;n++){var r=0|e.words[n];t+=977*r,e.words[n]=67108863&t,t=64*r+(t/67108864|0)}return 0===e.words[e.length-1]&&(e.length--,0===e.words[e.length-1]&&e.length--),e},r(w,v),r(E,v),r(A,v),A.prototype.imulK=function(e){for(var t=0,n=0;n<e.length;n++){var r=19*(0|e.words[n])+t,i=67108863&r;r>>>=26,e.words[n]=i,t=r}return 0!==t&&(e.words[e.length++]=t),e},i._prime=function(e){if(b[e])return b[e];var t;if("k256"===e)t=new T;else if("p224"===e)t=new w;else if("p192"===e)t=new E;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new A}return b[e]=t,t},_.prototype._verify1=function(e){n(0===e.negative,"red works only with positives"),n(e.red,"red works only with red numbers")},_.prototype._verify2=function(e,t){n(0==(e.negative|t.negative),"red works only with positives"),n(e.red&&e.red===t.red,"red works only with red numbers")},_.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):(c(e,e.umod(this.m)._forceRed(this)),e)},_.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},_.prototype.add=function(e,t){this._verify2(e,t);var n=e.add(t);return n.cmp(this.m)>=0&&n.isub(this.m),n._forceRed(this)},_.prototype.iadd=function(e,t){this._verify2(e,t);var n=e.iadd(t);return n.cmp(this.m)>=0&&n.isub(this.m),n},_.prototype.sub=function(e,t){this._verify2(e,t);var n=e.sub(t);return n.cmpn(0)<0&&n.iadd(this.m),n._forceRed(this)},_.prototype.isub=function(e,t){this._verify2(e,t);var n=e.isub(t);return n.cmpn(0)<0&&n.iadd(this.m),n},_.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},_.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},_.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},_.prototype.isqr=function(e){return this.imul(e,e.clone())},_.prototype.sqr=function(e){return this.mul(e,e)},_.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(n(t%2==1),3===t){var r=this.m.add(new i(1)).iushrn(2);return this.pow(e,r)}for(var a=this.m.subn(1),o=0;!a.isZero()&&0===a.andln(1);)o++,a.iushrn(1);n(!a.isZero());var s=new i(1).toRed(this),u=s.redNeg(),c=this.m.subn(1).iushrn(1),l=this.m.bitLength();for(l=new i(2*l*l).toRed(this);0!==this.pow(l,c).cmp(u);)l.redIAdd(u);for(var d=this.pow(l,a),f=this.pow(e,a.addn(1).iushrn(1)),p=this.pow(e,a),h=o;0!==p.cmp(s);){for(var m=p,y=0;0!==m.cmp(s);y++)m=m.redSqr();n(y<h);var g=this.pow(d,new i(1).iushln(h-y-1));f=f.redMul(g),d=g.redSqr(),p=p.redMul(d),h=y}return f},_.prototype.invm=function(e){var t=e._invmp(this.m);return 0!==t.negative?(t.negative=0,this.imod(t).redNeg()):this.imod(t)},_.prototype.pow=function(e,t){if(t.isZero())return new i(1).toRed(this);if(0===t.cmpn(1))return e.clone();var n=new Array(16);n[0]=new i(1).toRed(this),n[1]=e;for(var r=2;r<n.length;r++)n[r]=this.mul(n[r-1],e);var a=n[0],o=0,s=0,u=t.bitLength()%26;for(0===u&&(u=26),r=t.length-1;r>=0;r--){for(var c=t.words[r],l=u-1;l>=0;l--){var d=c>>l&1;a!==n[0]&&(a=this.sqr(a)),0!==d||0!==o?(o<<=1,o|=d,(4===++s||0===r&&0===l)&&(a=this.mul(a,n[o]),s=0,o=0)):s=0}u=26}return a},_.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},_.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},i.mont=function(e){return new I(e)},r(I,_),I.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},I.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},I.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var n=e.imul(t),r=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=n.isub(r).iushrn(this.shift),a=i;return i.cmp(this.m)>=0?a=i.isub(this.m):i.cmpn(0)<0&&(a=i.iadd(this.m)),a._forceRed(this)},I.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new i(0)._forceRed(this);var n=e.mul(t),r=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),a=n.isub(r).iushrn(this.shift),o=a;return a.cmp(this.m)>=0?o=a.isub(this.m):a.cmpn(0)<0&&(o=a.iadd(this.m)),o._forceRed(this)},I.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(e,rb)}(ob);var ub=ib(ob.exports);let cb=!1,lb=!1;const db={debug:1,default:2,info:2,warning:3,error:4,off:5};let fb=db.default,pb=null;const hb=function(){try{const e=[];if(["NFD","NFC","NFKD","NFKC"].forEach((t=>{try{if("test"!=="test".normalize(t))throw new Error("bad normalize")}catch(n){e.push(t)}})),e.length)throw new Error("missing "+e.join(", "));if(String.fromCharCode(233).normalize("NFD")!==String.fromCharCode(101,769))throw new Error("broken implementation")}catch(e){return e.message}return null}();var mb,yb;!function(e){e.DEBUG="DEBUG",e.INFO="INFO",e.WARNING="WARNING",e.ERROR="ERROR",e.OFF="OFF"}(mb||(mb={})),function(e){e.UNKNOWN_ERROR="UNKNOWN_ERROR",e.NOT_IMPLEMENTED="NOT_IMPLEMENTED",e.UNSUPPORTED_OPERATION="UNSUPPORTED_OPERATION",e.NETWORK_ERROR="NETWORK_ERROR",e.SERVER_ERROR="SERVER_ERROR",e.TIMEOUT="TIMEOUT",e.BUFFER_OVERRUN="BUFFER_OVERRUN",e.NUMERIC_FAULT="NUMERIC_FAULT",e.MISSING_NEW="MISSING_NEW",e.INVALID_ARGUMENT="INVALID_ARGUMENT",e.MISSING_ARGUMENT="MISSING_ARGUMENT",e.UNEXPECTED_ARGUMENT="UNEXPECTED_ARGUMENT",e.CALL_EXCEPTION="CALL_EXCEPTION",e.INSUFFICIENT_FUNDS="INSUFFICIENT_FUNDS",e.NONCE_EXPIRED="NONCE_EXPIRED",e.REPLACEMENT_UNDERPRICED="REPLACEMENT_UNDERPRICED",e.UNPREDICTABLE_GAS_LIMIT="UNPREDICTABLE_GAS_LIMIT",e.TRANSACTION_REPLACED="TRANSACTION_REPLACED",e.ACTION_REJECTED="ACTION_REJECTED"}(yb||(yb={}));const gb="0123456789abcdef";let bb=class e{constructor(e){Object.defineProperty(this,"version",{enumerable:!0,value:e,writable:!1})}_log(e,t){const n=e.toLowerCase();null==db[n]&&this.throwArgumentError("invalid log level name","logLevel",e),fb>db[n]||console.log.apply(console,t)}debug(...t){this._log(e.levels.DEBUG,t)}info(...t){this._log(e.levels.INFO,t)}warn(...t){this._log(e.levels.WARNING,t)}makeError(t,n,r){if(lb)return this.makeError("censored error",n,{});n||(n=e.errors.UNKNOWN_ERROR),r||(r={});const i=[];Object.keys(r).forEach((e=>{const t=r[e];try{if(t instanceof Uint8Array){let n="";for(let e=0;e<t.length;e++)n+=gb[t[e]>>4],n+=gb[15&t[e]];i.push(e+"=Uint8Array(0x"+n+")")}else i.push(e+"="+JSON.stringify(t))}catch(t){i.push(e+"="+JSON.stringify(r[e].toString()))}})),i.push(`code=${n}`),i.push(`version=${this.version}`);const a=t;let o="";switch(n){case yb.NUMERIC_FAULT:{o="NUMERIC_FAULT";const e=t;switch(e){case"overflow":case"underflow":case"division-by-zero":o+="-"+e;break;case"negative-power":case"negative-width":o+="-unsupported";break;case"unbound-bitwise-result":o+="-unbound-result"}break}case yb.CALL_EXCEPTION:case yb.INSUFFICIENT_FUNDS:case yb.MISSING_NEW:case yb.NONCE_EXPIRED:case yb.REPLACEMENT_UNDERPRICED:case yb.TRANSACTION_REPLACED:case yb.UNPREDICTABLE_GAS_LIMIT:o=n}o&&(t+=" [ See: https://links.ethers.org/v5-errors-"+o+" ]"),i.length&&(t+=" ("+i.join(", ")+")");const s=new Error(t);return s.reason=a,s.code=n,Object.keys(r).forEach((function(e){s[e]=r[e]})),s}throwError(e,t,n){throw this.makeError(e,t,n)}throwArgumentError(t,n,r){return this.throwError(t,e.errors.INVALID_ARGUMENT,{argument:n,value:r})}assert(e,t,n,r){e||this.throwError(t,n,r)}assertArgument(e,t,n,r){e||this.throwArgumentError(t,n,r)}checkNormalize(t){hb&&this.throwError("platform missing String.prototype.normalize",e.errors.UNSUPPORTED_OPERATION,{operation:"String.prototype.normalize",form:hb})}checkSafeUint53(t,n){"number"==typeof t&&(null==n&&(n="value not safe"),(t<0||t>=9007199254740991)&&this.throwError(n,e.errors.NUMERIC_FAULT,{operation:"checkSafeInteger",fault:"out-of-safe-range",value:t}),t%1&&this.throwError(n,e.errors.NUMERIC_FAULT,{operation:"checkSafeInteger",fault:"non-integer",value:t}))}checkArgumentCount(t,n,r){r=r?": "+r:"",t<n&&this.throwError("missing argument"+r,e.errors.MISSING_ARGUMENT,{count:t,expectedCount:n}),t>n&&this.throwError("too many arguments"+r,e.errors.UNEXPECTED_ARGUMENT,{count:t,expectedCount:n})}checkNew(t,n){t!==Object&&null!=t||this.throwError("missing new",e.errors.MISSING_NEW,{name:n.name})}checkAbstract(t,n){t===n?this.throwError("cannot instantiate abstract class "+JSON.stringify(n.name)+" directly; use a sub-class",e.errors.UNSUPPORTED_OPERATION,{name:t.name,operation:"new"}):t!==Object&&null!=t||this.throwError("missing new",e.errors.MISSING_NEW,{name:n.name})}static globalLogger(){return pb||(pb=new e("logger/5.7.0")),pb}static setCensorship(t,n){if(!t&&n&&this.globalLogger().throwError("cannot permanently disable censorship",e.errors.UNSUPPORTED_OPERATION,{operation:"setCensorship"}),cb){if(!t)return;this.globalLogger().throwError("error censorship permanent",e.errors.UNSUPPORTED_OPERATION,{operation:"setCensorship"})}lb=!!t,cb=!!n}static setLogLevel(t){const n=db[t.toLowerCase()];null!=n?fb=n:e.globalLogger().warn("invalid log level - "+t)}static from(t){return new e(t)}};bb.errors=yb,bb.levels=mb;const vb=new bb("bytes/5.7.0");function Tb(e){return!!e.toHexString}function wb(e){return e.slice||(e.slice=function(){const t=Array.prototype.slice.call(arguments);return wb(new Uint8Array(Array.prototype.slice.apply(e,t)))}),e}function Eb(e){return"number"==typeof e&&e==e&&e%1==0}function Ab(e){if(null==e)return!1;if(e.constructor===Uint8Array)return!0;if("string"==typeof e)return!1;if(!Eb(e.length)||e.length<0)return!1;for(let t=0;t<e.length;t++){const n=e[t];if(!Eb(n)||n<0||n>=256)return!1}return!0}function _b(e,t){if(t||(t={}),"number"==typeof e){vb.checkSafeUint53(e,"invalid arrayify value");const t=[];for(;e;)t.unshift(255&e),e=parseInt(String(e/256));return 0===t.length&&t.push(0),wb(new Uint8Array(t))}if(t.allowMissingPrefix&&"string"==typeof e&&"0x"!==e.substring(0,2)&&(e="0x"+e),Tb(e)&&(e=e.toHexString()),Rb(e)){let n=e.substring(2);n.length%2&&("left"===t.hexPad?n="0"+n:"right"===t.hexPad?n+="0":vb.throwArgumentError("hex data is odd-length","value",e));const r=[];for(let e=0;e<n.length;e+=2)r.push(parseInt(n.substring(e,e+2),16));return wb(new Uint8Array(r))}return Ab(e)?wb(new Uint8Array(e)):vb.throwArgumentError("invalid arrayify value","value",e)}function Ib(e){const t=e.map((e=>_b(e))),n=t.reduce(((e,t)=>e+t.length),0),r=new Uint8Array(n);return t.reduce(((e,t)=>(r.set(t,e),e+t.length)),0),wb(r)}function Rb(e,t){return!("string"!=typeof e||!e.match(/^0x[0-9A-Fa-f]*$/))&&(!t||e.length===2+2*t)}const Cb="0123456789abcdef";function Ob(e,t){if(t||(t={}),"number"==typeof e){vb.checkSafeUint53(e,"invalid hexlify value");let t="";for(;e;)t=Cb[15&e]+t,e=Math.floor(e/16);return t.length?(t.length%2&&(t="0"+t),"0x"+t):"0x00"}if("bigint"==typeof e)return(e=e.toString(16)).length%2?"0x0"+e:"0x"+e;if(t.allowMissingPrefix&&"string"==typeof e&&"0x"!==e.substring(0,2)&&(e="0x"+e),Tb(e))return e.toHexString();if(Rb(e))return e.length%2&&("left"===t.hexPad?e="0x0"+e.substring(2):"right"===t.hexPad?e+="0":vb.throwArgumentError("hex data is odd-length","value",e)),e.toLowerCase();if(Ab(e)){let t="0x";for(let n=0;n<e.length;n++){let r=e[n];t+=Cb[(240&r)>>4]+Cb[15&r]}return t}return vb.throwArgumentError("invalid hexlify value","value",e)}function kb(e,t,n){return"string"!=typeof e?e=Ob(e):(!Rb(e)||e.length%2)&&vb.throwArgumentError("invalid hexData","value",e),t=2+2*t,null!=n?"0x"+e.substring(t,2+2*n):"0x"+e.substring(t)}function Sb(e,t){for("string"!=typeof e?e=Ob(e):Rb(e)||vb.throwArgumentError("invalid hex string","value",e),e.length>2*t+2&&vb.throwArgumentError("value out of range","value",arguments[1]);e.length<2*t+2;)e="0x0"+e.substring(2);return e}var Nb=ub.BN;const xb=new bb("bignumber/5.7.0"),Pb={},Mb=9007199254740991;let Bb=!1;class Db{constructor(e,t){e!==Pb&&xb.throwError("cannot call constructor directly; use BigNumber.from",bb.errors.UNSUPPORTED_OPERATION,{operation:"new (BigNumber)"}),this._hex=t,this._isBigNumber=!0,Object.freeze(this)}fromTwos(e){return Lb(Ub(this).fromTwos(e))}toTwos(e){return Lb(Ub(this).toTwos(e))}abs(){return"-"===this._hex[0]?Db.from(this._hex.substring(1)):this}add(e){return Lb(Ub(this).add(Ub(e)))}sub(e){return Lb(Ub(this).sub(Ub(e)))}div(e){return Db.from(e).isZero()&&qb("division-by-zero","div"),Lb(Ub(this).div(Ub(e)))}mul(e){return Lb(Ub(this).mul(Ub(e)))}mod(e){const t=Ub(e);return t.isNeg()&&qb("division-by-zero","mod"),Lb(Ub(this).umod(t))}pow(e){const t=Ub(e);return t.isNeg()&&qb("negative-power","pow"),Lb(Ub(this).pow(t))}and(e){const t=Ub(e);return(this.isNegative()||t.isNeg())&&qb("unbound-bitwise-result","and"),Lb(Ub(this).and(t))}or(e){const t=Ub(e);return(this.isNegative()||t.isNeg())&&qb("unbound-bitwise-result","or"),Lb(Ub(this).or(t))}xor(e){const t=Ub(e);return(this.isNegative()||t.isNeg())&&qb("unbound-bitwise-result","xor"),Lb(Ub(this).xor(t))}mask(e){return(this.isNegative()||e<0)&&qb("negative-width","mask"),Lb(Ub(this).maskn(e))}shl(e){return(this.isNegative()||e<0)&&qb("negative-width","shl"),Lb(Ub(this).shln(e))}shr(e){return(this.isNegative()||e<0)&&qb("negative-width","shr"),Lb(Ub(this).shrn(e))}eq(e){return Ub(this).eq(Ub(e))}lt(e){return Ub(this).lt(Ub(e))}lte(e){return Ub(this).lte(Ub(e))}gt(e){return Ub(this).gt(Ub(e))}gte(e){return Ub(this).gte(Ub(e))}isNegative(){return"-"===this._hex[0]}isZero(){return Ub(this).isZero()}toNumber(){try{return Ub(this).toNumber()}catch(e){qb("overflow","toNumber",this.toString())}return null}toBigInt(){try{return BigInt(this.toString())}catch(e){}return xb.throwError("this platform does not support BigInt",bb.errors.UNSUPPORTED_OPERATION,{value:this.toString()})}toString(){return arguments.length>0&&(10===arguments[0]?Bb||(Bb=!0,xb.warn("BigNumber.toString does not accept any parameters; base-10 is assumed")):16===arguments[0]?xb.throwError("BigNumber.toString does not accept any parameters; use bigNumber.toHexString()",bb.errors.UNEXPECTED_ARGUMENT,{}):xb.throwError("BigNumber.toString does not accept parameters",bb.errors.UNEXPECTED_ARGUMENT,{})),Ub(this).toString(10)}toHexString(){return this._hex}toJSON(e){return{type:"BigNumber",hex:this.toHexString()}}static from(e){if(e instanceof Db)return e;if("string"==typeof e)return e.match(/^-?0x[0-9a-f]+$/i)?new Db(Pb,Fb(e)):e.match(/^-?[0-9]+$/)?new Db(Pb,Fb(new Nb(e))):xb.throwArgumentError("invalid BigNumber string","value",e);if("number"==typeof e)return e%1&&qb("underflow","BigNumber.from",e),(e>=Mb||e<=-Mb)&&qb("overflow","BigNumber.from",e),Db.from(String(e));const t=e;if("bigint"==typeof t)return Db.from(t.toString());if(Ab(t))return Db.from(Ob(t));if(t)if(t.toHexString){const e=t.toHexString();if("string"==typeof e)return Db.from(e)}else{let e=t._hex;if(null==e&&"BigNumber"===t.type&&(e=t.hex),"string"==typeof e&&(Rb(e)||"-"===e[0]&&Rb(e.substring(1))))return Db.from(e)}return xb.throwArgumentError("invalid BigNumber value","value",e)}static isBigNumber(e){return!(!e||!e._isBigNumber)}}function Fb(e){if("string"!=typeof e)return Fb(e.toString(16));if("-"===e[0])return"-"===(e=e.substring(1))[0]&&xb.throwArgumentError("invalid hex","value",e),"0x00"===(e=Fb(e))?e:"-"+e;if("0x"!==e.substring(0,2)&&(e="0x"+e),"0x"===e)return"0x00";for(e.length%2&&(e="0x0"+e.substring(2));e.length>4&&"0x00"===e.substring(0,4);)e="0x"+e.substring(4);return e}function Lb(e){return Db.from(Fb(e))}function Ub(e){const t=Db.from(e).toHexString();return"-"===t[0]?new Nb("-"+t.substring(3),16):new Nb(t.substring(2),16)}function qb(e,t,n){const r={fault:e,operation:t};return null!=n&&(r.value=n),xb.throwError(e,bb.errors.NUMERIC_FAULT,r)}var jb=function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};const Gb=new bb("properties/5.7.0");function Hb(e,t,n){Object.defineProperty(e,t,{enumerable:!0,value:n,writable:!1})}function zb(e,t){for(let n=0;n<32;n++){if(e[t])return e[t];if(!e.prototype||"object"!=typeof e.prototype)break;e=Object.getPrototypeOf(e.prototype).constructor}return null}function Wb(e){return jb(this,void 0,void 0,(function*(){const t=Object.keys(e).map((t=>{const n=e[t];return Promise.resolve(n).then((e=>({key:t,value:e})))}));return(yield Promise.all(t)).reduce(((e,t)=>(e[t.key]=t.value,e)),{})}))}function Vb(e){const t={};for(const n in e)t[n]=e[n];return t}const Kb={bigint:!0,boolean:!0,function:!0,number:!0,string:!0};function Xb(e){if(null==e||Kb[typeof e])return!0;if(Array.isArray(e)||"object"==typeof e){if(!Object.isFrozen(e))return!1;const t=Object.keys(e);for(let n=0;n<t.length;n++){let r=null;try{r=e[t[n]]}catch(e){continue}if(!Xb(r))return!1}return!0}return Gb.throwArgumentError("Cannot deepCopy "+typeof e,"object",e)}function Jb(e){if(Xb(e))return e;if(Array.isArray(e))return Object.freeze(e.map((e=>Yb(e))));if("object"==typeof e){const t={};for(const n in e){const r=e[n];void 0!==r&&Hb(t,n,Yb(r))}return t}return Gb.throwArgumentError("Cannot deepCopy "+typeof e,"object",e)}function Yb(e){return Jb(e)}class Qb{constructor(e){for(const t in e)this[t]=Yb(e[t])}}const $b="abi/5.7.0",Zb=new bb($b),ev={};let tv={calldata:!0,memory:!0,storage:!0},nv={calldata:!0,memory:!0};function rv(e,t){if("bytes"===e||"string"===e){if(tv[t])return!0}else if("address"===e){if("payable"===t)return!0}else if((e.indexOf("[")>=0||"tuple"===e)&&nv[t])return!0;return(tv[t]||"payable"===t)&&Zb.throwArgumentError("invalid modifier","name",t),!1}function iv(e,t){for(let n in t)Hb(e,n,t[n])}const av=Object.freeze({sighash:"sighash",minimal:"minimal",full:"full",json:"json"}),ov=new RegExp(/^(.*)\[([0-9]*)\]$/);class sv{constructor(e,t){e!==ev&&Zb.throwError("use fromString",bb.errors.UNSUPPORTED_OPERATION,{operation:"new ParamType()"}),iv(this,t);let n=this.type.match(ov);iv(this,n?{arrayLength:parseInt(n[2]||"-1"),arrayChildren:sv.fromObject({type:n[1],components:this.components}),baseType:"array"}:{arrayLength:null,arrayChildren:null,baseType:null!=this.components?"tuple":this.type}),this._isParamType=!0,Object.freeze(this)}format(e){if(e||(e=av.sighash),av[e]||Zb.throwArgumentError("invalid format type","format",e),e===av.json){let t={type:"tuple"===this.baseType?"tuple":this.type,name:this.name||void 0};return"boolean"==typeof this.indexed&&(t.indexed=this.indexed),this.components&&(t.components=this.components.map((t=>JSON.parse(t.format(e))))),JSON.stringify(t)}let t="";return"array"===this.baseType?(t+=this.arrayChildren.format(e),t+="["+(this.arrayLength<0?"":String(this.arrayLength))+"]"):"tuple"===this.baseType?(e!==av.sighash&&(t+=this.type),t+="("+this.components.map((t=>t.format(e))).join(e===av.full?", ":",")+")"):t+=this.type,e!==av.sighash&&(!0===this.indexed&&(t+=" indexed"),e===av.full&&this.name&&(t+=" "+this.name)),t}static from(e,t){return"string"==typeof e?sv.fromString(e,t):sv.fromObject(e)}static fromObject(e){return sv.isParamType(e)?e:new sv(ev,{name:e.name||null,type:bv(e.type),indexed:null==e.indexed?null:!!e.indexed,components:e.components?e.components.map(sv.fromObject):null})}static fromString(e,t){return n=function(e,t){let n=e;function r(t){Zb.throwArgumentError(`unexpected character at position ${t}`,"param",e)}function i(e){let n={type:"",name:"",parent:e,state:{allowType:!0}};return t&&(n.indexed=!1),n}e=e.replace(/\s/g," ");let a={type:"",name:"",state:{allowType:!0}},o=a;for(let n=0;n<e.length;n++){let a=e[n];switch(a){case"(":o.state.allowType&&""===o.type?o.type="tuple":o.state.allowParams||r(n),o.state.allowType=!1,o.type=bv(o.type),o.components=[i(o)],o=o.components[0];break;case")":delete o.state,"indexed"===o.name&&(t||r(n),o.indexed=!0,o.name=""),rv(o.type,o.name)&&(o.name=""),o.type=bv(o.type);let e=o;o=o.parent,o||r(n),delete e.parent,o.state.allowParams=!1,o.state.allowName=!0,o.state.allowArray=!0;break;case",":delete o.state,"indexed"===o.name&&(t||r(n),o.indexed=!0,o.name=""),rv(o.type,o.name)&&(o.name=""),o.type=bv(o.type);let s=i(o.parent);o.parent.components.push(s),delete o.parent,o=s;break;case" ":o.state.allowType&&""!==o.type&&(o.type=bv(o.type),delete o.state.allowType,o.state.allowName=!0,o.state.allowParams=!0),o.state.allowName&&""!==o.name&&("indexed"===o.name?(t||r(n),o.indexed&&r(n),o.indexed=!0,o.name=""):rv(o.type,o.name)?o.name="":o.state.allowName=!1);break;case"[":o.state.allowArray||r(n),o.type+=a,o.state.allowArray=!1,o.state.allowName=!1,o.state.readArray=!0;break;case"]":o.state.readArray||r(n),o.type+=a,o.state.readArray=!1,o.state.allowArray=!0,o.state.allowName=!0;break;default:o.state.allowType?(o.type+=a,o.state.allowParams=!0,o.state.allowArray=!0):o.state.allowName?(o.name+=a,delete o.state.allowArray):o.state.readArray?o.type+=a:r(n)}}return o.parent&&Zb.throwArgumentError("unexpected eof","param",e),delete a.state,"indexed"===o.name?(t||r(n.length-7),o.indexed&&r(n.length-7),o.indexed=!0,o.name=""):rv(o.type,o.name)&&(o.name=""),a.type=bv(a.type),a}(e,!!t),sv.fromObject({name:n.name,type:n.type,indexed:n.indexed,components:n.components});var n}static isParamType(e){return!(null==e||!e._isParamType)}}function uv(e,t){return function(e){e=e.trim();let t=[],n="",r=0;for(let i=0;i<e.length;i++){let a=e[i];","===a&&0===r?(t.push(n),n=""):(n+=a,"("===a?r++:")"===a&&(r--,-1===r&&Zb.throwArgumentError("unbalanced parenthesis","value",e)))}n&&t.push(n);return t}(e).map((e=>sv.fromString(e,t)))}class cv{constructor(e,t){e!==ev&&Zb.throwError("use a static from method",bb.errors.UNSUPPORTED_OPERATION,{operation:"new Fragment()"}),iv(this,t),this._isFragment=!0,Object.freeze(this)}static from(e){return cv.isFragment(e)?e:"string"==typeof e?cv.fromString(e):cv.fromObject(e)}static fromObject(e){if(cv.isFragment(e))return e;switch(e.type){case"function":return mv.fromObject(e);case"event":return lv.fromObject(e);case"constructor":return hv.fromObject(e);case"error":return gv.fromObject(e);case"fallback":case"receive":return null}return Zb.throwArgumentError("invalid fragment object","value",e)}static fromString(e){return"event"===(e=(e=(e=e.replace(/\s/g," ")).replace(/\(/g," (").replace(/\)/g,") ").replace(/\s+/g," ")).trim()).split(" ")[0]?lv.fromString(e.substring(5).trim()):"function"===e.split(" ")[0]?mv.fromString(e.substring(8).trim()):"constructor"===e.split("(")[0].trim()?hv.fromString(e.trim()):"error"===e.split(" ")[0]?gv.fromString(e.substring(5).trim()):Zb.throwArgumentError("unsupported fragment","value",e)}static isFragment(e){return!(!e||!e._isFragment)}}class lv extends cv{format(e){if(e||(e=av.sighash),av[e]||Zb.throwArgumentError("invalid format type","format",e),e===av.json)return JSON.stringify({type:"event",anonymous:this.anonymous,name:this.name,inputs:this.inputs.map((t=>JSON.parse(t.format(e))))});let t="";return e!==av.sighash&&(t+="event "),t+=this.name+"("+this.inputs.map((t=>t.format(e))).join(e===av.full?", ":",")+") ",e!==av.sighash&&this.anonymous&&(t+="anonymous "),t.trim()}static from(e){return"string"==typeof e?lv.fromString(e):lv.fromObject(e)}static fromObject(e){if(lv.isEventFragment(e))return e;"event"!==e.type&&Zb.throwArgumentError("invalid event object","value",e);const t={name:Tv(e.name),anonymous:e.anonymous,inputs:e.inputs?e.inputs.map(sv.fromObject):[],type:"event"};return new lv(ev,t)}static fromString(e){let t=e.match(wv);t||Zb.throwArgumentError("invalid event string","value",e);let n=!1;return t[3].split(" ").forEach((e=>{switch(e.trim()){case"anonymous":n=!0;break;case"":break;default:Zb.warn("unknown modifier: "+e)}})),lv.fromObject({name:t[1].trim(),anonymous:n,inputs:uv(t[2],!0),type:"event"})}static isEventFragment(e){return e&&e._isFragment&&"event"===e.type}}function dv(e,t){t.gas=null;let n=e.split("@");return 1!==n.length?(n.length>2&&Zb.throwArgumentError("invalid human-readable ABI signature","value",e),n[1].match(/^[0-9]+$/)||Zb.throwArgumentError("invalid human-readable ABI signature gas","value",e),t.gas=Db.from(n[1]),n[0]):e}function fv(e,t){t.constant=!1,t.payable=!1,t.stateMutability="nonpayable",e.split(" ").forEach((e=>{switch(e.trim()){case"constant":t.constant=!0;break;case"payable":t.payable=!0,t.stateMutability="payable";break;case"nonpayable":t.payable=!1,t.stateMutability="nonpayable";break;case"pure":t.constant=!0,t.stateMutability="pure";break;case"view":t.constant=!0,t.stateMutability="view";break;case"external":case"public":case"":break;default:console.log("unknown modifier: "+e)}}))}function pv(e){let t={constant:!1,payable:!0,stateMutability:"payable"};return null!=e.stateMutability?(t.stateMutability=e.stateMutability,t.constant="view"===t.stateMutability||"pure"===t.stateMutability,null!=e.constant&&!!e.constant!==t.constant&&Zb.throwArgumentError("cannot have constant function with mutability "+t.stateMutability,"value",e),t.payable="payable"===t.stateMutability,null!=e.payable&&!!e.payable!==t.payable&&Zb.throwArgumentError("cannot have payable function with mutability "+t.stateMutability,"value",e)):null!=e.payable?(t.payable=!!e.payable,null!=e.constant||t.payable||"constructor"===e.type||Zb.throwArgumentError("unable to determine stateMutability","value",e),t.constant=!!e.constant,t.constant?t.stateMutability="view":t.stateMutability=t.payable?"payable":"nonpayable",t.payable&&t.constant&&Zb.throwArgumentError("cannot have constant payable function","value",e)):null!=e.constant?(t.constant=!!e.constant,t.payable=!t.constant,t.stateMutability=t.constant?"view":"payable"):"constructor"!==e.type&&Zb.throwArgumentError("unable to determine stateMutability","value",e),t}class hv extends cv{format(e){if(e||(e=av.sighash),av[e]||Zb.throwArgumentError("invalid format type","format",e),e===av.json)return JSON.stringify({type:"constructor",stateMutability:"nonpayable"!==this.stateMutability?this.stateMutability:void 0,payable:this.payable,gas:this.gas?this.gas.toNumber():void 0,inputs:this.inputs.map((t=>JSON.parse(t.format(e))))});e===av.sighash&&Zb.throwError("cannot format a constructor for sighash",bb.errors.UNSUPPORTED_OPERATION,{operation:"format(sighash)"});let t="constructor("+this.inputs.map((t=>t.format(e))).join(e===av.full?", ":",")+") ";return this.stateMutability&&"nonpayable"!==this.stateMutability&&(t+=this.stateMutability+" "),t.trim()}static from(e){return"string"==typeof e?hv.fromString(e):hv.fromObject(e)}static fromObject(e){if(hv.isConstructorFragment(e))return e;"constructor"!==e.type&&Zb.throwArgumentError("invalid constructor object","value",e);let t=pv(e);t.constant&&Zb.throwArgumentError("constructor cannot be constant","value",e);const n={name:null,type:e.type,inputs:e.inputs?e.inputs.map(sv.fromObject):[],payable:t.payable,stateMutability:t.stateMutability,gas:e.gas?Db.from(e.gas):null};return new hv(ev,n)}static fromString(e){let t={type:"constructor"},n=(e=dv(e,t)).match(wv);return n&&"constructor"===n[1].trim()||Zb.throwArgumentError("invalid constructor string","value",e),t.inputs=uv(n[2].trim(),!1),fv(n[3].trim(),t),hv.fromObject(t)}static isConstructorFragment(e){return e&&e._isFragment&&"constructor"===e.type}}class mv extends hv{format(e){if(e||(e=av.sighash),av[e]||Zb.throwArgumentError("invalid format type","format",e),e===av.json)return JSON.stringify({type:"function",name:this.name,constant:this.constant,stateMutability:"nonpayable"!==this.stateMutability?this.stateMutability:void 0,payable:this.payable,gas:this.gas?this.gas.toNumber():void 0,inputs:this.inputs.map((t=>JSON.parse(t.format(e)))),outputs:this.outputs.map((t=>JSON.parse(t.format(e))))});let t="";return e!==av.sighash&&(t+="function "),t+=this.name+"("+this.inputs.map((t=>t.format(e))).join(e===av.full?", ":",")+") ",e!==av.sighash&&(this.stateMutability?"nonpayable"!==this.stateMutability&&(t+=this.stateMutability+" "):this.constant&&(t+="view "),this.outputs&&this.outputs.length&&(t+="returns ("+this.outputs.map((t=>t.format(e))).join(", ")+") "),null!=this.gas&&(t+="@"+this.gas.toString()+" ")),t.trim()}static from(e){return"string"==typeof e?mv.fromString(e):mv.fromObject(e)}static fromObject(e){if(mv.isFunctionFragment(e))return e;"function"!==e.type&&Zb.throwArgumentError("invalid function object","value",e);let t=pv(e);const n={type:e.type,name:Tv(e.name),constant:t.constant,inputs:e.inputs?e.inputs.map(sv.fromObject):[],outputs:e.outputs?e.outputs.map(sv.fromObject):[],payable:t.payable,stateMutability:t.stateMutability,gas:e.gas?Db.from(e.gas):null};return new mv(ev,n)}static fromString(e){let t={type:"function"},n=(e=dv(e,t)).split(" returns ");n.length>2&&Zb.throwArgumentError("invalid function string","value",e);let r=n[0].match(wv);if(r||Zb.throwArgumentError("invalid function signature","value",e),t.name=r[1].trim(),t.name&&Tv(t.name),t.inputs=uv(r[2],!1),fv(r[3].trim(),t),n.length>1){let r=n[1].match(wv);""==r[1].trim()&&""==r[3].trim()||Zb.throwArgumentError("unexpected tokens","value",e),t.outputs=uv(r[2],!1)}else t.outputs=[];return mv.fromObject(t)}static isFunctionFragment(e){return e&&e._isFragment&&"function"===e.type}}function yv(e){const t=e.format();return"Error(string)"!==t&&"Panic(uint256)"!==t||Zb.throwArgumentError(`cannot specify user defined ${t} error`,"fragment",e),e}class gv extends cv{format(e){if(e||(e=av.sighash),av[e]||Zb.throwArgumentError("invalid format type","format",e),e===av.json)return JSON.stringify({type:"error",name:this.name,inputs:this.inputs.map((t=>JSON.parse(t.format(e))))});let t="";return e!==av.sighash&&(t+="error "),t+=this.name+"("+this.inputs.map((t=>t.format(e))).join(e===av.full?", ":",")+") ",t.trim()}static from(e){return"string"==typeof e?gv.fromString(e):gv.fromObject(e)}static fromObject(e){if(gv.isErrorFragment(e))return e;"error"!==e.type&&Zb.throwArgumentError("invalid error object","value",e);const t={type:e.type,name:Tv(e.name),inputs:e.inputs?e.inputs.map(sv.fromObject):[]};return yv(new gv(ev,t))}static fromString(e){let t={type:"error"},n=e.match(wv);return n||Zb.throwArgumentError("invalid error signature","value",e),t.name=n[1].trim(),t.name&&Tv(t.name),t.inputs=uv(n[2],!1),yv(gv.fromObject(t))}static isErrorFragment(e){return e&&e._isFragment&&"error"===e.type}}function bv(e){return e.match(/^uint($|[^1-9])/)?e="uint256"+e.substring(4):e.match(/^int($|[^1-9])/)&&(e="int256"+e.substring(3)),e}const vv=new RegExp("^[a-zA-Z$_][a-zA-Z0-9$_]*$");function Tv(e){return e&&e.match(vv)||Zb.throwArgumentError(`invalid identifier "${e}"`,"value",e),e}const wv=new RegExp("^([^)(]*)\\((.*)\\)([^)(]*)$");const Ev=new bb($b);class Av{constructor(e,t,n,r){this.name=e,this.type=t,this.localName=n,this.dynamic=r}_throwError(e,t){Ev.throwArgumentError(e,this.localName,t)}}class _v{constructor(e){Hb(this,"wordSize",e||32),this._data=[],this._dataLength=0,this._padding=new Uint8Array(e)}get data(){return function(e){let t="0x";return e.forEach((e=>{t+=Ob(e).substring(2)})),t}(this._data)}get length(){return this._dataLength}_writeData(e){return this._data.push(e),this._dataLength+=e.length,e.length}appendWriter(e){return this._writeData(Ib(e._data))}writeBytes(e){let t=_b(e);const n=t.length%this.wordSize;return n&&(t=Ib([t,this._padding.slice(n)])),this._writeData(t)}_getValue(e){let t=_b(Db.from(e));return t.length>this.wordSize&&Ev.throwError("value out-of-bounds",bb.errors.BUFFER_OVERRUN,{length:this.wordSize,offset:t.length}),t.length%this.wordSize&&(t=Ib([this._padding.slice(t.length%this.wordSize),t])),t}writeValue(e){return this._writeData(this._getValue(e))}writeUpdatableValue(){const e=this._data.length;return this._data.push(this._padding),this._dataLength+=this.wordSize,t=>{this._data[e]=this._getValue(t)}}}class Iv{constructor(e,t,n,r){Hb(this,"_data",_b(e)),Hb(this,"wordSize",t||32),Hb(this,"_coerceFunc",n),Hb(this,"allowLoose",r),this._offset=0}get data(){return Ob(this._data)}get consumed(){return this._offset}static coerce(e,t){let n=e.match("^u?int([0-9]+)$");return n&&parseInt(n[1])<=48&&(t=t.toNumber()),t}coerce(e,t){return this._coerceFunc?this._coerceFunc(e,t):Iv.coerce(e,t)}_peekBytes(e,t,n){let r=Math.ceil(t/this.wordSize)*this.wordSize;return this._offset+r>this._data.length&&(this.allowLoose&&n&&this._offset+t<=this._data.length?r=t:Ev.throwError("data out-of-bounds",bb.errors.BUFFER_OVERRUN,{length:this._data.length,offset:this._offset+r})),this._data.slice(this._offset,this._offset+r)}subReader(e){return new Iv(this._data.slice(this._offset+e),this.wordSize,this._coerceFunc,this.allowLoose)}readBytes(e,t){let n=this._peekBytes(0,e,!!t);return this._offset+=n.length,n.slice(0,e)}readValue(){return Db.from(this.readBytes(this.wordSize))}}var Rv={exports:{}};
9
+ */!function(e){!function(){var t="input is invalid type",n="object"==typeof window,r=n?window:{};r.JS_SHA3_NO_WINDOW&&(n=!1);var i=!n&&"object"==typeof self;!r.JS_SHA3_NO_NODE_JS&&"object"==typeof process&&{node:"20.10.0",acorn:"8.10.0",ada:"2.7.2",ares:"1.20.1",base64:"0.5.0",brotli:"1.0.9",cjs_module_lexer:"1.2.2",cldr:"43.1",icu:"73.2",llhttp:"8.1.1",modules:"115",napi:"9",nghttp2:"1.57.0",nghttp3:"0.7.0",ngtcp2:"0.8.1",openssl:"3.0.12+quic",simdutf:"3.2.18",tz:"2023c",undici:"5.26.4",unicode:"15.0",uv:"1.46.0",uvwasi:"0.0.19",v8:"11.3.244.8-node.25",zlib:"1.2.13.1-motley"}&&process.versions.node?r=Ft:i&&(r=self);var a=!r.JS_SHA3_NO_COMMON_JS&&e.exports,o=!r.JS_SHA3_NO_ARRAY_BUFFER&&"undefined"!=typeof ArrayBuffer,s="0123456789abcdef".split(""),u=[4,1024,262144,67108864],c=[0,8,16,24],l=[1,0,32898,0,32906,2147483648,2147516416,2147483648,32907,0,2147483649,0,2147516545,2147483648,32777,2147483648,138,0,136,0,2147516425,0,2147483658,0,2147516555,0,139,2147483648,32905,2147483648,32771,2147483648,32770,2147483648,128,2147483648,32778,0,2147483658,2147483648,2147516545,2147483648,32896,2147483648,2147483649,0,2147516424,2147483648],d=[224,256,384,512],f=[128,256],p=["hex","buffer","arrayBuffer","array","digest"],h={128:168,256:136};!r.JS_SHA3_NO_NODE_JS&&Array.isArray||(Array.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),!o||!r.JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW&&ArrayBuffer.isView||(ArrayBuffer.isView=function(e){return"object"==typeof e&&e.buffer&&e.buffer.constructor===ArrayBuffer});for(var m=function(e,t,n){return function(r){return new S(e,t,e).update(r)[n]()}},y=function(e,t,n){return function(r,i){return new S(e,t,i).update(r)[n]()}},g=function(e,t,n){return function(t,r,i,a){return E["cshake"+e].update(t,r,i,a)[n]()}},b=function(e,t,n){return function(t,r,i,a){return E["kmac"+e].update(t,r,i,a)[n]()}},v=function(e,t,n,r){for(var i=0;i<p.length;++i){var a=p[i];e[a]=t(n,r,a)}return e},T=function(e,t){var n=m(e,t,"hex");return n.create=function(){return new S(e,t,e)},n.update=function(e){return n.create().update(e)},v(n,m,e,t)},w=[{name:"keccak",padding:[1,256,65536,16777216],bits:d,createMethod:T},{name:"sha3",padding:[6,1536,393216,100663296],bits:d,createMethod:T},{name:"shake",padding:[31,7936,2031616,520093696],bits:f,createMethod:function(e,t){var n=y(e,t,"hex");return n.create=function(n){return new S(e,t,n)},n.update=function(e,t){return n.create(t).update(e)},v(n,y,e,t)}},{name:"cshake",padding:u,bits:f,createMethod:function(e,t){var n=h[e],r=g(e,0,"hex");return r.create=function(r,i,a){return i||a?new S(e,t,r).bytepad([i,a],n):E["shake"+e].create(r)},r.update=function(e,t,n,i){return r.create(t,n,i).update(e)},v(r,g,e,t)}},{name:"kmac",padding:u,bits:f,createMethod:function(e,t){var n=h[e],r=b(e,0,"hex");return r.create=function(r,i,a){return new N(e,t,i).bytepad(["KMAC",a],n).bytepad([r],n)},r.update=function(e,t,n,i){return r.create(e,n,i).update(t)},v(r,b,e,t)}}],E={},A=[],_=0;_<w.length;++_)for(var I=w[_],R=I.bits,C=0;C<R.length;++C){var O=I.name+"_"+R[C];if(A.push(O),E[O]=I.createMethod(R[C],I.padding),"sha3"!==I.name){var k=I.name+R[C];A.push(k),E[k]=E[O]}}function S(e,t,n){this.blocks=[],this.s=[],this.padding=t,this.outputBits=n,this.reset=!0,this.finalized=!1,this.block=0,this.start=0,this.blockCount=1600-(e<<1)>>5,this.byteCount=this.blockCount<<2,this.outputBlocks=n>>5,this.extraBytes=(31&n)>>3;for(var r=0;r<50;++r)this.s[r]=0}function N(e,t,n){S.call(this,e,t,n)}S.prototype.update=function(e){if(this.finalized)throw new Error("finalize already called");var n,r=typeof e;if("string"!==r){if("object"!==r)throw new Error(t);if(null===e)throw new Error(t);if(o&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!(Array.isArray(e)||o&&ArrayBuffer.isView(e)))throw new Error(t);n=!0}for(var i,a,s=this.blocks,u=this.byteCount,l=e.length,d=this.blockCount,f=0,p=this.s;f<l;){if(this.reset)for(this.reset=!1,s[0]=this.block,i=1;i<d+1;++i)s[i]=0;if(n)for(i=this.start;f<l&&i<u;++f)s[i>>2]|=e[f]<<c[3&i++];else for(i=this.start;f<l&&i<u;++f)(a=e.charCodeAt(f))<128?s[i>>2]|=a<<c[3&i++]:a<2048?(s[i>>2]|=(192|a>>6)<<c[3&i++],s[i>>2]|=(128|63&a)<<c[3&i++]):a<55296||a>=57344?(s[i>>2]|=(224|a>>12)<<c[3&i++],s[i>>2]|=(128|a>>6&63)<<c[3&i++],s[i>>2]|=(128|63&a)<<c[3&i++]):(a=65536+((1023&a)<<10|1023&e.charCodeAt(++f)),s[i>>2]|=(240|a>>18)<<c[3&i++],s[i>>2]|=(128|a>>12&63)<<c[3&i++],s[i>>2]|=(128|a>>6&63)<<c[3&i++],s[i>>2]|=(128|63&a)<<c[3&i++]);if(this.lastByteIndex=i,i>=u){for(this.start=i-u,this.block=s[d],i=0;i<d;++i)p[i]^=s[i];x(p),this.reset=!0}else this.start=i}return this},S.prototype.encode=function(e,t){var n=255&e,r=1,i=[n];for(n=255&(e>>=8);n>0;)i.unshift(n),n=255&(e>>=8),++r;return t?i.push(r):i.unshift(r),this.update(i),i.length},S.prototype.encodeString=function(e){var n,r=typeof e;if("string"!==r){if("object"!==r)throw new Error(t);if(null===e)throw new Error(t);if(o&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!(Array.isArray(e)||o&&ArrayBuffer.isView(e)))throw new Error(t);n=!0}var i=0,a=e.length;if(n)i=a;else for(var s=0;s<e.length;++s){var u=e.charCodeAt(s);u<128?i+=1:u<2048?i+=2:u<55296||u>=57344?i+=3:(u=65536+((1023&u)<<10|1023&e.charCodeAt(++s)),i+=4)}return i+=this.encode(8*i),this.update(e),i},S.prototype.bytepad=function(e,t){for(var n=this.encode(t),r=0;r<e.length;++r)n+=this.encodeString(e[r]);var i=t-n%t,a=[];return a.length=i,this.update(a),this},S.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var e=this.blocks,t=this.lastByteIndex,n=this.blockCount,r=this.s;if(e[t>>2]|=this.padding[3&t],this.lastByteIndex===this.byteCount)for(e[0]=e[n],t=1;t<n+1;++t)e[t]=0;for(e[n-1]|=2147483648,t=0;t<n;++t)r[t]^=e[t];x(r)}},S.prototype.toString=S.prototype.hex=function(){this.finalize();for(var e,t=this.blockCount,n=this.s,r=this.outputBlocks,i=this.extraBytes,a=0,o=0,u="";o<r;){for(a=0;a<t&&o<r;++a,++o)e=n[a],u+=s[e>>4&15]+s[15&e]+s[e>>12&15]+s[e>>8&15]+s[e>>20&15]+s[e>>16&15]+s[e>>28&15]+s[e>>24&15];o%t==0&&(x(n),a=0)}return i&&(e=n[a],u+=s[e>>4&15]+s[15&e],i>1&&(u+=s[e>>12&15]+s[e>>8&15]),i>2&&(u+=s[e>>20&15]+s[e>>16&15])),u},S.prototype.arrayBuffer=function(){this.finalize();var e,t=this.blockCount,n=this.s,r=this.outputBlocks,i=this.extraBytes,a=0,o=0,s=this.outputBits>>3;e=i?new ArrayBuffer(r+1<<2):new ArrayBuffer(s);for(var u=new Uint32Array(e);o<r;){for(a=0;a<t&&o<r;++a,++o)u[o]=n[a];o%t==0&&x(n)}return i&&(u[a]=n[a],e=e.slice(0,s)),e},S.prototype.buffer=S.prototype.arrayBuffer,S.prototype.digest=S.prototype.array=function(){this.finalize();for(var e,t,n=this.blockCount,r=this.s,i=this.outputBlocks,a=this.extraBytes,o=0,s=0,u=[];s<i;){for(o=0;o<n&&s<i;++o,++s)e=s<<2,t=r[o],u[e]=255&t,u[e+1]=t>>8&255,u[e+2]=t>>16&255,u[e+3]=t>>24&255;s%n==0&&x(r)}return a&&(e=s<<2,t=r[o],u[e]=255&t,a>1&&(u[e+1]=t>>8&255),a>2&&(u[e+2]=t>>16&255)),u},N.prototype=new S,N.prototype.finalize=function(){return this.encode(this.outputBits,!0),S.prototype.finalize.call(this)};var x=function(e){var t,n,r,i,a,o,s,u,c,d,f,p,h,m,y,g,b,v,T,w,E,A,_,I,R,C,O,k,S,N,x,P,M,B,D,F,L,U,q,j,G,H,z,W,V,K,X,J,Y,Q,$,Z,ee,te,ne,re,ie,ae,oe,se,ue,ce,le;for(r=0;r<48;r+=2)i=e[0]^e[10]^e[20]^e[30]^e[40],a=e[1]^e[11]^e[21]^e[31]^e[41],o=e[2]^e[12]^e[22]^e[32]^e[42],s=e[3]^e[13]^e[23]^e[33]^e[43],u=e[4]^e[14]^e[24]^e[34]^e[44],c=e[5]^e[15]^e[25]^e[35]^e[45],d=e[6]^e[16]^e[26]^e[36]^e[46],f=e[7]^e[17]^e[27]^e[37]^e[47],t=(p=e[8]^e[18]^e[28]^e[38]^e[48])^(o<<1|s>>>31),n=(h=e[9]^e[19]^e[29]^e[39]^e[49])^(s<<1|o>>>31),e[0]^=t,e[1]^=n,e[10]^=t,e[11]^=n,e[20]^=t,e[21]^=n,e[30]^=t,e[31]^=n,e[40]^=t,e[41]^=n,t=i^(u<<1|c>>>31),n=a^(c<<1|u>>>31),e[2]^=t,e[3]^=n,e[12]^=t,e[13]^=n,e[22]^=t,e[23]^=n,e[32]^=t,e[33]^=n,e[42]^=t,e[43]^=n,t=o^(d<<1|f>>>31),n=s^(f<<1|d>>>31),e[4]^=t,e[5]^=n,e[14]^=t,e[15]^=n,e[24]^=t,e[25]^=n,e[34]^=t,e[35]^=n,e[44]^=t,e[45]^=n,t=u^(p<<1|h>>>31),n=c^(h<<1|p>>>31),e[6]^=t,e[7]^=n,e[16]^=t,e[17]^=n,e[26]^=t,e[27]^=n,e[36]^=t,e[37]^=n,e[46]^=t,e[47]^=n,t=d^(i<<1|a>>>31),n=f^(a<<1|i>>>31),e[8]^=t,e[9]^=n,e[18]^=t,e[19]^=n,e[28]^=t,e[29]^=n,e[38]^=t,e[39]^=n,e[48]^=t,e[49]^=n,m=e[0],y=e[1],K=e[11]<<4|e[10]>>>28,X=e[10]<<4|e[11]>>>28,k=e[20]<<3|e[21]>>>29,S=e[21]<<3|e[20]>>>29,se=e[31]<<9|e[30]>>>23,ue=e[30]<<9|e[31]>>>23,H=e[40]<<18|e[41]>>>14,z=e[41]<<18|e[40]>>>14,B=e[2]<<1|e[3]>>>31,D=e[3]<<1|e[2]>>>31,g=e[13]<<12|e[12]>>>20,b=e[12]<<12|e[13]>>>20,J=e[22]<<10|e[23]>>>22,Y=e[23]<<10|e[22]>>>22,N=e[33]<<13|e[32]>>>19,x=e[32]<<13|e[33]>>>19,ce=e[42]<<2|e[43]>>>30,le=e[43]<<2|e[42]>>>30,te=e[5]<<30|e[4]>>>2,ne=e[4]<<30|e[5]>>>2,F=e[14]<<6|e[15]>>>26,L=e[15]<<6|e[14]>>>26,v=e[25]<<11|e[24]>>>21,T=e[24]<<11|e[25]>>>21,Q=e[34]<<15|e[35]>>>17,$=e[35]<<15|e[34]>>>17,P=e[45]<<29|e[44]>>>3,M=e[44]<<29|e[45]>>>3,I=e[6]<<28|e[7]>>>4,R=e[7]<<28|e[6]>>>4,re=e[17]<<23|e[16]>>>9,ie=e[16]<<23|e[17]>>>9,U=e[26]<<25|e[27]>>>7,q=e[27]<<25|e[26]>>>7,w=e[36]<<21|e[37]>>>11,E=e[37]<<21|e[36]>>>11,Z=e[47]<<24|e[46]>>>8,ee=e[46]<<24|e[47]>>>8,W=e[8]<<27|e[9]>>>5,V=e[9]<<27|e[8]>>>5,C=e[18]<<20|e[19]>>>12,O=e[19]<<20|e[18]>>>12,ae=e[29]<<7|e[28]>>>25,oe=e[28]<<7|e[29]>>>25,j=e[38]<<8|e[39]>>>24,G=e[39]<<8|e[38]>>>24,A=e[48]<<14|e[49]>>>18,_=e[49]<<14|e[48]>>>18,e[0]=m^~g&v,e[1]=y^~b&T,e[10]=I^~C&k,e[11]=R^~O&S,e[20]=B^~F&U,e[21]=D^~L&q,e[30]=W^~K&J,e[31]=V^~X&Y,e[40]=te^~re&ae,e[41]=ne^~ie&oe,e[2]=g^~v&w,e[3]=b^~T&E,e[12]=C^~k&N,e[13]=O^~S&x,e[22]=F^~U&j,e[23]=L^~q&G,e[32]=K^~J&Q,e[33]=X^~Y&$,e[42]=re^~ae&se,e[43]=ie^~oe&ue,e[4]=v^~w&A,e[5]=T^~E&_,e[14]=k^~N&P,e[15]=S^~x&M,e[24]=U^~j&H,e[25]=q^~G&z,e[34]=J^~Q&Z,e[35]=Y^~$&ee,e[44]=ae^~se&ce,e[45]=oe^~ue&le,e[6]=w^~A&m,e[7]=E^~_&y,e[16]=N^~P&I,e[17]=x^~M&R,e[26]=j^~H&B,e[27]=G^~z&D,e[36]=Q^~Z&W,e[37]=$^~ee&V,e[46]=se^~ce&te,e[47]=ue^~le&ne,e[8]=A^~m&g,e[9]=_^~y&b,e[18]=P^~I&C,e[19]=M^~R&O,e[28]=H^~B&F,e[29]=z^~D&L,e[38]=Z^~W&K,e[39]=ee^~V&X,e[48]=ce^~te&re,e[49]=le^~ne&ie,e[0]^=l[r],e[1]^=l[r+1]};if(a)e.exports=E;else for(_=0;_<A.length;++_)r[A[_]]=E[A[_]]}()}(Mi);var Bi=Lt(Mi.exports);function Di(e){return"0x"+Bi.keccak_256(sr(e))}var Fi=Object.freeze({__proto__:null,keccak256:Di});const Li=new Zn("rlp/5.7.0");function Ui(e){const t=[];for(;e;)t.unshift(255&e),e>>=8;return t}function qi(e,t,n){let r=0;for(let i=0;i<n;i++)r=256*r+e[t+i];return r}function ji(e){if(Array.isArray(e)){let t=[];if(e.forEach((function(e){t=t.concat(ji(e))})),t.length<=55)return t.unshift(192+t.length),t;const n=Ui(t.length);return n.unshift(247+n.length),n.concat(t)}ir(e)||Li.throwArgumentError("RLP object must be BytesLike","object",e);const t=Array.prototype.slice.call(sr(e));if(1===t.length&&t[0]<=127)return t;if(t.length<=55)return t.unshift(128+t.length),t;const n=Ui(t.length);return n.unshift(183+n.length),n.concat(t)}function Gi(e){return pr(ji(e))}function Hi(e,t,n,r){const i=[];for(;n<t+1+r;){const a=zi(e,n);i.push(a.result),(n+=a.consumed)>t+1+r&&Li.throwError("child data too short",Zn.errors.BUFFER_OVERRUN,{})}return{consumed:1+r,result:i}}function zi(e,t){if(0===e.length&&Li.throwError("data too short",Zn.errors.BUFFER_OVERRUN,{}),e[t]>=248){const n=e[t]-247;t+1+n>e.length&&Li.throwError("data short segment too short",Zn.errors.BUFFER_OVERRUN,{});const r=qi(e,t+1,n);return t+1+n+r>e.length&&Li.throwError("data long segment too short",Zn.errors.BUFFER_OVERRUN,{}),Hi(e,t,t+1+n,n+r)}if(e[t]>=192){const n=e[t]-192;return t+1+n>e.length&&Li.throwError("data array too short",Zn.errors.BUFFER_OVERRUN,{}),Hi(e,t,t+1,n)}if(e[t]>=184){const n=e[t]-183;t+1+n>e.length&&Li.throwError("data array too short",Zn.errors.BUFFER_OVERRUN,{});const r=qi(e,t+1,n);t+1+n+r>e.length&&Li.throwError("data array too short",Zn.errors.BUFFER_OVERRUN,{});return{consumed:1+n+r,result:pr(e.slice(t+1+n,t+1+n+r))}}if(e[t]>=128){const n=e[t]-128;t+1+n>e.length&&Li.throwError("data too short",Zn.errors.BUFFER_OVERRUN,{});return{consumed:1+n,result:pr(e.slice(t+1,t+1+n))}}return{consumed:1,result:pr(e[t])}}function Wi(e){const t=sr(e),n=zi(t,0);return n.consumed!==t.length&&Li.throwArgumentError("invalid rlp data","data",e),n.result}var Vi=Object.freeze({__proto__:null,decode:Wi,encode:Gi});const Ki=new Zn("address/5.7.0");function Xi(e){dr(e,20)||Ki.throwArgumentError("invalid address","address",e);const t=(e=e.toLowerCase()).substring(2).split(""),n=new Uint8Array(40);for(let e=0;e<40;e++)n[e]=t[e].charCodeAt(0);const r=sr(Di(n));for(let e=0;e<40;e+=2)r[e>>1]>>4>=8&&(t[e]=t[e].toUpperCase()),(15&r[e>>1])>=8&&(t[e+1]=t[e+1].toUpperCase());return"0x"+t.join("")}const Ji={};for(let e=0;e<10;e++)Ji[String(e)]=String(e);for(let e=0;e<26;e++)Ji[String.fromCharCode(65+e)]=String(10+e);const Yi=Math.floor(function(e){return Math.log10?Math.log10(e):Math.log(e)/Math.LN10}(9007199254740991));function Qi(e){let t=(e=(e=e.toUpperCase()).substring(4)+e.substring(0,2)+"00").split("").map((e=>Ji[e])).join("");for(;t.length>=Yi;){let e=t.substring(0,Yi);t=parseInt(e,10)%97+t.substring(e.length)}let n=String(98-parseInt(t,10)%97);for(;n.length<2;)n="0"+n;return n}function $i(e){let t=null;if("string"!=typeof e&&Ki.throwArgumentError("invalid address","address",e),e.match(/^(0x)?[0-9a-fA-F]{40}$/))"0x"!==e.substring(0,2)&&(e="0x"+e),t=Xi(e),e.match(/([A-F].*[a-f])|([a-f].*[A-F])/)&&t!==e&&Ki.throwArgumentError("bad address checksum","address",e);else if(e.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)){for(e.substring(2,4)!==Qi(e)&&Ki.throwArgumentError("bad icap checksum","address",e),n=e.substring(4),t=new _r(n,36).toString(16);t.length<40;)t="0"+t;t=Xi("0x"+t)}else Ki.throwArgumentError("invalid address","address",e);var n;return t}function Zi(e){try{return $i(e),!0}catch(e){}return!1}function ea(e){let t=(n=$i(e).substring(2),new _r(n,16).toString(36)).toUpperCase();for(var n;t.length<30;)t="0"+t;return"XE"+Qi("XE00"+t)+t}function ta(e){let t=null;try{t=$i(e.from)}catch(t){Ki.throwArgumentError("missing from address","transaction",e)}return $i(mr(Di(Gi([t,cr(sr(kr.from(e.nonce).toHexString()))])),12))}function na(e,t,n){return 32!==hr(t)&&Ki.throwArgumentError("salt must be 32 bytes","salt",t),32!==hr(n)&&Ki.throwArgumentError("initCodeHash must be 32 bytes","initCodeHash",n),$i(mr(Di(ur(["0xff",$i(e),t,n])),12))}var ra=Object.freeze({__proto__:null,getAddress:$i,getContractAddress:ta,getCreate2Address:na,getIcapAddress:ea,isAddress:Zi});let ia=class extends xi{constructor(e){super("address","address",e,!1)}defaultValue(){return"0x0000000000000000000000000000000000000000"}encode(e,t){try{t=$i(t)}catch(e){this._throwError(e.message,t)}return e.writeValue(t)}decode(e){return $i(vr(e.readValue().toHexString(),20))}},aa=class extends xi{constructor(e){super(e.name,e.type,void 0,e.dynamic),this.coder=e}defaultValue(){return this.coder.defaultValue()}encode(e,t){return this.coder.encode(e,t)}decode(e){return this.coder.decode(e)}};const oa=new Zn(oi);function sa(e,t,n){let r=null;if(Array.isArray(n))r=n;else if(n&&"object"==typeof n){let e={};r=t.map((t=>{const r=t.localName;return r||oa.throwError("cannot encode object for signature with missing names",Zn.errors.INVALID_ARGUMENT,{argument:"values",coder:t,value:n}),e[r]&&oa.throwError("cannot encode object for signature with duplicate names",Zn.errors.INVALID_ARGUMENT,{argument:"values",coder:t,value:n}),e[r]=!0,n[r]}))}else oa.throwArgumentError("invalid tuple value","tuple",n);t.length!==r.length&&oa.throwArgumentError("types/value length mismatch","tuple",n);let i=new Pi(e.wordSize),a=new Pi(e.wordSize),o=[];t.forEach(((e,t)=>{let n=r[t];if(e.dynamic){let t=a.length;e.encode(a,n);let r=i.writeUpdatableValue();o.push((e=>{r(e+t)}))}else e.encode(i,n)})),o.forEach((e=>{e(i.length)}));let s=e.appendWriter(i);return s+=e.appendWriter(a),s}function ua(e,t){let n=[],r=e.subReader(0);t.forEach((t=>{let i=null;if(t.dynamic){let n=e.readValue(),a=r.subReader(n.toNumber());try{i=t.decode(a)}catch(e){if(e.code===Zn.errors.BUFFER_OVERRUN)throw e;i=e,i.baseType=t.name,i.name=t.localName,i.type=t.type}}else try{i=t.decode(e)}catch(e){if(e.code===Zn.errors.BUFFER_OVERRUN)throw e;i=e,i.baseType=t.name,i.name=t.localName,i.type=t.type}null!=i&&n.push(i)}));const i=t.reduce(((e,t)=>{const n=t.localName;return n&&(e[n]||(e[n]=0),e[n]++),e}),{});t.forEach(((e,t)=>{let r=e.localName;if(!r||1!==i[r])return;if("length"===r&&(r="_length"),null!=n[r])return;const a=n[t];a instanceof Error?Object.defineProperty(n,r,{enumerable:!0,get:()=>{throw a}}):n[r]=a}));for(let e=0;e<n.length;e++){const t=n[e];t instanceof Error&&Object.defineProperty(n,e,{enumerable:!0,get:()=>{throw t}})}return Object.freeze(n)}let ca=class extends xi{constructor(e,t,n){super("array",e.type+"["+(t>=0?t:"")+"]",n,-1===t||e.dynamic),this.coder=e,this.length=t}defaultValue(){const e=this.coder.defaultValue(),t=[];for(let n=0;n<this.length;n++)t.push(e);return t}encode(e,t){Array.isArray(t)||this._throwError("expected array value",t);let n=this.length;-1===n&&(n=t.length,e.writeValue(t.length)),oa.checkArgumentCount(t.length,n,"coder array"+(this.localName?" "+this.localName:""));let r=[];for(let e=0;e<t.length;e++)r.push(this.coder);return sa(e,r,t)}decode(e){let t=this.length;-1===t&&(t=e.readValue().toNumber(),32*t>e._data.length&&oa.throwError("insufficient data length",Zn.errors.BUFFER_OVERRUN,{length:e._data.length,count:t}));let n=[];for(let e=0;e<t;e++)n.push(new aa(this.coder));return e.coerce(this.name,ua(e,n))}},la=class extends xi{constructor(e){super("bool","bool",e,!1)}defaultValue(){return!1}encode(e,t){return e.writeValue(t?1:0)}decode(e){return e.coerce(this.type,!e.readValue().isZero())}},da=class extends xi{constructor(e,t){super(e,e,t,!0)}defaultValue(){return"0x"}encode(e,t){t=sr(t);let n=e.writeValue(t.length);return n+=e.writeBytes(t),n}decode(e){return e.readBytes(e.readValue().toNumber(),!0)}},fa=class extends da{constructor(e){super("bytes",e)}decode(e){return e.coerce(this.name,pr(super.decode(e)))}},pa=class extends xi{constructor(e,t){let n="bytes"+String(e);super(n,n,t,!1),this.size=e}defaultValue(){return"0x0000000000000000000000000000000000000000000000000000000000000000".substring(0,2+2*this.size)}encode(e,t){let n=sr(t);return n.length!==this.size&&this._throwError("incorrect data length",t),e.writeBytes(n)}decode(e){return e.coerce(this.name,pr(e.readBytes(this.size)))}},ha=class extends xi{constructor(e){super("null","",e,!1)}defaultValue(){return null}encode(e,t){return null!=t&&this._throwError("not null",t),e.writeBytes([])}decode(e){return e.readBytes(0),e.coerce(this.name,null)}};const ma="0x0000000000000000000000000000000000000000",ya=kr.from(-1),ga=kr.from(0),ba=kr.from(1),va=kr.from(2),Ta=kr.from("1000000000000000000"),wa=kr.from("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),Ea=kr.from("-0x8000000000000000000000000000000000000000000000000000000000000000"),Aa=kr.from("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),_a="0x0000000000000000000000000000000000000000000000000000000000000000";var Ia=Object.freeze({__proto__:null,AddressZero:ma,EtherSymbol:"Ξ",HashZero:_a,MaxInt256:Aa,MaxUint256:wa,MinInt256:Ea,NegativeOne:ya,One:ba,Two:va,WeiPerEther:Ta,Zero:ga});let Ra=class extends xi{constructor(e,t,n){const r=(t?"int":"uint")+8*e;super(r,r,n,!1),this.size=e,this.signed=t}defaultValue(){return 0}encode(e,t){let n=kr.from(t),r=wa.mask(8*e.wordSize);if(this.signed){let e=r.mask(8*this.size-1);(n.gt(e)||n.lt(e.add(ba).mul(ya)))&&this._throwError("value out-of-bounds",t)}else(n.lt(ga)||n.gt(r.mask(8*this.size)))&&this._throwError("value out-of-bounds",t);return n=n.toTwos(8*this.size).mask(8*this.size),this.signed&&(n=n.fromTwos(8*this.size).toTwos(8*e.wordSize)),e.writeValue(n)}decode(e){let t=e.readValue().mask(8*this.size);return this.signed&&(t=t.fromTwos(8*this.size)),e.coerce(this.name,t)}};const Ca=new Zn("strings/5.7.0");var Oa,ka;function Sa(e,t,n,r,i){if(e===ka.BAD_PREFIX||e===ka.UNEXPECTED_CONTINUE){let e=0;for(let r=t+1;r<n.length&&n[r]>>6==2;r++)e++;return e}return e===ka.OVERRUN?n.length-t-1:0}!function(e){e.current="",e.NFC="NFC",e.NFD="NFD",e.NFKC="NFKC",e.NFKD="NFKD"}(Oa||(Oa={})),function(e){e.UNEXPECTED_CONTINUE="unexpected continuation byte",e.BAD_PREFIX="bad codepoint prefix",e.OVERRUN="string overrun",e.MISSING_CONTINUE="missing continuation byte",e.OUT_OF_RANGE="out of UTF-8 range",e.UTF16_SURROGATE="UTF-16 surrogate",e.OVERLONG="overlong representation"}(ka||(ka={}));const Na=Object.freeze({error:function(e,t,n,r,i){return Ca.throwArgumentError(`invalid codepoint at offset ${t}; ${e}`,"bytes",n)},ignore:Sa,replace:function(e,t,n,r,i){return e===ka.OVERLONG?(r.push(i),0):(r.push(65533),Sa(e,t,n))}});function xa(e,t){null==t&&(t=Na.error),e=sr(e);const n=[];let r=0;for(;r<e.length;){const i=e[r++];if(i>>7==0){n.push(i);continue}let a=null,o=null;if(192==(224&i))a=1,o=127;else if(224==(240&i))a=2,o=2047;else{if(240!=(248&i)){r+=t(128==(192&i)?ka.UNEXPECTED_CONTINUE:ka.BAD_PREFIX,r-1,e,n);continue}a=3,o=65535}if(r-1+a>=e.length){r+=t(ka.OVERRUN,r-1,e,n);continue}let s=i&(1<<8-a-1)-1;for(let i=0;i<a;i++){let i=e[r];if(128!=(192&i)){r+=t(ka.MISSING_CONTINUE,r,e,n),s=null;break}s=s<<6|63&i,r++}null!==s&&(s>1114111?r+=t(ka.OUT_OF_RANGE,r-1-a,e,n,s):s>=55296&&s<=57343?r+=t(ka.UTF16_SURROGATE,r-1-a,e,n,s):s<=o?r+=t(ka.OVERLONG,r-1-a,e,n,s):n.push(s))}return n}function Pa(e,t=Oa.current){t!=Oa.current&&(Ca.checkNormalize(),e=e.normalize(t));let n=[];for(let t=0;t<e.length;t++){const r=e.charCodeAt(t);if(r<128)n.push(r);else if(r<2048)n.push(r>>6|192),n.push(63&r|128);else if(55296==(64512&r)){t++;const i=e.charCodeAt(t);if(t>=e.length||56320!=(64512&i))throw new Error("invalid utf-8 string");const a=65536+((1023&r)<<10)+(1023&i);n.push(a>>18|240),n.push(a>>12&63|128),n.push(a>>6&63|128),n.push(63&a|128)}else n.push(r>>12|224),n.push(r>>6&63|128),n.push(63&r|128)}return sr(n)}function Ma(e){const t="0000"+e.toString(16);return"\\u"+t.substring(t.length-4)}function Ba(e,t){return'"'+xa(e,t).map((e=>{if(e<256){switch(e){case 8:return"\\b";case 9:return"\\t";case 10:return"\\n";case 13:return"\\r";case 34:return'\\"';case 92:return"\\\\"}if(e>=32&&e<127)return String.fromCharCode(e)}return e<=65535?Ma(e):Ma(55296+((e-=65536)>>10&1023))+Ma(56320+(1023&e))})).join("")+'"'}function Da(e){return e.map((e=>e<=65535?String.fromCharCode(e):(e-=65536,String.fromCharCode(55296+(e>>10&1023),56320+(1023&e))))).join("")}function Fa(e,t){return Da(xa(e,t))}function La(e,t=Oa.current){return xa(Pa(e,t))}function Ua(e){const t=Pa(e);if(t.length>31)throw new Error("bytes32 string must be less than 32 bytes");return pr(ur([t,_a]).slice(0,32))}function qa(e){const t=sr(e);if(32!==t.length)throw new Error("invalid bytes32 - not 32 bytes long");if(0!==t[31])throw new Error("invalid bytes32 string - no null terminator");let n=31;for(;0===t[n-1];)n--;return Fa(t.slice(0,n))}function ja(e,t){t||(t=function(e){return[parseInt(e,16)]});let n=0,r={};return e.split(",").forEach((e=>{let i=e.split(":");n+=parseInt(i[0],16),r[n]=t(i[1])})),r}function Ga(e){let t=0;return e.split(",").map((e=>{let n=e.split("-");1===n.length?n[1]="0":""===n[1]&&(n[1]="1");let r=t+parseInt(n[0],16);return t=parseInt(n[1],16),{l:r,h:t}}))}function Ha(e,t){let n=0;for(let r=0;r<t.length;r++){let i=t[r];if(n+=i.l,e>=n&&e<=n+i.h&&(e-n)%(i.d||1)==0){if(i.e&&-1!==i.e.indexOf(e-n))continue;return i}}return null}const za=Ga("221,13-1b,5f-,40-10,51-f,11-3,3-3,2-2,2-4,8,2,15,2d,28-8,88,48,27-,3-5,11-20,27-,8,28,3-5,12,18,b-a,1c-4,6-16,2-d,2-2,2,1b-4,17-9,8f-,10,f,1f-2,1c-34,33-14e,4,36-,13-,6-2,1a-f,4,9-,3-,17,8,2-2,5-,2,8-,3-,4-8,2-3,3,6-,16-6,2-,7-3,3-,17,8,3,3,3-,2,6-3,3-,4-a,5,2-6,10-b,4,8,2,4,17,8,3,6-,b,4,4-,2-e,2-4,b-10,4,9-,3-,17,8,3-,5-,9-2,3-,4-7,3-3,3,4-3,c-10,3,7-2,4,5-2,3,2,3-2,3-2,4-2,9,4-3,6-2,4,5-8,2-e,d-d,4,9,4,18,b,6-3,8,4,5-6,3-8,3-3,b-11,3,9,4,18,b,6-3,8,4,5-6,3-6,2,3-3,b-11,3,9,4,18,11-3,7-,4,5-8,2-7,3-3,b-11,3,13-2,19,a,2-,8-2,2-3,7,2,9-11,4-b,3b-3,1e-24,3,2-,3,2-,2-5,5,8,4,2,2-,3,e,4-,6,2,7-,b-,3-21,49,23-5,1c-3,9,25,10-,2-2f,23,6,3,8-2,5-5,1b-45,27-9,2a-,2-3,5b-4,45-4,53-5,8,40,2,5-,8,2,5-,28,2,5-,20,2,5-,8,2,5-,8,8,18,20,2,5-,8,28,14-5,1d-22,56-b,277-8,1e-2,52-e,e,8-a,18-8,15-b,e,4,3-b,5e-2,b-15,10,b-5,59-7,2b-555,9d-3,5b-5,17-,7-,27-,7-,9,2,2,2,20-,36,10,f-,7,14-,4,a,54-3,2-6,6-5,9-,1c-10,13-1d,1c-14,3c-,10-6,32-b,240-30,28-18,c-14,a0,115-,3,66-,b-76,5,5-,1d,24,2,5-2,2,8-,35-2,19,f-10,1d-3,311-37f,1b,5a-b,d7-19,d-3,41,57-,68-4,29-3,5f,29-37,2e-2,25-c,2c-2,4e-3,30,78-3,64-,20,19b7-49,51a7-59,48e-2,38-738,2ba5-5b,222f-,3c-94,8-b,6-4,1b,6,2,3,3,6d-20,16e-f,41-,37-7,2e-2,11-f,5-b,18-,b,14,5-3,6,88-,2,bf-2,7-,7-,7-,4-2,8,8-9,8-2ff,20,5-b,1c-b4,27-,27-cbb1,f7-9,28-2,b5-221,56,48,3-,2-,3-,5,d,2,5,3,42,5-,9,8,1d,5,6,2-2,8,153-3,123-3,33-27fd,a6da-5128,21f-5df,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3,2-1d,61-ff7d"),Wa="ad,34f,1806,180b,180c,180d,200b,200c,200d,2060,feff".split(",").map((e=>parseInt(e,16))),Va=[{h:25,s:32,l:65},{h:30,s:32,e:[23],l:127},{h:54,s:1,e:[48],l:64,d:2},{h:14,s:1,l:57,d:2},{h:44,s:1,l:17,d:2},{h:10,s:1,e:[2,6,8],l:61,d:2},{h:16,s:1,l:68,d:2},{h:84,s:1,e:[18,24,66],l:19,d:2},{h:26,s:32,e:[17],l:435},{h:22,s:1,l:71,d:2},{h:15,s:80,l:40},{h:31,s:32,l:16},{h:32,s:1,l:80,d:2},{h:52,s:1,l:42,d:2},{h:12,s:1,l:55,d:2},{h:40,s:1,e:[38],l:15,d:2},{h:14,s:1,l:48,d:2},{h:37,s:48,l:49},{h:148,s:1,l:6351,d:2},{h:88,s:1,l:160,d:2},{h:15,s:16,l:704},{h:25,s:26,l:854},{h:25,s:32,l:55915},{h:37,s:40,l:1247},{h:25,s:-119711,l:53248},{h:25,s:-119763,l:52},{h:25,s:-119815,l:52},{h:25,s:-119867,e:[1,4,5,7,8,11,12,17],l:52},{h:25,s:-119919,l:52},{h:24,s:-119971,e:[2,7,8,17],l:52},{h:24,s:-120023,e:[2,7,13,15,16,17],l:52},{h:25,s:-120075,l:52},{h:25,s:-120127,l:52},{h:25,s:-120179,l:52},{h:25,s:-120231,l:52},{h:25,s:-120283,l:52},{h:25,s:-120335,l:52},{h:24,s:-119543,e:[17],l:56},{h:24,s:-119601,e:[17],l:58},{h:24,s:-119659,e:[17],l:58},{h:24,s:-119717,e:[17],l:58},{h:24,s:-119775,e:[17],l:58}],Ka=ja("b5:3bc,c3:ff,7:73,2:253,5:254,3:256,1:257,5:259,1:25b,3:260,1:263,2:269,1:268,5:26f,1:272,2:275,7:280,3:283,5:288,3:28a,1:28b,5:292,3f:195,1:1bf,29:19e,125:3b9,8b:3b2,1:3b8,1:3c5,3:3c6,1:3c0,1a:3ba,1:3c1,1:3c3,2:3b8,1:3b5,1bc9:3b9,1c:1f76,1:1f77,f:1f7a,1:1f7b,d:1f78,1:1f79,1:1f7c,1:1f7d,107:63,5:25b,4:68,1:68,1:68,3:69,1:69,1:6c,3:6e,4:70,1:71,1:72,1:72,1:72,7:7a,2:3c9,2:7a,2:6b,1:e5,1:62,1:63,3:65,1:66,2:6d,b:3b3,1:3c0,6:64,1b574:3b8,1a:3c3,20:3b8,1a:3c3,20:3b8,1a:3c3,20:3b8,1a:3c3,20:3b8,1a:3c3"),Xa=ja("179:1,2:1,2:1,5:1,2:1,a:4f,a:1,8:1,2:1,2:1,3:1,5:1,3:1,4:1,2:1,3:1,4:1,8:2,1:1,2:2,1:1,2:2,27:2,195:26,2:25,1:25,1:25,2:40,2:3f,1:3f,33:1,11:-6,1:-9,1ac7:-3a,6d:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,b:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,c:-8,2:-8,2:-8,2:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,49:-8,1:-8,1:-4a,1:-4a,d:-56,1:-56,1:-56,1:-56,d:-8,1:-8,f:-8,1:-8,3:-7"),Ja=ja("df:00730073,51:00690307,19:02BC006E,a7:006A030C,18a:002003B9,16:03B903080301,20:03C503080301,1d7:05650582,190f:00680331,1:00740308,1:0077030A,1:0079030A,1:006102BE,b6:03C50313,2:03C503130300,2:03C503130301,2:03C503130342,2a:1F0003B9,1:1F0103B9,1:1F0203B9,1:1F0303B9,1:1F0403B9,1:1F0503B9,1:1F0603B9,1:1F0703B9,1:1F0003B9,1:1F0103B9,1:1F0203B9,1:1F0303B9,1:1F0403B9,1:1F0503B9,1:1F0603B9,1:1F0703B9,1:1F2003B9,1:1F2103B9,1:1F2203B9,1:1F2303B9,1:1F2403B9,1:1F2503B9,1:1F2603B9,1:1F2703B9,1:1F2003B9,1:1F2103B9,1:1F2203B9,1:1F2303B9,1:1F2403B9,1:1F2503B9,1:1F2603B9,1:1F2703B9,1:1F6003B9,1:1F6103B9,1:1F6203B9,1:1F6303B9,1:1F6403B9,1:1F6503B9,1:1F6603B9,1:1F6703B9,1:1F6003B9,1:1F6103B9,1:1F6203B9,1:1F6303B9,1:1F6403B9,1:1F6503B9,1:1F6603B9,1:1F6703B9,3:1F7003B9,1:03B103B9,1:03AC03B9,2:03B10342,1:03B1034203B9,5:03B103B9,6:1F7403B9,1:03B703B9,1:03AE03B9,2:03B70342,1:03B7034203B9,5:03B703B9,6:03B903080300,1:03B903080301,3:03B90342,1:03B903080342,b:03C503080300,1:03C503080301,1:03C10313,2:03C50342,1:03C503080342,b:1F7C03B9,1:03C903B9,1:03CE03B9,2:03C90342,1:03C9034203B9,5:03C903B9,ac:00720073,5b:00B00063,6:00B00066,d:006E006F,a:0073006D,1:00740065006C,1:0074006D,124f:006800700061,2:00610075,2:006F0076,b:00700061,1:006E0061,1:03BC0061,1:006D0061,1:006B0061,1:006B0062,1:006D0062,1:00670062,3:00700066,1:006E0066,1:03BC0066,4:0068007A,1:006B0068007A,1:006D0068007A,1:00670068007A,1:00740068007A,15:00700061,1:006B00700061,1:006D00700061,1:006700700061,8:00700076,1:006E0076,1:03BC0076,1:006D0076,1:006B0076,1:006D0076,1:00700077,1:006E0077,1:03BC0077,1:006D0077,1:006B0077,1:006D0077,1:006B03C9,1:006D03C9,2:00620071,3:00632215006B0067,1:0063006F002E,1:00640062,1:00670079,2:00680070,2:006B006B,1:006B006D,9:00700068,2:00700070006D,1:00700072,2:00730076,1:00770062,c723:00660066,1:00660069,1:0066006C,1:006600660069,1:00660066006C,1:00730074,1:00730074,d:05740576,1:05740565,1:0574056B,1:057E0576,1:0574056D",(function(e){if(e.length%4!=0)throw new Error("bad data");let t=[];for(let n=0;n<e.length;n+=4)t.push(parseInt(e.substring(n,n+4),16));return t})),Ya=Ga("80-20,2a0-,39c,32,f71,18e,7f2-f,19-7,30-4,7-5,f81-b,5,a800-20ff,4d1-1f,110,fa-6,d174-7,2e84-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,2,1f-5f,ff7f-20001");function Qa(e){if(e.match(/^[a-z0-9-]*$/i)&&e.length<=59)return e.toLowerCase();let t=La(e);var n;n=t.map((e=>{if(Wa.indexOf(e)>=0)return[];if(e>=65024&&e<=65039)return[];let t=function(e){let t=Ha(e,Va);if(t)return[e+t.s];let n=Ka[e];if(n)return n;let r=Xa[e];return r?[e+r[0]]:Ja[e]||null}(e);return t||[e]})),t=n.reduce(((e,t)=>(t.forEach((t=>{e.push(t)})),e)),[]),t=La(Da(t),Oa.NFKC),t.forEach((e=>{if(Ha(e,Ya))throw new Error("STRINGPREP_CONTAINS_PROHIBITED")})),t.forEach((e=>{if(Ha(e,za))throw new Error("STRINGPREP_CONTAINS_UNASSIGNED")}));let r=Da(t);if("-"===r.substring(0,1)||"--"===r.substring(2,4)||"-"===r.substring(r.length-1))throw new Error("invalid hyphen");return r}var $a=Object.freeze({__proto__:null,get UnicodeNormalizationForm(){return Oa},Utf8ErrorFuncs:Na,get Utf8ErrorReason(){return ka},_toEscapedUtf8String:Ba,formatBytes32String:Ua,nameprep:Qa,parseBytes32String:qa,toUtf8Bytes:Pa,toUtf8CodePoints:La,toUtf8String:Fa});let Za=class extends da{constructor(e){super("string",e)}defaultValue(){return""}encode(e,t){return super.encode(e,Pa(t))}decode(e){return Fa(super.decode(e))}},eo=class extends xi{constructor(e,t){let n=!1;const r=[];e.forEach((e=>{e.dynamic&&(n=!0),r.push(e.type)}));super("tuple","tuple("+r.join(",")+")",t,n),this.coders=e}defaultValue(){const e=[];this.coders.forEach((t=>{e.push(t.defaultValue())}));const t=this.coders.reduce(((e,t)=>{const n=t.localName;return n&&(e[n]||(e[n]=0),e[n]++),e}),{});return this.coders.forEach(((n,r)=>{let i=n.localName;i&&1===t[i]&&("length"===i&&(i="_length"),null==e[i]&&(e[i]=e[r]))})),Object.freeze(e)}encode(e,t){return sa(e,this.coders,t)}decode(e){return e.coerce(this.name,ua(e,this.coders))}};const to=new Zn(oi),no=new RegExp(/^bytes([0-9]*)$/),ro=new RegExp(/^(u?int)([0-9]*)$/);let io=class{constructor(e){Jr(this,"coerceFunc",e||null)}_getCoder(e){switch(e.baseType){case"address":return new ia(e.name);case"bool":return new la(e.name);case"string":return new Za(e.name);case"bytes":return new fa(e.name);case"array":return new ca(this._getCoder(e.arrayChildren),e.arrayLength,e.name);case"tuple":return new eo((e.components||[]).map((e=>this._getCoder(e))),e.name);case"":return new ha(e.name)}let t=e.type.match(ro);if(t){let n=parseInt(t[2]||"256");return(0===n||n>256||n%8!=0)&&to.throwArgumentError("invalid "+t[1]+" bit length","param",e),new Ra(n/8,"int"===t[1],e.name)}if(t=e.type.match(no),t){let n=parseInt(t[1]);return(0===n||n>32)&&to.throwArgumentError("invalid bytes length","param",e),new pa(n,e.name)}return to.throwArgumentError("invalid type","type",e.type)}_getWordSize(){return 32}_getReader(e,t){return new class e{constructor(e,t,n,r){Jr(this,"_data",sr(e)),Jr(this,"wordSize",t||32),Jr(this,"_coerceFunc",n),Jr(this,"allowLoose",r),this._offset=0}get data(){return pr(this._data)}get consumed(){return this._offset}static coerce(e,t){let n=e.match("^u?int([0-9]+)$");return n&&parseInt(n[1])<=48&&(t=t.toNumber()),t}coerce(t,n){return this._coerceFunc?this._coerceFunc(t,n):e.coerce(t,n)}_peekBytes(e,t,n){let r=Math.ceil(t/this.wordSize)*this.wordSize;return this._offset+r>this._data.length&&(this.allowLoose&&n&&this._offset+t<=this._data.length?r=t:Si.throwError("data out-of-bounds",Zn.errors.BUFFER_OVERRUN,{length:this._data.length,offset:this._offset+r})),this._data.slice(this._offset,this._offset+r)}subReader(t){return new e(this._data.slice(this._offset+t),this.wordSize,this._coerceFunc,this.allowLoose)}readBytes(e,t){let n=this._peekBytes(0,e,!!t);return this._offset+=n.length,n.slice(0,e)}readValue(){return kr.from(this.readBytes(this.wordSize))}}(e,this._getWordSize(),this.coerceFunc,t)}_getWriter(){return new Pi(this._getWordSize())}getDefaultValue(e){const t=e.map((e=>this._getCoder(mi.from(e))));return new eo(t,"_").defaultValue()}encode(e,t){e.length!==t.length&&to.throwError("types/values length mismatch",Zn.errors.INVALID_ARGUMENT,{count:{types:e.length,values:t.length},value:{types:e,values:t}});const n=e.map((e=>this._getCoder(mi.from(e)))),r=new eo(n,"_"),i=this._getWriter();return r.encode(i,t),i.data}decode(e,t,n){const r=e.map((e=>this._getCoder(mi.from(e))));return new eo(r,"_").decode(this._getReader(sr(t),n))}};const ao=new io;function oo(e){return Di(Pa(e))}const so="hash/5.7.0";function uo(e){e=atob(e);const t=[];for(let n=0;n<e.length;n++)t.push(e.charCodeAt(n));return sr(t)}function co(e){e=sr(e);let t="";for(let n=0;n<e.length;n++)t+=String.fromCharCode(e[n]);return btoa(t)}var lo=Object.freeze({__proto__:null,decode:uo,encode:co});function fo(e,t){null==t&&(t=1);const n=[],r=n.forEach,i=function(e,t){r.call(e,(function(e){t>0&&Array.isArray(e)?i(e,t-1):n.push(e)}))};return i(e,t),n}function po(e){return function(e){let t=0;return()=>e[t++]}(function(e){let t=0;function n(){return e[t++]<<8|e[t++]}let r=n(),i=1,a=[0,1];for(let e=1;e<r;e++)a.push(i+=n());let o=n(),s=t;t+=o;let u=0,c=0;function l(){return 0==u&&(c=c<<8|e[t++],u=8),c>>--u&1}const d=Math.pow(2,31),f=d>>>1,p=f>>1,h=d-1;let m=0;for(let e=0;e<31;e++)m=m<<1|l();let y=[],g=0,b=d;for(;;){let e=Math.floor(((m-g+1)*i-1)/b),t=0,n=r;for(;n-t>1;){let r=t+n>>>1;e<a[r]?n=r:t=r}if(0==t)break;y.push(t);let o=g+Math.floor(b*a[t]/i),s=g+Math.floor(b*a[t+1]/i)-1;for(;0==((o^s)&f);)m=m<<1&h|l(),o=o<<1&h,s=s<<1&h|1;for(;o&~s&p;)m=m&f|m<<1&h>>>1|l(),o=o<<1^f,s=(s^f)<<1|f|1;g=o,b=1+s-o}let v=r-4;return y.map((t=>{switch(t-v){case 3:return v+65792+(e[s++]<<16|e[s++]<<8|e[s++]);case 2:return v+256+(e[s++]<<8|e[s++]);case 1:return v+e[s++];default:return t-1}}))}(e))}function ho(e){return 1&e?~e>>1:e>>1}function mo(e,t){let n=Array(e);for(let r=0,i=-1;r<e;r++)n[r]=i+=1+t();return n}function yo(e,t){let n=Array(e);for(let r=0,i=0;r<e;r++)n[r]=i+=ho(t());return n}function go(e,t){let n=mo(e(),e),r=e(),i=mo(r,e),a=function(e,t){let n=Array(e);for(let r=0;r<e;r++)n[r]=1+t();return n}(r,e);for(let e=0;e<r;e++)for(let t=0;t<a[e];t++)n.push(i[e]+t);return t?n.map((e=>t[e])):n}function bo(e,t,n){let r=Array(e).fill(void 0).map((()=>[]));for(let i=0;i<t;i++)yo(e,n).forEach(((e,t)=>r[t].push(e)));return r}function vo(e,t){let n=1+t(),r=t(),i=function(e){let t=[];for(;;){let n=e();if(0==n)break;t.push(n)}return t}(t);return fo(bo(i.length,1+e,t).map(((e,t)=>{const a=e[0],o=e.slice(1);return Array(i[t]).fill(void 0).map(((e,t)=>{let i=t*r;return[a+t*n,o.map((e=>e+i))]}))})))}function To(e,t){return bo(1+t(),1+e,t).map((e=>[e[0],e.slice(1)]))}const wo=po(uo("AEQF2AO2DEsA2wIrAGsBRABxAN8AZwCcAEwAqgA0AGwAUgByADcATAAVAFYAIQAyACEAKAAYAFgAGwAjABQAMAAmADIAFAAfABQAKwATACoADgAbAA8AHQAYABoAGQAxADgALAAoADwAEwA9ABMAGgARAA4ADwAWABMAFgAIAA8AHgQXBYMA5BHJAS8JtAYoAe4AExozi0UAH21tAaMnBT8CrnIyhrMDhRgDygIBUAEHcoFHUPe8AXBjAewCjgDQR8IICIcEcQLwATXCDgzvHwBmBoHNAqsBdBcUAykgDhAMShskMgo8AY8jqAQfAUAfHw8BDw87MioGlCIPBwZCa4ELatMAAMspJVgsDl8AIhckSg8XAHdvTwBcIQEiDT4OPhUqbyECAEoAS34Aej8Ybx83JgT/Xw8gHxZ/7w8RICxPHA9vBw+Pfw8PHwAPFv+fAsAvCc8vEr8ivwD/EQ8Bol8OEBa/A78hrwAPCU8vESNvvwWfHwNfAVoDHr+ZAAED34YaAdJPAK7PLwSEgDLHAGo1Pz8Pvx9fUwMrpb8O/58VTzAPIBoXIyQJNF8hpwIVAT8YGAUADDNBaX3RAMomJCg9EhUeA29MABsZBTMNJipjOhc19gcIDR8bBwQHEggCWi6DIgLuAQYA+BAFCha3A5XiAEsqM7UFFgFLhAMjFTMYE1Klnw74nRVBG/ASCm0BYRN/BrsU3VoWy+S0vV8LQx+vN8gF2AC2AK5EAWwApgYDKmAAroQ0NDQ0AT+OCg7wAAIHRAbpNgVcBV0APTA5BfbPFgMLzcYL/QqqA82eBALKCjQCjqYCht0/k2+OAsXQAoP3ASTKDgDw6ACKAUYCMpIKJpRaAE4A5womABzZvs0REEKiACIQAd5QdAECAj4Ywg/wGqY2AVgAYADYvAoCGAEubA0gvAY2ALAAbpbvqpyEAGAEpgQAJgAG7gAgAEACmghUFwCqAMpAINQIwC4DthRAAPcycKgApoIdABwBfCisABoATwBqASIAvhnSBP8aH/ECeAKXAq40NjgDBTwFYQU6AXs3oABgAD4XNgmcCY1eCl5tIFZeUqGgyoNHABgAEQAaABNwWQAmABMATPMa3T34ADldyprmM1M2XociUQgLzvwAXT3xABgAEQAaABNwIGFAnADD8AAgAD4BBJWzaCcIAIEBFMAWwKoAAdq9BWAF5wLQpALEtQAKUSGkahR4GnJM+gsAwCgeFAiUAECQ0BQuL8AAIAAAADKeIheclvFqQAAETr4iAMxIARMgAMIoHhQIAn0E0pDQFC4HhznoAAAAIAI2C0/4lvFqQAAETgBJJwYCAy4ABgYAFAA8MBKYEH4eRhTkAjYeFcgACAYAeABsOqyQ5gRwDayqugEgaIIAtgoACgDmEABmBAWGme5OBJJA2m4cDeoAmITWAXwrMgOgAGwBCh6CBXYF1Tzg1wKAAFdiuABRAFwAXQBsAG8AdgBrAHYAbwCEAHEwfxQBVE5TEQADVFhTBwBDANILAqcCzgLTApQCrQL6vAAMAL8APLhNBKkE6glGKTAU4Dr4N2EYEwBCkABKk8rHAbYBmwIoAiU4Ajf/Aq4CowCAANIChzgaNBsCsTgeODcFXrgClQKdAqQBiQGYAqsCsjTsNHsfNPA0ixsAWTWiOAMFPDQSNCk2BDZHNow2TTZUNhk28Jk9VzI3QkEoAoICoQKwAqcAQAAxBV4FXbS9BW47YkIXP1ciUqs05DS/FwABUwJW11e6nHuYZmSh/RAYA8oMKvZ8KASoUAJYWAJ6ILAsAZSoqjpgA0ocBIhmDgDWAAawRDQoAAcuAj5iAHABZiR2AIgiHgCaAU68ACxuHAG0ygM8MiZIAlgBdF4GagJqAPZOHAMuBgoATkYAsABiAHgAMLoGDPj0HpKEBAAOJgAuALggTAHWAeAMEDbd20Uege0ADwAWADkAQgA9OHd+2MUQZBBhBgNNDkxxPxUQArEPqwvqERoM1irQ090ANK4H8ANYB/ADWANYB/AH8ANYB/ADWANYA1gDWBwP8B/YxRBkD00EcgWTBZAE2wiIJk4RhgctCNdUEnQjHEwDSgEBIypJITuYMxAlR0wRTQgIATZHbKx9PQNMMbBU+pCnA9AyVDlxBgMedhKlAC8PeCE1uk6DekxxpQpQT7NX9wBFBgASqwAS5gBJDSgAUCwGPQBI4zTYABNGAE2bAE3KAExdGABKaAbgAFBXAFCOAFBJABI2SWdObALDOq0//QomCZhvwHdTBkIQHCemEPgMNAG2ATwN7kvZBPIGPATKH34ZGg/OlZ0Ipi3eDO4m5C6igFsj9iqEBe5L9TzeC05RaQ9aC2YJ5DpkgU8DIgEOIowK3g06CG4Q9ArKbA3mEUYHOgPWSZsApgcCCxIdNhW2JhFirQsKOXgG/Br3C5AmsBMqev0F1BoiBk4BKhsAANAu6IWxWjJcHU9gBgQLJiPIFKlQIQ0mQLh4SRocBxYlqgKSQ3FKiFE3HpQh9zw+DWcuFFF9B/Y8BhlQC4I8n0asRQ8R0z6OPUkiSkwtBDaALDAnjAnQD4YMunxzAVoJIgmyDHITMhEYN8YIOgcaLpclJxYIIkaWYJsE+KAD9BPSAwwFQAlCBxQDthwuEy8VKgUOgSXYAvQ21i60ApBWgQEYBcwPJh/gEFFH4Q7qCJwCZgOEJewALhUiABginAhEZABgj9lTBi7MCMhqbSN1A2gU6GIRdAeSDlgHqBw0FcAc4nDJXgyGCSiksAlcAXYJmgFgBOQICjVcjKEgQmdUi1kYnCBiQUBd/QIyDGYVoES+h3kCjA9sEhwBNgF0BzoNAgJ4Ee4RbBCWCOyGBTW2M/k6JgRQIYQgEgooA1BszwsoJvoM+WoBpBJjAw00PnfvZ6xgtyUX/gcaMsZBYSHyC5NPzgydGsIYQ1QvGeUHwAP0GvQn60FYBgADpAQUOk4z7wS+C2oIjAlAAEoOpBgH2BhrCnKM0QEyjAG4mgNYkoQCcJAGOAcMAGgMiAV65gAeAqgIpAAGANADWAA6Aq4HngAaAIZCAT4DKDABIuYCkAOUCDLMAZYwAfQqBBzEDBYA+DhuSwLDsgKAa2ajBd5ZAo8CSjYBTiYEBk9IUgOwcuIA3ABMBhTgSAEWrEvMG+REAeBwLADIAPwABjYHBkIBzgH0bgC4AWALMgmjtLYBTuoqAIQAFmwB2AKKAN4ANgCA8gFUAE4FWvoF1AJQSgESMhksWGIBvAMgATQBDgB6BsyOpsoIIARuB9QCEBwV4gLvLwe2AgMi4BPOQsYCvd9WADIXUu5eZwqoCqdeaAC0YTQHMnM9UQAPH6k+yAdy/BZIiQImSwBQ5gBQQzSaNTFWSTYBpwGqKQK38AFtqwBI/wK37gK3rQK3sAK6280C0gK33AK3zxAAUEIAUD9SklKDArekArw5AEQAzAHCO147WTteO1k7XjtZO147WTteO1kDmChYI03AVU0oJqkKbV9GYewMpw3VRMk6ShPcYFJgMxPJLbgUwhXPJVcZPhq9JwYl5VUKDwUt1GYxCC00dhe9AEApaYNCY4ceMQpMHOhTklT5LRwAskujM7ANrRsWREEFSHXuYisWDwojAmSCAmJDXE6wXDchAqH4AmiZAmYKAp+FOBwMAmY8AmYnBG8EgAN/FAN+kzkHOXgYOYM6JCQCbB4CMjc4CwJtyAJtr/CLADRoRiwBaADfAOIASwYHmQyOAP8MwwAOtgJ3MAJ2o0ACeUxEAni7Hl3cRa9G9AJ8QAJ6yQJ9CgJ88UgBSH5kJQAsFklZSlwWGErNAtECAtDNSygDiFADh+dExpEzAvKiXQQDA69Lz0wuJgTQTU1NsAKLQAKK2cIcCB5EaAa4Ao44Ao5dQZiCAo7aAo5deVG1UzYLUtVUhgKT/AKTDQDqAB1VH1WwVdEHLBwplocy4nhnRTw6ApegAu+zWCKpAFomApaQApZ9nQCqWa1aCoJOADwClrYClk9cRVzSApnMApllXMtdCBoCnJw5wzqeApwXAp+cAp65iwAeEDIrEAKd8gKekwC2PmE1YfACntQCoG8BqgKeoCACnk+mY8lkKCYsAiewAiZ/AqD8AqBN2AKmMAKlzwKoAAB+AqfzaH1osgAESmodatICrOQCrK8CrWgCrQMCVx4CVd0CseLYAx9PbJgCsr4OArLpGGzhbWRtSWADJc4Ctl08QG6RAylGArhfArlIFgK5K3hwN3DiAr0aAy2zAzISAr6JcgMDM3ICvhtzI3NQAsPMAsMFc4N0TDZGdOEDPKgDPJsDPcACxX0CxkgCxhGKAshqUgLIRQLJUALJLwJkngLd03h6YniveSZL0QMYpGcDAmH1GfSVJXsMXpNevBICz2wCz20wTFTT9BSgAMeuAs90ASrrA04TfkwGAtwoAtuLAtJQA1JdA1NgAQIDVY2AikABzBfuYUZ2AILPg44C2sgC2d+EEYRKpz0DhqYAMANkD4ZyWvoAVgLfZgLeuXR4AuIw7RUB8zEoAfScAfLTiALr9ALpcXoAAur6AurlAPpIAboC7ooC652Wq5cEAu5AA4XhmHpw4XGiAvMEAGoDjheZlAL3FAORbwOSiAL3mQL52gL4Z5odmqy8OJsfA52EAv77ARwAOp8dn7QDBY4DpmsDptoA0sYDBmuhiaIGCgMMSgFgASACtgNGAJwEgLpoBgC8BGzAEowcggCEDC6kdjoAJAM0C5IKRoABZCgiAIzw3AYBLACkfng9ogigkgNmWAN6AEQCvrkEVqTGAwCsBRbAA+4iQkMCHR072jI2PTbUNsk2RjY5NvA23TZKNiU3EDcZN5I+RTxDRTBCJkK5VBYKFhZfwQCWygU3AJBRHpu+OytgNxa61A40GMsYjsn7BVwFXQVcBV0FaAVdBVwFXQVcBV0FXAVdBVwFXUsaCNyKAK4AAQUHBwKU7oICoW1e7jAEzgPxA+YDwgCkBFDAwADABKzAAOxFLhitA1UFTDeyPkM+bj51QkRCuwTQWWQ8X+0AWBYzsACNA8xwzAGm7EZ/QisoCTAbLDs6fnLfb8H2GccsbgFw13M1HAVkBW/Jxsm9CNRO8E8FDD0FBQw9FkcClOYCoMFegpDfADgcMiA2AJQACB8AsigKAIzIEAJKeBIApY5yPZQIAKQiHb4fvj5BKSRPQrZCOz0oXyxgOywfKAnGbgMClQaCAkILXgdeCD9IIGUgQj5fPoY+dT52Ao5CM0dAX9BTVG9SDzFwWTQAbxBzJF/lOEIQQglCCkKJIAls5AcClQICoKPMODEFxhi6KSAbiyfIRrMjtCgdWCAkPlFBIitCsEJRzAbMAV/OEyQzDg0OAQQEJ36i328/Mk9AybDJsQlq3tDRApUKAkFzXf1d/j9uALYP6hCoFgCTGD8kPsFKQiobrm0+zj0KSD8kPnVCRBwMDyJRTHFgMTJa5rwXQiQ2YfI/JD7BMEJEHGINTw4TOFlIRzwJO0icMQpyPyQ+wzJCRBv6DVgnKB01NgUKj2bwYzMqCoBkznBgEF+zYDIocwRIX+NgHj4HICNfh2C4CwdwFWpTG/lgUhYGAwRfv2Ts8mAaXzVgml/XYIJfuWC4HI1gUF9pYJZgMR6ilQHMAOwLAlDRefC0in4AXAEJA6PjCwc0IamOANMMCAECRQDFNRTZBgd+CwQlRA+r6+gLBDEFBnwUBXgKATIArwAGRAAHA3cDdAN2A3kDdwN9A3oDdQN7A30DfAN4A3oDfQAYEAAlAtYASwMAUAFsAHcKAHcAmgB3AHUAdQB2AHVu8UgAygDAAHcAdQB1AHYAdQALCgB3AAsAmgB3AAsCOwB3AAtu8UgAygDAAHgKAJoAdwB3AHUAdQB2AHUAeAB1AHUAdgB1bvFIAMoAwAALCgCaAHcACwB3AAsCOwB3AAtu8UgAygDAAH4ACwGgALcBpwC6AahdAu0COwLtbvFIAMoAwAALCgCaAu0ACwLtAAsCOwLtAAtu8UgAygDAA24ACwNvAAu0VsQAAzsAABCkjUIpAAsAUIusOggWcgMeBxVsGwL67U/2HlzmWOEeOgALASvuAAseAfpKUpnpGgYJDCIZM6YyARUE9ThqAD5iXQgnAJYJPnOzw0ZAEZxEKsIAkA4DhAHnTAIDxxUDK0lxCQlPYgIvIQVYJQBVqE1GakUAKGYiDToSBA1EtAYAXQJYAIF8GgMHRyAAIAjOe9YncekRAA0KACUrjwE7Ayc6AAYWAqaiKG4McEcqANoN3+Mg9TwCBhIkuCny+JwUQ29L008JluRxu3K+oAdqiHOqFH0AG5SUIfUJ5SxCGfxdipRzqTmT4V5Zb+r1Uo4Vm+NqSSEl2mNvR2JhIa8SpYO6ntdwFXHCWTCK8f2+Hxo7uiG3drDycAuKIMP5bhi06ACnqArH1rz4Rqg//lm6SgJGEVbF9xJHISaR6HxqxSnkw6shDnelHKNEfGUXSJRJ1GcsmtJw25xrZMDK9gXSm1/YMkdX4/6NKYOdtk/NQ3/NnDASjTc3fPjIjW/5sVfVObX2oTDWkr1dF9f3kxBsD3/3aQO8hPfRz+e0uEiJqt1161griu7gz8hDDwtpy+F+BWtefnKHZPAxcZoWbnznhJpy0e842j36bcNzGnIEusgGX0a8ZxsnjcSsPDZ09yZ36fCQbriHeQ72JRMILNl6ePPf2HWoVwgWAm1fb3V2sAY0+B6rAXqSwPBgseVmoqsBTSrm91+XasMYYySI8eeRxH3ZvHkMz3BQ5aJ3iUVbYPNM3/7emRtjlsMgv/9VyTsyt/mK+8fgWeT6SoFaclXqn42dAIsvAarF5vNNWHzKSkKQ/8Hfk5ZWK7r9yliOsooyBjRhfkHP4Q2DkWXQi6FG/9r/IwbmkV5T7JSopHKn1pJwm9tb5Ot0oyN1Z2mPpKXHTxx2nlK08fKk1hEYA8WgVVWL5lgx0iTv+KdojJeU23ZDjmiubXOxVXJKKi2Wjuh2HLZOFLiSC7Tls5SMh4f+Pj6xUSrNjFqLGehRNB8lC0QSLNmkJJx/wSG3MnjE9T1CkPwJI0wH2lfzwETIiVqUxg0dfu5q39Gt+hwdcxkhhNvQ4TyrBceof3Mhs/IxFci1HmHr4FMZgXEEczPiGCx0HRwzAqDq2j9AVm1kwN0mRVLWLylgtoPNapF5cY4Y1wJh/e0BBwZj44YgZrDNqvD/9Hv7GFYdUQeDJuQ3EWI4HaKqavU1XjC/n41kT4L79kqGq0kLhdTZvgP3TA3fS0ozVz+5piZsoOtIvBUFoMKbNcmBL6YxxaUAusHB38XrS8dQMnQwJfUUkpRoGr5AUeWicvBTzyK9g77+yCkf5PAysL7r/JjcZgrbvRpMW9iyaxZvKO6ceZN2EwIxKwVFPuvFuiEPGCoagbMo+SpydLrXqBzNCDGFCrO/rkcwa2xhokQZ5CdZ0AsU3JfSqJ6n5I14YA+P/uAgfhPU84Tlw7cEFfp7AEE8ey4sP12PTt4Cods1GRgDOB5xvyiR5m+Bx8O5nBCNctU8BevfV5A08x6RHd5jcwPTMDSZJOedIZ1cGQ704lxbAzqZOP05ZxaOghzSdvFBHYqomATARyAADK4elP8Ly3IrUZKfWh23Xy20uBUmLS4Pfagu9+oyVa2iPgqRP3F2CTUsvJ7+RYnN8fFZbU/HVvxvcFFDKkiTqV5UBZ3Gz54JAKByi9hkKMZJvuGgcSYXFmw08UyoQyVdfTD1/dMkCHXcTGAKeROgArsvmRrQTLUOXioOHGK2QkjHuoYFgXciZoTJd6Fs5q1QX1G+p/e26hYsEf7QZD1nnIyl/SFkNtYYmmBhpBrxl9WbY0YpHWRuw2Ll/tj9mD8P4snVzJl4F9J+1arVeTb9E5r2ILH04qStjxQNwn3m4YNqxmaNbLAqW2TN6LidwuJRqS+NXbtqxoeDXpxeGWmxzSkWxjkyCkX4NQRme6q5SAcC+M7+9ETfA/EwrzQajKakCwYyeunP6ZFlxU2oMEn1Pz31zeStW74G406ZJFCl1wAXIoUKkWotYEpOuXB1uVNxJ63dpJEqfxBeptwIHNrPz8BllZoIcBoXwgfJ+8VAUnVPvRvexnw0Ma/WiGYuJO5y8QTvEYBigFmhUxY5RqzE8OcywN/8m4UYrlaniJO75XQ6KSo9+tWHlu+hMi0UVdiKQp7NelnoZUzNaIyBPVeOwK6GNp+FfHuPOoyhaWuNvTYFkvxscMQWDh+zeFCFkgwbXftiV23ywJ4+uwRqmg9k3KzwIQpzppt8DBBOMbrqwQM5Gb05sEwdKzMiAqOloaA/lr0KA+1pr0/+HiWoiIjHA/wir2nIuS3PeU/ji3O6ZwoxcR1SZ9FhtLC5S0FIzFhbBWcGVP/KpxOPSiUoAdWUpqKH++6Scz507iCcxYI6rdMBICPJZea7OcmeFw5mObJSiqpjg2UoWNIs+cFhyDSt6geV5qgi3FunmwwDoGSMgerFOZGX1m0dMCYo5XOruxO063dwENK9DbnVM9wYFREzh4vyU1WYYJ/LRRp6oxgjqP/X5a8/4Af6p6NWkQferzBmXme0zY/4nwMJm/wd1tIqSwGz+E3xPEAOoZlJit3XddD7/BT1pllzOx+8bmQtANQ/S6fZexc6qi3W+Q2xcmXTUhuS5mpHQRvcxZUN0S5+PL9lXWUAaRZhEH8hTdAcuNMMCuVNKTEGtSUKNi3O6KhSaTzck8csZ2vWRZ+d7mW8c4IKwXIYd25S/zIftPkwPzufjEvOHWVD1m+FjpDVUTV0DGDuHj6QnaEwLu/dEgdLQOg9E1Sro9XHJ8ykLAwtPu+pxqKDuFexqON1sKQm7rwbE1E68UCfA/erovrTCG+DBSNg0l4goDQvZN6uNlbyLpcZAwj2UclycvLpIZMgv4yRlpb3YuMftozorbcGVHt/VeDV3+Fdf1TP0iuaCsPi2G4XeGhsyF1ubVDxkoJhmniQ0/jSg/eYML9KLfnCFgISWkp91eauR3IQvED0nAPXK+6hPCYs+n3+hCZbiskmVMG2da+0EsZPonUeIY8EbfusQXjsK/eFDaosbPjEfQS0RKG7yj5GG69M7MeO1HmiUYocgygJHL6M1qzUDDwUSmr99V7Sdr2F3JjQAJY+F0yH33Iv3+C9M38eML7gTgmNu/r2bUMiPvpYbZ6v1/IaESirBHNa7mPKn4dEmYg7v/+HQgPN1G79jBQ1+soydfDC2r+h2Bl/KIc5KjMK7OH6nb1jLsNf0EHVe2KBiE51ox636uyG6Lho0t3J34L5QY/ilE3mikaF4HKXG1mG1rCevT1Vv6GavltxoQe/bMrpZvRggnBxSEPEeEzkEdOxTnPXHVjUYdw8JYvjB/o7Eegc3Ma+NUxLLnsK0kJlinPmUHzHGtrk5+CAbVzFOBqpyy3QVUnzTDfC/0XD94/okH+OB+i7g9lolhWIjSnfIb+Eq43ZXOWmwvjyV/qqD+t0e+7mTEM74qP/Ozt8nmC7mRpyu63OB4KnUzFc074SqoyPUAgM+/TJGFo6T44EHnQU4X4z6qannVqgw/U7zCpwcmXV1AubIrvOmkKHazJAR55ePjp5tLBsN8vAqs3NAHdcEHOR2xQ0lsNAFzSUuxFQCFYvXLZJdOj9p4fNq6p0HBGUik2YzaI4xySy91KzhQ0+q1hjxvImRwPRf76tChlRkhRCi74NXZ9qUNeIwP+s5p+3m5nwPdNOHgSLD79n7O9m1n1uDHiMntq4nkYwV5OZ1ENbXxFd4PgrlvavZsyUO4MqYlqqn1O8W/I1dEZq5dXhrbETLaZIbC2Kj/Aa/QM+fqUOHdf0tXAQ1huZ3cmWECWSXy/43j35+Mvq9xws7JKseriZ1pEWKc8qlzNrGPUGcVgOa9cPJYIJsGnJTAUsEcDOEVULO5x0rXBijc1lgXEzQQKhROf8zIV82w8eswc78YX11KYLWQRcgHNJElBxfXr72lS2RBSl07qTKorO2uUDZr3sFhYsvnhLZn0A94KRzJ/7DEGIAhW5ZWFpL8gEwu1aLA9MuWZzNwl8Oze9Y+bX+v9gywRVnoB5I/8kXTXU3141yRLYrIOOz6SOnyHNy4SieqzkBXharjfjqq1q6tklaEbA8Qfm2DaIPs7OTq/nvJBjKfO2H9bH2cCMh1+5gspfycu8f/cuuRmtDjyqZ7uCIMyjdV3a+p3fqmXsRx4C8lujezIFHnQiVTXLXuI1XrwN3+siYYj2HHTvESUx8DlOTXpak9qFRK+L3mgJ1WsD7F4cu1aJoFoYQnu+wGDMOjJM3kiBQWHCcvhJ/HRdxodOQp45YZaOTA22Nb4XKCVxqkbwMYFhzYQYIAnCW8FW14uf98jhUG2zrKhQQ0q0CEq0t5nXyvUyvR8DvD69LU+g3i+HFWQMQ8PqZuHD+sNKAV0+M6EJC0szq7rEr7B5bQ8BcNHzvDMc9eqB5ZCQdTf80Obn4uzjwpYU7SISdtV0QGa9D3Wrh2BDQtpBKxaNFV+/Cy2P/Sv+8s7Ud0Fd74X4+o/TNztWgETUapy+majNQ68Lq3ee0ZO48VEbTZYiH1Co4OlfWef82RWeyUXo7woM03PyapGfikTnQinoNq5z5veLpeMV3HCAMTaZmA1oGLAn7XS3XYsz+XK7VMQsc4XKrmDXOLU/pSXVNUq8dIqTba///3x6LiLS6xs1xuCAYSfcQ3+rQgmu7uvf3THKt5Ooo97TqcbRqxx7EASizaQCBQllG/rYxVapMLgtLbZS64w1MDBMXX+PQpBKNwqUKOf2DDRDUXQf9EhOS0Qj4nTmlA8dzSLz/G1d+Ud8MTy/6ghhdiLpeerGY/UlDOfiuqFsMUU5/UYlP+BAmgRLuNpvrUaLlVkrqDievNVEAwF+4CoM1MZTmjxjJMsKJq+u8Zd7tNCUFy6LiyYXRJQ4VyvEQFFaCGKsxIwQkk7EzZ6LTJq2hUuPhvAW+gQnSG6J+MszC+7QCRHcnqDdyNRJ6T9xyS87A6MDutbzKGvGktpbXqtzWtXb9HsfK2cBMomjN9a4y+TaJLnXxAeX/HWzmf4cR4vALt/P4w4qgKY04ml4ZdLOinFYS6cup3G/1ie4+t1eOnpBNlqGqs75ilzkT4+DsZQxNvaSKJ//6zIbbk/M7LOhFmRc/1R+kBtz7JFGdZm/COotIdvQoXpTqP/1uqEUmCb/QWoGLMwO5ANcHzxdY48IGP5+J+zKOTBFZ4Pid+GTM+Wq12MV/H86xEJptBa6T+p3kgpwLedManBHC2GgNrFpoN2xnrMz9WFWX/8/ygSBkavq2Uv7FdCsLEYLu9LLIvAU0bNRDtzYl+/vXmjpIvuJFYjmI0im6QEYqnIeMsNjXG4vIutIGHijeAG/9EDBozKV5cldkHbLxHh25vT+ZEzbhXlqvpzKJwcEgfNwLAKFeo0/pvEE10XDB+EXRTXtSzJozQKFFAJhMxYkVaCW+E9AL7tMeU8acxidHqzb6lX4691UsDpy/LLRmT+epgW56+5Cw8tB4kMUv6s9lh3eRKbyGs+H/4mQMaYzPTf2OOdokEn+zzgvoD3FqNKk8QqGAXVsqcGdXrT62fSPkR2vROFi68A6se86UxRUk4cajfPyCC4G5wDhD+zNq4jodQ4u4n/m37Lr36n4LIAAsVr02dFi9AiwA81MYs2rm4eDlDNmdMRvEKRHfBwW5DdMNp0jPFZMeARqF/wL4XBfd+EMLBfMzpH5GH6NaW+1vrvMdg+VxDzatk3MXgO3ro3P/DpcC6+Mo4MySJhKJhSR01SGGGp5hPWmrrUgrv3lDnP+HhcI3nt3YqBoVAVTBAQT5iuhTg8nvPtd8ZeYj6w1x6RqGUBrSku7+N1+BaasZvjTk64RoIDlL8brpEcJx3OmY7jLoZsswdtmhfC/G21llXhITOwmvRDDeTTPbyASOa16cF5/A1fZAidJpqju3wYAy9avPR1ya6eNp9K8XYrrtuxlqi+bDKwlfrYdR0RRiKRVTLOH85+ZY7XSmzRpfZBJjaTa81VDcJHpZnZnSQLASGYW9l51ZV/h7eVzTi3Hv6hUsgc/51AqJRTkpbFVLXXszoBL8nBX0u/0jBLT8nH+fJePbrwURT58OY+UieRjd1vs04w0VG5VN2U6MoGZkQzKN/ptz0Q366dxoTGmj7i1NQGHi9GgnquXFYdrCfZBmeb7s0T6yrdlZH5cZuwHFyIJ/kAtGsTg0xH5taAAq44BAk1CPk9KVVbqQzrCUiFdF/6gtlPQ8bHHc1G1W92MXGZ5HEHftyLYs8mbD/9xYRUWkHmlM0zC2ilJlnNgV4bfALpQghxOUoZL7VTqtCHIaQSXm+YUMnpkXybnV+A6xlm2CVy8fn0Xlm2XRa0+zzOa21JWWmixfiPMSCZ7qA4rS93VN3pkpF1s5TonQjisHf7iU9ZGvUPOAKZcR1pbeVf/Ul7OhepGCaId9wOtqo7pJ7yLcBZ0pFkOF28y4zEI/kcUNmutBHaQpBdNM8vjCS6HZRokkeo88TBAjGyG7SR+6vUgTcyK9Imalj0kuxz0wmK+byQU11AiJFk/ya5dNduRClcnU64yGu/ieWSeOos1t3ep+RPIWQ2pyTYVbZltTbsb7NiwSi3AV+8KLWk7LxCnfZUetEM8ThnsSoGH38/nyAwFguJp8FjvlHtcWZuU4hPva0rHfr0UhOOJ/F6vS62FW7KzkmRll2HEc7oUq4fyi5T70Vl7YVIfsPHUCdHesf9Lk7WNVWO75JDkYbMI8TOW8JKVtLY9d6UJRITO8oKo0xS+o99Yy04iniGHAaGj88kEWgwv0OrHdY/nr76DOGNS59hXCGXzTKUvDl9iKpLSWYN1lxIeyywdNpTkhay74w2jFT6NS8qkjo5CxA1yfSYwp6AJIZNKIeEK5PJAW7ORgWgwp0VgzYpqovMrWxbu+DGZ6Lhie1RAqpzm8VUzKJOH3mCzWuTOLsN3VT/dv2eeYe9UjbR8YTBsLz7q60VN1sU51k+um1f8JxD5pPhbhSC8rRaB454tmh6YUWrJI3+GWY0qeWioj/tbkYITOkJaeuGt4JrJvHA+l0Gu7kY7XOaa05alMnRWVCXqFgLIwSY4uF59Ue5SU4QKuc/HamDxbr0x6csCetXGoP7Qn1Bk/J9DsynO/UD6iZ1Hyrz+jit0hDCwi/E9OjgKTbB3ZQKQ/0ZOvevfNHG0NK4Aj3Cp7NpRk07RT1i/S0EL93Ag8GRgKI9CfpajKyK6+Jj/PI1KO5/85VAwz2AwzP8FTBb075IxCXv6T9RVvWT2tUaqxDS92zrGUbWzUYk9mSs82pECH+fkqsDt93VW++4YsR/dHCYcQSYTO/KaBMDj9LSD/J/+z20Kq8XvZUAIHtm9hRPP3ItbuAu2Hm5lkPs92pd7kCxgRs0xOVBnZ13ccdA0aunrwv9SdqElJRC3g+oCu+nXyCgmXUs9yMjTMAIHfxZV+aPKcZeUBWt057Xo85Ks1Ir5gzEHCWqZEhrLZMuF11ziGtFQUds/EESajhagzcKsxamcSZxGth4UII+adPhQkUnx2WyN+4YWR+r3f8MnkyGFuR4zjzxJS8WsQYR5PTyRaD9ixa6Mh741nBHbzfjXHskGDq179xaRNrCIB1z1xRfWfjqw2pHc1zk9xlPpL8sQWAIuETZZhbnmL54rceXVNRvUiKrrqIkeogsl0XXb17ylNb0f4GA9Wd44vffEG8FSZGHEL2fbaTGRcSiCeA8PmA/f6Hz8HCS76fXUHwgwkzSwlI71ekZ7Fapmlk/KC+Hs8hUcw3N2LN5LhkVYyizYFl/uPeVP5lsoJHhhfWvvSWruCUW1ZcJOeuTbrDgywJ/qG07gZJplnTvLcYdNaH0KMYOYMGX+rB4NGPFmQsNaIwlWrfCezxre8zXBrsMT+edVLbLqN1BqB76JH4BvZTqUIMfGwPGEn+EnmTV86fPBaYbFL3DFEhjB45CewkXEAtJxk4/Ms2pPXnaRqdky0HOYdcUcE2zcXq4vaIvW2/v0nHFJH2XXe22ueDmq/18XGtELSq85j9X8q0tcNSSKJIX8FTuJF/Pf8j5PhqG2u+osvsLxYrvvfeVJL+4tkcXcr9JV7v0ERmj/X6fM3NC4j6dS1+9Umr2oPavqiAydTZPLMNRGY23LO9zAVDly7jD+70G5TPPLdhRIl4WxcYjLnM+SNcJ26FOrkrISUtPObIz5Zb3AG612krnpy15RMW+1cQjlnWFI6538qky9axd2oJmHIHP08KyP0ubGO+TQNOYuv2uh17yCIvR8VcStw7o1g0NM60sk+8Tq7YfIBJrtp53GkvzXH7OA0p8/n/u1satf/VJhtR1l8Wa6Gmaug7haSpaCaYQax6ta0mkutlb+eAOSG1aobM81D9A4iS1RRlzBBoVX6tU1S6WE2N9ORY6DfeLRC4l9Rvr5h95XDWB2mR1d4WFudpsgVYwiTwT31ljskD8ZyDOlm5DkGh9N/UB/0AI5Xvb8ZBmai2hQ4BWMqFwYnzxwB26YHSOv9WgY3JXnvoN+2R4rqGVh/LLDMtpFP+SpMGJNWvbIl5SOodbCczW2RKleksPoUeGEzrjtKHVdtZA+kfqO+rVx/iclCqwoopepvJpSTDjT+b9GWylGRF8EDbGlw6eUzmJM95Ovoz+kwLX3c2fTjFeYEsE7vUZm3mqdGJuKh2w9/QGSaqRHs99aScGOdDqkFcACoqdbBoQqqjamhH6Q9ng39JCg3lrGJwd50Qk9ovnqBTr8MME7Ps2wiVfygUmPoUBJJfJWX5Nda0nuncbFkA==")),Eo=new Set(go(wo)),Ao=new Set(go(wo)),_o=function(e){let t=[];for(;;){let n=e();if(0==n)break;t.push(vo(n,e))}for(;;){let n=e()-1;if(n<0)break;t.push(To(n,e))}return function(e){const t={};for(let n=0;n<e.length;n++){const r=e[n];t[r[0]]=r[1]}return t}(fo(t))}(wo),Io=function(e){let t=go(e).sort(((e,t)=>e-t));return function n(){let r=[];for(;;){let i=go(e,t);if(0==i.length)break;r.push({set:new Set(i),node:n()})}r.sort(((e,t)=>t.set.size-e.set.size));let i=e(),a=i%3;i=i/3|0;let o=!!(1&i);return i>>=1,{branches:r,valid:a,fe0f:o,save:1==i,check:2==i}}()}(wo),Ro=45,Co=95;function Oo(e){return La(e)}function ko(e){return e.filter((e=>65039!=e))}function So(e){for(let t of e.split(".")){let e=Oo(t);try{for(let t=e.lastIndexOf(Co)-1;t>=0;t--)if(e[t]!==Co)throw new Error("underscore only allowed at start");if(e.length>=4&&e.every((e=>e<128))&&e[2]===Ro&&e[3]===Ro)throw new Error("invalid label extension")}catch(e){throw new Error(`Invalid label "${t}": ${e.message}`)}}return e}function No(e){return So(function(e,t){let n=Oo(e).reverse(),r=[];for(;n.length;){let e=xo(n);if(e){r.push(...t(e));continue}let i=n.pop();if(Eo.has(i)){r.push(i);continue}if(Ao.has(i))continue;let a=_o[i];if(!a)throw new Error(`Disallowed codepoint: 0x${i.toString(16).toUpperCase()}`);r.push(...a)}return So(function(e){return e.normalize("NFC")}(String.fromCodePoint(...r)))}(e,ko))}function xo(e,t){var n;let r,i,a=Io,o=[],s=e.length;for(t&&(t.length=0);s;){let u=e[--s];if(a=null===(n=a.branches.find((e=>e.set.has(u))))||void 0===n?void 0:n.node,!a)break;if(a.save)i=u;else if(a.check&&u===i)break;o.push(u),a.fe0f&&(o.push(65039),s>0&&65039==e[s-1]&&s--),a.valid&&(r=o.slice(),2==a.valid&&r.splice(1,1),t&&t.push(...e.slice(s).reverse()),e.length=s)}return r}const Po=new Zn(so),Mo=new Uint8Array(32);function Bo(e){if(0===e.length)throw new Error("invalid ENS name; empty component");return e}function Do(e){const t=Pa(No(e)),n=[];if(0===e.length)return n;let r=0;for(let e=0;e<t.length;e++){46===t[e]&&(n.push(Bo(t.slice(r,e))),r=e+1)}if(r>=t.length)throw new Error("invalid ENS name; empty component");return n.push(Bo(t.slice(r))),n}function Fo(e){try{return 0!==Do(e).length}catch(e){}return!1}function Lo(e){"string"!=typeof e&&Po.throwArgumentError("invalid ENS name; not a string","name",e);let t=Mo;const n=Do(e);for(;n.length;)t=Di(ur([t,Di(n.pop())]));return pr(t)}function Uo(e){return pr(ur(Do(e).map((e=>{if(e.length>63)throw new Error("invalid DNS encoded entry; length exceeds 63 bytes");const t=new Uint8Array(e.length+1);return t.set(e,1),t[0]=t.length-1,t}))))+"00"}Mo.fill(0);const qo="Ethereum Signed Message:\n";function jo(e){return"string"==typeof e&&(e=Pa(e)),Di(ur([Pa(qo),Pa(String(e.length)),e]))}var Go=window&&window.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};const Ho=new Zn(so),zo=new Uint8Array(32);zo.fill(0);const Wo=kr.from(-1),Vo=kr.from(0),Ko=kr.from(1),Xo=kr.from("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");const Jo=vr(Ko.toHexString(),32),Yo=vr(Vo.toHexString(),32),Qo={name:"string",version:"string",chainId:"uint256",verifyingContract:"address",salt:"bytes32"},$o=["name","version","chainId","verifyingContract","salt"];function Zo(e){return function(t){return"string"!=typeof t&&Ho.throwArgumentError(`invalid domain value for ${JSON.stringify(e)}`,`domain.${e}`,t),t}}const es={name:Zo("name"),version:Zo("version"),chainId:function(e){try{return kr.from(e).toString()}catch(e){}return Ho.throwArgumentError('invalid domain value for "chainId"',"domain.chainId",e)},verifyingContract:function(e){try{return $i(e).toLowerCase()}catch(e){}return Ho.throwArgumentError('invalid domain value "verifyingContract"',"domain.verifyingContract",e)},salt:function(e){try{const t=sr(e);if(32!==t.length)throw new Error("bad length");return pr(t)}catch(e){}return Ho.throwArgumentError('invalid domain value "salt"',"domain.salt",e)}};function ts(e){{const t=e.match(/^(u?)int(\d*)$/);if(t){const n=""===t[1],r=parseInt(t[2]||"256");(r%8!=0||r>256||t[2]&&t[2]!==String(r))&&Ho.throwArgumentError("invalid numeric width","type",e);const i=Xo.mask(n?r-1:r),a=n?i.add(Ko).mul(Wo):Vo;return function(t){const n=kr.from(t);return(n.lt(a)||n.gt(i))&&Ho.throwArgumentError(`value out-of-bounds for ${e}`,"value",t),vr(n.toTwos(256).toHexString(),32)}}}{const t=e.match(/^bytes(\d+)$/);if(t){const n=parseInt(t[1]);return(0===n||n>32||t[1]!==String(n))&&Ho.throwArgumentError("invalid bytes width","type",e),function(t){return sr(t).length!==n&&Ho.throwArgumentError(`invalid length for ${e}`,"value",t),function(e){const t=sr(e),n=t.length%32;return n?yr([t,zo.slice(n)]):pr(t)}(t)}}}switch(e){case"address":return function(e){return vr($i(e),32)};case"bool":return function(e){return e?Jo:Yo};case"bytes":return function(e){return Di(e)};case"string":return function(e){return oo(e)}}return null}function ns(e,t){return`${e}(${t.map((({name:e,type:t})=>t+" "+e)).join(",")})`}class rs{constructor(e){Jr(this,"types",Object.freeze(ri(e))),Jr(this,"_encoderCache",{}),Jr(this,"_types",{});const t={},n={},r={};Object.keys(e).forEach((e=>{t[e]={},n[e]=[],r[e]={}}));for(const r in e){const i={};e[r].forEach((a=>{i[a.name]&&Ho.throwArgumentError(`duplicate variable name ${JSON.stringify(a.name)} in ${JSON.stringify(r)}`,"types",e),i[a.name]=!0;const o=a.type.match(/^([^\x5b]*)(\x5b|$)/)[1];o===r&&Ho.throwArgumentError(`circular type reference to ${JSON.stringify(o)}`,"types",e);ts(o)||(n[o]||Ho.throwArgumentError(`unknown type ${JSON.stringify(o)}`,"types",e),n[o].push(r),t[r][o]=!0)}))}const i=Object.keys(n).filter((e=>0===n[e].length));0===i.length?Ho.throwArgumentError("missing primary type","types",e):i.length>1&&Ho.throwArgumentError(`ambiguous primary types or unused types: ${i.map((e=>JSON.stringify(e))).join(", ")}`,"types",e),Jr(this,"primaryType",i[0]),function i(a,o){o[a]&&Ho.throwArgumentError(`circular type reference to ${JSON.stringify(a)}`,"types",e),o[a]=!0,Object.keys(t[a]).forEach((e=>{n[e]&&(i(e,o),Object.keys(o).forEach((t=>{r[t][e]=!0})))})),delete o[a]}(this.primaryType,{});for(const t in r){const n=Object.keys(r[t]);n.sort(),this._types[t]=ns(t,e[t])+n.map((t=>ns(t,e[t]))).join("")}}getEncoder(e){let t=this._encoderCache[e];return t||(t=this._encoderCache[e]=this._getEncoder(e)),t}_getEncoder(e){{const t=ts(e);if(t)return t}const t=e.match(/^(.*)(\x5b(\d*)\x5d)$/);if(t){const e=t[1],n=this.getEncoder(e),r=parseInt(t[3]);return t=>{r>=0&&t.length!==r&&Ho.throwArgumentError("array length mismatch; expected length ${ arrayLength }","value",t);let i=t.map(n);return this._types[e]&&(i=i.map(Di)),Di(yr(i))}}const n=this.types[e];if(n){const t=oo(this._types[e]);return e=>{const r=n.map((({name:t,type:n})=>{const r=this.getEncoder(n)(e[t]);return this._types[n]?Di(r):r}));return r.unshift(t),yr(r)}}return Ho.throwArgumentError(`unknown type: ${e}`,"type",e)}encodeType(e){const t=this._types[e];return t||Ho.throwArgumentError(`unknown type: ${JSON.stringify(e)}`,"name",e),t}encodeData(e,t){return this.getEncoder(e)(t)}hashStruct(e,t){return Di(this.encodeData(e,t))}encode(e){return this.encodeData(this.primaryType,e)}hash(e){return this.hashStruct(this.primaryType,e)}_visit(e,t,n){if(ts(e))return n(e,t);const r=e.match(/^(.*)(\x5b(\d*)\x5d)$/);if(r){const e=r[1],i=parseInt(r[3]);return i>=0&&t.length!==i&&Ho.throwArgumentError("array length mismatch; expected length ${ arrayLength }","value",t),t.map((t=>this._visit(e,t,n)))}const i=this.types[e];return i?i.reduce(((e,{name:r,type:i})=>(e[r]=this._visit(i,t[r],n),e)),{}):Ho.throwArgumentError(`unknown type: ${e}`,"type",e)}visit(e,t){return this._visit(this.primaryType,e,t)}static from(e){return new rs(e)}static getPrimaryType(e){return rs.from(e).primaryType}static hashStruct(e,t,n){return rs.from(t).hashStruct(e,n)}static hashDomain(e){const t=[];for(const n in e){const r=Qo[n];r||Ho.throwArgumentError(`invalid typed-data domain key: ${JSON.stringify(n)}`,"domain",e),t.push({name:n,type:r})}return t.sort(((e,t)=>$o.indexOf(e.name)-$o.indexOf(t.name))),rs.hashStruct("EIP712Domain",{EIP712Domain:t},e)}static encode(e,t,n){return yr(["0x1901",rs.hashDomain(e),rs.from(t).hash(n)])}static hash(e,t,n){return Di(rs.encode(e,t,n))}static resolveNames(e,t,n,r){return Go(this,void 0,void 0,(function*(){e=Zr(e);const i={};e.verifyingContract&&!dr(e.verifyingContract,20)&&(i[e.verifyingContract]="0x");const a=rs.from(t);a.visit(n,((e,t)=>("address"!==e||dr(t,20)||(i[t]="0x"),t)));for(const e in i)i[e]=yield r(e);return e.verifyingContract&&i[e.verifyingContract]&&(e.verifyingContract=i[e.verifyingContract]),n=a.visit(n,((e,t)=>"address"===e&&i[t]?i[t]:t)),{domain:e,value:n}}))}static getPayload(e,t,n){rs.hashDomain(e);const r={},i=[];$o.forEach((t=>{const n=e[t];null!=n&&(r[t]=es[t](n),i.push({name:t,type:Qo[t]}))}));const a=rs.from(t),o=Zr(t);return o.EIP712Domain?Ho.throwArgumentError("types must not contain EIP712Domain type","types.EIP712Domain",t):o.EIP712Domain=i,a.encode(n),{types:o,domain:r,primaryType:a.primaryType,message:a.visit(n,((e,t)=>{if(e.match(/^bytes(\d*)/))return pr(sr(t));if(e.match(/^u?int/))return kr.from(t).toString();switch(e){case"address":return t.toLowerCase();case"bool":return!!t;case"string":return"string"!=typeof t&&Ho.throwArgumentError("invalid string","value",t),t}return Ho.throwArgumentError("unsupported type","type",e)}))}}}var is=Object.freeze({__proto__:null,_TypedDataEncoder:rs,dnsEncode:Uo,ensNormalize:function(e){return Do(e).map((e=>Fa(e))).join(".")},hashMessage:jo,id:oo,isValidName:Fo,messagePrefix:qo,namehash:Lo});const as=new Zn(oi);let os=class extends ii{},ss=class extends ii{},us=class extends ii{},cs=class extends ii{static isIndexed(e){return!(!e||!e._isIndexed)}};const ls={"0x08c379a0":{signature:"Error(string)",name:"Error",inputs:["string"],reason:!0},"0x4e487b71":{signature:"Panic(uint256)",name:"Panic",inputs:["uint256"]}};function ds(e,t){const n=new Error(`deferred error during ABI decoding triggered accessing ${e}`);return n.error=t,n}let fs=class{constructor(e){let t=[];t="string"==typeof e?JSON.parse(e):e,Jr(this,"fragments",t.map((e=>gi.from(e))).filter((e=>null!=e))),Jr(this,"_abiCoder",Yr(new.target,"getAbiCoder")()),Jr(this,"functions",{}),Jr(this,"errors",{}),Jr(this,"events",{}),Jr(this,"structs",{}),this.fragments.forEach((e=>{let t=null;switch(e.type){case"constructor":return this.deploy?void as.warn("duplicate definition - constructor"):void Jr(this,"deploy",e);case"function":t=this.functions;break;case"event":t=this.events;break;case"error":t=this.errors;break;default:return}let n=e.format();t[n]?as.warn("duplicate definition - "+n):t[n]=e})),this.deploy||Jr(this,"deploy",Ei.from({payable:!1,type:"constructor"})),Jr(this,"_isInterface",!0)}format(e){e||(e=pi.full),e===pi.sighash&&as.throwArgumentError("interface does not support formatting sighash","format",e);const t=this.fragments.map((t=>t.format(e)));return e===pi.json?JSON.stringify(t.map((e=>JSON.parse(e)))):t}static getAbiCoder(){return ao}static getAddress(e){return $i(e)}static getSighash(e){return mr(oo(e.format()),0,4)}static getEventTopic(e){return oo(e.format())}getFunction(e){if(dr(e)){for(const t in this.functions)if(e===this.getSighash(t))return this.functions[t];as.throwArgumentError("no matching function","sighash",e)}if(-1===e.indexOf("(")){const t=e.trim(),n=Object.keys(this.functions).filter((e=>e.split("(")[0]===t));return 0===n.length?as.throwArgumentError("no matching function","name",t):n.length>1&&as.throwArgumentError("multiple matching functions","name",t),this.functions[n[0]]}const t=this.functions[Ai.fromString(e).format()];return t||as.throwArgumentError("no matching function","signature",e),t}getEvent(e){if(dr(e)){const t=e.toLowerCase();for(const e in this.events)if(t===this.getEventTopic(e))return this.events[e];as.throwArgumentError("no matching event","topichash",t)}if(-1===e.indexOf("(")){const t=e.trim(),n=Object.keys(this.events).filter((e=>e.split("(")[0]===t));return 0===n.length?as.throwArgumentError("no matching event","name",t):n.length>1&&as.throwArgumentError("multiple matching events","name",t),this.events[n[0]]}const t=this.events[bi.fromString(e).format()];return t||as.throwArgumentError("no matching event","signature",e),t}getError(e){if(dr(e)){const t=Yr(this.constructor,"getSighash");for(const n in this.errors){if(e===t(this.errors[n]))return this.errors[n]}as.throwArgumentError("no matching error","sighash",e)}if(-1===e.indexOf("(")){const t=e.trim(),n=Object.keys(this.errors).filter((e=>e.split("(")[0]===t));return 0===n.length?as.throwArgumentError("no matching error","name",t):n.length>1&&as.throwArgumentError("multiple matching errors","name",t),this.errors[n[0]]}const t=this.errors[Ai.fromString(e).format()];return t||as.throwArgumentError("no matching error","signature",e),t}getSighash(e){if("string"==typeof e)try{e=this.getFunction(e)}catch(t){try{e=this.getError(e)}catch(e){throw t}}return Yr(this.constructor,"getSighash")(e)}getEventTopic(e){return"string"==typeof e&&(e=this.getEvent(e)),Yr(this.constructor,"getEventTopic")(e)}_decodeParams(e,t){return this._abiCoder.decode(e,t)}_encodeParams(e,t){return this._abiCoder.encode(e,t)}encodeDeploy(e){return this._encodeParams(this.deploy.inputs,e||[])}decodeErrorResult(e,t){"string"==typeof e&&(e=this.getError(e));const n=sr(t);return pr(n.slice(0,4))!==this.getSighash(e)&&as.throwArgumentError(`data signature does not match error ${e.name}.`,"data",pr(n)),this._decodeParams(e.inputs,n.slice(4))}encodeErrorResult(e,t){return"string"==typeof e&&(e=this.getError(e)),pr(ur([this.getSighash(e),this._encodeParams(e.inputs,t||[])]))}decodeFunctionData(e,t){"string"==typeof e&&(e=this.getFunction(e));const n=sr(t);return pr(n.slice(0,4))!==this.getSighash(e)&&as.throwArgumentError(`data signature does not match function ${e.name}.`,"data",pr(n)),this._decodeParams(e.inputs,n.slice(4))}encodeFunctionData(e,t){return"string"==typeof e&&(e=this.getFunction(e)),pr(ur([this.getSighash(e),this._encodeParams(e.inputs,t||[])]))}decodeFunctionResult(e,t){"string"==typeof e&&(e=this.getFunction(e));let n=sr(t),r=null,i="",a=null,o=null,s=null;switch(n.length%this._abiCoder._getWordSize()){case 0:try{return this._abiCoder.decode(e.outputs,n)}catch(e){}break;case 4:{const e=pr(n.slice(0,4)),t=ls[e];if(t)a=this._abiCoder.decode(t.inputs,n.slice(4)),o=t.name,s=t.signature,t.reason&&(r=a[0]),"Error"===o?i=`; VM Exception while processing transaction: reverted with reason string ${JSON.stringify(a[0])}`:"Panic"===o&&(i=`; VM Exception while processing transaction: reverted with panic code ${a[0]}`);else try{const t=this.getError(e);a=this._abiCoder.decode(t.inputs,n.slice(4)),o=t.name,s=t.format()}catch(e){}break}}return as.throwError("call revert exception"+i,Zn.errors.CALL_EXCEPTION,{method:e.format(),data:pr(t),errorArgs:a,errorName:o,errorSignature:s,reason:r})}encodeFunctionResult(e,t){return"string"==typeof e&&(e=this.getFunction(e)),pr(this._abiCoder.encode(e.outputs,t||[]))}encodeFilterTopics(e,t){"string"==typeof e&&(e=this.getEvent(e)),t.length>e.inputs.length&&as.throwError("too many arguments for "+e.format(),Zn.errors.UNEXPECTED_ARGUMENT,{argument:"values",value:t});let n=[];e.anonymous||n.push(this.getEventTopic(e));const r=(e,t)=>"string"===e.type?oo(t):"bytes"===e.type?Di(pr(t)):("bool"===e.type&&"boolean"==typeof t&&(t=t?"0x01":"0x00"),e.type.match(/^u?int/)&&(t=kr.from(t).toHexString()),"address"===e.type&&this._abiCoder.encode(["address"],[t]),vr(pr(t),32));for(t.forEach(((t,i)=>{let a=e.inputs[i];a.indexed?null==t?n.push(null):"array"===a.baseType||"tuple"===a.baseType?as.throwArgumentError("filtering with tuples or arrays not supported","contract."+a.name,t):Array.isArray(t)?n.push(t.map((e=>r(a,e)))):n.push(r(a,t)):null!=t&&as.throwArgumentError("cannot filter non-indexed parameters; must be null","contract."+a.name,t)}));n.length&&null===n[n.length-1];)n.pop();return n}encodeEventLog(e,t){"string"==typeof e&&(e=this.getEvent(e));const n=[],r=[],i=[];return e.anonymous||n.push(this.getEventTopic(e)),t.length!==e.inputs.length&&as.throwArgumentError("event arguments/values mismatch","values",t),e.inputs.forEach(((e,a)=>{const o=t[a];if(e.indexed)if("string"===e.type)n.push(oo(o));else if("bytes"===e.type)n.push(Di(o));else{if("tuple"===e.baseType||"array"===e.baseType)throw new Error("not implemented");n.push(this._abiCoder.encode([e.type],[o]))}else r.push(e),i.push(o)})),{data:this._abiCoder.encode(r,i),topics:n}}decodeEventLog(e,t,n){if("string"==typeof e&&(e=this.getEvent(e)),null!=n&&!e.anonymous){let t=this.getEventTopic(e);dr(n[0],32)&&n[0].toLowerCase()===t||as.throwError("fragment/topic mismatch",Zn.errors.INVALID_ARGUMENT,{argument:"topics[0]",expected:t,value:n[0]}),n=n.slice(1)}let r=[],i=[],a=[];e.inputs.forEach(((e,t)=>{e.indexed?"string"===e.type||"bytes"===e.type||"tuple"===e.baseType||"array"===e.baseType?(r.push(mi.fromObject({type:"bytes32",name:e.name})),a.push(!0)):(r.push(e),a.push(!1)):(i.push(e),a.push(!1))}));let o=null!=n?this._abiCoder.decode(r,ur(n)):null,s=this._abiCoder.decode(i,t,!0),u=[],c=0,l=0;e.inputs.forEach(((e,t)=>{if(e.indexed)if(null==o)u[t]=new cs({_isIndexed:!0,hash:null});else if(a[t])u[t]=new cs({_isIndexed:!0,hash:o[l++]});else try{u[t]=o[l++]}catch(e){u[t]=e}else try{u[t]=s[c++]}catch(e){u[t]=e}if(e.name&&null==u[e.name]){const n=u[t];n instanceof Error?Object.defineProperty(u,e.name,{enumerable:!0,get:()=>{throw ds(`property ${JSON.stringify(e.name)}`,n)}}):u[e.name]=n}}));for(let e=0;e<u.length;e++){const t=u[e];t instanceof Error&&Object.defineProperty(u,e,{enumerable:!0,get:()=>{throw ds(`index ${e}`,t)}})}return Object.freeze(u)}parseTransaction(e){let t=this.getFunction(e.data.substring(0,10).toLowerCase());return t?new ss({args:this._abiCoder.decode(t.inputs,"0x"+e.data.substring(10)),functionFragment:t,name:t.name,signature:t.format(),sighash:this.getSighash(t),value:kr.from(e.value||"0")}):null}parseLog(e){let t=this.getEvent(e.topics[0]);return!t||t.anonymous?null:new os({eventFragment:t,name:t.name,signature:t.format(),topic:this.getEventTopic(t),args:this.decodeEventLog(t,e.data,e.topics)})}parseError(e){const t=pr(e);let n=this.getError(t.substring(0,10).toLowerCase());return n?new us({args:this._abiCoder.decode(n.inputs,"0x"+t.substring(10)),errorFragment:n,name:n.name,signature:n.format(),sighash:this.getSighash(n)}):null}static isInterface(e){return!(!e||!e._isInterface)}};var ps=Object.freeze({__proto__:null,AbiCoder:io,ConstructorFragment:Ei,ErrorFragment:Ii,EventFragment:bi,FormatTypes:pi,Fragment:gi,FunctionFragment:Ai,Indexed:cs,Interface:fs,LogDescription:os,ParamType:mi,TransactionDescription:ss,checkResultErrors:Ni,defaultAbiCoder:ao});var hs=window&&window.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};const ms=new Zn("abstract-provider/5.7.0");class ys extends ii{static isForkEvent(e){return!(!e||!e._isForkEvent)}}let gs=class e{constructor(){ms.checkAbstract(new.target,e),Jr(this,"_isProvider",!0)}getFeeData(){return hs(this,void 0,void 0,(function*(){const{block:e,gasPrice:t}=yield Qr({block:this.getBlock("latest"),gasPrice:this.getGasPrice().catch((e=>null))});let n=null,r=null,i=null;return e&&e.baseFeePerGas&&(n=e.baseFeePerGas,i=kr.from("1500000000"),r=e.baseFeePerGas.mul(2).add(i)),{lastBaseFeePerGas:n,maxFeePerGas:r,maxPriorityFeePerGas:i,gasPrice:t}}))}addListener(e,t){return this.on(e,t)}removeListener(e,t){return this.off(e,t)}static isProvider(e){return!(!e||!e._isProvider)}};var bs=window&&window.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};const vs=new Zn("abstract-signer/5.7.0"),Ts=["accessList","ccipReadEnabled","chainId","customData","data","from","gasLimit","gasPrice","maxFeePerGas","maxPriorityFeePerGas","nonce","to","type","value"],ws=[Zn.errors.INSUFFICIENT_FUNDS,Zn.errors.NONCE_EXPIRED,Zn.errors.REPLACEMENT_UNDERPRICED];let Es=class e{constructor(){vs.checkAbstract(new.target,e),Jr(this,"_isSigner",!0)}getBalance(e){return bs(this,void 0,void 0,(function*(){return this._checkProvider("getBalance"),yield this.provider.getBalance(this.getAddress(),e)}))}getTransactionCount(e){return bs(this,void 0,void 0,(function*(){return this._checkProvider("getTransactionCount"),yield this.provider.getTransactionCount(this.getAddress(),e)}))}estimateGas(e){return bs(this,void 0,void 0,(function*(){this._checkProvider("estimateGas");const t=yield Qr(this.checkTransaction(e));return yield this.provider.estimateGas(t)}))}call(e,t){return bs(this,void 0,void 0,(function*(){this._checkProvider("call");const n=yield Qr(this.checkTransaction(e));return yield this.provider.call(n,t)}))}sendTransaction(e){return bs(this,void 0,void 0,(function*(){this._checkProvider("sendTransaction");const t=yield this.populateTransaction(e),n=yield this.signTransaction(t);return yield this.provider.sendTransaction(n)}))}getChainId(){return bs(this,void 0,void 0,(function*(){this._checkProvider("getChainId");return(yield this.provider.getNetwork()).chainId}))}getGasPrice(){return bs(this,void 0,void 0,(function*(){return this._checkProvider("getGasPrice"),yield this.provider.getGasPrice()}))}getFeeData(){return bs(this,void 0,void 0,(function*(){return this._checkProvider("getFeeData"),yield this.provider.getFeeData()}))}resolveName(e){return bs(this,void 0,void 0,(function*(){return this._checkProvider("resolveName"),yield this.provider.resolveName(e)}))}checkTransaction(e){for(const t in e)-1===Ts.indexOf(t)&&vs.throwArgumentError("invalid transaction key: "+t,"transaction",e);const t=Zr(e);return null==t.from?t.from=this.getAddress():t.from=Promise.all([Promise.resolve(t.from),this.getAddress()]).then((t=>(t[0].toLowerCase()!==t[1].toLowerCase()&&vs.throwArgumentError("from address mismatch","transaction",e),t[0]))),t}populateTransaction(e){return bs(this,void 0,void 0,(function*(){const t=yield Qr(this.checkTransaction(e));null!=t.to&&(t.to=Promise.resolve(t.to).then((e=>bs(this,void 0,void 0,(function*(){if(null==e)return null;const t=yield this.resolveName(e);return null==t&&vs.throwArgumentError("provided ENS name resolves to null","tx.to",e),t})))),t.to.catch((e=>{})));const n=null!=t.maxFeePerGas||null!=t.maxPriorityFeePerGas;if(null==t.gasPrice||2!==t.type&&!n?0!==t.type&&1!==t.type||!n||vs.throwArgumentError("pre-eip-1559 transaction do not support maxFeePerGas/maxPriorityFeePerGas","transaction",e):vs.throwArgumentError("eip-1559 transaction do not support gasPrice","transaction",e),2!==t.type&&null!=t.type||null==t.maxFeePerGas||null==t.maxPriorityFeePerGas)if(0===t.type||1===t.type)null==t.gasPrice&&(t.gasPrice=this.getGasPrice());else{const e=yield this.getFeeData();if(null==t.type)if(null!=e.maxFeePerGas&&null!=e.maxPriorityFeePerGas)if(t.type=2,null!=t.gasPrice){const e=t.gasPrice;delete t.gasPrice,t.maxFeePerGas=e,t.maxPriorityFeePerGas=e}else null==t.maxFeePerGas&&(t.maxFeePerGas=e.maxFeePerGas),null==t.maxPriorityFeePerGas&&(t.maxPriorityFeePerGas=e.maxPriorityFeePerGas);else null!=e.gasPrice?(n&&vs.throwError("network does not support EIP-1559",Zn.errors.UNSUPPORTED_OPERATION,{operation:"populateTransaction"}),null==t.gasPrice&&(t.gasPrice=e.gasPrice),t.type=0):vs.throwError("failed to get consistent fee data",Zn.errors.UNSUPPORTED_OPERATION,{operation:"signer.getFeeData"});else 2===t.type&&(null==t.maxFeePerGas&&(t.maxFeePerGas=e.maxFeePerGas),null==t.maxPriorityFeePerGas&&(t.maxPriorityFeePerGas=e.maxPriorityFeePerGas))}else t.type=2;return null==t.nonce&&(t.nonce=this.getTransactionCount("pending")),null==t.gasLimit&&(t.gasLimit=this.estimateGas(t).catch((e=>{if(ws.indexOf(e.code)>=0)throw e;return vs.throwError("cannot estimate gas; transaction may fail or may require manual gas limit",Zn.errors.UNPREDICTABLE_GAS_LIMIT,{error:e,tx:t})}))),null==t.chainId?t.chainId=this.getChainId():t.chainId=Promise.all([Promise.resolve(t.chainId),this.getChainId()]).then((t=>(0!==t[1]&&t[0]!==t[1]&&vs.throwArgumentError("chainId address mismatch","transaction",e),t[0]))),yield Qr(t)}))}_checkProvider(e){this.provider||vs.throwError("missing provider",Zn.errors.UNSUPPORTED_OPERATION,{operation:e||"_checkProvider"})}static isSigner(e){return!(!e||!e._isSigner)}},As=class e extends Es{constructor(e,t){super(),Jr(this,"address",e),Jr(this,"provider",t||null)}getAddress(){return Promise.resolve(this.address)}_fail(e,t){return Promise.resolve().then((()=>{vs.throwError(e,Zn.errors.UNSUPPORTED_OPERATION,{operation:t})}))}signMessage(e){return this._fail("VoidSigner cannot sign messages","signMessage")}signTransaction(e){return this._fail("VoidSigner cannot sign transactions","signTransaction")}_signTypedData(e,t,n){return this._fail("VoidSigner cannot sign typed data","signTypedData")}connect(t){return new e(this.address,t)}};var _s={},Is={},Rs=Cs;function Cs(e,t){if(!e)throw new Error(t||"Assertion failed")}Cs.equal=function(e,t,n){if(e!=t)throw new Error(n||"Assertion failed: "+e+" != "+t)};var Os="function"==typeof Object.create?function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:function(e,t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e},ks=Rs,Ss=Ut(Object.freeze({__proto__:null,default:Os}));function Ns(e,t){return 55296==(64512&e.charCodeAt(t))&&(!(t<0||t+1>=e.length)&&56320==(64512&e.charCodeAt(t+1)))}function xs(e){return(e>>>24|e>>>8&65280|e<<8&16711680|(255&e)<<24)>>>0}function Ps(e){return 1===e.length?"0"+e:e}function Ms(e){return 7===e.length?"0"+e:6===e.length?"00"+e:5===e.length?"000"+e:4===e.length?"0000"+e:3===e.length?"00000"+e:2===e.length?"000000"+e:1===e.length?"0000000"+e:e}Is.inherits=Ss,Is.toArray=function(e,t){if(Array.isArray(e))return e.slice();if(!e)return[];var n=[];if("string"==typeof e)if(t){if("hex"===t)for((e=e.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(e="0"+e),i=0;i<e.length;i+=2)n.push(parseInt(e[i]+e[i+1],16))}else for(var r=0,i=0;i<e.length;i++){var a=e.charCodeAt(i);a<128?n[r++]=a:a<2048?(n[r++]=a>>6|192,n[r++]=63&a|128):Ns(e,i)?(a=65536+((1023&a)<<10)+(1023&e.charCodeAt(++i)),n[r++]=a>>18|240,n[r++]=a>>12&63|128,n[r++]=a>>6&63|128,n[r++]=63&a|128):(n[r++]=a>>12|224,n[r++]=a>>6&63|128,n[r++]=63&a|128)}else for(i=0;i<e.length;i++)n[i]=0|e[i];return n},Is.toHex=function(e){for(var t="",n=0;n<e.length;n++)t+=Ps(e[n].toString(16));return t},Is.htonl=xs,Is.toHex32=function(e,t){for(var n="",r=0;r<e.length;r++){var i=e[r];"little"===t&&(i=xs(i)),n+=Ms(i.toString(16))}return n},Is.zero2=Ps,Is.zero8=Ms,Is.join32=function(e,t,n,r){var i=n-t;ks(i%4==0);for(var a=new Array(i/4),o=0,s=t;o<a.length;o++,s+=4){var u;u="big"===r?e[s]<<24|e[s+1]<<16|e[s+2]<<8|e[s+3]:e[s+3]<<24|e[s+2]<<16|e[s+1]<<8|e[s],a[o]=u>>>0}return a},Is.split32=function(e,t){for(var n=new Array(4*e.length),r=0,i=0;r<e.length;r++,i+=4){var a=e[r];"big"===t?(n[i]=a>>>24,n[i+1]=a>>>16&255,n[i+2]=a>>>8&255,n[i+3]=255&a):(n[i+3]=a>>>24,n[i+2]=a>>>16&255,n[i+1]=a>>>8&255,n[i]=255&a)}return n},Is.rotr32=function(e,t){return e>>>t|e<<32-t},Is.rotl32=function(e,t){return e<<t|e>>>32-t},Is.sum32=function(e,t){return e+t>>>0},Is.sum32_3=function(e,t,n){return e+t+n>>>0},Is.sum32_4=function(e,t,n,r){return e+t+n+r>>>0},Is.sum32_5=function(e,t,n,r,i){return e+t+n+r+i>>>0},Is.sum64=function(e,t,n,r){var i=e[t],a=r+e[t+1]>>>0,o=(a<r?1:0)+n+i;e[t]=o>>>0,e[t+1]=a},Is.sum64_hi=function(e,t,n,r){return(t+r>>>0<t?1:0)+e+n>>>0},Is.sum64_lo=function(e,t,n,r){return t+r>>>0},Is.sum64_4_hi=function(e,t,n,r,i,a,o,s){var u=0,c=t;return u+=(c=c+r>>>0)<t?1:0,u+=(c=c+a>>>0)<a?1:0,e+n+i+o+(u+=(c=c+s>>>0)<s?1:0)>>>0},Is.sum64_4_lo=function(e,t,n,r,i,a,o,s){return t+r+a+s>>>0},Is.sum64_5_hi=function(e,t,n,r,i,a,o,s,u,c){var l=0,d=t;return l+=(d=d+r>>>0)<t?1:0,l+=(d=d+a>>>0)<a?1:0,l+=(d=d+s>>>0)<s?1:0,e+n+i+o+u+(l+=(d=d+c>>>0)<c?1:0)>>>0},Is.sum64_5_lo=function(e,t,n,r,i,a,o,s,u,c){return t+r+a+s+c>>>0},Is.rotr64_hi=function(e,t,n){return(t<<32-n|e>>>n)>>>0},Is.rotr64_lo=function(e,t,n){return(e<<32-n|t>>>n)>>>0},Is.shr64_hi=function(e,t,n){return e>>>n},Is.shr64_lo=function(e,t,n){return(e<<32-n|t>>>n)>>>0};var Bs={},Ds=Is,Fs=Rs;function Ls(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}Bs.BlockHash=Ls,Ls.prototype.update=function(e,t){if(e=Ds.toArray(e,t),this.pending?this.pending=this.pending.concat(e):this.pending=e,this.pendingTotal+=e.length,this.pending.length>=this._delta8){var n=(e=this.pending).length%this._delta8;this.pending=e.slice(e.length-n,e.length),0===this.pending.length&&(this.pending=null),e=Ds.join32(e,0,e.length-n,this.endian);for(var r=0;r<e.length;r+=this._delta32)this._update(e,r,r+this._delta32)}return this},Ls.prototype.digest=function(e){return this.update(this._pad()),Fs(null===this.pending),this._digest(e)},Ls.prototype._pad=function(){var e=this.pendingTotal,t=this._delta8,n=t-(e+this.padLength)%t,r=new Array(n+this.padLength);r[0]=128;for(var i=1;i<n;i++)r[i]=0;if(e<<=3,"big"===this.endian){for(var a=8;a<this.padLength;a++)r[i++]=0;r[i++]=0,r[i++]=0,r[i++]=0,r[i++]=0,r[i++]=e>>>24&255,r[i++]=e>>>16&255,r[i++]=e>>>8&255,r[i++]=255&e}else for(r[i++]=255&e,r[i++]=e>>>8&255,r[i++]=e>>>16&255,r[i++]=e>>>24&255,r[i++]=0,r[i++]=0,r[i++]=0,r[i++]=0,a=8;a<this.padLength;a++)r[i++]=0;return r};var Us={},qs={},js=Is.rotr32;function Gs(e,t,n){return e&t^~e&n}function Hs(e,t,n){return e&t^e&n^t&n}function zs(e,t,n){return e^t^n}qs.ft_1=function(e,t,n,r){return 0===e?Gs(t,n,r):1===e||3===e?zs(t,n,r):2===e?Hs(t,n,r):void 0},qs.ch32=Gs,qs.maj32=Hs,qs.p32=zs,qs.s0_256=function(e){return js(e,2)^js(e,13)^js(e,22)},qs.s1_256=function(e){return js(e,6)^js(e,11)^js(e,25)},qs.g0_256=function(e){return js(e,7)^js(e,18)^e>>>3},qs.g1_256=function(e){return js(e,17)^js(e,19)^e>>>10};var Ws=Is,Vs=Bs,Ks=qs,Xs=Ws.rotl32,Js=Ws.sum32,Ys=Ws.sum32_5,Qs=Ks.ft_1,$s=Vs.BlockHash,Zs=[1518500249,1859775393,2400959708,3395469782];function eu(){if(!(this instanceof eu))return new eu;$s.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}Ws.inherits(eu,$s);var tu=eu;eu.blockSize=512,eu.outSize=160,eu.hmacStrength=80,eu.padLength=64,eu.prototype._update=function(e,t){for(var n=this.W,r=0;r<16;r++)n[r]=e[t+r];for(;r<n.length;r++)n[r]=Xs(n[r-3]^n[r-8]^n[r-14]^n[r-16],1);var i=this.h[0],a=this.h[1],o=this.h[2],s=this.h[3],u=this.h[4];for(r=0;r<n.length;r++){var c=~~(r/20),l=Ys(Xs(i,5),Qs(c,a,o,s),u,n[r],Zs[c]);u=s,s=o,o=Xs(a,30),a=i,i=l}this.h[0]=Js(this.h[0],i),this.h[1]=Js(this.h[1],a),this.h[2]=Js(this.h[2],o),this.h[3]=Js(this.h[3],s),this.h[4]=Js(this.h[4],u)},eu.prototype._digest=function(e){return"hex"===e?Ws.toHex32(this.h,"big"):Ws.split32(this.h,"big")};var nu=Is,ru=Bs,iu=qs,au=Rs,ou=nu.sum32,su=nu.sum32_4,uu=nu.sum32_5,cu=iu.ch32,lu=iu.maj32,du=iu.s0_256,fu=iu.s1_256,pu=iu.g0_256,hu=iu.g1_256,mu=ru.BlockHash,yu=[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];function gu(){if(!(this instanceof gu))return new gu;mu.call(this),this.h=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],this.k=yu,this.W=new Array(64)}nu.inherits(gu,mu);var bu=gu;gu.blockSize=512,gu.outSize=256,gu.hmacStrength=192,gu.padLength=64,gu.prototype._update=function(e,t){for(var n=this.W,r=0;r<16;r++)n[r]=e[t+r];for(;r<n.length;r++)n[r]=su(hu(n[r-2]),n[r-7],pu(n[r-15]),n[r-16]);var i=this.h[0],a=this.h[1],o=this.h[2],s=this.h[3],u=this.h[4],c=this.h[5],l=this.h[6],d=this.h[7];for(au(this.k.length===n.length),r=0;r<n.length;r++){var f=uu(d,fu(u),cu(u,c,l),this.k[r],n[r]),p=ou(du(i),lu(i,a,o));d=l,l=c,c=u,u=ou(s,f),s=o,o=a,a=i,i=ou(f,p)}this.h[0]=ou(this.h[0],i),this.h[1]=ou(this.h[1],a),this.h[2]=ou(this.h[2],o),this.h[3]=ou(this.h[3],s),this.h[4]=ou(this.h[4],u),this.h[5]=ou(this.h[5],c),this.h[6]=ou(this.h[6],l),this.h[7]=ou(this.h[7],d)},gu.prototype._digest=function(e){return"hex"===e?nu.toHex32(this.h,"big"):nu.split32(this.h,"big")};var vu=Is,Tu=bu;function wu(){if(!(this instanceof wu))return new wu;Tu.call(this),this.h=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]}vu.inherits(wu,Tu);var Eu=wu;wu.blockSize=512,wu.outSize=224,wu.hmacStrength=192,wu.padLength=64,wu.prototype._digest=function(e){return"hex"===e?vu.toHex32(this.h.slice(0,7),"big"):vu.split32(this.h.slice(0,7),"big")};var Au=Is,_u=Bs,Iu=Rs,Ru=Au.rotr64_hi,Cu=Au.rotr64_lo,Ou=Au.shr64_hi,ku=Au.shr64_lo,Su=Au.sum64,Nu=Au.sum64_hi,xu=Au.sum64_lo,Pu=Au.sum64_4_hi,Mu=Au.sum64_4_lo,Bu=Au.sum64_5_hi,Du=Au.sum64_5_lo,Fu=_u.BlockHash,Lu=[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];function Uu(){if(!(this instanceof Uu))return new Uu;Fu.call(this),this.h=[1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209],this.k=Lu,this.W=new Array(160)}Au.inherits(Uu,Fu);var qu=Uu;function ju(e,t,n,r,i){var a=e&n^~e&i;return a<0&&(a+=4294967296),a}function Gu(e,t,n,r,i,a){var o=t&r^~t&a;return o<0&&(o+=4294967296),o}function Hu(e,t,n,r,i){var a=e&n^e&i^n&i;return a<0&&(a+=4294967296),a}function zu(e,t,n,r,i,a){var o=t&r^t&a^r&a;return o<0&&(o+=4294967296),o}function Wu(e,t){var n=Ru(e,t,28)^Ru(t,e,2)^Ru(t,e,7);return n<0&&(n+=4294967296),n}function Vu(e,t){var n=Cu(e,t,28)^Cu(t,e,2)^Cu(t,e,7);return n<0&&(n+=4294967296),n}function Ku(e,t){var n=Ru(e,t,14)^Ru(e,t,18)^Ru(t,e,9);return n<0&&(n+=4294967296),n}function Xu(e,t){var n=Cu(e,t,14)^Cu(e,t,18)^Cu(t,e,9);return n<0&&(n+=4294967296),n}function Ju(e,t){var n=Ru(e,t,1)^Ru(e,t,8)^Ou(e,t,7);return n<0&&(n+=4294967296),n}function Yu(e,t){var n=Cu(e,t,1)^Cu(e,t,8)^ku(e,t,7);return n<0&&(n+=4294967296),n}function Qu(e,t){var n=Ru(e,t,19)^Ru(t,e,29)^Ou(e,t,6);return n<0&&(n+=4294967296),n}function $u(e,t){var n=Cu(e,t,19)^Cu(t,e,29)^ku(e,t,6);return n<0&&(n+=4294967296),n}Uu.blockSize=1024,Uu.outSize=512,Uu.hmacStrength=192,Uu.padLength=128,Uu.prototype._prepareBlock=function(e,t){for(var n=this.W,r=0;r<32;r++)n[r]=e[t+r];for(;r<n.length;r+=2){var i=Qu(n[r-4],n[r-3]),a=$u(n[r-4],n[r-3]),o=n[r-14],s=n[r-13],u=Ju(n[r-30],n[r-29]),c=Yu(n[r-30],n[r-29]),l=n[r-32],d=n[r-31];n[r]=Pu(i,a,o,s,u,c,l,d),n[r+1]=Mu(i,a,o,s,u,c,l,d)}},Uu.prototype._update=function(e,t){this._prepareBlock(e,t);var n=this.W,r=this.h[0],i=this.h[1],a=this.h[2],o=this.h[3],s=this.h[4],u=this.h[5],c=this.h[6],l=this.h[7],d=this.h[8],f=this.h[9],p=this.h[10],h=this.h[11],m=this.h[12],y=this.h[13],g=this.h[14],b=this.h[15];Iu(this.k.length===n.length);for(var v=0;v<n.length;v+=2){var T=g,w=b,E=Ku(d,f),A=Xu(d,f),_=ju(d,f,p,h,m),I=Gu(d,f,p,h,m,y),R=this.k[v],C=this.k[v+1],O=n[v],k=n[v+1],S=Bu(T,w,E,A,_,I,R,C,O,k),N=Du(T,w,E,A,_,I,R,C,O,k);T=Wu(r,i),w=Vu(r,i),E=Hu(r,i,a,o,s),A=zu(r,i,a,o,s,u);var x=Nu(T,w,E,A),P=xu(T,w,E,A);g=m,b=y,m=p,y=h,p=d,h=f,d=Nu(c,l,S,N),f=xu(l,l,S,N),c=s,l=u,s=a,u=o,a=r,o=i,r=Nu(S,N,x,P),i=xu(S,N,x,P)}Su(this.h,0,r,i),Su(this.h,2,a,o),Su(this.h,4,s,u),Su(this.h,6,c,l),Su(this.h,8,d,f),Su(this.h,10,p,h),Su(this.h,12,m,y),Su(this.h,14,g,b)},Uu.prototype._digest=function(e){return"hex"===e?Au.toHex32(this.h,"big"):Au.split32(this.h,"big")};var Zu=Is,ec=qu;function tc(){if(!(this instanceof tc))return new tc;ec.call(this),this.h=[3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]}Zu.inherits(tc,ec);var nc=tc;tc.blockSize=1024,tc.outSize=384,tc.hmacStrength=192,tc.padLength=128,tc.prototype._digest=function(e){return"hex"===e?Zu.toHex32(this.h.slice(0,12),"big"):Zu.split32(this.h.slice(0,12),"big")},Us.sha1=tu,Us.sha224=Eu,Us.sha256=bu,Us.sha384=nc,Us.sha512=qu;var rc={},ic=Is,ac=Bs,oc=ic.rotl32,sc=ic.sum32,uc=ic.sum32_3,cc=ic.sum32_4,lc=ac.BlockHash;function dc(){if(!(this instanceof dc))return new dc;lc.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.endian="little"}function fc(e,t,n,r){return e<=15?t^n^r:e<=31?t&n|~t&r:e<=47?(t|~n)^r:e<=63?t&r|n&~r:t^(n|~r)}function pc(e){return e<=15?0:e<=31?1518500249:e<=47?1859775393:e<=63?2400959708:2840853838}function hc(e){return e<=15?1352829926:e<=31?1548603684:e<=47?1836072691:e<=63?2053994217:0}ic.inherits(dc,lc),rc.ripemd160=dc,dc.blockSize=512,dc.outSize=160,dc.hmacStrength=192,dc.padLength=64,dc.prototype._update=function(e,t){for(var n=this.h[0],r=this.h[1],i=this.h[2],a=this.h[3],o=this.h[4],s=n,u=r,c=i,l=a,d=o,f=0;f<80;f++){var p=sc(oc(cc(n,fc(f,r,i,a),e[mc[f]+t],pc(f)),gc[f]),o);n=o,o=a,a=oc(i,10),i=r,r=p,p=sc(oc(cc(s,fc(79-f,u,c,l),e[yc[f]+t],hc(f)),bc[f]),d),s=d,d=l,l=oc(c,10),c=u,u=p}p=uc(this.h[1],i,l),this.h[1]=uc(this.h[2],a,d),this.h[2]=uc(this.h[3],o,s),this.h[3]=uc(this.h[4],n,u),this.h[4]=uc(this.h[0],r,c),this.h[0]=p},dc.prototype._digest=function(e){return"hex"===e?ic.toHex32(this.h,"little"):ic.split32(this.h,"little")};var mc=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],yc=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],gc=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],bc=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],vc=Is,Tc=Rs;function wc(e,t,n){if(!(this instanceof wc))return new wc(e,t,n);this.Hash=e,this.blockSize=e.blockSize/8,this.outSize=e.outSize/8,this.inner=null,this.outer=null,this._init(vc.toArray(t,n))}var Ec=wc;wc.prototype._init=function(e){e.length>this.blockSize&&(e=(new this.Hash).update(e).digest()),Tc(e.length<=this.blockSize);for(var t=e.length;t<this.blockSize;t++)e.push(0);for(t=0;t<e.length;t++)e[t]^=54;for(this.inner=(new this.Hash).update(e),t=0;t<e.length;t++)e[t]^=106;this.outer=(new this.Hash).update(e)},wc.prototype.update=function(e,t){return this.inner.update(e,t),this},wc.prototype.digest=function(e){return this.outer.update(this.inner.digest()),this.outer.digest(e)},function(e){var t=e;t.utils=Is,t.common=Bs,t.sha=Us,t.ripemd=rc,t.hmac=Ec,t.sha1=t.sha.sha1,t.sha256=t.sha.sha256,t.sha224=t.sha.sha224,t.sha384=t.sha.sha384,t.sha512=t.sha.sha512,t.ripemd160=t.ripemd.ripemd160}(_s);var Ac=Lt(_s);function _c(e,t,n){return n={path:t,exports:{},require:function(e,t){return function(){throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs")}(null==t&&n.path)}},e(n,n.exports),n.exports}var Ic=Rc;function Rc(e,t){if(!e)throw new Error(t||"Assertion failed")}Rc.equal=function(e,t,n){if(e!=t)throw new Error(n||"Assertion failed: "+e+" != "+t)};var Cc=_c((function(e,t){var n=t;function r(e){return 1===e.length?"0"+e:e}function i(e){for(var t="",n=0;n<e.length;n++)t+=r(e[n].toString(16));return t}n.toArray=function(e,t){if(Array.isArray(e))return e.slice();if(!e)return[];var n=[];if("string"!=typeof e){for(var r=0;r<e.length;r++)n[r]=0|e[r];return n}if("hex"===t){(e=e.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(e="0"+e);for(r=0;r<e.length;r+=2)n.push(parseInt(e[r]+e[r+1],16))}else for(r=0;r<e.length;r++){var i=e.charCodeAt(r),a=i>>8,o=255&i;a?n.push(a,o):n.push(o)}return n},n.zero2=r,n.toHex=i,n.encode=function(e,t){return"hex"===t?i(e):e}})),Oc=_c((function(e,t){var n=t;n.assert=Ic,n.toArray=Cc.toArray,n.zero2=Cc.zero2,n.toHex=Cc.toHex,n.encode=Cc.encode,n.getNAF=function(e,t,n){var r=new Array(Math.max(e.bitLength(),n)+1);r.fill(0);for(var i=1<<t+1,a=e.clone(),o=0;o<r.length;o++){var s,u=a.andln(i-1);a.isOdd()?(s=u>(i>>1)-1?(i>>1)-u:u,a.isubn(s)):s=0,r[o]=s,a.iushrn(1)}return r},n.getJSF=function(e,t){var n=[[],[]];e=e.clone(),t=t.clone();for(var r,i=0,a=0;e.cmpn(-i)>0||t.cmpn(-a)>0;){var o,s,u=e.andln(3)+i&3,c=t.andln(3)+a&3;3===u&&(u=-1),3===c&&(c=-1),o=0==(1&u)?0:3!==(r=e.andln(7)+i&7)&&5!==r||2!==c?u:-u,n[0].push(o),s=0==(1&c)?0:3!==(r=t.andln(7)+a&7)&&5!==r||2!==u?c:-c,n[1].push(s),2*i===o+1&&(i=1-i),2*a===s+1&&(a=1-a),e.iushrn(1),t.iushrn(1)}return n},n.cachedProperty=function(e,t,n){var r="_"+t;e.prototype[t]=function(){return void 0!==this[r]?this[r]:this[r]=n.call(this)}},n.parseBytes=function(e){return"string"==typeof e?n.toArray(e,"hex"):e},n.intFromLE=function(e){return new Hn(e,"hex","le")}})),kc=Oc.getNAF,Sc=Oc.getJSF,Nc=Oc.assert;function xc(e,t){this.type=e,this.p=new Hn(t.p,16),this.red=t.prime?Hn.red(t.prime):Hn.mont(this.p),this.zero=new Hn(0).toRed(this.red),this.one=new Hn(1).toRed(this.red),this.two=new Hn(2).toRed(this.red),this.n=t.n&&new Hn(t.n,16),this.g=t.g&&this.pointFromJSON(t.g,t.gRed),this._wnafT1=new Array(4),this._wnafT2=new Array(4),this._wnafT3=new Array(4),this._wnafT4=new Array(4),this._bitLength=this.n?this.n.bitLength():0;var n=this.n&&this.p.div(this.n);!n||n.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}var Pc=xc;function Mc(e,t){this.curve=e,this.type=t,this.precomputed=null}xc.prototype.point=function(){throw new Error("Not implemented")},xc.prototype.validate=function(){throw new Error("Not implemented")},xc.prototype._fixedNafMul=function(e,t){Nc(e.precomputed);var n=e._getDoubles(),r=kc(t,1,this._bitLength),i=(1<<n.step+1)-(n.step%2==0?2:1);i/=3;var a,o,s=[];for(a=0;a<r.length;a+=n.step){o=0;for(var u=a+n.step-1;u>=a;u--)o=(o<<1)+r[u];s.push(o)}for(var c=this.jpoint(null,null,null),l=this.jpoint(null,null,null),d=i;d>0;d--){for(a=0;a<s.length;a++)(o=s[a])===d?l=l.mixedAdd(n.points[a]):o===-d&&(l=l.mixedAdd(n.points[a].neg()));c=c.add(l)}return c.toP()},xc.prototype._wnafMul=function(e,t){var n=4,r=e._getNAFPoints(n);n=r.wnd;for(var i=r.points,a=kc(t,n,this._bitLength),o=this.jpoint(null,null,null),s=a.length-1;s>=0;s--){for(var u=0;s>=0&&0===a[s];s--)u++;if(s>=0&&u++,o=o.dblp(u),s<0)break;var c=a[s];Nc(0!==c),o="affine"===e.type?c>0?o.mixedAdd(i[c-1>>1]):o.mixedAdd(i[-c-1>>1].neg()):c>0?o.add(i[c-1>>1]):o.add(i[-c-1>>1].neg())}return"affine"===e.type?o.toP():o},xc.prototype._wnafMulAdd=function(e,t,n,r,i){var a,o,s,u=this._wnafT1,c=this._wnafT2,l=this._wnafT3,d=0;for(a=0;a<r;a++){var f=(s=t[a])._getNAFPoints(e);u[a]=f.wnd,c[a]=f.points}for(a=r-1;a>=1;a-=2){var p=a-1,h=a;if(1===u[p]&&1===u[h]){var m=[t[p],null,null,t[h]];0===t[p].y.cmp(t[h].y)?(m[1]=t[p].add(t[h]),m[2]=t[p].toJ().mixedAdd(t[h].neg())):0===t[p].y.cmp(t[h].y.redNeg())?(m[1]=t[p].toJ().mixedAdd(t[h]),m[2]=t[p].add(t[h].neg())):(m[1]=t[p].toJ().mixedAdd(t[h]),m[2]=t[p].toJ().mixedAdd(t[h].neg()));var y=[-3,-1,-5,-7,0,7,5,1,3],g=Sc(n[p],n[h]);for(d=Math.max(g[0].length,d),l[p]=new Array(d),l[h]=new Array(d),o=0;o<d;o++){var b=0|g[0][o],v=0|g[1][o];l[p][o]=y[3*(b+1)+(v+1)],l[h][o]=0,c[p]=m}}else l[p]=kc(n[p],u[p],this._bitLength),l[h]=kc(n[h],u[h],this._bitLength),d=Math.max(l[p].length,d),d=Math.max(l[h].length,d)}var T=this.jpoint(null,null,null),w=this._wnafT4;for(a=d;a>=0;a--){for(var E=0;a>=0;){var A=!0;for(o=0;o<r;o++)w[o]=0|l[o][a],0!==w[o]&&(A=!1);if(!A)break;E++,a--}if(a>=0&&E++,T=T.dblp(E),a<0)break;for(o=0;o<r;o++){var _=w[o];0!==_&&(_>0?s=c[o][_-1>>1]:_<0&&(s=c[o][-_-1>>1].neg()),T="affine"===s.type?T.mixedAdd(s):T.add(s))}}for(a=0;a<r;a++)c[a]=null;return i?T:T.toP()},xc.BasePoint=Mc,Mc.prototype.eq=function(){throw new Error("Not implemented")},Mc.prototype.validate=function(){return this.curve.validate(this)},xc.prototype.decodePoint=function(e,t){e=Oc.toArray(e,t);var n=this.p.byteLength();if((4===e[0]||6===e[0]||7===e[0])&&e.length-1==2*n)return 6===e[0]?Nc(e[e.length-1]%2==0):7===e[0]&&Nc(e[e.length-1]%2==1),this.point(e.slice(1,1+n),e.slice(1+n,1+2*n));if((2===e[0]||3===e[0])&&e.length-1===n)return this.pointFromX(e.slice(1,1+n),3===e[0]);throw new Error("Unknown point format")},Mc.prototype.encodeCompressed=function(e){return this.encode(e,!0)},Mc.prototype._encode=function(e){var t=this.curve.p.byteLength(),n=this.getX().toArray("be",t);return e?[this.getY().isEven()?2:3].concat(n):[4].concat(n,this.getY().toArray("be",t))},Mc.prototype.encode=function(e,t){return Oc.encode(this._encode(t),e)},Mc.prototype.precompute=function(e){if(this.precomputed)return this;var t={doubles:null,naf:null,beta:null};return t.naf=this._getNAFPoints(8),t.doubles=this._getDoubles(4,e),t.beta=this._getBeta(),this.precomputed=t,this},Mc.prototype._hasDoubles=function(e){if(!this.precomputed)return!1;var t=this.precomputed.doubles;return!!t&&t.points.length>=Math.ceil((e.bitLength()+1)/t.step)},Mc.prototype._getDoubles=function(e,t){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var n=[this],r=this,i=0;i<t;i+=e){for(var a=0;a<e;a++)r=r.dbl();n.push(r)}return{step:e,points:n}},Mc.prototype._getNAFPoints=function(e){if(this.precomputed&&this.precomputed.naf)return this.precomputed.naf;for(var t=[this],n=(1<<e)-1,r=1===n?null:this.dbl(),i=1;i<n;i++)t[i]=t[i-1].add(r);return{wnd:e,points:t}},Mc.prototype._getBeta=function(){return null},Mc.prototype.dblp=function(e){for(var t=this,n=0;n<e;n++)t=t.dbl();return t};var Bc=_c((function(e){"function"==typeof Object.create?e.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:e.exports=function(e,t){if(t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}}})),Dc=Oc.assert;function Fc(e){Pc.call(this,"short",e),this.a=new Hn(e.a,16).toRed(this.red),this.b=new Hn(e.b,16).toRed(this.red),this.tinv=this.two.redInvm(),this.zeroA=0===this.a.fromRed().cmpn(0),this.threeA=0===this.a.fromRed().sub(this.p).cmpn(-3),this.endo=this._getEndomorphism(e),this._endoWnafT1=new Array(4),this._endoWnafT2=new Array(4)}Bc(Fc,Pc);var Lc=Fc;function Uc(e,t,n,r){Pc.BasePoint.call(this,e,"affine"),null===t&&null===n?(this.x=null,this.y=null,this.inf=!0):(this.x=new Hn(t,16),this.y=new Hn(n,16),r&&(this.x.forceRed(this.curve.red),this.y.forceRed(this.curve.red)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.inf=!1)}function qc(e,t,n,r){Pc.BasePoint.call(this,e,"jacobian"),null===t&&null===n&&null===r?(this.x=this.curve.one,this.y=this.curve.one,this.z=new Hn(0)):(this.x=new Hn(t,16),this.y=new Hn(n,16),this.z=new Hn(r,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}Fc.prototype._getEndomorphism=function(e){if(this.zeroA&&this.g&&this.n&&1===this.p.modn(3)){var t,n;if(e.beta)t=new Hn(e.beta,16).toRed(this.red);else{var r=this._getEndoRoots(this.p);t=(t=r[0].cmp(r[1])<0?r[0]:r[1]).toRed(this.red)}if(e.lambda)n=new Hn(e.lambda,16);else{var i=this._getEndoRoots(this.n);0===this.g.mul(i[0]).x.cmp(this.g.x.redMul(t))?n=i[0]:(n=i[1],Dc(0===this.g.mul(n).x.cmp(this.g.x.redMul(t))))}return{beta:t,lambda:n,basis:e.basis?e.basis.map((function(e){return{a:new Hn(e.a,16),b:new Hn(e.b,16)}})):this._getEndoBasis(n)}}},Fc.prototype._getEndoRoots=function(e){var t=e===this.p?this.red:Hn.mont(e),n=new Hn(2).toRed(t).redInvm(),r=n.redNeg(),i=new Hn(3).toRed(t).redNeg().redSqrt().redMul(n);return[r.redAdd(i).fromRed(),r.redSub(i).fromRed()]},Fc.prototype._getEndoBasis=function(e){for(var t,n,r,i,a,o,s,u,c,l=this.n.ushrn(Math.floor(this.n.bitLength()/2)),d=e,f=this.n.clone(),p=new Hn(1),h=new Hn(0),m=new Hn(0),y=new Hn(1),g=0;0!==d.cmpn(0);){var b=f.div(d);u=f.sub(b.mul(d)),c=m.sub(b.mul(p));var v=y.sub(b.mul(h));if(!r&&u.cmp(l)<0)t=s.neg(),n=p,r=u.neg(),i=c;else if(r&&2==++g)break;s=u,f=d,d=u,m=p,p=c,y=h,h=v}a=u.neg(),o=c;var T=r.sqr().add(i.sqr());return a.sqr().add(o.sqr()).cmp(T)>=0&&(a=t,o=n),r.negative&&(r=r.neg(),i=i.neg()),a.negative&&(a=a.neg(),o=o.neg()),[{a:r,b:i},{a:a,b:o}]},Fc.prototype._endoSplit=function(e){var t=this.endo.basis,n=t[0],r=t[1],i=r.b.mul(e).divRound(this.n),a=n.b.neg().mul(e).divRound(this.n),o=i.mul(n.a),s=a.mul(r.a),u=i.mul(n.b),c=a.mul(r.b);return{k1:e.sub(o).sub(s),k2:u.add(c).neg()}},Fc.prototype.pointFromX=function(e,t){(e=new Hn(e,16)).red||(e=e.toRed(this.red));var n=e.redSqr().redMul(e).redIAdd(e.redMul(this.a)).redIAdd(this.b),r=n.redSqrt();if(0!==r.redSqr().redSub(n).cmp(this.zero))throw new Error("invalid point");var i=r.fromRed().isOdd();return(t&&!i||!t&&i)&&(r=r.redNeg()),this.point(e,r)},Fc.prototype.validate=function(e){if(e.inf)return!0;var t=e.x,n=e.y,r=this.a.redMul(t),i=t.redSqr().redMul(t).redIAdd(r).redIAdd(this.b);return 0===n.redSqr().redISub(i).cmpn(0)},Fc.prototype._endoWnafMulAdd=function(e,t,n){for(var r=this._endoWnafT1,i=this._endoWnafT2,a=0;a<e.length;a++){var o=this._endoSplit(t[a]),s=e[a],u=s._getBeta();o.k1.negative&&(o.k1.ineg(),s=s.neg(!0)),o.k2.negative&&(o.k2.ineg(),u=u.neg(!0)),r[2*a]=s,r[2*a+1]=u,i[2*a]=o.k1,i[2*a+1]=o.k2}for(var c=this._wnafMulAdd(1,r,i,2*a,n),l=0;l<2*a;l++)r[l]=null,i[l]=null;return c},Bc(Uc,Pc.BasePoint),Fc.prototype.point=function(e,t,n){return new Uc(this,e,t,n)},Fc.prototype.pointFromJSON=function(e,t){return Uc.fromJSON(this,e,t)},Uc.prototype._getBeta=function(){if(this.curve.endo){var e=this.precomputed;if(e&&e.beta)return e.beta;var t=this.curve.point(this.x.redMul(this.curve.endo.beta),this.y);if(e){var n=this.curve,r=function(e){return n.point(e.x.redMul(n.endo.beta),e.y)};e.beta=t,t.precomputed={beta:null,naf:e.naf&&{wnd:e.naf.wnd,points:e.naf.points.map(r)},doubles:e.doubles&&{step:e.doubles.step,points:e.doubles.points.map(r)}}}return t}},Uc.prototype.toJSON=function(){return this.precomputed?[this.x,this.y,this.precomputed&&{doubles:this.precomputed.doubles&&{step:this.precomputed.doubles.step,points:this.precomputed.doubles.points.slice(1)},naf:this.precomputed.naf&&{wnd:this.precomputed.naf.wnd,points:this.precomputed.naf.points.slice(1)}}]:[this.x,this.y]},Uc.fromJSON=function(e,t,n){"string"==typeof t&&(t=JSON.parse(t));var r=e.point(t[0],t[1],n);if(!t[2])return r;function i(t){return e.point(t[0],t[1],n)}var a=t[2];return r.precomputed={beta:null,doubles:a.doubles&&{step:a.doubles.step,points:[r].concat(a.doubles.points.map(i))},naf:a.naf&&{wnd:a.naf.wnd,points:[r].concat(a.naf.points.map(i))}},r},Uc.prototype.inspect=function(){return this.isInfinity()?"<EC Point Infinity>":"<EC Point x: "+this.x.fromRed().toString(16,2)+" y: "+this.y.fromRed().toString(16,2)+">"},Uc.prototype.isInfinity=function(){return this.inf},Uc.prototype.add=function(e){if(this.inf)return e;if(e.inf)return this;if(this.eq(e))return this.dbl();if(this.neg().eq(e))return this.curve.point(null,null);if(0===this.x.cmp(e.x))return this.curve.point(null,null);var t=this.y.redSub(e.y);0!==t.cmpn(0)&&(t=t.redMul(this.x.redSub(e.x).redInvm()));var n=t.redSqr().redISub(this.x).redISub(e.x),r=t.redMul(this.x.redSub(n)).redISub(this.y);return this.curve.point(n,r)},Uc.prototype.dbl=function(){if(this.inf)return this;var e=this.y.redAdd(this.y);if(0===e.cmpn(0))return this.curve.point(null,null);var t=this.curve.a,n=this.x.redSqr(),r=e.redInvm(),i=n.redAdd(n).redIAdd(n).redIAdd(t).redMul(r),a=i.redSqr().redISub(this.x.redAdd(this.x)),o=i.redMul(this.x.redSub(a)).redISub(this.y);return this.curve.point(a,o)},Uc.prototype.getX=function(){return this.x.fromRed()},Uc.prototype.getY=function(){return this.y.fromRed()},Uc.prototype.mul=function(e){return e=new Hn(e,16),this.isInfinity()?this:this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve.endo?this.curve._endoWnafMulAdd([this],[e]):this.curve._wnafMul(this,e)},Uc.prototype.mulAdd=function(e,t,n){var r=[this,t],i=[e,n];return this.curve.endo?this.curve._endoWnafMulAdd(r,i):this.curve._wnafMulAdd(1,r,i,2)},Uc.prototype.jmulAdd=function(e,t,n){var r=[this,t],i=[e,n];return this.curve.endo?this.curve._endoWnafMulAdd(r,i,!0):this.curve._wnafMulAdd(1,r,i,2,!0)},Uc.prototype.eq=function(e){return this===e||this.inf===e.inf&&(this.inf||0===this.x.cmp(e.x)&&0===this.y.cmp(e.y))},Uc.prototype.neg=function(e){if(this.inf)return this;var t=this.curve.point(this.x,this.y.redNeg());if(e&&this.precomputed){var n=this.precomputed,r=function(e){return e.neg()};t.precomputed={naf:n.naf&&{wnd:n.naf.wnd,points:n.naf.points.map(r)},doubles:n.doubles&&{step:n.doubles.step,points:n.doubles.points.map(r)}}}return t},Uc.prototype.toJ=function(){return this.inf?this.curve.jpoint(null,null,null):this.curve.jpoint(this.x,this.y,this.curve.one)},Bc(qc,Pc.BasePoint),Fc.prototype.jpoint=function(e,t,n){return new qc(this,e,t,n)},qc.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var e=this.z.redInvm(),t=e.redSqr(),n=this.x.redMul(t),r=this.y.redMul(t).redMul(e);return this.curve.point(n,r)},qc.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},qc.prototype.add=function(e){if(this.isInfinity())return e;if(e.isInfinity())return this;var t=e.z.redSqr(),n=this.z.redSqr(),r=this.x.redMul(t),i=e.x.redMul(n),a=this.y.redMul(t.redMul(e.z)),o=e.y.redMul(n.redMul(this.z)),s=r.redSub(i),u=a.redSub(o);if(0===s.cmpn(0))return 0!==u.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var c=s.redSqr(),l=c.redMul(s),d=r.redMul(c),f=u.redSqr().redIAdd(l).redISub(d).redISub(d),p=u.redMul(d.redISub(f)).redISub(a.redMul(l)),h=this.z.redMul(e.z).redMul(s);return this.curve.jpoint(f,p,h)},qc.prototype.mixedAdd=function(e){if(this.isInfinity())return e.toJ();if(e.isInfinity())return this;var t=this.z.redSqr(),n=this.x,r=e.x.redMul(t),i=this.y,a=e.y.redMul(t).redMul(this.z),o=n.redSub(r),s=i.redSub(a);if(0===o.cmpn(0))return 0!==s.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var u=o.redSqr(),c=u.redMul(o),l=n.redMul(u),d=s.redSqr().redIAdd(c).redISub(l).redISub(l),f=s.redMul(l.redISub(d)).redISub(i.redMul(c)),p=this.z.redMul(o);return this.curve.jpoint(d,f,p)},qc.prototype.dblp=function(e){if(0===e)return this;if(this.isInfinity())return this;if(!e)return this.dbl();var t;if(this.curve.zeroA||this.curve.threeA){var n=this;for(t=0;t<e;t++)n=n.dbl();return n}var r=this.curve.a,i=this.curve.tinv,a=this.x,o=this.y,s=this.z,u=s.redSqr().redSqr(),c=o.redAdd(o);for(t=0;t<e;t++){var l=a.redSqr(),d=c.redSqr(),f=d.redSqr(),p=l.redAdd(l).redIAdd(l).redIAdd(r.redMul(u)),h=a.redMul(d),m=p.redSqr().redISub(h.redAdd(h)),y=h.redISub(m),g=p.redMul(y);g=g.redIAdd(g).redISub(f);var b=c.redMul(s);t+1<e&&(u=u.redMul(f)),a=m,s=b,c=g}return this.curve.jpoint(a,c.redMul(i),s)},qc.prototype.dbl=function(){return this.isInfinity()?this:this.curve.zeroA?this._zeroDbl():this.curve.threeA?this._threeDbl():this._dbl()},qc.prototype._zeroDbl=function(){var e,t,n;if(this.zOne){var r=this.x.redSqr(),i=this.y.redSqr(),a=i.redSqr(),o=this.x.redAdd(i).redSqr().redISub(r).redISub(a);o=o.redIAdd(o);var s=r.redAdd(r).redIAdd(r),u=s.redSqr().redISub(o).redISub(o),c=a.redIAdd(a);c=(c=c.redIAdd(c)).redIAdd(c),e=u,t=s.redMul(o.redISub(u)).redISub(c),n=this.y.redAdd(this.y)}else{var l=this.x.redSqr(),d=this.y.redSqr(),f=d.redSqr(),p=this.x.redAdd(d).redSqr().redISub(l).redISub(f);p=p.redIAdd(p);var h=l.redAdd(l).redIAdd(l),m=h.redSqr(),y=f.redIAdd(f);y=(y=y.redIAdd(y)).redIAdd(y),e=m.redISub(p).redISub(p),t=h.redMul(p.redISub(e)).redISub(y),n=(n=this.y.redMul(this.z)).redIAdd(n)}return this.curve.jpoint(e,t,n)},qc.prototype._threeDbl=function(){var e,t,n;if(this.zOne){var r=this.x.redSqr(),i=this.y.redSqr(),a=i.redSqr(),o=this.x.redAdd(i).redSqr().redISub(r).redISub(a);o=o.redIAdd(o);var s=r.redAdd(r).redIAdd(r).redIAdd(this.curve.a),u=s.redSqr().redISub(o).redISub(o);e=u;var c=a.redIAdd(a);c=(c=c.redIAdd(c)).redIAdd(c),t=s.redMul(o.redISub(u)).redISub(c),n=this.y.redAdd(this.y)}else{var l=this.z.redSqr(),d=this.y.redSqr(),f=this.x.redMul(d),p=this.x.redSub(l).redMul(this.x.redAdd(l));p=p.redAdd(p).redIAdd(p);var h=f.redIAdd(f),m=(h=h.redIAdd(h)).redAdd(h);e=p.redSqr().redISub(m),n=this.y.redAdd(this.z).redSqr().redISub(d).redISub(l);var y=d.redSqr();y=(y=(y=y.redIAdd(y)).redIAdd(y)).redIAdd(y),t=p.redMul(h.redISub(e)).redISub(y)}return this.curve.jpoint(e,t,n)},qc.prototype._dbl=function(){var e=this.curve.a,t=this.x,n=this.y,r=this.z,i=r.redSqr().redSqr(),a=t.redSqr(),o=n.redSqr(),s=a.redAdd(a).redIAdd(a).redIAdd(e.redMul(i)),u=t.redAdd(t),c=(u=u.redIAdd(u)).redMul(o),l=s.redSqr().redISub(c.redAdd(c)),d=c.redISub(l),f=o.redSqr();f=(f=(f=f.redIAdd(f)).redIAdd(f)).redIAdd(f);var p=s.redMul(d).redISub(f),h=n.redAdd(n).redMul(r);return this.curve.jpoint(l,p,h)},qc.prototype.trpl=function(){if(!this.curve.zeroA)return this.dbl().add(this);var e=this.x.redSqr(),t=this.y.redSqr(),n=this.z.redSqr(),r=t.redSqr(),i=e.redAdd(e).redIAdd(e),a=i.redSqr(),o=this.x.redAdd(t).redSqr().redISub(e).redISub(r),s=(o=(o=(o=o.redIAdd(o)).redAdd(o).redIAdd(o)).redISub(a)).redSqr(),u=r.redIAdd(r);u=(u=(u=u.redIAdd(u)).redIAdd(u)).redIAdd(u);var c=i.redIAdd(o).redSqr().redISub(a).redISub(s).redISub(u),l=t.redMul(c);l=(l=l.redIAdd(l)).redIAdd(l);var d=this.x.redMul(s).redISub(l);d=(d=d.redIAdd(d)).redIAdd(d);var f=this.y.redMul(c.redMul(u.redISub(c)).redISub(o.redMul(s)));f=(f=(f=f.redIAdd(f)).redIAdd(f)).redIAdd(f);var p=this.z.redAdd(o).redSqr().redISub(n).redISub(s);return this.curve.jpoint(d,f,p)},qc.prototype.mul=function(e,t){return e=new Hn(e,t),this.curve._wnafMul(this,e)},qc.prototype.eq=function(e){if("affine"===e.type)return this.eq(e.toJ());if(this===e)return!0;var t=this.z.redSqr(),n=e.z.redSqr();if(0!==this.x.redMul(n).redISub(e.x.redMul(t)).cmpn(0))return!1;var r=t.redMul(this.z),i=n.redMul(e.z);return 0===this.y.redMul(i).redISub(e.y.redMul(r)).cmpn(0)},qc.prototype.eqXToP=function(e){var t=this.z.redSqr(),n=e.toRed(this.curve.red).redMul(t);if(0===this.x.cmp(n))return!0;for(var r=e.clone(),i=this.curve.redN.redMul(t);;){if(r.iadd(this.curve.n),r.cmp(this.curve.p)>=0)return!1;if(n.redIAdd(i),0===this.x.cmp(n))return!0}},qc.prototype.inspect=function(){return this.isInfinity()?"<EC JPoint Infinity>":"<EC JPoint x: "+this.x.toString(16,2)+" y: "+this.y.toString(16,2)+" z: "+this.z.toString(16,2)+">"},qc.prototype.isInfinity=function(){return 0===this.z.cmpn(0)};var jc=_c((function(e,t){var n=t;n.base=Pc,n.short=Lc,n.mont=null,n.edwards=null})),Gc=_c((function(e,t){var n,r=t,i=Oc.assert;function a(e){"short"===e.type?this.curve=new jc.short(e):"edwards"===e.type?this.curve=new jc.edwards(e):this.curve=new jc.mont(e),this.g=this.curve.g,this.n=this.curve.n,this.hash=e.hash,i(this.g.validate(),"Invalid curve"),i(this.g.mul(this.n).isInfinity(),"Invalid curve, G*N != O")}function o(e,t){Object.defineProperty(r,e,{configurable:!0,enumerable:!0,get:function(){var n=new a(t);return Object.defineProperty(r,e,{configurable:!0,enumerable:!0,value:n}),n}})}r.PresetCurve=a,o("p192",{type:"short",prime:"p192",p:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff",a:"ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc",b:"64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1",n:"ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831",hash:Ac.sha256,gRed:!1,g:["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012","07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"]}),o("p224",{type:"short",prime:"p224",p:"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001",a:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe",b:"b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4",n:"ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d",hash:Ac.sha256,gRed:!1,g:["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21","bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"]}),o("p256",{type:"short",prime:null,p:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff",a:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc",b:"5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b",n:"ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551",hash:Ac.sha256,gRed:!1,g:["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296","4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"]}),o("p384",{type:"short",prime:null,p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff",a:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc",b:"b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef",n:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973",hash:Ac.sha384,gRed:!1,g:["aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7","3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f"]}),o("p521",{type:"short",prime:null,p:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff",a:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc",b:"00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00",n:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409",hash:Ac.sha512,gRed:!1,g:["000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66","00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650"]}),o("curve25519",{type:"mont",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"76d06",b:"1",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:Ac.sha256,gRed:!1,g:["9"]}),o("ed25519",{type:"edwards",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"-1",c:"1",d:"52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:Ac.sha256,gRed:!1,g:["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a","6666666666666666666666666666666666666666666666666666666666666658"]});try{n=null.crash()}catch(e){n=void 0}o("secp256k1",{type:"short",prime:"k256",p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f",a:"0",b:"7",n:"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141",h:"1",hash:Ac.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",n]})}));function Hc(e){if(!(this instanceof Hc))return new Hc(e);this.hash=e.hash,this.predResist=!!e.predResist,this.outLen=this.hash.outSize,this.minEntropy=e.minEntropy||this.hash.hmacStrength,this._reseed=null,this.reseedInterval=null,this.K=null,this.V=null;var t=Cc.toArray(e.entropy,e.entropyEnc||"hex"),n=Cc.toArray(e.nonce,e.nonceEnc||"hex"),r=Cc.toArray(e.pers,e.persEnc||"hex");Ic(t.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(t,n,r)}var zc=Hc;Hc.prototype._init=function(e,t,n){var r=e.concat(t).concat(n);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var i=0;i<this.V.length;i++)this.K[i]=0,this.V[i]=1;this._update(r),this._reseed=1,this.reseedInterval=281474976710656},Hc.prototype._hmac=function(){return new Ac.hmac(this.hash,this.K)},Hc.prototype._update=function(e){var t=this._hmac().update(this.V).update([0]);e&&(t=t.update(e)),this.K=t.digest(),this.V=this._hmac().update(this.V).digest(),e&&(this.K=this._hmac().update(this.V).update([1]).update(e).digest(),this.V=this._hmac().update(this.V).digest())},Hc.prototype.reseed=function(e,t,n,r){"string"!=typeof t&&(r=n,n=t,t=null),e=Cc.toArray(e,t),n=Cc.toArray(n,r),Ic(e.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(e.concat(n||[])),this._reseed=1},Hc.prototype.generate=function(e,t,n,r){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");"string"!=typeof t&&(r=n,n=t,t=null),n&&(n=Cc.toArray(n,r||"hex"),this._update(n));for(var i=[];i.length<e;)this.V=this._hmac().update(this.V).digest(),i=i.concat(this.V);var a=i.slice(0,e);return this._update(n),this._reseed++,Cc.encode(a,t)};var Wc=Oc.assert;function Vc(e,t){this.ec=e,this.priv=null,this.pub=null,t.priv&&this._importPrivate(t.priv,t.privEnc),t.pub&&this._importPublic(t.pub,t.pubEnc)}var Kc=Vc;Vc.fromPublic=function(e,t,n){return t instanceof Vc?t:new Vc(e,{pub:t,pubEnc:n})},Vc.fromPrivate=function(e,t,n){return t instanceof Vc?t:new Vc(e,{priv:t,privEnc:n})},Vc.prototype.validate=function(){var e=this.getPublic();return e.isInfinity()?{result:!1,reason:"Invalid public key"}:e.validate()?e.mul(this.ec.curve.n).isInfinity()?{result:!0,reason:null}:{result:!1,reason:"Public key * N != O"}:{result:!1,reason:"Public key is not a point"}},Vc.prototype.getPublic=function(e,t){return"string"==typeof e&&(t=e,e=null),this.pub||(this.pub=this.ec.g.mul(this.priv)),t?this.pub.encode(t,e):this.pub},Vc.prototype.getPrivate=function(e){return"hex"===e?this.priv.toString(16,2):this.priv},Vc.prototype._importPrivate=function(e,t){this.priv=new Hn(e,t||16),this.priv=this.priv.umod(this.ec.curve.n)},Vc.prototype._importPublic=function(e,t){if(e.x||e.y)return"mont"===this.ec.curve.type?Wc(e.x,"Need x coordinate"):"short"!==this.ec.curve.type&&"edwards"!==this.ec.curve.type||Wc(e.x&&e.y,"Need both x and y coordinate"),void(this.pub=this.ec.curve.point(e.x,e.y));this.pub=this.ec.curve.decodePoint(e,t)},Vc.prototype.derive=function(e){return e.validate()||Wc(e.validate(),"public point not validated"),e.mul(this.priv).getX()},Vc.prototype.sign=function(e,t,n){return this.ec.sign(e,this,t,n)},Vc.prototype.verify=function(e,t){return this.ec.verify(e,t,this)},Vc.prototype.inspect=function(){return"<Key priv: "+(this.priv&&this.priv.toString(16,2))+" pub: "+(this.pub&&this.pub.inspect())+" >"};var Xc=Oc.assert;function Jc(e,t){if(e instanceof Jc)return e;this._importDER(e,t)||(Xc(e.r&&e.s,"Signature without r or s"),this.r=new Hn(e.r,16),this.s=new Hn(e.s,16),void 0===e.recoveryParam?this.recoveryParam=null:this.recoveryParam=e.recoveryParam)}var Yc=Jc;function Qc(){this.place=0}function $c(e,t){var n=e[t.place++];if(!(128&n))return n;var r=15&n;if(0===r||r>4)return!1;for(var i=0,a=0,o=t.place;a<r;a++,o++)i<<=8,i|=e[o],i>>>=0;return!(i<=127)&&(t.place=o,i)}function Zc(e){for(var t=0,n=e.length-1;!e[t]&&!(128&e[t+1])&&t<n;)t++;return 0===t?e:e.slice(t)}function el(e,t){if(t<128)e.push(t);else{var n=1+(Math.log(t)/Math.LN2>>>3);for(e.push(128|n);--n;)e.push(t>>>(n<<3)&255);e.push(t)}}Jc.prototype._importDER=function(e,t){e=Oc.toArray(e,t);var n=new Qc;if(48!==e[n.place++])return!1;var r=$c(e,n);if(!1===r)return!1;if(r+n.place!==e.length)return!1;if(2!==e[n.place++])return!1;var i=$c(e,n);if(!1===i)return!1;var a=e.slice(n.place,i+n.place);if(n.place+=i,2!==e[n.place++])return!1;var o=$c(e,n);if(!1===o)return!1;if(e.length!==o+n.place)return!1;var s=e.slice(n.place,o+n.place);if(0===a[0]){if(!(128&a[1]))return!1;a=a.slice(1)}if(0===s[0]){if(!(128&s[1]))return!1;s=s.slice(1)}return this.r=new Hn(a),this.s=new Hn(s),this.recoveryParam=null,!0},Jc.prototype.toDER=function(e){var t=this.r.toArray(),n=this.s.toArray();for(128&t[0]&&(t=[0].concat(t)),128&n[0]&&(n=[0].concat(n)),t=Zc(t),n=Zc(n);!(n[0]||128&n[1]);)n=n.slice(1);var r=[2];el(r,t.length),(r=r.concat(t)).push(2),el(r,n.length);var i=r.concat(n),a=[48];return el(a,i.length),a=a.concat(i),Oc.encode(a,e)};var tl=function(){throw new Error("unsupported")},nl=Oc.assert;function rl(e){if(!(this instanceof rl))return new rl(e);"string"==typeof e&&(nl(Object.prototype.hasOwnProperty.call(Gc,e),"Unknown curve "+e),e=Gc[e]),e instanceof Gc.PresetCurve&&(e={curve:e}),this.curve=e.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=e.curve.g,this.g.precompute(e.curve.n.bitLength()+1),this.hash=e.hash||e.curve.hash}var il=rl;rl.prototype.keyPair=function(e){return new Kc(this,e)},rl.prototype.keyFromPrivate=function(e,t){return Kc.fromPrivate(this,e,t)},rl.prototype.keyFromPublic=function(e,t){return Kc.fromPublic(this,e,t)},rl.prototype.genKeyPair=function(e){e||(e={});for(var t=new zc({hash:this.hash,pers:e.pers,persEnc:e.persEnc||"utf8",entropy:e.entropy||tl(this.hash.hmacStrength),entropyEnc:e.entropy&&e.entropyEnc||"utf8",nonce:this.n.toArray()}),n=this.n.byteLength(),r=this.n.sub(new Hn(2));;){var i=new Hn(t.generate(n));if(!(i.cmp(r)>0))return i.iaddn(1),this.keyFromPrivate(i)}},rl.prototype._truncateToN=function(e,t){var n=8*e.byteLength()-this.n.bitLength();return n>0&&(e=e.ushrn(n)),!t&&e.cmp(this.n)>=0?e.sub(this.n):e},rl.prototype.sign=function(e,t,n,r){"object"==typeof n&&(r=n,n=null),r||(r={}),t=this.keyFromPrivate(t,n),e=this._truncateToN(new Hn(e,16));for(var i=this.n.byteLength(),a=t.getPrivate().toArray("be",i),o=e.toArray("be",i),s=new zc({hash:this.hash,entropy:a,nonce:o,pers:r.pers,persEnc:r.persEnc||"utf8"}),u=this.n.sub(new Hn(1)),c=0;;c++){var l=r.k?r.k(c):new Hn(s.generate(this.n.byteLength()));if(!((l=this._truncateToN(l,!0)).cmpn(1)<=0||l.cmp(u)>=0)){var d=this.g.mul(l);if(!d.isInfinity()){var f=d.getX(),p=f.umod(this.n);if(0!==p.cmpn(0)){var h=l.invm(this.n).mul(p.mul(t.getPrivate()).iadd(e));if(0!==(h=h.umod(this.n)).cmpn(0)){var m=(d.getY().isOdd()?1:0)|(0!==f.cmp(p)?2:0);return r.canonical&&h.cmp(this.nh)>0&&(h=this.n.sub(h),m^=1),new Yc({r:p,s:h,recoveryParam:m})}}}}}},rl.prototype.verify=function(e,t,n,r){e=this._truncateToN(new Hn(e,16)),n=this.keyFromPublic(n,r);var i=(t=new Yc(t,"hex")).r,a=t.s;if(i.cmpn(1)<0||i.cmp(this.n)>=0)return!1;if(a.cmpn(1)<0||a.cmp(this.n)>=0)return!1;var o,s=a.invm(this.n),u=s.mul(e).umod(this.n),c=s.mul(i).umod(this.n);return this.curve._maxwellTrick?!(o=this.g.jmulAdd(u,n.getPublic(),c)).isInfinity()&&o.eqXToP(i):!(o=this.g.mulAdd(u,n.getPublic(),c)).isInfinity()&&0===o.getX().umod(this.n).cmp(i)},rl.prototype.recoverPubKey=function(e,t,n,r){nl((3&n)===n,"The recovery param is more than two bits"),t=new Yc(t,r);var i=this.n,a=new Hn(e),o=t.r,s=t.s,u=1&n,c=n>>1;if(o.cmp(this.curve.p.umod(this.curve.n))>=0&&c)throw new Error("Unable to find sencond key candinate");o=c?this.curve.pointFromX(o.add(this.curve.n),u):this.curve.pointFromX(o,u);var l=t.r.invm(i),d=i.sub(a).mul(l).umod(i),f=s.mul(l).umod(i);return this.g.mulAdd(d,o,f)},rl.prototype.getKeyRecoveryParam=function(e,t,n,r){if(null!==(t=new Yc(t,r)).recoveryParam)return t.recoveryParam;for(var i=0;i<4;i++){var a;try{a=this.recoverPubKey(e,t,i)}catch(e){continue}if(a.eq(n))return i}throw new Error("Unable to find valid recovery factor")};var al=_c((function(e,t){var n=t;n.version="6.5.4",n.utils=Oc,n.rand=function(){throw new Error("unsupported")},n.curve=jc,n.curves=Gc,n.ec=il,n.eddsa=null})),ol=al.ec;const sl=new Zn("signing-key/5.7.0");let ul=null;function cl(){return ul||(ul=new ol("secp256k1")),ul}class ll{constructor(e){Jr(this,"curve","secp256k1"),Jr(this,"privateKey",pr(e)),32!==hr(this.privateKey)&&sl.throwArgumentError("invalid private key","privateKey","[[ REDACTED ]]");const t=cl().keyFromPrivate(sr(this.privateKey));Jr(this,"publicKey","0x"+t.getPublic(!1,"hex")),Jr(this,"compressedPublicKey","0x"+t.getPublic(!0,"hex")),Jr(this,"_isSigningKey",!0)}_addPoint(e){const t=cl().keyFromPublic(sr(this.publicKey)),n=cl().keyFromPublic(sr(e));return"0x"+t.pub.add(n.pub).encodeCompressed("hex")}signDigest(e){const t=cl().keyFromPrivate(sr(this.privateKey)),n=sr(e);32!==n.length&&sl.throwArgumentError("bad digest length","digest",e);const r=t.sign(n,{canonical:!0});return Tr({recoveryParam:r.recoveryParam,r:vr("0x"+r.r.toString(16),32),s:vr("0x"+r.s.toString(16),32)})}computeSharedSecret(e){const t=cl().keyFromPrivate(sr(this.privateKey)),n=cl().keyFromPublic(sr(fl(e)));return vr("0x"+t.derive(n.getPublic()).toString(16),32)}static isSigningKey(e){return!(!e||!e._isSigningKey)}}function dl(e,t){const n=Tr(t),r={r:sr(n.r),s:sr(n.s)};return"0x"+cl().recoverPubKey(sr(e),r,n.recoveryParam).encode("hex",!1)}function fl(e,t){const n=sr(e);if(32===n.length){const e=new ll(n);return t?"0x"+cl().keyFromPrivate(n).getPublic(!0,"hex"):e.publicKey}return 33===n.length?t?pr(n):"0x"+cl().keyFromPublic(n).getPublic(!1,"hex"):65===n.length?t?"0x"+cl().keyFromPublic(n).getPublic(!0,"hex"):pr(n):sl.throwArgumentError("invalid public or private key","key","[REDACTED]")}var pl=Object.freeze({__proto__:null,SigningKey:ll,computePublicKey:fl,recoverPublicKey:dl});const hl=new Zn("transactions/5.7.0");var ml;function yl(e){return"0x"===e?null:$i(e)}function gl(e){return"0x"===e?ga:kr.from(e)}!function(e){e[e.legacy=0]="legacy",e[e.eip2930=1]="eip2930",e[e.eip1559=2]="eip1559"}(ml||(ml={}));const bl=[{name:"nonce",maxLength:32,numeric:!0},{name:"gasPrice",maxLength:32,numeric:!0},{name:"gasLimit",maxLength:32,numeric:!0},{name:"to",length:20},{name:"value",maxLength:32,numeric:!0},{name:"data"}],vl={chainId:!0,data:!0,gasLimit:!0,gasPrice:!0,nonce:!0,to:!0,type:!0,value:!0};function Tl(e){return $i(mr(Di(mr(fl(e),1)),12))}function wl(e,t){return Tl(dl(sr(e),t))}function El(e,t){const n=cr(kr.from(e).toHexString());return n.length>32&&hl.throwArgumentError("invalid length for "+t,"transaction:"+t,e),n}function Al(e,t){return{address:$i(e),storageKeys:(t||[]).map(((t,n)=>(32!==hr(t)&&hl.throwArgumentError("invalid access list storageKey",`accessList[${e}:${n}]`,t),t.toLowerCase())))}}function _l(e){if(Array.isArray(e))return e.map(((e,t)=>Array.isArray(e)?(e.length>2&&hl.throwArgumentError("access list expected to be [ address, storageKeys[] ]",`value[${t}]`,e),Al(e[0],e[1])):Al(e.address,e.storageKeys)));const t=Object.keys(e).map((t=>{const n=e[t].reduce(((e,t)=>(e[t]=!0,e)),{});return Al(t,Object.keys(n).sort())}));return t.sort(((e,t)=>e.address.localeCompare(t.address))),t}function Il(e){return _l(e).map((e=>[e.address,e.storageKeys]))}function Rl(e,t){if(null!=e.gasPrice){const t=kr.from(e.gasPrice),n=kr.from(e.maxFeePerGas||0);t.eq(n)||hl.throwArgumentError("mismatch EIP-1559 gasPrice != maxFeePerGas","tx",{gasPrice:t,maxFeePerGas:n})}const n=[El(e.chainId||0,"chainId"),El(e.nonce||0,"nonce"),El(e.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),El(e.maxFeePerGas||0,"maxFeePerGas"),El(e.gasLimit||0,"gasLimit"),null!=e.to?$i(e.to):"0x",El(e.value||0,"value"),e.data||"0x",Il(e.accessList||[])];if(t){const e=Tr(t);n.push(El(e.recoveryParam,"recoveryParam")),n.push(cr(e.r)),n.push(cr(e.s))}return yr(["0x02",Gi(n)])}function Cl(e,t){const n=[El(e.chainId||0,"chainId"),El(e.nonce||0,"nonce"),El(e.gasPrice||0,"gasPrice"),El(e.gasLimit||0,"gasLimit"),null!=e.to?$i(e.to):"0x",El(e.value||0,"value"),e.data||"0x",Il(e.accessList||[])];if(t){const e=Tr(t);n.push(El(e.recoveryParam,"recoveryParam")),n.push(cr(e.r)),n.push(cr(e.s))}return yr(["0x01",Gi(n)])}function Ol(e,t){if(null==e.type||0===e.type)return null!=e.accessList&&hl.throwArgumentError("untyped transactions do not support accessList; include type: 1","transaction",e),function(e,t){$r(e,vl);const n=[];bl.forEach((function(t){let r=e[t.name]||[];const i={};t.numeric&&(i.hexPad="left"),r=sr(pr(r,i)),t.length&&r.length!==t.length&&r.length>0&&hl.throwArgumentError("invalid length for "+t.name,"transaction:"+t.name,r),t.maxLength&&(r=cr(r),r.length>t.maxLength&&hl.throwArgumentError("invalid length for "+t.name,"transaction:"+t.name,r)),n.push(pr(r))}));let r=0;if(null!=e.chainId?(r=e.chainId,"number"!=typeof r&&hl.throwArgumentError("invalid transaction.chainId","transaction",e)):t&&!ir(t)&&t.v>28&&(r=Math.floor((t.v-35)/2)),0!==r&&(n.push(pr(r)),n.push("0x"),n.push("0x")),!t)return Gi(n);const i=Tr(t);let a=27+i.recoveryParam;return 0!==r?(n.pop(),n.pop(),n.pop(),a+=2*r+8,i.v>28&&i.v!==a&&hl.throwArgumentError("transaction.chainId/signature.v mismatch","signature",t)):i.v!==a&&hl.throwArgumentError("transaction.chainId/signature.v mismatch","signature",t),n.push(pr(a)),n.push(cr(sr(i.r))),n.push(cr(sr(i.s))),Gi(n)}(e,t);switch(e.type){case 1:return Cl(e,t);case 2:return Rl(e,t)}return hl.throwError(`unsupported transaction type: ${e.type}`,Zn.errors.UNSUPPORTED_OPERATION,{operation:"serializeTransaction",transactionType:e.type})}function kl(e,t,n){try{const n=gl(t[0]).toNumber();if(0!==n&&1!==n)throw new Error("bad recid");e.v=n}catch(e){hl.throwArgumentError("invalid v for transaction type: 1","v",t[0])}e.r=vr(t[1],32),e.s=vr(t[2],32);try{const t=Di(n(e));e.from=wl(t,{r:e.r,s:e.s,recoveryParam:e.v})}catch(e){}}function Sl(e){const t=sr(e);if(t[0]>127)return function(e){const t=Wi(e);9!==t.length&&6!==t.length&&hl.throwArgumentError("invalid raw transaction","rawTransaction",e);const n={nonce:gl(t[0]).toNumber(),gasPrice:gl(t[1]),gasLimit:gl(t[2]),to:yl(t[3]),value:gl(t[4]),data:t[5],chainId:0};if(6===t.length)return n;try{n.v=kr.from(t[6]).toNumber()}catch(e){return n}if(n.r=vr(t[7],32),n.s=vr(t[8],32),kr.from(n.r).isZero()&&kr.from(n.s).isZero())n.chainId=n.v,n.v=0;else{n.chainId=Math.floor((n.v-35)/2),n.chainId<0&&(n.chainId=0);let r=n.v-27;const i=t.slice(0,6);0!==n.chainId&&(i.push(pr(n.chainId)),i.push("0x"),i.push("0x"),r-=2*n.chainId+8);const a=Di(Gi(i));try{n.from=wl(a,{r:pr(n.r),s:pr(n.s),recoveryParam:r})}catch(e){}n.hash=Di(e)}return n.type=null,n}(t);switch(t[0]){case 1:return function(e){const t=Wi(e.slice(1));8!==t.length&&11!==t.length&&hl.throwArgumentError("invalid component count for transaction type: 1","payload",pr(e));const n={type:1,chainId:gl(t[0]).toNumber(),nonce:gl(t[1]).toNumber(),gasPrice:gl(t[2]),gasLimit:gl(t[3]),to:yl(t[4]),value:gl(t[5]),data:t[6],accessList:_l(t[7])};return 8===t.length||(n.hash=Di(e),kl(n,t.slice(8),Cl)),n}(t);case 2:return function(e){const t=Wi(e.slice(1));9!==t.length&&12!==t.length&&hl.throwArgumentError("invalid component count for transaction type: 2","payload",pr(e));const n=gl(t[2]),r=gl(t[3]),i={type:2,chainId:gl(t[0]).toNumber(),nonce:gl(t[1]).toNumber(),maxPriorityFeePerGas:n,maxFeePerGas:r,gasPrice:null,gasLimit:gl(t[4]),to:yl(t[5]),value:gl(t[6]),data:t[7],accessList:_l(t[8])};return 9===t.length||(i.hash=Di(e),kl(i,t.slice(9),Rl)),i}(t)}return hl.throwError(`unsupported transaction type: ${t[0]}`,Zn.errors.UNSUPPORTED_OPERATION,{operation:"parseTransaction",transactionType:t[0]})}var Nl=Object.freeze({__proto__:null,get TransactionTypes(){return ml},accessListify:_l,computeAddress:Tl,parse:Sl,recoverAddress:wl,serialize:Ol});var xl=window&&window.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};const Pl=new Zn("contracts/5.7.0"),Ml={chainId:!0,data:!0,from:!0,gasLimit:!0,gasPrice:!0,nonce:!0,to:!0,value:!0,type:!0,accessList:!0,maxFeePerGas:!0,maxPriorityFeePerGas:!0,customData:!0,ccipReadEnabled:!0};function Bl(e,t){return xl(this,void 0,void 0,(function*(){const n=yield t;"string"!=typeof n&&Pl.throwArgumentError("invalid address or ENS name","name",n);try{return $i(n)}catch(e){}e||Pl.throwError("a provider or signer is needed to resolve ENS names",Zn.errors.UNSUPPORTED_OPERATION,{operation:"resolveName"});const r=yield e.resolveName(n);return null==r&&Pl.throwArgumentError("resolver or addr is not configured for ENS name","name",n),r}))}function Dl(e,t,n){return xl(this,void 0,void 0,(function*(){return Array.isArray(n)?yield Promise.all(n.map(((n,r)=>Dl(e,Array.isArray(t)?t[r]:t[n.name],n)))):"address"===n.type?yield Bl(e,t):"tuple"===n.type?yield Dl(e,t,n.components):"array"===n.baseType?Array.isArray(t)?yield Promise.all(t.map((t=>Dl(e,t,n.arrayChildren)))):Promise.reject(Pl.makeError("invalid value for array",Zn.errors.INVALID_ARGUMENT,{argument:"value",value:t})):t}))}function Fl(e,t,n){return xl(this,void 0,void 0,(function*(){let r={};n.length===t.inputs.length+1&&"object"==typeof n[n.length-1]&&(r=Zr(n.pop())),Pl.checkArgumentCount(n.length,t.inputs.length,"passed to contract"),e.signer?r.from?r.from=Qr({override:Bl(e.signer,r.from),signer:e.signer.getAddress()}).then((e=>xl(this,void 0,void 0,(function*(){return $i(e.signer)!==e.override&&Pl.throwError("Contract with a Signer cannot override from",Zn.errors.UNSUPPORTED_OPERATION,{operation:"overrides.from"}),e.override})))):r.from=e.signer.getAddress():r.from&&(r.from=Bl(e.provider,r.from));const i=yield Qr({args:Dl(e.signer||e.provider,n,t.inputs),address:e.resolvedAddress,overrides:Qr(r)||{}}),a=e.interface.encodeFunctionData(t,i.args),o={data:a,to:i.address},s=i.overrides;if(null!=s.nonce&&(o.nonce=kr.from(s.nonce).toNumber()),null!=s.gasLimit&&(o.gasLimit=kr.from(s.gasLimit)),null!=s.gasPrice&&(o.gasPrice=kr.from(s.gasPrice)),null!=s.maxFeePerGas&&(o.maxFeePerGas=kr.from(s.maxFeePerGas)),null!=s.maxPriorityFeePerGas&&(o.maxPriorityFeePerGas=kr.from(s.maxPriorityFeePerGas)),null!=s.from&&(o.from=s.from),null!=s.type&&(o.type=s.type),null!=s.accessList&&(o.accessList=_l(s.accessList)),null==o.gasLimit&&null!=t.gas){let e=21e3;const n=sr(a);for(let t=0;t<n.length;t++)e+=4,n[t]&&(e+=64);o.gasLimit=kr.from(t.gas).add(e)}if(s.value){const e=kr.from(s.value);e.isZero()||t.payable||Pl.throwError("non-payable method cannot override value",Zn.errors.UNSUPPORTED_OPERATION,{operation:"overrides.value",value:r.value}),o.value=e}s.customData&&(o.customData=Zr(s.customData)),s.ccipReadEnabled&&(o.ccipReadEnabled=!!s.ccipReadEnabled),delete r.nonce,delete r.gasLimit,delete r.gasPrice,delete r.from,delete r.value,delete r.type,delete r.accessList,delete r.maxFeePerGas,delete r.maxPriorityFeePerGas,delete r.customData,delete r.ccipReadEnabled;const u=Object.keys(r).filter((e=>null!=r[e]));return u.length&&Pl.throwError(`cannot override ${u.map((e=>JSON.stringify(e))).join(",")}`,Zn.errors.UNSUPPORTED_OPERATION,{operation:"overrides",overrides:u}),o}))}function Ll(e,t){const n=t.wait.bind(t);t.wait=t=>n(t).then((t=>(t.events=t.logs.map((n=>{let r=ri(n),i=null;try{i=e.interface.parseLog(n)}catch(e){}return i&&(r.args=i.args,r.decode=(t,n)=>e.interface.decodeEventLog(i.eventFragment,t,n),r.event=i.name,r.eventSignature=i.signature),r.removeListener=()=>e.provider,r.getBlock=()=>e.provider.getBlock(t.blockHash),r.getTransaction=()=>e.provider.getTransaction(t.transactionHash),r.getTransactionReceipt=()=>Promise.resolve(t),r})),t)))}function Ul(e,t,n){const r=e.signer||e.provider;return function(...i){return xl(this,void 0,void 0,(function*(){let a;if(i.length===t.inputs.length+1&&"object"==typeof i[i.length-1]){const e=Zr(i.pop());null!=e.blockTag&&(a=yield e.blockTag),delete e.blockTag,i.push(e)}null!=e.deployTransaction&&(yield e._deployed(a));const o=yield Fl(e,t,i),s=yield r.call(o,a);try{let r=e.interface.decodeFunctionResult(t,s);return n&&1===t.outputs.length&&(r=r[0]),r}catch(t){throw t.code===Zn.errors.CALL_EXCEPTION&&(t.address=e.address,t.args=i,t.transaction=o),t}}))}}function ql(e,t,n){return t.constant?Ul(e,t,n):function(e,t){return function(...n){return xl(this,void 0,void 0,(function*(){e.signer||Pl.throwError("sending a transaction requires a signer",Zn.errors.UNSUPPORTED_OPERATION,{operation:"sendTransaction"}),null!=e.deployTransaction&&(yield e._deployed());const r=yield Fl(e,t,n),i=yield e.signer.sendTransaction(r);return Ll(e,i),i}))}}(e,t)}function jl(e){return!e.address||null!=e.topics&&0!==e.topics.length?(e.address||"*")+"@"+(e.topics?e.topics.map((e=>Array.isArray(e)?e.join("|"):e)).join(":"):""):"*"}let Gl=class{constructor(e,t){Jr(this,"tag",e),Jr(this,"filter",t),this._listeners=[]}addListener(e,t){this._listeners.push({listener:e,once:t})}removeListener(e){let t=!1;this._listeners=this._listeners.filter((n=>!(!t&&n.listener===e)||(t=!0,!1)))}removeAllListeners(){this._listeners=[]}listeners(){return this._listeners.map((e=>e.listener))}listenerCount(){return this._listeners.length}run(e){const t=this.listenerCount();return this._listeners=this._listeners.filter((t=>{const n=e.slice();return setTimeout((()=>{t.listener.apply(this,n)}),0),!t.once})),t}prepareEvent(e){}getEmit(e){return[e]}},Hl=class extends Gl{constructor(){super("error",null)}},zl=class extends Gl{constructor(e,t,n,r){const i={address:e};let a=t.getEventTopic(n);r?(a!==r[0]&&Pl.throwArgumentError("topic mismatch","topics",r),i.topics=r.slice()):i.topics=[a],super(jl(i),i),Jr(this,"address",e),Jr(this,"interface",t),Jr(this,"fragment",n)}prepareEvent(e){super.prepareEvent(e),e.event=this.fragment.name,e.eventSignature=this.fragment.format(),e.decode=(e,t)=>this.interface.decodeEventLog(this.fragment,e,t);try{e.args=this.interface.decodeEventLog(this.fragment,e.data,e.topics)}catch(t){e.args=null,e.decodeError=t}}getEmit(e){const t=Ni(e.args);if(t.length)throw t[0].error;const n=(e.args||[]).slice();return n.push(e),n}},Wl=class extends Gl{constructor(e,t){super("*",{address:e}),Jr(this,"address",e),Jr(this,"interface",t)}prepareEvent(e){super.prepareEvent(e);try{const t=this.interface.parseLog(e);e.event=t.name,e.eventSignature=t.signature,e.decode=(e,n)=>this.interface.decodeEventLog(t.eventFragment,e,n),e.args=t.args}catch(e){}}},Vl=class{constructor(e,t,n){Jr(this,"interface",Yr(new.target,"getInterface")(t)),null==n?(Jr(this,"provider",null),Jr(this,"signer",null)):Es.isSigner(n)?(Jr(this,"provider",n.provider||null),Jr(this,"signer",n)):gs.isProvider(n)?(Jr(this,"provider",n),Jr(this,"signer",null)):Pl.throwArgumentError("invalid signer or provider","signerOrProvider",n),Jr(this,"callStatic",{}),Jr(this,"estimateGas",{}),Jr(this,"functions",{}),Jr(this,"populateTransaction",{}),Jr(this,"filters",{});{const e={};Object.keys(this.interface.events).forEach((t=>{const n=this.interface.events[t];Jr(this.filters,t,((...e)=>({address:this.address,topics:this.interface.encodeFilterTopics(n,e)}))),e[n.name]||(e[n.name]=[]),e[n.name].push(t)})),Object.keys(e).forEach((t=>{const n=e[t];1===n.length?Jr(this.filters,t,this.filters[n[0]]):Pl.warn(`Duplicate definition of ${t} (${n.join(", ")})`)}))}if(Jr(this,"_runningEvents",{}),Jr(this,"_wrappedEmits",{}),null==e&&Pl.throwArgumentError("invalid contract address or ENS name","addressOrName",e),Jr(this,"address",e),this.provider)Jr(this,"resolvedAddress",Bl(this.provider,e));else try{Jr(this,"resolvedAddress",Promise.resolve($i(e)))}catch(e){Pl.throwError("provider is required to use ENS name as contract address",Zn.errors.UNSUPPORTED_OPERATION,{operation:"new Contract"})}this.resolvedAddress.catch((e=>{}));const r={},i={};Object.keys(this.interface.functions).forEach((e=>{const t=this.interface.functions[e];if(i[e])Pl.warn(`Duplicate ABI entry for ${JSON.stringify(e)}`);else{i[e]=!0;{const n=t.name;r[`%${n}`]||(r[`%${n}`]=[]),r[`%${n}`].push(e)}null==this[e]&&Jr(this,e,ql(this,t,!0)),null==this.functions[e]&&Jr(this.functions,e,ql(this,t,!1)),null==this.callStatic[e]&&Jr(this.callStatic,e,Ul(this,t,!0)),null==this.populateTransaction[e]&&Jr(this.populateTransaction,e,function(e,t){return function(...n){return Fl(e,t,n)}}(this,t)),null==this.estimateGas[e]&&Jr(this.estimateGas,e,function(e,t){const n=e.signer||e.provider;return function(...r){return xl(this,void 0,void 0,(function*(){n||Pl.throwError("estimate require a provider or signer",Zn.errors.UNSUPPORTED_OPERATION,{operation:"estimateGas"});const i=yield Fl(e,t,r);return yield n.estimateGas(i)}))}}(this,t))}})),Object.keys(r).forEach((e=>{const t=r[e];if(t.length>1)return;e=e.substring(1);const n=t[0];try{null==this[e]&&Jr(this,e,this[n])}catch(e){}null==this.functions[e]&&Jr(this.functions,e,this.functions[n]),null==this.callStatic[e]&&Jr(this.callStatic,e,this.callStatic[n]),null==this.populateTransaction[e]&&Jr(this.populateTransaction,e,this.populateTransaction[n]),null==this.estimateGas[e]&&Jr(this.estimateGas,e,this.estimateGas[n])}))}static getContractAddress(e){return ta(e)}static getInterface(e){return fs.isInterface(e)?e:new fs(e)}deployed(){return this._deployed()}_deployed(e){return this._deployedPromise||(this.deployTransaction?this._deployedPromise=this.deployTransaction.wait().then((()=>this)):this._deployedPromise=this.provider.getCode(this.address,e).then((e=>("0x"===e&&Pl.throwError("contract not deployed",Zn.errors.UNSUPPORTED_OPERATION,{contractAddress:this.address,operation:"getDeployed"}),this)))),this._deployedPromise}fallback(e){this.signer||Pl.throwError("sending a transactions require a signer",Zn.errors.UNSUPPORTED_OPERATION,{operation:"sendTransaction(fallback)"});const t=Zr(e||{});return["from","to"].forEach((function(e){null!=t[e]&&Pl.throwError("cannot override "+e,Zn.errors.UNSUPPORTED_OPERATION,{operation:e})})),t.to=this.resolvedAddress,this.deployed().then((()=>this.signer.sendTransaction(t)))}connect(e){"string"==typeof e&&(e=new As(e,this.provider));const t=new this.constructor(this.address,this.interface,e);return this.deployTransaction&&Jr(t,"deployTransaction",this.deployTransaction),t}attach(e){return new this.constructor(e,this.interface,this.signer||this.provider)}static isIndexed(e){return cs.isIndexed(e)}_normalizeRunningEvent(e){return this._runningEvents[e.tag]?this._runningEvents[e.tag]:e}_getRunningEvent(e){if("string"==typeof e){if("error"===e)return this._normalizeRunningEvent(new Hl);if("event"===e)return this._normalizeRunningEvent(new Gl("event",null));if("*"===e)return this._normalizeRunningEvent(new Wl(this.address,this.interface));const t=this.interface.getEvent(e);return this._normalizeRunningEvent(new zl(this.address,this.interface,t))}if(e.topics&&e.topics.length>0){try{const t=e.topics[0];if("string"!=typeof t)throw new Error("invalid topic");const n=this.interface.getEvent(t);return this._normalizeRunningEvent(new zl(this.address,this.interface,n,e.topics))}catch(e){}const t={address:this.address,topics:e.topics};return this._normalizeRunningEvent(new Gl(jl(t),t))}return this._normalizeRunningEvent(new Wl(this.address,this.interface))}_checkRunningEvents(e){if(0===e.listenerCount()){delete this._runningEvents[e.tag];const t=this._wrappedEmits[e.tag];t&&e.filter&&(this.provider.off(e.filter,t),delete this._wrappedEmits[e.tag])}}_wrapEvent(e,t,n){const r=ri(t);return r.removeListener=()=>{n&&(e.removeListener(n),this._checkRunningEvents(e))},r.getBlock=()=>this.provider.getBlock(t.blockHash),r.getTransaction=()=>this.provider.getTransaction(t.transactionHash),r.getTransactionReceipt=()=>this.provider.getTransactionReceipt(t.transactionHash),e.prepareEvent(r),r}_addEventListener(e,t,n){if(this.provider||Pl.throwError("events require a provider or a signer with a provider",Zn.errors.UNSUPPORTED_OPERATION,{operation:"once"}),e.addListener(t,n),this._runningEvents[e.tag]=e,!this._wrappedEmits[e.tag]){const n=n=>{let r=this._wrapEvent(e,n,t);if(null==r.decodeError)try{const t=e.getEmit(r);this.emit(e.filter,...t)}catch(e){r.decodeError=e.error}null!=e.filter&&this.emit("event",r),null!=r.decodeError&&this.emit("error",r.decodeError,r)};this._wrappedEmits[e.tag]=n,null!=e.filter&&this.provider.on(e.filter,n)}}queryFilter(e,t,n){const r=this._getRunningEvent(e),i=Zr(r.filter);return"string"==typeof t&&dr(t,32)?(null!=n&&Pl.throwArgumentError("cannot specify toBlock with blockhash","toBlock",n),i.blockHash=t):(i.fromBlock=null!=t?t:0,i.toBlock=null!=n?n:"latest"),this.provider.getLogs(i).then((e=>e.map((e=>this._wrapEvent(r,e,null)))))}on(e,t){return this._addEventListener(this._getRunningEvent(e),t,!1),this}once(e,t){return this._addEventListener(this._getRunningEvent(e),t,!0),this}emit(e,...t){if(!this.provider)return!1;const n=this._getRunningEvent(e),r=n.run(t)>0;return this._checkRunningEvents(n),r}listenerCount(e){return this.provider?null==e?Object.keys(this._runningEvents).reduce(((e,t)=>e+this._runningEvents[t].listenerCount()),0):this._getRunningEvent(e).listenerCount():0}listeners(e){if(!this.provider)return[];if(null==e){const e=[];for(let t in this._runningEvents)this._runningEvents[t].listeners().forEach((t=>{e.push(t)}));return e}return this._getRunningEvent(e).listeners()}removeAllListeners(e){if(!this.provider)return this;if(null==e){for(const e in this._runningEvents){const t=this._runningEvents[e];t.removeAllListeners(),this._checkRunningEvents(t)}return this}const t=this._getRunningEvent(e);return t.removeAllListeners(),this._checkRunningEvents(t),this}off(e,t){if(!this.provider)return this;const n=this._getRunningEvent(e);return n.removeListener(t),this._checkRunningEvents(n),this}removeListener(e,t){return this.off(e,t)}},Kl=class extends Vl{};class Xl{constructor(e,t,n){let r=null;r="string"==typeof t?t:or(t)?pr(t):t&&"string"==typeof t.object?t.object:"!","0x"!==r.substring(0,2)&&(r="0x"+r),(!dr(r)||r.length%2)&&Pl.throwArgumentError("invalid bytecode","bytecode",t),n&&!Es.isSigner(n)&&Pl.throwArgumentError("invalid signer","signer",n),Jr(this,"bytecode",r),Jr(this,"interface",Yr(new.target,"getInterface")(e)),Jr(this,"signer",n||null)}getDeployTransaction(...e){let t={};if(e.length===this.interface.deploy.inputs.length+1&&"object"==typeof e[e.length-1]){t=Zr(e.pop());for(const e in t)if(!Ml[e])throw new Error("unknown transaction override "+e)}if(["data","from","to"].forEach((e=>{null!=t[e]&&Pl.throwError("cannot override "+e,Zn.errors.UNSUPPORTED_OPERATION,{operation:e})})),t.value){kr.from(t.value).isZero()||this.interface.deploy.payable||Pl.throwError("non-payable constructor cannot override value",Zn.errors.UNSUPPORTED_OPERATION,{operation:"overrides.value",value:t.value})}return Pl.checkArgumentCount(e.length,this.interface.deploy.inputs.length," in Contract constructor"),t.data=pr(ur([this.bytecode,this.interface.encodeDeploy(e)])),t}deploy(...e){return xl(this,void 0,void 0,(function*(){let t={};e.length===this.interface.deploy.inputs.length+1&&(t=e.pop()),Pl.checkArgumentCount(e.length,this.interface.deploy.inputs.length," in Contract constructor");const n=yield Dl(this.signer,e,this.interface.deploy.inputs);n.push(t);const r=this.getDeployTransaction(...n),i=yield this.signer.sendTransaction(r),a=Yr(this.constructor,"getContractAddress")(i),o=Yr(this.constructor,"getContract")(a,this.interface,this.signer);return Ll(o,i),Jr(o,"deployTransaction",i),o}))}attach(e){return this.constructor.getContract(e,this.interface,this.signer)}connect(e){return new this.constructor(this.interface,this.bytecode,e)}static fromSolidity(e,t){null==e&&Pl.throwError("missing compiler output",Zn.errors.MISSING_ARGUMENT,{argument:"compilerOutput"}),"string"==typeof e&&(e=JSON.parse(e));const n=e.abi;let r=null;return e.bytecode?r=e.bytecode:e.evm&&e.evm.bytecode&&(r=e.evm.bytecode),new this(n,r,t)}static getInterface(e){return Kl.getInterface(e)}static getContractAddress(e){return ta(e)}static getContract(e,t,n){return new Kl(e,t,n)}}class Jl{constructor(e){Jr(this,"alphabet",e),Jr(this,"base",e.length),Jr(this,"_alphabetMap",{}),Jr(this,"_leader",e.charAt(0));for(let t=0;t<e.length;t++)this._alphabetMap[e.charAt(t)]=t}encode(e){let t=sr(e);if(0===t.length)return"";let n=[0];for(let e=0;e<t.length;++e){let r=t[e];for(let e=0;e<n.length;++e)r+=n[e]<<8,n[e]=r%this.base,r=r/this.base|0;for(;r>0;)n.push(r%this.base),r=r/this.base|0}let r="";for(let e=0;0===t[e]&&e<t.length-1;++e)r+=this._leader;for(let e=n.length-1;e>=0;--e)r+=this.alphabet[n[e]];return r}decode(e){if("string"!=typeof e)throw new TypeError("Expected String");let t=[];if(0===e.length)return new Uint8Array(t);t.push(0);for(let n=0;n<e.length;n++){let r=this._alphabetMap[e[n]];if(void 0===r)throw new Error("Non-base"+this.base+" character");let i=r;for(let e=0;e<t.length;++e)i+=t[e]*this.base,t[e]=255&i,i>>=8;for(;i>0;)t.push(255&i),i>>=8}for(let n=0;e[n]===this._leader&&n<e.length-1;++n)t.push(0);return sr(new Uint8Array(t.reverse()))}}const Yl=new Jl("abcdefghijklmnopqrstuvwxyz234567"),Ql=new Jl("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz");var $l,Zl=Object.freeze({__proto__:null,Base32:Yl,Base58:Ql,BaseX:Jl});!function(e){e.sha256="sha256",e.sha512="sha512"}($l||($l={}));const ed=new Zn("sha2/5.7.0");function td(e){return"0x"+Ac.ripemd160().update(sr(e)).digest("hex")}function nd(e){return"0x"+Ac.sha256().update(sr(e)).digest("hex")}function rd(e){return"0x"+Ac.sha512().update(sr(e)).digest("hex")}function id(e,t,n){return $l[e]||ed.throwError("unsupported algorithm "+e,Zn.errors.UNSUPPORTED_OPERATION,{operation:"hmac",algorithm:e}),"0x"+Ac.hmac(Ac[e],sr(t)).update(sr(n)).digest("hex")}var ad=Object.freeze({__proto__:null,get SupportedAlgorithm(){return $l},computeHmac:id,ripemd160:td,sha256:nd,sha512:rd});function od(e,t,n,r,i){let a;e=sr(e),t=sr(t);let o=1;const s=new Uint8Array(r),u=new Uint8Array(t.length+4);let c,l;u.set(t);for(let d=1;d<=o;d++){u[t.length]=d>>24&255,u[t.length+1]=d>>16&255,u[t.length+2]=d>>8&255,u[t.length+3]=255&d;let f=sr(id(i,e,u));a||(a=f.length,l=new Uint8Array(a),o=Math.ceil(r/a),c=r-(o-1)*a),l.set(f);for(let t=1;t<n;t++){f=sr(id(i,e,f));for(let e=0;e<a;e++)l[e]^=f[e]}const p=(d-1)*a,h=d===o?c:a;s.set(sr(l).slice(0,h),p)}return pr(s)}const sd=new Zn("wordlists/5.7.0");class ud{constructor(e){sd.checkAbstract(new.target,ud),Jr(this,"locale",e)}split(e){return e.toLowerCase().split(/ +/g)}join(e){return e.join(" ")}static check(e){const t=[];for(let n=0;n<2048;n++){const r=e.getWord(n);if(n!==e.getWordIndex(r))return"0x";t.push(r)}return oo(t.join("\n")+"\n")}static register(e,t){t||(t=e.locale)}}let cd=null;function ld(e){if(null==cd&&(cd="AbandonAbilityAbleAboutAboveAbsentAbsorbAbstractAbsurdAbuseAccessAccidentAccountAccuseAchieveAcidAcousticAcquireAcrossActActionActorActressActualAdaptAddAddictAddressAdjustAdmitAdultAdvanceAdviceAerobicAffairAffordAfraidAgainAgeAgentAgreeAheadAimAirAirportAisleAlarmAlbumAlcoholAlertAlienAllAlleyAllowAlmostAloneAlphaAlreadyAlsoAlterAlwaysAmateurAmazingAmongAmountAmusedAnalystAnchorAncientAngerAngleAngryAnimalAnkleAnnounceAnnualAnotherAnswerAntennaAntiqueAnxietyAnyApartApologyAppearAppleApproveAprilArchArcticAreaArenaArgueArmArmedArmorArmyAroundArrangeArrestArriveArrowArtArtefactArtistArtworkAskAspectAssaultAssetAssistAssumeAsthmaAthleteAtomAttackAttendAttitudeAttractAuctionAuditAugustAuntAuthorAutoAutumnAverageAvocadoAvoidAwakeAwareAwayAwesomeAwfulAwkwardAxisBabyBachelorBaconBadgeBagBalanceBalconyBallBambooBananaBannerBarBarelyBargainBarrelBaseBasicBasketBattleBeachBeanBeautyBecauseBecomeBeefBeforeBeginBehaveBehindBelieveBelowBeltBenchBenefitBestBetrayBetterBetweenBeyondBicycleBidBikeBindBiologyBirdBirthBitterBlackBladeBlameBlanketBlastBleakBlessBlindBloodBlossomBlouseBlueBlurBlushBoardBoatBodyBoilBombBoneBonusBookBoostBorderBoringBorrowBossBottomBounceBoxBoyBracketBrainBrandBrassBraveBreadBreezeBrickBridgeBriefBrightBringBriskBroccoliBrokenBronzeBroomBrotherBrownBrushBubbleBuddyBudgetBuffaloBuildBulbBulkBulletBundleBunkerBurdenBurgerBurstBusBusinessBusyButterBuyerBuzzCabbageCabinCableCactusCageCakeCallCalmCameraCampCanCanalCancelCandyCannonCanoeCanvasCanyonCapableCapitalCaptainCarCarbonCardCargoCarpetCarryCartCaseCashCasinoCastleCasualCatCatalogCatchCategoryCattleCaughtCauseCautionCaveCeilingCeleryCementCensusCenturyCerealCertainChairChalkChampionChangeChaosChapterChargeChaseChatCheapCheckCheeseChefCherryChestChickenChiefChildChimneyChoiceChooseChronicChuckleChunkChurnCigarCinnamonCircleCitizenCityCivilClaimClapClarifyClawClayCleanClerkCleverClickClientCliffClimbClinicClipClockClogCloseClothCloudClownClubClumpClusterClutchCoachCoastCoconutCodeCoffeeCoilCoinCollectColorColumnCombineComeComfortComicCommonCompanyConcertConductConfirmCongressConnectConsiderControlConvinceCookCoolCopperCopyCoralCoreCornCorrectCostCottonCouchCountryCoupleCourseCousinCoverCoyoteCrackCradleCraftCramCraneCrashCraterCrawlCrazyCreamCreditCreekCrewCricketCrimeCrispCriticCropCrossCrouchCrowdCrucialCruelCruiseCrumbleCrunchCrushCryCrystalCubeCultureCupCupboardCuriousCurrentCurtainCurveCushionCustomCuteCycleDadDamageDampDanceDangerDaringDashDaughterDawnDayDealDebateDebrisDecadeDecemberDecideDeclineDecorateDecreaseDeerDefenseDefineDefyDegreeDelayDeliverDemandDemiseDenialDentistDenyDepartDependDepositDepthDeputyDeriveDescribeDesertDesignDeskDespairDestroyDetailDetectDevelopDeviceDevoteDiagramDialDiamondDiaryDiceDieselDietDifferDigitalDignityDilemmaDinnerDinosaurDirectDirtDisagreeDiscoverDiseaseDishDismissDisorderDisplayDistanceDivertDivideDivorceDizzyDoctorDocumentDogDollDolphinDomainDonateDonkeyDonorDoorDoseDoubleDoveDraftDragonDramaDrasticDrawDreamDressDriftDrillDrinkDripDriveDropDrumDryDuckDumbDuneDuringDustDutchDutyDwarfDynamicEagerEagleEarlyEarnEarthEasilyEastEasyEchoEcologyEconomyEdgeEditEducateEffortEggEightEitherElbowElderElectricElegantElementElephantElevatorEliteElseEmbarkEmbodyEmbraceEmergeEmotionEmployEmpowerEmptyEnableEnactEndEndlessEndorseEnemyEnergyEnforceEngageEngineEnhanceEnjoyEnlistEnoughEnrichEnrollEnsureEnterEntireEntryEnvelopeEpisodeEqualEquipEraEraseErodeErosionErrorEruptEscapeEssayEssenceEstateEternalEthicsEvidenceEvilEvokeEvolveExactExampleExcessExchangeExciteExcludeExcuseExecuteExerciseExhaustExhibitExileExistExitExoticExpandExpectExpireExplainExposeExpressExtendExtraEyeEyebrowFabricFaceFacultyFadeFaintFaithFallFalseFameFamilyFamousFanFancyFantasyFarmFashionFatFatalFatherFatigueFaultFavoriteFeatureFebruaryFederalFeeFeedFeelFemaleFenceFestivalFetchFeverFewFiberFictionFieldFigureFileFilmFilterFinalFindFineFingerFinishFireFirmFirstFiscalFishFitFitnessFixFlagFlameFlashFlatFlavorFleeFlightFlipFloatFlockFloorFlowerFluidFlushFlyFoamFocusFogFoilFoldFollowFoodFootForceForestForgetForkFortuneForumForwardFossilFosterFoundFoxFragileFrameFrequentFreshFriendFringeFrogFrontFrostFrownFrozenFruitFuelFunFunnyFurnaceFuryFutureGadgetGainGalaxyGalleryGameGapGarageGarbageGardenGarlicGarmentGasGaspGateGatherGaugeGazeGeneralGeniusGenreGentleGenuineGestureGhostGiantGiftGiggleGingerGiraffeGirlGiveGladGlanceGlareGlassGlideGlimpseGlobeGloomGloryGloveGlowGlueGoatGoddessGoldGoodGooseGorillaGospelGossipGovernGownGrabGraceGrainGrantGrapeGrassGravityGreatGreenGridGriefGritGroceryGroupGrowGruntGuardGuessGuideGuiltGuitarGunGymHabitHairHalfHammerHamsterHandHappyHarborHardHarshHarvestHatHaveHawkHazardHeadHealthHeartHeavyHedgehogHeightHelloHelmetHelpHenHeroHiddenHighHillHintHipHireHistoryHobbyHockeyHoldHoleHolidayHollowHomeHoneyHoodHopeHornHorrorHorseHospitalHostHotelHourHoverHubHugeHumanHumbleHumorHundredHungryHuntHurdleHurryHurtHusbandHybridIceIconIdeaIdentifyIdleIgnoreIllIllegalIllnessImageImitateImmenseImmuneImpactImposeImproveImpulseInchIncludeIncomeIncreaseIndexIndicateIndoorIndustryInfantInflictInformInhaleInheritInitialInjectInjuryInmateInnerInnocentInputInquiryInsaneInsectInsideInspireInstallIntactInterestIntoInvestInviteInvolveIronIslandIsolateIssueItemIvoryJacketJaguarJarJazzJealousJeansJellyJewelJobJoinJokeJourneyJoyJudgeJuiceJumpJungleJuniorJunkJustKangarooKeenKeepKetchupKeyKickKidKidneyKindKingdomKissKitKitchenKiteKittenKiwiKneeKnifeKnockKnowLabLabelLaborLadderLadyLakeLampLanguageLaptopLargeLaterLatinLaughLaundryLavaLawLawnLawsuitLayerLazyLeaderLeafLearnLeaveLectureLeftLegLegalLegendLeisureLemonLendLengthLensLeopardLessonLetterLevelLiarLibertyLibraryLicenseLifeLiftLightLikeLimbLimitLinkLionLiquidListLittleLiveLizardLoadLoanLobsterLocalLockLogicLonelyLongLoopLotteryLoudLoungeLoveLoyalLuckyLuggageLumberLunarLunchLuxuryLyricsMachineMadMagicMagnetMaidMailMainMajorMakeMammalManManageMandateMangoMansionManualMapleMarbleMarchMarginMarineMarketMarriageMaskMassMasterMatchMaterialMathMatrixMatterMaximumMazeMeadowMeanMeasureMeatMechanicMedalMediaMelodyMeltMemberMemoryMentionMenuMercyMergeMeritMerryMeshMessageMetalMethodMiddleMidnightMilkMillionMimicMindMinimumMinorMinuteMiracleMirrorMiseryMissMistakeMixMixedMixtureMobileModelModifyMomMomentMonitorMonkeyMonsterMonthMoonMoralMoreMorningMosquitoMotherMotionMotorMountainMouseMoveMovieMuchMuffinMuleMultiplyMuscleMuseumMushroomMusicMustMutualMyselfMysteryMythNaiveNameNapkinNarrowNastyNationNatureNearNeckNeedNegativeNeglectNeitherNephewNerveNestNetNetworkNeutralNeverNewsNextNiceNightNobleNoiseNomineeNoodleNormalNorthNoseNotableNoteNothingNoticeNovelNowNuclearNumberNurseNutOakObeyObjectObligeObscureObserveObtainObviousOccurOceanOctoberOdorOffOfferOfficeOftenOilOkayOldOliveOlympicOmitOnceOneOnionOnlineOnlyOpenOperaOpinionOpposeOptionOrangeOrbitOrchardOrderOrdinaryOrganOrientOriginalOrphanOstrichOtherOutdoorOuterOutputOutsideOvalOvenOverOwnOwnerOxygenOysterOzonePactPaddlePagePairPalacePalmPandaPanelPanicPantherPaperParadeParentParkParrotPartyPassPatchPathPatientPatrolPatternPausePavePaymentPeacePeanutPearPeasantPelicanPenPenaltyPencilPeoplePepperPerfectPermitPersonPetPhonePhotoPhrasePhysicalPianoPicnicPicturePiecePigPigeonPillPilotPinkPioneerPipePistolPitchPizzaPlacePlanetPlasticPlatePlayPleasePledgePluckPlugPlungePoemPoetPointPolarPolePolicePondPonyPoolPopularPortionPositionPossiblePostPotatoPotteryPovertyPowderPowerPracticePraisePredictPreferPreparePresentPrettyPreventPricePridePrimaryPrintPriorityPrisonPrivatePrizeProblemProcessProduceProfitProgramProjectPromoteProofPropertyProsperProtectProudProvidePublicPuddingPullPulpPulsePumpkinPunchPupilPuppyPurchasePurityPurposePursePushPutPuzzlePyramidQualityQuantumQuarterQuestionQuickQuitQuizQuoteRabbitRaccoonRaceRackRadarRadioRailRainRaiseRallyRampRanchRandomRangeRapidRareRateRatherRavenRawRazorReadyRealReasonRebelRebuildRecallReceiveRecipeRecordRecycleReduceReflectReformRefuseRegionRegretRegularRejectRelaxReleaseReliefRelyRemainRememberRemindRemoveRenderRenewRentReopenRepairRepeatReplaceReportRequireRescueResembleResistResourceResponseResultRetireRetreatReturnReunionRevealReviewRewardRhythmRibRibbonRiceRichRideRidgeRifleRightRigidRingRiotRippleRiskRitualRivalRiverRoadRoastRobotRobustRocketRomanceRoofRookieRoomRoseRotateRoughRoundRouteRoyalRubberRudeRugRuleRunRunwayRuralSadSaddleSadnessSafeSailSaladSalmonSalonSaltSaluteSameSampleSandSatisfySatoshiSauceSausageSaveSayScaleScanScareScatterSceneSchemeSchoolScienceScissorsScorpionScoutScrapScreenScriptScrubSeaSearchSeasonSeatSecondSecretSectionSecuritySeedSeekSegmentSelectSellSeminarSeniorSenseSentenceSeriesServiceSessionSettleSetupSevenShadowShaftShallowShareShedShellSheriffShieldShiftShineShipShiverShockShoeShootShopShortShoulderShoveShrimpShrugShuffleShySiblingSickSideSiegeSightSignSilentSilkSillySilverSimilarSimpleSinceSingSirenSisterSituateSixSizeSkateSketchSkiSkillSkinSkirtSkullSlabSlamSleepSlenderSliceSlideSlightSlimSloganSlotSlowSlushSmallSmartSmileSmokeSmoothSnackSnakeSnapSniffSnowSoapSoccerSocialSockSodaSoftSolarSoldierSolidSolutionSolveSomeoneSongSoonSorrySortSoulSoundSoupSourceSouthSpaceSpareSpatialSpawnSpeakSpecialSpeedSpellSpendSphereSpiceSpiderSpikeSpinSpiritSplitSpoilSponsorSpoonSportSpotSpraySpreadSpringSpySquareSqueezeSquirrelStableStadiumStaffStageStairsStampStandStartStateStaySteakSteelStemStepStereoStickStillStingStockStomachStoneStoolStoryStoveStrategyStreetStrikeStrongStruggleStudentStuffStumbleStyleSubjectSubmitSubwaySuccessSuchSuddenSufferSugarSuggestSuitSummerSunSunnySunsetSuperSupplySupremeSureSurfaceSurgeSurpriseSurroundSurveySuspectSustainSwallowSwampSwapSwarmSwearSweetSwiftSwimSwingSwitchSwordSymbolSymptomSyrupSystemTableTackleTagTailTalentTalkTankTapeTargetTaskTasteTattooTaxiTeachTeamTellTenTenantTennisTentTermTestTextThankThatThemeThenTheoryThereTheyThingThisThoughtThreeThriveThrowThumbThunderTicketTideTigerTiltTimberTimeTinyTipTiredTissueTitleToastTobaccoTodayToddlerToeTogetherToiletTokenTomatoTomorrowToneTongueTonightToolToothTopTopicToppleTorchTornadoTortoiseTossTotalTouristTowardTowerTownToyTrackTradeTrafficTragicTrainTransferTrapTrashTravelTrayTreatTreeTrendTrialTribeTrickTriggerTrimTripTrophyTroubleTruckTrueTrulyTrumpetTrustTruthTryTubeTuitionTumbleTunaTunnelTurkeyTurnTurtleTwelveTwentyTwiceTwinTwistTwoTypeTypicalUglyUmbrellaUnableUnawareUncleUncoverUnderUndoUnfairUnfoldUnhappyUniformUniqueUnitUniverseUnknownUnlockUntilUnusualUnveilUpdateUpgradeUpholdUponUpperUpsetUrbanUrgeUsageUseUsedUsefulUselessUsualUtilityVacantVacuumVagueValidValleyValveVanVanishVaporVariousVastVaultVehicleVelvetVendorVentureVenueVerbVerifyVersionVeryVesselVeteranViableVibrantViciousVictoryVideoViewVillageVintageViolinVirtualVirusVisaVisitVisualVitalVividVocalVoiceVoidVolcanoVolumeVoteVoyageWageWagonWaitWalkWallWalnutWantWarfareWarmWarriorWashWaspWasteWaterWaveWayWealthWeaponWearWeaselWeatherWebWeddingWeekendWeirdWelcomeWestWetWhaleWhatWheatWheelWhenWhereWhipWhisperWideWidthWifeWildWillWinWindowWineWingWinkWinnerWinterWireWisdomWiseWishWitnessWolfWomanWonderWoodWoolWordWorkWorldWorryWorthWrapWreckWrestleWristWriteWrongYardYearYellowYouYoungYouthZebraZeroZoneZoo".replace(/([A-Z])/g," $1").toLowerCase().substring(1).split(" "),"0x3c8acc1e7b08d8e76f9fda015ef48dc8c710a73cb7e0f77b2c18a9b5a7adde60"!==ud.check(e)))throw cd=null,new Error("BIP39 Wordlist for en (English) FAILED")}const dd=new class extends ud{constructor(){super("en")}getWord(e){return ld(this),cd[e]}getWordIndex(e){return ld(this),cd.indexOf(e)}};ud.register(dd);const fd={en:dd},pd=new Zn("hdnode/5.7.0"),hd=kr.from("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),md=Pa("Bitcoin seed"),yd=2147483648;function gd(e){return(1<<e)-1<<8-e}function bd(e){return vr(pr(e),32)}function vd(e){return Ql.encode(ur([e,mr(nd(nd(e)),0,4)]))}function Td(e){if(null==e)return fd.en;if("string"==typeof e){const t=fd[e];return null==t&&pd.throwArgumentError("unknown locale","wordlist",e),t}return e}const wd={},Ed="m/44'/60'/0'/0/0";class Ad{constructor(e,t,n,r,i,a,o,s){if(e!==wd)throw new Error("HDNode constructor cannot be called directly");if(t){const e=new ll(t);Jr(this,"privateKey",e.privateKey),Jr(this,"publicKey",e.compressedPublicKey)}else Jr(this,"privateKey",null),Jr(this,"publicKey",pr(n));Jr(this,"parentFingerprint",r),Jr(this,"fingerprint",mr(td(nd(this.publicKey)),0,4)),Jr(this,"address",Tl(this.publicKey)),Jr(this,"chainCode",i),Jr(this,"index",a),Jr(this,"depth",o),null==s?(Jr(this,"mnemonic",null),Jr(this,"path",null)):"string"==typeof s?(Jr(this,"mnemonic",null),Jr(this,"path",s)):(Jr(this,"mnemonic",s),Jr(this,"path",s.path))}get extendedKey(){if(this.depth>=256)throw new Error("Depth too large!");return vd(ur([null!=this.privateKey?"0x0488ADE4":"0x0488B21E",pr(this.depth),this.parentFingerprint,vr(pr(this.index),4),this.chainCode,null!=this.privateKey?ur(["0x00",this.privateKey]):this.publicKey]))}neuter(){return new Ad(wd,null,this.publicKey,this.parentFingerprint,this.chainCode,this.index,this.depth,this.path)}_derive(e){if(e>4294967295)throw new Error("invalid index - "+String(e));let t=this.path;t&&(t+="/"+(2147483647&e));const n=new Uint8Array(37);if(e&yd){if(!this.privateKey)throw new Error("cannot derive child of neutered node");n.set(sr(this.privateKey),1),t&&(t+="'")}else n.set(sr(this.publicKey));for(let t=24;t>=0;t-=8)n[33+(t>>3)]=e>>24-t&255;const r=sr(id($l.sha512,this.chainCode,n)),i=r.slice(0,32),a=r.slice(32);let o=null,s=null;if(this.privateKey)o=bd(kr.from(i).add(this.privateKey).mod(hd));else{s=new ll(pr(i))._addPoint(this.publicKey)}let u=t;const c=this.mnemonic;return c&&(u=Object.freeze({phrase:c.phrase,path:t,locale:c.locale||"en"})),new Ad(wd,o,s,this.fingerprint,bd(a),e,this.depth+1,u)}derivePath(e){const t=e.split("/");if(0===t.length||"m"===t[0]&&0!==this.depth)throw new Error("invalid path - "+e);"m"===t[0]&&t.shift();let n=this;for(let e=0;e<t.length;e++){const r=t[e];if(r.match(/^[0-9]+'$/)){const e=parseInt(r.substring(0,r.length-1));if(e>=yd)throw new Error("invalid path index - "+r);n=n._derive(yd+e)}else{if(!r.match(/^[0-9]+$/))throw new Error("invalid path component - "+r);{const e=parseInt(r);if(e>=yd)throw new Error("invalid path index - "+r);n=n._derive(e)}}}return n}static _fromSeed(e,t){const n=sr(e);if(n.length<16||n.length>64)throw new Error("invalid seed");const r=sr(id($l.sha512,md,n));return new Ad(wd,bd(r.slice(0,32)),null,"0x00000000",bd(r.slice(32)),0,0,t)}static fromMnemonic(e,t,n){return e=Rd(Id(e,n=Td(n)),n),Ad._fromSeed(_d(e,t),{phrase:e,path:"m",locale:n.locale})}static fromSeed(e){return Ad._fromSeed(e,null)}static fromExtendedKey(e){const t=Ql.decode(e);82===t.length&&vd(t.slice(0,78))===e||pd.throwArgumentError("invalid extended key","extendedKey","[REDACTED]");const n=t[4],r=pr(t.slice(5,9)),i=parseInt(pr(t.slice(9,13)).substring(2),16),a=pr(t.slice(13,45)),o=t.slice(45,78);switch(pr(t.slice(0,4))){case"0x0488b21e":case"0x043587cf":return new Ad(wd,null,pr(o),r,a,i,n,null);case"0x0488ade4":case"0x04358394 ":if(0!==o[0])break;return new Ad(wd,pr(o.slice(1)),null,r,a,i,n,null)}return pd.throwArgumentError("invalid extended key","extendedKey","[REDACTED]")}}function _d(e,t){t||(t="");const n=Pa("mnemonic"+t,Oa.NFKD);return od(Pa(e,Oa.NFKD),n,2048,64,"sha512")}function Id(e,t){t=Td(t),pd.checkNormalize();const n=t.split(e);if(n.length%3!=0)throw new Error("invalid mnemonic");const r=sr(new Uint8Array(Math.ceil(11*n.length/8)));let i=0;for(let e=0;e<n.length;e++){let a=t.getWordIndex(n[e].normalize("NFKD"));if(-1===a)throw new Error("invalid mnemonic");for(let e=0;e<11;e++)a&1<<10-e&&(r[i>>3]|=1<<7-i%8),i++}const a=32*n.length/3,o=gd(n.length/3);if((sr(nd(r.slice(0,a/8)))[0]&o)!==(r[r.length-1]&o))throw new Error("invalid checksum");return pr(r.slice(0,a/8))}function Rd(e,t){if(t=Td(t),(e=sr(e)).length%4!=0||e.length<16||e.length>32)throw new Error("invalid entropy");const n=[0];let r=11;for(let t=0;t<e.length;t++)r>8?(n[n.length-1]<<=8,n[n.length-1]|=e[t],r-=8):(n[n.length-1]<<=r,n[n.length-1]|=e[t]>>8-r,n.push(e[t]&(1<<8-r)-1),r+=3);const i=e.length/4,a=sr(nd(e))[0]&gd(i);return n[n.length-1]<<=i,n[n.length-1]|=a>>8-i,t.join(n.map((e=>t.getWord(e))))}function Cd(e,t){try{return Id(e,t),!0}catch(e){}return!1}function Od(e){return("number"!=typeof e||e<0||e>=yd||e%1)&&pd.throwArgumentError("invalid account index","index",e),`m/44'/60'/${e}'/0/0`}var kd=Object.freeze({__proto__:null,HDNode:Ad,defaultPath:Ed,entropyToMnemonic:Rd,getAccountPath:Od,isValidMnemonic:Cd,mnemonicToEntropy:Id,mnemonicToSeed:_d});const Sd=new Zn("random/5.7.0");const Nd=function(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if("undefined"!=typeof global)return global;throw new Error("unable to locate global object")}();let xd=Nd.crypto||Nd.msCrypto;function Pd(e){(e<=0||e>1024||e%1||e!=e)&&Sd.throwArgumentError("invalid length","length",e);const t=new Uint8Array(e);return xd.getRandomValues(t),sr(t)}function Md(e){for(let t=(e=e.slice()).length-1;t>0;t--){const n=Math.floor(Math.random()*(t+1)),r=e[t];e[t]=e[n],e[n]=r}return e}xd&&xd.getRandomValues||(Sd.warn("WARNING: Missing strong random number source"),xd={getRandomValues:function(e){return Sd.throwError("no secure random source avaialble",Zn.errors.UNSUPPORTED_OPERATION,{operation:"crypto.getRandomValues"})}});var Bd=Object.freeze({__proto__:null,randomBytes:Pd,shuffled:Md}),Dd={exports:{}};!function(e,t){!function(t){function n(e){return parseInt(e)===e}function r(e){if(!n(e.length))return!1;for(var t=0;t<e.length;t++)if(!n(e[t])||e[t]<0||e[t]>255)return!1;return!0}function i(e,t){if(e.buffer&&ArrayBuffer.isView(e)&&"Uint8Array"===e.name)return t&&(e=e.slice?e.slice():Array.prototype.slice.call(e)),e;if(Array.isArray(e)){if(!r(e))throw new Error("Array contains invalid value: "+e);return new Uint8Array(e)}if(n(e.length)&&r(e))return new Uint8Array(e);throw new Error("unsupported array-like object")}function a(e){return new Uint8Array(e)}function o(e,t,n,r,i){null==r&&null==i||(e=e.slice?e.slice(r,i):Array.prototype.slice.call(e,r,i)),t.set(e,n)}var s,u={toBytes:function(e){var t=[],n=0;for(e=encodeURI(e);n<e.length;){var r=e.charCodeAt(n++);37===r?(t.push(parseInt(e.substr(n,2),16)),n+=2):t.push(r)}return i(t)},fromBytes:function(e){for(var t=[],n=0;n<e.length;){var r=e[n];r<128?(t.push(String.fromCharCode(r)),n++):r>191&&r<224?(t.push(String.fromCharCode((31&r)<<6|63&e[n+1])),n+=2):(t.push(String.fromCharCode((15&r)<<12|(63&e[n+1])<<6|63&e[n+2])),n+=3)}return t.join("")}},c=(s="0123456789abcdef",{toBytes:function(e){for(var t=[],n=0;n<e.length;n+=2)t.push(parseInt(e.substr(n,2),16));return t},fromBytes:function(e){for(var t=[],n=0;n<e.length;n++){var r=e[n];t.push(s[(240&r)>>4]+s[15&r])}return t.join("")}}),l={16:10,24:12,32:14},d=[1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145],f=[99,124,119,123,242,107,111,197,48,1,103,43,254,215,171,118,202,130,201,125,250,89,71,240,173,212,162,175,156,164,114,192,183,253,147,38,54,63,247,204,52,165,229,241,113,216,49,21,4,199,35,195,24,150,5,154,7,18,128,226,235,39,178,117,9,131,44,26,27,110,90,160,82,59,214,179,41,227,47,132,83,209,0,237,32,252,177,91,106,203,190,57,74,76,88,207,208,239,170,251,67,77,51,133,69,249,2,127,80,60,159,168,81,163,64,143,146,157,56,245,188,182,218,33,16,255,243,210,205,12,19,236,95,151,68,23,196,167,126,61,100,93,25,115,96,129,79,220,34,42,144,136,70,238,184,20,222,94,11,219,224,50,58,10,73,6,36,92,194,211,172,98,145,149,228,121,231,200,55,109,141,213,78,169,108,86,244,234,101,122,174,8,186,120,37,46,28,166,180,198,232,221,116,31,75,189,139,138,112,62,181,102,72,3,246,14,97,53,87,185,134,193,29,158,225,248,152,17,105,217,142,148,155,30,135,233,206,85,40,223,140,161,137,13,191,230,66,104,65,153,45,15,176,84,187,22],p=[82,9,106,213,48,54,165,56,191,64,163,158,129,243,215,251,124,227,57,130,155,47,255,135,52,142,67,68,196,222,233,203,84,123,148,50,166,194,35,61,238,76,149,11,66,250,195,78,8,46,161,102,40,217,36,178,118,91,162,73,109,139,209,37,114,248,246,100,134,104,152,22,212,164,92,204,93,101,182,146,108,112,72,80,253,237,185,218,94,21,70,87,167,141,157,132,144,216,171,0,140,188,211,10,247,228,88,5,184,179,69,6,208,44,30,143,202,63,15,2,193,175,189,3,1,19,138,107,58,145,17,65,79,103,220,234,151,242,207,206,240,180,230,115,150,172,116,34,231,173,53,133,226,249,55,232,28,117,223,110,71,241,26,113,29,41,197,137,111,183,98,14,170,24,190,27,252,86,62,75,198,210,121,32,154,219,192,254,120,205,90,244,31,221,168,51,136,7,199,49,177,18,16,89,39,128,236,95,96,81,127,169,25,181,74,13,45,229,122,159,147,201,156,239,160,224,59,77,174,42,245,176,200,235,187,60,131,83,153,97,23,43,4,126,186,119,214,38,225,105,20,99,85,33,12,125],h=[3328402341,4168907908,4000806809,4135287693,4294111757,3597364157,3731845041,2445657428,1613770832,33620227,3462883241,1445669757,3892248089,3050821474,1303096294,3967186586,2412431941,528646813,2311702848,4202528135,4026202645,2992200171,2387036105,4226871307,1101901292,3017069671,1604494077,1169141738,597466303,1403299063,3832705686,2613100635,1974974402,3791519004,1033081774,1277568618,1815492186,2118074177,4126668546,2211236943,1748251740,1369810420,3521504564,4193382664,3799085459,2883115123,1647391059,706024767,134480908,2512897874,1176707941,2646852446,806885416,932615841,168101135,798661301,235341577,605164086,461406363,3756188221,3454790438,1311188841,2142417613,3933566367,302582043,495158174,1479289972,874125870,907746093,3698224818,3025820398,1537253627,2756858614,1983593293,3084310113,2108928974,1378429307,3722699582,1580150641,327451799,2790478837,3117535592,0,3253595436,1075847264,3825007647,2041688520,3059440621,3563743934,2378943302,1740553945,1916352843,2487896798,2555137236,2958579944,2244988746,3151024235,3320835882,1336584933,3992714006,2252555205,2588757463,1714631509,293963156,2319795663,3925473552,67240454,4269768577,2689618160,2017213508,631218106,1269344483,2723238387,1571005438,2151694528,93294474,1066570413,563977660,1882732616,4059428100,1673313503,2008463041,2950355573,1109467491,537923632,3858759450,4260623118,3218264685,2177748300,403442708,638784309,3287084079,3193921505,899127202,2286175436,773265209,2479146071,1437050866,4236148354,2050833735,3362022572,3126681063,840505643,3866325909,3227541664,427917720,2655997905,2749160575,1143087718,1412049534,999329963,193497219,2353415882,3354324521,1807268051,672404540,2816401017,3160301282,369822493,2916866934,3688947771,1681011286,1949973070,336202270,2454276571,201721354,1210328172,3093060836,2680341085,3184776046,1135389935,3294782118,965841320,831886756,3554993207,4068047243,3588745010,2345191491,1849112409,3664604599,26054028,2983581028,2622377682,1235855840,3630984372,2891339514,4092916743,3488279077,3395642799,4101667470,1202630377,268961816,1874508501,4034427016,1243948399,1546530418,941366308,1470539505,1941222599,2546386513,3421038627,2715671932,3899946140,1042226977,2521517021,1639824860,227249030,260737669,3765465232,2084453954,1907733956,3429263018,2420656344,100860677,4160157185,470683154,3261161891,1781871967,2924959737,1773779408,394692241,2579611992,974986535,664706745,3655459128,3958962195,731420851,571543859,3530123707,2849626480,126783113,865375399,765172662,1008606754,361203602,3387549984,2278477385,2857719295,1344809080,2782912378,59542671,1503764984,160008576,437062935,1707065306,3622233649,2218934982,3496503480,2185314755,697932208,1512910199,504303377,2075177163,2824099068,1841019862,739644986],m=[2781242211,2230877308,2582542199,2381740923,234877682,3184946027,2984144751,1418839493,1348481072,50462977,2848876391,2102799147,434634494,1656084439,3863849899,2599188086,1167051466,2636087938,1082771913,2281340285,368048890,3954334041,3381544775,201060592,3963727277,1739838676,4250903202,3930435503,3206782108,4149453988,2531553906,1536934080,3262494647,484572669,2923271059,1783375398,1517041206,1098792767,49674231,1334037708,1550332980,4098991525,886171109,150598129,2481090929,1940642008,1398944049,1059722517,201851908,1385547719,1699095331,1587397571,674240536,2704774806,252314885,3039795866,151914247,908333586,2602270848,1038082786,651029483,1766729511,3447698098,2682942837,454166793,2652734339,1951935532,775166490,758520603,3000790638,4004797018,4217086112,4137964114,1299594043,1639438038,3464344499,2068982057,1054729187,1901997871,2534638724,4121318227,1757008337,0,750906861,1614815264,535035132,3363418545,3988151131,3201591914,1183697867,3647454910,1265776953,3734260298,3566750796,3903871064,1250283471,1807470800,717615087,3847203498,384695291,3313910595,3617213773,1432761139,2484176261,3481945413,283769337,100925954,2180939647,4037038160,1148730428,3123027871,3813386408,4087501137,4267549603,3229630528,2315620239,2906624658,3156319645,1215313976,82966005,3747855548,3245848246,1974459098,1665278241,807407632,451280895,251524083,1841287890,1283575245,337120268,891687699,801369324,3787349855,2721421207,3431482436,959321879,1469301956,4065699751,2197585534,1199193405,2898814052,3887750493,724703513,2514908019,2696962144,2551808385,3516813135,2141445340,1715741218,2119445034,2872807568,2198571144,3398190662,700968686,3547052216,1009259540,2041044702,3803995742,487983883,1991105499,1004265696,1449407026,1316239930,504629770,3683797321,168560134,1816667172,3837287516,1570751170,1857934291,4014189740,2797888098,2822345105,2754712981,936633572,2347923833,852879335,1133234376,1500395319,3084545389,2348912013,1689376213,3533459022,3762923945,3034082412,4205598294,133428468,634383082,2949277029,2398386810,3913789102,403703816,3580869306,2297460856,1867130149,1918643758,607656988,4049053350,3346248884,1368901318,600565992,2090982877,2632479860,557719327,3717614411,3697393085,2249034635,2232388234,2430627952,1115438654,3295786421,2865522278,3633334344,84280067,33027830,303828494,2747425121,1600795957,4188952407,3496589753,2434238086,1486471617,658119965,3106381470,953803233,334231800,3005978776,857870609,3151128937,1890179545,2298973838,2805175444,3056442267,574365214,2450884487,550103529,1233637070,4289353045,2018519080,2057691103,2399374476,4166623649,2148108681,387583245,3664101311,836232934,3330556482,3100665960,3280093505,2955516313,2002398509,287182607,3413881008,4238890068,3597515707,975967766],y=[1671808611,2089089148,2006576759,2072901243,4061003762,1807603307,1873927791,3310653893,810573872,16974337,1739181671,729634347,4263110654,3613570519,2883997099,1989864566,3393556426,2191335298,3376449993,2106063485,4195741690,1508618841,1204391495,4027317232,2917941677,3563566036,2734514082,2951366063,2629772188,2767672228,1922491506,3227229120,3082974647,4246528509,2477669779,644500518,911895606,1061256767,4144166391,3427763148,878471220,2784252325,3845444069,4043897329,1905517169,3631459288,827548209,356461077,67897348,3344078279,593839651,3277757891,405286936,2527147926,84871685,2595565466,118033927,305538066,2157648768,3795705826,3945188843,661212711,2999812018,1973414517,152769033,2208177539,745822252,439235610,455947803,1857215598,1525593178,2700827552,1391895634,994932283,3596728278,3016654259,695947817,3812548067,795958831,2224493444,1408607827,3513301457,0,3979133421,543178784,4229948412,2982705585,1542305371,1790891114,3410398667,3201918910,961245753,1256100938,1289001036,1491644504,3477767631,3496721360,4012557807,2867154858,4212583931,1137018435,1305975373,861234739,2241073541,1171229253,4178635257,33948674,2139225727,1357946960,1011120188,2679776671,2833468328,1374921297,2751356323,1086357568,2408187279,2460827538,2646352285,944271416,4110742005,3168756668,3066132406,3665145818,560153121,271589392,4279952895,4077846003,3530407890,3444343245,202643468,322250259,3962553324,1608629855,2543990167,1154254916,389623319,3294073796,2817676711,2122513534,1028094525,1689045092,1575467613,422261273,1939203699,1621147744,2174228865,1339137615,3699352540,577127458,712922154,2427141008,2290289544,1187679302,3995715566,3100863416,339486740,3732514782,1591917662,186455563,3681988059,3762019296,844522546,978220090,169743370,1239126601,101321734,611076132,1558493276,3260915650,3547250131,2901361580,1655096418,2443721105,2510565781,3828863972,2039214713,3878868455,3359869896,928607799,1840765549,2374762893,3580146133,1322425422,2850048425,1823791212,1459268694,4094161908,3928346602,1706019429,2056189050,2934523822,135794696,3134549946,2022240376,628050469,779246638,472135708,2800834470,3032970164,3327236038,3894660072,3715932637,1956440180,522272287,1272813131,3185336765,2340818315,2323976074,1888542832,1044544574,3049550261,1722469478,1222152264,50660867,4127324150,236067854,1638122081,895445557,1475980887,3117443513,2257655686,3243809217,489110045,2662934430,3778599393,4162055160,2561878936,288563729,1773916777,3648039385,2391345038,2493985684,2612407707,505560094,2274497927,3911240169,3460925390,1442818645,678973480,3749357023,2358182796,2717407649,2306869641,219617805,3218761151,3862026214,1120306242,1756942440,1103331905,2578459033,762796589,252780047,2966125488,1425844308,3151392187,372911126],g=[1667474886,2088535288,2004326894,2071694838,4075949567,1802223062,1869591006,3318043793,808472672,16843522,1734846926,724270422,4278065639,3621216949,2880169549,1987484396,3402253711,2189597983,3385409673,2105378810,4210693615,1499065266,1195886990,4042263547,2913856577,3570689971,2728590687,2947541573,2627518243,2762274643,1920112356,3233831835,3082273397,4261223649,2475929149,640051788,909531756,1061110142,4160160501,3435941763,875846760,2779116625,3857003729,4059105529,1903268834,3638064043,825316194,353713962,67374088,3351728789,589522246,3284360861,404236336,2526454071,84217610,2593830191,117901582,303183396,2155911963,3806477791,3958056653,656894286,2998062463,1970642922,151591698,2206440989,741110872,437923380,454765878,1852748508,1515908788,2694904667,1381168804,993742198,3604373943,3014905469,690584402,3823320797,791638366,2223281939,1398011302,3520161977,0,3991743681,538992704,4244381667,2981218425,1532751286,1785380564,3419096717,3200178535,960056178,1246420628,1280103576,1482221744,3486468741,3503319995,4025428677,2863326543,4227536621,1128514950,1296947098,859002214,2240123921,1162203018,4193849577,33687044,2139062782,1347481760,1010582648,2678045221,2829640523,1364325282,2745433693,1077985408,2408548869,2459086143,2644360225,943212656,4126475505,3166494563,3065430391,3671750063,555836226,269496352,4294908645,4092792573,3537006015,3452783745,202118168,320025894,3974901699,1600119230,2543297077,1145359496,387397934,3301201811,2812801621,2122220284,1027426170,1684319432,1566435258,421079858,1936954854,1616945344,2172753945,1330631070,3705438115,572679748,707427924,2425400123,2290647819,1179044492,4008585671,3099120491,336870440,3739122087,1583276732,185277718,3688593069,3772791771,842159716,976899700,168435220,1229577106,101059084,606366792,1549591736,3267517855,3553849021,2897014595,1650632388,2442242105,2509612081,3840161747,2038008818,3890688725,3368567691,926374254,1835907034,2374863873,3587531953,1313788572,2846482505,1819063512,1448540844,4109633523,3941213647,1701162954,2054852340,2930698567,134748176,3132806511,2021165296,623210314,774795868,471606328,2795958615,3031746419,3334885783,3907527627,3722280097,1953799400,522133822,1263263126,3183336545,2341176845,2324333839,1886425312,1044267644,3048588401,1718004428,1212733584,50529542,4143317495,235803164,1633788866,892690282,1465383342,3115962473,2256965911,3250673817,488449850,2661202215,3789633753,4177007595,2560144171,286339874,1768537042,3654906025,2391705863,2492770099,2610673197,505291324,2273808917,3924369609,3469625735,1431699370,673740880,3755965093,2358021891,2711746649,2307489801,218961690,3217021541,3873845719,1111672452,1751693520,1094828930,2576986153,757954394,252645662,2964376443,1414855848,3149649517,370555436],b=[1374988112,2118214995,437757123,975658646,1001089995,530400753,2902087851,1273168787,540080725,2910219766,2295101073,4110568485,1340463100,3307916247,641025152,3043140495,3736164937,632953703,1172967064,1576976609,3274667266,2169303058,2370213795,1809054150,59727847,361929877,3211623147,2505202138,3569255213,1484005843,1239443753,2395588676,1975683434,4102977912,2572697195,666464733,3202437046,4035489047,3374361702,2110667444,1675577880,3843699074,2538681184,1649639237,2976151520,3144396420,4269907996,4178062228,1883793496,2403728665,2497604743,1383856311,2876494627,1917518562,3810496343,1716890410,3001755655,800440835,2261089178,3543599269,807962610,599762354,33778362,3977675356,2328828971,2809771154,4077384432,1315562145,1708848333,101039829,3509871135,3299278474,875451293,2733856160,92987698,2767645557,193195065,1080094634,1584504582,3178106961,1042385657,2531067453,3711829422,1306967366,2438237621,1908694277,67556463,1615861247,429456164,3602770327,2302690252,1742315127,2968011453,126454664,3877198648,2043211483,2709260871,2084704233,4169408201,0,159417987,841739592,504459436,1817866830,4245618683,260388950,1034867998,908933415,168810852,1750902305,2606453969,607530554,202008497,2472011535,3035535058,463180190,2160117071,1641816226,1517767529,470948374,3801332234,3231722213,1008918595,303765277,235474187,4069246893,766945465,337553864,1475418501,2943682380,4003061179,2743034109,4144047775,1551037884,1147550661,1543208500,2336434550,3408119516,3069049960,3102011747,3610369226,1113818384,328671808,2227573024,2236228733,3535486456,2935566865,3341394285,496906059,3702665459,226906860,2009195472,733156972,2842737049,294930682,1206477858,2835123396,2700099354,1451044056,573804783,2269728455,3644379585,2362090238,2564033334,2801107407,2776292904,3669462566,1068351396,742039012,1350078989,1784663195,1417561698,4136440770,2430122216,775550814,2193862645,2673705150,1775276924,1876241833,3475313331,3366754619,270040487,3902563182,3678124923,3441850377,1851332852,3969562369,2203032232,3868552805,2868897406,566021896,4011190502,3135740889,1248802510,3936291284,699432150,832877231,708780849,3332740144,899835584,1951317047,4236429990,3767586992,866637845,4043610186,1106041591,2144161806,395441711,1984812685,1139781709,3433712980,3835036895,2664543715,1282050075,3240894392,1181045119,2640243204,25965917,4203181171,4211818798,3009879386,2463879762,3910161971,1842759443,2597806476,933301370,1509430414,3943906441,3467192302,3076639029,3776767469,2051518780,2631065433,1441952575,404016761,1942435775,1408749034,1610459739,3745345300,2017778566,3400528769,3110650942,941896748,3265478751,371049330,3168937228,675039627,4279080257,967311729,135050206,3635733660,1683407248,2076935265,3576870512,1215061108,3501741890],v=[1347548327,1400783205,3273267108,2520393566,3409685355,4045380933,2880240216,2471224067,1428173050,4138563181,2441661558,636813900,4233094615,3620022987,2149987652,2411029155,1239331162,1730525723,2554718734,3781033664,46346101,310463728,2743944855,3328955385,3875770207,2501218972,3955191162,3667219033,768917123,3545789473,692707433,1150208456,1786102409,2029293177,1805211710,3710368113,3065962831,401639597,1724457132,3028143674,409198410,2196052529,1620529459,1164071807,3769721975,2226875310,486441376,2499348523,1483753576,428819965,2274680428,3075636216,598438867,3799141122,1474502543,711349675,129166120,53458370,2592523643,2782082824,4063242375,2988687269,3120694122,1559041666,730517276,2460449204,4042459122,2706270690,3446004468,3573941694,533804130,2328143614,2637442643,2695033685,839224033,1973745387,957055980,2856345839,106852767,1371368976,4181598602,1033297158,2933734917,1179510461,3046200461,91341917,1862534868,4284502037,605657339,2547432937,3431546947,2003294622,3182487618,2282195339,954669403,3682191598,1201765386,3917234703,3388507166,0,2198438022,1211247597,2887651696,1315723890,4227665663,1443857720,507358933,657861945,1678381017,560487590,3516619604,975451694,2970356327,261314535,3535072918,2652609425,1333838021,2724322336,1767536459,370938394,182621114,3854606378,1128014560,487725847,185469197,2918353863,3106780840,3356761769,2237133081,1286567175,3152976349,4255350624,2683765030,3160175349,3309594171,878443390,1988838185,3704300486,1756818940,1673061617,3403100636,272786309,1075025698,545572369,2105887268,4174560061,296679730,1841768865,1260232239,4091327024,3960309330,3497509347,1814803222,2578018489,4195456072,575138148,3299409036,446754879,3629546796,4011996048,3347532110,3252238545,4270639778,915985419,3483825537,681933534,651868046,2755636671,3828103837,223377554,2607439820,1649704518,3270937875,3901806776,1580087799,4118987695,3198115200,2087309459,2842678573,3016697106,1003007129,2802849917,1860738147,2077965243,164439672,4100872472,32283319,2827177882,1709610350,2125135846,136428751,3874428392,3652904859,3460984630,3572145929,3593056380,2939266226,824852259,818324884,3224740454,930369212,2801566410,2967507152,355706840,1257309336,4148292826,243256656,790073846,2373340630,1296297904,1422699085,3756299780,3818836405,457992840,3099667487,2135319889,77422314,1560382517,1945798516,788204353,1521706781,1385356242,870912086,325965383,2358957921,2050466060,2388260884,2313884476,4006521127,901210569,3990953189,1014646705,1503449823,1062597235,2031621326,3212035895,3931371469,1533017514,350174575,2256028891,2177544179,1052338372,741876788,1606591296,1914052035,213705253,2334669897,1107234197,1899603969,3725069491,2631447780,2422494913,1635502980,1893020342,1950903388,1120974935],T=[2807058932,1699970625,2764249623,1586903591,1808481195,1173430173,1487645946,59984867,4199882800,1844882806,1989249228,1277555970,3623636965,3419915562,1149249077,2744104290,1514790577,459744698,244860394,3235995134,1963115311,4027744588,2544078150,4190530515,1608975247,2627016082,2062270317,1507497298,2200818878,567498868,1764313568,3359936201,2305455554,2037970062,1047239e3,1910319033,1337376481,2904027272,2892417312,984907214,1243112415,830661914,861968209,2135253587,2011214180,2927934315,2686254721,731183368,1750626376,4246310725,1820824798,4172763771,3542330227,48394827,2404901663,2871682645,671593195,3254988725,2073724613,145085239,2280796200,2779915199,1790575107,2187128086,472615631,3029510009,4075877127,3802222185,4107101658,3201631749,1646252340,4270507174,1402811438,1436590835,3778151818,3950355702,3963161475,4020912224,2667994737,273792366,2331590177,104699613,95345982,3175501286,2377486676,1560637892,3564045318,369057872,4213447064,3919042237,1137477952,2658625497,1119727848,2340947849,1530455833,4007360968,172466556,266959938,516552836,0,2256734592,3980931627,1890328081,1917742170,4294704398,945164165,3575528878,958871085,3647212047,2787207260,1423022939,775562294,1739656202,3876557655,2530391278,2443058075,3310321856,547512796,1265195639,437656594,3121275539,719700128,3762502690,387781147,218828297,3350065803,2830708150,2848461854,428169201,122466165,3720081049,1627235199,648017665,4122762354,1002783846,2117360635,695634755,3336358691,4234721005,4049844452,3704280881,2232435299,574624663,287343814,612205898,1039717051,840019705,2708326185,793451934,821288114,1391201670,3822090177,376187827,3113855344,1224348052,1679968233,2361698556,1058709744,752375421,2431590963,1321699145,3519142200,2734591178,188127444,2177869557,3727205754,2384911031,3215212461,2648976442,2450346104,3432737375,1180849278,331544205,3102249176,4150144569,2952102595,2159976285,2474404304,766078933,313773861,2570832044,2108100632,1668212892,3145456443,2013908262,418672217,3070356634,2594734927,1852171925,3867060991,3473416636,3907448597,2614737639,919489135,164948639,2094410160,2997825956,590424639,2486224549,1723872674,3157750862,3399941250,3501252752,3625268135,2555048196,3673637356,1343127501,4130281361,3599595085,2957853679,1297403050,81781910,3051593425,2283490410,532201772,1367295589,3926170974,895287692,1953757831,1093597963,492483431,3528626907,1446242576,1192455638,1636604631,209336225,344873464,1015671571,669961897,3375740769,3857572124,2973530695,3747192018,1933530610,3464042516,935293895,3454686199,2858115069,1863638845,3683022916,4085369519,3292445032,875313188,1080017571,3279033885,621591778,1233856572,2504130317,24197544,3017672716,3835484340,3247465558,2220981195,3060847922,1551124588,1463996600],w=[4104605777,1097159550,396673818,660510266,2875968315,2638606623,4200115116,3808662347,821712160,1986918061,3430322568,38544885,3856137295,718002117,893681702,1654886325,2975484382,3122358053,3926825029,4274053469,796197571,1290801793,1184342925,3556361835,2405426947,2459735317,1836772287,1381620373,3196267988,1948373848,3764988233,3385345166,3263785589,2390325492,1480485785,3111247143,3780097726,2293045232,548169417,3459953789,3746175075,439452389,1362321559,1400849762,1685577905,1806599355,2174754046,137073913,1214797936,1174215055,3731654548,2079897426,1943217067,1258480242,529487843,1437280870,3945269170,3049390895,3313212038,923313619,679998e3,3215307299,57326082,377642221,3474729866,2041877159,133361907,1776460110,3673476453,96392454,878845905,2801699524,777231668,4082475170,2330014213,4142626212,2213296395,1626319424,1906247262,1846563261,562755902,3708173718,1040559837,3871163981,1418573201,3294430577,114585348,1343618912,2566595609,3186202582,1078185097,3651041127,3896688048,2307622919,425408743,3371096953,2081048481,1108339068,2216610296,0,2156299017,736970802,292596766,1517440620,251657213,2235061775,2933202493,758720310,265905162,1554391400,1532285339,908999204,174567692,1474760595,4002861748,2610011675,3234156416,3693126241,2001430874,303699484,2478443234,2687165888,585122620,454499602,151849742,2345119218,3064510765,514443284,4044981591,1963412655,2581445614,2137062819,19308535,1928707164,1715193156,4219352155,1126790795,600235211,3992742070,3841024952,836553431,1669664834,2535604243,3323011204,1243905413,3141400786,4180808110,698445255,2653899549,2989552604,2253581325,3252932727,3004591147,1891211689,2487810577,3915653703,4237083816,4030667424,2100090966,865136418,1229899655,953270745,3399679628,3557504664,4118925222,2061379749,3079546586,2915017791,983426092,2022837584,1607244650,2118541908,2366882550,3635996816,972512814,3283088770,1568718495,3499326569,3576539503,621982671,2895723464,410887952,2623762152,1002142683,645401037,1494807662,2595684844,1335535747,2507040230,4293295786,3167684641,367585007,3885750714,1865862730,2668221674,2960971305,2763173681,1059270954,2777952454,2724642869,1320957812,2194319100,2429595872,2815956275,77089521,3973773121,3444575871,2448830231,1305906550,4021308739,2857194700,2516901860,3518358430,1787304780,740276417,1699839814,1592394909,2352307457,2272556026,188821243,1729977011,3687994002,274084841,3594982253,3613494426,2701949495,4162096729,322734571,2837966542,1640576439,484830689,1202797690,3537852828,4067639125,349075736,3342319475,4157467219,4255800159,1030690015,1155237496,2951971274,1757691577,607398968,2738905026,499347990,3794078908,1011452712,227885567,2818666809,213114376,3034881240,1455525988,3414450555,850817237,1817998408,3092726480],E=[0,235474187,470948374,303765277,941896748,908933415,607530554,708780849,1883793496,2118214995,1817866830,1649639237,1215061108,1181045119,1417561698,1517767529,3767586992,4003061179,4236429990,4069246893,3635733660,3602770327,3299278474,3400528769,2430122216,2664543715,2362090238,2193862645,2835123396,2801107407,3035535058,3135740889,3678124923,3576870512,3341394285,3374361702,3810496343,3977675356,4279080257,4043610186,2876494627,2776292904,3076639029,3110650942,2472011535,2640243204,2403728665,2169303058,1001089995,899835584,666464733,699432150,59727847,226906860,530400753,294930682,1273168787,1172967064,1475418501,1509430414,1942435775,2110667444,1876241833,1641816226,2910219766,2743034109,2976151520,3211623147,2505202138,2606453969,2302690252,2269728455,3711829422,3543599269,3240894392,3475313331,3843699074,3943906441,4178062228,4144047775,1306967366,1139781709,1374988112,1610459739,1975683434,2076935265,1775276924,1742315127,1034867998,866637845,566021896,800440835,92987698,193195065,429456164,395441711,1984812685,2017778566,1784663195,1683407248,1315562145,1080094634,1383856311,1551037884,101039829,135050206,437757123,337553864,1042385657,807962610,573804783,742039012,2531067453,2564033334,2328828971,2227573024,2935566865,2700099354,3001755655,3168937228,3868552805,3902563182,4203181171,4102977912,3736164937,3501741890,3265478751,3433712980,1106041591,1340463100,1576976609,1408749034,2043211483,2009195472,1708848333,1809054150,832877231,1068351396,766945465,599762354,159417987,126454664,361929877,463180190,2709260871,2943682380,3178106961,3009879386,2572697195,2538681184,2236228733,2336434550,3509871135,3745345300,3441850377,3274667266,3910161971,3877198648,4110568485,4211818798,2597806476,2497604743,2261089178,2295101073,2733856160,2902087851,3202437046,2968011453,3936291284,3835036895,4136440770,4169408201,3535486456,3702665459,3467192302,3231722213,2051518780,1951317047,1716890410,1750902305,1113818384,1282050075,1584504582,1350078989,168810852,67556463,371049330,404016761,841739592,1008918595,775550814,540080725,3969562369,3801332234,4035489047,4269907996,3569255213,3669462566,3366754619,3332740144,2631065433,2463879762,2160117071,2395588676,2767645557,2868897406,3102011747,3069049960,202008497,33778362,270040487,504459436,875451293,975658646,675039627,641025152,2084704233,1917518562,1615861247,1851332852,1147550661,1248802510,1484005843,1451044056,933301370,967311729,733156972,632953703,260388950,25965917,328671808,496906059,1206477858,1239443753,1543208500,1441952575,2144161806,1908694277,1675577880,1842759443,3610369226,3644379585,3408119516,3307916247,4011190502,3776767469,4077384432,4245618683,2809771154,2842737049,3144396420,3043140495,2673705150,2438237621,2203032232,2370213795],A=[0,185469197,370938394,487725847,741876788,657861945,975451694,824852259,1483753576,1400783205,1315723890,1164071807,1950903388,2135319889,1649704518,1767536459,2967507152,3152976349,2801566410,2918353863,2631447780,2547432937,2328143614,2177544179,3901806776,3818836405,4270639778,4118987695,3299409036,3483825537,3535072918,3652904859,2077965243,1893020342,1841768865,1724457132,1474502543,1559041666,1107234197,1257309336,598438867,681933534,901210569,1052338372,261314535,77422314,428819965,310463728,3409685355,3224740454,3710368113,3593056380,3875770207,3960309330,4045380933,4195456072,2471224067,2554718734,2237133081,2388260884,3212035895,3028143674,2842678573,2724322336,4138563181,4255350624,3769721975,3955191162,3667219033,3516619604,3431546947,3347532110,2933734917,2782082824,3099667487,3016697106,2196052529,2313884476,2499348523,2683765030,1179510461,1296297904,1347548327,1533017514,1786102409,1635502980,2087309459,2003294622,507358933,355706840,136428751,53458370,839224033,957055980,605657339,790073846,2373340630,2256028891,2607439820,2422494913,2706270690,2856345839,3075636216,3160175349,3573941694,3725069491,3273267108,3356761769,4181598602,4063242375,4011996048,3828103837,1033297158,915985419,730517276,545572369,296679730,446754879,129166120,213705253,1709610350,1860738147,1945798516,2029293177,1239331162,1120974935,1606591296,1422699085,4148292826,4233094615,3781033664,3931371469,3682191598,3497509347,3446004468,3328955385,2939266226,2755636671,3106780840,2988687269,2198438022,2282195339,2501218972,2652609425,1201765386,1286567175,1371368976,1521706781,1805211710,1620529459,2105887268,1988838185,533804130,350174575,164439672,46346101,870912086,954669403,636813900,788204353,2358957921,2274680428,2592523643,2441661558,2695033685,2880240216,3065962831,3182487618,3572145929,3756299780,3270937875,3388507166,4174560061,4091327024,4006521127,3854606378,1014646705,930369212,711349675,560487590,272786309,457992840,106852767,223377554,1678381017,1862534868,1914052035,2031621326,1211247597,1128014560,1580087799,1428173050,32283319,182621114,401639597,486441376,768917123,651868046,1003007129,818324884,1503449823,1385356242,1333838021,1150208456,1973745387,2125135846,1673061617,1756818940,2970356327,3120694122,2802849917,2887651696,2637442643,2520393566,2334669897,2149987652,3917234703,3799141122,4284502037,4100872472,3309594171,3460984630,3545789473,3629546796,2050466060,1899603969,1814803222,1730525723,1443857720,1560382517,1075025698,1260232239,575138148,692707433,878443390,1062597235,243256656,91341917,409198410,325965383,3403100636,3252238545,3704300486,3620022987,3874428392,3990953189,4042459122,4227665663,2460449204,2578018489,2226875310,2411029155,3198115200,3046200461,2827177882,2743944855],_=[0,218828297,437656594,387781147,875313188,958871085,775562294,590424639,1750626376,1699970625,1917742170,2135253587,1551124588,1367295589,1180849278,1265195639,3501252752,3720081049,3399941250,3350065803,3835484340,3919042237,4270507174,4085369519,3102249176,3051593425,2734591178,2952102595,2361698556,2177869557,2530391278,2614737639,3145456443,3060847922,2708326185,2892417312,2404901663,2187128086,2504130317,2555048196,3542330227,3727205754,3375740769,3292445032,3876557655,3926170974,4246310725,4027744588,1808481195,1723872674,1910319033,2094410160,1608975247,1391201670,1173430173,1224348052,59984867,244860394,428169201,344873464,935293895,984907214,766078933,547512796,1844882806,1627235199,2011214180,2062270317,1507497298,1423022939,1137477952,1321699145,95345982,145085239,532201772,313773861,830661914,1015671571,731183368,648017665,3175501286,2957853679,2807058932,2858115069,2305455554,2220981195,2474404304,2658625497,3575528878,3625268135,3473416636,3254988725,3778151818,3963161475,4213447064,4130281361,3599595085,3683022916,3432737375,3247465558,3802222185,4020912224,4172763771,4122762354,3201631749,3017672716,2764249623,2848461854,2331590177,2280796200,2431590963,2648976442,104699613,188127444,472615631,287343814,840019705,1058709744,671593195,621591778,1852171925,1668212892,1953757831,2037970062,1514790577,1463996600,1080017571,1297403050,3673637356,3623636965,3235995134,3454686199,4007360968,3822090177,4107101658,4190530515,2997825956,3215212461,2830708150,2779915199,2256734592,2340947849,2627016082,2443058075,172466556,122466165,273792366,492483431,1047239e3,861968209,612205898,695634755,1646252340,1863638845,2013908262,1963115311,1446242576,1530455833,1277555970,1093597963,1636604631,1820824798,2073724613,1989249228,1436590835,1487645946,1337376481,1119727848,164948639,81781910,331544205,516552836,1039717051,821288114,669961897,719700128,2973530695,3157750862,2871682645,2787207260,2232435299,2283490410,2667994737,2450346104,3647212047,3564045318,3279033885,3464042516,3980931627,3762502690,4150144569,4199882800,3070356634,3121275539,2904027272,2686254721,2200818878,2384911031,2570832044,2486224549,3747192018,3528626907,3310321856,3359936201,3950355702,3867060991,4049844452,4234721005,1739656202,1790575107,2108100632,1890328081,1402811438,1586903591,1233856572,1149249077,266959938,48394827,369057872,418672217,1002783846,919489135,567498868,752375421,209336225,24197544,376187827,459744698,945164165,895287692,574624663,793451934,1679968233,1764313568,2117360635,1933530610,1343127501,1560637892,1243112415,1192455638,3704280881,3519142200,3336358691,3419915562,3907448597,3857572124,4075877127,4294704398,3029510009,3113855344,2927934315,2744104290,2159976285,2377486676,2594734927,2544078150],I=[0,151849742,303699484,454499602,607398968,758720310,908999204,1059270954,1214797936,1097159550,1517440620,1400849762,1817998408,1699839814,2118541908,2001430874,2429595872,2581445614,2194319100,2345119218,3034881240,3186202582,2801699524,2951971274,3635996816,3518358430,3399679628,3283088770,4237083816,4118925222,4002861748,3885750714,1002142683,850817237,698445255,548169417,529487843,377642221,227885567,77089521,1943217067,2061379749,1640576439,1757691577,1474760595,1592394909,1174215055,1290801793,2875968315,2724642869,3111247143,2960971305,2405426947,2253581325,2638606623,2487810577,3808662347,3926825029,4044981591,4162096729,3342319475,3459953789,3576539503,3693126241,1986918061,2137062819,1685577905,1836772287,1381620373,1532285339,1078185097,1229899655,1040559837,923313619,740276417,621982671,439452389,322734571,137073913,19308535,3871163981,4021308739,4104605777,4255800159,3263785589,3414450555,3499326569,3651041127,2933202493,2815956275,3167684641,3049390895,2330014213,2213296395,2566595609,2448830231,1305906550,1155237496,1607244650,1455525988,1776460110,1626319424,2079897426,1928707164,96392454,213114376,396673818,514443284,562755902,679998e3,865136418,983426092,3708173718,3557504664,3474729866,3323011204,4180808110,4030667424,3945269170,3794078908,2507040230,2623762152,2272556026,2390325492,2975484382,3092726480,2738905026,2857194700,3973773121,3856137295,4274053469,4157467219,3371096953,3252932727,3673476453,3556361835,2763173681,2915017791,3064510765,3215307299,2156299017,2307622919,2459735317,2610011675,2081048481,1963412655,1846563261,1729977011,1480485785,1362321559,1243905413,1126790795,878845905,1030690015,645401037,796197571,274084841,425408743,38544885,188821243,3613494426,3731654548,3313212038,3430322568,4082475170,4200115116,3780097726,3896688048,2668221674,2516901860,2366882550,2216610296,3141400786,2989552604,2837966542,2687165888,1202797690,1320957812,1437280870,1554391400,1669664834,1787304780,1906247262,2022837584,265905162,114585348,499347990,349075736,736970802,585122620,972512814,821712160,2595684844,2478443234,2293045232,2174754046,3196267988,3079546586,2895723464,2777952454,3537852828,3687994002,3234156416,3385345166,4142626212,4293295786,3841024952,3992742070,174567692,57326082,410887952,292596766,777231668,660510266,1011452712,893681702,1108339068,1258480242,1343618912,1494807662,1715193156,1865862730,1948373848,2100090966,2701949495,2818666809,3004591147,3122358053,2235061775,2352307457,2535604243,2653899549,3915653703,3764988233,4219352155,4067639125,3444575871,3294430577,3746175075,3594982253,836553431,953270745,600235211,718002117,367585007,484830689,133361907,251657213,2041877159,1891211689,1806599355,1654886325,1568718495,1418573201,1335535747,1184342925];function R(e){for(var t=[],n=0;n<e.length;n+=4)t.push(e[n]<<24|e[n+1]<<16|e[n+2]<<8|e[n+3]);return t}var C=function(e){if(!(this instanceof C))throw Error("AES must be instanitated with `new`");Object.defineProperty(this,"key",{value:i(e,!0)}),this._prepare()};C.prototype._prepare=function(){var e=l[this.key.length];if(null==e)throw new Error("invalid key size (must be 16, 24 or 32 bytes)");this._Ke=[],this._Kd=[];for(var t=0;t<=e;t++)this._Ke.push([0,0,0,0]),this._Kd.push([0,0,0,0]);var n,r=4*(e+1),i=this.key.length/4,a=R(this.key);for(t=0;t<i;t++)n=t>>2,this._Ke[n][t%4]=a[t],this._Kd[e-n][t%4]=a[t];for(var o,s=0,u=i;u<r;){if(o=a[i-1],a[0]^=f[o>>16&255]<<24^f[o>>8&255]<<16^f[255&o]<<8^f[o>>24&255]^d[s]<<24,s+=1,8!=i)for(t=1;t<i;t++)a[t]^=a[t-1];else{for(t=1;t<i/2;t++)a[t]^=a[t-1];o=a[i/2-1],a[i/2]^=f[255&o]^f[o>>8&255]<<8^f[o>>16&255]<<16^f[o>>24&255]<<24;for(t=i/2+1;t<i;t++)a[t]^=a[t-1]}for(t=0;t<i&&u<r;)c=u>>2,p=u%4,this._Ke[c][p]=a[t],this._Kd[e-c][p]=a[t++],u++}for(var c=1;c<e;c++)for(var p=0;p<4;p++)o=this._Kd[c][p],this._Kd[c][p]=E[o>>24&255]^A[o>>16&255]^_[o>>8&255]^I[255&o]},C.prototype.encrypt=function(e){if(16!=e.length)throw new Error("invalid plaintext size (must be 16 bytes)");for(var t=this._Ke.length-1,n=[0,0,0,0],r=R(e),i=0;i<4;i++)r[i]^=this._Ke[0][i];for(var o=1;o<t;o++){for(i=0;i<4;i++)n[i]=h[r[i]>>24&255]^m[r[(i+1)%4]>>16&255]^y[r[(i+2)%4]>>8&255]^g[255&r[(i+3)%4]]^this._Ke[o][i];r=n.slice()}var s,u=a(16);for(i=0;i<4;i++)s=this._Ke[t][i],u[4*i]=255&(f[r[i]>>24&255]^s>>24),u[4*i+1]=255&(f[r[(i+1)%4]>>16&255]^s>>16),u[4*i+2]=255&(f[r[(i+2)%4]>>8&255]^s>>8),u[4*i+3]=255&(f[255&r[(i+3)%4]]^s);return u},C.prototype.decrypt=function(e){if(16!=e.length)throw new Error("invalid ciphertext size (must be 16 bytes)");for(var t=this._Kd.length-1,n=[0,0,0,0],r=R(e),i=0;i<4;i++)r[i]^=this._Kd[0][i];for(var o=1;o<t;o++){for(i=0;i<4;i++)n[i]=b[r[i]>>24&255]^v[r[(i+3)%4]>>16&255]^T[r[(i+2)%4]>>8&255]^w[255&r[(i+1)%4]]^this._Kd[o][i];r=n.slice()}var s,u=a(16);for(i=0;i<4;i++)s=this._Kd[t][i],u[4*i]=255&(p[r[i]>>24&255]^s>>24),u[4*i+1]=255&(p[r[(i+3)%4]>>16&255]^s>>16),u[4*i+2]=255&(p[r[(i+2)%4]>>8&255]^s>>8),u[4*i+3]=255&(p[255&r[(i+1)%4]]^s);return u};var O=function(e){if(!(this instanceof O))throw Error("AES must be instanitated with `new`");this.description="Electronic Code Block",this.name="ecb",this._aes=new C(e)};O.prototype.encrypt=function(e){if((e=i(e)).length%16!=0)throw new Error("invalid plaintext size (must be multiple of 16 bytes)");for(var t=a(e.length),n=a(16),r=0;r<e.length;r+=16)o(e,n,0,r,r+16),o(n=this._aes.encrypt(n),t,r);return t},O.prototype.decrypt=function(e){if((e=i(e)).length%16!=0)throw new Error("invalid ciphertext size (must be multiple of 16 bytes)");for(var t=a(e.length),n=a(16),r=0;r<e.length;r+=16)o(e,n,0,r,r+16),o(n=this._aes.decrypt(n),t,r);return t};var k=function(e,t){if(!(this instanceof k))throw Error("AES must be instanitated with `new`");if(this.description="Cipher Block Chaining",this.name="cbc",t){if(16!=t.length)throw new Error("invalid initialation vector size (must be 16 bytes)")}else t=a(16);this._lastCipherblock=i(t,!0),this._aes=new C(e)};k.prototype.encrypt=function(e){if((e=i(e)).length%16!=0)throw new Error("invalid plaintext size (must be multiple of 16 bytes)");for(var t=a(e.length),n=a(16),r=0;r<e.length;r+=16){o(e,n,0,r,r+16);for(var s=0;s<16;s++)n[s]^=this._lastCipherblock[s];this._lastCipherblock=this._aes.encrypt(n),o(this._lastCipherblock,t,r)}return t},k.prototype.decrypt=function(e){if((e=i(e)).length%16!=0)throw new Error("invalid ciphertext size (must be multiple of 16 bytes)");for(var t=a(e.length),n=a(16),r=0;r<e.length;r+=16){o(e,n,0,r,r+16),n=this._aes.decrypt(n);for(var s=0;s<16;s++)t[r+s]=n[s]^this._lastCipherblock[s];o(e,this._lastCipherblock,0,r,r+16)}return t};var S=function(e,t,n){if(!(this instanceof S))throw Error("AES must be instanitated with `new`");if(this.description="Cipher Feedback",this.name="cfb",t){if(16!=t.length)throw new Error("invalid initialation vector size (must be 16 size)")}else t=a(16);n||(n=1),this.segmentSize=n,this._shiftRegister=i(t,!0),this._aes=new C(e)};S.prototype.encrypt=function(e){if(e.length%this.segmentSize!=0)throw new Error("invalid plaintext size (must be segmentSize bytes)");for(var t,n=i(e,!0),r=0;r<n.length;r+=this.segmentSize){t=this._aes.encrypt(this._shiftRegister);for(var a=0;a<this.segmentSize;a++)n[r+a]^=t[a];o(this._shiftRegister,this._shiftRegister,0,this.segmentSize),o(n,this._shiftRegister,16-this.segmentSize,r,r+this.segmentSize)}return n},S.prototype.decrypt=function(e){if(e.length%this.segmentSize!=0)throw new Error("invalid ciphertext size (must be segmentSize bytes)");for(var t,n=i(e,!0),r=0;r<n.length;r+=this.segmentSize){t=this._aes.encrypt(this._shiftRegister);for(var a=0;a<this.segmentSize;a++)n[r+a]^=t[a];o(this._shiftRegister,this._shiftRegister,0,this.segmentSize),o(e,this._shiftRegister,16-this.segmentSize,r,r+this.segmentSize)}return n};var N=function(e,t){if(!(this instanceof N))throw Error("AES must be instanitated with `new`");if(this.description="Output Feedback",this.name="ofb",t){if(16!=t.length)throw new Error("invalid initialation vector size (must be 16 bytes)")}else t=a(16);this._lastPrecipher=i(t,!0),this._lastPrecipherIndex=16,this._aes=new C(e)};N.prototype.encrypt=function(e){for(var t=i(e,!0),n=0;n<t.length;n++)16===this._lastPrecipherIndex&&(this._lastPrecipher=this._aes.encrypt(this._lastPrecipher),this._lastPrecipherIndex=0),t[n]^=this._lastPrecipher[this._lastPrecipherIndex++];return t},N.prototype.decrypt=N.prototype.encrypt;var x=function(e){if(!(this instanceof x))throw Error("Counter must be instanitated with `new`");0===e||e||(e=1),"number"==typeof e?(this._counter=a(16),this.setValue(e)):this.setBytes(e)};x.prototype.setValue=function(e){if("number"!=typeof e||parseInt(e)!=e)throw new Error("invalid counter value (must be an integer)");for(var t=15;t>=0;--t)this._counter[t]=e%256,e>>=8},x.prototype.setBytes=function(e){if(16!=(e=i(e,!0)).length)throw new Error("invalid counter bytes size (must be 16 bytes)");this._counter=e},x.prototype.increment=function(){for(var e=15;e>=0;e--){if(255!==this._counter[e]){this._counter[e]++;break}this._counter[e]=0}};var P=function(e,t){if(!(this instanceof P))throw Error("AES must be instanitated with `new`");this.description="Counter",this.name="ctr",t instanceof x||(t=new x(t)),this._counter=t,this._remainingCounter=null,this._remainingCounterIndex=16,this._aes=new C(e)};P.prototype.encrypt=function(e){for(var t=i(e,!0),n=0;n<t.length;n++)16===this._remainingCounterIndex&&(this._remainingCounter=this._aes.encrypt(this._counter._counter),this._remainingCounterIndex=0,this._counter.increment()),t[n]^=this._remainingCounter[this._remainingCounterIndex++];return t},P.prototype.decrypt=P.prototype.encrypt;var M={AES:C,Counter:x,ModeOfOperation:{ecb:O,cbc:k,cfb:S,ofb:N,ctr:P},utils:{hex:c,utf8:u},padding:{pkcs7:{pad:function(e){var t=16-(e=i(e,!0)).length%16,n=a(e.length+t);o(e,n);for(var r=e.length;r<n.length;r++)n[r]=t;return n},strip:function(e){if((e=i(e,!0)).length<16)throw new Error("PKCS#7 invalid length");var t=e[e.length-1];if(t>16)throw new Error("PKCS#7 padding byte out of range");for(var n=e.length-t,r=0;r<t;r++)if(e[n+r]!==t)throw new Error("PKCS#7 invalid padding byte");var s=a(n);return o(e,s,0,0,n),s}}},_arrayTest:{coerceArray:i,createArray:a,copyArray:o}};e.exports=M}()}(Dd);var Fd=Lt(Dd.exports);const Ld="json-wallets/5.7.0";function Ud(e){return"string"==typeof e&&"0x"!==e.substring(0,2)&&(e="0x"+e),sr(e)}function qd(e,t){for(e=String(e);e.length<t;)e="0"+e;return e}function jd(e){return"string"==typeof e?Pa(e,Oa.NFKC):sr(e)}function Gd(e,t){let n=e;const r=t.toLowerCase().split("/");for(let e=0;e<r.length;e++){let t=null;for(const i in n)if(i.toLowerCase()===r[e]){t=n[i];break}if(null===t)return null;n=t}return n}function Hd(e){const t=sr(e);t[6]=15&t[6]|64,t[8]=63&t[8]|128;const n=pr(t);return[n.substring(2,10),n.substring(10,14),n.substring(14,18),n.substring(18,22),n.substring(22,34)].join("-")}const zd=new Zn(Ld);class Wd extends ii{isCrowdsaleAccount(e){return!(!e||!e._isCrowdsaleAccount)}}function Vd(e,t){const n=JSON.parse(e);t=jd(t);const r=$i(Gd(n,"ethaddr")),i=Ud(Gd(n,"encseed"));i&&i.length%16==0||zd.throwArgumentError("invalid encseed","json",e);const a=sr(od(t,t,2e3,32,"sha256")).slice(0,16),o=i.slice(0,16),s=i.slice(16),u=new Fd.ModeOfOperation.cbc(a,o),c=Fd.padding.pkcs7.strip(sr(u.decrypt(s)));let l="";for(let e=0;e<c.length;e++)l+=String.fromCharCode(c[e]);const d=Di(Pa(l));return new Wd({_isCrowdsaleAccount:!0,address:r,privateKey:d})}function Kd(e){let t=null;try{t=JSON.parse(e)}catch(e){return!1}return t.encseed&&t.ethaddr}function Xd(e){let t=null;try{t=JSON.parse(e)}catch(e){return!1}return!(!t.version||parseInt(t.version)!==t.version||3!==parseInt(t.version))}function Jd(e){if(Kd(e))try{return $i(JSON.parse(e).ethaddr)}catch(e){return null}if(Xd(e))try{return $i(JSON.parse(e).address)}catch(e){return null}return null}var Yd={exports:{}};!function(e,t){!function(t){const n=2147483647;function r(e){const t=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]);let n=1779033703,r=3144134277,i=1013904242,a=2773480762,o=1359893119,s=2600822924,u=528734635,c=1541459225;const l=new Uint32Array(64);function d(e){let d=0,f=e.length;for(;f>=64;){let p,h,m,y,g,b=n,v=r,T=i,w=a,E=o,A=s,_=u,I=c;for(h=0;h<16;h++)m=d+4*h,l[h]=(255&e[m])<<24|(255&e[m+1])<<16|(255&e[m+2])<<8|255&e[m+3];for(h=16;h<64;h++)p=l[h-2],y=(p>>>17|p<<15)^(p>>>19|p<<13)^p>>>10,p=l[h-15],g=(p>>>7|p<<25)^(p>>>18|p<<14)^p>>>3,l[h]=(y+l[h-7]|0)+(g+l[h-16]|0)|0;for(h=0;h<64;h++)y=(((E>>>6|E<<26)^(E>>>11|E<<21)^(E>>>25|E<<7))+(E&A^~E&_)|0)+(I+(t[h]+l[h]|0)|0)|0,g=((b>>>2|b<<30)^(b>>>13|b<<19)^(b>>>22|b<<10))+(b&v^b&T^v&T)|0,I=_,_=A,A=E,E=w+y|0,w=T,T=v,v=b,b=y+g|0;n=n+b|0,r=r+v|0,i=i+T|0,a=a+w|0,o=o+E|0,s=s+A|0,u=u+_|0,c=c+I|0,d+=64,f-=64}}d(e);let f,p=e.length%64,h=e.length/536870912|0,m=e.length<<3,y=p<56?56:120,g=e.slice(e.length-p,e.length);for(g.push(128),f=p+1;f<y;f++)g.push(0);return g.push(h>>>24&255),g.push(h>>>16&255),g.push(h>>>8&255),g.push(h>>>0&255),g.push(m>>>24&255),g.push(m>>>16&255),g.push(m>>>8&255),g.push(m>>>0&255),d(g),[n>>>24&255,n>>>16&255,n>>>8&255,n>>>0&255,r>>>24&255,r>>>16&255,r>>>8&255,r>>>0&255,i>>>24&255,i>>>16&255,i>>>8&255,i>>>0&255,a>>>24&255,a>>>16&255,a>>>8&255,a>>>0&255,o>>>24&255,o>>>16&255,o>>>8&255,o>>>0&255,s>>>24&255,s>>>16&255,s>>>8&255,s>>>0&255,u>>>24&255,u>>>16&255,u>>>8&255,u>>>0&255,c>>>24&255,c>>>16&255,c>>>8&255,c>>>0&255]}function i(e,t,n){e=e.length<=64?e:r(e);const i=64+t.length+4,a=new Array(i),o=new Array(64);let s,u=[];for(s=0;s<64;s++)a[s]=54;for(s=0;s<e.length;s++)a[s]^=e[s];for(s=0;s<t.length;s++)a[64+s]=t[s];for(s=i-4;s<i;s++)a[s]=0;for(s=0;s<64;s++)o[s]=92;for(s=0;s<e.length;s++)o[s]^=e[s];function c(){for(let e=i-1;e>=i-4;e--){if(a[e]++,a[e]<=255)return;a[e]=0}}for(;n>=32;)c(),u=u.concat(r(o.concat(r(a)))),n-=32;return n>0&&(c(),u=u.concat(r(o.concat(r(a))).slice(0,n))),u}function a(e,t,n,r,i){let a;for(c(e,16*(2*n-1),i,0,16),a=0;a<2*n;a++)u(e,16*a,i,16),s(i,r),c(i,0,e,t+16*a,16);for(a=0;a<n;a++)c(e,t+2*a*16,e,16*a,16);for(a=0;a<n;a++)c(e,t+16*(2*a+1),e,16*(a+n),16)}function o(e,t){return e<<t|e>>>32-t}function s(e,t){c(e,0,t,0,16);for(let e=8;e>0;e-=2)t[4]^=o(t[0]+t[12],7),t[8]^=o(t[4]+t[0],9),t[12]^=o(t[8]+t[4],13),t[0]^=o(t[12]+t[8],18),t[9]^=o(t[5]+t[1],7),t[13]^=o(t[9]+t[5],9),t[1]^=o(t[13]+t[9],13),t[5]^=o(t[1]+t[13],18),t[14]^=o(t[10]+t[6],7),t[2]^=o(t[14]+t[10],9),t[6]^=o(t[2]+t[14],13),t[10]^=o(t[6]+t[2],18),t[3]^=o(t[15]+t[11],7),t[7]^=o(t[3]+t[15],9),t[11]^=o(t[7]+t[3],13),t[15]^=o(t[11]+t[7],18),t[1]^=o(t[0]+t[3],7),t[2]^=o(t[1]+t[0],9),t[3]^=o(t[2]+t[1],13),t[0]^=o(t[3]+t[2],18),t[6]^=o(t[5]+t[4],7),t[7]^=o(t[6]+t[5],9),t[4]^=o(t[7]+t[6],13),t[5]^=o(t[4]+t[7],18),t[11]^=o(t[10]+t[9],7),t[8]^=o(t[11]+t[10],9),t[9]^=o(t[8]+t[11],13),t[10]^=o(t[9]+t[8],18),t[12]^=o(t[15]+t[14],7),t[13]^=o(t[12]+t[15],9),t[14]^=o(t[13]+t[12],13),t[15]^=o(t[14]+t[13],18);for(let n=0;n<16;++n)e[n]+=t[n]}function u(e,t,n,r){for(let i=0;i<r;i++)n[i]^=e[t+i]}function c(e,t,n,r,i){for(;i--;)n[r++]=e[t++]}function l(e){if(!e||"number"!=typeof e.length)return!1;for(let t=0;t<e.length;t++){const n=e[t];if("number"!=typeof n||n%1||n<0||n>=256)return!1}return!0}function d(e,t){if("number"!=typeof e||e%1)throw new Error("invalid "+t);return e}function f(e,t,r,o,s,f,p){if(r=d(r,"N"),o=d(o,"r"),s=d(s,"p"),f=d(f,"dkLen"),0===r||0!=(r&r-1))throw new Error("N must be power of 2");if(r>n/128/o)throw new Error("N too large");if(o>n/128/s)throw new Error("r too large");if(!l(e))throw new Error("password must be an array or buffer");if(e=Array.prototype.slice.call(e),!l(t))throw new Error("salt must be an array or buffer");t=Array.prototype.slice.call(t);let h=i(e,t,128*s*o);const m=new Uint32Array(32*s*o);for(let e=0;e<m.length;e++){const t=4*e;m[e]=(255&h[t+3])<<24|(255&h[t+2])<<16|(255&h[t+1])<<8|(255&h[t+0])<<0}const y=new Uint32Array(64*o),g=new Uint32Array(32*o*r),b=32*o,v=new Uint32Array(16),T=new Uint32Array(16),w=s*r*2;let E,A,_=0,I=null,R=!1,C=0,O=0;const k=p?parseInt(1e3/o):4294967295,S="undefined"!=typeof setImmediate?setImmediate:setTimeout,N=function(){if(R)return p(new Error("cancelled"),_/w);let t;switch(C){case 0:A=32*O*o,c(m,A,y,0,b),C=1,E=0;case 1:t=r-E,t>k&&(t=k);for(let e=0;e<t;e++)c(y,0,g,(E+e)*b,b),a(y,b,o,v,T);if(E+=t,_+=t,p){const e=parseInt(1e3*_/w);if(e!==I){if(R=p(null,_/w),R)break;I=e}}if(E<r)break;E=0,C=2;case 2:t=r-E,t>k&&(t=k);for(let e=0;e<t;e++){const e=y[16*(2*o-1)]&r-1;u(g,e*b,y,b),a(y,b,o,v,T)}if(E+=t,_+=t,p){const e=parseInt(1e3*_/w);if(e!==I){if(R=p(null,_/w),R)break;I=e}}if(E<r)break;if(c(y,0,m,A,b),O++,O<s){C=0;break}h=[];for(let e=0;e<m.length;e++)h.push(m[e]>>0&255),h.push(m[e]>>8&255),h.push(m[e]>>16&255),h.push(m[e]>>24&255);const n=i(e,h,f);return p&&p(null,1,n),n}p&&S(N)};if(!p)for(;;){const e=N();if(null!=e)return e}N()}const p={scrypt:function(e,t,n,r,i,a,o){return new Promise((function(s,u){let c=0;o&&o(0),f(e,t,n,r,i,a,(function(e,t,n){if(e)u(e);else if(n)o&&1!==c&&o(1),s(new Uint8Array(n));else if(o&&t!==c)return c=t,o(t)}))}))},syncScrypt:function(e,t,n,r,i,a){return new Uint8Array(f(e,t,n,r,i,a))}};e.exports=p}()}(Yd);var Qd=Lt(Yd.exports),$d=window&&window.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};const Zd=new Zn(Ld);function ef(e){return null!=e&&e.mnemonic&&e.mnemonic.phrase}class tf extends ii{isKeystoreAccount(e){return!(!e||!e._isKeystoreAccount)}}function nf(e,t){const n=Ud(Gd(e,"crypto/ciphertext"));if(pr(Di(ur([t.slice(16,32),n]))).substring(2)!==Gd(e,"crypto/mac").toLowerCase())throw new Error("invalid password");const r=function(e,t,n){if("aes-128-ctr"===Gd(e,"crypto/cipher")){const r=Ud(Gd(e,"crypto/cipherparams/iv")),i=new Fd.Counter(r);return sr(new Fd.ModeOfOperation.ctr(t,i).decrypt(n))}return null}(e,t.slice(0,16),n);r||Zd.throwError("unsupported cipher",Zn.errors.UNSUPPORTED_OPERATION,{operation:"decrypt"});const i=t.slice(32,64),a=Tl(r);if(e.address){let t=e.address.toLowerCase();if("0x"!==t.substring(0,2)&&(t="0x"+t),$i(t)!==a)throw new Error("address mismatch")}const o={_isKeystoreAccount:!0,address:a,privateKey:pr(r)};if("0.1"===Gd(e,"x-ethers/version")){const t=Ud(Gd(e,"x-ethers/mnemonicCiphertext")),n=Ud(Gd(e,"x-ethers/mnemonicCounter")),r=new Fd.Counter(n),a=new Fd.ModeOfOperation.ctr(i,r),s=Gd(e,"x-ethers/path")||Ed,u=Gd(e,"x-ethers/locale")||"en",c=sr(a.decrypt(t));try{const e=Rd(c,u),t=Ad.fromMnemonic(e,null,u).derivePath(s);if(t.privateKey!=o.privateKey)throw new Error("mnemonic mismatch");o.mnemonic=t.mnemonic}catch(e){if(e.code!==Zn.errors.INVALID_ARGUMENT||"wordlist"!==e.argument)throw e}}return new tf(o)}function rf(e,t,n,r,i){return sr(od(e,t,n,r,i))}function af(e,t,n,r,i){return Promise.resolve(rf(e,t,n,r,i))}function of(e,t,n,r,i){const a=jd(t),o=Gd(e,"crypto/kdf");if(o&&"string"==typeof o){const t=function(e,t){return Zd.throwArgumentError("invalid key-derivation function parameters",e,t)};if("scrypt"===o.toLowerCase()){const n=Ud(Gd(e,"crypto/kdfparams/salt")),s=parseInt(Gd(e,"crypto/kdfparams/n")),u=parseInt(Gd(e,"crypto/kdfparams/r")),c=parseInt(Gd(e,"crypto/kdfparams/p"));s&&u&&c||t("kdf",o),0!=(s&s-1)&&t("N",s);const l=parseInt(Gd(e,"crypto/kdfparams/dklen"));return 32!==l&&t("dklen",l),r(a,n,s,u,c,64,i)}if("pbkdf2"===o.toLowerCase()){const r=Ud(Gd(e,"crypto/kdfparams/salt"));let i=null;const o=Gd(e,"crypto/kdfparams/prf");"hmac-sha256"===o?i="sha256":"hmac-sha512"===o?i="sha512":t("prf",o);const s=parseInt(Gd(e,"crypto/kdfparams/c")),u=parseInt(Gd(e,"crypto/kdfparams/dklen"));return 32!==u&&t("dklen",u),n(a,r,s,u,i)}}return Zd.throwArgumentError("unsupported key-derivation function","kdf",o)}function sf(e,t){const n=JSON.parse(e);return nf(n,of(n,t,rf,Qd.syncScrypt))}function uf(e,t,n){return $d(this,void 0,void 0,(function*(){const r=JSON.parse(e);return nf(r,yield of(r,t,af,Qd.scrypt,n))}))}function cf(e,t,n,r){try{if($i(e.address)!==Tl(e.privateKey))throw new Error("address/privateKey mismatch");if(ef(e)){const t=e.mnemonic;if(Ad.fromMnemonic(t.phrase,null,t.locale).derivePath(t.path||Ed).privateKey!=e.privateKey)throw new Error("mnemonic mismatch")}}catch(e){return Promise.reject(e)}"function"!=typeof n||r||(r=n,n={}),n||(n={});const i=sr(e.privateKey),a=jd(t);let o=null,s=null,u=null;if(ef(e)){const t=e.mnemonic;o=sr(Id(t.phrase,t.locale||"en")),s=t.path||Ed,u=t.locale||"en"}let c=n.client;c||(c="ethers.js");let l=null;l=n.salt?sr(n.salt):Pd(32);let d=null;if(n.iv){if(d=sr(n.iv),16!==d.length)throw new Error("invalid iv")}else d=Pd(16);let f=null;if(n.uuid){if(f=sr(n.uuid),16!==f.length)throw new Error("invalid uuid")}else f=Pd(16);let p=1<<17,h=8,m=1;return n.scrypt&&(n.scrypt.N&&(p=n.scrypt.N),n.scrypt.r&&(h=n.scrypt.r),n.scrypt.p&&(m=n.scrypt.p)),Qd.scrypt(a,l,p,h,m,64,r).then((t=>{const n=(t=sr(t)).slice(0,16),r=t.slice(16,32),a=t.slice(32,64),y=new Fd.Counter(d),g=sr(new Fd.ModeOfOperation.ctr(n,y).encrypt(i)),b=Di(ur([r,g])),v={address:e.address.substring(2).toLowerCase(),id:Hd(f),version:3,crypto:{cipher:"aes-128-ctr",cipherparams:{iv:pr(d).substring(2)},ciphertext:pr(g).substring(2),kdf:"scrypt",kdfparams:{salt:pr(l).substring(2),n:p,dklen:32,p:m,r:h},mac:b.substring(2)}};if(o){const e=Pd(16),t=new Fd.Counter(e),n=sr(new Fd.ModeOfOperation.ctr(a,t).encrypt(o)),r=new Date,i=r.getUTCFullYear()+"-"+qd(r.getUTCMonth()+1,2)+"-"+qd(r.getUTCDate(),2)+"T"+qd(r.getUTCHours(),2)+"-"+qd(r.getUTCMinutes(),2)+"-"+qd(r.getUTCSeconds(),2)+".0Z";v["x-ethers"]={client:c,gethFilename:"UTC--"+i+"--"+v.address,mnemonicCounter:pr(e).substring(2),mnemonicCiphertext:pr(n).substring(2),path:s,locale:u,version:"0.1"}}return JSON.stringify(v)}))}function lf(e,t,n){if(Kd(e)){n&&n(0);const r=Vd(e,t);return n&&n(1),Promise.resolve(r)}return Xd(e)?uf(e,t,n):Promise.reject(new Error("invalid JSON wallet"))}function df(e,t){if(Kd(e))return Vd(e,t);if(Xd(e))return sf(e,t);throw new Error("invalid JSON wallet")}var ff=Object.freeze({__proto__:null,decryptCrowdsale:Vd,decryptJsonWallet:lf,decryptJsonWalletSync:df,decryptKeystore:uf,decryptKeystoreSync:sf,encryptKeystore:cf,getJsonWalletAddress:Jd,isCrowdsaleWallet:Kd,isKeystoreWallet:Xd});var pf=window&&window.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};const hf=new Zn("wallet/5.7.0");class mf extends Es{constructor(e,t){if(super(),null!=(n=e)&&dr(n.privateKey,32)&&null!=n.address){const t=new ll(e.privateKey);if(Jr(this,"_signingKey",(()=>t)),Jr(this,"address",Tl(this.publicKey)),this.address!==$i(e.address)&&hf.throwArgumentError("privateKey/address mismatch","privateKey","[REDACTED]"),function(e){const t=e.mnemonic;return t&&t.phrase}(e)){const t=e.mnemonic;Jr(this,"_mnemonic",(()=>({phrase:t.phrase,path:t.path||Ed,locale:t.locale||"en"})));const n=this.mnemonic;Tl(Ad.fromMnemonic(n.phrase,null,n.locale).derivePath(n.path).privateKey)!==this.address&&hf.throwArgumentError("mnemonic/address mismatch","privateKey","[REDACTED]")}else Jr(this,"_mnemonic",(()=>null))}else{if(ll.isSigningKey(e))"secp256k1"!==e.curve&&hf.throwArgumentError("unsupported curve; must be secp256k1","privateKey","[REDACTED]"),Jr(this,"_signingKey",(()=>e));else{"string"==typeof e&&e.match(/^[0-9a-f]*$/i)&&64===e.length&&(e="0x"+e);const t=new ll(e);Jr(this,"_signingKey",(()=>t))}Jr(this,"_mnemonic",(()=>null)),Jr(this,"address",Tl(this.publicKey))}var n;t&&!gs.isProvider(t)&&hf.throwArgumentError("invalid provider","provider",t),Jr(this,"provider",t||null)}get mnemonic(){return this._mnemonic()}get privateKey(){return this._signingKey().privateKey}get publicKey(){return this._signingKey().publicKey}getAddress(){return Promise.resolve(this.address)}connect(e){return new mf(this,e)}signTransaction(e){return Qr(e).then((t=>{null!=t.from&&($i(t.from)!==this.address&&hf.throwArgumentError("transaction from address mismatch","transaction.from",e.from),delete t.from);const n=this._signingKey().signDigest(Di(Ol(t)));return Ol(t,n)}))}signMessage(e){return pf(this,void 0,void 0,(function*(){return wr(this._signingKey().signDigest(jo(e)))}))}_signTypedData(e,t,n){return pf(this,void 0,void 0,(function*(){const r=yield rs.resolveNames(e,t,n,(e=>(null==this.provider&&hf.throwError("cannot resolve ENS names without a provider",Zn.errors.UNSUPPORTED_OPERATION,{operation:"resolveName",value:e}),this.provider.resolveName(e))));return wr(this._signingKey().signDigest(rs.hash(r.domain,t,r.value)))}))}encrypt(e,t,n){if("function"!=typeof t||n||(n=t,t={}),n&&"function"!=typeof n)throw new Error("invalid callback");return t||(t={}),cf(this,e,t,n)}static createRandom(e){let t=Pd(16);e||(e={}),e.extraEntropy&&(t=sr(mr(Di(ur([t,e.extraEntropy])),0,16)));const n=Rd(t,e.locale);return mf.fromMnemonic(n,e.path,e.locale)}static fromEncryptedJson(e,t,n){return lf(e,t,n).then((e=>new mf(e)))}static fromEncryptedJsonSync(e,t){return new mf(df(e,t))}static fromMnemonic(e,t,n){return t||(t=Ed),new mf(Ad.fromMnemonic(e,null,n).derivePath(t))}}function yf(e,t){return wl(jo(e),t)}function gf(e,t,n,r){return wl(rs.hash(e,t,n),r)}var bf=Object.freeze({__proto__:null,Wallet:mf,verifyMessage:yf,verifyTypedData:gf});const vf=new Zn("networks/5.7.1");function Tf(e){const t=function(t,n){null==n&&(n={});const r=[];if(t.InfuraProvider&&"-"!==n.infura)try{r.push(new t.InfuraProvider(e,n.infura))}catch(e){}if(t.EtherscanProvider&&"-"!==n.etherscan)try{r.push(new t.EtherscanProvider(e,n.etherscan))}catch(e){}if(t.AlchemyProvider&&"-"!==n.alchemy)try{r.push(new t.AlchemyProvider(e,n.alchemy))}catch(e){}if(t.PocketProvider&&"-"!==n.pocket){const i=["goerli","ropsten","rinkeby","sepolia"];try{const a=new t.PocketProvider(e,n.pocket);a.network&&-1===i.indexOf(a.network.name)&&r.push(a)}catch(e){}}if(t.CloudflareProvider&&"-"!==n.cloudflare)try{r.push(new t.CloudflareProvider(e))}catch(e){}if(t.AnkrProvider&&"-"!==n.ankr)try{const i=["ropsten"],a=new t.AnkrProvider(e,n.ankr);a.network&&-1===i.indexOf(a.network.name)&&r.push(a)}catch(e){}if(0===r.length)return null;if(t.FallbackProvider){let i=1;return null!=n.quorum?i=n.quorum:"homestead"===e&&(i=2),new t.FallbackProvider(r,i)}return r[0]};return t.renetwork=function(e){return Tf(e)},t}function wf(e,t){const n=function(n,r){return n.JsonRpcProvider?new n.JsonRpcProvider(e,t):null};return n.renetwork=function(t){return wf(e,t)},n}const Ef={chainId:1,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"homestead",_defaultProvider:Tf("homestead")},Af={chainId:3,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"ropsten",_defaultProvider:Tf("ropsten")},_f={chainId:63,name:"classicMordor",_defaultProvider:wf("https://www.ethercluster.com/mordor","classicMordor")},If={unspecified:{chainId:0,name:"unspecified"},homestead:Ef,mainnet:Ef,morden:{chainId:2,name:"morden"},ropsten:Af,testnet:Af,rinkeby:{chainId:4,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"rinkeby",_defaultProvider:Tf("rinkeby")},kovan:{chainId:42,name:"kovan",_defaultProvider:Tf("kovan")},goerli:{chainId:5,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"goerli",_defaultProvider:Tf("goerli")},kintsugi:{chainId:1337702,name:"kintsugi"},sepolia:{chainId:11155111,name:"sepolia",_defaultProvider:Tf("sepolia")},classic:{chainId:61,name:"classic",_defaultProvider:wf("https://www.ethercluster.com/etc","classic")},classicMorden:{chainId:62,name:"classicMorden"},classicMordor:_f,classicTestnet:_f,classicKotti:{chainId:6,name:"classicKotti",_defaultProvider:wf("https://www.ethercluster.com/kotti","classicKotti")},xdai:{chainId:100,name:"xdai"},matic:{chainId:137,name:"matic",_defaultProvider:Tf("matic")},maticmum:{chainId:80001,name:"maticmum"},optimism:{chainId:10,name:"optimism",_defaultProvider:Tf("optimism")},"optimism-kovan":{chainId:69,name:"optimism-kovan"},"optimism-goerli":{chainId:420,name:"optimism-goerli"},arbitrum:{chainId:42161,name:"arbitrum"},"arbitrum-rinkeby":{chainId:421611,name:"arbitrum-rinkeby"},"arbitrum-goerli":{chainId:421613,name:"arbitrum-goerli"},bnb:{chainId:56,name:"bnb"},bnbt:{chainId:97,name:"bnbt"}};function Rf(e){if(null==e)return null;if("number"==typeof e){for(const t in If){const n=If[t];if(n.chainId===e)return{name:n.name,chainId:n.chainId,ensAddress:n.ensAddress||null,_defaultProvider:n._defaultProvider||null}}return{chainId:e,name:"unknown"}}if("string"==typeof e){const t=If[e];return null==t?null:{name:t.name,chainId:t.chainId,ensAddress:t.ensAddress,_defaultProvider:t._defaultProvider||null}}const t=If[e.name];if(!t)return"number"!=typeof e.chainId&&vf.throwArgumentError("invalid network chainId","network",e),e;0!==e.chainId&&e.chainId!==t.chainId&&vf.throwArgumentError("network chainId mismatch","network",e);let n=e._defaultProvider||null;var r;return null==n&&t._defaultProvider&&(n=(r=t._defaultProvider)&&"function"==typeof r.renetwork?t._defaultProvider.renetwork(e):t._defaultProvider),{name:e.name,chainId:t.chainId,ensAddress:e.ensAddress||t.ensAddress||null,_defaultProvider:n}}var Cf=window&&window.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};function Of(e,t){return Cf(this,void 0,void 0,(function*(){null==t&&(t={});const n={method:t.method||"GET",headers:t.headers||{},body:t.body||void 0};if(!0!==t.skipFetchSetup&&(n.mode="cors",n.cache="no-cache",n.credentials="same-origin",n.redirect="follow",n.referrer="client"),null!=t.fetchOptions){const e=t.fetchOptions;e.mode&&(n.mode=e.mode),e.cache&&(n.cache=e.cache),e.credentials&&(n.credentials=e.credentials),e.redirect&&(n.redirect=e.redirect),e.referrer&&(n.referrer=e.referrer)}const r=yield fetch(e,n),i=yield r.arrayBuffer(),a={};return r.headers.forEach?r.headers.forEach(((e,t)=>{a[t.toLowerCase()]=e})):r.headers.keys().forEach((e=>{a[e.toLowerCase()]=r.headers.get(e)})),{headers:a,statusCode:r.status,statusMessage:r.statusText,body:sr(new Uint8Array(i))}}))}var kf=window&&window.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};const Sf=new Zn("web/5.7.1");function Nf(e){return new Promise((t=>{setTimeout(t,e)}))}function xf(e,t){if(null==e)return null;if("string"==typeof e)return e;if(ir(e)){if(t&&("text"===t.split("/")[0]||"application/json"===t.split(";")[0].trim()))try{return Fa(e)}catch(e){}return pr(e)}return e}function Pf(e,t,n){const r="object"==typeof e&&null!=e.throttleLimit?e.throttleLimit:12;Sf.assertArgument(r>0&&r%1==0,"invalid connection throttle limit","connection.throttleLimit",r);const i="object"==typeof e?e.throttleCallback:null,a="object"==typeof e&&"number"==typeof e.throttleSlotInterval?e.throttleSlotInterval:100;Sf.assertArgument(a>0&&a%1==0,"invalid connection throttle slot interval","connection.throttleSlotInterval",a);const o="object"==typeof e&&!!e.errorPassThrough,s={};let u=null;const c={method:"GET"};let l=!1,d=12e4;if("string"==typeof e)u=e;else if("object"==typeof e){if(null!=e&&null!=e.url||Sf.throwArgumentError("missing URL","connection.url",e),u=e.url,"number"==typeof e.timeout&&e.timeout>0&&(d=e.timeout),e.headers)for(const t in e.headers)s[t.toLowerCase()]={key:t,value:String(e.headers[t])},["if-none-match","if-modified-since"].indexOf(t.toLowerCase())>=0&&(l=!0);if(c.allowGzip=!!e.allowGzip,null!=e.user&&null!=e.password){"https:"!==u.substring(0,6)&&!0!==e.allowInsecureAuthentication&&Sf.throwError("basic authentication requires a secure https url",Zn.errors.INVALID_ARGUMENT,{argument:"url",url:u,user:e.user,password:"[REDACTED]"});const t=e.user+":"+e.password;s.authorization={key:"Authorization",value:"Basic "+co(Pa(t))}}null!=e.skipFetchSetup&&(c.skipFetchSetup=!!e.skipFetchSetup),null!=e.fetchOptions&&(c.fetchOptions=Zr(e.fetchOptions))}const f=new RegExp("^data:([^;:]*)?(;base64)?,(.*)$","i"),p=u?u.match(f):null;if(p)try{const e={statusCode:200,statusMessage:"OK",headers:{"content-type":p[1]||"text/plain"},body:p[2]?uo(p[3]):(h=p[3],Pa(h.replace(/%([0-9a-f][0-9a-f])/gi,((e,t)=>String.fromCharCode(parseInt(t,16))))))};let t=e.body;return n&&(t=n(e.body,e)),Promise.resolve(t)}catch(e){Sf.throwError("processing response error",Zn.errors.SERVER_ERROR,{body:xf(p[1],p[2]),error:e,requestBody:null,requestMethod:"GET",url:u})}var h;t&&(c.method="POST",c.body=t,null==s["content-type"]&&(s["content-type"]={key:"Content-Type",value:"application/octet-stream"}),null==s["content-length"]&&(s["content-length"]={key:"Content-Length",value:String(t.length)}));const m={};Object.keys(s).forEach((e=>{const t=s[e];m[t.key]=t.value})),c.headers=m;const y=function(){let e=null;return{promise:new Promise((function(t,n){d&&(e=setTimeout((()=>{null!=e&&(e=null,n(Sf.makeError("timeout",Zn.errors.TIMEOUT,{requestBody:xf(c.body,m["content-type"]),requestMethod:c.method,timeout:d,url:u})))}),d))})),cancel:function(){null!=e&&(clearTimeout(e),e=null)}}}(),g=function(){return kf(this,void 0,void 0,(function*(){for(let e=0;e<r;e++){let t=null;try{if(t=yield Of(u,c),e<r)if(301===t.statusCode||302===t.statusCode){const e=t.headers.location||"";if("GET"===c.method&&e.match(/^https:/)){u=t.headers.location;continue}}else if(429===t.statusCode){let n=!0;if(i&&(n=yield i(e,u)),n){let n=0;const r=t.headers["retry-after"];n="string"==typeof r&&r.match(/^[1-9][0-9]*$/)?1e3*parseInt(r):a*parseInt(String(Math.random()*Math.pow(2,e))),yield Nf(n);continue}}}catch(e){t=e.response,null==t&&(y.cancel(),Sf.throwError("missing response",Zn.errors.SERVER_ERROR,{requestBody:xf(c.body,m["content-type"]),requestMethod:c.method,serverError:e,url:u}))}let s=t.body;if(l&&304===t.statusCode?s=null:!o&&(t.statusCode<200||t.statusCode>=300)&&(y.cancel(),Sf.throwError("bad response",Zn.errors.SERVER_ERROR,{status:t.statusCode,headers:t.headers,body:xf(s,t.headers?t.headers["content-type"]:null),requestBody:xf(c.body,m["content-type"]),requestMethod:c.method,url:u})),n)try{const e=yield n(s,t);return y.cancel(),e}catch(n){if(n.throttleRetry&&e<r){let t=!0;if(i&&(t=yield i(e,u)),t){const t=a*parseInt(String(Math.random()*Math.pow(2,e)));yield Nf(t);continue}}y.cancel(),Sf.throwError("processing response error",Zn.errors.SERVER_ERROR,{body:xf(s,t.headers?t.headers["content-type"]:null),error:n,requestBody:xf(c.body,m["content-type"]),requestMethod:c.method,url:u})}return y.cancel(),s}return Sf.throwError("failed response",Zn.errors.SERVER_ERROR,{requestBody:xf(c.body,m["content-type"]),requestMethod:c.method,url:u})}))}();return Promise.race([y.promise,g])}function Mf(e,t,n){let r=null;if(null!=t){r=Pa(t);const n="string"==typeof e?{url:e}:Zr(e);if(n.headers){0!==Object.keys(n.headers).filter((e=>"content-type"===e.toLowerCase())).length||(n.headers=Zr(n.headers),n.headers["content-type"]="application/json")}else n.headers={"content-type":"application/json"};e=n}return Pf(e,r,((e,t)=>{let r=null;if(null!=e)try{r=JSON.parse(Fa(e))}catch(t){Sf.throwError("invalid JSON",Zn.errors.SERVER_ERROR,{body:e,error:t})}return n&&(r=n(r,t)),r}))}function Bf(e,t){return t||(t={}),null==(t=Zr(t)).floor&&(t.floor=0),null==t.ceiling&&(t.ceiling=1e4),null==t.interval&&(t.interval=250),new Promise((function(n,r){let i=null,a=!1;const o=()=>!a&&(a=!0,i&&clearTimeout(i),!0);t.timeout&&(i=setTimeout((()=>{o()&&r(new Error("timeout"))}),t.timeout));const s=t.retryLimit;let u=0;!function i(){return e().then((function(e){if(void 0!==e)o()&&n(e);else if(t.oncePoll)t.oncePoll.once("poll",i);else if(t.onceBlock)t.onceBlock.once("block",i);else if(!a){if(u++,u>s)return void(o()&&r(new Error("retry limit reached")));let e=t.interval*parseInt(String(Math.random()*Math.pow(2,u)));e<t.floor&&(e=t.floor),e>t.ceiling&&(e=t.ceiling),setTimeout(i,e)}return null}),(function(e){o()&&r(e)}))}()}))}for(var Df=Object.freeze({__proto__:null,_fetchData:Pf,fetchJson:Mf,poll:Bf}),Ff="qpzry9x8gf2tvdw0s3jn54khce6mua7l",Lf={},Uf=0;Uf<32;Uf++){var qf=Ff.charAt(Uf);if(void 0!==Lf[qf])throw new TypeError(qf+" is ambiguous");Lf[qf]=Uf}function jf(e){var t=e>>25;return(33554431&e)<<5^996825010&-(t>>0&1)^642813549&-(t>>1&1)^513874426&-(t>>2&1)^1027748829&-(t>>3&1)^705979059&-(t>>4&1)}function Gf(e){for(var t=1,n=0;n<e.length;++n){var r=e.charCodeAt(n);if(r<33||r>126)return"Invalid prefix ("+e+")";t=jf(t)^r>>5}for(t=jf(t),n=0;n<e.length;++n){var i=e.charCodeAt(n);t=jf(t)^31&i}return t}function Hf(e,t){if(t=t||90,e.length<8)return e+" too short";if(e.length>t)return"Exceeds length limit";var n=e.toLowerCase(),r=e.toUpperCase();if(e!==n&&e!==r)return"Mixed-case string "+e;var i=(e=n).lastIndexOf("1");if(-1===i)return"No separator character for "+e;if(0===i)return"Missing prefix for "+e;var a=e.slice(0,i),o=e.slice(i+1);if(o.length<6)return"Data too short";var s=Gf(a);if("string"==typeof s)return s;for(var u=[],c=0;c<o.length;++c){var l=o.charAt(c),d=Lf[l];if(void 0===d)return"Unknown character "+l;s=jf(s)^d,c+6>=o.length||u.push(d)}return 1!==s?"Invalid checksum for "+e:{prefix:a,words:u}}function zf(e,t,n,r){for(var i=0,a=0,o=(1<<n)-1,s=[],u=0;u<e.length;++u)for(i=i<<t|e[u],a+=t;a>=n;)a-=n,s.push(i>>a&o);if(r)a>0&&s.push(i<<n-a&o);else{if(a>=t)return"Excess padding";if(i<<n-a&o)return"Non-zero padding"}return s}var Wf={decodeUnsafe:function(){var e=Hf.apply(null,arguments);if("object"==typeof e)return e},decode:function(e){var t=Hf.apply(null,arguments);if("object"==typeof t)return t;throw new Error(t)},encode:function(e,t,n){if(n=n||90,e.length+7+t.length>n)throw new TypeError("Exceeds length limit");var r=Gf(e=e.toLowerCase());if("string"==typeof r)throw new Error(r);for(var i=e+"1",a=0;a<t.length;++a){var o=t[a];if(o>>5!=0)throw new Error("Non 5-bit word");r=jf(r)^o,i+=Ff.charAt(o)}for(a=0;a<6;++a)r=jf(r);for(r^=1,a=0;a<6;++a){i+=Ff.charAt(r>>5*(5-a)&31)}return i},toWordsUnsafe:function(e){var t=zf(e,8,5,!0);if(Array.isArray(t))return t},toWords:function(e){var t=zf(e,8,5,!0);if(Array.isArray(t))return t;throw new Error(t)},fromWordsUnsafe:function(e){var t=zf(e,5,8,!1);if(Array.isArray(t))return t},fromWords:function(e){var t=zf(e,5,8,!1);if(Array.isArray(t))return t;throw new Error(t)}},Vf=Lt(Wf);const Kf="providers/5.7.2",Xf=new Zn(Kf);class Jf{constructor(){this.formats=this.getDefaultFormats()}getDefaultFormats(){const e={},t=this.address.bind(this),n=this.bigNumber.bind(this),r=this.blockTag.bind(this),i=this.data.bind(this),a=this.hash.bind(this),o=this.hex.bind(this),s=this.number.bind(this),u=this.type.bind(this);return e.transaction={hash:a,type:u,accessList:Jf.allowNull(this.accessList.bind(this),null),blockHash:Jf.allowNull(a,null),blockNumber:Jf.allowNull(s,null),transactionIndex:Jf.allowNull(s,null),confirmations:Jf.allowNull(s,null),from:t,gasPrice:Jf.allowNull(n),maxPriorityFeePerGas:Jf.allowNull(n),maxFeePerGas:Jf.allowNull(n),gasLimit:n,to:Jf.allowNull(t,null),value:n,nonce:s,data:i,r:Jf.allowNull(this.uint256),s:Jf.allowNull(this.uint256),v:Jf.allowNull(s),creates:Jf.allowNull(t,null),raw:Jf.allowNull(i)},e.transactionRequest={from:Jf.allowNull(t),nonce:Jf.allowNull(s),gasLimit:Jf.allowNull(n),gasPrice:Jf.allowNull(n),maxPriorityFeePerGas:Jf.allowNull(n),maxFeePerGas:Jf.allowNull(n),to:Jf.allowNull(t),value:Jf.allowNull(n),data:Jf.allowNull((e=>this.data(e,!0))),type:Jf.allowNull(s),accessList:Jf.allowNull(this.accessList.bind(this),null)},e.receiptLog={transactionIndex:s,blockNumber:s,transactionHash:a,address:t,topics:Jf.arrayOf(a),data:i,logIndex:s,blockHash:a},e.receipt={to:Jf.allowNull(this.address,null),from:Jf.allowNull(this.address,null),contractAddress:Jf.allowNull(t,null),transactionIndex:s,root:Jf.allowNull(o),gasUsed:n,logsBloom:Jf.allowNull(i),blockHash:a,transactionHash:a,logs:Jf.arrayOf(this.receiptLog.bind(this)),blockNumber:s,confirmations:Jf.allowNull(s,null),cumulativeGasUsed:n,effectiveGasPrice:Jf.allowNull(n),status:Jf.allowNull(s),type:u},e.block={hash:Jf.allowNull(a),parentHash:a,number:s,timestamp:s,nonce:Jf.allowNull(o),difficulty:this.difficulty.bind(this),gasLimit:n,gasUsed:n,miner:Jf.allowNull(t),extraData:i,transactions:Jf.allowNull(Jf.arrayOf(a)),baseFeePerGas:Jf.allowNull(n)},e.blockWithTransactions=Zr(e.block),e.blockWithTransactions.transactions=Jf.allowNull(Jf.arrayOf(this.transactionResponse.bind(this))),e.filter={fromBlock:Jf.allowNull(r,void 0),toBlock:Jf.allowNull(r,void 0),blockHash:Jf.allowNull(a,void 0),address:Jf.allowNull(t,void 0),topics:Jf.allowNull(this.topics.bind(this),void 0)},e.filterLog={blockNumber:Jf.allowNull(s),blockHash:Jf.allowNull(a),transactionIndex:s,removed:Jf.allowNull(this.boolean.bind(this)),address:t,data:Jf.allowFalsish(i,"0x"),topics:Jf.arrayOf(a),transactionHash:a,logIndex:s},e}accessList(e){return _l(e||[])}number(e){return"0x"===e?0:kr.from(e).toNumber()}type(e){return"0x"===e||null==e?0:kr.from(e).toNumber()}bigNumber(e){return kr.from(e)}boolean(e){if("boolean"==typeof e)return e;if("string"==typeof e){if("true"===(e=e.toLowerCase()))return!0;if("false"===e)return!1}throw new Error("invalid boolean - "+e)}hex(e,t){return"string"==typeof e&&(t||"0x"===e.substring(0,2)||(e="0x"+e),dr(e))?e.toLowerCase():Xf.throwArgumentError("invalid hash","value",e)}data(e,t){const n=this.hex(e,t);if(n.length%2!=0)throw new Error("invalid data; odd-length - "+e);return n}address(e){return $i(e)}callAddress(e){if(!dr(e,32))return null;const t=$i(mr(e,12));return t===ma?null:t}contractAddress(e){return ta(e)}blockTag(e){if(null==e)return"latest";if("earliest"===e)return"0x0";switch(e){case"earliest":return"0x0";case"latest":case"pending":case"safe":case"finalized":return e}if("number"==typeof e||dr(e))return gr(e);throw new Error("invalid blockTag")}hash(e,t){const n=this.hex(e,t);return 32!==hr(n)?Xf.throwArgumentError("invalid hash","value",e):n}difficulty(e){if(null==e)return null;const t=kr.from(e);try{return t.toNumber()}catch(e){}return null}uint256(e){if(!dr(e))throw new Error("invalid uint256");return vr(e,32)}_block(e,t){null!=e.author&&null==e.miner&&(e.miner=e.author);const n=null!=e._difficulty?e._difficulty:e.difficulty,r=Jf.check(t,e);return r._difficulty=null==n?null:kr.from(n),r}block(e){return this._block(e,this.formats.block)}blockWithTransactions(e){return this._block(e,this.formats.blockWithTransactions)}transactionRequest(e){return Jf.check(this.formats.transactionRequest,e)}transactionResponse(e){null!=e.gas&&null==e.gasLimit&&(e.gasLimit=e.gas),e.to&&kr.from(e.to).isZero()&&(e.to="0x0000000000000000000000000000000000000000"),null!=e.input&&null==e.data&&(e.data=e.input),null==e.to&&null==e.creates&&(e.creates=this.contractAddress(e)),1!==e.type&&2!==e.type||null!=e.accessList||(e.accessList=[]);const t=Jf.check(this.formats.transaction,e);if(null!=e.chainId){let n=e.chainId;dr(n)&&(n=kr.from(n).toNumber()),t.chainId=n}else{let n=e.networkId;null==n&&null==t.v&&(n=e.chainId),dr(n)&&(n=kr.from(n).toNumber()),"number"!=typeof n&&null!=t.v&&(n=(t.v-35)/2,n<0&&(n=0),n=parseInt(n)),"number"!=typeof n&&(n=0),t.chainId=n}return t.blockHash&&"x"===t.blockHash.replace(/0/g,"")&&(t.blockHash=null),t}transaction(e){return Sl(e)}receiptLog(e){return Jf.check(this.formats.receiptLog,e)}receipt(e){const t=Jf.check(this.formats.receipt,e);if(null!=t.root)if(t.root.length<=4){const e=kr.from(t.root).toNumber();0===e||1===e?(null!=t.status&&t.status!==e&&Xf.throwArgumentError("alt-root-status/status mismatch","value",{root:t.root,status:t.status}),t.status=e,delete t.root):Xf.throwArgumentError("invalid alt-root-status","value.root",t.root)}else 66!==t.root.length&&Xf.throwArgumentError("invalid root hash","value.root",t.root);return null!=t.status&&(t.byzantium=!0),t}topics(e){return Array.isArray(e)?e.map((e=>this.topics(e))):null!=e?this.hash(e,!0):null}filter(e){return Jf.check(this.formats.filter,e)}filterLog(e){return Jf.check(this.formats.filterLog,e)}static check(e,t){const n={};for(const r in e)try{const i=e[r](t[r]);void 0!==i&&(n[r]=i)}catch(e){throw e.checkKey=r,e.checkValue=t[r],e}return n}static allowNull(e,t){return function(n){return null==n?t:e(n)}}static allowFalsish(e,t){return function(n){return n?e(n):t}}static arrayOf(e){return function(t){if(!Array.isArray(t))throw new Error("not an array");const n=[];return t.forEach((function(t){n.push(e(t))})),n}}}function Yf(e){return e&&"function"==typeof e.isCommunityResource}function Qf(e){return Yf(e)&&e.isCommunityResource()}let $f=!1;function Zf(){$f||($f=!0,console.log("========= NOTICE ========="),console.log("Request-Rate Exceeded (this message will not be repeated)"),console.log(""),console.log("The default API keys for each service are provided as a highly-throttled,"),console.log("community resource for low-traffic projects and early prototyping."),console.log(""),console.log("While your application will continue to function, we highly recommended"),console.log("signing up for your own API keys to improve performance, increase your"),console.log("request rate/limit and enable other perks, such as metrics and advanced APIs."),console.log(""),console.log("For more details: https://docs.ethers.io/api-keys/"),console.log("=========================="))}var ep=window&&window.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};const tp=new Zn(Kf);function np(e){return null==e?"null":(32!==hr(e)&&tp.throwArgumentError("invalid topic","topic",e),e.toLowerCase())}function rp(e){for(e=e.slice();e.length>0&&null==e[e.length-1];)e.pop();return e.map((e=>{if(Array.isArray(e)){const t={};e.forEach((e=>{t[np(e)]=!0}));const n=Object.keys(t);return n.sort(),n.join("|")}return np(e)})).join("&")}function ip(e){if("string"==typeof e){if(32===hr(e=e.toLowerCase()))return"tx:"+e;if(-1===e.indexOf(":"))return e}else{if(Array.isArray(e))return"filter:*:"+rp(e);if(ys.isForkEvent(e))throw tp.warn("not implemented"),new Error("not implemented");if(e&&"object"==typeof e)return"filter:"+(e.address||"*")+":"+rp(e.topics||[])}throw new Error("invalid event - "+e)}function ap(){return(new Date).getTime()}function op(e){return new Promise((t=>{setTimeout(t,e)}))}const sp=["block","network","pending","poll"];class up{constructor(e,t,n){Jr(this,"tag",e),Jr(this,"listener",t),Jr(this,"once",n),this._lastBlockNumber=-2,this._inflight=!1}get event(){switch(this.type){case"tx":return this.hash;case"filter":return this.filter}return this.tag}get type(){return this.tag.split(":")[0]}get hash(){const e=this.tag.split(":");return"tx"!==e[0]?null:e[1]}get filter(){const e=this.tag.split(":");if("filter"!==e[0])return null;const t=e[1],n=""===(r=e[2])?[]:r.split(/&/g).map((e=>{if(""===e)return[];const t=e.split("|").map((e=>"null"===e?null:e));return 1===t.length?t[0]:t}));var r;const i={};return n.length>0&&(i.topics=n),t&&"*"!==t&&(i.address=t),i}pollable(){return this.tag.indexOf(":")>=0||sp.indexOf(this.tag)>=0}}const cp={0:{symbol:"btc",p2pkh:0,p2sh:5,prefix:"bc"},2:{symbol:"ltc",p2pkh:48,p2sh:50,prefix:"ltc"},3:{symbol:"doge",p2pkh:30,p2sh:22},60:{symbol:"eth",ilk:"eth"},61:{symbol:"etc",ilk:"eth"},700:{symbol:"xdai",ilk:"eth"}};function lp(e){return vr(kr.from(e).toHexString(),32)}function dp(e){return Ql.encode(ur([e,mr(nd(nd(e)),0,4)]))}const fp=new RegExp("^(ipfs)://(.*)$","i"),pp=[new RegExp("^(https)://(.*)$","i"),new RegExp("^(data):(.*)$","i"),fp,new RegExp("^eip155:[0-9]+/(erc[0-9]+):(.*)$","i")];function hp(e,t){try{return Fa(mp(e,t))}catch(e){}return null}function mp(e,t){if("0x"===e)return null;const n=kr.from(mr(e,t,t+32)).toNumber(),r=kr.from(mr(e,n,n+32)).toNumber();return mr(e,n+32,n+32+r)}function yp(e){return e.match(/^ipfs:\/\/ipfs\//i)?e=e.substring(12):e.match(/^ipfs:\/\//i)?e=e.substring(7):tp.throwArgumentError("unsupported IPFS format","link",e),`https://gateway.ipfs.io/ipfs/${e}`}function gp(e){const t=sr(e);if(t.length>32)throw new Error("internal; should not happen");const n=new Uint8Array(32);return n.set(t,32-t.length),n}function bp(e){if(e.length%32==0)return e;const t=new Uint8Array(32*Math.ceil(e.length/32));return t.set(e),t}function vp(e){const t=[];let n=0;for(let r=0;r<e.length;r++)t.push(null),n+=32;for(let r=0;r<e.length;r++){const i=sr(e[r]);t[r]=gp(n),t.push(gp(i.length)),t.push(bp(i)),n+=32+32*Math.ceil(i.length/32)}return yr(t)}class Tp{constructor(e,t,n,r){Jr(this,"provider",e),Jr(this,"name",n),Jr(this,"address",e.formatter.address(t)),Jr(this,"_resolvedAddress",r)}supportsWildcard(){return this._supportsEip2544||(this._supportsEip2544=this.provider.call({to:this.address,data:"0x01ffc9a79061b92300000000000000000000000000000000000000000000000000000000"}).then((e=>kr.from(e).eq(1))).catch((e=>{if(e.code===Zn.errors.CALL_EXCEPTION)return!1;throw this._supportsEip2544=null,e}))),this._supportsEip2544}_fetch(e,t){return ep(this,void 0,void 0,(function*(){const n={to:this.address,ccipReadEnabled:!0,data:yr([e,Lo(this.name),t||"0x"])};let r=!1;(yield this.supportsWildcard())&&(r=!0,n.data=yr(["0x9061b923",vp([Uo(this.name),n.data])]));try{let e=yield this.provider.call(n);return sr(e).length%32==4&&tp.throwError("resolver threw error",Zn.errors.CALL_EXCEPTION,{transaction:n,data:e}),r&&(e=mp(e,0)),e}catch(e){if(e.code===Zn.errors.CALL_EXCEPTION)return null;throw e}}))}_fetchBytes(e,t){return ep(this,void 0,void 0,(function*(){const n=yield this._fetch(e,t);return null!=n?mp(n,0):null}))}_getAddress(e,t){const n=cp[String(e)];if(null==n&&tp.throwError(`unsupported coin type: ${e}`,Zn.errors.UNSUPPORTED_OPERATION,{operation:`getAddress(${e})`}),"eth"===n.ilk)return this.provider.formatter.address(t);const r=sr(t);if(null!=n.p2pkh){const e=t.match(/^0x76a9([0-9a-f][0-9a-f])([0-9a-f]*)88ac$/);if(e){const t=parseInt(e[1],16);if(e[2].length===2*t&&t>=1&&t<=75)return dp(ur([[n.p2pkh],"0x"+e[2]]))}}if(null!=n.p2sh){const e=t.match(/^0xa9([0-9a-f][0-9a-f])([0-9a-f]*)87$/);if(e){const t=parseInt(e[1],16);if(e[2].length===2*t&&t>=1&&t<=75)return dp(ur([[n.p2sh],"0x"+e[2]]))}}if(null!=n.prefix){const e=r[1];let t=r[0];if(0===t?20!==e&&32!==e&&(t=-1):t=-1,t>=0&&r.length===2+e&&e>=1&&e<=75){const e=Vf.toWords(r.slice(2));return e.unshift(t),Vf.encode(n.prefix,e)}}return null}getAddress(e){return ep(this,void 0,void 0,(function*(){if(null==e&&(e=60),60===e)try{const e=yield this._fetch("0x3b3b57de");return"0x"===e||e===_a?null:this.provider.formatter.callAddress(e)}catch(e){if(e.code===Zn.errors.CALL_EXCEPTION)return null;throw e}const t=yield this._fetchBytes("0xf1cb7e06",lp(e));if(null==t||"0x"===t)return null;const n=this._getAddress(e,t);return null==n&&tp.throwError("invalid or unsupported coin data",Zn.errors.UNSUPPORTED_OPERATION,{operation:`getAddress(${e})`,coinType:e,data:t}),n}))}getAvatar(){return ep(this,void 0,void 0,(function*(){const e=[{type:"name",content:this.name}];try{const t=yield this.getText("avatar");if(null==t)return null;for(let n=0;n<pp.length;n++){const r=t.match(pp[n]);if(null==r)continue;const i=r[1].toLowerCase();switch(i){case"https":return e.push({type:"url",content:t}),{linkage:e,url:t};case"data":return e.push({type:"data",content:t}),{linkage:e,url:t};case"ipfs":return e.push({type:"ipfs",content:t}),{linkage:e,url:yp(t)};case"erc721":case"erc1155":{const n="erc721"===i?"0xc87b56dd":"0x0e89341c";e.push({type:i,content:t});const a=this._resolvedAddress||(yield this.getAddress()),o=(r[2]||"").split("/");if(2!==o.length)return null;const s=yield this.provider.formatter.address(o[0]),u=vr(kr.from(o[1]).toHexString(),32);if("erc721"===i){const t=this.provider.formatter.callAddress(yield this.provider.call({to:s,data:yr(["0x6352211e",u])}));if(a!==t)return null;e.push({type:"owner",content:t})}else if("erc1155"===i){const t=kr.from(yield this.provider.call({to:s,data:yr(["0x00fdd58e",vr(a,32),u])}));if(t.isZero())return null;e.push({type:"balance",content:t.toString()})}const c={to:this.provider.formatter.address(o[0]),data:yr([n,u])};let l=hp(yield this.provider.call(c),0);if(null==l)return null;e.push({type:"metadata-url-base",content:l}),"erc1155"===i&&(l=l.replace("{id}",u.substring(2)),e.push({type:"metadata-url-expanded",content:l})),l.match(/^ipfs:/i)&&(l=yp(l)),e.push({type:"metadata-url",content:l});const d=yield Mf(l);if(!d)return null;e.push({type:"metadata",content:JSON.stringify(d)});let f=d.image;if("string"!=typeof f)return null;if(f.match(/^(https:\/\/|data:)/i));else{if(null==f.match(fp))return null;e.push({type:"url-ipfs",content:f}),f=yp(f)}return e.push({type:"url",content:f}),{linkage:e,url:f}}}}}catch(e){}return null}))}getContentHash(){return ep(this,void 0,void 0,(function*(){const e=yield this._fetchBytes("0xbc1c58d1");if(null==e||"0x"===e)return null;const t=e.match(/^0xe3010170(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/);if(t){const e=parseInt(t[3],16);if(t[4].length===2*e)return"ipfs://"+Ql.encode("0x"+t[1])}const n=e.match(/^0xe5010172(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/);if(n){const e=parseInt(n[3],16);if(n[4].length===2*e)return"ipns://"+Ql.encode("0x"+n[1])}const r=e.match(/^0xe40101fa011b20([0-9a-f]*)$/);if(r&&64===r[1].length)return"bzz://"+r[1];const i=e.match(/^0x90b2c605([0-9a-f]*)$/);if(i&&68===i[1].length){const e={"=":"","+":"-","/":"_"};return"sia://"+co("0x"+i[1]).replace(/[=+\/]/g,(t=>e[t]))}return tp.throwError("invalid or unsupported content hash data",Zn.errors.UNSUPPORTED_OPERATION,{operation:"getContentHash()",data:e})}))}getText(e){return ep(this,void 0,void 0,(function*(){let t=Pa(e);t=ur([lp(64),lp(t.length),t]),t.length%32!=0&&(t=ur([t,vr("0x",32-e.length%32)]));const n=yield this._fetchBytes("0x59d1d43c",pr(t));return null==n||"0x"===n?null:Fa(n)}))}}let wp=null,Ep=1;class Ap extends gs{constructor(e){if(super(),this._events=[],this._emitted={block:-2},this.disableCcipRead=!1,this.formatter=new.target.getFormatter(),Jr(this,"anyNetwork","any"===e),this.anyNetwork&&(e=this.detectNetwork()),e instanceof Promise)this._networkPromise=e,e.catch((e=>{})),this._ready().catch((e=>{}));else{const t=Yr(new.target,"getNetwork")(e);t?(Jr(this,"_network",t),this.emit("network",t,null)):tp.throwArgumentError("invalid network","network",e)}this._maxInternalBlockNumber=-1024,this._lastBlockNumber=-2,this._maxFilterBlockRange=10,this._pollingInterval=4e3,this._fastQueryDate=0}_ready(){return ep(this,void 0,void 0,(function*(){if(null==this._network){let e=null;if(this._networkPromise)try{e=yield this._networkPromise}catch(e){}null==e&&(e=yield this.detectNetwork()),e||tp.throwError("no network detected",Zn.errors.UNKNOWN_ERROR,{}),null==this._network&&(this.anyNetwork?this._network=e:Jr(this,"_network",e),this.emit("network",e,null))}return this._network}))}get ready(){return Bf((()=>this._ready().then((e=>e),(e=>{if(e.code!==Zn.errors.NETWORK_ERROR||"noNetwork"!==e.event)throw e}))))}static getFormatter(){return null==wp&&(wp=new Jf),wp}static getNetwork(e){return Rf(null==e?"homestead":e)}ccipReadFetch(e,t,n){return ep(this,void 0,void 0,(function*(){if(this.disableCcipRead||0===n.length)return null;const r=e.to.toLowerCase(),i=t.toLowerCase(),a=[];for(let e=0;e<n.length;e++){const t=n[e],o=t.replace("{sender}",r).replace("{data}",i),s=t.indexOf("{data}")>=0?null:JSON.stringify({data:i,sender:r}),u=yield Mf({url:o,errorPassThrough:!0},s,((e,t)=>(e.status=t.statusCode,e)));if(u.data)return u.data;const c=u.message||"unknown error";if(u.status>=400&&u.status<500)return tp.throwError(`response not found during CCIP fetch: ${c}`,Zn.errors.SERVER_ERROR,{url:t,errorMessage:c});a.push(c)}return tp.throwError(`error encountered during CCIP fetch: ${a.map((e=>JSON.stringify(e))).join(", ")}`,Zn.errors.SERVER_ERROR,{urls:n,errorMessages:a})}))}_getInternalBlockNumber(e){return ep(this,void 0,void 0,(function*(){if(yield this._ready(),e>0)for(;this._internalBlockNumber;){const t=this._internalBlockNumber;try{const n=yield t;if(ap()-n.respTime<=e)return n.blockNumber;break}catch(e){if(this._internalBlockNumber===t)break}}const t=ap(),n=Qr({blockNumber:this.perform("getBlockNumber",{}),networkError:this.getNetwork().then((e=>null),(e=>e))}).then((({blockNumber:e,networkError:r})=>{if(r)throw this._internalBlockNumber===n&&(this._internalBlockNumber=null),r;const i=ap();return(e=kr.from(e).toNumber())<this._maxInternalBlockNumber&&(e=this._maxInternalBlockNumber),this._maxInternalBlockNumber=e,this._setFastBlockNumber(e),{blockNumber:e,reqTime:t,respTime:i}}));return this._internalBlockNumber=n,n.catch((e=>{this._internalBlockNumber===n&&(this._internalBlockNumber=null)})),(yield n).blockNumber}))}poll(){return ep(this,void 0,void 0,(function*(){const e=Ep++,t=[];let n=null;try{n=yield this._getInternalBlockNumber(100+this.pollingInterval/2)}catch(e){return void this.emit("error",e)}if(this._setFastBlockNumber(n),this.emit("poll",e,n),n!==this._lastBlockNumber){if(-2===this._emitted.block&&(this._emitted.block=n-1),Math.abs(this._emitted.block-n)>1e3)tp.warn(`network block skew detected; skipping block events (emitted=${this._emitted.block} blockNumber${n})`),this.emit("error",tp.makeError("network block skew detected",Zn.errors.NETWORK_ERROR,{blockNumber:n,event:"blockSkew",previousBlockNumber:this._emitted.block})),this.emit("block",n);else for(let e=this._emitted.block+1;e<=n;e++)this.emit("block",e);this._emitted.block!==n&&(this._emitted.block=n,Object.keys(this._emitted).forEach((e=>{if("block"===e)return;const t=this._emitted[e];"pending"!==t&&n-t>12&&delete this._emitted[e]}))),-2===this._lastBlockNumber&&(this._lastBlockNumber=n-1),this._events.forEach((e=>{switch(e.type){case"tx":{const n=e.hash;let r=this.getTransactionReceipt(n).then((e=>e&&null!=e.blockNumber?(this._emitted["t:"+n]=e.blockNumber,this.emit(n,e),null):null)).catch((e=>{this.emit("error",e)}));t.push(r);break}case"filter":if(!e._inflight){e._inflight=!0,-2===e._lastBlockNumber&&(e._lastBlockNumber=n-1);const r=e.filter;r.fromBlock=e._lastBlockNumber+1,r.toBlock=n;const i=r.toBlock-this._maxFilterBlockRange;i>r.fromBlock&&(r.fromBlock=i),r.fromBlock<0&&(r.fromBlock=0);const a=this.getLogs(r).then((t=>{e._inflight=!1,0!==t.length&&t.forEach((t=>{t.blockNumber>e._lastBlockNumber&&(e._lastBlockNumber=t.blockNumber),this._emitted["b:"+t.blockHash]=t.blockNumber,this._emitted["t:"+t.transactionHash]=t.blockNumber,this.emit(r,t)}))})).catch((t=>{this.emit("error",t),e._inflight=!1}));t.push(a)}}})),this._lastBlockNumber=n,Promise.all(t).then((()=>{this.emit("didPoll",e)})).catch((e=>{this.emit("error",e)}))}else this.emit("didPoll",e)}))}resetEventsBlock(e){this._lastBlockNumber=e-1,this.polling&&this.poll()}get network(){return this._network}detectNetwork(){return ep(this,void 0,void 0,(function*(){return tp.throwError("provider does not support network detection",Zn.errors.UNSUPPORTED_OPERATION,{operation:"provider.detectNetwork"})}))}getNetwork(){return ep(this,void 0,void 0,(function*(){const e=yield this._ready(),t=yield this.detectNetwork();if(e.chainId!==t.chainId){if(this.anyNetwork)return this._network=t,this._lastBlockNumber=-2,this._fastBlockNumber=null,this._fastBlockNumberPromise=null,this._fastQueryDate=0,this._emitted.block=-2,this._maxInternalBlockNumber=-1024,this._internalBlockNumber=null,this.emit("network",t,e),yield op(0),this._network;const n=tp.makeError("underlying network changed",Zn.errors.NETWORK_ERROR,{event:"changed",network:e,detectedNetwork:t});throw this.emit("error",n),n}return e}))}get blockNumber(){return this._getInternalBlockNumber(100+this.pollingInterval/2).then((e=>{this._setFastBlockNumber(e)}),(e=>{})),null!=this._fastBlockNumber?this._fastBlockNumber:-1}get polling(){return null!=this._poller}set polling(e){e&&!this._poller?(this._poller=setInterval((()=>{this.poll()}),this.pollingInterval),this._bootstrapPoll||(this._bootstrapPoll=setTimeout((()=>{this.poll(),this._bootstrapPoll=setTimeout((()=>{this._poller||this.poll(),this._bootstrapPoll=null}),this.pollingInterval)}),0))):!e&&this._poller&&(clearInterval(this._poller),this._poller=null)}get pollingInterval(){return this._pollingInterval}set pollingInterval(e){if("number"!=typeof e||e<=0||parseInt(String(e))!=e)throw new Error("invalid polling interval");this._pollingInterval=e,this._poller&&(clearInterval(this._poller),this._poller=setInterval((()=>{this.poll()}),this._pollingInterval))}_getFastBlockNumber(){const e=ap();return e-this._fastQueryDate>2*this._pollingInterval&&(this._fastQueryDate=e,this._fastBlockNumberPromise=this.getBlockNumber().then((e=>((null==this._fastBlockNumber||e>this._fastBlockNumber)&&(this._fastBlockNumber=e),this._fastBlockNumber)))),this._fastBlockNumberPromise}_setFastBlockNumber(e){null!=this._fastBlockNumber&&e<this._fastBlockNumber||(this._fastQueryDate=ap(),(null==this._fastBlockNumber||e>this._fastBlockNumber)&&(this._fastBlockNumber=e,this._fastBlockNumberPromise=Promise.resolve(e)))}waitForTransaction(e,t,n){return ep(this,void 0,void 0,(function*(){return this._waitForTransaction(e,null==t?1:t,n||0,null)}))}_waitForTransaction(e,t,n,r){return ep(this,void 0,void 0,(function*(){const i=yield this.getTransactionReceipt(e);return(i?i.confirmations:0)>=t?i:new Promise(((i,a)=>{const o=[];let s=!1;const u=function(){return!!s||(s=!0,o.forEach((e=>{e()})),!1)},c=e=>{e.confirmations<t||u()||i(e)};if(this.on(e,c),o.push((()=>{this.removeListener(e,c)})),r){let n=r.startBlock,i=null;const c=o=>ep(this,void 0,void 0,(function*(){s||(yield op(1e3),this.getTransactionCount(r.from).then((l=>ep(this,void 0,void 0,(function*(){if(!s){if(l<=r.nonce)n=o;else{{const t=yield this.getTransaction(e);if(t&&null!=t.blockNumber)return}for(null==i&&(i=n-3,i<r.startBlock&&(i=r.startBlock));i<=o;){if(s)return;const n=yield this.getBlockWithTransactions(i);for(let i=0;i<n.transactions.length;i++){const o=n.transactions[i];if(o.hash===e)return;if(o.from===r.from&&o.nonce===r.nonce){if(s)return;const n=yield this.waitForTransaction(o.hash,t);if(u())return;let i="replaced";return o.data===r.data&&o.to===r.to&&o.value.eq(r.value)?i="repriced":"0x"===o.data&&o.from===o.to&&o.value.isZero()&&(i="cancelled"),void a(tp.makeError("transaction was replaced",Zn.errors.TRANSACTION_REPLACED,{cancelled:"replaced"===i||"cancelled"===i,reason:i,replacement:this._wrapTransaction(o),hash:e,receipt:n}))}}i++}}s||this.once("block",c)}}))),(e=>{s||this.once("block",c)})))}));if(s)return;this.once("block",c),o.push((()=>{this.removeListener("block",c)}))}if("number"==typeof n&&n>0){const e=setTimeout((()=>{u()||a(tp.makeError("timeout exceeded",Zn.errors.TIMEOUT,{timeout:n}))}),n);e.unref&&e.unref(),o.push((()=>{clearTimeout(e)}))}}))}))}getBlockNumber(){return ep(this,void 0,void 0,(function*(){return this._getInternalBlockNumber(0)}))}getGasPrice(){return ep(this,void 0,void 0,(function*(){yield this.getNetwork();const e=yield this.perform("getGasPrice",{});try{return kr.from(e)}catch(t){return tp.throwError("bad result from backend",Zn.errors.SERVER_ERROR,{method:"getGasPrice",result:e,error:t})}}))}getBalance(e,t){return ep(this,void 0,void 0,(function*(){yield this.getNetwork();const n=yield Qr({address:this._getAddress(e),blockTag:this._getBlockTag(t)}),r=yield this.perform("getBalance",n);try{return kr.from(r)}catch(e){return tp.throwError("bad result from backend",Zn.errors.SERVER_ERROR,{method:"getBalance",params:n,result:r,error:e})}}))}getTransactionCount(e,t){return ep(this,void 0,void 0,(function*(){yield this.getNetwork();const n=yield Qr({address:this._getAddress(e),blockTag:this._getBlockTag(t)}),r=yield this.perform("getTransactionCount",n);try{return kr.from(r).toNumber()}catch(e){return tp.throwError("bad result from backend",Zn.errors.SERVER_ERROR,{method:"getTransactionCount",params:n,result:r,error:e})}}))}getCode(e,t){return ep(this,void 0,void 0,(function*(){yield this.getNetwork();const n=yield Qr({address:this._getAddress(e),blockTag:this._getBlockTag(t)}),r=yield this.perform("getCode",n);try{return pr(r)}catch(e){return tp.throwError("bad result from backend",Zn.errors.SERVER_ERROR,{method:"getCode",params:n,result:r,error:e})}}))}getStorageAt(e,t,n){return ep(this,void 0,void 0,(function*(){yield this.getNetwork();const r=yield Qr({address:this._getAddress(e),blockTag:this._getBlockTag(n),position:Promise.resolve(t).then((e=>gr(e)))}),i=yield this.perform("getStorageAt",r);try{return pr(i)}catch(e){return tp.throwError("bad result from backend",Zn.errors.SERVER_ERROR,{method:"getStorageAt",params:r,result:i,error:e})}}))}_wrapTransaction(e,t,n){if(null!=t&&32!==hr(t))throw new Error("invalid response - sendTransaction");const r=e;return null!=t&&e.hash!==t&&tp.throwError("Transaction hash mismatch from Provider.sendTransaction.",Zn.errors.UNKNOWN_ERROR,{expectedHash:e.hash,returnedHash:t}),r.wait=(t,r)=>ep(this,void 0,void 0,(function*(){let i;null==t&&(t=1),null==r&&(r=0),0!==t&&null!=n&&(i={data:e.data,from:e.from,nonce:e.nonce,to:e.to,value:e.value,startBlock:n});const a=yield this._waitForTransaction(e.hash,t,r,i);return null==a&&0===t?null:(this._emitted["t:"+e.hash]=a.blockNumber,0===a.status&&tp.throwError("transaction failed",Zn.errors.CALL_EXCEPTION,{transactionHash:e.hash,transaction:e,receipt:a}),a)})),r}sendTransaction(e){return ep(this,void 0,void 0,(function*(){yield this.getNetwork();const t=yield Promise.resolve(e).then((e=>pr(e))),n=this.formatter.transaction(e);null==n.confirmations&&(n.confirmations=0);const r=yield this._getInternalBlockNumber(100+2*this.pollingInterval);try{const e=yield this.perform("sendTransaction",{signedTransaction:t});return this._wrapTransaction(n,e,r)}catch(e){throw e.transaction=n,e.transactionHash=n.hash,e}}))}_getTransactionRequest(e){return ep(this,void 0,void 0,(function*(){const t=yield e,n={};return["from","to"].forEach((e=>{null!=t[e]&&(n[e]=Promise.resolve(t[e]).then((e=>e?this._getAddress(e):null)))})),["gasLimit","gasPrice","maxFeePerGas","maxPriorityFeePerGas","value"].forEach((e=>{null!=t[e]&&(n[e]=Promise.resolve(t[e]).then((e=>e?kr.from(e):null)))})),["type"].forEach((e=>{null!=t[e]&&(n[e]=Promise.resolve(t[e]).then((e=>null!=e?e:null)))})),t.accessList&&(n.accessList=this.formatter.accessList(t.accessList)),["data"].forEach((e=>{null!=t[e]&&(n[e]=Promise.resolve(t[e]).then((e=>e?pr(e):null)))})),this.formatter.transactionRequest(yield Qr(n))}))}_getFilter(e){return ep(this,void 0,void 0,(function*(){e=yield e;const t={};return null!=e.address&&(t.address=this._getAddress(e.address)),["blockHash","topics"].forEach((n=>{null!=e[n]&&(t[n]=e[n])})),["fromBlock","toBlock"].forEach((n=>{null!=e[n]&&(t[n]=this._getBlockTag(e[n]))})),this.formatter.filter(yield Qr(t))}))}_call(e,t,n){return ep(this,void 0,void 0,(function*(){n>=10&&tp.throwError("CCIP read exceeded maximum redirections",Zn.errors.SERVER_ERROR,{redirects:n,transaction:e});const r=e.to,i=yield this.perform("call",{transaction:e,blockTag:t});if(n>=0&&"latest"===t&&null!=r&&"0x556f1830"===i.substring(0,10)&&hr(i)%32==4)try{const a=mr(i,4),o=mr(a,0,32);kr.from(o).eq(r)||tp.throwError("CCIP Read sender did not match",Zn.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:e,data:i});const s=[],u=kr.from(mr(a,32,64)).toNumber(),c=kr.from(mr(a,u,u+32)).toNumber(),l=mr(a,u+32);for(let t=0;t<c;t++){const n=hp(l,32*t);null==n&&tp.throwError("CCIP Read contained corrupt URL string",Zn.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:e,data:i}),s.push(n)}const d=mp(a,64);kr.from(mr(a,100,128)).isZero()||tp.throwError("CCIP Read callback selector included junk",Zn.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:e,data:i});const f=mr(a,96,100),p=mp(a,128),h=yield this.ccipReadFetch(e,d,s);null==h&&tp.throwError("CCIP Read disabled or provided no URLs",Zn.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:e,data:i});const m={to:r,data:yr([f,vp([h,p])])};return this._call(m,t,n+1)}catch(e){if(e.code===Zn.errors.SERVER_ERROR)throw e}try{return pr(i)}catch(n){return tp.throwError("bad result from backend",Zn.errors.SERVER_ERROR,{method:"call",params:{transaction:e,blockTag:t},result:i,error:n})}}))}call(e,t){return ep(this,void 0,void 0,(function*(){yield this.getNetwork();const n=yield Qr({transaction:this._getTransactionRequest(e),blockTag:this._getBlockTag(t),ccipReadEnabled:Promise.resolve(e.ccipReadEnabled)});return this._call(n.transaction,n.blockTag,n.ccipReadEnabled?0:-1)}))}estimateGas(e){return ep(this,void 0,void 0,(function*(){yield this.getNetwork();const t=yield Qr({transaction:this._getTransactionRequest(e)}),n=yield this.perform("estimateGas",t);try{return kr.from(n)}catch(e){return tp.throwError("bad result from backend",Zn.errors.SERVER_ERROR,{method:"estimateGas",params:t,result:n,error:e})}}))}_getAddress(e){return ep(this,void 0,void 0,(function*(){"string"!=typeof(e=yield e)&&tp.throwArgumentError("invalid address or ENS name","name",e);const t=yield this.resolveName(e);return null==t&&tp.throwError("ENS name not configured",Zn.errors.UNSUPPORTED_OPERATION,{operation:`resolveName(${JSON.stringify(e)})`}),t}))}_getBlock(e,t){return ep(this,void 0,void 0,(function*(){yield this.getNetwork(),e=yield e;let n=-128;const r={includeTransactions:!!t};if(dr(e,32))r.blockHash=e;else try{r.blockTag=yield this._getBlockTag(e),dr(r.blockTag)&&(n=parseInt(r.blockTag.substring(2),16))}catch(t){tp.throwArgumentError("invalid block hash or block tag","blockHashOrBlockTag",e)}return Bf((()=>ep(this,void 0,void 0,(function*(){const e=yield this.perform("getBlock",r);if(null==e)return null!=r.blockHash&&null==this._emitted["b:"+r.blockHash]||null!=r.blockTag&&n>this._emitted.block?null:void 0;if(t){let t=null;for(let n=0;n<e.transactions.length;n++){const r=e.transactions[n];if(null==r.blockNumber)r.confirmations=0;else if(null==r.confirmations){null==t&&(t=yield this._getInternalBlockNumber(100+2*this.pollingInterval));let e=t-r.blockNumber+1;e<=0&&(e=1),r.confirmations=e}}const n=this.formatter.blockWithTransactions(e);return n.transactions=n.transactions.map((e=>this._wrapTransaction(e))),n}return this.formatter.block(e)}))),{oncePoll:this})}))}getBlock(e){return this._getBlock(e,!1)}getBlockWithTransactions(e){return this._getBlock(e,!0)}getTransaction(e){return ep(this,void 0,void 0,(function*(){yield this.getNetwork(),e=yield e;const t={transactionHash:this.formatter.hash(e,!0)};return Bf((()=>ep(this,void 0,void 0,(function*(){const n=yield this.perform("getTransaction",t);if(null==n)return null==this._emitted["t:"+e]?null:void 0;const r=this.formatter.transactionResponse(n);if(null==r.blockNumber)r.confirmations=0;else if(null==r.confirmations){let e=(yield this._getInternalBlockNumber(100+2*this.pollingInterval))-r.blockNumber+1;e<=0&&(e=1),r.confirmations=e}return this._wrapTransaction(r)}))),{oncePoll:this})}))}getTransactionReceipt(e){return ep(this,void 0,void 0,(function*(){yield this.getNetwork(),e=yield e;const t={transactionHash:this.formatter.hash(e,!0)};return Bf((()=>ep(this,void 0,void 0,(function*(){const n=yield this.perform("getTransactionReceipt",t);if(null==n)return null==this._emitted["t:"+e]?null:void 0;if(null==n.blockHash)return;const r=this.formatter.receipt(n);if(null==r.blockNumber)r.confirmations=0;else if(null==r.confirmations){let e=(yield this._getInternalBlockNumber(100+2*this.pollingInterval))-r.blockNumber+1;e<=0&&(e=1),r.confirmations=e}return r}))),{oncePoll:this})}))}getLogs(e){return ep(this,void 0,void 0,(function*(){yield this.getNetwork();const t=yield Qr({filter:this._getFilter(e)}),n=yield this.perform("getLogs",t);return n.forEach((e=>{null==e.removed&&(e.removed=!1)})),Jf.arrayOf(this.formatter.filterLog.bind(this.formatter))(n)}))}getEtherPrice(){return ep(this,void 0,void 0,(function*(){return yield this.getNetwork(),this.perform("getEtherPrice",{})}))}_getBlockTag(e){return ep(this,void 0,void 0,(function*(){if("number"==typeof(e=yield e)&&e<0){e%1&&tp.throwArgumentError("invalid BlockTag","blockTag",e);let t=yield this._getInternalBlockNumber(100+2*this.pollingInterval);return t+=e,t<0&&(t=0),this.formatter.blockTag(t)}return this.formatter.blockTag(e)}))}getResolver(e){return ep(this,void 0,void 0,(function*(){let t=e;for(;;){if(""===t||"."===t)return null;if("eth"!==e&&"eth"===t)return null;const n=yield this._getResolver(t,"getResolver");if(null!=n){const r=new Tp(this,n,e);return t===e||(yield r.supportsWildcard())?r:null}t=t.split(".").slice(1).join(".")}}))}_getResolver(e,t){return ep(this,void 0,void 0,(function*(){null==t&&(t="ENS");const n=yield this.getNetwork();n.ensAddress||tp.throwError("network does not support ENS",Zn.errors.UNSUPPORTED_OPERATION,{operation:t,network:n.name});try{const t=yield this.call({to:n.ensAddress,data:"0x0178b8bf"+Lo(e).substring(2)});return this.formatter.callAddress(t)}catch(e){}return null}))}resolveName(e){return ep(this,void 0,void 0,(function*(){e=yield e;try{return Promise.resolve(this.formatter.address(e))}catch(t){if(dr(e))throw t}"string"!=typeof e&&tp.throwArgumentError("invalid ENS name","name",e);const t=yield this.getResolver(e);return t?yield t.getAddress():null}))}lookupAddress(e){return ep(this,void 0,void 0,(function*(){e=yield e;const t=(e=this.formatter.address(e)).substring(2).toLowerCase()+".addr.reverse",n=yield this._getResolver(t,"lookupAddress");if(null==n)return null;const r=hp(yield this.call({to:n,data:"0x691f3431"+Lo(t).substring(2)}),0);return(yield this.resolveName(r))!=e?null:r}))}getAvatar(e){return ep(this,void 0,void 0,(function*(){let t=null;if(dr(e)){const n=this.formatter.address(e).substring(2).toLowerCase()+".addr.reverse",r=yield this._getResolver(n,"getAvatar");if(!r)return null;t=new Tp(this,r,n);try{const e=yield t.getAvatar();if(e)return e.url}catch(e){if(e.code!==Zn.errors.CALL_EXCEPTION)throw e}try{const e=hp(yield this.call({to:r,data:"0x691f3431"+Lo(n).substring(2)}),0);t=yield this.getResolver(e)}catch(e){if(e.code!==Zn.errors.CALL_EXCEPTION)throw e;return null}}else if(t=yield this.getResolver(e),!t)return null;const n=yield t.getAvatar();return null==n?null:n.url}))}perform(e,t){return tp.throwError(e+" not implemented",Zn.errors.NOT_IMPLEMENTED,{operation:e})}_startEvent(e){this.polling=this._events.filter((e=>e.pollable())).length>0}_stopEvent(e){this.polling=this._events.filter((e=>e.pollable())).length>0}_addEventListener(e,t,n){const r=new up(ip(e),t,n);return this._events.push(r),this._startEvent(r),this}on(e,t){return this._addEventListener(e,t,!1)}once(e,t){return this._addEventListener(e,t,!0)}emit(e,...t){let n=!1,r=[],i=ip(e);return this._events=this._events.filter((e=>e.tag!==i||(setTimeout((()=>{e.listener.apply(this,t)}),0),n=!0,!e.once||(r.push(e),!1)))),r.forEach((e=>{this._stopEvent(e)})),n}listenerCount(e){if(!e)return this._events.length;let t=ip(e);return this._events.filter((e=>e.tag===t)).length}listeners(e){if(null==e)return this._events.map((e=>e.listener));let t=ip(e);return this._events.filter((e=>e.tag===t)).map((e=>e.listener))}off(e,t){if(null==t)return this.removeAllListeners(e);const n=[];let r=!1,i=ip(e);return this._events=this._events.filter((e=>e.tag!==i||e.listener!=t||(!!r||(r=!0,n.push(e),!1)))),n.forEach((e=>{this._stopEvent(e)})),this}removeAllListeners(e){let t=[];if(null==e)t=this._events,this._events=[];else{const n=ip(e);this._events=this._events.filter((e=>e.tag!==n||(t.push(e),!1)))}return t.forEach((e=>{this._stopEvent(e)})),this}}var _p=window&&window.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};const Ip=new Zn(Kf),Rp=["call","estimateGas"];function Cp(e,t){if(null==e)return null;if("string"==typeof e.message&&e.message.match("reverted")){const n=dr(e.data)?e.data:null;if(!t||n)return{message:e.message,data:n}}if("object"==typeof e){for(const n in e){const r=Cp(e[n],t);if(r)return r}return null}if("string"==typeof e)try{return Cp(JSON.parse(e),t)}catch(e){}return null}function Op(e,t,n){const r=n.transaction||n.signedTransaction;if("call"===e){const e=Cp(t,!0);if(e)return e.data;Ip.throwError("missing revert data in call exception; Transaction reverted without a reason string",Zn.errors.CALL_EXCEPTION,{data:"0x",transaction:r,error:t})}if("estimateGas"===e){let n=Cp(t.body,!1);null==n&&(n=Cp(t,!1)),n&&Ip.throwError("cannot estimate gas; transaction may fail or may require manual gas limit",Zn.errors.UNPREDICTABLE_GAS_LIMIT,{reason:n.message,method:e,transaction:r,error:t})}let i=t.message;throw t.code===Zn.errors.SERVER_ERROR&&t.error&&"string"==typeof t.error.message?i=t.error.message:"string"==typeof t.body?i=t.body:"string"==typeof t.responseText&&(i=t.responseText),i=(i||"").toLowerCase(),i.match(/insufficient funds|base fee exceeds gas limit|InsufficientFunds/i)&&Ip.throwError("insufficient funds for intrinsic transaction cost",Zn.errors.INSUFFICIENT_FUNDS,{error:t,method:e,transaction:r}),i.match(/nonce (is )?too low/i)&&Ip.throwError("nonce has already been used",Zn.errors.NONCE_EXPIRED,{error:t,method:e,transaction:r}),i.match(/replacement transaction underpriced|transaction gas price.*too low/i)&&Ip.throwError("replacement fee too low",Zn.errors.REPLACEMENT_UNDERPRICED,{error:t,method:e,transaction:r}),i.match(/only replay-protected/i)&&Ip.throwError("legacy pre-eip-155 transactions not supported",Zn.errors.UNSUPPORTED_OPERATION,{error:t,method:e,transaction:r}),Rp.indexOf(e)>=0&&i.match(/gas required exceeds allowance|always failing transaction|execution reverted|revert/)&&Ip.throwError("cannot estimate gas; transaction may fail or may require manual gas limit",Zn.errors.UNPREDICTABLE_GAS_LIMIT,{error:t,method:e,transaction:r}),t}function kp(e){return new Promise((function(t){setTimeout(t,e)}))}function Sp(e){if(e.error){const t=new Error(e.error.message);throw t.code=e.error.code,t.data=e.error.data,t}return e.result}function Np(e){return e?e.toLowerCase():e}const xp={};class Pp extends Es{constructor(e,t,n){if(super(),e!==xp)throw new Error("do not call the JsonRpcSigner constructor directly; use provider.getSigner");Jr(this,"provider",t),null==n&&(n=0),"string"==typeof n?(Jr(this,"_address",this.provider.formatter.address(n)),Jr(this,"_index",null)):"number"==typeof n?(Jr(this,"_index",n),Jr(this,"_address",null)):Ip.throwArgumentError("invalid address or index","addressOrIndex",n)}connect(e){return Ip.throwError("cannot alter JSON-RPC Signer connection",Zn.errors.UNSUPPORTED_OPERATION,{operation:"connect"})}connectUnchecked(){return new Mp(xp,this.provider,this._address||this._index)}getAddress(){return this._address?Promise.resolve(this._address):this.provider.send("eth_accounts",[]).then((e=>(e.length<=this._index&&Ip.throwError("unknown account #"+this._index,Zn.errors.UNSUPPORTED_OPERATION,{operation:"getAddress"}),this.provider.formatter.address(e[this._index]))))}sendUncheckedTransaction(e){e=Zr(e);const t=this.getAddress().then((e=>(e&&(e=e.toLowerCase()),e)));if(null==e.gasLimit){const n=Zr(e);n.from=t,e.gasLimit=this.provider.estimateGas(n)}return null!=e.to&&(e.to=Promise.resolve(e.to).then((e=>_p(this,void 0,void 0,(function*(){if(null==e)return null;const t=yield this.provider.resolveName(e);return null==t&&Ip.throwArgumentError("provided ENS name resolves to null","tx.to",e),t}))))),Qr({tx:Qr(e),sender:t}).then((({tx:t,sender:n})=>{null!=t.from?t.from.toLowerCase()!==n&&Ip.throwArgumentError("from address mismatch","transaction",e):t.from=n;const r=this.provider.constructor.hexlifyTransaction(t,{from:!0});return this.provider.send("eth_sendTransaction",[r]).then((e=>e),(e=>("string"==typeof e.message&&e.message.match(/user denied/i)&&Ip.throwError("user rejected transaction",Zn.errors.ACTION_REJECTED,{action:"sendTransaction",transaction:t}),Op("sendTransaction",e,r))))}))}signTransaction(e){return Ip.throwError("signing transactions is unsupported",Zn.errors.UNSUPPORTED_OPERATION,{operation:"signTransaction"})}sendTransaction(e){return _p(this,void 0,void 0,(function*(){const t=yield this.provider._getInternalBlockNumber(100+2*this.provider.pollingInterval),n=yield this.sendUncheckedTransaction(e);try{return yield Bf((()=>_p(this,void 0,void 0,(function*(){const e=yield this.provider.getTransaction(n);if(null!==e)return this.provider._wrapTransaction(e,n,t)}))),{oncePoll:this.provider})}catch(e){throw e.transactionHash=n,e}}))}signMessage(e){return _p(this,void 0,void 0,(function*(){const t="string"==typeof e?Pa(e):e,n=yield this.getAddress();try{return yield this.provider.send("personal_sign",[pr(t),n.toLowerCase()])}catch(t){throw"string"==typeof t.message&&t.message.match(/user denied/i)&&Ip.throwError("user rejected signing",Zn.errors.ACTION_REJECTED,{action:"signMessage",from:n,messageData:e}),t}}))}_legacySignMessage(e){return _p(this,void 0,void 0,(function*(){const t="string"==typeof e?Pa(e):e,n=yield this.getAddress();try{return yield this.provider.send("eth_sign",[n.toLowerCase(),pr(t)])}catch(t){throw"string"==typeof t.message&&t.message.match(/user denied/i)&&Ip.throwError("user rejected signing",Zn.errors.ACTION_REJECTED,{action:"_legacySignMessage",from:n,messageData:e}),t}}))}_signTypedData(e,t,n){return _p(this,void 0,void 0,(function*(){const r=yield rs.resolveNames(e,t,n,(e=>this.provider.resolveName(e))),i=yield this.getAddress();try{return yield this.provider.send("eth_signTypedData_v4",[i.toLowerCase(),JSON.stringify(rs.getPayload(r.domain,t,r.value))])}catch(e){throw"string"==typeof e.message&&e.message.match(/user denied/i)&&Ip.throwError("user rejected signing",Zn.errors.ACTION_REJECTED,{action:"_signTypedData",from:i,messageData:{domain:r.domain,types:t,value:r.value}}),e}}))}unlock(e){return _p(this,void 0,void 0,(function*(){const t=this.provider,n=yield this.getAddress();return t.send("personal_unlockAccount",[n.toLowerCase(),e,null])}))}}class Mp extends Pp{sendTransaction(e){return this.sendUncheckedTransaction(e).then((e=>({hash:e,nonce:null,gasLimit:null,gasPrice:null,data:null,value:null,chainId:null,confirmations:0,from:null,wait:t=>this.provider.waitForTransaction(e,t)})))}}const Bp={chainId:!0,data:!0,gasLimit:!0,gasPrice:!0,nonce:!0,to:!0,value:!0,type:!0,accessList:!0,maxFeePerGas:!0,maxPriorityFeePerGas:!0};let Dp=class extends Ap{constructor(e,t){let n=t;null==n&&(n=new Promise(((e,t)=>{setTimeout((()=>{this.detectNetwork().then((t=>{e(t)}),(e=>{t(e)}))}),0)}))),super(n),e||(e=Yr(this.constructor,"defaultUrl")()),Jr(this,"connection","string"==typeof e?Object.freeze({url:e}):Object.freeze(Zr(e))),this._nextId=42}get _cache(){return null==this._eventLoopCache&&(this._eventLoopCache={}),this._eventLoopCache}static defaultUrl(){return"http://localhost:8545"}detectNetwork(){return this._cache.detectNetwork||(this._cache.detectNetwork=this._uncachedDetectNetwork(),setTimeout((()=>{this._cache.detectNetwork=null}),0)),this._cache.detectNetwork}_uncachedDetectNetwork(){return _p(this,void 0,void 0,(function*(){yield kp(0);let e=null;try{e=yield this.send("eth_chainId",[])}catch(t){try{e=yield this.send("net_version",[])}catch(e){}}if(null!=e){const t=Yr(this.constructor,"getNetwork");try{return t(kr.from(e).toNumber())}catch(t){return Ip.throwError("could not detect network",Zn.errors.NETWORK_ERROR,{chainId:e,event:"invalidNetwork",serverError:t})}}return Ip.throwError("could not detect network",Zn.errors.NETWORK_ERROR,{event:"noNetwork"})}))}getSigner(e){return new Pp(xp,this,e)}getUncheckedSigner(e){return this.getSigner(e).connectUnchecked()}listAccounts(){return this.send("eth_accounts",[]).then((e=>e.map((e=>this.formatter.address(e)))))}send(e,t){const n={method:e,params:t,id:this._nextId++,jsonrpc:"2.0"};this.emit("debug",{action:"request",request:ri(n),provider:this});const r=["eth_chainId","eth_blockNumber"].indexOf(e)>=0;if(r&&this._cache[e])return this._cache[e];const i=Mf(this.connection,JSON.stringify(n),Sp).then((e=>(this.emit("debug",{action:"response",request:n,response:e,provider:this}),e)),(e=>{throw this.emit("debug",{action:"response",error:e,request:n,provider:this}),e}));return r&&(this._cache[e]=i,setTimeout((()=>{this._cache[e]=null}),0)),i}prepareRequest(e,t){switch(e){case"getBlockNumber":return["eth_blockNumber",[]];case"getGasPrice":return["eth_gasPrice",[]];case"getBalance":return["eth_getBalance",[Np(t.address),t.blockTag]];case"getTransactionCount":return["eth_getTransactionCount",[Np(t.address),t.blockTag]];case"getCode":return["eth_getCode",[Np(t.address),t.blockTag]];case"getStorageAt":return["eth_getStorageAt",[Np(t.address),vr(t.position,32),t.blockTag]];case"sendTransaction":return["eth_sendRawTransaction",[t.signedTransaction]];case"getBlock":return t.blockTag?["eth_getBlockByNumber",[t.blockTag,!!t.includeTransactions]]:t.blockHash?["eth_getBlockByHash",[t.blockHash,!!t.includeTransactions]]:null;case"getTransaction":return["eth_getTransactionByHash",[t.transactionHash]];case"getTransactionReceipt":return["eth_getTransactionReceipt",[t.transactionHash]];case"call":return["eth_call",[Yr(this.constructor,"hexlifyTransaction")(t.transaction,{from:!0}),t.blockTag]];case"estimateGas":return["eth_estimateGas",[Yr(this.constructor,"hexlifyTransaction")(t.transaction,{from:!0})]];case"getLogs":return t.filter&&null!=t.filter.address&&(t.filter.address=Np(t.filter.address)),["eth_getLogs",[t.filter]]}return null}perform(e,t){return _p(this,void 0,void 0,(function*(){if("call"===e||"estimateGas"===e){const e=t.transaction;if(e&&null!=e.type&&kr.from(e.type).isZero()&&null==e.maxFeePerGas&&null==e.maxPriorityFeePerGas){const n=yield this.getFeeData();null==n.maxFeePerGas&&null==n.maxPriorityFeePerGas&&((t=Zr(t)).transaction=Zr(e),delete t.transaction.type)}}const n=this.prepareRequest(e,t);null==n&&Ip.throwError(e+" not implemented",Zn.errors.NOT_IMPLEMENTED,{operation:e});try{return yield this.send(n[0],n[1])}catch(n){return Op(e,n,t)}}))}_startEvent(e){"pending"===e.tag&&this._startPending(),super._startEvent(e)}_startPending(){if(null!=this._pendingFilter)return;const e=this,t=this.send("eth_newPendingTransactionFilter",[]);this._pendingFilter=t,t.then((function(n){return function r(){e.send("eth_getFilterChanges",[n]).then((function(n){if(e._pendingFilter!=t)return null;let r=Promise.resolve();return n.forEach((function(t){e._emitted["t:"+t.toLowerCase()]="pending",r=r.then((function(){return e.getTransaction(t).then((function(t){return e.emit("pending",t),null}))}))})),r.then((function(){return kp(1e3)}))})).then((function(){if(e._pendingFilter==t)return setTimeout((function(){r()}),0),null;e.send("eth_uninstallFilter",[n])})).catch((e=>{}))}(),n})).catch((e=>{}))}_stopEvent(e){"pending"===e.tag&&0===this.listenerCount("pending")&&(this._pendingFilter=null),super._stopEvent(e)}static hexlifyTransaction(e,t){const n=Zr(Bp);if(t)for(const e in t)t[e]&&(n[e]=!0);$r(e,n);const r={};return["chainId","gasLimit","gasPrice","type","maxFeePerGas","maxPriorityFeePerGas","nonce","value"].forEach((function(t){if(null==e[t])return;const n=gr(kr.from(e[t]));"gasLimit"===t&&(t="gas"),r[t]=n})),["from","to","data"].forEach((function(t){null!=e[t]&&(r[t]=pr(e[t]))})),e.accessList&&(r.accessList=_l(e.accessList)),r}},Fp=null;try{if(Fp=WebSocket,null==Fp)throw new Error("inject please")}catch(e){const t=new Zn(Kf);Fp=function(){t.throwError("WebSockets not supported in this environment",Zn.errors.UNSUPPORTED_OPERATION,{operation:"new WebSocket()"})}}var Lp=window&&window.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};const Up=new Zn(Kf);let qp=1;class jp extends Dp{constructor(e,t){"any"===t&&Up.throwError("WebSocketProvider does not support 'any' network yet",Zn.errors.UNSUPPORTED_OPERATION,{operation:"network:any"}),super("string"==typeof e?e:"_websocket",t),this._pollingInterval=-1,this._wsReady=!1,Jr(this,"_websocket","string"==typeof e?new Fp(this.connection.url):e),Jr(this,"_requests",{}),Jr(this,"_subs",{}),Jr(this,"_subIds",{}),Jr(this,"_detectNetwork",super.detectNetwork()),this.websocket.onopen=()=>{this._wsReady=!0,Object.keys(this._requests).forEach((e=>{this.websocket.send(this._requests[e].payload)}))},this.websocket.onmessage=e=>{const t=e.data,n=JSON.parse(t);if(null!=n.id){const e=String(n.id),r=this._requests[e];if(delete this._requests[e],void 0!==n.result)r.callback(null,n.result),this.emit("debug",{action:"response",request:JSON.parse(r.payload),response:n.result,provider:this});else{let e=null;n.error?(e=new Error(n.error.message||"unknown error"),Jr(e,"code",n.error.code||null),Jr(e,"response",t)):e=new Error("unknown error"),r.callback(e,void 0),this.emit("debug",{action:"response",error:e,request:JSON.parse(r.payload),provider:this})}}else if("eth_subscription"===n.method){const e=this._subs[n.params.subscription];e&&e.processFunc(n.params.result)}else console.warn("this should not happen")};const n=setInterval((()=>{this.emit("poll")}),1e3);n.unref&&n.unref()}get websocket(){return this._websocket}detectNetwork(){return this._detectNetwork}get pollingInterval(){return 0}resetEventsBlock(e){Up.throwError("cannot reset events block on WebSocketProvider",Zn.errors.UNSUPPORTED_OPERATION,{operation:"resetEventBlock"})}set pollingInterval(e){Up.throwError("cannot set polling interval on WebSocketProvider",Zn.errors.UNSUPPORTED_OPERATION,{operation:"setPollingInterval"})}poll(){return Lp(this,void 0,void 0,(function*(){return null}))}set polling(e){e&&Up.throwError("cannot set polling on WebSocketProvider",Zn.errors.UNSUPPORTED_OPERATION,{operation:"setPolling"})}send(e,t){const n=qp++;return new Promise(((r,i)=>{const a=JSON.stringify({method:e,params:t,id:n,jsonrpc:"2.0"});this.emit("debug",{action:"request",request:JSON.parse(a),provider:this}),this._requests[String(n)]={callback:function(e,t){return e?i(e):r(t)},payload:a},this._wsReady&&this.websocket.send(a)}))}static defaultUrl(){return"ws://localhost:8546"}_subscribe(e,t,n){return Lp(this,void 0,void 0,(function*(){let r=this._subIds[e];null==r&&(r=Promise.all(t).then((e=>this.send("eth_subscribe",e))),this._subIds[e]=r);const i=yield r;this._subs[i]={tag:e,processFunc:n}}))}_startEvent(e){switch(e.type){case"block":this._subscribe("block",["newHeads"],(e=>{const t=kr.from(e.number).toNumber();this._emitted.block=t,this.emit("block",t)}));break;case"pending":this._subscribe("pending",["newPendingTransactions"],(e=>{this.emit("pending",e)}));break;case"filter":this._subscribe(e.tag,["logs",this._getFilter(e.filter)],(t=>{null==t.removed&&(t.removed=!1),this.emit(e.filter,this.formatter.filterLog(t))}));break;case"tx":{const t=e=>{const t=e.hash;this.getTransactionReceipt(t).then((e=>{e&&this.emit(t,e)}))};t(e),this._subscribe("tx",["newHeads"],(e=>{this._events.filter((e=>"tx"===e.type)).forEach(t)}));break}case"debug":case"poll":case"willPoll":case"didPoll":case"error":break;default:console.log("unhandled:",e)}}_stopEvent(e){let t=e.tag;if("tx"===e.type){if(this._events.filter((e=>"tx"===e.type)).length)return;t="tx"}else if(this.listenerCount(e.event))return;const n=this._subIds[t];n&&(delete this._subIds[t],n.then((e=>{this._subs[e]&&(delete this._subs[e],this.send("eth_unsubscribe",[e]))})))}destroy(){return Lp(this,void 0,void 0,(function*(){this.websocket.readyState===Fp.CONNECTING&&(yield new Promise((e=>{this.websocket.onopen=function(){e(!0)},this.websocket.onerror=function(){e(!1)}}))),this.websocket.close(1e3)}))}}var Gp=window&&window.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};const Hp=new Zn(Kf);class zp extends Dp{detectNetwork(){const e=Object.create(null,{detectNetwork:{get:()=>super.detectNetwork}});return Gp(this,void 0,void 0,(function*(){let t=this.network;return null==t&&(t=yield e.detectNetwork.call(this),t||Hp.throwError("no network detected",Zn.errors.UNKNOWN_ERROR,{}),null==this._network&&(Jr(this,"_network",t),this.emit("network",t,null))),t}))}}class Wp extends zp{constructor(e,t){Hp.checkAbstract(new.target,Wp),e=Yr(new.target,"getNetwork")(e),t=Yr(new.target,"getApiKey")(t);super(Yr(new.target,"getUrl")(e,t),e),"string"==typeof t?Jr(this,"apiKey",t):null!=t&&Object.keys(t).forEach((e=>{Jr(this,e,t[e])}))}_startPending(){Hp.warn("WARNING: API provider does not support pending filters")}isCommunityResource(){return!1}getSigner(e){return Hp.throwError("API provider does not support signing",Zn.errors.UNSUPPORTED_OPERATION,{operation:"getSigner"})}listAccounts(){return Promise.resolve([])}static getApiKey(e){return e}static getUrl(e,t){return Hp.throwError("not implemented; sub-classes must override getUrl",Zn.errors.NOT_IMPLEMENTED,{operation:"getUrl"})}}const Vp=new Zn(Kf),Kp="_gg7wSSi0KMBsdKnGVfHDueq6xMB9EkC";class Xp extends jp{constructor(e,t){const n=new Jp(e,t);super(n.connection.url.replace(/^http/i,"ws").replace(".alchemyapi.",".ws.alchemyapi."),n.network),Jr(this,"apiKey",n.apiKey)}isCommunityResource(){return this.apiKey===Kp}}class Jp extends Wp{static getWebSocketProvider(e,t){return new Xp(e,t)}static getApiKey(e){return null==e?Kp:(e&&"string"!=typeof e&&Vp.throwArgumentError("invalid apiKey","apiKey",e),e)}static getUrl(e,t){let n=null;switch(e.name){case"homestead":n="eth-mainnet.alchemyapi.io/v2/";break;case"goerli":n="eth-goerli.g.alchemy.com/v2/";break;case"matic":n="polygon-mainnet.g.alchemy.com/v2/";break;case"maticmum":n="polygon-mumbai.g.alchemy.com/v2/";break;case"arbitrum":n="arb-mainnet.g.alchemy.com/v2/";break;case"arbitrum-goerli":n="arb-goerli.g.alchemy.com/v2/";break;case"optimism":n="opt-mainnet.g.alchemy.com/v2/";break;case"optimism-goerli":n="opt-goerli.g.alchemy.com/v2/";break;default:Vp.throwArgumentError("unsupported network","network",arguments[0])}return{allowGzip:!0,url:"https://"+n+t,throttleCallback:(e,n)=>(t===Kp&&Zf(),Promise.resolve(!0))}}isCommunityResource(){return this.apiKey===Kp}}const Yp=new Zn(Kf),Qp="9f7d929b018cdffb338517efa06f58359e86ff1ffd350bc889738523659e7972";function $p(e){switch(e){case"homestead":return"rpc.ankr.com/eth/";case"ropsten":return"rpc.ankr.com/eth_ropsten/";case"rinkeby":return"rpc.ankr.com/eth_rinkeby/";case"goerli":return"rpc.ankr.com/eth_goerli/";case"matic":return"rpc.ankr.com/polygon/";case"arbitrum":return"rpc.ankr.com/arbitrum/"}return Yp.throwArgumentError("unsupported network","name",e)}class Zp extends Wp{isCommunityResource(){return this.apiKey===Qp}static getApiKey(e){return null==e?Qp:e}static getUrl(e,t){null==t&&(t=Qp);const n={allowGzip:!0,url:"https://"+$p(e.name)+t,throttleCallback:(e,n)=>(t.apiKey===Qp&&Zf(),Promise.resolve(!0))};return null!=t.projectSecret&&(n.user="",n.password=t.projectSecret),n}}var eh=window&&window.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};const th=new Zn(Kf);class nh extends Wp{static getApiKey(e){return null!=e&&th.throwArgumentError("apiKey not supported for cloudflare","apiKey",e),null}static getUrl(e,t){let n=null;if("homestead"===e.name)n="https://cloudflare-eth.com/";else th.throwArgumentError("unsupported network","network",arguments[0]);return n}perform(e,t){const n=Object.create(null,{perform:{get:()=>super.perform}});return eh(this,void 0,void 0,(function*(){if("getBlockNumber"===e){return(yield n.perform.call(this,"getBlock",{blockTag:"latest"})).number}return n.perform.call(this,e,t)}))}}var rh=window&&window.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};const ih=new Zn(Kf);function ah(e){const t={};for(let n in e){if(null==e[n])continue;let r=e[n];"type"===n&&0===r||(r={type:!0,gasLimit:!0,gasPrice:!0,maxFeePerGs:!0,maxPriorityFeePerGas:!0,nonce:!0,value:!0}[n]?gr(pr(r)):"accessList"===n?"["+_l(r).map((e=>`{address:"${e.address}",storageKeys:["${e.storageKeys.join('","')}"]}`)).join(",")+"]":pr(r),t[n]=r)}return t}function oh(e){if(0==e.status&&("No records found"===e.message||"No transactions found"===e.message))return e.result;if(1!=e.status||"string"!=typeof e.message||!e.message.match(/^OK/)){const t=new Error("invalid response");throw t.result=JSON.stringify(e),(e.result||"").toLowerCase().indexOf("rate limit")>=0&&(t.throttleRetry=!0),t}return e.result}function sh(e){if(e&&0==e.status&&"NOTOK"==e.message&&(e.result||"").toLowerCase().indexOf("rate limit")>=0){const t=new Error("throttled response");throw t.result=JSON.stringify(e),t.throttleRetry=!0,t}if("2.0"!=e.jsonrpc){const t=new Error("invalid response");throw t.result=JSON.stringify(e),t}if(e.error){const t=new Error(e.error.message||"unknown error");throw e.error.code&&(t.code=e.error.code),e.error.data&&(t.data=e.error.data),t}return e.result}function uh(e){if("pending"===e)throw new Error("pending not supported");return"latest"===e?e:parseInt(e.substring(2),16)}function ch(e,t,n){if("call"===e&&t.code===Zn.errors.SERVER_ERROR){const e=t.error;if(e&&(e.message.match(/reverted/i)||e.message.match(/VM execution error/i))){let n=e.data;if(n&&(n="0x"+n.replace(/^.*0x/i,"")),dr(n))return n;ih.throwError("missing revert data in call exception",Zn.errors.CALL_EXCEPTION,{error:t,data:"0x"})}}let r=t.message;throw t.code===Zn.errors.SERVER_ERROR&&(t.error&&"string"==typeof t.error.message?r=t.error.message:"string"==typeof t.body?r=t.body:"string"==typeof t.responseText&&(r=t.responseText)),r=(r||"").toLowerCase(),r.match(/insufficient funds/)&&ih.throwError("insufficient funds for intrinsic transaction cost",Zn.errors.INSUFFICIENT_FUNDS,{error:t,method:e,transaction:n}),r.match(/same hash was already imported|transaction nonce is too low|nonce too low/)&&ih.throwError("nonce has already been used",Zn.errors.NONCE_EXPIRED,{error:t,method:e,transaction:n}),r.match(/another transaction with same nonce/)&&ih.throwError("replacement fee too low",Zn.errors.REPLACEMENT_UNDERPRICED,{error:t,method:e,transaction:n}),r.match(/execution failed due to an exception|execution reverted/)&&ih.throwError("cannot estimate gas; transaction may fail or may require manual gas limit",Zn.errors.UNPREDICTABLE_GAS_LIMIT,{error:t,method:e,transaction:n}),t}class lh extends Ap{constructor(e,t){super(e),Jr(this,"baseUrl",this.getBaseUrl()),Jr(this,"apiKey",t||null)}getBaseUrl(){switch(this.network?this.network.name:"invalid"){case"homestead":return"https://api.etherscan.io";case"goerli":return"https://api-goerli.etherscan.io";case"sepolia":return"https://api-sepolia.etherscan.io";case"matic":return"https://api.polygonscan.com";case"maticmum":return"https://api-testnet.polygonscan.com";case"arbitrum":return"https://api.arbiscan.io";case"arbitrum-goerli":return"https://api-goerli.arbiscan.io";case"optimism":return"https://api-optimistic.etherscan.io";case"optimism-goerli":return"https://api-goerli-optimistic.etherscan.io"}return ih.throwArgumentError("unsupported network","network",this.network.name)}getUrl(e,t){const n=Object.keys(t).reduce(((e,n)=>{const r=t[n];return null!=r&&(e+=`&${n}=${r}`),e}),""),r=this.apiKey?`&apikey=${this.apiKey}`:"";return`${this.baseUrl}/api?module=${e}${n}${r}`}getPostUrl(){return`${this.baseUrl}/api`}getPostData(e,t){return t.module=e,t.apikey=this.apiKey,t}fetch(e,t,n){return rh(this,void 0,void 0,(function*(){const r=n?this.getPostUrl():this.getUrl(e,t),i=n?this.getPostData(e,t):null,a="proxy"===e?sh:oh;this.emit("debug",{action:"request",request:r,provider:this});const o={url:r,throttleSlotInterval:1e3,throttleCallback:(e,t)=>(this.isCommunityResource()&&Zf(),Promise.resolve(!0))};let s=null;i&&(o.headers={"content-type":"application/x-www-form-urlencoded; charset=UTF-8"},s=Object.keys(i).map((e=>`${e}=${i[e]}`)).join("&"));const u=yield Mf(o,s,a||sh);return this.emit("debug",{action:"response",request:r,response:ri(u),provider:this}),u}))}detectNetwork(){return rh(this,void 0,void 0,(function*(){return this.network}))}perform(e,t){const n=Object.create(null,{perform:{get:()=>super.perform}});return rh(this,void 0,void 0,(function*(){switch(e){case"getBlockNumber":return this.fetch("proxy",{action:"eth_blockNumber"});case"getGasPrice":return this.fetch("proxy",{action:"eth_gasPrice"});case"getBalance":return this.fetch("account",{action:"balance",address:t.address,tag:t.blockTag});case"getTransactionCount":return this.fetch("proxy",{action:"eth_getTransactionCount",address:t.address,tag:t.blockTag});case"getCode":return this.fetch("proxy",{action:"eth_getCode",address:t.address,tag:t.blockTag});case"getStorageAt":return this.fetch("proxy",{action:"eth_getStorageAt",address:t.address,position:t.position,tag:t.blockTag});case"sendTransaction":return this.fetch("proxy",{action:"eth_sendRawTransaction",hex:t.signedTransaction},!0).catch((e=>ch("sendTransaction",e,t.signedTransaction)));case"getBlock":if(t.blockTag)return this.fetch("proxy",{action:"eth_getBlockByNumber",tag:t.blockTag,boolean:t.includeTransactions?"true":"false"});throw new Error("getBlock by blockHash not implemented");case"getTransaction":return this.fetch("proxy",{action:"eth_getTransactionByHash",txhash:t.transactionHash});case"getTransactionReceipt":return this.fetch("proxy",{action:"eth_getTransactionReceipt",txhash:t.transactionHash});case"call":{if("latest"!==t.blockTag)throw new Error("EtherscanProvider does not support blockTag for call");const e=ah(t.transaction);e.module="proxy",e.action="eth_call";try{return yield this.fetch("proxy",e,!0)}catch(e){return ch("call",e,t.transaction)}}case"estimateGas":{const e=ah(t.transaction);e.module="proxy",e.action="eth_estimateGas";try{return yield this.fetch("proxy",e,!0)}catch(e){return ch("estimateGas",e,t.transaction)}}case"getLogs":{const e={action:"getLogs"};if(t.filter.fromBlock&&(e.fromBlock=uh(t.filter.fromBlock)),t.filter.toBlock&&(e.toBlock=uh(t.filter.toBlock)),t.filter.address&&(e.address=t.filter.address),t.filter.topics&&t.filter.topics.length>0&&(t.filter.topics.length>1&&ih.throwError("unsupported topic count",Zn.errors.UNSUPPORTED_OPERATION,{topics:t.filter.topics}),1===t.filter.topics.length)){const n=t.filter.topics[0];"string"==typeof n&&66===n.length||ih.throwError("unsupported topic format",Zn.errors.UNSUPPORTED_OPERATION,{topic0:n}),e.topic0=n}const n=yield this.fetch("logs",e);let r={};for(let e=0;e<n.length;e++){const t=n[e];if(null==t.blockHash){if(null==r[t.blockNumber]){const e=yield this.getBlock(t.blockNumber);e&&(r[t.blockNumber]=e.hash)}t.blockHash=r[t.blockNumber]}}return n}case"getEtherPrice":return"homestead"!==this.network.name?0:parseFloat((yield this.fetch("stats",{action:"ethprice"})).ethusd)}return n.perform.call(this,e,t)}))}getHistory(e,t,n){return rh(this,void 0,void 0,(function*(){const r={action:"txlist",address:yield this.resolveName(e),startblock:null==t?0:t,endblock:null==n?99999999:n,sort:"asc"};return(yield this.fetch("account",r)).map((e=>{["contractAddress","to"].forEach((function(t){""==e[t]&&delete e[t]})),null==e.creates&&null!=e.contractAddress&&(e.creates=e.contractAddress);const t=this.formatter.transactionResponse(e);return e.timeStamp&&(t.timestamp=parseInt(e.timeStamp)),t}))}))}isCommunityResource(){return null==this.apiKey}}var dh=window&&window.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};const fh=new Zn(Kf);function ph(){return(new Date).getTime()}function hh(e){let t=null;for(let n=0;n<e.length;n++){const r=e[n];if(null==r)return null;t?t.name===r.name&&t.chainId===r.chainId&&(t.ensAddress===r.ensAddress||null==t.ensAddress&&null==r.ensAddress)||fh.throwArgumentError("provider mismatch","networks",e):t=r}return t}function mh(e,t){e=e.slice().sort();const n=Math.floor(e.length/2);if(e.length%2)return e[n];const r=e[n-1],i=e[n];return null!=t&&Math.abs(r-i)>t?null:(r+i)/2}function yh(e){if(null===e)return"null";if("number"==typeof e||"boolean"==typeof e)return JSON.stringify(e);if("string"==typeof e)return e;if(kr.isBigNumber(e))return e.toString();if(Array.isArray(e))return JSON.stringify(e.map((e=>yh(e))));if("object"==typeof e){const t=Object.keys(e);return t.sort(),"{"+t.map((t=>{let n=e[t];return n="function"==typeof n?"[function]":yh(n),JSON.stringify(t)+":"+n})).join(",")+"}"}throw new Error("unknown value type: "+typeof e)}let gh=1;function bh(e){let t=null,n=null,r=new Promise((r=>{t=function(){n&&(clearTimeout(n),n=null),r()},n=setTimeout(t,e)}));return{cancel:t,getPromise:function(){return r},wait:e=>(r=r.then(e),r)}}const vh=[Zn.errors.CALL_EXCEPTION,Zn.errors.INSUFFICIENT_FUNDS,Zn.errors.NONCE_EXPIRED,Zn.errors.REPLACEMENT_UNDERPRICED,Zn.errors.UNPREDICTABLE_GAS_LIMIT],Th=["address","args","errorArgs","errorSignature","method","transaction"];function wh(e,t){const n={weight:e.weight};return Object.defineProperty(n,"provider",{get:()=>e.provider}),e.start&&(n.start=e.start),t&&(n.duration=t-e.start),e.done&&(e.error?n.error=e.error:n.result=e.result||null),n}function Eh(e,t,n){let r=yh;switch(t){case"getBlockNumber":return function(t){const n=t.map((e=>e.result));let r=mh(t.map((e=>e.result)),2);if(null!=r)return r=Math.ceil(r),n.indexOf(r+1)>=0&&r++,r>=e._highestBlockNumber&&(e._highestBlockNumber=r),e._highestBlockNumber};case"getGasPrice":return function(e){const t=e.map((e=>e.result));return t.sort(),t[Math.floor(t.length/2)]};case"getEtherPrice":return function(e){return mh(e.map((e=>e.result)))};case"getBalance":case"getTransactionCount":case"getCode":case"getStorageAt":case"call":case"estimateGas":case"getLogs":break;case"getTransaction":case"getTransactionReceipt":r=function(e){return null==e?null:((e=Zr(e)).confirmations=-1,yh(e))};break;case"getBlock":r=n.includeTransactions?function(e){return null==e?null:((e=Zr(e)).transactions=e.transactions.map((e=>((e=Zr(e)).confirmations=-1,e))),yh(e))}:function(e){return null==e?null:yh(e)};break;default:throw new Error("unknown method: "+t)}return function(e,t){return function(n){const r={};n.forEach((t=>{const n=e(t.result);r[n]||(r[n]={count:0,result:t.result}),r[n].count++}));const i=Object.keys(r);for(let e=0;e<i.length;e++){const n=r[i[e]];if(n.count>=t)return n.result}}}(r,e.quorum)}function Ah(e,t){return dh(this,void 0,void 0,(function*(){const n=e.provider;return null!=n.blockNumber&&n.blockNumber>=t||-1===t?n:Bf((()=>new Promise(((r,i)=>{setTimeout((function(){return n.blockNumber>=t?r(n):e.cancelled?r(null):r(void 0)}),0)}))),{oncePoll:n})}))}function _h(e,t,n,r){return dh(this,void 0,void 0,(function*(){let i=e.provider;switch(n){case"getBlockNumber":case"getGasPrice":return i[n]();case"getEtherPrice":if(i.getEtherPrice)return i.getEtherPrice();break;case"getBalance":case"getTransactionCount":case"getCode":return r.blockTag&&dr(r.blockTag)&&(i=yield Ah(e,t)),i[n](r.address,r.blockTag||"latest");case"getStorageAt":return r.blockTag&&dr(r.blockTag)&&(i=yield Ah(e,t)),i.getStorageAt(r.address,r.position,r.blockTag||"latest");case"getBlock":return r.blockTag&&dr(r.blockTag)&&(i=yield Ah(e,t)),i[r.includeTransactions?"getBlockWithTransactions":"getBlock"](r.blockTag||r.blockHash);case"call":case"estimateGas":return r.blockTag&&dr(r.blockTag)&&(i=yield Ah(e,t)),"call"===n&&r.blockTag?i[n](r.transaction,r.blockTag):i[n](r.transaction);case"getTransaction":case"getTransactionReceipt":return i[n](r.transactionHash);case"getLogs":{let n=r.filter;return(n.fromBlock&&dr(n.fromBlock)||n.toBlock&&dr(n.toBlock))&&(i=yield Ah(e,t)),i.getLogs(n)}}return fh.throwError("unknown method error",Zn.errors.UNKNOWN_ERROR,{method:n,params:r})}))}class Ih extends Ap{constructor(e,t){0===e.length&&fh.throwArgumentError("missing providers","providers",e);const n=e.map(((e,t)=>{if(gs.isProvider(e)){const t=Qf(e)?2e3:750,n=1;return Object.freeze({provider:e,weight:1,stallTimeout:t,priority:n})}const n=Zr(e);null==n.priority&&(n.priority=1),null==n.stallTimeout&&(n.stallTimeout=Qf(e)?2e3:750),null==n.weight&&(n.weight=1);const r=n.weight;return(r%1||r>512||r<1)&&fh.throwArgumentError("invalid weight; must be integer in [1, 512]",`providers[${t}].weight`,r),Object.freeze(n)})),r=n.reduce(((e,t)=>e+t.weight),0);null==t?t=r/2:t>r&&fh.throwArgumentError("quorum will always fail; larger than total weight","quorum",t);let i=hh(n.map((e=>e.provider.network)));null==i&&(i=new Promise(((e,t)=>{setTimeout((()=>{this.detectNetwork().then(e,t)}),0)}))),super(i),Jr(this,"providerConfigs",Object.freeze(n)),Jr(this,"quorum",t),this._highestBlockNumber=-1}detectNetwork(){return dh(this,void 0,void 0,(function*(){return hh(yield Promise.all(this.providerConfigs.map((e=>e.provider.getNetwork()))))}))}perform(e,t){return dh(this,void 0,void 0,(function*(){if("sendTransaction"===e){const e=yield Promise.all(this.providerConfigs.map((e=>e.provider.sendTransaction(t.signedTransaction).then((e=>e.hash),(e=>e)))));for(let t=0;t<e.length;t++){const n=e[t];if("string"==typeof n)return n}throw e[0]}-1===this._highestBlockNumber&&"getBlockNumber"!==e&&(yield this.getBlockNumber());const n=Eh(this,e,t),r=Md(this.providerConfigs.map(Zr));r.sort(((e,t)=>e.priority-t.priority));const i=this._highestBlockNumber;let a=0,o=!0;for(;;){const s=ph();let u=r.filter((e=>e.runner&&s-e.start<e.stallTimeout)).reduce(((e,t)=>e+t.weight),0);for(;u<this.quorum&&a<r.length;){const n=r[a++],o=gh++;n.start=ph(),n.staller=bh(n.stallTimeout),n.staller.wait((()=>{n.staller=null})),n.runner=_h(n,i,e,t).then((r=>{n.done=!0,n.result=r,this.listenerCount("debug")&&this.emit("debug",{action:"request",rid:o,backend:wh(n,ph()),request:{method:e,params:ri(t)},provider:this})}),(r=>{n.done=!0,n.error=r,this.listenerCount("debug")&&this.emit("debug",{action:"request",rid:o,backend:wh(n,ph()),request:{method:e,params:ri(t)},provider:this})})),this.listenerCount("debug")&&this.emit("debug",{action:"request",rid:o,backend:wh(n,null),request:{method:e,params:ri(t)},provider:this}),u+=n.weight}const c=[];r.forEach((e=>{!e.done&&e.runner&&(c.push(e.runner),e.staller&&c.push(e.staller.getPromise()))})),c.length&&(yield Promise.race(c));const l=r.filter((e=>e.done&&null==e.error));if(l.length>=this.quorum){const e=n(l);if(void 0!==e)return r.forEach((e=>{e.staller&&e.staller.cancel(),e.cancelled=!0})),e;o||(yield bh(100).getPromise()),o=!1}const d=r.reduce(((e,t)=>{if(!t.done||null==t.error)return e;const n=t.error.code;return vh.indexOf(n)>=0&&(e[n]||(e[n]={error:t.error,weight:0}),e[n].weight+=t.weight),e}),{});if(Object.keys(d).forEach((e=>{const t=d[e];if(t.weight<this.quorum)return;r.forEach((e=>{e.staller&&e.staller.cancel(),e.cancelled=!0}));const n=t.error,i={};Th.forEach((e=>{null!=n[e]&&(i[e]=n[e])})),fh.throwError(n.reason||n.message,e,i)})),0===r.filter((e=>!e.done)).length)break}return r.forEach((e=>{e.staller&&e.staller.cancel(),e.cancelled=!0})),fh.throwError("failed to meet quorum",Zn.errors.SERVER_ERROR,{method:e,params:t,results:r.map((e=>wh(e))),provider:this})}))}}const Rh=new Zn(Kf),Ch="84842078b09946638c03157f83405213";class Oh extends jp{constructor(e,t){const n=new kh(e,t),r=n.connection;r.password&&Rh.throwError("INFURA WebSocket project secrets unsupported",Zn.errors.UNSUPPORTED_OPERATION,{operation:"InfuraProvider.getWebSocketProvider()"});super(r.url.replace(/^http/i,"ws").replace("/v3/","/ws/v3/"),e),Jr(this,"apiKey",n.projectId),Jr(this,"projectId",n.projectId),Jr(this,"projectSecret",n.projectSecret)}isCommunityResource(){return this.projectId===Ch}}class kh extends Wp{static getWebSocketProvider(e,t){return new Oh(e,t)}static getApiKey(e){const t={apiKey:Ch,projectId:Ch,projectSecret:null};return null==e||("string"==typeof e?t.projectId=e:null!=e.projectSecret?(Rh.assertArgument("string"==typeof e.projectId,"projectSecret requires a projectId","projectId",e.projectId),Rh.assertArgument("string"==typeof e.projectSecret,"invalid projectSecret","projectSecret","[REDACTED]"),t.projectId=e.projectId,t.projectSecret=e.projectSecret):e.projectId&&(t.projectId=e.projectId),t.apiKey=t.projectId),t}static getUrl(e,t){let n=null;switch(e?e.name:"unknown"){case"homestead":n="mainnet.infura.io";break;case"goerli":n="goerli.infura.io";break;case"sepolia":n="sepolia.infura.io";break;case"matic":n="polygon-mainnet.infura.io";break;case"maticmum":n="polygon-mumbai.infura.io";break;case"optimism":n="optimism-mainnet.infura.io";break;case"optimism-goerli":n="optimism-goerli.infura.io";break;case"arbitrum":n="arbitrum-mainnet.infura.io";break;case"arbitrum-goerli":n="arbitrum-goerli.infura.io";break;default:Rh.throwError("unsupported network",Zn.errors.INVALID_ARGUMENT,{argument:"network",value:e})}const r={allowGzip:!0,url:"https://"+n+"/v3/"+t.projectId,throttleCallback:(e,n)=>(t.projectId===Ch&&Zf(),Promise.resolve(!0))};return null!=t.projectSecret&&(r.user="",r.password=t.projectSecret),r}isCommunityResource(){return this.projectId===Ch}}class Sh extends Dp{send(e,t){const n={method:e,params:t,id:this._nextId++,jsonrpc:"2.0"};null==this._pendingBatch&&(this._pendingBatch=[]);const r={request:n,resolve:null,reject:null},i=new Promise(((e,t)=>{r.resolve=e,r.reject=t}));return this._pendingBatch.push(r),this._pendingBatchAggregator||(this._pendingBatchAggregator=setTimeout((()=>{const e=this._pendingBatch;this._pendingBatch=null,this._pendingBatchAggregator=null;const t=e.map((e=>e.request));return this.emit("debug",{action:"requestBatch",request:ri(t),provider:this}),Mf(this.connection,JSON.stringify(t)).then((n=>{this.emit("debug",{action:"response",request:t,response:n,provider:this}),e.forEach(((e,t)=>{const r=n[t];if(r.error){const t=new Error(r.error.message);t.code=r.error.code,t.data=r.error.data,e.reject(t)}else e.resolve(r.result)}))}),(n=>{this.emit("debug",{action:"response",error:n,request:t,provider:this}),e.forEach((e=>{e.reject(n)}))}))}),10)),i}}const Nh=new Zn(Kf);class xh extends Wp{static getApiKey(e){return e&&"string"!=typeof e&&Nh.throwArgumentError("invalid apiKey","apiKey",e),e||"ETHERS_JS_SHARED"}static getUrl(e,t){Nh.warn("NodeSmith will be discontinued on 2019-12-20; please migrate to another platform.");let n=null;switch(e.name){case"homestead":n="https://ethereum.api.nodesmith.io/v1/mainnet/jsonrpc";break;case"ropsten":n="https://ethereum.api.nodesmith.io/v1/ropsten/jsonrpc";break;case"rinkeby":n="https://ethereum.api.nodesmith.io/v1/rinkeby/jsonrpc";break;case"goerli":n="https://ethereum.api.nodesmith.io/v1/goerli/jsonrpc";break;case"kovan":n="https://ethereum.api.nodesmith.io/v1/kovan/jsonrpc";break;default:Nh.throwArgumentError("unsupported network","network",arguments[0])}return n+"?apiKey="+t}}const Ph=new Zn(Kf),Mh="62e1ad51b37b8e00394bda3b";class Bh extends Wp{static getApiKey(e){const t={applicationId:null,loadBalancer:!0,applicationSecretKey:null};return null==e?t.applicationId=Mh:"string"==typeof e?t.applicationId=e:null!=e.applicationSecretKey?(t.applicationId=e.applicationId,t.applicationSecretKey=e.applicationSecretKey):e.applicationId?t.applicationId=e.applicationId:Ph.throwArgumentError("unsupported PocketProvider apiKey","apiKey",e),t}static getUrl(e,t){let n=null;switch(e?e.name:"unknown"){case"goerli":n="eth-goerli.gateway.pokt.network";break;case"homestead":n="eth-mainnet.gateway.pokt.network";break;case"kovan":n="poa-kovan.gateway.pokt.network";break;case"matic":n="poly-mainnet.gateway.pokt.network";break;case"maticmum":n="polygon-mumbai-rpc.gateway.pokt.network";break;case"rinkeby":n="eth-rinkeby.gateway.pokt.network";break;case"ropsten":n="eth-ropsten.gateway.pokt.network";break;default:Ph.throwError("unsupported network",Zn.errors.INVALID_ARGUMENT,{argument:"network",value:e})}const r={headers:{},url:`https://${n}/v1/lb/${t.applicationId}`};return null!=t.applicationSecretKey&&(r.user="",r.password=t.applicationSecretKey),r}isCommunityResource(){return this.applicationId===Mh}}const Dh=new Zn(Kf);let Fh=1;function Lh(e,t){const n="Web3LegacyFetcher";return function(e,r){const i={method:e,params:r,id:Fh++,jsonrpc:"2.0"};return new Promise(((e,r)=>{this.emit("debug",{action:"request",fetcher:n,request:ri(i),provider:this}),t(i,((t,a)=>{if(t)return this.emit("debug",{action:"response",fetcher:n,error:t,request:i,provider:this}),r(t);if(this.emit("debug",{action:"response",fetcher:n,request:i,response:a,provider:this}),a.error){const e=new Error(a.error.message);return e.code=a.error.code,e.data=a.error.data,r(e)}e(a.result)}))}))}}class Uh extends Dp{constructor(e,t){null==e&&Dh.throwArgumentError("missing provider","provider",e);let n=null,r=null,i=null;"function"==typeof e?(n="unknown:",r=e):(n=e.host||e.path||"",!n&&e.isMetaMask&&(n="metamask"),i=e,e.request?(""===n&&(n="eip-1193:"),r=function(e){return function(t,n){null==n&&(n=[]);const r={method:t,params:n};return this.emit("debug",{action:"request",fetcher:"Eip1193Fetcher",request:ri(r),provider:this}),e.request(r).then((e=>(this.emit("debug",{action:"response",fetcher:"Eip1193Fetcher",request:r,response:e,provider:this}),e)),(e=>{throw this.emit("debug",{action:"response",fetcher:"Eip1193Fetcher",request:r,error:e,provider:this}),e}))}}(e)):e.sendAsync?r=Lh(0,e.sendAsync.bind(e)):e.send?r=Lh(0,e.send.bind(e)):Dh.throwArgumentError("unsupported provider","provider",e),n||(n="unknown:")),super(n,t),Jr(this,"jsonRpcFetchFunc",r),Jr(this,"provider",i)}send(e,t){return this.jsonRpcFetchFunc(e,t)}}const qh=new Zn(Kf);function jh(e,t){if(null==e&&(e="homestead"),"string"==typeof e){const t=e.match(/^(ws|http)s?:/i);if(t)switch(t[1].toLowerCase()){case"http":case"https":return new Dp(e);case"ws":case"wss":return new jp(e);default:qh.throwArgumentError("unsupported URL scheme","network",e)}}const n=Rf(e);return n&&n._defaultProvider||qh.throwError("unsupported getDefaultProvider network",Zn.errors.NETWORK_ERROR,{operation:"getDefaultProvider",network:e}),n._defaultProvider({FallbackProvider:Ih,AlchemyProvider:Jp,AnkrProvider:Zp,CloudflareProvider:nh,EtherscanProvider:lh,InfuraProvider:kh,JsonRpcProvider:Dp,NodesmithProvider:xh,PocketProvider:Bh,Web3Provider:Uh,IpcProvider:null},t)}var Gh=Object.freeze({__proto__:null,AlchemyProvider:Jp,AlchemyWebSocketProvider:Xp,AnkrProvider:Zp,BaseProvider:Ap,CloudflareProvider:nh,EtherscanProvider:lh,FallbackProvider:Ih,Formatter:Jf,InfuraProvider:kh,InfuraWebSocketProvider:Oh,IpcProvider:null,JsonRpcBatchProvider:Sh,JsonRpcProvider:Dp,JsonRpcSigner:Pp,NodesmithProvider:xh,PocketProvider:Bh,Provider:gs,Resolver:Tp,StaticJsonRpcProvider:zp,UrlJsonRpcProvider:Wp,Web3Provider:Uh,WebSocketProvider:jp,getDefaultProvider:jh,getNetwork:Rf,isCommunityResourcable:Yf,isCommunityResource:Qf,showThrottleMessage:Zf});const Hh=new RegExp("^bytes([0-9]+)$"),zh=new RegExp("^(u?int)([0-9]*)$"),Wh=new RegExp("^(.*)\\[([0-9]*)\\]$"),Vh="0000000000000000000000000000000000000000000000000000000000000000",Kh=new Zn("solidity/5.7.0");function Xh(e,t,n){switch(e){case"address":return n?lr(t,32):sr(t);case"string":return Pa(t);case"bytes":return sr(t);case"bool":return t=t?"0x01":"0x00",n?lr(t,32):sr(t)}let r=e.match(zh);if(r){let i=parseInt(r[2]||"256");return(r[2]&&String(i)!==r[2]||i%8!=0||0===i||i>256)&&Kh.throwArgumentError("invalid number type","type",e),n&&(i=256),lr(t=kr.from(t).toTwos(i),i/8)}if(r=e.match(Hh),r){const i=parseInt(r[1]);return(String(i)!==r[1]||0===i||i>32)&&Kh.throwArgumentError("invalid bytes type","type",e),sr(t).byteLength!==i&&Kh.throwArgumentError(`invalid value for ${e}`,"value",t),n?sr((t+Vh).substring(0,66)):t}if(r=e.match(Wh),r&&Array.isArray(t)){const n=r[1];parseInt(r[2]||String(t.length))!=t.length&&Kh.throwArgumentError(`invalid array length for ${e}`,"value",t);const i=[];return t.forEach((function(e){i.push(Xh(n,e,!0))})),ur(i)}return Kh.throwArgumentError("invalid type","type",e)}function Jh(e,t){e.length!=t.length&&Kh.throwArgumentError("wrong number of values; expected ${ types.length }","values",t);const n=[];return e.forEach((function(e,r){n.push(Xh(e,t[r]))})),pr(ur(n))}function Yh(e,t){return Di(Jh(e,t))}function Qh(e,t){return nd(Jh(e,t))}var $h=Object.freeze({__proto__:null,keccak256:Yh,pack:Jh,sha256:Qh});const Zh=new Zn("units/5.7.0"),em=["wei","kwei","mwei","gwei","szabo","finney","ether"];function tm(e){const t=String(e).split(".");(t.length>2||!t[0].match(/^-?[0-9]*$/)||t[1]&&!t[1].match(/^[0-9]*$/)||"."===e||"-."===e)&&Zh.throwArgumentError("invalid value","value",e);let n=t[0],r="";for("-"===n.substring(0,1)&&(r="-",n=n.substring(1));"0"===n.substring(0,1);)n=n.substring(1);""===n&&(n="0");let i="";for(2===t.length&&(i="."+(t[1]||"0"));i.length>2&&"0"===i[i.length-1];)i=i.substring(0,i.length-1);const a=[];for(;n.length;){if(n.length<=3){a.unshift(n);break}{const e=n.length-3;a.unshift(n.substring(e)),n=n.substring(0,e)}}return r+a.join(",")+i}function nm(e,t){if("string"==typeof t){const e=em.indexOf(t);-1!==e&&(t=3*e)}return jr(e,null!=t?t:18)}function rm(e,t){if("string"!=typeof e&&Zh.throwArgumentError("value must be a string","value",e),"string"==typeof t){const e=em.indexOf(t);-1!==e&&(t=3*e)}return Gr(e,null!=t?t:18)}function im(e){return nm(e,18)}function am(e){return rm(e,18)}var om=Object.freeze({__proto__:null,commify:tm,formatEther:im,formatUnits:nm,parseEther:am,parseUnits:rm}),sm=Object.freeze({__proto__:null,AbiCoder:io,ConstructorFragment:Ei,ErrorFragment:Ii,EventFragment:bi,FormatTypes:pi,Fragment:gi,FunctionFragment:Ai,HDNode:Ad,Indexed:cs,Interface:fs,LogDescription:os,Logger:Zn,ParamType:mi,RLP:Vi,SigningKey:ll,get SupportedAlgorithm(){return $l},TransactionDescription:ss,get TransactionTypes(){return ml},get UnicodeNormalizationForm(){return Oa},Utf8ErrorFuncs:Na,get Utf8ErrorReason(){return ka},_TypedDataEncoder:rs,_fetchData:Pf,_toEscapedUtf8String:Ba,accessListify:_l,arrayify:sr,base58:Ql,base64:lo,checkProperties:$r,checkResultErrors:Ni,commify:tm,computeAddress:Tl,computeHmac:id,computePublicKey:fl,concat:ur,deepCopy:ri,defaultAbiCoder:ao,defaultPath:Ed,defineReadOnly:Jr,dnsEncode:Uo,entropyToMnemonic:Rd,fetchJson:Mf,formatBytes32String:Ua,formatEther:im,formatUnits:nm,getAccountPath:Od,getAddress:$i,getContractAddress:ta,getCreate2Address:na,getIcapAddress:ea,getJsonWalletAddress:Jd,getStatic:Yr,hashMessage:jo,hexConcat:yr,hexDataLength:hr,hexDataSlice:mr,hexStripZeros:br,hexValue:gr,hexZeroPad:vr,hexlify:pr,id:oo,isAddress:Zi,isBytes:or,isBytesLike:ir,isHexString:dr,isValidMnemonic:Cd,isValidName:Fo,joinSignature:wr,keccak256:Di,mnemonicToEntropy:Id,mnemonicToSeed:_d,namehash:Lo,nameprep:Qa,parseBytes32String:qa,parseEther:am,parseTransaction:Sl,parseUnits:rm,poll:Bf,randomBytes:Pd,recoverAddress:wl,recoverPublicKey:dl,resolveProperties:Qr,ripemd160:td,serializeTransaction:Ol,sha256:nd,sha512:rd,shallowCopy:Zr,shuffled:Md,solidityKeccak256:Yh,solidityPack:Jh,soliditySha256:Qh,splitSignature:Tr,stripZeros:cr,toUtf8Bytes:Pa,toUtf8CodePoints:La,toUtf8String:Fa,verifyMessage:yf,verifyTypedData:gf,zeroPad:lr});const um="ethers/5.7.2",cm=new Zn(um);var lm=Object.freeze({__proto__:null,BaseContract:Vl,BigNumber:kr,Contract:Kl,ContractFactory:Xl,FixedNumber:zr,Signer:Es,VoidSigner:As,Wallet:mf,Wordlist:ud,constants:Ia,get errors(){return Qn},getDefaultProvider:jh,logger:cm,providers:Gh,utils:sm,version:um,wordlists:fd});try{const e=window;null==e._ethers&&(e._ethers=lm)}catch(e){}var dm,fm,pm,hm,mm,ym,gm,bm=Object.freeze({__proto__:null,BaseContract:Vl,BigNumber:kr,Contract:Kl,ContractFactory:Xl,FixedNumber:zr,Signer:Es,VoidSigner:As,Wallet:mf,Wordlist:ud,constants:Ia,get errors(){return Qn},ethers:lm,getDefaultProvider:jh,logger:cm,providers:Gh,utils:sm,version:um,wordlists:fd});e.ChainId=void 0,function(e){e[e.IMTBL_ZKEVM_MAINNET=13371]="IMTBL_ZKEVM_MAINNET",e[e.IMTBL_ZKEVM_TESTNET=13473]="IMTBL_ZKEVM_TESTNET",e[e.IMTBL_ZKEVM_DEVNET=13433]="IMTBL_ZKEVM_DEVNET",e[e.ETHEREUM=1]="ETHEREUM",e[e.SEPOLIA=11155111]="SEPOLIA"}(e.ChainId||(e.ChainId={})),e.ChainName=void 0,(dm=e.ChainName||(e.ChainName={})).ETHEREUM="Ethereum",dm.SEPOLIA="Sepolia",dm.IMTBL_ZKEVM_TESTNET="Immutable zkEVM Test",dm.IMTBL_ZKEVM_DEVNET="Immutable zkEVM Dev",dm.IMTBL_ZKEVM_MAINNET="Immutable zkEVM",e.ChainSlug=void 0,(fm=e.ChainSlug||(e.ChainSlug={})).ETHEREUM="ethereum",fm.SEPOLIA="sepolia",fm.IMTBL_ZKEVM_MAINNET="imtbl-zkevm-mainnet",fm.IMTBL_ZKEVM_TESTNET="imtbl-zkevm-testnet",fm.IMTBL_ZKEVM_DEVNET="imtbl-zkevm-devnet",function(e){e.TRANSAK="201811419111"}(pm||(pm={})),e.GasEstimateType=void 0,(hm=e.GasEstimateType||(e.GasEstimateType={})).BRIDGE_TO_L2="BRIDGE_TO_L2",hm.SWAP="SWAP",e.NetworkFilterTypes=void 0,(e.NetworkFilterTypes||(e.NetworkFilterTypes={})).ALL="all",e.TokenFilterTypes=void 0,(mm=e.TokenFilterTypes||(e.TokenFilterTypes={})).ALL="all",mm.SWAP="swap",mm.BRIDGE="bridge",mm.ONRAMP="onramp",function(e){e.CHECK_CONNECTION="eth_accounts",e.CONNECT="eth_requestAccounts",e.ADD_NETWORK="wallet_addEthereumChain",e.SWITCH_NETWORK="wallet_switchEthereumChain",e.GET_CHAINID="eth_chainId",e.REQUEST_PERMISSIONS="wallet_requestPermissions"}(ym||(ym={})),e.WalletFilterTypes=void 0,(e.WalletFilterTypes||(e.WalletFilterTypes={})).ALL="all",e.WalletProviderName=void 0,(gm=e.WalletProviderName||(e.WalletProviderName={})).PASSPORT="passport",gm.METAMASK="metamask";const vm={allowMistmatchedChainId:!1,allowUnsupportedProvider:!1};var Tm,wm,Em,Am,_m,Im,Rm;e.CheckoutStatus=void 0,(Tm=e.CheckoutStatus||(e.CheckoutStatus={})).SUCCESS="SUCCESS",Tm.FAILED="FAILED",Tm.INSUFFICIENT_FUNDS="INSUFFICIENT_FUNDS",Tm.FULFILLMENTS_UNSETTLED="FULFILLMENTS_UNSETTLED",e.ItemType=void 0,function(e){e.NATIVE="NATIVE",e.ERC20="ERC20",e.ERC721="ERC721"}(e.ItemType||(e.ItemType={})),e.TransactionOrGasType=void 0,(wm=e.TransactionOrGasType||(e.TransactionOrGasType={})).TRANSACTION="TRANSACTION",wm.GAS="GAS",e.GasTokenType=void 0,(Em=e.GasTokenType||(e.GasTokenType={})).NATIVE="NATIVE",Em.ERC20="ERC20",e.RoutingOutcomeType=void 0,(Am=e.RoutingOutcomeType||(e.RoutingOutcomeType={})).ROUTES_FOUND="ROUTES_FOUND",Am.NO_ROUTES_FOUND="NO_ROUTES_FOUND",Am.NO_ROUTE_OPTIONS="NO_ROUTE_OPTIONS",e.FeeType=void 0,function(e){e.GAS="GAS",e.BRIDGE_FEE="BRIDGE_FEE",e.SWAP_FEE="SWAP_FEE",e.IMMUTABLE_FEE="IMMUTABLE_FEE"}(e.FeeType||(e.FeeType={})),e.FundingStepType=void 0,(_m=e.FundingStepType||(e.FundingStepType={})).BRIDGE="BRIDGE",_m.SWAP="SWAP",_m.ONRAMP="ONRAMP",e.ExchangeType=void 0,(e.ExchangeType||(e.ExchangeType={})).ONRAMP="onramp",e.CheckoutErrorType=void 0,(Im=e.CheckoutErrorType||(e.CheckoutErrorType={})).MISSING_PARAMS="MISSING_PARAMS",Im.WEB3_PROVIDER_ERROR="WEB3_PROVIDER_ERROR",Im.PROVIDER_ERROR="PROVIDER_ERROR",Im.DEFAULT_PROVIDER_ERROR="DEFAULT_PROVIDER_ERROR",Im.CONNECT_PROVIDER_ERROR="CONNECT_PROVIDER_ERROR",Im.GET_BALANCE_ERROR="GET_BALANCE_ERROR",Im.GET_INDEXER_BALANCE_ERROR="GET_INDEXER_BALANCE_ERROR",Im.GET_ERC20_INFO_ERROR="GET_ERC20_INFO_ERROR",Im.GET_ERC20_BALANCE_ERROR="GET_ERC20_BALANCE_ERROR",Im.GET_ERC721_BALANCE_ERROR="GET_ERC721_BALANCE_ERROR",Im.GET_NETWORK_INFO_ERROR="GET_NETWORK_INFO_ERROR",Im.METAMASK_PROVIDER_ERROR="METAMASK_PROVIDER_ERROR",Im.CHAIN_NOT_SUPPORTED_ERROR="CHAIN_NOT_SUPPORTED_ERROR",Im.PROVIDER_REQUEST_MISSING_ERROR="PROVIDER_REQUEST_MISSING_ERROR",Im.PROVIDER_REQUEST_FAILED_ERROR="PROVIDER_REQUEST_FAILED_ERROR",Im.USER_REJECTED_REQUEST_ERROR="USER_REJECTED_REQUEST_ERROR",Im.TRANSACTION_FAILED="TRANSACTION_FAILED",Im.INSUFFICIENT_FUNDS="INSUFFICIENT_FUNDS",Im.UNPREDICTABLE_GAS_LIMIT="UNPREDICTABLE_GAS_LIMIT",Im.INVALID_GAS_ESTIMATE_TYPE="INVALID_GAS_ESTIMATE_TYPE",Im.UNSUPPORTED_TOKEN_TYPE_ERROR="UNSUPPORTED_TOKEN_TYPE_ERROR",Im.UNSUPPORTED_BALANCE_REQUIREMENT_ERROR="UNSUPPORTED_BALANCE_REQUIREMENT_ERROR",Im.GET_ORDER_LISTING_ERROR="GET_ORDER_LISTING_ERROR",Im.CANCEL_ORDER_LISTING_ERROR="CANCEL_ORDER_LISTING_ERROR",Im.PREPARE_ORDER_LISTING_ERROR="PREPARE_ORDER_LISTING_ERROR",Im.CREATE_ORDER_LISTING_ERROR="CREATE_ORDER_LISTING_ERROR",Im.FULFILL_ORDER_LISTING_ERROR="FULFILL_ORDER_LISTING_ERROR",Im.SWITCH_NETWORK_UNSUPPORTED="SWITCH_NETWORK_UNSUPPORTED",Im.GET_ERC20_ALLOWANCE_ERROR="GET_ERC20_ALLOWANCE_ERROR",Im.GET_ERC721_ALLOWANCE_ERROR="GET_ERC721_ALLOWANCE_ERROR",Im.EXECUTE_APPROVAL_TRANSACTION_ERROR="EXECUTE_APPROVAL_TRANSACTION_ERROR",Im.EXECUTE_FULFILLMENT_TRANSACTION_ERROR="EXECUTE_FULFILLMENT_TRANSACTION_ERROR",Im.SIGN_MESSAGE_ERROR="SIGN_MESSAGE_ERROR",Im.BRIDGE_GAS_ESTIMATE_ERROR="BRIDGE_GAS_ESTIMATE_ERROR",Im.ORDER_FEE_ERROR="ORDER_FEE_ERROR",Im.ITEM_REQUIREMENTS_ERROR="ITEM_REQUIREMENTS_ERROR",Im.API_ERROR="API_ERROR",Im.ORDER_EXPIRED_ERROR="ORDER_EXPIRED_ERROR",Im.WIDGETS_SCRIPT_LOAD_ERROR="WIDGETS_SCRIPT_LOAD_ERROR";class Cm extends Error{message;type;data;constructor(e,t,n){super(e),this.message=e,this.type=t,this.data=n}}!function(e){e.REJECTED_SWITCH_AFTER_ADDING_NETWORK="REJECTED_SWITCH_AFTER_ADDING_NETWORK"}(Rm||(Rm={}));const Om=async(e,t)=>{try{return await e()}catch(e){const n=`${e.message}`||"UnknownError",r=t.message?`[${t.type}]:${t.message}. Cause:${n}`:`[${t.type}] Cause:${n}`;if(e instanceof Cm)throw new Cm(r,t.type,{...t.data,innerErrorType:e.type,...e.data});throw new Cm(r,t.type,{...t.data})}};async function km(t){if(!t.provider?.request)throw new Cm("Parsed provider is not a valid Web3Provider",e.CheckoutErrorType.WEB3_PROVIDER_ERROR);const n=await t.provider.request({method:ym.GET_CHAINID,params:[]});return parseInt(n,16)}async function Sm(t,{type:n=e.NetworkFilterTypes.ALL,exclude:r}){const{networkMap:i}=t,a=await t.remote.getConfig("allowedNetworks");a||console.warn("No allowed networks configured");const o=(a||[]).filter((t=>{const i=n===e.NetworkFilterTypes.ALL,a=!(r||[]).map((e=>e.chainId)).includes(t.chainId);return i&&a})),s=[];return o.forEach((e=>{const t=i.get(e.chainId);t&&s.push({name:t.chainName,chainId:parseInt(t.chainIdHex,16),nativeCurrency:t.nativeCurrency,isSupported:!0})})),{networks:s}}async function Nm(t,n){const{networkMap:r}=t;return Om((async()=>{try{const e=await n.getNetwork();if(Array.from(r.keys()).includes(e.chainId)){const t=r.get(e.chainId);return{name:t.chainName,chainId:parseInt(t.chainIdHex,16),nativeCurrency:t.nativeCurrency,isSupported:!0}}return{chainId:e.chainId,name:e.name,isSupported:!1}}catch(e){const t=await km(n);return{chainId:t,isSupported:Array.from(r.keys()).includes(t)}}}),{type:e.CheckoutErrorType.GET_NETWORK_INFO_ERROR})}async function xm(t,n,r){const{networkMap:i}=t;if(!(await Sm(t,{type:e.NetworkFilterTypes.ALL})).networks.some((e=>e.chainId===r)))throw new Cm(`Chain:${r} is not a supported chain`,e.CheckoutErrorType.CHAIN_NOT_SUPPORTED_ERROR);if(n.provider?.isPassport)throw new Cm("Switching networks with Passport provider is not supported",e.CheckoutErrorType.SWITCH_NETWORK_UNSUPPORTED);try{await async function(e,t,n){if(t.provider?.request)return await t.provider.request({method:ym.SWITCH_NETWORK,params:[{chainId:e.get(n)?.chainIdHex}]})}(i,n,r)}catch(t){if(4902!==t.code)throw new Cm("User cancelled switch network request",e.CheckoutErrorType.USER_REJECTED_REQUEST_ERROR);try{await async function(e,t,n){if(t.provider?.request){const r=e.get(n),i={chainId:r?.chainIdHex,chainName:r?.chainName,rpcUrls:r?.rpcUrls,nativeCurrency:r?.nativeCurrency,blockExplorerUrls:r?.blockExplorerUrls};return await t.provider.request({method:ym.ADD_NETWORK,params:[i]})}}(i,n,r)}catch(t){throw new Cm("User cancelled add network request",e.CheckoutErrorType.USER_REJECTED_REQUEST_ERROR,{error:t})}}const a=new Uh(n.provider);if((await a.getNetwork()).chainId!==r)throw new Cm("User cancelled switch network request",e.CheckoutErrorType.USER_REJECTED_REQUEST_ERROR);return{network:await Nm(t,a),provider:a}}const Pm="development",Mm=18,Bm="native",Dm={name:"IMX",symbol:"IMX",decimals:Mm,address:Bm},Fm={[Pm]:"https://api.dev.immutable.com",[Bt.SANDBOX]:"https://api.sandbox.immutable.com",[Bt.PRODUCTION]:"https://api.immutable.com"},Lm={[Pm]:"https://checkout-api.dev.immutable.com",[Bt.SANDBOX]:"https://checkout-api.sandbox.immutable.com",[Bt.PRODUCTION]:"https://checkout-api.immutable.com"},Um={[Bt.SANDBOX]:"https://global-stg.transak.com",[Bt.PRODUCTION]:"https://global.transak.com/"},qm=new Map([[e.ChainId.ETHEREUM,{chainIdHex:`0x${e.ChainId.ETHEREUM.toString(16)}`,chainName:e.ChainName.ETHEREUM,rpcUrls:["https://checkout-api.immutable.com/v1/rpc/eth-mainnet"],nativeCurrency:{name:e.ChainName.ETHEREUM,symbol:"ETH",decimals:18},blockExplorerUrls:["https://etherscan.io/"]}],[e.ChainId.IMTBL_ZKEVM_MAINNET,{chainIdHex:`0x${e.ChainId.IMTBL_ZKEVM_MAINNET.toString(16)}`,chainName:e.ChainName.IMTBL_ZKEVM_MAINNET,rpcUrls:["https://rpc.immutable.com"],nativeCurrency:Dm}]]),jm=new Map([[e.ChainId.SEPOLIA,{chainIdHex:`0x${e.ChainId.SEPOLIA.toString(16)}`,chainName:e.ChainName.SEPOLIA,rpcUrls:["https://checkout-api.sandbox.immutable.com/v1/rpc/eth-sepolia"],nativeCurrency:{name:"Sep Eth",symbol:"ETH",decimals:18},blockExplorerUrls:["https://sepolia.etherscan.io/"]}],[e.ChainId.IMTBL_ZKEVM_TESTNET,{chainIdHex:`0x${e.ChainId.IMTBL_ZKEVM_TESTNET.toString(16)}`,chainName:e.ChainName.IMTBL_ZKEVM_TESTNET,rpcUrls:["https://rpc.testnet.immutable.com"],nativeCurrency:Dm}]]),Gm=new Map([[e.ChainId.SEPOLIA,{chainIdHex:`0x${e.ChainId.SEPOLIA.toString(16)}`,chainName:e.ChainName.SEPOLIA,rpcUrls:["https://checkout-api.dev.immutable.com/v1/rpc/eth-sepolia"],nativeCurrency:{name:"Sep Eth",symbol:"ETH",decimals:18},blockExplorerUrls:["https://sepolia.etherscan.io/"]}],[e.ChainId.IMTBL_ZKEVM_DEVNET,{chainIdHex:`0x${e.ChainId.IMTBL_ZKEVM_DEVNET.toString(16)}`,chainName:e.ChainName.IMTBL_ZKEVM_DEVNET,rpcUrls:["https://rpc.dev.immutable.com"],nativeCurrency:Dm}]]),Hm={[e.ChainId.IMTBL_ZKEVM_TESTNET]:{url:"https://explorer.testnet.immutable.com",nativeToken:jm.get(e.ChainId.IMTBL_ZKEVM_TESTNET).nativeCurrency},[e.ChainId.IMTBL_ZKEVM_MAINNET]:{url:"https://explorer.immutable.com",nativeToken:qm.get(e.ChainId.IMTBL_ZKEVM_MAINNET).nativeCurrency},[e.ChainId.SEPOLIA]:{url:"https://eth-sepolia.blockscout.com",nativeToken:jm.get(e.ChainId.SEPOLIA).nativeCurrency},[e.ChainId.ETHEREUM]:{url:"https://eth.blockscout.com/",nativeToken:qm.get(e.ChainId.ETHEREUM).nativeCurrency}},zm=[{constant:!0,inputs:[],name:"name",outputs:[{name:"",type:"string"}],payable:!1,type:"function"},{constant:!0,inputs:[],name:"decimals",outputs:[{name:"",type:"uint8"}],payable:!1,type:"function"},{constant:!0,inputs:[{name:"_owner",type:"address"}],name:"balanceOf",outputs:[{name:"balance",type:"uint256"}],payable:!1,type:"function"},{constant:!0,inputs:[],name:"symbol",outputs:[{name:"",type:"string"}],payable:!1,type:"function"},{constant:!0,inputs:[{name:"_owner",type:"address"},{name:"_spender",type:"address"}],name:"allowance",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_spender",type:"address"},{name:"_value",type:"uint256"}],name:"approve",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function"}],Wm=[{constant:!1,inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"approve",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"operator",type:"address"}],name:"isApprovedForAll",outputs:[{internalType:"bool",name:"",type:"bool"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"getApproved",outputs:[{internalType:"address",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"ownerOf",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"}],Vm={maxFeePerGas:kr.from(15e9),maxPriorityFeePerGas:kr.from(1e10)},Km=()=>"0.45.5";class Xm{httpClient;isDevelopment;isProduction;configCache;tokensCache;version="v1";constructor(e,t){this.isDevelopment=t.isDevelopment,this.isProduction=t.isProduction,this.httpClient=e}getEndpoint=()=>this.isDevelopment?Lm[Pm]:this.isProduction?Lm[Bt.PRODUCTION]:Lm[Bt.SANDBOX];parseResponse(t){let n=t.data;if(t.data&&"object"!=typeof t.data)try{n=JSON.parse(t.data)}catch(t){throw new Cm("Invalid configuration",e.CheckoutErrorType.API_ERROR,{error:t})}return n}async loadConfig(){if(this.configCache)return this.configCache;let t;try{t=await this.httpClient.get(`${this.getEndpoint()}/${this.version}/config`)}catch(t){throw new Cm(`Error: ${t.message}`,e.CheckoutErrorType.API_ERROR,{error:t})}return this.configCache=this.parseResponse(t),this.configCache}async loadConfigTokens(){if(this.tokensCache)return this.tokensCache;let t;try{t=await this.httpClient.get(`${this.getEndpoint()}/${this.version}/config/tokens`)}catch(t){throw new Cm(`Error: ${t.message}`,e.CheckoutErrorType.API_ERROR,{error:t})}return this.tokensCache=this.parseResponse(t),this.tokensCache}async getConfig(e){const t=await this.loadConfig();if(t)return e?t[e]:t}async getTokensConfig(e){const t=await this.loadConfigTokens();return t&&t[e]?t[e]??[]:{}}getHttpClient=()=>this.httpClient}class Jm extends Error{message;constructor(e){super(e),this.message=e}}const Ym=t=>t.isProduction?e.ChainId.ETHEREUM:e.ChainId.SEPOLIA,Qm=t=>t.isDevelopment?e.ChainId.IMTBL_ZKEVM_DEVNET:t.isProduction?e.ChainId.IMTBL_ZKEVM_MAINNET:e.ChainId.IMTBL_ZKEVM_TESTNET;class $m{isDevelopment=!1;isProduction;isOnRampEnabled;isSwapEnabled;isBridgeEnabled;remote;environment;networkMap;constructor(e,t){if(!Object.values(Bt).includes(e.baseConfig.environment))throw new Jm("Invalid checkout configuration of environment");var n;this.environment=e.baseConfig.environment,this.isProduction=!this.isDevelopment&&this.environment===Bt.PRODUCTION,this.isOnRampEnabled=e.onRamp?.enable??true,this.isSwapEnabled=e.swap?.enable??true,this.isBridgeEnabled=e.bridge?.enable??true,this.networkMap=(n=this.isProduction,this.isDevelopment?Gm:n?qm:jm),this.remote=new Xm(t,{isDevelopment:this.isDevelopment,isProduction:this.isProduction})}}const Zm=(e="",t="")=>e.toLowerCase()===t.toLowerCase(),ey=async(t,{type:n=e.TokenFilterTypes.ALL,chainId:r,exclude:i})=>{let a,o,s=[];const u=r??Ym(t);switch(n){case e.TokenFilterTypes.SWAP:s=(await t.remote.getConfig("dex")).tokens||[];break;case e.TokenFilterTypes.ONRAMP:a=await t.remote.getConfig("onramp"),a||(s=[]),s=a[pm.TRANSAK]?.tokens||[];break;case e.TokenFilterTypes.BRIDGE:o=await t.remote.getConfig("bridge"),o||(s=[]),s=o[u]?.tokens||[];break;case e.TokenFilterTypes.ALL:default:s=(await t.remote.getTokensConfig(u)).allowed}return i&&0!==i?.length?{tokens:s.filter((e=>!i.map((e=>e.address)).includes(e.address||"")))}:{tokens:s}},ty=e=>!e||Zm(e,Bm);async function ny(t,n){return await Om((async()=>{const e=new Kl(n,JSON.stringify(zm),t),[r,i,a]=await Promise.all([e.name(),e.symbol(),e.decimals()]);return{name:r,symbol:i,decimals:a,address:n}}),{type:e.CheckoutErrorType.GET_ERC20_INFO_ERROR})}class ry{url;nativeToken;ttl;chainId;cacheMap;httpClient;setCache(e,t){this.cacheMap[e]={data:t,ttl:(new Date).getTime()+1e3*this.ttl}}getCache(e){const t=this.cacheMap[e];return!t||t.ttl<=(new Date).getTime()?null:t.data}constructor(e,t,n){this.httpClient=e,this.chainId=t,this.url=Hm[this.chainId].url;const r=Hm[this.chainId].nativeToken;this.nativeToken={address:r.address??"",decimals:r.decimals.toString(),name:r.name,symbol:r.symbol},this.cacheMap={},this.ttl=void 0!==n?n:5}static isChainSupported=e=>Boolean(Hm[e]);static isBlockscoutError=e=>"code"in e;async getTokensByWalletAddress(e){try{let t=`${this.url}/api/v2/addresses/${e.walletAddress}/tokens?type=${e.tokenType}`;e.nextPage&&(t+=`&${new URLSearchParams(e.nextPage)}`);const n=this.getCache(t);if(n)return Promise.resolve(n);const r=await this.httpClient.get(t),i={items:r.data?.items?.filter((e=>e.token.address&&e.token.address!==this.nativeToken.address)),next_page_params:r.data?.next_page_params};return this.setCache(t,i),Promise.resolve(i)}catch(e){let t=dt.InternalServerError,n="InternalServerError";return $e.isAxiosError(e)&&(t=e.response?.status||t,n=e.message),Promise.reject({code:t,message:n})}}async getNativeTokenByWalletAddress(e){try{const t=`${this.url}/api/v2/addresses/${e.walletAddress}`,n=this.getCache(t);if(n)return Promise.resolve(n);const r=await this.httpClient.get(t),i={token:this.nativeToken,value:r.data.coin_balance};return this.setCache(t,i),Promise.resolve(i)}catch(e){let t=dt.InternalServerError,n="InternalServerError";return $e.isAxiosError(e)&&(t=e.response?.status||t,n=e.message),Promise.reject({code:t,message:n})}}}var iy;!function(e){e.ERC20="ERC-20"}(iy||(iy={}));const ay=(e,t,n)=>{e.isProduction||console.info(t,n)},oy=async(e,t,n)=>{const r=performance.now(),i=await n,a=performance.now();return ay(e,t,(a-r)/1e3),i},sy=async(t,n,r)=>await Om((async()=>{const i=await Nm(t,n);if(!i.isSupported)throw new Cm(`Chain:${i.chainId} is not a supported chain`,e.CheckoutErrorType.CHAIN_NOT_SUPPORTED_ERROR,{chainName:i.name});const a=await n.getBalance(r);return{balance:a,formattedBalance:nm(a,i.nativeCurrency.decimals),token:i.nativeCurrency}}),{type:e.CheckoutErrorType.GET_BALANCE_ERROR});async function uy(t,n,r){return await Om((async()=>{const e=new Kl(r,JSON.stringify(zm),t);return Promise.all([ny(t,r),e.balanceOf(n)]).then((([e,t])=>({balance:t,formattedBalance:nm(t,e.decimals),token:{name:e.name,symbol:e.symbol,decimals:e.decimals,address:r}})))}),{type:e.CheckoutErrorType.GET_ERC20_BALANCE_ERROR})}const cy=new Map,ly=()=>cy.clear(),dy=async(t,n,r,i,a=!1)=>{if(!r&&!n)throw new Cm("both walletAddress and provider are missing. At least one must be provided.",e.CheckoutErrorType.MISSING_PARAMS);if(!t.networkMap.get(i))throw new Cm(`chain ID ${i} not supported by the environment`,e.CheckoutErrorType.CHAIN_NOT_SUPPORTED_ERROR);const{tokens:o}=await ey(t,{type:e.TokenFilterTypes.ALL,chainId:i});let s=!1;try{s=(await t.remote.getTokensConfig(i)).blockscout||s}catch(e){console.error(e)}a&&ly();let u=r;if(s&&ry.isChainSupported(i)){const r=Ym(t)===i;return u||(u=await(n?.getSigner().getAddress())),await oy(t,`Time to fetch balances using blockscout for ${i}`,(async(t,n,r,i)=>{const a=void 0!==i,o=Object.assign({},...(i??[]).map((e=>({[e.address||Bm]:e}))));let s=cy.get(r);if(!s){const e=t.remote.getHttpClient();s=new ry(e,r),cy.set(r,s)}const u=[],c=iy.ERC20;await Promise.all([(async t=>{let r;try{do{r=await t.getTokensByWalletAddress({walletAddress:n,tokenType:c,nextPage:r?.next_page_params}),u.push(...r.items)}while(r.next_page_params)}catch(t){if(t?.code!==dt.NotFound)throw new Cm(t.message||"InternalServerError | getTokensByWalletAddress",e.CheckoutErrorType.GET_INDEXER_BALANCE_ERROR,{error:t})}})(s),(async t=>{try{const e=await t.getNativeTokenByWalletAddress({walletAddress:n});e.token.address||=Bm,u.push(e)}catch(t){if(t?.code!==dt.NotFound)throw new Cm(t.message||"InternalServerError | getNativeTokenByWalletAddress",e.CheckoutErrorType.GET_INDEXER_BALANCE_ERROR,{error:t})}})(s)]);const l=[];return u.forEach((e=>{if(a&&!o[e.token.address])return;const t=e.token||{},n=kr.from(e.value);let r=parseInt(t.decimals,10);Number.isNaN(r)&&(r=Mm);const i={...t,decimals:r},s=nm(e.value,i.decimals);l.push({balance:n,formattedBalance:s,token:i})})),{balances:l}})(t,u,i,r?o:void 0))}if(!n)throw new Cm("indexer is disabled for this chain, you must provide a provider.",e.CheckoutErrorType.MISSING_PARAMS);return u||=await n.getSigner().getAddress(),await oy(t,`Time to fetch balances using RPC for ${i}`,(async(e,t,n,r)=>{const i=[];return r.forEach((r=>{!r.address||Zm(r.address,Bm)?i.push(sy(e,t,n)):i.push(uy(t,n,r.address))})),{balances:(await Promise.allSettled(i)).filter((e=>"fulfilled"===e.status)).map((e=>{const t=e,{token:n}=t.value;return n.address&&!Zm(n.address,Bm)||(t.value.token.address=Bm),t.value}))}})(t,n,u,o))};var fy=function({mustBeMetaMask:e=!1,silent:t=!1,timeout:n=3e3}={}){!function(){if("boolean"!=typeof e)throw new Error("@metamask/detect-provider: Expected option 'mustBeMetaMask' to be a boolean.");if("boolean"!=typeof t)throw new Error("@metamask/detect-provider: Expected option 'silent' to be a boolean.");if("number"!=typeof n)throw new Error("@metamask/detect-provider: Expected option 'timeout' to be a number.")}();let r=!1;return new Promise((i=>{function a(){if(r)return;r=!0,window.removeEventListener("ethereum#initialized",a);const{ethereum:n}=window;if(!n||e&&!n.isMetaMask){const r=e&&n?"Non-MetaMask window.ethereum detected.":"Unable to detect window.ethereum.";!t&&console.error("@metamask/detect-provider:",r),i(null)}else i(n)}window.ethereum?a():(window.addEventListener("ethereum#initialized",a,{once:!0}),setTimeout((()=>{a()}),n))}))},py=Lt(fy);async function hy(t,n){let r=null;switch(t){case e.WalletProviderName.PASSPORT:if(!n)throw console.error("WalletProviderName was PASSPORT but the passport instance was not provided to the Checkout constructor"),new Cm("Passport not provided",e.CheckoutErrorType.DEFAULT_PROVIDER_ERROR);r=new Uh(n.connectEvm());break;case e.WalletProviderName.METAMASK:r=await async function(){const t=await Om((async()=>await py()),{type:e.CheckoutErrorType.METAMASK_PROVIDER_ERROR});if(!t||!t.request)throw new Cm("No MetaMask provider installed.",e.CheckoutErrorType.METAMASK_PROVIDER_ERROR);return new Uh(t)}();break;default:throw console.error("The WalletProviderName that was provided is not supported"),new Cm("Provider not supported",e.CheckoutErrorType.DEFAULT_PROVIDER_ERROR)}return{provider:r,walletProviderName:t}}function my(e){return!(!e||!e.provider?.request||"function"!=typeof e.provider.request)}async function yy(t,n,r){return Om((async()=>{if(n.provider?.isPassport)return n;if(!my(n))throw new Cm("Parsed provider is not a valid Web3Provider",e.CheckoutErrorType.WEB3_PROVIDER_ERROR);const i={...vm,...r},a=await km(n);let o=n.network?.chainId;try{o=n.network?.chainId,o||(o=(await n.getNetwork()).chainId)}catch(t){throw new Cm("Unable to detect the web3Provider network",e.CheckoutErrorType.WEB3_PROVIDER_ERROR,{error:t})}if(o!==a&&!i.allowMistmatchedChainId)throw new Cm("Your wallet has changed network, please switch to a supported network",e.CheckoutErrorType.WEB3_PROVIDER_ERROR);if(!(await Sm(t,{type:e.NetworkFilterTypes.ALL})).networks.some((e=>e.chainId===a))&&!i.allowUnsupportedProvider)throw new Cm("Your wallet is connected to an unsupported network, please switch to a supported network",e.CheckoutErrorType.WEB3_PROVIDER_ERROR);return n}),{type:e.CheckoutErrorType.WEB3_PROVIDER_ERROR})}const gy=async(t,n)=>{const r=n,{chainId:i}=await t.getNetwork();return(t=>t===e.ChainId.IMTBL_ZKEVM_DEVNET||t===e.ChainId.IMTBL_ZKEVM_TESTNET||t===e.ChainId.IMTBL_ZKEVM_MAINNET)(i)?(r.maxFeePerGas=Vm.maxFeePerGas,r.maxPriorityFeePerGas=Vm.maxPriorityFeePerGas,r):r},by=async(t,n)=>{try{const e=t.getSigner(),r=await gy(t,n);return{transactionResponse:await e.sendTransaction(r)}}catch(t){if(t.code===Qn.INSUFFICIENT_FUNDS)throw new Cm(t.message,e.CheckoutErrorType.INSUFFICIENT_FUNDS,{error:t});if(t.code===Qn.ACTION_REJECTED)throw new Cm(t.message,e.CheckoutErrorType.USER_REJECTED_REQUEST_ERROR,{error:t});if(t.code===Qn.UNPREDICTABLE_GAS_LIMIT)throw new Cm(t.message,e.CheckoutErrorType.UNPREDICTABLE_GAS_LIMIT,{error:t});throw new Cm(t.message,e.CheckoutErrorType.TRANSACTION_FAILED,{error:t})}};function vy(e,t){return function(){return e.apply(t,arguments)}}const{toString:Ty}=Object.prototype,{getPrototypeOf:wy}=Object,Ey=(e=>t=>{const n=Ty.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Ay=e=>(e=e.toLowerCase(),t=>Ey(t)===e),_y=e=>t=>typeof t===e,{isArray:Iy}=Array,Ry=_y("undefined");const Cy=Ay("ArrayBuffer");const Oy=_y("string"),ky=_y("function"),Sy=_y("number"),Ny=e=>null!==e&&"object"==typeof e,xy=e=>{if("object"!==Ey(e))return!1;const t=wy(e);return!(null!==t&&t!==Object.prototype&&null!==Object.getPrototypeOf(t)||Symbol.toStringTag in e||Symbol.iterator in e)},Py=Ay("Date"),My=Ay("File"),By=Ay("Blob"),Dy=Ay("FileList"),Fy=Ay("URLSearchParams");function Ly(e,t,{allOwnKeys:n=!1}={}){if(null==e)return;let r,i;if("object"!=typeof e&&(e=[e]),Iy(e))for(r=0,i=e.length;r<i;r++)t.call(null,e[r],r,e);else{const i=n?Object.getOwnPropertyNames(e):Object.keys(e),a=i.length;let o;for(r=0;r<a;r++)o=i[r],t.call(null,e[o],o,e)}}function Uy(e,t){t=t.toLowerCase();const n=Object.keys(e);let r,i=n.length;for(;i-- >0;)if(r=n[i],t===r.toLowerCase())return r;return null}const qy="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:global,jy=e=>!Ry(e)&&e!==qy;const Gy=(e=>t=>e&&t instanceof e)("undefined"!=typeof Uint8Array&&wy(Uint8Array)),Hy=Ay("HTMLFormElement"),zy=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),Wy=Ay("RegExp"),Vy=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};Ly(n,((n,i)=>{let a;!1!==(a=t(n,i,e))&&(r[i]=a||n)})),Object.defineProperties(e,r)},Ky="abcdefghijklmnopqrstuvwxyz",Xy="0123456789",Jy={DIGIT:Xy,ALPHA:Ky,ALPHA_DIGIT:Ky+Ky.toUpperCase()+Xy};const Yy=Ay("AsyncFunction");var Qy={isArray:Iy,isArrayBuffer:Cy,isBuffer:function(e){return null!==e&&!Ry(e)&&null!==e.constructor&&!Ry(e.constructor)&&ky(e.constructor.isBuffer)&&e.constructor.isBuffer(e)},isFormData:e=>{let t;return e&&("function"==typeof FormData&&e instanceof FormData||ky(e.append)&&("formdata"===(t=Ey(e))||"object"===t&&ky(e.toString)&&"[object FormData]"===e.toString()))},isArrayBufferView:function(e){let t;return t="undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&Cy(e.buffer),t},isString:Oy,isNumber:Sy,isBoolean:e=>!0===e||!1===e,isObject:Ny,isPlainObject:xy,isUndefined:Ry,isDate:Py,isFile:My,isBlob:By,isRegExp:Wy,isFunction:ky,isStream:e=>Ny(e)&&ky(e.pipe),isURLSearchParams:Fy,isTypedArray:Gy,isFileList:Dy,forEach:Ly,merge:function e(){const{caseless:t}=jy(this)&&this||{},n={},r=(r,i)=>{const a=t&&Uy(n,i)||i;xy(n[a])&&xy(r)?n[a]=e(n[a],r):xy(r)?n[a]=e({},r):Iy(r)?n[a]=r.slice():n[a]=r};for(let e=0,t=arguments.length;e<t;e++)arguments[e]&&Ly(arguments[e],r);return n},extend:(e,t,n,{allOwnKeys:r}={})=>(Ly(t,((t,r)=>{n&&ky(t)?e[r]=vy(t,n):e[r]=t}),{allOwnKeys:r}),e),trim:e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""),stripBOM:e=>(65279===e.charCodeAt(0)&&(e=e.slice(1)),e),inherits:(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},toFlatObject:(e,t,n,r)=>{let i,a,o;const s={};if(t=t||{},null==e)return t;do{for(i=Object.getOwnPropertyNames(e),a=i.length;a-- >0;)o=i[a],r&&!r(o,e,t)||s[o]||(t[o]=e[o],s[o]=!0);e=!1!==n&&wy(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},kindOf:Ey,kindOfTest:Ay,endsWith:(e,t,n)=>{e=String(e),(void 0===n||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return-1!==r&&r===n},toArray:e=>{if(!e)return null;if(Iy(e))return e;let t=e.length;if(!Sy(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},forEachEntry:(e,t)=>{const n=(e&&e[Symbol.iterator]).call(e);let r;for(;(r=n.next())&&!r.done;){const n=r.value;t.call(e,n[0],n[1])}},matchAll:(e,t)=>{let n;const r=[];for(;null!==(n=e.exec(t));)r.push(n);return r},isHTMLForm:Hy,hasOwnProperty:zy,hasOwnProp:zy,reduceDescriptors:Vy,freezeMethods:e=>{Vy(e,((t,n)=>{if(ky(e)&&-1!==["arguments","caller","callee"].indexOf(n))return!1;const r=e[n];ky(r)&&(t.enumerable=!1,"writable"in t?t.writable=!1:t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")}))}))},toObjectSet:(e,t)=>{const n={},r=e=>{e.forEach((e=>{n[e]=!0}))};return Iy(e)?r(e):r(String(e).split(t)),n},toCamelCase:e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,(function(e,t,n){return t.toUpperCase()+n})),noop:()=>{},toFiniteNumber:(e,t)=>(e=+e,Number.isFinite(e)?e:t),findKey:Uy,global:qy,isContextDefined:jy,ALPHABET:Jy,generateString:(e=16,t=Jy.ALPHA_DIGIT)=>{let n="";const{length:r}=t;for(;e--;)n+=t[Math.random()*r|0];return n},isSpecCompliantForm:function(e){return!!(e&&ky(e.append)&&"FormData"===e[Symbol.toStringTag]&&e[Symbol.iterator])},toJSONObject:e=>{const t=new Array(10),n=(e,r)=>{if(Ny(e)){if(t.indexOf(e)>=0)return;if(!("toJSON"in e)){t[r]=e;const i=Iy(e)?[]:{};return Ly(e,((e,t)=>{const a=n(e,r+1);!Ry(a)&&(i[t]=a)})),t[r]=void 0,i}}return e};return n(e,0)},isAsyncFn:Yy,isThenable:e=>e&&(Ny(e)||ky(e))&&ky(e.then)&&ky(e.catch)};function $y(e,t,n,r,i){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,this.message=e,this.name="AxiosError",t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),i&&(this.response=i)}Qy.inherits($y,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:Qy.toJSONObject(this.config),code:this.code,status:this.response&&this.response.status?this.response.status:null}}});const Zy=$y.prototype,eg={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach((e=>{eg[e]={value:e}})),Object.defineProperties($y,eg),Object.defineProperty(Zy,"isAxiosError",{value:!0}),$y.from=(e,t,n,r,i,a)=>{const o=Object.create(Zy);return Qy.toFlatObject(e,o,(function(e){return e!==Error.prototype}),(e=>"isAxiosError"!==e)),$y.call(o,e.message,t,n,r,i),o.cause=e,o.name=e.name,a&&Object.assign(o,a),o};function tg(e){return Qy.isPlainObject(e)||Qy.isArray(e)}function ng(e){return Qy.endsWith(e,"[]")?e.slice(0,-2):e}function rg(e,t,n){return e?e.concat(t).map((function(e,t){return e=ng(e),!n&&t?"["+e+"]":e})).join(n?".":""):t}const ig=Qy.toFlatObject(Qy,{},null,(function(e){return/^is[A-Z]/.test(e)}));function ag(e,t,n){if(!Qy.isObject(e))throw new TypeError("target must be an object");t=t||new FormData;const r=(n=Qy.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,(function(e,t){return!Qy.isUndefined(t[e])}))).metaTokens,i=n.visitor||c,a=n.dots,o=n.indexes,s=(n.Blob||"undefined"!=typeof Blob&&Blob)&&Qy.isSpecCompliantForm(t);if(!Qy.isFunction(i))throw new TypeError("visitor must be a function");function u(e){if(null===e)return"";if(Qy.isDate(e))return e.toISOString();if(!s&&Qy.isBlob(e))throw new $y("Blob is not supported. Use a Buffer instead.");return Qy.isArrayBuffer(e)||Qy.isTypedArray(e)?s&&"function"==typeof Blob?new Blob([e]):Buffer.from(e):e}function c(e,n,i){let s=e;if(e&&!i&&"object"==typeof e)if(Qy.endsWith(n,"{}"))n=r?n:n.slice(0,-2),e=JSON.stringify(e);else if(Qy.isArray(e)&&function(e){return Qy.isArray(e)&&!e.some(tg)}(e)||(Qy.isFileList(e)||Qy.endsWith(n,"[]"))&&(s=Qy.toArray(e)))return n=ng(n),s.forEach((function(e,r){!Qy.isUndefined(e)&&null!==e&&t.append(!0===o?rg([n],r,a):null===o?n:n+"[]",u(e))})),!1;return!!tg(e)||(t.append(rg(i,n,a),u(e)),!1)}const l=[],d=Object.assign(ig,{defaultVisitor:c,convertValue:u,isVisitable:tg});if(!Qy.isObject(e))throw new TypeError("data must be an object");return function e(n,r){if(!Qy.isUndefined(n)){if(-1!==l.indexOf(n))throw Error("Circular reference detected in "+r.join("."));l.push(n),Qy.forEach(n,(function(n,a){!0===(!(Qy.isUndefined(n)||null===n)&&i.call(t,n,Qy.isString(a)?a.trim():a,r,d))&&e(n,r?r.concat(a):[a])})),l.pop()}}(e),t}function og(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,(function(e){return t[e]}))}function sg(e,t){this._pairs=[],e&&ag(e,this,t)}const ug=sg.prototype;function cg(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function lg(e,t,n){if(!t)return e;const r=n&&n.encode||cg,i=n&&n.serialize;let a;if(a=i?i(t,n):Qy.isURLSearchParams(t)?t.toString():new sg(t,n).toString(r),a){const t=e.indexOf("#");-1!==t&&(e=e.slice(0,t)),e+=(-1===e.indexOf("?")?"?":"&")+a}return e}ug.append=function(e,t){this._pairs.push([e,t])},ug.toString=function(e){const t=e?function(t){return e.call(this,t,og)}:og;return this._pairs.map((function(e){return t(e[0])+"="+t(e[1])}),"").join("&")};var dg=class{constructor(){this.handlers=[]}use(e,t,n){return this.handlers.push({fulfilled:e,rejected:t,synchronous:!!n&&n.synchronous,runWhen:n?n.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(e){Qy.forEach(this.handlers,(function(t){null!==t&&e(t)}))}},fg={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},pg={isBrowser:!0,classes:{URLSearchParams:"undefined"!=typeof URLSearchParams?URLSearchParams:sg,FormData:"undefined"!=typeof FormData?FormData:null,Blob:"undefined"!=typeof Blob?Blob:null},protocols:["http","https","file","blob","url","data"]};const hg="undefined"!=typeof window&&"undefined"!=typeof document,mg=(e=>hg&&["ReactNative","NativeScript","NS"].indexOf(e)<0)("undefined"!=typeof navigator&&navigator.product),yg="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"==typeof self.importScripts;var gg={...Object.freeze({__proto__:null,hasBrowserEnv:hg,hasStandardBrowserEnv:mg,hasStandardBrowserWebWorkerEnv:yg}),...pg};function bg(e){function t(e,n,r,i){let a=e[i++];if("__proto__"===a)return!0;const o=Number.isFinite(+a),s=i>=e.length;if(a=!a&&Qy.isArray(r)?r.length:a,s)return Qy.hasOwnProp(r,a)?r[a]=[r[a],n]:r[a]=n,!o;r[a]&&Qy.isObject(r[a])||(r[a]=[]);return t(e,n,r[a],i)&&Qy.isArray(r[a])&&(r[a]=function(e){const t={},n=Object.keys(e);let r;const i=n.length;let a;for(r=0;r<i;r++)a=n[r],t[a]=e[a];return t}(r[a])),!o}if(Qy.isFormData(e)&&Qy.isFunction(e.entries)){const n={};return Qy.forEachEntry(e,((e,r)=>{t(function(e){return Qy.matchAll(/\w+|\[(\w*)]/g,e).map((e=>"[]"===e[0]?"":e[1]||e[0]))}(e),r,n,0)})),n}return null}const vg={transitional:fg,adapter:["xhr","http"],transformRequest:[function(e,t){const n=t.getContentType()||"",r=n.indexOf("application/json")>-1,i=Qy.isObject(e);i&&Qy.isHTMLForm(e)&&(e=new FormData(e));if(Qy.isFormData(e))return r&&r?JSON.stringify(bg(e)):e;if(Qy.isArrayBuffer(e)||Qy.isBuffer(e)||Qy.isStream(e)||Qy.isFile(e)||Qy.isBlob(e))return e;if(Qy.isArrayBufferView(e))return e.buffer;if(Qy.isURLSearchParams(e))return t.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();let a;if(i){if(n.indexOf("application/x-www-form-urlencoded")>-1)return function(e,t){return ag(e,new gg.classes.URLSearchParams,Object.assign({visitor:function(e,t,n,r){return gg.isNode&&Qy.isBuffer(e)?(this.append(t,e.toString("base64")),!1):r.defaultVisitor.apply(this,arguments)}},t))}(e,this.formSerializer).toString();if((a=Qy.isFileList(e))||n.indexOf("multipart/form-data")>-1){const t=this.env&&this.env.FormData;return ag(a?{"files[]":e}:e,t&&new t,this.formSerializer)}}return i||r?(t.setContentType("application/json",!1),function(e,t,n){if(Qy.isString(e))try{return(t||JSON.parse)(e),Qy.trim(e)}catch(e){if("SyntaxError"!==e.name)throw e}return(n||JSON.stringify)(e)}(e)):e}],transformResponse:[function(e){const t=this.transitional||vg.transitional,n=t&&t.forcedJSONParsing,r="json"===this.responseType;if(e&&Qy.isString(e)&&(n&&!this.responseType||r)){const n=!(t&&t.silentJSONParsing)&&r;try{return JSON.parse(e)}catch(e){if(n){if("SyntaxError"===e.name)throw $y.from(e,$y.ERR_BAD_RESPONSE,this,null,this.response);throw e}}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:gg.classes.FormData,Blob:gg.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};Qy.forEach(["delete","get","head","post","put","patch"],(e=>{vg.headers[e]={}}));var Tg=vg;const wg=Qy.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]);const Eg=Symbol("internals");function Ag(e){return e&&String(e).trim().toLowerCase()}function _g(e){return!1===e||null==e?e:Qy.isArray(e)?e.map(_g):String(e)}function Ig(e,t,n,r,i){return Qy.isFunction(r)?r.call(this,t,n):(i&&(t=n),Qy.isString(t)?Qy.isString(r)?-1!==t.indexOf(r):Qy.isRegExp(r)?r.test(t):void 0:void 0)}class Rg{constructor(e){e&&this.set(e)}set(e,t,n){const r=this;function i(e,t,n){const i=Ag(t);if(!i)throw new Error("header name must be a non-empty string");const a=Qy.findKey(r,i);(!a||void 0===r[a]||!0===n||void 0===n&&!1!==r[a])&&(r[a||t]=_g(e))}const a=(e,t)=>Qy.forEach(e,((e,n)=>i(e,n,t)));return Qy.isPlainObject(e)||e instanceof this.constructor?a(e,t):Qy.isString(e)&&(e=e.trim())&&!/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim())?a((e=>{const t={};let n,r,i;return e&&e.split("\n").forEach((function(e){i=e.indexOf(":"),n=e.substring(0,i).trim().toLowerCase(),r=e.substring(i+1).trim(),!n||t[n]&&wg[n]||("set-cookie"===n?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)})),t})(e),t):null!=e&&i(t,e,n),this}get(e,t){if(e=Ag(e)){const n=Qy.findKey(this,e);if(n){const e=this[n];if(!t)return e;if(!0===t)return function(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}(e);if(Qy.isFunction(t))return t.call(this,e,n);if(Qy.isRegExp(t))return t.exec(e);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,t){if(e=Ag(e)){const n=Qy.findKey(this,e);return!(!n||void 0===this[n]||t&&!Ig(0,this[n],n,t))}return!1}delete(e,t){const n=this;let r=!1;function i(e){if(e=Ag(e)){const i=Qy.findKey(n,e);!i||t&&!Ig(0,n[i],i,t)||(delete n[i],r=!0)}}return Qy.isArray(e)?e.forEach(i):i(e),r}clear(e){const t=Object.keys(this);let n=t.length,r=!1;for(;n--;){const i=t[n];e&&!Ig(0,this[i],i,e,!0)||(delete this[i],r=!0)}return r}normalize(e){const t=this,n={};return Qy.forEach(this,((r,i)=>{const a=Qy.findKey(n,i);if(a)return t[a]=_g(r),void delete t[i];const o=e?function(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,((e,t,n)=>t.toUpperCase()+n))}(i):String(i).trim();o!==i&&delete t[i],t[o]=_g(r),n[o]=!0})),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){const t=Object.create(null);return Qy.forEach(this,((n,r)=>{null!=n&&!1!==n&&(t[r]=e&&Qy.isArray(n)?n.join(", "):n)})),t}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map((([e,t])=>e+": "+t)).join("\n")}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(e){return e instanceof this?e:new this(e)}static concat(e,...t){const n=new this(e);return t.forEach((e=>n.set(e))),n}static accessor(e){const t=(this[Eg]=this[Eg]={accessors:{}}).accessors,n=this.prototype;function r(e){const r=Ag(e);t[r]||(!function(e,t){const n=Qy.toCamelCase(" "+t);["get","set","has"].forEach((r=>{Object.defineProperty(e,r+n,{value:function(e,n,i){return this[r].call(this,t,e,n,i)},configurable:!0})}))}(n,e),t[r]=!0)}return Qy.isArray(e)?e.forEach(r):r(e),this}}Rg.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),Qy.reduceDescriptors(Rg.prototype,(({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(e){this[n]=e}}})),Qy.freezeMethods(Rg);var Cg=Rg;function Og(e,t){const n=this||Tg,r=t||n,i=Cg.from(r.headers);let a=r.data;return Qy.forEach(e,(function(e){a=e.call(n,a,i.normalize(),t?t.status:void 0)})),i.normalize(),a}function kg(e){return!(!e||!e.__CANCEL__)}function Sg(e,t,n){$y.call(this,null==e?"canceled":e,$y.ERR_CANCELED,t,n),this.name="CanceledError"}Qy.inherits(Sg,$y,{__CANCEL__:!0});var Ng=gg.hasStandardBrowserEnv?{write(e,t,n,r,i,a){const o=[e+"="+encodeURIComponent(t)];Qy.isNumber(n)&&o.push("expires="+new Date(n).toGMTString()),Qy.isString(r)&&o.push("path="+r),Qy.isString(i)&&o.push("domain="+i),!0===a&&o.push("secure"),document.cookie=o.join("; ")},read(e){const t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove(e){this.write(e,"",Date.now()-864e5)}}:{write(){},read:()=>null,remove(){}};function xg(e,t){return e&&!/^([a-z][a-z\d+\-.]*:)?\/\//i.test(t)?function(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}(e,t):t}var Pg=gg.hasStandardBrowserEnv?function(){const e=/(msie|trident)/i.test(navigator.userAgent),t=document.createElement("a");let n;function r(n){let r=n;return e&&(t.setAttribute("href",r),r=t.href),t.setAttribute("href",r),{href:t.href,protocol:t.protocol?t.protocol.replace(/:$/,""):"",host:t.host,search:t.search?t.search.replace(/^\?/,""):"",hash:t.hash?t.hash.replace(/^#/,""):"",hostname:t.hostname,port:t.port,pathname:"/"===t.pathname.charAt(0)?t.pathname:"/"+t.pathname}}return n=r(window.location.href),function(e){const t=Qy.isString(e)?r(e):e;return t.protocol===n.protocol&&t.host===n.host}}():function(){return!0};function Mg(e,t){let n=0;const r=function(e,t){e=e||10;const n=new Array(e),r=new Array(e);let i,a=0,o=0;return t=void 0!==t?t:1e3,function(s){const u=Date.now(),c=r[o];i||(i=u),n[a]=s,r[a]=u;let l=o,d=0;for(;l!==a;)d+=n[l++],l%=e;if(a=(a+1)%e,a===o&&(o=(o+1)%e),u-i<t)return;const f=c&&u-c;return f?Math.round(1e3*d/f):void 0}}(50,250);return i=>{const a=i.loaded,o=i.lengthComputable?i.total:void 0,s=a-n,u=r(s);n=a;const c={loaded:a,total:o,progress:o?a/o:void 0,bytes:s,rate:u||void 0,estimated:u&&o&&a<=o?(o-a)/u:void 0,event:i};c[t?"download":"upload"]=!0,e(c)}}var Bg="undefined"!=typeof XMLHttpRequest&&function(e){return new Promise((function(t,n){let r=e.data;const i=Cg.from(e.headers).normalize();let a,o,{responseType:s,withXSRFToken:u}=e;function c(){e.cancelToken&&e.cancelToken.unsubscribe(a),e.signal&&e.signal.removeEventListener("abort",a)}if(Qy.isFormData(r))if(gg.hasStandardBrowserEnv||gg.hasStandardBrowserWebWorkerEnv)i.setContentType(!1);else if(!1!==(o=i.getContentType())){const[e,...t]=o?o.split(";").map((e=>e.trim())).filter(Boolean):[];i.setContentType([e||"multipart/form-data",...t].join("; "))}let l=new XMLHttpRequest;if(e.auth){const t=e.auth.username||"",n=e.auth.password?unescape(encodeURIComponent(e.auth.password)):"";i.set("Authorization","Basic "+btoa(t+":"+n))}const d=xg(e.baseURL,e.url);function f(){if(!l)return;const r=Cg.from("getAllResponseHeaders"in l&&l.getAllResponseHeaders());!function(e,t,n){const r=n.config.validateStatus;n.status&&r&&!r(n.status)?t(new $y("Request failed with status code "+n.status,[$y.ERR_BAD_REQUEST,$y.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n)):e(n)}((function(e){t(e),c()}),(function(e){n(e),c()}),{data:s&&"text"!==s&&"json"!==s?l.response:l.responseText,status:l.status,statusText:l.statusText,headers:r,config:e,request:l}),l=null}if(l.open(e.method.toUpperCase(),lg(d,e.params,e.paramsSerializer),!0),l.timeout=e.timeout,"onloadend"in l?l.onloadend=f:l.onreadystatechange=function(){l&&4===l.readyState&&(0!==l.status||l.responseURL&&0===l.responseURL.indexOf("file:"))&&setTimeout(f)},l.onabort=function(){l&&(n(new $y("Request aborted",$y.ECONNABORTED,e,l)),l=null)},l.onerror=function(){n(new $y("Network Error",$y.ERR_NETWORK,e,l)),l=null},l.ontimeout=function(){let t=e.timeout?"timeout of "+e.timeout+"ms exceeded":"timeout exceeded";const r=e.transitional||fg;e.timeoutErrorMessage&&(t=e.timeoutErrorMessage),n(new $y(t,r.clarifyTimeoutError?$y.ETIMEDOUT:$y.ECONNABORTED,e,l)),l=null},gg.hasStandardBrowserEnv&&(u&&Qy.isFunction(u)&&(u=u(e)),u||!1!==u&&Pg(d))){const t=e.xsrfHeaderName&&e.xsrfCookieName&&Ng.read(e.xsrfCookieName);t&&i.set(e.xsrfHeaderName,t)}void 0===r&&i.setContentType(null),"setRequestHeader"in l&&Qy.forEach(i.toJSON(),(function(e,t){l.setRequestHeader(t,e)})),Qy.isUndefined(e.withCredentials)||(l.withCredentials=!!e.withCredentials),s&&"json"!==s&&(l.responseType=e.responseType),"function"==typeof e.onDownloadProgress&&l.addEventListener("progress",Mg(e.onDownloadProgress,!0)),"function"==typeof e.onUploadProgress&&l.upload&&l.upload.addEventListener("progress",Mg(e.onUploadProgress)),(e.cancelToken||e.signal)&&(a=t=>{l&&(n(!t||t.type?new Sg(null,e,l):t),l.abort(),l=null)},e.cancelToken&&e.cancelToken.subscribe(a),e.signal&&(e.signal.aborted?a():e.signal.addEventListener("abort",a)));const p=function(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}(d);p&&-1===gg.protocols.indexOf(p)?n(new $y("Unsupported protocol "+p+":",$y.ERR_BAD_REQUEST,e)):l.send(r||null)}))};const Dg={http:null,xhr:Bg};Qy.forEach(Dg,((e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch(e){}Object.defineProperty(e,"adapterName",{value:t})}}));const Fg=e=>`- ${e}`,Lg=e=>Qy.isFunction(e)||null===e||!1===e;var Ug=e=>{e=Qy.isArray(e)?e:[e];const{length:t}=e;let n,r;const i={};for(let a=0;a<t;a++){let t;if(n=e[a],r=n,!Lg(n)&&(r=Dg[(t=String(n)).toLowerCase()],void 0===r))throw new $y(`Unknown adapter '${t}'`);if(r)break;i[t||"#"+a]=r}if(!r){const e=Object.entries(i).map((([e,t])=>`adapter ${e} `+(!1===t?"is not supported by the environment":"is not available in the build")));throw new $y("There is no suitable adapter to dispatch the request "+(t?e.length>1?"since :\n"+e.map(Fg).join("\n"):" "+Fg(e[0]):"as no adapter specified"),"ERR_NOT_SUPPORT")}return r};function qg(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new Sg(null,e)}function jg(e){qg(e),e.headers=Cg.from(e.headers),e.data=Og.call(e,e.transformRequest),-1!==["post","put","patch"].indexOf(e.method)&&e.headers.setContentType("application/x-www-form-urlencoded",!1);return Ug(e.adapter||Tg.adapter)(e).then((function(t){return qg(e),t.data=Og.call(e,e.transformResponse,t),t.headers=Cg.from(t.headers),t}),(function(t){return kg(t)||(qg(e),t&&t.response&&(t.response.data=Og.call(e,e.transformResponse,t.response),t.response.headers=Cg.from(t.response.headers))),Promise.reject(t)}))}const Gg=e=>e instanceof Cg?e.toJSON():e;function Hg(e,t){t=t||{};const n={};function r(e,t,n){return Qy.isPlainObject(e)&&Qy.isPlainObject(t)?Qy.merge.call({caseless:n},e,t):Qy.isPlainObject(t)?Qy.merge({},t):Qy.isArray(t)?t.slice():t}function i(e,t,n){return Qy.isUndefined(t)?Qy.isUndefined(e)?void 0:r(void 0,e,n):r(e,t,n)}function a(e,t){if(!Qy.isUndefined(t))return r(void 0,t)}function o(e,t){return Qy.isUndefined(t)?Qy.isUndefined(e)?void 0:r(void 0,e):r(void 0,t)}function s(n,i,a){return a in t?r(n,i):a in e?r(void 0,n):void 0}const u={url:a,method:a,data:a,baseURL:o,transformRequest:o,transformResponse:o,paramsSerializer:o,timeout:o,timeoutMessage:o,withCredentials:o,withXSRFToken:o,adapter:o,responseType:o,xsrfCookieName:o,xsrfHeaderName:o,onUploadProgress:o,onDownloadProgress:o,decompress:o,maxContentLength:o,maxBodyLength:o,beforeRedirect:o,transport:o,httpAgent:o,httpsAgent:o,cancelToken:o,socketPath:o,responseEncoding:o,validateStatus:s,headers:(e,t)=>i(Gg(e),Gg(t),!0)};return Qy.forEach(Object.keys(Object.assign({},e,t)),(function(r){const a=u[r]||i,o=a(e[r],t[r],r);Qy.isUndefined(o)&&a!==s||(n[r]=o)})),n}const zg="1.6.5",Wg={};["object","boolean","number","function","string","symbol"].forEach(((e,t)=>{Wg[e]=function(n){return typeof n===e||"a"+(t<1?"n ":" ")+e}}));const Vg={};Wg.transitional=function(e,t,n){function r(e,t){return"[Axios v1.6.5] Transitional option '"+e+"'"+t+(n?". "+n:"")}return(n,i,a)=>{if(!1===e)throw new $y(r(i," has been removed"+(t?" in "+t:"")),$y.ERR_DEPRECATED);return t&&!Vg[i]&&(Vg[i]=!0,console.warn(r(i," has been deprecated since v"+t+" and will be removed in the near future"))),!e||e(n,i,a)}};var Kg={assertOptions:function(e,t,n){if("object"!=typeof e)throw new $y("options must be an object",$y.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let i=r.length;for(;i-- >0;){const a=r[i],o=t[a];if(o){const t=e[a],n=void 0===t||o(t,a,e);if(!0!==n)throw new $y("option "+a+" must be "+n,$y.ERR_BAD_OPTION_VALUE)}else if(!0!==n)throw new $y("Unknown option "+a,$y.ERR_BAD_OPTION)}},validators:Wg};const Xg=Kg.validators;class Jg{constructor(e){this.defaults=e,this.interceptors={request:new dg,response:new dg}}request(e,t){"string"==typeof e?(t=t||{}).url=e:t=e||{},t=Hg(this.defaults,t);const{transitional:n,paramsSerializer:r,headers:i}=t;void 0!==n&&Kg.assertOptions(n,{silentJSONParsing:Xg.transitional(Xg.boolean),forcedJSONParsing:Xg.transitional(Xg.boolean),clarifyTimeoutError:Xg.transitional(Xg.boolean)},!1),null!=r&&(Qy.isFunction(r)?t.paramsSerializer={serialize:r}:Kg.assertOptions(r,{encode:Xg.function,serialize:Xg.function},!0)),t.method=(t.method||this.defaults.method||"get").toLowerCase();let a=i&&Qy.merge(i.common,i[t.method]);i&&Qy.forEach(["delete","get","head","post","put","patch","common"],(e=>{delete i[e]})),t.headers=Cg.concat(a,i);const o=[];let s=!0;this.interceptors.request.forEach((function(e){"function"==typeof e.runWhen&&!1===e.runWhen(t)||(s=s&&e.synchronous,o.unshift(e.fulfilled,e.rejected))}));const u=[];let c;this.interceptors.response.forEach((function(e){u.push(e.fulfilled,e.rejected)}));let l,d=0;if(!s){const e=[jg.bind(this),void 0];for(e.unshift.apply(e,o),e.push.apply(e,u),l=e.length,c=Promise.resolve(t);d<l;)c=c.then(e[d++],e[d++]);return c}l=o.length;let f=t;for(d=0;d<l;){const e=o[d++],t=o[d++];try{f=e(f)}catch(e){t.call(this,e);break}}try{c=jg.call(this,f)}catch(e){return Promise.reject(e)}for(d=0,l=u.length;d<l;)c=c.then(u[d++],u[d++]);return c}getUri(e){return lg(xg((e=Hg(this.defaults,e)).baseURL,e.url),e.params,e.paramsSerializer)}}Qy.forEach(["delete","get","head","options"],(function(e){Jg.prototype[e]=function(t,n){return this.request(Hg(n||{},{method:e,url:t,data:(n||{}).data}))}})),Qy.forEach(["post","put","patch"],(function(e){function t(t){return function(n,r,i){return this.request(Hg(i||{},{method:e,headers:t?{"Content-Type":"multipart/form-data"}:{},url:n,data:r}))}}Jg.prototype[e]=t(),Jg.prototype[e+"Form"]=t(!0)}));var Yg=Jg;class Qg{constructor(e){if("function"!=typeof e)throw new TypeError("executor must be a function.");let t;this.promise=new Promise((function(e){t=e}));const n=this;this.promise.then((e=>{if(!n._listeners)return;let t=n._listeners.length;for(;t-- >0;)n._listeners[t](e);n._listeners=null})),this.promise.then=e=>{let t;const r=new Promise((e=>{n.subscribe(e),t=e})).then(e);return r.cancel=function(){n.unsubscribe(t)},r},e((function(e,r,i){n.reason||(n.reason=new Sg(e,r,i),t(n.reason))}))}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){this.reason?e(this.reason):this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;const t=this._listeners.indexOf(e);-1!==t&&this._listeners.splice(t,1)}static source(){let e;return{token:new Qg((function(t){e=t})),cancel:e}}}var $g=Qg;const Zg={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(Zg).forEach((([e,t])=>{Zg[t]=e}));var eb=Zg;const tb=function e(t){const n=new Yg(t),r=vy(Yg.prototype.request,n);return Qy.extend(r,Yg.prototype,n,{allOwnKeys:!0}),Qy.extend(r,n,null,{allOwnKeys:!0}),r.create=function(n){return e(Hg(t,n))},r}(Tg);tb.Axios=Yg,tb.CanceledError=Sg,tb.CancelToken=$g,tb.isCancel=kg,tb.VERSION=zg,tb.toFormData=ag,tb.AxiosError=$y,tb.Cancel=tb.CanceledError,tb.all=function(e){return Promise.all(e)},tb.spread=function(e){return function(t){return e.apply(null,t)}},tb.isAxiosError=function(e){return Qy.isObject(e)&&!0===e.isAxiosError},tb.mergeConfig=Hg,tb.AxiosHeaders=Cg,tb.formToJSON=e=>bg(Qy.isHTMLForm(e)?new FormData(e):e),tb.getAdapter=Ug,tb.HttpStatusCode=eb,tb.default=tb;var nb=tb,rb="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function ib(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function ab(e){if(e.__esModule)return e;var t=e.default;if("function"==typeof t){var n=function e(){if(this instanceof e){var n=[null];return n.push.apply(n,arguments),new(Function.bind.apply(t,n))}return t.apply(this,arguments)};n.prototype=t.prototype}else n={};return Object.defineProperty(n,"__esModule",{value:!0}),Object.keys(e).forEach((function(t){var r=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(n,t,r.get?r:{enumerable:!0,get:function(){return e[t]}})})),n}var ob={exports:{}},sb=ab(Object.freeze({__proto__:null,default:{}}));!function(e){!function(e,t){function n(e,t){if(!e)throw new Error(t||"Assertion failed")}function r(e,t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}function i(e,t,n){if(i.isBN(e))return e;this.negative=0,this.words=null,this.length=0,this.red=null,null!==e&&("le"!==t&&"be"!==t||(n=t,t=10),this._init(e||0,t||10,n||"be"))}var a;"object"==typeof e?e.exports=i:t.BN=i,i.BN=i,i.wordSize=26;try{a="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:sb.Buffer}catch(e){}function o(e,t){var r=e.charCodeAt(t);return r>=48&&r<=57?r-48:r>=65&&r<=70?r-55:r>=97&&r<=102?r-87:void n(!1,"Invalid character in "+e)}function s(e,t,n){var r=o(e,n);return n-1>=t&&(r|=o(e,n-1)<<4),r}function u(e,t,r,i){for(var a=0,o=0,s=Math.min(e.length,r),u=t;u<s;u++){var c=e.charCodeAt(u)-48;a*=i,o=c>=49?c-49+10:c>=17?c-17+10:c,n(c>=0&&o<i,"Invalid character"),a+=o}return a}function c(e,t){e.words=t.words,e.length=t.length,e.negative=t.negative,e.red=t.red}if(i.isBN=function(e){return e instanceof i||null!==e&&"object"==typeof e&&e.constructor.wordSize===i.wordSize&&Array.isArray(e.words)},i.max=function(e,t){return e.cmp(t)>0?e:t},i.min=function(e,t){return e.cmp(t)<0?e:t},i.prototype._init=function(e,t,r){if("number"==typeof e)return this._initNumber(e,t,r);if("object"==typeof e)return this._initArray(e,t,r);"hex"===t&&(t=16),n(t===(0|t)&&t>=2&&t<=36);var i=0;"-"===(e=e.toString().replace(/\s+/g,""))[0]&&(i++,this.negative=1),i<e.length&&(16===t?this._parseHex(e,i,r):(this._parseBase(e,t,i),"le"===r&&this._initArray(this.toArray(),t,r)))},i.prototype._initNumber=function(e,t,r){e<0&&(this.negative=1,e=-e),e<67108864?(this.words=[67108863&e],this.length=1):e<4503599627370496?(this.words=[67108863&e,e/67108864&67108863],this.length=2):(n(e<9007199254740992),this.words=[67108863&e,e/67108864&67108863,1],this.length=3),"le"===r&&this._initArray(this.toArray(),t,r)},i.prototype._initArray=function(e,t,r){if(n("number"==typeof e.length),e.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(e.length/3),this.words=new Array(this.length);for(var i=0;i<this.length;i++)this.words[i]=0;var a,o,s=0;if("be"===r)for(i=e.length-1,a=0;i>=0;i-=3)o=e[i]|e[i-1]<<8|e[i-2]<<16,this.words[a]|=o<<s&67108863,this.words[a+1]=o>>>26-s&67108863,(s+=24)>=26&&(s-=26,a++);else if("le"===r)for(i=0,a=0;i<e.length;i+=3)o=e[i]|e[i+1]<<8|e[i+2]<<16,this.words[a]|=o<<s&67108863,this.words[a+1]=o>>>26-s&67108863,(s+=24)>=26&&(s-=26,a++);return this._strip()},i.prototype._parseHex=function(e,t,n){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var r=0;r<this.length;r++)this.words[r]=0;var i,a=0,o=0;if("be"===n)for(r=e.length-1;r>=t;r-=2)i=s(e,t,r)<<a,this.words[o]|=67108863&i,a>=18?(a-=18,o+=1,this.words[o]|=i>>>26):a+=8;else for(r=(e.length-t)%2==0?t+1:t;r<e.length;r+=2)i=s(e,t,r)<<a,this.words[o]|=67108863&i,a>=18?(a-=18,o+=1,this.words[o]|=i>>>26):a+=8;this._strip()},i.prototype._parseBase=function(e,t,n){this.words=[0],this.length=1;for(var r=0,i=1;i<=67108863;i*=t)r++;r--,i=i/t|0;for(var a=e.length-n,o=a%r,s=Math.min(a,a-o)+n,c=0,l=n;l<s;l+=r)c=u(e,l,l+r,t),this.imuln(i),this.words[0]+c<67108864?this.words[0]+=c:this._iaddn(c);if(0!==o){var d=1;for(c=u(e,l,e.length,t),l=0;l<o;l++)d*=t;this.imuln(d),this.words[0]+c<67108864?this.words[0]+=c:this._iaddn(c)}this._strip()},i.prototype.copy=function(e){e.words=new Array(this.length);for(var t=0;t<this.length;t++)e.words[t]=this.words[t];e.length=this.length,e.negative=this.negative,e.red=this.red},i.prototype._move=function(e){c(e,this)},i.prototype.clone=function(){var e=new i(null);return this.copy(e),e},i.prototype._expand=function(e){for(;this.length<e;)this.words[this.length++]=0;return this},i.prototype._strip=function(){for(;this.length>1&&0===this.words[this.length-1];)this.length--;return this._normSign()},i.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},"undefined"!=typeof Symbol&&"function"==typeof Symbol.for)try{i.prototype[Symbol.for("nodejs.util.inspect.custom")]=l}catch(e){i.prototype.inspect=l}else i.prototype.inspect=l;function l(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"}var d=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],f=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],p=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];i.prototype.toString=function(e,t){var r;if(t=0|t||1,16===(e=e||10)||"hex"===e){r="";for(var i=0,a=0,o=0;o<this.length;o++){var s=this.words[o],u=(16777215&(s<<i|a)).toString(16);a=s>>>24-i&16777215,(i+=2)>=26&&(i-=26,o--),r=0!==a||o!==this.length-1?d[6-u.length]+u+r:u+r}for(0!==a&&(r=a.toString(16)+r);r.length%t!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}if(e===(0|e)&&e>=2&&e<=36){var c=f[e],l=p[e];r="";var h=this.clone();for(h.negative=0;!h.isZero();){var m=h.modrn(l).toString(e);r=(h=h.idivn(l)).isZero()?m+r:d[c-m.length]+m+r}for(this.isZero()&&(r="0"+r);r.length%t!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}n(!1,"Base should be between 2 and 36")},i.prototype.toNumber=function(){var e=this.words[0];return 2===this.length?e+=67108864*this.words[1]:3===this.length&&1===this.words[2]?e+=4503599627370496+67108864*this.words[1]:this.length>2&&n(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},i.prototype.toJSON=function(){return this.toString(16,2)},a&&(i.prototype.toBuffer=function(e,t){return this.toArrayLike(a,e,t)}),i.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)};function h(e,t,n){n.negative=t.negative^e.negative;var r=e.length+t.length|0;n.length=r,r=r-1|0;var i=0|e.words[0],a=0|t.words[0],o=i*a,s=67108863&o,u=o/67108864|0;n.words[0]=s;for(var c=1;c<r;c++){for(var l=u>>>26,d=67108863&u,f=Math.min(c,t.length-1),p=Math.max(0,c-e.length+1);p<=f;p++){var h=c-p|0;l+=(o=(i=0|e.words[h])*(a=0|t.words[p])+d)/67108864|0,d=67108863&o}n.words[c]=0|d,u=0|l}return 0!==u?n.words[c]=0|u:n.length--,n._strip()}i.prototype.toArrayLike=function(e,t,r){this._strip();var i=this.byteLength(),a=r||Math.max(1,i);n(i<=a,"byte array longer than desired length"),n(a>0,"Requested array length <= 0");var o=function(e,t){return e.allocUnsafe?e.allocUnsafe(t):new e(t)}(e,a);return this["_toArrayLike"+("le"===t?"LE":"BE")](o,i),o},i.prototype._toArrayLikeLE=function(e,t){for(var n=0,r=0,i=0,a=0;i<this.length;i++){var o=this.words[i]<<a|r;e[n++]=255&o,n<e.length&&(e[n++]=o>>8&255),n<e.length&&(e[n++]=o>>16&255),6===a?(n<e.length&&(e[n++]=o>>24&255),r=0,a=0):(r=o>>>24,a+=2)}if(n<e.length)for(e[n++]=r;n<e.length;)e[n++]=0},i.prototype._toArrayLikeBE=function(e,t){for(var n=e.length-1,r=0,i=0,a=0;i<this.length;i++){var o=this.words[i]<<a|r;e[n--]=255&o,n>=0&&(e[n--]=o>>8&255),n>=0&&(e[n--]=o>>16&255),6===a?(n>=0&&(e[n--]=o>>24&255),r=0,a=0):(r=o>>>24,a+=2)}if(n>=0)for(e[n--]=r;n>=0;)e[n--]=0},Math.clz32?i.prototype._countBits=function(e){return 32-Math.clz32(e)}:i.prototype._countBits=function(e){var t=e,n=0;return t>=4096&&(n+=13,t>>>=13),t>=64&&(n+=7,t>>>=7),t>=8&&(n+=4,t>>>=4),t>=2&&(n+=2,t>>>=2),n+t},i.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,n=0;return 0==(8191&t)&&(n+=13,t>>>=13),0==(127&t)&&(n+=7,t>>>=7),0==(15&t)&&(n+=4,t>>>=4),0==(3&t)&&(n+=2,t>>>=2),0==(1&t)&&n++,n},i.prototype.bitLength=function(){var e=this.words[this.length-1],t=this._countBits(e);return 26*(this.length-1)+t},i.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;t<this.length;t++){var n=this._zeroBits(this.words[t]);if(e+=n,26!==n)break}return e},i.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},i.prototype.toTwos=function(e){return 0!==this.negative?this.abs().inotn(e).iaddn(1):this.clone()},i.prototype.fromTwos=function(e){return this.testn(e-1)?this.notn(e).iaddn(1).ineg():this.clone()},i.prototype.isNeg=function(){return 0!==this.negative},i.prototype.neg=function(){return this.clone().ineg()},i.prototype.ineg=function(){return this.isZero()||(this.negative^=1),this},i.prototype.iuor=function(e){for(;this.length<e.length;)this.words[this.length++]=0;for(var t=0;t<e.length;t++)this.words[t]=this.words[t]|e.words[t];return this._strip()},i.prototype.ior=function(e){return n(0==(this.negative|e.negative)),this.iuor(e)},i.prototype.or=function(e){return this.length>e.length?this.clone().ior(e):e.clone().ior(this)},i.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},i.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var n=0;n<t.length;n++)this.words[n]=this.words[n]&e.words[n];return this.length=t.length,this._strip()},i.prototype.iand=function(e){return n(0==(this.negative|e.negative)),this.iuand(e)},i.prototype.and=function(e){return this.length>e.length?this.clone().iand(e):e.clone().iand(this)},i.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},i.prototype.iuxor=function(e){var t,n;this.length>e.length?(t=this,n=e):(t=e,n=this);for(var r=0;r<n.length;r++)this.words[r]=t.words[r]^n.words[r];if(this!==t)for(;r<t.length;r++)this.words[r]=t.words[r];return this.length=t.length,this._strip()},i.prototype.ixor=function(e){return n(0==(this.negative|e.negative)),this.iuxor(e)},i.prototype.xor=function(e){return this.length>e.length?this.clone().ixor(e):e.clone().ixor(this)},i.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},i.prototype.inotn=function(e){n("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),r=e%26;this._expand(t),r>0&&t--;for(var i=0;i<t;i++)this.words[i]=67108863&~this.words[i];return r>0&&(this.words[i]=~this.words[i]&67108863>>26-r),this._strip()},i.prototype.notn=function(e){return this.clone().inotn(e)},i.prototype.setn=function(e,t){n("number"==typeof e&&e>=0);var r=e/26|0,i=e%26;return this._expand(r+1),this.words[r]=t?this.words[r]|1<<i:this.words[r]&~(1<<i),this._strip()},i.prototype.iadd=function(e){var t,n,r;if(0!==this.negative&&0===e.negative)return this.negative=0,t=this.isub(e),this.negative^=1,this._normSign();if(0===this.negative&&0!==e.negative)return e.negative=0,t=this.isub(e),e.negative=1,t._normSign();this.length>e.length?(n=this,r=e):(n=e,r=this);for(var i=0,a=0;a<r.length;a++)t=(0|n.words[a])+(0|r.words[a])+i,this.words[a]=67108863&t,i=t>>>26;for(;0!==i&&a<n.length;a++)t=(0|n.words[a])+i,this.words[a]=67108863&t,i=t>>>26;if(this.length=n.length,0!==i)this.words[this.length]=i,this.length++;else if(n!==this)for(;a<n.length;a++)this.words[a]=n.words[a];return this},i.prototype.add=function(e){var t;return 0!==e.negative&&0===this.negative?(e.negative=0,t=this.sub(e),e.negative^=1,t):0===e.negative&&0!==this.negative?(this.negative=0,t=e.sub(this),this.negative=1,t):this.length>e.length?this.clone().iadd(e):e.clone().iadd(this)},i.prototype.isub=function(e){if(0!==e.negative){e.negative=0;var t=this.iadd(e);return e.negative=1,t._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var n,r,i=this.cmp(e);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(n=this,r=e):(n=e,r=this);for(var a=0,o=0;o<r.length;o++)a=(t=(0|n.words[o])-(0|r.words[o])+a)>>26,this.words[o]=67108863&t;for(;0!==a&&o<n.length;o++)a=(t=(0|n.words[o])+a)>>26,this.words[o]=67108863&t;if(0===a&&o<n.length&&n!==this)for(;o<n.length;o++)this.words[o]=n.words[o];return this.length=Math.max(this.length,o),n!==this&&(this.negative=1),this._strip()},i.prototype.sub=function(e){return this.clone().isub(e)};var m=function(e,t,n){var r,i,a,o=e.words,s=t.words,u=n.words,c=0,l=0|o[0],d=8191&l,f=l>>>13,p=0|o[1],h=8191&p,m=p>>>13,y=0|o[2],g=8191&y,b=y>>>13,v=0|o[3],T=8191&v,w=v>>>13,E=0|o[4],A=8191&E,_=E>>>13,I=0|o[5],R=8191&I,C=I>>>13,O=0|o[6],k=8191&O,S=O>>>13,N=0|o[7],x=8191&N,P=N>>>13,M=0|o[8],B=8191&M,D=M>>>13,F=0|o[9],L=8191&F,U=F>>>13,q=0|s[0],j=8191&q,G=q>>>13,H=0|s[1],z=8191&H,W=H>>>13,V=0|s[2],K=8191&V,X=V>>>13,J=0|s[3],Y=8191&J,Q=J>>>13,$=0|s[4],Z=8191&$,ee=$>>>13,te=0|s[5],ne=8191&te,re=te>>>13,ie=0|s[6],ae=8191&ie,oe=ie>>>13,se=0|s[7],ue=8191&se,ce=se>>>13,le=0|s[8],de=8191&le,fe=le>>>13,pe=0|s[9],he=8191&pe,me=pe>>>13;n.negative=e.negative^t.negative,n.length=19;var ye=(c+(r=Math.imul(d,j))|0)+((8191&(i=(i=Math.imul(d,G))+Math.imul(f,j)|0))<<13)|0;c=((a=Math.imul(f,G))+(i>>>13)|0)+(ye>>>26)|0,ye&=67108863,r=Math.imul(h,j),i=(i=Math.imul(h,G))+Math.imul(m,j)|0,a=Math.imul(m,G);var ge=(c+(r=r+Math.imul(d,z)|0)|0)+((8191&(i=(i=i+Math.imul(d,W)|0)+Math.imul(f,z)|0))<<13)|0;c=((a=a+Math.imul(f,W)|0)+(i>>>13)|0)+(ge>>>26)|0,ge&=67108863,r=Math.imul(g,j),i=(i=Math.imul(g,G))+Math.imul(b,j)|0,a=Math.imul(b,G),r=r+Math.imul(h,z)|0,i=(i=i+Math.imul(h,W)|0)+Math.imul(m,z)|0,a=a+Math.imul(m,W)|0;var be=(c+(r=r+Math.imul(d,K)|0)|0)+((8191&(i=(i=i+Math.imul(d,X)|0)+Math.imul(f,K)|0))<<13)|0;c=((a=a+Math.imul(f,X)|0)+(i>>>13)|0)+(be>>>26)|0,be&=67108863,r=Math.imul(T,j),i=(i=Math.imul(T,G))+Math.imul(w,j)|0,a=Math.imul(w,G),r=r+Math.imul(g,z)|0,i=(i=i+Math.imul(g,W)|0)+Math.imul(b,z)|0,a=a+Math.imul(b,W)|0,r=r+Math.imul(h,K)|0,i=(i=i+Math.imul(h,X)|0)+Math.imul(m,K)|0,a=a+Math.imul(m,X)|0;var ve=(c+(r=r+Math.imul(d,Y)|0)|0)+((8191&(i=(i=i+Math.imul(d,Q)|0)+Math.imul(f,Y)|0))<<13)|0;c=((a=a+Math.imul(f,Q)|0)+(i>>>13)|0)+(ve>>>26)|0,ve&=67108863,r=Math.imul(A,j),i=(i=Math.imul(A,G))+Math.imul(_,j)|0,a=Math.imul(_,G),r=r+Math.imul(T,z)|0,i=(i=i+Math.imul(T,W)|0)+Math.imul(w,z)|0,a=a+Math.imul(w,W)|0,r=r+Math.imul(g,K)|0,i=(i=i+Math.imul(g,X)|0)+Math.imul(b,K)|0,a=a+Math.imul(b,X)|0,r=r+Math.imul(h,Y)|0,i=(i=i+Math.imul(h,Q)|0)+Math.imul(m,Y)|0,a=a+Math.imul(m,Q)|0;var Te=(c+(r=r+Math.imul(d,Z)|0)|0)+((8191&(i=(i=i+Math.imul(d,ee)|0)+Math.imul(f,Z)|0))<<13)|0;c=((a=a+Math.imul(f,ee)|0)+(i>>>13)|0)+(Te>>>26)|0,Te&=67108863,r=Math.imul(R,j),i=(i=Math.imul(R,G))+Math.imul(C,j)|0,a=Math.imul(C,G),r=r+Math.imul(A,z)|0,i=(i=i+Math.imul(A,W)|0)+Math.imul(_,z)|0,a=a+Math.imul(_,W)|0,r=r+Math.imul(T,K)|0,i=(i=i+Math.imul(T,X)|0)+Math.imul(w,K)|0,a=a+Math.imul(w,X)|0,r=r+Math.imul(g,Y)|0,i=(i=i+Math.imul(g,Q)|0)+Math.imul(b,Y)|0,a=a+Math.imul(b,Q)|0,r=r+Math.imul(h,Z)|0,i=(i=i+Math.imul(h,ee)|0)+Math.imul(m,Z)|0,a=a+Math.imul(m,ee)|0;var we=(c+(r=r+Math.imul(d,ne)|0)|0)+((8191&(i=(i=i+Math.imul(d,re)|0)+Math.imul(f,ne)|0))<<13)|0;c=((a=a+Math.imul(f,re)|0)+(i>>>13)|0)+(we>>>26)|0,we&=67108863,r=Math.imul(k,j),i=(i=Math.imul(k,G))+Math.imul(S,j)|0,a=Math.imul(S,G),r=r+Math.imul(R,z)|0,i=(i=i+Math.imul(R,W)|0)+Math.imul(C,z)|0,a=a+Math.imul(C,W)|0,r=r+Math.imul(A,K)|0,i=(i=i+Math.imul(A,X)|0)+Math.imul(_,K)|0,a=a+Math.imul(_,X)|0,r=r+Math.imul(T,Y)|0,i=(i=i+Math.imul(T,Q)|0)+Math.imul(w,Y)|0,a=a+Math.imul(w,Q)|0,r=r+Math.imul(g,Z)|0,i=(i=i+Math.imul(g,ee)|0)+Math.imul(b,Z)|0,a=a+Math.imul(b,ee)|0,r=r+Math.imul(h,ne)|0,i=(i=i+Math.imul(h,re)|0)+Math.imul(m,ne)|0,a=a+Math.imul(m,re)|0;var Ee=(c+(r=r+Math.imul(d,ae)|0)|0)+((8191&(i=(i=i+Math.imul(d,oe)|0)+Math.imul(f,ae)|0))<<13)|0;c=((a=a+Math.imul(f,oe)|0)+(i>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,r=Math.imul(x,j),i=(i=Math.imul(x,G))+Math.imul(P,j)|0,a=Math.imul(P,G),r=r+Math.imul(k,z)|0,i=(i=i+Math.imul(k,W)|0)+Math.imul(S,z)|0,a=a+Math.imul(S,W)|0,r=r+Math.imul(R,K)|0,i=(i=i+Math.imul(R,X)|0)+Math.imul(C,K)|0,a=a+Math.imul(C,X)|0,r=r+Math.imul(A,Y)|0,i=(i=i+Math.imul(A,Q)|0)+Math.imul(_,Y)|0,a=a+Math.imul(_,Q)|0,r=r+Math.imul(T,Z)|0,i=(i=i+Math.imul(T,ee)|0)+Math.imul(w,Z)|0,a=a+Math.imul(w,ee)|0,r=r+Math.imul(g,ne)|0,i=(i=i+Math.imul(g,re)|0)+Math.imul(b,ne)|0,a=a+Math.imul(b,re)|0,r=r+Math.imul(h,ae)|0,i=(i=i+Math.imul(h,oe)|0)+Math.imul(m,ae)|0,a=a+Math.imul(m,oe)|0;var Ae=(c+(r=r+Math.imul(d,ue)|0)|0)+((8191&(i=(i=i+Math.imul(d,ce)|0)+Math.imul(f,ue)|0))<<13)|0;c=((a=a+Math.imul(f,ce)|0)+(i>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,r=Math.imul(B,j),i=(i=Math.imul(B,G))+Math.imul(D,j)|0,a=Math.imul(D,G),r=r+Math.imul(x,z)|0,i=(i=i+Math.imul(x,W)|0)+Math.imul(P,z)|0,a=a+Math.imul(P,W)|0,r=r+Math.imul(k,K)|0,i=(i=i+Math.imul(k,X)|0)+Math.imul(S,K)|0,a=a+Math.imul(S,X)|0,r=r+Math.imul(R,Y)|0,i=(i=i+Math.imul(R,Q)|0)+Math.imul(C,Y)|0,a=a+Math.imul(C,Q)|0,r=r+Math.imul(A,Z)|0,i=(i=i+Math.imul(A,ee)|0)+Math.imul(_,Z)|0,a=a+Math.imul(_,ee)|0,r=r+Math.imul(T,ne)|0,i=(i=i+Math.imul(T,re)|0)+Math.imul(w,ne)|0,a=a+Math.imul(w,re)|0,r=r+Math.imul(g,ae)|0,i=(i=i+Math.imul(g,oe)|0)+Math.imul(b,ae)|0,a=a+Math.imul(b,oe)|0,r=r+Math.imul(h,ue)|0,i=(i=i+Math.imul(h,ce)|0)+Math.imul(m,ue)|0,a=a+Math.imul(m,ce)|0;var _e=(c+(r=r+Math.imul(d,de)|0)|0)+((8191&(i=(i=i+Math.imul(d,fe)|0)+Math.imul(f,de)|0))<<13)|0;c=((a=a+Math.imul(f,fe)|0)+(i>>>13)|0)+(_e>>>26)|0,_e&=67108863,r=Math.imul(L,j),i=(i=Math.imul(L,G))+Math.imul(U,j)|0,a=Math.imul(U,G),r=r+Math.imul(B,z)|0,i=(i=i+Math.imul(B,W)|0)+Math.imul(D,z)|0,a=a+Math.imul(D,W)|0,r=r+Math.imul(x,K)|0,i=(i=i+Math.imul(x,X)|0)+Math.imul(P,K)|0,a=a+Math.imul(P,X)|0,r=r+Math.imul(k,Y)|0,i=(i=i+Math.imul(k,Q)|0)+Math.imul(S,Y)|0,a=a+Math.imul(S,Q)|0,r=r+Math.imul(R,Z)|0,i=(i=i+Math.imul(R,ee)|0)+Math.imul(C,Z)|0,a=a+Math.imul(C,ee)|0,r=r+Math.imul(A,ne)|0,i=(i=i+Math.imul(A,re)|0)+Math.imul(_,ne)|0,a=a+Math.imul(_,re)|0,r=r+Math.imul(T,ae)|0,i=(i=i+Math.imul(T,oe)|0)+Math.imul(w,ae)|0,a=a+Math.imul(w,oe)|0,r=r+Math.imul(g,ue)|0,i=(i=i+Math.imul(g,ce)|0)+Math.imul(b,ue)|0,a=a+Math.imul(b,ce)|0,r=r+Math.imul(h,de)|0,i=(i=i+Math.imul(h,fe)|0)+Math.imul(m,de)|0,a=a+Math.imul(m,fe)|0;var Ie=(c+(r=r+Math.imul(d,he)|0)|0)+((8191&(i=(i=i+Math.imul(d,me)|0)+Math.imul(f,he)|0))<<13)|0;c=((a=a+Math.imul(f,me)|0)+(i>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,r=Math.imul(L,z),i=(i=Math.imul(L,W))+Math.imul(U,z)|0,a=Math.imul(U,W),r=r+Math.imul(B,K)|0,i=(i=i+Math.imul(B,X)|0)+Math.imul(D,K)|0,a=a+Math.imul(D,X)|0,r=r+Math.imul(x,Y)|0,i=(i=i+Math.imul(x,Q)|0)+Math.imul(P,Y)|0,a=a+Math.imul(P,Q)|0,r=r+Math.imul(k,Z)|0,i=(i=i+Math.imul(k,ee)|0)+Math.imul(S,Z)|0,a=a+Math.imul(S,ee)|0,r=r+Math.imul(R,ne)|0,i=(i=i+Math.imul(R,re)|0)+Math.imul(C,ne)|0,a=a+Math.imul(C,re)|0,r=r+Math.imul(A,ae)|0,i=(i=i+Math.imul(A,oe)|0)+Math.imul(_,ae)|0,a=a+Math.imul(_,oe)|0,r=r+Math.imul(T,ue)|0,i=(i=i+Math.imul(T,ce)|0)+Math.imul(w,ue)|0,a=a+Math.imul(w,ce)|0,r=r+Math.imul(g,de)|0,i=(i=i+Math.imul(g,fe)|0)+Math.imul(b,de)|0,a=a+Math.imul(b,fe)|0;var Re=(c+(r=r+Math.imul(h,he)|0)|0)+((8191&(i=(i=i+Math.imul(h,me)|0)+Math.imul(m,he)|0))<<13)|0;c=((a=a+Math.imul(m,me)|0)+(i>>>13)|0)+(Re>>>26)|0,Re&=67108863,r=Math.imul(L,K),i=(i=Math.imul(L,X))+Math.imul(U,K)|0,a=Math.imul(U,X),r=r+Math.imul(B,Y)|0,i=(i=i+Math.imul(B,Q)|0)+Math.imul(D,Y)|0,a=a+Math.imul(D,Q)|0,r=r+Math.imul(x,Z)|0,i=(i=i+Math.imul(x,ee)|0)+Math.imul(P,Z)|0,a=a+Math.imul(P,ee)|0,r=r+Math.imul(k,ne)|0,i=(i=i+Math.imul(k,re)|0)+Math.imul(S,ne)|0,a=a+Math.imul(S,re)|0,r=r+Math.imul(R,ae)|0,i=(i=i+Math.imul(R,oe)|0)+Math.imul(C,ae)|0,a=a+Math.imul(C,oe)|0,r=r+Math.imul(A,ue)|0,i=(i=i+Math.imul(A,ce)|0)+Math.imul(_,ue)|0,a=a+Math.imul(_,ce)|0,r=r+Math.imul(T,de)|0,i=(i=i+Math.imul(T,fe)|0)+Math.imul(w,de)|0,a=a+Math.imul(w,fe)|0;var Ce=(c+(r=r+Math.imul(g,he)|0)|0)+((8191&(i=(i=i+Math.imul(g,me)|0)+Math.imul(b,he)|0))<<13)|0;c=((a=a+Math.imul(b,me)|0)+(i>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,r=Math.imul(L,Y),i=(i=Math.imul(L,Q))+Math.imul(U,Y)|0,a=Math.imul(U,Q),r=r+Math.imul(B,Z)|0,i=(i=i+Math.imul(B,ee)|0)+Math.imul(D,Z)|0,a=a+Math.imul(D,ee)|0,r=r+Math.imul(x,ne)|0,i=(i=i+Math.imul(x,re)|0)+Math.imul(P,ne)|0,a=a+Math.imul(P,re)|0,r=r+Math.imul(k,ae)|0,i=(i=i+Math.imul(k,oe)|0)+Math.imul(S,ae)|0,a=a+Math.imul(S,oe)|0,r=r+Math.imul(R,ue)|0,i=(i=i+Math.imul(R,ce)|0)+Math.imul(C,ue)|0,a=a+Math.imul(C,ce)|0,r=r+Math.imul(A,de)|0,i=(i=i+Math.imul(A,fe)|0)+Math.imul(_,de)|0,a=a+Math.imul(_,fe)|0;var Oe=(c+(r=r+Math.imul(T,he)|0)|0)+((8191&(i=(i=i+Math.imul(T,me)|0)+Math.imul(w,he)|0))<<13)|0;c=((a=a+Math.imul(w,me)|0)+(i>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,r=Math.imul(L,Z),i=(i=Math.imul(L,ee))+Math.imul(U,Z)|0,a=Math.imul(U,ee),r=r+Math.imul(B,ne)|0,i=(i=i+Math.imul(B,re)|0)+Math.imul(D,ne)|0,a=a+Math.imul(D,re)|0,r=r+Math.imul(x,ae)|0,i=(i=i+Math.imul(x,oe)|0)+Math.imul(P,ae)|0,a=a+Math.imul(P,oe)|0,r=r+Math.imul(k,ue)|0,i=(i=i+Math.imul(k,ce)|0)+Math.imul(S,ue)|0,a=a+Math.imul(S,ce)|0,r=r+Math.imul(R,de)|0,i=(i=i+Math.imul(R,fe)|0)+Math.imul(C,de)|0,a=a+Math.imul(C,fe)|0;var ke=(c+(r=r+Math.imul(A,he)|0)|0)+((8191&(i=(i=i+Math.imul(A,me)|0)+Math.imul(_,he)|0))<<13)|0;c=((a=a+Math.imul(_,me)|0)+(i>>>13)|0)+(ke>>>26)|0,ke&=67108863,r=Math.imul(L,ne),i=(i=Math.imul(L,re))+Math.imul(U,ne)|0,a=Math.imul(U,re),r=r+Math.imul(B,ae)|0,i=(i=i+Math.imul(B,oe)|0)+Math.imul(D,ae)|0,a=a+Math.imul(D,oe)|0,r=r+Math.imul(x,ue)|0,i=(i=i+Math.imul(x,ce)|0)+Math.imul(P,ue)|0,a=a+Math.imul(P,ce)|0,r=r+Math.imul(k,de)|0,i=(i=i+Math.imul(k,fe)|0)+Math.imul(S,de)|0,a=a+Math.imul(S,fe)|0;var Se=(c+(r=r+Math.imul(R,he)|0)|0)+((8191&(i=(i=i+Math.imul(R,me)|0)+Math.imul(C,he)|0))<<13)|0;c=((a=a+Math.imul(C,me)|0)+(i>>>13)|0)+(Se>>>26)|0,Se&=67108863,r=Math.imul(L,ae),i=(i=Math.imul(L,oe))+Math.imul(U,ae)|0,a=Math.imul(U,oe),r=r+Math.imul(B,ue)|0,i=(i=i+Math.imul(B,ce)|0)+Math.imul(D,ue)|0,a=a+Math.imul(D,ce)|0,r=r+Math.imul(x,de)|0,i=(i=i+Math.imul(x,fe)|0)+Math.imul(P,de)|0,a=a+Math.imul(P,fe)|0;var Ne=(c+(r=r+Math.imul(k,he)|0)|0)+((8191&(i=(i=i+Math.imul(k,me)|0)+Math.imul(S,he)|0))<<13)|0;c=((a=a+Math.imul(S,me)|0)+(i>>>13)|0)+(Ne>>>26)|0,Ne&=67108863,r=Math.imul(L,ue),i=(i=Math.imul(L,ce))+Math.imul(U,ue)|0,a=Math.imul(U,ce),r=r+Math.imul(B,de)|0,i=(i=i+Math.imul(B,fe)|0)+Math.imul(D,de)|0,a=a+Math.imul(D,fe)|0;var xe=(c+(r=r+Math.imul(x,he)|0)|0)+((8191&(i=(i=i+Math.imul(x,me)|0)+Math.imul(P,he)|0))<<13)|0;c=((a=a+Math.imul(P,me)|0)+(i>>>13)|0)+(xe>>>26)|0,xe&=67108863,r=Math.imul(L,de),i=(i=Math.imul(L,fe))+Math.imul(U,de)|0,a=Math.imul(U,fe);var Pe=(c+(r=r+Math.imul(B,he)|0)|0)+((8191&(i=(i=i+Math.imul(B,me)|0)+Math.imul(D,he)|0))<<13)|0;c=((a=a+Math.imul(D,me)|0)+(i>>>13)|0)+(Pe>>>26)|0,Pe&=67108863;var Me=(c+(r=Math.imul(L,he))|0)+((8191&(i=(i=Math.imul(L,me))+Math.imul(U,he)|0))<<13)|0;return c=((a=Math.imul(U,me))+(i>>>13)|0)+(Me>>>26)|0,Me&=67108863,u[0]=ye,u[1]=ge,u[2]=be,u[3]=ve,u[4]=Te,u[5]=we,u[6]=Ee,u[7]=Ae,u[8]=_e,u[9]=Ie,u[10]=Re,u[11]=Ce,u[12]=Oe,u[13]=ke,u[14]=Se,u[15]=Ne,u[16]=xe,u[17]=Pe,u[18]=Me,0!==c&&(u[19]=c,n.length++),n};function y(e,t,n){n.negative=t.negative^e.negative,n.length=e.length+t.length;for(var r=0,i=0,a=0;a<n.length-1;a++){var o=i;i=0;for(var s=67108863&r,u=Math.min(a,t.length-1),c=Math.max(0,a-e.length+1);c<=u;c++){var l=a-c,d=(0|e.words[l])*(0|t.words[c]),f=67108863&d;s=67108863&(f=f+s|0),i+=(o=(o=o+(d/67108864|0)|0)+(f>>>26)|0)>>>26,o&=67108863}n.words[a]=s,r=o,o=i}return 0!==r?n.words[a]=r:n.length--,n._strip()}function g(e,t,n){return y(e,t,n)}Math.imul||(m=h),i.prototype.mulTo=function(e,t){var n=this.length+e.length;return 10===this.length&&10===e.length?m(this,e,t):n<63?h(this,e,t):n<1024?y(this,e,t):g(this,e,t)},i.prototype.mul=function(e){var t=new i(null);return t.words=new Array(this.length+e.length),this.mulTo(e,t)},i.prototype.mulf=function(e){var t=new i(null);return t.words=new Array(this.length+e.length),g(this,e,t)},i.prototype.imul=function(e){return this.clone().mulTo(e,this)},i.prototype.imuln=function(e){var t=e<0;t&&(e=-e),n("number"==typeof e),n(e<67108864);for(var r=0,i=0;i<this.length;i++){var a=(0|this.words[i])*e,o=(67108863&a)+(67108863&r);r>>=26,r+=a/67108864|0,r+=o>>>26,this.words[i]=67108863&o}return 0!==r&&(this.words[i]=r,this.length++),t?this.ineg():this},i.prototype.muln=function(e){return this.clone().imuln(e)},i.prototype.sqr=function(){return this.mul(this)},i.prototype.isqr=function(){return this.imul(this.clone())},i.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),n=0;n<t.length;n++){var r=n/26|0,i=n%26;t[n]=e.words[r]>>>i&1}return t}(e);if(0===t.length)return new i(1);for(var n=this,r=0;r<t.length&&0===t[r];r++,n=n.sqr());if(++r<t.length)for(var a=n.sqr();r<t.length;r++,a=a.sqr())0!==t[r]&&(n=n.mul(a));return n},i.prototype.iushln=function(e){n("number"==typeof e&&e>=0);var t,r=e%26,i=(e-r)/26,a=67108863>>>26-r<<26-r;if(0!==r){var o=0;for(t=0;t<this.length;t++){var s=this.words[t]&a,u=(0|this.words[t])-s<<r;this.words[t]=u|o,o=s>>>26-r}o&&(this.words[t]=o,this.length++)}if(0!==i){for(t=this.length-1;t>=0;t--)this.words[t+i]=this.words[t];for(t=0;t<i;t++)this.words[t]=0;this.length+=i}return this._strip()},i.prototype.ishln=function(e){return n(0===this.negative),this.iushln(e)},i.prototype.iushrn=function(e,t,r){var i;n("number"==typeof e&&e>=0),i=t?(t-t%26)/26:0;var a=e%26,o=Math.min((e-a)/26,this.length),s=67108863^67108863>>>a<<a,u=r;if(i-=o,i=Math.max(0,i),u){for(var c=0;c<o;c++)u.words[c]=this.words[c];u.length=o}if(0===o);else if(this.length>o)for(this.length-=o,c=0;c<this.length;c++)this.words[c]=this.words[c+o];else this.words[0]=0,this.length=1;var l=0;for(c=this.length-1;c>=0&&(0!==l||c>=i);c--){var d=0|this.words[c];this.words[c]=l<<26-a|d>>>a,l=d&s}return u&&0!==l&&(u.words[u.length++]=l),0===this.length&&(this.words[0]=0,this.length=1),this._strip()},i.prototype.ishrn=function(e,t,r){return n(0===this.negative),this.iushrn(e,t,r)},i.prototype.shln=function(e){return this.clone().ishln(e)},i.prototype.ushln=function(e){return this.clone().iushln(e)},i.prototype.shrn=function(e){return this.clone().ishrn(e)},i.prototype.ushrn=function(e){return this.clone().iushrn(e)},i.prototype.testn=function(e){n("number"==typeof e&&e>=0);var t=e%26,r=(e-t)/26,i=1<<t;return!(this.length<=r)&&!!(this.words[r]&i)},i.prototype.imaskn=function(e){n("number"==typeof e&&e>=0);var t=e%26,r=(e-t)/26;if(n(0===this.negative,"imaskn works only with positive numbers"),this.length<=r)return this;if(0!==t&&r++,this.length=Math.min(r,this.length),0!==t){var i=67108863^67108863>>>t<<t;this.words[this.length-1]&=i}return this._strip()},i.prototype.maskn=function(e){return this.clone().imaskn(e)},i.prototype.iaddn=function(e){return n("number"==typeof e),n(e<67108864),e<0?this.isubn(-e):0!==this.negative?1===this.length&&(0|this.words[0])<=e?(this.words[0]=e-(0|this.words[0]),this.negative=0,this):(this.negative=0,this.isubn(e),this.negative=1,this):this._iaddn(e)},i.prototype._iaddn=function(e){this.words[0]+=e;for(var t=0;t<this.length&&this.words[t]>=67108864;t++)this.words[t]-=67108864,t===this.length-1?this.words[t+1]=1:this.words[t+1]++;return this.length=Math.max(this.length,t+1),this},i.prototype.isubn=function(e){if(n("number"==typeof e),n(e<67108864),e<0)return this.iaddn(-e);if(0!==this.negative)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var t=0;t<this.length&&this.words[t]<0;t++)this.words[t]+=67108864,this.words[t+1]-=1;return this._strip()},i.prototype.addn=function(e){return this.clone().iaddn(e)},i.prototype.subn=function(e){return this.clone().isubn(e)},i.prototype.iabs=function(){return this.negative=0,this},i.prototype.abs=function(){return this.clone().iabs()},i.prototype._ishlnsubmul=function(e,t,r){var i,a,o=e.length+r;this._expand(o);var s=0;for(i=0;i<e.length;i++){a=(0|this.words[i+r])+s;var u=(0|e.words[i])*t;s=((a-=67108863&u)>>26)-(u/67108864|0),this.words[i+r]=67108863&a}for(;i<this.length-r;i++)s=(a=(0|this.words[i+r])+s)>>26,this.words[i+r]=67108863&a;if(0===s)return this._strip();for(n(-1===s),s=0,i=0;i<this.length;i++)s=(a=-(0|this.words[i])+s)>>26,this.words[i]=67108863&a;return this.negative=1,this._strip()},i.prototype._wordDiv=function(e,t){var n=(this.length,e.length),r=this.clone(),a=e,o=0|a.words[a.length-1];0!==(n=26-this._countBits(o))&&(a=a.ushln(n),r.iushln(n),o=0|a.words[a.length-1]);var s,u=r.length-a.length;if("mod"!==t){(s=new i(null)).length=u+1,s.words=new Array(s.length);for(var c=0;c<s.length;c++)s.words[c]=0}var l=r.clone()._ishlnsubmul(a,1,u);0===l.negative&&(r=l,s&&(s.words[u]=1));for(var d=u-1;d>=0;d--){var f=67108864*(0|r.words[a.length+d])+(0|r.words[a.length+d-1]);for(f=Math.min(f/o|0,67108863),r._ishlnsubmul(a,f,d);0!==r.negative;)f--,r.negative=0,r._ishlnsubmul(a,1,d),r.isZero()||(r.negative^=1);s&&(s.words[d]=f)}return s&&s._strip(),r._strip(),"div"!==t&&0!==n&&r.iushrn(n),{div:s||null,mod:r}},i.prototype.divmod=function(e,t,r){return n(!e.isZero()),this.isZero()?{div:new i(0),mod:new i(0)}:0!==this.negative&&0===e.negative?(s=this.neg().divmod(e,t),"mod"!==t&&(a=s.div.neg()),"div"!==t&&(o=s.mod.neg(),r&&0!==o.negative&&o.iadd(e)),{div:a,mod:o}):0===this.negative&&0!==e.negative?(s=this.divmod(e.neg(),t),"mod"!==t&&(a=s.div.neg()),{div:a,mod:s.mod}):0!=(this.negative&e.negative)?(s=this.neg().divmod(e.neg(),t),"div"!==t&&(o=s.mod.neg(),r&&0!==o.negative&&o.isub(e)),{div:s.div,mod:o}):e.length>this.length||this.cmp(e)<0?{div:new i(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new i(this.modrn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new i(this.modrn(e.words[0]))}:this._wordDiv(e,t);var a,o,s},i.prototype.div=function(e){return this.divmod(e,"div",!1).div},i.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},i.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},i.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var n=0!==t.div.negative?t.mod.isub(e):t.mod,r=e.ushrn(1),i=e.andln(1),a=n.cmp(r);return a<0||1===i&&0===a?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},i.prototype.modrn=function(e){var t=e<0;t&&(e=-e),n(e<=67108863);for(var r=(1<<26)%e,i=0,a=this.length-1;a>=0;a--)i=(r*i+(0|this.words[a]))%e;return t?-i:i},i.prototype.modn=function(e){return this.modrn(e)},i.prototype.idivn=function(e){var t=e<0;t&&(e=-e),n(e<=67108863);for(var r=0,i=this.length-1;i>=0;i--){var a=(0|this.words[i])+67108864*r;this.words[i]=a/e|0,r=a%e}return this._strip(),t?this.ineg():this},i.prototype.divn=function(e){return this.clone().idivn(e)},i.prototype.egcd=function(e){n(0===e.negative),n(!e.isZero());var t=this,r=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var a=new i(1),o=new i(0),s=new i(0),u=new i(1),c=0;t.isEven()&&r.isEven();)t.iushrn(1),r.iushrn(1),++c;for(var l=r.clone(),d=t.clone();!t.isZero();){for(var f=0,p=1;0==(t.words[0]&p)&&f<26;++f,p<<=1);if(f>0)for(t.iushrn(f);f-- >0;)(a.isOdd()||o.isOdd())&&(a.iadd(l),o.isub(d)),a.iushrn(1),o.iushrn(1);for(var h=0,m=1;0==(r.words[0]&m)&&h<26;++h,m<<=1);if(h>0)for(r.iushrn(h);h-- >0;)(s.isOdd()||u.isOdd())&&(s.iadd(l),u.isub(d)),s.iushrn(1),u.iushrn(1);t.cmp(r)>=0?(t.isub(r),a.isub(s),o.isub(u)):(r.isub(t),s.isub(a),u.isub(o))}return{a:s,b:u,gcd:r.iushln(c)}},i.prototype._invmp=function(e){n(0===e.negative),n(!e.isZero());var t=this,r=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var a,o=new i(1),s=new i(0),u=r.clone();t.cmpn(1)>0&&r.cmpn(1)>0;){for(var c=0,l=1;0==(t.words[0]&l)&&c<26;++c,l<<=1);if(c>0)for(t.iushrn(c);c-- >0;)o.isOdd()&&o.iadd(u),o.iushrn(1);for(var d=0,f=1;0==(r.words[0]&f)&&d<26;++d,f<<=1);if(d>0)for(r.iushrn(d);d-- >0;)s.isOdd()&&s.iadd(u),s.iushrn(1);t.cmp(r)>=0?(t.isub(r),o.isub(s)):(r.isub(t),s.isub(o))}return(a=0===t.cmpn(1)?o:s).cmpn(0)<0&&a.iadd(e),a},i.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),n=e.clone();t.negative=0,n.negative=0;for(var r=0;t.isEven()&&n.isEven();r++)t.iushrn(1),n.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;n.isEven();)n.iushrn(1);var i=t.cmp(n);if(i<0){var a=t;t=n,n=a}else if(0===i||0===n.cmpn(1))break;t.isub(n)}return n.iushln(r)},i.prototype.invm=function(e){return this.egcd(e).a.umod(e)},i.prototype.isEven=function(){return 0==(1&this.words[0])},i.prototype.isOdd=function(){return 1==(1&this.words[0])},i.prototype.andln=function(e){return this.words[0]&e},i.prototype.bincn=function(e){n("number"==typeof e);var t=e%26,r=(e-t)/26,i=1<<t;if(this.length<=r)return this._expand(r+1),this.words[r]|=i,this;for(var a=i,o=r;0!==a&&o<this.length;o++){var s=0|this.words[o];a=(s+=a)>>>26,s&=67108863,this.words[o]=s}return 0!==a&&(this.words[o]=a,this.length++),this},i.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},i.prototype.cmpn=function(e){var t,r=e<0;if(0!==this.negative&&!r)return-1;if(0===this.negative&&r)return 1;if(this._strip(),this.length>1)t=1;else{r&&(e=-e),n(e<=67108863,"Number is too big");var i=0|this.words[0];t=i===e?0:i<e?-1:1}return 0!==this.negative?0|-t:t},i.prototype.cmp=function(e){if(0!==this.negative&&0===e.negative)return-1;if(0===this.negative&&0!==e.negative)return 1;var t=this.ucmp(e);return 0!==this.negative?0|-t:t},i.prototype.ucmp=function(e){if(this.length>e.length)return 1;if(this.length<e.length)return-1;for(var t=0,n=this.length-1;n>=0;n--){var r=0|this.words[n],i=0|e.words[n];if(r!==i){r<i?t=-1:r>i&&(t=1);break}}return t},i.prototype.gtn=function(e){return 1===this.cmpn(e)},i.prototype.gt=function(e){return 1===this.cmp(e)},i.prototype.gten=function(e){return this.cmpn(e)>=0},i.prototype.gte=function(e){return this.cmp(e)>=0},i.prototype.ltn=function(e){return-1===this.cmpn(e)},i.prototype.lt=function(e){return-1===this.cmp(e)},i.prototype.lten=function(e){return this.cmpn(e)<=0},i.prototype.lte=function(e){return this.cmp(e)<=0},i.prototype.eqn=function(e){return 0===this.cmpn(e)},i.prototype.eq=function(e){return 0===this.cmp(e)},i.red=function(e){return new _(e)},i.prototype.toRed=function(e){return n(!this.red,"Already a number in reduction context"),n(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},i.prototype.fromRed=function(){return n(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},i.prototype._forceRed=function(e){return this.red=e,this},i.prototype.forceRed=function(e){return n(!this.red,"Already a number in reduction context"),this._forceRed(e)},i.prototype.redAdd=function(e){return n(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},i.prototype.redIAdd=function(e){return n(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},i.prototype.redSub=function(e){return n(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},i.prototype.redISub=function(e){return n(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},i.prototype.redShl=function(e){return n(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},i.prototype.redMul=function(e){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},i.prototype.redIMul=function(e){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},i.prototype.redSqr=function(){return n(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},i.prototype.redISqr=function(){return n(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},i.prototype.redSqrt=function(){return n(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},i.prototype.redInvm=function(){return n(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},i.prototype.redNeg=function(){return n(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},i.prototype.redPow=function(e){return n(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var b={k256:null,p224:null,p192:null,p25519:null};function v(e,t){this.name=e,this.p=new i(t,16),this.n=this.p.bitLength(),this.k=new i(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function T(){v.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function w(){v.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function E(){v.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function A(){v.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function _(e){if("string"==typeof e){var t=i._prime(e);this.m=t.p,this.prime=t}else n(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function I(e){_.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new i(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}v.prototype._tmp=function(){var e=new i(null);return e.words=new Array(Math.ceil(this.n/13)),e},v.prototype.ireduce=function(e){var t,n=e;do{this.split(n,this.tmp),t=(n=(n=this.imulK(n)).iadd(this.tmp)).bitLength()}while(t>this.n);var r=t<this.n?-1:n.ucmp(this.p);return 0===r?(n.words[0]=0,n.length=1):r>0?n.isub(this.p):void 0!==n.strip?n.strip():n._strip(),n},v.prototype.split=function(e,t){e.iushrn(this.n,0,t)},v.prototype.imulK=function(e){return e.imul(this.k)},r(T,v),T.prototype.split=function(e,t){for(var n=4194303,r=Math.min(e.length,9),i=0;i<r;i++)t.words[i]=e.words[i];if(t.length=r,e.length<=9)return e.words[0]=0,void(e.length=1);var a=e.words[9];for(t.words[t.length++]=a&n,i=10;i<e.length;i++){var o=0|e.words[i];e.words[i-10]=(o&n)<<4|a>>>22,a=o}a>>>=22,e.words[i-10]=a,0===a&&e.length>10?e.length-=10:e.length-=9},T.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,n=0;n<e.length;n++){var r=0|e.words[n];t+=977*r,e.words[n]=67108863&t,t=64*r+(t/67108864|0)}return 0===e.words[e.length-1]&&(e.length--,0===e.words[e.length-1]&&e.length--),e},r(w,v),r(E,v),r(A,v),A.prototype.imulK=function(e){for(var t=0,n=0;n<e.length;n++){var r=19*(0|e.words[n])+t,i=67108863&r;r>>>=26,e.words[n]=i,t=r}return 0!==t&&(e.words[e.length++]=t),e},i._prime=function(e){if(b[e])return b[e];var t;if("k256"===e)t=new T;else if("p224"===e)t=new w;else if("p192"===e)t=new E;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new A}return b[e]=t,t},_.prototype._verify1=function(e){n(0===e.negative,"red works only with positives"),n(e.red,"red works only with red numbers")},_.prototype._verify2=function(e,t){n(0==(e.negative|t.negative),"red works only with positives"),n(e.red&&e.red===t.red,"red works only with red numbers")},_.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):(c(e,e.umod(this.m)._forceRed(this)),e)},_.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},_.prototype.add=function(e,t){this._verify2(e,t);var n=e.add(t);return n.cmp(this.m)>=0&&n.isub(this.m),n._forceRed(this)},_.prototype.iadd=function(e,t){this._verify2(e,t);var n=e.iadd(t);return n.cmp(this.m)>=0&&n.isub(this.m),n},_.prototype.sub=function(e,t){this._verify2(e,t);var n=e.sub(t);return n.cmpn(0)<0&&n.iadd(this.m),n._forceRed(this)},_.prototype.isub=function(e,t){this._verify2(e,t);var n=e.isub(t);return n.cmpn(0)<0&&n.iadd(this.m),n},_.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},_.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},_.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},_.prototype.isqr=function(e){return this.imul(e,e.clone())},_.prototype.sqr=function(e){return this.mul(e,e)},_.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(n(t%2==1),3===t){var r=this.m.add(new i(1)).iushrn(2);return this.pow(e,r)}for(var a=this.m.subn(1),o=0;!a.isZero()&&0===a.andln(1);)o++,a.iushrn(1);n(!a.isZero());var s=new i(1).toRed(this),u=s.redNeg(),c=this.m.subn(1).iushrn(1),l=this.m.bitLength();for(l=new i(2*l*l).toRed(this);0!==this.pow(l,c).cmp(u);)l.redIAdd(u);for(var d=this.pow(l,a),f=this.pow(e,a.addn(1).iushrn(1)),p=this.pow(e,a),h=o;0!==p.cmp(s);){for(var m=p,y=0;0!==m.cmp(s);y++)m=m.redSqr();n(y<h);var g=this.pow(d,new i(1).iushln(h-y-1));f=f.redMul(g),d=g.redSqr(),p=p.redMul(d),h=y}return f},_.prototype.invm=function(e){var t=e._invmp(this.m);return 0!==t.negative?(t.negative=0,this.imod(t).redNeg()):this.imod(t)},_.prototype.pow=function(e,t){if(t.isZero())return new i(1).toRed(this);if(0===t.cmpn(1))return e.clone();var n=new Array(16);n[0]=new i(1).toRed(this),n[1]=e;for(var r=2;r<n.length;r++)n[r]=this.mul(n[r-1],e);var a=n[0],o=0,s=0,u=t.bitLength()%26;for(0===u&&(u=26),r=t.length-1;r>=0;r--){for(var c=t.words[r],l=u-1;l>=0;l--){var d=c>>l&1;a!==n[0]&&(a=this.sqr(a)),0!==d||0!==o?(o<<=1,o|=d,(4===++s||0===r&&0===l)&&(a=this.mul(a,n[o]),s=0,o=0)):s=0}u=26}return a},_.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},_.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},i.mont=function(e){return new I(e)},r(I,_),I.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},I.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},I.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var n=e.imul(t),r=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=n.isub(r).iushrn(this.shift),a=i;return i.cmp(this.m)>=0?a=i.isub(this.m):i.cmpn(0)<0&&(a=i.iadd(this.m)),a._forceRed(this)},I.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new i(0)._forceRed(this);var n=e.mul(t),r=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),a=n.isub(r).iushrn(this.shift),o=a;return a.cmp(this.m)>=0?o=a.isub(this.m):a.cmpn(0)<0&&(o=a.iadd(this.m)),o._forceRed(this)},I.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(e,rb)}(ob);var ub=ib(ob.exports);let cb=!1,lb=!1;const db={debug:1,default:2,info:2,warning:3,error:4,off:5};let fb=db.default,pb=null;const hb=function(){try{const e=[];if(["NFD","NFC","NFKD","NFKC"].forEach((t=>{try{if("test"!=="test".normalize(t))throw new Error("bad normalize")}catch(n){e.push(t)}})),e.length)throw new Error("missing "+e.join(", "));if(String.fromCharCode(233).normalize("NFD")!==String.fromCharCode(101,769))throw new Error("broken implementation")}catch(e){return e.message}return null}();var mb,yb;!function(e){e.DEBUG="DEBUG",e.INFO="INFO",e.WARNING="WARNING",e.ERROR="ERROR",e.OFF="OFF"}(mb||(mb={})),function(e){e.UNKNOWN_ERROR="UNKNOWN_ERROR",e.NOT_IMPLEMENTED="NOT_IMPLEMENTED",e.UNSUPPORTED_OPERATION="UNSUPPORTED_OPERATION",e.NETWORK_ERROR="NETWORK_ERROR",e.SERVER_ERROR="SERVER_ERROR",e.TIMEOUT="TIMEOUT",e.BUFFER_OVERRUN="BUFFER_OVERRUN",e.NUMERIC_FAULT="NUMERIC_FAULT",e.MISSING_NEW="MISSING_NEW",e.INVALID_ARGUMENT="INVALID_ARGUMENT",e.MISSING_ARGUMENT="MISSING_ARGUMENT",e.UNEXPECTED_ARGUMENT="UNEXPECTED_ARGUMENT",e.CALL_EXCEPTION="CALL_EXCEPTION",e.INSUFFICIENT_FUNDS="INSUFFICIENT_FUNDS",e.NONCE_EXPIRED="NONCE_EXPIRED",e.REPLACEMENT_UNDERPRICED="REPLACEMENT_UNDERPRICED",e.UNPREDICTABLE_GAS_LIMIT="UNPREDICTABLE_GAS_LIMIT",e.TRANSACTION_REPLACED="TRANSACTION_REPLACED",e.ACTION_REJECTED="ACTION_REJECTED"}(yb||(yb={}));const gb="0123456789abcdef";let bb=class e{constructor(e){Object.defineProperty(this,"version",{enumerable:!0,value:e,writable:!1})}_log(e,t){const n=e.toLowerCase();null==db[n]&&this.throwArgumentError("invalid log level name","logLevel",e),fb>db[n]||console.log.apply(console,t)}debug(...t){this._log(e.levels.DEBUG,t)}info(...t){this._log(e.levels.INFO,t)}warn(...t){this._log(e.levels.WARNING,t)}makeError(t,n,r){if(lb)return this.makeError("censored error",n,{});n||(n=e.errors.UNKNOWN_ERROR),r||(r={});const i=[];Object.keys(r).forEach((e=>{const t=r[e];try{if(t instanceof Uint8Array){let n="";for(let e=0;e<t.length;e++)n+=gb[t[e]>>4],n+=gb[15&t[e]];i.push(e+"=Uint8Array(0x"+n+")")}else i.push(e+"="+JSON.stringify(t))}catch(t){i.push(e+"="+JSON.stringify(r[e].toString()))}})),i.push(`code=${n}`),i.push(`version=${this.version}`);const a=t;let o="";switch(n){case yb.NUMERIC_FAULT:{o="NUMERIC_FAULT";const e=t;switch(e){case"overflow":case"underflow":case"division-by-zero":o+="-"+e;break;case"negative-power":case"negative-width":o+="-unsupported";break;case"unbound-bitwise-result":o+="-unbound-result"}break}case yb.CALL_EXCEPTION:case yb.INSUFFICIENT_FUNDS:case yb.MISSING_NEW:case yb.NONCE_EXPIRED:case yb.REPLACEMENT_UNDERPRICED:case yb.TRANSACTION_REPLACED:case yb.UNPREDICTABLE_GAS_LIMIT:o=n}o&&(t+=" [ See: https://links.ethers.org/v5-errors-"+o+" ]"),i.length&&(t+=" ("+i.join(", ")+")");const s=new Error(t);return s.reason=a,s.code=n,Object.keys(r).forEach((function(e){s[e]=r[e]})),s}throwError(e,t,n){throw this.makeError(e,t,n)}throwArgumentError(t,n,r){return this.throwError(t,e.errors.INVALID_ARGUMENT,{argument:n,value:r})}assert(e,t,n,r){e||this.throwError(t,n,r)}assertArgument(e,t,n,r){e||this.throwArgumentError(t,n,r)}checkNormalize(t){hb&&this.throwError("platform missing String.prototype.normalize",e.errors.UNSUPPORTED_OPERATION,{operation:"String.prototype.normalize",form:hb})}checkSafeUint53(t,n){"number"==typeof t&&(null==n&&(n="value not safe"),(t<0||t>=9007199254740991)&&this.throwError(n,e.errors.NUMERIC_FAULT,{operation:"checkSafeInteger",fault:"out-of-safe-range",value:t}),t%1&&this.throwError(n,e.errors.NUMERIC_FAULT,{operation:"checkSafeInteger",fault:"non-integer",value:t}))}checkArgumentCount(t,n,r){r=r?": "+r:"",t<n&&this.throwError("missing argument"+r,e.errors.MISSING_ARGUMENT,{count:t,expectedCount:n}),t>n&&this.throwError("too many arguments"+r,e.errors.UNEXPECTED_ARGUMENT,{count:t,expectedCount:n})}checkNew(t,n){t!==Object&&null!=t||this.throwError("missing new",e.errors.MISSING_NEW,{name:n.name})}checkAbstract(t,n){t===n?this.throwError("cannot instantiate abstract class "+JSON.stringify(n.name)+" directly; use a sub-class",e.errors.UNSUPPORTED_OPERATION,{name:t.name,operation:"new"}):t!==Object&&null!=t||this.throwError("missing new",e.errors.MISSING_NEW,{name:n.name})}static globalLogger(){return pb||(pb=new e("logger/5.7.0")),pb}static setCensorship(t,n){if(!t&&n&&this.globalLogger().throwError("cannot permanently disable censorship",e.errors.UNSUPPORTED_OPERATION,{operation:"setCensorship"}),cb){if(!t)return;this.globalLogger().throwError("error censorship permanent",e.errors.UNSUPPORTED_OPERATION,{operation:"setCensorship"})}lb=!!t,cb=!!n}static setLogLevel(t){const n=db[t.toLowerCase()];null!=n?fb=n:e.globalLogger().warn("invalid log level - "+t)}static from(t){return new e(t)}};bb.errors=yb,bb.levels=mb;const vb=new bb("bytes/5.7.0");function Tb(e){return!!e.toHexString}function wb(e){return e.slice||(e.slice=function(){const t=Array.prototype.slice.call(arguments);return wb(new Uint8Array(Array.prototype.slice.apply(e,t)))}),e}function Eb(e){return"number"==typeof e&&e==e&&e%1==0}function Ab(e){if(null==e)return!1;if(e.constructor===Uint8Array)return!0;if("string"==typeof e)return!1;if(!Eb(e.length)||e.length<0)return!1;for(let t=0;t<e.length;t++){const n=e[t];if(!Eb(n)||n<0||n>=256)return!1}return!0}function _b(e,t){if(t||(t={}),"number"==typeof e){vb.checkSafeUint53(e,"invalid arrayify value");const t=[];for(;e;)t.unshift(255&e),e=parseInt(String(e/256));return 0===t.length&&t.push(0),wb(new Uint8Array(t))}if(t.allowMissingPrefix&&"string"==typeof e&&"0x"!==e.substring(0,2)&&(e="0x"+e),Tb(e)&&(e=e.toHexString()),Rb(e)){let n=e.substring(2);n.length%2&&("left"===t.hexPad?n="0"+n:"right"===t.hexPad?n+="0":vb.throwArgumentError("hex data is odd-length","value",e));const r=[];for(let e=0;e<n.length;e+=2)r.push(parseInt(n.substring(e,e+2),16));return wb(new Uint8Array(r))}return Ab(e)?wb(new Uint8Array(e)):vb.throwArgumentError("invalid arrayify value","value",e)}function Ib(e){const t=e.map((e=>_b(e))),n=t.reduce(((e,t)=>e+t.length),0),r=new Uint8Array(n);return t.reduce(((e,t)=>(r.set(t,e),e+t.length)),0),wb(r)}function Rb(e,t){return!("string"!=typeof e||!e.match(/^0x[0-9A-Fa-f]*$/))&&(!t||e.length===2+2*t)}const Cb="0123456789abcdef";function Ob(e,t){if(t||(t={}),"number"==typeof e){vb.checkSafeUint53(e,"invalid hexlify value");let t="";for(;e;)t=Cb[15&e]+t,e=Math.floor(e/16);return t.length?(t.length%2&&(t="0"+t),"0x"+t):"0x00"}if("bigint"==typeof e)return(e=e.toString(16)).length%2?"0x0"+e:"0x"+e;if(t.allowMissingPrefix&&"string"==typeof e&&"0x"!==e.substring(0,2)&&(e="0x"+e),Tb(e))return e.toHexString();if(Rb(e))return e.length%2&&("left"===t.hexPad?e="0x0"+e.substring(2):"right"===t.hexPad?e+="0":vb.throwArgumentError("hex data is odd-length","value",e)),e.toLowerCase();if(Ab(e)){let t="0x";for(let n=0;n<e.length;n++){let r=e[n];t+=Cb[(240&r)>>4]+Cb[15&r]}return t}return vb.throwArgumentError("invalid hexlify value","value",e)}function kb(e,t,n){return"string"!=typeof e?e=Ob(e):(!Rb(e)||e.length%2)&&vb.throwArgumentError("invalid hexData","value",e),t=2+2*t,null!=n?"0x"+e.substring(t,2+2*n):"0x"+e.substring(t)}function Sb(e,t){for("string"!=typeof e?e=Ob(e):Rb(e)||vb.throwArgumentError("invalid hex string","value",e),e.length>2*t+2&&vb.throwArgumentError("value out of range","value",arguments[1]);e.length<2*t+2;)e="0x0"+e.substring(2);return e}var Nb=ub.BN;const xb=new bb("bignumber/5.7.0"),Pb={},Mb=9007199254740991;let Bb=!1;class Db{constructor(e,t){e!==Pb&&xb.throwError("cannot call constructor directly; use BigNumber.from",bb.errors.UNSUPPORTED_OPERATION,{operation:"new (BigNumber)"}),this._hex=t,this._isBigNumber=!0,Object.freeze(this)}fromTwos(e){return Lb(Ub(this).fromTwos(e))}toTwos(e){return Lb(Ub(this).toTwos(e))}abs(){return"-"===this._hex[0]?Db.from(this._hex.substring(1)):this}add(e){return Lb(Ub(this).add(Ub(e)))}sub(e){return Lb(Ub(this).sub(Ub(e)))}div(e){return Db.from(e).isZero()&&qb("division-by-zero","div"),Lb(Ub(this).div(Ub(e)))}mul(e){return Lb(Ub(this).mul(Ub(e)))}mod(e){const t=Ub(e);return t.isNeg()&&qb("division-by-zero","mod"),Lb(Ub(this).umod(t))}pow(e){const t=Ub(e);return t.isNeg()&&qb("negative-power","pow"),Lb(Ub(this).pow(t))}and(e){const t=Ub(e);return(this.isNegative()||t.isNeg())&&qb("unbound-bitwise-result","and"),Lb(Ub(this).and(t))}or(e){const t=Ub(e);return(this.isNegative()||t.isNeg())&&qb("unbound-bitwise-result","or"),Lb(Ub(this).or(t))}xor(e){const t=Ub(e);return(this.isNegative()||t.isNeg())&&qb("unbound-bitwise-result","xor"),Lb(Ub(this).xor(t))}mask(e){return(this.isNegative()||e<0)&&qb("negative-width","mask"),Lb(Ub(this).maskn(e))}shl(e){return(this.isNegative()||e<0)&&qb("negative-width","shl"),Lb(Ub(this).shln(e))}shr(e){return(this.isNegative()||e<0)&&qb("negative-width","shr"),Lb(Ub(this).shrn(e))}eq(e){return Ub(this).eq(Ub(e))}lt(e){return Ub(this).lt(Ub(e))}lte(e){return Ub(this).lte(Ub(e))}gt(e){return Ub(this).gt(Ub(e))}gte(e){return Ub(this).gte(Ub(e))}isNegative(){return"-"===this._hex[0]}isZero(){return Ub(this).isZero()}toNumber(){try{return Ub(this).toNumber()}catch(e){qb("overflow","toNumber",this.toString())}return null}toBigInt(){try{return BigInt(this.toString())}catch(e){}return xb.throwError("this platform does not support BigInt",bb.errors.UNSUPPORTED_OPERATION,{value:this.toString()})}toString(){return arguments.length>0&&(10===arguments[0]?Bb||(Bb=!0,xb.warn("BigNumber.toString does not accept any parameters; base-10 is assumed")):16===arguments[0]?xb.throwError("BigNumber.toString does not accept any parameters; use bigNumber.toHexString()",bb.errors.UNEXPECTED_ARGUMENT,{}):xb.throwError("BigNumber.toString does not accept parameters",bb.errors.UNEXPECTED_ARGUMENT,{})),Ub(this).toString(10)}toHexString(){return this._hex}toJSON(e){return{type:"BigNumber",hex:this.toHexString()}}static from(e){if(e instanceof Db)return e;if("string"==typeof e)return e.match(/^-?0x[0-9a-f]+$/i)?new Db(Pb,Fb(e)):e.match(/^-?[0-9]+$/)?new Db(Pb,Fb(new Nb(e))):xb.throwArgumentError("invalid BigNumber string","value",e);if("number"==typeof e)return e%1&&qb("underflow","BigNumber.from",e),(e>=Mb||e<=-Mb)&&qb("overflow","BigNumber.from",e),Db.from(String(e));const t=e;if("bigint"==typeof t)return Db.from(t.toString());if(Ab(t))return Db.from(Ob(t));if(t)if(t.toHexString){const e=t.toHexString();if("string"==typeof e)return Db.from(e)}else{let e=t._hex;if(null==e&&"BigNumber"===t.type&&(e=t.hex),"string"==typeof e&&(Rb(e)||"-"===e[0]&&Rb(e.substring(1))))return Db.from(e)}return xb.throwArgumentError("invalid BigNumber value","value",e)}static isBigNumber(e){return!(!e||!e._isBigNumber)}}function Fb(e){if("string"!=typeof e)return Fb(e.toString(16));if("-"===e[0])return"-"===(e=e.substring(1))[0]&&xb.throwArgumentError("invalid hex","value",e),"0x00"===(e=Fb(e))?e:"-"+e;if("0x"!==e.substring(0,2)&&(e="0x"+e),"0x"===e)return"0x00";for(e.length%2&&(e="0x0"+e.substring(2));e.length>4&&"0x00"===e.substring(0,4);)e="0x"+e.substring(4);return e}function Lb(e){return Db.from(Fb(e))}function Ub(e){const t=Db.from(e).toHexString();return"-"===t[0]?new Nb("-"+t.substring(3),16):new Nb(t.substring(2),16)}function qb(e,t,n){const r={fault:e,operation:t};return null!=n&&(r.value=n),xb.throwError(e,bb.errors.NUMERIC_FAULT,r)}var jb=function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};const Gb=new bb("properties/5.7.0");function Hb(e,t,n){Object.defineProperty(e,t,{enumerable:!0,value:n,writable:!1})}function zb(e,t){for(let n=0;n<32;n++){if(e[t])return e[t];if(!e.prototype||"object"!=typeof e.prototype)break;e=Object.getPrototypeOf(e.prototype).constructor}return null}function Wb(e){return jb(this,void 0,void 0,(function*(){const t=Object.keys(e).map((t=>{const n=e[t];return Promise.resolve(n).then((e=>({key:t,value:e})))}));return(yield Promise.all(t)).reduce(((e,t)=>(e[t.key]=t.value,e)),{})}))}function Vb(e){const t={};for(const n in e)t[n]=e[n];return t}const Kb={bigint:!0,boolean:!0,function:!0,number:!0,string:!0};function Xb(e){if(null==e||Kb[typeof e])return!0;if(Array.isArray(e)||"object"==typeof e){if(!Object.isFrozen(e))return!1;const t=Object.keys(e);for(let n=0;n<t.length;n++){let r=null;try{r=e[t[n]]}catch(e){continue}if(!Xb(r))return!1}return!0}return Gb.throwArgumentError("Cannot deepCopy "+typeof e,"object",e)}function Jb(e){if(Xb(e))return e;if(Array.isArray(e))return Object.freeze(e.map((e=>Yb(e))));if("object"==typeof e){const t={};for(const n in e){const r=e[n];void 0!==r&&Hb(t,n,Yb(r))}return t}return Gb.throwArgumentError("Cannot deepCopy "+typeof e,"object",e)}function Yb(e){return Jb(e)}class Qb{constructor(e){for(const t in e)this[t]=Yb(e[t])}}const $b="abi/5.7.0",Zb=new bb($b),ev={};let tv={calldata:!0,memory:!0,storage:!0},nv={calldata:!0,memory:!0};function rv(e,t){if("bytes"===e||"string"===e){if(tv[t])return!0}else if("address"===e){if("payable"===t)return!0}else if((e.indexOf("[")>=0||"tuple"===e)&&nv[t])return!0;return(tv[t]||"payable"===t)&&Zb.throwArgumentError("invalid modifier","name",t),!1}function iv(e,t){for(let n in t)Hb(e,n,t[n])}const av=Object.freeze({sighash:"sighash",minimal:"minimal",full:"full",json:"json"}),ov=new RegExp(/^(.*)\[([0-9]*)\]$/);class sv{constructor(e,t){e!==ev&&Zb.throwError("use fromString",bb.errors.UNSUPPORTED_OPERATION,{operation:"new ParamType()"}),iv(this,t);let n=this.type.match(ov);iv(this,n?{arrayLength:parseInt(n[2]||"-1"),arrayChildren:sv.fromObject({type:n[1],components:this.components}),baseType:"array"}:{arrayLength:null,arrayChildren:null,baseType:null!=this.components?"tuple":this.type}),this._isParamType=!0,Object.freeze(this)}format(e){if(e||(e=av.sighash),av[e]||Zb.throwArgumentError("invalid format type","format",e),e===av.json){let t={type:"tuple"===this.baseType?"tuple":this.type,name:this.name||void 0};return"boolean"==typeof this.indexed&&(t.indexed=this.indexed),this.components&&(t.components=this.components.map((t=>JSON.parse(t.format(e))))),JSON.stringify(t)}let t="";return"array"===this.baseType?(t+=this.arrayChildren.format(e),t+="["+(this.arrayLength<0?"":String(this.arrayLength))+"]"):"tuple"===this.baseType?(e!==av.sighash&&(t+=this.type),t+="("+this.components.map((t=>t.format(e))).join(e===av.full?", ":",")+")"):t+=this.type,e!==av.sighash&&(!0===this.indexed&&(t+=" indexed"),e===av.full&&this.name&&(t+=" "+this.name)),t}static from(e,t){return"string"==typeof e?sv.fromString(e,t):sv.fromObject(e)}static fromObject(e){return sv.isParamType(e)?e:new sv(ev,{name:e.name||null,type:bv(e.type),indexed:null==e.indexed?null:!!e.indexed,components:e.components?e.components.map(sv.fromObject):null})}static fromString(e,t){return n=function(e,t){let n=e;function r(t){Zb.throwArgumentError(`unexpected character at position ${t}`,"param",e)}function i(e){let n={type:"",name:"",parent:e,state:{allowType:!0}};return t&&(n.indexed=!1),n}e=e.replace(/\s/g," ");let a={type:"",name:"",state:{allowType:!0}},o=a;for(let n=0;n<e.length;n++){let a=e[n];switch(a){case"(":o.state.allowType&&""===o.type?o.type="tuple":o.state.allowParams||r(n),o.state.allowType=!1,o.type=bv(o.type),o.components=[i(o)],o=o.components[0];break;case")":delete o.state,"indexed"===o.name&&(t||r(n),o.indexed=!0,o.name=""),rv(o.type,o.name)&&(o.name=""),o.type=bv(o.type);let e=o;o=o.parent,o||r(n),delete e.parent,o.state.allowParams=!1,o.state.allowName=!0,o.state.allowArray=!0;break;case",":delete o.state,"indexed"===o.name&&(t||r(n),o.indexed=!0,o.name=""),rv(o.type,o.name)&&(o.name=""),o.type=bv(o.type);let s=i(o.parent);o.parent.components.push(s),delete o.parent,o=s;break;case" ":o.state.allowType&&""!==o.type&&(o.type=bv(o.type),delete o.state.allowType,o.state.allowName=!0,o.state.allowParams=!0),o.state.allowName&&""!==o.name&&("indexed"===o.name?(t||r(n),o.indexed&&r(n),o.indexed=!0,o.name=""):rv(o.type,o.name)?o.name="":o.state.allowName=!1);break;case"[":o.state.allowArray||r(n),o.type+=a,o.state.allowArray=!1,o.state.allowName=!1,o.state.readArray=!0;break;case"]":o.state.readArray||r(n),o.type+=a,o.state.readArray=!1,o.state.allowArray=!0,o.state.allowName=!0;break;default:o.state.allowType?(o.type+=a,o.state.allowParams=!0,o.state.allowArray=!0):o.state.allowName?(o.name+=a,delete o.state.allowArray):o.state.readArray?o.type+=a:r(n)}}return o.parent&&Zb.throwArgumentError("unexpected eof","param",e),delete a.state,"indexed"===o.name?(t||r(n.length-7),o.indexed&&r(n.length-7),o.indexed=!0,o.name=""):rv(o.type,o.name)&&(o.name=""),a.type=bv(a.type),a}(e,!!t),sv.fromObject({name:n.name,type:n.type,indexed:n.indexed,components:n.components});var n}static isParamType(e){return!(null==e||!e._isParamType)}}function uv(e,t){return function(e){e=e.trim();let t=[],n="",r=0;for(let i=0;i<e.length;i++){let a=e[i];","===a&&0===r?(t.push(n),n=""):(n+=a,"("===a?r++:")"===a&&(r--,-1===r&&Zb.throwArgumentError("unbalanced parenthesis","value",e)))}n&&t.push(n);return t}(e).map((e=>sv.fromString(e,t)))}class cv{constructor(e,t){e!==ev&&Zb.throwError("use a static from method",bb.errors.UNSUPPORTED_OPERATION,{operation:"new Fragment()"}),iv(this,t),this._isFragment=!0,Object.freeze(this)}static from(e){return cv.isFragment(e)?e:"string"==typeof e?cv.fromString(e):cv.fromObject(e)}static fromObject(e){if(cv.isFragment(e))return e;switch(e.type){case"function":return mv.fromObject(e);case"event":return lv.fromObject(e);case"constructor":return hv.fromObject(e);case"error":return gv.fromObject(e);case"fallback":case"receive":return null}return Zb.throwArgumentError("invalid fragment object","value",e)}static fromString(e){return"event"===(e=(e=(e=e.replace(/\s/g," ")).replace(/\(/g," (").replace(/\)/g,") ").replace(/\s+/g," ")).trim()).split(" ")[0]?lv.fromString(e.substring(5).trim()):"function"===e.split(" ")[0]?mv.fromString(e.substring(8).trim()):"constructor"===e.split("(")[0].trim()?hv.fromString(e.trim()):"error"===e.split(" ")[0]?gv.fromString(e.substring(5).trim()):Zb.throwArgumentError("unsupported fragment","value",e)}static isFragment(e){return!(!e||!e._isFragment)}}class lv extends cv{format(e){if(e||(e=av.sighash),av[e]||Zb.throwArgumentError("invalid format type","format",e),e===av.json)return JSON.stringify({type:"event",anonymous:this.anonymous,name:this.name,inputs:this.inputs.map((t=>JSON.parse(t.format(e))))});let t="";return e!==av.sighash&&(t+="event "),t+=this.name+"("+this.inputs.map((t=>t.format(e))).join(e===av.full?", ":",")+") ",e!==av.sighash&&this.anonymous&&(t+="anonymous "),t.trim()}static from(e){return"string"==typeof e?lv.fromString(e):lv.fromObject(e)}static fromObject(e){if(lv.isEventFragment(e))return e;"event"!==e.type&&Zb.throwArgumentError("invalid event object","value",e);const t={name:Tv(e.name),anonymous:e.anonymous,inputs:e.inputs?e.inputs.map(sv.fromObject):[],type:"event"};return new lv(ev,t)}static fromString(e){let t=e.match(wv);t||Zb.throwArgumentError("invalid event string","value",e);let n=!1;return t[3].split(" ").forEach((e=>{switch(e.trim()){case"anonymous":n=!0;break;case"":break;default:Zb.warn("unknown modifier: "+e)}})),lv.fromObject({name:t[1].trim(),anonymous:n,inputs:uv(t[2],!0),type:"event"})}static isEventFragment(e){return e&&e._isFragment&&"event"===e.type}}function dv(e,t){t.gas=null;let n=e.split("@");return 1!==n.length?(n.length>2&&Zb.throwArgumentError("invalid human-readable ABI signature","value",e),n[1].match(/^[0-9]+$/)||Zb.throwArgumentError("invalid human-readable ABI signature gas","value",e),t.gas=Db.from(n[1]),n[0]):e}function fv(e,t){t.constant=!1,t.payable=!1,t.stateMutability="nonpayable",e.split(" ").forEach((e=>{switch(e.trim()){case"constant":t.constant=!0;break;case"payable":t.payable=!0,t.stateMutability="payable";break;case"nonpayable":t.payable=!1,t.stateMutability="nonpayable";break;case"pure":t.constant=!0,t.stateMutability="pure";break;case"view":t.constant=!0,t.stateMutability="view";break;case"external":case"public":case"":break;default:console.log("unknown modifier: "+e)}}))}function pv(e){let t={constant:!1,payable:!0,stateMutability:"payable"};return null!=e.stateMutability?(t.stateMutability=e.stateMutability,t.constant="view"===t.stateMutability||"pure"===t.stateMutability,null!=e.constant&&!!e.constant!==t.constant&&Zb.throwArgumentError("cannot have constant function with mutability "+t.stateMutability,"value",e),t.payable="payable"===t.stateMutability,null!=e.payable&&!!e.payable!==t.payable&&Zb.throwArgumentError("cannot have payable function with mutability "+t.stateMutability,"value",e)):null!=e.payable?(t.payable=!!e.payable,null!=e.constant||t.payable||"constructor"===e.type||Zb.throwArgumentError("unable to determine stateMutability","value",e),t.constant=!!e.constant,t.constant?t.stateMutability="view":t.stateMutability=t.payable?"payable":"nonpayable",t.payable&&t.constant&&Zb.throwArgumentError("cannot have constant payable function","value",e)):null!=e.constant?(t.constant=!!e.constant,t.payable=!t.constant,t.stateMutability=t.constant?"view":"payable"):"constructor"!==e.type&&Zb.throwArgumentError("unable to determine stateMutability","value",e),t}class hv extends cv{format(e){if(e||(e=av.sighash),av[e]||Zb.throwArgumentError("invalid format type","format",e),e===av.json)return JSON.stringify({type:"constructor",stateMutability:"nonpayable"!==this.stateMutability?this.stateMutability:void 0,payable:this.payable,gas:this.gas?this.gas.toNumber():void 0,inputs:this.inputs.map((t=>JSON.parse(t.format(e))))});e===av.sighash&&Zb.throwError("cannot format a constructor for sighash",bb.errors.UNSUPPORTED_OPERATION,{operation:"format(sighash)"});let t="constructor("+this.inputs.map((t=>t.format(e))).join(e===av.full?", ":",")+") ";return this.stateMutability&&"nonpayable"!==this.stateMutability&&(t+=this.stateMutability+" "),t.trim()}static from(e){return"string"==typeof e?hv.fromString(e):hv.fromObject(e)}static fromObject(e){if(hv.isConstructorFragment(e))return e;"constructor"!==e.type&&Zb.throwArgumentError("invalid constructor object","value",e);let t=pv(e);t.constant&&Zb.throwArgumentError("constructor cannot be constant","value",e);const n={name:null,type:e.type,inputs:e.inputs?e.inputs.map(sv.fromObject):[],payable:t.payable,stateMutability:t.stateMutability,gas:e.gas?Db.from(e.gas):null};return new hv(ev,n)}static fromString(e){let t={type:"constructor"},n=(e=dv(e,t)).match(wv);return n&&"constructor"===n[1].trim()||Zb.throwArgumentError("invalid constructor string","value",e),t.inputs=uv(n[2].trim(),!1),fv(n[3].trim(),t),hv.fromObject(t)}static isConstructorFragment(e){return e&&e._isFragment&&"constructor"===e.type}}class mv extends hv{format(e){if(e||(e=av.sighash),av[e]||Zb.throwArgumentError("invalid format type","format",e),e===av.json)return JSON.stringify({type:"function",name:this.name,constant:this.constant,stateMutability:"nonpayable"!==this.stateMutability?this.stateMutability:void 0,payable:this.payable,gas:this.gas?this.gas.toNumber():void 0,inputs:this.inputs.map((t=>JSON.parse(t.format(e)))),outputs:this.outputs.map((t=>JSON.parse(t.format(e))))});let t="";return e!==av.sighash&&(t+="function "),t+=this.name+"("+this.inputs.map((t=>t.format(e))).join(e===av.full?", ":",")+") ",e!==av.sighash&&(this.stateMutability?"nonpayable"!==this.stateMutability&&(t+=this.stateMutability+" "):this.constant&&(t+="view "),this.outputs&&this.outputs.length&&(t+="returns ("+this.outputs.map((t=>t.format(e))).join(", ")+") "),null!=this.gas&&(t+="@"+this.gas.toString()+" ")),t.trim()}static from(e){return"string"==typeof e?mv.fromString(e):mv.fromObject(e)}static fromObject(e){if(mv.isFunctionFragment(e))return e;"function"!==e.type&&Zb.throwArgumentError("invalid function object","value",e);let t=pv(e);const n={type:e.type,name:Tv(e.name),constant:t.constant,inputs:e.inputs?e.inputs.map(sv.fromObject):[],outputs:e.outputs?e.outputs.map(sv.fromObject):[],payable:t.payable,stateMutability:t.stateMutability,gas:e.gas?Db.from(e.gas):null};return new mv(ev,n)}static fromString(e){let t={type:"function"},n=(e=dv(e,t)).split(" returns ");n.length>2&&Zb.throwArgumentError("invalid function string","value",e);let r=n[0].match(wv);if(r||Zb.throwArgumentError("invalid function signature","value",e),t.name=r[1].trim(),t.name&&Tv(t.name),t.inputs=uv(r[2],!1),fv(r[3].trim(),t),n.length>1){let r=n[1].match(wv);""==r[1].trim()&&""==r[3].trim()||Zb.throwArgumentError("unexpected tokens","value",e),t.outputs=uv(r[2],!1)}else t.outputs=[];return mv.fromObject(t)}static isFunctionFragment(e){return e&&e._isFragment&&"function"===e.type}}function yv(e){const t=e.format();return"Error(string)"!==t&&"Panic(uint256)"!==t||Zb.throwArgumentError(`cannot specify user defined ${t} error`,"fragment",e),e}class gv extends cv{format(e){if(e||(e=av.sighash),av[e]||Zb.throwArgumentError("invalid format type","format",e),e===av.json)return JSON.stringify({type:"error",name:this.name,inputs:this.inputs.map((t=>JSON.parse(t.format(e))))});let t="";return e!==av.sighash&&(t+="error "),t+=this.name+"("+this.inputs.map((t=>t.format(e))).join(e===av.full?", ":",")+") ",t.trim()}static from(e){return"string"==typeof e?gv.fromString(e):gv.fromObject(e)}static fromObject(e){if(gv.isErrorFragment(e))return e;"error"!==e.type&&Zb.throwArgumentError("invalid error object","value",e);const t={type:e.type,name:Tv(e.name),inputs:e.inputs?e.inputs.map(sv.fromObject):[]};return yv(new gv(ev,t))}static fromString(e){let t={type:"error"},n=e.match(wv);return n||Zb.throwArgumentError("invalid error signature","value",e),t.name=n[1].trim(),t.name&&Tv(t.name),t.inputs=uv(n[2],!1),yv(gv.fromObject(t))}static isErrorFragment(e){return e&&e._isFragment&&"error"===e.type}}function bv(e){return e.match(/^uint($|[^1-9])/)?e="uint256"+e.substring(4):e.match(/^int($|[^1-9])/)&&(e="int256"+e.substring(3)),e}const vv=new RegExp("^[a-zA-Z$_][a-zA-Z0-9$_]*$");function Tv(e){return e&&e.match(vv)||Zb.throwArgumentError(`invalid identifier "${e}"`,"value",e),e}const wv=new RegExp("^([^)(]*)\\((.*)\\)([^)(]*)$");const Ev=new bb($b);class Av{constructor(e,t,n,r){this.name=e,this.type=t,this.localName=n,this.dynamic=r}_throwError(e,t){Ev.throwArgumentError(e,this.localName,t)}}class _v{constructor(e){Hb(this,"wordSize",e||32),this._data=[],this._dataLength=0,this._padding=new Uint8Array(e)}get data(){return function(e){let t="0x";return e.forEach((e=>{t+=Ob(e).substring(2)})),t}(this._data)}get length(){return this._dataLength}_writeData(e){return this._data.push(e),this._dataLength+=e.length,e.length}appendWriter(e){return this._writeData(Ib(e._data))}writeBytes(e){let t=_b(e);const n=t.length%this.wordSize;return n&&(t=Ib([t,this._padding.slice(n)])),this._writeData(t)}_getValue(e){let t=_b(Db.from(e));return t.length>this.wordSize&&Ev.throwError("value out-of-bounds",bb.errors.BUFFER_OVERRUN,{length:this.wordSize,offset:t.length}),t.length%this.wordSize&&(t=Ib([this._padding.slice(t.length%this.wordSize),t])),t}writeValue(e){return this._writeData(this._getValue(e))}writeUpdatableValue(){const e=this._data.length;return this._data.push(this._padding),this._dataLength+=this.wordSize,t=>{this._data[e]=this._getValue(t)}}}class Iv{constructor(e,t,n,r){Hb(this,"_data",_b(e)),Hb(this,"wordSize",t||32),Hb(this,"_coerceFunc",n),Hb(this,"allowLoose",r),this._offset=0}get data(){return Ob(this._data)}get consumed(){return this._offset}static coerce(e,t){let n=e.match("^u?int([0-9]+)$");return n&&parseInt(n[1])<=48&&(t=t.toNumber()),t}coerce(e,t){return this._coerceFunc?this._coerceFunc(e,t):Iv.coerce(e,t)}_peekBytes(e,t,n){let r=Math.ceil(t/this.wordSize)*this.wordSize;return this._offset+r>this._data.length&&(this.allowLoose&&n&&this._offset+t<=this._data.length?r=t:Ev.throwError("data out-of-bounds",bb.errors.BUFFER_OVERRUN,{length:this._data.length,offset:this._offset+r})),this._data.slice(this._offset,this._offset+r)}subReader(e){return new Iv(this._data.slice(this._offset+e),this.wordSize,this._coerceFunc,this.allowLoose)}readBytes(e,t){let n=this._peekBytes(0,e,!!t);return this._offset+=n.length,n.slice(0,e)}readValue(){return Db.from(this.readBytes(this.wordSize))}}var Rv={exports:{}};
10
10
  /**
11
11
  * [js-sha3]{@link https://github.com/emn178/js-sha3}
12
12
  *
@@ -32,4 +32,4 @@ n.mode.CTRGladman=function(){var e=n.lib.BlockCipherMode.extend();function t(e){
32
32
 
33
33
  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34
34
  */
35
- function(e){var t=n,r=t.lib,i=r.WordArray,a=r.Hasher,o=t.algo,s=i.create([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13]),u=i.create([5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11]),c=i.create([11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6]),l=i.create([8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]),d=i.create([0,1518500249,1859775393,2400959708,2840853838]),f=i.create([1352829926,1548603684,1836072691,2053994217,0]),p=o.RIPEMD160=a.extend({_doReset:function(){this._hash=i.create([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(e,t){for(var n=0;n<16;n++){var r=t+n,i=e[r];e[r]=16711935&(i<<8|i>>>24)|4278255360&(i<<24|i>>>8)}var a,o,p,T,w,E,A,_,I,R,C,O=this._hash.words,k=d.words,S=f.words,N=s.words,x=u.words,P=c.words,M=l.words;for(E=a=O[0],A=o=O[1],_=p=O[2],I=T=O[3],R=w=O[4],n=0;n<80;n+=1)C=a+e[t+N[n]]|0,C+=n<16?h(o,p,T)+k[0]:n<32?m(o,p,T)+k[1]:n<48?y(o,p,T)+k[2]:n<64?g(o,p,T)+k[3]:b(o,p,T)+k[4],C=(C=v(C|=0,P[n]))+w|0,a=w,w=T,T=v(p,10),p=o,o=C,C=E+e[t+x[n]]|0,C+=n<16?b(A,_,I)+S[0]:n<32?g(A,_,I)+S[1]:n<48?y(A,_,I)+S[2]:n<64?m(A,_,I)+S[3]:h(A,_,I)+S[4],C=(C=v(C|=0,M[n]))+R|0,E=R,R=I,I=v(_,10),_=A,A=C;C=O[1]+p+I|0,O[1]=O[2]+T+R|0,O[2]=O[3]+w+E|0,O[3]=O[4]+a+A|0,O[4]=O[0]+o+_|0,O[0]=C},_doFinalize:function(){var e=this._data,t=e.words,n=8*this._nDataBytes,r=8*e.sigBytes;t[r>>>5]|=128<<24-r%32,t[14+(r+64>>>9<<4)]=16711935&(n<<8|n>>>24)|4278255360&(n<<24|n>>>8),e.sigBytes=4*(t.length+1),this._process();for(var i=this._hash,a=i.words,o=0;o<5;o++){var s=a[o];a[o]=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8)}return i},clone:function(){var e=a.clone.call(this);return e._hash=this._hash.clone(),e}});function h(e,t,n){return e^t^n}function m(e,t,n){return e&t|~e&n}function y(e,t,n){return(e|~t)^n}function g(e,t,n){return e&n|t&~n}function b(e,t,n){return e^(t|~n)}function v(e,t){return e<<t|e>>>32-t}t.RIPEMD160=a._createHelper(p),t.HmacRIPEMD160=a._createHmacHelper(p)}(),n.RIPEMD160)}(ZN)),nx(),rx||(rx=1,function(e,t){var n;e.exports=(n=mN(),nx(),function(){var e=n,t=e.lib,r=t.Base,i=t.WordArray,a=e.algo,o=a.SHA256,s=a.HMAC,u=a.PBKDF2=r.extend({cfg:r.extend({keySize:4,hasher:o,iterations:25e4}),init:function(e){this.cfg=this.cfg.extend(e)},compute:function(e,t){for(var n=this.cfg,r=s.create(n.hasher,e),a=i.create(),o=i.create([1]),u=a.words,c=o.words,l=n.keySize,d=n.iterations;u.length<l;){var f=r.update(t).finalize(o);r.reset();for(var p=f.words,h=p.length,m=f,y=1;y<d;y++){m=r.finalize(m),r.reset();for(var g=m.words,b=0;b<h;b++)p[b]^=g[b]}a.concat(f),c[0]++}return a.sigBytes=4*l,a}});e.PBKDF2=function(e,t,n){return u.create(n).compute(e,t)}}(),n.PBKDF2)}(ix)),sx(),lx(),px(),yx(),vx(),Ex(),Ax||(Ax=1,function(e,t){var n,r;e.exports=(r=mN(),lx(),r.mode.ECB=((n=r.lib.BlockCipherMode.extend()).Encryptor=n.extend({processBlock:function(e,t){this._cipher.encryptBlock(e,t)}}),n.Decryptor=n.extend({processBlock:function(e,t){this._cipher.decryptBlock(e,t)}}),n),r.mode.ECB)}(_x)),Ix||(Ix=1,function(e,t){var n;e.exports=(n=mN(),lx(),n.pad.AnsiX923={pad:function(e,t){var n=e.sigBytes,r=4*t,i=r-n%r,a=n+i-1;e.clamp(),e.words[a>>>2]|=i<<24-a%4*8,e.sigBytes+=i},unpad:function(e){var t=255&e.words[e.sigBytes-1>>>2];e.sigBytes-=t}},n.pad.Ansix923)}(Rx)),Cx||(Cx=1,function(e,t){var n;e.exports=(n=mN(),lx(),n.pad.Iso10126={pad:function(e,t){var r=4*t,i=r-e.sigBytes%r;e.concat(n.lib.WordArray.random(i-1)).concat(n.lib.WordArray.create([i<<24],1))},unpad:function(e){var t=255&e.words[e.sigBytes-1>>>2];e.sigBytes-=t}},n.pad.Iso10126)}(Ox)),kx||(kx=1,function(e,t){var n;e.exports=(n=mN(),lx(),n.pad.Iso97971={pad:function(e,t){e.concat(n.lib.WordArray.create([2147483648],1)),n.pad.ZeroPadding.pad(e,t)},unpad:function(e){n.pad.ZeroPadding.unpad(e),e.sigBytes--}},n.pad.Iso97971)}(Sx)),Nx||(Nx=1,function(e,t){var n;e.exports=(n=mN(),lx(),n.pad.ZeroPadding={pad:function(e,t){var n=4*t;e.clamp(),e.sigBytes+=n-(e.sigBytes%n||n)},unpad:function(e){var t=e.words,n=e.sigBytes-1;for(n=e.sigBytes-1;n>=0;n--)if(t[n>>>2]>>>24-n%4*8&255){e.sigBytes=n+1;break}}},n.pad.ZeroPadding)}(xx)),Px||(Px=1,function(e,t){var n;e.exports=(n=mN(),lx(),n.pad.NoPadding={pad:function(){},unpad:function(){}},n.pad.NoPadding)}(Mx)),Bx||(Bx=1,function(e,t){var n,r,i,a;e.exports=(a=mN(),lx(),r=(n=a).lib.CipherParams,i=n.enc.Hex,n.format.Hex={stringify:function(e){return e.ciphertext.toString(i)},parse:function(e){var t=i.parse(e);return r.create({ciphertext:t})}},a.format.Hex)}(Dx)),Fx||(Fx=1,function(e,t){var n;e.exports=(n=mN(),xN(),LN(),sx(),lx(),function(){var e=n,t=e.lib.BlockCipher,r=e.algo,i=[],a=[],o=[],s=[],u=[],c=[],l=[],d=[],f=[],p=[];!function(){for(var e=[],t=0;t<256;t++)e[t]=t<128?t<<1:t<<1^283;var n=0,r=0;for(t=0;t<256;t++){var h=r^r<<1^r<<2^r<<3^r<<4;h=h>>>8^255&h^99,i[n]=h,a[h]=n;var m=e[n],y=e[m],g=e[y],b=257*e[h]^16843008*h;o[n]=b<<24|b>>>8,s[n]=b<<16|b>>>16,u[n]=b<<8|b>>>24,c[n]=b,b=16843009*g^65537*y^257*m^16843008*n,l[h]=b<<24|b>>>8,d[h]=b<<16|b>>>16,f[h]=b<<8|b>>>24,p[h]=b,n?(n=m^e[e[e[g^m]]],r^=e[e[r]]):n=r=1}}();var h=[0,1,2,4,8,16,32,64,128,27,54],m=r.AES=t.extend({_doReset:function(){if(!this._nRounds||this._keyPriorReset!==this._key){for(var e=this._keyPriorReset=this._key,t=e.words,n=e.sigBytes/4,r=4*((this._nRounds=n+6)+1),a=this._keySchedule=[],o=0;o<r;o++)o<n?a[o]=t[o]:(c=a[o-1],o%n?n>6&&o%n==4&&(c=i[c>>>24]<<24|i[c>>>16&255]<<16|i[c>>>8&255]<<8|i[255&c]):(c=i[(c=c<<8|c>>>24)>>>24]<<24|i[c>>>16&255]<<16|i[c>>>8&255]<<8|i[255&c],c^=h[o/n|0]<<24),a[o]=a[o-n]^c);for(var s=this._invKeySchedule=[],u=0;u<r;u++){if(o=r-u,u%4)var c=a[o];else c=a[o-4];s[u]=u<4||o<=4?c:l[i[c>>>24]]^d[i[c>>>16&255]]^f[i[c>>>8&255]]^p[i[255&c]]}}},encryptBlock:function(e,t){this._doCryptBlock(e,t,this._keySchedule,o,s,u,c,i)},decryptBlock:function(e,t){var n=e[t+1];e[t+1]=e[t+3],e[t+3]=n,this._doCryptBlock(e,t,this._invKeySchedule,l,d,f,p,a),n=e[t+1],e[t+1]=e[t+3],e[t+3]=n},_doCryptBlock:function(e,t,n,r,i,a,o,s){for(var u=this._nRounds,c=e[t]^n[0],l=e[t+1]^n[1],d=e[t+2]^n[2],f=e[t+3]^n[3],p=4,h=1;h<u;h++){var m=r[c>>>24]^i[l>>>16&255]^a[d>>>8&255]^o[255&f]^n[p++],y=r[l>>>24]^i[d>>>16&255]^a[f>>>8&255]^o[255&c]^n[p++],g=r[d>>>24]^i[f>>>16&255]^a[c>>>8&255]^o[255&l]^n[p++],b=r[f>>>24]^i[c>>>16&255]^a[l>>>8&255]^o[255&d]^n[p++];c=m,l=y,d=g,f=b}m=(s[c>>>24]<<24|s[l>>>16&255]<<16|s[d>>>8&255]<<8|s[255&f])^n[p++],y=(s[l>>>24]<<24|s[d>>>16&255]<<16|s[f>>>8&255]<<8|s[255&c])^n[p++],g=(s[d>>>24]<<24|s[f>>>16&255]<<16|s[c>>>8&255]<<8|s[255&l])^n[p++],b=(s[f>>>24]<<24|s[c>>>16&255]<<16|s[l>>>8&255]<<8|s[255&d])^n[p++],e[t]=m,e[t+1]=y,e[t+2]=g,e[t+3]=b},keySize:8});e.AES=t._createHelper(m)}(),n.AES)}(Lx)),jx(),Gx||(Gx=1,function(e,t){var n;e.exports=(n=mN(),xN(),LN(),sx(),lx(),function(){var e=n,t=e.lib.StreamCipher,r=e.algo,i=r.RC4=t.extend({_doReset:function(){for(var e=this._key,t=e.words,n=e.sigBytes,r=this._S=[],i=0;i<256;i++)r[i]=i;i=0;for(var a=0;i<256;i++){var o=i%n,s=t[o>>>2]>>>24-o%4*8&255;a=(a+r[i]+s)%256;var u=r[i];r[i]=r[a],r[a]=u}this._i=this._j=0},_doProcessBlock:function(e,t){e[t]^=a.call(this)},keySize:8,ivSize:0});function a(){for(var e=this._S,t=this._i,n=this._j,r=0,i=0;i<4;i++){n=(n+e[t=(t+1)%256])%256;var a=e[t];e[t]=e[n],e[n]=a,r|=e[(e[t]+e[n])%256]<<24-8*i}return this._i=t,this._j=n,r}e.RC4=t._createHelper(i);var o=r.RC4Drop=i.extend({cfg:i.cfg.extend({drop:192}),_doReset:function(){i._doReset.call(this);for(var e=this.cfg.drop;e>0;e--)a.call(this)}});e.RC4Drop=t._createHelper(o)}(),n.RC4)}(Hx)),zx||(zx=1,function(e,t){var n;e.exports=(n=mN(),xN(),LN(),sx(),lx(),function(){var e=n,t=e.lib.StreamCipher,r=e.algo,i=[],a=[],o=[],s=r.Rabbit=t.extend({_doReset:function(){for(var e=this._key.words,t=this.cfg.iv,n=0;n<4;n++)e[n]=16711935&(e[n]<<8|e[n]>>>24)|4278255360&(e[n]<<24|e[n]>>>8);var r=this._X=[e[0],e[3]<<16|e[2]>>>16,e[1],e[0]<<16|e[3]>>>16,e[2],e[1]<<16|e[0]>>>16,e[3],e[2]<<16|e[1]>>>16],i=this._C=[e[2]<<16|e[2]>>>16,4294901760&e[0]|65535&e[1],e[3]<<16|e[3]>>>16,4294901760&e[1]|65535&e[2],e[0]<<16|e[0]>>>16,4294901760&e[2]|65535&e[3],e[1]<<16|e[1]>>>16,4294901760&e[3]|65535&e[0]];for(this._b=0,n=0;n<4;n++)u.call(this);for(n=0;n<8;n++)i[n]^=r[n+4&7];if(t){var a=t.words,o=a[0],s=a[1],c=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),l=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),d=c>>>16|4294901760&l,f=l<<16|65535&c;for(i[0]^=c,i[1]^=d,i[2]^=l,i[3]^=f,i[4]^=c,i[5]^=d,i[6]^=l,i[7]^=f,n=0;n<4;n++)u.call(this)}},_doProcessBlock:function(e,t){var n=this._X;u.call(this),i[0]=n[0]^n[5]>>>16^n[3]<<16,i[1]=n[2]^n[7]>>>16^n[5]<<16,i[2]=n[4]^n[1]>>>16^n[7]<<16,i[3]=n[6]^n[3]>>>16^n[1]<<16;for(var r=0;r<4;r++)i[r]=16711935&(i[r]<<8|i[r]>>>24)|4278255360&(i[r]<<24|i[r]>>>8),e[t+r]^=i[r]},blockSize:4,ivSize:2});function u(){for(var e=this._X,t=this._C,n=0;n<8;n++)a[n]=t[n];for(t[0]=t[0]+1295307597+this._b|0,t[1]=t[1]+3545052371+(t[0]>>>0<a[0]>>>0?1:0)|0,t[2]=t[2]+886263092+(t[1]>>>0<a[1]>>>0?1:0)|0,t[3]=t[3]+1295307597+(t[2]>>>0<a[2]>>>0?1:0)|0,t[4]=t[4]+3545052371+(t[3]>>>0<a[3]>>>0?1:0)|0,t[5]=t[5]+886263092+(t[4]>>>0<a[4]>>>0?1:0)|0,t[6]=t[6]+1295307597+(t[5]>>>0<a[5]>>>0?1:0)|0,t[7]=t[7]+3545052371+(t[6]>>>0<a[6]>>>0?1:0)|0,this._b=t[7]>>>0<a[7]>>>0?1:0,n=0;n<8;n++){var r=e[n]+t[n],i=65535&r,s=r>>>16,u=((i*i>>>17)+i*s>>>15)+s*s,c=((4294901760&r)*r|0)+((65535&r)*r|0);o[n]=u^c}e[0]=o[0]+(o[7]<<16|o[7]>>>16)+(o[6]<<16|o[6]>>>16)|0,e[1]=o[1]+(o[0]<<8|o[0]>>>24)+o[7]|0,e[2]=o[2]+(o[1]<<16|o[1]>>>16)+(o[0]<<16|o[0]>>>16)|0,e[3]=o[3]+(o[2]<<8|o[2]>>>24)+o[1]|0,e[4]=o[4]+(o[3]<<16|o[3]>>>16)+(o[2]<<16|o[2]>>>16)|0,e[5]=o[5]+(o[4]<<8|o[4]>>>24)+o[3]|0,e[6]=o[6]+(o[5]<<16|o[5]>>>16)+(o[4]<<16|o[4]>>>16)|0,e[7]=o[7]+(o[6]<<8|o[6]>>>24)+o[5]|0}e.Rabbit=t._createHelper(s)}(),n.Rabbit)}(Wx)),Vx||(Vx=1,function(e,t){var n;e.exports=(n=mN(),xN(),LN(),sx(),lx(),function(){var e=n,t=e.lib.StreamCipher,r=e.algo,i=[],a=[],o=[],s=r.RabbitLegacy=t.extend({_doReset:function(){var e=this._key.words,t=this.cfg.iv,n=this._X=[e[0],e[3]<<16|e[2]>>>16,e[1],e[0]<<16|e[3]>>>16,e[2],e[1]<<16|e[0]>>>16,e[3],e[2]<<16|e[1]>>>16],r=this._C=[e[2]<<16|e[2]>>>16,4294901760&e[0]|65535&e[1],e[3]<<16|e[3]>>>16,4294901760&e[1]|65535&e[2],e[0]<<16|e[0]>>>16,4294901760&e[2]|65535&e[3],e[1]<<16|e[1]>>>16,4294901760&e[3]|65535&e[0]];this._b=0;for(var i=0;i<4;i++)u.call(this);for(i=0;i<8;i++)r[i]^=n[i+4&7];if(t){var a=t.words,o=a[0],s=a[1],c=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),l=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),d=c>>>16|4294901760&l,f=l<<16|65535&c;for(r[0]^=c,r[1]^=d,r[2]^=l,r[3]^=f,r[4]^=c,r[5]^=d,r[6]^=l,r[7]^=f,i=0;i<4;i++)u.call(this)}},_doProcessBlock:function(e,t){var n=this._X;u.call(this),i[0]=n[0]^n[5]>>>16^n[3]<<16,i[1]=n[2]^n[7]>>>16^n[5]<<16,i[2]=n[4]^n[1]>>>16^n[7]<<16,i[3]=n[6]^n[3]>>>16^n[1]<<16;for(var r=0;r<4;r++)i[r]=16711935&(i[r]<<8|i[r]>>>24)|4278255360&(i[r]<<24|i[r]>>>8),e[t+r]^=i[r]},blockSize:4,ivSize:2});function u(){for(var e=this._X,t=this._C,n=0;n<8;n++)a[n]=t[n];for(t[0]=t[0]+1295307597+this._b|0,t[1]=t[1]+3545052371+(t[0]>>>0<a[0]>>>0?1:0)|0,t[2]=t[2]+886263092+(t[1]>>>0<a[1]>>>0?1:0)|0,t[3]=t[3]+1295307597+(t[2]>>>0<a[2]>>>0?1:0)|0,t[4]=t[4]+3545052371+(t[3]>>>0<a[3]>>>0?1:0)|0,t[5]=t[5]+886263092+(t[4]>>>0<a[4]>>>0?1:0)|0,t[6]=t[6]+1295307597+(t[5]>>>0<a[5]>>>0?1:0)|0,t[7]=t[7]+3545052371+(t[6]>>>0<a[6]>>>0?1:0)|0,this._b=t[7]>>>0<a[7]>>>0?1:0,n=0;n<8;n++){var r=e[n]+t[n],i=65535&r,s=r>>>16,u=((i*i>>>17)+i*s>>>15)+s*s,c=((4294901760&r)*r|0)+((65535&r)*r|0);o[n]=u^c}e[0]=o[0]+(o[7]<<16|o[7]>>>16)+(o[6]<<16|o[6]>>>16)|0,e[1]=o[1]+(o[0]<<8|o[0]>>>24)+o[7]|0,e[2]=o[2]+(o[1]<<16|o[1]>>>16)+(o[0]<<16|o[0]>>>16)|0,e[3]=o[3]+(o[2]<<8|o[2]>>>24)+o[1]|0,e[4]=o[4]+(o[3]<<16|o[3]>>>16)+(o[2]<<16|o[2]>>>16)|0,e[5]=o[5]+(o[4]<<8|o[4]>>>24)+o[3]|0,e[6]=o[6]+(o[5]<<16|o[5]>>>16)+(o[4]<<16|o[4]>>>16)|0,e[7]=o[7]+(o[6]<<8|o[6]>>>24)+o[5]|0}e.RabbitLegacy=t._createHelper(s)}(),n.RabbitLegacy)}(Kx)),Yx(),n)}(wN);var Qx=wN.exports,$x=Ft&&Ft.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(TN,"__esModule",{value:!0}),TN.Base=void 0;const Zx=Gn,eP=$x(Qx);class tP{print(){tP.print(this)}bufferIndexOf(e,t,n=!1){if(n)return this.binarySearch(e,t,Zx.Buffer.compare);return this.linearSearch(e,t,((e,t)=>e.equals(t)))}static binarySearch(e,t,n){let r=0,i=e.length-1;for(;r<=i;){const a=Math.floor((r+i)/2),o=n(e[a],t);if(0===o){for(let r=a-1;r>=0;r--)if(0!==n(e[r],t))return r+1;return 0}o<0?r=a+1:i=a-1}return-1}binarySearch(e,t,n){return tP.binarySearch(e,t,n)}static linearSearch(e,t,n){for(let r=0;r<e.length;r++)if(n(e[r],t))return r;return-1}linearSearch(e,t,n){return tP.linearSearch(e,t,n)}static bufferify(e){if(!Zx.Buffer.isBuffer(e)){if("object"==typeof e&&e.words)return Zx.Buffer.from(e.toString(eP.default.enc.Hex),"hex");if(tP.isHexString(e))return Zx.Buffer.from(e.replace(/^0x/,""),"hex");if("string"==typeof e)return Zx.Buffer.from(e);if("bigint"==typeof e)return Zx.Buffer.from(e.toString(16),"hex");if(e instanceof Uint8Array)return Zx.Buffer.from(e.buffer);if("number"==typeof e){let t=e.toString();return t.length%2&&(t=`0${t}`),Zx.Buffer.from(t,"hex")}if(ArrayBuffer.isView(e))return Zx.Buffer.from(e.buffer,e.byteOffset,e.byteLength)}return e}bigNumberify(e){return tP.bigNumberify(e)}static bigNumberify(e){if("bigint"==typeof e)return e;if("string"==typeof e)return e.startsWith("0x")&&tP.isHexString(e)?BigInt("0x"+e.replace("0x","").toString()):BigInt(e);if(Zx.Buffer.isBuffer(e))return BigInt("0x"+e.toString("hex"));if(e instanceof Uint8Array)return BigInt(e);if("number"==typeof e)return BigInt(e);throw new Error("cannot bigNumberify")}static isHexString(e){return"string"==typeof e&&/^(0x)?[0-9A-Fa-f]*$/.test(e)}static print(e){console.log(e.toString())}bufferToHex(e,t=!0){return tP.bufferToHex(e,t)}static bufferToHex(e,t=!0){return`${t?"0x":""}${(e||Zx.Buffer.alloc(0)).toString("hex")}`}bufferify(e){return tP.bufferify(e)}bufferifyFn(e){return t=>{const n=e(t);return Zx.Buffer.isBuffer(n)?n:this.isHexString(n)?Zx.Buffer.from(n.replace("0x",""),"hex"):"string"==typeof n?Zx.Buffer.from(n):"bigint"==typeof n?Zx.Buffer.from(t.toString(16),"hex"):ArrayBuffer.isView(n)?Zx.Buffer.from(n.buffer,n.byteOffset,n.byteLength):Zx.Buffer.from(e(eP.default.enc.Hex.parse(t.toString("hex"))).toString(eP.default.enc.Hex),"hex")}}isHexString(e){return tP.isHexString(e)}log2(e){return 1===e?0:1+this.log2(e/2|0)}zip(e,t){return e.map(((e,n)=>[e,t[n]]))}static hexZeroPad(e,t){return"0x"+e.replace("0x","").padStart(t,"0")}}TN.Base=tP,TN.default=tP;var nP=Ft&&Ft.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(lN,"__esModule",{value:!0}),lN.MerkleTree=void 0;const rP=Gn,iP=nP((function(e){for(var t=new Buffer(e.length),n=0,r=e.length-1;n<=r;++n,--r)t[n]=e[r],t[r]=e[n];return t})),aP=nP(yN),oP=nP(vN),sP=nP(TN);let uP=class e extends sP.default{constructor(e,t=aP.default,n={}){if(super(),this.duplicateOdd=!1,this.concatenator=rP.Buffer.concat,this.hashLeaves=!1,this.isBitcoinTree=!1,this.leaves=[],this.layers=[],this.sortLeaves=!1,this.sortPairs=!1,this.sort=!1,this.fillDefaultHash=null,this.complete=!1,n.complete){if(n.isBitcoinTree)throw new Error('option "complete" is incompatible with "isBitcoinTree"');if(n.duplicateOdd)throw new Error('option "complete" is incompatible with "duplicateOdd"')}if(this.isBitcoinTree=!!n.isBitcoinTree,this.hashLeaves=!!n.hashLeaves,this.sortLeaves=!!n.sortLeaves,this.sortPairs=!!n.sortPairs,this.complete=!!n.complete,n.fillDefaultHash)if("function"==typeof n.fillDefaultHash)this.fillDefaultHash=n.fillDefaultHash;else{if(!rP.Buffer.isBuffer(n.fillDefaultHash)&&"string"!=typeof n.fillDefaultHash)throw new Error('method "fillDefaultHash" must be a function, Buffer, or string');this.fillDefaultHash=(e,t)=>n.fillDefaultHash}this.sort=!!n.sort,this.sort&&(this.sortLeaves=!0,this.sortPairs=!0),this.duplicateOdd=!!n.duplicateOdd,n.concatenator&&(this.concatenator=n.concatenator),this.hashFn=this.bufferifyFn(t),this.processLeaves(e)}getOptions(){var e,t;return{complete:this.complete,isBitcoinTree:this.isBitcoinTree,hashLeaves:this.hashLeaves,sortLeaves:this.sortLeaves,sortPairs:this.sortPairs,sort:this.sort,fillDefaultHash:null!==(t=null===(e=this.fillDefaultHash)||void 0===e?void 0:e.toString())&&void 0!==t?t:null,duplicateOdd:this.duplicateOdd}}processLeaves(e){if(this.hashLeaves&&(e=e.map(this.hashFn)),this.leaves=e.map(this.bufferify),this.sortLeaves&&(this.leaves=this.leaves.sort(rP.Buffer.compare)),this.fillDefaultHash)for(let e=this.leaves.length;e<Math.pow(2,Math.ceil(Math.log2(this.leaves.length)));e++)this.leaves.push(this.bufferify(this.fillDefaultHash(e,this.hashFn)));this.createHashes(this.leaves)}createHashes(e){for(this.layers=[e];e.length>1;){const t=this.layers.length;this.layers.push([]);const n=this.complete&&1===t&&!Number.isInteger(Math.log2(e.length))?2*e.length-Math.pow(2,Math.ceil(Math.log2(e.length))):e.length;for(let r=0;r<e.length;r+=2){if(r>=n){this.layers[t].push(...e.slice(n));break}if(r+1===e.length&&e.length%2==1){const n=e[e.length-1];let i=n;if(this.isBitcoinTree){i=this.hashFn(this.concatenator([iP.default(n),iP.default(n)])),i=iP.default(this.hashFn(i)),this.layers[t].push(i);continue}if(!this.duplicateOdd){this.layers[t].push(e[r]);continue}}const i=e[r],a=r+1===e.length?i:e[r+1];let o=null;o=this.isBitcoinTree?[iP.default(i),iP.default(a)]:[i,a],this.sortPairs&&o.sort(rP.Buffer.compare);let s=this.hashFn(this.concatenator(o));this.isBitcoinTree&&(s=iP.default(this.hashFn(s))),this.layers[t].push(s)}e=this.layers[t]}}addLeaf(e,t=!1){t&&(e=this.hashFn(e)),this.processLeaves(this.leaves.concat(e))}addLeaves(e,t=!1){t&&(e=e.map(this.hashFn)),this.processLeaves(this.leaves.concat(e))}getLeaves(e){return Array.isArray(e)?(this.hashLeaves&&(e=e.map(this.hashFn),this.sortLeaves&&(e=e.sort(rP.Buffer.compare))),this.leaves.filter((t=>-1!==this.bufferIndexOf(e,t,this.sortLeaves)))):this.leaves}getLeaf(e){return e<0||e>this.leaves.length-1?rP.Buffer.from([]):this.leaves[e]}getLeafIndex(e){e=this.bufferify(e);const t=this.getLeaves();for(let n=0;n<t.length;n++){if(t[n].equals(e))return n}return-1}getLeafCount(){return this.leaves.length}getHexLeaves(){return this.leaves.map((e=>this.bufferToHex(e)))}static marshalLeaves(t){return JSON.stringify(t.map((t=>e.bufferToHex(t))),null,2)}static unmarshalLeaves(t){let n=null;if("string"==typeof t)n=JSON.parse(t);else{if(!(t instanceof Object))throw new Error("Expected type of string or object");n=t}if(!n)return[];if(!Array.isArray(n))throw new Error("Expected JSON string to be array");return n.map(e.bufferify)}getLayers(){return this.layers}getHexLayers(){return this.layers.reduce(((e,t)=>(Array.isArray(t)?e.push(t.map((e=>this.bufferToHex(e)))):e.push(t),e)),[])}getLayersFlat(){const e=this.layers.reduce(((e,t)=>(Array.isArray(t)?e.unshift(...t):e.unshift(t),e)),[]);return e.unshift(rP.Buffer.from([0])),e}getHexLayersFlat(){return this.getLayersFlat().map((e=>this.bufferToHex(e)))}getLayerCount(){return this.getLayers().length}getRoot(){return 0===this.layers.length?rP.Buffer.from([]):this.layers[this.layers.length-1][0]||rP.Buffer.from([])}getHexRoot(){return this.bufferToHex(this.getRoot())}getProof(e,t){if(void 0===e)throw new Error("leaf is required");e=this.bufferify(e);const n=[];if(!Number.isInteger(t)){t=-1;for(let n=0;n<this.leaves.length;n++)0===rP.Buffer.compare(e,this.leaves[n])&&(t=n)}if(t<=-1)return[];for(let e=0;e<this.layers.length;e++){const r=this.layers[e],i=t%2,a=i?t-1:this.isBitcoinTree&&t===r.length-1&&e<this.layers.length-1?t:t+1;a<r.length&&n.push({position:i?"left":"right",data:r[a]}),t=t/2|0}return n}getHexProof(e,t){return this.getProof(e,t).map((e=>this.bufferToHex(e.data)))}getProofs(){const e=[];return this.getProofsDFS(this.layers.length-1,0,[],e),e}getProofsDFS(e,t,n,r){const i=t%2;if(-1===e)return void(i||r.push([...n].reverse()));if(t>=this.layers[e].length)return;const a=this.layers[e],o=i?t-1:t+1;let s=!1;o<a.length&&(s=!0,n.push({position:i?"left":"right",data:a[o]}));const u=2*t,c=2*t+1;this.getProofsDFS(e-1,u,n,r),this.getProofsDFS(e-1,c,n,r),s&&n.splice(n.length-1,1)}getHexProofs(){return this.getProofs().map((e=>this.bufferToHex(e.data)))}getPositionalHexProof(e,t){return this.getProof(e,t).map((e=>["left"===e.position?0:1,this.bufferToHex(e.data)]))}static marshalProof(t){const n=t.map((t=>"string"==typeof t?t:rP.Buffer.isBuffer(t)?e.bufferToHex(t):{position:t.position,data:e.bufferToHex(t.data)}));return JSON.stringify(n,null,2)}static unmarshalProof(t){let n=null;if("string"==typeof t)n=JSON.parse(t);else{if(!(t instanceof Object))throw new Error("Expected type of string or object");n=t}if(!n)return[];if(!Array.isArray(n))throw new Error("Expected JSON string to be array");return n.map((t=>{if("string"==typeof t)return e.bufferify(t);if(t instanceof Object)return{position:t.position,data:e.bufferify(t.data)};throw new Error("Expected item to be of type string or object")}))}static marshalTree(t){const n=t.getHexRoot(),r=t.leaves.map((t=>e.bufferToHex(t))),i=t.getHexLayers(),a=t.getOptions();return JSON.stringify({options:a,root:n,layers:i,leaves:r},null,2)}static unmarshalTree(t,n=aP.default,r={}){let i=null;if("string"==typeof t)i=JSON.parse(t);else{if(!(t instanceof Object))throw new Error("Expected type of string or object");i=t}if(!i)throw new Error("could not parse json");return r=Object.assign({},i.options||{},r),new e(i.leaves,n,r)}getProofIndices(e,t){const n=Math.pow(2,t);let r=new Set;for(const t of e){let e=n+t;for(;e>1;)r.add(1^e),e=e/2|0}const i=e.map((e=>n+e)),a=Array.from(r).sort(((e,t)=>e-t)).reverse();r=i.concat(a);const o=new Set,s=[];for(let e of r)if(!o.has(e))for(s.push(e);e>1&&(o.add(e),o.has(1^e));)e=e/2|0;return s.filter((t=>!e.includes(t-n)))}getProofIndicesForUnevenTree(e,t){const n=Math.ceil(Math.log2(t)),r=[];for(let e=0;e<n;e++){t%2!=0&&r.push({index:e,leavesCount:t}),t=Math.ceil(t/2)}const i=[];let a=e;for(let e=0;e<n;e++){const t=a.map((e=>e%2==0?e+1:e-1));let n=t.filter((e=>!a.includes(e)));const o=r.find((({index:t})=>t===e));o&&a.includes(o.leavesCount-1)&&(n=n.slice(0,-1)),i.push(n),a=[...new Set(a.map((e=>e%2==0?e/2:e%2==0?(e+1)/2:(e-1)/2)))]}return i}getMultiProof(e,t){this.complete||console.warn("Warning: For correct multiProofs it's strongly recommended to set complete: true"),t||(t=e,e=this.getLayersFlat());if(this.isUnevenTree()&&t.every(Number.isInteger))return this.getMultiProofForUnevenTree(t);if(!t.every(Number.isInteger)){let e=t;this.sortPairs&&(e=e.sort(rP.Buffer.compare));let n=e.map((e=>this.bufferIndexOf(this.leaves,e,this.sortLeaves))).sort(((e,t)=>e===t?0:e>t?1:-1));if(!n.every((e=>-1!==e)))throw new Error("Element does not exist in Merkle tree");const r=[],i=[];let a=[];for(let e=0;e<this.layers.length;e++){const t=this.layers[e];for(let e=0;e<n.length;e++){const o=n[e],s=this.getPairNode(t,o);r.push(t[o]),s&&i.push(s),a.push(o/2|0)}n=a.filter(((e,t,n)=>n.indexOf(e)===t)),a=[]}return i.filter((e=>!r.includes(e)))}return this.getProofIndices(t,Math.log2(e.length/2|0)).map((t=>e[t]))}getMultiProofForUnevenTree(e,t){t||(t=e,e=this.getLayers());let n=[],r=t;for(const t of e){const e=[];for(const n of r){if(n%2==0){const i=n+1;if(!r.includes(i)&&t[i]){e.push(t[i]);continue}}const i=n-1;r.includes(i)||!t[i]||e.push(t[i])}n=n.concat(e);const i=new Set;for(const e of r)e%2!=0?e%2!=0?i.add((e-1)/2):i.add((e+1)/2):i.add(e/2);r=Array.from(i)}return n}getHexMultiProof(e,t){return this.getMultiProof(e,t).map((e=>this.bufferToHex(e)))}getProofFlags(e,t){if(!Array.isArray(e)||e.length<=0)throw new Error("Invalid Inputs!");let n;if(n=e.every(Number.isInteger)?[...e].sort(((e,t)=>e===t?0:e>t?1:-1)):e.map((e=>this.bufferIndexOf(this.leaves,e,this.sortLeaves))).sort(((e,t)=>e===t?0:e>t?1:-1)),!n.every((e=>-1!==e)))throw new Error("Element does not exist in Merkle tree");const r=t.map((e=>this.bufferify(e))),i=[],a=[];for(let e=0;e<this.layers.length;e++){const t=this.layers[e];n=n.reduce(((e,n)=>{if(!i.includes(t[n])){const e=this.getPairNode(t,n),o=r.includes(t[n])||r.includes(e);e&&a.push(!o),i.push(t[n]),i.push(e)}return e.push(n/2|0),e}),[])}return a}verify(e,t,n){let r=this.bufferify(t);if(n=this.bufferify(n),!Array.isArray(e)||!t||!n)return!1;for(let t=0;t<e.length;t++){const n=e[t];let i=null,a=null;if("string"==typeof n)i=this.bufferify(n),a=!0;else if(Array.isArray(n))a=0===n[0],i=this.bufferify(n[1]);else if(rP.Buffer.isBuffer(n))i=n,a=!0;else{if(!(n instanceof Object))throw new Error("Expected node to be of type string or object");i=this.bufferify(n.data),a="left"===n.position}const o=[];this.isBitcoinTree?(o.push(iP.default(r)),o[a?"unshift":"push"](iP.default(i)),r=this.hashFn(this.concatenator(o)),r=iP.default(this.hashFn(r))):this.sortPairs?-1===rP.Buffer.compare(r,i)?(o.push(r,i),r=this.hashFn(this.concatenator(o))):(o.push(i,r),r=this.hashFn(this.concatenator(o))):(o.push(r),o[a?"unshift":"push"](i),r=this.hashFn(this.concatenator(o)))}return 0===rP.Buffer.compare(r,n)}verifyMultiProof(e,t,n,r,i){if(this.isUnevenTree())return this.verifyMultiProofForUnevenTree(e,t,n,r,i);const a=Math.ceil(Math.log2(r));e=this.bufferify(e),n=n.map((e=>this.bufferify(e))),i=i.map((e=>this.bufferify(e)));const o={};for(const[e,r]of this.zip(t,n))o[Math.pow(2,a)+e]=r;for(const[e,n]of this.zip(this.getProofIndices(t,a),i))o[e]=n;let s=Object.keys(o).map((e=>+e)).sort(((e,t)=>e-t));s=s.slice(0,s.length-1);let u=0;for(;u<s.length;){const e=s[u];if(e>=2&&{}.hasOwnProperty.call(o,1^e)){let t=[o[e-e%2],o[e-e%2+1]];this.sortPairs&&(t=t.sort(rP.Buffer.compare));const n=t[1]?this.hashFn(this.concatenator(t)):t[0];o[e/2|0]=n,s.push(e/2|0)}u+=1}return!t.length||{}.hasOwnProperty.call(o,1)&&o[1].equals(e)}verifyMultiProofWithFlags(e,t,n,r){e=this.bufferify(e),t=t.map(this.bufferify),n=n.map(this.bufferify);const i=t.length,a=r.length,o=[];let s=0,u=0,c=0;for(let e=0;e<a;e++){const a=[r[e]?s<i?t[s++]:o[u++]:n[c++],s<i?t[s++]:o[u++]].sort(rP.Buffer.compare);o[e]=this.hashFn(this.concatenator(a))}return 0===rP.Buffer.compare(o[a-1],e)}verifyMultiProofForUnevenTree(e,t,n,r,i){e=this.bufferify(e),n=n.map((e=>this.bufferify(e))),i=i.map((e=>this.bufferify(e)));const a=this.calculateRootForUnevenTree(t,n,r,i);return e.equals(a)}getDepth(){return this.getLayers().length-1}getLayersAsObject(){const e=this.getLayers().map((e=>e.map((e=>this.bufferToHex(e,!1))))),t=[];for(let n=0;n<e.length;n++){const r=[];for(let i=0;i<e[n].length;i++){const a={[e[n][i]]:null};if(t.length){a[e[n][i]]={};const r=t.shift(),o=Object.keys(r)[0];if(a[e[n][i]][o]=r[o],t.length){const r=t.shift(),o=Object.keys(r)[0];a[e[n][i]][o]=r[o]}}r.push(a)}t.push(...r)}return t[0]}static verify(t,n,r,i=aP.default,a={}){return new e([],i,a).verify(t,n,r)}static getMultiProof(t,n){return new e([]).getMultiProof(t,n)}resetTree(){this.leaves=[],this.layers=[]}getPairNode(e,t){const n=t%2==0?t+1:t-1;return n<e.length?e[n]:null}toTreeString(){const e=this.getLayersAsObject();return oP.default.asTree(e,!0)}toString(){return this.toTreeString()}isUnevenTree(e){const t=(null==e?void 0:e.length)||this.getDepth();return!this.isPowOf2(t)}isPowOf2(e){return e&&!(e&e-1)}calculateRootForUnevenTree(e,t,n,r){const i=this.zip(e,t).sort((([e],[t])=>e-t)),a=i.map((([e])=>e)),o=this.getProofIndicesForUnevenTree(a,n);let s=0;const u=[];for(let e=0;e<o.length;e++){const t=o[e],n=s;s+=t.length,u[e]=this.zip(t,r.slice(n,s))}const c=[i];for(let e=0;e<u.length;e++){const t=u[e].concat(c[e]).sort((([e],[t])=>e-t)).map((([,e])=>e)),n=c[e].map((([e])=>e)),r=[...new Set(n.map((e=>e%2==0?e/2:e%2==0?(e+1)/2:(e-1)/2)))],i=[];for(let e=0;e<r.length;e++){const n=r[e],a=t[2*e],o=t[2*e+1],s=o?this.hashFn(this.concatenator([a,o])):a;i.push([n,s])}c.push(i)}return c[c.length-1][0][1]}};lN.MerkleTree=uP,"undefined"!=typeof window&&(window.MerkleTree=uP),lN.default=uP;var cP={},lP=Ft&&Ft.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(cP,"__esModule",{value:!0}),cP.MerkleMountainRange=void 0;const dP=Gn,fP=lP(yN),pP=lP(TN);class hP extends pP.default{constructor(e=fP.default,t=[],n,r,i){super(),this.root=dP.Buffer.alloc(0),this.size=0,this.width=0,this.hashes={},this.data={},t=t.map(this.bufferify),this.hashFn=this.bufferifyFn(e),this.hashLeafFn=n,this.peakBaggingFn=r,this.hashBranchFn=i;for(const e of t)this.append(e)}append(e){e=this.bufferify(e);const t=this.hashFn(e),n=this.bufferToHex(t);this.data[n]&&this.bufferToHex(this.hashFn(this.data[n]))===n||(this.data[n]=e);const r=this.hashLeaf(this.size+1,t);this.hashes[this.size+1]=r,this.width+=1;const i=this.getPeakIndexes(this.width);this.size=this.getSize(this.width);const a=[];for(let e=0;e<i.length;e++)a[e]=this._getOrCreateNode(i[e]);this.root=this.peakBagging(this.width,a)}hashLeaf(e,t){return t=this.bufferify(t),this.hashLeafFn?this.bufferify(this.hashLeafFn(e,t)):this.hashFn(dP.Buffer.concat([this.bufferify(e),t]))}hashBranch(e,t,n){return this.hashBranchFn?this.bufferify(this.hashBranchFn(e,t,n)):this.hashFn(dP.Buffer.concat([this.bufferify(e),this.bufferify(t),this.bufferify(n)]))}getPeaks(){const e=this.getPeakIndexes(this.width),t=[];for(let n=0;n<e.length;n++)t[n]=this.hashes[e[n]];return t}getLeafIndex(e){return e%2==1?this.getSize(e):this.getSize(e-1)+1}getPeakIndexes(e){const t=this.numOfPeaks(e),n=[];let r=0,i=0;for(let a=255;a>0&&!(0!=(e&1<<a-1)&&(i=i+(1<<a)-1,n[r++]=i,n.length>=t));a--);if(r!==n.length)throw new Error("invalid bit calculation");return n}numOfPeaks(e){let t=e,n=0;for(;t>0;)t%2==1&&n++,t>>=1;return n}peakBagging(e,t){const n=this.getSize(e);if(this.numOfPeaks(e)!==t.length)throw new Error("received invalid number of peaks");return 0!==e||t.length?this.peakBaggingFn?this.bufferify(this.peakBaggingFn(n,t)):this.hashFn(dP.Buffer.concat([this.bufferify(n),...t.map(this.bufferify)])):dP.Buffer.alloc(0)}getSize(e){return(e<<1)-this.numOfPeaks(e)}getRoot(){return this.root}getHexRoot(){return this.bufferToHex(this.getRoot())}getNode(e){return this.hashes[e]}mountainHeight(e){let t=1;for(;1<<t<=e+t;)t++;return t-1}heightAt(e){let t=e,n=0,r=0;for(;t>n;)t-=(1<<r)-1,r=this.mountainHeight(t),n=(1<<r)-1;return r-(n-t)}isLeaf(e){return 1===this.heightAt(e)}getChildren(e){const t=e-(1<<this.heightAt(e)-1),n=e-1;if(t===n)throw new Error("not a parent");return[t,n]}getMerkleProof(e){if(e>this.size)throw new Error("out of range");if(!this.isLeaf(e))throw new Error("not a leaf");const t=this.root,n=this.width,r=this.getPeakIndexes(this.width),i=[];let a=0;for(let t=0;t<r.length;t++)i[t]=this.hashes[r[t]],r[t]>=e&&0===a&&(a=r[t]);let o=0,s=0,u=this.heightAt(a);const c=[];for(;a!==e;)u--,[o,s]=this.getChildren(a),a=e<=o?o:s,c[u-1]=this.hashes[e<=o?s:o];return{root:t,width:n,peakBagging:i,siblings:c}}verify(e,t,n,r,i,a){r=this.bufferify(r);if(this.getSize(t)<n)throw new Error("index is out of range");if(!e.equals(this.peakBagging(t,i)))throw new Error("invalid root hash from the peaks");let o,s=0;const u=this.getPeakIndexes(t);for(let e=0;e<u.length;e++)if(u[e]>=n){o=i[e],s=u[e];break}if(!o)throw new Error("target not found");let c=a.length+1;const l=new Array(c);let d,f=0,p=0;for(;c>0&&(l[--c]=s,s!==n);)[f,p]=this.getChildren(s),s=n>f?p:f;for(;c<l.length;)s=l[c],d=0===c?this.hashLeaf(s,this.hashFn(r)):s-1===l[c-1]?this.hashBranch(s,a[c-1],d):this.hashBranch(s,d,a[c-1]),c++;if(!d.equals(o))throw new Error("hashed peak is invalid");return!0}peaksToPeakMap(e,t){const n={};let r=0,i=0,a=t.length;for(let o=1;o<=32;o++)r=32-o,i=1<<o-1,n[r]=0!=(e&i)?t[--a]:0;if(0!==a)throw new Error("invalid number of peaks");return n}peakMapToPeaks(e,t){const n=this.numOfPeaks(e),r=new Array(n);let i=0;for(let e=0;e<32;e++)0!==t[e]&&(r[i++]=t[e]);if(i!==n)throw new Error("invalid number of peaks");return r}peakUpdate(e,t,n){const r={},i=e+1;let a=this.getLeafIndex(i),o=this.hashLeaf(a,n),s=0,u=0,c=!1,l=!1,d=!1;for(let n=1;n<=32;n++)s=32-n,d?r[s]=t[s]:(u=1<<n-1,c=0!=(e&u),l=0!=(i&u),a++,c&&(o=this.hashBranch(a,t[s],o)),l?(r[s]=c?t[s]:o,d=!0):r[s]=0);return r}rollUp(e,t,n,r){if(!e.equals(this.peakBagging(t,n)))throw new Error("invalid root hash from the peaks");let i=t,a=this.peaksToPeakMap(t,n);for(let e=0;e<r.length;e++)a=this.peakUpdate(i,a,r[e]),i++;return this.peakBagging(i,this.peakMapToPeaks(i,a))}_getOrCreateNode(e){if(e>this.size)throw new Error("out of range");if(!this.hashes[e]){const[t,n]=this.getChildren(e),r=this._getOrCreateNode(t),i=this._getOrCreateNode(n);this.hashes[e]=this.hashBranch(e,r,i)}return this.hashes[e]}}cP.MerkleMountainRange=hP,"undefined"!=typeof window&&(window.MerkleMountainRange=hP),cP.default=hP;var mP={},yP=Ft&&Ft.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(mP,"__esModule",{value:!0}),mP.IncrementalMerkleTree=void 0;const gP=yP(TN),bP=yP(vN);class vP extends gP.default{constructor(e,t){if(super(),this.hashFn=e,t.depth&&(this.depth=t.depth),t.arity&&(this.arity=t.arity),this.depth<1)throw new Error("depth must be greater than 0");if(this.arity<1)throw new Error("arity must be greater than 0");const n=[];let r=t.zeroValue;if(this.zeroValue=r,this.zeroes=[],this.depth)for(let e=0;e<this.depth;e++)this.zeroes.push(r),n[e]=[],r=this.hashFn(Array(this.arity).fill(r));this.nodes=n,this.root=r}getRoot(){return this.root}getHexRoot(){return this.bufferToHex(this.bufferify(this.getRoot()))}insert(e){if(this.depth&&this.arity&&this.nodes[0].length>=this.getMaxLeaves())throw new Error("tree is full");let t=e,n=this.nodes[0].length;for(let e=0;e<this.depth;e+=1){const r=n-n%this.arity,i=r+this.arity,a=[];this.nodes[e][n]=t;for(let t=r;t<i;t+=1)t<this.nodes[e].length?a.push(this.nodes[e][t]):a.push(this.zeroes[e]);t=this.hashFn(a),n=Math.floor(n/this.arity)}this.root=t}delete(e){this.update(e,this.zeroValue)}update(e,t){if(e<0||e>=this.nodes[0].length)throw new Error("out of bounds");let n=t;for(let t=0;t<this.depth;t+=1){const r=e-e%this.arity,i=r+this.arity,a=[];this.nodes[t][e]=n;for(let e=r;e<i;e+=1)e<this.nodes[t].length?a.push(this.nodes[t][e]):a.push(this.zeroes[t]);n=this.hashFn(a),e=Math.floor(e/this.arity)}this.root=n}getDepth(){return this.depth}getArity(){return this.arity}getMaxLeaves(){return Math.pow(this.depth,this.arity)}indexOf(e){return this.nodes[0].indexOf(e)}getLeaves(){const e=this.copyList(this.nodes[0]);for(let t=this.nodes[0].length;t<this.getMaxLeaves();t++)e[t]=this.zeroValue;return e}copyList(e){return e.map((e=>BigInt(e)))}getLayers(){const e=[];for(const t of this.nodes)e.push(this.copyList(t));if(e[0].length<this.getMaxLeaves()){let t=e[0].length;for(let n=t;n<this.getMaxLeaves();n++)e[0][n]=this.zeroValue;for(let n=0;n<this.depth;n++){const r=t-t%this.arity,i=r+this.arity;for(let t=r;t<i;t++)t>=e[n].length&&(e[n][t]=this.zeroes[n]);t=Math.floor(t/this.arity)}}return e.push([this.root]),e}getHexLayers(){return this.getLayers().reduce(((e,t)=>(Array.isArray(t)?e.push(t.map((e=>this.bufferToHex(this.bufferify(e))))):e.push(t),e)),[])}getLayersAsObject(){const e=this.getLayers().map((e=>e.map((e=>this.bufferToHex(this.bufferify(e),!1))))),t=[];for(let n=0;n<e.length;n++){const r=[];for(let i=0;i<e[n].length;i++){const a={[e[n][i]]:null};if(t.length){a[e[n][i]]={};const r=t.shift(),o=Object.keys(r)[0];if(a[e[n][i]][o]=r[o],t.length){const r=t.shift(),o=Object.keys(r)[0];a[e[n][i]][o]=r[o]}}r.push(a)}t.push(...r)}return t[0]}computeRoot(){let e,t=this.nodes[0].length;for(let n=0;n<this.depth;n+=1){const r=t-t%this.arity,i=r+this.arity,a=[];for(let e=r;e<i;e+=1)e<this.nodes[n].length?a.push(this.nodes[n][e]):a.push(this.zeroes[n]);e=this.hashFn(a),t=Math.floor(t/this.arity)}return e}getProof(e){if(e<0||e>=this.nodes[0].length)throw new Error("The leaf does not exist in this tree");const t=[],n=[],r=e;for(let r=0;r<this.depth;r+=1){const i=e%this.arity,a=e-i,o=a+this.arity;n[r]=i,t[r]=[];for(let n=a;n<o;n+=1)n!==e&&(n<this.nodes[r].length?t[r].push(this.nodes[r][n]):t[r].push(this.zeroes[r]));e=Math.floor(e/this.arity)}return{root:this.root,leaf:this.nodes[0][r],pathIndices:n,siblings:t}}verify(e){let t=e.leaf;for(let n=0;n<e.siblings.length;n+=1){const r=e.siblings[n].slice();r.splice(e.pathIndices[n],0,t),t=this.hashFn(r)}return e.root===t}toString(){return this.toTreeString()}toTreeString(){const e=this.getLayersAsObject();return bP.default.asTree(e,!0)}}mP.IncrementalMerkleTree=vP,"undefined"!=typeof window&&(window.IncrementalMerkleTree=vP),mP.default=vP;var TP={};Object.defineProperty(TP,"__esModule",{value:!0}),TP.MerkleSumTree=TP.ProofStep=TP.Leaf=TP.Bucket=void 0;const wP=TN;class EP{constructor(e,t){this.size=BigInt(e),this.hashed=t,this.parent=null,this.left=null,this.right=null}}TP.Bucket=EP;TP.Leaf=class{constructor(e,t,n){this.hashFn=e,this.rng=t.map((e=>BigInt(e))),this.data=n}getBucket(){let e;return e=this.data?this.hashFn(this.data):Buffer.alloc(32),new EP(BigInt(this.rng[1])-BigInt(this.rng[0]),e)}};class AP{constructor(e,t){this.bucket=e,this.right=t}}TP.ProofStep=AP;class _P extends wP.Base{constructor(e,t){super(),this.leaves=e,this.hashFn=t,_P.checkConsecutive(e),this.buckets=[];for(const t of e)this.buckets.push(t.getBucket());let n=[];for(const e of this.buckets)n.push(e);for(;1!==n.length;){const e=[];for(;n.length;)if(n.length>=2){const t=n.shift(),r=n.shift(),i=t.size+r.size,a=this.hashFn(Buffer.concat([this.sizeToBuffer(t.size),this.bufferify(t.hashed),this.sizeToBuffer(r.size),this.bufferify(r.hashed)])),o=new EP(i,a);r.parent=o,t.parent=r.parent,t.right=r,r.left=t,e.push(o)}else e.push(n.shift());n=e}this.root=n[0]}sizeToBuffer(e){const t=Buffer.alloc(8);return new DataView(t.buffer).setBigInt64(0,BigInt(e),!1),t}static checkConsecutive(e){let t=BigInt(0);for(const n of e){if(n.rng[0]!==t)throw new Error("leaf ranges are invalid");t=BigInt(n.rng[1])}}getProof(e){let t=this.buckets[Number(e)];const n=[];for(;t&&t.parent;){const e=!!t.right,r=t.right?t.right:t.left;t=t.parent,n.push(new AP(r,e))}return n}sum(e){let t=BigInt(0);for(const n of e)t+=BigInt(n);return t}verifyProof(e,t,n){const r=[this.sum(n.filter((e=>!e.right)).map((e=>e.bucket.size))),BigInt(e.size)-this.sum(n.filter((e=>e.right)).map((e=>e.bucket.size)))];if(r[0]!==t.rng[0]||r[1]!==t.rng[1])return!1;let i,a=t.getBucket();for(const e of n)i=e.right?this.hashFn(Buffer.concat([this.sizeToBuffer(a.size),this.bufferify(a.hashed),this.sizeToBuffer(e.bucket.size),this.bufferify(e.bucket.hashed)])):this.hashFn(Buffer.concat([this.sizeToBuffer(e.bucket.size),this.bufferify(e.bucket.hashed),this.sizeToBuffer(a.size),this.bufferify(a.hashed)])),a=new EP(BigInt(a.size)+BigInt(e.bucket.size),i);return a.size===e.size&&a.hashed.toString("hex")===e.hashed.toString("hex")}}TP.MerkleSumTree=_P,"undefined"!=typeof window&&(window.MerkleSumTree=_P),TP.default=_P,function(e){var t=Ft&&Ft.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,"__esModule",{value:!0}),e.MerkleTree=void 0;const n=t(lN);e.MerkleTree=n.default;var r=cP;Object.defineProperty(e,"MerkleMountainRange",{enumerable:!0,get:function(){return r.MerkleMountainRange}});var i=mP;Object.defineProperty(e,"IncrementalMerkleTree",{enumerable:!0,get:function(){return i.IncrementalMerkleTree}});var a=TP;Object.defineProperty(e,"MerkleSumTree",{enumerable:!0,get:function(){return a.MerkleSumTree}}),e.default=n.default}(cN);var IP={};Object.defineProperty(IP,"__esModule",{value:!0}),IP.DefaultGetter=void 0;const RP=lS,CP=new vS.Logger("defaults"),OP={integer:0,address:(0,RP.hexZeroPad)("0x",20),bool:!1,bytes:"0x",string:""},kP=e=>void 0!==e&&(null!=e&&(["string","number"].includes(typeof e)&&BigInt(e)===BigInt(0)||Array.isArray(e)&&e.every(kP)||"object"==typeof e&&Object.values(e).every(kP)||"boolean"==typeof e&&!1===e));class SP{constructor(e){this.types=e,this.defaultValues={};for(const t in e){const e=this.getDefaultValue(t);this.defaultValues[t]=e,kP(e)||CP.throwError(`Got non-empty value for type ${t} in default generator: ${e}`)}}static from(e,t){const{defaultValues:n}=new SP(e);return t?n[t]:n}getDefaultValue(e){if(this.defaultValues[e])return this.defaultValues[e];const t=function(e){var t;const[,n]=null!==(t=e.match(/^bytes(\d+)$/))&&void 0!==t?t:[];return n?(0,RP.hexZeroPad)("0x",parseInt(n)):(e.match(/^(u?)int(\d*)$/)&&(e="integer"),OP[e])}(e);if(void 0!==t)return t;const n=e.match(/^(.*)(\x5b(\d*)\x5d)$/);if(n){const e=n[1],t=parseInt(n[3]);if(t>0){const n=this.getDefaultValue(e);return Array(t).fill(n)}return[]}const r=this.types[e];return r?r.reduce(((e,{name:t,type:n})=>Object.assign(Object.assign({},e),{[t]:this.getDefaultValue(n)})),{}):CP.throwArgumentError(`unknown type: ${e}`,"type",e)}}IP.DefaultGetter=SP;var NP={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.getNextLayer=e.getRoot=e.fillArray=e.hashConcat=e.bufferKeccak=e.hexToBuffer=e.bufferToHex=e.chunk=e.makeArray=void 0;const t=lS;e.makeArray=(e,t)=>Array(e).fill(0).map(((e,n)=>t(n)));e.chunk=(t,n)=>(0,e.makeArray)(Math.ceil(t.length/n),(e=>t.slice(e*n,(e+1)*n)));e.bufferToHex=e=>(0,t.hexlify)(e);e.hexToBuffer=e=>Buffer.from(e.slice(2),"hex");e.bufferKeccak=n=>(0,e.hexToBuffer)((0,t.keccak256)(n));e.hashConcat=n=>(0,e.bufferKeccak)((0,t.hexConcat)(n));e.fillArray=(e,t,n)=>(t>e.length&&e.push(...Array(t-e.length).fill(n)),e);e.getRoot=(t,n=!0)=>{if(0===t.length)throw new Error("empty tree");const r=[t.map((t=>{const r=Buffer.isBuffer(t)?t:(0,e.hexToBuffer)(t);return n?(0,e.bufferKeccak)(r):r}))];for(;r[r.length-1].length>1;)r.push((0,e.getNextLayer)(r[r.length-1]));return r[r.length-1][0]};e.getNextLayer=t=>(0,e.chunk)(t,2).map(e.hashConcat)}(NP),Object.defineProperty(uN,"__esModule",{value:!0}),uN.Eip712MerkleTree=void 0;const xP=mS,PP=lS,MP=cN,BP=IP,DP=NP;uN.Eip712MerkleTree=class{get completedSize(){return Math.pow(2,this.depth)}getCompleteElements(){const e=this.elements;return(0,DP.fillArray)([...e],this.completedSize,this.defaultNode)}getCompleteLeaves(){const e=this.elements.map(this.leafHasher);return(0,DP.fillArray)([...e],this.completedSize,this.defaultLeaf)}get root(){return this.tree.getHexRoot()}getProof(e){const t=this.getCompleteLeaves()[e];return{leaf:t,proof:this.tree.getHexProof(t,e),root:this.tree.getHexRoot()}}getEncodedProofAndSignature(e,t){const{proof:n}=this.getProof(e);return((e,t,n=`0x${"ff".repeat(64)}`)=>(0,PP.hexConcat)([n,`0x${e.toString(16).padStart(6,"0")}`,PP.defaultAbiCoder.encode([`uint256[${t.length}]`],[t])]))(e,n,t)}getDataToSign(){let e=this.getCompleteElements();for(;e.length>2;)e=(0,DP.chunk)(e,2);return e}add(e){this.elements.push(e)}getBulkOrderHash(){const e=this.encoder.hashStruct("BulkOrder",{tree:this.getDataToSign()}),t=this.getCompleteLeaves().map(DP.hexToBuffer),n=(0,DP.bufferToHex)((0,DP.getRoot)(t,!1)),r=(0,PP.keccak256)((0,PP.toUtf8Bytes)(this.encoder._types.BulkOrder));if((0,PP.keccak256)((0,PP.hexConcat)([r,n]))!==e)throw new Error("expected derived bulk order hash to match");return e}constructor(e,t,n,r,i){this.types=e,this.rootType=t,this.leafType=n,this.elements=r,this.depth=i;const a=xP._TypedDataEncoder.from(e);var o,s;this.encoder=a,this.leafHasher=e=>a.hashStruct(n,e),this.defaultNode=BP.DefaultGetter.from(e,n),this.defaultLeaf=this.leafHasher(this.defaultNode),this.tree=(o=this.getCompleteLeaves(),s=this.defaultLeaf,new MP.MerkleTree(o.map(DP.hexToBuffer),DP.bufferKeccak,{complete:!0,sort:!1,hashLeaves:!1,fillDefaultHash:(0,DP.hexToBuffer)(s)}))}},Object.defineProperty(sN,"__esModule",{value:!0}),sN.getBulkOrderTypeHashes=sN.getBulkOrderTypeHash=sN.getBulkOrderTree=sN.getBulkOrderTreeHeight=void 0;const FP=lS,LP=uN,UP=IP,qP=NP,jP=xS;function GP(e){const t=Object.assign({},jP.EIP_712_BULK_ORDER_TYPE);return t.BulkOrder=[{name:"tree",type:`OrderComponents${"[2]".repeat(e)}`}],t}function HP(e){return Math.max(Math.ceil(Math.log2(e)),1)}function zP(e){const t=GP(e),n=FP._TypedDataEncoder.from(t),r=(0,FP.toUtf8Bytes)(n._types.BulkOrder);return(0,FP.keccak256)(r)}sN.getBulkOrderTreeHeight=HP,sN.getBulkOrderTree=function(e,t=0,n=HP(e.length+t)){const r=GP(n),i=UP.DefaultGetter.from(r,"OrderComponents");let a=[...e];return t>0&&(a=[...(0,qP.fillArray)([],t,i),...e]),new LP.Eip712MerkleTree(r,"BulkOrder","OrderComponents",a,n)},sN.getBulkOrderTypeHash=zP,sN.getBulkOrderTypeHashes=function(e){const t=[];for(let n=0;n<e;n++)t.push(zP(n+1));return t};var WP={},VP={},KP={};Object.defineProperty(KP,"__esModule",{value:!0}),KP.MerkleTree=void 0;const XP=cS,JP=lS,YP=cN,QP=e=>(0,JP.keccak256)(Buffer.from(XP.BigNumber.from(e).toHexString().slice(2).padStart(64,"0"),"hex"));KP.MerkleTree=class{constructor(e){this.tree=new YP.default(e.map(QP),JP.keccak256,{sort:!0})}getProof(e){return this.tree.getHexProof(QP(e))}getRoot(){return this.tree.getRoot().toString("hex")?this.tree.getHexRoot():"0"}},Object.defineProperty(VP,"__esModule",{value:!0}),VP.shouldUseMatchForFulfill=VP.generateRandomSalt=VP.mapOrderAmountsFromUnitsToFill=VP.mapOrderAmountsFromFilledStatus=VP.totalItemsAmount=VP.areAllCurrenciesSame=VP.mapInputItemToOfferItem=VP.deductFees=VP.feeToConsiderationItem=void 0;const $P=cS,ZP=lS,eM=xS,tM=GS(),nM=KP,rM=(e,t)=>$P.BigNumber.from(e).mul($P.BigNumber.from(t)).div(eM.ONE_HUNDRED_PERCENT_BP);VP.feeToConsiderationItem=({fee:e,token:t,baseAmount:n,baseEndAmount:r=n})=>({itemType:t===$P.ethers.constants.AddressZero?eM.ItemType.NATIVE:eM.ItemType.ERC20,token:t,identifierOrCriteria:"0",startAmount:rM(n,e.basisPoints).toString(),endAmount:rM(r,e.basisPoints).toString(),recipient:e.recipient});VP.deductFees=(e,t)=>{if(!t)return e;const n=t.reduce(((e,t)=>e+t.basisPoints),0);return e.map((e=>Object.assign(Object.assign({},e),{startAmount:(0,tM.isCurrencyItem)(e)?$P.BigNumber.from(e.startAmount).sub(rM(e.startAmount,n)).toString():e.startAmount,endAmount:(0,tM.isCurrencyItem)(e)?$P.BigNumber.from(e.endAmount).sub(rM(e.endAmount,n)).toString():e.endAmount})))};VP.mapInputItemToOfferItem=e=>{var t,n,r,i,a,o,s,u;if("itemType"in e){if("identifiers"in e||"criteria"in e){const i="criteria"in e?e.criteria:new nM.MerkleTree(e.identifiers).getRoot();return{itemType:e.itemType===eM.ItemType.ERC721?eM.ItemType.ERC721_WITH_CRITERIA:eM.ItemType.ERC1155_WITH_CRITERIA,token:e.token,identifierOrCriteria:i,startAmount:null!==(t=e.amount)&&void 0!==t?t:"1",endAmount:null!==(r=null!==(n=e.endAmount)&&void 0!==n?n:e.amount)&&void 0!==r?r:"1"}}return"amount"in e||"endAmount"in e?{itemType:e.itemType,token:e.token,identifierOrCriteria:null!==(i=e.identifier)&&void 0!==i?i:"0",startAmount:e.amount,endAmount:null!==(o=null!==(a=e.endAmount)&&void 0!==a?a:e.amount)&&void 0!==o?o:"1"}:{itemType:e.itemType,token:e.token,identifierOrCriteria:e.identifier,startAmount:"1",endAmount:"1"}}return{itemType:e.token&&e.token!==$P.ethers.constants.AddressZero?eM.ItemType.ERC20:eM.ItemType.NATIVE,token:null!==(s=e.token)&&void 0!==s?s:$P.ethers.constants.AddressZero,identifierOrCriteria:"0",startAmount:e.amount,endAmount:null!==(u=e.endAmount)&&void 0!==u?u:e.amount}};VP.areAllCurrenciesSame=({offer:e,consideration:t})=>{const n=[...e,...t].filter(tM.isCurrencyItem);return n.every((({itemType:e,token:t})=>e===n[0].itemType&&t.toLowerCase()===n[0].token.toLowerCase()))};VP.totalItemsAmount=e=>($P.BigNumber.from(0),$P.BigNumber.from(0),e.map((({startAmount:e,endAmount:t})=>({startAmount:e,endAmount:t}))).reduce((({startAmount:e,endAmount:t},{startAmount:n,endAmount:r})=>({startAmount:e.add(n),endAmount:t.add(r)})),{startAmount:$P.BigNumber.from(0),endAmount:$P.BigNumber.from(0)}));VP.mapOrderAmountsFromFilledStatus=(e,{totalFilled:t,totalSize:n})=>{if(t.eq(0)||n.eq(0))return e;const r=n.sub(t).mul(eM.ONE_HUNDRED_PERCENT_BP).div(n);return{parameters:Object.assign(Object.assign({},e.parameters),{offer:e.parameters.offer.map((e=>Object.assign(Object.assign({},e),{startAmount:rM(e.startAmount,r).toString(),endAmount:rM(e.endAmount,r).toString()}))),consideration:e.parameters.consideration.map((e=>Object.assign(Object.assign({},e),{startAmount:rM(e.startAmount,r).toString(),endAmount:rM(e.endAmount,r).toString()})))}),signature:e.signature}};const iM=(e,t,n)=>$P.BigNumber.from(e).mul($P.BigNumber.from(t)).div(n);VP.mapOrderAmountsFromUnitsToFill=(e,{unitsToFill:t,totalSize:n})=>{const r=$P.BigNumber.from(t);if(r.lte(0))throw new Error("Units to fill must be greater than 1");const i=(0,tM.getMaximumSizeForOrder)(e);return n.eq(0)&&(n=i),{parameters:Object.assign(Object.assign({},e.parameters),{offer:e.parameters.offer.map((e=>Object.assign(Object.assign({},e),{startAmount:iM(e.startAmount,r,n).toString(),endAmount:iM(e.endAmount,r,n).toString()}))),consideration:e.parameters.consideration.map((e=>Object.assign(Object.assign({},e),{startAmount:iM(e.startAmount,r,n).toString(),endAmount:iM(e.endAmount,r,n).toString()})))}),signature:e.signature}};VP.generateRandomSalt=e=>e?`0x${Buffer.from((0,ZP.concat)([(0,ZP.keccak256)((0,ZP.toUtf8Bytes)(e)).slice(0,10),Uint8Array.from(Array(20).fill(0)),(0,ZP.randomBytes)(8)])).toString("hex")}`:`0x${Buffer.from((0,ZP.randomBytes)(8)).toString("hex").padStart(64,"0")}`;VP.shouldUseMatchForFulfill=()=>!0,function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.getAdvancedOrderNumeratorDenominator=e.generateFulfillOrdersFulfillments=e.fulfillAvailableOrders=e.validateAndSanitizeFromOrderStatus=e.fulfillStandardOrder=e.fulfillBasicOrder=e.shouldUseBasicFulfill=void 0;const t=cS,n=xS,r=PS,i=QS,a=US(),o=jS,s=GS(),u=VP,c=HS;e.shouldUseBasicFulfill=({offer:e,consideration:r,offerer:i},a)=>{if(!a.eq(0))return!1;if(e.length>1||0===r.length)return!1;const o=[...e,...r],c=o.filter((({itemType:e})=>[n.ItemType.ERC721,n.ItemType.ERC1155].includes(e))),l=o.filter((({itemType:e})=>(0,s.isCriteriaItem)(e)));if((0,s.isNativeCurrencyItem)(e[0]))return!1;if(1!==c.length||0!==l.length)return!1;if(!(0,u.areAllCurrenciesSame)({offer:e,consideration:r}))return!1;if(o.some((({startAmount:e,endAmount:t})=>e!==t)))return!1;const[d,...f]=r;if(d.recipient.toLowerCase()!==i.toLowerCase())return!1;if(r.length>1&&f.every((t=>t.itemType===e[0].itemType))&&(0,u.totalItemsAmount)(f).endAmount.gt(e[0].endAmount))return!1;const p=o.filter(s.isCurrencyItem),h=p.filter((({itemType:e})=>e===n.ItemType.NATIVE)).every((({token:e})=>e===t.ethers.constants.AddressZero)),m=p.every((({identifierOrCriteria:e})=>t.BigNumber.from(e).eq(0))),y=c.filter((({itemType:e})=>e===n.ItemType.ERC721)).every((({endAmount:e})=>"1"===e));return h&&m&&y};const l={[n.ItemType.ERC20]:{[n.ItemType.ERC721]:n.BasicOrderRouteType.ERC721_TO_ERC20,[n.ItemType.ERC1155]:n.BasicOrderRouteType.ERC1155_TO_ERC20},[n.ItemType.ERC721]:{[n.ItemType.NATIVE]:n.BasicOrderRouteType.ETH_TO_ERC721,[n.ItemType.ERC20]:n.BasicOrderRouteType.ERC20_TO_ERC721},[n.ItemType.ERC1155]:{[n.ItemType.NATIVE]:n.BasicOrderRouteType.ETH_TO_ERC1155,[n.ItemType.ERC20]:n.BasicOrderRouteType.ERC20_TO_ERC1155}};function d(e,t){const{isValidated:n,isCancelled:r,totalFilled:i,totalSize:a}=t;if(a.gt(0)&&i.div(a).eq(1))throw new Error("The order you are trying to fulfill is already filled");if(r)throw new Error("The order you are trying to fulfill is cancelled");return n?{parameters:Object.assign({},e.parameters),signature:"0x"}:e}function f(e){const t=({sourceOrDestination:e,operator:t="",token:n,identifier:r})=>`${e}-${t}-${n}-${r}`,n={},r={};return e.forEach((({order:e,offererOperator:r,offerCriteria:i},o)=>{const u=(0,a.getItemToCriteriaMap)(e.parameters.offer,i);return e.parameters.offer.forEach(((i,a)=>{var c,l,d;const f=`${t({sourceOrDestination:e.parameters.offerer,operator:r,token:i.token,identifier:null!==(l=null===(c=u.get(i))||void 0===c?void 0:c.identifier)&&void 0!==l?l:i.identifierOrCriteria})}${(0,s.isErc721Item)(i.itemType)?a:""}`;n[f]=[...null!==(d=n[f])&&void 0!==d?d:[],{orderIndex:o,itemIndex:a}]}))})),e.forEach((({order:e,considerationCriteria:n,tips:i},o)=>{const u=(0,a.getItemToCriteriaMap)(e.parameters.consideration,n);return[...e.parameters.consideration,...i].forEach(((e,n)=>{var i,a,c;const l=`${t({sourceOrDestination:e.recipient,token:e.token,identifier:null!==(a=null===(i=u.get(e))||void 0===i?void 0:i.identifier)&&void 0!==a?a:e.identifierOrCriteria})}${(0,s.isErc721Item)(e.itemType)?n:""}`;r[l]=[...null!==(c=r[l])&&void 0!==c?c:[],{orderIndex:o,itemIndex:n}]}))})),{offerFulfillments:Object.values(n),considerationFulfillments:Object.values(r)}}e.fulfillBasicOrder=function({order:e,seaportContract:a,offererBalancesAndApprovals:o,fulfillerBalancesAndApprovals:u,timeBasedItemParams:d,offererOperator:f,fulfillerOperator:p,signer:h,tips:m=[],conduitKey:y=n.NO_CONDUIT,domain:g},b){var v,T;const{offer:w,consideration:E}=e.parameters,A=[...E,...m],_=w[0],[I,...R]=A,C=null===(v=l[_.itemType])||void 0===v?void 0:v[I.itemType];if(void 0===C)throw new Error("Order parameters did not result in a valid basic fulfillment");const O=R.map((({startAmount:e,recipient:t})=>({amount:e,recipient:t}))),k=A.filter((e=>e.itemType!==w[0].itemType)),S=null===(T=(0,s.getSummedTokenAndIdentifierAmounts)({items:k,criterias:[],timeBasedItemParams:Object.assign(Object.assign({},d),{isConsiderationItem:!0})})[t.ethers.constants.AddressZero])||void 0===T?void 0:T[0],N=(0,i.validateBasicFulfillBalancesAndApprovals)({offer:w,consideration:A,offererBalancesAndApprovals:o,fulfillerBalancesAndApprovals:u,timeBasedItemParams:d,offererOperator:f,fulfillerOperator:p}),x={offerer:e.parameters.offerer,offererConduitKey:e.parameters.conduitKey,zone:e.parameters.zone,basicOrderType:e.parameters.orderType+4*C,offerToken:_.token,offerIdentifier:_.identifierOrCriteria,offerAmount:_.endAmount,considerationToken:I.token,considerationIdentifier:I.identifierOrCriteria,considerationAmount:I.endAmount,startTime:e.parameters.startTime,endTime:e.parameters.endTime,salt:e.parameters.salt,totalOriginalAdditionalRecipients:e.parameters.consideration.length-1,signature:e.signature,fulfillerConduitKey:y,additionalRecipients:O,zoneHash:e.parameters.zoneHash},P={value:S},M=[...(0,r.getApprovalActions)(N,b,h),{type:"exchange",transactionMethods:(0,c.getTransactionMethods)(a.connect(h),"fulfillBasicOrder",[x,P],g)}];return{actions:M,executeAllActions:()=>(0,c.executeAllActions)(M)}},e.fulfillStandardOrder=function({order:n,unitsToFill:o=0,totalSize:l,totalFilled:d,offerCriteria:f,considerationCriteria:p,tips:h=[],extraData:m,seaportContract:y,offererBalancesAndApprovals:g,fulfillerBalancesAndApprovals:b,offererOperator:v,fulfillerOperator:T,timeBasedItemParams:w,conduitKey:E,recipientAddress:A,signer:_,domain:I},R){var C;const O=o?(0,u.mapOrderAmountsFromUnitsToFill)(n,{unitsToFill:o,totalSize:l}):(0,u.mapOrderAmountsFromFilledStatus)(n,{totalFilled:d,totalSize:l}),{parameters:{offer:k,consideration:S}}=O,N=[...S,...h],x=k.filter((({itemType:e})=>(0,s.isCriteriaItem)(e))),P=N.filter((({itemType:e})=>(0,s.isCriteriaItem)(e))),M=x.length>0||P.length>0;if(x.length!==f.length||P.length!==p.length)throw new Error("You must supply the appropriate criterias for criteria based items");const B=null===(C=(0,s.getSummedTokenAndIdentifierAmounts)({items:N,criterias:p,timeBasedItemParams:Object.assign(Object.assign({},w),{isConsiderationItem:!0})})[t.ethers.constants.AddressZero])||void 0===C?void 0:C[0],D=(0,i.validateStandardFulfillBalancesAndApprovals)({offer:k,consideration:N,offerCriteria:f,considerationCriteria:p,offererBalancesAndApprovals:g,fulfillerBalancesAndApprovals:b,timeBasedItemParams:w,offererOperator:v,fulfillerOperator:T}),F={value:B},L=(0,r.getApprovalActions)(D,R,_),U=A!==t.ethers.constants.AddressZero,q=Boolean(o)||M||U,j=Object.assign(Object.assign({},n),{parameters:Object.assign(Object.assign({},n.parameters),{consideration:[...n.parameters.consideration,...h],totalOriginalConsiderationItems:S.length})}),{numerator:G,denominator:H}=(0,e.getAdvancedOrderNumeratorDenominator)(n,o),z=[...L,{type:"exchange",transactionMethods:q?(0,c.getTransactionMethods)(y.connect(_),"fulfillAdvancedOrder",[Object.assign(Object.assign({},j),{numerator:G,denominator:H,extraData:null!=m?m:"0x"}),M?(0,a.generateCriteriaResolvers)({orders:[n],offerCriterias:[f],considerationCriterias:[p]}):[],E,A,F],I):(0,c.getTransactionMethods)(y.connect(_),"fulfillOrder",[j,E,F],I)}];return{actions:z,executeAllActions:()=>(0,c.executeAllActions)(z)}},e.validateAndSanitizeFromOrderStatus=d,e.fulfillAvailableOrders=function({ordersMetadata:n,seaportContract:o,fulfillerBalancesAndApprovals:l,fulfillerOperator:p,currentBlockTimestamp:h,ascendingAmountTimestampBuffer:m,conduitKey:y,signer:g,recipientAddress:b,exactApproval:v,domain:T}){const w=n.map((e=>Object.assign(Object.assign({},e),{order:d(e.order,e.orderStatus)}))),E=w.map((e=>Object.assign(Object.assign({},e),{order:e.unitsToFill?(0,u.mapOrderAmountsFromUnitsToFill)(e.order,{unitsToFill:e.unitsToFill,totalSize:e.orderStatus.totalSize}):(0,u.mapOrderAmountsFromFilledStatus)(e.order,{totalFilled:e.orderStatus.totalFilled,totalSize:e.orderStatus.totalSize})})));let A=t.BigNumber.from(0);const _=[],I=w.flatMap((e=>[e.order.parameters.offer,e.order.parameters.consideration])).flat().filter((({itemType:e})=>(0,s.isCriteriaItem)(e))).length>0;E.forEach((({order:e,tips:n,offerCriteria:r,considerationCriteria:a,offererBalancesAndApprovals:o,offererOperator:u})=>{var c,d;const f=[...e.parameters.consideration,...n],y={startTime:e.parameters.startTime,endTime:e.parameters.endTime,currentBlockTimestamp:h,ascendingAmountTimestampBuffer:m,isConsiderationItem:!0};A=A.add(null!==(d=null===(c=(0,s.getSummedTokenAndIdentifierAmounts)({items:f,criterias:a,timeBasedItemParams:y})[t.ethers.constants.AddressZero])||void 0===c?void 0:c[0])&&void 0!==d?d:t.BigNumber.from(0));const g=(0,i.validateStandardFulfillBalancesAndApprovals)({offer:e.parameters.offer,consideration:f,offerCriteria:r,considerationCriteria:a,offererBalancesAndApprovals:o,fulfillerBalancesAndApprovals:l,timeBasedItemParams:y,offererOperator:u,fulfillerOperator:p}),b=e.parameters.offer.filter((({itemType:e})=>(0,s.isCriteriaItem)(e))),v=f.filter((({itemType:e})=>(0,s.isCriteriaItem)(e)));if(b.length!==r.length||v.length!==a.length)throw new Error("You must supply the appropriate criterias for criteria based items");g.forEach((e=>{_.find((t=>t.token===e.token))||_.push(e)}))}));const R={value:A},C=(0,r.getApprovalActions)(_,v,g),O=w.map((({order:t,unitsToFill:n=0,tips:r,extraData:i})=>{const{numerator:a,denominator:o}=(0,e.getAdvancedOrderNumeratorDenominator)(t,n),s=[...t.parameters.consideration,...r];return Object.assign(Object.assign({},t),{parameters:Object.assign(Object.assign({},t.parameters),{consideration:s,totalOriginalConsiderationItems:t.parameters.consideration.length}),numerator:a,denominator:o,extraData:i})})),{offerFulfillments:k,considerationFulfillments:S}=f(n),N={type:"exchange",transactionMethods:(0,c.getTransactionMethods)(o.connect(g),"fulfillAvailableAdvancedOrders",[O,I?(0,a.generateCriteriaResolvers)({orders:n.map((({order:e})=>e)),offerCriterias:n.map((({offerCriteria:e})=>e)),considerationCriterias:n.map((({considerationCriteria:e})=>e))}):[],k,S,y,b,O.length,R],T)},x=[...C,N];return{actions:x,executeAllActions:()=>(0,c.executeAllActions)(x)}},e.generateFulfillOrdersFulfillments=f;e.getAdvancedOrderNumeratorDenominator=(e,n)=>{const r=(0,s.getMaximumSizeForOrder)(e),i=t.BigNumber.from(n),a=(0,o.gcd)(i,r);return{numerator:n?i.div(a):t.BigNumber.from(1),denominator:n?r.div(a):t.BigNumber.from(1)}}}(WP);var aM=Ft&&Ft.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};Object.defineProperty(Lk,"__esModule",{value:!0}),Lk.Seaport=void 0;const oM=uS,sM=cS,uM=lS,cM=SS,lM=NS,dM=xS,fM=PS,pM=QS,hM=sN,mM=WP,yM=GS(),gM=VP,bM=HS;Lk.Seaport=class{constructor(e,{overrides:t,ascendingAmountFulfillmentBuffer:n=300,balanceAndApprovalChecksOnOrderCreation:r=!0,conduitKeyToConduit:i,seaportVersion:a="1.5"}={}){var o,s,u;this.OPENSEA_CONDUIT_KEY=dM.OPENSEA_CONDUIT_KEY,this.getOrderHash=e=>{const t="OfferItem(uint8 itemType,address token,uint256 identifierOrCriteria,uint256 startAmount,uint256 endAmount)",n="ConsiderationItem(uint8 itemType,address token,uint256 identifierOrCriteria,uint256 startAmount,uint256 endAmount,address recipient)",r=`OrderComponents(address offerer,address zone,OfferItem[] offer,ConsiderationItem[] consideration,uint8 orderType,uint256 startTime,uint256 endTime,bytes32 zoneHash,uint256 salt,bytes32 conduitKey,uint256 counter)${n}${t}`,i=sM.ethers.utils.keccak256(sM.ethers.utils.toUtf8Bytes(t)),a=sM.ethers.utils.keccak256(sM.ethers.utils.toUtf8Bytes(n)),o=sM.ethers.utils.keccak256(sM.ethers.utils.toUtf8Bytes(r)),s=sM.ethers.utils.keccak256("0x"+e.offer.map((e=>sM.ethers.utils.keccak256("0x"+[i.slice(2),e.itemType.toString().padStart(64,"0"),e.token.slice(2).padStart(64,"0"),sM.ethers.BigNumber.from(e.identifierOrCriteria).toHexString().slice(2).padStart(64,"0"),sM.ethers.BigNumber.from(e.startAmount).toHexString().slice(2).padStart(64,"0"),sM.ethers.BigNumber.from(e.endAmount).toHexString().slice(2).padStart(64,"0")].join("")).slice(2))).join("")),u=sM.ethers.utils.keccak256("0x"+e.consideration.map((e=>sM.ethers.utils.keccak256("0x"+[a.slice(2),e.itemType.toString().padStart(64,"0"),e.token.slice(2).padStart(64,"0"),sM.ethers.BigNumber.from(e.identifierOrCriteria).toHexString().slice(2).padStart(64,"0"),sM.ethers.BigNumber.from(e.startAmount).toHexString().slice(2).padStart(64,"0"),sM.ethers.BigNumber.from(e.endAmount).toHexString().slice(2).padStart(64,"0"),e.recipient.slice(2).padStart(64,"0")].join("")).slice(2))).join(""));return sM.ethers.utils.keccak256("0x"+[o.slice(2),e.offerer.slice(2).padStart(64,"0"),e.zone.slice(2).padStart(64,"0"),s.slice(2),u.slice(2),e.orderType.toString().padStart(64,"0"),sM.ethers.BigNumber.from(e.startTime).toHexString().slice(2).padStart(64,"0"),sM.ethers.BigNumber.from(e.endTime).toHexString().slice(2).padStart(64,"0"),e.zoneHash.slice(2),sM.BigNumber.from(e.salt).toHexString().slice(2).padStart(64,"0"),e.conduitKey.slice(2).padStart(64,"0"),sM.ethers.BigNumber.from(e.counter).toHexString().slice(2).padStart(64,"0")].join(""))};const c=e instanceof sM.providers.Provider?e:e.provider;if(this.signer=e._isSigner?e:void 0,!c)throw new Error("Either a provider or custom signer with provider must be provided");this.provider=c,this.multicallProvider=new oM.providers.MulticallProvider(this.provider),this.contract=new sM.Contract(null!==(o=null==t?void 0:t.contractAddress)&&void 0!==o?o:"1.5"===a?dM.CROSS_CHAIN_SEAPORT_V1_5_ADDRESS:dM.CROSS_CHAIN_SEAPORT_V1_4_ADDRESS,lM.SeaportABIv14,this.multicallProvider),this.domainRegistry=new sM.Contract(null!==(s=null==t?void 0:t.domainRegistryAddress)&&void 0!==s?s:dM.DOMAIN_REGISTRY_ADDRESS,cM.DomainRegistryABI,this.multicallProvider),this.config={ascendingAmountFulfillmentBuffer:n,balanceAndApprovalChecksOnOrderCreation:r,conduitKeyToConduit:Object.assign(Object.assign(Object.assign({},dM.KNOWN_CONDUIT_KEYS_TO_CONDUIT),{[dM.NO_CONDUIT]:this.contract.address}),i),seaportVersion:a},this.defaultConduitKey=null!==(u=null==t?void 0:t.defaultConduitKey)&&void 0!==u?u:dM.NO_CONDUIT}createOrder(e,t,n){return aM(this,void 0,void 0,(function*(){const r=this._getSigner(t),i=null!=t?t:yield r.getAddress(),{orderComponents:a,approvalActions:o}=yield this._formatOrder(r,i,Boolean(n),e),s={type:"create",getMessageToSign:()=>this._getMessageToSign(a),createOrder:()=>aM(this,void 0,void 0,(function*(){const e=yield this.signOrder(a,i);return{parameters:a,signature:e}}))},u=[...o,s];return{actions:u,executeAllActions:()=>(0,bM.executeAllActions)(u)}}))}createBulkOrders(e,t,n){var r;return aM(this,void 0,void 0,(function*(){const i=this._getSigner(t),a=yield i.getAddress(),o=yield this.getCounter(a),s=[],u=[];for(const t of e){null!==(r=t.counter)&&void 0!==r||(t.counter=o);const{orderComponents:e,approvalActions:c}=yield this._formatOrder(i,a,Boolean(n),t);u.push(e);for(const e of c)void 0===s.find((t=>t.token===e.token))&&s.push(e)}const c={type:"createBulk",getMessageToSign:()=>this._getBulkMessageToSign(u),createBulkOrders:()=>aM(this,void 0,void 0,(function*(){return yield this.signBulkOrder(u,a)}))},l=[...s,c];return{actions:l,executeAllActions:()=>(0,bM.executeAllActions)(l)}}))}_formatOrder(e,t,n,{conduitKey:r=this.defaultConduitKey,zone:i=sM.ethers.constants.AddressZero,zoneHash:a=sM.ethers.constants.HashZero,startTime:o=Math.floor(Date.now()/1e3).toString(),endTime:s=dM.MAX_INT.toString(),offer:u,consideration:c,counter:l,allowPartialFills:d,restrictedByZone:f,fees:p,domain:h,salt:m}){var y;return aM(this,void 0,void 0,(function*(){const g=u.map(gM.mapInputItemToOfferItem),b=[...c.map((e=>{var n;return Object.assign(Object.assign({},(0,gM.mapInputItemToOfferItem)(e)),{recipient:null!==(n=e.recipient)&&void 0!==n?n:t})}))];if((null==p?void 0:p.length)&&!(0,gM.areAllCurrenciesSame)({offer:g,consideration:b}))throw new Error("All currency tokens in the order must be the same token when applying fees");const v=[...g,...b].filter(yM.isCurrencyItem),T=(0,gM.totalItemsAmount)(v),w=this.config.conduitKeyToConduit[r],E=this._getOrderTypeFromOrderOptions({allowPartialFills:d,restrictedByZone:f}),A=[...(0,gM.deductFees)(b,p),...v.length&&null!==(y=null==p?void 0:p.map((e=>(0,gM.feeToConsiderationItem)({fee:e,token:v[0].token,baseAmount:T.startAmount,baseEndAmount:T.endAmount}))))&&void 0!==y?y:[]],_=void 0!==m?`0x${sM.BigNumber.from(m).toHexString().slice(2).padStart(64,"0")}`:(0,gM.generateRandomSalt)(h),I={offerer:t,zone:i,zoneHash:a,startTime:o,endTime:s,orderType:E,offer:g,consideration:A,totalOriginalConsiderationItems:A.length,salt:_,conduitKey:r,counter:(null!=l?l:yield this.getCounter(t)).toString()},R=[];if(this.config.balanceAndApprovalChecksOnOrderCreation){const r=yield(0,pM.getBalancesAndApprovals)({owner:t,items:g,criterias:[],multicallProvider:this.multicallProvider,operator:w}),i=(0,pM.validateOfferBalancesAndApprovals)({offer:g,criterias:[],balancesAndApprovals:r,throwOnInsufficientBalances:!0,operator:w}),a=(0,fM.getApprovalActions)(i,n,e);R.push(...a)}return{orderComponents:I,approvalActions:R}}))}_getSigner(e){if(this.signer)return this.signer;if(!(this.provider instanceof sM.providers.JsonRpcProvider))throw new Error("Either signer or a JsonRpcProvider must be provided");return this.provider.getSigner(e)}_getOrderTypeFromOrderOptions({allowPartialFills:e,restrictedByZone:t}){return e?t?dM.OrderType.PARTIAL_RESTRICTED:dM.OrderType.PARTIAL_OPEN:t?dM.OrderType.FULL_RESTRICTED:dM.OrderType.FULL_OPEN}_getDomainData(){return aM(this,void 0,void 0,(function*(){const{chainId:e}=yield this.provider.getNetwork();return{name:dM.SEAPORT_CONTRACT_NAME,version:"1.5"===this.config.seaportVersion?dM.SEAPORT_CONTRACT_VERSION_V1_5:dM.SEAPORT_CONTRACT_VERSION_V1_4,chainId:e,verifyingContract:this.contract.address}}))}_getMessageToSign(e){return aM(this,void 0,void 0,(function*(){const t=yield this._getDomainData();return JSON.stringify(uM._TypedDataEncoder.getPayload(t,dM.EIP_712_ORDER_TYPE,e))}))}_getBulkMessageToSign(e){return aM(this,void 0,void 0,(function*(){const t=yield this._getDomainData(),n=(0,hM.getBulkOrderTree)(e),r=n.types,i=n.getDataToSign();return JSON.stringify(uM._TypedDataEncoder.getPayload(t,r,{tree:i}))}))}signOrder(e,t){return aM(this,void 0,void 0,(function*(){const n=this._getSigner(t),r=yield this._getDomainData();let i=yield n._signTypedData(r,dM.EIP_712_ORDER_TYPE,e);return 132===i.length&&(i=sM.ethers.utils.splitSignature(i).compact),i}))}signBulkOrder(e,t){return aM(this,void 0,void 0,(function*(){const n=this._getSigner(t),r=yield this._getDomainData(),i=(0,hM.getBulkOrderTree)(e),a=i.types,o={tree:i.getDataToSign()};let s=yield n._signTypedData(r,a,o);132===s.length&&(s=sM.ethers.utils.splitSignature(s).compact);return e.map(((e,t)=>({parameters:e,signature:i.getEncodedProofAndSignature(t,s)})))}))}cancelOrders(e,t,n){const r=this._getSigner(t);return(0,bM.getTransactionMethods)(this.contract.connect(r),"cancel",[e],n)}bulkCancelOrders(e,t){const n=this._getSigner(e);return(0,bM.getTransactionMethods)(this.contract.connect(n),"incrementCounter",[],t)}validate(e,t,n){const r=this._getSigner(t);return(0,bM.getTransactionMethods)(this.contract.connect(r),"validate",[e],n)}getOrderStatus(e){return this.contract.getOrderStatus(e)}getCounter(e){return this.contract.getCounter(e)}fulfillOrder({order:e,unitsToFill:t,offerCriteria:n=[],considerationCriteria:r=[],tips:i=[],extraData:a="0x",accountAddress:o,conduitKey:s=this.defaultConduitKey,recipientAddress:u=sM.ethers.constants.AddressZero,domain:c,exactApproval:l=!1}){return aM(this,void 0,void 0,(function*(){if(!e.signature)throw new Error("Order is missing signature");const{parameters:d}=e,{offerer:f,offer:p,consideration:h}=d,m=this._getSigner(o),y=yield m.getAddress(),g=this.config.conduitKeyToConduit[d.conduitKey],b=this.config.conduitKeyToConduit[s],[v,T,w,E]=yield Promise.all([(0,pM.getBalancesAndApprovals)({owner:f,items:p,criterias:n,multicallProvider:this.multicallProvider,operator:g}),(0,pM.getBalancesAndApprovals)({owner:y,items:[...p,...h],criterias:[...n,...r],multicallProvider:this.multicallProvider,operator:b}),this.multicallProvider.getBlock("latest"),this.getOrderStatus(this.getOrderHash(d))]),A=w.timestamp,{totalFilled:_,totalSize:I}=E,R=(0,mM.validateAndSanitizeFromOrderStatus)(e,E),C={startTime:R.parameters.startTime,endTime:R.parameters.endTime,currentBlockTimestamp:A,ascendingAmountTimestampBuffer:this.config.ascendingAmountFulfillmentBuffer},O=i.map((e=>Object.assign(Object.assign({},(0,gM.mapInputItemToOfferItem)(e)),{recipient:e.recipient}))),k=u===sM.ethers.constants.AddressZero;return!t&&k&&(0,mM.shouldUseBasicFulfill)(R.parameters,_)?(0,mM.fulfillBasicOrder)({order:R,seaportContract:this.contract,offererBalancesAndApprovals:v,fulfillerBalancesAndApprovals:T,timeBasedItemParams:C,conduitKey:s,offererOperator:g,fulfillerOperator:b,signer:m,tips:O,domain:c},l):(0,mM.fulfillStandardOrder)({order:R,unitsToFill:t,totalFilled:_,totalSize:I.eq(0)?(0,yM.getMaximumSizeForOrder)(R):I,offerCriteria:n,considerationCriteria:r,tips:O,extraData:a,seaportContract:this.contract,offererBalancesAndApprovals:v,fulfillerBalancesAndApprovals:T,timeBasedItemParams:C,conduitKey:s,signer:m,offererOperator:g,fulfillerOperator:b,recipientAddress:u,domain:c},l)}))}fulfillOrders({fulfillOrderDetails:e,accountAddress:t,conduitKey:n=this.defaultConduitKey,recipientAddress:r=sM.ethers.constants.AddressZero,domain:i,exactApproval:a=!1}){return aM(this,void 0,void 0,(function*(){if(e.some((e=>!e.order.signature)))throw new Error("All orders must include signatures");const o=this._getSigner(t),s=yield o.getAddress(),u=e.map((({order:e})=>this.config.conduitKeyToConduit[e.parameters.conduitKey])),c=this.config.conduitKeyToConduit[n],l=e.flatMap((({order:e})=>e.parameters.offer)),d=e.flatMap((({order:e})=>e.parameters.consideration)),f=e.flatMap((({offerCriteria:e=[]})=>e)),p=e.flatMap((({considerationCriteria:e=[]})=>e)),[h,m,y,g]=yield Promise.all([Promise.all(e.map((({order:e,offerCriteria:t=[]},n)=>(0,pM.getBalancesAndApprovals)({owner:e.parameters.offerer,items:e.parameters.offer,criterias:t,operator:u[n],multicallProvider:this.multicallProvider})))),(0,pM.getBalancesAndApprovals)({owner:s,items:[...l,...d],criterias:[...f,...p],operator:c,multicallProvider:this.multicallProvider}),this.multicallProvider.getBlock("latest"),Promise.all(e.map((({order:e})=>this.getOrderStatus(this.getOrderHash(e.parameters)))))]),b=e.map(((e,t)=>{var n,r,i,a,o;return{order:e.order,unitsToFill:e.unitsToFill,orderStatus:g[t],offerCriteria:null!==(n=e.offerCriteria)&&void 0!==n?n:[],considerationCriteria:null!==(r=e.considerationCriteria)&&void 0!==r?r:[],tips:null!==(a=null===(i=e.tips)||void 0===i?void 0:i.map((e=>Object.assign(Object.assign({},(0,gM.mapInputItemToOfferItem)(e)),{recipient:e.recipient}))))&&void 0!==a?a:[],extraData:null!==(o=e.extraData)&&void 0!==o?o:"0x",offererBalancesAndApprovals:h[t],offererOperator:u[t]}}));return(0,mM.fulfillAvailableOrders)({ordersMetadata:b,seaportContract:this.contract,fulfillerBalancesAndApprovals:m,currentBlockTimestamp:y.timestamp,ascendingAmountTimestampBuffer:this.config.ascendingAmountFulfillmentBuffer,fulfillerOperator:c,signer:o,conduitKey:n,recipientAddress:r,domain:i,exactApproval:a})}))}matchOrders({orders:e,fulfillments:t,overrides:n,accountAddress:r,domain:i}){const a=this._getSigner(r);return(0,bM.getTransactionMethods)(this.contract.connect(a),"matchOrders",[e,t,n],i)}setDomain(e,t){const n=this._getSigner(t);return(0,bM.getTransactionMethods)(this.domainRegistry.connect(n),"setDomain",[e])}getNumberOfDomains(e){return aM(this,void 0,void 0,(function*(){return this.domainRegistry.getNumberOfDomains(e)}))}getDomain(e,t){return this.domainRegistry.getDomain(e,t)}getDomains(e,t){return aM(this,void 0,void 0,(function*(){try{if(t)throw Error;return this.domainRegistry.getDomains(e)}catch(t){const n=(yield this.domainRegistry.getNumberOfDomains(e)).toNumber();return Promise.all([...Array(n).keys()].map((t=>this.domainRegistry.getDomain(e,t))))}}))}},function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.Seaport=void 0;const t=Lk;Object.defineProperty(e,"Seaport",{enumerable:!0,get:function(){return t.Seaport}})}(Fk);class vM{config;constructor(e){this.config=e}}class TM extends Error{url;status;statusText;body;request;constructor(e,t,n){super(n),this.name="ApiError",this.url=t.url,this.status=t.status,this.statusText=t.statusText,this.body=t.body,this.request=e}}class wM extends Error{constructor(e){super(e),this.name="CancelError"}get isCancelled(){return!0}}class EM{[Symbol.toStringTag];_isResolved;_isRejected;_isCancelled;_cancelHandlers;_promise;_resolve;_reject;constructor(e){this._isResolved=!1,this._isRejected=!1,this._isCancelled=!1,this._cancelHandlers=[],this._promise=new Promise(((t,n)=>{this._resolve=t,this._reject=n;const r=e=>{this._isResolved||this._isRejected||this._isCancelled||this._cancelHandlers.push(e)};return Object.defineProperty(r,"isResolved",{get:()=>this._isResolved}),Object.defineProperty(r,"isRejected",{get:()=>this._isRejected}),Object.defineProperty(r,"isCancelled",{get:()=>this._isCancelled}),e((e=>{this._isResolved||this._isRejected||this._isCancelled||(this._isResolved=!0,this._resolve?.(e))}),(e=>{this._isResolved||this._isRejected||this._isCancelled||(this._isRejected=!0,this._reject?.(e))}),r)}))}then(e,t){return this._promise.then(e,t)}catch(e){return this._promise.catch(e)}finally(e){return this._promise.finally(e)}cancel(){if(!(this._isResolved||this._isRejected||this._isCancelled)){if(this._isCancelled=!0,this._cancelHandlers.length)try{for(const e of this._cancelHandlers)e()}catch(e){return void console.warn("Cancellation threw an error",e)}this._cancelHandlers.length=0,this._reject?.(new wM("Request aborted"))}}get isCancelled(){return this._isCancelled}}const AM=e=>null!=e,_M=e=>"string"==typeof e,IM=e=>_M(e)&&""!==e,RM=e=>"object"==typeof e&&"string"==typeof e.type&&"function"==typeof e.stream&&"function"==typeof e.arrayBuffer&&"function"==typeof e.constructor&&"string"==typeof e.constructor.name&&/^(Blob|File)$/.test(e.constructor.name)&&/^(Blob|File)$/.test(e[Symbol.toStringTag]),CM=e=>{const t=[],n=(e,r)=>{AM(r)&&(Array.isArray(r)?r.forEach((t=>{n(e,t)})):"object"==typeof r?Object.entries(r).forEach((([t,r])=>{n(`${e}[${t}]`,r)})):((e,n)=>{t.push(`${encodeURIComponent(e)}=${encodeURIComponent(String(n))}`)})(e,r))};return Object.entries(e).forEach((([e,t])=>{n(e,t)})),t.length>0?`?${t.join("&")}`:""},OM=async(e,t)=>"function"==typeof t?t(e):t,kM=async(e,t,n)=>{const r=await OM(t,e.TOKEN),i=await OM(t,e.USERNAME),a=await OM(t,e.PASSWORD),o=await OM(t,e.HEADERS),s="function"==typeof n?.getHeaders&&n?.getHeaders()||{},u=Object.entries({Accept:"application/json",...o,...t.headers,...s}).filter((([e,t])=>AM(t))).reduce(((e,[t,n])=>({...e,[t]:String(n)})),{});if(IM(r)&&(u.Authorization=`Bearer ${r}`),IM(i)&&IM(a)){const e=(e=>{try{return btoa(e)}catch(t){return Buffer.from(e).toString("base64")}})(`${i}:${a}`);u.Authorization=`Basic ${e}`}return t.body&&(t.mediaType?u["Content-Type"]=t.mediaType:RM(t.body)?u["Content-Type"]=t.body.type||"application/octet-stream":_M(t.body)?u["Content-Type"]="text/plain":t.body instanceof Dk||(u["Content-Type"]="application/json")),u},SM=(e,t)=>new EM((async(n,r,i)=>{try{const r=((e,t)=>{const n=e.ENCODE_PATH||encodeURI,r=t.url.replace("{api-version}",e.VERSION).replace(/{(.*?)}/g,((e,r)=>t.path?.hasOwnProperty(r)?n(String(t.path[r])):e)),i=`${e.BASE}${r}`;return t.query?`${i}${CM(t.query)}`:i})(e,t),o=(e=>{if(e.formData){const t=new Dk,n=(e,n)=>{_M(n)||RM(n)?t.append(e,n):t.append(e,JSON.stringify(n))};return Object.entries(e.formData).filter((([e,t])=>AM(t))).forEach((([e,t])=>{Array.isArray(t)?t.forEach((t=>n(e,t))):n(e,t)})),t}})(t),s=(e=>{if(e.body)return e.body})(t),u=await kM(e,t,o);if(!i.isCancelled){const c=await(async(e,t,n,r,i,a,o)=>{const s=$e.CancelToken.source(),u={url:n,headers:a,data:r??i,method:t.method,withCredentials:e.WITH_CREDENTIALS,cancelToken:s.token};o((()=>s.cancel("The user aborted a request.")));try{return await $e.request(u)}catch(e){const t=e;if(t.response)return t.response;throw e}})(e,t,r,s,o,u,i),l=(e=>{if(204!==e.status)return e.data})(c),d=((e,t)=>{if(t){const n=e.headers[t];if(_M(n))return n}})(c,t.responseHeader),f={url:r,ok:(a=c.status,a>=200&&a<300),status:c.status,statusText:c.statusText,body:d??l};((e,t)=>{const n={400:"Bad Request",401:"Unauthorized",403:"Forbidden",404:"Not Found",500:"Internal Server Error",502:"Bad Gateway",503:"Service Unavailable",...e.errors}[t.status];if(n)throw new TM(e,t,n);if(!t.ok)throw new TM(e,t,"Generic Error")})(t,f),n(f.body)}}catch(e){r(e)}var a}));class NM extends vM{constructor(e){super(e)}request(e){return SM(this.config,e)}}class xM{httpRequest;constructor(e){this.httpRequest=e}cancelOrders({chainName:e,requestBody:t}){return this.httpRequest.request({method:"POST",url:"/v1/chains/{chain_name}/orders/cancel",path:{chain_name:e},body:t,mediaType:"application/json",errors:{400:"Bad Request (400)",401:"Unauthorised Request (401)",404:"The specified resource was not found (404)",429:"Too Many Requests (429)",500:"Internal Server Error (500)",501:"Not Implemented Error (501)"}})}listListings({chainName:e,status:t,sellItemContractAddress:n,buyItemContractAddress:r,accountAddress:i,sellItemMetadataId:a,sellItemTokenId:o,fromUpdatedAt:s,pageSize:u,sortBy:c,sortDirection:l,pageCursor:d}){return this.httpRequest.request({method:"GET",url:"/v1/chains/{chain_name}/orders/listings",path:{chain_name:e},query:{status:t,sell_item_contract_address:n,buy_item_contract_address:r,account_address:i,sell_item_metadata_id:a,sell_item_token_id:o,from_updated_at:s,page_size:u,sort_by:c,sort_direction:l,page_cursor:d},errors:{400:"Bad Request (400)",404:"The specified resource was not found (404)",500:"Internal Server Error (500)"}})}createListing({chainName:e,requestBody:t}){return this.httpRequest.request({method:"POST",url:"/v1/chains/{chain_name}/orders/listings",path:{chain_name:e},body:t,mediaType:"application/json",errors:{400:"Bad Request (400)",404:"The specified resource was not found (404)",500:"Internal Server Error (500)"}})}getListing({chainName:e,listingId:t}){return this.httpRequest.request({method:"GET",url:"/v1/chains/{chain_name}/orders/listings/{listing_id}",path:{chain_name:e,listing_id:t},errors:{400:"Bad Request (400)",404:"The specified resource was not found (404)",500:"Internal Server Error (500)"}})}fulfillmentData({chainName:e,requestBody:t}){return this.httpRequest.request({method:"POST",url:"/v1/chains/{chain_name}/orders/fulfillment-data",path:{chain_name:e},body:t,mediaType:"application/json",errors:{400:"Bad Request (400)",404:"The specified resource was not found (404)",500:"Internal Server Error (500)"}})}listTrades({chainName:e,accountAddress:t,fromIndexedAt:n,pageSize:r,sortBy:i,sortDirection:a,pageCursor:o}){return this.httpRequest.request({method:"GET",url:"/v1/chains/{chain_name}/trades",path:{chain_name:e},query:{account_address:t,from_indexed_at:n,page_size:r,sort_by:i,sort_direction:a,page_cursor:o},errors:{400:"Bad Request (400)",404:"The specified resource was not found (404)",500:"Internal Server Error (500)"}})}getTrade({chainName:e,tradeId:t}){return this.httpRequest.request({method:"GET",url:"/v1/chains/{chain_name}/trades/{trade_id}",path:{chain_name:e,trade_id:t},errors:{400:"Bad Request (400)",404:"The specified resource was not found (404)",500:"Internal Server Error (500)"}})}}class PM{orders;request;constructor(e,t=NM){this.request=new t({BASE:e?.BASE??"https://api.sandbox.immutable.com",VERSION:e?.VERSION??"1.0.0",WITH_CREDENTIALS:e?.WITH_CREDENTIALS??!1,CREDENTIALS:e?.CREDENTIALS??"include",TOKEN:e?.TOKEN,USERNAME:e?.USERNAME,PASSWORD:e?.PASSWORD,HEADERS:e?.HEADERS,ENCODE_PATH:e?.ENCODE_PATH}),this.orders=new xM(this.request)}}var MM,BM,DM,FM,LM,UM,qM,jM,GM,HM;function zM(e){const t=e.buy.map((e=>{if("ERC20"===e.type)return{type:"ERC20",contractAddress:e.contract_address,amount:e.amount};if("NATIVE"===e.type)return{type:"NATIVE",amount:e.amount};throw new Error("Buy items must be either ERC20 or NATIVE")})),n=e.sell.map((e=>{if("ERC721"===e.type)return{type:"ERC721",contractAddress:e.contract_address,tokenId:e.token_id};throw new Error("Sell items must ERC721")}));return{id:e.id,type:e.type,accountAddress:e.account_address,buy:t,sell:n,fees:e.fees.map((e=>({amount:e.amount,recipientAddress:e.recipient_address,type:e.type}))),chain:e.chain,createdAt:e.created_at,endAt:e.end_at,orderHash:e.order_hash,protocolData:{orderType:e.protocol_data.order_type,counter:e.protocol_data.counter,seaportAddress:e.protocol_data.seaport_address,seaportVersion:e.protocol_data.seaport_version,zoneAddress:e.protocol_data.zone_address},salt:e.salt,signature:e.signature,startAt:e.start_at,status:e.status,updatedAt:e.updated_at}}function WM(e){const t=e.buy.map((e=>{if("ERC20"===e.type)return{type:"ERC20",contractAddress:e.contract_address,amount:e.amount};if("NATIVE"===e.type)return{type:"NATIVE",amount:e.amount};throw new Error("Buy items must be either ERC20 or NATIVE")})),n=e.sell.map((e=>{if("ERC721"===e.type)return{type:"ERC721",contractAddress:e.contract_address,tokenId:e.token_id};throw new Error("Sell items must ERC721")}));return{id:e.id,orderId:e.order_id,buy:t,sell:n,buyerFees:e.buyer_fees.map((e=>({amount:e.amount,recipientAddress:e.recipient_address,type:e.type}))),chain:e.chain,indexedAt:e.indexed_at,blockchainMetadata:{blockNumber:e.blockchain_metadata.block_number,logIndex:e.blockchain_metadata.log_index,transactionHash:e.blockchain_metadata.transaction_hash,transactionIndex:e.blockchain_metadata.transaction_index},buyerAddress:e.buyer_address,makerAddress:e.maker_address,sellerAddress:e.seller_address,takerAddress:e.taker_address}}function VM(e){return{nextCursor:e.next_cursor,previousCursor:e.previous_cursor}}!function(e){var t;(t=e.cancellation_type||(e.cancellation_type={})).ON_CHAIN="ON_CHAIN",t.OFF_CHAIN="OFF_CHAIN"}(MM||(MM={})),function(e){(e.reason_code||(e.reason_code={})).FILLED="FILLED"}(BM||(BM={})),function(e){var t;(t=e.type||(e.type={})).ROYALTY="ROYALTY",t.MAKER_ECOSYSTEM="MAKER_ECOSYSTEM",t.TAKER_ECOSYSTEM="TAKER_ECOSYSTEM",t.PROTOCOL="PROTOCOL"}(DM||(DM={})),function(e){(e.type||(e.type={})).LISTING="LISTING"}(FM||(FM={})),function(e){e.PENDING="PENDING",e.ACTIVE="ACTIVE",e.INACTIVE="INACTIVE",e.FILLED="FILLED",e.EXPIRED="EXPIRED",e.CANCELLED="CANCELLED"}(LM||(LM={})),function(e){(e.order_type||(e.order_type={})).FULL_RESTRICTED="FULL_RESTRICTED"}(UM||(UM={})),function(e){e.MAKER_ECOSYSTEM="MAKER_ECOSYSTEM",e.TAKER_ECOSYSTEM="TAKER_ECOSYSTEM",e.PROTOCOL="PROTOCOL",e.ROYALTY="ROYALTY"}(qM||(qM={})),function(e){e.APPROVAL="APPROVAL",e.FULFILL_ORDER="FULFILL_ORDER",e.CANCEL="CANCEL"}(jM||(jM={})),function(e){e.CREATE_LISTING="CREATE_LISTING",e.OFF_CHAIN_CANCELLATION="OFF_CHAIN_CANCELLATION"}(GM||(GM={})),function(e){e.TRANSACTION="TRANSACTION",e.SIGNABLE="SIGNABLE"}(HM||(HM={}));const KM="1.5",XM={OrderComponents:[{name:"offerer",type:"address"},{name:"zone",type:"address"},{name:"offer",type:"OfferItem[]"},{name:"consideration",type:"ConsiderationItem[]"},{name:"orderType",type:"uint8"},{name:"startTime",type:"uint256"},{name:"endTime",type:"uint256"},{name:"zoneHash",type:"bytes32"},{name:"salt",type:"uint256"},{name:"conduitKey",type:"bytes32"},{name:"counter",type:"uint256"}],OfferItem:[{name:"itemType",type:"uint8"},{name:"token",type:"address"},{name:"identifierOrCriteria",type:"uint256"},{name:"startAmount",type:"uint256"},{name:"endAmount",type:"uint256"}],ConsiderationItem:[{name:"itemType",type:"uint8"},{name:"token",type:"address"},{name:"identifierOrCriteria",type:"uint256"},{name:"startAmount",type:"uint256"},{name:"endAmount",type:"uint256"},{name:"recipient",type:"address"}]};var JM,YM,QM,$M;function ZM(e,t){return async()=>{const n=await e.buildTransaction();return n.gasLimit=await e.estimateGas(),n.gasLimit=n.gasLimit.add(n.gasLimit.div(5)),n.chainId=t,n}}!function(e){e[e.FULL_OPEN=0]="FULL_OPEN",e[e.PARTIAL_OPEN=1]="PARTIAL_OPEN",e[e.FULL_RESTRICTED=2]="FULL_RESTRICTED",e[e.PARTIAL_RESTRICTED=3]="PARTIAL_RESTRICTED"}(JM||(JM={})),function(e){e[e.NATIVE=0]="NATIVE",e[e.ERC20=1]="ERC20",e[e.ERC721=2]="ERC721",e[e.ERC1155=3]="ERC1155",e[e.ERC721_WITH_CRITERIA=4]="ERC721_WITH_CRITERIA",e[e.ERC1155_WITH_CRITERIA=5]="ERC1155_WITH_CRITERIA"}(YM||(YM={})),function(e){e[e.OFFER=0]="OFFER",e[e.CONSIDERATION=1]="CONSIDERATION"}(QM||(QM={})),function(e){e[e.ETH_TO_ERC721=0]="ETH_TO_ERC721",e[e.ETH_TO_ERC1155=1]="ETH_TO_ERC1155",e[e.ERC20_TO_ERC721=2]="ERC20_TO_ERC721",e[e.ERC20_TO_ERC1155=3]="ERC20_TO_ERC1155",e[e.ERC721_TO_ERC20=4]="ERC721_TO_ERC20",e[e.ERC1155_TO_ERC20=5]="ERC1155_TO_ERC20"}($M||($M={}));class eB{seaportLibFactory;provider;seaportContractAddress;zoneContractAddress;constructor(e,t,n,r){this.seaportLibFactory=e,this.provider=t,this.seaportContractAddress=n,this.zoneContractAddress=r}async prepareSeaportOrder(e,t,n,r,i){const{actions:a}=await this.createSeaportOrder(e,t,n,r,i),o=[],s=a.find((e=>"approval"===e.type));s&&o.push({type:HM.TRANSACTION,purpose:jM.APPROVAL,buildTransaction:ZM(s.transactionMethods,(await this.provider.getNetwork()).chainId)});const u=a.find((e=>"create"===e.type));if(!u)throw new Error("No create order action found");const c=function(e){const t=JSON.parse(e).message;return t.salt=kr.from(t.salt).toHexString(),t}(await u.getMessageToSign());return o.push({type:HM.SIGNABLE,purpose:GM.CREATE_LISTING,message:await this.getTypedDataFromOrderComponents(c)}),{actions:o,orderComponents:c,orderHash:this.getSeaportLib().getOrderHash(c)}}async fulfillOrder(e,t,n){const{orderComponents:r,tips:i}=this.mapImmutableOrderToSeaportOrderComponents(e),a=this.getSeaportLib(e),{actions:o}=await a.fulfillOrders({accountAddress:t,fulfillOrderDetails:[{order:{parameters:r,signature:e.signature},extraData:n,tips:i}]}),s=[],u=o.find((e=>"approval"===e.type));u&&s.push({type:HM.TRANSACTION,buildTransaction:ZM(u.transactionMethods,(await this.provider.getNetwork()).chainId),purpose:jM.APPROVAL});const c=o.find((e=>"exchange"===e.type));if(!c)throw new Error("No exchange action found");return s.push({type:HM.TRANSACTION,buildTransaction:ZM(c.transactionMethods,(await this.provider.getNetwork()).chainId),purpose:jM.FULFILL_ORDER}),{actions:s,expiration:eB.getExpirationISOTimeFromExtraData(n),order:zM(e)}}async fulfillBulkOrders(e,t){const n=e.map((e=>{const{orderComponents:t,tips:n}=this.mapImmutableOrderToSeaportOrderComponents(e.order);return{order:{parameters:t,signature:e.order.signature},extraData:e.extra_data,tips:n}})),{actions:r}=await this.getSeaportLib().fulfillOrders({fulfillOrderDetails:n,accountAddress:t}),i=[],a=r.find((e=>"approval"===e.type));a&&i.push({type:HM.TRANSACTION,buildTransaction:ZM(a.transactionMethods,(await this.provider.getNetwork()).chainId),purpose:jM.APPROVAL});const o=r.find((e=>"exchange"===e.type));if(!o)throw new Error("No exchange action found");return i.push({type:HM.TRANSACTION,buildTransaction:ZM(o.transactionMethods,(await this.provider.getNetwork()).chainId),purpose:jM.FULFILL_ORDER}),{actions:i,expiration:n.map((e=>eB.getExpirationISOTimeFromExtraData(e.extraData))).reduce(((e,t)=>new Date(e)<new Date(t)?e:t))}}async cancelOrders(e,t){const n=e.map((e=>this.mapImmutableOrderToSeaportOrderComponents(e).orderComponents)),r=this.getSeaportLib(e[0]),i=await r.cancelOrders(n,t);return{type:HM.TRANSACTION,buildTransaction:ZM(i,(await this.provider.getNetwork()).chainId),purpose:jM.CANCEL}}mapImmutableOrderToSeaportOrderComponents(e){return function(e,t,n){const r=e.buy.map((t=>{switch(t.type){case"NATIVE":return{startAmount:t.amount,endAmount:t.amount,itemType:YM.NATIVE,recipient:e.account_address,token:ma,identifierOrCriteria:"0"};case"ERC20":return{startAmount:t.amount,endAmount:t.amount,itemType:YM.ERC20,recipient:e.account_address,token:t.contract_address||ma,identifierOrCriteria:"0"};default:return{startAmount:"1",endAmount:"1",itemType:YM.ERC721,recipient:e.account_address,token:t.contract_address||ma,identifierOrCriteria:"0"}}})),i=e.fees.map((t=>({amount:t.amount,itemType:"ERC20"===e.buy[0].type?YM.ERC20:YM.NATIVE,recipient:t.recipient_address,token:"ERC20"===e.buy[0].type?e.buy[0].contract_address:ma,identifierOrCriteria:"0"})));return{orderComponents:{conduitKey:_a,consideration:[...r],offer:e.sell.map((e=>{const t=e;return{startAmount:"1",endAmount:"1",itemType:YM.ERC721,token:t.contract_address,identifierOrCriteria:t.token_id}})),counter:t,endTime:Math.round(new Date(e.end_at).getTime()/1e3).toString(),startTime:Math.round(new Date(e.start_at).getTime()/1e3).toString(),salt:e.salt,offerer:e.account_address,zone:n,totalOriginalConsiderationItems:r.length,orderType:JM.FULL_RESTRICTED,zoneHash:_a},tips:i}}(e,e.protocol_data.counter,this.zoneContractAddress)}createSeaportOrder(e,t,n,r,i){return this.getSeaportLib().createOrder({allowPartialFills:!1,offer:[{itemType:YM.ERC721,token:t.contractAddress,identifier:t.tokenId}],consideration:[{token:"ERC20"===n.type?n.contractAddress:void 0,amount:n.amount,recipient:e}],startTime:(r.getTime()/1e3).toFixed(0),endTime:(i.getTime()/1e3).toFixed(0),zone:this.zoneContractAddress,restrictedByZone:!0},e)}async getTypedDataFromOrderComponents(e){const{chainId:t}=await this.provider.getNetwork();return{domain:{name:"ImmutableSeaport",version:KM,chainId:t,verifyingContract:this.seaportContractAddress},types:XM,value:e}}getSeaportLib(e){const t=e?.protocol_data?.seaport_address??this.seaportContractAddress,n=KM;return this.seaportLibFactory.create(n,t)}static getExpirationISOTimeFromExtraData(e){const t=e.slice(44,60),n=parseInt(t,16);return new Date(1e3*n).toISOString()}}class tB{orderbookService;chainName;seaportAddress;constructor(e,t,n){this.orderbookService=e,this.chainName=t,this.seaportAddress=n}async fulfillmentData(e){return this.orderbookService.fulfillmentData({chainName:this.chainName,requestBody:e})}async getListing(e){return this.orderbookService.getListing({chainName:this.chainName,listingId:e})}async getTrade(e){return this.orderbookService.getTrade({chainName:this.chainName,tradeId:e})}async listListings(e){return this.orderbookService.listListings({chainName:this.chainName,...e})}async listTrades(e){return this.orderbookService.listTrades({chainName:this.chainName,...e})}async cancelOrders(e,t,n){return this.orderbookService.cancelOrders({chainName:this.chainName,requestBody:{account_address:t,orders:e,signature:n}})}async createListing({orderHash:e,orderComponents:t,orderSignature:n,makerFees:r}){if(1!==t.offer.length)throw new Error("Only one item can be listed at a time");if(Number(t.offer[0].itemType)!==YM.ERC721)throw new Error("Only ERC721 tokens can be listed");const i=[...t.consideration.map((e=>e.itemType))];if(!(1===new Set(i).size))throw new Error("All consideration items must be of the same type");return this.orderbookService.createListing({chainName:this.chainName,requestBody:{account_address:t.offerer,buy:[{type:Number(t.consideration[0].itemType)===YM.NATIVE?"NATIVE":"ERC20",amount:t.consideration[0].startAmount,contract_address:t.consideration[0].token}],fees:r.map((e=>({amount:e.amount,type:qM.MAKER_ECOSYSTEM,recipient_address:e.recipientAddress}))),end_at:new Date(parseInt(`${t.endTime.toString()}000`,10)).toISOString(),order_hash:e,protocol_data:{order_type:UM.order_type.FULL_RESTRICTED,zone_address:t.zone,seaport_address:this.seaportAddress,seaport_version:KM,counter:t.counter.toString()},salt:t.salt,sell:[{contract_address:t.offer[0].token,token_id:t.offer[0].identifierOrCriteria,type:"ERC721"}],signature:n,start_at:new Date(parseInt(`${t.startTime.toString()}000`,10)).toISOString()}})}}class nB{chainName;seaportAddress;orderbookClient;constructor(e,t,n){this.chainName=t,this.seaportAddress=n,this.orderbookClient=new PM({BASE:e})}create(){return new tB(this.orderbookClient.orders,this.chainName,this.seaportAddress)}}class rB{defaultSeaportContractAddress;provider;constructor(e,t){this.defaultSeaportContractAddress=e,this.provider=t}create(e,t){const n=e??KM,r=t??this.defaultSeaportContractAddress;return new Fk.Seaport(this.provider,{seaportVersion:n,balanceAndApprovalChecksOnOrderCreation:!0,overrides:{contractAddress:r}})}}class iB{apiClient;seaport;orderbookConfig;constructor(e){const t={...function(e){switch(e){case Bt.SANDBOX:return{seaportContractAddress:"0x7d117aA8BD6D31c4fa91722f246388f38ab1942c",zoneContractAddress:"0x8831867E347AB87FA30199C5B695F0A31604Bb52",apiEndpoint:"https://api.sandbox.immutable.com",chainName:"imtbl-zkevm-testnet",provider:new Dp("https://rpc.testnet.immutable.com")};case Bt.PRODUCTION:return{seaportContractAddress:"0x6c12aD6F0bD274191075Eb2E78D7dA5ba6453424",zoneContractAddress:"0x00338b92Bec262078B3e49BF12bbEA058916BF91",apiEndpoint:"https://api.immutable.com",chainName:"imtbl-zkevm-mainnet",provider:new Dp("https://rpc.immutable.com")};default:return null}}(e.baseConfig.environment),...e.overrides};if(!t)throw new Error("Orderbook configuration not passed, please specify the environment under config.baseConfig.environment");this.orderbookConfig=t;const{apiEndpoint:n,chainName:r}=this.orderbookConfig;if(!n)throw new Error("API endpoint must be provided");this.apiClient=new nB(n,r,this.orderbookConfig.seaportContractAddress).create();const i=new rB(this.orderbookConfig.seaportContractAddress,this.orderbookConfig.provider);this.seaport=new eB(i,this.orderbookConfig.provider,this.orderbookConfig.seaportContractAddress,this.orderbookConfig.zoneContractAddress)}config(){return this.orderbookConfig}async getListing(e){return{result:zM((await this.apiClient.getListing(e)).result)}}async getTrade(e){return{result:WM((await this.apiClient.getTrade(e)).result)}}async listListings(e){const t=await this.apiClient.listListings(e);return{page:VM(t.page),result:t.result.map(zM)}}async listTrades(e){const t=await this.apiClient.listTrades(e);return{page:VM(t.page),result:t.result.map(WM)}}async prepareListing({makerAddress:e,sell:t,buy:n,orderExpiry:r}){return this.seaport.prepareSeaportOrder(e,t,n,new Date,r||new Date(Date.now()+63072e6))}async createListing(e){return{result:zM((await this.apiClient.createListing({...e})).result)}}async fulfillOrder(e,t,n){const r=await this.apiClient.fulfillmentData([{order_id:e,taker_address:t,fees:n.map((e=>({amount:e.amount,type:qM.TAKER_ECOSYSTEM,recipient_address:e.recipientAddress})))}]);if(r.result.unfulfillable_orders?.length>0)throw new Error(`Unable to prepare fulfillment date: ${r.result.unfulfillable_orders[0].reason}`);if(1!==r.result.fulfillable_orders?.length)throw new Error("unexpected fulfillable order result length");const i=r.result.fulfillable_orders[0].extra_data,a=r.result.fulfillable_orders[0].order;if(a.status.name!==LM.ACTIVE)throw new Error(`Cannot fulfil order that is not active. Current status: ${a.status}`);return this.seaport.fulfillOrder(a,t,i)}async fulfillBulkOrders(e,t){const n=await this.apiClient.fulfillmentData(e.map((e=>({order_id:e.listingId,taker_address:t,fees:e.takerFees.map((e=>({amount:e.amount,type:qM.TAKER_ECOSYSTEM,recipient_address:e.recipientAddress})))}))));try{return{...await this.seaport.fulfillBulkOrders(n.result.fulfillable_orders,t),fulfillableOrders:n.result.fulfillable_orders.map((e=>zM(e.order))),unfulfillableOrders:n.result.unfulfillable_orders.map((e=>({orderId:e.order_id,reason:e.reason}))),sufficientBalance:!0}}catch(e){if(String(e).includes("The fulfiller does not have the balances needed to fulfill."))return{fulfillableOrders:n.result.fulfillable_orders.map((e=>zM(e.order))),unfulfillableOrders:n.result.unfulfillable_orders.map((e=>({orderId:e.order_id,reason:e.reason}))),sufficientBalance:!1};throw e}}async prepareOrderCancellations(e){const t={name:"imtbl-order-book",chainId:(await this.orderbookConfig.provider.getNetwork()).chainId,verifyingContract:this.orderbookConfig.seaportContractAddress},n={orders:e.map((e=>({id:e})))};return{signableAction:{purpose:GM.OFF_CHAIN_CANCELLATION,type:HM.SIGNABLE,message:{domain:t,types:{CancelPayload:[{name:"orders",type:"Order[]"}],Order:[{name:"id",type:"string"}]},value:n}}}}async cancelOrders(e,t,n){return this.apiClient.cancelOrders(e,t,n)}async cancelOrdersOnChain(e,t){const n=await Promise.all(e.map((e=>this.apiClient.getListing(e))));for(const e of n){if(e.result.status.name!==LM.ACTIVE&&e.result.status.name!==LM.INACTIVE&&e.result.status.name!==LM.PENDING)throw new Error(`Cannot cancel order with status ${e.result.status}`);if(e.result.account_address!==t.toLowerCase())throw new Error(`Only account ${e.result.account_address} can cancel order ${e.result.id}`)}const r=n.map((e=>e.result)),i=r.map((e=>e.protocol_data.seaport_address));if(1!==new Set(...[i]).size)throw new Error("Cannot cancel multiple orders from different seaport contracts. Please group your orderIds accordingly");return{cancellationAction:await this.seaport.cancelOrders(r,t)}}}const aB=4e5,oB="https://api.sandbox.immutable.com".replace(/\/+$/,"");class sB{basePath;axios;configuration;constructor(e,t=oB,n=$e){this.basePath=t,this.axios=n,e&&(this.configuration=e,this.basePath=e.basePath||this.basePath)}}class uB extends Error{field;constructor(e,t){super(t),this.field=e,this.name="RequiredError"}}const cB="https://example.com",lB=function(e,t,n){if(null==n)throw new uB(t,`Required parameter ${t} was null or undefined when calling ${e}.`)},dB=async function(e,t,n){if(n&&n.apiKey){const r="function"==typeof n.apiKey?await n.apiKey(t):await n.apiKey;e[t]=r}},fB=async function(e,t){if(t&&t.accessToken){const n="function"==typeof t.accessToken?await t.accessToken():await t.accessToken;e.Authorization="Bearer "+n}};function pB(e,t,n=""){null!=t&&("object"==typeof t?Array.isArray(t)?t.forEach((t=>pB(e,t,n))):Object.keys(t).forEach((r=>pB(e,t[r],`${n}${""!==n?".":""}${r}`))):e.has(n)?e.append(n,t):e.set(n,t))}const hB=function(e,...t){const n=new URLSearchParams(e.search);pB(n,t),e.search=n.toString()},mB=function(e,t,n){const r="string"!=typeof e;return(r&&n&&n.isJsonMime?n.isJsonMime(t.headers["Content-Type"]):r)?JSON.stringify(void 0!==e?e:{}):e||""},yB=function(e){return e.pathname+e.search+e.hash},gB=function(e,t,n,r){return(i=t,a=n)=>{const o={...e.options,url:(r?.basePath||i.defaults.baseURL||a)+e.url};return i.request(o)}},bB=function(e){return{getActivity:async(t,n,r={})=>{lB("getActivity","chainName",t),lB("getActivity","activityId",n);const i="/v1/chains/{chain_name}/activities/{activity_id}".replace("{chain_name}",encodeURIComponent(String(t))).replace("{activity_id}",encodeURIComponent(String(n))),a=new URL(i,cB);let o;e&&(o=e.baseOptions);const s={method:"GET",...o,...r};hB(a,{});let u=o&&o.headers?o.headers:{};return s.headers={...u,...r.headers},{url:yB(a),options:s}},listActivities:async(t,n,r,i,a,o,s,u,c={})=>{lB("listActivities","chainName",t);const l="/v1/chains/{chain_name}/activities".replace("{chain_name}",encodeURIComponent(String(t))),d=new URL(l,cB);let f;e&&(f=e.baseOptions);const p={method:"GET",...f,...c},h={};void 0!==n&&(h.contract_address=n),void 0!==r&&(h.token_id=r),void 0!==i&&(h.account_address=i),void 0!==a&&(h.activity_type=a),void 0!==o&&(h.transaction_hash=o),void 0!==s&&(h.page_cursor=s),void 0!==u&&(h.page_size=u),hB(d,h);let m=f&&f.headers?f.headers:{};return p.headers={...m,...c.headers},{url:yB(d),options:p}},listActivityHistory:async(t,n,r,i,a,o,s={})=>{lB("listActivityHistory","chainName",t),lB("listActivityHistory","fromUpdatedAt",n);const u="/v1/chains/{chain_name}/activity-history".replace("{chain_name}",encodeURIComponent(String(t))),c=new URL(u,cB);let l;e&&(l=e.baseOptions);const d={method:"GET",...l,...s},f={};void 0!==n&&(f.from_updated_at=n instanceof Date?n.toISOString():n),void 0!==r&&(f.to_updated_at=r instanceof Date?r.toISOString():r),void 0!==i&&(f.contract_address=i),void 0!==a&&(f.page_cursor=a),void 0!==o&&(f.page_size=o),hB(c,f);let p=l&&l.headers?l.headers:{};return d.headers={...p,...s.headers},{url:yB(c),options:d}}}},vB=function(e){const t=bB(e);return{async getActivity(n,r,i){const a=await t.getActivity(n,r,i);return gB(a,$e,oB,e)},async listActivities(n,r,i,a,o,s,u,c,l){const d=await t.listActivities(n,r,i,a,o,s,u,c,l);return gB(d,$e,oB,e)},async listActivityHistory(n,r,i,a,o,s,u){const c=await t.listActivityHistory(n,r,i,a,o,s,u);return gB(c,$e,oB,e)}}};const TB=function(e){return{listChains:async(t,n,r={})=>{const i=new URL("/v1/chains",cB);let a;e&&(a=e.baseOptions);const o={method:"GET",...a,...r},s={};void 0!==t&&(s.page_cursor=t),void 0!==n&&(s.page_size=n),hB(i,s);let u=a&&a.headers?a.headers:{};return o.headers={...u,...r.headers},{url:yB(i),options:o}}}},wB=function(e){const t=TB(e);return{async listChains(n,r,i){const a=await t.listChains(n,r,i);return gB(a,$e,oB,e)}}};const EB=function(e){return{getCollection:async(t,n,r={})=>{lB("getCollection","contractAddress",t),lB("getCollection","chainName",n);const i="/v1/chains/{chain_name}/collections/{contract_address}".replace("{contract_address}",encodeURIComponent(String(t))).replace("{chain_name}",encodeURIComponent(String(n))),a=new URL(i,cB);let o;e&&(o=e.baseOptions);const s={method:"GET",...o,...r};hB(a,{});let u=o&&o.headers?o.headers:{};return s.headers={...u,...r.headers},{url:yB(a),options:s}},listCollections:async(t,n,r,i,a,o={})=>{lB("listCollections","chainName",t);const s="/v1/chains/{chain_name}/collections".replace("{chain_name}",encodeURIComponent(String(t))),u=new URL(s,cB);let c;e&&(c=e.baseOptions);const l={method:"GET",...c,...o},d={};n&&(d.contract_address=n),void 0!==r&&(d.from_updated_at=r instanceof Date?r.toISOString():r),void 0!==i&&(d.page_cursor=i),void 0!==a&&(d.page_size=a),hB(u,d);let f=c&&c.headers?c.headers:{};return l.headers={...f,...o.headers},{url:yB(u),options:l}},listCollectionsByNFTOwner:async(t,n,r,i,a={})=>{lB("listCollectionsByNFTOwner","accountAddress",t),lB("listCollectionsByNFTOwner","chainName",n);const o="/v1/chains/{chain_name}/accounts/{account_address}/collections".replace("{account_address}",encodeURIComponent(String(t))).replace("{chain_name}",encodeURIComponent(String(n))),s=new URL(o,cB);let u;e&&(u=e.baseOptions);const c={method:"GET",...u,...a},l={};void 0!==r&&(l.page_cursor=r),void 0!==i&&(l.page_size=i),hB(s,l);let d=u&&u.headers?u.headers:{};return c.headers={...d,...a.headers},{url:yB(s),options:c}},refreshCollectionMetadata:async(t,n,r,i={})=>{lB("refreshCollectionMetadata","contractAddress",t),lB("refreshCollectionMetadata","chainName",n),lB("refreshCollectionMetadata","refreshCollectionMetadataRequest",r);const a="/v1/chains/{chain_name}/collections/{contract_address}/refresh-metadata".replace("{contract_address}",encodeURIComponent(String(t))).replace("{chain_name}",encodeURIComponent(String(n))),o=new URL(a,cB);let s;e&&(s=e.baseOptions);const u={method:"POST",...s,...i},c={};await dB(c,"x-immutable-api-key",e),c["Content-Type"]="application/json",hB(o,{});let l=s&&s.headers?s.headers:{};return u.headers={...c,...l,...i.headers},u.data=mB(r,u,e),{url:yB(o),options:u}}}},AB=function(e){const t=EB(e);return{async getCollection(n,r,i){const a=await t.getCollection(n,r,i);return gB(a,$e,oB,e)},async listCollections(n,r,i,a,o,s){const u=await t.listCollections(n,r,i,a,o,s);return gB(u,$e,oB,e)},async listCollectionsByNFTOwner(n,r,i,a,o){const s=await t.listCollectionsByNFTOwner(n,r,i,a,o);return gB(s,$e,oB,e)},async refreshCollectionMetadata(n,r,i,a){const o=await t.refreshCollectionMetadata(n,r,i,a);return gB(o,$e,oB,e)}}};const _B=function(e){return{getMetadata:async(t,n,r,i={})=>{lB("getMetadata","chainName",t),lB("getMetadata","contractAddress",n),lB("getMetadata","metadataId",r);const a="/v1/chains/{chain_name}/collections/{contract_address}/metadata/{metadata_id}".replace("{chain_name}",encodeURIComponent(String(t))).replace("{contract_address}",encodeURIComponent(String(n))).replace("{metadata_id}",encodeURIComponent(String(r))),o=new URL(a,cB);let s;e&&(s=e.baseOptions);const u={method:"GET",...s,...i};hB(o,{});let c=s&&s.headers?s.headers:{};return u.headers={...c,...i.headers},{url:yB(o),options:u}},listMetadata:async(t,n,r,i,a,o={})=>{lB("listMetadata","chainName",t),lB("listMetadata","contractAddress",n);const s="/v1/chains/{chain_name}/collections/{contract_address}/metadata".replace("{chain_name}",encodeURIComponent(String(t))).replace("{contract_address}",encodeURIComponent(String(n))),u=new URL(s,cB);let c;e&&(c=e.baseOptions);const l={method:"GET",...c,...o},d={};void 0!==r&&(d.from_updated_at=r instanceof Date?r.toISOString():r),void 0!==i&&(d.page_cursor=i),void 0!==a&&(d.page_size=a),hB(u,d);let f=c&&c.headers?c.headers:{};return l.headers={...f,...o.headers},{url:yB(u),options:l}},listMetadataForChain:async(t,n,r,i,a={})=>{lB("listMetadataForChain","chainName",t);const o="/v1/chains/{chain_name}/metadata".replace("{chain_name}",encodeURIComponent(String(t))),s=new URL(o,cB);let u;e&&(u=e.baseOptions);const c={method:"GET",...u,...a},l={};void 0!==n&&(l.from_updated_at=n instanceof Date?n.toISOString():n),void 0!==r&&(l.page_cursor=r),void 0!==i&&(l.page_size=i),hB(s,l);let d=u&&u.headers?u.headers:{};return c.headers={...d,...a.headers},{url:yB(s),options:c}},refreshMetadataByID:async(t,n,r,i={})=>{lB("refreshMetadataByID","chainName",t),lB("refreshMetadataByID","contractAddress",n),lB("refreshMetadataByID","refreshMetadataByIDRequest",r);const a="/v1/chains/{chain_name}/collections/{contract_address}/metadata/refresh-metadata".replace("{chain_name}",encodeURIComponent(String(t))).replace("{contract_address}",encodeURIComponent(String(n))),o=new URL(a,cB);let s;e&&(s=e.baseOptions);const u={method:"POST",...s,...i},c={};await dB(c,"x-immutable-api-key",e),c["Content-Type"]="application/json",hB(o,{});let l=s&&s.headers?s.headers:{};return u.headers={...c,...l,...i.headers},u.data=mB(r,u,e),{url:yB(o),options:u}},refreshNFTMetadataByTokenID:async(t,n,r,i={})=>{lB("refreshNFTMetadataByTokenID","contractAddress",t),lB("refreshNFTMetadataByTokenID","chainName",n),lB("refreshNFTMetadataByTokenID","refreshNFTMetadataByTokenIDRequest",r);const a="/v1/chains/{chain_name}/collections/{contract_address}/nfts/refresh-metadata".replace("{contract_address}",encodeURIComponent(String(t))).replace("{chain_name}",encodeURIComponent(String(n))),o=new URL(a,cB);let s;e&&(s=e.baseOptions);const u={method:"POST",...s,...i},c={};await dB(c,"x-immutable-api-key",e),c["Content-Type"]="application/json",hB(o,{});let l=s&&s.headers?s.headers:{};return u.headers={...c,...l,...i.headers},u.data=mB(r,u,e),{url:yB(o),options:u}}}},IB=function(e){const t=_B(e);return{async getMetadata(n,r,i,a){const o=await t.getMetadata(n,r,i,a);return gB(o,$e,oB,e)},async listMetadata(n,r,i,a,o,s){const u=await t.listMetadata(n,r,i,a,o,s);return gB(u,$e,oB,e)},async listMetadataForChain(n,r,i,a,o){const s=await t.listMetadataForChain(n,r,i,a,o);return gB(s,$e,oB,e)},async refreshMetadataByID(n,r,i,a){const o=await t.refreshMetadataByID(n,r,i,a);return gB(o,$e,oB,e)},async refreshNFTMetadataByTokenID(n,r,i,a){const o=await t.refreshNFTMetadataByTokenID(n,r,i,a);return gB(o,$e,oB,e)}}};const RB=function(e){return{listAllNFTOwners:async(t,n,r,i,a={})=>{lB("listAllNFTOwners","chainName",t);const o="/v1/chains/{chain_name}/nft-owners".replace("{chain_name}",encodeURIComponent(String(t))),s=new URL(o,cB);let u;e&&(u=e.baseOptions);const c={method:"GET",...u,...a},l={};void 0!==n&&(l.from_updated_at=n instanceof Date?n.toISOString():n),void 0!==r&&(l.page_cursor=r),void 0!==i&&(l.page_size=i),hB(s,l);let d=u&&u.headers?u.headers:{};return c.headers={...d,...a.headers},{url:yB(s),options:c}},listNFTOwners:async(t,n,r,i,a,o={})=>{lB("listNFTOwners","contractAddress",t),lB("listNFTOwners","tokenId",n),lB("listNFTOwners","chainName",r);const s="/v1/chains/{chain_name}/collections/{contract_address}/nfts/{token_id}/owners".replace("{contract_address}",encodeURIComponent(String(t))).replace("{token_id}",encodeURIComponent(String(n))).replace("{chain_name}",encodeURIComponent(String(r))),u=new URL(s,cB);let c;e&&(c=e.baseOptions);const l={method:"GET",...c,...o},d={};void 0!==i&&(d.page_cursor=i),void 0!==a&&(d.page_size=a),hB(u,d);let f=c&&c.headers?c.headers:{};return l.headers={...f,...o.headers},{url:yB(u),options:l}},listOwnersByContractAddress:async(t,n,r,i,a,o={})=>{lB("listOwnersByContractAddress","contractAddress",t),lB("listOwnersByContractAddress","chainName",n);const s="/v1/chains/{chain_name}/collections/{contract_address}/owners".replace("{contract_address}",encodeURIComponent(String(t))).replace("{chain_name}",encodeURIComponent(String(n))),u=new URL(s,cB);let c;e&&(c=e.baseOptions);const l={method:"GET",...c,...o},d={};void 0!==r&&(d.from_updated_at=r instanceof Date?r.toISOString():r),void 0!==i&&(d.page_cursor=i),void 0!==a&&(d.page_size=a),hB(u,d);let f=c&&c.headers?c.headers:{};return l.headers={...f,...o.headers},{url:yB(u),options:l}}}},CB=function(e){const t=RB(e);return{async listAllNFTOwners(n,r,i,a,o){const s=await t.listAllNFTOwners(n,r,i,a,o);return gB(s,$e,oB,e)},async listNFTOwners(n,r,i,a,o,s){const u=await t.listNFTOwners(n,r,i,a,o,s);return gB(u,$e,oB,e)},async listOwnersByContractAddress(n,r,i,a,o,s){const u=await t.listOwnersByContractAddress(n,r,i,a,o,s);return gB(u,$e,oB,e)}}};const OB=function(e){return{getNFT:async(t,n,r,i={})=>{lB("getNFT","contractAddress",t),lB("getNFT","tokenId",n),lB("getNFT","chainName",r);const a="/v1/chains/{chain_name}/collections/{contract_address}/nfts/{token_id}".replace("{contract_address}",encodeURIComponent(String(t))).replace("{token_id}",encodeURIComponent(String(n))).replace("{chain_name}",encodeURIComponent(String(r))),o=new URL(a,cB);let s;e&&(s=e.baseOptions);const u={method:"GET",...s,...i};hB(o,{});let c=s&&s.headers?s.headers:{};return u.headers={...c,...i.headers},{url:yB(o),options:u}},listAllNFTs:async(t,n,r,i,a={})=>{lB("listAllNFTs","chainName",t);const o="/v1/chains/{chain_name}/nfts".replace("{chain_name}",encodeURIComponent(String(t))),s=new URL(o,cB);let u;e&&(u=e.baseOptions);const c={method:"GET",...u,...a},l={};void 0!==n&&(l.from_updated_at=n instanceof Date?n.toISOString():n),void 0!==r&&(l.page_cursor=r),void 0!==i&&(l.page_size=i),hB(s,l);let d=u&&u.headers?u.headers:{};return c.headers={...d,...a.headers},{url:yB(s),options:c}},listNFTs:async(t,n,r,i,a,o={})=>{lB("listNFTs","contractAddress",t),lB("listNFTs","chainName",n);const s="/v1/chains/{chain_name}/collections/{contract_address}/nfts".replace("{contract_address}",encodeURIComponent(String(t))).replace("{chain_name}",encodeURIComponent(String(n))),u=new URL(s,cB);let c;e&&(c=e.baseOptions);const l={method:"GET",...c,...o},d={};void 0!==r&&(d.from_updated_at=r instanceof Date?r.toISOString():r),void 0!==i&&(d.page_cursor=i),void 0!==a&&(d.page_size=a),hB(u,d);let f=c&&c.headers?c.headers:{};return l.headers={...f,...o.headers},{url:yB(u),options:l}},listNFTsByAccountAddress:async(t,n,r,i,a,o={})=>{lB("listNFTsByAccountAddress","accountAddress",t),lB("listNFTsByAccountAddress","chainName",n);const s="/v1/chains/{chain_name}/accounts/{account_address}/nfts".replace("{account_address}",encodeURIComponent(String(t))).replace("{chain_name}",encodeURIComponent(String(n))),u=new URL(s,cB);let c;e&&(c=e.baseOptions);const l={method:"GET",...c,...o},d={};void 0!==r&&(d.contract_address=r),void 0!==i&&(d.page_cursor=i),void 0!==a&&(d.page_size=a),hB(u,d);let f=c&&c.headers?c.headers:{};return l.headers={...f,...o.headers},{url:yB(u),options:l}}}},kB=function(e){const t=OB(e);return{async getNFT(n,r,i,a){const o=await t.getNFT(n,r,i,a);return gB(o,$e,oB,e)},async listAllNFTs(n,r,i,a,o){const s=await t.listAllNFTs(n,r,i,a,o);return gB(s,$e,oB,e)},async listNFTs(n,r,i,a,o,s){const u=await t.listNFTs(n,r,i,a,o,s);return gB(u,$e,oB,e)},async listNFTsByAccountAddress(n,r,i,a,o,s){const u=await t.listNFTsByAccountAddress(n,r,i,a,o,s);return gB(u,$e,oB,e)}}};const SB=function(e){return{cancelOrders:async(t,n,r={})=>{lB("cancelOrders","chainName",t),lB("cancelOrders","cancelOrdersRequestBody",n);const i="/v1/chains/{chain_name}/orders/cancel".replace("{chain_name}",encodeURIComponent(String(t))),a=new URL(i,cB);let o;e&&(o=e.baseOptions);const s={method:"POST",...o,...r},u={};u["Content-Type"]="application/json",hB(a,{});let c=o&&o.headers?o.headers:{};return s.headers={...u,...c,...r.headers},s.data=mB(n,s,e),{url:yB(a),options:s}},createListing:async(t,n,r={})=>{lB("createListing","chainName",t),lB("createListing","createListingRequestBody",n);const i="/v1/chains/{chain_name}/orders/listings".replace("{chain_name}",encodeURIComponent(String(t))),a=new URL(i,cB);let o;e&&(o=e.baseOptions);const s={method:"POST",...o,...r},u={};u["Content-Type"]="application/json",hB(a,{});let c=o&&o.headers?o.headers:{};return s.headers={...u,...c,...r.headers},s.data=mB(n,s,e),{url:yB(a),options:s}},fulfillmentData:async(t,n,r={})=>{lB("fulfillmentData","chainName",t),lB("fulfillmentData","fulfillmentDataRequest",n);const i="/v1/chains/{chain_name}/orders/fulfillment-data".replace("{chain_name}",encodeURIComponent(String(t))),a=new URL(i,cB);let o;e&&(o=e.baseOptions);const s={method:"POST",...o,...r},u={};u["Content-Type"]="application/json",hB(a,{});let c=o&&o.headers?o.headers:{};return s.headers={...u,...c,...r.headers},s.data=mB(n,s,e),{url:yB(a),options:s}},getListing:async(t,n,r={})=>{lB("getListing","chainName",t),lB("getListing","listingId",n);const i="/v1/chains/{chain_name}/orders/listings/{listing_id}".replace("{chain_name}",encodeURIComponent(String(t))).replace("{listing_id}",encodeURIComponent(String(n))),a=new URL(i,cB);let o;e&&(o=e.baseOptions);const s={method:"GET",...o,...r};hB(a,{});let u=o&&o.headers?o.headers:{};return s.headers={...u,...r.headers},{url:yB(a),options:s}},getTrade:async(t,n,r={})=>{lB("getTrade","chainName",t),lB("getTrade","tradeId",n);const i="/v1/chains/{chain_name}/trades/{trade_id}".replace("{chain_name}",encodeURIComponent(String(t))).replace("{trade_id}",encodeURIComponent(String(n))),a=new URL(i,cB);let o;e&&(o=e.baseOptions);const s={method:"GET",...o,...r};hB(a,{});let u=o&&o.headers?o.headers:{};return s.headers={...u,...r.headers},{url:yB(a),options:s}},listListings:async(t,n,r,i,a,o,s,u,c,l,d,f,p={})=>{lB("listListings","chainName",t);const h="/v1/chains/{chain_name}/orders/listings".replace("{chain_name}",encodeURIComponent(String(t))),m=new URL(h,cB);let y;e&&(y=e.baseOptions);const g={method:"GET",...y,...p},b={};void 0!==n&&(b.status=n),void 0!==r&&(b.sell_item_contract_address=r),void 0!==i&&(b.buy_item_contract_address=i),void 0!==a&&(b.account_address=a),void 0!==o&&(b.sell_item_metadata_id=o),void 0!==s&&(b.sell_item_token_id=s),void 0!==u&&(b.from_updated_at=u instanceof Date?u.toISOString():u),void 0!==c&&(b.page_size=c),void 0!==l&&(b.sort_by=l),void 0!==d&&(b.sort_direction=d),void 0!==f&&(b.page_cursor=f),hB(m,b);let v=y&&y.headers?y.headers:{};return g.headers={...v,...p.headers},{url:yB(m),options:g}},listTrades:async(t,n,r,i,a,o,s,u={})=>{lB("listTrades","chainName",t);const c="/v1/chains/{chain_name}/trades".replace("{chain_name}",encodeURIComponent(String(t))),l=new URL(c,cB);let d;e&&(d=e.baseOptions);const f={method:"GET",...d,...u},p={};void 0!==n&&(p.account_address=n),void 0!==r&&(p.from_indexed_at=r instanceof Date?r.toISOString():r),void 0!==i&&(p.page_size=i),void 0!==a&&(p.sort_by=a),void 0!==o&&(p.sort_direction=o),void 0!==s&&(p.page_cursor=s),hB(l,p);let h=d&&d.headers?d.headers:{};return f.headers={...h,...u.headers},{url:yB(l),options:f}}}},NB=function(e){const t=SB(e);return{async cancelOrders(n,r,i){const a=await t.cancelOrders(n,r,i);return gB(a,$e,oB,e)},async createListing(n,r,i){const a=await t.createListing(n,r,i);return gB(a,$e,oB,e)},async fulfillmentData(n,r,i){const a=await t.fulfillmentData(n,r,i);return gB(a,$e,oB,e)},async getListing(n,r,i){const a=await t.getListing(n,r,i);return gB(a,$e,oB,e)},async getTrade(n,r,i){const a=await t.getTrade(n,r,i);return gB(a,$e,oB,e)},async listListings(n,r,i,a,o,s,u,c,l,d,f,p,h){const m=await t.listListings(n,r,i,a,o,s,u,c,l,d,f,p,h);return gB(m,$e,oB,e)},async listTrades(n,r,i,a,o,s,u,c){const l=await t.listTrades(n,r,i,a,o,s,u,c);return gB(l,$e,oB,e)}}};const xB=function(e){return{createCounterfactualAddress:async(t,n,r={})=>{lB("createCounterfactualAddress","chainName",t),lB("createCounterfactualAddress","createCounterfactualAddressRequest",n);const i="/v1/chains/{chain_name}/passport/counterfactual-address".replace("{chain_name}",encodeURIComponent(String(t))),a=new URL(i,cB);let o;e&&(o=e.baseOptions);const s={method:"POST",...o,...r},u={};await fB(u,e),u["Content-Type"]="application/json",hB(a,{});let c=o&&o.headers?o.headers:{};return s.headers={...u,...c,...r.headers},s.data=mB(n,s,e),{url:yB(a),options:s}},createCounterfactualAddressDeprecated:async(t,n={})=>{lB("createCounterfactualAddressDeprecated","createCounterfactualAddressRequestDeprecated",t);const r=new URL("/passport-mr/v1/counterfactual-address",cB);let i;e&&(i=e.baseOptions);const a={method:"POST",...i,...n},o={};await fB(o,e),o["Content-Type"]="application/json",hB(r,{});let s=i&&i.headers?i.headers:{};return a.headers={...o,...s,...n.headers},a.data=mB(t,a,e),{url:yB(r),options:a}},createCounterfactualAddressV2:async(t,n,r={})=>{lB("createCounterfactualAddressV2","chainName",t),lB("createCounterfactualAddressV2","createCounterfactualAddressRequest",n);const i="/v2/chains/{chain_name}/passport/counterfactual-address".replace("{chain_name}",encodeURIComponent(String(t))),a=new URL(i,cB);let o;e&&(o=e.baseOptions);const s={method:"POST",...o,...r},u={};await fB(u,e),u["Content-Type"]="application/json",hB(a,{});let c=o&&o.headers?o.headers:{};return s.headers={...u,...c,...r.headers},s.data=mB(n,s,e),{url:yB(a),options:s}},getContractAbi:async(t,n,r,i={})=>{lB("getContractAbi","chainName",t),lB("getContractAbi","contractAddress",n),lB("getContractAbi","methodId",r);const a="/v1/chains/{chain_name}/passport/transaction-metadata".replace("{chain_name}",encodeURIComponent(String(t))),o=new URL(a,cB);let s;e&&(s=e.baseOptions);const u={method:"GET",...s,...i},c={},l={};await fB(c,e),void 0!==n&&(l.contract_address=n),void 0!==r&&(l.method_id=r),hB(o,l);let d=s&&s.headers?s.headers:{};return u.headers={...c,...d,...i.headers},{url:yB(o),options:u}},getLinkedAddresses:async(t,n,r={})=>{lB("getLinkedAddresses","userId",t),lB("getLinkedAddresses","chainName",n);const i="/v1/chains/{chain_name}/passport/users/{user_id}/linked-addresses".replace("{user_id}",encodeURIComponent(String(t))).replace("{chain_name}",encodeURIComponent(String(n))),a=new URL(i,cB);let o;e&&(o=e.baseOptions);const s={method:"GET",...o,...r},u={};await fB(u,e),hB(a,{});let c=o&&o.headers?o.headers:{};return s.headers={...u,...c,...r.headers},{url:yB(a),options:s}},getLinkedAddressesDeprecated:async(t,n={})=>{lB("getLinkedAddressesDeprecated","userId",t);const r="/passport-mr/v1/users/{userId}/linked-addresses".replace("{userId}",encodeURIComponent(String(t))),i=new URL(r,cB);let a;e&&(a=e.baseOptions);const o={method:"GET",...a,...n},s={};await fB(s,e),hB(i,{});let u=a&&a.headers?a.headers:{};return o.headers={...s,...u,...n.headers},{url:yB(i),options:o}}}},PB=function(e){const t=xB(e);return{async createCounterfactualAddress(n,r,i){const a=await t.createCounterfactualAddress(n,r,i);return gB(a,$e,oB,e)},async createCounterfactualAddressDeprecated(n,r){const i=await t.createCounterfactualAddressDeprecated(n,r);return gB(i,$e,oB,e)},async createCounterfactualAddressV2(n,r,i){const a=await t.createCounterfactualAddressV2(n,r,i);return gB(a,$e,oB,e)},async getContractAbi(n,r,i,a){const o=await t.getContractAbi(n,r,i,a);return gB(o,$e,oB,e)},async getLinkedAddresses(n,r,i){const a=await t.getLinkedAddresses(n,r,i);return gB(a,$e,oB,e)},async getLinkedAddressesDeprecated(n,r){const i=await t.getLinkedAddressesDeprecated(n,r);return gB(i,$e,oB,e)}}};const MB=function(e){return{getERC20Token:async(t,n,r={})=>{lB("getERC20Token","contractAddress",t),lB("getERC20Token","chainName",n);const i="/v1/chains/{chain_name}/tokens/{contract_address}".replace("{contract_address}",encodeURIComponent(String(t))).replace("{chain_name}",encodeURIComponent(String(n))),a=new URL(i,cB);let o;e&&(o=e.baseOptions);const s={method:"GET",...o,...r};hB(a,{});let u=o&&o.headers?o.headers:{};return s.headers={...u,...r.headers},{url:yB(a),options:s}},listERC20Tokens:async(t,n,r,i,a={})=>{lB("listERC20Tokens","chainName",t);const o="/v1/chains/{chain_name}/tokens".replace("{chain_name}",encodeURIComponent(String(t))),s=new URL(o,cB);let u;e&&(u=e.baseOptions);const c={method:"GET",...u,...a},l={};void 0!==n&&(l.from_updated_at=n instanceof Date?n.toISOString():n),void 0!==r&&(l.page_cursor=r),void 0!==i&&(l.page_size=i),hB(s,l);let d=u&&u.headers?u.headers:{};return c.headers={...d,...a.headers},{url:yB(s),options:c}}}},BB=function(e){const t=MB(e);return{async getERC20Token(n,r,i){const a=await t.getERC20Token(n,r,i);return gB(a,$e,oB,e)},async listERC20Tokens(n,r,i,a,o){const s=await t.listERC20Tokens(n,r,i,a,o);return gB(s,$e,oB,e)}}};var DB=Object.freeze({__proto__:null,APIError400AllOfCodeEnum:{ValidationError:"VALIDATION_ERROR"},APIError401AllOfCodeEnum:{UnauthorisedRequest:"UNAUTHORISED_REQUEST"},APIError403AllOfCodeEnum:{AuthenticationError:"AUTHENTICATION_ERROR"},APIError404AllOfCodeEnum:{ResourceNotFound:"RESOURCE_NOT_FOUND"},APIError429AllOfCodeEnum:{TooManyRequestsError:"TOO_MANY_REQUESTS_ERROR"},APIError500AllOfCodeEnum:{InternalServerError:"INTERNAL_SERVER_ERROR"},APIError501AllOfCodeEnum:{NotImplementedError:"NOT_IMPLEMENTED_ERROR"},ActiveOrderStatusNameEnum:{Active:"ACTIVE"},ActivitiesApi:class extends sB{getActivity(e,t){return vB(this.configuration).getActivity(e.chainName,e.activityId,t).then((e=>e(this.axios,this.basePath)))}listActivities(e,t){return vB(this.configuration).listActivities(e.chainName,e.contractAddress,e.tokenId,e.accountAddress,e.activityType,e.transactionHash,e.pageCursor,e.pageSize,t).then((e=>e(this.axios,this.basePath)))}listActivityHistory(e,t){return vB(this.configuration).listActivityHistory(e.chainName,e.fromUpdatedAt,e.toUpdatedAt,e.contractAddress,e.pageCursor,e.pageSize,t).then((e=>e(this.axios,this.basePath)))}},ActivitiesApiAxiosParamCreator:bB,ActivitiesApiFactory:function(e,t,n){const r=vB(e);return{getActivity:(e,i)=>r.getActivity(e.chainName,e.activityId,i).then((e=>e(n,t))),listActivities:(e,i)=>r.listActivities(e.chainName,e.contractAddress,e.tokenId,e.accountAddress,e.activityType,e.transactionHash,e.pageCursor,e.pageSize,i).then((e=>e(n,t))),listActivityHistory:(e,i)=>r.listActivityHistory(e.chainName,e.fromUpdatedAt,e.toUpdatedAt,e.contractAddress,e.pageCursor,e.pageSize,i).then((e=>e(n,t)))}},ActivitiesApiFp:vB,ActivityType:{Mint:"mint",Burn:"burn",Transfer:"transfer",Sale:"sale",Deposit:"deposit",Withdrawal:"withdrawal"},CancelledOrderStatusCancellationTypeEnum:{OnChain:"ON_CHAIN",OffChain:"OFF_CHAIN"},CancelledOrderStatusNameEnum:{Cancelled:"CANCELLED"},ChainsApi:class extends sB{listChains(e={},t){return wB(this.configuration).listChains(e.pageCursor,e.pageSize,t).then((e=>e(this.axios,this.basePath)))}},ChainsApiAxiosParamCreator:TB,ChainsApiFactory:function(e,t,n){const r=wB(e);return{listChains:(e={},i)=>r.listChains(e.pageCursor,e.pageSize,i).then((e=>e(n,t)))}},ChainsApiFp:wB,CollectionContractType:{Erc721:"ERC721",Erc1155:"ERC1155"},CollectionsApi:class extends sB{getCollection(e,t){return AB(this.configuration).getCollection(e.contractAddress,e.chainName,t).then((e=>e(this.axios,this.basePath)))}listCollections(e,t){return AB(this.configuration).listCollections(e.chainName,e.contractAddress,e.fromUpdatedAt,e.pageCursor,e.pageSize,t).then((e=>e(this.axios,this.basePath)))}listCollectionsByNFTOwner(e,t){return AB(this.configuration).listCollectionsByNFTOwner(e.accountAddress,e.chainName,e.pageCursor,e.pageSize,t).then((e=>e(this.axios,this.basePath)))}refreshCollectionMetadata(e,t){return AB(this.configuration).refreshCollectionMetadata(e.contractAddress,e.chainName,e.refreshCollectionMetadataRequest,t).then((e=>e(this.axios,this.basePath)))}},CollectionsApiAxiosParamCreator:EB,CollectionsApiFactory:function(e,t,n){const r=AB(e);return{getCollection:(e,i)=>r.getCollection(e.contractAddress,e.chainName,i).then((e=>e(n,t))),listCollections:(e,i)=>r.listCollections(e.chainName,e.contractAddress,e.fromUpdatedAt,e.pageCursor,e.pageSize,i).then((e=>e(n,t))),listCollectionsByNFTOwner:(e,i)=>r.listCollectionsByNFTOwner(e.accountAddress,e.chainName,e.pageCursor,e.pageSize,i).then((e=>e(n,t))),refreshCollectionMetadata:(e,i)=>r.refreshCollectionMetadata(e.contractAddress,e.chainName,e.refreshCollectionMetadataRequest,i).then((e=>e(n,t)))}},CollectionsApiFp:AB,Configuration:class{apiKey;username;password;accessToken;basePath;baseOptions;formDataCtor;constructor(e={}){this.apiKey=e.apiKey,this.username=e.username,this.password=e.password,this.accessToken=e.accessToken,this.basePath=e.basePath,this.baseOptions=e.baseOptions,this.formDataCtor=e.formDataCtor}isJsonMime(e){const t=new RegExp("^(application/json|[^;/ \t]+/[^;/ \t]+[+]json)[ \t]*(;.*)?$","i");return null!==e&&(t.test(e)||"application/json-patch+json"===e.toLowerCase())}},ERC1155ItemTypeEnum:{Erc1155:"ERC1155"},ERC20ItemTypeEnum:{Erc20:"ERC20"},ERC721ItemTypeEnum:{Erc721:"ERC721"},ExpiredOrderStatusNameEnum:{Expired:"EXPIRED"},FailedOrderCancellationReasonCodeEnum:{Filled:"FILLED"},FeeTypeEnum:{Royalty:"ROYALTY",MakerEcosystem:"MAKER_ECOSYSTEM",TakerEcosystem:"TAKER_ECOSYSTEM",Protocol:"PROTOCOL"},FilledOrderStatusNameEnum:{Filled:"FILLED"},GetContractAbiResTransactionTypeEnum:{Erc20Approve:"ERC20_APPROVE"},InactiveOrderStatusNameEnum:{Inactive:"INACTIVE"},ListListingsSortByEnum:{CreatedAt:"created_at",UpdatedAt:"updated_at",BuyItemAmount:"buy_item_amount"},ListListingsSortDirectionEnum:{Asc:"asc",Desc:"desc"},ListTradesSortByEnum:{IndexedAt:"indexed_at"},ListTradesSortDirectionEnum:{Asc:"asc",Desc:"desc"},MetadataApi:class extends sB{getMetadata(e,t){return IB(this.configuration).getMetadata(e.chainName,e.contractAddress,e.metadataId,t).then((e=>e(this.axios,this.basePath)))}listMetadata(e,t){return IB(this.configuration).listMetadata(e.chainName,e.contractAddress,e.fromUpdatedAt,e.pageCursor,e.pageSize,t).then((e=>e(this.axios,this.basePath)))}listMetadataForChain(e,t){return IB(this.configuration).listMetadataForChain(e.chainName,e.fromUpdatedAt,e.pageCursor,e.pageSize,t).then((e=>e(this.axios,this.basePath)))}refreshMetadataByID(e,t){return IB(this.configuration).refreshMetadataByID(e.chainName,e.contractAddress,e.refreshMetadataByIDRequest,t).then((e=>e(this.axios,this.basePath)))}refreshNFTMetadataByTokenID(e,t){return IB(this.configuration).refreshNFTMetadataByTokenID(e.contractAddress,e.chainName,e.refreshNFTMetadataByTokenIDRequest,t).then((e=>e(this.axios,this.basePath)))}},MetadataApiAxiosParamCreator:_B,MetadataApiFactory:function(e,t,n){const r=IB(e);return{getMetadata:(e,i)=>r.getMetadata(e.chainName,e.contractAddress,e.metadataId,i).then((e=>e(n,t))),listMetadata:(e,i)=>r.listMetadata(e.chainName,e.contractAddress,e.fromUpdatedAt,e.pageCursor,e.pageSize,i).then((e=>e(n,t))),listMetadataForChain:(e,i)=>r.listMetadataForChain(e.chainName,e.fromUpdatedAt,e.pageCursor,e.pageSize,i).then((e=>e(n,t))),refreshMetadataByID:(e,i)=>r.refreshMetadataByID(e.chainName,e.contractAddress,e.refreshMetadataByIDRequest,i).then((e=>e(n,t))),refreshNFTMetadataByTokenID:(e,i)=>r.refreshNFTMetadataByTokenID(e.contractAddress,e.chainName,e.refreshNFTMetadataByTokenIDRequest,i).then((e=>e(n,t)))}},MetadataApiFp:IB,MintRequestStatus:{Pending:"pending",Succeeded:"succeeded",Failed:"failed"},NFTContractType:{Erc721:"ERC721"},NativeItemTypeEnum:{Native:"NATIVE",Erc20:"ERC20",Erc721:"ERC721",Erc1155:"ERC1155"},NftOwnersApi:class extends sB{listAllNFTOwners(e,t){return CB(this.configuration).listAllNFTOwners(e.chainName,e.fromUpdatedAt,e.pageCursor,e.pageSize,t).then((e=>e(this.axios,this.basePath)))}listNFTOwners(e,t){return CB(this.configuration).listNFTOwners(e.contractAddress,e.tokenId,e.chainName,e.pageCursor,e.pageSize,t).then((e=>e(this.axios,this.basePath)))}listOwnersByContractAddress(e,t){return CB(this.configuration).listOwnersByContractAddress(e.contractAddress,e.chainName,e.fromUpdatedAt,e.pageCursor,e.pageSize,t).then((e=>e(this.axios,this.basePath)))}},NftOwnersApiAxiosParamCreator:RB,NftOwnersApiFactory:function(e,t,n){const r=CB(e);return{listAllNFTOwners:(e,i)=>r.listAllNFTOwners(e.chainName,e.fromUpdatedAt,e.pageCursor,e.pageSize,i).then((e=>e(n,t))),listNFTOwners:(e,i)=>r.listNFTOwners(e.contractAddress,e.tokenId,e.chainName,e.pageCursor,e.pageSize,i).then((e=>e(n,t))),listOwnersByContractAddress:(e,i)=>r.listOwnersByContractAddress(e.contractAddress,e.chainName,e.fromUpdatedAt,e.pageCursor,e.pageSize,i).then((e=>e(n,t)))}},NftOwnersApiFp:CB,NftsApi:class extends sB{getNFT(e,t){return kB(this.configuration).getNFT(e.contractAddress,e.tokenId,e.chainName,t).then((e=>e(this.axios,this.basePath)))}listAllNFTs(e,t){return kB(this.configuration).listAllNFTs(e.chainName,e.fromUpdatedAt,e.pageCursor,e.pageSize,t).then((e=>e(this.axios,this.basePath)))}listNFTs(e,t){return kB(this.configuration).listNFTs(e.contractAddress,e.chainName,e.fromUpdatedAt,e.pageCursor,e.pageSize,t).then((e=>e(this.axios,this.basePath)))}listNFTsByAccountAddress(e,t){return kB(this.configuration).listNFTsByAccountAddress(e.accountAddress,e.chainName,e.contractAddress,e.pageCursor,e.pageSize,t).then((e=>e(this.axios,this.basePath)))}},NftsApiAxiosParamCreator:OB,NftsApiFactory:function(e,t,n){const r=kB(e);return{getNFT:(e,i)=>r.getNFT(e.contractAddress,e.tokenId,e.chainName,i).then((e=>e(n,t))),listAllNFTs:(e,i)=>r.listAllNFTs(e.chainName,e.fromUpdatedAt,e.pageCursor,e.pageSize,i).then((e=>e(n,t))),listNFTs:(e,i)=>r.listNFTs(e.contractAddress,e.chainName,e.fromUpdatedAt,e.pageCursor,e.pageSize,i).then((e=>e(n,t))),listNFTsByAccountAddress:(e,i)=>r.listNFTsByAccountAddress(e.accountAddress,e.chainName,e.contractAddress,e.pageCursor,e.pageSize,i).then((e=>e(n,t)))}},NftsApiFp:kB,OrderStatusName:{Pending:"PENDING",Active:"ACTIVE",Inactive:"INACTIVE",Filled:"FILLED",Expired:"EXPIRED",Cancelled:"CANCELLED"},OrderTypeEnum:{Listing:"LISTING"},OrdersApi:class extends sB{cancelOrders(e,t){return NB(this.configuration).cancelOrders(e.chainName,e.cancelOrdersRequestBody,t).then((e=>e(this.axios,this.basePath)))}createListing(e,t){return NB(this.configuration).createListing(e.chainName,e.createListingRequestBody,t).then((e=>e(this.axios,this.basePath)))}fulfillmentData(e,t){return NB(this.configuration).fulfillmentData(e.chainName,e.fulfillmentDataRequest,t).then((e=>e(this.axios,this.basePath)))}getListing(e,t){return NB(this.configuration).getListing(e.chainName,e.listingId,t).then((e=>e(this.axios,this.basePath)))}getTrade(e,t){return NB(this.configuration).getTrade(e.chainName,e.tradeId,t).then((e=>e(this.axios,this.basePath)))}listListings(e,t){return NB(this.configuration).listListings(e.chainName,e.status,e.sellItemContractAddress,e.buyItemContractAddress,e.accountAddress,e.sellItemMetadataId,e.sellItemTokenId,e.fromUpdatedAt,e.pageSize,e.sortBy,e.sortDirection,e.pageCursor,t).then((e=>e(this.axios,this.basePath)))}listTrades(e,t){return NB(this.configuration).listTrades(e.chainName,e.accountAddress,e.fromIndexedAt,e.pageSize,e.sortBy,e.sortDirection,e.pageCursor,t).then((e=>e(this.axios,this.basePath)))}},OrdersApiAxiosParamCreator:SB,OrdersApiFactory:function(e,t,n){const r=NB(e);return{cancelOrders:(e,i)=>r.cancelOrders(e.chainName,e.cancelOrdersRequestBody,i).then((e=>e(n,t))),createListing:(e,i)=>r.createListing(e.chainName,e.createListingRequestBody,i).then((e=>e(n,t))),fulfillmentData:(e,i)=>r.fulfillmentData(e.chainName,e.fulfillmentDataRequest,i).then((e=>e(n,t))),getListing:(e,i)=>r.getListing(e.chainName,e.listingId,i).then((e=>e(n,t))),getTrade:(e,i)=>r.getTrade(e.chainName,e.tradeId,i).then((e=>e(n,t))),listListings:(e,i)=>r.listListings(e.chainName,e.status,e.sellItemContractAddress,e.buyItemContractAddress,e.accountAddress,e.sellItemMetadataId,e.sellItemTokenId,e.fromUpdatedAt,e.pageSize,e.sortBy,e.sortDirection,e.pageCursor,i).then((e=>e(n,t))),listTrades:(e,i)=>r.listTrades(e.chainName,e.accountAddress,e.fromIndexedAt,e.pageSize,e.sortBy,e.sortDirection,e.pageCursor,i).then((e=>e(n,t)))}},OrdersApiFp:NB,PassportApi:class extends sB{createCounterfactualAddress(e,t){return PB(this.configuration).createCounterfactualAddress(e.chainName,e.createCounterfactualAddressRequest,t).then((e=>e(this.axios,this.basePath)))}createCounterfactualAddressDeprecated(e,t){return PB(this.configuration).createCounterfactualAddressDeprecated(e.createCounterfactualAddressRequestDeprecated,t).then((e=>e(this.axios,this.basePath)))}createCounterfactualAddressV2(e,t){return PB(this.configuration).createCounterfactualAddressV2(e.chainName,e.createCounterfactualAddressRequest,t).then((e=>e(this.axios,this.basePath)))}getContractAbi(e,t){return PB(this.configuration).getContractAbi(e.chainName,e.contractAddress,e.methodId,t).then((e=>e(this.axios,this.basePath)))}getLinkedAddresses(e,t){return PB(this.configuration).getLinkedAddresses(e.userId,e.chainName,t).then((e=>e(this.axios,this.basePath)))}getLinkedAddressesDeprecated(e,t){return PB(this.configuration).getLinkedAddressesDeprecated(e.userId,t).then((e=>e(this.axios,this.basePath)))}},PassportApiAxiosParamCreator:xB,PassportApiFactory:function(e,t,n){const r=PB(e);return{createCounterfactualAddress:(e,i)=>r.createCounterfactualAddress(e.chainName,e.createCounterfactualAddressRequest,i).then((e=>e(n,t))),createCounterfactualAddressDeprecated:(e,i)=>r.createCounterfactualAddressDeprecated(e.createCounterfactualAddressRequestDeprecated,i).then((e=>e(n,t))),createCounterfactualAddressV2:(e,i)=>r.createCounterfactualAddressV2(e.chainName,e.createCounterfactualAddressRequest,i).then((e=>e(n,t))),getContractAbi:(e,i)=>r.getContractAbi(e.chainName,e.contractAddress,e.methodId,i).then((e=>e(n,t))),getLinkedAddresses:(e,i)=>r.getLinkedAddresses(e.userId,e.chainName,i).then((e=>e(n,t))),getLinkedAddressesDeprecated:(e,i)=>r.getLinkedAddressesDeprecated(e.userId,i).then((e=>e(n,t)))}},PassportApiFp:PB,PendingOrderStatusNameEnum:{Pending:"PENDING"},ProtocolDataOrderTypeEnum:{FullRestricted:"FULL_RESTRICTED"},SaleFeeTypeEnum:{Royalty:"ROYALTY"},TokenContractType:{Erc20:"ERC20"},TokensApi:class extends sB{getERC20Token(e,t){return BB(this.configuration).getERC20Token(e.contractAddress,e.chainName,t).then((e=>e(this.axios,this.basePath)))}listERC20Tokens(e,t){return BB(this.configuration).listERC20Tokens(e.chainName,e.fromUpdatedAt,e.pageCursor,e.pageSize,t).then((e=>e(this.axios,this.basePath)))}},TokensApiAxiosParamCreator:MB,TokensApiFactory:function(e,t,n){const r=BB(e);return{getERC20Token:(e,i)=>r.getERC20Token(e.contractAddress,e.chainName,i).then((e=>e(n,t))),listERC20Tokens:(e,i)=>r.listERC20Tokens(e.chainName,e.fromUpdatedAt,e.pageCursor,e.pageSize,i).then((e=>e(n,t)))}},TokensApiFp:BB});class FB extends Error{code;details;link;traceId;constructor({message:e,code:t,details:n,link:r,trace_id:i}){super(e),this.code=t,this.details=n,this.link=r,this.traceId=i}}const LB={sdkVersion:"ts-immutable-sdk-multi-rollup-api-client-0.45.3-alpha"},UB=({baseConfig:e,basePath:t,headers:n})=>{if(!t.trim())throw Error("basePath can not be empty");const r={...e,basePath:t,baseOptions:{headers:{...n||{},...LB}}};return new DB.Configuration(r)};class qB{apiConfig;baseConfig;constructor({baseConfig:e,overrides:t}){if(this.baseConfig=e,t)this.apiConfig=UB(t);else switch(e.environment){case Bt.SANDBOX:this.apiConfig=UB({basePath:"https://api.sandbox.immutable.com",baseConfig:e});break;case Bt.PRODUCTION:this.apiConfig=UB({basePath:"https://api.immutable.com",baseConfig:e});break;default:this.apiConfig=UB({basePath:"https://api.sandbox.immutable.com",baseConfig:e})}}}function jB(e){if($e.isAxiosError(e)&&e.response){const t=e.response.data;return t.code&&t.message?new FB({code:t.code,message:t.message,details:t.details||null,link:t.link||"",trace_id:t.trace_id||""}):new FB({code:e.code??e.response?.status.toString()??"unknown_error_code",message:String(e),details:null,link:"",trace_id:""})}return new FB({code:"unknown_error_code",message:String(e),details:null,link:"",trace_id:""})}class GB{config;activities;chains;collections;nfts;nftOwners;tokens;metadata;constructor(e){this.config=new qB(e),this.activities=new DB.ActivitiesApi(this.config.apiConfig),this.chains=new DB.ChainsApi(this.config.apiConfig),this.collections=new DB.CollectionsApi(this.config.apiConfig),this.nfts=new DB.NftsApi(this.config.apiConfig),this.nftOwners=new DB.NftOwnersApi(this.config.apiConfig),this.tokens=new DB.TokensApi(this.config.apiConfig),this.metadata=new DB.MetadataApi(this.config.apiConfig)}async listActivities(e){return await this.activities.listActivities(e).then((e=>e.data)).catch((e=>{throw jB(e)}))}async listActivityHistory(e){return await this.activities.listActivityHistory(e).then((e=>e.data)).catch((e=>{throw jB(e)}))}async getActivity(e){return await this.activities.getActivity(e).then((e=>e.data)).catch((e=>{throw jB(e)}))}async listChains(e){return await this.chains.listChains(e).then((e=>e.data)).catch((e=>{throw jB(e)}))}async listCollections(e){return await this.collections.listCollections(e).then((e=>e.data)).catch((e=>{throw jB(e)}))}async listCollectionsByNFTOwner(e){return await this.collections.listCollectionsByNFTOwner(e).then((e=>e.data)).catch((e=>{throw jB(e)}))}async getCollection(e){return await this.collections.getCollection(e).then((e=>e.data)).catch((e=>{throw jB(e)}))}async getNFT(e){return await this.nfts.getNFT(e).then((e=>e.data)).catch((e=>{throw jB(e)}))}async listNFTs(e){return await this.nfts.listNFTs(e).then((e=>e.data)).catch((e=>{throw jB(e)}))}async listNFTsByAccountAddress(e){return await this.nfts.listNFTsByAccountAddress(e).then((e=>e.data)).catch((e=>{throw jB(e)}))}async listAllNFTs(e){return await this.nfts.listAllNFTs(e).then((e=>e.data)).catch((e=>{throw jB(e)}))}async listNFTOwners(e){return await this.nftOwners.listNFTOwners(e).then((e=>e.data)).catch((e=>{throw jB(e)}))}async listNFTOwnersByContractAddress(e){return await this.nftOwners.listOwnersByContractAddress(e).then((e=>e.data)).catch((e=>{throw jB(e)}))}async listAllNFTOwners(e){return await this.nftOwners.listAllNFTOwners(e).then((e=>e.data)).catch((e=>{throw jB(e)}))}async listTokens(e){return await this.tokens.listERC20Tokens(e).then((e=>e.data)).catch((e=>{throw jB(e)}))}async getToken(e){return await this.tokens.getERC20Token(e).then((e=>e.data)).catch((e=>{throw jB(e)}))}async getMetadata(e){return await this.metadata.getMetadata(e).then((e=>e.data)).catch((e=>{throw jB(e)}))}async listNFTMetadataByContractAddress(e){return await this.metadata.listMetadata(e).then((e=>e.data)).catch((e=>{throw jB(e)}))}async listNFTMetadataByChain(e){return await this.metadata.listMetadataForChain(e).then((e=>e.data)).catch((e=>{throw jB(e)}))}async refreshCollectionMetadata(e){return await this.collections.refreshCollectionMetadata(e).then((e=>e.data)).catch((e=>{throw jB(e)}))}async refreshNFTMetadata(e){return await this.metadata.refreshNFTMetadataByTokenID(e).then((e=>e.data)).catch((e=>{throw jB(e)}))}async refreshStackedMetadata(e){return await this.metadata.refreshMetadataByID(e).then((e=>e.data)).catch((e=>{throw jB(e)}))}}function HB(t,n,r,i){const a=r.get(t),o=r.get(n);if(!a)throw new Cm(`Chain:${t} is not a supported chain`,e.CheckoutErrorType.CHAIN_NOT_SUPPORTED_ERROR);if(!o)throw new Cm(`Chain:${n} is not a supported chain`,e.CheckoutErrorType.CHAIN_NOT_SUPPORTED_ERROR);let s=rw;i.isDevelopment&&(s=nw),i.isProduction&&(s=iw);const u=new Jw({baseConfig:new Dt({environment:i.environment}),bridgeInstance:s,rootProvider:a,childProvider:o});return new Rw(u)}async function zB(e,t){const n=await t.remote.getConfig("dex");return new Bk({chainId:e,baseConfig:new Dt({environment:t.environment}),overrides:n?.overrides,secondaryFees:n?.secondaryFees})}function WB(e){return new iB({baseConfig:{environment:e.environment}})}function VB(e){return new GB({baseConfig:{environment:e.environment}})}const KB="0x0000000000000000000000000000000000000001",XB=18;async function JB(t,n){const r=Ym(n),i=Qm(n);if(!t.get(r))throw new Error(`Missing JsonRpcProvider for chain id: ${r}`);try{const a=HB(r,i,t,n),o=await async function(e,t,n,r){const i=t===Ym(r)?bw.DEPOSIT:bw.WITHDRAW;return await e.getFee({action:i,gasMultiplier:1.1,sourceChainId:t.toString(),destinationChainId:n.toString(),token:Bm.toUpperCase(),amount:kr.from(0)})}(a,r,i,n);return{gasEstimateType:e.GasEstimateType.BRIDGE_TO_L2,fees:o,token:n.networkMap.get(r)?.nativeCurrency}}catch{return{gasEstimateType:e.GasEstimateType.BRIDGE_TO_L2,fees:{sourceChainGas:kr.from(0),approvalFee:kr.from(0),bridgeFee:kr.from(0),imtblFee:kr.from(0),totalFees:kr.from(0)},token:n.networkMap.get(r)?.nativeCurrency}}}async function YB(t,n,r){switch(t.gasEstimateType){case e.GasEstimateType.BRIDGE_TO_L2:return await JB(n,r);case e.GasEstimateType.SWAP:return await async function(t){const n=Qm(t),r=await t.remote.getConfig("gasEstimateTokens"),{inAddress:i,outAddress:a}=r[n].swapAddresses;try{const r=await zB(n,t),{swap:o}=await r.getUnsignedSwapTxFromAmountIn(KB,i,a,kr.from(rm("1",XB)));return o.gasFeeEstimate?{gasEstimateType:e.GasEstimateType.SWAP,fees:{totalFees:o.gasFeeEstimate.value?kr.from(o.gasFeeEstimate.value):void 0,token:{address:o.gasFeeEstimate.token.address,symbol:o.gasFeeEstimate.token.symbol??"",name:o.gasFeeEstimate.token.name??"",decimals:o.gasFeeEstimate.token.decimals??XB}}}:{gasEstimateType:e.GasEstimateType.SWAP,fees:{}}}catch{return{gasEstimateType:e.GasEstimateType.SWAP,fees:{}}}}(r);default:throw new Cm("Invalid type provided for gasEstimateType",e.CheckoutErrorType.INVALID_GAS_ESTIMATE_TYPE)}}const QB=t=>(t=>{const n=new Map,r=[];return t.forEach((t=>{const{type:i}=t;if(i!==e.ItemType.ERC721)return void r.push(t);const{contractAddress:a,spenderAddress:o,id:s}=t,u=`${a}${o}${s}`;n.get(u)||n.set(u,{...t})})),r.concat(Array.from(n.values()))})((t=>{const n=new Map,r=[];return t.forEach((t=>{const{type:i}=t;if(i!==e.ItemType.ERC20)return void r.push(t);const{tokenAddress:a,spenderAddress:o,amount:s}=t,u=`${a}${o}`,c=n.get(u);c&&c.type===e.ItemType.ERC20?c.amount=kr.from(c.amount).add(s):n.set(u,{...t})})),r.concat(Array.from(n.values()))})((t=>{const n=new Map,r=[];return t.forEach((t=>{const{type:i}=t;if(i!==e.ItemType.NATIVE)return void r.push(t);const{amount:a}=t,o=n.get(i);o&&o.type===e.ItemType.NATIVE?o.amount=kr.from(o.amount).add(a):n.set(i,{...t})})),r.concat(Array.from(n.values()))})(t))),$B=async(t,n,r,i)=>{try{const e=new Kl(r,JSON.stringify(zm),t);return await e.allowance(n,i)}catch(t){throw new Cm("Failed to get the allowance for ERC20",e.CheckoutErrorType.GET_ERC20_ALLOWANCE_ERROR,{contractAddress:r,error:t})}},ZB=async(t,n,r,i,a)=>{try{const e=new Kl(r,JSON.stringify(zm),t),o=await e.populateTransaction.approve(i,a);return o&&(o.from=n),o}catch(t){throw new Cm("Failed to get the approval transaction for ERC20",e.CheckoutErrorType.GET_ERC20_ALLOWANCE_ERROR,{contractAddress:r,error:t})}},eD=async(t,n,r,i)=>{try{const e=new Kl(r,JSON.stringify(Wm),t);return await e.isApprovedForAll(n,i)}catch(t){throw new Cm("Failed to check approval for all ERC721s of collection",e.CheckoutErrorType.GET_ERC721_ALLOWANCE_ERROR,{ownerAddress:n,contractAddress:r,spenderAddress:i,error:t})}},tD=async(t,n,r,i,a)=>{try{const e=new Kl(r,JSON.stringify(Wm),t),o=await e.populateTransaction.approve(i,a);return o&&(o.from=n),o}catch(t){throw new Cm("Failed to get the approval transaction for ERC721",e.CheckoutErrorType.GET_ERC721_ALLOWANCE_ERROR,{id:a.toString(),contractAddress:r,spenderAddress:i,ownerAddress:n,error:t})}},nD=async(t,n,r)=>{try{const e=new Kl(n,JSON.stringify(Wm),t);return await e.getApproved(r)}catch(t){throw new Cm("Failed to get approved address for ERC721",e.CheckoutErrorType.GET_ERC721_ALLOWANCE_ERROR,{id:r.toString(),contractAddress:n,error:t})}},rD=(t,n)=>{const r=parseInt(t,10);if(Number.isNaN(r))throw new Cm("Invalid ERC721 ID",e.CheckoutErrorType.GET_ERC721_ALLOWANCE_ERROR,{id:t,contractAddress:n});return r},iD=async(t,n,r)=>{let i=!0;const a=[],o=new Map,s=new Map,u=new Map,c=new Map,l=await(async(t,n,r)=>{const i=new Map,a=new Map;for(const o of n){if(o.type!==e.ItemType.ERC721)continue;const{contractAddress:n,spenderAddress:s}=o,u=`${n}-${s}`;i.set(u,!1),a.has(u)||a.set(u,eD(t,r,n,s))}const o=await Promise.all(a.values()),s=Array.from(a.keys());return o.forEach(((e,t)=>{i.set(s[t],e)})),i})(t,r,n);for(const n of r){if(n.type!==e.ItemType.ERC721)continue;const{contractAddress:r,id:i,spenderAddress:u}=n,c=`${r}-${u}`;if(l.get(c)){a.push({sufficient:!0,itemRequirement:n});continue}const d=`${r}-${i}`,f=rD(i,r);o.set(d,n),s.set(d,nD(t,r,f))}const d=await Promise.all(s.values()),f=Array.from(s.keys());for(let r=0;r<d.length;r++){const s=o.get(f[r]);if(!s||s.type!==e.ItemType.ERC721)continue;if(d[r]===s.spenderAddress){a.push({sufficient:!0,itemRequirement:s});continue}i=!1;const{contractAddress:l,id:p,spenderAddress:h}=s,m=`${l}-${p}`,y=rD(p,l);u.set(m,{type:e.ItemType.ERC721,sufficient:!1,itemRequirement:s,approvalTransaction:void 0}),c.set(m,tD(t,n,l,h,y))}const p=await Promise.all(c.values()),h=Array.from(c.keys());return p.forEach(((e,t)=>{const n=u.get(h[t]);n&&(n.sufficient||(n.approvalTransaction=e))})),{sufficient:i,allowances:a.concat(Array.from(u.values()))}},aD=t=>(t=>{const n=new Map,r=[];return t.forEach((t=>{const{type:i}=t;if(i!==e.ItemType.ERC721)return void r.push(t);const{contractAddress:a,id:o}=t,s=`${a}${o}`;n.get(s)||n.set(s,{...t})})),r.concat(Array.from(n.values()))})((t=>{const n=new Map,r=[];return t.forEach((t=>{const{type:i}=t;if(i!==e.ItemType.ERC20)return void r.push(t);const{tokenAddress:a,amount:o}=t,s=`${a}`,u=n.get(s);u&&u.type===e.ItemType.ERC20?u.amount=kr.from(u.amount).add(o):n.set(s,{...t})})),r.concat(Array.from(n.values()))})((t=>{const n=new Map,r=[];return t.forEach((t=>{const{type:i}=t;if(i!==e.ItemType.NATIVE)return void r.push(t);const{amount:a}=t,o=n.get(i);o&&o.type===e.ItemType.NATIVE?o.amount=kr.from(o.amount).add(a):n.set(i,{...t})})),r.concat(Array.from(n.values()))})(t))),oD=async(t,n,r,i,a=!1)=>{try{const o=new Map;(t=>t.map((t=>{switch(t.type){case e.ItemType.ERC20:return{address:t.tokenAddress};case e.ItemType.NATIVE:return{address:Bm};case e.ItemType.ERC721:default:return{address:t.contractAddress}}})))(i).forEach((e=>{e.address&&o.set(e.address.toLocaleLowerCase(),e)}));const{balances:s}=await dy(t,n,r,Qm(t),a);return s.filter((e=>o.get((e.token.address||Bm).toLocaleLowerCase())))}catch(t){throw new Cm("Failed to get balances",e.CheckoutErrorType.GET_BALANCE_ERROR,{error:t})}},sD=async(t,n,r,i,a=!1)=>{const o=aD(i),s=[],u=[];if(o.forEach((t=>{switch(t.type){case e.ItemType.ERC20:case e.ItemType.NATIVE:s.push(t);break;case e.ItemType.ERC721:u.push(t)}})),0===u.length&&0===s.length)throw new Cm("Unsupported item requirement balance check",e.CheckoutErrorType.UNSUPPORTED_BALANCE_REQUIREMENT_ERROR);const c=[];s.length>0&&c.push(oD(t,n,r,o,a)),u.length>0&&c.push((async(t,n,r)=>{const i=[],a=new Map,o=new Map;r.forEach((n=>{if(n.type!==e.ItemType.ERC721)return;const r=new Kl(n.contractAddress,JSON.stringify(Wm),t);a.set(n.contractAddress,n),o.set(n.contractAddress,r.ownerOf(n.id))}));try{const t=await Promise.all(o.values()),r=Array.from(o.keys());t.forEach(((t,o)=>{const s=a.get(r[o]);let u=0;s&&Zm(n,t)&&(u=1),i.push({type:e.ItemType.ERC721,balance:kr.from(u),formattedBalance:u.toString(),contractAddress:s.contractAddress,id:s.id})}))}catch(t){throw new Cm("Failed to get ERC721 balances",e.CheckoutErrorType.GET_ERC721_BALANCE_ERROR,{error:t})}return i})(n,r,o));const l=await Promise.all(c),d=[];if(s.length>0&&l.length>0){const t=l.shift();t&&s.forEach((n=>{d.push(((t,n)=>{let r;t.type===e.ItemType.ERC20?r=n.find((e=>Zm(e.token?.address,t.tokenAddress))):t.type===e.ItemType.NATIVE&&(r=n.find((e=>ty(e.token?.address))));const i=t.amount,a=i.isNegative()||i.isZero()||(r?.balance.gte(i)??!1),o=i.sub(r?.balance??kr.from(0));let s="",u="",c=Mm;r&&(c=r.token?.decimals??Mm,s=r.token.name,u=r.token.symbol);let l=r;return t.type===e.ItemType.NATIVE?(l||(l={type:e.ItemType.NATIVE,balance:kr.from(0),formattedBalance:"0",token:Dm}),{sufficient:a,type:e.ItemType.NATIVE,delta:{balance:o,formattedBalance:nm(o,c)},current:{...l,type:e.ItemType.NATIVE},required:{...l,type:e.ItemType.NATIVE,balance:kr.from(t.amount),formattedBalance:nm(t.amount,c)}}):(l||(l={type:t.type,balance:kr.from(0),formattedBalance:"0",token:{name:s,symbol:u,address:t.tokenAddress,decimals:c}}),{sufficient:a,type:e.ItemType.ERC20,delta:{balance:o,formattedBalance:nm(o,c)},current:l,required:{...l,balance:kr.from(t.amount),formattedBalance:nm(t.amount,c)}})})(n,t))}))}if(u.length>0&&l.length>0){const t=l.shift();t&&u.forEach((n=>{d.push(((t,n)=>{const r=kr.from(1),i=n.find((e=>{const n=e;return Zm(n.contractAddress,t.contractAddress)&&n.id===t.id})),a=r.isNegative()||r.isZero()||(i?.balance.gte(r)??!1),o=r.sub(i?.balance??kr.from(0));let s=i;return s||(s={type:e.ItemType.ERC721,balance:kr.from(0),formattedBalance:"0",contractAddress:t.contractAddress,id:t.id}),{sufficient:a,type:e.ItemType.ERC721,delta:{balance:o,formattedBalance:o.toString()},current:s,required:{...s,balance:kr.from(1),formattedBalance:"1"}}})(n,t))}))}return{sufficient:void 0===d.find((e=>!1===e.sufficient)),balanceRequirements:d}},uD=async(t,n)=>{try{return await t.estimateGas(n)}catch(t){throw new Cm("Failed to estimate gas for transaction",e.CheckoutErrorType.UNPREDICTABLE_GAS_LIMIT,{error:t})}},cD=async(t,n,r)=>{const i=[];let a=kr.from(0);for(const e of n)void 0!==e.approvalTransaction&&i.push(uD(t,e.approvalTransaction));if(r.type===e.TransactionOrGasType.TRANSACTION)i.push(uD(t,r.transaction));else{const e=(e=>(e=>!!e.maxFeePerGas&&!!e.maxPriorityFeePerGas)(e)?kr.from(e.maxFeePerGas).add(kr.from(e.maxPriorityFeePerGas)):e.gasPrice?kr.from(e.gasPrice):null)(await t.getFeeData());if(null!==e){const t=e?.mul(r.gasToken.limit);t&&(a=a.add(t))}}return(await Promise.all(i)).forEach((e=>{a=a.add(e)})),a.eq(0)?null:((t,n)=>n.type===e.TransactionOrGasType.TRANSACTION||n.gasToken.type===e.GasTokenType.NATIVE?{type:e.ItemType.NATIVE,amount:t}:{type:e.ItemType.ERC20,amount:t,tokenAddress:n.gasToken.tokenAddress,spenderAddress:""})(a,r)},lD=(t,n)=>({checkDexAvailability:async()=>{let r;try{r=await $e.post(`${t?Fm[Pm]:n?Fm[Bt.PRODUCTION]:Fm[Bt.SANDBOX]}/v1/availability/checkout/swap`)}catch(t){if(r=t.response,403===r.status)return!1;throw new Cm(`Error fetching from api: ${r.status} ${r.statusText}`,e.CheckoutErrorType.API_ERROR,{error:t})}return!0}}),dD=async()=>!0,fD=async e=>{const t=lD(e.isDevelopment,e.isProduction);try{return await t.checkDexAvailability()}catch{return!1}};async function pD(t,n){if(t.isProduction&&n?.has(e.ChainId.ETHEREUM))return n;if(n?.has(e.ChainId.SEPOLIA))return n;const r=new Map;return(await Sm(t,{type:e.NetworkFilterTypes.ALL})).networks.forEach((e=>{const n=t.networkMap.get(e.chainId)?.rpcUrls[0],i=new Dp(n);r.set(e.chainId,i)})),r}const hD=async(e,t,n,r,i)=>{const a=new Map;try{const o=await zB(t,e),s=[],u=[];for(const e of i)e!==r.address&&(s.push(o.getUnsignedSwapTxFromAmountOut(n,e,r.address,r.amount,1)),u.push(e));return(await oy(e,"Time to resolve swap quotes from the dex",Promise.allSettled(s))).forEach(((e,t)=>{if("rejected"===e.status)return;const n=u[t];a.set(n,{quote:e.value.quote,approval:e.value.approval?.gasFeeEstimate??null,swap:e.value.swap.gasFeeEstimate})})),a}catch{return a}},mD=(t,n,r)=>{let i,a=kr.from(0),o="0";t&&(a=t.value,o=nm(t.value,t.token.decimals),i={name:t.token.name??"",symbol:t.token.symbol??"",address:t.token.address,decimals:t.token.decimals});let s,u=kr.from(0),c="0";n&&(u=n.value,c=nm(n.value,n.token.decimals),s={name:n.token.name??"",symbol:n.token.symbol??"",address:n.token.address,decimals:n.token.decimals});const l=[];for(const t of r)l.push({type:e.FeeType.SWAP_FEE,amount:t.amount.value,formattedAmount:nm(t.amount.value,t.amount.token.decimals),token:{name:t.amount.token.name??"",symbol:t.amount.token.symbol??"",address:t.amount.token.address,decimals:t.amount.token.decimals}});return{approvalGasFee:{type:e.FeeType.GAS,amount:a,formattedAmount:o,token:i},swapGasFee:{type:e.FeeType.GAS,amount:u,formattedAmount:c,token:s},swapFees:l}},yD=(t,n,r,i)=>{const a=r.token.address;let o=e.ItemType.ERC20;return ty(a)&&(o=e.ItemType.NATIVE),{type:e.FundingStepType.SWAP,chainId:t,fundingItem:{type:o,fundsRequired:{amount:n,formattedAmount:nm(n,r.token.decimals)},userBalance:{balance:r.balance,formattedBalance:r.formattedBalance},token:r.token},fees:i}},gD=(e,t)=>{if(!t)return{sufficient:!0,approvalGasFee:kr.from(0),approvalGasTokenAddress:""};const n=t.value,r=t.token.address;if(0===e.length)return{sufficient:!1,approvalGasFee:n,approvalGasTokenAddress:r};const i=e.find((e=>ty(e.token.address)&&ty(r)||Zm(e.token.address,r)));return i?i.balance.lt(n)?{sufficient:!1,approvalGasFee:n,approvalGasTokenAddress:r}:{sufficient:!0,approvalGasFee:n,approvalGasTokenAddress:r}:{sufficient:!1,approvalGasFee:n,approvalGasTokenAddress:r}},bD=(e,t,n,r,i)=>{const a=new Map;if(t.approvalGasFee.gt(kr.from(0))&&a.set(t.approvalGasTokenAddress,t.approvalGasFee),n){const e=a.get(n.token.address);e?a.set(n.token.address,e.add(n.value)):a.set(n.token.address,n.value)}if(i){const e=a.get(i.address);e?a.set(i.address,e.add(i.amount)):a.set(i.address,i.amount)}for(const e of r){const t=a.get(e.amount.token.address);t?a.set(e.amount.token.address,t.add(e.amount.value)):a.set(e.amount.token.address,e.amount.value)}for(const[t,n]of a.entries()){if(n===kr.from(0))continue;const r=e.find((e=>ty(e.token.address)&&ty(t)||Zm(e.token.address,t)));if(!r)return!1;if(r.balance.lt(n))return!1}return!0},vD=(t,n,r,i,a,o)=>{let s=kr.from(0),u="",c=!1;if(n.balanceRequirements.forEach((n=>{n.type!==e.ItemType.NATIVE&&n.type!==e.ItemType.ERC20||n.required.token.address&&Zm(n.required.token.address,r)&&(u=n.required.token.address,c=!0,s=t.sub(n.required.balance))})),!c)return!0;Zm(a.approvalGasTokenAddress,u)&&(s=s.sub(a.approvalGasFee));for(const e of o)Zm(e.amount.token.address,u)&&(s=s.sub(e.amount.value));return s.gte(i)},TD=async(t,n,r,i,a,o,s)=>{const u=[];if(!n.swap)return u;if(0===o.length)return u;if(!(t=>t.type===e.ItemType.ERC20?!!t.required.token.address:t.type===e.ItemType.NATIVE&&ty(t.required.token.address))(i))return u;const c=(t=>{let n="",r=kr.from(0);switch(t.type){case e.ItemType.ERC20:n=t.required.token.address,r=t.delta.balance;break;case e.ItemType.NATIVE:r=t.delta.balance}return{address:n,amount:r}})(i),l=Qm(t),d=a.get(l);if(!d)return u;const f=d.balances;if(0===f.length)return u;const p=await hD(t,Qm(t),r,c,o),h=Array.from(p.keys());for(const e of h){const t=p.get(e);if(!t)continue;const n=f.find((t=>Zm(t.token.address,e)));if(!n)continue;const r=t.quote.amount;if(n.balance.lt(r.value))continue;const i=gD(f,t.approval);if(!i.sufficient)continue;if(!bD(f,i,t.swap,t.quote.fees,{amount:r.value,address:e}))continue;if(!vD(n.balance,s,e,r.value,i,t.quote.fees))continue;const a=mD(t.approval,t.swap,t.quote.fees);u.push(yD(l,r.value,n,a))}return u},wD=(e,t)=>t&&t.success?e.filter((e=>"address"in e?t.balances.find((t=>Zm(t.token.address,e.address)&&t.balance.gt(0))):t.balances.find((e=>!("address"in e.token)&&e.balance.gt(0))))):[],ED=async(t,n)=>{if(n.onRamp){return(await ey(t,{type:e.TokenFilterTypes.ONRAMP})).tokens}return[]},AD=async(t,n,r)=>{if(r.bridge){const r=Ym(t),i=(await ey(t,{type:e.TokenFilterTypes.BRIDGE,chainId:r})).tokens,a=n.get(r);return wD(i,a)}return[]},_D=async(t,n,r)=>{const i={};return i.swap=await(async(t,n,r)=>{if(r.swap){const r=(await ey(t,{type:e.TokenFilterTypes.SWAP})).tokens,i=n.get(Qm(t));return wD(r,i)}return[]})(t,n,r),i.bridge=await AD(t,n,r),i.onRamp=await ED(t,r),i},ID="0x0000000000000000000000000000000000000eee",RD=async(e,t)=>(await t.remote.getConfig("imxAddressMapping"))[e]??"",CD=async(t,n)=>{if(ty(n))return{l1address:await RD(Ym(t),t),l2address:Bm};const r=(i=Qm(t))===e.ChainId.IMTBL_ZKEVM_MAINNET?e.ChainSlug.IMTBL_ZKEVM_MAINNET:i===e.ChainId.IMTBL_ZKEVM_TESTNET?e.ChainSlug.IMTBL_ZKEVM_TESTNET:i===e.ChainId.IMTBL_ZKEVM_DEVNET?e.ChainSlug.IMTBL_ZKEVM_DEVNET:"";var i;const a=VB(t),o=(await a.getToken({chainName:r,contractAddress:n})).result.root_contract_address;return Zm(o??"",ID)?{l1address:"native",l2address:n}:null!==o?{l1address:o,l2address:n}:void 0},OD=(e,t)=>(e=>{for(const t of e.balances)if(ty(t.token.address))return t.balance;return kr.from(0)})(e).gte(t),kD=(t,n,r,i,a)=>{const o=a?.decimals??Mm,s=[];return n.gt(0)&&s.push({type:e.FeeType.BRIDGE_FEE,amount:n,formattedAmount:nm(n,o),token:a}),r.gt(0)&&s.push({type:e.FeeType.IMMUTABLE_FEE,amount:r,formattedAmount:nm(r,o),token:a}),{approvalGasFee:{type:e.FeeType.GAS,amount:i,formattedAmount:nm(i,Mm),token:a},bridgeGasFee:{type:e.FeeType.GAS,amount:t,formattedAmount:nm(t,Mm),token:a},bridgeFees:s}},SD=(t,n,r,i,a)=>({type:e.FundingStepType.BRIDGE,chainId:t,fundingItem:{type:i,fundsRequired:{amount:r.amount,formattedAmount:r.formattedAmount},userBalance:{balance:n.balance,formattedBalance:n.formattedBalance},token:{name:n.token.name,symbol:n.token.symbol,address:n.token.address,decimals:n.token.decimals}},fees:a}),ND=async(t,n,r,i,a)=>{if(!r.bridge)return;const o=Ym(t),s=Qm(t),u=t.networkMap.get(o)?.nativeCurrency,c=a.get(o);if(!n.get(o))throw new Cm("No L1 provider available",e.CheckoutErrorType.PROVIDER_ERROR,{chainId:o.toString()});if(void 0===c||!1===c.success)return;const l=await AD(t,a,r);if(0===l.length)return;const d=await CD(t,i.l2address);if(!d)return;const{l1address:f}=d;if(ty(f)){if(!l.find((e=>ty(e.address))))return}else if(!l.find((e=>Zm(e.address,f))))return;const p=await(async(t,n,r,i)=>{const a=HB(r,i,n,t);try{return{...await a.getFee({action:bw.DEPOSIT,gasMultiplier:1.1,sourceChainId:r.toString(),destinationChainId:i.toString()}),approvalGas:kr.from(0)}}catch(t){throw new Cm("Error estimating gas for bridge",e.CheckoutErrorType.BRIDGE_GAS_ESTIMATE_ERROR,{error:t})}})(t,n,o,s),{sourceChainGas:h,approvalGas:m,bridgeFee:y,imtblFee:g,totalFees:b}=p;if(!OD(c,b))return;if(ty(f)){const t=c.balances.find((e=>ty(e.token.address)));if(t&&t.balance.gte(i.amount.add(b))){const n=kD(h,y,g,m,u);return SD(o,t,i,e.ItemType.NATIVE,n)}return}const v=c.balances.find((e=>Zm(e.token.address,f)));if(v&&v.balance.gte(i.amount)){const t=kD(h,y,g,m,u);return SD(o,v,i,e.ItemType.ERC20,t)}},xD=(e,t)=>{let n=kr.from(0);return e.quote.fees.forEach((e=>{Zm(e.amount.token.address,t)&&(n=n.add(e.amount.value))})),e.approval&&Zm(e.approval.token.address,t)&&(n=n.add(e.approval.value)),n},PD=(t,n)=>{for(const r of t.balanceRequirements)if((r.type===e.ItemType.NATIVE||r.type===e.ItemType.ERC20)&&Zm(r.required.token.address,n))return r.required.balance;return kr.from(0)},MD=(e,t,n)=>{const r=n?.balance??kr.from(0);if(r.gte(e.add(t)))return kr.from(0);if(r.lte(0))return e.add(t);const i=r.sub(t);return i.gte(0)?e.sub(i):e.add(t).sub(r)},BD=async(e,t,n,r,i,a,o,s,u)=>{const{l1balances:c,l2balances:l}=((e,t)=>{const n={l1balances:[],l2balances:[]},r=t.get(Ym(e)),i=t.get(Qm(e));return r?void 0!==r.error?n:r.success&&i?void 0!==i.error?n:i.success?{l1balances:r.balances,l2balances:i.balances}:n:n:n})(e,a),d=r.required.token.address;if(((e,t,n,r,i,a)=>0===e.length||0===t.length||0===n.length||0===r.length||!i.bridge||!i.swap||void 0===a||""===a)(o,s,c,l,n,d))return[];const f=await(async(e,t)=>{const n=t.map((t=>CD(e,t.address??"")));return(await Promise.all(n)).filter((e=>void 0!==e))})(e,s),p=((e,t,n,r)=>{const i=[];for(const a of r){if(!t.includes(a.l1address))continue;if(Zm(a.l2address,e))continue;const r=n.find((e=>Zm(e.address,a.l2address)));r&&i.push(r)}return i})(d,o,s,f);if(0===p.length)return[];const h=await(async(e,t,n,r,i)=>{const a=[];for(const e of i)e.address&&a.push(e.address);return await hD(e,Qm(e),t,{address:n,amount:r.delta.balance},a)})(e,i,d,r,p),m=((e,t,n,r,i)=>{const a=[];for(const[o,s]of e){const e=n.find((e=>Zm(e.token.address,o))),u=r.find((e=>Zm(e.l2address,o)));if(!u)continue;const{l1address:c,l2address:l}=u;if(!c)continue;const d=t.find((e=>!(void 0!==e.token.address||!Zm(c,ID))||Zm(e.token.address,c)));if(!d)continue;const f=s.quote.amountWithMaxSlippage.value,p=xD(s,o),h=f.add(p),m=PD(i,o),y=MD(h,m,e);y.lte(0)||y.gte(d.balance)||a.push({amount:y,formattedAmount:nm(y,d.token.decimals),l2address:l})}return a})(h,c,l,f,u);if(0===m.length)return[];const y=new Map,g=new Map,b=[];for(const r of m)r.l2address&&(y.set(r.l2address,ND(e,t,n,r,a)),g.set(r.l2address,{amount:r.amount,formattedAmount:r.formattedAmount,l2address:r.l2address}));const v=await Promise.all(y.values()),T=Array.from(y.keys()),w=[];if(v.forEach(((e,t)=>{const n=T[t];if(void 0===e)return;w.push(n);const r=g.get(n);r&&b.push({amount:r.amount,formattedAmount:r.formattedAmount,l2address:r.l2address})})),0===w.length)return[];if(0===b.length)return[];const E=((e,t,n,r,i)=>{const a=new Map;for(const[e,n]of t)a.set(e,{success:n.success,balances:n.balances});const o=new Map;for(const e of n)e.token.address&&o.set(e.token.address,e);for(const e of r){const{amount:t,l2address:n}=e;if(""===n)continue;let r=kr.from(0);const a=o.get(n);a&&(r=a.balance);const s=r.add(t),u=i.find((e=>Zm(e.address,n)));o.set(n,{balance:s,formattedBalance:nm(s,u.decimals),token:u})}const s=Array.from(o.values());return a.set(Qm(e),{success:!0,balances:s}),a})(e,a,l,b,s),A=await TD(e,n,i,r,E,w,u);if(!A)return[];const _=((e,t)=>{const n=[];for(const r of t){const{chainId:t,fundingItem:i}=r,{userBalance:a}=r.fundingItem,o=e.get(t);if(!o)continue;let s=kr.from(0),u="0";const c=o.balances.find((e=>Zm(e.token.address,i.token.address)));c&&(s=c.balance,u=c.formattedBalance),a.balance=s,a.formattedBalance=u,n.push(r)}return n})(a,A);return((e,t,n)=>{const r=[];for(const i of e){if(!i)continue;const e=n.find((e=>void 0===i.fundingItem.token.address?Zm(e.l1address,ID)&&e.l2address:Zm(e.l1address,i.fundingItem.token.address)&&e.l2address));if(!e)continue;const a=t.find((t=>Zm(t.fundingItem.token.address,e.l2address)));a&&r.push({bridgeFundingStep:i,swapFundingStep:a})}return r})(v,_,f)},DD=async(t,n,r)=>{if(!n.onRamp)return;if(void 0===r)return;const i=await(async(t,n,r)=>{if(![e.ItemType.ERC20,e.ItemType.NATIVE].includes(r.type))return;const{required:i,current:a,delta:o}=r;let s=!1;return(await ED(t,n)).forEach((e=>{e.address&&i.token&&(ty(i.token.address)||Zm(e.address,i.token.address))&&(s=!0)})),s?{type:e.FundingStepType.ONRAMP,chainId:Qm(t),fundingItem:{type:ty(i.token.address)?e.ItemType.NATIVE:e.ItemType.ERC20,fundsRequired:{amount:o.balance,formattedAmount:o.formattedBalance},userBalance:{balance:a.balance,formattedBalance:a.formattedBalance},token:i.token}}:void 0})(t,n,r);return i},FD=async(t,n,r,i)=>{if(!(e=>e.bridge||e.swap||e.onRamp)(i))return{type:e.RoutingOutcomeType.NO_ROUTE_OPTIONS,message:"No routing options are available"};let a;try{a=await pD(t)}catch(t){throw new Cm("Error occurred while creating read only providers",e.CheckoutErrorType.PROVIDER_ERROR,{error:t})}const o=await oy(t,"Time to get token balances inside router",(async(t,n,r,i)=>{const a=new Map,o=new Map;if(0===n.size){const n={success:!1,error:new Cm("No L1 or L2 provider available",e.CheckoutErrorType.PROVIDER_ERROR),balances:[]};return a.set(Ym(t),n),a.set(Qm(t),n),a}if(i.bridge){const i=Ym(t);n.has(i)?o.set(i,dy(t,n.get(i),r,i)):a.set(Ym(t),{success:!1,error:new Cm(`No L1 provider available for ${i}`,e.CheckoutErrorType.PROVIDER_ERROR),balances:[]})}const s=Qm(t);if(n.has(s)?o.set(s,dy(t,n.get(s),r,s)):a.set(Qm(t),{success:!1,error:new Cm(`No L2 provider available for ${s}`,e.CheckoutErrorType.PROVIDER_ERROR),balances:[]}),o.size>0){const t=Array.from(o.keys());(await Promise.allSettled(o.values())).forEach(((n,r)=>{const i=t[r];"fulfilled"===n.status?a.set(i,{success:!0,balances:n.value.balances}):a.set(i,{success:!1,error:new Cm(`Error getting ${s} balances`,e.CheckoutErrorType.GET_BALANCE_ERROR),balances:[]})}))}return a})(t,a,n,i)),s=await oy(t,"Time to get routing allowlist",_D(t,o,i)),u=(e=>{let t,n=0;for(const r of e.balanceRequirements)r.sufficient||(n++,t=r);if(1===n)return t})(r),c=[];c.push((async(t,n,r,i,a)=>{let o;if(void 0===i)return;if(i.type!==e.ItemType.NATIVE&&i.type!==e.ItemType.ERC20)return;const s={amount:i.delta.balance,formattedAmount:i.delta.formattedBalance,l2address:i.required.token.address??""};return r.bridge&&i&&(o=await ND(t,n,r,s,a)),o})(t,a,i,u,o)),c.push((async(e,t,n,r,i,a,o)=>{const s=[];if(!t.swap)return s;if(void 0===n)return s;if(void 0===a)return s;const u=i.get(Qm(e));if(!u)return s;if(void 0!==u.error||!u.success)return s;if(0===a.length)return s;const c=a.filter((e=>e.address)).map((e=>e.address));return 0===c.length?s:await TD(e,t,r,n,i,c,o)})(t,i,u,n,o,s.swap,r)),c.push(DD(t,i,u)),c.push((async(t,n,r,i,a,o,s,u)=>{if(!i)return[];const c=o.get(Ym(t)),l=o.get(Qm(t));if(!c)return[];if(void 0!==c.error||!c.success)return[];if(!l)return[];if(void 0!==l.error||!l.success)return[];const d=(s?.bridge??[]).map((e=>void 0===e.address?ID:e.address)),f=s?.swap??[];return i.type!==e.ItemType.NATIVE&&i.type!==e.ItemType.ERC20?[]:await BD(t,n,r,i,a,o,d,f,u)})(t,a,i,u,n,o,s,r));const l=await oy(t,"Time to resolve all routes",Promise.all(c));let d,f,p=[],h=[];if(l.forEach(((e,t)=>{0===t&&(d=e),1===t&&(p=e),2===t&&(f=e),3===t&&(h=e)})),!d&&0===p.length&&!f&&0===h.length)return{type:e.RoutingOutcomeType.NO_ROUTES_FOUND,message:"Smart Checkout did not find any funding routes to fulfill the transaction"};const m={type:e.RoutingOutcomeType.ROUTES_FOUND,fundingRoutes:[]};let y=0;return p.length>0&&(y++,p.forEach((e=>{m.fundingRoutes.push({priority:y,steps:[e]})}))),d&&(y++,m.fundingRoutes.push({priority:y,steps:[d]})),f&&(y++,m.fundingRoutes.push({priority:y,steps:[f]})),h&&(y++,h.forEach((e=>{const t=e.bridgeFundingStep,n=e.swapFundingStep;m.fundingRoutes.push({priority:y,steps:[t,n]})}))),m},LD=async(t,n,r,i)=>{const a=await n.getSigner().getAddress();let o=QB(r);const s=(async(t,n,r)=>{let i=!0;const a=[],o=new Map,s=new Map,u=new Map,c=new Map;for(const i of r){if(i.type!==e.ItemType.ERC20)continue;const{tokenAddress:r,spenderAddress:a}=i,u=`${r}${a}`;o.set(u,i),s.set(u,$B(t,n,r,a))}const l=await Promise.all(s.values()),d=Array.from(s.keys());for(let r=0;r<l.length;r++){const s=o.get(d[r]);if(!s||s.type!==e.ItemType.ERC20)continue;if(l[r].gte(s.amount)){a.push({sufficient:!0,itemRequirement:s});continue}i=!1;const{tokenAddress:f,spenderAddress:p}=s,h=`${f}${p}`,m=s.amount.sub(l[r]);u.set(h,{type:e.ItemType.ERC20,sufficient:!1,delta:m,itemRequirement:s,approvalTransaction:void 0}),c.set(h,ZB(t,n,f,p,m))}const f=await Promise.all(c.values()),p=Array.from(c.keys());return f.forEach(((e,t)=>{const n=u.get(p[t]);n&&(n.sufficient||(n.approvalTransaction=e))})),{sufficient:i,allowances:a.concat(Array.from(u.values()))}})(n,a,o),u=iD(n,a,o),c=await oy(t,"Time to calculate token allowances",Promise.all([s,u])),l=((e,t)=>{const n=[];if(!e.sufficient)for(const t of e.allowances)t.sufficient||n.push(t);if(!t.sufficient)for(const e of t.allowances)e.sufficient||n.push(e);return n})(c[0],c[1]),d=await oy(t,"Time to run gas calculator",cD(n,l,i));null!==d&&(o.push(d),o=QB(o));const f=await oy(t,"Time to run balance checks",sD(t,n,a,o,!0)),{sufficient:p}=f,h=f.balanceRequirements;if(p)return{sufficient:p,transactionRequirements:h};const m=await oy(t,"Time to fetch available routing options",(async(e,t)=>{const n={onRamp:e.isOnRampEnabled,swap:e.isSwapEnabled,bridge:e.isBridgeEnabled},r=[];if(n.onRamp&&r.push({id:"onRamp",promise:dD()}),n.swap&&r.push({id:"swap",promise:fD(e)}),r.length>0){const e=r.map((e=>e.promise));(await Promise.allSettled(e)).forEach(((e,t)=>{const i=r[t].id;n[i]=n[i]&&"fulfilled"===e.status&&e.value}))}return n.bridge=n.bridge&&!(e=>!0===e.provider?.isPassport??!1)(t),n})(t,n));return{sufficient:p,transactionRequirements:h,router:{availableRoutingOptions:m,routingOutcome:await oy(t,"Total time to run the routing calculator",FD(t,a,f,m))}}};var UD;!function(e){e.SUCCESS="SUCCESS",e.FAILED="FAILED"}(UD||(UD={}));const qD=async(t,n)=>{let r=[];try{const e=await Promise.all(n.map((e=>by(t,e))));r=await Promise.all(e.map((e=>e.transactionResponse.wait())))}catch(t){throw new Cm("An error occurred while executing the approval transaction",e.CheckoutErrorType.EXECUTE_APPROVAL_TRANSACTION_ERROR,{error:t})}for(const e of r)if(0===e.status)return{type:UD.FAILED,transactionHash:e.transactionHash,reason:"Approval transaction failed and was reverted"};return{type:UD.SUCCESS}},jD=async(t,n)=>{let r=[];try{const e=await Promise.all(n.map((e=>by(t,e))));r=await Promise.all(e.map((e=>e.transactionResponse.wait())))}catch(t){throw new Cm("An error occurred while executing the fulfillment transaction",e.CheckoutErrorType.EXECUTE_FULFILLMENT_TRANSACTION_ERROR,{error:t})}for(const e of r)if(0===e.status)return{type:UD.FAILED,transactionHash:e.transactionHash,reason:"Fulfillment transaction failed and was reverted"};return{type:UD.SUCCESS}},GD=async e=>{let t=[];const n=[];for(const t of e)t.type===HM.TRANSACTION&&t.purpose===jM.FULFILL_ORDER&&n.push(t.buildTransaction());return t=await Promise.all(n),t},HD=(e,t)=>{const n=e.amount,r=Math.round(n.percentageDecimal*10**6);return t.mul(kr.from(r)).div(10**6)},zD=(e,t)=>rm(e.amount.token,t),WD=(t,n,r=18)=>{let i=kr.from(0);const a=kr.from(n),o=a.mul(1e6).div(10**6),s=[];for(const n of t){let t=kr.from(0);if(Object.hasOwn(n.amount,"percentageDecimal"))t=HD(n,a),i=i.add(t);else{if(!Object.hasOwn(n.amount,"token"))throw new Cm("Unknown fee type parsed, must be percentageDecimal or token",e.CheckoutErrorType.ORDER_FEE_ERROR);t=zD(n,r),i=i.add(t)}if(i.gt(o))throw new Cm("The combined fees are above the allowed maximum of 100%",e.CheckoutErrorType.ORDER_FEE_ERROR);t.gt(0)&&s.push({amount:t.toString(),recipientAddress:n.recipient})}return s},VD=(t,n,r,i)=>{switch(t){case e.ItemType.ERC20:return{type:t,amount:r,tokenAddress:n,spenderAddress:i};case e.ItemType.NATIVE:default:return{type:e.ItemType.NATIVE,amount:r}}},KD=async(t,n,r,i={waitFulfillmentSettlements:!0})=>{if(0===r.length)throw new Cm("No orders were provided to the orders array. Please provide at least one order.",e.CheckoutErrorType.FULFILL_ORDER_LISTING_ERROR);let a,o="",s=18;const u=aB,c=WB(t),l=VB(t),d=await oy(t,"Time to get the address from the provider",n.getSigner().getAddress());ly(),dy(t,n,d,Ym(t)),dy(t,n,d,Qm(t));const{id:f,takerFees:p}=r[0];let h;try{a=await oy(t,"Time to fetch the listing from the orderbook",c.getListing(f));const{seaportContractAddress:e,chainName:n}=c.config();h=n,o=e}catch(t){throw new Cm("An error occurred while getting the order listing",e.CheckoutErrorType.GET_ORDER_LISTING_ERROR,{error:t,orderId:f})}if(0===a.result.buy.length)throw new Cm("An error occurred with the get order listing",e.CheckoutErrorType.GET_ORDER_LISTING_ERROR,{orderId:f,message:"No buy side tokens found on order"});const m=a.result.buy[0];if("ERC20"===m.type){const e=await oy(t,"Time to get decimals of token contract for the buy token",l.getToken({contractAddress:m.contractAddress,chainName:h}));e.result.decimals&&(s=e.result.decimals)}let y=[];p&&p.length>0&&(y=WD(p,m.amount,s));let g=[],b=[],v=[];const T=performance.now();try{const{actions:e}=await oy(t,"Time to call fulfillOrder from the orderbook",c.fulfillOrder(f,d,y));v=e,g=await oy(t,"Time to construct the unsigned approval transactions",(async e=>{let t=[];const n=[];for(const t of e)t.type===HM.TRANSACTION&&t.purpose===jM.APPROVAL&&n.push(t.buildTransaction());return t=await Promise.all(n),t})(e))}catch(n){const r=(performance.now()-T)/1e3;if(ay(t,"Time to call fulfillOrder from the orderbook",r),n.message.includes(LM.EXPIRED))throw new Cm("Order is expired",e.CheckoutErrorType.ORDER_EXPIRED_ERROR,{orderId:f});if(!n.message.includes("The fulfiller does not have the balances needed to fulfill"))throw new Cm("Error occurred while trying to fulfill the order",e.CheckoutErrorType.FULFILL_ORDER_LISTING_ERROR,{orderId:f,error:n})}try{b=await oy(t,"Time to construct the unsigned fulfillment transactions",GD(v))}catch{}let w=kr.from("0"),E=e.ItemType.NATIVE,A="";const _=a.result.buy;if(_.length>0)switch(_[0].type){case"NATIVE":E=e.ItemType.NATIVE;break;case"ERC20":E=e.ItemType.ERC20,A=_[0].contractAddress;break;default:throw new Cm("Purchasing token type is unsupported",e.CheckoutErrorType.UNSUPPORTED_TOKEN_TYPE_ERROR,{orderId:f})}_.forEach((t=>{t.type!==e.ItemType.ERC721&&(w=w.add(kr.from(t.amount)))}));a.result.fees.forEach((e=>{w=w.add(kr.from(e.amount))}));const I=[VD(E,A,w,o)],R=await oy(t,"Total time running smart checkout",LD(t,n,I,((t,n)=>n.length>0?{type:e.TransactionOrGasType.TRANSACTION,transaction:n[0]}:{type:e.TransactionOrGasType.GAS,gasToken:{type:e.GasTokenType.NATIVE,limit:kr.from(t)}})(u,b)));if(R.sufficient){const t=await qD(n,g);if(t.type===UD.FAILED)return{status:e.CheckoutStatus.FAILED,transactionHash:t.transactionHash,reason:t.reason,smartCheckoutResult:R};try{0===b.length&&(b=await GD(v))}catch(t){throw new Cm("Error fetching fulfillment transaction",e.CheckoutErrorType.FULFILL_ORDER_LISTING_ERROR,{error:t})}if(i.waitFulfillmentSettlements){const t=await jD(n,b);return t.type===UD.FAILED?{status:e.CheckoutStatus.FAILED,transactionHash:t.transactionHash,reason:t.reason,smartCheckoutResult:R}:{status:e.CheckoutStatus.SUCCESS,smartCheckoutResult:R}}let r;try{r=(await Promise.all(b.map((e=>by(n,e))))).map((e=>e.transactionResponse))}catch(t){throw new Cm("An error occurred while executing the fulfillment transaction",e.CheckoutErrorType.EXECUTE_FULFILLMENT_TRANSACTION_ERROR,{message:t.message})}return{status:e.CheckoutStatus.FULFILLMENTS_UNSETTLED,smartCheckoutResult:R,transactions:r}}return{status:e.CheckoutStatus.INSUFFICIENT_FUNDS,smartCheckoutResult:R}},XD=(t,n,r)=>({type:e.ItemType.ERC721,id:t,contractAddress:n,spenderAddress:r}),JD=async(t,n,r)=>{let i,a,o="";if(0===r.length)throw new Cm("No orders were provided to the orders array. Please provide at least one order.",e.CheckoutErrorType.PREPARE_ORDER_LISTING_ERROR);const{buyToken:s,sellToken:u,makerFees:c,orderExpiry:l}=r[0];let d=18;if(s.type===e.ItemType.ERC20){const e=new Kl(s.tokenAddress,JSON.stringify(zm),n);d=await oy(t,"Time to get decimals of token contract for the buy token",e.decimals())}const f=((t,n=18)=>{const r=rm(t.amount,n);return t.type===e.ItemType.NATIVE?{type:e.ItemType.NATIVE,amount:r.toString()}:{type:e.ItemType.ERC20,amount:r.toString(),contractAddress:t.tokenAddress}})(s,d);try{const r=await oy(t,"Time to get the address from the provider",n.getSigner().getAddress());i=WB(t);const{seaportContractAddress:s}=i.config();o=s,a=await oy(t,"Time to prepare the listing from the orderbook",i.prepareListing({makerAddress:r,buy:f,sell:{type:e.ItemType.ERC721,contractAddress:u.collectionAddress,tokenId:u.id},orderExpiry:l}))}catch(t){throw new Cm("An error occurred while preparing the listing",e.CheckoutErrorType.PREPARE_ORDER_LISTING_ERROR,{error:t,id:u.id,collectionAddress:u.collectionAddress})}const p=[XD(u.id,u.collectionAddress,o)],h=await oy(t,"Total time running smart checkout",LD(t,n,p,{type:e.TransactionOrGasType.GAS,gasToken:{type:e.GasTokenType.NATIVE,limit:kr.from(aB)}}));if(h.sufficient){const t=await(async e=>{let t=[],n=[];const r=[],i=[];for(const t of e)t.type===HM.TRANSACTION&&(t.purpose===jM.APPROVAL&&r.push(t.buildTransaction()),t.purpose===jM.FULFILL_ORDER&&i.push(t.buildTransaction()));return t=await Promise.all(r),n=await Promise.all(i),{approvalTransactions:t,fulfillmentTransactions:n}})(a.actions),r=await qD(n,t.approvalTransactions);if(r.type===UD.FAILED)return{status:e.CheckoutStatus.FAILED,transactionHash:r.transactionHash,reason:r.reason,smartCheckoutResult:h};const o=((e,t,n)=>{let r;for(const e of n)e.type===HM.SIGNABLE&&e.purpose===GM.CREATE_LISTING&&(r={domain:e.message.domain,types:e.message.types,value:e.message.value});if(r)return{orderHash:e,orderComponents:t,unsignedMessage:r}})(a.orderHash,a.orderComponents,a.actions);if(!o)throw new Cm("The unsigned message is missing after preparing the listing",e.CheckoutErrorType.SIGN_MESSAGE_ERROR,{id:u.id,collectionAddress:u.collectionAddress});const s=await(async(t,n)=>{try{const e=await t.getSigner()._signTypedData(n.unsignedMessage.domain,n.unsignedMessage.types,n.unsignedMessage.value);return{orderComponents:n.orderComponents,orderHash:n.orderHash,signedMessage:e}}catch(t){throw new Cm("An error occurred while signing the message",e.CheckoutErrorType.SIGN_MESSAGE_ERROR,{error:t})}})(n,o);let l="";const p={orderComponents:s.orderComponents,orderHash:s.orderHash,orderSignature:s.signedMessage,makerFees:[]};if(void 0!==c){const t=WD(c,f.amount,d);if(t.length!==c.length)throw new Cm("One of the fees is too small, must be greater than 0.000001",e.CheckoutErrorType.CREATE_ORDER_LISTING_ERROR);p.makerFees=t}try{l=(await i.createListing(p)).result.id}catch(t){throw new Cm("An error occurred while creating the listing",e.CheckoutErrorType.CREATE_ORDER_LISTING_ERROR,{error:t,collectionId:u.id,collectionAddress:u.collectionAddress})}return{status:e.CheckoutStatus.SUCCESS,orderIds:[l],smartCheckoutResult:h}}return{status:e.CheckoutStatus.INSUFFICIENT_FUNDS,smartCheckoutResult:h}};class YD{config;constructor(e){this.config=e}async feeEstimate(){const e=await this.config.remote.getConfig("onramp");return e[pm.TRANSAK]?.fees}async createWidgetUrl(e){return await this.getTransakWidgetUrl(e)}async getTransakWidgetUrl(e){let t=`${Um[this.config.environment]}?`;if(t+=`${`apiKey=${(await this.config.remote.getConfig("onramp"))[pm.TRANSAK].publishableApiKey}`}&network=immutablezkevm&defaultPaymentMethod=credit_debit_card&disablePaymentMethods=sepa_bank_transfer,gbp_bank_transfer,pm_cash_app,pm_jwire,pm_paymaya,pm_bpi,pm_ubp,pm_grabpay,pm_shopeepay,pm_gcash,pm_pix,pm_astropay,pm_pse,inr_bank_transfer&productsAvailed=buy&exchangeScreenTitle=Buy&themeColor=0D0D0D`,e.isPassport&&e.email){t+=`&email=${encodeURIComponent(e.email)}&isAutoFillUserData=true&disableWalletAddressForm=true`}return e.tokenAmount&&e.tokenSymbol?t+=`&defaultCryptoAmount=${e.tokenAmount}&cryptoCurrencyCode=${e.tokenSymbol}`:t+="&defaultCryptoCurrency=IMX",e.walletAddress&&(t+=`&walletAddress=${e.walletAddress}`),t}}async function QD(t,n){const r=[];n.forEach((n=>{if(n.type===e.ItemType.ERC20){const{tokenAddress:e}=n;r.push((i=e,a=zm,o=t,new Kl(i,a,o)).decimals())}var i,a,o}));const i=await Promise.all(r),a=n.map(((t,n)=>t.type===e.ItemType.NATIVE?{...t,amount:rm(t.amount,18)}:t.type===e.ItemType.ERC20?{...t,amount:rm(t.amount,i[n])}:t));return a}function $D(e){if(void 0===window)throw new Error("missing window object: please run Checkout client side");if(void 0===document)throw new Error("missing document object: please run Checkout client side");const t="immutable-checkout-widgets-bundle",n=function(e){const t=Km();if(void 0===e||void 0===e.major)return t;if(!Number.isInteger(e.major)||e.major<0)return t;if(void 0!==e.minor&&e.minor<0)return t;if(void 0!==e.patch&&e.patch<0)return t;if(0===e.major&&void 0===e.minor)return t;if(0===e.major&&0===e.minor&&void 0===e.patch)return t;if(0===e.major&&void 0===e.minor&&void 0===e.patch)return t;if(0===e.major&&0===e.minor&&0===e.patch)return t;let n=e.major.toString();return void 0===e.minor||(Number.isInteger(e.minor)&&(n+=`.${e.minor.toString()}`),void 0===e.patch||(Number.isInteger(e.patch)&&(n+=`.${e.patch.toString()}`),void 0===e.prerelease||"alpha"!==e.prerelease||("alpha"===e.prerelease&&(n+=`-${e.prerelease}`),void 0===e.build||Number.isInteger(e.build)&&e.build>=0&&(n+=`.${e.build.toString()}`)))),n}(e),r=document.getElementById(t);if(r)return{loaded:!0,element:r};const i=document.createElement("script");let a=`https://cdn.jsdelivr.net/npm/@imtbl/sdk@${n}/dist/browser/checkout/widgets.js`;return i.setAttribute("id",t),i.setAttribute("data-version",n),i.setAttribute("src",a),document.head.appendChild(i),{loaded:!1,element:i}}const ZD=["https://checkout-api.dev.immutable.com","https://checkout-api.sandbox.immutable.com","https://checkout-api.immutable.com"];class eF{config;axiosInstance;constructor(e){this.config=e,this.axiosInstance=$e.create(),this.setupInterceptors()}shouldAddPublishableKey(e){return ZD.some((t=>e.startsWith(t)))}setupInterceptors(){this.axiosInstance.interceptors.request.use((e=>{const t=this.config?.baseConfig?.publishableKey;if(t&&this.shouldAddPublishableKey(e.url||"")){if(!t.startsWith("pk_imapik-"))throw new Error("Invalid Publishable key. Create your Publishable key in Immutable developer hub. https://hub.immutable.com");e.headers["x-immutable-publishable-key"]=t}return e}),(e=>Promise.reject(e)))}async request(e){return await this.axiosInstance.request(e)}async get(e,t){const n={...t,url:e};return await this.request(n)}async post(e,t,n){const r={...n,data:t,url:e};return await this.request(r)}async put(e,t,n){const r={...n,data:t,url:e};return await this.request(r)}async delete(e,t,n){const r={...n,data:t,url:e};return await this.request(r)}}const tF={baseConfig:{environment:Bt.SANDBOX},passport:void 0};e.BlockExplorerService=class{static getTransactionLink(e,t){const n=Hm?.[e]?.url;if(n&&t)return`${n}/tx/${t}`}},e.Checkout=class{readOnlyProviders;httpClient;config;fiatRampService;availability;passport;constructor(e=tF){this.httpClient=new eF(e),this.config=new $m(e,this.httpClient),this.fiatRampService=new YD(this.config),this.readOnlyProviders=new Map,this.availability=lD(this.config.isDevelopment,this.config.isProduction),this.passport=e.passport}async widgets(t){const n=this;await n.config.remote.getConfig();const r=new Promise(((r,i)=>{try{$D(t.version).loaded&&"undefined"!=typeof ImmutableCheckoutWidgets?r(new ImmutableCheckoutWidgets.WidgetsFactory(n,t.config)):function e(){"undefined"!=typeof ImmutableCheckoutWidgets?r(new ImmutableCheckoutWidgets.WidgetsFactory(n,t.config)):setTimeout(e,100)}()}catch(t){i(new Cm("Failed to load widgets script",e.CheckoutErrorType.WIDGETS_SCRIPT_LOAD_ERROR,{error:t}))}}));return r}async createProvider(e){return await hy(e.walletProviderName,this.passport)}async checkIsWalletConnected(t){return async function(t){if(!t?.provider?.request)throw new Cm("Check wallet connection request failed",e.CheckoutErrorType.PROVIDER_REQUEST_FAILED_ERROR,{rpcMethod:ym.CHECK_CONNECTION});let n=[];try{n=await t.provider.request({method:ym.CHECK_CONNECTION,params:[]})}catch(t){throw new Cm("Check wallet connection request failed",e.CheckoutErrorType.PROVIDER_REQUEST_FAILED_ERROR,{error:t,rpcMethod:ym.CHECK_CONNECTION})}return{isConnected:n&&n.length>0,walletAddress:n[0]??""}}(await yy(this.config,t.provider,{allowUnsupportedProvider:!0}))}async connect(t){const n=await yy(this.config,t.provider,{allowUnsupportedProvider:!0});return t.requestWalletPermissions&&!n.provider?.isPassport?await async function(t){if(!t||!t.provider?.request)throw new Cm("Incompatible provider",e.CheckoutErrorType.PROVIDER_REQUEST_MISSING_ERROR,{details:"Attempting to connect with an incompatible provider"});return await Om((async()=>{t.provider.request&&await t.provider.request({method:ym.REQUEST_PERMISSIONS,params:[{eth_accounts:{}}]})}),{type:e.CheckoutErrorType.USER_REJECTED_REQUEST_ERROR}),t}(n):await async function(t){if(!t||!t.provider?.request)throw new Cm("Incompatible provider",e.CheckoutErrorType.PROVIDER_REQUEST_MISSING_ERROR,{details:"Attempting to connect with an incompatible provider"});return await Om((async()=>{t.provider.request&&await t.provider.request({method:ym.CONNECT,params:[]})}),{type:e.CheckoutErrorType.USER_REJECTED_REQUEST_ERROR}),t}(n),{provider:n}}async switchNetwork(e){const t=await yy(this.config,e.provider,{allowUnsupportedProvider:!0,allowMistmatchedChainId:!0});return await xm(this.config,t,e.chainId)}async getTokenInfo(e){return await ny(e.provider,e.tokenAddress)}async getBalance(e){const t=await yy(this.config,e.provider);return e.tokenAddress&&""!==e.tokenAddress?await uy(t,e.walletAddress,e.tokenAddress):await sy(this.config,t,e.walletAddress)}async getAllBalances(e){return dy(this.config,e.provider,e.walletAddress,e.chainId)}async getNetworkAllowList(e){return await Sm(this.config,e)}async getTokenAllowList(e){return await ey(this.config,e)}async getWalletAllowList(t){return await async function(t){const n=[],r=t.exclude?.map((e=>e.walletProviderName))??[];let i=Object.values(e.WalletProviderName);0!==r.length&&(i=i.filter((e=>!r.includes(e))));for(const e of i)n.push({walletProviderName:e});return{wallets:n}}(t)}async sendTransaction(e){const t=await yy(this.config,e.provider);return await by(t,e.transaction)}async getNetworkInfo(e){const t=await yy(this.config,e.provider,{allowUnsupportedProvider:!0,allowMistmatchedChainId:!0});return await Nm(this.config,t)}async buy(e){e.orders.length>1&&console.warn("This endpoint currently only processes the first order in the array.");const t=await yy(this.config,e.provider);return await KD(this.config,t,e.orders,e.overrides)}async sell(e){e.orders.length>1&&console.warn("This endpoint currently only processes the first order in the array.");const t=await yy(this.config,e.provider);return await JD(this.config,t,e.orders)}async cancel(t){console.warn("This endpoint currently only processes the first order in the array.");const n=await yy(this.config,t.provider);return await(async(t,n,r,i={waitFulfillmentSettlements:!0})=>{let a;if(0===r.length)throw new Cm("No orderIds were provided to the orderIds array. Please provide at least one orderId.",e.CheckoutErrorType.CANCEL_ORDER_LISTING_ERROR);const o=r[0];try{const e=await oy(t,"Time to get the address from the provider",n.getSigner().getAddress()),r=WB(t),i=await oy(t,"Time to get the cancel order from the orderbook",r.cancelOrdersOnChain([o],e));a=await i.cancellationAction.buildTransaction()}catch(t){throw new Cm("An error occurred while cancelling the order listing",e.CheckoutErrorType.CANCEL_ORDER_LISTING_ERROR,{orderId:o,error:t})}if(i.waitFulfillmentSettlements){const t=await jD(n,[a]);return t.type===UD.FAILED?{status:e.CheckoutStatus.FAILED,transactionHash:t.transactionHash,reason:t.reason}:{status:e.CheckoutStatus.SUCCESS}}let s;try{s=(await Promise.all([a].map((e=>by(n,e))))).map((e=>e.transactionResponse))}catch(t){throw new Cm("An error occurred while executing the fulfillment transaction",e.CheckoutErrorType.EXECUTE_FULFILLMENT_TRANSACTION_ERROR,{message:t.message})}return{status:e.CheckoutStatus.FULFILLMENTS_UNSETTLED,transactions:s}})(this.config,n,t.orderIds,t.overrides)}async smartCheckout(t){const n=await yy(this.config,t.provider);let r=[];try{r=await QD(n,t.itemRequirements)}catch(t){throw new Cm("Failed to map item requirements",e.CheckoutErrorType.ITEM_REQUIREMENTS_ERROR,{error:t})}return await LD(this.config,n,r,t.transactionOrGasAmount)}static isWeb3Provider(e){return my(e)}async gasEstimate(e){return this.readOnlyProviders=await pD(this.config,this.readOnlyProviders),await YB(e,this.readOnlyProviders,this.config)}async createFiatRampUrl(t){let n,r,i="IMX";const a=await t.web3Provider.getSigner().getAddress(),o=t.web3Provider.provider?.isPassport||!1;if(o&&t.passport){const e=await t.passport.getUserInfo();r=e?.email}const s=await ey(this.config,{type:e.TokenFilterTypes.ONRAMP}),u=s.tokens?.find((e=>Zm(e.address,t.tokenAddress)));return u&&(n=t.tokenAmount,i=u.symbol),await this.fiatRampService.createWidgetUrl({exchangeType:t.exchangeType,isPassport:o,walletAddress:a,tokenAmount:n,tokenSymbol:i,email:r})}async getExchangeFeeEstimate(){return await this.fiatRampService.feeEstimate()}async isSwapAvailable(){return this.availability.checkDexAvailability()}},e.CheckoutConfiguration=$m,e.IMMUTABLE_API_BASE_URL=Fm}));
35
+ function(e){var t=n,r=t.lib,i=r.WordArray,a=r.Hasher,o=t.algo,s=i.create([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13]),u=i.create([5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11]),c=i.create([11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6]),l=i.create([8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]),d=i.create([0,1518500249,1859775393,2400959708,2840853838]),f=i.create([1352829926,1548603684,1836072691,2053994217,0]),p=o.RIPEMD160=a.extend({_doReset:function(){this._hash=i.create([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(e,t){for(var n=0;n<16;n++){var r=t+n,i=e[r];e[r]=16711935&(i<<8|i>>>24)|4278255360&(i<<24|i>>>8)}var a,o,p,T,w,E,A,_,I,R,C,O=this._hash.words,k=d.words,S=f.words,N=s.words,x=u.words,P=c.words,M=l.words;for(E=a=O[0],A=o=O[1],_=p=O[2],I=T=O[3],R=w=O[4],n=0;n<80;n+=1)C=a+e[t+N[n]]|0,C+=n<16?h(o,p,T)+k[0]:n<32?m(o,p,T)+k[1]:n<48?y(o,p,T)+k[2]:n<64?g(o,p,T)+k[3]:b(o,p,T)+k[4],C=(C=v(C|=0,P[n]))+w|0,a=w,w=T,T=v(p,10),p=o,o=C,C=E+e[t+x[n]]|0,C+=n<16?b(A,_,I)+S[0]:n<32?g(A,_,I)+S[1]:n<48?y(A,_,I)+S[2]:n<64?m(A,_,I)+S[3]:h(A,_,I)+S[4],C=(C=v(C|=0,M[n]))+R|0,E=R,R=I,I=v(_,10),_=A,A=C;C=O[1]+p+I|0,O[1]=O[2]+T+R|0,O[2]=O[3]+w+E|0,O[3]=O[4]+a+A|0,O[4]=O[0]+o+_|0,O[0]=C},_doFinalize:function(){var e=this._data,t=e.words,n=8*this._nDataBytes,r=8*e.sigBytes;t[r>>>5]|=128<<24-r%32,t[14+(r+64>>>9<<4)]=16711935&(n<<8|n>>>24)|4278255360&(n<<24|n>>>8),e.sigBytes=4*(t.length+1),this._process();for(var i=this._hash,a=i.words,o=0;o<5;o++){var s=a[o];a[o]=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8)}return i},clone:function(){var e=a.clone.call(this);return e._hash=this._hash.clone(),e}});function h(e,t,n){return e^t^n}function m(e,t,n){return e&t|~e&n}function y(e,t,n){return(e|~t)^n}function g(e,t,n){return e&n|t&~n}function b(e,t,n){return e^(t|~n)}function v(e,t){return e<<t|e>>>32-t}t.RIPEMD160=a._createHelper(p),t.HmacRIPEMD160=a._createHmacHelper(p)}(),n.RIPEMD160)}(ZN)),nx(),rx||(rx=1,function(e,t){var n;e.exports=(n=mN(),nx(),function(){var e=n,t=e.lib,r=t.Base,i=t.WordArray,a=e.algo,o=a.SHA256,s=a.HMAC,u=a.PBKDF2=r.extend({cfg:r.extend({keySize:4,hasher:o,iterations:25e4}),init:function(e){this.cfg=this.cfg.extend(e)},compute:function(e,t){for(var n=this.cfg,r=s.create(n.hasher,e),a=i.create(),o=i.create([1]),u=a.words,c=o.words,l=n.keySize,d=n.iterations;u.length<l;){var f=r.update(t).finalize(o);r.reset();for(var p=f.words,h=p.length,m=f,y=1;y<d;y++){m=r.finalize(m),r.reset();for(var g=m.words,b=0;b<h;b++)p[b]^=g[b]}a.concat(f),c[0]++}return a.sigBytes=4*l,a}});e.PBKDF2=function(e,t,n){return u.create(n).compute(e,t)}}(),n.PBKDF2)}(ix)),sx(),lx(),px(),yx(),vx(),Ex(),Ax||(Ax=1,function(e,t){var n,r;e.exports=(r=mN(),lx(),r.mode.ECB=((n=r.lib.BlockCipherMode.extend()).Encryptor=n.extend({processBlock:function(e,t){this._cipher.encryptBlock(e,t)}}),n.Decryptor=n.extend({processBlock:function(e,t){this._cipher.decryptBlock(e,t)}}),n),r.mode.ECB)}(_x)),Ix||(Ix=1,function(e,t){var n;e.exports=(n=mN(),lx(),n.pad.AnsiX923={pad:function(e,t){var n=e.sigBytes,r=4*t,i=r-n%r,a=n+i-1;e.clamp(),e.words[a>>>2]|=i<<24-a%4*8,e.sigBytes+=i},unpad:function(e){var t=255&e.words[e.sigBytes-1>>>2];e.sigBytes-=t}},n.pad.Ansix923)}(Rx)),Cx||(Cx=1,function(e,t){var n;e.exports=(n=mN(),lx(),n.pad.Iso10126={pad:function(e,t){var r=4*t,i=r-e.sigBytes%r;e.concat(n.lib.WordArray.random(i-1)).concat(n.lib.WordArray.create([i<<24],1))},unpad:function(e){var t=255&e.words[e.sigBytes-1>>>2];e.sigBytes-=t}},n.pad.Iso10126)}(Ox)),kx||(kx=1,function(e,t){var n;e.exports=(n=mN(),lx(),n.pad.Iso97971={pad:function(e,t){e.concat(n.lib.WordArray.create([2147483648],1)),n.pad.ZeroPadding.pad(e,t)},unpad:function(e){n.pad.ZeroPadding.unpad(e),e.sigBytes--}},n.pad.Iso97971)}(Sx)),Nx||(Nx=1,function(e,t){var n;e.exports=(n=mN(),lx(),n.pad.ZeroPadding={pad:function(e,t){var n=4*t;e.clamp(),e.sigBytes+=n-(e.sigBytes%n||n)},unpad:function(e){var t=e.words,n=e.sigBytes-1;for(n=e.sigBytes-1;n>=0;n--)if(t[n>>>2]>>>24-n%4*8&255){e.sigBytes=n+1;break}}},n.pad.ZeroPadding)}(xx)),Px||(Px=1,function(e,t){var n;e.exports=(n=mN(),lx(),n.pad.NoPadding={pad:function(){},unpad:function(){}},n.pad.NoPadding)}(Mx)),Bx||(Bx=1,function(e,t){var n,r,i,a;e.exports=(a=mN(),lx(),r=(n=a).lib.CipherParams,i=n.enc.Hex,n.format.Hex={stringify:function(e){return e.ciphertext.toString(i)},parse:function(e){var t=i.parse(e);return r.create({ciphertext:t})}},a.format.Hex)}(Dx)),Fx||(Fx=1,function(e,t){var n;e.exports=(n=mN(),xN(),LN(),sx(),lx(),function(){var e=n,t=e.lib.BlockCipher,r=e.algo,i=[],a=[],o=[],s=[],u=[],c=[],l=[],d=[],f=[],p=[];!function(){for(var e=[],t=0;t<256;t++)e[t]=t<128?t<<1:t<<1^283;var n=0,r=0;for(t=0;t<256;t++){var h=r^r<<1^r<<2^r<<3^r<<4;h=h>>>8^255&h^99,i[n]=h,a[h]=n;var m=e[n],y=e[m],g=e[y],b=257*e[h]^16843008*h;o[n]=b<<24|b>>>8,s[n]=b<<16|b>>>16,u[n]=b<<8|b>>>24,c[n]=b,b=16843009*g^65537*y^257*m^16843008*n,l[h]=b<<24|b>>>8,d[h]=b<<16|b>>>16,f[h]=b<<8|b>>>24,p[h]=b,n?(n=m^e[e[e[g^m]]],r^=e[e[r]]):n=r=1}}();var h=[0,1,2,4,8,16,32,64,128,27,54],m=r.AES=t.extend({_doReset:function(){if(!this._nRounds||this._keyPriorReset!==this._key){for(var e=this._keyPriorReset=this._key,t=e.words,n=e.sigBytes/4,r=4*((this._nRounds=n+6)+1),a=this._keySchedule=[],o=0;o<r;o++)o<n?a[o]=t[o]:(c=a[o-1],o%n?n>6&&o%n==4&&(c=i[c>>>24]<<24|i[c>>>16&255]<<16|i[c>>>8&255]<<8|i[255&c]):(c=i[(c=c<<8|c>>>24)>>>24]<<24|i[c>>>16&255]<<16|i[c>>>8&255]<<8|i[255&c],c^=h[o/n|0]<<24),a[o]=a[o-n]^c);for(var s=this._invKeySchedule=[],u=0;u<r;u++){if(o=r-u,u%4)var c=a[o];else c=a[o-4];s[u]=u<4||o<=4?c:l[i[c>>>24]]^d[i[c>>>16&255]]^f[i[c>>>8&255]]^p[i[255&c]]}}},encryptBlock:function(e,t){this._doCryptBlock(e,t,this._keySchedule,o,s,u,c,i)},decryptBlock:function(e,t){var n=e[t+1];e[t+1]=e[t+3],e[t+3]=n,this._doCryptBlock(e,t,this._invKeySchedule,l,d,f,p,a),n=e[t+1],e[t+1]=e[t+3],e[t+3]=n},_doCryptBlock:function(e,t,n,r,i,a,o,s){for(var u=this._nRounds,c=e[t]^n[0],l=e[t+1]^n[1],d=e[t+2]^n[2],f=e[t+3]^n[3],p=4,h=1;h<u;h++){var m=r[c>>>24]^i[l>>>16&255]^a[d>>>8&255]^o[255&f]^n[p++],y=r[l>>>24]^i[d>>>16&255]^a[f>>>8&255]^o[255&c]^n[p++],g=r[d>>>24]^i[f>>>16&255]^a[c>>>8&255]^o[255&l]^n[p++],b=r[f>>>24]^i[c>>>16&255]^a[l>>>8&255]^o[255&d]^n[p++];c=m,l=y,d=g,f=b}m=(s[c>>>24]<<24|s[l>>>16&255]<<16|s[d>>>8&255]<<8|s[255&f])^n[p++],y=(s[l>>>24]<<24|s[d>>>16&255]<<16|s[f>>>8&255]<<8|s[255&c])^n[p++],g=(s[d>>>24]<<24|s[f>>>16&255]<<16|s[c>>>8&255]<<8|s[255&l])^n[p++],b=(s[f>>>24]<<24|s[c>>>16&255]<<16|s[l>>>8&255]<<8|s[255&d])^n[p++],e[t]=m,e[t+1]=y,e[t+2]=g,e[t+3]=b},keySize:8});e.AES=t._createHelper(m)}(),n.AES)}(Lx)),jx(),Gx||(Gx=1,function(e,t){var n;e.exports=(n=mN(),xN(),LN(),sx(),lx(),function(){var e=n,t=e.lib.StreamCipher,r=e.algo,i=r.RC4=t.extend({_doReset:function(){for(var e=this._key,t=e.words,n=e.sigBytes,r=this._S=[],i=0;i<256;i++)r[i]=i;i=0;for(var a=0;i<256;i++){var o=i%n,s=t[o>>>2]>>>24-o%4*8&255;a=(a+r[i]+s)%256;var u=r[i];r[i]=r[a],r[a]=u}this._i=this._j=0},_doProcessBlock:function(e,t){e[t]^=a.call(this)},keySize:8,ivSize:0});function a(){for(var e=this._S,t=this._i,n=this._j,r=0,i=0;i<4;i++){n=(n+e[t=(t+1)%256])%256;var a=e[t];e[t]=e[n],e[n]=a,r|=e[(e[t]+e[n])%256]<<24-8*i}return this._i=t,this._j=n,r}e.RC4=t._createHelper(i);var o=r.RC4Drop=i.extend({cfg:i.cfg.extend({drop:192}),_doReset:function(){i._doReset.call(this);for(var e=this.cfg.drop;e>0;e--)a.call(this)}});e.RC4Drop=t._createHelper(o)}(),n.RC4)}(Hx)),zx||(zx=1,function(e,t){var n;e.exports=(n=mN(),xN(),LN(),sx(),lx(),function(){var e=n,t=e.lib.StreamCipher,r=e.algo,i=[],a=[],o=[],s=r.Rabbit=t.extend({_doReset:function(){for(var e=this._key.words,t=this.cfg.iv,n=0;n<4;n++)e[n]=16711935&(e[n]<<8|e[n]>>>24)|4278255360&(e[n]<<24|e[n]>>>8);var r=this._X=[e[0],e[3]<<16|e[2]>>>16,e[1],e[0]<<16|e[3]>>>16,e[2],e[1]<<16|e[0]>>>16,e[3],e[2]<<16|e[1]>>>16],i=this._C=[e[2]<<16|e[2]>>>16,4294901760&e[0]|65535&e[1],e[3]<<16|e[3]>>>16,4294901760&e[1]|65535&e[2],e[0]<<16|e[0]>>>16,4294901760&e[2]|65535&e[3],e[1]<<16|e[1]>>>16,4294901760&e[3]|65535&e[0]];for(this._b=0,n=0;n<4;n++)u.call(this);for(n=0;n<8;n++)i[n]^=r[n+4&7];if(t){var a=t.words,o=a[0],s=a[1],c=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),l=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),d=c>>>16|4294901760&l,f=l<<16|65535&c;for(i[0]^=c,i[1]^=d,i[2]^=l,i[3]^=f,i[4]^=c,i[5]^=d,i[6]^=l,i[7]^=f,n=0;n<4;n++)u.call(this)}},_doProcessBlock:function(e,t){var n=this._X;u.call(this),i[0]=n[0]^n[5]>>>16^n[3]<<16,i[1]=n[2]^n[7]>>>16^n[5]<<16,i[2]=n[4]^n[1]>>>16^n[7]<<16,i[3]=n[6]^n[3]>>>16^n[1]<<16;for(var r=0;r<4;r++)i[r]=16711935&(i[r]<<8|i[r]>>>24)|4278255360&(i[r]<<24|i[r]>>>8),e[t+r]^=i[r]},blockSize:4,ivSize:2});function u(){for(var e=this._X,t=this._C,n=0;n<8;n++)a[n]=t[n];for(t[0]=t[0]+1295307597+this._b|0,t[1]=t[1]+3545052371+(t[0]>>>0<a[0]>>>0?1:0)|0,t[2]=t[2]+886263092+(t[1]>>>0<a[1]>>>0?1:0)|0,t[3]=t[3]+1295307597+(t[2]>>>0<a[2]>>>0?1:0)|0,t[4]=t[4]+3545052371+(t[3]>>>0<a[3]>>>0?1:0)|0,t[5]=t[5]+886263092+(t[4]>>>0<a[4]>>>0?1:0)|0,t[6]=t[6]+1295307597+(t[5]>>>0<a[5]>>>0?1:0)|0,t[7]=t[7]+3545052371+(t[6]>>>0<a[6]>>>0?1:0)|0,this._b=t[7]>>>0<a[7]>>>0?1:0,n=0;n<8;n++){var r=e[n]+t[n],i=65535&r,s=r>>>16,u=((i*i>>>17)+i*s>>>15)+s*s,c=((4294901760&r)*r|0)+((65535&r)*r|0);o[n]=u^c}e[0]=o[0]+(o[7]<<16|o[7]>>>16)+(o[6]<<16|o[6]>>>16)|0,e[1]=o[1]+(o[0]<<8|o[0]>>>24)+o[7]|0,e[2]=o[2]+(o[1]<<16|o[1]>>>16)+(o[0]<<16|o[0]>>>16)|0,e[3]=o[3]+(o[2]<<8|o[2]>>>24)+o[1]|0,e[4]=o[4]+(o[3]<<16|o[3]>>>16)+(o[2]<<16|o[2]>>>16)|0,e[5]=o[5]+(o[4]<<8|o[4]>>>24)+o[3]|0,e[6]=o[6]+(o[5]<<16|o[5]>>>16)+(o[4]<<16|o[4]>>>16)|0,e[7]=o[7]+(o[6]<<8|o[6]>>>24)+o[5]|0}e.Rabbit=t._createHelper(s)}(),n.Rabbit)}(Wx)),Vx||(Vx=1,function(e,t){var n;e.exports=(n=mN(),xN(),LN(),sx(),lx(),function(){var e=n,t=e.lib.StreamCipher,r=e.algo,i=[],a=[],o=[],s=r.RabbitLegacy=t.extend({_doReset:function(){var e=this._key.words,t=this.cfg.iv,n=this._X=[e[0],e[3]<<16|e[2]>>>16,e[1],e[0]<<16|e[3]>>>16,e[2],e[1]<<16|e[0]>>>16,e[3],e[2]<<16|e[1]>>>16],r=this._C=[e[2]<<16|e[2]>>>16,4294901760&e[0]|65535&e[1],e[3]<<16|e[3]>>>16,4294901760&e[1]|65535&e[2],e[0]<<16|e[0]>>>16,4294901760&e[2]|65535&e[3],e[1]<<16|e[1]>>>16,4294901760&e[3]|65535&e[0]];this._b=0;for(var i=0;i<4;i++)u.call(this);for(i=0;i<8;i++)r[i]^=n[i+4&7];if(t){var a=t.words,o=a[0],s=a[1],c=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),l=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),d=c>>>16|4294901760&l,f=l<<16|65535&c;for(r[0]^=c,r[1]^=d,r[2]^=l,r[3]^=f,r[4]^=c,r[5]^=d,r[6]^=l,r[7]^=f,i=0;i<4;i++)u.call(this)}},_doProcessBlock:function(e,t){var n=this._X;u.call(this),i[0]=n[0]^n[5]>>>16^n[3]<<16,i[1]=n[2]^n[7]>>>16^n[5]<<16,i[2]=n[4]^n[1]>>>16^n[7]<<16,i[3]=n[6]^n[3]>>>16^n[1]<<16;for(var r=0;r<4;r++)i[r]=16711935&(i[r]<<8|i[r]>>>24)|4278255360&(i[r]<<24|i[r]>>>8),e[t+r]^=i[r]},blockSize:4,ivSize:2});function u(){for(var e=this._X,t=this._C,n=0;n<8;n++)a[n]=t[n];for(t[0]=t[0]+1295307597+this._b|0,t[1]=t[1]+3545052371+(t[0]>>>0<a[0]>>>0?1:0)|0,t[2]=t[2]+886263092+(t[1]>>>0<a[1]>>>0?1:0)|0,t[3]=t[3]+1295307597+(t[2]>>>0<a[2]>>>0?1:0)|0,t[4]=t[4]+3545052371+(t[3]>>>0<a[3]>>>0?1:0)|0,t[5]=t[5]+886263092+(t[4]>>>0<a[4]>>>0?1:0)|0,t[6]=t[6]+1295307597+(t[5]>>>0<a[5]>>>0?1:0)|0,t[7]=t[7]+3545052371+(t[6]>>>0<a[6]>>>0?1:0)|0,this._b=t[7]>>>0<a[7]>>>0?1:0,n=0;n<8;n++){var r=e[n]+t[n],i=65535&r,s=r>>>16,u=((i*i>>>17)+i*s>>>15)+s*s,c=((4294901760&r)*r|0)+((65535&r)*r|0);o[n]=u^c}e[0]=o[0]+(o[7]<<16|o[7]>>>16)+(o[6]<<16|o[6]>>>16)|0,e[1]=o[1]+(o[0]<<8|o[0]>>>24)+o[7]|0,e[2]=o[2]+(o[1]<<16|o[1]>>>16)+(o[0]<<16|o[0]>>>16)|0,e[3]=o[3]+(o[2]<<8|o[2]>>>24)+o[1]|0,e[4]=o[4]+(o[3]<<16|o[3]>>>16)+(o[2]<<16|o[2]>>>16)|0,e[5]=o[5]+(o[4]<<8|o[4]>>>24)+o[3]|0,e[6]=o[6]+(o[5]<<16|o[5]>>>16)+(o[4]<<16|o[4]>>>16)|0,e[7]=o[7]+(o[6]<<8|o[6]>>>24)+o[5]|0}e.RabbitLegacy=t._createHelper(s)}(),n.RabbitLegacy)}(Kx)),Yx(),n)}(wN);var Qx=wN.exports,$x=Ft&&Ft.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(TN,"__esModule",{value:!0}),TN.Base=void 0;const Zx=Gn,eP=$x(Qx);class tP{print(){tP.print(this)}bufferIndexOf(e,t,n=!1){if(n)return this.binarySearch(e,t,Zx.Buffer.compare);return this.linearSearch(e,t,((e,t)=>e.equals(t)))}static binarySearch(e,t,n){let r=0,i=e.length-1;for(;r<=i;){const a=Math.floor((r+i)/2),o=n(e[a],t);if(0===o){for(let r=a-1;r>=0;r--)if(0!==n(e[r],t))return r+1;return 0}o<0?r=a+1:i=a-1}return-1}binarySearch(e,t,n){return tP.binarySearch(e,t,n)}static linearSearch(e,t,n){for(let r=0;r<e.length;r++)if(n(e[r],t))return r;return-1}linearSearch(e,t,n){return tP.linearSearch(e,t,n)}static bufferify(e){if(!Zx.Buffer.isBuffer(e)){if("object"==typeof e&&e.words)return Zx.Buffer.from(e.toString(eP.default.enc.Hex),"hex");if(tP.isHexString(e))return Zx.Buffer.from(e.replace(/^0x/,""),"hex");if("string"==typeof e)return Zx.Buffer.from(e);if("bigint"==typeof e)return Zx.Buffer.from(e.toString(16),"hex");if(e instanceof Uint8Array)return Zx.Buffer.from(e.buffer);if("number"==typeof e){let t=e.toString();return t.length%2&&(t=`0${t}`),Zx.Buffer.from(t,"hex")}if(ArrayBuffer.isView(e))return Zx.Buffer.from(e.buffer,e.byteOffset,e.byteLength)}return e}bigNumberify(e){return tP.bigNumberify(e)}static bigNumberify(e){if("bigint"==typeof e)return e;if("string"==typeof e)return e.startsWith("0x")&&tP.isHexString(e)?BigInt("0x"+e.replace("0x","").toString()):BigInt(e);if(Zx.Buffer.isBuffer(e))return BigInt("0x"+e.toString("hex"));if(e instanceof Uint8Array)return BigInt(e);if("number"==typeof e)return BigInt(e);throw new Error("cannot bigNumberify")}static isHexString(e){return"string"==typeof e&&/^(0x)?[0-9A-Fa-f]*$/.test(e)}static print(e){console.log(e.toString())}bufferToHex(e,t=!0){return tP.bufferToHex(e,t)}static bufferToHex(e,t=!0){return`${t?"0x":""}${(e||Zx.Buffer.alloc(0)).toString("hex")}`}bufferify(e){return tP.bufferify(e)}bufferifyFn(e){return t=>{const n=e(t);return Zx.Buffer.isBuffer(n)?n:this.isHexString(n)?Zx.Buffer.from(n.replace("0x",""),"hex"):"string"==typeof n?Zx.Buffer.from(n):"bigint"==typeof n?Zx.Buffer.from(t.toString(16),"hex"):ArrayBuffer.isView(n)?Zx.Buffer.from(n.buffer,n.byteOffset,n.byteLength):Zx.Buffer.from(e(eP.default.enc.Hex.parse(t.toString("hex"))).toString(eP.default.enc.Hex),"hex")}}isHexString(e){return tP.isHexString(e)}log2(e){return 1===e?0:1+this.log2(e/2|0)}zip(e,t){return e.map(((e,n)=>[e,t[n]]))}static hexZeroPad(e,t){return"0x"+e.replace("0x","").padStart(t,"0")}}TN.Base=tP,TN.default=tP;var nP=Ft&&Ft.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(lN,"__esModule",{value:!0}),lN.MerkleTree=void 0;const rP=Gn,iP=nP((function(e){for(var t=new Buffer(e.length),n=0,r=e.length-1;n<=r;++n,--r)t[n]=e[r],t[r]=e[n];return t})),aP=nP(yN),oP=nP(vN),sP=nP(TN);let uP=class e extends sP.default{constructor(e,t=aP.default,n={}){if(super(),this.duplicateOdd=!1,this.concatenator=rP.Buffer.concat,this.hashLeaves=!1,this.isBitcoinTree=!1,this.leaves=[],this.layers=[],this.sortLeaves=!1,this.sortPairs=!1,this.sort=!1,this.fillDefaultHash=null,this.complete=!1,n.complete){if(n.isBitcoinTree)throw new Error('option "complete" is incompatible with "isBitcoinTree"');if(n.duplicateOdd)throw new Error('option "complete" is incompatible with "duplicateOdd"')}if(this.isBitcoinTree=!!n.isBitcoinTree,this.hashLeaves=!!n.hashLeaves,this.sortLeaves=!!n.sortLeaves,this.sortPairs=!!n.sortPairs,this.complete=!!n.complete,n.fillDefaultHash)if("function"==typeof n.fillDefaultHash)this.fillDefaultHash=n.fillDefaultHash;else{if(!rP.Buffer.isBuffer(n.fillDefaultHash)&&"string"!=typeof n.fillDefaultHash)throw new Error('method "fillDefaultHash" must be a function, Buffer, or string');this.fillDefaultHash=(e,t)=>n.fillDefaultHash}this.sort=!!n.sort,this.sort&&(this.sortLeaves=!0,this.sortPairs=!0),this.duplicateOdd=!!n.duplicateOdd,n.concatenator&&(this.concatenator=n.concatenator),this.hashFn=this.bufferifyFn(t),this.processLeaves(e)}getOptions(){var e,t;return{complete:this.complete,isBitcoinTree:this.isBitcoinTree,hashLeaves:this.hashLeaves,sortLeaves:this.sortLeaves,sortPairs:this.sortPairs,sort:this.sort,fillDefaultHash:null!==(t=null===(e=this.fillDefaultHash)||void 0===e?void 0:e.toString())&&void 0!==t?t:null,duplicateOdd:this.duplicateOdd}}processLeaves(e){if(this.hashLeaves&&(e=e.map(this.hashFn)),this.leaves=e.map(this.bufferify),this.sortLeaves&&(this.leaves=this.leaves.sort(rP.Buffer.compare)),this.fillDefaultHash)for(let e=this.leaves.length;e<Math.pow(2,Math.ceil(Math.log2(this.leaves.length)));e++)this.leaves.push(this.bufferify(this.fillDefaultHash(e,this.hashFn)));this.createHashes(this.leaves)}createHashes(e){for(this.layers=[e];e.length>1;){const t=this.layers.length;this.layers.push([]);const n=this.complete&&1===t&&!Number.isInteger(Math.log2(e.length))?2*e.length-Math.pow(2,Math.ceil(Math.log2(e.length))):e.length;for(let r=0;r<e.length;r+=2){if(r>=n){this.layers[t].push(...e.slice(n));break}if(r+1===e.length&&e.length%2==1){const n=e[e.length-1];let i=n;if(this.isBitcoinTree){i=this.hashFn(this.concatenator([iP.default(n),iP.default(n)])),i=iP.default(this.hashFn(i)),this.layers[t].push(i);continue}if(!this.duplicateOdd){this.layers[t].push(e[r]);continue}}const i=e[r],a=r+1===e.length?i:e[r+1];let o=null;o=this.isBitcoinTree?[iP.default(i),iP.default(a)]:[i,a],this.sortPairs&&o.sort(rP.Buffer.compare);let s=this.hashFn(this.concatenator(o));this.isBitcoinTree&&(s=iP.default(this.hashFn(s))),this.layers[t].push(s)}e=this.layers[t]}}addLeaf(e,t=!1){t&&(e=this.hashFn(e)),this.processLeaves(this.leaves.concat(e))}addLeaves(e,t=!1){t&&(e=e.map(this.hashFn)),this.processLeaves(this.leaves.concat(e))}getLeaves(e){return Array.isArray(e)?(this.hashLeaves&&(e=e.map(this.hashFn),this.sortLeaves&&(e=e.sort(rP.Buffer.compare))),this.leaves.filter((t=>-1!==this.bufferIndexOf(e,t,this.sortLeaves)))):this.leaves}getLeaf(e){return e<0||e>this.leaves.length-1?rP.Buffer.from([]):this.leaves[e]}getLeafIndex(e){e=this.bufferify(e);const t=this.getLeaves();for(let n=0;n<t.length;n++){if(t[n].equals(e))return n}return-1}getLeafCount(){return this.leaves.length}getHexLeaves(){return this.leaves.map((e=>this.bufferToHex(e)))}static marshalLeaves(t){return JSON.stringify(t.map((t=>e.bufferToHex(t))),null,2)}static unmarshalLeaves(t){let n=null;if("string"==typeof t)n=JSON.parse(t);else{if(!(t instanceof Object))throw new Error("Expected type of string or object");n=t}if(!n)return[];if(!Array.isArray(n))throw new Error("Expected JSON string to be array");return n.map(e.bufferify)}getLayers(){return this.layers}getHexLayers(){return this.layers.reduce(((e,t)=>(Array.isArray(t)?e.push(t.map((e=>this.bufferToHex(e)))):e.push(t),e)),[])}getLayersFlat(){const e=this.layers.reduce(((e,t)=>(Array.isArray(t)?e.unshift(...t):e.unshift(t),e)),[]);return e.unshift(rP.Buffer.from([0])),e}getHexLayersFlat(){return this.getLayersFlat().map((e=>this.bufferToHex(e)))}getLayerCount(){return this.getLayers().length}getRoot(){return 0===this.layers.length?rP.Buffer.from([]):this.layers[this.layers.length-1][0]||rP.Buffer.from([])}getHexRoot(){return this.bufferToHex(this.getRoot())}getProof(e,t){if(void 0===e)throw new Error("leaf is required");e=this.bufferify(e);const n=[];if(!Number.isInteger(t)){t=-1;for(let n=0;n<this.leaves.length;n++)0===rP.Buffer.compare(e,this.leaves[n])&&(t=n)}if(t<=-1)return[];for(let e=0;e<this.layers.length;e++){const r=this.layers[e],i=t%2,a=i?t-1:this.isBitcoinTree&&t===r.length-1&&e<this.layers.length-1?t:t+1;a<r.length&&n.push({position:i?"left":"right",data:r[a]}),t=t/2|0}return n}getHexProof(e,t){return this.getProof(e,t).map((e=>this.bufferToHex(e.data)))}getProofs(){const e=[];return this.getProofsDFS(this.layers.length-1,0,[],e),e}getProofsDFS(e,t,n,r){const i=t%2;if(-1===e)return void(i||r.push([...n].reverse()));if(t>=this.layers[e].length)return;const a=this.layers[e],o=i?t-1:t+1;let s=!1;o<a.length&&(s=!0,n.push({position:i?"left":"right",data:a[o]}));const u=2*t,c=2*t+1;this.getProofsDFS(e-1,u,n,r),this.getProofsDFS(e-1,c,n,r),s&&n.splice(n.length-1,1)}getHexProofs(){return this.getProofs().map((e=>this.bufferToHex(e.data)))}getPositionalHexProof(e,t){return this.getProof(e,t).map((e=>["left"===e.position?0:1,this.bufferToHex(e.data)]))}static marshalProof(t){const n=t.map((t=>"string"==typeof t?t:rP.Buffer.isBuffer(t)?e.bufferToHex(t):{position:t.position,data:e.bufferToHex(t.data)}));return JSON.stringify(n,null,2)}static unmarshalProof(t){let n=null;if("string"==typeof t)n=JSON.parse(t);else{if(!(t instanceof Object))throw new Error("Expected type of string or object");n=t}if(!n)return[];if(!Array.isArray(n))throw new Error("Expected JSON string to be array");return n.map((t=>{if("string"==typeof t)return e.bufferify(t);if(t instanceof Object)return{position:t.position,data:e.bufferify(t.data)};throw new Error("Expected item to be of type string or object")}))}static marshalTree(t){const n=t.getHexRoot(),r=t.leaves.map((t=>e.bufferToHex(t))),i=t.getHexLayers(),a=t.getOptions();return JSON.stringify({options:a,root:n,layers:i,leaves:r},null,2)}static unmarshalTree(t,n=aP.default,r={}){let i=null;if("string"==typeof t)i=JSON.parse(t);else{if(!(t instanceof Object))throw new Error("Expected type of string or object");i=t}if(!i)throw new Error("could not parse json");return r=Object.assign({},i.options||{},r),new e(i.leaves,n,r)}getProofIndices(e,t){const n=Math.pow(2,t);let r=new Set;for(const t of e){let e=n+t;for(;e>1;)r.add(1^e),e=e/2|0}const i=e.map((e=>n+e)),a=Array.from(r).sort(((e,t)=>e-t)).reverse();r=i.concat(a);const o=new Set,s=[];for(let e of r)if(!o.has(e))for(s.push(e);e>1&&(o.add(e),o.has(1^e));)e=e/2|0;return s.filter((t=>!e.includes(t-n)))}getProofIndicesForUnevenTree(e,t){const n=Math.ceil(Math.log2(t)),r=[];for(let e=0;e<n;e++){t%2!=0&&r.push({index:e,leavesCount:t}),t=Math.ceil(t/2)}const i=[];let a=e;for(let e=0;e<n;e++){const t=a.map((e=>e%2==0?e+1:e-1));let n=t.filter((e=>!a.includes(e)));const o=r.find((({index:t})=>t===e));o&&a.includes(o.leavesCount-1)&&(n=n.slice(0,-1)),i.push(n),a=[...new Set(a.map((e=>e%2==0?e/2:e%2==0?(e+1)/2:(e-1)/2)))]}return i}getMultiProof(e,t){this.complete||console.warn("Warning: For correct multiProofs it's strongly recommended to set complete: true"),t||(t=e,e=this.getLayersFlat());if(this.isUnevenTree()&&t.every(Number.isInteger))return this.getMultiProofForUnevenTree(t);if(!t.every(Number.isInteger)){let e=t;this.sortPairs&&(e=e.sort(rP.Buffer.compare));let n=e.map((e=>this.bufferIndexOf(this.leaves,e,this.sortLeaves))).sort(((e,t)=>e===t?0:e>t?1:-1));if(!n.every((e=>-1!==e)))throw new Error("Element does not exist in Merkle tree");const r=[],i=[];let a=[];for(let e=0;e<this.layers.length;e++){const t=this.layers[e];for(let e=0;e<n.length;e++){const o=n[e],s=this.getPairNode(t,o);r.push(t[o]),s&&i.push(s),a.push(o/2|0)}n=a.filter(((e,t,n)=>n.indexOf(e)===t)),a=[]}return i.filter((e=>!r.includes(e)))}return this.getProofIndices(t,Math.log2(e.length/2|0)).map((t=>e[t]))}getMultiProofForUnevenTree(e,t){t||(t=e,e=this.getLayers());let n=[],r=t;for(const t of e){const e=[];for(const n of r){if(n%2==0){const i=n+1;if(!r.includes(i)&&t[i]){e.push(t[i]);continue}}const i=n-1;r.includes(i)||!t[i]||e.push(t[i])}n=n.concat(e);const i=new Set;for(const e of r)e%2!=0?e%2!=0?i.add((e-1)/2):i.add((e+1)/2):i.add(e/2);r=Array.from(i)}return n}getHexMultiProof(e,t){return this.getMultiProof(e,t).map((e=>this.bufferToHex(e)))}getProofFlags(e,t){if(!Array.isArray(e)||e.length<=0)throw new Error("Invalid Inputs!");let n;if(n=e.every(Number.isInteger)?[...e].sort(((e,t)=>e===t?0:e>t?1:-1)):e.map((e=>this.bufferIndexOf(this.leaves,e,this.sortLeaves))).sort(((e,t)=>e===t?0:e>t?1:-1)),!n.every((e=>-1!==e)))throw new Error("Element does not exist in Merkle tree");const r=t.map((e=>this.bufferify(e))),i=[],a=[];for(let e=0;e<this.layers.length;e++){const t=this.layers[e];n=n.reduce(((e,n)=>{if(!i.includes(t[n])){const e=this.getPairNode(t,n),o=r.includes(t[n])||r.includes(e);e&&a.push(!o),i.push(t[n]),i.push(e)}return e.push(n/2|0),e}),[])}return a}verify(e,t,n){let r=this.bufferify(t);if(n=this.bufferify(n),!Array.isArray(e)||!t||!n)return!1;for(let t=0;t<e.length;t++){const n=e[t];let i=null,a=null;if("string"==typeof n)i=this.bufferify(n),a=!0;else if(Array.isArray(n))a=0===n[0],i=this.bufferify(n[1]);else if(rP.Buffer.isBuffer(n))i=n,a=!0;else{if(!(n instanceof Object))throw new Error("Expected node to be of type string or object");i=this.bufferify(n.data),a="left"===n.position}const o=[];this.isBitcoinTree?(o.push(iP.default(r)),o[a?"unshift":"push"](iP.default(i)),r=this.hashFn(this.concatenator(o)),r=iP.default(this.hashFn(r))):this.sortPairs?-1===rP.Buffer.compare(r,i)?(o.push(r,i),r=this.hashFn(this.concatenator(o))):(o.push(i,r),r=this.hashFn(this.concatenator(o))):(o.push(r),o[a?"unshift":"push"](i),r=this.hashFn(this.concatenator(o)))}return 0===rP.Buffer.compare(r,n)}verifyMultiProof(e,t,n,r,i){if(this.isUnevenTree())return this.verifyMultiProofForUnevenTree(e,t,n,r,i);const a=Math.ceil(Math.log2(r));e=this.bufferify(e),n=n.map((e=>this.bufferify(e))),i=i.map((e=>this.bufferify(e)));const o={};for(const[e,r]of this.zip(t,n))o[Math.pow(2,a)+e]=r;for(const[e,n]of this.zip(this.getProofIndices(t,a),i))o[e]=n;let s=Object.keys(o).map((e=>+e)).sort(((e,t)=>e-t));s=s.slice(0,s.length-1);let u=0;for(;u<s.length;){const e=s[u];if(e>=2&&{}.hasOwnProperty.call(o,1^e)){let t=[o[e-e%2],o[e-e%2+1]];this.sortPairs&&(t=t.sort(rP.Buffer.compare));const n=t[1]?this.hashFn(this.concatenator(t)):t[0];o[e/2|0]=n,s.push(e/2|0)}u+=1}return!t.length||{}.hasOwnProperty.call(o,1)&&o[1].equals(e)}verifyMultiProofWithFlags(e,t,n,r){e=this.bufferify(e),t=t.map(this.bufferify),n=n.map(this.bufferify);const i=t.length,a=r.length,o=[];let s=0,u=0,c=0;for(let e=0;e<a;e++){const a=[r[e]?s<i?t[s++]:o[u++]:n[c++],s<i?t[s++]:o[u++]].sort(rP.Buffer.compare);o[e]=this.hashFn(this.concatenator(a))}return 0===rP.Buffer.compare(o[a-1],e)}verifyMultiProofForUnevenTree(e,t,n,r,i){e=this.bufferify(e),n=n.map((e=>this.bufferify(e))),i=i.map((e=>this.bufferify(e)));const a=this.calculateRootForUnevenTree(t,n,r,i);return e.equals(a)}getDepth(){return this.getLayers().length-1}getLayersAsObject(){const e=this.getLayers().map((e=>e.map((e=>this.bufferToHex(e,!1))))),t=[];for(let n=0;n<e.length;n++){const r=[];for(let i=0;i<e[n].length;i++){const a={[e[n][i]]:null};if(t.length){a[e[n][i]]={};const r=t.shift(),o=Object.keys(r)[0];if(a[e[n][i]][o]=r[o],t.length){const r=t.shift(),o=Object.keys(r)[0];a[e[n][i]][o]=r[o]}}r.push(a)}t.push(...r)}return t[0]}static verify(t,n,r,i=aP.default,a={}){return new e([],i,a).verify(t,n,r)}static getMultiProof(t,n){return new e([]).getMultiProof(t,n)}resetTree(){this.leaves=[],this.layers=[]}getPairNode(e,t){const n=t%2==0?t+1:t-1;return n<e.length?e[n]:null}toTreeString(){const e=this.getLayersAsObject();return oP.default.asTree(e,!0)}toString(){return this.toTreeString()}isUnevenTree(e){const t=(null==e?void 0:e.length)||this.getDepth();return!this.isPowOf2(t)}isPowOf2(e){return e&&!(e&e-1)}calculateRootForUnevenTree(e,t,n,r){const i=this.zip(e,t).sort((([e],[t])=>e-t)),a=i.map((([e])=>e)),o=this.getProofIndicesForUnevenTree(a,n);let s=0;const u=[];for(let e=0;e<o.length;e++){const t=o[e],n=s;s+=t.length,u[e]=this.zip(t,r.slice(n,s))}const c=[i];for(let e=0;e<u.length;e++){const t=u[e].concat(c[e]).sort((([e],[t])=>e-t)).map((([,e])=>e)),n=c[e].map((([e])=>e)),r=[...new Set(n.map((e=>e%2==0?e/2:e%2==0?(e+1)/2:(e-1)/2)))],i=[];for(let e=0;e<r.length;e++){const n=r[e],a=t[2*e],o=t[2*e+1],s=o?this.hashFn(this.concatenator([a,o])):a;i.push([n,s])}c.push(i)}return c[c.length-1][0][1]}};lN.MerkleTree=uP,"undefined"!=typeof window&&(window.MerkleTree=uP),lN.default=uP;var cP={},lP=Ft&&Ft.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(cP,"__esModule",{value:!0}),cP.MerkleMountainRange=void 0;const dP=Gn,fP=lP(yN),pP=lP(TN);class hP extends pP.default{constructor(e=fP.default,t=[],n,r,i){super(),this.root=dP.Buffer.alloc(0),this.size=0,this.width=0,this.hashes={},this.data={},t=t.map(this.bufferify),this.hashFn=this.bufferifyFn(e),this.hashLeafFn=n,this.peakBaggingFn=r,this.hashBranchFn=i;for(const e of t)this.append(e)}append(e){e=this.bufferify(e);const t=this.hashFn(e),n=this.bufferToHex(t);this.data[n]&&this.bufferToHex(this.hashFn(this.data[n]))===n||(this.data[n]=e);const r=this.hashLeaf(this.size+1,t);this.hashes[this.size+1]=r,this.width+=1;const i=this.getPeakIndexes(this.width);this.size=this.getSize(this.width);const a=[];for(let e=0;e<i.length;e++)a[e]=this._getOrCreateNode(i[e]);this.root=this.peakBagging(this.width,a)}hashLeaf(e,t){return t=this.bufferify(t),this.hashLeafFn?this.bufferify(this.hashLeafFn(e,t)):this.hashFn(dP.Buffer.concat([this.bufferify(e),t]))}hashBranch(e,t,n){return this.hashBranchFn?this.bufferify(this.hashBranchFn(e,t,n)):this.hashFn(dP.Buffer.concat([this.bufferify(e),this.bufferify(t),this.bufferify(n)]))}getPeaks(){const e=this.getPeakIndexes(this.width),t=[];for(let n=0;n<e.length;n++)t[n]=this.hashes[e[n]];return t}getLeafIndex(e){return e%2==1?this.getSize(e):this.getSize(e-1)+1}getPeakIndexes(e){const t=this.numOfPeaks(e),n=[];let r=0,i=0;for(let a=255;a>0&&!(0!=(e&1<<a-1)&&(i=i+(1<<a)-1,n[r++]=i,n.length>=t));a--);if(r!==n.length)throw new Error("invalid bit calculation");return n}numOfPeaks(e){let t=e,n=0;for(;t>0;)t%2==1&&n++,t>>=1;return n}peakBagging(e,t){const n=this.getSize(e);if(this.numOfPeaks(e)!==t.length)throw new Error("received invalid number of peaks");return 0!==e||t.length?this.peakBaggingFn?this.bufferify(this.peakBaggingFn(n,t)):this.hashFn(dP.Buffer.concat([this.bufferify(n),...t.map(this.bufferify)])):dP.Buffer.alloc(0)}getSize(e){return(e<<1)-this.numOfPeaks(e)}getRoot(){return this.root}getHexRoot(){return this.bufferToHex(this.getRoot())}getNode(e){return this.hashes[e]}mountainHeight(e){let t=1;for(;1<<t<=e+t;)t++;return t-1}heightAt(e){let t=e,n=0,r=0;for(;t>n;)t-=(1<<r)-1,r=this.mountainHeight(t),n=(1<<r)-1;return r-(n-t)}isLeaf(e){return 1===this.heightAt(e)}getChildren(e){const t=e-(1<<this.heightAt(e)-1),n=e-1;if(t===n)throw new Error("not a parent");return[t,n]}getMerkleProof(e){if(e>this.size)throw new Error("out of range");if(!this.isLeaf(e))throw new Error("not a leaf");const t=this.root,n=this.width,r=this.getPeakIndexes(this.width),i=[];let a=0;for(let t=0;t<r.length;t++)i[t]=this.hashes[r[t]],r[t]>=e&&0===a&&(a=r[t]);let o=0,s=0,u=this.heightAt(a);const c=[];for(;a!==e;)u--,[o,s]=this.getChildren(a),a=e<=o?o:s,c[u-1]=this.hashes[e<=o?s:o];return{root:t,width:n,peakBagging:i,siblings:c}}verify(e,t,n,r,i,a){r=this.bufferify(r);if(this.getSize(t)<n)throw new Error("index is out of range");if(!e.equals(this.peakBagging(t,i)))throw new Error("invalid root hash from the peaks");let o,s=0;const u=this.getPeakIndexes(t);for(let e=0;e<u.length;e++)if(u[e]>=n){o=i[e],s=u[e];break}if(!o)throw new Error("target not found");let c=a.length+1;const l=new Array(c);let d,f=0,p=0;for(;c>0&&(l[--c]=s,s!==n);)[f,p]=this.getChildren(s),s=n>f?p:f;for(;c<l.length;)s=l[c],d=0===c?this.hashLeaf(s,this.hashFn(r)):s-1===l[c-1]?this.hashBranch(s,a[c-1],d):this.hashBranch(s,d,a[c-1]),c++;if(!d.equals(o))throw new Error("hashed peak is invalid");return!0}peaksToPeakMap(e,t){const n={};let r=0,i=0,a=t.length;for(let o=1;o<=32;o++)r=32-o,i=1<<o-1,n[r]=0!=(e&i)?t[--a]:0;if(0!==a)throw new Error("invalid number of peaks");return n}peakMapToPeaks(e,t){const n=this.numOfPeaks(e),r=new Array(n);let i=0;for(let e=0;e<32;e++)0!==t[e]&&(r[i++]=t[e]);if(i!==n)throw new Error("invalid number of peaks");return r}peakUpdate(e,t,n){const r={},i=e+1;let a=this.getLeafIndex(i),o=this.hashLeaf(a,n),s=0,u=0,c=!1,l=!1,d=!1;for(let n=1;n<=32;n++)s=32-n,d?r[s]=t[s]:(u=1<<n-1,c=0!=(e&u),l=0!=(i&u),a++,c&&(o=this.hashBranch(a,t[s],o)),l?(r[s]=c?t[s]:o,d=!0):r[s]=0);return r}rollUp(e,t,n,r){if(!e.equals(this.peakBagging(t,n)))throw new Error("invalid root hash from the peaks");let i=t,a=this.peaksToPeakMap(t,n);for(let e=0;e<r.length;e++)a=this.peakUpdate(i,a,r[e]),i++;return this.peakBagging(i,this.peakMapToPeaks(i,a))}_getOrCreateNode(e){if(e>this.size)throw new Error("out of range");if(!this.hashes[e]){const[t,n]=this.getChildren(e),r=this._getOrCreateNode(t),i=this._getOrCreateNode(n);this.hashes[e]=this.hashBranch(e,r,i)}return this.hashes[e]}}cP.MerkleMountainRange=hP,"undefined"!=typeof window&&(window.MerkleMountainRange=hP),cP.default=hP;var mP={},yP=Ft&&Ft.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(mP,"__esModule",{value:!0}),mP.IncrementalMerkleTree=void 0;const gP=yP(TN),bP=yP(vN);class vP extends gP.default{constructor(e,t){if(super(),this.hashFn=e,t.depth&&(this.depth=t.depth),t.arity&&(this.arity=t.arity),this.depth<1)throw new Error("depth must be greater than 0");if(this.arity<1)throw new Error("arity must be greater than 0");const n=[];let r=t.zeroValue;if(this.zeroValue=r,this.zeroes=[],this.depth)for(let e=0;e<this.depth;e++)this.zeroes.push(r),n[e]=[],r=this.hashFn(Array(this.arity).fill(r));this.nodes=n,this.root=r}getRoot(){return this.root}getHexRoot(){return this.bufferToHex(this.bufferify(this.getRoot()))}insert(e){if(this.depth&&this.arity&&this.nodes[0].length>=this.getMaxLeaves())throw new Error("tree is full");let t=e,n=this.nodes[0].length;for(let e=0;e<this.depth;e+=1){const r=n-n%this.arity,i=r+this.arity,a=[];this.nodes[e][n]=t;for(let t=r;t<i;t+=1)t<this.nodes[e].length?a.push(this.nodes[e][t]):a.push(this.zeroes[e]);t=this.hashFn(a),n=Math.floor(n/this.arity)}this.root=t}delete(e){this.update(e,this.zeroValue)}update(e,t){if(e<0||e>=this.nodes[0].length)throw new Error("out of bounds");let n=t;for(let t=0;t<this.depth;t+=1){const r=e-e%this.arity,i=r+this.arity,a=[];this.nodes[t][e]=n;for(let e=r;e<i;e+=1)e<this.nodes[t].length?a.push(this.nodes[t][e]):a.push(this.zeroes[t]);n=this.hashFn(a),e=Math.floor(e/this.arity)}this.root=n}getDepth(){return this.depth}getArity(){return this.arity}getMaxLeaves(){return Math.pow(this.depth,this.arity)}indexOf(e){return this.nodes[0].indexOf(e)}getLeaves(){const e=this.copyList(this.nodes[0]);for(let t=this.nodes[0].length;t<this.getMaxLeaves();t++)e[t]=this.zeroValue;return e}copyList(e){return e.map((e=>BigInt(e)))}getLayers(){const e=[];for(const t of this.nodes)e.push(this.copyList(t));if(e[0].length<this.getMaxLeaves()){let t=e[0].length;for(let n=t;n<this.getMaxLeaves();n++)e[0][n]=this.zeroValue;for(let n=0;n<this.depth;n++){const r=t-t%this.arity,i=r+this.arity;for(let t=r;t<i;t++)t>=e[n].length&&(e[n][t]=this.zeroes[n]);t=Math.floor(t/this.arity)}}return e.push([this.root]),e}getHexLayers(){return this.getLayers().reduce(((e,t)=>(Array.isArray(t)?e.push(t.map((e=>this.bufferToHex(this.bufferify(e))))):e.push(t),e)),[])}getLayersAsObject(){const e=this.getLayers().map((e=>e.map((e=>this.bufferToHex(this.bufferify(e),!1))))),t=[];for(let n=0;n<e.length;n++){const r=[];for(let i=0;i<e[n].length;i++){const a={[e[n][i]]:null};if(t.length){a[e[n][i]]={};const r=t.shift(),o=Object.keys(r)[0];if(a[e[n][i]][o]=r[o],t.length){const r=t.shift(),o=Object.keys(r)[0];a[e[n][i]][o]=r[o]}}r.push(a)}t.push(...r)}return t[0]}computeRoot(){let e,t=this.nodes[0].length;for(let n=0;n<this.depth;n+=1){const r=t-t%this.arity,i=r+this.arity,a=[];for(let e=r;e<i;e+=1)e<this.nodes[n].length?a.push(this.nodes[n][e]):a.push(this.zeroes[n]);e=this.hashFn(a),t=Math.floor(t/this.arity)}return e}getProof(e){if(e<0||e>=this.nodes[0].length)throw new Error("The leaf does not exist in this tree");const t=[],n=[],r=e;for(let r=0;r<this.depth;r+=1){const i=e%this.arity,a=e-i,o=a+this.arity;n[r]=i,t[r]=[];for(let n=a;n<o;n+=1)n!==e&&(n<this.nodes[r].length?t[r].push(this.nodes[r][n]):t[r].push(this.zeroes[r]));e=Math.floor(e/this.arity)}return{root:this.root,leaf:this.nodes[0][r],pathIndices:n,siblings:t}}verify(e){let t=e.leaf;for(let n=0;n<e.siblings.length;n+=1){const r=e.siblings[n].slice();r.splice(e.pathIndices[n],0,t),t=this.hashFn(r)}return e.root===t}toString(){return this.toTreeString()}toTreeString(){const e=this.getLayersAsObject();return bP.default.asTree(e,!0)}}mP.IncrementalMerkleTree=vP,"undefined"!=typeof window&&(window.IncrementalMerkleTree=vP),mP.default=vP;var TP={};Object.defineProperty(TP,"__esModule",{value:!0}),TP.MerkleSumTree=TP.ProofStep=TP.Leaf=TP.Bucket=void 0;const wP=TN;class EP{constructor(e,t){this.size=BigInt(e),this.hashed=t,this.parent=null,this.left=null,this.right=null}}TP.Bucket=EP;TP.Leaf=class{constructor(e,t,n){this.hashFn=e,this.rng=t.map((e=>BigInt(e))),this.data=n}getBucket(){let e;return e=this.data?this.hashFn(this.data):Buffer.alloc(32),new EP(BigInt(this.rng[1])-BigInt(this.rng[0]),e)}};class AP{constructor(e,t){this.bucket=e,this.right=t}}TP.ProofStep=AP;class _P extends wP.Base{constructor(e,t){super(),this.leaves=e,this.hashFn=t,_P.checkConsecutive(e),this.buckets=[];for(const t of e)this.buckets.push(t.getBucket());let n=[];for(const e of this.buckets)n.push(e);for(;1!==n.length;){const e=[];for(;n.length;)if(n.length>=2){const t=n.shift(),r=n.shift(),i=t.size+r.size,a=this.hashFn(Buffer.concat([this.sizeToBuffer(t.size),this.bufferify(t.hashed),this.sizeToBuffer(r.size),this.bufferify(r.hashed)])),o=new EP(i,a);r.parent=o,t.parent=r.parent,t.right=r,r.left=t,e.push(o)}else e.push(n.shift());n=e}this.root=n[0]}sizeToBuffer(e){const t=Buffer.alloc(8);return new DataView(t.buffer).setBigInt64(0,BigInt(e),!1),t}static checkConsecutive(e){let t=BigInt(0);for(const n of e){if(n.rng[0]!==t)throw new Error("leaf ranges are invalid");t=BigInt(n.rng[1])}}getProof(e){let t=this.buckets[Number(e)];const n=[];for(;t&&t.parent;){const e=!!t.right,r=t.right?t.right:t.left;t=t.parent,n.push(new AP(r,e))}return n}sum(e){let t=BigInt(0);for(const n of e)t+=BigInt(n);return t}verifyProof(e,t,n){const r=[this.sum(n.filter((e=>!e.right)).map((e=>e.bucket.size))),BigInt(e.size)-this.sum(n.filter((e=>e.right)).map((e=>e.bucket.size)))];if(r[0]!==t.rng[0]||r[1]!==t.rng[1])return!1;let i,a=t.getBucket();for(const e of n)i=e.right?this.hashFn(Buffer.concat([this.sizeToBuffer(a.size),this.bufferify(a.hashed),this.sizeToBuffer(e.bucket.size),this.bufferify(e.bucket.hashed)])):this.hashFn(Buffer.concat([this.sizeToBuffer(e.bucket.size),this.bufferify(e.bucket.hashed),this.sizeToBuffer(a.size),this.bufferify(a.hashed)])),a=new EP(BigInt(a.size)+BigInt(e.bucket.size),i);return a.size===e.size&&a.hashed.toString("hex")===e.hashed.toString("hex")}}TP.MerkleSumTree=_P,"undefined"!=typeof window&&(window.MerkleSumTree=_P),TP.default=_P,function(e){var t=Ft&&Ft.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,"__esModule",{value:!0}),e.MerkleTree=void 0;const n=t(lN);e.MerkleTree=n.default;var r=cP;Object.defineProperty(e,"MerkleMountainRange",{enumerable:!0,get:function(){return r.MerkleMountainRange}});var i=mP;Object.defineProperty(e,"IncrementalMerkleTree",{enumerable:!0,get:function(){return i.IncrementalMerkleTree}});var a=TP;Object.defineProperty(e,"MerkleSumTree",{enumerable:!0,get:function(){return a.MerkleSumTree}}),e.default=n.default}(cN);var IP={};Object.defineProperty(IP,"__esModule",{value:!0}),IP.DefaultGetter=void 0;const RP=lS,CP=new vS.Logger("defaults"),OP={integer:0,address:(0,RP.hexZeroPad)("0x",20),bool:!1,bytes:"0x",string:""},kP=e=>void 0!==e&&(null!=e&&(["string","number"].includes(typeof e)&&BigInt(e)===BigInt(0)||Array.isArray(e)&&e.every(kP)||"object"==typeof e&&Object.values(e).every(kP)||"boolean"==typeof e&&!1===e));class SP{constructor(e){this.types=e,this.defaultValues={};for(const t in e){const e=this.getDefaultValue(t);this.defaultValues[t]=e,kP(e)||CP.throwError(`Got non-empty value for type ${t} in default generator: ${e}`)}}static from(e,t){const{defaultValues:n}=new SP(e);return t?n[t]:n}getDefaultValue(e){if(this.defaultValues[e])return this.defaultValues[e];const t=function(e){var t;const[,n]=null!==(t=e.match(/^bytes(\d+)$/))&&void 0!==t?t:[];return n?(0,RP.hexZeroPad)("0x",parseInt(n)):(e.match(/^(u?)int(\d*)$/)&&(e="integer"),OP[e])}(e);if(void 0!==t)return t;const n=e.match(/^(.*)(\x5b(\d*)\x5d)$/);if(n){const e=n[1],t=parseInt(n[3]);if(t>0){const n=this.getDefaultValue(e);return Array(t).fill(n)}return[]}const r=this.types[e];return r?r.reduce(((e,{name:t,type:n})=>Object.assign(Object.assign({},e),{[t]:this.getDefaultValue(n)})),{}):CP.throwArgumentError(`unknown type: ${e}`,"type",e)}}IP.DefaultGetter=SP;var NP={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.getNextLayer=e.getRoot=e.fillArray=e.hashConcat=e.bufferKeccak=e.hexToBuffer=e.bufferToHex=e.chunk=e.makeArray=void 0;const t=lS;e.makeArray=(e,t)=>Array(e).fill(0).map(((e,n)=>t(n)));e.chunk=(t,n)=>(0,e.makeArray)(Math.ceil(t.length/n),(e=>t.slice(e*n,(e+1)*n)));e.bufferToHex=e=>(0,t.hexlify)(e);e.hexToBuffer=e=>Buffer.from(e.slice(2),"hex");e.bufferKeccak=n=>(0,e.hexToBuffer)((0,t.keccak256)(n));e.hashConcat=n=>(0,e.bufferKeccak)((0,t.hexConcat)(n));e.fillArray=(e,t,n)=>(t>e.length&&e.push(...Array(t-e.length).fill(n)),e);e.getRoot=(t,n=!0)=>{if(0===t.length)throw new Error("empty tree");const r=[t.map((t=>{const r=Buffer.isBuffer(t)?t:(0,e.hexToBuffer)(t);return n?(0,e.bufferKeccak)(r):r}))];for(;r[r.length-1].length>1;)r.push((0,e.getNextLayer)(r[r.length-1]));return r[r.length-1][0]};e.getNextLayer=t=>(0,e.chunk)(t,2).map(e.hashConcat)}(NP),Object.defineProperty(uN,"__esModule",{value:!0}),uN.Eip712MerkleTree=void 0;const xP=mS,PP=lS,MP=cN,BP=IP,DP=NP;uN.Eip712MerkleTree=class{get completedSize(){return Math.pow(2,this.depth)}getCompleteElements(){const e=this.elements;return(0,DP.fillArray)([...e],this.completedSize,this.defaultNode)}getCompleteLeaves(){const e=this.elements.map(this.leafHasher);return(0,DP.fillArray)([...e],this.completedSize,this.defaultLeaf)}get root(){return this.tree.getHexRoot()}getProof(e){const t=this.getCompleteLeaves()[e];return{leaf:t,proof:this.tree.getHexProof(t,e),root:this.tree.getHexRoot()}}getEncodedProofAndSignature(e,t){const{proof:n}=this.getProof(e);return((e,t,n=`0x${"ff".repeat(64)}`)=>(0,PP.hexConcat)([n,`0x${e.toString(16).padStart(6,"0")}`,PP.defaultAbiCoder.encode([`uint256[${t.length}]`],[t])]))(e,n,t)}getDataToSign(){let e=this.getCompleteElements();for(;e.length>2;)e=(0,DP.chunk)(e,2);return e}add(e){this.elements.push(e)}getBulkOrderHash(){const e=this.encoder.hashStruct("BulkOrder",{tree:this.getDataToSign()}),t=this.getCompleteLeaves().map(DP.hexToBuffer),n=(0,DP.bufferToHex)((0,DP.getRoot)(t,!1)),r=(0,PP.keccak256)((0,PP.toUtf8Bytes)(this.encoder._types.BulkOrder));if((0,PP.keccak256)((0,PP.hexConcat)([r,n]))!==e)throw new Error("expected derived bulk order hash to match");return e}constructor(e,t,n,r,i){this.types=e,this.rootType=t,this.leafType=n,this.elements=r,this.depth=i;const a=xP._TypedDataEncoder.from(e);var o,s;this.encoder=a,this.leafHasher=e=>a.hashStruct(n,e),this.defaultNode=BP.DefaultGetter.from(e,n),this.defaultLeaf=this.leafHasher(this.defaultNode),this.tree=(o=this.getCompleteLeaves(),s=this.defaultLeaf,new MP.MerkleTree(o.map(DP.hexToBuffer),DP.bufferKeccak,{complete:!0,sort:!1,hashLeaves:!1,fillDefaultHash:(0,DP.hexToBuffer)(s)}))}},Object.defineProperty(sN,"__esModule",{value:!0}),sN.getBulkOrderTypeHashes=sN.getBulkOrderTypeHash=sN.getBulkOrderTree=sN.getBulkOrderTreeHeight=void 0;const FP=lS,LP=uN,UP=IP,qP=NP,jP=xS;function GP(e){const t=Object.assign({},jP.EIP_712_BULK_ORDER_TYPE);return t.BulkOrder=[{name:"tree",type:`OrderComponents${"[2]".repeat(e)}`}],t}function HP(e){return Math.max(Math.ceil(Math.log2(e)),1)}function zP(e){const t=GP(e),n=FP._TypedDataEncoder.from(t),r=(0,FP.toUtf8Bytes)(n._types.BulkOrder);return(0,FP.keccak256)(r)}sN.getBulkOrderTreeHeight=HP,sN.getBulkOrderTree=function(e,t=0,n=HP(e.length+t)){const r=GP(n),i=UP.DefaultGetter.from(r,"OrderComponents");let a=[...e];return t>0&&(a=[...(0,qP.fillArray)([],t,i),...e]),new LP.Eip712MerkleTree(r,"BulkOrder","OrderComponents",a,n)},sN.getBulkOrderTypeHash=zP,sN.getBulkOrderTypeHashes=function(e){const t=[];for(let n=0;n<e;n++)t.push(zP(n+1));return t};var WP={},VP={},KP={};Object.defineProperty(KP,"__esModule",{value:!0}),KP.MerkleTree=void 0;const XP=cS,JP=lS,YP=cN,QP=e=>(0,JP.keccak256)(Buffer.from(XP.BigNumber.from(e).toHexString().slice(2).padStart(64,"0"),"hex"));KP.MerkleTree=class{constructor(e){this.tree=new YP.default(e.map(QP),JP.keccak256,{sort:!0})}getProof(e){return this.tree.getHexProof(QP(e))}getRoot(){return this.tree.getRoot().toString("hex")?this.tree.getHexRoot():"0"}},Object.defineProperty(VP,"__esModule",{value:!0}),VP.shouldUseMatchForFulfill=VP.generateRandomSalt=VP.mapOrderAmountsFromUnitsToFill=VP.mapOrderAmountsFromFilledStatus=VP.totalItemsAmount=VP.areAllCurrenciesSame=VP.mapInputItemToOfferItem=VP.deductFees=VP.feeToConsiderationItem=void 0;const $P=cS,ZP=lS,eM=xS,tM=GS(),nM=KP,rM=(e,t)=>$P.BigNumber.from(e).mul($P.BigNumber.from(t)).div(eM.ONE_HUNDRED_PERCENT_BP);VP.feeToConsiderationItem=({fee:e,token:t,baseAmount:n,baseEndAmount:r=n})=>({itemType:t===$P.ethers.constants.AddressZero?eM.ItemType.NATIVE:eM.ItemType.ERC20,token:t,identifierOrCriteria:"0",startAmount:rM(n,e.basisPoints).toString(),endAmount:rM(r,e.basisPoints).toString(),recipient:e.recipient});VP.deductFees=(e,t)=>{if(!t)return e;const n=t.reduce(((e,t)=>e+t.basisPoints),0);return e.map((e=>Object.assign(Object.assign({},e),{startAmount:(0,tM.isCurrencyItem)(e)?$P.BigNumber.from(e.startAmount).sub(rM(e.startAmount,n)).toString():e.startAmount,endAmount:(0,tM.isCurrencyItem)(e)?$P.BigNumber.from(e.endAmount).sub(rM(e.endAmount,n)).toString():e.endAmount})))};VP.mapInputItemToOfferItem=e=>{var t,n,r,i,a,o,s,u;if("itemType"in e){if("identifiers"in e||"criteria"in e){const i="criteria"in e?e.criteria:new nM.MerkleTree(e.identifiers).getRoot();return{itemType:e.itemType===eM.ItemType.ERC721?eM.ItemType.ERC721_WITH_CRITERIA:eM.ItemType.ERC1155_WITH_CRITERIA,token:e.token,identifierOrCriteria:i,startAmount:null!==(t=e.amount)&&void 0!==t?t:"1",endAmount:null!==(r=null!==(n=e.endAmount)&&void 0!==n?n:e.amount)&&void 0!==r?r:"1"}}return"amount"in e||"endAmount"in e?{itemType:e.itemType,token:e.token,identifierOrCriteria:null!==(i=e.identifier)&&void 0!==i?i:"0",startAmount:e.amount,endAmount:null!==(o=null!==(a=e.endAmount)&&void 0!==a?a:e.amount)&&void 0!==o?o:"1"}:{itemType:e.itemType,token:e.token,identifierOrCriteria:e.identifier,startAmount:"1",endAmount:"1"}}return{itemType:e.token&&e.token!==$P.ethers.constants.AddressZero?eM.ItemType.ERC20:eM.ItemType.NATIVE,token:null!==(s=e.token)&&void 0!==s?s:$P.ethers.constants.AddressZero,identifierOrCriteria:"0",startAmount:e.amount,endAmount:null!==(u=e.endAmount)&&void 0!==u?u:e.amount}};VP.areAllCurrenciesSame=({offer:e,consideration:t})=>{const n=[...e,...t].filter(tM.isCurrencyItem);return n.every((({itemType:e,token:t})=>e===n[0].itemType&&t.toLowerCase()===n[0].token.toLowerCase()))};VP.totalItemsAmount=e=>($P.BigNumber.from(0),$P.BigNumber.from(0),e.map((({startAmount:e,endAmount:t})=>({startAmount:e,endAmount:t}))).reduce((({startAmount:e,endAmount:t},{startAmount:n,endAmount:r})=>({startAmount:e.add(n),endAmount:t.add(r)})),{startAmount:$P.BigNumber.from(0),endAmount:$P.BigNumber.from(0)}));VP.mapOrderAmountsFromFilledStatus=(e,{totalFilled:t,totalSize:n})=>{if(t.eq(0)||n.eq(0))return e;const r=n.sub(t).mul(eM.ONE_HUNDRED_PERCENT_BP).div(n);return{parameters:Object.assign(Object.assign({},e.parameters),{offer:e.parameters.offer.map((e=>Object.assign(Object.assign({},e),{startAmount:rM(e.startAmount,r).toString(),endAmount:rM(e.endAmount,r).toString()}))),consideration:e.parameters.consideration.map((e=>Object.assign(Object.assign({},e),{startAmount:rM(e.startAmount,r).toString(),endAmount:rM(e.endAmount,r).toString()})))}),signature:e.signature}};const iM=(e,t,n)=>$P.BigNumber.from(e).mul($P.BigNumber.from(t)).div(n);VP.mapOrderAmountsFromUnitsToFill=(e,{unitsToFill:t,totalSize:n})=>{const r=$P.BigNumber.from(t);if(r.lte(0))throw new Error("Units to fill must be greater than 1");const i=(0,tM.getMaximumSizeForOrder)(e);return n.eq(0)&&(n=i),{parameters:Object.assign(Object.assign({},e.parameters),{offer:e.parameters.offer.map((e=>Object.assign(Object.assign({},e),{startAmount:iM(e.startAmount,r,n).toString(),endAmount:iM(e.endAmount,r,n).toString()}))),consideration:e.parameters.consideration.map((e=>Object.assign(Object.assign({},e),{startAmount:iM(e.startAmount,r,n).toString(),endAmount:iM(e.endAmount,r,n).toString()})))}),signature:e.signature}};VP.generateRandomSalt=e=>e?`0x${Buffer.from((0,ZP.concat)([(0,ZP.keccak256)((0,ZP.toUtf8Bytes)(e)).slice(0,10),Uint8Array.from(Array(20).fill(0)),(0,ZP.randomBytes)(8)])).toString("hex")}`:`0x${Buffer.from((0,ZP.randomBytes)(8)).toString("hex").padStart(64,"0")}`;VP.shouldUseMatchForFulfill=()=>!0,function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.getAdvancedOrderNumeratorDenominator=e.generateFulfillOrdersFulfillments=e.fulfillAvailableOrders=e.validateAndSanitizeFromOrderStatus=e.fulfillStandardOrder=e.fulfillBasicOrder=e.shouldUseBasicFulfill=void 0;const t=cS,n=xS,r=PS,i=QS,a=US(),o=jS,s=GS(),u=VP,c=HS;e.shouldUseBasicFulfill=({offer:e,consideration:r,offerer:i},a)=>{if(!a.eq(0))return!1;if(e.length>1||0===r.length)return!1;const o=[...e,...r],c=o.filter((({itemType:e})=>[n.ItemType.ERC721,n.ItemType.ERC1155].includes(e))),l=o.filter((({itemType:e})=>(0,s.isCriteriaItem)(e)));if((0,s.isNativeCurrencyItem)(e[0]))return!1;if(1!==c.length||0!==l.length)return!1;if(!(0,u.areAllCurrenciesSame)({offer:e,consideration:r}))return!1;if(o.some((({startAmount:e,endAmount:t})=>e!==t)))return!1;const[d,...f]=r;if(d.recipient.toLowerCase()!==i.toLowerCase())return!1;if(r.length>1&&f.every((t=>t.itemType===e[0].itemType))&&(0,u.totalItemsAmount)(f).endAmount.gt(e[0].endAmount))return!1;const p=o.filter(s.isCurrencyItem),h=p.filter((({itemType:e})=>e===n.ItemType.NATIVE)).every((({token:e})=>e===t.ethers.constants.AddressZero)),m=p.every((({identifierOrCriteria:e})=>t.BigNumber.from(e).eq(0))),y=c.filter((({itemType:e})=>e===n.ItemType.ERC721)).every((({endAmount:e})=>"1"===e));return h&&m&&y};const l={[n.ItemType.ERC20]:{[n.ItemType.ERC721]:n.BasicOrderRouteType.ERC721_TO_ERC20,[n.ItemType.ERC1155]:n.BasicOrderRouteType.ERC1155_TO_ERC20},[n.ItemType.ERC721]:{[n.ItemType.NATIVE]:n.BasicOrderRouteType.ETH_TO_ERC721,[n.ItemType.ERC20]:n.BasicOrderRouteType.ERC20_TO_ERC721},[n.ItemType.ERC1155]:{[n.ItemType.NATIVE]:n.BasicOrderRouteType.ETH_TO_ERC1155,[n.ItemType.ERC20]:n.BasicOrderRouteType.ERC20_TO_ERC1155}};function d(e,t){const{isValidated:n,isCancelled:r,totalFilled:i,totalSize:a}=t;if(a.gt(0)&&i.div(a).eq(1))throw new Error("The order you are trying to fulfill is already filled");if(r)throw new Error("The order you are trying to fulfill is cancelled");return n?{parameters:Object.assign({},e.parameters),signature:"0x"}:e}function f(e){const t=({sourceOrDestination:e,operator:t="",token:n,identifier:r})=>`${e}-${t}-${n}-${r}`,n={},r={};return e.forEach((({order:e,offererOperator:r,offerCriteria:i},o)=>{const u=(0,a.getItemToCriteriaMap)(e.parameters.offer,i);return e.parameters.offer.forEach(((i,a)=>{var c,l,d;const f=`${t({sourceOrDestination:e.parameters.offerer,operator:r,token:i.token,identifier:null!==(l=null===(c=u.get(i))||void 0===c?void 0:c.identifier)&&void 0!==l?l:i.identifierOrCriteria})}${(0,s.isErc721Item)(i.itemType)?a:""}`;n[f]=[...null!==(d=n[f])&&void 0!==d?d:[],{orderIndex:o,itemIndex:a}]}))})),e.forEach((({order:e,considerationCriteria:n,tips:i},o)=>{const u=(0,a.getItemToCriteriaMap)(e.parameters.consideration,n);return[...e.parameters.consideration,...i].forEach(((e,n)=>{var i,a,c;const l=`${t({sourceOrDestination:e.recipient,token:e.token,identifier:null!==(a=null===(i=u.get(e))||void 0===i?void 0:i.identifier)&&void 0!==a?a:e.identifierOrCriteria})}${(0,s.isErc721Item)(e.itemType)?n:""}`;r[l]=[...null!==(c=r[l])&&void 0!==c?c:[],{orderIndex:o,itemIndex:n}]}))})),{offerFulfillments:Object.values(n),considerationFulfillments:Object.values(r)}}e.fulfillBasicOrder=function({order:e,seaportContract:a,offererBalancesAndApprovals:o,fulfillerBalancesAndApprovals:u,timeBasedItemParams:d,offererOperator:f,fulfillerOperator:p,signer:h,tips:m=[],conduitKey:y=n.NO_CONDUIT,domain:g},b){var v,T;const{offer:w,consideration:E}=e.parameters,A=[...E,...m],_=w[0],[I,...R]=A,C=null===(v=l[_.itemType])||void 0===v?void 0:v[I.itemType];if(void 0===C)throw new Error("Order parameters did not result in a valid basic fulfillment");const O=R.map((({startAmount:e,recipient:t})=>({amount:e,recipient:t}))),k=A.filter((e=>e.itemType!==w[0].itemType)),S=null===(T=(0,s.getSummedTokenAndIdentifierAmounts)({items:k,criterias:[],timeBasedItemParams:Object.assign(Object.assign({},d),{isConsiderationItem:!0})})[t.ethers.constants.AddressZero])||void 0===T?void 0:T[0],N=(0,i.validateBasicFulfillBalancesAndApprovals)({offer:w,consideration:A,offererBalancesAndApprovals:o,fulfillerBalancesAndApprovals:u,timeBasedItemParams:d,offererOperator:f,fulfillerOperator:p}),x={offerer:e.parameters.offerer,offererConduitKey:e.parameters.conduitKey,zone:e.parameters.zone,basicOrderType:e.parameters.orderType+4*C,offerToken:_.token,offerIdentifier:_.identifierOrCriteria,offerAmount:_.endAmount,considerationToken:I.token,considerationIdentifier:I.identifierOrCriteria,considerationAmount:I.endAmount,startTime:e.parameters.startTime,endTime:e.parameters.endTime,salt:e.parameters.salt,totalOriginalAdditionalRecipients:e.parameters.consideration.length-1,signature:e.signature,fulfillerConduitKey:y,additionalRecipients:O,zoneHash:e.parameters.zoneHash},P={value:S},M=[...(0,r.getApprovalActions)(N,b,h),{type:"exchange",transactionMethods:(0,c.getTransactionMethods)(a.connect(h),"fulfillBasicOrder",[x,P],g)}];return{actions:M,executeAllActions:()=>(0,c.executeAllActions)(M)}},e.fulfillStandardOrder=function({order:n,unitsToFill:o=0,totalSize:l,totalFilled:d,offerCriteria:f,considerationCriteria:p,tips:h=[],extraData:m,seaportContract:y,offererBalancesAndApprovals:g,fulfillerBalancesAndApprovals:b,offererOperator:v,fulfillerOperator:T,timeBasedItemParams:w,conduitKey:E,recipientAddress:A,signer:_,domain:I},R){var C;const O=o?(0,u.mapOrderAmountsFromUnitsToFill)(n,{unitsToFill:o,totalSize:l}):(0,u.mapOrderAmountsFromFilledStatus)(n,{totalFilled:d,totalSize:l}),{parameters:{offer:k,consideration:S}}=O,N=[...S,...h],x=k.filter((({itemType:e})=>(0,s.isCriteriaItem)(e))),P=N.filter((({itemType:e})=>(0,s.isCriteriaItem)(e))),M=x.length>0||P.length>0;if(x.length!==f.length||P.length!==p.length)throw new Error("You must supply the appropriate criterias for criteria based items");const B=null===(C=(0,s.getSummedTokenAndIdentifierAmounts)({items:N,criterias:p,timeBasedItemParams:Object.assign(Object.assign({},w),{isConsiderationItem:!0})})[t.ethers.constants.AddressZero])||void 0===C?void 0:C[0],D=(0,i.validateStandardFulfillBalancesAndApprovals)({offer:k,consideration:N,offerCriteria:f,considerationCriteria:p,offererBalancesAndApprovals:g,fulfillerBalancesAndApprovals:b,timeBasedItemParams:w,offererOperator:v,fulfillerOperator:T}),F={value:B},L=(0,r.getApprovalActions)(D,R,_),U=A!==t.ethers.constants.AddressZero,q=Boolean(o)||M||U,j=Object.assign(Object.assign({},n),{parameters:Object.assign(Object.assign({},n.parameters),{consideration:[...n.parameters.consideration,...h],totalOriginalConsiderationItems:S.length})}),{numerator:G,denominator:H}=(0,e.getAdvancedOrderNumeratorDenominator)(n,o),z=[...L,{type:"exchange",transactionMethods:q?(0,c.getTransactionMethods)(y.connect(_),"fulfillAdvancedOrder",[Object.assign(Object.assign({},j),{numerator:G,denominator:H,extraData:null!=m?m:"0x"}),M?(0,a.generateCriteriaResolvers)({orders:[n],offerCriterias:[f],considerationCriterias:[p]}):[],E,A,F],I):(0,c.getTransactionMethods)(y.connect(_),"fulfillOrder",[j,E,F],I)}];return{actions:z,executeAllActions:()=>(0,c.executeAllActions)(z)}},e.validateAndSanitizeFromOrderStatus=d,e.fulfillAvailableOrders=function({ordersMetadata:n,seaportContract:o,fulfillerBalancesAndApprovals:l,fulfillerOperator:p,currentBlockTimestamp:h,ascendingAmountTimestampBuffer:m,conduitKey:y,signer:g,recipientAddress:b,exactApproval:v,domain:T}){const w=n.map((e=>Object.assign(Object.assign({},e),{order:d(e.order,e.orderStatus)}))),E=w.map((e=>Object.assign(Object.assign({},e),{order:e.unitsToFill?(0,u.mapOrderAmountsFromUnitsToFill)(e.order,{unitsToFill:e.unitsToFill,totalSize:e.orderStatus.totalSize}):(0,u.mapOrderAmountsFromFilledStatus)(e.order,{totalFilled:e.orderStatus.totalFilled,totalSize:e.orderStatus.totalSize})})));let A=t.BigNumber.from(0);const _=[],I=w.flatMap((e=>[e.order.parameters.offer,e.order.parameters.consideration])).flat().filter((({itemType:e})=>(0,s.isCriteriaItem)(e))).length>0;E.forEach((({order:e,tips:n,offerCriteria:r,considerationCriteria:a,offererBalancesAndApprovals:o,offererOperator:u})=>{var c,d;const f=[...e.parameters.consideration,...n],y={startTime:e.parameters.startTime,endTime:e.parameters.endTime,currentBlockTimestamp:h,ascendingAmountTimestampBuffer:m,isConsiderationItem:!0};A=A.add(null!==(d=null===(c=(0,s.getSummedTokenAndIdentifierAmounts)({items:f,criterias:a,timeBasedItemParams:y})[t.ethers.constants.AddressZero])||void 0===c?void 0:c[0])&&void 0!==d?d:t.BigNumber.from(0));const g=(0,i.validateStandardFulfillBalancesAndApprovals)({offer:e.parameters.offer,consideration:f,offerCriteria:r,considerationCriteria:a,offererBalancesAndApprovals:o,fulfillerBalancesAndApprovals:l,timeBasedItemParams:y,offererOperator:u,fulfillerOperator:p}),b=e.parameters.offer.filter((({itemType:e})=>(0,s.isCriteriaItem)(e))),v=f.filter((({itemType:e})=>(0,s.isCriteriaItem)(e)));if(b.length!==r.length||v.length!==a.length)throw new Error("You must supply the appropriate criterias for criteria based items");g.forEach((e=>{_.find((t=>t.token===e.token))||_.push(e)}))}));const R={value:A},C=(0,r.getApprovalActions)(_,v,g),O=w.map((({order:t,unitsToFill:n=0,tips:r,extraData:i})=>{const{numerator:a,denominator:o}=(0,e.getAdvancedOrderNumeratorDenominator)(t,n),s=[...t.parameters.consideration,...r];return Object.assign(Object.assign({},t),{parameters:Object.assign(Object.assign({},t.parameters),{consideration:s,totalOriginalConsiderationItems:t.parameters.consideration.length}),numerator:a,denominator:o,extraData:i})})),{offerFulfillments:k,considerationFulfillments:S}=f(n),N={type:"exchange",transactionMethods:(0,c.getTransactionMethods)(o.connect(g),"fulfillAvailableAdvancedOrders",[O,I?(0,a.generateCriteriaResolvers)({orders:n.map((({order:e})=>e)),offerCriterias:n.map((({offerCriteria:e})=>e)),considerationCriterias:n.map((({considerationCriteria:e})=>e))}):[],k,S,y,b,O.length,R],T)},x=[...C,N];return{actions:x,executeAllActions:()=>(0,c.executeAllActions)(x)}},e.generateFulfillOrdersFulfillments=f;e.getAdvancedOrderNumeratorDenominator=(e,n)=>{const r=(0,s.getMaximumSizeForOrder)(e),i=t.BigNumber.from(n),a=(0,o.gcd)(i,r);return{numerator:n?i.div(a):t.BigNumber.from(1),denominator:n?r.div(a):t.BigNumber.from(1)}}}(WP);var aM=Ft&&Ft.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};Object.defineProperty(Lk,"__esModule",{value:!0}),Lk.Seaport=void 0;const oM=uS,sM=cS,uM=lS,cM=SS,lM=NS,dM=xS,fM=PS,pM=QS,hM=sN,mM=WP,yM=GS(),gM=VP,bM=HS;Lk.Seaport=class{constructor(e,{overrides:t,ascendingAmountFulfillmentBuffer:n=300,balanceAndApprovalChecksOnOrderCreation:r=!0,conduitKeyToConduit:i,seaportVersion:a="1.5"}={}){var o,s,u;this.OPENSEA_CONDUIT_KEY=dM.OPENSEA_CONDUIT_KEY,this.getOrderHash=e=>{const t="OfferItem(uint8 itemType,address token,uint256 identifierOrCriteria,uint256 startAmount,uint256 endAmount)",n="ConsiderationItem(uint8 itemType,address token,uint256 identifierOrCriteria,uint256 startAmount,uint256 endAmount,address recipient)",r=`OrderComponents(address offerer,address zone,OfferItem[] offer,ConsiderationItem[] consideration,uint8 orderType,uint256 startTime,uint256 endTime,bytes32 zoneHash,uint256 salt,bytes32 conduitKey,uint256 counter)${n}${t}`,i=sM.ethers.utils.keccak256(sM.ethers.utils.toUtf8Bytes(t)),a=sM.ethers.utils.keccak256(sM.ethers.utils.toUtf8Bytes(n)),o=sM.ethers.utils.keccak256(sM.ethers.utils.toUtf8Bytes(r)),s=sM.ethers.utils.keccak256("0x"+e.offer.map((e=>sM.ethers.utils.keccak256("0x"+[i.slice(2),e.itemType.toString().padStart(64,"0"),e.token.slice(2).padStart(64,"0"),sM.ethers.BigNumber.from(e.identifierOrCriteria).toHexString().slice(2).padStart(64,"0"),sM.ethers.BigNumber.from(e.startAmount).toHexString().slice(2).padStart(64,"0"),sM.ethers.BigNumber.from(e.endAmount).toHexString().slice(2).padStart(64,"0")].join("")).slice(2))).join("")),u=sM.ethers.utils.keccak256("0x"+e.consideration.map((e=>sM.ethers.utils.keccak256("0x"+[a.slice(2),e.itemType.toString().padStart(64,"0"),e.token.slice(2).padStart(64,"0"),sM.ethers.BigNumber.from(e.identifierOrCriteria).toHexString().slice(2).padStart(64,"0"),sM.ethers.BigNumber.from(e.startAmount).toHexString().slice(2).padStart(64,"0"),sM.ethers.BigNumber.from(e.endAmount).toHexString().slice(2).padStart(64,"0"),e.recipient.slice(2).padStart(64,"0")].join("")).slice(2))).join(""));return sM.ethers.utils.keccak256("0x"+[o.slice(2),e.offerer.slice(2).padStart(64,"0"),e.zone.slice(2).padStart(64,"0"),s.slice(2),u.slice(2),e.orderType.toString().padStart(64,"0"),sM.ethers.BigNumber.from(e.startTime).toHexString().slice(2).padStart(64,"0"),sM.ethers.BigNumber.from(e.endTime).toHexString().slice(2).padStart(64,"0"),e.zoneHash.slice(2),sM.BigNumber.from(e.salt).toHexString().slice(2).padStart(64,"0"),e.conduitKey.slice(2).padStart(64,"0"),sM.ethers.BigNumber.from(e.counter).toHexString().slice(2).padStart(64,"0")].join(""))};const c=e instanceof sM.providers.Provider?e:e.provider;if(this.signer=e._isSigner?e:void 0,!c)throw new Error("Either a provider or custom signer with provider must be provided");this.provider=c,this.multicallProvider=new oM.providers.MulticallProvider(this.provider),this.contract=new sM.Contract(null!==(o=null==t?void 0:t.contractAddress)&&void 0!==o?o:"1.5"===a?dM.CROSS_CHAIN_SEAPORT_V1_5_ADDRESS:dM.CROSS_CHAIN_SEAPORT_V1_4_ADDRESS,lM.SeaportABIv14,this.multicallProvider),this.domainRegistry=new sM.Contract(null!==(s=null==t?void 0:t.domainRegistryAddress)&&void 0!==s?s:dM.DOMAIN_REGISTRY_ADDRESS,cM.DomainRegistryABI,this.multicallProvider),this.config={ascendingAmountFulfillmentBuffer:n,balanceAndApprovalChecksOnOrderCreation:r,conduitKeyToConduit:Object.assign(Object.assign(Object.assign({},dM.KNOWN_CONDUIT_KEYS_TO_CONDUIT),{[dM.NO_CONDUIT]:this.contract.address}),i),seaportVersion:a},this.defaultConduitKey=null!==(u=null==t?void 0:t.defaultConduitKey)&&void 0!==u?u:dM.NO_CONDUIT}createOrder(e,t,n){return aM(this,void 0,void 0,(function*(){const r=this._getSigner(t),i=null!=t?t:yield r.getAddress(),{orderComponents:a,approvalActions:o}=yield this._formatOrder(r,i,Boolean(n),e),s={type:"create",getMessageToSign:()=>this._getMessageToSign(a),createOrder:()=>aM(this,void 0,void 0,(function*(){const e=yield this.signOrder(a,i);return{parameters:a,signature:e}}))},u=[...o,s];return{actions:u,executeAllActions:()=>(0,bM.executeAllActions)(u)}}))}createBulkOrders(e,t,n){var r;return aM(this,void 0,void 0,(function*(){const i=this._getSigner(t),a=yield i.getAddress(),o=yield this.getCounter(a),s=[],u=[];for(const t of e){null!==(r=t.counter)&&void 0!==r||(t.counter=o);const{orderComponents:e,approvalActions:c}=yield this._formatOrder(i,a,Boolean(n),t);u.push(e);for(const e of c)void 0===s.find((t=>t.token===e.token))&&s.push(e)}const c={type:"createBulk",getMessageToSign:()=>this._getBulkMessageToSign(u),createBulkOrders:()=>aM(this,void 0,void 0,(function*(){return yield this.signBulkOrder(u,a)}))},l=[...s,c];return{actions:l,executeAllActions:()=>(0,bM.executeAllActions)(l)}}))}_formatOrder(e,t,n,{conduitKey:r=this.defaultConduitKey,zone:i=sM.ethers.constants.AddressZero,zoneHash:a=sM.ethers.constants.HashZero,startTime:o=Math.floor(Date.now()/1e3).toString(),endTime:s=dM.MAX_INT.toString(),offer:u,consideration:c,counter:l,allowPartialFills:d,restrictedByZone:f,fees:p,domain:h,salt:m}){var y;return aM(this,void 0,void 0,(function*(){const g=u.map(gM.mapInputItemToOfferItem),b=[...c.map((e=>{var n;return Object.assign(Object.assign({},(0,gM.mapInputItemToOfferItem)(e)),{recipient:null!==(n=e.recipient)&&void 0!==n?n:t})}))];if((null==p?void 0:p.length)&&!(0,gM.areAllCurrenciesSame)({offer:g,consideration:b}))throw new Error("All currency tokens in the order must be the same token when applying fees");const v=[...g,...b].filter(yM.isCurrencyItem),T=(0,gM.totalItemsAmount)(v),w=this.config.conduitKeyToConduit[r],E=this._getOrderTypeFromOrderOptions({allowPartialFills:d,restrictedByZone:f}),A=[...(0,gM.deductFees)(b,p),...v.length&&null!==(y=null==p?void 0:p.map((e=>(0,gM.feeToConsiderationItem)({fee:e,token:v[0].token,baseAmount:T.startAmount,baseEndAmount:T.endAmount}))))&&void 0!==y?y:[]],_=void 0!==m?`0x${sM.BigNumber.from(m).toHexString().slice(2).padStart(64,"0")}`:(0,gM.generateRandomSalt)(h),I={offerer:t,zone:i,zoneHash:a,startTime:o,endTime:s,orderType:E,offer:g,consideration:A,totalOriginalConsiderationItems:A.length,salt:_,conduitKey:r,counter:(null!=l?l:yield this.getCounter(t)).toString()},R=[];if(this.config.balanceAndApprovalChecksOnOrderCreation){const r=yield(0,pM.getBalancesAndApprovals)({owner:t,items:g,criterias:[],multicallProvider:this.multicallProvider,operator:w}),i=(0,pM.validateOfferBalancesAndApprovals)({offer:g,criterias:[],balancesAndApprovals:r,throwOnInsufficientBalances:!0,operator:w}),a=(0,fM.getApprovalActions)(i,n,e);R.push(...a)}return{orderComponents:I,approvalActions:R}}))}_getSigner(e){if(this.signer)return this.signer;if(!(this.provider instanceof sM.providers.JsonRpcProvider))throw new Error("Either signer or a JsonRpcProvider must be provided");return this.provider.getSigner(e)}_getOrderTypeFromOrderOptions({allowPartialFills:e,restrictedByZone:t}){return e?t?dM.OrderType.PARTIAL_RESTRICTED:dM.OrderType.PARTIAL_OPEN:t?dM.OrderType.FULL_RESTRICTED:dM.OrderType.FULL_OPEN}_getDomainData(){return aM(this,void 0,void 0,(function*(){const{chainId:e}=yield this.provider.getNetwork();return{name:dM.SEAPORT_CONTRACT_NAME,version:"1.5"===this.config.seaportVersion?dM.SEAPORT_CONTRACT_VERSION_V1_5:dM.SEAPORT_CONTRACT_VERSION_V1_4,chainId:e,verifyingContract:this.contract.address}}))}_getMessageToSign(e){return aM(this,void 0,void 0,(function*(){const t=yield this._getDomainData();return JSON.stringify(uM._TypedDataEncoder.getPayload(t,dM.EIP_712_ORDER_TYPE,e))}))}_getBulkMessageToSign(e){return aM(this,void 0,void 0,(function*(){const t=yield this._getDomainData(),n=(0,hM.getBulkOrderTree)(e),r=n.types,i=n.getDataToSign();return JSON.stringify(uM._TypedDataEncoder.getPayload(t,r,{tree:i}))}))}signOrder(e,t){return aM(this,void 0,void 0,(function*(){const n=this._getSigner(t),r=yield this._getDomainData();let i=yield n._signTypedData(r,dM.EIP_712_ORDER_TYPE,e);return 132===i.length&&(i=sM.ethers.utils.splitSignature(i).compact),i}))}signBulkOrder(e,t){return aM(this,void 0,void 0,(function*(){const n=this._getSigner(t),r=yield this._getDomainData(),i=(0,hM.getBulkOrderTree)(e),a=i.types,o={tree:i.getDataToSign()};let s=yield n._signTypedData(r,a,o);132===s.length&&(s=sM.ethers.utils.splitSignature(s).compact);return e.map(((e,t)=>({parameters:e,signature:i.getEncodedProofAndSignature(t,s)})))}))}cancelOrders(e,t,n){const r=this._getSigner(t);return(0,bM.getTransactionMethods)(this.contract.connect(r),"cancel",[e],n)}bulkCancelOrders(e,t){const n=this._getSigner(e);return(0,bM.getTransactionMethods)(this.contract.connect(n),"incrementCounter",[],t)}validate(e,t,n){const r=this._getSigner(t);return(0,bM.getTransactionMethods)(this.contract.connect(r),"validate",[e],n)}getOrderStatus(e){return this.contract.getOrderStatus(e)}getCounter(e){return this.contract.getCounter(e)}fulfillOrder({order:e,unitsToFill:t,offerCriteria:n=[],considerationCriteria:r=[],tips:i=[],extraData:a="0x",accountAddress:o,conduitKey:s=this.defaultConduitKey,recipientAddress:u=sM.ethers.constants.AddressZero,domain:c,exactApproval:l=!1}){return aM(this,void 0,void 0,(function*(){if(!e.signature)throw new Error("Order is missing signature");const{parameters:d}=e,{offerer:f,offer:p,consideration:h}=d,m=this._getSigner(o),y=yield m.getAddress(),g=this.config.conduitKeyToConduit[d.conduitKey],b=this.config.conduitKeyToConduit[s],[v,T,w,E]=yield Promise.all([(0,pM.getBalancesAndApprovals)({owner:f,items:p,criterias:n,multicallProvider:this.multicallProvider,operator:g}),(0,pM.getBalancesAndApprovals)({owner:y,items:[...p,...h],criterias:[...n,...r],multicallProvider:this.multicallProvider,operator:b}),this.multicallProvider.getBlock("latest"),this.getOrderStatus(this.getOrderHash(d))]),A=w.timestamp,{totalFilled:_,totalSize:I}=E,R=(0,mM.validateAndSanitizeFromOrderStatus)(e,E),C={startTime:R.parameters.startTime,endTime:R.parameters.endTime,currentBlockTimestamp:A,ascendingAmountTimestampBuffer:this.config.ascendingAmountFulfillmentBuffer},O=i.map((e=>Object.assign(Object.assign({},(0,gM.mapInputItemToOfferItem)(e)),{recipient:e.recipient}))),k=u===sM.ethers.constants.AddressZero;return!t&&k&&(0,mM.shouldUseBasicFulfill)(R.parameters,_)?(0,mM.fulfillBasicOrder)({order:R,seaportContract:this.contract,offererBalancesAndApprovals:v,fulfillerBalancesAndApprovals:T,timeBasedItemParams:C,conduitKey:s,offererOperator:g,fulfillerOperator:b,signer:m,tips:O,domain:c},l):(0,mM.fulfillStandardOrder)({order:R,unitsToFill:t,totalFilled:_,totalSize:I.eq(0)?(0,yM.getMaximumSizeForOrder)(R):I,offerCriteria:n,considerationCriteria:r,tips:O,extraData:a,seaportContract:this.contract,offererBalancesAndApprovals:v,fulfillerBalancesAndApprovals:T,timeBasedItemParams:C,conduitKey:s,signer:m,offererOperator:g,fulfillerOperator:b,recipientAddress:u,domain:c},l)}))}fulfillOrders({fulfillOrderDetails:e,accountAddress:t,conduitKey:n=this.defaultConduitKey,recipientAddress:r=sM.ethers.constants.AddressZero,domain:i,exactApproval:a=!1}){return aM(this,void 0,void 0,(function*(){if(e.some((e=>!e.order.signature)))throw new Error("All orders must include signatures");const o=this._getSigner(t),s=yield o.getAddress(),u=e.map((({order:e})=>this.config.conduitKeyToConduit[e.parameters.conduitKey])),c=this.config.conduitKeyToConduit[n],l=e.flatMap((({order:e})=>e.parameters.offer)),d=e.flatMap((({order:e})=>e.parameters.consideration)),f=e.flatMap((({offerCriteria:e=[]})=>e)),p=e.flatMap((({considerationCriteria:e=[]})=>e)),[h,m,y,g]=yield Promise.all([Promise.all(e.map((({order:e,offerCriteria:t=[]},n)=>(0,pM.getBalancesAndApprovals)({owner:e.parameters.offerer,items:e.parameters.offer,criterias:t,operator:u[n],multicallProvider:this.multicallProvider})))),(0,pM.getBalancesAndApprovals)({owner:s,items:[...l,...d],criterias:[...f,...p],operator:c,multicallProvider:this.multicallProvider}),this.multicallProvider.getBlock("latest"),Promise.all(e.map((({order:e})=>this.getOrderStatus(this.getOrderHash(e.parameters)))))]),b=e.map(((e,t)=>{var n,r,i,a,o;return{order:e.order,unitsToFill:e.unitsToFill,orderStatus:g[t],offerCriteria:null!==(n=e.offerCriteria)&&void 0!==n?n:[],considerationCriteria:null!==(r=e.considerationCriteria)&&void 0!==r?r:[],tips:null!==(a=null===(i=e.tips)||void 0===i?void 0:i.map((e=>Object.assign(Object.assign({},(0,gM.mapInputItemToOfferItem)(e)),{recipient:e.recipient}))))&&void 0!==a?a:[],extraData:null!==(o=e.extraData)&&void 0!==o?o:"0x",offererBalancesAndApprovals:h[t],offererOperator:u[t]}}));return(0,mM.fulfillAvailableOrders)({ordersMetadata:b,seaportContract:this.contract,fulfillerBalancesAndApprovals:m,currentBlockTimestamp:y.timestamp,ascendingAmountTimestampBuffer:this.config.ascendingAmountFulfillmentBuffer,fulfillerOperator:c,signer:o,conduitKey:n,recipientAddress:r,domain:i,exactApproval:a})}))}matchOrders({orders:e,fulfillments:t,overrides:n,accountAddress:r,domain:i}){const a=this._getSigner(r);return(0,bM.getTransactionMethods)(this.contract.connect(a),"matchOrders",[e,t,n],i)}setDomain(e,t){const n=this._getSigner(t);return(0,bM.getTransactionMethods)(this.domainRegistry.connect(n),"setDomain",[e])}getNumberOfDomains(e){return aM(this,void 0,void 0,(function*(){return this.domainRegistry.getNumberOfDomains(e)}))}getDomain(e,t){return this.domainRegistry.getDomain(e,t)}getDomains(e,t){return aM(this,void 0,void 0,(function*(){try{if(t)throw Error;return this.domainRegistry.getDomains(e)}catch(t){const n=(yield this.domainRegistry.getNumberOfDomains(e)).toNumber();return Promise.all([...Array(n).keys()].map((t=>this.domainRegistry.getDomain(e,t))))}}))}},function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.Seaport=void 0;const t=Lk;Object.defineProperty(e,"Seaport",{enumerable:!0,get:function(){return t.Seaport}})}(Fk);class vM{config;constructor(e){this.config=e}}class TM extends Error{url;status;statusText;body;request;constructor(e,t,n){super(n),this.name="ApiError",this.url=t.url,this.status=t.status,this.statusText=t.statusText,this.body=t.body,this.request=e}}class wM extends Error{constructor(e){super(e),this.name="CancelError"}get isCancelled(){return!0}}class EM{[Symbol.toStringTag];_isResolved;_isRejected;_isCancelled;_cancelHandlers;_promise;_resolve;_reject;constructor(e){this._isResolved=!1,this._isRejected=!1,this._isCancelled=!1,this._cancelHandlers=[],this._promise=new Promise(((t,n)=>{this._resolve=t,this._reject=n;const r=e=>{this._isResolved||this._isRejected||this._isCancelled||this._cancelHandlers.push(e)};return Object.defineProperty(r,"isResolved",{get:()=>this._isResolved}),Object.defineProperty(r,"isRejected",{get:()=>this._isRejected}),Object.defineProperty(r,"isCancelled",{get:()=>this._isCancelled}),e((e=>{this._isResolved||this._isRejected||this._isCancelled||(this._isResolved=!0,this._resolve?.(e))}),(e=>{this._isResolved||this._isRejected||this._isCancelled||(this._isRejected=!0,this._reject?.(e))}),r)}))}then(e,t){return this._promise.then(e,t)}catch(e){return this._promise.catch(e)}finally(e){return this._promise.finally(e)}cancel(){if(!(this._isResolved||this._isRejected||this._isCancelled)){if(this._isCancelled=!0,this._cancelHandlers.length)try{for(const e of this._cancelHandlers)e()}catch(e){return void console.warn("Cancellation threw an error",e)}this._cancelHandlers.length=0,this._reject?.(new wM("Request aborted"))}}get isCancelled(){return this._isCancelled}}const AM=e=>null!=e,_M=e=>"string"==typeof e,IM=e=>_M(e)&&""!==e,RM=e=>"object"==typeof e&&"string"==typeof e.type&&"function"==typeof e.stream&&"function"==typeof e.arrayBuffer&&"function"==typeof e.constructor&&"string"==typeof e.constructor.name&&/^(Blob|File)$/.test(e.constructor.name)&&/^(Blob|File)$/.test(e[Symbol.toStringTag]),CM=e=>{const t=[],n=(e,r)=>{AM(r)&&(Array.isArray(r)?r.forEach((t=>{n(e,t)})):"object"==typeof r?Object.entries(r).forEach((([t,r])=>{n(`${e}[${t}]`,r)})):((e,n)=>{t.push(`${encodeURIComponent(e)}=${encodeURIComponent(String(n))}`)})(e,r))};return Object.entries(e).forEach((([e,t])=>{n(e,t)})),t.length>0?`?${t.join("&")}`:""},OM=async(e,t)=>"function"==typeof t?t(e):t,kM=async(e,t,n)=>{const r=await OM(t,e.TOKEN),i=await OM(t,e.USERNAME),a=await OM(t,e.PASSWORD),o=await OM(t,e.HEADERS),s="function"==typeof n?.getHeaders&&n?.getHeaders()||{},u=Object.entries({Accept:"application/json",...o,...t.headers,...s}).filter((([e,t])=>AM(t))).reduce(((e,[t,n])=>({...e,[t]:String(n)})),{});if(IM(r)&&(u.Authorization=`Bearer ${r}`),IM(i)&&IM(a)){const e=(e=>{try{return btoa(e)}catch(t){return Buffer.from(e).toString("base64")}})(`${i}:${a}`);u.Authorization=`Basic ${e}`}return t.body&&(t.mediaType?u["Content-Type"]=t.mediaType:RM(t.body)?u["Content-Type"]=t.body.type||"application/octet-stream":_M(t.body)?u["Content-Type"]="text/plain":t.body instanceof Dk||(u["Content-Type"]="application/json")),u},SM=(e,t)=>new EM((async(n,r,i)=>{try{const r=((e,t)=>{const n=e.ENCODE_PATH||encodeURI,r=t.url.replace("{api-version}",e.VERSION).replace(/{(.*?)}/g,((e,r)=>t.path?.hasOwnProperty(r)?n(String(t.path[r])):e)),i=`${e.BASE}${r}`;return t.query?`${i}${CM(t.query)}`:i})(e,t),o=(e=>{if(e.formData){const t=new Dk,n=(e,n)=>{_M(n)||RM(n)?t.append(e,n):t.append(e,JSON.stringify(n))};return Object.entries(e.formData).filter((([e,t])=>AM(t))).forEach((([e,t])=>{Array.isArray(t)?t.forEach((t=>n(e,t))):n(e,t)})),t}})(t),s=(e=>{if(e.body)return e.body})(t),u=await kM(e,t,o);if(!i.isCancelled){const c=await(async(e,t,n,r,i,a,o)=>{const s=$e.CancelToken.source(),u={url:n,headers:a,data:r??i,method:t.method,withCredentials:e.WITH_CREDENTIALS,cancelToken:s.token};o((()=>s.cancel("The user aborted a request.")));try{return await $e.request(u)}catch(e){const t=e;if(t.response)return t.response;throw e}})(e,t,r,s,o,u,i),l=(e=>{if(204!==e.status)return e.data})(c),d=((e,t)=>{if(t){const n=e.headers[t];if(_M(n))return n}})(c,t.responseHeader),f={url:r,ok:(a=c.status,a>=200&&a<300),status:c.status,statusText:c.statusText,body:d??l};((e,t)=>{const n={400:"Bad Request",401:"Unauthorized",403:"Forbidden",404:"Not Found",500:"Internal Server Error",502:"Bad Gateway",503:"Service Unavailable",...e.errors}[t.status];if(n)throw new TM(e,t,n);if(!t.ok)throw new TM(e,t,"Generic Error")})(t,f),n(f.body)}}catch(e){r(e)}var a}));class NM extends vM{constructor(e){super(e)}request(e){return SM(this.config,e)}}class xM{httpRequest;constructor(e){this.httpRequest=e}cancelOrders({chainName:e,requestBody:t}){return this.httpRequest.request({method:"POST",url:"/v1/chains/{chain_name}/orders/cancel",path:{chain_name:e},body:t,mediaType:"application/json",errors:{400:"Bad Request (400)",401:"Unauthorised Request (401)",404:"The specified resource was not found (404)",429:"Too Many Requests (429)",500:"Internal Server Error (500)",501:"Not Implemented Error (501)"}})}listListings({chainName:e,status:t,sellItemContractAddress:n,buyItemContractAddress:r,accountAddress:i,sellItemMetadataId:a,sellItemTokenId:o,fromUpdatedAt:s,pageSize:u,sortBy:c,sortDirection:l,pageCursor:d}){return this.httpRequest.request({method:"GET",url:"/v1/chains/{chain_name}/orders/listings",path:{chain_name:e},query:{status:t,sell_item_contract_address:n,buy_item_contract_address:r,account_address:i,sell_item_metadata_id:a,sell_item_token_id:o,from_updated_at:s,page_size:u,sort_by:c,sort_direction:l,page_cursor:d},errors:{400:"Bad Request (400)",404:"The specified resource was not found (404)",500:"Internal Server Error (500)"}})}createListing({chainName:e,requestBody:t}){return this.httpRequest.request({method:"POST",url:"/v1/chains/{chain_name}/orders/listings",path:{chain_name:e},body:t,mediaType:"application/json",errors:{400:"Bad Request (400)",404:"The specified resource was not found (404)",500:"Internal Server Error (500)"}})}getListing({chainName:e,listingId:t}){return this.httpRequest.request({method:"GET",url:"/v1/chains/{chain_name}/orders/listings/{listing_id}",path:{chain_name:e,listing_id:t},errors:{400:"Bad Request (400)",404:"The specified resource was not found (404)",500:"Internal Server Error (500)"}})}fulfillmentData({chainName:e,requestBody:t}){return this.httpRequest.request({method:"POST",url:"/v1/chains/{chain_name}/orders/fulfillment-data",path:{chain_name:e},body:t,mediaType:"application/json",errors:{400:"Bad Request (400)",404:"The specified resource was not found (404)",500:"Internal Server Error (500)"}})}listTrades({chainName:e,accountAddress:t,fromIndexedAt:n,pageSize:r,sortBy:i,sortDirection:a,pageCursor:o}){return this.httpRequest.request({method:"GET",url:"/v1/chains/{chain_name}/trades",path:{chain_name:e},query:{account_address:t,from_indexed_at:n,page_size:r,sort_by:i,sort_direction:a,page_cursor:o},errors:{400:"Bad Request (400)",404:"The specified resource was not found (404)",500:"Internal Server Error (500)"}})}getTrade({chainName:e,tradeId:t}){return this.httpRequest.request({method:"GET",url:"/v1/chains/{chain_name}/trades/{trade_id}",path:{chain_name:e,trade_id:t},errors:{400:"Bad Request (400)",404:"The specified resource was not found (404)",500:"Internal Server Error (500)"}})}}class PM{orders;request;constructor(e,t=NM){this.request=new t({BASE:e?.BASE??"https://api.sandbox.immutable.com",VERSION:e?.VERSION??"1.0.0",WITH_CREDENTIALS:e?.WITH_CREDENTIALS??!1,CREDENTIALS:e?.CREDENTIALS??"include",TOKEN:e?.TOKEN,USERNAME:e?.USERNAME,PASSWORD:e?.PASSWORD,HEADERS:e?.HEADERS,ENCODE_PATH:e?.ENCODE_PATH}),this.orders=new xM(this.request)}}var MM,BM,DM,FM,LM,UM,qM,jM,GM,HM;function zM(e){const t=e.buy.map((e=>{if("ERC20"===e.type)return{type:"ERC20",contractAddress:e.contract_address,amount:e.amount};if("NATIVE"===e.type)return{type:"NATIVE",amount:e.amount};throw new Error("Buy items must be either ERC20 or NATIVE")})),n=e.sell.map((e=>{if("ERC721"===e.type)return{type:"ERC721",contractAddress:e.contract_address,tokenId:e.token_id};throw new Error("Sell items must ERC721")}));return{id:e.id,type:e.type,accountAddress:e.account_address,buy:t,sell:n,fees:e.fees.map((e=>({amount:e.amount,recipientAddress:e.recipient_address,type:e.type}))),chain:e.chain,createdAt:e.created_at,endAt:e.end_at,orderHash:e.order_hash,protocolData:{orderType:e.protocol_data.order_type,counter:e.protocol_data.counter,seaportAddress:e.protocol_data.seaport_address,seaportVersion:e.protocol_data.seaport_version,zoneAddress:e.protocol_data.zone_address},salt:e.salt,signature:e.signature,startAt:e.start_at,status:e.status,updatedAt:e.updated_at}}function WM(e){const t=e.buy.map((e=>{if("ERC20"===e.type)return{type:"ERC20",contractAddress:e.contract_address,amount:e.amount};if("NATIVE"===e.type)return{type:"NATIVE",amount:e.amount};throw new Error("Buy items must be either ERC20 or NATIVE")})),n=e.sell.map((e=>{if("ERC721"===e.type)return{type:"ERC721",contractAddress:e.contract_address,tokenId:e.token_id};throw new Error("Sell items must ERC721")}));return{id:e.id,orderId:e.order_id,buy:t,sell:n,buyerFees:e.buyer_fees.map((e=>({amount:e.amount,recipientAddress:e.recipient_address,type:e.type}))),chain:e.chain,indexedAt:e.indexed_at,blockchainMetadata:{blockNumber:e.blockchain_metadata.block_number,logIndex:e.blockchain_metadata.log_index,transactionHash:e.blockchain_metadata.transaction_hash,transactionIndex:e.blockchain_metadata.transaction_index},buyerAddress:e.buyer_address,makerAddress:e.maker_address,sellerAddress:e.seller_address,takerAddress:e.taker_address}}function VM(e){return{nextCursor:e.next_cursor,previousCursor:e.previous_cursor}}!function(e){var t;(t=e.cancellation_type||(e.cancellation_type={})).ON_CHAIN="ON_CHAIN",t.OFF_CHAIN="OFF_CHAIN"}(MM||(MM={})),function(e){(e.reason_code||(e.reason_code={})).FILLED="FILLED"}(BM||(BM={})),function(e){var t;(t=e.type||(e.type={})).ROYALTY="ROYALTY",t.MAKER_ECOSYSTEM="MAKER_ECOSYSTEM",t.TAKER_ECOSYSTEM="TAKER_ECOSYSTEM",t.PROTOCOL="PROTOCOL"}(DM||(DM={})),function(e){(e.type||(e.type={})).LISTING="LISTING"}(FM||(FM={})),function(e){e.PENDING="PENDING",e.ACTIVE="ACTIVE",e.INACTIVE="INACTIVE",e.FILLED="FILLED",e.EXPIRED="EXPIRED",e.CANCELLED="CANCELLED"}(LM||(LM={})),function(e){(e.order_type||(e.order_type={})).FULL_RESTRICTED="FULL_RESTRICTED"}(UM||(UM={})),function(e){e.MAKER_ECOSYSTEM="MAKER_ECOSYSTEM",e.TAKER_ECOSYSTEM="TAKER_ECOSYSTEM",e.PROTOCOL="PROTOCOL",e.ROYALTY="ROYALTY"}(qM||(qM={})),function(e){e.APPROVAL="APPROVAL",e.FULFILL_ORDER="FULFILL_ORDER",e.CANCEL="CANCEL"}(jM||(jM={})),function(e){e.CREATE_LISTING="CREATE_LISTING",e.OFF_CHAIN_CANCELLATION="OFF_CHAIN_CANCELLATION"}(GM||(GM={})),function(e){e.TRANSACTION="TRANSACTION",e.SIGNABLE="SIGNABLE"}(HM||(HM={}));const KM="1.5",XM={OrderComponents:[{name:"offerer",type:"address"},{name:"zone",type:"address"},{name:"offer",type:"OfferItem[]"},{name:"consideration",type:"ConsiderationItem[]"},{name:"orderType",type:"uint8"},{name:"startTime",type:"uint256"},{name:"endTime",type:"uint256"},{name:"zoneHash",type:"bytes32"},{name:"salt",type:"uint256"},{name:"conduitKey",type:"bytes32"},{name:"counter",type:"uint256"}],OfferItem:[{name:"itemType",type:"uint8"},{name:"token",type:"address"},{name:"identifierOrCriteria",type:"uint256"},{name:"startAmount",type:"uint256"},{name:"endAmount",type:"uint256"}],ConsiderationItem:[{name:"itemType",type:"uint8"},{name:"token",type:"address"},{name:"identifierOrCriteria",type:"uint256"},{name:"startAmount",type:"uint256"},{name:"endAmount",type:"uint256"},{name:"recipient",type:"address"}]};var JM,YM,QM,$M;function ZM(e,t){return async()=>{const n=await e.buildTransaction();return n.gasLimit=await e.estimateGas(),n.gasLimit=n.gasLimit.add(n.gasLimit.div(5)),n.chainId=t,n}}!function(e){e[e.FULL_OPEN=0]="FULL_OPEN",e[e.PARTIAL_OPEN=1]="PARTIAL_OPEN",e[e.FULL_RESTRICTED=2]="FULL_RESTRICTED",e[e.PARTIAL_RESTRICTED=3]="PARTIAL_RESTRICTED"}(JM||(JM={})),function(e){e[e.NATIVE=0]="NATIVE",e[e.ERC20=1]="ERC20",e[e.ERC721=2]="ERC721",e[e.ERC1155=3]="ERC1155",e[e.ERC721_WITH_CRITERIA=4]="ERC721_WITH_CRITERIA",e[e.ERC1155_WITH_CRITERIA=5]="ERC1155_WITH_CRITERIA"}(YM||(YM={})),function(e){e[e.OFFER=0]="OFFER",e[e.CONSIDERATION=1]="CONSIDERATION"}(QM||(QM={})),function(e){e[e.ETH_TO_ERC721=0]="ETH_TO_ERC721",e[e.ETH_TO_ERC1155=1]="ETH_TO_ERC1155",e[e.ERC20_TO_ERC721=2]="ERC20_TO_ERC721",e[e.ERC20_TO_ERC1155=3]="ERC20_TO_ERC1155",e[e.ERC721_TO_ERC20=4]="ERC721_TO_ERC20",e[e.ERC1155_TO_ERC20=5]="ERC1155_TO_ERC20"}($M||($M={}));class eB{seaportLibFactory;provider;seaportContractAddress;zoneContractAddress;constructor(e,t,n,r){this.seaportLibFactory=e,this.provider=t,this.seaportContractAddress=n,this.zoneContractAddress=r}async prepareSeaportOrder(e,t,n,r,i){const{actions:a}=await this.createSeaportOrder(e,t,n,r,i),o=[],s=a.find((e=>"approval"===e.type));s&&o.push({type:HM.TRANSACTION,purpose:jM.APPROVAL,buildTransaction:ZM(s.transactionMethods,(await this.provider.getNetwork()).chainId)});const u=a.find((e=>"create"===e.type));if(!u)throw new Error("No create order action found");const c=function(e){const t=JSON.parse(e).message;return t.salt=kr.from(t.salt).toHexString(),t}(await u.getMessageToSign());return o.push({type:HM.SIGNABLE,purpose:GM.CREATE_LISTING,message:await this.getTypedDataFromOrderComponents(c)}),{actions:o,orderComponents:c,orderHash:this.getSeaportLib().getOrderHash(c)}}async fulfillOrder(e,t,n){const{orderComponents:r,tips:i}=this.mapImmutableOrderToSeaportOrderComponents(e),a=this.getSeaportLib(e),{actions:o}=await a.fulfillOrders({accountAddress:t,fulfillOrderDetails:[{order:{parameters:r,signature:e.signature},extraData:n,tips:i}]}),s=[],u=o.find((e=>"approval"===e.type));u&&s.push({type:HM.TRANSACTION,buildTransaction:ZM(u.transactionMethods,(await this.provider.getNetwork()).chainId),purpose:jM.APPROVAL});const c=o.find((e=>"exchange"===e.type));if(!c)throw new Error("No exchange action found");return s.push({type:HM.TRANSACTION,buildTransaction:ZM(c.transactionMethods,(await this.provider.getNetwork()).chainId),purpose:jM.FULFILL_ORDER}),{actions:s,expiration:eB.getExpirationISOTimeFromExtraData(n),order:zM(e)}}async fulfillBulkOrders(e,t){const n=e.map((e=>{const{orderComponents:t,tips:n}=this.mapImmutableOrderToSeaportOrderComponents(e.order);return{order:{parameters:t,signature:e.order.signature},extraData:e.extra_data,tips:n}})),{actions:r}=await this.getSeaportLib().fulfillOrders({fulfillOrderDetails:n,accountAddress:t}),i=[],a=r.find((e=>"approval"===e.type));a&&i.push({type:HM.TRANSACTION,buildTransaction:ZM(a.transactionMethods,(await this.provider.getNetwork()).chainId),purpose:jM.APPROVAL});const o=r.find((e=>"exchange"===e.type));if(!o)throw new Error("No exchange action found");return i.push({type:HM.TRANSACTION,buildTransaction:ZM(o.transactionMethods,(await this.provider.getNetwork()).chainId),purpose:jM.FULFILL_ORDER}),{actions:i,expiration:n.map((e=>eB.getExpirationISOTimeFromExtraData(e.extraData))).reduce(((e,t)=>new Date(e)<new Date(t)?e:t))}}async cancelOrders(e,t){const n=e.map((e=>this.mapImmutableOrderToSeaportOrderComponents(e).orderComponents)),r=this.getSeaportLib(e[0]),i=await r.cancelOrders(n,t);return{type:HM.TRANSACTION,buildTransaction:ZM(i,(await this.provider.getNetwork()).chainId),purpose:jM.CANCEL}}mapImmutableOrderToSeaportOrderComponents(e){return function(e,t,n){const r=e.buy.map((t=>{switch(t.type){case"NATIVE":return{startAmount:t.amount,endAmount:t.amount,itemType:YM.NATIVE,recipient:e.account_address,token:ma,identifierOrCriteria:"0"};case"ERC20":return{startAmount:t.amount,endAmount:t.amount,itemType:YM.ERC20,recipient:e.account_address,token:t.contract_address||ma,identifierOrCriteria:"0"};default:return{startAmount:"1",endAmount:"1",itemType:YM.ERC721,recipient:e.account_address,token:t.contract_address||ma,identifierOrCriteria:"0"}}})),i=e.fees.map((t=>({amount:t.amount,itemType:"ERC20"===e.buy[0].type?YM.ERC20:YM.NATIVE,recipient:t.recipient_address,token:"ERC20"===e.buy[0].type?e.buy[0].contract_address:ma,identifierOrCriteria:"0"})));return{orderComponents:{conduitKey:_a,consideration:[...r],offer:e.sell.map((e=>{const t=e;return{startAmount:"1",endAmount:"1",itemType:YM.ERC721,token:t.contract_address,identifierOrCriteria:t.token_id}})),counter:t,endTime:Math.round(new Date(e.end_at).getTime()/1e3).toString(),startTime:Math.round(new Date(e.start_at).getTime()/1e3).toString(),salt:e.salt,offerer:e.account_address,zone:n,totalOriginalConsiderationItems:r.length,orderType:JM.FULL_RESTRICTED,zoneHash:_a},tips:i}}(e,e.protocol_data.counter,this.zoneContractAddress)}createSeaportOrder(e,t,n,r,i){return this.getSeaportLib().createOrder({allowPartialFills:!1,offer:[{itemType:YM.ERC721,token:t.contractAddress,identifier:t.tokenId}],consideration:[{token:"ERC20"===n.type?n.contractAddress:void 0,amount:n.amount,recipient:e}],startTime:(r.getTime()/1e3).toFixed(0),endTime:(i.getTime()/1e3).toFixed(0),zone:this.zoneContractAddress,restrictedByZone:!0},e)}async getTypedDataFromOrderComponents(e){const{chainId:t}=await this.provider.getNetwork();return{domain:{name:"ImmutableSeaport",version:KM,chainId:t,verifyingContract:this.seaportContractAddress},types:XM,value:e}}getSeaportLib(e){const t=e?.protocol_data?.seaport_address??this.seaportContractAddress,n=KM;return this.seaportLibFactory.create(n,t)}static getExpirationISOTimeFromExtraData(e){const t=e.slice(44,60),n=parseInt(t,16);return new Date(1e3*n).toISOString()}}class tB{orderbookService;chainName;seaportAddress;constructor(e,t,n){this.orderbookService=e,this.chainName=t,this.seaportAddress=n}async fulfillmentData(e){return this.orderbookService.fulfillmentData({chainName:this.chainName,requestBody:e})}async getListing(e){return this.orderbookService.getListing({chainName:this.chainName,listingId:e})}async getTrade(e){return this.orderbookService.getTrade({chainName:this.chainName,tradeId:e})}async listListings(e){return this.orderbookService.listListings({chainName:this.chainName,...e})}async listTrades(e){return this.orderbookService.listTrades({chainName:this.chainName,...e})}async cancelOrders(e,t,n){return this.orderbookService.cancelOrders({chainName:this.chainName,requestBody:{account_address:t,orders:e,signature:n}})}async createListing({orderHash:e,orderComponents:t,orderSignature:n,makerFees:r}){if(1!==t.offer.length)throw new Error("Only one item can be listed at a time");if(Number(t.offer[0].itemType)!==YM.ERC721)throw new Error("Only ERC721 tokens can be listed");const i=[...t.consideration.map((e=>e.itemType))];if(!(1===new Set(i).size))throw new Error("All consideration items must be of the same type");return this.orderbookService.createListing({chainName:this.chainName,requestBody:{account_address:t.offerer,buy:[{type:Number(t.consideration[0].itemType)===YM.NATIVE?"NATIVE":"ERC20",amount:t.consideration[0].startAmount,contract_address:t.consideration[0].token}],fees:r.map((e=>({amount:e.amount,type:qM.MAKER_ECOSYSTEM,recipient_address:e.recipientAddress}))),end_at:new Date(parseInt(`${t.endTime.toString()}000`,10)).toISOString(),order_hash:e,protocol_data:{order_type:UM.order_type.FULL_RESTRICTED,zone_address:t.zone,seaport_address:this.seaportAddress,seaport_version:KM,counter:t.counter.toString()},salt:t.salt,sell:[{contract_address:t.offer[0].token,token_id:t.offer[0].identifierOrCriteria,type:"ERC721"}],signature:n,start_at:new Date(parseInt(`${t.startTime.toString()}000`,10)).toISOString()}})}}class nB{chainName;seaportAddress;orderbookClient;constructor(e,t,n){this.chainName=t,this.seaportAddress=n,this.orderbookClient=new PM({BASE:e})}create(){return new tB(this.orderbookClient.orders,this.chainName,this.seaportAddress)}}class rB{defaultSeaportContractAddress;provider;constructor(e,t){this.defaultSeaportContractAddress=e,this.provider=t}create(e,t){const n=e??KM,r=t??this.defaultSeaportContractAddress;return new Fk.Seaport(this.provider,{seaportVersion:n,balanceAndApprovalChecksOnOrderCreation:!0,overrides:{contractAddress:r}})}}class iB{apiClient;seaport;orderbookConfig;constructor(e){const t={...function(e){switch(e){case Bt.SANDBOX:return{seaportContractAddress:"0x7d117aA8BD6D31c4fa91722f246388f38ab1942c",zoneContractAddress:"0x8831867E347AB87FA30199C5B695F0A31604Bb52",apiEndpoint:"https://api.sandbox.immutable.com",chainName:"imtbl-zkevm-testnet",provider:new Dp("https://rpc.testnet.immutable.com")};case Bt.PRODUCTION:return{seaportContractAddress:"0x6c12aD6F0bD274191075Eb2E78D7dA5ba6453424",zoneContractAddress:"0x00338b92Bec262078B3e49BF12bbEA058916BF91",apiEndpoint:"https://api.immutable.com",chainName:"imtbl-zkevm-mainnet",provider:new Dp("https://rpc.immutable.com")};default:return null}}(e.baseConfig.environment),...e.overrides};if(!t)throw new Error("Orderbook configuration not passed, please specify the environment under config.baseConfig.environment");this.orderbookConfig=t;const{apiEndpoint:n,chainName:r}=this.orderbookConfig;if(!n)throw new Error("API endpoint must be provided");this.apiClient=new nB(n,r,this.orderbookConfig.seaportContractAddress).create();const i=new rB(this.orderbookConfig.seaportContractAddress,this.orderbookConfig.provider);this.seaport=new eB(i,this.orderbookConfig.provider,this.orderbookConfig.seaportContractAddress,this.orderbookConfig.zoneContractAddress)}config(){return this.orderbookConfig}async getListing(e){return{result:zM((await this.apiClient.getListing(e)).result)}}async getTrade(e){return{result:WM((await this.apiClient.getTrade(e)).result)}}async listListings(e){const t=await this.apiClient.listListings(e);return{page:VM(t.page),result:t.result.map(zM)}}async listTrades(e){const t=await this.apiClient.listTrades(e);return{page:VM(t.page),result:t.result.map(WM)}}async prepareListing({makerAddress:e,sell:t,buy:n,orderExpiry:r}){return this.seaport.prepareSeaportOrder(e,t,n,new Date,r||new Date(Date.now()+63072e6))}async createListing(e){return{result:zM((await this.apiClient.createListing({...e})).result)}}async fulfillOrder(e,t,n){const r=await this.apiClient.fulfillmentData([{order_id:e,taker_address:t,fees:n.map((e=>({amount:e.amount,type:qM.TAKER_ECOSYSTEM,recipient_address:e.recipientAddress})))}]);if(r.result.unfulfillable_orders?.length>0)throw new Error(`Unable to prepare fulfillment date: ${r.result.unfulfillable_orders[0].reason}`);if(1!==r.result.fulfillable_orders?.length)throw new Error("unexpected fulfillable order result length");const i=r.result.fulfillable_orders[0].extra_data,a=r.result.fulfillable_orders[0].order;if(a.status.name!==LM.ACTIVE)throw new Error(`Cannot fulfil order that is not active. Current status: ${a.status}`);return this.seaport.fulfillOrder(a,t,i)}async fulfillBulkOrders(e,t){const n=await this.apiClient.fulfillmentData(e.map((e=>({order_id:e.listingId,taker_address:t,fees:e.takerFees.map((e=>({amount:e.amount,type:qM.TAKER_ECOSYSTEM,recipient_address:e.recipientAddress})))}))));try{return{...await this.seaport.fulfillBulkOrders(n.result.fulfillable_orders,t),fulfillableOrders:n.result.fulfillable_orders.map((e=>zM(e.order))),unfulfillableOrders:n.result.unfulfillable_orders.map((e=>({orderId:e.order_id,reason:e.reason}))),sufficientBalance:!0}}catch(e){if(String(e).includes("The fulfiller does not have the balances needed to fulfill."))return{fulfillableOrders:n.result.fulfillable_orders.map((e=>zM(e.order))),unfulfillableOrders:n.result.unfulfillable_orders.map((e=>({orderId:e.order_id,reason:e.reason}))),sufficientBalance:!1};throw e}}async prepareOrderCancellations(e){const t={name:"imtbl-order-book",chainId:(await this.orderbookConfig.provider.getNetwork()).chainId,verifyingContract:this.orderbookConfig.seaportContractAddress},n={orders:e.map((e=>({id:e})))};return{signableAction:{purpose:GM.OFF_CHAIN_CANCELLATION,type:HM.SIGNABLE,message:{domain:t,types:{CancelPayload:[{name:"orders",type:"Order[]"}],Order:[{name:"id",type:"string"}]},value:n}}}}async cancelOrders(e,t,n){return this.apiClient.cancelOrders(e,t,n)}async cancelOrdersOnChain(e,t){const n=await Promise.all(e.map((e=>this.apiClient.getListing(e))));for(const e of n){if(e.result.status.name!==LM.ACTIVE&&e.result.status.name!==LM.INACTIVE&&e.result.status.name!==LM.PENDING)throw new Error(`Cannot cancel order with status ${e.result.status}`);if(e.result.account_address!==t.toLowerCase())throw new Error(`Only account ${e.result.account_address} can cancel order ${e.result.id}`)}const r=n.map((e=>e.result)),i=r.map((e=>e.protocol_data.seaport_address));if(1!==new Set(...[i]).size)throw new Error("Cannot cancel multiple orders from different seaport contracts. Please group your orderIds accordingly");return{cancellationAction:await this.seaport.cancelOrders(r,t)}}}const aB=4e5,oB="https://api.sandbox.immutable.com".replace(/\/+$/,"");class sB{basePath;axios;configuration;constructor(e,t=oB,n=$e){this.basePath=t,this.axios=n,e&&(this.configuration=e,this.basePath=e.basePath||this.basePath)}}class uB extends Error{field;constructor(e,t){super(t),this.field=e,this.name="RequiredError"}}const cB="https://example.com",lB=function(e,t,n){if(null==n)throw new uB(t,`Required parameter ${t} was null or undefined when calling ${e}.`)},dB=async function(e,t,n){if(n&&n.apiKey){const r="function"==typeof n.apiKey?await n.apiKey(t):await n.apiKey;e[t]=r}},fB=async function(e,t){if(t&&t.accessToken){const n="function"==typeof t.accessToken?await t.accessToken():await t.accessToken;e.Authorization="Bearer "+n}};function pB(e,t,n=""){null!=t&&("object"==typeof t?Array.isArray(t)?t.forEach((t=>pB(e,t,n))):Object.keys(t).forEach((r=>pB(e,t[r],`${n}${""!==n?".":""}${r}`))):e.has(n)?e.append(n,t):e.set(n,t))}const hB=function(e,...t){const n=new URLSearchParams(e.search);pB(n,t),e.search=n.toString()},mB=function(e,t,n){const r="string"!=typeof e;return(r&&n&&n.isJsonMime?n.isJsonMime(t.headers["Content-Type"]):r)?JSON.stringify(void 0!==e?e:{}):e||""},yB=function(e){return e.pathname+e.search+e.hash},gB=function(e,t,n,r){return(i=t,a=n)=>{const o={...e.options,url:(r?.basePath||i.defaults.baseURL||a)+e.url};return i.request(o)}},bB=function(e){return{getActivity:async(t,n,r={})=>{lB("getActivity","chainName",t),lB("getActivity","activityId",n);const i="/v1/chains/{chain_name}/activities/{activity_id}".replace("{chain_name}",encodeURIComponent(String(t))).replace("{activity_id}",encodeURIComponent(String(n))),a=new URL(i,cB);let o;e&&(o=e.baseOptions);const s={method:"GET",...o,...r};hB(a,{});let u=o&&o.headers?o.headers:{};return s.headers={...u,...r.headers},{url:yB(a),options:s}},listActivities:async(t,n,r,i,a,o,s,u,c={})=>{lB("listActivities","chainName",t);const l="/v1/chains/{chain_name}/activities".replace("{chain_name}",encodeURIComponent(String(t))),d=new URL(l,cB);let f;e&&(f=e.baseOptions);const p={method:"GET",...f,...c},h={};void 0!==n&&(h.contract_address=n),void 0!==r&&(h.token_id=r),void 0!==i&&(h.account_address=i),void 0!==a&&(h.activity_type=a),void 0!==o&&(h.transaction_hash=o),void 0!==s&&(h.page_cursor=s),void 0!==u&&(h.page_size=u),hB(d,h);let m=f&&f.headers?f.headers:{};return p.headers={...m,...c.headers},{url:yB(d),options:p}},listActivityHistory:async(t,n,r,i,a,o,s={})=>{lB("listActivityHistory","chainName",t),lB("listActivityHistory","fromUpdatedAt",n);const u="/v1/chains/{chain_name}/activity-history".replace("{chain_name}",encodeURIComponent(String(t))),c=new URL(u,cB);let l;e&&(l=e.baseOptions);const d={method:"GET",...l,...s},f={};void 0!==n&&(f.from_updated_at=n instanceof Date?n.toISOString():n),void 0!==r&&(f.to_updated_at=r instanceof Date?r.toISOString():r),void 0!==i&&(f.contract_address=i),void 0!==a&&(f.page_cursor=a),void 0!==o&&(f.page_size=o),hB(c,f);let p=l&&l.headers?l.headers:{};return d.headers={...p,...s.headers},{url:yB(c),options:d}}}},vB=function(e){const t=bB(e);return{async getActivity(n,r,i){const a=await t.getActivity(n,r,i);return gB(a,$e,oB,e)},async listActivities(n,r,i,a,o,s,u,c,l){const d=await t.listActivities(n,r,i,a,o,s,u,c,l);return gB(d,$e,oB,e)},async listActivityHistory(n,r,i,a,o,s,u){const c=await t.listActivityHistory(n,r,i,a,o,s,u);return gB(c,$e,oB,e)}}};const TB=function(e){return{listChains:async(t,n,r={})=>{const i=new URL("/v1/chains",cB);let a;e&&(a=e.baseOptions);const o={method:"GET",...a,...r},s={};void 0!==t&&(s.page_cursor=t),void 0!==n&&(s.page_size=n),hB(i,s);let u=a&&a.headers?a.headers:{};return o.headers={...u,...r.headers},{url:yB(i),options:o}}}},wB=function(e){const t=TB(e);return{async listChains(n,r,i){const a=await t.listChains(n,r,i);return gB(a,$e,oB,e)}}};const EB=function(e){return{getCollection:async(t,n,r={})=>{lB("getCollection","contractAddress",t),lB("getCollection","chainName",n);const i="/v1/chains/{chain_name}/collections/{contract_address}".replace("{contract_address}",encodeURIComponent(String(t))).replace("{chain_name}",encodeURIComponent(String(n))),a=new URL(i,cB);let o;e&&(o=e.baseOptions);const s={method:"GET",...o,...r};hB(a,{});let u=o&&o.headers?o.headers:{};return s.headers={...u,...r.headers},{url:yB(a),options:s}},listCollections:async(t,n,r,i,a,o={})=>{lB("listCollections","chainName",t);const s="/v1/chains/{chain_name}/collections".replace("{chain_name}",encodeURIComponent(String(t))),u=new URL(s,cB);let c;e&&(c=e.baseOptions);const l={method:"GET",...c,...o},d={};n&&(d.contract_address=n),void 0!==r&&(d.from_updated_at=r instanceof Date?r.toISOString():r),void 0!==i&&(d.page_cursor=i),void 0!==a&&(d.page_size=a),hB(u,d);let f=c&&c.headers?c.headers:{};return l.headers={...f,...o.headers},{url:yB(u),options:l}},listCollectionsByNFTOwner:async(t,n,r,i,a={})=>{lB("listCollectionsByNFTOwner","accountAddress",t),lB("listCollectionsByNFTOwner","chainName",n);const o="/v1/chains/{chain_name}/accounts/{account_address}/collections".replace("{account_address}",encodeURIComponent(String(t))).replace("{chain_name}",encodeURIComponent(String(n))),s=new URL(o,cB);let u;e&&(u=e.baseOptions);const c={method:"GET",...u,...a},l={};void 0!==r&&(l.page_cursor=r),void 0!==i&&(l.page_size=i),hB(s,l);let d=u&&u.headers?u.headers:{};return c.headers={...d,...a.headers},{url:yB(s),options:c}},refreshCollectionMetadata:async(t,n,r,i={})=>{lB("refreshCollectionMetadata","contractAddress",t),lB("refreshCollectionMetadata","chainName",n),lB("refreshCollectionMetadata","refreshCollectionMetadataRequest",r);const a="/v1/chains/{chain_name}/collections/{contract_address}/refresh-metadata".replace("{contract_address}",encodeURIComponent(String(t))).replace("{chain_name}",encodeURIComponent(String(n))),o=new URL(a,cB);let s;e&&(s=e.baseOptions);const u={method:"POST",...s,...i},c={};await dB(c,"x-immutable-api-key",e),c["Content-Type"]="application/json",hB(o,{});let l=s&&s.headers?s.headers:{};return u.headers={...c,...l,...i.headers},u.data=mB(r,u,e),{url:yB(o),options:u}}}},AB=function(e){const t=EB(e);return{async getCollection(n,r,i){const a=await t.getCollection(n,r,i);return gB(a,$e,oB,e)},async listCollections(n,r,i,a,o,s){const u=await t.listCollections(n,r,i,a,o,s);return gB(u,$e,oB,e)},async listCollectionsByNFTOwner(n,r,i,a,o){const s=await t.listCollectionsByNFTOwner(n,r,i,a,o);return gB(s,$e,oB,e)},async refreshCollectionMetadata(n,r,i,a){const o=await t.refreshCollectionMetadata(n,r,i,a);return gB(o,$e,oB,e)}}};const _B=function(e){return{getMetadata:async(t,n,r,i={})=>{lB("getMetadata","chainName",t),lB("getMetadata","contractAddress",n),lB("getMetadata","metadataId",r);const a="/v1/chains/{chain_name}/collections/{contract_address}/metadata/{metadata_id}".replace("{chain_name}",encodeURIComponent(String(t))).replace("{contract_address}",encodeURIComponent(String(n))).replace("{metadata_id}",encodeURIComponent(String(r))),o=new URL(a,cB);let s;e&&(s=e.baseOptions);const u={method:"GET",...s,...i};hB(o,{});let c=s&&s.headers?s.headers:{};return u.headers={...c,...i.headers},{url:yB(o),options:u}},listMetadata:async(t,n,r,i,a,o={})=>{lB("listMetadata","chainName",t),lB("listMetadata","contractAddress",n);const s="/v1/chains/{chain_name}/collections/{contract_address}/metadata".replace("{chain_name}",encodeURIComponent(String(t))).replace("{contract_address}",encodeURIComponent(String(n))),u=new URL(s,cB);let c;e&&(c=e.baseOptions);const l={method:"GET",...c,...o},d={};void 0!==r&&(d.from_updated_at=r instanceof Date?r.toISOString():r),void 0!==i&&(d.page_cursor=i),void 0!==a&&(d.page_size=a),hB(u,d);let f=c&&c.headers?c.headers:{};return l.headers={...f,...o.headers},{url:yB(u),options:l}},listMetadataForChain:async(t,n,r,i,a={})=>{lB("listMetadataForChain","chainName",t);const o="/v1/chains/{chain_name}/metadata".replace("{chain_name}",encodeURIComponent(String(t))),s=new URL(o,cB);let u;e&&(u=e.baseOptions);const c={method:"GET",...u,...a},l={};void 0!==n&&(l.from_updated_at=n instanceof Date?n.toISOString():n),void 0!==r&&(l.page_cursor=r),void 0!==i&&(l.page_size=i),hB(s,l);let d=u&&u.headers?u.headers:{};return c.headers={...d,...a.headers},{url:yB(s),options:c}},refreshMetadataByID:async(t,n,r,i={})=>{lB("refreshMetadataByID","chainName",t),lB("refreshMetadataByID","contractAddress",n),lB("refreshMetadataByID","refreshMetadataByIDRequest",r);const a="/v1/chains/{chain_name}/collections/{contract_address}/metadata/refresh-metadata".replace("{chain_name}",encodeURIComponent(String(t))).replace("{contract_address}",encodeURIComponent(String(n))),o=new URL(a,cB);let s;e&&(s=e.baseOptions);const u={method:"POST",...s,...i},c={};await dB(c,"x-immutable-api-key",e),c["Content-Type"]="application/json",hB(o,{});let l=s&&s.headers?s.headers:{};return u.headers={...c,...l,...i.headers},u.data=mB(r,u,e),{url:yB(o),options:u}},refreshNFTMetadataByTokenID:async(t,n,r,i={})=>{lB("refreshNFTMetadataByTokenID","contractAddress",t),lB("refreshNFTMetadataByTokenID","chainName",n),lB("refreshNFTMetadataByTokenID","refreshNFTMetadataByTokenIDRequest",r);const a="/v1/chains/{chain_name}/collections/{contract_address}/nfts/refresh-metadata".replace("{contract_address}",encodeURIComponent(String(t))).replace("{chain_name}",encodeURIComponent(String(n))),o=new URL(a,cB);let s;e&&(s=e.baseOptions);const u={method:"POST",...s,...i},c={};await dB(c,"x-immutable-api-key",e),c["Content-Type"]="application/json",hB(o,{});let l=s&&s.headers?s.headers:{};return u.headers={...c,...l,...i.headers},u.data=mB(r,u,e),{url:yB(o),options:u}}}},IB=function(e){const t=_B(e);return{async getMetadata(n,r,i,a){const o=await t.getMetadata(n,r,i,a);return gB(o,$e,oB,e)},async listMetadata(n,r,i,a,o,s){const u=await t.listMetadata(n,r,i,a,o,s);return gB(u,$e,oB,e)},async listMetadataForChain(n,r,i,a,o){const s=await t.listMetadataForChain(n,r,i,a,o);return gB(s,$e,oB,e)},async refreshMetadataByID(n,r,i,a){const o=await t.refreshMetadataByID(n,r,i,a);return gB(o,$e,oB,e)},async refreshNFTMetadataByTokenID(n,r,i,a){const o=await t.refreshNFTMetadataByTokenID(n,r,i,a);return gB(o,$e,oB,e)}}};const RB=function(e){return{listAllNFTOwners:async(t,n,r,i,a={})=>{lB("listAllNFTOwners","chainName",t);const o="/v1/chains/{chain_name}/nft-owners".replace("{chain_name}",encodeURIComponent(String(t))),s=new URL(o,cB);let u;e&&(u=e.baseOptions);const c={method:"GET",...u,...a},l={};void 0!==n&&(l.from_updated_at=n instanceof Date?n.toISOString():n),void 0!==r&&(l.page_cursor=r),void 0!==i&&(l.page_size=i),hB(s,l);let d=u&&u.headers?u.headers:{};return c.headers={...d,...a.headers},{url:yB(s),options:c}},listNFTOwners:async(t,n,r,i,a,o={})=>{lB("listNFTOwners","contractAddress",t),lB("listNFTOwners","tokenId",n),lB("listNFTOwners","chainName",r);const s="/v1/chains/{chain_name}/collections/{contract_address}/nfts/{token_id}/owners".replace("{contract_address}",encodeURIComponent(String(t))).replace("{token_id}",encodeURIComponent(String(n))).replace("{chain_name}",encodeURIComponent(String(r))),u=new URL(s,cB);let c;e&&(c=e.baseOptions);const l={method:"GET",...c,...o},d={};void 0!==i&&(d.page_cursor=i),void 0!==a&&(d.page_size=a),hB(u,d);let f=c&&c.headers?c.headers:{};return l.headers={...f,...o.headers},{url:yB(u),options:l}},listOwnersByContractAddress:async(t,n,r,i,a,o={})=>{lB("listOwnersByContractAddress","contractAddress",t),lB("listOwnersByContractAddress","chainName",n);const s="/v1/chains/{chain_name}/collections/{contract_address}/owners".replace("{contract_address}",encodeURIComponent(String(t))).replace("{chain_name}",encodeURIComponent(String(n))),u=new URL(s,cB);let c;e&&(c=e.baseOptions);const l={method:"GET",...c,...o},d={};void 0!==r&&(d.from_updated_at=r instanceof Date?r.toISOString():r),void 0!==i&&(d.page_cursor=i),void 0!==a&&(d.page_size=a),hB(u,d);let f=c&&c.headers?c.headers:{};return l.headers={...f,...o.headers},{url:yB(u),options:l}}}},CB=function(e){const t=RB(e);return{async listAllNFTOwners(n,r,i,a,o){const s=await t.listAllNFTOwners(n,r,i,a,o);return gB(s,$e,oB,e)},async listNFTOwners(n,r,i,a,o,s){const u=await t.listNFTOwners(n,r,i,a,o,s);return gB(u,$e,oB,e)},async listOwnersByContractAddress(n,r,i,a,o,s){const u=await t.listOwnersByContractAddress(n,r,i,a,o,s);return gB(u,$e,oB,e)}}};const OB=function(e){return{getNFT:async(t,n,r,i={})=>{lB("getNFT","contractAddress",t),lB("getNFT","tokenId",n),lB("getNFT","chainName",r);const a="/v1/chains/{chain_name}/collections/{contract_address}/nfts/{token_id}".replace("{contract_address}",encodeURIComponent(String(t))).replace("{token_id}",encodeURIComponent(String(n))).replace("{chain_name}",encodeURIComponent(String(r))),o=new URL(a,cB);let s;e&&(s=e.baseOptions);const u={method:"GET",...s,...i};hB(o,{});let c=s&&s.headers?s.headers:{};return u.headers={...c,...i.headers},{url:yB(o),options:u}},listAllNFTs:async(t,n,r,i,a={})=>{lB("listAllNFTs","chainName",t);const o="/v1/chains/{chain_name}/nfts".replace("{chain_name}",encodeURIComponent(String(t))),s=new URL(o,cB);let u;e&&(u=e.baseOptions);const c={method:"GET",...u,...a},l={};void 0!==n&&(l.from_updated_at=n instanceof Date?n.toISOString():n),void 0!==r&&(l.page_cursor=r),void 0!==i&&(l.page_size=i),hB(s,l);let d=u&&u.headers?u.headers:{};return c.headers={...d,...a.headers},{url:yB(s),options:c}},listNFTs:async(t,n,r,i,a,o={})=>{lB("listNFTs","contractAddress",t),lB("listNFTs","chainName",n);const s="/v1/chains/{chain_name}/collections/{contract_address}/nfts".replace("{contract_address}",encodeURIComponent(String(t))).replace("{chain_name}",encodeURIComponent(String(n))),u=new URL(s,cB);let c;e&&(c=e.baseOptions);const l={method:"GET",...c,...o},d={};void 0!==r&&(d.from_updated_at=r instanceof Date?r.toISOString():r),void 0!==i&&(d.page_cursor=i),void 0!==a&&(d.page_size=a),hB(u,d);let f=c&&c.headers?c.headers:{};return l.headers={...f,...o.headers},{url:yB(u),options:l}},listNFTsByAccountAddress:async(t,n,r,i,a,o={})=>{lB("listNFTsByAccountAddress","accountAddress",t),lB("listNFTsByAccountAddress","chainName",n);const s="/v1/chains/{chain_name}/accounts/{account_address}/nfts".replace("{account_address}",encodeURIComponent(String(t))).replace("{chain_name}",encodeURIComponent(String(n))),u=new URL(s,cB);let c;e&&(c=e.baseOptions);const l={method:"GET",...c,...o},d={};void 0!==r&&(d.contract_address=r),void 0!==i&&(d.page_cursor=i),void 0!==a&&(d.page_size=a),hB(u,d);let f=c&&c.headers?c.headers:{};return l.headers={...f,...o.headers},{url:yB(u),options:l}}}},kB=function(e){const t=OB(e);return{async getNFT(n,r,i,a){const o=await t.getNFT(n,r,i,a);return gB(o,$e,oB,e)},async listAllNFTs(n,r,i,a,o){const s=await t.listAllNFTs(n,r,i,a,o);return gB(s,$e,oB,e)},async listNFTs(n,r,i,a,o,s){const u=await t.listNFTs(n,r,i,a,o,s);return gB(u,$e,oB,e)},async listNFTsByAccountAddress(n,r,i,a,o,s){const u=await t.listNFTsByAccountAddress(n,r,i,a,o,s);return gB(u,$e,oB,e)}}};const SB=function(e){return{cancelOrders:async(t,n,r={})=>{lB("cancelOrders","chainName",t),lB("cancelOrders","cancelOrdersRequestBody",n);const i="/v1/chains/{chain_name}/orders/cancel".replace("{chain_name}",encodeURIComponent(String(t))),a=new URL(i,cB);let o;e&&(o=e.baseOptions);const s={method:"POST",...o,...r},u={};u["Content-Type"]="application/json",hB(a,{});let c=o&&o.headers?o.headers:{};return s.headers={...u,...c,...r.headers},s.data=mB(n,s,e),{url:yB(a),options:s}},createListing:async(t,n,r={})=>{lB("createListing","chainName",t),lB("createListing","createListingRequestBody",n);const i="/v1/chains/{chain_name}/orders/listings".replace("{chain_name}",encodeURIComponent(String(t))),a=new URL(i,cB);let o;e&&(o=e.baseOptions);const s={method:"POST",...o,...r},u={};u["Content-Type"]="application/json",hB(a,{});let c=o&&o.headers?o.headers:{};return s.headers={...u,...c,...r.headers},s.data=mB(n,s,e),{url:yB(a),options:s}},fulfillmentData:async(t,n,r={})=>{lB("fulfillmentData","chainName",t),lB("fulfillmentData","fulfillmentDataRequest",n);const i="/v1/chains/{chain_name}/orders/fulfillment-data".replace("{chain_name}",encodeURIComponent(String(t))),a=new URL(i,cB);let o;e&&(o=e.baseOptions);const s={method:"POST",...o,...r},u={};u["Content-Type"]="application/json",hB(a,{});let c=o&&o.headers?o.headers:{};return s.headers={...u,...c,...r.headers},s.data=mB(n,s,e),{url:yB(a),options:s}},getListing:async(t,n,r={})=>{lB("getListing","chainName",t),lB("getListing","listingId",n);const i="/v1/chains/{chain_name}/orders/listings/{listing_id}".replace("{chain_name}",encodeURIComponent(String(t))).replace("{listing_id}",encodeURIComponent(String(n))),a=new URL(i,cB);let o;e&&(o=e.baseOptions);const s={method:"GET",...o,...r};hB(a,{});let u=o&&o.headers?o.headers:{};return s.headers={...u,...r.headers},{url:yB(a),options:s}},getTrade:async(t,n,r={})=>{lB("getTrade","chainName",t),lB("getTrade","tradeId",n);const i="/v1/chains/{chain_name}/trades/{trade_id}".replace("{chain_name}",encodeURIComponent(String(t))).replace("{trade_id}",encodeURIComponent(String(n))),a=new URL(i,cB);let o;e&&(o=e.baseOptions);const s={method:"GET",...o,...r};hB(a,{});let u=o&&o.headers?o.headers:{};return s.headers={...u,...r.headers},{url:yB(a),options:s}},listListings:async(t,n,r,i,a,o,s,u,c,l,d,f,p={})=>{lB("listListings","chainName",t);const h="/v1/chains/{chain_name}/orders/listings".replace("{chain_name}",encodeURIComponent(String(t))),m=new URL(h,cB);let y;e&&(y=e.baseOptions);const g={method:"GET",...y,...p},b={};void 0!==n&&(b.status=n),void 0!==r&&(b.sell_item_contract_address=r),void 0!==i&&(b.buy_item_contract_address=i),void 0!==a&&(b.account_address=a),void 0!==o&&(b.sell_item_metadata_id=o),void 0!==s&&(b.sell_item_token_id=s),void 0!==u&&(b.from_updated_at=u instanceof Date?u.toISOString():u),void 0!==c&&(b.page_size=c),void 0!==l&&(b.sort_by=l),void 0!==d&&(b.sort_direction=d),void 0!==f&&(b.page_cursor=f),hB(m,b);let v=y&&y.headers?y.headers:{};return g.headers={...v,...p.headers},{url:yB(m),options:g}},listTrades:async(t,n,r,i,a,o,s,u={})=>{lB("listTrades","chainName",t);const c="/v1/chains/{chain_name}/trades".replace("{chain_name}",encodeURIComponent(String(t))),l=new URL(c,cB);let d;e&&(d=e.baseOptions);const f={method:"GET",...d,...u},p={};void 0!==n&&(p.account_address=n),void 0!==r&&(p.from_indexed_at=r instanceof Date?r.toISOString():r),void 0!==i&&(p.page_size=i),void 0!==a&&(p.sort_by=a),void 0!==o&&(p.sort_direction=o),void 0!==s&&(p.page_cursor=s),hB(l,p);let h=d&&d.headers?d.headers:{};return f.headers={...h,...u.headers},{url:yB(l),options:f}}}},NB=function(e){const t=SB(e);return{async cancelOrders(n,r,i){const a=await t.cancelOrders(n,r,i);return gB(a,$e,oB,e)},async createListing(n,r,i){const a=await t.createListing(n,r,i);return gB(a,$e,oB,e)},async fulfillmentData(n,r,i){const a=await t.fulfillmentData(n,r,i);return gB(a,$e,oB,e)},async getListing(n,r,i){const a=await t.getListing(n,r,i);return gB(a,$e,oB,e)},async getTrade(n,r,i){const a=await t.getTrade(n,r,i);return gB(a,$e,oB,e)},async listListings(n,r,i,a,o,s,u,c,l,d,f,p,h){const m=await t.listListings(n,r,i,a,o,s,u,c,l,d,f,p,h);return gB(m,$e,oB,e)},async listTrades(n,r,i,a,o,s,u,c){const l=await t.listTrades(n,r,i,a,o,s,u,c);return gB(l,$e,oB,e)}}};const xB=function(e){return{createCounterfactualAddress:async(t,n,r={})=>{lB("createCounterfactualAddress","chainName",t),lB("createCounterfactualAddress","createCounterfactualAddressRequest",n);const i="/v1/chains/{chain_name}/passport/counterfactual-address".replace("{chain_name}",encodeURIComponent(String(t))),a=new URL(i,cB);let o;e&&(o=e.baseOptions);const s={method:"POST",...o,...r},u={};await fB(u,e),u["Content-Type"]="application/json",hB(a,{});let c=o&&o.headers?o.headers:{};return s.headers={...u,...c,...r.headers},s.data=mB(n,s,e),{url:yB(a),options:s}},createCounterfactualAddressDeprecated:async(t,n={})=>{lB("createCounterfactualAddressDeprecated","createCounterfactualAddressRequestDeprecated",t);const r=new URL("/passport-mr/v1/counterfactual-address",cB);let i;e&&(i=e.baseOptions);const a={method:"POST",...i,...n},o={};await fB(o,e),o["Content-Type"]="application/json",hB(r,{});let s=i&&i.headers?i.headers:{};return a.headers={...o,...s,...n.headers},a.data=mB(t,a,e),{url:yB(r),options:a}},createCounterfactualAddressV2:async(t,n,r={})=>{lB("createCounterfactualAddressV2","chainName",t),lB("createCounterfactualAddressV2","createCounterfactualAddressRequest",n);const i="/v2/chains/{chain_name}/passport/counterfactual-address".replace("{chain_name}",encodeURIComponent(String(t))),a=new URL(i,cB);let o;e&&(o=e.baseOptions);const s={method:"POST",...o,...r},u={};await fB(u,e),u["Content-Type"]="application/json",hB(a,{});let c=o&&o.headers?o.headers:{};return s.headers={...u,...c,...r.headers},s.data=mB(n,s,e),{url:yB(a),options:s}},getContractAbi:async(t,n,r,i={})=>{lB("getContractAbi","chainName",t),lB("getContractAbi","contractAddress",n),lB("getContractAbi","methodId",r);const a="/v1/chains/{chain_name}/passport/transaction-metadata".replace("{chain_name}",encodeURIComponent(String(t))),o=new URL(a,cB);let s;e&&(s=e.baseOptions);const u={method:"GET",...s,...i},c={},l={};await fB(c,e),void 0!==n&&(l.contract_address=n),void 0!==r&&(l.method_id=r),hB(o,l);let d=s&&s.headers?s.headers:{};return u.headers={...c,...d,...i.headers},{url:yB(o),options:u}},getLinkedAddresses:async(t,n,r={})=>{lB("getLinkedAddresses","userId",t),lB("getLinkedAddresses","chainName",n);const i="/v1/chains/{chain_name}/passport/users/{user_id}/linked-addresses".replace("{user_id}",encodeURIComponent(String(t))).replace("{chain_name}",encodeURIComponent(String(n))),a=new URL(i,cB);let o;e&&(o=e.baseOptions);const s={method:"GET",...o,...r},u={};await fB(u,e),hB(a,{});let c=o&&o.headers?o.headers:{};return s.headers={...u,...c,...r.headers},{url:yB(a),options:s}},getLinkedAddressesDeprecated:async(t,n={})=>{lB("getLinkedAddressesDeprecated","userId",t);const r="/passport-mr/v1/users/{userId}/linked-addresses".replace("{userId}",encodeURIComponent(String(t))),i=new URL(r,cB);let a;e&&(a=e.baseOptions);const o={method:"GET",...a,...n},s={};await fB(s,e),hB(i,{});let u=a&&a.headers?a.headers:{};return o.headers={...s,...u,...n.headers},{url:yB(i),options:o}}}},PB=function(e){const t=xB(e);return{async createCounterfactualAddress(n,r,i){const a=await t.createCounterfactualAddress(n,r,i);return gB(a,$e,oB,e)},async createCounterfactualAddressDeprecated(n,r){const i=await t.createCounterfactualAddressDeprecated(n,r);return gB(i,$e,oB,e)},async createCounterfactualAddressV2(n,r,i){const a=await t.createCounterfactualAddressV2(n,r,i);return gB(a,$e,oB,e)},async getContractAbi(n,r,i,a){const o=await t.getContractAbi(n,r,i,a);return gB(o,$e,oB,e)},async getLinkedAddresses(n,r,i){const a=await t.getLinkedAddresses(n,r,i);return gB(a,$e,oB,e)},async getLinkedAddressesDeprecated(n,r){const i=await t.getLinkedAddressesDeprecated(n,r);return gB(i,$e,oB,e)}}};const MB=function(e){return{getERC20Token:async(t,n,r={})=>{lB("getERC20Token","contractAddress",t),lB("getERC20Token","chainName",n);const i="/v1/chains/{chain_name}/tokens/{contract_address}".replace("{contract_address}",encodeURIComponent(String(t))).replace("{chain_name}",encodeURIComponent(String(n))),a=new URL(i,cB);let o;e&&(o=e.baseOptions);const s={method:"GET",...o,...r};hB(a,{});let u=o&&o.headers?o.headers:{};return s.headers={...u,...r.headers},{url:yB(a),options:s}},listERC20Tokens:async(t,n,r,i,a={})=>{lB("listERC20Tokens","chainName",t);const o="/v1/chains/{chain_name}/tokens".replace("{chain_name}",encodeURIComponent(String(t))),s=new URL(o,cB);let u;e&&(u=e.baseOptions);const c={method:"GET",...u,...a},l={};void 0!==n&&(l.from_updated_at=n instanceof Date?n.toISOString():n),void 0!==r&&(l.page_cursor=r),void 0!==i&&(l.page_size=i),hB(s,l);let d=u&&u.headers?u.headers:{};return c.headers={...d,...a.headers},{url:yB(s),options:c}}}},BB=function(e){const t=MB(e);return{async getERC20Token(n,r,i){const a=await t.getERC20Token(n,r,i);return gB(a,$e,oB,e)},async listERC20Tokens(n,r,i,a,o){const s=await t.listERC20Tokens(n,r,i,a,o);return gB(s,$e,oB,e)}}};var DB=Object.freeze({__proto__:null,APIError400AllOfCodeEnum:{ValidationError:"VALIDATION_ERROR"},APIError401AllOfCodeEnum:{UnauthorisedRequest:"UNAUTHORISED_REQUEST"},APIError403AllOfCodeEnum:{AuthenticationError:"AUTHENTICATION_ERROR"},APIError404AllOfCodeEnum:{ResourceNotFound:"RESOURCE_NOT_FOUND"},APIError429AllOfCodeEnum:{TooManyRequestsError:"TOO_MANY_REQUESTS_ERROR"},APIError500AllOfCodeEnum:{InternalServerError:"INTERNAL_SERVER_ERROR"},APIError501AllOfCodeEnum:{NotImplementedError:"NOT_IMPLEMENTED_ERROR"},ActiveOrderStatusNameEnum:{Active:"ACTIVE"},ActivitiesApi:class extends sB{getActivity(e,t){return vB(this.configuration).getActivity(e.chainName,e.activityId,t).then((e=>e(this.axios,this.basePath)))}listActivities(e,t){return vB(this.configuration).listActivities(e.chainName,e.contractAddress,e.tokenId,e.accountAddress,e.activityType,e.transactionHash,e.pageCursor,e.pageSize,t).then((e=>e(this.axios,this.basePath)))}listActivityHistory(e,t){return vB(this.configuration).listActivityHistory(e.chainName,e.fromUpdatedAt,e.toUpdatedAt,e.contractAddress,e.pageCursor,e.pageSize,t).then((e=>e(this.axios,this.basePath)))}},ActivitiesApiAxiosParamCreator:bB,ActivitiesApiFactory:function(e,t,n){const r=vB(e);return{getActivity:(e,i)=>r.getActivity(e.chainName,e.activityId,i).then((e=>e(n,t))),listActivities:(e,i)=>r.listActivities(e.chainName,e.contractAddress,e.tokenId,e.accountAddress,e.activityType,e.transactionHash,e.pageCursor,e.pageSize,i).then((e=>e(n,t))),listActivityHistory:(e,i)=>r.listActivityHistory(e.chainName,e.fromUpdatedAt,e.toUpdatedAt,e.contractAddress,e.pageCursor,e.pageSize,i).then((e=>e(n,t)))}},ActivitiesApiFp:vB,ActivityType:{Mint:"mint",Burn:"burn",Transfer:"transfer",Sale:"sale",Deposit:"deposit",Withdrawal:"withdrawal"},CancelledOrderStatusCancellationTypeEnum:{OnChain:"ON_CHAIN",OffChain:"OFF_CHAIN"},CancelledOrderStatusNameEnum:{Cancelled:"CANCELLED"},ChainsApi:class extends sB{listChains(e={},t){return wB(this.configuration).listChains(e.pageCursor,e.pageSize,t).then((e=>e(this.axios,this.basePath)))}},ChainsApiAxiosParamCreator:TB,ChainsApiFactory:function(e,t,n){const r=wB(e);return{listChains:(e={},i)=>r.listChains(e.pageCursor,e.pageSize,i).then((e=>e(n,t)))}},ChainsApiFp:wB,CollectionContractType:{Erc721:"ERC721",Erc1155:"ERC1155"},CollectionsApi:class extends sB{getCollection(e,t){return AB(this.configuration).getCollection(e.contractAddress,e.chainName,t).then((e=>e(this.axios,this.basePath)))}listCollections(e,t){return AB(this.configuration).listCollections(e.chainName,e.contractAddress,e.fromUpdatedAt,e.pageCursor,e.pageSize,t).then((e=>e(this.axios,this.basePath)))}listCollectionsByNFTOwner(e,t){return AB(this.configuration).listCollectionsByNFTOwner(e.accountAddress,e.chainName,e.pageCursor,e.pageSize,t).then((e=>e(this.axios,this.basePath)))}refreshCollectionMetadata(e,t){return AB(this.configuration).refreshCollectionMetadata(e.contractAddress,e.chainName,e.refreshCollectionMetadataRequest,t).then((e=>e(this.axios,this.basePath)))}},CollectionsApiAxiosParamCreator:EB,CollectionsApiFactory:function(e,t,n){const r=AB(e);return{getCollection:(e,i)=>r.getCollection(e.contractAddress,e.chainName,i).then((e=>e(n,t))),listCollections:(e,i)=>r.listCollections(e.chainName,e.contractAddress,e.fromUpdatedAt,e.pageCursor,e.pageSize,i).then((e=>e(n,t))),listCollectionsByNFTOwner:(e,i)=>r.listCollectionsByNFTOwner(e.accountAddress,e.chainName,e.pageCursor,e.pageSize,i).then((e=>e(n,t))),refreshCollectionMetadata:(e,i)=>r.refreshCollectionMetadata(e.contractAddress,e.chainName,e.refreshCollectionMetadataRequest,i).then((e=>e(n,t)))}},CollectionsApiFp:AB,Configuration:class{apiKey;username;password;accessToken;basePath;baseOptions;formDataCtor;constructor(e={}){this.apiKey=e.apiKey,this.username=e.username,this.password=e.password,this.accessToken=e.accessToken,this.basePath=e.basePath,this.baseOptions=e.baseOptions,this.formDataCtor=e.formDataCtor}isJsonMime(e){const t=new RegExp("^(application/json|[^;/ \t]+/[^;/ \t]+[+]json)[ \t]*(;.*)?$","i");return null!==e&&(t.test(e)||"application/json-patch+json"===e.toLowerCase())}},ERC1155ItemTypeEnum:{Erc1155:"ERC1155"},ERC20ItemTypeEnum:{Erc20:"ERC20"},ERC721ItemTypeEnum:{Erc721:"ERC721"},ExpiredOrderStatusNameEnum:{Expired:"EXPIRED"},FailedOrderCancellationReasonCodeEnum:{Filled:"FILLED"},FeeTypeEnum:{Royalty:"ROYALTY",MakerEcosystem:"MAKER_ECOSYSTEM",TakerEcosystem:"TAKER_ECOSYSTEM",Protocol:"PROTOCOL"},FilledOrderStatusNameEnum:{Filled:"FILLED"},GetContractAbiResTransactionTypeEnum:{Erc20Approve:"ERC20_APPROVE"},InactiveOrderStatusNameEnum:{Inactive:"INACTIVE"},ListListingsSortByEnum:{CreatedAt:"created_at",UpdatedAt:"updated_at",BuyItemAmount:"buy_item_amount"},ListListingsSortDirectionEnum:{Asc:"asc",Desc:"desc"},ListTradesSortByEnum:{IndexedAt:"indexed_at"},ListTradesSortDirectionEnum:{Asc:"asc",Desc:"desc"},MetadataApi:class extends sB{getMetadata(e,t){return IB(this.configuration).getMetadata(e.chainName,e.contractAddress,e.metadataId,t).then((e=>e(this.axios,this.basePath)))}listMetadata(e,t){return IB(this.configuration).listMetadata(e.chainName,e.contractAddress,e.fromUpdatedAt,e.pageCursor,e.pageSize,t).then((e=>e(this.axios,this.basePath)))}listMetadataForChain(e,t){return IB(this.configuration).listMetadataForChain(e.chainName,e.fromUpdatedAt,e.pageCursor,e.pageSize,t).then((e=>e(this.axios,this.basePath)))}refreshMetadataByID(e,t){return IB(this.configuration).refreshMetadataByID(e.chainName,e.contractAddress,e.refreshMetadataByIDRequest,t).then((e=>e(this.axios,this.basePath)))}refreshNFTMetadataByTokenID(e,t){return IB(this.configuration).refreshNFTMetadataByTokenID(e.contractAddress,e.chainName,e.refreshNFTMetadataByTokenIDRequest,t).then((e=>e(this.axios,this.basePath)))}},MetadataApiAxiosParamCreator:_B,MetadataApiFactory:function(e,t,n){const r=IB(e);return{getMetadata:(e,i)=>r.getMetadata(e.chainName,e.contractAddress,e.metadataId,i).then((e=>e(n,t))),listMetadata:(e,i)=>r.listMetadata(e.chainName,e.contractAddress,e.fromUpdatedAt,e.pageCursor,e.pageSize,i).then((e=>e(n,t))),listMetadataForChain:(e,i)=>r.listMetadataForChain(e.chainName,e.fromUpdatedAt,e.pageCursor,e.pageSize,i).then((e=>e(n,t))),refreshMetadataByID:(e,i)=>r.refreshMetadataByID(e.chainName,e.contractAddress,e.refreshMetadataByIDRequest,i).then((e=>e(n,t))),refreshNFTMetadataByTokenID:(e,i)=>r.refreshNFTMetadataByTokenID(e.contractAddress,e.chainName,e.refreshNFTMetadataByTokenIDRequest,i).then((e=>e(n,t)))}},MetadataApiFp:IB,MintRequestStatus:{Pending:"pending",Succeeded:"succeeded",Failed:"failed"},NFTContractType:{Erc721:"ERC721"},NativeItemTypeEnum:{Native:"NATIVE",Erc20:"ERC20",Erc721:"ERC721",Erc1155:"ERC1155"},NftOwnersApi:class extends sB{listAllNFTOwners(e,t){return CB(this.configuration).listAllNFTOwners(e.chainName,e.fromUpdatedAt,e.pageCursor,e.pageSize,t).then((e=>e(this.axios,this.basePath)))}listNFTOwners(e,t){return CB(this.configuration).listNFTOwners(e.contractAddress,e.tokenId,e.chainName,e.pageCursor,e.pageSize,t).then((e=>e(this.axios,this.basePath)))}listOwnersByContractAddress(e,t){return CB(this.configuration).listOwnersByContractAddress(e.contractAddress,e.chainName,e.fromUpdatedAt,e.pageCursor,e.pageSize,t).then((e=>e(this.axios,this.basePath)))}},NftOwnersApiAxiosParamCreator:RB,NftOwnersApiFactory:function(e,t,n){const r=CB(e);return{listAllNFTOwners:(e,i)=>r.listAllNFTOwners(e.chainName,e.fromUpdatedAt,e.pageCursor,e.pageSize,i).then((e=>e(n,t))),listNFTOwners:(e,i)=>r.listNFTOwners(e.contractAddress,e.tokenId,e.chainName,e.pageCursor,e.pageSize,i).then((e=>e(n,t))),listOwnersByContractAddress:(e,i)=>r.listOwnersByContractAddress(e.contractAddress,e.chainName,e.fromUpdatedAt,e.pageCursor,e.pageSize,i).then((e=>e(n,t)))}},NftOwnersApiFp:CB,NftsApi:class extends sB{getNFT(e,t){return kB(this.configuration).getNFT(e.contractAddress,e.tokenId,e.chainName,t).then((e=>e(this.axios,this.basePath)))}listAllNFTs(e,t){return kB(this.configuration).listAllNFTs(e.chainName,e.fromUpdatedAt,e.pageCursor,e.pageSize,t).then((e=>e(this.axios,this.basePath)))}listNFTs(e,t){return kB(this.configuration).listNFTs(e.contractAddress,e.chainName,e.fromUpdatedAt,e.pageCursor,e.pageSize,t).then((e=>e(this.axios,this.basePath)))}listNFTsByAccountAddress(e,t){return kB(this.configuration).listNFTsByAccountAddress(e.accountAddress,e.chainName,e.contractAddress,e.pageCursor,e.pageSize,t).then((e=>e(this.axios,this.basePath)))}},NftsApiAxiosParamCreator:OB,NftsApiFactory:function(e,t,n){const r=kB(e);return{getNFT:(e,i)=>r.getNFT(e.contractAddress,e.tokenId,e.chainName,i).then((e=>e(n,t))),listAllNFTs:(e,i)=>r.listAllNFTs(e.chainName,e.fromUpdatedAt,e.pageCursor,e.pageSize,i).then((e=>e(n,t))),listNFTs:(e,i)=>r.listNFTs(e.contractAddress,e.chainName,e.fromUpdatedAt,e.pageCursor,e.pageSize,i).then((e=>e(n,t))),listNFTsByAccountAddress:(e,i)=>r.listNFTsByAccountAddress(e.accountAddress,e.chainName,e.contractAddress,e.pageCursor,e.pageSize,i).then((e=>e(n,t)))}},NftsApiFp:kB,OrderStatusName:{Pending:"PENDING",Active:"ACTIVE",Inactive:"INACTIVE",Filled:"FILLED",Expired:"EXPIRED",Cancelled:"CANCELLED"},OrderTypeEnum:{Listing:"LISTING"},OrdersApi:class extends sB{cancelOrders(e,t){return NB(this.configuration).cancelOrders(e.chainName,e.cancelOrdersRequestBody,t).then((e=>e(this.axios,this.basePath)))}createListing(e,t){return NB(this.configuration).createListing(e.chainName,e.createListingRequestBody,t).then((e=>e(this.axios,this.basePath)))}fulfillmentData(e,t){return NB(this.configuration).fulfillmentData(e.chainName,e.fulfillmentDataRequest,t).then((e=>e(this.axios,this.basePath)))}getListing(e,t){return NB(this.configuration).getListing(e.chainName,e.listingId,t).then((e=>e(this.axios,this.basePath)))}getTrade(e,t){return NB(this.configuration).getTrade(e.chainName,e.tradeId,t).then((e=>e(this.axios,this.basePath)))}listListings(e,t){return NB(this.configuration).listListings(e.chainName,e.status,e.sellItemContractAddress,e.buyItemContractAddress,e.accountAddress,e.sellItemMetadataId,e.sellItemTokenId,e.fromUpdatedAt,e.pageSize,e.sortBy,e.sortDirection,e.pageCursor,t).then((e=>e(this.axios,this.basePath)))}listTrades(e,t){return NB(this.configuration).listTrades(e.chainName,e.accountAddress,e.fromIndexedAt,e.pageSize,e.sortBy,e.sortDirection,e.pageCursor,t).then((e=>e(this.axios,this.basePath)))}},OrdersApiAxiosParamCreator:SB,OrdersApiFactory:function(e,t,n){const r=NB(e);return{cancelOrders:(e,i)=>r.cancelOrders(e.chainName,e.cancelOrdersRequestBody,i).then((e=>e(n,t))),createListing:(e,i)=>r.createListing(e.chainName,e.createListingRequestBody,i).then((e=>e(n,t))),fulfillmentData:(e,i)=>r.fulfillmentData(e.chainName,e.fulfillmentDataRequest,i).then((e=>e(n,t))),getListing:(e,i)=>r.getListing(e.chainName,e.listingId,i).then((e=>e(n,t))),getTrade:(e,i)=>r.getTrade(e.chainName,e.tradeId,i).then((e=>e(n,t))),listListings:(e,i)=>r.listListings(e.chainName,e.status,e.sellItemContractAddress,e.buyItemContractAddress,e.accountAddress,e.sellItemMetadataId,e.sellItemTokenId,e.fromUpdatedAt,e.pageSize,e.sortBy,e.sortDirection,e.pageCursor,i).then((e=>e(n,t))),listTrades:(e,i)=>r.listTrades(e.chainName,e.accountAddress,e.fromIndexedAt,e.pageSize,e.sortBy,e.sortDirection,e.pageCursor,i).then((e=>e(n,t)))}},OrdersApiFp:NB,PassportApi:class extends sB{createCounterfactualAddress(e,t){return PB(this.configuration).createCounterfactualAddress(e.chainName,e.createCounterfactualAddressRequest,t).then((e=>e(this.axios,this.basePath)))}createCounterfactualAddressDeprecated(e,t){return PB(this.configuration).createCounterfactualAddressDeprecated(e.createCounterfactualAddressRequestDeprecated,t).then((e=>e(this.axios,this.basePath)))}createCounterfactualAddressV2(e,t){return PB(this.configuration).createCounterfactualAddressV2(e.chainName,e.createCounterfactualAddressRequest,t).then((e=>e(this.axios,this.basePath)))}getContractAbi(e,t){return PB(this.configuration).getContractAbi(e.chainName,e.contractAddress,e.methodId,t).then((e=>e(this.axios,this.basePath)))}getLinkedAddresses(e,t){return PB(this.configuration).getLinkedAddresses(e.userId,e.chainName,t).then((e=>e(this.axios,this.basePath)))}getLinkedAddressesDeprecated(e,t){return PB(this.configuration).getLinkedAddressesDeprecated(e.userId,t).then((e=>e(this.axios,this.basePath)))}},PassportApiAxiosParamCreator:xB,PassportApiFactory:function(e,t,n){const r=PB(e);return{createCounterfactualAddress:(e,i)=>r.createCounterfactualAddress(e.chainName,e.createCounterfactualAddressRequest,i).then((e=>e(n,t))),createCounterfactualAddressDeprecated:(e,i)=>r.createCounterfactualAddressDeprecated(e.createCounterfactualAddressRequestDeprecated,i).then((e=>e(n,t))),createCounterfactualAddressV2:(e,i)=>r.createCounterfactualAddressV2(e.chainName,e.createCounterfactualAddressRequest,i).then((e=>e(n,t))),getContractAbi:(e,i)=>r.getContractAbi(e.chainName,e.contractAddress,e.methodId,i).then((e=>e(n,t))),getLinkedAddresses:(e,i)=>r.getLinkedAddresses(e.userId,e.chainName,i).then((e=>e(n,t))),getLinkedAddressesDeprecated:(e,i)=>r.getLinkedAddressesDeprecated(e.userId,i).then((e=>e(n,t)))}},PassportApiFp:PB,PendingOrderStatusNameEnum:{Pending:"PENDING"},ProtocolDataOrderTypeEnum:{FullRestricted:"FULL_RESTRICTED"},SaleFeeTypeEnum:{Royalty:"ROYALTY"},TokenContractType:{Erc20:"ERC20"},TokensApi:class extends sB{getERC20Token(e,t){return BB(this.configuration).getERC20Token(e.contractAddress,e.chainName,t).then((e=>e(this.axios,this.basePath)))}listERC20Tokens(e,t){return BB(this.configuration).listERC20Tokens(e.chainName,e.fromUpdatedAt,e.pageCursor,e.pageSize,t).then((e=>e(this.axios,this.basePath)))}},TokensApiAxiosParamCreator:MB,TokensApiFactory:function(e,t,n){const r=BB(e);return{getERC20Token:(e,i)=>r.getERC20Token(e.contractAddress,e.chainName,i).then((e=>e(n,t))),listERC20Tokens:(e,i)=>r.listERC20Tokens(e.chainName,e.fromUpdatedAt,e.pageCursor,e.pageSize,i).then((e=>e(n,t)))}},TokensApiFp:BB});class FB extends Error{code;details;link;traceId;constructor({message:e,code:t,details:n,link:r,trace_id:i}){super(e),this.code=t,this.details=n,this.link=r,this.traceId=i}}const LB={sdkVersion:"ts-immutable-sdk-multi-rollup-api-client-0.45.5"},UB=({baseConfig:e,basePath:t,headers:n})=>{if(!t.trim())throw Error("basePath can not be empty");const r={...e,basePath:t,baseOptions:{headers:{...n||{},...LB}}};return new DB.Configuration(r)};class qB{apiConfig;baseConfig;constructor({baseConfig:e,overrides:t}){if(this.baseConfig=e,t)this.apiConfig=UB(t);else switch(e.environment){case Bt.SANDBOX:this.apiConfig=UB({basePath:"https://api.sandbox.immutable.com",baseConfig:e});break;case Bt.PRODUCTION:this.apiConfig=UB({basePath:"https://api.immutable.com",baseConfig:e});break;default:this.apiConfig=UB({basePath:"https://api.sandbox.immutable.com",baseConfig:e})}}}function jB(e){if($e.isAxiosError(e)&&e.response){const t=e.response.data;return t.code&&t.message?new FB({code:t.code,message:t.message,details:t.details||null,link:t.link||"",trace_id:t.trace_id||""}):new FB({code:e.code??e.response?.status.toString()??"unknown_error_code",message:String(e),details:null,link:"",trace_id:""})}return new FB({code:"unknown_error_code",message:String(e),details:null,link:"",trace_id:""})}class GB{config;activities;chains;collections;nfts;nftOwners;tokens;metadata;constructor(e){this.config=new qB(e),this.activities=new DB.ActivitiesApi(this.config.apiConfig),this.chains=new DB.ChainsApi(this.config.apiConfig),this.collections=new DB.CollectionsApi(this.config.apiConfig),this.nfts=new DB.NftsApi(this.config.apiConfig),this.nftOwners=new DB.NftOwnersApi(this.config.apiConfig),this.tokens=new DB.TokensApi(this.config.apiConfig),this.metadata=new DB.MetadataApi(this.config.apiConfig)}async listActivities(e){return await this.activities.listActivities(e).then((e=>e.data)).catch((e=>{throw jB(e)}))}async listActivityHistory(e){return await this.activities.listActivityHistory(e).then((e=>e.data)).catch((e=>{throw jB(e)}))}async getActivity(e){return await this.activities.getActivity(e).then((e=>e.data)).catch((e=>{throw jB(e)}))}async listChains(e){return await this.chains.listChains(e).then((e=>e.data)).catch((e=>{throw jB(e)}))}async listCollections(e){return await this.collections.listCollections(e).then((e=>e.data)).catch((e=>{throw jB(e)}))}async listCollectionsByNFTOwner(e){return await this.collections.listCollectionsByNFTOwner(e).then((e=>e.data)).catch((e=>{throw jB(e)}))}async getCollection(e){return await this.collections.getCollection(e).then((e=>e.data)).catch((e=>{throw jB(e)}))}async getNFT(e){return await this.nfts.getNFT(e).then((e=>e.data)).catch((e=>{throw jB(e)}))}async listNFTs(e){return await this.nfts.listNFTs(e).then((e=>e.data)).catch((e=>{throw jB(e)}))}async listNFTsByAccountAddress(e){return await this.nfts.listNFTsByAccountAddress(e).then((e=>e.data)).catch((e=>{throw jB(e)}))}async listAllNFTs(e){return await this.nfts.listAllNFTs(e).then((e=>e.data)).catch((e=>{throw jB(e)}))}async listNFTOwners(e){return await this.nftOwners.listNFTOwners(e).then((e=>e.data)).catch((e=>{throw jB(e)}))}async listNFTOwnersByContractAddress(e){return await this.nftOwners.listOwnersByContractAddress(e).then((e=>e.data)).catch((e=>{throw jB(e)}))}async listAllNFTOwners(e){return await this.nftOwners.listAllNFTOwners(e).then((e=>e.data)).catch((e=>{throw jB(e)}))}async listTokens(e){return await this.tokens.listERC20Tokens(e).then((e=>e.data)).catch((e=>{throw jB(e)}))}async getToken(e){return await this.tokens.getERC20Token(e).then((e=>e.data)).catch((e=>{throw jB(e)}))}async getMetadata(e){return await this.metadata.getMetadata(e).then((e=>e.data)).catch((e=>{throw jB(e)}))}async listNFTMetadataByContractAddress(e){return await this.metadata.listMetadata(e).then((e=>e.data)).catch((e=>{throw jB(e)}))}async listNFTMetadataByChain(e){return await this.metadata.listMetadataForChain(e).then((e=>e.data)).catch((e=>{throw jB(e)}))}async refreshCollectionMetadata(e){return await this.collections.refreshCollectionMetadata(e).then((e=>e.data)).catch((e=>{throw jB(e)}))}async refreshNFTMetadata(e){return await this.metadata.refreshNFTMetadataByTokenID(e).then((e=>e.data)).catch((e=>{throw jB(e)}))}async refreshStackedMetadata(e){return await this.metadata.refreshMetadataByID(e).then((e=>e.data)).catch((e=>{throw jB(e)}))}}function HB(t,n,r,i){const a=r.get(t),o=r.get(n);if(!a)throw new Cm(`Chain:${t} is not a supported chain`,e.CheckoutErrorType.CHAIN_NOT_SUPPORTED_ERROR);if(!o)throw new Cm(`Chain:${n} is not a supported chain`,e.CheckoutErrorType.CHAIN_NOT_SUPPORTED_ERROR);let s=rw;i.isDevelopment&&(s=nw),i.isProduction&&(s=iw);const u=new Jw({baseConfig:new Dt({environment:i.environment}),bridgeInstance:s,rootProvider:a,childProvider:o});return new Rw(u)}async function zB(e,t){const n=await t.remote.getConfig("dex");return new Bk({chainId:e,baseConfig:new Dt({environment:t.environment}),overrides:n?.overrides,secondaryFees:n?.secondaryFees})}function WB(e){return new iB({baseConfig:{environment:e.environment}})}function VB(e){return new GB({baseConfig:{environment:e.environment}})}const KB="0x0000000000000000000000000000000000000001",XB=18;async function JB(t,n){const r=Ym(n),i=Qm(n);if(!t.get(r))throw new Error(`Missing JsonRpcProvider for chain id: ${r}`);try{const a=HB(r,i,t,n),o=await async function(e,t,n,r){const i=t===Ym(r)?bw.DEPOSIT:bw.WITHDRAW;return await e.getFee({action:i,gasMultiplier:1.1,sourceChainId:t.toString(),destinationChainId:n.toString(),token:Bm.toUpperCase(),amount:kr.from(0)})}(a,r,i,n);return{gasEstimateType:e.GasEstimateType.BRIDGE_TO_L2,fees:o,token:n.networkMap.get(r)?.nativeCurrency}}catch{return{gasEstimateType:e.GasEstimateType.BRIDGE_TO_L2,fees:{sourceChainGas:kr.from(0),approvalFee:kr.from(0),bridgeFee:kr.from(0),imtblFee:kr.from(0),totalFees:kr.from(0)},token:n.networkMap.get(r)?.nativeCurrency}}}async function YB(t,n,r){switch(t.gasEstimateType){case e.GasEstimateType.BRIDGE_TO_L2:return await JB(n,r);case e.GasEstimateType.SWAP:return await async function(t){const n=Qm(t),r=await t.remote.getConfig("gasEstimateTokens"),{inAddress:i,outAddress:a}=r[n].swapAddresses;try{const r=await zB(n,t),{swap:o}=await r.getUnsignedSwapTxFromAmountIn(KB,i,a,kr.from(rm("1",XB)));return o.gasFeeEstimate?{gasEstimateType:e.GasEstimateType.SWAP,fees:{totalFees:o.gasFeeEstimate.value?kr.from(o.gasFeeEstimate.value):void 0,token:{address:o.gasFeeEstimate.token.address,symbol:o.gasFeeEstimate.token.symbol??"",name:o.gasFeeEstimate.token.name??"",decimals:o.gasFeeEstimate.token.decimals??XB}}}:{gasEstimateType:e.GasEstimateType.SWAP,fees:{}}}catch{return{gasEstimateType:e.GasEstimateType.SWAP,fees:{}}}}(r);default:throw new Cm("Invalid type provided for gasEstimateType",e.CheckoutErrorType.INVALID_GAS_ESTIMATE_TYPE)}}const QB=t=>(t=>{const n=new Map,r=[];return t.forEach((t=>{const{type:i}=t;if(i!==e.ItemType.ERC721)return void r.push(t);const{contractAddress:a,spenderAddress:o,id:s}=t,u=`${a}${o}${s}`;n.get(u)||n.set(u,{...t})})),r.concat(Array.from(n.values()))})((t=>{const n=new Map,r=[];return t.forEach((t=>{const{type:i}=t;if(i!==e.ItemType.ERC20)return void r.push(t);const{tokenAddress:a,spenderAddress:o,amount:s}=t,u=`${a}${o}`,c=n.get(u);c&&c.type===e.ItemType.ERC20?c.amount=kr.from(c.amount).add(s):n.set(u,{...t})})),r.concat(Array.from(n.values()))})((t=>{const n=new Map,r=[];return t.forEach((t=>{const{type:i}=t;if(i!==e.ItemType.NATIVE)return void r.push(t);const{amount:a}=t,o=n.get(i);o&&o.type===e.ItemType.NATIVE?o.amount=kr.from(o.amount).add(a):n.set(i,{...t})})),r.concat(Array.from(n.values()))})(t))),$B=async(t,n,r,i)=>{try{const e=new Kl(r,JSON.stringify(zm),t);return await e.allowance(n,i)}catch(t){throw new Cm("Failed to get the allowance for ERC20",e.CheckoutErrorType.GET_ERC20_ALLOWANCE_ERROR,{contractAddress:r,error:t})}},ZB=async(t,n,r,i,a)=>{try{const e=new Kl(r,JSON.stringify(zm),t),o=await e.populateTransaction.approve(i,a);return o&&(o.from=n),o}catch(t){throw new Cm("Failed to get the approval transaction for ERC20",e.CheckoutErrorType.GET_ERC20_ALLOWANCE_ERROR,{contractAddress:r,error:t})}},eD=async(t,n,r,i)=>{try{const e=new Kl(r,JSON.stringify(Wm),t);return await e.isApprovedForAll(n,i)}catch(t){throw new Cm("Failed to check approval for all ERC721s of collection",e.CheckoutErrorType.GET_ERC721_ALLOWANCE_ERROR,{ownerAddress:n,contractAddress:r,spenderAddress:i,error:t})}},tD=async(t,n,r,i,a)=>{try{const e=new Kl(r,JSON.stringify(Wm),t),o=await e.populateTransaction.approve(i,a);return o&&(o.from=n),o}catch(t){throw new Cm("Failed to get the approval transaction for ERC721",e.CheckoutErrorType.GET_ERC721_ALLOWANCE_ERROR,{id:a.toString(),contractAddress:r,spenderAddress:i,ownerAddress:n,error:t})}},nD=async(t,n,r)=>{try{const e=new Kl(n,JSON.stringify(Wm),t);return await e.getApproved(r)}catch(t){throw new Cm("Failed to get approved address for ERC721",e.CheckoutErrorType.GET_ERC721_ALLOWANCE_ERROR,{id:r.toString(),contractAddress:n,error:t})}},rD=(t,n)=>{const r=parseInt(t,10);if(Number.isNaN(r))throw new Cm("Invalid ERC721 ID",e.CheckoutErrorType.GET_ERC721_ALLOWANCE_ERROR,{id:t,contractAddress:n});return r},iD=async(t,n,r)=>{let i=!0;const a=[],o=new Map,s=new Map,u=new Map,c=new Map,l=await(async(t,n,r)=>{const i=new Map,a=new Map;for(const o of n){if(o.type!==e.ItemType.ERC721)continue;const{contractAddress:n,spenderAddress:s}=o,u=`${n}-${s}`;i.set(u,!1),a.has(u)||a.set(u,eD(t,r,n,s))}const o=await Promise.all(a.values()),s=Array.from(a.keys());return o.forEach(((e,t)=>{i.set(s[t],e)})),i})(t,r,n);for(const n of r){if(n.type!==e.ItemType.ERC721)continue;const{contractAddress:r,id:i,spenderAddress:u}=n,c=`${r}-${u}`;if(l.get(c)){a.push({sufficient:!0,itemRequirement:n});continue}const d=`${r}-${i}`,f=rD(i,r);o.set(d,n),s.set(d,nD(t,r,f))}const d=await Promise.all(s.values()),f=Array.from(s.keys());for(let r=0;r<d.length;r++){const s=o.get(f[r]);if(!s||s.type!==e.ItemType.ERC721)continue;if(d[r]===s.spenderAddress){a.push({sufficient:!0,itemRequirement:s});continue}i=!1;const{contractAddress:l,id:p,spenderAddress:h}=s,m=`${l}-${p}`,y=rD(p,l);u.set(m,{type:e.ItemType.ERC721,sufficient:!1,itemRequirement:s,approvalTransaction:void 0}),c.set(m,tD(t,n,l,h,y))}const p=await Promise.all(c.values()),h=Array.from(c.keys());return p.forEach(((e,t)=>{const n=u.get(h[t]);n&&(n.sufficient||(n.approvalTransaction=e))})),{sufficient:i,allowances:a.concat(Array.from(u.values()))}},aD=t=>(t=>{const n=new Map,r=[];return t.forEach((t=>{const{type:i}=t;if(i!==e.ItemType.ERC721)return void r.push(t);const{contractAddress:a,id:o}=t,s=`${a}${o}`;n.get(s)||n.set(s,{...t})})),r.concat(Array.from(n.values()))})((t=>{const n=new Map,r=[];return t.forEach((t=>{const{type:i}=t;if(i!==e.ItemType.ERC20)return void r.push(t);const{tokenAddress:a,amount:o}=t,s=`${a}`,u=n.get(s);u&&u.type===e.ItemType.ERC20?u.amount=kr.from(u.amount).add(o):n.set(s,{...t})})),r.concat(Array.from(n.values()))})((t=>{const n=new Map,r=[];return t.forEach((t=>{const{type:i}=t;if(i!==e.ItemType.NATIVE)return void r.push(t);const{amount:a}=t,o=n.get(i);o&&o.type===e.ItemType.NATIVE?o.amount=kr.from(o.amount).add(a):n.set(i,{...t})})),r.concat(Array.from(n.values()))})(t))),oD=async(t,n,r,i,a=!1)=>{try{const o=new Map;(t=>t.map((t=>{switch(t.type){case e.ItemType.ERC20:return{address:t.tokenAddress};case e.ItemType.NATIVE:return{address:Bm};case e.ItemType.ERC721:default:return{address:t.contractAddress}}})))(i).forEach((e=>{e.address&&o.set(e.address.toLocaleLowerCase(),e)}));const{balances:s}=await dy(t,n,r,Qm(t),a);return s.filter((e=>o.get((e.token.address||Bm).toLocaleLowerCase())))}catch(t){throw new Cm("Failed to get balances",e.CheckoutErrorType.GET_BALANCE_ERROR,{error:t})}},sD=async(t,n,r,i,a=!1)=>{const o=aD(i),s=[],u=[];if(o.forEach((t=>{switch(t.type){case e.ItemType.ERC20:case e.ItemType.NATIVE:s.push(t);break;case e.ItemType.ERC721:u.push(t)}})),0===u.length&&0===s.length)throw new Cm("Unsupported item requirement balance check",e.CheckoutErrorType.UNSUPPORTED_BALANCE_REQUIREMENT_ERROR);const c=[];s.length>0&&c.push(oD(t,n,r,o,a)),u.length>0&&c.push((async(t,n,r)=>{const i=[],a=new Map,o=new Map;r.forEach((n=>{if(n.type!==e.ItemType.ERC721)return;const r=new Kl(n.contractAddress,JSON.stringify(Wm),t);a.set(n.contractAddress,n),o.set(n.contractAddress,r.ownerOf(n.id))}));try{const t=await Promise.all(o.values()),r=Array.from(o.keys());t.forEach(((t,o)=>{const s=a.get(r[o]);let u=0;s&&Zm(n,t)&&(u=1),i.push({type:e.ItemType.ERC721,balance:kr.from(u),formattedBalance:u.toString(),contractAddress:s.contractAddress,id:s.id})}))}catch(t){throw new Cm("Failed to get ERC721 balances",e.CheckoutErrorType.GET_ERC721_BALANCE_ERROR,{error:t})}return i})(n,r,o));const l=await Promise.all(c),d=[];if(s.length>0&&l.length>0){const t=l.shift();t&&s.forEach((n=>{d.push(((t,n)=>{let r;t.type===e.ItemType.ERC20?r=n.find((e=>Zm(e.token?.address,t.tokenAddress))):t.type===e.ItemType.NATIVE&&(r=n.find((e=>ty(e.token?.address))));const i=t.amount,a=i.isNegative()||i.isZero()||(r?.balance.gte(i)??!1),o=i.sub(r?.balance??kr.from(0));let s="",u="",c=Mm;r&&(c=r.token?.decimals??Mm,s=r.token.name,u=r.token.symbol);let l=r;return t.type===e.ItemType.NATIVE?(l||(l={type:e.ItemType.NATIVE,balance:kr.from(0),formattedBalance:"0",token:Dm}),{sufficient:a,type:e.ItemType.NATIVE,delta:{balance:o,formattedBalance:nm(o,c)},current:{...l,type:e.ItemType.NATIVE},required:{...l,type:e.ItemType.NATIVE,balance:kr.from(t.amount),formattedBalance:nm(t.amount,c)}}):(l||(l={type:t.type,balance:kr.from(0),formattedBalance:"0",token:{name:s,symbol:u,address:t.tokenAddress,decimals:c}}),{sufficient:a,type:e.ItemType.ERC20,delta:{balance:o,formattedBalance:nm(o,c)},current:l,required:{...l,balance:kr.from(t.amount),formattedBalance:nm(t.amount,c)}})})(n,t))}))}if(u.length>0&&l.length>0){const t=l.shift();t&&u.forEach((n=>{d.push(((t,n)=>{const r=kr.from(1),i=n.find((e=>{const n=e;return Zm(n.contractAddress,t.contractAddress)&&n.id===t.id})),a=r.isNegative()||r.isZero()||(i?.balance.gte(r)??!1),o=r.sub(i?.balance??kr.from(0));let s=i;return s||(s={type:e.ItemType.ERC721,balance:kr.from(0),formattedBalance:"0",contractAddress:t.contractAddress,id:t.id}),{sufficient:a,type:e.ItemType.ERC721,delta:{balance:o,formattedBalance:o.toString()},current:s,required:{...s,balance:kr.from(1),formattedBalance:"1"}}})(n,t))}))}return{sufficient:void 0===d.find((e=>!1===e.sufficient)),balanceRequirements:d}},uD=async(t,n)=>{try{return await t.estimateGas(n)}catch(t){throw new Cm("Failed to estimate gas for transaction",e.CheckoutErrorType.UNPREDICTABLE_GAS_LIMIT,{error:t})}},cD=async(t,n,r)=>{const i=[];let a=kr.from(0);for(const e of n)void 0!==e.approvalTransaction&&i.push(uD(t,e.approvalTransaction));if(r.type===e.TransactionOrGasType.TRANSACTION)i.push(uD(t,r.transaction));else{const e=(e=>(e=>!!e.maxFeePerGas&&!!e.maxPriorityFeePerGas)(e)?kr.from(e.maxFeePerGas).add(kr.from(e.maxPriorityFeePerGas)):e.gasPrice?kr.from(e.gasPrice):null)(await t.getFeeData());if(null!==e){const t=e?.mul(r.gasToken.limit);t&&(a=a.add(t))}}return(await Promise.all(i)).forEach((e=>{a=a.add(e)})),a.eq(0)?null:((t,n)=>n.type===e.TransactionOrGasType.TRANSACTION||n.gasToken.type===e.GasTokenType.NATIVE?{type:e.ItemType.NATIVE,amount:t}:{type:e.ItemType.ERC20,amount:t,tokenAddress:n.gasToken.tokenAddress,spenderAddress:""})(a,r)},lD=(t,n)=>({checkDexAvailability:async()=>{let r;try{r=await $e.post(`${t?Fm[Pm]:n?Fm[Bt.PRODUCTION]:Fm[Bt.SANDBOX]}/v1/availability/checkout/swap`)}catch(t){if(r=t.response,403===r.status)return!1;throw new Cm(`Error fetching from api: ${r.status} ${r.statusText}`,e.CheckoutErrorType.API_ERROR,{error:t})}return!0}}),dD=async()=>!0,fD=async e=>{const t=lD(e.isDevelopment,e.isProduction);try{return await t.checkDexAvailability()}catch{return!1}};async function pD(t,n){if(t.isProduction&&n?.has(e.ChainId.ETHEREUM))return n;if(n?.has(e.ChainId.SEPOLIA))return n;const r=new Map;return(await Sm(t,{type:e.NetworkFilterTypes.ALL})).networks.forEach((e=>{const n=t.networkMap.get(e.chainId)?.rpcUrls[0],i=new Dp(n);r.set(e.chainId,i)})),r}const hD=async(e,t,n,r,i)=>{const a=new Map;try{const o=await zB(t,e),s=[],u=[];for(const e of i)e!==r.address&&(s.push(o.getUnsignedSwapTxFromAmountOut(n,e,r.address,r.amount,1)),u.push(e));return(await oy(e,"Time to resolve swap quotes from the dex",Promise.allSettled(s))).forEach(((e,t)=>{if("rejected"===e.status)return;const n=u[t];a.set(n,{quote:e.value.quote,approval:e.value.approval?.gasFeeEstimate??null,swap:e.value.swap.gasFeeEstimate})})),a}catch{return a}},mD=(t,n,r)=>{let i,a=kr.from(0),o="0";t&&(a=t.value,o=nm(t.value,t.token.decimals),i={name:t.token.name??"",symbol:t.token.symbol??"",address:t.token.address,decimals:t.token.decimals});let s,u=kr.from(0),c="0";n&&(u=n.value,c=nm(n.value,n.token.decimals),s={name:n.token.name??"",symbol:n.token.symbol??"",address:n.token.address,decimals:n.token.decimals});const l=[];for(const t of r)l.push({type:e.FeeType.SWAP_FEE,amount:t.amount.value,formattedAmount:nm(t.amount.value,t.amount.token.decimals),token:{name:t.amount.token.name??"",symbol:t.amount.token.symbol??"",address:t.amount.token.address,decimals:t.amount.token.decimals}});return{approvalGasFee:{type:e.FeeType.GAS,amount:a,formattedAmount:o,token:i},swapGasFee:{type:e.FeeType.GAS,amount:u,formattedAmount:c,token:s},swapFees:l}},yD=(t,n,r,i)=>{const a=r.token.address;let o=e.ItemType.ERC20;return ty(a)&&(o=e.ItemType.NATIVE),{type:e.FundingStepType.SWAP,chainId:t,fundingItem:{type:o,fundsRequired:{amount:n,formattedAmount:nm(n,r.token.decimals)},userBalance:{balance:r.balance,formattedBalance:r.formattedBalance},token:r.token},fees:i}},gD=(e,t)=>{if(!t)return{sufficient:!0,approvalGasFee:kr.from(0),approvalGasTokenAddress:""};const n=t.value,r=t.token.address;if(0===e.length)return{sufficient:!1,approvalGasFee:n,approvalGasTokenAddress:r};const i=e.find((e=>ty(e.token.address)&&ty(r)||Zm(e.token.address,r)));return i?i.balance.lt(n)?{sufficient:!1,approvalGasFee:n,approvalGasTokenAddress:r}:{sufficient:!0,approvalGasFee:n,approvalGasTokenAddress:r}:{sufficient:!1,approvalGasFee:n,approvalGasTokenAddress:r}},bD=(e,t,n,r,i)=>{const a=new Map;if(t.approvalGasFee.gt(kr.from(0))&&a.set(t.approvalGasTokenAddress,t.approvalGasFee),n){const e=a.get(n.token.address);e?a.set(n.token.address,e.add(n.value)):a.set(n.token.address,n.value)}if(i){const e=a.get(i.address);e?a.set(i.address,e.add(i.amount)):a.set(i.address,i.amount)}for(const e of r){const t=a.get(e.amount.token.address);t?a.set(e.amount.token.address,t.add(e.amount.value)):a.set(e.amount.token.address,e.amount.value)}for(const[t,n]of a.entries()){if(n===kr.from(0))continue;const r=e.find((e=>ty(e.token.address)&&ty(t)||Zm(e.token.address,t)));if(!r)return!1;if(r.balance.lt(n))return!1}return!0},vD=(t,n,r,i,a,o)=>{let s=kr.from(0),u="",c=!1;if(n.balanceRequirements.forEach((n=>{n.type!==e.ItemType.NATIVE&&n.type!==e.ItemType.ERC20||n.required.token.address&&Zm(n.required.token.address,r)&&(u=n.required.token.address,c=!0,s=t.sub(n.required.balance))})),!c)return!0;Zm(a.approvalGasTokenAddress,u)&&(s=s.sub(a.approvalGasFee));for(const e of o)Zm(e.amount.token.address,u)&&(s=s.sub(e.amount.value));return s.gte(i)},TD=async(t,n,r,i,a,o,s)=>{const u=[];if(!n.swap)return u;if(0===o.length)return u;if(!(t=>t.type===e.ItemType.ERC20?!!t.required.token.address:t.type===e.ItemType.NATIVE&&ty(t.required.token.address))(i))return u;const c=(t=>{let n="",r=kr.from(0);switch(t.type){case e.ItemType.ERC20:n=t.required.token.address,r=t.delta.balance;break;case e.ItemType.NATIVE:r=t.delta.balance}return{address:n,amount:r}})(i),l=Qm(t),d=a.get(l);if(!d)return u;const f=d.balances;if(0===f.length)return u;const p=await hD(t,Qm(t),r,c,o),h=Array.from(p.keys());for(const e of h){const t=p.get(e);if(!t)continue;const n=f.find((t=>Zm(t.token.address,e)));if(!n)continue;const r=t.quote.amount;if(n.balance.lt(r.value))continue;const i=gD(f,t.approval);if(!i.sufficient)continue;if(!bD(f,i,t.swap,t.quote.fees,{amount:r.value,address:e}))continue;if(!vD(n.balance,s,e,r.value,i,t.quote.fees))continue;const a=mD(t.approval,t.swap,t.quote.fees);u.push(yD(l,r.value,n,a))}return u},wD=(e,t)=>t&&t.success?e.filter((e=>"address"in e?t.balances.find((t=>Zm(t.token.address,e.address)&&t.balance.gt(0))):t.balances.find((e=>!("address"in e.token)&&e.balance.gt(0))))):[],ED=async(t,n)=>{if(n.onRamp){return(await ey(t,{type:e.TokenFilterTypes.ONRAMP})).tokens}return[]},AD=async(t,n,r)=>{if(r.bridge){const r=Ym(t),i=(await ey(t,{type:e.TokenFilterTypes.BRIDGE,chainId:r})).tokens,a=n.get(r);return wD(i,a)}return[]},_D=async(t,n,r)=>{const i={};return i.swap=await(async(t,n,r)=>{if(r.swap){const r=(await ey(t,{type:e.TokenFilterTypes.SWAP})).tokens,i=n.get(Qm(t));return wD(r,i)}return[]})(t,n,r),i.bridge=await AD(t,n,r),i.onRamp=await ED(t,r),i},ID="0x0000000000000000000000000000000000000eee",RD=async(e,t)=>(await t.remote.getConfig("imxAddressMapping"))[e]??"",CD=async(t,n)=>{if(ty(n))return{l1address:await RD(Ym(t),t),l2address:Bm};const r=(i=Qm(t))===e.ChainId.IMTBL_ZKEVM_MAINNET?e.ChainSlug.IMTBL_ZKEVM_MAINNET:i===e.ChainId.IMTBL_ZKEVM_TESTNET?e.ChainSlug.IMTBL_ZKEVM_TESTNET:i===e.ChainId.IMTBL_ZKEVM_DEVNET?e.ChainSlug.IMTBL_ZKEVM_DEVNET:"";var i;const a=VB(t),o=(await a.getToken({chainName:r,contractAddress:n})).result.root_contract_address;return Zm(o??"",ID)?{l1address:"native",l2address:n}:null!==o?{l1address:o,l2address:n}:void 0},OD=(e,t)=>(e=>{for(const t of e.balances)if(ty(t.token.address))return t.balance;return kr.from(0)})(e).gte(t),kD=(t,n,r,i,a)=>{const o=a?.decimals??Mm,s=[];return n.gt(0)&&s.push({type:e.FeeType.BRIDGE_FEE,amount:n,formattedAmount:nm(n,o),token:a}),r.gt(0)&&s.push({type:e.FeeType.IMMUTABLE_FEE,amount:r,formattedAmount:nm(r,o),token:a}),{approvalGasFee:{type:e.FeeType.GAS,amount:i,formattedAmount:nm(i,Mm),token:a},bridgeGasFee:{type:e.FeeType.GAS,amount:t,formattedAmount:nm(t,Mm),token:a},bridgeFees:s}},SD=(t,n,r,i,a)=>({type:e.FundingStepType.BRIDGE,chainId:t,fundingItem:{type:i,fundsRequired:{amount:r.amount,formattedAmount:r.formattedAmount},userBalance:{balance:n.balance,formattedBalance:n.formattedBalance},token:{name:n.token.name,symbol:n.token.symbol,address:n.token.address,decimals:n.token.decimals}},fees:a}),ND=async(t,n,r,i,a)=>{if(!r.bridge)return;const o=Ym(t),s=Qm(t),u=t.networkMap.get(o)?.nativeCurrency,c=a.get(o);if(!n.get(o))throw new Cm("No L1 provider available",e.CheckoutErrorType.PROVIDER_ERROR,{chainId:o.toString()});if(void 0===c||!1===c.success)return;const l=await AD(t,a,r);if(0===l.length)return;const d=await CD(t,i.l2address);if(!d)return;const{l1address:f}=d;if(ty(f)){if(!l.find((e=>ty(e.address))))return}else if(!l.find((e=>Zm(e.address,f))))return;const p=await(async(t,n,r,i)=>{const a=HB(r,i,n,t);try{return{...await a.getFee({action:bw.DEPOSIT,gasMultiplier:1.1,sourceChainId:r.toString(),destinationChainId:i.toString()}),approvalGas:kr.from(0)}}catch(t){throw new Cm("Error estimating gas for bridge",e.CheckoutErrorType.BRIDGE_GAS_ESTIMATE_ERROR,{error:t})}})(t,n,o,s),{sourceChainGas:h,approvalGas:m,bridgeFee:y,imtblFee:g,totalFees:b}=p;if(!OD(c,b))return;if(ty(f)){const t=c.balances.find((e=>ty(e.token.address)));if(t&&t.balance.gte(i.amount.add(b))){const n=kD(h,y,g,m,u);return SD(o,t,i,e.ItemType.NATIVE,n)}return}const v=c.balances.find((e=>Zm(e.token.address,f)));if(v&&v.balance.gte(i.amount)){const t=kD(h,y,g,m,u);return SD(o,v,i,e.ItemType.ERC20,t)}},xD=(e,t)=>{let n=kr.from(0);return e.quote.fees.forEach((e=>{Zm(e.amount.token.address,t)&&(n=n.add(e.amount.value))})),e.approval&&Zm(e.approval.token.address,t)&&(n=n.add(e.approval.value)),n},PD=(t,n)=>{for(const r of t.balanceRequirements)if((r.type===e.ItemType.NATIVE||r.type===e.ItemType.ERC20)&&Zm(r.required.token.address,n))return r.required.balance;return kr.from(0)},MD=(e,t,n)=>{const r=n?.balance??kr.from(0);if(r.gte(e.add(t)))return kr.from(0);if(r.lte(0))return e.add(t);const i=r.sub(t);return i.gte(0)?e.sub(i):e.add(t).sub(r)},BD=async(e,t,n,r,i,a,o,s,u)=>{const{l1balances:c,l2balances:l}=((e,t)=>{const n={l1balances:[],l2balances:[]},r=t.get(Ym(e)),i=t.get(Qm(e));return r?void 0!==r.error?n:r.success&&i?void 0!==i.error?n:i.success?{l1balances:r.balances,l2balances:i.balances}:n:n:n})(e,a),d=r.required.token.address;if(((e,t,n,r,i,a)=>0===e.length||0===t.length||0===n.length||0===r.length||!i.bridge||!i.swap||void 0===a||""===a)(o,s,c,l,n,d))return[];const f=await(async(e,t)=>{const n=t.map((t=>CD(e,t.address??"")));return(await Promise.all(n)).filter((e=>void 0!==e))})(e,s),p=((e,t,n,r)=>{const i=[];for(const a of r){if(!t.includes(a.l1address))continue;if(Zm(a.l2address,e))continue;const r=n.find((e=>Zm(e.address,a.l2address)));r&&i.push(r)}return i})(d,o,s,f);if(0===p.length)return[];const h=await(async(e,t,n,r,i)=>{const a=[];for(const e of i)e.address&&a.push(e.address);return await hD(e,Qm(e),t,{address:n,amount:r.delta.balance},a)})(e,i,d,r,p),m=((e,t,n,r,i)=>{const a=[];for(const[o,s]of e){const e=n.find((e=>Zm(e.token.address,o))),u=r.find((e=>Zm(e.l2address,o)));if(!u)continue;const{l1address:c,l2address:l}=u;if(!c)continue;const d=t.find((e=>!(void 0!==e.token.address||!Zm(c,ID))||Zm(e.token.address,c)));if(!d)continue;const f=s.quote.amountWithMaxSlippage.value,p=xD(s,o),h=f.add(p),m=PD(i,o),y=MD(h,m,e);y.lte(0)||y.gte(d.balance)||a.push({amount:y,formattedAmount:nm(y,d.token.decimals),l2address:l})}return a})(h,c,l,f,u);if(0===m.length)return[];const y=new Map,g=new Map,b=[];for(const r of m)r.l2address&&(y.set(r.l2address,ND(e,t,n,r,a)),g.set(r.l2address,{amount:r.amount,formattedAmount:r.formattedAmount,l2address:r.l2address}));const v=await Promise.all(y.values()),T=Array.from(y.keys()),w=[];if(v.forEach(((e,t)=>{const n=T[t];if(void 0===e)return;w.push(n);const r=g.get(n);r&&b.push({amount:r.amount,formattedAmount:r.formattedAmount,l2address:r.l2address})})),0===w.length)return[];if(0===b.length)return[];const E=((e,t,n,r,i)=>{const a=new Map;for(const[e,n]of t)a.set(e,{success:n.success,balances:n.balances});const o=new Map;for(const e of n)e.token.address&&o.set(e.token.address,e);for(const e of r){const{amount:t,l2address:n}=e;if(""===n)continue;let r=kr.from(0);const a=o.get(n);a&&(r=a.balance);const s=r.add(t),u=i.find((e=>Zm(e.address,n)));o.set(n,{balance:s,formattedBalance:nm(s,u.decimals),token:u})}const s=Array.from(o.values());return a.set(Qm(e),{success:!0,balances:s}),a})(e,a,l,b,s),A=await TD(e,n,i,r,E,w,u);if(!A)return[];const _=((e,t)=>{const n=[];for(const r of t){const{chainId:t,fundingItem:i}=r,{userBalance:a}=r.fundingItem,o=e.get(t);if(!o)continue;let s=kr.from(0),u="0";const c=o.balances.find((e=>Zm(e.token.address,i.token.address)));c&&(s=c.balance,u=c.formattedBalance),a.balance=s,a.formattedBalance=u,n.push(r)}return n})(a,A);return((e,t,n)=>{const r=[];for(const i of e){if(!i)continue;const e=n.find((e=>void 0===i.fundingItem.token.address?Zm(e.l1address,ID)&&e.l2address:Zm(e.l1address,i.fundingItem.token.address)&&e.l2address));if(!e)continue;const a=t.find((t=>Zm(t.fundingItem.token.address,e.l2address)));a&&r.push({bridgeFundingStep:i,swapFundingStep:a})}return r})(v,_,f)},DD=async(t,n,r)=>{if(!n.onRamp)return;if(void 0===r)return;const i=await(async(t,n,r)=>{if(![e.ItemType.ERC20,e.ItemType.NATIVE].includes(r.type))return;const{required:i,current:a,delta:o}=r;let s=!1;return(await ED(t,n)).forEach((e=>{e.address&&i.token&&(ty(i.token.address)||Zm(e.address,i.token.address))&&(s=!0)})),s?{type:e.FundingStepType.ONRAMP,chainId:Qm(t),fundingItem:{type:ty(i.token.address)?e.ItemType.NATIVE:e.ItemType.ERC20,fundsRequired:{amount:o.balance,formattedAmount:o.formattedBalance},userBalance:{balance:a.balance,formattedBalance:a.formattedBalance},token:i.token}}:void 0})(t,n,r);return i},FD=async(t,n,r,i)=>{if(!(e=>e.bridge||e.swap||e.onRamp)(i))return{type:e.RoutingOutcomeType.NO_ROUTE_OPTIONS,message:"No routing options are available"};let a;try{a=await pD(t)}catch(t){throw new Cm("Error occurred while creating read only providers",e.CheckoutErrorType.PROVIDER_ERROR,{error:t})}const o=await oy(t,"Time to get token balances inside router",(async(t,n,r,i)=>{const a=new Map,o=new Map;if(0===n.size){const n={success:!1,error:new Cm("No L1 or L2 provider available",e.CheckoutErrorType.PROVIDER_ERROR),balances:[]};return a.set(Ym(t),n),a.set(Qm(t),n),a}if(i.bridge){const i=Ym(t);n.has(i)?o.set(i,dy(t,n.get(i),r,i)):a.set(Ym(t),{success:!1,error:new Cm(`No L1 provider available for ${i}`,e.CheckoutErrorType.PROVIDER_ERROR),balances:[]})}const s=Qm(t);if(n.has(s)?o.set(s,dy(t,n.get(s),r,s)):a.set(Qm(t),{success:!1,error:new Cm(`No L2 provider available for ${s}`,e.CheckoutErrorType.PROVIDER_ERROR),balances:[]}),o.size>0){const t=Array.from(o.keys());(await Promise.allSettled(o.values())).forEach(((n,r)=>{const i=t[r];"fulfilled"===n.status?a.set(i,{success:!0,balances:n.value.balances}):a.set(i,{success:!1,error:new Cm(`Error getting ${s} balances`,e.CheckoutErrorType.GET_BALANCE_ERROR),balances:[]})}))}return a})(t,a,n,i)),s=await oy(t,"Time to get routing allowlist",_D(t,o,i)),u=(e=>{let t,n=0;for(const r of e.balanceRequirements)r.sufficient||(n++,t=r);if(1===n)return t})(r),c=[];c.push((async(t,n,r,i,a)=>{let o;if(void 0===i)return;if(i.type!==e.ItemType.NATIVE&&i.type!==e.ItemType.ERC20)return;const s={amount:i.delta.balance,formattedAmount:i.delta.formattedBalance,l2address:i.required.token.address??""};return r.bridge&&i&&(o=await ND(t,n,r,s,a)),o})(t,a,i,u,o)),c.push((async(e,t,n,r,i,a,o)=>{const s=[];if(!t.swap)return s;if(void 0===n)return s;if(void 0===a)return s;const u=i.get(Qm(e));if(!u)return s;if(void 0!==u.error||!u.success)return s;if(0===a.length)return s;const c=a.filter((e=>e.address)).map((e=>e.address));return 0===c.length?s:await TD(e,t,r,n,i,c,o)})(t,i,u,n,o,s.swap,r)),c.push(DD(t,i,u)),c.push((async(t,n,r,i,a,o,s,u)=>{if(!i)return[];const c=o.get(Ym(t)),l=o.get(Qm(t));if(!c)return[];if(void 0!==c.error||!c.success)return[];if(!l)return[];if(void 0!==l.error||!l.success)return[];const d=(s?.bridge??[]).map((e=>void 0===e.address?ID:e.address)),f=s?.swap??[];return i.type!==e.ItemType.NATIVE&&i.type!==e.ItemType.ERC20?[]:await BD(t,n,r,i,a,o,d,f,u)})(t,a,i,u,n,o,s,r));const l=await oy(t,"Time to resolve all routes",Promise.all(c));let d,f,p=[],h=[];if(l.forEach(((e,t)=>{0===t&&(d=e),1===t&&(p=e),2===t&&(f=e),3===t&&(h=e)})),!d&&0===p.length&&!f&&0===h.length)return{type:e.RoutingOutcomeType.NO_ROUTES_FOUND,message:"Smart Checkout did not find any funding routes to fulfill the transaction"};const m={type:e.RoutingOutcomeType.ROUTES_FOUND,fundingRoutes:[]};let y=0;return p.length>0&&(y++,p.forEach((e=>{m.fundingRoutes.push({priority:y,steps:[e]})}))),d&&(y++,m.fundingRoutes.push({priority:y,steps:[d]})),f&&(y++,m.fundingRoutes.push({priority:y,steps:[f]})),h&&(y++,h.forEach((e=>{const t=e.bridgeFundingStep,n=e.swapFundingStep;m.fundingRoutes.push({priority:y,steps:[t,n]})}))),m},LD=async(t,n,r,i)=>{const a=await n.getSigner().getAddress();let o=QB(r);const s=(async(t,n,r)=>{let i=!0;const a=[],o=new Map,s=new Map,u=new Map,c=new Map;for(const i of r){if(i.type!==e.ItemType.ERC20)continue;const{tokenAddress:r,spenderAddress:a}=i,u=`${r}${a}`;o.set(u,i),s.set(u,$B(t,n,r,a))}const l=await Promise.all(s.values()),d=Array.from(s.keys());for(let r=0;r<l.length;r++){const s=o.get(d[r]);if(!s||s.type!==e.ItemType.ERC20)continue;if(l[r].gte(s.amount)){a.push({sufficient:!0,itemRequirement:s});continue}i=!1;const{tokenAddress:f,spenderAddress:p}=s,h=`${f}${p}`,m=s.amount.sub(l[r]);u.set(h,{type:e.ItemType.ERC20,sufficient:!1,delta:m,itemRequirement:s,approvalTransaction:void 0}),c.set(h,ZB(t,n,f,p,m))}const f=await Promise.all(c.values()),p=Array.from(c.keys());return f.forEach(((e,t)=>{const n=u.get(p[t]);n&&(n.sufficient||(n.approvalTransaction=e))})),{sufficient:i,allowances:a.concat(Array.from(u.values()))}})(n,a,o),u=iD(n,a,o),c=await oy(t,"Time to calculate token allowances",Promise.all([s,u])),l=((e,t)=>{const n=[];if(!e.sufficient)for(const t of e.allowances)t.sufficient||n.push(t);if(!t.sufficient)for(const e of t.allowances)e.sufficient||n.push(e);return n})(c[0],c[1]),d=await oy(t,"Time to run gas calculator",cD(n,l,i));null!==d&&(o.push(d),o=QB(o));const f=await oy(t,"Time to run balance checks",sD(t,n,a,o,!0)),{sufficient:p}=f,h=f.balanceRequirements;if(p)return{sufficient:p,transactionRequirements:h};const m=await oy(t,"Time to fetch available routing options",(async(e,t)=>{const n={onRamp:e.isOnRampEnabled,swap:e.isSwapEnabled,bridge:e.isBridgeEnabled},r=[];if(n.onRamp&&r.push({id:"onRamp",promise:dD()}),n.swap&&r.push({id:"swap",promise:fD(e)}),r.length>0){const e=r.map((e=>e.promise));(await Promise.allSettled(e)).forEach(((e,t)=>{const i=r[t].id;n[i]=n[i]&&"fulfilled"===e.status&&e.value}))}return n.bridge=n.bridge&&!(e=>!0===e.provider?.isPassport??!1)(t),n})(t,n));return{sufficient:p,transactionRequirements:h,router:{availableRoutingOptions:m,routingOutcome:await oy(t,"Total time to run the routing calculator",FD(t,a,f,m))}}};var UD;!function(e){e.SUCCESS="SUCCESS",e.FAILED="FAILED"}(UD||(UD={}));const qD=async(t,n)=>{let r=[];try{const e=await Promise.all(n.map((e=>by(t,e))));r=await Promise.all(e.map((e=>e.transactionResponse.wait())))}catch(t){throw new Cm("An error occurred while executing the approval transaction",e.CheckoutErrorType.EXECUTE_APPROVAL_TRANSACTION_ERROR,{error:t})}for(const e of r)if(0===e.status)return{type:UD.FAILED,transactionHash:e.transactionHash,reason:"Approval transaction failed and was reverted"};return{type:UD.SUCCESS}},jD=async(t,n)=>{let r=[];try{const e=await Promise.all(n.map((e=>by(t,e))));r=await Promise.all(e.map((e=>e.transactionResponse.wait())))}catch(t){throw new Cm("An error occurred while executing the fulfillment transaction",e.CheckoutErrorType.EXECUTE_FULFILLMENT_TRANSACTION_ERROR,{error:t})}for(const e of r)if(0===e.status)return{type:UD.FAILED,transactionHash:e.transactionHash,reason:"Fulfillment transaction failed and was reverted"};return{type:UD.SUCCESS}},GD=async e=>{let t=[];const n=[];for(const t of e)t.type===HM.TRANSACTION&&t.purpose===jM.FULFILL_ORDER&&n.push(t.buildTransaction());return t=await Promise.all(n),t},HD=(e,t)=>{const n=e.amount,r=Math.round(n.percentageDecimal*10**6);return t.mul(kr.from(r)).div(10**6)},zD=(e,t)=>rm(e.amount.token,t),WD=(t,n,r=18)=>{let i=kr.from(0);const a=kr.from(n),o=a.mul(1e6).div(10**6),s=[];for(const n of t){let t=kr.from(0);if(Object.hasOwn(n.amount,"percentageDecimal"))t=HD(n,a),i=i.add(t);else{if(!Object.hasOwn(n.amount,"token"))throw new Cm("Unknown fee type parsed, must be percentageDecimal or token",e.CheckoutErrorType.ORDER_FEE_ERROR);t=zD(n,r),i=i.add(t)}if(i.gt(o))throw new Cm("The combined fees are above the allowed maximum of 100%",e.CheckoutErrorType.ORDER_FEE_ERROR);t.gt(0)&&s.push({amount:t.toString(),recipientAddress:n.recipient})}return s},VD=(t,n,r,i)=>{switch(t){case e.ItemType.ERC20:return{type:t,amount:r,tokenAddress:n,spenderAddress:i};case e.ItemType.NATIVE:default:return{type:e.ItemType.NATIVE,amount:r}}},KD=async(t,n,r,i={waitFulfillmentSettlements:!0})=>{if(0===r.length)throw new Cm("No orders were provided to the orders array. Please provide at least one order.",e.CheckoutErrorType.FULFILL_ORDER_LISTING_ERROR);let a,o="",s=18;const u=aB,c=WB(t),l=VB(t),d=await oy(t,"Time to get the address from the provider",n.getSigner().getAddress());ly(),dy(t,n,d,Ym(t)),dy(t,n,d,Qm(t));const{id:f,takerFees:p}=r[0];let h;try{a=await oy(t,"Time to fetch the listing from the orderbook",c.getListing(f));const{seaportContractAddress:e,chainName:n}=c.config();h=n,o=e}catch(t){throw new Cm("An error occurred while getting the order listing",e.CheckoutErrorType.GET_ORDER_LISTING_ERROR,{error:t,orderId:f})}if(0===a.result.buy.length)throw new Cm("An error occurred with the get order listing",e.CheckoutErrorType.GET_ORDER_LISTING_ERROR,{orderId:f,message:"No buy side tokens found on order"});const m=a.result.buy[0];if("ERC20"===m.type){const e=await oy(t,"Time to get decimals of token contract for the buy token",l.getToken({contractAddress:m.contractAddress,chainName:h}));e.result.decimals&&(s=e.result.decimals)}let y=[];p&&p.length>0&&(y=WD(p,m.amount,s));let g=[],b=[],v=[];const T=performance.now();try{const{actions:e}=await oy(t,"Time to call fulfillOrder from the orderbook",c.fulfillOrder(f,d,y));v=e,g=await oy(t,"Time to construct the unsigned approval transactions",(async e=>{let t=[];const n=[];for(const t of e)t.type===HM.TRANSACTION&&t.purpose===jM.APPROVAL&&n.push(t.buildTransaction());return t=await Promise.all(n),t})(e))}catch(n){const r=(performance.now()-T)/1e3;if(ay(t,"Time to call fulfillOrder from the orderbook",r),n.message.includes(LM.EXPIRED))throw new Cm("Order is expired",e.CheckoutErrorType.ORDER_EXPIRED_ERROR,{orderId:f});if(!n.message.includes("The fulfiller does not have the balances needed to fulfill"))throw new Cm("Error occurred while trying to fulfill the order",e.CheckoutErrorType.FULFILL_ORDER_LISTING_ERROR,{orderId:f,error:n})}try{b=await oy(t,"Time to construct the unsigned fulfillment transactions",GD(v))}catch{}let w=kr.from("0"),E=e.ItemType.NATIVE,A="";const _=a.result.buy;if(_.length>0)switch(_[0].type){case"NATIVE":E=e.ItemType.NATIVE;break;case"ERC20":E=e.ItemType.ERC20,A=_[0].contractAddress;break;default:throw new Cm("Purchasing token type is unsupported",e.CheckoutErrorType.UNSUPPORTED_TOKEN_TYPE_ERROR,{orderId:f})}_.forEach((t=>{t.type!==e.ItemType.ERC721&&(w=w.add(kr.from(t.amount)))}));a.result.fees.forEach((e=>{w=w.add(kr.from(e.amount))}));const I=[VD(E,A,w,o)],R=await oy(t,"Total time running smart checkout",LD(t,n,I,((t,n)=>n.length>0?{type:e.TransactionOrGasType.TRANSACTION,transaction:n[0]}:{type:e.TransactionOrGasType.GAS,gasToken:{type:e.GasTokenType.NATIVE,limit:kr.from(t)}})(u,b)));if(R.sufficient){const t=await qD(n,g);if(t.type===UD.FAILED)return{status:e.CheckoutStatus.FAILED,transactionHash:t.transactionHash,reason:t.reason,smartCheckoutResult:R};try{0===b.length&&(b=await GD(v))}catch(t){throw new Cm("Error fetching fulfillment transaction",e.CheckoutErrorType.FULFILL_ORDER_LISTING_ERROR,{error:t})}if(i.waitFulfillmentSettlements){const t=await jD(n,b);return t.type===UD.FAILED?{status:e.CheckoutStatus.FAILED,transactionHash:t.transactionHash,reason:t.reason,smartCheckoutResult:R}:{status:e.CheckoutStatus.SUCCESS,smartCheckoutResult:R}}let r;try{r=(await Promise.all(b.map((e=>by(n,e))))).map((e=>e.transactionResponse))}catch(t){throw new Cm("An error occurred while executing the fulfillment transaction",e.CheckoutErrorType.EXECUTE_FULFILLMENT_TRANSACTION_ERROR,{message:t.message})}return{status:e.CheckoutStatus.FULFILLMENTS_UNSETTLED,smartCheckoutResult:R,transactions:r}}return{status:e.CheckoutStatus.INSUFFICIENT_FUNDS,smartCheckoutResult:R}},XD=(t,n,r)=>({type:e.ItemType.ERC721,id:t,contractAddress:n,spenderAddress:r}),JD=async(t,n,r)=>{let i,a,o="";if(0===r.length)throw new Cm("No orders were provided to the orders array. Please provide at least one order.",e.CheckoutErrorType.PREPARE_ORDER_LISTING_ERROR);const{buyToken:s,sellToken:u,makerFees:c,orderExpiry:l}=r[0];let d=18;if(s.type===e.ItemType.ERC20){const e=new Kl(s.tokenAddress,JSON.stringify(zm),n);d=await oy(t,"Time to get decimals of token contract for the buy token",e.decimals())}const f=((t,n=18)=>{const r=rm(t.amount,n);return t.type===e.ItemType.NATIVE?{type:e.ItemType.NATIVE,amount:r.toString()}:{type:e.ItemType.ERC20,amount:r.toString(),contractAddress:t.tokenAddress}})(s,d);try{const r=await oy(t,"Time to get the address from the provider",n.getSigner().getAddress());i=WB(t);const{seaportContractAddress:s}=i.config();o=s,a=await oy(t,"Time to prepare the listing from the orderbook",i.prepareListing({makerAddress:r,buy:f,sell:{type:e.ItemType.ERC721,contractAddress:u.collectionAddress,tokenId:u.id},orderExpiry:l}))}catch(t){throw new Cm("An error occurred while preparing the listing",e.CheckoutErrorType.PREPARE_ORDER_LISTING_ERROR,{error:t,id:u.id,collectionAddress:u.collectionAddress})}const p=[XD(u.id,u.collectionAddress,o)],h=await oy(t,"Total time running smart checkout",LD(t,n,p,{type:e.TransactionOrGasType.GAS,gasToken:{type:e.GasTokenType.NATIVE,limit:kr.from(aB)}}));if(h.sufficient){const t=await(async e=>{let t=[],n=[];const r=[],i=[];for(const t of e)t.type===HM.TRANSACTION&&(t.purpose===jM.APPROVAL&&r.push(t.buildTransaction()),t.purpose===jM.FULFILL_ORDER&&i.push(t.buildTransaction()));return t=await Promise.all(r),n=await Promise.all(i),{approvalTransactions:t,fulfillmentTransactions:n}})(a.actions),r=await qD(n,t.approvalTransactions);if(r.type===UD.FAILED)return{status:e.CheckoutStatus.FAILED,transactionHash:r.transactionHash,reason:r.reason,smartCheckoutResult:h};const o=((e,t,n)=>{let r;for(const e of n)e.type===HM.SIGNABLE&&e.purpose===GM.CREATE_LISTING&&(r={domain:e.message.domain,types:e.message.types,value:e.message.value});if(r)return{orderHash:e,orderComponents:t,unsignedMessage:r}})(a.orderHash,a.orderComponents,a.actions);if(!o)throw new Cm("The unsigned message is missing after preparing the listing",e.CheckoutErrorType.SIGN_MESSAGE_ERROR,{id:u.id,collectionAddress:u.collectionAddress});const s=await(async(t,n)=>{try{const e=await t.getSigner()._signTypedData(n.unsignedMessage.domain,n.unsignedMessage.types,n.unsignedMessage.value);return{orderComponents:n.orderComponents,orderHash:n.orderHash,signedMessage:e}}catch(t){throw new Cm("An error occurred while signing the message",e.CheckoutErrorType.SIGN_MESSAGE_ERROR,{error:t})}})(n,o);let l="";const p={orderComponents:s.orderComponents,orderHash:s.orderHash,orderSignature:s.signedMessage,makerFees:[]};if(void 0!==c){const t=WD(c,f.amount,d);if(t.length!==c.length)throw new Cm("One of the fees is too small, must be greater than 0.000001",e.CheckoutErrorType.CREATE_ORDER_LISTING_ERROR);p.makerFees=t}try{l=(await i.createListing(p)).result.id}catch(t){throw new Cm("An error occurred while creating the listing",e.CheckoutErrorType.CREATE_ORDER_LISTING_ERROR,{error:t,collectionId:u.id,collectionAddress:u.collectionAddress})}return{status:e.CheckoutStatus.SUCCESS,orderIds:[l],smartCheckoutResult:h}}return{status:e.CheckoutStatus.INSUFFICIENT_FUNDS,smartCheckoutResult:h}};class YD{config;constructor(e){this.config=e}async feeEstimate(){const e=await this.config.remote.getConfig("onramp");return e[pm.TRANSAK]?.fees}async createWidgetUrl(e){return await this.getTransakWidgetUrl(e)}async getTransakWidgetUrl(e){let t=`${Um[this.config.environment]}?`;if(t+=`${`apiKey=${(await this.config.remote.getConfig("onramp"))[pm.TRANSAK].publishableApiKey}`}&network=immutablezkevm&defaultPaymentMethod=credit_debit_card&disablePaymentMethods=sepa_bank_transfer,gbp_bank_transfer,pm_cash_app,pm_jwire,pm_paymaya,pm_bpi,pm_ubp,pm_grabpay,pm_shopeepay,pm_gcash,pm_pix,pm_astropay,pm_pse,inr_bank_transfer&productsAvailed=buy&exchangeScreenTitle=Buy&themeColor=0D0D0D`,e.isPassport&&e.email){t+=`&email=${encodeURIComponent(e.email)}&isAutoFillUserData=true&disableWalletAddressForm=true`}return e.tokenAmount&&e.tokenSymbol?t+=`&defaultCryptoAmount=${e.tokenAmount}&cryptoCurrencyCode=${e.tokenSymbol}`:t+="&defaultCryptoCurrency=IMX",e.walletAddress&&(t+=`&walletAddress=${e.walletAddress}`),t}}async function QD(t,n){const r=[];n.forEach((n=>{if(n.type===e.ItemType.ERC20){const{tokenAddress:e}=n;r.push((i=e,a=zm,o=t,new Kl(i,a,o)).decimals())}var i,a,o}));const i=await Promise.all(r),a=n.map(((t,n)=>t.type===e.ItemType.NATIVE?{...t,amount:rm(t.amount,18)}:t.type===e.ItemType.ERC20?{...t,amount:rm(t.amount,i[n])}:t));return a}function $D(e){if(void 0===window)throw new Error("missing window object: please run Checkout client side");if(void 0===document)throw new Error("missing document object: please run Checkout client side");const t="immutable-checkout-widgets-bundle",n=function(e){const t=Km();if(void 0===e||void 0===e.major)return t;if(!Number.isInteger(e.major)||e.major<0)return t;if(void 0!==e.minor&&e.minor<0)return t;if(void 0!==e.patch&&e.patch<0)return t;if(0===e.major&&void 0===e.minor)return t;if(0===e.major&&0===e.minor&&void 0===e.patch)return t;if(0===e.major&&void 0===e.minor&&void 0===e.patch)return t;if(0===e.major&&0===e.minor&&0===e.patch)return t;let n=e.major.toString();return void 0===e.minor||(Number.isInteger(e.minor)&&(n+=`.${e.minor.toString()}`),void 0===e.patch||(Number.isInteger(e.patch)&&(n+=`.${e.patch.toString()}`),void 0===e.prerelease||"alpha"!==e.prerelease||("alpha"===e.prerelease&&(n+=`-${e.prerelease}`),void 0===e.build||Number.isInteger(e.build)&&e.build>=0&&(n+=`.${e.build.toString()}`)))),n}(e),r=document.getElementById(t);if(r)return{loaded:!0,element:r};const i=document.createElement("script");let a=`https://cdn.jsdelivr.net/npm/@imtbl/sdk@${n}/dist/browser/checkout/widgets.js`;return i.setAttribute("id",t),i.setAttribute("data-version",n),i.setAttribute("src",a),document.head.appendChild(i),{loaded:!1,element:i}}const ZD=["https://checkout-api.dev.immutable.com","https://checkout-api.sandbox.immutable.com","https://checkout-api.immutable.com"];class eF{config;axiosInstance;constructor(e){this.config=e,this.axiosInstance=$e.create(),this.setupInterceptors()}shouldAddPublishableKey(e){return ZD.some((t=>e.startsWith(t)))}setupInterceptors(){this.axiosInstance.interceptors.request.use((e=>{const t=this.config?.baseConfig?.publishableKey;if(t&&this.shouldAddPublishableKey(e.url||"")){if(!t.startsWith("pk_imapik-"))throw new Error("Invalid Publishable key. Create your Publishable key in Immutable developer hub. https://hub.immutable.com");e.headers["x-immutable-publishable-key"]=t}return e}),(e=>Promise.reject(e)))}async request(e){return await this.axiosInstance.request(e)}async get(e,t){const n={...t,url:e};return await this.request(n)}async post(e,t,n){const r={...n,data:t,url:e};return await this.request(r)}async put(e,t,n){const r={...n,data:t,url:e};return await this.request(r)}async delete(e,t,n){const r={...n,data:t,url:e};return await this.request(r)}}const tF={baseConfig:{environment:Bt.SANDBOX},passport:void 0};e.BlockExplorerService=class{static getTransactionLink(e,t){const n=Hm?.[e]?.url;if(n&&t)return`${n}/tx/${t}`}},e.Checkout=class{readOnlyProviders;httpClient;config;fiatRampService;availability;passport;constructor(e=tF){this.httpClient=new eF(e),this.config=new $m(e,this.httpClient),this.fiatRampService=new YD(this.config),this.readOnlyProviders=new Map,this.availability=lD(this.config.isDevelopment,this.config.isProduction),this.passport=e.passport}async widgets(t){const n=this;await n.config.remote.getConfig();const r=new Promise(((r,i)=>{try{$D(t.version).loaded&&"undefined"!=typeof ImmutableCheckoutWidgets?r(new ImmutableCheckoutWidgets.WidgetsFactory(n,t.config)):function e(){"undefined"!=typeof ImmutableCheckoutWidgets?r(new ImmutableCheckoutWidgets.WidgetsFactory(n,t.config)):setTimeout(e,100)}()}catch(t){i(new Cm("Failed to load widgets script",e.CheckoutErrorType.WIDGETS_SCRIPT_LOAD_ERROR,{error:t}))}}));return r}async createProvider(e){return await hy(e.walletProviderName,this.passport)}async checkIsWalletConnected(t){return async function(t){if(!t?.provider?.request)throw new Cm("Check wallet connection request failed",e.CheckoutErrorType.PROVIDER_REQUEST_FAILED_ERROR,{rpcMethod:ym.CHECK_CONNECTION});let n=[];try{n=await t.provider.request({method:ym.CHECK_CONNECTION,params:[]})}catch(t){throw new Cm("Check wallet connection request failed",e.CheckoutErrorType.PROVIDER_REQUEST_FAILED_ERROR,{error:t,rpcMethod:ym.CHECK_CONNECTION})}return{isConnected:n&&n.length>0,walletAddress:n[0]??""}}(await yy(this.config,t.provider,{allowUnsupportedProvider:!0}))}async connect(t){const n=await yy(this.config,t.provider,{allowUnsupportedProvider:!0});return t.requestWalletPermissions&&!n.provider?.isPassport?await async function(t){if(!t||!t.provider?.request)throw new Cm("Incompatible provider",e.CheckoutErrorType.PROVIDER_REQUEST_MISSING_ERROR,{details:"Attempting to connect with an incompatible provider"});return await Om((async()=>{t.provider.request&&await t.provider.request({method:ym.REQUEST_PERMISSIONS,params:[{eth_accounts:{}}]})}),{type:e.CheckoutErrorType.USER_REJECTED_REQUEST_ERROR}),t}(n):await async function(t){if(!t||!t.provider?.request)throw new Cm("Incompatible provider",e.CheckoutErrorType.PROVIDER_REQUEST_MISSING_ERROR,{details:"Attempting to connect with an incompatible provider"});return await Om((async()=>{t.provider.request&&await t.provider.request({method:ym.CONNECT,params:[]})}),{type:e.CheckoutErrorType.USER_REJECTED_REQUEST_ERROR}),t}(n),{provider:n}}async switchNetwork(e){const t=await yy(this.config,e.provider,{allowUnsupportedProvider:!0,allowMistmatchedChainId:!0});return await xm(this.config,t,e.chainId)}async getTokenInfo(e){return await ny(e.provider,e.tokenAddress)}async getBalance(e){const t=await yy(this.config,e.provider);return e.tokenAddress&&""!==e.tokenAddress?await uy(t,e.walletAddress,e.tokenAddress):await sy(this.config,t,e.walletAddress)}async getAllBalances(e){return dy(this.config,e.provider,e.walletAddress,e.chainId)}async getNetworkAllowList(e){return await Sm(this.config,e)}async getTokenAllowList(e){return await ey(this.config,e)}async getWalletAllowList(t){return await async function(t){const n=[],r=t.exclude?.map((e=>e.walletProviderName))??[];let i=Object.values(e.WalletProviderName);0!==r.length&&(i=i.filter((e=>!r.includes(e))));for(const e of i)n.push({walletProviderName:e});return{wallets:n}}(t)}async sendTransaction(e){const t=await yy(this.config,e.provider);return await by(t,e.transaction)}async getNetworkInfo(e){const t=await yy(this.config,e.provider,{allowUnsupportedProvider:!0,allowMistmatchedChainId:!0});return await Nm(this.config,t)}async buy(e){e.orders.length>1&&console.warn("This endpoint currently only processes the first order in the array.");const t=await yy(this.config,e.provider);return await KD(this.config,t,e.orders,e.overrides)}async sell(e){e.orders.length>1&&console.warn("This endpoint currently only processes the first order in the array.");const t=await yy(this.config,e.provider);return await JD(this.config,t,e.orders)}async cancel(t){console.warn("This endpoint currently only processes the first order in the array.");const n=await yy(this.config,t.provider);return await(async(t,n,r,i={waitFulfillmentSettlements:!0})=>{let a;if(0===r.length)throw new Cm("No orderIds were provided to the orderIds array. Please provide at least one orderId.",e.CheckoutErrorType.CANCEL_ORDER_LISTING_ERROR);const o=r[0];try{const e=await oy(t,"Time to get the address from the provider",n.getSigner().getAddress()),r=WB(t),i=await oy(t,"Time to get the cancel order from the orderbook",r.cancelOrdersOnChain([o],e));a=await i.cancellationAction.buildTransaction()}catch(t){throw new Cm("An error occurred while cancelling the order listing",e.CheckoutErrorType.CANCEL_ORDER_LISTING_ERROR,{orderId:o,error:t})}if(i.waitFulfillmentSettlements){const t=await jD(n,[a]);return t.type===UD.FAILED?{status:e.CheckoutStatus.FAILED,transactionHash:t.transactionHash,reason:t.reason}:{status:e.CheckoutStatus.SUCCESS}}let s;try{s=(await Promise.all([a].map((e=>by(n,e))))).map((e=>e.transactionResponse))}catch(t){throw new Cm("An error occurred while executing the fulfillment transaction",e.CheckoutErrorType.EXECUTE_FULFILLMENT_TRANSACTION_ERROR,{message:t.message})}return{status:e.CheckoutStatus.FULFILLMENTS_UNSETTLED,transactions:s}})(this.config,n,t.orderIds,t.overrides)}async smartCheckout(t){const n=await yy(this.config,t.provider);let r=[];try{r=await QD(n,t.itemRequirements)}catch(t){throw new Cm("Failed to map item requirements",e.CheckoutErrorType.ITEM_REQUIREMENTS_ERROR,{error:t})}return await LD(this.config,n,r,t.transactionOrGasAmount)}static isWeb3Provider(e){return my(e)}async gasEstimate(e){return this.readOnlyProviders=await pD(this.config,this.readOnlyProviders),await YB(e,this.readOnlyProviders,this.config)}async createFiatRampUrl(t){let n,r,i="IMX";const a=await t.web3Provider.getSigner().getAddress(),o=t.web3Provider.provider?.isPassport||!1;if(o&&t.passport){const e=await t.passport.getUserInfo();r=e?.email}const s=await ey(this.config,{type:e.TokenFilterTypes.ONRAMP}),u=s.tokens?.find((e=>Zm(e.address,t.tokenAddress)));return u&&(n=t.tokenAmount,i=u.symbol),await this.fiatRampService.createWidgetUrl({exchangeType:t.exchangeType,isPassport:o,walletAddress:a,tokenAmount:n,tokenSymbol:i,email:r})}async getExchangeFeeEstimate(){return await this.fiatRampService.feeEstimate()}async isSwapAvailable(){return this.availability.checkDexAvailability()}},e.CheckoutConfiguration=$m,e.IMMUTABLE_API_BASE_URL=Fm}));