@reown/appkit-cdn 0.0.3

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.
@@ -0,0 +1,43 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const A=require("./W3MFrameProviderSingleton-BpWUndnw.cjs"),Uw=":";function $n(i){const[t,e]=i.split(Uw);return{namespace:t,reference:e}}function Gl(i,t=[]){const e=[];return Object.keys(i).forEach(s=>{if(t.length&&!t.includes(s))return;const o=i[s];e.push(...o.accounts)}),e}function Ap(i,t){return i.includes(":")?[i]:t.chains||[]}var $w=Object.defineProperty,Yl=Object.getOwnPropertySymbols,zw=Object.prototype.hasOwnProperty,Lw=Object.prototype.propertyIsEnumerable,Wl=(i,t,e)=>t in i?$w(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e,Zl=(i,t)=>{for(var e in t||(t={}))zw.call(t,e)&&Wl(i,e,t[e]);if(Yl)for(var e of Yl(t))Lw.call(t,e)&&Wl(i,e,t[e]);return i};const Kw="ReactNative",mr={reactNative:"react-native",node:"node",browser:"browser",unknown:"unknown"},Hw="js";function Hn(){return typeof A.process$1<"u"&&typeof A.process$1.versions<"u"&&typeof A.process$1.versions.node<"u"}function Gn(){return!A.getDocument_1()&&!!A.getNavigator_1()&&navigator.product===Kw}function Yn(){return!Hn()&&!!A.getNavigator_1()&&!!A.getDocument_1()}function Wn(){return Gn()?mr.reactNative:Hn()?mr.node:Yn()?mr.browser:mr.unknown}function Vw(){var i;try{return Gn()&&typeof A.global<"u"&&typeof(A.global==null?void 0:A.global.Application)<"u"?(i=A.global.Application)==null?void 0:i.applicationId:void 0}catch{return}}function Jw(i,t){let e=A.queryString.parse(i);return e=Zl(Zl({},e),t),i=A.queryString.stringify(e),i}function Qw(){return A.getWindowMetadata_1()||{name:"",description:"",url:"",icons:[""]}}function Gw(){if(Wn()===mr.reactNative&&typeof A.global<"u"&&typeof(A.global==null?void 0:A.global.Platform)<"u"){const{OS:e,Version:s}=A.global.Platform;return[e,s].join("-")}const i=A.detect();if(i===null)return"unknown";const t=i.os?i.os.replace(" ","").toLowerCase():"unknown";return i.type==="browser"?[t,i.name,i.version].join("-"):[t,i.version].join("-")}function Yw(){var i;const t=Wn();return t===mr.browser?[t,((i=A.getLocation_1())==null?void 0:i.host)||"unknown"].join(":"):t}function Ww(i,t,e){const s=Gw(),o=Yw();return[[i,t].join("-"),[Hw,e].join("-"),s,o].join("/")}function Zw({protocol:i,version:t,relayUrl:e,sdkVersion:s,auth:o,projectId:a,useOnCloseEvent:h,bundleId:p}){const v=e.split("?"),y=Ww(i,t,s),M={auth:o,ua:y,projectId:a,useOnCloseEvent:h||void 0,origin:p||void 0},P=Jw(v[1]||"",M);return v[0]+"?"+P}function ws(i,t){return i.filter(e=>t.includes(e)).length===i.length}function Ep(i){return Object.fromEntries(i.entries())}function Ip(i){return new Map(Object.entries(i))}function ys(i=A.cjs.FIVE_MINUTES,t){const e=A.cjs.toMiliseconds(i||A.cjs.FIVE_MINUTES);let s,o,a;return{resolve:h=>{a&&s&&(clearTimeout(a),s(h))},reject:h=>{a&&o&&(clearTimeout(a),o(h))},done:()=>new Promise((h,p)=>{a=setTimeout(()=>{p(new Error(t))},e),s=h,o=p})}}function Qs(i,t,e){return new Promise(async(s,o)=>{const a=setTimeout(()=>o(new Error(e)),t);try{const h=await i;s(h)}catch(h){o(h)}clearTimeout(a)})}function Sp(i,t){if(typeof t=="string"&&t.startsWith(`${i}:`))return t;if(i.toLowerCase()==="topic"){if(typeof t!="string")throw new Error('Value must be "string" for expirer target type: topic');return`topic:${t}`}else if(i.toLowerCase()==="id"){if(typeof t!="number")throw new Error('Value must be "number" for expirer target type: id');return`id:${t}`}throw new Error(`Unknown expirer target type: ${i}`)}function Xw(i){return Sp("topic",i)}function tb(i){return Sp("id",i)}function Pp(i){const[t,e]=i.split(":"),s={id:void 0,topic:void 0};if(t==="topic"&&typeof e=="string")s.topic=e;else if(t==="id"&&Number.isInteger(Number(e)))s.id=Number(e);else throw new Error(`Invalid target, expected id:number or topic:string, got ${t}:${e}`);return s}function Ue(i,t){return A.cjs.fromMiliseconds(Date.now()+A.cjs.toMiliseconds(i))}function rs(i){return Date.now()>=A.cjs.toMiliseconds(i)}function It(i,t){return`${i}${t?`:${t}`:""}`}function Yo(i=[],t=[]){return[...new Set([...i,...t])]}async function eb({id:i,topic:t,wcDeepLink:e}){var s;try{if(!e)return;const o=typeof e=="string"?JSON.parse(e):e;let a=o==null?void 0:o.href;if(typeof a!="string")return;a.endsWith("/")&&(a=a.slice(0,-1));const h=`${a}/wc?requestId=${i}&sessionTopic=${t}`,p=Wn();if(p===mr.browser){if(!((s=A.getDocument_1())!=null&&s.hasFocus())){console.warn("Document does not have focus, skipping deeplink.");return}h.startsWith("https://")||h.startsWith("http://")?window.open(h,"_blank","noreferrer noopener"):window.open(h,"_self","noreferrer noopener")}else p===mr.reactNative&&typeof(A.global==null?void 0:A.global.Linking)<"u"&&await A.global.Linking.openURL(h)}catch(o){console.error(o)}}async function rb(i,t){try{return await i.getItem(t)||(Yn()?localStorage.getItem(t):void 0)}catch(e){console.error(e)}}function ib(){return typeof crypto<"u"&&crypto!=null&&crypto.randomUUID?crypto.randomUUID():"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/gu,i=>{const t=Math.random()*16|0;return(i==="x"?t:t&3|8).toString(16)})}var Mp=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof A.global<"u"?A.global:typeof self<"u"?self:{};function sb(i){var t=i.default;if(typeof t=="function"){var e=function(){return t.apply(this,arguments)};e.prototype=t.prototype}else e={};return Object.defineProperty(e,"__esModule",{value:!0}),Object.keys(i).forEach(function(s){var o=Object.getOwnPropertyDescriptor(i,s);Object.defineProperty(e,s,o.get?o:{enumerable:!0,get:function(){return i[s]}})}),e}var Cp={exports:{}};/**
2
+ * [js-sha3]{@link https://github.com/emn178/js-sha3}
3
+ *
4
+ * @version 0.8.0
5
+ * @author Chen, Yi-Cyuan [emn178@gmail.com]
6
+ * @copyright Chen, Yi-Cyuan 2015-2018
7
+ * @license MIT
8
+ */(function(i){(function(){var t="input is invalid type",e="finalize already called",s=typeof window=="object",o=s?window:{};o.JS_SHA3_NO_WINDOW&&(s=!1);var a=!s&&typeof self=="object",h=!o.JS_SHA3_NO_NODE_JS&&typeof A.process$1=="object"&&A.process$1.versions&&A.process$1.versions.node;h?o=Mp:a&&(o=self);var p=!o.JS_SHA3_NO_COMMON_JS&&!0&&i.exports,v=!o.JS_SHA3_NO_ARRAY_BUFFER&&typeof ArrayBuffer<"u",y="0123456789abcdef".split(""),M=[31,7936,2031616,520093696],P=[4,1024,262144,67108864],T=[1,256,65536,16777216],D=[6,1536,393216,100663296],k=[0,8,16,24],H=[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],V=[224,256,384,512],Q=[128,256],ht=["hex","buffer","arrayBuffer","array","digest"],ut={128:168,256:136};(o.JS_SHA3_NO_NODE_JS||!Array.isArray)&&(Array.isArray=function(m){return Object.prototype.toString.call(m)==="[object Array]"}),v&&(o.JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW||!ArrayBuffer.isView)&&(ArrayBuffer.isView=function(m){return typeof m=="object"&&m.buffer&&m.buffer.constructor===ArrayBuffer});for(var W=function(m,$,j){return function(K){return new E(m,$,m).update(K)[j]()}},et=function(m,$,j){return function(K,rt){return new E(m,$,rt).update(K)[j]()}},ct=function(m,$,j){return function(K,rt,X,tt){return d["cshake"+m].update(K,rt,X,tt)[j]()}},st=function(m,$,j){return function(K,rt,X,tt){return d["kmac"+m].update(K,rt,X,tt)[j]()}},gt=function(m,$,j,K){for(var rt=0;rt<ht.length;++rt){var X=ht[rt];m[X]=$(j,K,X)}return m},kt=function(m,$){var j=W(m,$,"hex");return j.create=function(){return new E(m,$,m)},j.update=function(K){return j.create().update(K)},gt(j,W,m,$)},Te=function(m,$){var j=et(m,$,"hex");return j.create=function(K){return new E(m,$,K)},j.update=function(K,rt){return j.create(rt).update(K)},gt(j,et,m,$)},Ct=function(m,$){var j=ut[m],K=ct(m,$,"hex");return K.create=function(rt,X,tt){return!X&&!tt?d["shake"+m].create(rt):new E(m,$,rt).bytepad([X,tt],j)},K.update=function(rt,X,tt,at){return K.create(X,tt,at).update(rt)},gt(K,ct,m,$)},Me=function(m,$){var j=ut[m],K=st(m,$,"hex");return K.create=function(rt,X,tt){return new lt(m,$,X).bytepad(["KMAC",tt],j).bytepad([rt],j)},K.update=function(rt,X,tt,at){return K.create(rt,tt,at).update(X)},gt(K,st,m,$)},u=[{name:"keccak",padding:T,bits:V,createMethod:kt},{name:"sha3",padding:D,bits:V,createMethod:kt},{name:"shake",padding:M,bits:Q,createMethod:Te},{name:"cshake",padding:P,bits:Q,createMethod:Ct},{name:"kmac",padding:P,bits:Q,createMethod:Me}],d={},b=[],I=0;I<u.length;++I)for(var C=u[I],N=C.bits,q=0;q<N.length;++q){var S=C.name+"_"+N[q];if(b.push(S),d[S]=C.createMethod(N[q],C.padding),C.name!=="sha3"){var f=C.name+N[q];b.push(f),d[f]=d[S]}}function E(m,$,j){this.blocks=[],this.s=[],this.padding=$,this.outputBits=j,this.reset=!0,this.finalized=!1,this.block=0,this.start=0,this.blockCount=1600-(m<<1)>>5,this.byteCount=this.blockCount<<2,this.outputBlocks=j>>5,this.extraBytes=(j&31)>>3;for(var K=0;K<50;++K)this.s[K]=0}E.prototype.update=function(m){if(this.finalized)throw new Error(e);var $,j=typeof m;if(j!=="string"){if(j==="object"){if(m===null)throw new Error(t);if(v&&m.constructor===ArrayBuffer)m=new Uint8Array(m);else if(!Array.isArray(m)&&(!v||!ArrayBuffer.isView(m)))throw new Error(t)}else throw new Error(t);$=!0}for(var K=this.blocks,rt=this.byteCount,X=m.length,tt=this.blockCount,at=0,mt=this.s,Y,Ot;at<X;){if(this.reset)for(this.reset=!1,K[0]=this.block,Y=1;Y<tt+1;++Y)K[Y]=0;if($)for(Y=this.start;at<X&&Y<rt;++at)K[Y>>2]|=m[at]<<k[Y++&3];else for(Y=this.start;at<X&&Y<rt;++at)Ot=m.charCodeAt(at),Ot<128?K[Y>>2]|=Ot<<k[Y++&3]:Ot<2048?(K[Y>>2]|=(192|Ot>>6)<<k[Y++&3],K[Y>>2]|=(128|Ot&63)<<k[Y++&3]):Ot<55296||Ot>=57344?(K[Y>>2]|=(224|Ot>>12)<<k[Y++&3],K[Y>>2]|=(128|Ot>>6&63)<<k[Y++&3],K[Y>>2]|=(128|Ot&63)<<k[Y++&3]):(Ot=65536+((Ot&1023)<<10|m.charCodeAt(++at)&1023),K[Y>>2]|=(240|Ot>>18)<<k[Y++&3],K[Y>>2]|=(128|Ot>>12&63)<<k[Y++&3],K[Y>>2]|=(128|Ot>>6&63)<<k[Y++&3],K[Y>>2]|=(128|Ot&63)<<k[Y++&3]);if(this.lastByteIndex=Y,Y>=rt){for(this.start=Y-rt,this.block=K[tt],Y=0;Y<tt;++Y)mt[Y]^=K[Y];ot(mt),this.reset=!0}else this.start=Y}return this},E.prototype.encode=function(m,$){var j=m&255,K=1,rt=[j];for(m=m>>8,j=m&255;j>0;)rt.unshift(j),m=m>>8,j=m&255,++K;return $?rt.push(K):rt.unshift(K),this.update(rt),rt.length},E.prototype.encodeString=function(m){var $,j=typeof m;if(j!=="string"){if(j==="object"){if(m===null)throw new Error(t);if(v&&m.constructor===ArrayBuffer)m=new Uint8Array(m);else if(!Array.isArray(m)&&(!v||!ArrayBuffer.isView(m)))throw new Error(t)}else throw new Error(t);$=!0}var K=0,rt=m.length;if($)K=rt;else for(var X=0;X<m.length;++X){var tt=m.charCodeAt(X);tt<128?K+=1:tt<2048?K+=2:tt<55296||tt>=57344?K+=3:(tt=65536+((tt&1023)<<10|m.charCodeAt(++X)&1023),K+=4)}return K+=this.encode(K*8),this.update(m),K},E.prototype.bytepad=function(m,$){for(var j=this.encode($),K=0;K<m.length;++K)j+=this.encodeString(m[K]);var rt=$-j%$,X=[];return X.length=rt,this.update(X),this},E.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var m=this.blocks,$=this.lastByteIndex,j=this.blockCount,K=this.s;if(m[$>>2]|=this.padding[$&3],this.lastByteIndex===this.byteCount)for(m[0]=m[j],$=1;$<j+1;++$)m[$]=0;for(m[j-1]|=2147483648,$=0;$<j;++$)K[$]^=m[$];ot(K)}},E.prototype.toString=E.prototype.hex=function(){this.finalize();for(var m=this.blockCount,$=this.s,j=this.outputBlocks,K=this.extraBytes,rt=0,X=0,tt="",at;X<j;){for(rt=0;rt<m&&X<j;++rt,++X)at=$[rt],tt+=y[at>>4&15]+y[at&15]+y[at>>12&15]+y[at>>8&15]+y[at>>20&15]+y[at>>16&15]+y[at>>28&15]+y[at>>24&15];X%m===0&&(ot($),rt=0)}return K&&(at=$[rt],tt+=y[at>>4&15]+y[at&15],K>1&&(tt+=y[at>>12&15]+y[at>>8&15]),K>2&&(tt+=y[at>>20&15]+y[at>>16&15])),tt},E.prototype.arrayBuffer=function(){this.finalize();var m=this.blockCount,$=this.s,j=this.outputBlocks,K=this.extraBytes,rt=0,X=0,tt=this.outputBits>>3,at;K?at=new ArrayBuffer(j+1<<2):at=new ArrayBuffer(tt);for(var mt=new Uint32Array(at);X<j;){for(rt=0;rt<m&&X<j;++rt,++X)mt[X]=$[rt];X%m===0&&ot($)}return K&&(mt[rt]=$[rt],at=at.slice(0,tt)),at},E.prototype.buffer=E.prototype.arrayBuffer,E.prototype.digest=E.prototype.array=function(){this.finalize();for(var m=this.blockCount,$=this.s,j=this.outputBlocks,K=this.extraBytes,rt=0,X=0,tt=[],at,mt;X<j;){for(rt=0;rt<m&&X<j;++rt,++X)at=X<<2,mt=$[rt],tt[at]=mt&255,tt[at+1]=mt>>8&255,tt[at+2]=mt>>16&255,tt[at+3]=mt>>24&255;X%m===0&&ot($)}return K&&(at=X<<2,mt=$[rt],tt[at]=mt&255,K>1&&(tt[at+1]=mt>>8&255),K>2&&(tt[at+2]=mt>>16&255)),tt};function lt(m,$,j){E.call(this,m,$,j)}lt.prototype=new E,lt.prototype.finalize=function(){return this.encode(this.outputBits,!0),E.prototype.finalize.call(this)};var ot=function(m){var $,j,K,rt,X,tt,at,mt,Y,Ot,Xt,xt,Yr,te,Tt,Ce,Ft,Bt,_i,Dt,ee,hr,Nt,$t,Tr,zt,Lt,Fr,Kt,Ht,Dr,Vt,re,Ai,ie,Yt,Wr,se,ne,Ei,oe,Wt,Ii,ae,ce,qr,he,Jt,Si,ue,le,Pi,fe,pe,Mi,de,Zt,Zr,Xr,ti,ei,ri,ii;for(K=0;K<48;K+=2)rt=m[0]^m[10]^m[20]^m[30]^m[40],X=m[1]^m[11]^m[21]^m[31]^m[41],tt=m[2]^m[12]^m[22]^m[32]^m[42],at=m[3]^m[13]^m[23]^m[33]^m[43],mt=m[4]^m[14]^m[24]^m[34]^m[44],Y=m[5]^m[15]^m[25]^m[35]^m[45],Ot=m[6]^m[16]^m[26]^m[36]^m[46],Xt=m[7]^m[17]^m[27]^m[37]^m[47],xt=m[8]^m[18]^m[28]^m[38]^m[48],Yr=m[9]^m[19]^m[29]^m[39]^m[49],$=xt^(tt<<1|at>>>31),j=Yr^(at<<1|tt>>>31),m[0]^=$,m[1]^=j,m[10]^=$,m[11]^=j,m[20]^=$,m[21]^=j,m[30]^=$,m[31]^=j,m[40]^=$,m[41]^=j,$=rt^(mt<<1|Y>>>31),j=X^(Y<<1|mt>>>31),m[2]^=$,m[3]^=j,m[12]^=$,m[13]^=j,m[22]^=$,m[23]^=j,m[32]^=$,m[33]^=j,m[42]^=$,m[43]^=j,$=tt^(Ot<<1|Xt>>>31),j=at^(Xt<<1|Ot>>>31),m[4]^=$,m[5]^=j,m[14]^=$,m[15]^=j,m[24]^=$,m[25]^=j,m[34]^=$,m[35]^=j,m[44]^=$,m[45]^=j,$=mt^(xt<<1|Yr>>>31),j=Y^(Yr<<1|xt>>>31),m[6]^=$,m[7]^=j,m[16]^=$,m[17]^=j,m[26]^=$,m[27]^=j,m[36]^=$,m[37]^=j,m[46]^=$,m[47]^=j,$=Ot^(rt<<1|X>>>31),j=Xt^(X<<1|rt>>>31),m[8]^=$,m[9]^=j,m[18]^=$,m[19]^=j,m[28]^=$,m[29]^=j,m[38]^=$,m[39]^=j,m[48]^=$,m[49]^=j,te=m[0],Tt=m[1],qr=m[11]<<4|m[10]>>>28,he=m[10]<<4|m[11]>>>28,Fr=m[20]<<3|m[21]>>>29,Kt=m[21]<<3|m[20]>>>29,ti=m[31]<<9|m[30]>>>23,ei=m[30]<<9|m[31]>>>23,Wt=m[40]<<18|m[41]>>>14,Ii=m[41]<<18|m[40]>>>14,Ai=m[2]<<1|m[3]>>>31,ie=m[3]<<1|m[2]>>>31,Ce=m[13]<<12|m[12]>>>20,Ft=m[12]<<12|m[13]>>>20,Jt=m[22]<<10|m[23]>>>22,Si=m[23]<<10|m[22]>>>22,Ht=m[33]<<13|m[32]>>>19,Dr=m[32]<<13|m[33]>>>19,ri=m[42]<<2|m[43]>>>30,ii=m[43]<<2|m[42]>>>30,pe=m[5]<<30|m[4]>>>2,Mi=m[4]<<30|m[5]>>>2,Yt=m[14]<<6|m[15]>>>26,Wr=m[15]<<6|m[14]>>>26,Bt=m[25]<<11|m[24]>>>21,_i=m[24]<<11|m[25]>>>21,ue=m[34]<<15|m[35]>>>17,le=m[35]<<15|m[34]>>>17,Vt=m[45]<<29|m[44]>>>3,re=m[44]<<29|m[45]>>>3,$t=m[6]<<28|m[7]>>>4,Tr=m[7]<<28|m[6]>>>4,de=m[17]<<23|m[16]>>>9,Zt=m[16]<<23|m[17]>>>9,se=m[26]<<25|m[27]>>>7,ne=m[27]<<25|m[26]>>>7,Dt=m[36]<<21|m[37]>>>11,ee=m[37]<<21|m[36]>>>11,Pi=m[47]<<24|m[46]>>>8,fe=m[46]<<24|m[47]>>>8,ae=m[8]<<27|m[9]>>>5,ce=m[9]<<27|m[8]>>>5,zt=m[18]<<20|m[19]>>>12,Lt=m[19]<<20|m[18]>>>12,Zr=m[29]<<7|m[28]>>>25,Xr=m[28]<<7|m[29]>>>25,Ei=m[38]<<8|m[39]>>>24,oe=m[39]<<8|m[38]>>>24,hr=m[48]<<14|m[49]>>>18,Nt=m[49]<<14|m[48]>>>18,m[0]=te^~Ce&Bt,m[1]=Tt^~Ft&_i,m[10]=$t^~zt&Fr,m[11]=Tr^~Lt&Kt,m[20]=Ai^~Yt&se,m[21]=ie^~Wr&ne,m[30]=ae^~qr&Jt,m[31]=ce^~he&Si,m[40]=pe^~de&Zr,m[41]=Mi^~Zt&Xr,m[2]=Ce^~Bt&Dt,m[3]=Ft^~_i&ee,m[12]=zt^~Fr&Ht,m[13]=Lt^~Kt&Dr,m[22]=Yt^~se&Ei,m[23]=Wr^~ne&oe,m[32]=qr^~Jt&ue,m[33]=he^~Si&le,m[42]=de^~Zr&ti,m[43]=Zt^~Xr&ei,m[4]=Bt^~Dt&hr,m[5]=_i^~ee&Nt,m[14]=Fr^~Ht&Vt,m[15]=Kt^~Dr&re,m[24]=se^~Ei&Wt,m[25]=ne^~oe&Ii,m[34]=Jt^~ue&Pi,m[35]=Si^~le&fe,m[44]=Zr^~ti&ri,m[45]=Xr^~ei&ii,m[6]=Dt^~hr&te,m[7]=ee^~Nt&Tt,m[16]=Ht^~Vt&$t,m[17]=Dr^~re&Tr,m[26]=Ei^~Wt&Ai,m[27]=oe^~Ii&ie,m[36]=ue^~Pi&ae,m[37]=le^~fe&ce,m[46]=ti^~ri&pe,m[47]=ei^~ii&Mi,m[8]=hr^~te&Ce,m[9]=Nt^~Tt&Ft,m[18]=Vt^~$t&zt,m[19]=re^~Tr&Lt,m[28]=Wt^~Ai&Yt,m[29]=Ii^~ie&Wr,m[38]=Pi^~ae&qr,m[39]=fe^~ce&he,m[48]=ri^~pe&de,m[49]=ii^~Mi&Zt,m[0]^=H[K],m[1]^=H[K+1]};if(p)i.exports=d;else for(I=0;I<b.length;++I)o[b[I]]=d[b[I]]})()})(Cp);var nb=Cp.exports;const ob="logger/5.7.0";let Xl=!1,tf=!1;const Wo={debug:1,default:2,info:2,warning:3,error:4,off:5};let ef=Wo.default,Mc=null;function ab(){try{const i=[];if(["NFD","NFC","NFKD","NFKC"].forEach(t=>{try{if("test".normalize(t)!=="test")throw new Error("bad normalize")}catch{i.push(t)}}),i.length)throw new Error("missing "+i.join(", "));if("é".normalize("NFD")!=="é")throw new Error("broken implementation")}catch(i){return i.message}return null}const rf=ab();var Xc;(function(i){i.DEBUG="DEBUG",i.INFO="INFO",i.WARNING="WARNING",i.ERROR="ERROR",i.OFF="OFF"})(Xc||(Xc={}));var Hr;(function(i){i.UNKNOWN_ERROR="UNKNOWN_ERROR",i.NOT_IMPLEMENTED="NOT_IMPLEMENTED",i.UNSUPPORTED_OPERATION="UNSUPPORTED_OPERATION",i.NETWORK_ERROR="NETWORK_ERROR",i.SERVER_ERROR="SERVER_ERROR",i.TIMEOUT="TIMEOUT",i.BUFFER_OVERRUN="BUFFER_OVERRUN",i.NUMERIC_FAULT="NUMERIC_FAULT",i.MISSING_NEW="MISSING_NEW",i.INVALID_ARGUMENT="INVALID_ARGUMENT",i.MISSING_ARGUMENT="MISSING_ARGUMENT",i.UNEXPECTED_ARGUMENT="UNEXPECTED_ARGUMENT",i.CALL_EXCEPTION="CALL_EXCEPTION",i.INSUFFICIENT_FUNDS="INSUFFICIENT_FUNDS",i.NONCE_EXPIRED="NONCE_EXPIRED",i.REPLACEMENT_UNDERPRICED="REPLACEMENT_UNDERPRICED",i.UNPREDICTABLE_GAS_LIMIT="UNPREDICTABLE_GAS_LIMIT",i.TRANSACTION_REPLACED="TRANSACTION_REPLACED",i.ACTION_REJECTED="ACTION_REJECTED"})(Hr||(Hr={}));const sf="0123456789abcdef";let $e=class Oe{constructor(t){Object.defineProperty(this,"version",{enumerable:!0,value:t,writable:!1})}_log(t,e){const s=t.toLowerCase();Wo[s]==null&&this.throwArgumentError("invalid log level name","logLevel",t),!(ef>Wo[s])&&console.log.apply(console,e)}debug(...t){this._log(Oe.levels.DEBUG,t)}info(...t){this._log(Oe.levels.INFO,t)}warn(...t){this._log(Oe.levels.WARNING,t)}makeError(t,e,s){if(tf)return this.makeError("censored error",e,{});e||(e=Oe.errors.UNKNOWN_ERROR),s||(s={});const o=[];Object.keys(s).forEach(v=>{const y=s[v];try{if(y instanceof Uint8Array){let M="";for(let P=0;P<y.length;P++)M+=sf[y[P]>>4],M+=sf[y[P]&15];o.push(v+"=Uint8Array(0x"+M+")")}else o.push(v+"="+JSON.stringify(y))}catch{o.push(v+"="+JSON.stringify(s[v].toString()))}}),o.push(`code=${e}`),o.push(`version=${this.version}`);const a=t;let h="";switch(e){case Hr.NUMERIC_FAULT:{h="NUMERIC_FAULT";const v=t;switch(v){case"overflow":case"underflow":case"division-by-zero":h+="-"+v;break;case"negative-power":case"negative-width":h+="-unsupported";break;case"unbound-bitwise-result":h+="-unbound-result";break}break}case Hr.CALL_EXCEPTION:case Hr.INSUFFICIENT_FUNDS:case Hr.MISSING_NEW:case Hr.NONCE_EXPIRED:case Hr.REPLACEMENT_UNDERPRICED:case Hr.TRANSACTION_REPLACED:case Hr.UNPREDICTABLE_GAS_LIMIT:h=e;break}h&&(t+=" [ See: https://links.ethers.org/v5-errors-"+h+" ]"),o.length&&(t+=" ("+o.join(", ")+")");const p=new Error(t);return p.reason=a,p.code=e,Object.keys(s).forEach(function(v){p[v]=s[v]}),p}throwError(t,e,s){throw this.makeError(t,e,s)}throwArgumentError(t,e,s){return this.throwError(t,Oe.errors.INVALID_ARGUMENT,{argument:e,value:s})}assert(t,e,s,o){t||this.throwError(e,s,o)}assertArgument(t,e,s,o){t||this.throwArgumentError(e,s,o)}checkNormalize(t){rf&&this.throwError("platform missing String.prototype.normalize",Oe.errors.UNSUPPORTED_OPERATION,{operation:"String.prototype.normalize",form:rf})}checkSafeUint53(t,e){typeof t=="number"&&(e==null&&(e="value not safe"),(t<0||t>=9007199254740991)&&this.throwError(e,Oe.errors.NUMERIC_FAULT,{operation:"checkSafeInteger",fault:"out-of-safe-range",value:t}),t%1&&this.throwError(e,Oe.errors.NUMERIC_FAULT,{operation:"checkSafeInteger",fault:"non-integer",value:t}))}checkArgumentCount(t,e,s){s?s=": "+s:s="",t<e&&this.throwError("missing argument"+s,Oe.errors.MISSING_ARGUMENT,{count:t,expectedCount:e}),t>e&&this.throwError("too many arguments"+s,Oe.errors.UNEXPECTED_ARGUMENT,{count:t,expectedCount:e})}checkNew(t,e){(t===Object||t==null)&&this.throwError("missing new",Oe.errors.MISSING_NEW,{name:e.name})}checkAbstract(t,e){t===e?this.throwError("cannot instantiate abstract class "+JSON.stringify(e.name)+" directly; use a sub-class",Oe.errors.UNSUPPORTED_OPERATION,{name:t.name,operation:"new"}):(t===Object||t==null)&&this.throwError("missing new",Oe.errors.MISSING_NEW,{name:e.name})}static globalLogger(){return Mc||(Mc=new Oe(ob)),Mc}static setCensorship(t,e){if(!t&&e&&this.globalLogger().throwError("cannot permanently disable censorship",Oe.errors.UNSUPPORTED_OPERATION,{operation:"setCensorship"}),Xl){if(!t)return;this.globalLogger().throwError("error censorship permanent",Oe.errors.UNSUPPORTED_OPERATION,{operation:"setCensorship"})}tf=!!t,Xl=!!e}static setLogLevel(t){const e=Wo[t.toLowerCase()];if(e==null){Oe.globalLogger().warn("invalid log level - "+t);return}ef=e}static from(t){return new Oe(t)}};$e.errors=Hr,$e.levels=Xc;const cb="bytes/5.7.0",Se=new $e(cb);function xp(i){return!!i.toHexString}function Gs(i){return i.slice||(i.slice=function(){const t=Array.prototype.slice.call(arguments);return Gs(new Uint8Array(Array.prototype.slice.apply(i,t)))}),i}function hb(i){return vr(i)&&!(i.length%2)||Xs(i)}function nf(i){return typeof i=="number"&&i==i&&i%1===0}function Xs(i){if(i==null)return!1;if(i.constructor===Uint8Array)return!0;if(typeof i=="string"||!nf(i.length)||i.length<0)return!1;for(let t=0;t<i.length;t++){const e=i[t];if(!nf(e)||e<0||e>=256)return!1}return!0}function Ae(i,t){if(t||(t={}),typeof i=="number"){Se.checkSafeUint53(i,"invalid arrayify value");const e=[];for(;i;)e.unshift(i&255),i=parseInt(String(i/256));return e.length===0&&e.push(0),Gs(new Uint8Array(e))}if(t.allowMissingPrefix&&typeof i=="string"&&i.substring(0,2)!=="0x"&&(i="0x"+i),xp(i)&&(i=i.toHexString()),vr(i)){let e=i.substring(2);e.length%2&&(t.hexPad==="left"?e="0"+e:t.hexPad==="right"?e+="0":Se.throwArgumentError("hex data is odd-length","value",i));const s=[];for(let o=0;o<e.length;o+=2)s.push(parseInt(e.substring(o,o+2),16));return Gs(new Uint8Array(s))}return Xs(i)?Gs(new Uint8Array(i)):Se.throwArgumentError("invalid arrayify value","value",i)}function ub(i){const t=i.map(o=>Ae(o)),e=t.reduce((o,a)=>o+a.length,0),s=new Uint8Array(e);return t.reduce((o,a)=>(s.set(a,o),o+a.length),0),Gs(s)}function lb(i,t){i=Ae(i),i.length>t&&Se.throwArgumentError("value out of range","value",arguments[0]);const e=new Uint8Array(t);return e.set(i,t-i.length),Gs(e)}function vr(i,t){return!(typeof i!="string"||!i.match(/^0x[0-9A-Fa-f]*$/)||t&&i.length!==2+2*t)}const Cc="0123456789abcdef";function nr(i,t){if(t||(t={}),typeof i=="number"){Se.checkSafeUint53(i,"invalid hexlify value");let e="";for(;i;)e=Cc[i&15]+e,i=Math.floor(i/16);return e.length?(e.length%2&&(e="0"+e),"0x"+e):"0x00"}if(typeof i=="bigint")return i=i.toString(16),i.length%2?"0x0"+i:"0x"+i;if(t.allowMissingPrefix&&typeof i=="string"&&i.substring(0,2)!=="0x"&&(i="0x"+i),xp(i))return i.toHexString();if(vr(i))return i.length%2&&(t.hexPad==="left"?i="0x0"+i.substring(2):t.hexPad==="right"?i+="0":Se.throwArgumentError("hex data is odd-length","value",i)),i.toLowerCase();if(Xs(i)){let e="0x";for(let s=0;s<i.length;s++){let o=i[s];e+=Cc[(o&240)>>4]+Cc[o&15]}return e}return Se.throwArgumentError("invalid hexlify value","value",i)}function fb(i){if(typeof i!="string")i=nr(i);else if(!vr(i)||i.length%2)return null;return(i.length-2)/2}function of(i,t,e){return typeof i!="string"?i=nr(i):(!vr(i)||i.length%2)&&Se.throwArgumentError("invalid hexData","value",i),t=2+2*t,e!=null?"0x"+i.substring(t,2+2*e):"0x"+i.substring(t)}function di(i,t){for(typeof i!="string"?i=nr(i):vr(i)||Se.throwArgumentError("invalid hex string","value",i),i.length>2*t+2&&Se.throwArgumentError("value out of range","value",arguments[1]);i.length<2*t+2;)i="0x0"+i.substring(2);return i}function Rp(i){const t={r:"0x",s:"0x",_vs:"0x",recoveryParam:0,v:0,yParityAndS:"0x",compact:"0x"};if(hb(i)){let e=Ae(i);e.length===64?(t.v=27+(e[32]>>7),e[32]&=127,t.r=nr(e.slice(0,32)),t.s=nr(e.slice(32,64))):e.length===65?(t.r=nr(e.slice(0,32)),t.s=nr(e.slice(32,64)),t.v=e[64]):Se.throwArgumentError("invalid signature string","signature",i),t.v<27&&(t.v===0||t.v===1?t.v+=27:Se.throwArgumentError("signature invalid v byte","signature",i)),t.recoveryParam=1-t.v%2,t.recoveryParam&&(e[32]|=128),t._vs=nr(e.slice(32,64))}else{if(t.r=i.r,t.s=i.s,t.v=i.v,t.recoveryParam=i.recoveryParam,t._vs=i._vs,t._vs!=null){const o=lb(Ae(t._vs),32);t._vs=nr(o);const a=o[0]>=128?1:0;t.recoveryParam==null?t.recoveryParam=a:t.recoveryParam!==a&&Se.throwArgumentError("signature recoveryParam mismatch _vs","signature",i),o[0]&=127;const h=nr(o);t.s==null?t.s=h:t.s!==h&&Se.throwArgumentError("signature v mismatch _vs","signature",i)}if(t.recoveryParam==null)t.v==null?Se.throwArgumentError("signature missing v and recoveryParam","signature",i):t.v===0||t.v===1?t.recoveryParam=t.v:t.recoveryParam=1-t.v%2;else if(t.v==null)t.v=27+t.recoveryParam;else{const o=t.v===0||t.v===1?t.v:1-t.v%2;t.recoveryParam!==o&&Se.throwArgumentError("signature recoveryParam mismatch v","signature",i)}t.r==null||!vr(t.r)?Se.throwArgumentError("signature missing or invalid r","signature",i):t.r=di(t.r,32),t.s==null||!vr(t.s)?Se.throwArgumentError("signature missing or invalid s","signature",i):t.s=di(t.s,32);const e=Ae(t.s);e[0]>=128&&Se.throwArgumentError("signature s out of range","signature",i),t.recoveryParam&&(e[0]|=128);const s=nr(e);t._vs&&(vr(t._vs)||Se.throwArgumentError("signature invalid _vs","signature",i),t._vs=di(t._vs,32)),t._vs==null?t._vs=s:t._vs!==s&&Se.throwArgumentError("signature _vs mismatch v and s","signature",i)}return t.yParityAndS=t._vs,t.compact=t.r+t.yParityAndS.substring(2),t}function fh(i){return"0x"+nb.keccak_256(Ae(i))}var Np={exports:{}},pb={},db=Object.freeze({__proto__:null,default:pb}),gb=sb(db);(function(i){(function(t,e){function s(u,d){if(!u)throw new Error(d||"Assertion failed")}function o(u,d){u.super_=d;var b=function(){};b.prototype=d.prototype,u.prototype=new b,u.prototype.constructor=u}function a(u,d,b){if(a.isBN(u))return u;this.negative=0,this.words=null,this.length=0,this.red=null,u!==null&&((d==="le"||d==="be")&&(b=d,d=10),this._init(u||0,d||10,b||"be"))}typeof t=="object"?t.exports=a:e.BN=a,a.BN=a,a.wordSize=26;var h;try{typeof window<"u"&&typeof window.Buffer<"u"?h=window.Buffer:h=gb.Buffer}catch{}a.isBN=function(u){return u instanceof a?!0:u!==null&&typeof u=="object"&&u.constructor.wordSize===a.wordSize&&Array.isArray(u.words)},a.max=function(u,d){return u.cmp(d)>0?u:d},a.min=function(u,d){return u.cmp(d)<0?u:d},a.prototype._init=function(u,d,b){if(typeof u=="number")return this._initNumber(u,d,b);if(typeof u=="object")return this._initArray(u,d,b);d==="hex"&&(d=16),s(d===(d|0)&&d>=2&&d<=36),u=u.toString().replace(/\s+/g,"");var I=0;u[0]==="-"&&(I++,this.negative=1),I<u.length&&(d===16?this._parseHex(u,I,b):(this._parseBase(u,d,I),b==="le"&&this._initArray(this.toArray(),d,b)))},a.prototype._initNumber=function(u,d,b){u<0&&(this.negative=1,u=-u),u<67108864?(this.words=[u&67108863],this.length=1):u<4503599627370496?(this.words=[u&67108863,u/67108864&67108863],this.length=2):(s(u<9007199254740992),this.words=[u&67108863,u/67108864&67108863,1],this.length=3),b==="le"&&this._initArray(this.toArray(),d,b)},a.prototype._initArray=function(u,d,b){if(s(typeof u.length=="number"),u.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(u.length/3),this.words=new Array(this.length);for(var I=0;I<this.length;I++)this.words[I]=0;var C,N,q=0;if(b==="be")for(I=u.length-1,C=0;I>=0;I-=3)N=u[I]|u[I-1]<<8|u[I-2]<<16,this.words[C]|=N<<q&67108863,this.words[C+1]=N>>>26-q&67108863,q+=24,q>=26&&(q-=26,C++);else if(b==="le")for(I=0,C=0;I<u.length;I+=3)N=u[I]|u[I+1]<<8|u[I+2]<<16,this.words[C]|=N<<q&67108863,this.words[C+1]=N>>>26-q&67108863,q+=24,q>=26&&(q-=26,C++);return this._strip()};function p(u,d){var b=u.charCodeAt(d);if(b>=48&&b<=57)return b-48;if(b>=65&&b<=70)return b-55;if(b>=97&&b<=102)return b-87;s(!1,"Invalid character in "+u)}function v(u,d,b){var I=p(u,b);return b-1>=d&&(I|=p(u,b-1)<<4),I}a.prototype._parseHex=function(u,d,b){this.length=Math.ceil((u.length-d)/6),this.words=new Array(this.length);for(var I=0;I<this.length;I++)this.words[I]=0;var C=0,N=0,q;if(b==="be")for(I=u.length-1;I>=d;I-=2)q=v(u,d,I)<<C,this.words[N]|=q&67108863,C>=18?(C-=18,N+=1,this.words[N]|=q>>>26):C+=8;else{var S=u.length-d;for(I=S%2===0?d+1:d;I<u.length;I+=2)q=v(u,d,I)<<C,this.words[N]|=q&67108863,C>=18?(C-=18,N+=1,this.words[N]|=q>>>26):C+=8}this._strip()};function y(u,d,b,I){for(var C=0,N=0,q=Math.min(u.length,b),S=d;S<q;S++){var f=u.charCodeAt(S)-48;C*=I,f>=49?N=f-49+10:f>=17?N=f-17+10:N=f,s(f>=0&&N<I,"Invalid character"),C+=N}return C}a.prototype._parseBase=function(u,d,b){this.words=[0],this.length=1;for(var I=0,C=1;C<=67108863;C*=d)I++;I--,C=C/d|0;for(var N=u.length-b,q=N%I,S=Math.min(N,N-q)+b,f=0,E=b;E<S;E+=I)f=y(u,E,E+I,d),this.imuln(C),this.words[0]+f<67108864?this.words[0]+=f:this._iaddn(f);if(q!==0){var lt=1;for(f=y(u,E,u.length,d),E=0;E<q;E++)lt*=d;this.imuln(lt),this.words[0]+f<67108864?this.words[0]+=f:this._iaddn(f)}this._strip()},a.prototype.copy=function(u){u.words=new Array(this.length);for(var d=0;d<this.length;d++)u.words[d]=this.words[d];u.length=this.length,u.negative=this.negative,u.red=this.red};function M(u,d){u.words=d.words,u.length=d.length,u.negative=d.negative,u.red=d.red}if(a.prototype._move=function(u){M(u,this)},a.prototype.clone=function(){var u=new a(null);return this.copy(u),u},a.prototype._expand=function(u){for(;this.length<u;)this.words[this.length++]=0;return this},a.prototype._strip=function(){for(;this.length>1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},a.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},typeof Symbol<"u"&&typeof Symbol.for=="function")try{a.prototype[Symbol.for("nodejs.util.inspect.custom")]=P}catch{a.prototype.inspect=P}else a.prototype.inspect=P;function P(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"}var T=["","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"],D=[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],k=[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];a.prototype.toString=function(u,d){u=u||10,d=d|0||1;var b;if(u===16||u==="hex"){b="";for(var I=0,C=0,N=0;N<this.length;N++){var q=this.words[N],S=((q<<I|C)&16777215).toString(16);C=q>>>24-I&16777215,I+=2,I>=26&&(I-=26,N--),C!==0||N!==this.length-1?b=T[6-S.length]+S+b:b=S+b}for(C!==0&&(b=C.toString(16)+b);b.length%d!==0;)b="0"+b;return this.negative!==0&&(b="-"+b),b}if(u===(u|0)&&u>=2&&u<=36){var f=D[u],E=k[u];b="";var lt=this.clone();for(lt.negative=0;!lt.isZero();){var ot=lt.modrn(E).toString(u);lt=lt.idivn(E),lt.isZero()?b=ot+b:b=T[f-ot.length]+ot+b}for(this.isZero()&&(b="0"+b);b.length%d!==0;)b="0"+b;return this.negative!==0&&(b="-"+b),b}s(!1,"Base should be between 2 and 36")},a.prototype.toNumber=function(){var u=this.words[0];return this.length===2?u+=this.words[1]*67108864:this.length===3&&this.words[2]===1?u+=4503599627370496+this.words[1]*67108864:this.length>2&&s(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-u:u},a.prototype.toJSON=function(){return this.toString(16,2)},h&&(a.prototype.toBuffer=function(u,d){return this.toArrayLike(h,u,d)}),a.prototype.toArray=function(u,d){return this.toArrayLike(Array,u,d)};var H=function(u,d){return u.allocUnsafe?u.allocUnsafe(d):new u(d)};a.prototype.toArrayLike=function(u,d,b){this._strip();var I=this.byteLength(),C=b||Math.max(1,I);s(I<=C,"byte array longer than desired length"),s(C>0,"Requested array length <= 0");var N=H(u,C),q=d==="le"?"LE":"BE";return this["_toArrayLike"+q](N,I),N},a.prototype._toArrayLikeLE=function(u,d){for(var b=0,I=0,C=0,N=0;C<this.length;C++){var q=this.words[C]<<N|I;u[b++]=q&255,b<u.length&&(u[b++]=q>>8&255),b<u.length&&(u[b++]=q>>16&255),N===6?(b<u.length&&(u[b++]=q>>24&255),I=0,N=0):(I=q>>>24,N+=2)}if(b<u.length)for(u[b++]=I;b<u.length;)u[b++]=0},a.prototype._toArrayLikeBE=function(u,d){for(var b=u.length-1,I=0,C=0,N=0;C<this.length;C++){var q=this.words[C]<<N|I;u[b--]=q&255,b>=0&&(u[b--]=q>>8&255),b>=0&&(u[b--]=q>>16&255),N===6?(b>=0&&(u[b--]=q>>24&255),I=0,N=0):(I=q>>>24,N+=2)}if(b>=0)for(u[b--]=I;b>=0;)u[b--]=0},Math.clz32?a.prototype._countBits=function(u){return 32-Math.clz32(u)}:a.prototype._countBits=function(u){var d=u,b=0;return d>=4096&&(b+=13,d>>>=13),d>=64&&(b+=7,d>>>=7),d>=8&&(b+=4,d>>>=4),d>=2&&(b+=2,d>>>=2),b+d},a.prototype._zeroBits=function(u){if(u===0)return 26;var d=u,b=0;return d&8191||(b+=13,d>>>=13),d&127||(b+=7,d>>>=7),d&15||(b+=4,d>>>=4),d&3||(b+=2,d>>>=2),d&1||b++,b},a.prototype.bitLength=function(){var u=this.words[this.length-1],d=this._countBits(u);return(this.length-1)*26+d};function V(u){for(var d=new Array(u.bitLength()),b=0;b<d.length;b++){var I=b/26|0,C=b%26;d[b]=u.words[I]>>>C&1}return d}a.prototype.zeroBits=function(){if(this.isZero())return 0;for(var u=0,d=0;d<this.length;d++){var b=this._zeroBits(this.words[d]);if(u+=b,b!==26)break}return u},a.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},a.prototype.toTwos=function(u){return this.negative!==0?this.abs().inotn(u).iaddn(1):this.clone()},a.prototype.fromTwos=function(u){return this.testn(u-1)?this.notn(u).iaddn(1).ineg():this.clone()},a.prototype.isNeg=function(){return this.negative!==0},a.prototype.neg=function(){return this.clone().ineg()},a.prototype.ineg=function(){return this.isZero()||(this.negative^=1),this},a.prototype.iuor=function(u){for(;this.length<u.length;)this.words[this.length++]=0;for(var d=0;d<u.length;d++)this.words[d]=this.words[d]|u.words[d];return this._strip()},a.prototype.ior=function(u){return s((this.negative|u.negative)===0),this.iuor(u)},a.prototype.or=function(u){return this.length>u.length?this.clone().ior(u):u.clone().ior(this)},a.prototype.uor=function(u){return this.length>u.length?this.clone().iuor(u):u.clone().iuor(this)},a.prototype.iuand=function(u){var d;this.length>u.length?d=u:d=this;for(var b=0;b<d.length;b++)this.words[b]=this.words[b]&u.words[b];return this.length=d.length,this._strip()},a.prototype.iand=function(u){return s((this.negative|u.negative)===0),this.iuand(u)},a.prototype.and=function(u){return this.length>u.length?this.clone().iand(u):u.clone().iand(this)},a.prototype.uand=function(u){return this.length>u.length?this.clone().iuand(u):u.clone().iuand(this)},a.prototype.iuxor=function(u){var d,b;this.length>u.length?(d=this,b=u):(d=u,b=this);for(var I=0;I<b.length;I++)this.words[I]=d.words[I]^b.words[I];if(this!==d)for(;I<d.length;I++)this.words[I]=d.words[I];return this.length=d.length,this._strip()},a.prototype.ixor=function(u){return s((this.negative|u.negative)===0),this.iuxor(u)},a.prototype.xor=function(u){return this.length>u.length?this.clone().ixor(u):u.clone().ixor(this)},a.prototype.uxor=function(u){return this.length>u.length?this.clone().iuxor(u):u.clone().iuxor(this)},a.prototype.inotn=function(u){s(typeof u=="number"&&u>=0);var d=Math.ceil(u/26)|0,b=u%26;this._expand(d),b>0&&d--;for(var I=0;I<d;I++)this.words[I]=~this.words[I]&67108863;return b>0&&(this.words[I]=~this.words[I]&67108863>>26-b),this._strip()},a.prototype.notn=function(u){return this.clone().inotn(u)},a.prototype.setn=function(u,d){s(typeof u=="number"&&u>=0);var b=u/26|0,I=u%26;return this._expand(b+1),d?this.words[b]=this.words[b]|1<<I:this.words[b]=this.words[b]&~(1<<I),this._strip()},a.prototype.iadd=function(u){var d;if(this.negative!==0&&u.negative===0)return this.negative=0,d=this.isub(u),this.negative^=1,this._normSign();if(this.negative===0&&u.negative!==0)return u.negative=0,d=this.isub(u),u.negative=1,d._normSign();var b,I;this.length>u.length?(b=this,I=u):(b=u,I=this);for(var C=0,N=0;N<I.length;N++)d=(b.words[N]|0)+(I.words[N]|0)+C,this.words[N]=d&67108863,C=d>>>26;for(;C!==0&&N<b.length;N++)d=(b.words[N]|0)+C,this.words[N]=d&67108863,C=d>>>26;if(this.length=b.length,C!==0)this.words[this.length]=C,this.length++;else if(b!==this)for(;N<b.length;N++)this.words[N]=b.words[N];return this},a.prototype.add=function(u){var d;return u.negative!==0&&this.negative===0?(u.negative=0,d=this.sub(u),u.negative^=1,d):u.negative===0&&this.negative!==0?(this.negative=0,d=u.sub(this),this.negative=1,d):this.length>u.length?this.clone().iadd(u):u.clone().iadd(this)},a.prototype.isub=function(u){if(u.negative!==0){u.negative=0;var d=this.iadd(u);return u.negative=1,d._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(u),this.negative=1,this._normSign();var b=this.cmp(u);if(b===0)return this.negative=0,this.length=1,this.words[0]=0,this;var I,C;b>0?(I=this,C=u):(I=u,C=this);for(var N=0,q=0;q<C.length;q++)d=(I.words[q]|0)-(C.words[q]|0)+N,N=d>>26,this.words[q]=d&67108863;for(;N!==0&&q<I.length;q++)d=(I.words[q]|0)+N,N=d>>26,this.words[q]=d&67108863;if(N===0&&q<I.length&&I!==this)for(;q<I.length;q++)this.words[q]=I.words[q];return this.length=Math.max(this.length,q),I!==this&&(this.negative=1),this._strip()},a.prototype.sub=function(u){return this.clone().isub(u)};function Q(u,d,b){b.negative=d.negative^u.negative;var I=u.length+d.length|0;b.length=I,I=I-1|0;var C=u.words[0]|0,N=d.words[0]|0,q=C*N,S=q&67108863,f=q/67108864|0;b.words[0]=S;for(var E=1;E<I;E++){for(var lt=f>>>26,ot=f&67108863,m=Math.min(E,d.length-1),$=Math.max(0,E-u.length+1);$<=m;$++){var j=E-$|0;C=u.words[j]|0,N=d.words[$]|0,q=C*N+ot,lt+=q/67108864|0,ot=q&67108863}b.words[E]=ot|0,f=lt|0}return f!==0?b.words[E]=f|0:b.length--,b._strip()}var ht=function(u,d,b){var I=u.words,C=d.words,N=b.words,q=0,S,f,E,lt=I[0]|0,ot=lt&8191,m=lt>>>13,$=I[1]|0,j=$&8191,K=$>>>13,rt=I[2]|0,X=rt&8191,tt=rt>>>13,at=I[3]|0,mt=at&8191,Y=at>>>13,Ot=I[4]|0,Xt=Ot&8191,xt=Ot>>>13,Yr=I[5]|0,te=Yr&8191,Tt=Yr>>>13,Ce=I[6]|0,Ft=Ce&8191,Bt=Ce>>>13,_i=I[7]|0,Dt=_i&8191,ee=_i>>>13,hr=I[8]|0,Nt=hr&8191,$t=hr>>>13,Tr=I[9]|0,zt=Tr&8191,Lt=Tr>>>13,Fr=C[0]|0,Kt=Fr&8191,Ht=Fr>>>13,Dr=C[1]|0,Vt=Dr&8191,re=Dr>>>13,Ai=C[2]|0,ie=Ai&8191,Yt=Ai>>>13,Wr=C[3]|0,se=Wr&8191,ne=Wr>>>13,Ei=C[4]|0,oe=Ei&8191,Wt=Ei>>>13,Ii=C[5]|0,ae=Ii&8191,ce=Ii>>>13,qr=C[6]|0,he=qr&8191,Jt=qr>>>13,Si=C[7]|0,ue=Si&8191,le=Si>>>13,Pi=C[8]|0,fe=Pi&8191,pe=Pi>>>13,Mi=C[9]|0,de=Mi&8191,Zt=Mi>>>13;b.negative=u.negative^d.negative,b.length=19,S=Math.imul(ot,Kt),f=Math.imul(ot,Ht),f=f+Math.imul(m,Kt)|0,E=Math.imul(m,Ht);var Zr=(q+S|0)+((f&8191)<<13)|0;q=(E+(f>>>13)|0)+(Zr>>>26)|0,Zr&=67108863,S=Math.imul(j,Kt),f=Math.imul(j,Ht),f=f+Math.imul(K,Kt)|0,E=Math.imul(K,Ht),S=S+Math.imul(ot,Vt)|0,f=f+Math.imul(ot,re)|0,f=f+Math.imul(m,Vt)|0,E=E+Math.imul(m,re)|0;var Xr=(q+S|0)+((f&8191)<<13)|0;q=(E+(f>>>13)|0)+(Xr>>>26)|0,Xr&=67108863,S=Math.imul(X,Kt),f=Math.imul(X,Ht),f=f+Math.imul(tt,Kt)|0,E=Math.imul(tt,Ht),S=S+Math.imul(j,Vt)|0,f=f+Math.imul(j,re)|0,f=f+Math.imul(K,Vt)|0,E=E+Math.imul(K,re)|0,S=S+Math.imul(ot,ie)|0,f=f+Math.imul(ot,Yt)|0,f=f+Math.imul(m,ie)|0,E=E+Math.imul(m,Yt)|0;var ti=(q+S|0)+((f&8191)<<13)|0;q=(E+(f>>>13)|0)+(ti>>>26)|0,ti&=67108863,S=Math.imul(mt,Kt),f=Math.imul(mt,Ht),f=f+Math.imul(Y,Kt)|0,E=Math.imul(Y,Ht),S=S+Math.imul(X,Vt)|0,f=f+Math.imul(X,re)|0,f=f+Math.imul(tt,Vt)|0,E=E+Math.imul(tt,re)|0,S=S+Math.imul(j,ie)|0,f=f+Math.imul(j,Yt)|0,f=f+Math.imul(K,ie)|0,E=E+Math.imul(K,Yt)|0,S=S+Math.imul(ot,se)|0,f=f+Math.imul(ot,ne)|0,f=f+Math.imul(m,se)|0,E=E+Math.imul(m,ne)|0;var ei=(q+S|0)+((f&8191)<<13)|0;q=(E+(f>>>13)|0)+(ei>>>26)|0,ei&=67108863,S=Math.imul(Xt,Kt),f=Math.imul(Xt,Ht),f=f+Math.imul(xt,Kt)|0,E=Math.imul(xt,Ht),S=S+Math.imul(mt,Vt)|0,f=f+Math.imul(mt,re)|0,f=f+Math.imul(Y,Vt)|0,E=E+Math.imul(Y,re)|0,S=S+Math.imul(X,ie)|0,f=f+Math.imul(X,Yt)|0,f=f+Math.imul(tt,ie)|0,E=E+Math.imul(tt,Yt)|0,S=S+Math.imul(j,se)|0,f=f+Math.imul(j,ne)|0,f=f+Math.imul(K,se)|0,E=E+Math.imul(K,ne)|0,S=S+Math.imul(ot,oe)|0,f=f+Math.imul(ot,Wt)|0,f=f+Math.imul(m,oe)|0,E=E+Math.imul(m,Wt)|0;var ri=(q+S|0)+((f&8191)<<13)|0;q=(E+(f>>>13)|0)+(ri>>>26)|0,ri&=67108863,S=Math.imul(te,Kt),f=Math.imul(te,Ht),f=f+Math.imul(Tt,Kt)|0,E=Math.imul(Tt,Ht),S=S+Math.imul(Xt,Vt)|0,f=f+Math.imul(Xt,re)|0,f=f+Math.imul(xt,Vt)|0,E=E+Math.imul(xt,re)|0,S=S+Math.imul(mt,ie)|0,f=f+Math.imul(mt,Yt)|0,f=f+Math.imul(Y,ie)|0,E=E+Math.imul(Y,Yt)|0,S=S+Math.imul(X,se)|0,f=f+Math.imul(X,ne)|0,f=f+Math.imul(tt,se)|0,E=E+Math.imul(tt,ne)|0,S=S+Math.imul(j,oe)|0,f=f+Math.imul(j,Wt)|0,f=f+Math.imul(K,oe)|0,E=E+Math.imul(K,Wt)|0,S=S+Math.imul(ot,ae)|0,f=f+Math.imul(ot,ce)|0,f=f+Math.imul(m,ae)|0,E=E+Math.imul(m,ce)|0;var ii=(q+S|0)+((f&8191)<<13)|0;q=(E+(f>>>13)|0)+(ii>>>26)|0,ii&=67108863,S=Math.imul(Ft,Kt),f=Math.imul(Ft,Ht),f=f+Math.imul(Bt,Kt)|0,E=Math.imul(Bt,Ht),S=S+Math.imul(te,Vt)|0,f=f+Math.imul(te,re)|0,f=f+Math.imul(Tt,Vt)|0,E=E+Math.imul(Tt,re)|0,S=S+Math.imul(Xt,ie)|0,f=f+Math.imul(Xt,Yt)|0,f=f+Math.imul(xt,ie)|0,E=E+Math.imul(xt,Yt)|0,S=S+Math.imul(mt,se)|0,f=f+Math.imul(mt,ne)|0,f=f+Math.imul(Y,se)|0,E=E+Math.imul(Y,ne)|0,S=S+Math.imul(X,oe)|0,f=f+Math.imul(X,Wt)|0,f=f+Math.imul(tt,oe)|0,E=E+Math.imul(tt,Wt)|0,S=S+Math.imul(j,ae)|0,f=f+Math.imul(j,ce)|0,f=f+Math.imul(K,ae)|0,E=E+Math.imul(K,ce)|0,S=S+Math.imul(ot,he)|0,f=f+Math.imul(ot,Jt)|0,f=f+Math.imul(m,he)|0,E=E+Math.imul(m,Jt)|0;var Ki=(q+S|0)+((f&8191)<<13)|0;q=(E+(f>>>13)|0)+(Ki>>>26)|0,Ki&=67108863,S=Math.imul(Dt,Kt),f=Math.imul(Dt,Ht),f=f+Math.imul(ee,Kt)|0,E=Math.imul(ee,Ht),S=S+Math.imul(Ft,Vt)|0,f=f+Math.imul(Ft,re)|0,f=f+Math.imul(Bt,Vt)|0,E=E+Math.imul(Bt,re)|0,S=S+Math.imul(te,ie)|0,f=f+Math.imul(te,Yt)|0,f=f+Math.imul(Tt,ie)|0,E=E+Math.imul(Tt,Yt)|0,S=S+Math.imul(Xt,se)|0,f=f+Math.imul(Xt,ne)|0,f=f+Math.imul(xt,se)|0,E=E+Math.imul(xt,ne)|0,S=S+Math.imul(mt,oe)|0,f=f+Math.imul(mt,Wt)|0,f=f+Math.imul(Y,oe)|0,E=E+Math.imul(Y,Wt)|0,S=S+Math.imul(X,ae)|0,f=f+Math.imul(X,ce)|0,f=f+Math.imul(tt,ae)|0,E=E+Math.imul(tt,ce)|0,S=S+Math.imul(j,he)|0,f=f+Math.imul(j,Jt)|0,f=f+Math.imul(K,he)|0,E=E+Math.imul(K,Jt)|0,S=S+Math.imul(ot,ue)|0,f=f+Math.imul(ot,le)|0,f=f+Math.imul(m,ue)|0,E=E+Math.imul(m,le)|0;var on=(q+S|0)+((f&8191)<<13)|0;q=(E+(f>>>13)|0)+(on>>>26)|0,on&=67108863,S=Math.imul(Nt,Kt),f=Math.imul(Nt,Ht),f=f+Math.imul($t,Kt)|0,E=Math.imul($t,Ht),S=S+Math.imul(Dt,Vt)|0,f=f+Math.imul(Dt,re)|0,f=f+Math.imul(ee,Vt)|0,E=E+Math.imul(ee,re)|0,S=S+Math.imul(Ft,ie)|0,f=f+Math.imul(Ft,Yt)|0,f=f+Math.imul(Bt,ie)|0,E=E+Math.imul(Bt,Yt)|0,S=S+Math.imul(te,se)|0,f=f+Math.imul(te,ne)|0,f=f+Math.imul(Tt,se)|0,E=E+Math.imul(Tt,ne)|0,S=S+Math.imul(Xt,oe)|0,f=f+Math.imul(Xt,Wt)|0,f=f+Math.imul(xt,oe)|0,E=E+Math.imul(xt,Wt)|0,S=S+Math.imul(mt,ae)|0,f=f+Math.imul(mt,ce)|0,f=f+Math.imul(Y,ae)|0,E=E+Math.imul(Y,ce)|0,S=S+Math.imul(X,he)|0,f=f+Math.imul(X,Jt)|0,f=f+Math.imul(tt,he)|0,E=E+Math.imul(tt,Jt)|0,S=S+Math.imul(j,ue)|0,f=f+Math.imul(j,le)|0,f=f+Math.imul(K,ue)|0,E=E+Math.imul(K,le)|0,S=S+Math.imul(ot,fe)|0,f=f+Math.imul(ot,pe)|0,f=f+Math.imul(m,fe)|0,E=E+Math.imul(m,pe)|0;var Hi=(q+S|0)+((f&8191)<<13)|0;q=(E+(f>>>13)|0)+(Hi>>>26)|0,Hi&=67108863,S=Math.imul(zt,Kt),f=Math.imul(zt,Ht),f=f+Math.imul(Lt,Kt)|0,E=Math.imul(Lt,Ht),S=S+Math.imul(Nt,Vt)|0,f=f+Math.imul(Nt,re)|0,f=f+Math.imul($t,Vt)|0,E=E+Math.imul($t,re)|0,S=S+Math.imul(Dt,ie)|0,f=f+Math.imul(Dt,Yt)|0,f=f+Math.imul(ee,ie)|0,E=E+Math.imul(ee,Yt)|0,S=S+Math.imul(Ft,se)|0,f=f+Math.imul(Ft,ne)|0,f=f+Math.imul(Bt,se)|0,E=E+Math.imul(Bt,ne)|0,S=S+Math.imul(te,oe)|0,f=f+Math.imul(te,Wt)|0,f=f+Math.imul(Tt,oe)|0,E=E+Math.imul(Tt,Wt)|0,S=S+Math.imul(Xt,ae)|0,f=f+Math.imul(Xt,ce)|0,f=f+Math.imul(xt,ae)|0,E=E+Math.imul(xt,ce)|0,S=S+Math.imul(mt,he)|0,f=f+Math.imul(mt,Jt)|0,f=f+Math.imul(Y,he)|0,E=E+Math.imul(Y,Jt)|0,S=S+Math.imul(X,ue)|0,f=f+Math.imul(X,le)|0,f=f+Math.imul(tt,ue)|0,E=E+Math.imul(tt,le)|0,S=S+Math.imul(j,fe)|0,f=f+Math.imul(j,pe)|0,f=f+Math.imul(K,fe)|0,E=E+Math.imul(K,pe)|0,S=S+Math.imul(ot,de)|0,f=f+Math.imul(ot,Zt)|0,f=f+Math.imul(m,de)|0,E=E+Math.imul(m,Zt)|0;var an=(q+S|0)+((f&8191)<<13)|0;q=(E+(f>>>13)|0)+(an>>>26)|0,an&=67108863,S=Math.imul(zt,Vt),f=Math.imul(zt,re),f=f+Math.imul(Lt,Vt)|0,E=Math.imul(Lt,re),S=S+Math.imul(Nt,ie)|0,f=f+Math.imul(Nt,Yt)|0,f=f+Math.imul($t,ie)|0,E=E+Math.imul($t,Yt)|0,S=S+Math.imul(Dt,se)|0,f=f+Math.imul(Dt,ne)|0,f=f+Math.imul(ee,se)|0,E=E+Math.imul(ee,ne)|0,S=S+Math.imul(Ft,oe)|0,f=f+Math.imul(Ft,Wt)|0,f=f+Math.imul(Bt,oe)|0,E=E+Math.imul(Bt,Wt)|0,S=S+Math.imul(te,ae)|0,f=f+Math.imul(te,ce)|0,f=f+Math.imul(Tt,ae)|0,E=E+Math.imul(Tt,ce)|0,S=S+Math.imul(Xt,he)|0,f=f+Math.imul(Xt,Jt)|0,f=f+Math.imul(xt,he)|0,E=E+Math.imul(xt,Jt)|0,S=S+Math.imul(mt,ue)|0,f=f+Math.imul(mt,le)|0,f=f+Math.imul(Y,ue)|0,E=E+Math.imul(Y,le)|0,S=S+Math.imul(X,fe)|0,f=f+Math.imul(X,pe)|0,f=f+Math.imul(tt,fe)|0,E=E+Math.imul(tt,pe)|0,S=S+Math.imul(j,de)|0,f=f+Math.imul(j,Zt)|0,f=f+Math.imul(K,de)|0,E=E+Math.imul(K,Zt)|0;var cn=(q+S|0)+((f&8191)<<13)|0;q=(E+(f>>>13)|0)+(cn>>>26)|0,cn&=67108863,S=Math.imul(zt,ie),f=Math.imul(zt,Yt),f=f+Math.imul(Lt,ie)|0,E=Math.imul(Lt,Yt),S=S+Math.imul(Nt,se)|0,f=f+Math.imul(Nt,ne)|0,f=f+Math.imul($t,se)|0,E=E+Math.imul($t,ne)|0,S=S+Math.imul(Dt,oe)|0,f=f+Math.imul(Dt,Wt)|0,f=f+Math.imul(ee,oe)|0,E=E+Math.imul(ee,Wt)|0,S=S+Math.imul(Ft,ae)|0,f=f+Math.imul(Ft,ce)|0,f=f+Math.imul(Bt,ae)|0,E=E+Math.imul(Bt,ce)|0,S=S+Math.imul(te,he)|0,f=f+Math.imul(te,Jt)|0,f=f+Math.imul(Tt,he)|0,E=E+Math.imul(Tt,Jt)|0,S=S+Math.imul(Xt,ue)|0,f=f+Math.imul(Xt,le)|0,f=f+Math.imul(xt,ue)|0,E=E+Math.imul(xt,le)|0,S=S+Math.imul(mt,fe)|0,f=f+Math.imul(mt,pe)|0,f=f+Math.imul(Y,fe)|0,E=E+Math.imul(Y,pe)|0,S=S+Math.imul(X,de)|0,f=f+Math.imul(X,Zt)|0,f=f+Math.imul(tt,de)|0,E=E+Math.imul(tt,Zt)|0;var hn=(q+S|0)+((f&8191)<<13)|0;q=(E+(f>>>13)|0)+(hn>>>26)|0,hn&=67108863,S=Math.imul(zt,se),f=Math.imul(zt,ne),f=f+Math.imul(Lt,se)|0,E=Math.imul(Lt,ne),S=S+Math.imul(Nt,oe)|0,f=f+Math.imul(Nt,Wt)|0,f=f+Math.imul($t,oe)|0,E=E+Math.imul($t,Wt)|0,S=S+Math.imul(Dt,ae)|0,f=f+Math.imul(Dt,ce)|0,f=f+Math.imul(ee,ae)|0,E=E+Math.imul(ee,ce)|0,S=S+Math.imul(Ft,he)|0,f=f+Math.imul(Ft,Jt)|0,f=f+Math.imul(Bt,he)|0,E=E+Math.imul(Bt,Jt)|0,S=S+Math.imul(te,ue)|0,f=f+Math.imul(te,le)|0,f=f+Math.imul(Tt,ue)|0,E=E+Math.imul(Tt,le)|0,S=S+Math.imul(Xt,fe)|0,f=f+Math.imul(Xt,pe)|0,f=f+Math.imul(xt,fe)|0,E=E+Math.imul(xt,pe)|0,S=S+Math.imul(mt,de)|0,f=f+Math.imul(mt,Zt)|0,f=f+Math.imul(Y,de)|0,E=E+Math.imul(Y,Zt)|0;var Ps=(q+S|0)+((f&8191)<<13)|0;q=(E+(f>>>13)|0)+(Ps>>>26)|0,Ps&=67108863,S=Math.imul(zt,oe),f=Math.imul(zt,Wt),f=f+Math.imul(Lt,oe)|0,E=Math.imul(Lt,Wt),S=S+Math.imul(Nt,ae)|0,f=f+Math.imul(Nt,ce)|0,f=f+Math.imul($t,ae)|0,E=E+Math.imul($t,ce)|0,S=S+Math.imul(Dt,he)|0,f=f+Math.imul(Dt,Jt)|0,f=f+Math.imul(ee,he)|0,E=E+Math.imul(ee,Jt)|0,S=S+Math.imul(Ft,ue)|0,f=f+Math.imul(Ft,le)|0,f=f+Math.imul(Bt,ue)|0,E=E+Math.imul(Bt,le)|0,S=S+Math.imul(te,fe)|0,f=f+Math.imul(te,pe)|0,f=f+Math.imul(Tt,fe)|0,E=E+Math.imul(Tt,pe)|0,S=S+Math.imul(Xt,de)|0,f=f+Math.imul(Xt,Zt)|0,f=f+Math.imul(xt,de)|0,E=E+Math.imul(xt,Zt)|0;var Ms=(q+S|0)+((f&8191)<<13)|0;q=(E+(f>>>13)|0)+(Ms>>>26)|0,Ms&=67108863,S=Math.imul(zt,ae),f=Math.imul(zt,ce),f=f+Math.imul(Lt,ae)|0,E=Math.imul(Lt,ce),S=S+Math.imul(Nt,he)|0,f=f+Math.imul(Nt,Jt)|0,f=f+Math.imul($t,he)|0,E=E+Math.imul($t,Jt)|0,S=S+Math.imul(Dt,ue)|0,f=f+Math.imul(Dt,le)|0,f=f+Math.imul(ee,ue)|0,E=E+Math.imul(ee,le)|0,S=S+Math.imul(Ft,fe)|0,f=f+Math.imul(Ft,pe)|0,f=f+Math.imul(Bt,fe)|0,E=E+Math.imul(Bt,pe)|0,S=S+Math.imul(te,de)|0,f=f+Math.imul(te,Zt)|0,f=f+Math.imul(Tt,de)|0,E=E+Math.imul(Tt,Zt)|0;var Cs=(q+S|0)+((f&8191)<<13)|0;q=(E+(f>>>13)|0)+(Cs>>>26)|0,Cs&=67108863,S=Math.imul(zt,he),f=Math.imul(zt,Jt),f=f+Math.imul(Lt,he)|0,E=Math.imul(Lt,Jt),S=S+Math.imul(Nt,ue)|0,f=f+Math.imul(Nt,le)|0,f=f+Math.imul($t,ue)|0,E=E+Math.imul($t,le)|0,S=S+Math.imul(Dt,fe)|0,f=f+Math.imul(Dt,pe)|0,f=f+Math.imul(ee,fe)|0,E=E+Math.imul(ee,pe)|0,S=S+Math.imul(Ft,de)|0,f=f+Math.imul(Ft,Zt)|0,f=f+Math.imul(Bt,de)|0,E=E+Math.imul(Bt,Zt)|0;var un=(q+S|0)+((f&8191)<<13)|0;q=(E+(f>>>13)|0)+(un>>>26)|0,un&=67108863,S=Math.imul(zt,ue),f=Math.imul(zt,le),f=f+Math.imul(Lt,ue)|0,E=Math.imul(Lt,le),S=S+Math.imul(Nt,fe)|0,f=f+Math.imul(Nt,pe)|0,f=f+Math.imul($t,fe)|0,E=E+Math.imul($t,pe)|0,S=S+Math.imul(Dt,de)|0,f=f+Math.imul(Dt,Zt)|0,f=f+Math.imul(ee,de)|0,E=E+Math.imul(ee,Zt)|0;var ln=(q+S|0)+((f&8191)<<13)|0;q=(E+(f>>>13)|0)+(ln>>>26)|0,ln&=67108863,S=Math.imul(zt,fe),f=Math.imul(zt,pe),f=f+Math.imul(Lt,fe)|0,E=Math.imul(Lt,pe),S=S+Math.imul(Nt,de)|0,f=f+Math.imul(Nt,Zt)|0,f=f+Math.imul($t,de)|0,E=E+Math.imul($t,Zt)|0;var fn=(q+S|0)+((f&8191)<<13)|0;q=(E+(f>>>13)|0)+(fn>>>26)|0,fn&=67108863,S=Math.imul(zt,de),f=Math.imul(zt,Zt),f=f+Math.imul(Lt,de)|0,E=Math.imul(Lt,Zt);var pn=(q+S|0)+((f&8191)<<13)|0;return q=(E+(f>>>13)|0)+(pn>>>26)|0,pn&=67108863,N[0]=Zr,N[1]=Xr,N[2]=ti,N[3]=ei,N[4]=ri,N[5]=ii,N[6]=Ki,N[7]=on,N[8]=Hi,N[9]=an,N[10]=cn,N[11]=hn,N[12]=Ps,N[13]=Ms,N[14]=Cs,N[15]=un,N[16]=ln,N[17]=fn,N[18]=pn,q!==0&&(N[19]=q,b.length++),b};Math.imul||(ht=Q);function ut(u,d,b){b.negative=d.negative^u.negative,b.length=u.length+d.length;for(var I=0,C=0,N=0;N<b.length-1;N++){var q=C;C=0;for(var S=I&67108863,f=Math.min(N,d.length-1),E=Math.max(0,N-u.length+1);E<=f;E++){var lt=N-E,ot=u.words[lt]|0,m=d.words[E]|0,$=ot*m,j=$&67108863;q=q+($/67108864|0)|0,j=j+S|0,S=j&67108863,q=q+(j>>>26)|0,C+=q>>>26,q&=67108863}b.words[N]=S,I=q,q=C}return I!==0?b.words[N]=I:b.length--,b._strip()}function W(u,d,b){return ut(u,d,b)}a.prototype.mulTo=function(u,d){var b,I=this.length+u.length;return this.length===10&&u.length===10?b=ht(this,u,d):I<63?b=Q(this,u,d):I<1024?b=ut(this,u,d):b=W(this,u,d),b},a.prototype.mul=function(u){var d=new a(null);return d.words=new Array(this.length+u.length),this.mulTo(u,d)},a.prototype.mulf=function(u){var d=new a(null);return d.words=new Array(this.length+u.length),W(this,u,d)},a.prototype.imul=function(u){return this.clone().mulTo(u,this)},a.prototype.imuln=function(u){var d=u<0;d&&(u=-u),s(typeof u=="number"),s(u<67108864);for(var b=0,I=0;I<this.length;I++){var C=(this.words[I]|0)*u,N=(C&67108863)+(b&67108863);b>>=26,b+=C/67108864|0,b+=N>>>26,this.words[I]=N&67108863}return b!==0&&(this.words[I]=b,this.length++),d?this.ineg():this},a.prototype.muln=function(u){return this.clone().imuln(u)},a.prototype.sqr=function(){return this.mul(this)},a.prototype.isqr=function(){return this.imul(this.clone())},a.prototype.pow=function(u){var d=V(u);if(d.length===0)return new a(1);for(var b=this,I=0;I<d.length&&d[I]===0;I++,b=b.sqr());if(++I<d.length)for(var C=b.sqr();I<d.length;I++,C=C.sqr())d[I]!==0&&(b=b.mul(C));return b},a.prototype.iushln=function(u){s(typeof u=="number"&&u>=0);var d=u%26,b=(u-d)/26,I=67108863>>>26-d<<26-d,C;if(d!==0){var N=0;for(C=0;C<this.length;C++){var q=this.words[C]&I,S=(this.words[C]|0)-q<<d;this.words[C]=S|N,N=q>>>26-d}N&&(this.words[C]=N,this.length++)}if(b!==0){for(C=this.length-1;C>=0;C--)this.words[C+b]=this.words[C];for(C=0;C<b;C++)this.words[C]=0;this.length+=b}return this._strip()},a.prototype.ishln=function(u){return s(this.negative===0),this.iushln(u)},a.prototype.iushrn=function(u,d,b){s(typeof u=="number"&&u>=0);var I;d?I=(d-d%26)/26:I=0;var C=u%26,N=Math.min((u-C)/26,this.length),q=67108863^67108863>>>C<<C,S=b;if(I-=N,I=Math.max(0,I),S){for(var f=0;f<N;f++)S.words[f]=this.words[f];S.length=N}if(N!==0)if(this.length>N)for(this.length-=N,f=0;f<this.length;f++)this.words[f]=this.words[f+N];else this.words[0]=0,this.length=1;var E=0;for(f=this.length-1;f>=0&&(E!==0||f>=I);f--){var lt=this.words[f]|0;this.words[f]=E<<26-C|lt>>>C,E=lt&q}return S&&E!==0&&(S.words[S.length++]=E),this.length===0&&(this.words[0]=0,this.length=1),this._strip()},a.prototype.ishrn=function(u,d,b){return s(this.negative===0),this.iushrn(u,d,b)},a.prototype.shln=function(u){return this.clone().ishln(u)},a.prototype.ushln=function(u){return this.clone().iushln(u)},a.prototype.shrn=function(u){return this.clone().ishrn(u)},a.prototype.ushrn=function(u){return this.clone().iushrn(u)},a.prototype.testn=function(u){s(typeof u=="number"&&u>=0);var d=u%26,b=(u-d)/26,I=1<<d;if(this.length<=b)return!1;var C=this.words[b];return!!(C&I)},a.prototype.imaskn=function(u){s(typeof u=="number"&&u>=0);var d=u%26,b=(u-d)/26;if(s(this.negative===0,"imaskn works only with positive numbers"),this.length<=b)return this;if(d!==0&&b++,this.length=Math.min(b,this.length),d!==0){var I=67108863^67108863>>>d<<d;this.words[this.length-1]&=I}return this._strip()},a.prototype.maskn=function(u){return this.clone().imaskn(u)},a.prototype.iaddn=function(u){return s(typeof u=="number"),s(u<67108864),u<0?this.isubn(-u):this.negative!==0?this.length===1&&(this.words[0]|0)<=u?(this.words[0]=u-(this.words[0]|0),this.negative=0,this):(this.negative=0,this.isubn(u),this.negative=1,this):this._iaddn(u)},a.prototype._iaddn=function(u){this.words[0]+=u;for(var d=0;d<this.length&&this.words[d]>=67108864;d++)this.words[d]-=67108864,d===this.length-1?this.words[d+1]=1:this.words[d+1]++;return this.length=Math.max(this.length,d+1),this},a.prototype.isubn=function(u){if(s(typeof u=="number"),s(u<67108864),u<0)return this.iaddn(-u);if(this.negative!==0)return this.negative=0,this.iaddn(u),this.negative=1,this;if(this.words[0]-=u,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var d=0;d<this.length&&this.words[d]<0;d++)this.words[d]+=67108864,this.words[d+1]-=1;return this._strip()},a.prototype.addn=function(u){return this.clone().iaddn(u)},a.prototype.subn=function(u){return this.clone().isubn(u)},a.prototype.iabs=function(){return this.negative=0,this},a.prototype.abs=function(){return this.clone().iabs()},a.prototype._ishlnsubmul=function(u,d,b){var I=u.length+b,C;this._expand(I);var N,q=0;for(C=0;C<u.length;C++){N=(this.words[C+b]|0)+q;var S=(u.words[C]|0)*d;N-=S&67108863,q=(N>>26)-(S/67108864|0),this.words[C+b]=N&67108863}for(;C<this.length-b;C++)N=(this.words[C+b]|0)+q,q=N>>26,this.words[C+b]=N&67108863;if(q===0)return this._strip();for(s(q===-1),q=0,C=0;C<this.length;C++)N=-(this.words[C]|0)+q,q=N>>26,this.words[C]=N&67108863;return this.negative=1,this._strip()},a.prototype._wordDiv=function(u,d){var b=this.length-u.length,I=this.clone(),C=u,N=C.words[C.length-1]|0,q=this._countBits(N);b=26-q,b!==0&&(C=C.ushln(b),I.iushln(b),N=C.words[C.length-1]|0);var S=I.length-C.length,f;if(d!=="mod"){f=new a(null),f.length=S+1,f.words=new Array(f.length);for(var E=0;E<f.length;E++)f.words[E]=0}var lt=I.clone()._ishlnsubmul(C,1,S);lt.negative===0&&(I=lt,f&&(f.words[S]=1));for(var ot=S-1;ot>=0;ot--){var m=(I.words[C.length+ot]|0)*67108864+(I.words[C.length+ot-1]|0);for(m=Math.min(m/N|0,67108863),I._ishlnsubmul(C,m,ot);I.negative!==0;)m--,I.negative=0,I._ishlnsubmul(C,1,ot),I.isZero()||(I.negative^=1);f&&(f.words[ot]=m)}return f&&f._strip(),I._strip(),d!=="div"&&b!==0&&I.iushrn(b),{div:f||null,mod:I}},a.prototype.divmod=function(u,d,b){if(s(!u.isZero()),this.isZero())return{div:new a(0),mod:new a(0)};var I,C,N;return this.negative!==0&&u.negative===0?(N=this.neg().divmod(u,d),d!=="mod"&&(I=N.div.neg()),d!=="div"&&(C=N.mod.neg(),b&&C.negative!==0&&C.iadd(u)),{div:I,mod:C}):this.negative===0&&u.negative!==0?(N=this.divmod(u.neg(),d),d!=="mod"&&(I=N.div.neg()),{div:I,mod:N.mod}):this.negative&u.negative?(N=this.neg().divmod(u.neg(),d),d!=="div"&&(C=N.mod.neg(),b&&C.negative!==0&&C.isub(u)),{div:N.div,mod:C}):u.length>this.length||this.cmp(u)<0?{div:new a(0),mod:this}:u.length===1?d==="div"?{div:this.divn(u.words[0]),mod:null}:d==="mod"?{div:null,mod:new a(this.modrn(u.words[0]))}:{div:this.divn(u.words[0]),mod:new a(this.modrn(u.words[0]))}:this._wordDiv(u,d)},a.prototype.div=function(u){return this.divmod(u,"div",!1).div},a.prototype.mod=function(u){return this.divmod(u,"mod",!1).mod},a.prototype.umod=function(u){return this.divmod(u,"mod",!0).mod},a.prototype.divRound=function(u){var d=this.divmod(u);if(d.mod.isZero())return d.div;var b=d.div.negative!==0?d.mod.isub(u):d.mod,I=u.ushrn(1),C=u.andln(1),N=b.cmp(I);return N<0||C===1&&N===0?d.div:d.div.negative!==0?d.div.isubn(1):d.div.iaddn(1)},a.prototype.modrn=function(u){var d=u<0;d&&(u=-u),s(u<=67108863);for(var b=(1<<26)%u,I=0,C=this.length-1;C>=0;C--)I=(b*I+(this.words[C]|0))%u;return d?-I:I},a.prototype.modn=function(u){return this.modrn(u)},a.prototype.idivn=function(u){var d=u<0;d&&(u=-u),s(u<=67108863);for(var b=0,I=this.length-1;I>=0;I--){var C=(this.words[I]|0)+b*67108864;this.words[I]=C/u|0,b=C%u}return this._strip(),d?this.ineg():this},a.prototype.divn=function(u){return this.clone().idivn(u)},a.prototype.egcd=function(u){s(u.negative===0),s(!u.isZero());var d=this,b=u.clone();d.negative!==0?d=d.umod(u):d=d.clone();for(var I=new a(1),C=new a(0),N=new a(0),q=new a(1),S=0;d.isEven()&&b.isEven();)d.iushrn(1),b.iushrn(1),++S;for(var f=b.clone(),E=d.clone();!d.isZero();){for(var lt=0,ot=1;!(d.words[0]&ot)&&lt<26;++lt,ot<<=1);if(lt>0)for(d.iushrn(lt);lt-- >0;)(I.isOdd()||C.isOdd())&&(I.iadd(f),C.isub(E)),I.iushrn(1),C.iushrn(1);for(var m=0,$=1;!(b.words[0]&$)&&m<26;++m,$<<=1);if(m>0)for(b.iushrn(m);m-- >0;)(N.isOdd()||q.isOdd())&&(N.iadd(f),q.isub(E)),N.iushrn(1),q.iushrn(1);d.cmp(b)>=0?(d.isub(b),I.isub(N),C.isub(q)):(b.isub(d),N.isub(I),q.isub(C))}return{a:N,b:q,gcd:b.iushln(S)}},a.prototype._invmp=function(u){s(u.negative===0),s(!u.isZero());var d=this,b=u.clone();d.negative!==0?d=d.umod(u):d=d.clone();for(var I=new a(1),C=new a(0),N=b.clone();d.cmpn(1)>0&&b.cmpn(1)>0;){for(var q=0,S=1;!(d.words[0]&S)&&q<26;++q,S<<=1);if(q>0)for(d.iushrn(q);q-- >0;)I.isOdd()&&I.iadd(N),I.iushrn(1);for(var f=0,E=1;!(b.words[0]&E)&&f<26;++f,E<<=1);if(f>0)for(b.iushrn(f);f-- >0;)C.isOdd()&&C.iadd(N),C.iushrn(1);d.cmp(b)>=0?(d.isub(b),I.isub(C)):(b.isub(d),C.isub(I))}var lt;return d.cmpn(1)===0?lt=I:lt=C,lt.cmpn(0)<0&&lt.iadd(u),lt},a.prototype.gcd=function(u){if(this.isZero())return u.abs();if(u.isZero())return this.abs();var d=this.clone(),b=u.clone();d.negative=0,b.negative=0;for(var I=0;d.isEven()&&b.isEven();I++)d.iushrn(1),b.iushrn(1);do{for(;d.isEven();)d.iushrn(1);for(;b.isEven();)b.iushrn(1);var C=d.cmp(b);if(C<0){var N=d;d=b,b=N}else if(C===0||b.cmpn(1)===0)break;d.isub(b)}while(!0);return b.iushln(I)},a.prototype.invm=function(u){return this.egcd(u).a.umod(u)},a.prototype.isEven=function(){return(this.words[0]&1)===0},a.prototype.isOdd=function(){return(this.words[0]&1)===1},a.prototype.andln=function(u){return this.words[0]&u},a.prototype.bincn=function(u){s(typeof u=="number");var d=u%26,b=(u-d)/26,I=1<<d;if(this.length<=b)return this._expand(b+1),this.words[b]|=I,this;for(var C=I,N=b;C!==0&&N<this.length;N++){var q=this.words[N]|0;q+=C,C=q>>>26,q&=67108863,this.words[N]=q}return C!==0&&(this.words[N]=C,this.length++),this},a.prototype.isZero=function(){return this.length===1&&this.words[0]===0},a.prototype.cmpn=function(u){var d=u<0;if(this.negative!==0&&!d)return-1;if(this.negative===0&&d)return 1;this._strip();var b;if(this.length>1)b=1;else{d&&(u=-u),s(u<=67108863,"Number is too big");var I=this.words[0]|0;b=I===u?0:I<u?-1:1}return this.negative!==0?-b|0:b},a.prototype.cmp=function(u){if(this.negative!==0&&u.negative===0)return-1;if(this.negative===0&&u.negative!==0)return 1;var d=this.ucmp(u);return this.negative!==0?-d|0:d},a.prototype.ucmp=function(u){if(this.length>u.length)return 1;if(this.length<u.length)return-1;for(var d=0,b=this.length-1;b>=0;b--){var I=this.words[b]|0,C=u.words[b]|0;if(I!==C){I<C?d=-1:I>C&&(d=1);break}}return d},a.prototype.gtn=function(u){return this.cmpn(u)===1},a.prototype.gt=function(u){return this.cmp(u)===1},a.prototype.gten=function(u){return this.cmpn(u)>=0},a.prototype.gte=function(u){return this.cmp(u)>=0},a.prototype.ltn=function(u){return this.cmpn(u)===-1},a.prototype.lt=function(u){return this.cmp(u)===-1},a.prototype.lten=function(u){return this.cmpn(u)<=0},a.prototype.lte=function(u){return this.cmp(u)<=0},a.prototype.eqn=function(u){return this.cmpn(u)===0},a.prototype.eq=function(u){return this.cmp(u)===0},a.red=function(u){return new Ct(u)},a.prototype.toRed=function(u){return s(!this.red,"Already a number in reduction context"),s(this.negative===0,"red works only with positives"),u.convertTo(this)._forceRed(u)},a.prototype.fromRed=function(){return s(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},a.prototype._forceRed=function(u){return this.red=u,this},a.prototype.forceRed=function(u){return s(!this.red,"Already a number in reduction context"),this._forceRed(u)},a.prototype.redAdd=function(u){return s(this.red,"redAdd works only with red numbers"),this.red.add(this,u)},a.prototype.redIAdd=function(u){return s(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,u)},a.prototype.redSub=function(u){return s(this.red,"redSub works only with red numbers"),this.red.sub(this,u)},a.prototype.redISub=function(u){return s(this.red,"redISub works only with red numbers"),this.red.isub(this,u)},a.prototype.redShl=function(u){return s(this.red,"redShl works only with red numbers"),this.red.shl(this,u)},a.prototype.redMul=function(u){return s(this.red,"redMul works only with red numbers"),this.red._verify2(this,u),this.red.mul(this,u)},a.prototype.redIMul=function(u){return s(this.red,"redMul works only with red numbers"),this.red._verify2(this,u),this.red.imul(this,u)},a.prototype.redSqr=function(){return s(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},a.prototype.redISqr=function(){return s(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},a.prototype.redSqrt=function(){return s(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},a.prototype.redInvm=function(){return s(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},a.prototype.redNeg=function(){return s(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},a.prototype.redPow=function(u){return s(this.red&&!u.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,u)};var et={k256:null,p224:null,p192:null,p25519:null};function ct(u,d){this.name=u,this.p=new a(d,16),this.n=this.p.bitLength(),this.k=new a(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}ct.prototype._tmp=function(){var u=new a(null);return u.words=new Array(Math.ceil(this.n/13)),u},ct.prototype.ireduce=function(u){var d=u,b;do this.split(d,this.tmp),d=this.imulK(d),d=d.iadd(this.tmp),b=d.bitLength();while(b>this.n);var I=b<this.n?-1:d.ucmp(this.p);return I===0?(d.words[0]=0,d.length=1):I>0?d.isub(this.p):d.strip!==void 0?d.strip():d._strip(),d},ct.prototype.split=function(u,d){u.iushrn(this.n,0,d)},ct.prototype.imulK=function(u){return u.imul(this.k)};function st(){ct.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}o(st,ct),st.prototype.split=function(u,d){for(var b=4194303,I=Math.min(u.length,9),C=0;C<I;C++)d.words[C]=u.words[C];if(d.length=I,u.length<=9){u.words[0]=0,u.length=1;return}var N=u.words[9];for(d.words[d.length++]=N&b,C=10;C<u.length;C++){var q=u.words[C]|0;u.words[C-10]=(q&b)<<4|N>>>22,N=q}N>>>=22,u.words[C-10]=N,N===0&&u.length>10?u.length-=10:u.length-=9},st.prototype.imulK=function(u){u.words[u.length]=0,u.words[u.length+1]=0,u.length+=2;for(var d=0,b=0;b<u.length;b++){var I=u.words[b]|0;d+=I*977,u.words[b]=d&67108863,d=I*64+(d/67108864|0)}return u.words[u.length-1]===0&&(u.length--,u.words[u.length-1]===0&&u.length--),u};function gt(){ct.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}o(gt,ct);function kt(){ct.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}o(kt,ct);function Te(){ct.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}o(Te,ct),Te.prototype.imulK=function(u){for(var d=0,b=0;b<u.length;b++){var I=(u.words[b]|0)*19+d,C=I&67108863;I>>>=26,u.words[b]=C,d=I}return d!==0&&(u.words[u.length++]=d),u},a._prime=function(u){if(et[u])return et[u];var d;if(u==="k256")d=new st;else if(u==="p224")d=new gt;else if(u==="p192")d=new kt;else if(u==="p25519")d=new Te;else throw new Error("Unknown prime "+u);return et[u]=d,d};function Ct(u){if(typeof u=="string"){var d=a._prime(u);this.m=d.p,this.prime=d}else s(u.gtn(1),"modulus must be greater than 1"),this.m=u,this.prime=null}Ct.prototype._verify1=function(u){s(u.negative===0,"red works only with positives"),s(u.red,"red works only with red numbers")},Ct.prototype._verify2=function(u,d){s((u.negative|d.negative)===0,"red works only with positives"),s(u.red&&u.red===d.red,"red works only with red numbers")},Ct.prototype.imod=function(u){return this.prime?this.prime.ireduce(u)._forceRed(this):(M(u,u.umod(this.m)._forceRed(this)),u)},Ct.prototype.neg=function(u){return u.isZero()?u.clone():this.m.sub(u)._forceRed(this)},Ct.prototype.add=function(u,d){this._verify2(u,d);var b=u.add(d);return b.cmp(this.m)>=0&&b.isub(this.m),b._forceRed(this)},Ct.prototype.iadd=function(u,d){this._verify2(u,d);var b=u.iadd(d);return b.cmp(this.m)>=0&&b.isub(this.m),b},Ct.prototype.sub=function(u,d){this._verify2(u,d);var b=u.sub(d);return b.cmpn(0)<0&&b.iadd(this.m),b._forceRed(this)},Ct.prototype.isub=function(u,d){this._verify2(u,d);var b=u.isub(d);return b.cmpn(0)<0&&b.iadd(this.m),b},Ct.prototype.shl=function(u,d){return this._verify1(u),this.imod(u.ushln(d))},Ct.prototype.imul=function(u,d){return this._verify2(u,d),this.imod(u.imul(d))},Ct.prototype.mul=function(u,d){return this._verify2(u,d),this.imod(u.mul(d))},Ct.prototype.isqr=function(u){return this.imul(u,u.clone())},Ct.prototype.sqr=function(u){return this.mul(u,u)},Ct.prototype.sqrt=function(u){if(u.isZero())return u.clone();var d=this.m.andln(3);if(s(d%2===1),d===3){var b=this.m.add(new a(1)).iushrn(2);return this.pow(u,b)}for(var I=this.m.subn(1),C=0;!I.isZero()&&I.andln(1)===0;)C++,I.iushrn(1);s(!I.isZero());var N=new a(1).toRed(this),q=N.redNeg(),S=this.m.subn(1).iushrn(1),f=this.m.bitLength();for(f=new a(2*f*f).toRed(this);this.pow(f,S).cmp(q)!==0;)f.redIAdd(q);for(var E=this.pow(f,I),lt=this.pow(u,I.addn(1).iushrn(1)),ot=this.pow(u,I),m=C;ot.cmp(N)!==0;){for(var $=ot,j=0;$.cmp(N)!==0;j++)$=$.redSqr();s(j<m);var K=this.pow(E,new a(1).iushln(m-j-1));lt=lt.redMul(K),E=K.redSqr(),ot=ot.redMul(E),m=j}return lt},Ct.prototype.invm=function(u){var d=u._invmp(this.m);return d.negative!==0?(d.negative=0,this.imod(d).redNeg()):this.imod(d)},Ct.prototype.pow=function(u,d){if(d.isZero())return new a(1).toRed(this);if(d.cmpn(1)===0)return u.clone();var b=4,I=new Array(1<<b);I[0]=new a(1).toRed(this),I[1]=u;for(var C=2;C<I.length;C++)I[C]=this.mul(I[C-1],u);var N=I[0],q=0,S=0,f=d.bitLength()%26;for(f===0&&(f=26),C=d.length-1;C>=0;C--){for(var E=d.words[C],lt=f-1;lt>=0;lt--){var ot=E>>lt&1;if(N!==I[0]&&(N=this.sqr(N)),ot===0&&q===0){S=0;continue}q<<=1,q|=ot,S++,!(S!==b&&(C!==0||lt!==0))&&(N=this.mul(N,I[q]),S=0,q=0)}f=26}return N},Ct.prototype.convertTo=function(u){var d=u.umod(this.m);return d===u?d.clone():d},Ct.prototype.convertFrom=function(u){var d=u.clone();return d.red=null,d},a.mont=function(u){return new Me(u)};function Me(u){Ct.call(this,u),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new a(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)}o(Me,Ct),Me.prototype.convertTo=function(u){return this.imod(u.ushln(this.shift))},Me.prototype.convertFrom=function(u){var d=this.imod(u.mul(this.rinv));return d.red=null,d},Me.prototype.imul=function(u,d){if(u.isZero()||d.isZero())return u.words[0]=0,u.length=1,u;var b=u.imul(d),I=b.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),C=b.isub(I).iushrn(this.shift),N=C;return C.cmp(this.m)>=0?N=C.isub(this.m):C.cmpn(0)<0&&(N=C.iadd(this.m)),N._forceRed(this)},Me.prototype.mul=function(u,d){if(u.isZero()||d.isZero())return new a(0)._forceRed(this);var b=u.mul(d),I=b.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),C=b.isub(I).iushrn(this.shift),N=C;return C.cmp(this.m)>=0?N=C.isub(this.m):C.cmpn(0)<0&&(N=C.iadd(this.m)),N._forceRed(this)},Me.prototype.invm=function(u){var d=this.imod(u._invmp(this.m).mul(this.r2));return d._forceRed(this)}})(i,Mp)})(Np);var wt=Np.exports;const Op="bignumber/5.7.0";var ia=wt.BN;const ji=new $e(Op),xc={},af=9007199254740991;function mb(i){return i!=null&&(Ze.isBigNumber(i)||typeof i=="number"&&i%1===0||typeof i=="string"&&!!i.match(/^-?[0-9]+$/)||vr(i)||typeof i=="bigint"||Xs(i))}let cf=!1,Ze=class Kr{constructor(t,e){t!==xc&&ji.throwError("cannot call constructor directly; use BigNumber.from",$e.errors.UNSUPPORTED_OPERATION,{operation:"new (BigNumber)"}),this._hex=e,this._isBigNumber=!0,Object.freeze(this)}fromTwos(t){return ir(Pt(this).fromTwos(t))}toTwos(t){return ir(Pt(this).toTwos(t))}abs(){return this._hex[0]==="-"?Kr.from(this._hex.substring(1)):this}add(t){return ir(Pt(this).add(Pt(t)))}sub(t){return ir(Pt(this).sub(Pt(t)))}div(t){return Kr.from(t).isZero()&&Mr("division-by-zero","div"),ir(Pt(this).div(Pt(t)))}mul(t){return ir(Pt(this).mul(Pt(t)))}mod(t){const e=Pt(t);return e.isNeg()&&Mr("division-by-zero","mod"),ir(Pt(this).umod(e))}pow(t){const e=Pt(t);return e.isNeg()&&Mr("negative-power","pow"),ir(Pt(this).pow(e))}and(t){const e=Pt(t);return(this.isNegative()||e.isNeg())&&Mr("unbound-bitwise-result","and"),ir(Pt(this).and(e))}or(t){const e=Pt(t);return(this.isNegative()||e.isNeg())&&Mr("unbound-bitwise-result","or"),ir(Pt(this).or(e))}xor(t){const e=Pt(t);return(this.isNegative()||e.isNeg())&&Mr("unbound-bitwise-result","xor"),ir(Pt(this).xor(e))}mask(t){return(this.isNegative()||t<0)&&Mr("negative-width","mask"),ir(Pt(this).maskn(t))}shl(t){return(this.isNegative()||t<0)&&Mr("negative-width","shl"),ir(Pt(this).shln(t))}shr(t){return(this.isNegative()||t<0)&&Mr("negative-width","shr"),ir(Pt(this).shrn(t))}eq(t){return Pt(this).eq(Pt(t))}lt(t){return Pt(this).lt(Pt(t))}lte(t){return Pt(this).lte(Pt(t))}gt(t){return Pt(this).gt(Pt(t))}gte(t){return Pt(this).gte(Pt(t))}isNegative(){return this._hex[0]==="-"}isZero(){return Pt(this).isZero()}toNumber(){try{return Pt(this).toNumber()}catch{Mr("overflow","toNumber",this.toString())}return null}toBigInt(){try{return BigInt(this.toString())}catch{}return ji.throwError("this platform does not support BigInt",$e.errors.UNSUPPORTED_OPERATION,{value:this.toString()})}toString(){return arguments.length>0&&(arguments[0]===10?cf||(cf=!0,ji.warn("BigNumber.toString does not accept any parameters; base-10 is assumed")):arguments[0]===16?ji.throwError("BigNumber.toString does not accept any parameters; use bigNumber.toHexString()",$e.errors.UNEXPECTED_ARGUMENT,{}):ji.throwError("BigNumber.toString does not accept parameters",$e.errors.UNEXPECTED_ARGUMENT,{})),Pt(this).toString(10)}toHexString(){return this._hex}toJSON(t){return{type:"BigNumber",hex:this.toHexString()}}static from(t){if(t instanceof Kr)return t;if(typeof t=="string")return t.match(/^-?0x[0-9a-f]+$/i)?new Kr(xc,Vn(t)):t.match(/^-?[0-9]+$/)?new Kr(xc,Vn(new ia(t))):ji.throwArgumentError("invalid BigNumber string","value",t);if(typeof t=="number")return t%1&&Mr("underflow","BigNumber.from",t),(t>=af||t<=-af)&&Mr("overflow","BigNumber.from",t),Kr.from(String(t));const e=t;if(typeof e=="bigint")return Kr.from(e.toString());if(Xs(e))return Kr.from(nr(e));if(e)if(e.toHexString){const s=e.toHexString();if(typeof s=="string")return Kr.from(s)}else{let s=e._hex;if(s==null&&e.type==="BigNumber"&&(s=e.hex),typeof s=="string"&&(vr(s)||s[0]==="-"&&vr(s.substring(1))))return Kr.from(s)}return ji.throwArgumentError("invalid BigNumber value","value",t)}static isBigNumber(t){return!!(t&&t._isBigNumber)}};function Vn(i){if(typeof i!="string")return Vn(i.toString(16));if(i[0]==="-")return i=i.substring(1),i[0]==="-"&&ji.throwArgumentError("invalid hex","value",i),i=Vn(i),i==="0x00"?i:"-"+i;if(i.substring(0,2)!=="0x"&&(i="0x"+i),i==="0x")return"0x00";for(i.length%2&&(i="0x0"+i.substring(2));i.length>4&&i.substring(0,4)==="0x00";)i="0x"+i.substring(4);return i}function ir(i){return Ze.from(Vn(i))}function Pt(i){const t=Ze.from(i).toHexString();return t[0]==="-"?new ia("-"+t.substring(3),16):new ia(t.substring(2),16)}function Mr(i,t,e){const s={fault:i,operation:t};return e!=null&&(s.value=e),ji.throwError(i,$e.errors.NUMERIC_FAULT,s)}function vb(i){return new ia(i,36).toString(16)}const Ye=new $e(Op),zn={},Tp=Ze.from(0),Fp=Ze.from(-1);function Dp(i,t,e,s){const o={fault:t,operation:e};return s!==void 0&&(o.value=s),Ye.throwError(i,$e.errors.NUMERIC_FAULT,o)}let Ln="0";for(;Ln.length<256;)Ln+=Ln;function ph(i){if(typeof i!="number")try{i=Ze.from(i).toNumber()}catch{}return typeof i=="number"&&i>=0&&i<=256&&!(i%1)?"1"+Ln.substring(0,i):Ye.throwArgumentError("invalid decimal size","decimals",i)}function Rc(i,t){t==null&&(t=0);const e=ph(t);i=Ze.from(i);const s=i.lt(Tp);s&&(i=i.mul(Fp));let o=i.mod(e).toString();for(;o.length<e.length-1;)o="0"+o;o=o.match(/^([0-9]*[1-9]|0)(0*)/)[1];const a=i.div(e).toString();return e.length===1?i=a:i=a+"."+o,s&&(i="-"+i),i}function ki(i,t){t==null&&(t=0);const e=ph(t);(typeof i!="string"||!i.match(/^-?[0-9.]+$/))&&Ye.throwArgumentError("invalid decimal value","value",i);const s=i.substring(0,1)==="-";s&&(i=i.substring(1)),i==="."&&Ye.throwArgumentError("missing value","value",i);const o=i.split(".");o.length>2&&Ye.throwArgumentError("too many decimal points","value",i);let a=o[0],h=o[1];for(a||(a="0"),h||(h="0");h[h.length-1]==="0";)h=h.substring(0,h.length-1);for(h.length>e.length-1&&Dp("fractional component exceeds decimals","underflow","parseFixed"),h===""&&(h="0");h.length<e.length-1;)h+="0";const p=Ze.from(a),v=Ze.from(h);let y=p.mul(e).add(v);return s&&(y=y.mul(Fp)),y}let Nc=class th{constructor(t,e,s,o){t!==zn&&Ye.throwError("cannot use FixedFormat constructor; use FixedFormat.from",$e.errors.UNSUPPORTED_OPERATION,{operation:"new FixedFormat"}),this.signed=e,this.width=s,this.decimals=o,this.name=(e?"":"u")+"fixed"+String(s)+"x"+String(o),this._multiplier=ph(o),Object.freeze(this)}static from(t){if(t instanceof th)return t;typeof t=="number"&&(t=`fixed128x${t}`);let e=!0,s=128,o=18;if(typeof t=="string"){if(t!=="fixed")if(t==="ufixed")e=!1;else{const a=t.match(/^(u?)fixed([0-9]+)x([0-9]+)$/);a||Ye.throwArgumentError("invalid fixed format","format",t),e=a[1]!=="u",s=parseInt(a[2]),o=parseInt(a[3])}}else if(t){const a=(h,p,v)=>t[h]==null?v:(typeof t[h]!==p&&Ye.throwArgumentError("invalid fixed format ("+h+" not "+p+")","format."+h,t[h]),t[h]);e=a("signed","boolean",e),s=a("width","number",s),o=a("decimals","number",o)}return s%8&&Ye.throwArgumentError("invalid fixed format width (not byte aligned)","format.width",s),o>80&&Ye.throwArgumentError("invalid fixed format (decimals too large)","format.decimals",o),new th(zn,e,s,o)}},qp=class Ge{constructor(t,e,s,o){t!==zn&&Ye.throwError("cannot use FixedNumber constructor; use FixedNumber.from",$e.errors.UNSUPPORTED_OPERATION,{operation:"new FixedFormat"}),this.format=o,this._hex=e,this._value=s,this._isFixedNumber=!0,Object.freeze(this)}_checkFormat(t){this.format.name!==t.format.name&&Ye.throwArgumentError("incompatible format; use fixedNumber.toFormat","other",t)}addUnsafe(t){this._checkFormat(t);const e=ki(this._value,this.format.decimals),s=ki(t._value,t.format.decimals);return Ge.fromValue(e.add(s),this.format.decimals,this.format)}subUnsafe(t){this._checkFormat(t);const e=ki(this._value,this.format.decimals),s=ki(t._value,t.format.decimals);return Ge.fromValue(e.sub(s),this.format.decimals,this.format)}mulUnsafe(t){this._checkFormat(t);const e=ki(this._value,this.format.decimals),s=ki(t._value,t.format.decimals);return Ge.fromValue(e.mul(s).div(this.format._multiplier),this.format.decimals,this.format)}divUnsafe(t){this._checkFormat(t);const e=ki(this._value,this.format.decimals),s=ki(t._value,t.format.decimals);return Ge.fromValue(e.mul(this.format._multiplier).div(s),this.format.decimals,this.format)}floor(){const t=this.toString().split(".");t.length===1&&t.push("0");let e=Ge.from(t[0],this.format);const s=!t[1].match(/^(0*)$/);return this.isNegative()&&s&&(e=e.subUnsafe(hf.toFormat(e.format))),e}ceiling(){const t=this.toString().split(".");t.length===1&&t.push("0");let e=Ge.from(t[0],this.format);const s=!t[1].match(/^(0*)$/);return!this.isNegative()&&s&&(e=e.addUnsafe(hf.toFormat(e.format))),e}round(t){t==null&&(t=0);const e=this.toString().split(".");if(e.length===1&&e.push("0"),(t<0||t>80||t%1)&&Ye.throwArgumentError("invalid decimal count","decimals",t),e[1].length<=t)return this;const s=Ge.from("1"+Ln.substring(0,t),this.format),o=yb.toFormat(this.format);return this.mulUnsafe(s).addUnsafe(o).floor().divUnsafe(s)}isZero(){return this._value==="0.0"||this._value==="0"}isNegative(){return this._value[0]==="-"}toString(){return this._value}toHexString(t){if(t==null)return this._hex;t%8&&Ye.throwArgumentError("invalid byte width","width",t);const e=Ze.from(this._hex).fromTwos(this.format.width).toTwos(t).toHexString();return di(e,t/8)}toUnsafeFloat(){return parseFloat(this.toString())}toFormat(t){return Ge.fromString(this._value,t)}static fromValue(t,e,s){return s==null&&e!=null&&!mb(e)&&(s=e,e=null),e==null&&(e=0),s==null&&(s="fixed"),Ge.fromString(Rc(t,e),Nc.from(s))}static fromString(t,e){e==null&&(e="fixed");const s=Nc.from(e),o=ki(t,s.decimals);!s.signed&&o.lt(Tp)&&Dp("unsigned value cannot be negative","overflow","value",t);let a=null;s.signed?a=o.toTwos(s.width).toHexString():(a=o.toHexString(),a=di(a,s.width/8));const h=Rc(o,s.decimals);return new Ge(zn,a,h,s)}static fromBytes(t,e){e==null&&(e="fixed");const s=Nc.from(e);if(Ae(t).length>s.width/8)throw new Error("overflow");let o=Ze.from(t);s.signed&&(o=o.fromTwos(s.width));const a=o.toTwos((s.signed?0:1)+s.width).toHexString(),h=Rc(o,s.decimals);return new Ge(zn,a,h,s)}static from(t,e){if(typeof t=="string")return Ge.fromString(t,e);if(Xs(t))return Ge.fromBytes(t,e);try{return Ge.fromValue(t,0,e)}catch(s){if(s.code!==$e.errors.INVALID_ARGUMENT)throw s}return Ye.throwArgumentError("invalid FixedNumber value","value",t)}static isFixedNumber(t){return!!(t&&t._isFixedNumber)}};const hf=qp.from(1),yb=qp.from("0.5"),wb="strings/5.7.0",bb=new $e(wb);var sa;(function(i){i.current="",i.NFC="NFC",i.NFD="NFD",i.NFKC="NFKC",i.NFKD="NFKD"})(sa||(sa={}));var uf;(function(i){i.UNEXPECTED_CONTINUE="unexpected continuation byte",i.BAD_PREFIX="bad codepoint prefix",i.OVERRUN="string overrun",i.MISSING_CONTINUE="missing continuation byte",i.OUT_OF_RANGE="out of UTF-8 range",i.UTF16_SURROGATE="UTF-16 surrogate",i.OVERLONG="overlong representation"})(uf||(uf={}));function Oc(i,t=sa.current){t!=sa.current&&(bb.checkNormalize(),i=i.normalize(t));let e=[];for(let s=0;s<i.length;s++){const o=i.charCodeAt(s);if(o<128)e.push(o);else if(o<2048)e.push(o>>6|192),e.push(o&63|128);else if((o&64512)==55296){s++;const a=i.charCodeAt(s);if(s>=i.length||(a&64512)!==56320)throw new Error("invalid utf-8 string");const h=65536+((o&1023)<<10)+(a&1023);e.push(h>>18|240),e.push(h>>12&63|128),e.push(h>>6&63|128),e.push(h&63|128)}else e.push(o>>12|224),e.push(o>>6&63|128),e.push(o&63|128)}return Ae(e)}function _b(i){if(i.length%4!==0)throw new Error("bad data");let t=[];for(let e=0;e<i.length;e+=4)t.push(parseInt(i.substring(e,e+4),16));return t}function Tc(i,t){t||(t=function(o){return[parseInt(o,16)]});let e=0,s={};return i.split(",").forEach(o=>{let a=o.split(":");e+=parseInt(a[0],16),s[e]=t(a[1])}),s}function lf(i){let t=0;return i.split(",").map(e=>{let s=e.split("-");s.length===1?s[1]="0":s[1]===""&&(s[1]="1");let o=t+parseInt(s[0],16);return t=parseInt(s[1],16),{l:o,h:t}})}lf("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"),"ad,34f,1806,180b,180c,180d,200b,200c,200d,2060,feff".split(",").map(i=>parseInt(i,16)),Tc("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"),Tc("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"),Tc("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",_b),lf("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 Ab(i){i=atob(i);const t=[];for(let e=0;e<i.length;e++)t.push(i.charCodeAt(e));return Ae(t)}function kp(i,t){t==null&&(t=1);const e=[],s=e.forEach,o=function(a,h){s.call(a,function(p){h>0&&Array.isArray(p)?o(p,h-1):e.push(p)})};return o(i,t),e}function Eb(i){const t={};for(let e=0;e<i.length;e++){const s=i[e];t[s[0]]=s[1]}return t}function Ib(i){let t=0;function e(){return i[t++]<<8|i[t++]}let s=e(),o=1,a=[0,1];for(let et=1;et<s;et++)a.push(o+=e());let h=e(),p=t;t+=h;let v=0,y=0;function M(){return v==0&&(y=y<<8|i[t++],v=8),y>>--v&1}const P=31,T=Math.pow(2,P),D=T>>>1,k=D>>1,H=T-1;let V=0;for(let et=0;et<P;et++)V=V<<1|M();let Q=[],ht=0,ut=T;for(;;){let et=Math.floor(((V-ht+1)*o-1)/ut),ct=0,st=s;for(;st-ct>1;){let Te=ct+st>>>1;et<a[Te]?st=Te:ct=Te}if(ct==0)break;Q.push(ct);let gt=ht+Math.floor(ut*a[ct]/o),kt=ht+Math.floor(ut*a[ct+1]/o)-1;for(;!((gt^kt)&D);)V=V<<1&H|M(),gt=gt<<1&H,kt=kt<<1&H|1;for(;gt&~kt&k;)V=V&D|V<<1&H>>>1|M(),gt=gt<<1^D,kt=(kt^D)<<1|D|1;ht=gt,ut=1+kt-gt}let W=s-4;return Q.map(et=>{switch(et-W){case 3:return W+65792+(i[p++]<<16|i[p++]<<8|i[p++]);case 2:return W+256+(i[p++]<<8|i[p++]);case 1:return W+i[p++];default:return et-1}})}function Sb(i){let t=0;return()=>i[t++]}function Pb(i){return Sb(Ib(i))}function Mb(i){return i&1?~i>>1:i>>1}function Cb(i,t){let e=Array(i);for(let s=0;s<i;s++)e[s]=1+t();return e}function ff(i,t){let e=Array(i);for(let s=0,o=-1;s<i;s++)e[s]=o+=1+t();return e}function xb(i,t){let e=Array(i);for(let s=0,o=0;s<i;s++)e[s]=o+=Mb(t());return e}function na(i,t){let e=ff(i(),i),s=i(),o=ff(s,i),a=Cb(s,i);for(let h=0;h<s;h++)for(let p=0;p<a[h];p++)e.push(o[h]+p);return t?e.map(h=>t[h]):e}function Rb(i){let t=[];for(;;){let e=i();if(e==0)break;t.push(Ob(e,i))}for(;;){let e=i()-1;if(e<0)break;t.push(Tb(e,i))}return Eb(kp(t))}function Nb(i){let t=[];for(;;){let e=i();if(e==0)break;t.push(e)}return t}function Bp(i,t,e){let s=Array(i).fill(void 0).map(()=>[]);for(let o=0;o<t;o++)xb(i,e).forEach((a,h)=>s[h].push(a));return s}function Ob(i,t){let e=1+t(),s=t(),o=Nb(t),a=Bp(o.length,1+i,t);return kp(a.map((h,p)=>{const v=h[0],y=h.slice(1);return Array(o[p]).fill(void 0).map((M,P)=>{let T=P*s;return[v+P*e,y.map(D=>D+T)]})}))}function Tb(i,t){let e=1+t();return Bp(e,1+i,t).map(s=>[s[0],s.slice(1)])}function Fb(i){let t=na(i).sort((s,o)=>s-o);return e();function e(){let s=[];for(;;){let y=na(i,t);if(y.length==0)break;s.push({set:new Set(y),node:e()})}s.sort((y,M)=>M.set.size-y.set.size);let o=i(),a=o%3;o=o/3|0;let h=!!(o&1);o>>=1;let p=o==1,v=o==2;return{branches:s,valid:a,fe0f:h,save:p,check:v}}}function Db(){return Pb(Ab("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=="))}const zo=Db();new Set(na(zo)),new Set(na(zo)),Rb(zo),Fb(zo);const qb=new Uint8Array(32);qb.fill(0);const kb=`Ethereum Signed Message:
9
+ `;function jp(i){return typeof i=="string"&&(i=Oc(i)),fh(ub([Oc(kb),Oc(String(i.length)),i]))}const Bb="address/5.7.0",Bn=new $e(Bb);function pf(i){vr(i,20)||Bn.throwArgumentError("invalid address","address",i),i=i.toLowerCase();const t=i.substring(2).split(""),e=new Uint8Array(40);for(let o=0;o<40;o++)e[o]=t[o].charCodeAt(0);const s=Ae(fh(e));for(let o=0;o<40;o+=2)s[o>>1]>>4>=8&&(t[o]=t[o].toUpperCase()),(s[o>>1]&15)>=8&&(t[o+1]=t[o+1].toUpperCase());return"0x"+t.join("")}const jb=9007199254740991;function Ub(i){return Math.log10?Math.log10(i):Math.log(i)/Math.LN10}const dh={};for(let i=0;i<10;i++)dh[String(i)]=String(i);for(let i=0;i<26;i++)dh[String.fromCharCode(65+i)]=String(10+i);const df=Math.floor(Ub(jb));function $b(i){i=i.toUpperCase(),i=i.substring(4)+i.substring(0,2)+"00";let t=i.split("").map(s=>dh[s]).join("");for(;t.length>=df;){let s=t.substring(0,df);t=parseInt(s,10)%97+t.substring(s.length)}let e=String(98-parseInt(t,10)%97);for(;e.length<2;)e="0"+e;return e}function zb(i){let t=null;if(typeof i!="string"&&Bn.throwArgumentError("invalid address","address",i),i.match(/^(0x)?[0-9a-fA-F]{40}$/))i.substring(0,2)!=="0x"&&(i="0x"+i),t=pf(i),i.match(/([A-F].*[a-f])|([a-f].*[A-F])/)&&t!==i&&Bn.throwArgumentError("bad address checksum","address",i);else if(i.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)){for(i.substring(2,4)!==$b(i)&&Bn.throwArgumentError("bad icap checksum","address",i),t=vb(i.substring(4));t.length<40;)t="0"+t;t=pf("0x"+t)}else Bn.throwArgumentError("invalid address","address",i);return t}function xn(i,t,e){Object.defineProperty(i,t,{enumerable:!0,value:e,writable:!1})}const Lb=new Uint8Array(32);Lb.fill(0),Ze.from(-1);const Kb=Ze.from(0),Hb=Ze.from(1);Ze.from("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),di(Hb.toHexString(),32),di(Kb.toHexString(),32);var hi={},Mt={},Zn=Up;function Up(i,t){if(!i)throw new Error(t||"Assertion failed")}Up.equal=function(i,t,e){if(i!=t)throw new Error(e||"Assertion failed: "+i+" != "+t)};var eh={exports:{}};typeof Object.create=="function"?eh.exports=function(i,t){t&&(i.super_=t,i.prototype=Object.create(t.prototype,{constructor:{value:i,enumerable:!1,writable:!0,configurable:!0}}))}:eh.exports=function(i,t){if(t){i.super_=t;var e=function(){};e.prototype=t.prototype,i.prototype=new e,i.prototype.constructor=i}};var Vb=Zn,Jb=eh.exports;Mt.inherits=Jb;function Qb(i,t){return(i.charCodeAt(t)&64512)!==55296||t<0||t+1>=i.length?!1:(i.charCodeAt(t+1)&64512)===56320}function Gb(i,t){if(Array.isArray(i))return i.slice();if(!i)return[];var e=[];if(typeof i=="string")if(t){if(t==="hex")for(i=i.replace(/[^a-z0-9]+/ig,""),i.length%2!==0&&(i="0"+i),o=0;o<i.length;o+=2)e.push(parseInt(i[o]+i[o+1],16))}else for(var s=0,o=0;o<i.length;o++){var a=i.charCodeAt(o);a<128?e[s++]=a:a<2048?(e[s++]=a>>6|192,e[s++]=a&63|128):Qb(i,o)?(a=65536+((a&1023)<<10)+(i.charCodeAt(++o)&1023),e[s++]=a>>18|240,e[s++]=a>>12&63|128,e[s++]=a>>6&63|128,e[s++]=a&63|128):(e[s++]=a>>12|224,e[s++]=a>>6&63|128,e[s++]=a&63|128)}else for(o=0;o<i.length;o++)e[o]=i[o]|0;return e}Mt.toArray=Gb;function Yb(i){for(var t="",e=0;e<i.length;e++)t+=zp(i[e].toString(16));return t}Mt.toHex=Yb;function $p(i){var t=i>>>24|i>>>8&65280|i<<8&16711680|(i&255)<<24;return t>>>0}Mt.htonl=$p;function Wb(i,t){for(var e="",s=0;s<i.length;s++){var o=i[s];t==="little"&&(o=$p(o)),e+=Lp(o.toString(16))}return e}Mt.toHex32=Wb;function zp(i){return i.length===1?"0"+i:i}Mt.zero2=zp;function Lp(i){return i.length===7?"0"+i:i.length===6?"00"+i:i.length===5?"000"+i:i.length===4?"0000"+i:i.length===3?"00000"+i:i.length===2?"000000"+i:i.length===1?"0000000"+i:i}Mt.zero8=Lp;function Zb(i,t,e,s){var o=e-t;Vb(o%4===0);for(var a=new Array(o/4),h=0,p=t;h<a.length;h++,p+=4){var v;s==="big"?v=i[p]<<24|i[p+1]<<16|i[p+2]<<8|i[p+3]:v=i[p+3]<<24|i[p+2]<<16|i[p+1]<<8|i[p],a[h]=v>>>0}return a}Mt.join32=Zb;function Xb(i,t){for(var e=new Array(i.length*4),s=0,o=0;s<i.length;s++,o+=4){var a=i[s];t==="big"?(e[o]=a>>>24,e[o+1]=a>>>16&255,e[o+2]=a>>>8&255,e[o+3]=a&255):(e[o+3]=a>>>24,e[o+2]=a>>>16&255,e[o+1]=a>>>8&255,e[o]=a&255)}return e}Mt.split32=Xb;function t2(i,t){return i>>>t|i<<32-t}Mt.rotr32=t2;function e2(i,t){return i<<t|i>>>32-t}Mt.rotl32=e2;function r2(i,t){return i+t>>>0}Mt.sum32=r2;function i2(i,t,e){return i+t+e>>>0}Mt.sum32_3=i2;function s2(i,t,e,s){return i+t+e+s>>>0}Mt.sum32_4=s2;function n2(i,t,e,s,o){return i+t+e+s+o>>>0}Mt.sum32_5=n2;function o2(i,t,e,s){var o=i[t],a=i[t+1],h=s+a>>>0,p=(h<s?1:0)+e+o;i[t]=p>>>0,i[t+1]=h}Mt.sum64=o2;function a2(i,t,e,s){var o=t+s>>>0,a=(o<t?1:0)+i+e;return a>>>0}Mt.sum64_hi=a2;function c2(i,t,e,s){var o=t+s;return o>>>0}Mt.sum64_lo=c2;function h2(i,t,e,s,o,a,h,p){var v=0,y=t;y=y+s>>>0,v+=y<t?1:0,y=y+a>>>0,v+=y<a?1:0,y=y+p>>>0,v+=y<p?1:0;var M=i+e+o+h+v;return M>>>0}Mt.sum64_4_hi=h2;function u2(i,t,e,s,o,a,h,p){var v=t+s+a+p;return v>>>0}Mt.sum64_4_lo=u2;function l2(i,t,e,s,o,a,h,p,v,y){var M=0,P=t;P=P+s>>>0,M+=P<t?1:0,P=P+a>>>0,M+=P<a?1:0,P=P+p>>>0,M+=P<p?1:0,P=P+y>>>0,M+=P<y?1:0;var T=i+e+o+h+v+M;return T>>>0}Mt.sum64_5_hi=l2;function f2(i,t,e,s,o,a,h,p,v,y){var M=t+s+a+p+y;return M>>>0}Mt.sum64_5_lo=f2;function p2(i,t,e){var s=t<<32-e|i>>>e;return s>>>0}Mt.rotr64_hi=p2;function d2(i,t,e){var s=i<<32-e|t>>>e;return s>>>0}Mt.rotr64_lo=d2;function g2(i,t,e){return i>>>e}Mt.shr64_hi=g2;function m2(i,t,e){var s=i<<32-e|t>>>e;return s>>>0}Mt.shr64_lo=m2;var tn={},gf=Mt,v2=Zn;function Lo(){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}tn.BlockHash=Lo,Lo.prototype.update=function(i,t){if(i=gf.toArray(i,t),this.pending?this.pending=this.pending.concat(i):this.pending=i,this.pendingTotal+=i.length,this.pending.length>=this._delta8){i=this.pending;var e=i.length%this._delta8;this.pending=i.slice(i.length-e,i.length),this.pending.length===0&&(this.pending=null),i=gf.join32(i,0,i.length-e,this.endian);for(var s=0;s<i.length;s+=this._delta32)this._update(i,s,s+this._delta32)}return this},Lo.prototype.digest=function(i){return this.update(this._pad()),v2(this.pending===null),this._digest(i)},Lo.prototype._pad=function(){var i=this.pendingTotal,t=this._delta8,e=t-(i+this.padLength)%t,s=new Array(e+this.padLength);s[0]=128;for(var o=1;o<e;o++)s[o]=0;if(i<<=3,this.endian==="big"){for(var a=8;a<this.padLength;a++)s[o++]=0;s[o++]=0,s[o++]=0,s[o++]=0,s[o++]=0,s[o++]=i>>>24&255,s[o++]=i>>>16&255,s[o++]=i>>>8&255,s[o++]=i&255}else for(s[o++]=i&255,s[o++]=i>>>8&255,s[o++]=i>>>16&255,s[o++]=i>>>24&255,s[o++]=0,s[o++]=0,s[o++]=0,s[o++]=0,a=8;a<this.padLength;a++)s[o++]=0;return s};var Ks={},bi={},y2=Mt,gi=y2.rotr32;function w2(i,t,e,s){if(i===0)return Kp(t,e,s);if(i===1||i===3)return Vp(t,e,s);if(i===2)return Hp(t,e,s)}bi.ft_1=w2;function Kp(i,t,e){return i&t^~i&e}bi.ch32=Kp;function Hp(i,t,e){return i&t^i&e^t&e}bi.maj32=Hp;function Vp(i,t,e){return i^t^e}bi.p32=Vp;function b2(i){return gi(i,2)^gi(i,13)^gi(i,22)}bi.s0_256=b2;function _2(i){return gi(i,6)^gi(i,11)^gi(i,25)}bi.s1_256=_2;function A2(i){return gi(i,7)^gi(i,18)^i>>>3}bi.g0_256=A2;function E2(i){return gi(i,17)^gi(i,19)^i>>>10}bi.g1_256=E2;var Ws=Mt,I2=tn,S2=bi,Fc=Ws.rotl32,Rn=Ws.sum32,P2=Ws.sum32_5,M2=S2.ft_1,Jp=I2.BlockHash,C2=[1518500249,1859775393,2400959708,3395469782];function fi(){if(!(this instanceof fi))return new fi;Jp.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}Ws.inherits(fi,Jp);var x2=fi;fi.blockSize=512,fi.outSize=160,fi.hmacStrength=80,fi.padLength=64,fi.prototype._update=function(i,t){for(var e=this.W,s=0;s<16;s++)e[s]=i[t+s];for(;s<e.length;s++)e[s]=Fc(e[s-3]^e[s-8]^e[s-14]^e[s-16],1);var o=this.h[0],a=this.h[1],h=this.h[2],p=this.h[3],v=this.h[4];for(s=0;s<e.length;s++){var y=~~(s/20),M=P2(Fc(o,5),M2(y,a,h,p),v,e[s],C2[y]);v=p,p=h,h=Fc(a,30),a=o,o=M}this.h[0]=Rn(this.h[0],o),this.h[1]=Rn(this.h[1],a),this.h[2]=Rn(this.h[2],h),this.h[3]=Rn(this.h[3],p),this.h[4]=Rn(this.h[4],v)},fi.prototype._digest=function(i){return i==="hex"?Ws.toHex32(this.h,"big"):Ws.split32(this.h,"big")};var Zs=Mt,R2=tn,en=bi,N2=Zn,$r=Zs.sum32,O2=Zs.sum32_4,T2=Zs.sum32_5,F2=en.ch32,D2=en.maj32,q2=en.s0_256,k2=en.s1_256,B2=en.g0_256,j2=en.g1_256,Qp=R2.BlockHash,U2=[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 pi(){if(!(this instanceof pi))return new pi;Qp.call(this),this.h=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],this.k=U2,this.W=new Array(64)}Zs.inherits(pi,Qp);var Gp=pi;pi.blockSize=512,pi.outSize=256,pi.hmacStrength=192,pi.padLength=64,pi.prototype._update=function(i,t){for(var e=this.W,s=0;s<16;s++)e[s]=i[t+s];for(;s<e.length;s++)e[s]=O2(j2(e[s-2]),e[s-7],B2(e[s-15]),e[s-16]);var o=this.h[0],a=this.h[1],h=this.h[2],p=this.h[3],v=this.h[4],y=this.h[5],M=this.h[6],P=this.h[7];for(N2(this.k.length===e.length),s=0;s<e.length;s++){var T=T2(P,k2(v),F2(v,y,M),this.k[s],e[s]),D=$r(q2(o),D2(o,a,h));P=M,M=y,y=v,v=$r(p,T),p=h,h=a,a=o,o=$r(T,D)}this.h[0]=$r(this.h[0],o),this.h[1]=$r(this.h[1],a),this.h[2]=$r(this.h[2],h),this.h[3]=$r(this.h[3],p),this.h[4]=$r(this.h[4],v),this.h[5]=$r(this.h[5],y),this.h[6]=$r(this.h[6],M),this.h[7]=$r(this.h[7],P)},pi.prototype._digest=function(i){return i==="hex"?Zs.toHex32(this.h,"big"):Zs.split32(this.h,"big")};var rh=Mt,Yp=Gp;function $i(){if(!(this instanceof $i))return new $i;Yp.call(this),this.h=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]}rh.inherits($i,Yp);var $2=$i;$i.blockSize=512,$i.outSize=224,$i.hmacStrength=192,$i.padLength=64,$i.prototype._digest=function(i){return i==="hex"?rh.toHex32(this.h.slice(0,7),"big"):rh.split32(this.h.slice(0,7),"big")};var cr=Mt,z2=tn,L2=Zn,mi=cr.rotr64_hi,vi=cr.rotr64_lo,Wp=cr.shr64_hi,Zp=cr.shr64_lo,es=cr.sum64,Dc=cr.sum64_hi,qc=cr.sum64_lo,K2=cr.sum64_4_hi,H2=cr.sum64_4_lo,V2=cr.sum64_5_hi,J2=cr.sum64_5_lo,Xp=z2.BlockHash,Q2=[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 Vr(){if(!(this instanceof Vr))return new Vr;Xp.call(this),this.h=[1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209],this.k=Q2,this.W=new Array(160)}cr.inherits(Vr,Xp);var td=Vr;Vr.blockSize=1024,Vr.outSize=512,Vr.hmacStrength=192,Vr.padLength=128,Vr.prototype._prepareBlock=function(i,t){for(var e=this.W,s=0;s<32;s++)e[s]=i[t+s];for(;s<e.length;s+=2){var o=n_(e[s-4],e[s-3]),a=o_(e[s-4],e[s-3]),h=e[s-14],p=e[s-13],v=i_(e[s-30],e[s-29]),y=s_(e[s-30],e[s-29]),M=e[s-32],P=e[s-31];e[s]=K2(o,a,h,p,v,y,M,P),e[s+1]=H2(o,a,h,p,v,y,M,P)}},Vr.prototype._update=function(i,t){this._prepareBlock(i,t);var e=this.W,s=this.h[0],o=this.h[1],a=this.h[2],h=this.h[3],p=this.h[4],v=this.h[5],y=this.h[6],M=this.h[7],P=this.h[8],T=this.h[9],D=this.h[10],k=this.h[11],H=this.h[12],V=this.h[13],Q=this.h[14],ht=this.h[15];L2(this.k.length===e.length);for(var ut=0;ut<e.length;ut+=2){var W=Q,et=ht,ct=e_(P,T),st=r_(P,T),gt=G2(P,T,D,k,H),kt=Y2(P,T,D,k,H,V),Te=this.k[ut],Ct=this.k[ut+1],Me=e[ut],u=e[ut+1],d=V2(W,et,ct,st,gt,kt,Te,Ct,Me,u),b=J2(W,et,ct,st,gt,kt,Te,Ct,Me,u);W=X2(s,o),et=t_(s,o),ct=W2(s,o,a,h,p),st=Z2(s,o,a,h,p,v);var I=Dc(W,et,ct,st),C=qc(W,et,ct,st);Q=H,ht=V,H=D,V=k,D=P,k=T,P=Dc(y,M,d,b),T=qc(M,M,d,b),y=p,M=v,p=a,v=h,a=s,h=o,s=Dc(d,b,I,C),o=qc(d,b,I,C)}es(this.h,0,s,o),es(this.h,2,a,h),es(this.h,4,p,v),es(this.h,6,y,M),es(this.h,8,P,T),es(this.h,10,D,k),es(this.h,12,H,V),es(this.h,14,Q,ht)},Vr.prototype._digest=function(i){return i==="hex"?cr.toHex32(this.h,"big"):cr.split32(this.h,"big")};function G2(i,t,e,s,o){var a=i&e^~i&o;return a<0&&(a+=4294967296),a}function Y2(i,t,e,s,o,a){var h=t&s^~t&a;return h<0&&(h+=4294967296),h}function W2(i,t,e,s,o){var a=i&e^i&o^e&o;return a<0&&(a+=4294967296),a}function Z2(i,t,e,s,o,a){var h=t&s^t&a^s&a;return h<0&&(h+=4294967296),h}function X2(i,t){var e=mi(i,t,28),s=mi(t,i,2),o=mi(t,i,7),a=e^s^o;return a<0&&(a+=4294967296),a}function t_(i,t){var e=vi(i,t,28),s=vi(t,i,2),o=vi(t,i,7),a=e^s^o;return a<0&&(a+=4294967296),a}function e_(i,t){var e=mi(i,t,14),s=mi(i,t,18),o=mi(t,i,9),a=e^s^o;return a<0&&(a+=4294967296),a}function r_(i,t){var e=vi(i,t,14),s=vi(i,t,18),o=vi(t,i,9),a=e^s^o;return a<0&&(a+=4294967296),a}function i_(i,t){var e=mi(i,t,1),s=mi(i,t,8),o=Wp(i,t,7),a=e^s^o;return a<0&&(a+=4294967296),a}function s_(i,t){var e=vi(i,t,1),s=vi(i,t,8),o=Zp(i,t,7),a=e^s^o;return a<0&&(a+=4294967296),a}function n_(i,t){var e=mi(i,t,19),s=mi(t,i,29),o=Wp(i,t,6),a=e^s^o;return a<0&&(a+=4294967296),a}function o_(i,t){var e=vi(i,t,19),s=vi(t,i,29),o=Zp(i,t,6),a=e^s^o;return a<0&&(a+=4294967296),a}var ih=Mt,ed=td;function zi(){if(!(this instanceof zi))return new zi;ed.call(this),this.h=[3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]}ih.inherits(zi,ed);var a_=zi;zi.blockSize=1024,zi.outSize=384,zi.hmacStrength=192,zi.padLength=128,zi.prototype._digest=function(i){return i==="hex"?ih.toHex32(this.h.slice(0,12),"big"):ih.split32(this.h.slice(0,12),"big")},Ks.sha1=x2,Ks.sha224=$2,Ks.sha256=Gp,Ks.sha384=a_,Ks.sha512=td;var rd={},bs=Mt,c_=tn,Ko=bs.rotl32,mf=bs.sum32,Nn=bs.sum32_3,vf=bs.sum32_4,id=c_.BlockHash;function ui(){if(!(this instanceof ui))return new ui;id.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.endian="little"}bs.inherits(ui,id),rd.ripemd160=ui,ui.blockSize=512,ui.outSize=160,ui.hmacStrength=192,ui.padLength=64,ui.prototype._update=function(i,t){for(var e=this.h[0],s=this.h[1],o=this.h[2],a=this.h[3],h=this.h[4],p=e,v=s,y=o,M=a,P=h,T=0;T<80;T++){var D=mf(Ko(vf(e,yf(T,s,o,a),i[l_[T]+t],h_(T)),p_[T]),h);e=h,h=a,a=Ko(o,10),o=s,s=D,D=mf(Ko(vf(p,yf(79-T,v,y,M),i[f_[T]+t],u_(T)),d_[T]),P),p=P,P=M,M=Ko(y,10),y=v,v=D}D=Nn(this.h[1],o,M),this.h[1]=Nn(this.h[2],a,P),this.h[2]=Nn(this.h[3],h,p),this.h[3]=Nn(this.h[4],e,v),this.h[4]=Nn(this.h[0],s,y),this.h[0]=D},ui.prototype._digest=function(i){return i==="hex"?bs.toHex32(this.h,"little"):bs.split32(this.h,"little")};function yf(i,t,e,s){return i<=15?t^e^s:i<=31?t&e|~t&s:i<=47?(t|~e)^s:i<=63?t&s|e&~s:t^(e|~s)}function h_(i){return i<=15?0:i<=31?1518500249:i<=47?1859775393:i<=63?2400959708:2840853838}function u_(i){return i<=15?1352829926:i<=31?1548603684:i<=47?1836072691:i<=63?2053994217:0}var l_=[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],f_=[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],p_=[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],d_=[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],g_=Mt,m_=Zn;function Ys(i,t,e){if(!(this instanceof Ys))return new Ys(i,t,e);this.Hash=i,this.blockSize=i.blockSize/8,this.outSize=i.outSize/8,this.inner=null,this.outer=null,this._init(g_.toArray(t,e))}var v_=Ys;Ys.prototype._init=function(i){i.length>this.blockSize&&(i=new this.Hash().update(i).digest()),m_(i.length<=this.blockSize);for(var t=i.length;t<this.blockSize;t++)i.push(0);for(t=0;t<i.length;t++)i[t]^=54;for(this.inner=new this.Hash().update(i),t=0;t<i.length;t++)i[t]^=106;this.outer=new this.Hash().update(i)},Ys.prototype.update=function(i,t){return this.inner.update(i,t),this},Ys.prototype.digest=function(i){return this.outer.update(this.inner.digest()),this.outer.digest(i)},function(i){var t=i;t.utils=Mt,t.common=tn,t.sha=Ks,t.ripemd=rd,t.hmac=v_,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}(hi);function rn(i,t,e){return e={path:t,exports:{},require:function(s,o){return y_(s,o??e.path)}},i(e,e.exports),e.exports}function y_(){throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs")}var gh=sd;function sd(i,t){if(!i)throw new Error(t||"Assertion failed")}sd.equal=function(i,t,e){if(i!=t)throw new Error(e||"Assertion failed: "+i+" != "+t)};var Jr=rn(function(i,t){var e=t;function s(h,p){if(Array.isArray(h))return h.slice();if(!h)return[];var v=[];if(typeof h!="string"){for(var y=0;y<h.length;y++)v[y]=h[y]|0;return v}if(p==="hex"){h=h.replace(/[^a-z0-9]+/ig,""),h.length%2!==0&&(h="0"+h);for(var y=0;y<h.length;y+=2)v.push(parseInt(h[y]+h[y+1],16))}else for(var y=0;y<h.length;y++){var M=h.charCodeAt(y),P=M>>8,T=M&255;P?v.push(P,T):v.push(T)}return v}e.toArray=s;function o(h){return h.length===1?"0"+h:h}e.zero2=o;function a(h){for(var p="",v=0;v<h.length;v++)p+=o(h[v].toString(16));return p}e.toHex=a,e.encode=function(h,p){return p==="hex"?a(h):h}}),yr=rn(function(i,t){var e=t;e.assert=gh,e.toArray=Jr.toArray,e.zero2=Jr.zero2,e.toHex=Jr.toHex,e.encode=Jr.encode;function s(v,y,M){var P=new Array(Math.max(v.bitLength(),M)+1);P.fill(0);for(var T=1<<y+1,D=v.clone(),k=0;k<P.length;k++){var H,V=D.andln(T-1);D.isOdd()?(V>(T>>1)-1?H=(T>>1)-V:H=V,D.isubn(H)):H=0,P[k]=H,D.iushrn(1)}return P}e.getNAF=s;function o(v,y){var M=[[],[]];v=v.clone(),y=y.clone();for(var P=0,T=0,D;v.cmpn(-P)>0||y.cmpn(-T)>0;){var k=v.andln(3)+P&3,H=y.andln(3)+T&3;k===3&&(k=-1),H===3&&(H=-1);var V;k&1?(D=v.andln(7)+P&7,(D===3||D===5)&&H===2?V=-k:V=k):V=0,M[0].push(V);var Q;H&1?(D=y.andln(7)+T&7,(D===3||D===5)&&k===2?Q=-H:Q=H):Q=0,M[1].push(Q),2*P===V+1&&(P=1-P),2*T===Q+1&&(T=1-T),v.iushrn(1),y.iushrn(1)}return M}e.getJSF=o;function a(v,y,M){var P="_"+y;v.prototype[y]=function(){return this[P]!==void 0?this[P]:this[P]=M.call(this)}}e.cachedProperty=a;function h(v){return typeof v=="string"?e.toArray(v,"hex"):v}e.parseBytes=h;function p(v){return new wt(v,"hex","le")}e.intFromLE=p}),Ho=yr.getNAF,w_=yr.getJSF,oa=yr.assert;function ss(i,t){this.type=i,this.p=new wt(t.p,16),this.red=t.prime?wt.red(t.prime):wt.mont(this.p),this.zero=new wt(0).toRed(this.red),this.one=new wt(1).toRed(this.red),this.two=new wt(2).toRed(this.red),this.n=t.n&&new wt(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 e=this.n&&this.p.div(this.n);!e||e.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}var As=ss;ss.prototype.point=function(){throw new Error("Not implemented")},ss.prototype.validate=function(){throw new Error("Not implemented")},ss.prototype._fixedNafMul=function(i,t){oa(i.precomputed);var e=i._getDoubles(),s=Ho(t,1,this._bitLength),o=(1<<e.step+1)-(e.step%2===0?2:1);o/=3;var a=[],h,p;for(h=0;h<s.length;h+=e.step){p=0;for(var v=h+e.step-1;v>=h;v--)p=(p<<1)+s[v];a.push(p)}for(var y=this.jpoint(null,null,null),M=this.jpoint(null,null,null),P=o;P>0;P--){for(h=0;h<a.length;h++)p=a[h],p===P?M=M.mixedAdd(e.points[h]):p===-P&&(M=M.mixedAdd(e.points[h].neg()));y=y.add(M)}return y.toP()},ss.prototype._wnafMul=function(i,t){var e=4,s=i._getNAFPoints(e);e=s.wnd;for(var o=s.points,a=Ho(t,e,this._bitLength),h=this.jpoint(null,null,null),p=a.length-1;p>=0;p--){for(var v=0;p>=0&&a[p]===0;p--)v++;if(p>=0&&v++,h=h.dblp(v),p<0)break;var y=a[p];oa(y!==0),i.type==="affine"?y>0?h=h.mixedAdd(o[y-1>>1]):h=h.mixedAdd(o[-y-1>>1].neg()):y>0?h=h.add(o[y-1>>1]):h=h.add(o[-y-1>>1].neg())}return i.type==="affine"?h.toP():h},ss.prototype._wnafMulAdd=function(i,t,e,s,o){var a=this._wnafT1,h=this._wnafT2,p=this._wnafT3,v=0,y,M,P;for(y=0;y<s;y++){P=t[y];var T=P._getNAFPoints(i);a[y]=T.wnd,h[y]=T.points}for(y=s-1;y>=1;y-=2){var D=y-1,k=y;if(a[D]!==1||a[k]!==1){p[D]=Ho(e[D],a[D],this._bitLength),p[k]=Ho(e[k],a[k],this._bitLength),v=Math.max(p[D].length,v),v=Math.max(p[k].length,v);continue}var H=[t[D],null,null,t[k]];t[D].y.cmp(t[k].y)===0?(H[1]=t[D].add(t[k]),H[2]=t[D].toJ().mixedAdd(t[k].neg())):t[D].y.cmp(t[k].y.redNeg())===0?(H[1]=t[D].toJ().mixedAdd(t[k]),H[2]=t[D].add(t[k].neg())):(H[1]=t[D].toJ().mixedAdd(t[k]),H[2]=t[D].toJ().mixedAdd(t[k].neg()));var V=[-3,-1,-5,-7,0,7,5,1,3],Q=w_(e[D],e[k]);for(v=Math.max(Q[0].length,v),p[D]=new Array(v),p[k]=new Array(v),M=0;M<v;M++){var ht=Q[0][M]|0,ut=Q[1][M]|0;p[D][M]=V[(ht+1)*3+(ut+1)],p[k][M]=0,h[D]=H}}var W=this.jpoint(null,null,null),et=this._wnafT4;for(y=v;y>=0;y--){for(var ct=0;y>=0;){var st=!0;for(M=0;M<s;M++)et[M]=p[M][y]|0,et[M]!==0&&(st=!1);if(!st)break;ct++,y--}if(y>=0&&ct++,W=W.dblp(ct),y<0)break;for(M=0;M<s;M++){var gt=et[M];gt!==0&&(gt>0?P=h[M][gt-1>>1]:gt<0&&(P=h[M][-gt-1>>1].neg()),P.type==="affine"?W=W.mixedAdd(P):W=W.add(P))}}for(y=0;y<s;y++)h[y]=null;return o?W:W.toP()};function Cr(i,t){this.curve=i,this.type=t,this.precomputed=null}ss.BasePoint=Cr,Cr.prototype.eq=function(){throw new Error("Not implemented")},Cr.prototype.validate=function(){return this.curve.validate(this)},ss.prototype.decodePoint=function(i,t){i=yr.toArray(i,t);var e=this.p.byteLength();if((i[0]===4||i[0]===6||i[0]===7)&&i.length-1===2*e){i[0]===6?oa(i[i.length-1]%2===0):i[0]===7&&oa(i[i.length-1]%2===1);var s=this.point(i.slice(1,1+e),i.slice(1+e,1+2*e));return s}else if((i[0]===2||i[0]===3)&&i.length-1===e)return this.pointFromX(i.slice(1,1+e),i[0]===3);throw new Error("Unknown point format")},Cr.prototype.encodeCompressed=function(i){return this.encode(i,!0)},Cr.prototype._encode=function(i){var t=this.curve.p.byteLength(),e=this.getX().toArray("be",t);return i?[this.getY().isEven()?2:3].concat(e):[4].concat(e,this.getY().toArray("be",t))},Cr.prototype.encode=function(i,t){return yr.encode(this._encode(t),i)},Cr.prototype.precompute=function(i){if(this.precomputed)return this;var t={doubles:null,naf:null,beta:null};return t.naf=this._getNAFPoints(8),t.doubles=this._getDoubles(4,i),t.beta=this._getBeta(),this.precomputed=t,this},Cr.prototype._hasDoubles=function(i){if(!this.precomputed)return!1;var t=this.precomputed.doubles;return t?t.points.length>=Math.ceil((i.bitLength()+1)/t.step):!1},Cr.prototype._getDoubles=function(i,t){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var e=[this],s=this,o=0;o<t;o+=i){for(var a=0;a<i;a++)s=s.dbl();e.push(s)}return{step:i,points:e}},Cr.prototype._getNAFPoints=function(i){if(this.precomputed&&this.precomputed.naf)return this.precomputed.naf;for(var t=[this],e=(1<<i)-1,s=e===1?null:this.dbl(),o=1;o<e;o++)t[o]=t[o-1].add(s);return{wnd:i,points:t}},Cr.prototype._getBeta=function(){return null},Cr.prototype.dblp=function(i){for(var t=this,e=0;e<i;e++)t=t.dbl();return t};var mh=rn(function(i){typeof Object.create=="function"?i.exports=function(t,e){e&&(t.super_=e,t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:i.exports=function(t,e){if(e){t.super_=e;var s=function(){};s.prototype=e.prototype,t.prototype=new s,t.prototype.constructor=t}}}),b_=yr.assert;function Or(i){As.call(this,"short",i),this.a=new wt(i.a,16).toRed(this.red),this.b=new wt(i.b,16).toRed(this.red),this.tinv=this.two.redInvm(),this.zeroA=this.a.fromRed().cmpn(0)===0,this.threeA=this.a.fromRed().sub(this.p).cmpn(-3)===0,this.endo=this._getEndomorphism(i),this._endoWnafT1=new Array(4),this._endoWnafT2=new Array(4)}mh(Or,As);var __=Or;Or.prototype._getEndomorphism=function(i){if(!(!this.zeroA||!this.g||!this.n||this.p.modn(3)!==1)){var t,e;if(i.beta)t=new wt(i.beta,16).toRed(this.red);else{var s=this._getEndoRoots(this.p);t=s[0].cmp(s[1])<0?s[0]:s[1],t=t.toRed(this.red)}if(i.lambda)e=new wt(i.lambda,16);else{var o=this._getEndoRoots(this.n);this.g.mul(o[0]).x.cmp(this.g.x.redMul(t))===0?e=o[0]:(e=o[1],b_(this.g.mul(e).x.cmp(this.g.x.redMul(t))===0))}var a;return i.basis?a=i.basis.map(function(h){return{a:new wt(h.a,16),b:new wt(h.b,16)}}):a=this._getEndoBasis(e),{beta:t,lambda:e,basis:a}}},Or.prototype._getEndoRoots=function(i){var t=i===this.p?this.red:wt.mont(i),e=new wt(2).toRed(t).redInvm(),s=e.redNeg(),o=new wt(3).toRed(t).redNeg().redSqrt().redMul(e),a=s.redAdd(o).fromRed(),h=s.redSub(o).fromRed();return[a,h]},Or.prototype._getEndoBasis=function(i){for(var t=this.n.ushrn(Math.floor(this.n.bitLength()/2)),e=i,s=this.n.clone(),o=new wt(1),a=new wt(0),h=new wt(0),p=new wt(1),v,y,M,P,T,D,k,H=0,V,Q;e.cmpn(0)!==0;){var ht=s.div(e);V=s.sub(ht.mul(e)),Q=h.sub(ht.mul(o));var ut=p.sub(ht.mul(a));if(!M&&V.cmp(t)<0)v=k.neg(),y=o,M=V.neg(),P=Q;else if(M&&++H===2)break;k=V,s=e,e=V,h=o,o=Q,p=a,a=ut}T=V.neg(),D=Q;var W=M.sqr().add(P.sqr()),et=T.sqr().add(D.sqr());return et.cmp(W)>=0&&(T=v,D=y),M.negative&&(M=M.neg(),P=P.neg()),T.negative&&(T=T.neg(),D=D.neg()),[{a:M,b:P},{a:T,b:D}]},Or.prototype._endoSplit=function(i){var t=this.endo.basis,e=t[0],s=t[1],o=s.b.mul(i).divRound(this.n),a=e.b.neg().mul(i).divRound(this.n),h=o.mul(e.a),p=a.mul(s.a),v=o.mul(e.b),y=a.mul(s.b),M=i.sub(h).sub(p),P=v.add(y).neg();return{k1:M,k2:P}},Or.prototype.pointFromX=function(i,t){i=new wt(i,16),i.red||(i=i.toRed(this.red));var e=i.redSqr().redMul(i).redIAdd(i.redMul(this.a)).redIAdd(this.b),s=e.redSqrt();if(s.redSqr().redSub(e).cmp(this.zero)!==0)throw new Error("invalid point");var o=s.fromRed().isOdd();return(t&&!o||!t&&o)&&(s=s.redNeg()),this.point(i,s)},Or.prototype.validate=function(i){if(i.inf)return!0;var t=i.x,e=i.y,s=this.a.redMul(t),o=t.redSqr().redMul(t).redIAdd(s).redIAdd(this.b);return e.redSqr().redISub(o).cmpn(0)===0},Or.prototype._endoWnafMulAdd=function(i,t,e){for(var s=this._endoWnafT1,o=this._endoWnafT2,a=0;a<i.length;a++){var h=this._endoSplit(t[a]),p=i[a],v=p._getBeta();h.k1.negative&&(h.k1.ineg(),p=p.neg(!0)),h.k2.negative&&(h.k2.ineg(),v=v.neg(!0)),s[a*2]=p,s[a*2+1]=v,o[a*2]=h.k1,o[a*2+1]=h.k2}for(var y=this._wnafMulAdd(1,s,o,a*2,e),M=0;M<a*2;M++)s[M]=null,o[M]=null;return y};function De(i,t,e,s){As.BasePoint.call(this,i,"affine"),t===null&&e===null?(this.x=null,this.y=null,this.inf=!0):(this.x=new wt(t,16),this.y=new wt(e,16),s&&(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)}mh(De,As.BasePoint),Or.prototype.point=function(i,t,e){return new De(this,i,t,e)},Or.prototype.pointFromJSON=function(i,t){return De.fromJSON(this,i,t)},De.prototype._getBeta=function(){if(this.curve.endo){var i=this.precomputed;if(i&&i.beta)return i.beta;var t=this.curve.point(this.x.redMul(this.curve.endo.beta),this.y);if(i){var e=this.curve,s=function(o){return e.point(o.x.redMul(e.endo.beta),o.y)};i.beta=t,t.precomputed={beta:null,naf:i.naf&&{wnd:i.naf.wnd,points:i.naf.points.map(s)},doubles:i.doubles&&{step:i.doubles.step,points:i.doubles.points.map(s)}}}return t}},De.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]},De.fromJSON=function(i,t,e){typeof t=="string"&&(t=JSON.parse(t));var s=i.point(t[0],t[1],e);if(!t[2])return s;function o(h){return i.point(h[0],h[1],e)}var a=t[2];return s.precomputed={beta:null,doubles:a.doubles&&{step:a.doubles.step,points:[s].concat(a.doubles.points.map(o))},naf:a.naf&&{wnd:a.naf.wnd,points:[s].concat(a.naf.points.map(o))}},s},De.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)+">"},De.prototype.isInfinity=function(){return this.inf},De.prototype.add=function(i){if(this.inf)return i;if(i.inf)return this;if(this.eq(i))return this.dbl();if(this.neg().eq(i))return this.curve.point(null,null);if(this.x.cmp(i.x)===0)return this.curve.point(null,null);var t=this.y.redSub(i.y);t.cmpn(0)!==0&&(t=t.redMul(this.x.redSub(i.x).redInvm()));var e=t.redSqr().redISub(this.x).redISub(i.x),s=t.redMul(this.x.redSub(e)).redISub(this.y);return this.curve.point(e,s)},De.prototype.dbl=function(){if(this.inf)return this;var i=this.y.redAdd(this.y);if(i.cmpn(0)===0)return this.curve.point(null,null);var t=this.curve.a,e=this.x.redSqr(),s=i.redInvm(),o=e.redAdd(e).redIAdd(e).redIAdd(t).redMul(s),a=o.redSqr().redISub(this.x.redAdd(this.x)),h=o.redMul(this.x.redSub(a)).redISub(this.y);return this.curve.point(a,h)},De.prototype.getX=function(){return this.x.fromRed()},De.prototype.getY=function(){return this.y.fromRed()},De.prototype.mul=function(i){return i=new wt(i,16),this.isInfinity()?this:this._hasDoubles(i)?this.curve._fixedNafMul(this,i):this.curve.endo?this.curve._endoWnafMulAdd([this],[i]):this.curve._wnafMul(this,i)},De.prototype.mulAdd=function(i,t,e){var s=[this,t],o=[i,e];return this.curve.endo?this.curve._endoWnafMulAdd(s,o):this.curve._wnafMulAdd(1,s,o,2)},De.prototype.jmulAdd=function(i,t,e){var s=[this,t],o=[i,e];return this.curve.endo?this.curve._endoWnafMulAdd(s,o,!0):this.curve._wnafMulAdd(1,s,o,2,!0)},De.prototype.eq=function(i){return this===i||this.inf===i.inf&&(this.inf||this.x.cmp(i.x)===0&&this.y.cmp(i.y)===0)},De.prototype.neg=function(i){if(this.inf)return this;var t=this.curve.point(this.x,this.y.redNeg());if(i&&this.precomputed){var e=this.precomputed,s=function(o){return o.neg()};t.precomputed={naf:e.naf&&{wnd:e.naf.wnd,points:e.naf.points.map(s)},doubles:e.doubles&&{step:e.doubles.step,points:e.doubles.points.map(s)}}}return t},De.prototype.toJ=function(){if(this.inf)return this.curve.jpoint(null,null,null);var i=this.curve.jpoint(this.x,this.y,this.curve.one);return i};function Be(i,t,e,s){As.BasePoint.call(this,i,"jacobian"),t===null&&e===null&&s===null?(this.x=this.curve.one,this.y=this.curve.one,this.z=new wt(0)):(this.x=new wt(t,16),this.y=new wt(e,16),this.z=new wt(s,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}mh(Be,As.BasePoint),Or.prototype.jpoint=function(i,t,e){return new Be(this,i,t,e)},Be.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var i=this.z.redInvm(),t=i.redSqr(),e=this.x.redMul(t),s=this.y.redMul(t).redMul(i);return this.curve.point(e,s)},Be.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},Be.prototype.add=function(i){if(this.isInfinity())return i;if(i.isInfinity())return this;var t=i.z.redSqr(),e=this.z.redSqr(),s=this.x.redMul(t),o=i.x.redMul(e),a=this.y.redMul(t.redMul(i.z)),h=i.y.redMul(e.redMul(this.z)),p=s.redSub(o),v=a.redSub(h);if(p.cmpn(0)===0)return v.cmpn(0)!==0?this.curve.jpoint(null,null,null):this.dbl();var y=p.redSqr(),M=y.redMul(p),P=s.redMul(y),T=v.redSqr().redIAdd(M).redISub(P).redISub(P),D=v.redMul(P.redISub(T)).redISub(a.redMul(M)),k=this.z.redMul(i.z).redMul(p);return this.curve.jpoint(T,D,k)},Be.prototype.mixedAdd=function(i){if(this.isInfinity())return i.toJ();if(i.isInfinity())return this;var t=this.z.redSqr(),e=this.x,s=i.x.redMul(t),o=this.y,a=i.y.redMul(t).redMul(this.z),h=e.redSub(s),p=o.redSub(a);if(h.cmpn(0)===0)return p.cmpn(0)!==0?this.curve.jpoint(null,null,null):this.dbl();var v=h.redSqr(),y=v.redMul(h),M=e.redMul(v),P=p.redSqr().redIAdd(y).redISub(M).redISub(M),T=p.redMul(M.redISub(P)).redISub(o.redMul(y)),D=this.z.redMul(h);return this.curve.jpoint(P,T,D)},Be.prototype.dblp=function(i){if(i===0)return this;if(this.isInfinity())return this;if(!i)return this.dbl();var t;if(this.curve.zeroA||this.curve.threeA){var e=this;for(t=0;t<i;t++)e=e.dbl();return e}var s=this.curve.a,o=this.curve.tinv,a=this.x,h=this.y,p=this.z,v=p.redSqr().redSqr(),y=h.redAdd(h);for(t=0;t<i;t++){var M=a.redSqr(),P=y.redSqr(),T=P.redSqr(),D=M.redAdd(M).redIAdd(M).redIAdd(s.redMul(v)),k=a.redMul(P),H=D.redSqr().redISub(k.redAdd(k)),V=k.redISub(H),Q=D.redMul(V);Q=Q.redIAdd(Q).redISub(T);var ht=y.redMul(p);t+1<i&&(v=v.redMul(T)),a=H,p=ht,y=Q}return this.curve.jpoint(a,y.redMul(o),p)},Be.prototype.dbl=function(){return this.isInfinity()?this:this.curve.zeroA?this._zeroDbl():this.curve.threeA?this._threeDbl():this._dbl()},Be.prototype._zeroDbl=function(){var i,t,e;if(this.zOne){var s=this.x.redSqr(),o=this.y.redSqr(),a=o.redSqr(),h=this.x.redAdd(o).redSqr().redISub(s).redISub(a);h=h.redIAdd(h);var p=s.redAdd(s).redIAdd(s),v=p.redSqr().redISub(h).redISub(h),y=a.redIAdd(a);y=y.redIAdd(y),y=y.redIAdd(y),i=v,t=p.redMul(h.redISub(v)).redISub(y),e=this.y.redAdd(this.y)}else{var M=this.x.redSqr(),P=this.y.redSqr(),T=P.redSqr(),D=this.x.redAdd(P).redSqr().redISub(M).redISub(T);D=D.redIAdd(D);var k=M.redAdd(M).redIAdd(M),H=k.redSqr(),V=T.redIAdd(T);V=V.redIAdd(V),V=V.redIAdd(V),i=H.redISub(D).redISub(D),t=k.redMul(D.redISub(i)).redISub(V),e=this.y.redMul(this.z),e=e.redIAdd(e)}return this.curve.jpoint(i,t,e)},Be.prototype._threeDbl=function(){var i,t,e;if(this.zOne){var s=this.x.redSqr(),o=this.y.redSqr(),a=o.redSqr(),h=this.x.redAdd(o).redSqr().redISub(s).redISub(a);h=h.redIAdd(h);var p=s.redAdd(s).redIAdd(s).redIAdd(this.curve.a),v=p.redSqr().redISub(h).redISub(h);i=v;var y=a.redIAdd(a);y=y.redIAdd(y),y=y.redIAdd(y),t=p.redMul(h.redISub(v)).redISub(y),e=this.y.redAdd(this.y)}else{var M=this.z.redSqr(),P=this.y.redSqr(),T=this.x.redMul(P),D=this.x.redSub(M).redMul(this.x.redAdd(M));D=D.redAdd(D).redIAdd(D);var k=T.redIAdd(T);k=k.redIAdd(k);var H=k.redAdd(k);i=D.redSqr().redISub(H),e=this.y.redAdd(this.z).redSqr().redISub(P).redISub(M);var V=P.redSqr();V=V.redIAdd(V),V=V.redIAdd(V),V=V.redIAdd(V),t=D.redMul(k.redISub(i)).redISub(V)}return this.curve.jpoint(i,t,e)},Be.prototype._dbl=function(){var i=this.curve.a,t=this.x,e=this.y,s=this.z,o=s.redSqr().redSqr(),a=t.redSqr(),h=e.redSqr(),p=a.redAdd(a).redIAdd(a).redIAdd(i.redMul(o)),v=t.redAdd(t);v=v.redIAdd(v);var y=v.redMul(h),M=p.redSqr().redISub(y.redAdd(y)),P=y.redISub(M),T=h.redSqr();T=T.redIAdd(T),T=T.redIAdd(T),T=T.redIAdd(T);var D=p.redMul(P).redISub(T),k=e.redAdd(e).redMul(s);return this.curve.jpoint(M,D,k)},Be.prototype.trpl=function(){if(!this.curve.zeroA)return this.dbl().add(this);var i=this.x.redSqr(),t=this.y.redSqr(),e=this.z.redSqr(),s=t.redSqr(),o=i.redAdd(i).redIAdd(i),a=o.redSqr(),h=this.x.redAdd(t).redSqr().redISub(i).redISub(s);h=h.redIAdd(h),h=h.redAdd(h).redIAdd(h),h=h.redISub(a);var p=h.redSqr(),v=s.redIAdd(s);v=v.redIAdd(v),v=v.redIAdd(v),v=v.redIAdd(v);var y=o.redIAdd(h).redSqr().redISub(a).redISub(p).redISub(v),M=t.redMul(y);M=M.redIAdd(M),M=M.redIAdd(M);var P=this.x.redMul(p).redISub(M);P=P.redIAdd(P),P=P.redIAdd(P);var T=this.y.redMul(y.redMul(v.redISub(y)).redISub(h.redMul(p)));T=T.redIAdd(T),T=T.redIAdd(T),T=T.redIAdd(T);var D=this.z.redAdd(h).redSqr().redISub(e).redISub(p);return this.curve.jpoint(P,T,D)},Be.prototype.mul=function(i,t){return i=new wt(i,t),this.curve._wnafMul(this,i)},Be.prototype.eq=function(i){if(i.type==="affine")return this.eq(i.toJ());if(this===i)return!0;var t=this.z.redSqr(),e=i.z.redSqr();if(this.x.redMul(e).redISub(i.x.redMul(t)).cmpn(0)!==0)return!1;var s=t.redMul(this.z),o=e.redMul(i.z);return this.y.redMul(o).redISub(i.y.redMul(s)).cmpn(0)===0},Be.prototype.eqXToP=function(i){var t=this.z.redSqr(),e=i.toRed(this.curve.red).redMul(t);if(this.x.cmp(e)===0)return!0;for(var s=i.clone(),o=this.curve.redN.redMul(t);;){if(s.iadd(this.curve.n),s.cmp(this.curve.p)>=0)return!1;if(e.redIAdd(o),this.x.cmp(e)===0)return!0}},Be.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)+">"},Be.prototype.isInfinity=function(){return this.z.cmpn(0)===0};var Zo=rn(function(i,t){var e=t;e.base=As,e.short=__,e.mont=null,e.edwards=null}),Xo=rn(function(i,t){var e=t,s=yr.assert;function o(p){p.type==="short"?this.curve=new Zo.short(p):p.type==="edwards"?this.curve=new Zo.edwards(p):this.curve=new Zo.mont(p),this.g=this.curve.g,this.n=this.curve.n,this.hash=p.hash,s(this.g.validate(),"Invalid curve"),s(this.g.mul(this.n).isInfinity(),"Invalid curve, G*N != O")}e.PresetCurve=o;function a(p,v){Object.defineProperty(e,p,{configurable:!0,enumerable:!0,get:function(){var y=new o(v);return Object.defineProperty(e,p,{configurable:!0,enumerable:!0,value:y}),y}})}a("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:hi.sha256,gRed:!1,g:["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012","07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"]}),a("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:hi.sha256,gRed:!1,g:["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21","bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"]}),a("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:hi.sha256,gRed:!1,g:["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296","4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"]}),a("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:hi.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"]}),a("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:hi.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"]}),a("curve25519",{type:"mont",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"76d06",b:"1",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:hi.sha256,gRed:!1,g:["9"]}),a("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:hi.sha256,gRed:!1,g:["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a","6666666666666666666666666666666666666666666666666666666666666658"]});var h;try{h=null.crash()}catch{h=void 0}a("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:hi.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",h]})});function ns(i){if(!(this instanceof ns))return new ns(i);this.hash=i.hash,this.predResist=!!i.predResist,this.outLen=this.hash.outSize,this.minEntropy=i.minEntropy||this.hash.hmacStrength,this._reseed=null,this.reseedInterval=null,this.K=null,this.V=null;var t=Jr.toArray(i.entropy,i.entropyEnc||"hex"),e=Jr.toArray(i.nonce,i.nonceEnc||"hex"),s=Jr.toArray(i.pers,i.persEnc||"hex");gh(t.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(t,e,s)}var wf=ns;ns.prototype._init=function(i,t,e){var s=i.concat(t).concat(e);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var o=0;o<this.V.length;o++)this.K[o]=0,this.V[o]=1;this._update(s),this._reseed=1,this.reseedInterval=281474976710656},ns.prototype._hmac=function(){return new hi.hmac(this.hash,this.K)},ns.prototype._update=function(i){var t=this._hmac().update(this.V).update([0]);i&&(t=t.update(i)),this.K=t.digest(),this.V=this._hmac().update(this.V).digest(),i&&(this.K=this._hmac().update(this.V).update([1]).update(i).digest(),this.V=this._hmac().update(this.V).digest())},ns.prototype.reseed=function(i,t,e,s){typeof t!="string"&&(s=e,e=t,t=null),i=Jr.toArray(i,t),e=Jr.toArray(e,s),gh(i.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(i.concat(e||[])),this._reseed=1},ns.prototype.generate=function(i,t,e,s){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");typeof t!="string"&&(s=e,e=t,t=null),e&&(e=Jr.toArray(e,s||"hex"),this._update(e));for(var o=[];o.length<i;)this.V=this._hmac().update(this.V).digest(),o=o.concat(this.V);var a=o.slice(0,i);return this._update(e),this._reseed++,Jr.encode(a,t)};var kc=yr.assert;function He(i,t){this.ec=i,this.priv=null,this.pub=null,t.priv&&this._importPrivate(t.priv,t.privEnc),t.pub&&this._importPublic(t.pub,t.pubEnc)}var Bc=He;He.fromPublic=function(i,t,e){return t instanceof He?t:new He(i,{pub:t,pubEnc:e})},He.fromPrivate=function(i,t,e){return t instanceof He?t:new He(i,{priv:t,privEnc:e})},He.prototype.validate=function(){var i=this.getPublic();return i.isInfinity()?{result:!1,reason:"Invalid public key"}:i.validate()?i.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"}},He.prototype.getPublic=function(i,t){return typeof i=="string"&&(t=i,i=null),this.pub||(this.pub=this.ec.g.mul(this.priv)),t?this.pub.encode(t,i):this.pub},He.prototype.getPrivate=function(i){return i==="hex"?this.priv.toString(16,2):this.priv},He.prototype._importPrivate=function(i,t){this.priv=new wt(i,t||16),this.priv=this.priv.umod(this.ec.curve.n)},He.prototype._importPublic=function(i,t){if(i.x||i.y){this.ec.curve.type==="mont"?kc(i.x,"Need x coordinate"):(this.ec.curve.type==="short"||this.ec.curve.type==="edwards")&&kc(i.x&&i.y,"Need both x and y coordinate"),this.pub=this.ec.curve.point(i.x,i.y);return}this.pub=this.ec.curve.decodePoint(i,t)},He.prototype.derive=function(i){return i.validate()||kc(i.validate(),"public point not validated"),i.mul(this.priv).getX()},He.prototype.sign=function(i,t,e){return this.ec.sign(i,this,t,e)},He.prototype.verify=function(i,t){return this.ec.verify(i,t,this)},He.prototype.inspect=function(){return"<Key priv: "+(this.priv&&this.priv.toString(16,2))+" pub: "+(this.pub&&this.pub.inspect())+" >"};var A_=yr.assert;function pa(i,t){if(i instanceof pa)return i;this._importDER(i,t)||(A_(i.r&&i.s,"Signature without r or s"),this.r=new wt(i.r,16),this.s=new wt(i.s,16),i.recoveryParam===void 0?this.recoveryParam=null:this.recoveryParam=i.recoveryParam)}var Vo=pa;function E_(){this.place=0}function jc(i,t){var e=i[t.place++];if(!(e&128))return e;var s=e&15;if(s===0||s>4)return!1;for(var o=0,a=0,h=t.place;a<s;a++,h++)o<<=8,o|=i[h],o>>>=0;return o<=127?!1:(t.place=h,o)}function bf(i){for(var t=0,e=i.length-1;!i[t]&&!(i[t+1]&128)&&t<e;)t++;return t===0?i:i.slice(t)}pa.prototype._importDER=function(i,t){i=yr.toArray(i,t);var e=new E_;if(i[e.place++]!==48)return!1;var s=jc(i,e);if(s===!1||s+e.place!==i.length||i[e.place++]!==2)return!1;var o=jc(i,e);if(o===!1)return!1;var a=i.slice(e.place,o+e.place);if(e.place+=o,i[e.place++]!==2)return!1;var h=jc(i,e);if(h===!1||i.length!==h+e.place)return!1;var p=i.slice(e.place,h+e.place);if(a[0]===0)if(a[1]&128)a=a.slice(1);else return!1;if(p[0]===0)if(p[1]&128)p=p.slice(1);else return!1;return this.r=new wt(a),this.s=new wt(p),this.recoveryParam=null,!0};function Uc(i,t){if(t<128){i.push(t);return}var e=1+(Math.log(t)/Math.LN2>>>3);for(i.push(e|128);--e;)i.push(t>>>(e<<3)&255);i.push(t)}pa.prototype.toDER=function(i){var t=this.r.toArray(),e=this.s.toArray();for(t[0]&128&&(t=[0].concat(t)),e[0]&128&&(e=[0].concat(e)),t=bf(t),e=bf(e);!e[0]&&!(e[1]&128);)e=e.slice(1);var s=[2];Uc(s,t.length),s=s.concat(t),s.push(2),Uc(s,e.length);var o=s.concat(e),a=[48];return Uc(a,o.length),a=a.concat(o),yr.encode(a,i)};var I_=function(){throw new Error("unsupported")},nd=yr.assert;function Nr(i){if(!(this instanceof Nr))return new Nr(i);typeof i=="string"&&(nd(Object.prototype.hasOwnProperty.call(Xo,i),"Unknown curve "+i),i=Xo[i]),i instanceof Xo.PresetCurve&&(i={curve:i}),this.curve=i.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=i.curve.g,this.g.precompute(i.curve.n.bitLength()+1),this.hash=i.hash||i.curve.hash}var S_=Nr;Nr.prototype.keyPair=function(i){return new Bc(this,i)},Nr.prototype.keyFromPrivate=function(i,t){return Bc.fromPrivate(this,i,t)},Nr.prototype.keyFromPublic=function(i,t){return Bc.fromPublic(this,i,t)},Nr.prototype.genKeyPair=function(i){i||(i={});for(var t=new wf({hash:this.hash,pers:i.pers,persEnc:i.persEnc||"utf8",entropy:i.entropy||I_(this.hash.hmacStrength),entropyEnc:i.entropy&&i.entropyEnc||"utf8",nonce:this.n.toArray()}),e=this.n.byteLength(),s=this.n.sub(new wt(2));;){var o=new wt(t.generate(e));if(!(o.cmp(s)>0))return o.iaddn(1),this.keyFromPrivate(o)}},Nr.prototype._truncateToN=function(i,t){var e=i.byteLength()*8-this.n.bitLength();return e>0&&(i=i.ushrn(e)),!t&&i.cmp(this.n)>=0?i.sub(this.n):i},Nr.prototype.sign=function(i,t,e,s){typeof e=="object"&&(s=e,e=null),s||(s={}),t=this.keyFromPrivate(t,e),i=this._truncateToN(new wt(i,16));for(var o=this.n.byteLength(),a=t.getPrivate().toArray("be",o),h=i.toArray("be",o),p=new wf({hash:this.hash,entropy:a,nonce:h,pers:s.pers,persEnc:s.persEnc||"utf8"}),v=this.n.sub(new wt(1)),y=0;;y++){var M=s.k?s.k(y):new wt(p.generate(this.n.byteLength()));if(M=this._truncateToN(M,!0),!(M.cmpn(1)<=0||M.cmp(v)>=0)){var P=this.g.mul(M);if(!P.isInfinity()){var T=P.getX(),D=T.umod(this.n);if(D.cmpn(0)!==0){var k=M.invm(this.n).mul(D.mul(t.getPrivate()).iadd(i));if(k=k.umod(this.n),k.cmpn(0)!==0){var H=(P.getY().isOdd()?1:0)|(T.cmp(D)!==0?2:0);return s.canonical&&k.cmp(this.nh)>0&&(k=this.n.sub(k),H^=1),new Vo({r:D,s:k,recoveryParam:H})}}}}}},Nr.prototype.verify=function(i,t,e,s){i=this._truncateToN(new wt(i,16)),e=this.keyFromPublic(e,s),t=new Vo(t,"hex");var o=t.r,a=t.s;if(o.cmpn(1)<0||o.cmp(this.n)>=0||a.cmpn(1)<0||a.cmp(this.n)>=0)return!1;var h=a.invm(this.n),p=h.mul(i).umod(this.n),v=h.mul(o).umod(this.n),y;return this.curve._maxwellTrick?(y=this.g.jmulAdd(p,e.getPublic(),v),y.isInfinity()?!1:y.eqXToP(o)):(y=this.g.mulAdd(p,e.getPublic(),v),y.isInfinity()?!1:y.getX().umod(this.n).cmp(o)===0)},Nr.prototype.recoverPubKey=function(i,t,e,s){nd((3&e)===e,"The recovery param is more than two bits"),t=new Vo(t,s);var o=this.n,a=new wt(i),h=t.r,p=t.s,v=e&1,y=e>>1;if(h.cmp(this.curve.p.umod(this.curve.n))>=0&&y)throw new Error("Unable to find sencond key candinate");y?h=this.curve.pointFromX(h.add(this.curve.n),v):h=this.curve.pointFromX(h,v);var M=t.r.invm(o),P=o.sub(a).mul(M).umod(o),T=p.mul(M).umod(o);return this.g.mulAdd(P,h,T)},Nr.prototype.getKeyRecoveryParam=function(i,t,e,s){if(t=new Vo(t,s),t.recoveryParam!==null)return t.recoveryParam;for(var o=0;o<4;o++){var a;try{a=this.recoverPubKey(i,t,o)}catch{continue}if(a.eq(e))return o}throw new Error("Unable to find valid recovery factor")};var P_=rn(function(i,t){var e=t;e.version="6.5.4",e.utils=yr,e.rand=function(){throw new Error("unsupported")},e.curve=Zo,e.curves=Xo,e.ec=S_,e.eddsa=null}),M_=P_.ec;const C_="signing-key/5.7.0",sh=new $e(C_);let $c=null;function is(){return $c||($c=new M_("secp256k1")),$c}class x_{constructor(t){xn(this,"curve","secp256k1"),xn(this,"privateKey",nr(t)),fb(this.privateKey)!==32&&sh.throwArgumentError("invalid private key","privateKey","[[ REDACTED ]]");const e=is().keyFromPrivate(Ae(this.privateKey));xn(this,"publicKey","0x"+e.getPublic(!1,"hex")),xn(this,"compressedPublicKey","0x"+e.getPublic(!0,"hex")),xn(this,"_isSigningKey",!0)}_addPoint(t){const e=is().keyFromPublic(Ae(this.publicKey)),s=is().keyFromPublic(Ae(t));return"0x"+e.pub.add(s.pub).encodeCompressed("hex")}signDigest(t){const e=is().keyFromPrivate(Ae(this.privateKey)),s=Ae(t);s.length!==32&&sh.throwArgumentError("bad digest length","digest",t);const o=e.sign(s,{canonical:!0});return Rp({recoveryParam:o.recoveryParam,r:di("0x"+o.r.toString(16),32),s:di("0x"+o.s.toString(16),32)})}computeSharedSecret(t){const e=is().keyFromPrivate(Ae(this.privateKey)),s=is().keyFromPublic(Ae(od(t)));return di("0x"+e.derive(s.getPublic()).toString(16),32)}static isSigningKey(t){return!!(t&&t._isSigningKey)}}function R_(i,t){const e=Rp(t),s={r:Ae(e.r),s:Ae(e.s)};return"0x"+is().recoverPubKey(Ae(i),s,e.recoveryParam).encode("hex",!1)}function od(i,t){const e=Ae(i);return e.length===32?new x_(e).publicKey:e.length===33?"0x"+is().keyFromPublic(e).getPublic(!1,"hex"):e.length===65?nr(e):sh.throwArgumentError("invalid public or private key","key","[REDACTED]")}var _f;(function(i){i[i.legacy=0]="legacy",i[i.eip2930=1]="eip2930",i[i.eip1559=2]="eip1559"})(_f||(_f={}));function N_(i){const t=od(i);return zb(of(fh(of(t,1)),12))}function O_(i,t){return N_(R_(Ae(i),t))}const T_="https://rpc.walletconnect.com/v1";async function F_(i,t,e,s,o,a){switch(e.t){case"eip191":return D_(i,t,e.s);case"eip1271":return await q_(i,t,e.s,s,o,a);default:throw new Error(`verifySignature failed: Attempted to verify CacaoSignature with unknown type: ${e.t}`)}}function D_(i,t,e){return O_(jp(t),e).toLowerCase()===i.toLowerCase()}async function q_(i,t,e,s,o,a){try{const h="0x1626ba7e",p="0000000000000000000000000000000000000000000000000000000000000040",v="0000000000000000000000000000000000000000000000000000000000000041",y=e.substring(2),M=jp(t).substring(2),P=h+M+p+v+y,T=await fetch(`${a||T_}/?chainId=${s}&projectId=${o}`,{method:"POST",body:JSON.stringify({id:k_(),jsonrpc:"2.0",method:"eth_call",params:[{to:i,data:P},"latest"]})}),{result:D}=await T.json();return D?D.slice(0,h.length).toLowerCase()===h.toLowerCase():!1}catch(h){return console.error("isValidEip1271Signature: ",h),!1}}function k_(){return Date.now()+Math.floor(Math.random()*1e3)}var B_=Object.defineProperty,j_=Object.defineProperties,U_=Object.getOwnPropertyDescriptors,Af=Object.getOwnPropertySymbols,$_=Object.prototype.hasOwnProperty,z_=Object.prototype.propertyIsEnumerable,Ef=(i,t,e)=>t in i?B_(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e,L_=(i,t)=>{for(var e in t||(t={}))$_.call(t,e)&&Ef(i,e,t[e]);if(Af)for(var e of Af(t))z_.call(t,e)&&Ef(i,e,t[e]);return i},K_=(i,t)=>j_(i,U_(t));const H_="did:pkh:",vh=i=>i==null?void 0:i.split(":"),ad=i=>{const t=i&&vh(i);if(t)return i.includes(H_)?t[3]:t[1]},If=i=>{const t=i&&vh(i);if(t)return t[2]+":"+t[3]},aa=i=>{const t=i&&vh(i);if(t)return t.pop()};async function Sf(i){const{cacao:t,projectId:e}=i,{s,p:o}=t,a=cd(o,o.iss),h=aa(o.iss);return await F_(h,a,s,ad(o.iss),e)}const cd=(i,t)=>{const e=`${i.domain} wants you to sign in with your Ethereum account:`,s=aa(t);if(!i.aud&&!i.uri)throw new Error("Either `aud` or `uri` is required to construct the message");let o=i.statement||void 0;const a=`URI: ${i.aud||i.uri}`,h=`Version: ${i.version}`,p=`Chain ID: ${ad(t)}`,v=`Nonce: ${i.nonce}`,y=`Issued At: ${i.iat}`,M=i.exp?`Expiration Time: ${i.exp}`:void 0,P=i.nbf?`Not Before: ${i.nbf}`:void 0,T=i.requestId?`Request ID: ${i.requestId}`:void 0,D=i.resources?`Resources:${i.resources.map(H=>`
10
+ - ${H}`).join("")}`:void 0,k=ta(i.resources);if(k){const H=Jn(k);o=t3(o,H)}return[e,s,"",o,"",a,h,p,v,y,M,P,T,D].filter(H=>H!=null).join(`
11
+ `)};function V_(i){return A.Buffer.from(JSON.stringify(i)).toString("base64")}function J_(i){return JSON.parse(A.Buffer.from(i,"base64").toString("utf-8"))}function _s(i){if(!i)throw new Error("No recap provided, value is undefined");if(!i.att)throw new Error("No `att` property found");const t=Object.keys(i.att);if(!(t!=null&&t.length))throw new Error("No resources found in `att` property");t.forEach(e=>{const s=i.att[e];if(Array.isArray(s))throw new Error(`Resource must be an object: ${e}`);if(typeof s!="object")throw new Error(`Resource must be an object: ${e}`);if(!Object.keys(s).length)throw new Error(`Resource object is empty: ${e}`);Object.keys(s).forEach(o=>{const a=s[o];if(!Array.isArray(a))throw new Error(`Ability limits ${o} must be an array of objects, found: ${a}`);if(!a.length)throw new Error(`Value of ${o} is empty array, must be an array with objects`);a.forEach(h=>{if(typeof h!="object")throw new Error(`Ability limits (${o}) must be an array of objects, found: ${h}`)})})})}function Q_(i,t,e,s={}){return e==null||e.sort((o,a)=>o.localeCompare(a)),{att:{[i]:G_(t,e,s)}}}function G_(i,t,e={}){t=t==null?void 0:t.sort((o,a)=>o.localeCompare(a));const s=t.map(o=>({[`${i}/${o}`]:[e]}));return Object.assign({},...s)}function hd(i){return _s(i),`urn:recap:${V_(i).replace(/=/g,"")}`}function Jn(i){const t=J_(i.replace("urn:recap:",""));return _s(t),t}function Y_(i,t,e){const s=Q_(i,t,e);return hd(s)}function W_(i){return i&&i.includes("urn:recap:")}function Z_(i,t){const e=Jn(i),s=Jn(t),o=X_(e,s);return hd(o)}function X_(i,t){_s(i),_s(t);const e=Object.keys(i.att).concat(Object.keys(t.att)).sort((o,a)=>o.localeCompare(a)),s={att:{}};return e.forEach(o=>{var a,h;Object.keys(((a=i.att)==null?void 0:a[o])||{}).concat(Object.keys(((h=t.att)==null?void 0:h[o])||{})).sort((p,v)=>p.localeCompare(v)).forEach(p=>{var v,y;s.att[o]=K_(L_({},s.att[o]),{[p]:((v=i.att[o])==null?void 0:v[p])||((y=t.att[o])==null?void 0:y[p])})})}),s}function t3(i="",t){_s(t);const e="I further authorize the stated URI to perform the following actions on my behalf: ";if(i.includes(e))return i;const s=[];let o=0;Object.keys(t.att).forEach(p=>{const v=Object.keys(t.att[p]).map(P=>({ability:P.split("/")[0],action:P.split("/")[1]}));v.sort((P,T)=>P.action.localeCompare(T.action));const y={};v.forEach(P=>{y[P.ability]||(y[P.ability]=[]),y[P.ability].push(P.action)});const M=Object.keys(y).map(P=>(o++,`(${o}) '${P}': '${y[P].join("', '")}' for '${p}'.`));s.push(M.join(", ").replace(".,","."))});const a=s.join(" "),h=`${e}${a}`;return`${i?i+" ":""}${h}`}function Pf(i){var t;const e=Jn(i);_s(e);const s=(t=e.att)==null?void 0:t.eip155;return s?Object.keys(s).map(o=>o.split("/")[1]):[]}function Mf(i){const t=Jn(i);_s(t);const e=[];return Object.values(t.att).forEach(s=>{Object.values(s).forEach(o=>{var a;(a=o==null?void 0:o[0])!=null&&a.chains&&e.push(o[0].chains)})}),[...new Set(e.flat())]}function ta(i){if(!i)return;const t=i==null?void 0:i[i.length-1];return W_(t)?t:void 0}const ud="base10",We="base16",nh="base64pad",yh="utf8",ld=0,Li=1,e3=0,Cf=1,oh=12,wh=32;function r3(){const i=A.x25519.generateKeyPair();return{privateKey:A.toString(i.secretKey,We),publicKey:A.toString(i.publicKey,We)}}function ah(){const i=A.random.randomBytes(wh);return A.toString(i,We)}function i3(i,t){const e=A.x25519.sharedKey(A.fromString(i,We),A.fromString(t,We),!0),s=new A.HKDF_1(A.sha256.SHA256,e).expand(wh);return A.toString(s,We)}function ea(i){const t=A.sha256.hash(A.fromString(i,We));return A.toString(t,We)}function Ui(i){const t=A.sha256.hash(A.fromString(i,yh));return A.toString(t,We)}function s3(i){return A.fromString(`${i}`,ud)}function Xn(i){return Number(A.toString(i,ud))}function n3(i){const t=s3(typeof i.type<"u"?i.type:ld);if(Xn(t)===Li&&typeof i.senderPublicKey>"u")throw new Error("Missing sender public key for type 1 envelope");const e=typeof i.senderPublicKey<"u"?A.fromString(i.senderPublicKey,We):void 0,s=typeof i.iv<"u"?A.fromString(i.iv,We):A.random.randomBytes(oh),o=new A.chacha20poly1305.ChaCha20Poly1305(A.fromString(i.symKey,We)).seal(s,A.fromString(i.message,yh));return a3({type:t,sealed:o,iv:s,senderPublicKey:e})}function o3(i){const t=new A.chacha20poly1305.ChaCha20Poly1305(A.fromString(i.symKey,We)),{sealed:e,iv:s}=ca(i.encoded),o=t.open(s,e);if(o===null)throw new Error("Failed to decrypt");return A.toString(o,yh)}function a3(i){if(Xn(i.type)===Li){if(typeof i.senderPublicKey>"u")throw new Error("Missing sender public key for type 1 envelope");return A.toString(A.concat([i.type,i.senderPublicKey,i.iv,i.sealed]),nh)}return A.toString(A.concat([i.type,i.iv,i.sealed]),nh)}function ca(i){const t=A.fromString(i,nh),e=t.slice(e3,Cf),s=Cf;if(Xn(e)===Li){const p=s+wh,v=p+oh,y=t.slice(s,p),M=t.slice(p,v),P=t.slice(v);return{type:e,sealed:P,iv:M,senderPublicKey:y}}const o=s+oh,a=t.slice(s,o),h=t.slice(o);return{type:e,sealed:h,iv:a}}function c3(i,t){const e=ca(i);return fd({type:Xn(e.type),senderPublicKey:typeof e.senderPublicKey<"u"?A.toString(e.senderPublicKey,We):void 0,receiverPublicKey:t==null?void 0:t.receiverPublicKey})}function fd(i){const t=(i==null?void 0:i.type)||ld;if(t===Li){if(typeof(i==null?void 0:i.senderPublicKey)>"u")throw new Error("missing sender public key");if(typeof(i==null?void 0:i.receiverPublicKey)>"u")throw new Error("missing receiver public key")}return{type:t,senderPublicKey:i==null?void 0:i.senderPublicKey,receiverPublicKey:i==null?void 0:i.receiverPublicKey}}function xf(i){return i.type===Li&&typeof i.senderPublicKey=="string"&&typeof i.receiverPublicKey=="string"}function h3(i){return new A.ellipticExports.ec("p256").keyFromPublic({x:A.Buffer.from(i.x,"base64").toString("hex"),y:A.Buffer.from(i.y,"base64").toString("hex")},"hex")}function u3(i){let t=i.replace(/-/g,"+").replace(/_/g,"/");const e=t.length%4;return e>0&&(t+="=".repeat(4-e)),t}function l3(i){return A.Buffer.from(u3(i),"base64")}function f3(i,t){const[e,s,o]=i.split("."),a=l3(o);if(a.length!==64)throw new Error("Invalid signature length");const h=a.slice(0,32).toString("hex"),p=a.slice(32,64).toString("hex"),v=`${e}.${s}`,y=new A.sha256.SHA256().update(A.Buffer.from(v)).digest(),M=h3(t),P=A.Buffer.from(y).toString("hex");if(!M.verify(P,{r:h,s:p}))throw new Error("Invalid signature");return A.decodeJWT(i).payload}const p3="irn";function ch(i){return(i==null?void 0:i.relay)||{protocol:p3}}function jn(i){const t=A.C[i];if(typeof t>"u")throw new Error(`Relay Protocol not supported: ${i}`);return t}var d3=Object.defineProperty,g3=Object.defineProperties,m3=Object.getOwnPropertyDescriptors,Rf=Object.getOwnPropertySymbols,v3=Object.prototype.hasOwnProperty,y3=Object.prototype.propertyIsEnumerable,Nf=(i,t,e)=>t in i?d3(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e,Of=(i,t)=>{for(var e in t||(t={}))v3.call(t,e)&&Nf(i,e,t[e]);if(Rf)for(var e of Rf(t))y3.call(t,e)&&Nf(i,e,t[e]);return i},w3=(i,t)=>g3(i,m3(t));function b3(i,t="-"){const e={},s="relay"+t;return Object.keys(i).forEach(o=>{if(o.startsWith(s)){const a=o.replace(s,""),h=i[o];e[a]=h}}),e}function Tf(i){i=i.includes("wc://")?i.replace("wc://",""):i,i=i.includes("wc:")?i.replace("wc:",""):i;const t=i.indexOf(":"),e=i.indexOf("?")!==-1?i.indexOf("?"):void 0,s=i.substring(0,t),o=i.substring(t+1,e).split("@"),a=typeof e<"u"?i.substring(e):"",h=A.queryString.parse(a),p=typeof h.methods=="string"?h.methods.split(","):void 0;return{protocol:s,topic:_3(o[0]),version:parseInt(o[1],10),symKey:h.symKey,relay:b3(h),methods:p,expiryTimestamp:h.expiryTimestamp?parseInt(h.expiryTimestamp,10):void 0}}function _3(i){return i.startsWith("//")?i.substring(2):i}function A3(i,t="-"){const e="relay",s={};return Object.keys(i).forEach(o=>{const a=e+t+o;i[o]&&(s[a]=i[o])}),s}function E3(i){return`${i.protocol}:${i.topic}@${i.version}?`+A.queryString.stringify(Of(w3(Of({symKey:i.symKey},A3(i.relay)),{expiryTimestamp:i.expiryTimestamp}),i.methods?{methods:i.methods.join(",")}:{}))}function sn(i){const t=[];return i.forEach(e=>{const[s,o]=e.split(":");t.push(`${s}:${o}`)}),t}function I3(i){const t=[];return Object.values(i).forEach(e=>{t.push(...sn(e.accounts))}),t}function S3(i,t){const e=[];return Object.values(i).forEach(s=>{sn(s.accounts).includes(t)&&e.push(...s.methods)}),e}function P3(i,t){const e=[];return Object.values(i).forEach(s=>{sn(s.accounts).includes(t)&&e.push(...s.events)}),e}function bh(i){return i.includes(":")}function Un(i){return bh(i)?i.split(":")[0]:i}function M3(i){const t={};return i==null||i.forEach(e=>{const[s,o]=e.split(":");t[s]||(t[s]={accounts:[],chains:[],events:[]}),t[s].accounts.push(e),t[s].chains.push(`${s}:${o}`)}),t}function Ff(i,t){t=t.map(s=>s.replace("did:pkh:",""));const e=M3(t);for(const[s,o]of Object.entries(e))o.methods?o.methods=Yo(o.methods,i):o.methods=i,o.events=["chainChanged","accountsChanged"];return e}const C3={INVALID_METHOD:{message:"Invalid method.",code:1001},INVALID_EVENT:{message:"Invalid event.",code:1002},INVALID_UPDATE_REQUEST:{message:"Invalid update request.",code:1003},INVALID_EXTEND_REQUEST:{message:"Invalid extend request.",code:1004},INVALID_SESSION_SETTLE_REQUEST:{message:"Invalid session settle request.",code:1005},UNAUTHORIZED_METHOD:{message:"Unauthorized method.",code:3001},UNAUTHORIZED_EVENT:{message:"Unauthorized event.",code:3002},UNAUTHORIZED_UPDATE_REQUEST:{message:"Unauthorized update request.",code:3003},UNAUTHORIZED_EXTEND_REQUEST:{message:"Unauthorized extend request.",code:3004},USER_REJECTED:{message:"User rejected.",code:5e3},USER_REJECTED_CHAINS:{message:"User rejected chains.",code:5001},USER_REJECTED_METHODS:{message:"User rejected methods.",code:5002},USER_REJECTED_EVENTS:{message:"User rejected events.",code:5003},UNSUPPORTED_CHAINS:{message:"Unsupported chains.",code:5100},UNSUPPORTED_METHODS:{message:"Unsupported methods.",code:5101},UNSUPPORTED_EVENTS:{message:"Unsupported events.",code:5102},UNSUPPORTED_ACCOUNTS:{message:"Unsupported accounts.",code:5103},UNSUPPORTED_NAMESPACE_KEY:{message:"Unsupported namespace key.",code:5104},USER_DISCONNECTED:{message:"User disconnected.",code:6e3},SESSION_SETTLEMENT_FAILED:{message:"Session settlement failed.",code:7e3},WC_METHOD_UNSUPPORTED:{message:"Unsupported wc_ method.",code:10001}},x3={NOT_INITIALIZED:{message:"Not initialized.",code:1},NO_MATCHING_KEY:{message:"No matching key.",code:2},RESTORE_WILL_OVERRIDE:{message:"Restore will override.",code:3},RESUBSCRIBED:{message:"Resubscribed.",code:4},MISSING_OR_INVALID:{message:"Missing or invalid.",code:5},EXPIRED:{message:"Expired.",code:6},UNKNOWN_TYPE:{message:"Unknown type.",code:7},MISMATCHED_TOPIC:{message:"Mismatched topic.",code:8},NON_CONFORMING_NAMESPACES:{message:"Non conforming namespaces.",code:9}};function G(i,t){const{message:e,code:s}=x3[i];return{message:t?`${e} ${t}`:e,code:s}}function Gt(i,t){const{message:e,code:s}=C3[i];return{message:t?`${e} ${t}`:e,code:s}}function yi(i,t){return!!Array.isArray(i)}function Qn(i){return Object.getPrototypeOf(i)===Object.prototype&&Object.keys(i).length}function or(i){return typeof i>"u"}function Pe(i,t){return t&&or(i)?!0:typeof i=="string"&&!!i.trim().length}function _h(i,t){return typeof i=="number"&&!isNaN(i)}function R3(i,t){const{requiredNamespaces:e}=t,s=Object.keys(i.namespaces),o=Object.keys(e);let a=!0;return ws(o,s)?(s.forEach(h=>{const{accounts:p,methods:v,events:y}=i.namespaces[h],M=sn(p),P=e[h];(!ws(Ap(h,P),M)||!ws(P.methods,v)||!ws(P.events,y))&&(a=!1)}),a):!1}function ha(i){return Pe(i,!1)&&i.includes(":")?i.split(":").length===2:!1}function N3(i){if(Pe(i,!1)&&i.includes(":")){const t=i.split(":");if(t.length===3){const e=t[0]+":"+t[1];return!!t[2]&&ha(e)}}return!1}function O3(i){if(Pe(i,!1))try{return typeof new URL(i)<"u"}catch{return!1}return!1}function T3(i){var t;return(t=i==null?void 0:i.proposer)==null?void 0:t.publicKey}function F3(i){return i==null?void 0:i.topic}function D3(i,t){let e=null;return Pe(i==null?void 0:i.publicKey,!1)||(e=G("MISSING_OR_INVALID",`${t} controller public key should be a string`)),e}function Df(i){let t=!0;return yi(i)?i.length&&(t=i.every(e=>Pe(e,!1))):t=!1,t}function q3(i,t,e){let s=null;return yi(t)&&t.length?t.forEach(o=>{s||ha(o)||(s=Gt("UNSUPPORTED_CHAINS",`${e}, chain ${o} should be a string and conform to "namespace:chainId" format`))}):ha(i)||(s=Gt("UNSUPPORTED_CHAINS",`${e}, chains must be defined as "namespace:chainId" e.g. "eip155:1": {...} in the namespace key OR as an array of CAIP-2 chainIds e.g. eip155: { chains: ["eip155:1", "eip155:5"] }`)),s}function k3(i,t,e){let s=null;return Object.entries(i).forEach(([o,a])=>{if(s)return;const h=q3(o,Ap(o,a),`${t} ${e}`);h&&(s=h)}),s}function B3(i,t){let e=null;return yi(i)?i.forEach(s=>{e||N3(s)||(e=Gt("UNSUPPORTED_ACCOUNTS",`${t}, account ${s} should be a string and conform to "namespace:chainId:address" format`))}):e=Gt("UNSUPPORTED_ACCOUNTS",`${t}, accounts should be an array of strings conforming to "namespace:chainId:address" format`),e}function j3(i,t){let e=null;return Object.values(i).forEach(s=>{if(e)return;const o=B3(s==null?void 0:s.accounts,`${t} namespace`);o&&(e=o)}),e}function U3(i,t){let e=null;return Df(i==null?void 0:i.methods)?Df(i==null?void 0:i.events)||(e=Gt("UNSUPPORTED_EVENTS",`${t}, events should be an array of strings or empty array for no events`)):e=Gt("UNSUPPORTED_METHODS",`${t}, methods should be an array of strings or empty array for no methods`),e}function pd(i,t){let e=null;return Object.values(i).forEach(s=>{if(e)return;const o=U3(s,`${t}, namespace`);o&&(e=o)}),e}function $3(i,t,e){let s=null;if(i&&Qn(i)){const o=pd(i,t);o&&(s=o);const a=k3(i,t,e);a&&(s=a)}else s=G("MISSING_OR_INVALID",`${t}, ${e} should be an object with data`);return s}function zc(i,t){let e=null;if(i&&Qn(i)){const s=pd(i,t);s&&(e=s);const o=j3(i,t);o&&(e=o)}else e=G("MISSING_OR_INVALID",`${t}, namespaces should be an object with data`);return e}function dd(i){return Pe(i.protocol,!0)}function z3(i,t){let e=!1;return i?i&&yi(i)&&i.length&&i.forEach(s=>{e=dd(s)}):e=!0,e}function L3(i){return typeof i=="number"}function sr(i){return typeof i<"u"&&typeof i!==null}function K3(i){return!(!i||typeof i!="object"||!i.code||!_h(i.code)||!i.message||!Pe(i.message,!1))}function H3(i){return!(or(i)||!Pe(i.method,!1))}function V3(i){return!(or(i)||or(i.result)&&or(i.error)||!_h(i.id)||!Pe(i.jsonrpc,!1))}function J3(i){return!(or(i)||!Pe(i.name,!1))}function qf(i,t){return!(!ha(t)||!I3(i).includes(t))}function Q3(i,t,e){return Pe(e,!1)?S3(i,t).includes(e):!1}function G3(i,t,e){return Pe(e,!1)?P3(i,t).includes(e):!1}function kf(i,t,e){let s=null;const o=Y3(i),a=W3(t),h=Object.keys(o),p=Object.keys(a),v=Bf(Object.keys(i)),y=Bf(Object.keys(t)),M=v.filter(P=>!y.includes(P));return M.length&&(s=G("NON_CONFORMING_NAMESPACES",`${e} namespaces keys don't satisfy requiredNamespaces.
12
+ Required: ${M.toString()}
13
+ Received: ${Object.keys(t).toString()}`)),ws(h,p)||(s=G("NON_CONFORMING_NAMESPACES",`${e} namespaces chains don't satisfy required namespaces.
14
+ Required: ${h.toString()}
15
+ Approved: ${p.toString()}`)),Object.keys(t).forEach(P=>{if(!P.includes(":")||s)return;const T=sn(t[P].accounts);T.includes(P)||(s=G("NON_CONFORMING_NAMESPACES",`${e} namespaces accounts don't satisfy namespace accounts for ${P}
16
+ Required: ${P}
17
+ Approved: ${T.toString()}`))}),h.forEach(P=>{s||(ws(o[P].methods,a[P].methods)?ws(o[P].events,a[P].events)||(s=G("NON_CONFORMING_NAMESPACES",`${e} namespaces events don't satisfy namespace events for ${P}`)):s=G("NON_CONFORMING_NAMESPACES",`${e} namespaces methods don't satisfy namespace methods for ${P}`))}),s}function Y3(i){const t={};return Object.keys(i).forEach(e=>{var s;e.includes(":")?t[e]=i[e]:(s=i[e].chains)==null||s.forEach(o=>{t[o]={methods:i[e].methods,events:i[e].events}})}),t}function Bf(i){return[...new Set(i.map(t=>t.includes(":")?t.split(":")[0]:t))]}function W3(i){const t={};return Object.keys(i).forEach(e=>{if(e.includes(":"))t[e]=i[e];else{const s=sn(i[e].accounts);s==null||s.forEach(o=>{t[o]={accounts:i[e].accounts.filter(a=>a.includes(`${o}:`)),methods:i[e].methods,events:i[e].events}})}}),t}function Z3(i,t){return _h(i)&&i<=t.max&&i>=t.min}function jf(){const i=Wn();return new Promise(t=>{switch(i){case mr.browser:t(X3());break;case mr.reactNative:t(tA());break;case mr.node:t(eA());break;default:t(!0)}})}function X3(){return Yn()&&(navigator==null?void 0:navigator.onLine)}async function tA(){if(Gn()&&typeof A.global<"u"&&A.global!=null&&A.global.NetInfo){const i=await(A.global==null?void 0:A.global.NetInfo.fetch());return i==null?void 0:i.isConnected}return!0}function eA(){return!0}function rA(i){switch(Wn()){case mr.browser:iA(i);break;case mr.reactNative:sA(i);break}}function iA(i){!Gn()&&Yn()&&(window.addEventListener("online",()=>i(!0)),window.addEventListener("offline",()=>i(!1)))}function sA(i){var t;Gn()&&typeof A.global<"u"&&A.global!=null&&A.global.NetInfo&&((t=A.global)==null||t.NetInfo.addEventListener(e=>i(e==null?void 0:e.isConnected)))}const Lc={};class On{static get(t){return Lc[t]}static set(t,e){Lc[t]=e}static delete(t){delete Lc[t]}}class nA extends A.IEvents{constructor(t){super(),this.opts=t,this.protocol="wc",this.version=2}}class oA extends A.IEvents{constructor(t,e){super(),this.core=t,this.logger=e,this.records=new Map}}class aA{constructor(t,e){this.logger=t,this.core=e}}let cA=class extends A.IEvents{constructor(t,e){super(),this.relayer=t,this.logger=e}},hA=class extends A.IEvents{constructor(t){super()}},uA=class{constructor(t,e,s,o){this.core=t,this.logger=e,this.name=s}};class lA extends A.IEvents{constructor(t,e){super(),this.relayer=t,this.logger=e}}let fA=class extends A.IEvents{constructor(t,e){super(),this.core=t,this.logger=e}},pA=class{constructor(t,e,s){this.core=t,this.logger=e,this.store=s}},dA=class{constructor(t,e){this.projectId=t,this.logger=e}},gA=class{constructor(t,e,s){this.core=t,this.logger=e,this.telemetryEnabled=s}},mA=class{constructor(t){this.opts=t,this.protocol="wc",this.version=2}},vA=class{constructor(t){this.client=t}};function yA(i,t){if(i.length>=255)throw new TypeError("Alphabet too long");for(var e=new Uint8Array(256),s=0;s<e.length;s++)e[s]=255;for(var o=0;o<i.length;o++){var a=i.charAt(o),h=a.charCodeAt(0);if(e[h]!==255)throw new TypeError(a+" is ambiguous");e[h]=o}var p=i.length,v=i.charAt(0),y=Math.log(p)/Math.log(256),M=Math.log(256)/Math.log(p);function P(k){if(k instanceof Uint8Array||(ArrayBuffer.isView(k)?k=new Uint8Array(k.buffer,k.byteOffset,k.byteLength):Array.isArray(k)&&(k=Uint8Array.from(k))),!(k instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(k.length===0)return"";for(var H=0,V=0,Q=0,ht=k.length;Q!==ht&&k[Q]===0;)Q++,H++;for(var ut=(ht-Q)*M+1>>>0,W=new Uint8Array(ut);Q!==ht;){for(var et=k[Q],ct=0,st=ut-1;(et!==0||ct<V)&&st!==-1;st--,ct++)et+=256*W[st]>>>0,W[st]=et%p>>>0,et=et/p>>>0;if(et!==0)throw new Error("Non-zero carry");V=ct,Q++}for(var gt=ut-V;gt!==ut&&W[gt]===0;)gt++;for(var kt=v.repeat(H);gt<ut;++gt)kt+=i.charAt(W[gt]);return kt}function T(k){if(typeof k!="string")throw new TypeError("Expected String");if(k.length===0)return new Uint8Array;var H=0;if(k[H]!==" "){for(var V=0,Q=0;k[H]===v;)V++,H++;for(var ht=(k.length-H)*y+1>>>0,ut=new Uint8Array(ht);k[H];){var W=e[k.charCodeAt(H)];if(W===255)return;for(var et=0,ct=ht-1;(W!==0||et<Q)&&ct!==-1;ct--,et++)W+=p*ut[ct]>>>0,ut[ct]=W%256>>>0,W=W/256>>>0;if(W!==0)throw new Error("Non-zero carry");Q=et,H++}if(k[H]!==" "){for(var st=ht-Q;st!==ht&&ut[st]===0;)st++;for(var gt=new Uint8Array(V+(ht-st)),kt=V;st!==ht;)gt[kt++]=ut[st++];return gt}}}function D(k){var H=T(k);if(H)return H;throw new Error(`Non-${t} character`)}return{encode:P,decodeUnsafe:T,decode:D}}var wA=yA,bA=wA;const gd=i=>{if(i instanceof Uint8Array&&i.constructor.name==="Uint8Array")return i;if(i instanceof ArrayBuffer)return new Uint8Array(i);if(ArrayBuffer.isView(i))return new Uint8Array(i.buffer,i.byteOffset,i.byteLength);throw new Error("Unknown type, must be binary type")},_A=i=>new TextEncoder().encode(i),AA=i=>new TextDecoder().decode(i);class EA{constructor(t,e,s){this.name=t,this.prefix=e,this.baseEncode=s}encode(t){if(t instanceof Uint8Array)return`${this.prefix}${this.baseEncode(t)}`;throw Error("Unknown type, must be binary type")}}class IA{constructor(t,e,s){if(this.name=t,this.prefix=e,e.codePointAt(0)===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=e.codePointAt(0),this.baseDecode=s}decode(t){if(typeof t=="string"){if(t.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(t)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(t.slice(this.prefix.length))}else throw Error("Can only multibase decode strings")}or(t){return md(this,t)}}class SA{constructor(t){this.decoders=t}or(t){return md(this,t)}decode(t){const e=t[0],s=this.decoders[e];if(s)return s.decode(t);throw RangeError(`Unable to decode multibase string ${JSON.stringify(t)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}}const md=(i,t)=>new SA({...i.decoders||{[i.prefix]:i},...t.decoders||{[t.prefix]:t}});class PA{constructor(t,e,s,o){this.name=t,this.prefix=e,this.baseEncode=s,this.baseDecode=o,this.encoder=new EA(t,e,s),this.decoder=new IA(t,e,o)}encode(t){return this.encoder.encode(t)}decode(t){return this.decoder.decode(t)}}const da=({name:i,prefix:t,encode:e,decode:s})=>new PA(i,t,e,s),to=({prefix:i,name:t,alphabet:e})=>{const{encode:s,decode:o}=bA(e,t);return da({prefix:i,name:t,encode:s,decode:a=>gd(o(a))})},MA=(i,t,e,s)=>{const o={};for(let M=0;M<t.length;++M)o[t[M]]=M;let a=i.length;for(;i[a-1]==="=";)--a;const h=new Uint8Array(a*e/8|0);let p=0,v=0,y=0;for(let M=0;M<a;++M){const P=o[i[M]];if(P===void 0)throw new SyntaxError(`Non-${s} character`);v=v<<e|P,p+=e,p>=8&&(p-=8,h[y++]=255&v>>p)}if(p>=e||255&v<<8-p)throw new SyntaxError("Unexpected end of data");return h},CA=(i,t,e)=>{const s=t[t.length-1]==="=",o=(1<<e)-1;let a="",h=0,p=0;for(let v=0;v<i.length;++v)for(p=p<<8|i[v],h+=8;h>e;)h-=e,a+=t[o&p>>h];if(h&&(a+=t[o&p<<e-h]),s)for(;a.length*e&7;)a+="=";return a},ze=({name:i,prefix:t,bitsPerChar:e,alphabet:s})=>da({prefix:t,name:i,encode(o){return CA(o,s,e)},decode(o){return MA(o,s,e,i)}}),xA=da({prefix:"\0",name:"identity",encode:i=>AA(i),decode:i=>_A(i)});var RA=Object.freeze({__proto__:null,identity:xA});const NA=ze({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var OA=Object.freeze({__proto__:null,base2:NA});const TA=ze({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var FA=Object.freeze({__proto__:null,base8:TA});const DA=to({prefix:"9",name:"base10",alphabet:"0123456789"});var qA=Object.freeze({__proto__:null,base10:DA});const kA=ze({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),BA=ze({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var jA=Object.freeze({__proto__:null,base16:kA,base16upper:BA});const UA=ze({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),$A=ze({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),zA=ze({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),LA=ze({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),KA=ze({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),HA=ze({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),VA=ze({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),JA=ze({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),QA=ze({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var GA=Object.freeze({__proto__:null,base32:UA,base32upper:$A,base32pad:zA,base32padupper:LA,base32hex:KA,base32hexupper:HA,base32hexpad:VA,base32hexpadupper:JA,base32z:QA});const YA=to({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),WA=to({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var ZA=Object.freeze({__proto__:null,base36:YA,base36upper:WA});const XA=to({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),t6=to({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var e6=Object.freeze({__proto__:null,base58btc:XA,base58flickr:t6});const r6=ze({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),i6=ze({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),s6=ze({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),n6=ze({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var o6=Object.freeze({__proto__:null,base64:r6,base64pad:i6,base64url:s6,base64urlpad:n6});const vd=Array.from("🚀🪐☄🛰🌌🌑🌒🌓🌔🌕🌖🌗🌘🌍🌏🌎🐉☀💻🖥💾💿😂❤😍🤣😊🙏💕😭😘👍😅👏😁🔥🥰💔💖💙😢🤔😆🙄💪😉☺👌🤗💜😔😎😇🌹🤦🎉💞✌✨🤷😱😌🌸🙌😋💗💚😏💛🙂💓🤩😄😀🖤😃💯🙈👇🎶😒🤭❣😜💋👀😪😑💥🙋😞😩😡🤪👊🥳😥🤤👉💃😳✋😚😝😴🌟😬🙃🍀🌷😻😓⭐✅🥺🌈😈🤘💦✔😣🏃💐☹🎊💘😠☝😕🌺🎂🌻😐🖕💝🙊😹🗣💫💀👑🎵🤞😛🔴😤🌼😫⚽🤙☕🏆🤫👈😮🙆🍻🍃🐶💁😲🌿🧡🎁⚡🌞🎈❌✊👋😰🤨😶🤝🚶💰🍓💢🤟🙁🚨💨🤬✈🎀🍺🤓😙💟🌱😖👶🥴▶➡❓💎💸⬇😨🌚🦋😷🕺⚠🙅😟😵👎🤲🤠🤧📌🔵💅🧐🐾🍒😗🤑🌊🤯🐷☎💧😯💆👆🎤🙇🍑❄🌴💣🐸💌📍🥀🤢👅💡💩👐📸👻🤐🤮🎼🥵🚩🍎🍊👼💍📣🥂"),a6=vd.reduce((i,t,e)=>(i[e]=t,i),[]),c6=vd.reduce((i,t,e)=>(i[t.codePointAt(0)]=e,i),[]);function h6(i){return i.reduce((t,e)=>(t+=a6[e],t),"")}function u6(i){const t=[];for(const e of i){const s=c6[e.codePointAt(0)];if(s===void 0)throw new Error(`Non-base256emoji character: ${e}`);t.push(s)}return new Uint8Array(t)}const l6=da({prefix:"🚀",name:"base256emoji",encode:h6,decode:u6});var f6=Object.freeze({__proto__:null,base256emoji:l6}),p6=yd,Uf=128,d6=127,g6=~d6,m6=Math.pow(2,31);function yd(i,t,e){t=t||[],e=e||0;for(var s=e;i>=m6;)t[e++]=i&255|Uf,i/=128;for(;i&g6;)t[e++]=i&255|Uf,i>>>=7;return t[e]=i|0,yd.bytes=e-s+1,t}var v6=hh,y6=128,$f=127;function hh(i,s){var e=0,s=s||0,o=0,a=s,h,p=i.length;do{if(a>=p)throw hh.bytes=0,new RangeError("Could not decode varint");h=i[a++],e+=o<28?(h&$f)<<o:(h&$f)*Math.pow(2,o),o+=7}while(h>=y6);return hh.bytes=a-s,e}var w6=Math.pow(2,7),b6=Math.pow(2,14),_6=Math.pow(2,21),A6=Math.pow(2,28),E6=Math.pow(2,35),I6=Math.pow(2,42),S6=Math.pow(2,49),P6=Math.pow(2,56),M6=Math.pow(2,63),C6=function(i){return i<w6?1:i<b6?2:i<_6?3:i<A6?4:i<E6?5:i<I6?6:i<S6?7:i<P6?8:i<M6?9:10},x6={encode:p6,decode:v6,encodingLength:C6},wd=x6;const zf=(i,t,e=0)=>(wd.encode(i,t,e),t),Lf=i=>wd.encodingLength(i),uh=(i,t)=>{const e=t.byteLength,s=Lf(i),o=s+Lf(e),a=new Uint8Array(o+e);return zf(i,a,0),zf(e,a,s),a.set(t,o),new R6(i,e,t,a)};class R6{constructor(t,e,s,o){this.code=t,this.size=e,this.digest=s,this.bytes=o}}const bd=({name:i,code:t,encode:e})=>new N6(i,t,e);class N6{constructor(t,e,s){this.name=t,this.code=e,this.encode=s}digest(t){if(t instanceof Uint8Array){const e=this.encode(t);return e instanceof Uint8Array?uh(this.code,e):e.then(s=>uh(this.code,s))}else throw Error("Unknown type, must be binary type")}}const _d=i=>async t=>new Uint8Array(await crypto.subtle.digest(i,t)),O6=bd({name:"sha2-256",code:18,encode:_d("SHA-256")}),T6=bd({name:"sha2-512",code:19,encode:_d("SHA-512")});var F6=Object.freeze({__proto__:null,sha256:O6,sha512:T6});const Ad=0,D6="identity",Ed=gd,q6=i=>uh(Ad,Ed(i)),k6={code:Ad,name:D6,encode:Ed,digest:q6};var B6=Object.freeze({__proto__:null,identity:k6});new TextEncoder,new TextDecoder;const Kf={...RA,...OA,...FA,...qA,...jA,...GA,...ZA,...e6,...o6,...f6};({...F6,...B6});function j6(i=0){return globalThis.Buffer!=null&&globalThis.Buffer.allocUnsafe!=null?globalThis.Buffer.allocUnsafe(i):new Uint8Array(i)}function Id(i,t,e,s){return{name:i,prefix:t,encoder:{name:i,prefix:t,encode:e},decoder:{decode:s}}}const Hf=Id("utf8","u",i=>"u"+new TextDecoder("utf8").decode(i),i=>new TextEncoder().encode(i.substring(1))),Kc=Id("ascii","a",i=>{let t="a";for(let e=0;e<i.length;e++)t+=String.fromCharCode(i[e]);return t},i=>{i=i.substring(1);const t=j6(i.length);for(let e=0;e<i.length;e++)t[e]=i.charCodeAt(e);return t}),U6={utf8:Hf,"utf-8":Hf,hex:Kf.base16,latin1:Kc,ascii:Kc,binary:Kc,...Kf};function $6(i,t="utf8"){const e=U6[t];if(!e)throw new Error(`Unsupported encoding "${t}"`);return(t==="utf8"||t==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?globalThis.Buffer.from(i,"utf8"):e.decoder.decode(`${e.prefix}${i}`)}const Sd="wc",Pd=2,Ah="core",wi=`${Sd}@2:${Ah}:`,z6={name:Ah,logger:"error"},L6={database:":memory:"},K6="crypto",Vf="client_ed25519_seed",H6=A.cjs.ONE_DAY,V6="keychain",J6="0.3",Q6="messages",G6="0.3",Y6=A.cjs.SIX_HOURS,W6="publisher",Md="irn",Z6="error",Cd="wss://relay.walletconnect.org",X6="relayer",ar={message:"relayer_message",message_ack:"relayer_message_ack",connect:"relayer_connect",disconnect:"relayer_disconnect",error:"relayer_error",connection_stalled:"relayer_connection_stalled",transport_closed:"relayer_transport_closed",publish:"relayer_publish"},tE="_subscription",xr={payload:"payload",connect:"connect",disconnect:"disconnect",error:"error"},eE=.1,xd="2.15.3",rE=1e4,iE="0.3",sE="WALLETCONNECT_CLIENT_ID",li={created:"subscription_created",deleted:"subscription_deleted",expired:"subscription_expired",disabled:"subscription_disabled",sync:"subscription_sync",resubscribed:"subscription_resubscribed"},nE="subscription",oE="0.3",aE=A.cjs.FIVE_SECONDS*1e3,cE="pairing",hE="0.3",Tn={wc_pairingDelete:{req:{ttl:A.cjs.ONE_DAY,prompt:!1,tag:1e3},res:{ttl:A.cjs.ONE_DAY,prompt:!1,tag:1001}},wc_pairingPing:{req:{ttl:A.cjs.THIRTY_SECONDS,prompt:!1,tag:1002},res:{ttl:A.cjs.THIRTY_SECONDS,prompt:!1,tag:1003}},unregistered_method:{req:{ttl:A.cjs.ONE_DAY,prompt:!1,tag:0},res:{ttl:A.cjs.ONE_DAY,prompt:!1,tag:0}}},Js={create:"pairing_create",expire:"pairing_expire",delete:"pairing_delete",ping:"pairing_ping"},zr={created:"history_created",updated:"history_updated",deleted:"history_deleted",sync:"history_sync"},uE="history",lE="0.3",fE="expirer",Rr={created:"expirer_created",deleted:"expirer_deleted",expired:"expirer_expired",sync:"expirer_sync"},pE="0.3",dE="verify-api",gE="https://verify.walletconnect.com",Rd="https://verify.walletconnect.org",Kn=Rd,mE=`${Kn}/v3`,vE=[gE,Rd],yE="echo",wE="https://echo.walletconnect.com",ci={pairing_started:"pairing_started",pairing_uri_validation_success:"pairing_uri_validation_success",pairing_uri_not_expired:"pairing_uri_not_expired",store_new_pairing:"store_new_pairing",subscribing_pairing_topic:"subscribing_pairing_topic",subscribe_pairing_topic_success:"subscribe_pairing_topic_success",existing_pairing:"existing_pairing",pairing_not_expired:"pairing_not_expired",emit_inactive_pairing:"emit_inactive_pairing",emit_session_proposal:"emit_session_proposal",subscribing_to_pairing_topic:"subscribing_to_pairing_topic"},Bi={no_wss_connection:"no_wss_connection",no_internet_connection:"no_internet_connection",malformed_pairing_uri:"malformed_pairing_uri",active_pairing_already_exists:"active_pairing_already_exists",subscribe_pairing_topic_failure:"subscribe_pairing_topic_failure",pairing_expired:"pairing_expired",proposal_expired:"proposal_expired",proposal_listener_not_found:"proposal_listener_not_found"},Lr={session_approve_started:"session_approve_started",proposal_not_expired:"proposal_not_expired",session_namespaces_validation_success:"session_namespaces_validation_success",create_session_topic:"create_session_topic",subscribing_session_topic:"subscribing_session_topic",subscribe_session_topic_success:"subscribe_session_topic_success",publishing_session_approve:"publishing_session_approve",session_approve_publish_success:"session_approve_publish_success",store_session:"store_session",publishing_session_settle:"publishing_session_settle",session_settle_publish_success:"session_settle_publish_success"},gs={no_internet_connection:"no_internet_connection",no_wss_connection:"no_wss_connection",proposal_expired:"proposal_expired",subscribe_session_topic_failure:"subscribe_session_topic_failure",session_approve_publish_failure:"session_approve_publish_failure",session_settle_publish_failure:"session_settle_publish_failure",session_approve_namespace_validation_failure:"session_approve_namespace_validation_failure",proposal_not_found:"proposal_not_found"},ms={authenticated_session_approve_started:"authenticated_session_approve_started",authenticated_session_not_expired:"authenticated_session_not_expired",chains_caip2_compliant:"chains_caip2_compliant",chains_evm_compliant:"chains_evm_compliant",create_authenticated_session_topic:"create_authenticated_session_topic",cacaos_verified:"cacaos_verified",store_authenticated_session:"store_authenticated_session",subscribing_authenticated_session_topic:"subscribing_authenticated_session_topic",subscribe_authenticated_session_topic_success:"subscribe_authenticated_session_topic_success",publishing_authenticated_session_approve:"publishing_authenticated_session_approve",authenticated_session_approve_publish_success:"authenticated_session_approve_publish_success"},Fn={no_internet_connection:"no_internet_connection",no_wss_connection:"no_wss_connection",missing_session_authenticate_request:"missing_session_authenticate_request",session_authenticate_request_expired:"session_authenticate_request_expired",chains_caip2_compliant_failure:"chains_caip2_compliant_failure",chains_evm_compliant_failure:"chains_evm_compliant_failure",invalid_cacao:"invalid_cacao",subscribe_authenticated_session_topic_failure:"subscribe_authenticated_session_topic_failure",authenticated_session_approve_publish_failure:"authenticated_session_approve_publish_failure",authenticated_session_pending_request_not_found:"authenticated_session_pending_request_not_found"},bE=.1,_E="event-client",AE=86400,EE="https://pulse.walletconnect.com/batch";class IE{constructor(t,e){this.core=t,this.logger=e,this.keychain=new Map,this.name=V6,this.version=J6,this.initialized=!1,this.storagePrefix=wi,this.init=async()=>{if(!this.initialized){const s=await this.getKeyChain();typeof s<"u"&&(this.keychain=s),this.initialized=!0}},this.has=s=>(this.isInitialized(),this.keychain.has(s)),this.set=async(s,o)=>{this.isInitialized(),this.keychain.set(s,o),await this.persist()},this.get=s=>{this.isInitialized();const o=this.keychain.get(s);if(typeof o>"u"){const{message:a}=G("NO_MATCHING_KEY",`${this.name}: ${s}`);throw new Error(a)}return o},this.del=async s=>{this.isInitialized(),this.keychain.delete(s),await this.persist()},this.core=t,this.logger=A.E(e,this.name)}get context(){return A.y(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+"//"+this.name}async setKeyChain(t){await this.core.storage.setItem(this.storageKey,Ep(t))}async getKeyChain(){const t=await this.core.storage.getItem(this.storageKey);return typeof t<"u"?Ip(t):void 0}async persist(){await this.setKeyChain(this.keychain)}isInitialized(){if(!this.initialized){const{message:t}=G("NOT_INITIALIZED",this.name);throw new Error(t)}}}class SE{constructor(t,e,s){this.core=t,this.logger=e,this.name=K6,this.randomSessionIdentifier=ah(),this.initialized=!1,this.init=async()=>{this.initialized||(await this.keychain.init(),this.initialized=!0)},this.hasKeys=o=>(this.isInitialized(),this.keychain.has(o)),this.getClientId=async()=>{this.isInitialized();const o=await this.getClientSeed(),a=A.generateKeyPair(o);return A.encodeIss(a.publicKey)},this.generateKeyPair=()=>{this.isInitialized();const o=r3();return this.setPrivateKey(o.publicKey,o.privateKey)},this.signJWT=async o=>{this.isInitialized();const a=await this.getClientSeed(),h=A.generateKeyPair(a),p=this.randomSessionIdentifier,v=H6;return await A.signJWT(p,o,v,h)},this.generateSharedKey=(o,a,h)=>{this.isInitialized();const p=this.getPrivateKey(o),v=i3(p,a);return this.setSymKey(v,h)},this.setSymKey=async(o,a)=>{this.isInitialized();const h=a||ea(o);return await this.keychain.set(h,o),h},this.deleteKeyPair=async o=>{this.isInitialized(),await this.keychain.del(o)},this.deleteSymKey=async o=>{this.isInitialized(),await this.keychain.del(o)},this.encode=async(o,a,h)=>{this.isInitialized();const p=fd(h),v=A.safeJsonStringify(a);if(xf(p)){const T=p.senderPublicKey,D=p.receiverPublicKey;o=await this.generateSharedKey(T,D)}const y=this.getSymKey(o),{type:M,senderPublicKey:P}=p;return n3({type:M,symKey:y,message:v,senderPublicKey:P})},this.decode=async(o,a,h)=>{this.isInitialized();const p=c3(a,h);if(xf(p)){const v=p.receiverPublicKey,y=p.senderPublicKey;o=await this.generateSharedKey(v,y)}try{const v=this.getSymKey(o),y=o3({symKey:v,encoded:a});return A.safeJsonParse(y)}catch(v){this.logger.error(`Failed to decode message from topic: '${o}', clientId: '${await this.getClientId()}'`),this.logger.error(v)}},this.getPayloadType=o=>{const a=ca(o);return Xn(a.type)},this.getPayloadSenderPublicKey=o=>{const a=ca(o);return a.senderPublicKey?A.toString(a.senderPublicKey,We):void 0},this.core=t,this.logger=A.E(e,this.name),this.keychain=s||new IE(this.core,this.logger)}get context(){return A.y(this.logger)}async setPrivateKey(t,e){return await this.keychain.set(t,e),t}getPrivateKey(t){return this.keychain.get(t)}async getClientSeed(){let t="";try{t=this.keychain.get(Vf)}catch{t=ah(),await this.keychain.set(Vf,t)}return $6(t,"base16")}getSymKey(t){return this.keychain.get(t)}isInitialized(){if(!this.initialized){const{message:t}=G("NOT_INITIALIZED",this.name);throw new Error(t)}}}class PE extends aA{constructor(t,e){super(t,e),this.logger=t,this.core=e,this.messages=new Map,this.name=Q6,this.version=G6,this.initialized=!1,this.storagePrefix=wi,this.init=async()=>{if(!this.initialized){this.logger.trace("Initialized");try{const s=await this.getRelayerMessages();typeof s<"u"&&(this.messages=s),this.logger.debug(`Successfully Restored records for ${this.name}`),this.logger.trace({type:"method",method:"restore",size:this.messages.size})}catch(s){this.logger.debug(`Failed to Restore records for ${this.name}`),this.logger.error(s)}finally{this.initialized=!0}}},this.set=async(s,o)=>{this.isInitialized();const a=Ui(o);let h=this.messages.get(s);return typeof h>"u"&&(h={}),typeof h[a]<"u"||(h[a]=o,this.messages.set(s,h),await this.persist()),a},this.get=s=>{this.isInitialized();let o=this.messages.get(s);return typeof o>"u"&&(o={}),o},this.has=(s,o)=>{this.isInitialized();const a=this.get(s),h=Ui(o);return typeof a[h]<"u"},this.del=async s=>{this.isInitialized(),this.messages.delete(s),await this.persist()},this.logger=A.E(t,this.name),this.core=e}get context(){return A.y(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+"//"+this.name}async setRelayerMessages(t){await this.core.storage.setItem(this.storageKey,Ep(t))}async getRelayerMessages(){const t=await this.core.storage.getItem(this.storageKey);return typeof t<"u"?Ip(t):void 0}async persist(){await this.setRelayerMessages(this.messages)}isInitialized(){if(!this.initialized){const{message:t}=G("NOT_INITIALIZED",this.name);throw new Error(t)}}}class ME extends cA{constructor(t,e){super(t,e),this.relayer=t,this.logger=e,this.events=new A.eventsExports.EventEmitter,this.name=W6,this.queue=new Map,this.publishTimeout=A.cjs.toMiliseconds(A.cjs.ONE_MINUTE),this.failedPublishTimeout=A.cjs.toMiliseconds(A.cjs.ONE_SECOND),this.needsTransportRestart=!1,this.publish=async(s,o,a)=>{var h;this.logger.debug("Publishing Payload"),this.logger.trace({type:"method",method:"publish",params:{topic:s,message:o,opts:a}});const p=(a==null?void 0:a.ttl)||Y6,v=ch(a),y=(a==null?void 0:a.prompt)||!1,M=(a==null?void 0:a.tag)||0,P=(a==null?void 0:a.id)||A.getBigIntRpcId().toString(),T={topic:s,message:o,opts:{ttl:p,relay:v,prompt:y,tag:M,id:P,attestation:a==null?void 0:a.attestation}},D=`Failed to publish payload, please try again. id:${P} tag:${M}`,k=Date.now();let H,V=1;try{for(;H===void 0;){if(Date.now()-k>this.publishTimeout)throw new Error(D);this.logger.trace({id:P,attempts:V},`publisher.publish - attempt ${V}`),H=await await Qs(this.rpcPublish(s,o,p,v,y,M,P,a==null?void 0:a.attestation).catch(Q=>this.logger.warn(Q)),this.publishTimeout,D),V++,H||await new Promise(Q=>setTimeout(Q,this.failedPublishTimeout))}this.relayer.events.emit(ar.publish,T),this.logger.debug("Successfully Published Payload"),this.logger.trace({type:"method",method:"publish",params:{id:P,topic:s,message:o,opts:a}})}catch(Q){if(this.logger.debug("Failed to Publish Payload"),this.logger.error(Q),(h=a==null?void 0:a.internal)!=null&&h.throwOnFailedPublish)throw Q;this.queue.set(P,T)}},this.on=(s,o)=>{this.events.on(s,o)},this.once=(s,o)=>{this.events.once(s,o)},this.off=(s,o)=>{this.events.off(s,o)},this.removeListener=(s,o)=>{this.events.removeListener(s,o)},this.relayer=t,this.logger=A.E(e,this.name),this.registerEventListeners()}get context(){return A.y(this.logger)}rpcPublish(t,e,s,o,a,h,p,v){var y,M,P,T;const D={method:jn(o.protocol).publish,params:{topic:t,message:e,ttl:s,prompt:a,tag:h,attestation:v},id:p};return or((y=D.params)==null?void 0:y.prompt)&&((M=D.params)==null||delete M.prompt),or((P=D.params)==null?void 0:P.tag)&&((T=D.params)==null||delete T.tag),this.logger.debug("Outgoing Relay Payload"),this.logger.trace({type:"message",direction:"outgoing",request:D}),this.relayer.request(D)}removeRequestFromQueue(t){this.queue.delete(t)}checkQueue(){this.queue.forEach(async t=>{const{topic:e,message:s,opts:o}=t;await this.publish(e,s,o)})}registerEventListeners(){this.relayer.core.heartbeat.on(A.r$1.pulse,()=>{if(this.needsTransportRestart){this.needsTransportRestart=!1,this.relayer.events.emit(ar.connection_stalled);return}this.checkQueue()}),this.relayer.on(ar.message_ack,t=>{this.removeRequestFromQueue(t.id.toString())})}}class CE{constructor(){this.map=new Map,this.set=(t,e)=>{const s=this.get(t);this.exists(t,e)||this.map.set(t,[...s,e])},this.get=t=>this.map.get(t)||[],this.exists=(t,e)=>this.get(t).includes(e),this.delete=(t,e)=>{if(typeof e>"u"){this.map.delete(t);return}if(!this.map.has(t))return;const s=this.get(t);if(!this.exists(t,e))return;const o=s.filter(a=>a!==e);if(!o.length){this.map.delete(t);return}this.map.set(t,o)},this.clear=()=>{this.map.clear()}}get topics(){return Array.from(this.map.keys())}}var xE=Object.defineProperty,RE=Object.defineProperties,NE=Object.getOwnPropertyDescriptors,Jf=Object.getOwnPropertySymbols,OE=Object.prototype.hasOwnProperty,TE=Object.prototype.propertyIsEnumerable,Qf=(i,t,e)=>t in i?xE(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e,Dn=(i,t)=>{for(var e in t||(t={}))OE.call(t,e)&&Qf(i,e,t[e]);if(Jf)for(var e of Jf(t))TE.call(t,e)&&Qf(i,e,t[e]);return i},Hc=(i,t)=>RE(i,NE(t));class FE extends lA{constructor(t,e){super(t,e),this.relayer=t,this.logger=e,this.subscriptions=new Map,this.topicMap=new CE,this.events=new A.eventsExports.EventEmitter,this.name=nE,this.version=oE,this.pending=new Map,this.cached=[],this.initialized=!1,this.pendingSubscriptionWatchLabel="pending_sub_watch_label",this.pollingInterval=20,this.storagePrefix=wi,this.subscribeTimeout=A.cjs.toMiliseconds(A.cjs.ONE_MINUTE),this.restartInProgress=!1,this.batchSubscribeTopicsLimit=500,this.pendingBatchMessages=[],this.init=async()=>{this.initialized||(this.logger.trace("Initialized"),this.registerEventListeners(),this.clientId=await this.relayer.core.crypto.getClientId())},this.subscribe=async(s,o)=>{await this.restartToComplete(),this.isInitialized(),this.logger.debug("Subscribing Topic"),this.logger.trace({type:"method",method:"subscribe",params:{topic:s,opts:o}});try{const a=ch(o),h={topic:s,relay:a};this.pending.set(s,h);const p=await this.rpcSubscribe(s,a);return typeof p=="string"&&(this.onSubscribe(p,h),this.logger.debug("Successfully Subscribed Topic"),this.logger.trace({type:"method",method:"subscribe",params:{topic:s,opts:o}})),p}catch(a){throw this.logger.debug("Failed to Subscribe Topic"),this.logger.error(a),a}},this.unsubscribe=async(s,o)=>{await this.restartToComplete(),this.isInitialized(),typeof(o==null?void 0:o.id)<"u"?await this.unsubscribeById(s,o.id,o):await this.unsubscribeByTopic(s,o)},this.isSubscribed=async s=>{if(this.topics.includes(s))return!0;const o=`${this.pendingSubscriptionWatchLabel}_${s}`;return await new Promise((a,h)=>{const p=new A.cjs.Watch;p.start(o);const v=setInterval(()=>{!this.pending.has(s)&&this.topics.includes(s)&&(clearInterval(v),p.stop(o),a(!0)),p.elapsed(o)>=aE&&(clearInterval(v),p.stop(o),h(new Error("Subscription resolution timeout")))},this.pollingInterval)}).catch(()=>!1)},this.on=(s,o)=>{this.events.on(s,o)},this.once=(s,o)=>{this.events.once(s,o)},this.off=(s,o)=>{this.events.off(s,o)},this.removeListener=(s,o)=>{this.events.removeListener(s,o)},this.start=async()=>{await this.onConnect()},this.stop=async()=>{await this.onDisconnect()},this.restart=async()=>{this.restartInProgress=!0,await this.restore(),await this.reset(),this.restartInProgress=!1},this.relayer=t,this.logger=A.E(e,this.name),this.clientId=""}get context(){return A.y(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.relayer.core.customStoragePrefix+"//"+this.name}get length(){return this.subscriptions.size}get ids(){return Array.from(this.subscriptions.keys())}get values(){return Array.from(this.subscriptions.values())}get topics(){return this.topicMap.topics}hasSubscription(t,e){let s=!1;try{s=this.getSubscription(t).topic===e}catch{}return s}onEnable(){this.cached=[],this.initialized=!0}onDisable(){this.cached=this.values,this.subscriptions.clear(),this.topicMap.clear()}async unsubscribeByTopic(t,e){const s=this.topicMap.get(t);await Promise.all(s.map(async o=>await this.unsubscribeById(t,o,e)))}async unsubscribeById(t,e,s){this.logger.debug("Unsubscribing Topic"),this.logger.trace({type:"method",method:"unsubscribe",params:{topic:t,id:e,opts:s}});try{const o=ch(s);await this.rpcUnsubscribe(t,e,o);const a=Gt("USER_DISCONNECTED",`${this.name}, ${t}`);await this.onUnsubscribe(t,e,a),this.logger.debug("Successfully Unsubscribed Topic"),this.logger.trace({type:"method",method:"unsubscribe",params:{topic:t,id:e,opts:s}})}catch(o){throw this.logger.debug("Failed to Unsubscribe Topic"),this.logger.error(o),o}}async rpcSubscribe(t,e){const s={method:jn(e.protocol).subscribe,params:{topic:t}};this.logger.debug("Outgoing Relay Payload"),this.logger.trace({type:"payload",direction:"outgoing",request:s});try{return await await Qs(this.relayer.request(s).catch(o=>this.logger.warn(o)),this.subscribeTimeout)?Ui(t+this.clientId):null}catch{this.logger.debug("Outgoing Relay Subscribe Payload stalled"),this.relayer.events.emit(ar.connection_stalled)}return null}async rpcBatchSubscribe(t){if(!t.length)return;const e=t[0].relay,s={method:jn(e.protocol).batchSubscribe,params:{topics:t.map(o=>o.topic)}};this.logger.debug("Outgoing Relay Payload"),this.logger.trace({type:"payload",direction:"outgoing",request:s});try{return await await Qs(this.relayer.request(s).catch(o=>this.logger.warn(o)),this.subscribeTimeout)}catch{this.relayer.events.emit(ar.connection_stalled)}}async rpcBatchFetchMessages(t){if(!t.length)return;const e=t[0].relay,s={method:jn(e.protocol).batchFetchMessages,params:{topics:t.map(a=>a.topic)}};this.logger.debug("Outgoing Relay Payload"),this.logger.trace({type:"payload",direction:"outgoing",request:s});let o;try{o=await await Qs(this.relayer.request(s).catch(a=>this.logger.warn(a)),this.subscribeTimeout)}catch{this.relayer.events.emit(ar.connection_stalled)}return o}rpcUnsubscribe(t,e,s){const o={method:jn(s.protocol).unsubscribe,params:{topic:t,id:e}};return this.logger.debug("Outgoing Relay Payload"),this.logger.trace({type:"payload",direction:"outgoing",request:o}),this.relayer.request(o)}onSubscribe(t,e){this.setSubscription(t,Hc(Dn({},e),{id:t})),this.pending.delete(e.topic)}onBatchSubscribe(t){t.length&&t.forEach(e=>{this.setSubscription(e.id,Dn({},e)),this.pending.delete(e.topic)})}async onUnsubscribe(t,e,s){this.events.removeAllListeners(e),this.hasSubscription(e,t)&&this.deleteSubscription(e,s),await this.relayer.messages.del(t)}async setRelayerSubscriptions(t){await this.relayer.core.storage.setItem(this.storageKey,t)}async getRelayerSubscriptions(){return await this.relayer.core.storage.getItem(this.storageKey)}setSubscription(t,e){this.logger.debug("Setting subscription"),this.logger.trace({type:"method",method:"setSubscription",id:t,subscription:e}),this.addSubscription(t,e)}addSubscription(t,e){this.subscriptions.set(t,Dn({},e)),this.topicMap.set(e.topic,t),this.events.emit(li.created,e)}getSubscription(t){this.logger.debug("Getting subscription"),this.logger.trace({type:"method",method:"getSubscription",id:t});const e=this.subscriptions.get(t);if(!e){const{message:s}=G("NO_MATCHING_KEY",`${this.name}: ${t}`);throw new Error(s)}return e}deleteSubscription(t,e){this.logger.debug("Deleting subscription"),this.logger.trace({type:"method",method:"deleteSubscription",id:t,reason:e});const s=this.getSubscription(t);this.subscriptions.delete(t),this.topicMap.delete(s.topic,t),this.events.emit(li.deleted,Hc(Dn({},s),{reason:e}))}async persist(){await this.setRelayerSubscriptions(this.values),this.events.emit(li.sync)}async reset(){if(this.cached.length){const t=Math.ceil(this.cached.length/this.batchSubscribeTopicsLimit);for(let e=0;e<t;e++){const s=this.cached.splice(0,this.batchSubscribeTopicsLimit);await this.batchFetchMessages(s),await this.batchSubscribe(s)}}this.events.emit(li.resubscribed)}async restore(){try{const t=await this.getRelayerSubscriptions();if(typeof t>"u"||!t.length)return;if(this.subscriptions.size){const{message:e}=G("RESTORE_WILL_OVERRIDE",this.name);throw this.logger.error(e),this.logger.error(`${this.name}: ${JSON.stringify(this.values)}`),new Error(e)}this.cached=t,this.logger.debug(`Successfully Restored subscriptions for ${this.name}`),this.logger.trace({type:"method",method:"restore",subscriptions:this.values})}catch(t){this.logger.debug(`Failed to Restore subscriptions for ${this.name}`),this.logger.error(t)}}async batchSubscribe(t){if(!t.length)return;const e=await this.rpcBatchSubscribe(t);yi(e)&&this.onBatchSubscribe(e.map((s,o)=>Hc(Dn({},t[o]),{id:s})))}async batchFetchMessages(t){if(!t.length)return;this.logger.trace(`Fetching batch messages for ${t.length} subscriptions`);const e=await this.rpcBatchFetchMessages(t);e&&e.messages&&(this.pendingBatchMessages=this.pendingBatchMessages.concat(e.messages))}async onConnect(){await this.restart(),this.onEnable()}onDisconnect(){this.onDisable()}async checkPending(){if(!this.initialized||!this.relayer.connected)return;const t=[];this.pending.forEach(e=>{t.push(e)}),await this.batchSubscribe(t),this.pendingBatchMessages.length&&(await this.relayer.handleBatchMessageEvents(this.pendingBatchMessages),this.pendingBatchMessages=[])}registerEventListeners(){this.relayer.core.heartbeat.on(A.r$1.pulse,async()=>{await this.checkPending()}),this.events.on(li.created,async t=>{const e=li.created;this.logger.info(`Emitting ${e}`),this.logger.debug({type:"event",event:e,data:t}),await this.persist()}),this.events.on(li.deleted,async t=>{const e=li.deleted;this.logger.info(`Emitting ${e}`),this.logger.debug({type:"event",event:e,data:t}),await this.persist()})}isInitialized(){if(!this.initialized){const{message:t}=G("NOT_INITIALIZED",this.name);throw new Error(t)}}async restartToComplete(){this.restartInProgress&&await new Promise(t=>{const e=setInterval(()=>{this.restartInProgress||(clearInterval(e),t())},this.pollingInterval)})}}var DE=Object.defineProperty,Gf=Object.getOwnPropertySymbols,qE=Object.prototype.hasOwnProperty,kE=Object.prototype.propertyIsEnumerable,Yf=(i,t,e)=>t in i?DE(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e,BE=(i,t)=>{for(var e in t||(t={}))qE.call(t,e)&&Yf(i,e,t[e]);if(Gf)for(var e of Gf(t))kE.call(t,e)&&Yf(i,e,t[e]);return i};class jE extends hA{constructor(t){super(t),this.protocol="wc",this.version=2,this.events=new A.eventsExports.EventEmitter,this.name=X6,this.transportExplicitlyClosed=!1,this.initialized=!1,this.connectionAttemptInProgress=!1,this.connectionStatusPollingInterval=20,this.staleConnectionErrors=["socket hang up","stalled","interrupted"],this.hasExperiencedNetworkDisruption=!1,this.requestsInFlight=new Map,this.heartBeatTimeout=A.cjs.toMiliseconds(A.cjs.THIRTY_SECONDS+A.cjs.ONE_SECOND),this.request=async e=>{var s,o;this.logger.debug("Publishing Request Payload");const a=e.id||A.getBigIntRpcId().toString();await this.toEstablishConnection();try{const h=this.provider.request(e);this.requestsInFlight.set(a,{promise:h,request:e}),this.logger.trace({id:a,method:e.method,topic:(s=e.params)==null?void 0:s.topic},"relayer.request - attempt to publish...");const p=await new Promise(async(v,y)=>{const M=()=>{y(new Error(`relayer.request - publish interrupted, id: ${a}`))};this.provider.on(xr.disconnect,M);const P=await h;this.provider.off(xr.disconnect,M),v(P)});return this.logger.trace({id:a,method:e.method,topic:(o=e.params)==null?void 0:o.topic},"relayer.request - published"),p}catch(h){throw this.logger.debug(`Failed to Publish Request: ${a}`),h}finally{this.requestsInFlight.delete(a)}},this.resetPingTimeout=()=>{if(Hn())try{clearTimeout(this.pingTimeout),this.pingTimeout=setTimeout(()=>{var e,s,o;(o=(s=(e=this.provider)==null?void 0:e.connection)==null?void 0:s.socket)==null||o.terminate()},this.heartBeatTimeout)}catch(e){this.logger.warn(e)}},this.onPayloadHandler=e=>{this.onProviderPayload(e),this.resetPingTimeout()},this.onConnectHandler=()=>{this.logger.trace("relayer connected"),this.startPingTimeout(),this.events.emit(ar.connect)},this.onDisconnectHandler=()=>{this.logger.trace("relayer disconnected"),this.onProviderDisconnect()},this.onProviderErrorHandler=e=>{this.logger.error(e),this.events.emit(ar.error,e),this.logger.info("Fatal socket error received, closing transport"),this.transportClose()},this.registerProviderListeners=()=>{this.provider.on(xr.payload,this.onPayloadHandler),this.provider.on(xr.connect,this.onConnectHandler),this.provider.on(xr.disconnect,this.onDisconnectHandler),this.provider.on(xr.error,this.onProviderErrorHandler)},this.core=t.core,this.logger=typeof t.logger<"u"&&typeof t.logger!="string"?A.E(t.logger,this.name):A.Wg(A.k({level:t.logger||Z6})),this.messages=new PE(this.logger,t.core),this.subscriber=new FE(this,this.logger),this.publisher=new ME(this,this.logger),this.relayUrl=(t==null?void 0:t.relayUrl)||Cd,this.projectId=t.projectId,this.bundleId=Vw(),this.provider={}}async init(){this.logger.trace("Initialized"),this.registerEventListeners(),await Promise.all([this.messages.init(),this.subscriber.init()]),await this.transportOpen(),this.initialized=!0,setTimeout(async()=>{this.subscriber.topics.length===0&&this.subscriber.pending.size===0&&(this.logger.info("No topics subscribed to after init, closing transport"),await this.transportClose(),this.transportExplicitlyClosed=!1)},rE)}get context(){return A.y(this.logger)}get connected(){var t,e,s;return((s=(e=(t=this.provider)==null?void 0:t.connection)==null?void 0:e.socket)==null?void 0:s.readyState)===1}get connecting(){var t,e,s;return((s=(e=(t=this.provider)==null?void 0:t.connection)==null?void 0:e.socket)==null?void 0:s.readyState)===0}async publish(t,e,s){this.isInitialized(),await this.publisher.publish(t,e,s),await this.recordMessageEvent({topic:t,message:e,publishedAt:Date.now()})}async subscribe(t,e){var s;this.isInitialized();let o=((s=this.subscriber.topicMap.get(t))==null?void 0:s[0])||"",a;const h=p=>{p.topic===t&&(this.subscriber.off(li.created,h),a())};return await Promise.all([new Promise(p=>{a=p,this.subscriber.on(li.created,h)}),new Promise(async p=>{o=await this.subscriber.subscribe(t,e)||o,p()})]),o}async unsubscribe(t,e){this.isInitialized(),await this.subscriber.unsubscribe(t,e)}on(t,e){this.events.on(t,e)}once(t,e){this.events.once(t,e)}off(t,e){this.events.off(t,e)}removeListener(t,e){this.events.removeListener(t,e)}async transportDisconnect(){if(!this.hasExperiencedNetworkDisruption&&this.connected&&this.requestsInFlight.size>0)try{await Promise.all(Array.from(this.requestsInFlight.values()).map(t=>t.promise))}catch(t){this.logger.warn(t)}this.hasExperiencedNetworkDisruption||this.connected?await Qs(this.provider.disconnect(),2e3,"provider.disconnect()").catch(()=>this.onProviderDisconnect()):this.onProviderDisconnect()}async transportClose(){this.transportExplicitlyClosed=!0,await this.transportDisconnect()}async transportOpen(t){await this.confirmOnlineStateOrThrow(),t&&t!==this.relayUrl&&(this.relayUrl=t,await this.transportDisconnect()),await this.createProvider(),this.connectionAttemptInProgress=!0,this.transportExplicitlyClosed=!1;try{await new Promise(async(e,s)=>{const o=()=>{this.provider.off(xr.disconnect,o),s(new Error("Connection interrupted while trying to subscribe"))};this.provider.on(xr.disconnect,o),await Qs(this.provider.connect(),A.cjs.toMiliseconds(A.cjs.ONE_MINUTE),`Socket stalled when trying to connect to ${this.relayUrl}`).catch(a=>{s(a)}).finally(()=>{clearTimeout(this.reconnectTimeout),this.reconnectTimeout=void 0}),this.subscriber.start().catch(a=>{this.logger.error(a),this.onDisconnectHandler()}),this.hasExperiencedNetworkDisruption=!1,e()})}catch(e){this.logger.error(e);const s=e;if(this.hasExperiencedNetworkDisruption=!0,!this.isConnectionStalled(s.message))throw e}finally{this.connectionAttemptInProgress=!1}}async restartTransport(t){this.connectionAttemptInProgress||(this.relayUrl=t||this.relayUrl,await this.confirmOnlineStateOrThrow(),await this.transportClose(),await this.transportOpen())}async confirmOnlineStateOrThrow(){if(!await jf())throw new Error("No internet connection detected. Please restart your network and try again.")}async handleBatchMessageEvents(t){if((t==null?void 0:t.length)===0){this.logger.trace("Batch message events is empty. Ignoring...");return}const e=t.sort((s,o)=>s.publishedAt-o.publishedAt);this.logger.trace(`Batch of ${e.length} message events sorted`);for(const s of e)try{await this.onMessageEvent(s)}catch(o){this.logger.warn(o)}this.logger.trace(`Batch of ${e.length} message events processed`)}startPingTimeout(){var t,e,s,o,a;if(Hn())try{(e=(t=this.provider)==null?void 0:t.connection)!=null&&e.socket&&((a=(o=(s=this.provider)==null?void 0:s.connection)==null?void 0:o.socket)==null||a.once("ping",()=>{this.resetPingTimeout()})),this.resetPingTimeout()}catch(h){this.logger.warn(h)}}isConnectionStalled(t){return this.staleConnectionErrors.some(e=>t.includes(e))}async createProvider(){this.provider.connection&&this.unregisterProviderListeners();const t=await this.core.crypto.signJWT(this.relayUrl);this.provider=new A.o(new A.f(Zw({sdkVersion:xd,protocol:this.protocol,version:this.version,relayUrl:this.relayUrl,projectId:this.projectId,auth:t,useOnCloseEvent:!0,bundleId:this.bundleId}))),this.registerProviderListeners()}async recordMessageEvent(t){const{topic:e,message:s}=t;await this.messages.set(e,s)}async shouldIgnoreMessageEvent(t){const{topic:e,message:s}=t;if(!s||s.length===0)return this.logger.debug(`Ignoring invalid/empty message: ${s}`),!0;if(!await this.subscriber.isSubscribed(e))return this.logger.debug(`Ignoring message for non-subscribed topic ${e}`),!0;const o=this.messages.has(e,s);return o&&this.logger.debug(`Ignoring duplicate message: ${s}`),o}async onProviderPayload(t){if(this.logger.debug("Incoming Relay Payload"),this.logger.trace({type:"payload",direction:"incoming",payload:t}),A.isJsonRpcRequest(t)){if(!t.method.endsWith(tE))return;const e=t.params,{topic:s,message:o,publishedAt:a,attestation:h}=e.data,p={topic:s,message:o,publishedAt:a,attestation:h};this.logger.debug("Emitting Relayer Payload"),this.logger.trace(BE({type:"event",event:e.id},p)),this.events.emit(e.id,p),await this.acknowledgePayload(t),await this.onMessageEvent(p)}else A.isJsonRpcResponse(t)&&this.events.emit(ar.message_ack,t)}async onMessageEvent(t){await this.shouldIgnoreMessageEvent(t)||(this.events.emit(ar.message,t),await this.recordMessageEvent(t))}async acknowledgePayload(t){const e=A.formatJsonRpcResult(t.id,!0);await this.provider.connection.send(e)}unregisterProviderListeners(){this.provider.off(xr.payload,this.onPayloadHandler),this.provider.off(xr.connect,this.onConnectHandler),this.provider.off(xr.disconnect,this.onDisconnectHandler),this.provider.off(xr.error,this.onProviderErrorHandler),clearTimeout(this.pingTimeout)}async registerEventListeners(){let t=await jf();rA(async e=>{t!==e&&(t=e,e?await this.restartTransport().catch(s=>this.logger.error(s)):(this.hasExperiencedNetworkDisruption=!0,await this.transportDisconnect(),this.transportExplicitlyClosed=!1))})}async onProviderDisconnect(){await this.subscriber.stop(),this.requestsInFlight.clear(),clearTimeout(this.pingTimeout),this.events.emit(ar.disconnect),this.connectionAttemptInProgress=!1,!this.transportExplicitlyClosed&&(this.reconnectTimeout||(this.reconnectTimeout=setTimeout(async()=>{await this.transportOpen().catch(t=>this.logger.error(t))},A.cjs.toMiliseconds(eE))))}isInitialized(){if(!this.initialized){const{message:t}=G("NOT_INITIALIZED",this.name);throw new Error(t)}}async toEstablishConnection(){await this.confirmOnlineStateOrThrow(),!this.connected&&(this.connectionAttemptInProgress&&await new Promise(t=>{const e=setInterval(()=>{this.connected&&(clearInterval(e),t())},this.connectionStatusPollingInterval)}),await this.transportOpen())}}var UE=Object.defineProperty,Wf=Object.getOwnPropertySymbols,$E=Object.prototype.hasOwnProperty,zE=Object.prototype.propertyIsEnumerable,Zf=(i,t,e)=>t in i?UE(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e,Xf=(i,t)=>{for(var e in t||(t={}))$E.call(t,e)&&Zf(i,e,t[e]);if(Wf)for(var e of Wf(t))zE.call(t,e)&&Zf(i,e,t[e]);return i};class Es extends uA{constructor(t,e,s,o=wi,a=void 0){super(t,e,s,o),this.core=t,this.logger=e,this.name=s,this.map=new Map,this.version=iE,this.cached=[],this.initialized=!1,this.storagePrefix=wi,this.recentlyDeleted=[],this.recentlyDeletedLimit=200,this.init=async()=>{this.initialized||(this.logger.trace("Initialized"),await this.restore(),this.cached.forEach(h=>{this.getKey&&h!==null&&!or(h)?this.map.set(this.getKey(h),h):T3(h)?this.map.set(h.id,h):F3(h)&&this.map.set(h.topic,h)}),this.cached=[],this.initialized=!0)},this.set=async(h,p)=>{this.isInitialized(),this.map.has(h)?await this.update(h,p):(this.logger.debug("Setting value"),this.logger.trace({type:"method",method:"set",key:h,value:p}),this.map.set(h,p),await this.persist())},this.get=h=>(this.isInitialized(),this.logger.debug("Getting value"),this.logger.trace({type:"method",method:"get",key:h}),this.getData(h)),this.getAll=h=>(this.isInitialized(),h?this.values.filter(p=>Object.keys(h).every(v=>A.ls(p[v],h[v]))):this.values),this.update=async(h,p)=>{this.isInitialized(),this.logger.debug("Updating value"),this.logger.trace({type:"method",method:"update",key:h,update:p});const v=Xf(Xf({},this.getData(h)),p);this.map.set(h,v),await this.persist()},this.delete=async(h,p)=>{this.isInitialized(),this.map.has(h)&&(this.logger.debug("Deleting value"),this.logger.trace({type:"method",method:"delete",key:h,reason:p}),this.map.delete(h),this.addToRecentlyDeleted(h),await this.persist())},this.logger=A.E(e,this.name),this.storagePrefix=o,this.getKey=a}get context(){return A.y(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+"//"+this.name}get length(){return this.map.size}get keys(){return Array.from(this.map.keys())}get values(){return Array.from(this.map.values())}addToRecentlyDeleted(t){this.recentlyDeleted.push(t),this.recentlyDeleted.length>=this.recentlyDeletedLimit&&this.recentlyDeleted.splice(0,this.recentlyDeletedLimit/2)}async setDataStore(t){await this.core.storage.setItem(this.storageKey,t)}async getDataStore(){return await this.core.storage.getItem(this.storageKey)}getData(t){const e=this.map.get(t);if(!e){if(this.recentlyDeleted.includes(t)){const{message:o}=G("MISSING_OR_INVALID",`Record was recently deleted - ${this.name}: ${t}`);throw this.logger.error(o),new Error(o)}const{message:s}=G("NO_MATCHING_KEY",`${this.name}: ${t}`);throw this.logger.error(s),new Error(s)}return e}async persist(){await this.setDataStore(this.values)}async restore(){try{const t=await this.getDataStore();if(typeof t>"u"||!t.length)return;if(this.map.size){const{message:e}=G("RESTORE_WILL_OVERRIDE",this.name);throw this.logger.error(e),new Error(e)}this.cached=t,this.logger.debug(`Successfully Restored value for ${this.name}`),this.logger.trace({type:"method",method:"restore",value:this.values})}catch(t){this.logger.debug(`Failed to Restore value for ${this.name}`),this.logger.error(t)}}isInitialized(){if(!this.initialized){const{message:t}=G("NOT_INITIALIZED",this.name);throw new Error(t)}}}class LE{constructor(t,e){this.core=t,this.logger=e,this.name=cE,this.version=hE,this.events=new A.Gg,this.initialized=!1,this.storagePrefix=wi,this.ignoredPayloadTypes=[Li],this.registeredMethods=[],this.init=async()=>{this.initialized||(await this.pairings.init(),await this.cleanup(),this.registerRelayerEvents(),this.registerExpirerEvents(),this.initialized=!0,this.logger.trace("Initialized"))},this.register=({methods:s})=>{this.isInitialized(),this.registeredMethods=[...new Set([...this.registeredMethods,...s])]},this.create=async s=>{this.isInitialized();const o=ah(),a=await this.core.crypto.setSymKey(o),h=Ue(A.cjs.FIVE_MINUTES),p={protocol:Md},v={topic:a,expiry:h,relay:p,active:!1},y=E3({protocol:this.core.protocol,version:this.core.version,topic:a,symKey:o,relay:p,expiryTimestamp:h,methods:s==null?void 0:s.methods});return this.core.expirer.set(a,h),await this.pairings.set(a,v),await this.core.relayer.subscribe(a),{topic:a,uri:y}},this.pair=async s=>{this.isInitialized();const o=this.core.eventClient.createEvent({properties:{topic:s==null?void 0:s.uri,trace:[ci.pairing_started]}});this.isValidPair(s,o);const{topic:a,symKey:h,relay:p,expiryTimestamp:v,methods:y}=Tf(s.uri);o.props.properties.topic=a,o.addTrace(ci.pairing_uri_validation_success),o.addTrace(ci.pairing_uri_not_expired);let M;if(this.pairings.keys.includes(a)){if(M=this.pairings.get(a),o.addTrace(ci.existing_pairing),M.active)throw o.setError(Bi.active_pairing_already_exists),new Error(`Pairing already exists: ${a}. Please try again with a new connection URI.`);o.addTrace(ci.pairing_not_expired)}const P=v||Ue(A.cjs.FIVE_MINUTES),T={topic:a,relay:p,expiry:P,active:!1,methods:y};this.core.expirer.set(a,P),await this.pairings.set(a,T),o.addTrace(ci.store_new_pairing),s.activatePairing&&await this.activate({topic:a}),this.events.emit(Js.create,T),o.addTrace(ci.emit_inactive_pairing),this.core.crypto.keychain.has(a)||await this.core.crypto.setSymKey(h,a),o.addTrace(ci.subscribing_pairing_topic);try{await this.core.relayer.confirmOnlineStateOrThrow()}catch{o.setError(Bi.no_internet_connection)}try{await this.core.relayer.subscribe(a,{relay:p})}catch(D){throw o.setError(Bi.subscribe_pairing_topic_failure),D}return o.addTrace(ci.subscribe_pairing_topic_success),T},this.activate=async({topic:s})=>{this.isInitialized();const o=Ue(A.cjs.THIRTY_DAYS);this.core.expirer.set(s,o),await this.pairings.update(s,{active:!0,expiry:o})},this.ping=async s=>{this.isInitialized(),await this.isValidPing(s);const{topic:o}=s;if(this.pairings.keys.includes(o)){const a=await this.sendRequest(o,"wc_pairingPing",{}),{done:h,resolve:p,reject:v}=ys();this.events.once(It("pairing_ping",a),({error:y})=>{y?v(y):p()}),await h()}},this.updateExpiry=async({topic:s,expiry:o})=>{this.isInitialized(),await this.pairings.update(s,{expiry:o})},this.updateMetadata=async({topic:s,metadata:o})=>{this.isInitialized(),await this.pairings.update(s,{peerMetadata:o})},this.getPairings=()=>(this.isInitialized(),this.pairings.values),this.disconnect=async s=>{this.isInitialized(),await this.isValidDisconnect(s);const{topic:o}=s;this.pairings.keys.includes(o)&&(await this.sendRequest(o,"wc_pairingDelete",Gt("USER_DISCONNECTED")),await this.deletePairing(o))},this.sendRequest=async(s,o,a)=>{const h=A.formatJsonRpcRequest(o,a),p=await this.core.crypto.encode(s,h),v=Tn[o].req;return this.core.history.set(s,h),this.core.relayer.publish(s,p,v),h.id},this.sendResult=async(s,o,a)=>{const h=A.formatJsonRpcResult(s,a),p=await this.core.crypto.encode(o,h),v=await this.core.history.get(o,s),y=Tn[v.request.method].res;await this.core.relayer.publish(o,p,y),await this.core.history.resolve(h)},this.sendError=async(s,o,a)=>{const h=A.formatJsonRpcError(s,a),p=await this.core.crypto.encode(o,h),v=await this.core.history.get(o,s),y=Tn[v.request.method]?Tn[v.request.method].res:Tn.unregistered_method.res;await this.core.relayer.publish(o,p,y),await this.core.history.resolve(h)},this.deletePairing=async(s,o)=>{await this.core.relayer.unsubscribe(s),await Promise.all([this.pairings.delete(s,Gt("USER_DISCONNECTED")),this.core.crypto.deleteSymKey(s),o?Promise.resolve():this.core.expirer.del(s)])},this.cleanup=async()=>{const s=this.pairings.getAll().filter(o=>rs(o.expiry));await Promise.all(s.map(o=>this.deletePairing(o.topic)))},this.onRelayEventRequest=s=>{const{topic:o,payload:a}=s;switch(a.method){case"wc_pairingPing":return this.onPairingPingRequest(o,a);case"wc_pairingDelete":return this.onPairingDeleteRequest(o,a);default:return this.onUnknownRpcMethodRequest(o,a)}},this.onRelayEventResponse=async s=>{const{topic:o,payload:a}=s,h=(await this.core.history.get(o,a.id)).request.method;switch(h){case"wc_pairingPing":return this.onPairingPingResponse(o,a);default:return this.onUnknownRpcMethodResponse(h)}},this.onPairingPingRequest=async(s,o)=>{const{id:a}=o;try{this.isValidPing({topic:s}),await this.sendResult(a,s,!0),this.events.emit(Js.ping,{id:a,topic:s})}catch(h){await this.sendError(a,s,h),this.logger.error(h)}},this.onPairingPingResponse=(s,o)=>{const{id:a}=o;setTimeout(()=>{A.isJsonRpcResult(o)?this.events.emit(It("pairing_ping",a),{}):A.isJsonRpcError(o)&&this.events.emit(It("pairing_ping",a),{error:o.error})},500)},this.onPairingDeleteRequest=async(s,o)=>{const{id:a}=o;try{this.isValidDisconnect({topic:s}),await this.deletePairing(s),this.events.emit(Js.delete,{id:a,topic:s})}catch(h){await this.sendError(a,s,h),this.logger.error(h)}},this.onUnknownRpcMethodRequest=async(s,o)=>{const{id:a,method:h}=o;try{if(this.registeredMethods.includes(h))return;const p=Gt("WC_METHOD_UNSUPPORTED",h);await this.sendError(a,s,p),this.logger.error(p)}catch(p){await this.sendError(a,s,p),this.logger.error(p)}},this.onUnknownRpcMethodResponse=s=>{this.registeredMethods.includes(s)||this.logger.error(Gt("WC_METHOD_UNSUPPORTED",s))},this.isValidPair=(s,o)=>{var a;if(!sr(s)){const{message:p}=G("MISSING_OR_INVALID",`pair() params: ${s}`);throw o.setError(Bi.malformed_pairing_uri),new Error(p)}if(!O3(s.uri)){const{message:p}=G("MISSING_OR_INVALID",`pair() uri: ${s.uri}`);throw o.setError(Bi.malformed_pairing_uri),new Error(p)}const h=Tf(s==null?void 0:s.uri);if(!((a=h==null?void 0:h.relay)!=null&&a.protocol)){const{message:p}=G("MISSING_OR_INVALID","pair() uri#relay-protocol");throw o.setError(Bi.malformed_pairing_uri),new Error(p)}if(!(h!=null&&h.symKey)){const{message:p}=G("MISSING_OR_INVALID","pair() uri#symKey");throw o.setError(Bi.malformed_pairing_uri),new Error(p)}if(h!=null&&h.expiryTimestamp&&A.cjs.toMiliseconds(h==null?void 0:h.expiryTimestamp)<Date.now()){o.setError(Bi.pairing_expired);const{message:p}=G("EXPIRED","pair() URI has expired. Please try again with a new connection URI.");throw new Error(p)}},this.isValidPing=async s=>{if(!sr(s)){const{message:a}=G("MISSING_OR_INVALID",`ping() params: ${s}`);throw new Error(a)}const{topic:o}=s;await this.isValidPairingTopic(o)},this.isValidDisconnect=async s=>{if(!sr(s)){const{message:a}=G("MISSING_OR_INVALID",`disconnect() params: ${s}`);throw new Error(a)}const{topic:o}=s;await this.isValidPairingTopic(o)},this.isValidPairingTopic=async s=>{if(!Pe(s,!1)){const{message:o}=G("MISSING_OR_INVALID",`pairing topic should be a string: ${s}`);throw new Error(o)}if(!this.pairings.keys.includes(s)){const{message:o}=G("NO_MATCHING_KEY",`pairing topic doesn't exist: ${s}`);throw new Error(o)}if(rs(this.pairings.get(s).expiry)){await this.deletePairing(s);const{message:o}=G("EXPIRED",`pairing topic: ${s}`);throw new Error(o)}},this.core=t,this.logger=A.E(e,this.name),this.pairings=new Es(this.core,this.logger,this.name,this.storagePrefix)}get context(){return A.y(this.logger)}isInitialized(){if(!this.initialized){const{message:t}=G("NOT_INITIALIZED",this.name);throw new Error(t)}}registerRelayerEvents(){this.core.relayer.on(ar.message,async t=>{const{topic:e,message:s}=t;if(!this.pairings.keys.includes(e)||this.ignoredPayloadTypes.includes(this.core.crypto.getPayloadType(s)))return;const o=await this.core.crypto.decode(e,s);try{A.isJsonRpcRequest(o)?(this.core.history.set(e,o),this.onRelayEventRequest({topic:e,payload:o})):A.isJsonRpcResponse(o)&&(await this.core.history.resolve(o),await this.onRelayEventResponse({topic:e,payload:o}),this.core.history.delete(e,o.id))}catch(a){this.logger.error(a)}})}registerExpirerEvents(){this.core.expirer.on(Rr.expired,async t=>{const{topic:e}=Pp(t.target);e&&this.pairings.keys.includes(e)&&(await this.deletePairing(e,!0),this.events.emit(Js.expire,{topic:e}))})}}class KE extends oA{constructor(t,e){super(t,e),this.core=t,this.logger=e,this.records=new Map,this.events=new A.eventsExports.EventEmitter,this.name=uE,this.version=lE,this.cached=[],this.initialized=!1,this.storagePrefix=wi,this.init=async()=>{this.initialized||(this.logger.trace("Initialized"),await this.restore(),this.cached.forEach(s=>this.records.set(s.id,s)),this.cached=[],this.registerEventListeners(),this.initialized=!0)},this.set=(s,o,a)=>{if(this.isInitialized(),this.logger.debug("Setting JSON-RPC request history record"),this.logger.trace({type:"method",method:"set",topic:s,request:o,chainId:a}),this.records.has(o.id))return;const h={id:o.id,topic:s,request:{method:o.method,params:o.params||null},chainId:a,expiry:Ue(A.cjs.THIRTY_DAYS)};this.records.set(h.id,h),this.persist(),this.events.emit(zr.created,h)},this.resolve=async s=>{if(this.isInitialized(),this.logger.debug("Updating JSON-RPC response history record"),this.logger.trace({type:"method",method:"update",response:s}),!this.records.has(s.id))return;const o=await this.getRecord(s.id);typeof o.response>"u"&&(o.response=A.isJsonRpcError(s)?{error:s.error}:{result:s.result},this.records.set(o.id,o),this.persist(),this.events.emit(zr.updated,o))},this.get=async(s,o)=>(this.isInitialized(),this.logger.debug("Getting record"),this.logger.trace({type:"method",method:"get",topic:s,id:o}),await this.getRecord(o)),this.delete=(s,o)=>{this.isInitialized(),this.logger.debug("Deleting record"),this.logger.trace({type:"method",method:"delete",id:o}),this.values.forEach(a=>{if(a.topic===s){if(typeof o<"u"&&a.id!==o)return;this.records.delete(a.id),this.events.emit(zr.deleted,a)}}),this.persist()},this.exists=async(s,o)=>(this.isInitialized(),this.records.has(o)?(await this.getRecord(o)).topic===s:!1),this.on=(s,o)=>{this.events.on(s,o)},this.once=(s,o)=>{this.events.once(s,o)},this.off=(s,o)=>{this.events.off(s,o)},this.removeListener=(s,o)=>{this.events.removeListener(s,o)},this.logger=A.E(e,this.name)}get context(){return A.y(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+"//"+this.name}get size(){return this.records.size}get keys(){return Array.from(this.records.keys())}get values(){return Array.from(this.records.values())}get pending(){const t=[];return this.values.forEach(e=>{if(typeof e.response<"u")return;const s={topic:e.topic,request:A.formatJsonRpcRequest(e.request.method,e.request.params,e.id),chainId:e.chainId};return t.push(s)}),t}async setJsonRpcRecords(t){await this.core.storage.setItem(this.storageKey,t)}async getJsonRpcRecords(){return await this.core.storage.getItem(this.storageKey)}getRecord(t){this.isInitialized();const e=this.records.get(t);if(!e){const{message:s}=G("NO_MATCHING_KEY",`${this.name}: ${t}`);throw new Error(s)}return e}async persist(){await this.setJsonRpcRecords(this.values),this.events.emit(zr.sync)}async restore(){try{const t=await this.getJsonRpcRecords();if(typeof t>"u"||!t.length)return;if(this.records.size){const{message:e}=G("RESTORE_WILL_OVERRIDE",this.name);throw this.logger.error(e),new Error(e)}this.cached=t,this.logger.debug(`Successfully Restored records for ${this.name}`),this.logger.trace({type:"method",method:"restore",records:this.values})}catch(t){this.logger.debug(`Failed to Restore records for ${this.name}`),this.logger.error(t)}}registerEventListeners(){this.events.on(zr.created,t=>{const e=zr.created;this.logger.info(`Emitting ${e}`),this.logger.debug({type:"event",event:e,record:t})}),this.events.on(zr.updated,t=>{const e=zr.updated;this.logger.info(`Emitting ${e}`),this.logger.debug({type:"event",event:e,record:t})}),this.events.on(zr.deleted,t=>{const e=zr.deleted;this.logger.info(`Emitting ${e}`),this.logger.debug({type:"event",event:e,record:t})}),this.core.heartbeat.on(A.r$1.pulse,()=>{this.cleanup()})}cleanup(){try{this.isInitialized();let t=!1;this.records.forEach(e=>{A.cjs.toMiliseconds(e.expiry||0)-Date.now()<=0&&(this.logger.info(`Deleting expired history log: ${e.id}`),this.records.delete(e.id),this.events.emit(zr.deleted,e,!1),t=!0)}),t&&this.persist()}catch(t){this.logger.warn(t)}}isInitialized(){if(!this.initialized){const{message:t}=G("NOT_INITIALIZED",this.name);throw new Error(t)}}}class HE extends fA{constructor(t,e){super(t,e),this.core=t,this.logger=e,this.expirations=new Map,this.events=new A.eventsExports.EventEmitter,this.name=fE,this.version=pE,this.cached=[],this.initialized=!1,this.storagePrefix=wi,this.init=async()=>{this.initialized||(this.logger.trace("Initialized"),await this.restore(),this.cached.forEach(s=>this.expirations.set(s.target,s)),this.cached=[],this.registerEventListeners(),this.initialized=!0)},this.has=s=>{try{const o=this.formatTarget(s);return typeof this.getExpiration(o)<"u"}catch{return!1}},this.set=(s,o)=>{this.isInitialized();const a=this.formatTarget(s),h={target:a,expiry:o};this.expirations.set(a,h),this.checkExpiry(a,h),this.events.emit(Rr.created,{target:a,expiration:h})},this.get=s=>{this.isInitialized();const o=this.formatTarget(s);return this.getExpiration(o)},this.del=s=>{if(this.isInitialized(),this.has(s)){const o=this.formatTarget(s),a=this.getExpiration(o);this.expirations.delete(o),this.events.emit(Rr.deleted,{target:o,expiration:a})}},this.on=(s,o)=>{this.events.on(s,o)},this.once=(s,o)=>{this.events.once(s,o)},this.off=(s,o)=>{this.events.off(s,o)},this.removeListener=(s,o)=>{this.events.removeListener(s,o)},this.logger=A.E(e,this.name)}get context(){return A.y(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+"//"+this.name}get length(){return this.expirations.size}get keys(){return Array.from(this.expirations.keys())}get values(){return Array.from(this.expirations.values())}formatTarget(t){if(typeof t=="string")return Xw(t);if(typeof t=="number")return tb(t);const{message:e}=G("UNKNOWN_TYPE",`Target type: ${typeof t}`);throw new Error(e)}async setExpirations(t){await this.core.storage.setItem(this.storageKey,t)}async getExpirations(){return await this.core.storage.getItem(this.storageKey)}async persist(){await this.setExpirations(this.values),this.events.emit(Rr.sync)}async restore(){try{const t=await this.getExpirations();if(typeof t>"u"||!t.length)return;if(this.expirations.size){const{message:e}=G("RESTORE_WILL_OVERRIDE",this.name);throw this.logger.error(e),new Error(e)}this.cached=t,this.logger.debug(`Successfully Restored expirations for ${this.name}`),this.logger.trace({type:"method",method:"restore",expirations:this.values})}catch(t){this.logger.debug(`Failed to Restore expirations for ${this.name}`),this.logger.error(t)}}getExpiration(t){const e=this.expirations.get(t);if(!e){const{message:s}=G("NO_MATCHING_KEY",`${this.name}: ${t}`);throw this.logger.warn(s),new Error(s)}return e}checkExpiry(t,e){const{expiry:s}=e;A.cjs.toMiliseconds(s)-Date.now()<=0&&this.expire(t,e)}expire(t,e){this.expirations.delete(t),this.events.emit(Rr.expired,{target:t,expiration:e})}checkExpirations(){this.core.relayer.connected&&this.expirations.forEach((t,e)=>this.checkExpiry(e,t))}registerEventListeners(){this.core.heartbeat.on(A.r$1.pulse,()=>this.checkExpirations()),this.events.on(Rr.created,t=>{const e=Rr.created;this.logger.info(`Emitting ${e}`),this.logger.debug({type:"event",event:e,data:t}),this.persist()}),this.events.on(Rr.expired,t=>{const e=Rr.expired;this.logger.info(`Emitting ${e}`),this.logger.debug({type:"event",event:e,data:t}),this.persist()}),this.events.on(Rr.deleted,t=>{const e=Rr.deleted;this.logger.info(`Emitting ${e}`),this.logger.debug({type:"event",event:e,data:t}),this.persist()})}isInitialized(){if(!this.initialized){const{message:t}=G("NOT_INITIALIZED",this.name);throw new Error(t)}}}var ye={};Object.defineProperty(ye,"__esModule",{value:!0}),ye.getLocalStorage=ye.getLocalStorageOrThrow=ye.getCrypto=ye.getCryptoOrThrow=ye.getLocation=ye.getLocationOrThrow=ye.getNavigator=ye.getNavigatorOrThrow=Nd=ye.getDocument=ye.getDocumentOrThrow=ye.getFromWindowOrThrow=ye.getFromWindow=void 0;function Is(i){let t;return typeof window<"u"&&typeof window[i]<"u"&&(t=window[i]),t}ye.getFromWindow=Is;function nn(i){const t=Is(i);if(!t)throw new Error(`${i} is not defined in Window`);return t}ye.getFromWindowOrThrow=nn;function VE(){return nn("document")}ye.getDocumentOrThrow=VE;function JE(){return Is("document")}var Nd=ye.getDocument=JE;function QE(){return nn("navigator")}ye.getNavigatorOrThrow=QE;function GE(){return Is("navigator")}ye.getNavigator=GE;function YE(){return nn("location")}ye.getLocationOrThrow=YE;function WE(){return Is("location")}ye.getLocation=WE;function ZE(){return nn("crypto")}ye.getCryptoOrThrow=ZE;function XE(){return Is("crypto")}ye.getCrypto=XE;function tI(){return nn("localStorage")}ye.getLocalStorageOrThrow=tI;function eI(){return Is("localStorage")}ye.getLocalStorage=eI;class rI extends pA{constructor(t,e,s){super(t,e,s),this.core=t,this.logger=e,this.store=s,this.name=dE,this.verifyUrlV3=mE,this.storagePrefix=wi,this.version=Pd,this.init=async()=>{var o;this.isDevEnv||(this.publicKey=await this.store.getItem(this.storeKey),this.publicKey&&A.cjs.toMiliseconds((o=this.publicKey)==null?void 0:o.expiresAt)<Date.now()&&(this.logger.debug("verify v2 public key expired"),await this.removePublicKey()))},this.register=async o=>{if(!Yn()||this.isDevEnv)return;const a=window.location.origin,{id:h,decryptedId:p}=o,v=`${this.verifyUrlV3}/attestation?projectId=${this.core.projectId}&origin=${a}&id=${h}&decryptedId=${p}`;try{const y=Nd(),M=this.startAbortTimer(A.cjs.ONE_SECOND*5),P=await new Promise((T,D)=>{const k=()=>{window.removeEventListener("message",V),y.body.removeChild(H),D("attestation aborted")};this.abortController.signal.addEventListener("abort",k);const H=y.createElement("iframe");H.src=v,H.style.display="none",H.addEventListener("error",k,{signal:this.abortController.signal});const V=Q=>{if(!Q.data)return;const ht=JSON.parse(Q.data);if(ht.type==="verify_attestation"){if(A.decodeJWT(ht.attestation).payload.id!==h)return;clearInterval(M),y.body.removeChild(H),this.abortController.signal.removeEventListener("abort",k),window.removeEventListener("message",V),T(ht.attestation===null?"":ht.attestation)}};y.body.appendChild(H),window.addEventListener("message",V,{signal:this.abortController.signal})});return this.logger.debug("jwt attestation",P),P}catch(y){this.logger.warn(y)}return""},this.resolve=async o=>{if(this.isDevEnv)return"";const{attestationId:a,hash:h,encryptedId:p}=o;if(a===""){this.logger.debug("resolve: attestationId is empty, skipping");return}if(a){if(A.decodeJWT(a).payload.id!==p)return;const y=await this.isValidJwtAttestation(a);if(y){if(!y.isVerified){this.logger.warn("resolve: jwt attestation: origin url not verified");return}return y}}if(!h)return;const v=this.getVerifyUrl(o==null?void 0:o.verifyUrl);return this.fetchAttestation(h,v)},this.fetchAttestation=async(o,a)=>{this.logger.debug(`resolving attestation: ${o} from url: ${a}`);const h=this.startAbortTimer(A.cjs.ONE_SECOND*5),p=await fetch(`${a}/attestation/${o}?v2Supported=true`,{signal:this.abortController.signal});return clearTimeout(h),p.status===200?await p.json():void 0},this.getVerifyUrl=o=>{let a=o||Kn;return vE.includes(a)||(this.logger.info(`verify url: ${a}, not included in trusted list, assigning default: ${Kn}`),a=Kn),a},this.fetchPublicKey=async()=>{try{this.logger.debug(`fetching public key from: ${this.verifyUrlV3}`);const o=this.startAbortTimer(A.cjs.FIVE_SECONDS),a=await fetch(`${this.verifyUrlV3}/public-key`,{signal:this.abortController.signal});return clearTimeout(o),await a.json()}catch(o){this.logger.warn(o)}},this.persistPublicKey=async o=>{this.logger.debug("persisting public key to local storage",o),await this.store.setItem(this.storeKey,o),this.publicKey=o},this.removePublicKey=async()=>{this.logger.debug("removing verify v2 public key from storage"),await this.store.removeItem(this.storeKey),this.publicKey=void 0},this.isValidJwtAttestation=async o=>{const a=await this.getPublicKey();try{if(a)return this.validateAttestation(o,a)}catch(p){this.logger.error(p),this.logger.warn("error validating attestation")}const h=await this.fetchAndPersistPublicKey();try{if(h)return this.validateAttestation(o,h)}catch(p){this.logger.error(p),this.logger.warn("error validating attestation")}},this.getPublicKey=async()=>this.publicKey?this.publicKey:await this.fetchAndPersistPublicKey(),this.fetchAndPersistPublicKey=async()=>{if(this.fetchPromise)return await this.fetchPromise,this.publicKey;this.fetchPromise=new Promise(async a=>{const h=await this.fetchPublicKey();h&&(await this.persistPublicKey(h),a(h))});const o=await this.fetchPromise;return this.fetchPromise=void 0,o},this.validateAttestation=(o,a)=>{const h=f3(o,a.publicKey),p={hasExpired:A.cjs.toMiliseconds(h.exp)<Date.now(),payload:h};if(p.hasExpired)throw this.logger.warn("resolve: jwt attestation expired"),new Error("JWT attestation expired");return{origin:p.payload.origin,isScam:p.payload.isScam,isVerified:p.payload.isVerified}},this.logger=A.E(e,this.name),this.abortController=new AbortController,this.isDevEnv=Hn()&&A.process$1.env.IS_VITEST,this.init()}get storeKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+"//verify:public:key"}get context(){return A.y(this.logger)}startAbortTimer(t){return this.abortController=new AbortController,setTimeout(()=>this.abortController.abort(),A.cjs.toMiliseconds(t))}}class iI extends dA{constructor(t,e){super(t,e),this.projectId=t,this.logger=e,this.context=yE,this.registerDeviceToken=async s=>{const{clientId:o,token:a,notificationType:h,enableEncrypted:p=!1}=s,v=`${wE}/${this.projectId}/clients`;await fetch(v,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({client_id:o,type:h,token:a,always_raw:p})})},this.logger=A.E(e,this.context)}}var sI=Object.defineProperty,tp=Object.getOwnPropertySymbols,nI=Object.prototype.hasOwnProperty,oI=Object.prototype.propertyIsEnumerable,ep=(i,t,e)=>t in i?sI(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e,qn=(i,t)=>{for(var e in t||(t={}))nI.call(t,e)&&ep(i,e,t[e]);if(tp)for(var e of tp(t))oI.call(t,e)&&ep(i,e,t[e]);return i};class aI extends gA{constructor(t,e,s=!0){super(t,e,s),this.core=t,this.logger=e,this.context=_E,this.storagePrefix=wi,this.storageVersion=bE,this.events=new Map,this.shouldPersist=!1,this.createEvent=o=>{const{event:a="ERROR",type:h="",properties:{topic:p,trace:v}}=o,y=ib(),M=this.core.projectId||"",P=Date.now(),T=qn({eventId:y,bundleId:M,timestamp:P,props:{event:a,type:h,properties:{topic:p,trace:v}}},this.setMethods(y));return this.telemetryEnabled&&(this.events.set(y,T),this.shouldPersist=!0),T},this.getEvent=o=>{const{eventId:a,topic:h}=o;if(a)return this.events.get(a);const p=Array.from(this.events.values()).find(v=>v.props.properties.topic===h);if(p)return qn(qn({},p),this.setMethods(p.eventId))},this.deleteEvent=o=>{const{eventId:a}=o;this.events.delete(a),this.shouldPersist=!0},this.setEventListeners=()=>{this.core.heartbeat.on(A.r$1.pulse,async()=>{this.shouldPersist&&await this.persist(),this.events.forEach(o=>{A.cjs.fromMiliseconds(Date.now())-A.cjs.fromMiliseconds(o.timestamp)>AE&&(this.events.delete(o.eventId),this.shouldPersist=!0)})})},this.setMethods=o=>({addTrace:a=>this.addTrace(o,a),setError:a=>this.setError(o,a)}),this.addTrace=(o,a)=>{const h=this.events.get(o);h&&(h.props.properties.trace.push(a),this.events.set(o,h),this.shouldPersist=!0)},this.setError=(o,a)=>{const h=this.events.get(o);h&&(h.props.type=a,h.timestamp=Date.now(),this.events.set(o,h),this.shouldPersist=!0)},this.persist=async()=>{await this.core.storage.setItem(this.storageKey,Array.from(this.events.values())),this.shouldPersist=!1},this.restore=async()=>{try{const o=await this.core.storage.getItem(this.storageKey)||[];if(!o.length)return;o.forEach(a=>{this.events.set(a.eventId,qn(qn({},a),this.setMethods(a.eventId)))})}catch(o){this.logger.warn(o)}},this.submit=async()=>{if(!this.telemetryEnabled||this.events.size===0)return;const o=[];for(const[a,h]of this.events)h.props.type&&o.push(h);if(o.length!==0)try{if((await fetch(`${EE}?projectId=${this.core.projectId}&st=events_sdk&sv=js-${xd}`,{method:"POST",body:JSON.stringify(o)})).ok)for(const a of o)this.events.delete(a.eventId),this.shouldPersist=!0}catch(a){this.logger.warn(a)}},this.logger=A.E(e,this.context),s?this.restore().then(async()=>{await this.submit(),this.setEventListeners()}):this.persist()}get storageKey(){return this.storagePrefix+this.storageVersion+this.core.customStoragePrefix+"//"+this.context}}var cI=Object.defineProperty,rp=Object.getOwnPropertySymbols,hI=Object.prototype.hasOwnProperty,uI=Object.prototype.propertyIsEnumerable,ip=(i,t,e)=>t in i?cI(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e,sp=(i,t)=>{for(var e in t||(t={}))hI.call(t,e)&&ip(i,e,t[e]);if(rp)for(var e of rp(t))uI.call(t,e)&&ip(i,e,t[e]);return i};class Eh extends nA{constructor(t){var e;super(t),this.protocol=Sd,this.version=Pd,this.name=Ah,this.events=new A.eventsExports.EventEmitter,this.initialized=!1,this.on=(h,p)=>this.events.on(h,p),this.once=(h,p)=>this.events.once(h,p),this.off=(h,p)=>this.events.off(h,p),this.removeListener=(h,p)=>this.events.removeListener(h,p),this.projectId=t==null?void 0:t.projectId,this.relayUrl=(t==null?void 0:t.relayUrl)||Cd,this.customStoragePrefix=t!=null&&t.customStoragePrefix?`:${t.customStoragePrefix}`:"";const s=A.k({level:typeof(t==null?void 0:t.logger)=="string"&&t.logger?t.logger:z6.logger}),{logger:o,chunkLoggerController:a}=A.A({opts:s,maxSizeInBytes:t==null?void 0:t.maxLogBlobSizeInBytes,loggerOverride:t==null?void 0:t.logger});this.logChunkController=a,(e=this.logChunkController)!=null&&e.downloadLogsBlobInBrowser&&(window.downloadLogsBlobInBrowser=async()=>{var h,p;(h=this.logChunkController)!=null&&h.downloadLogsBlobInBrowser&&((p=this.logChunkController)==null||p.downloadLogsBlobInBrowser({clientId:await this.crypto.getClientId()}))}),this.logger=A.E(o,this.name),this.heartbeat=new A.i$1,this.crypto=new SE(this,this.logger,t==null?void 0:t.keychain),this.history=new KE(this,this.logger),this.expirer=new HE(this,this.logger),this.storage=t!=null&&t.storage?t.storage:new A.h$1(sp(sp({},L6),t==null?void 0:t.storageOptions)),this.relayer=new jE({core:this,logger:this.logger,relayUrl:this.relayUrl,projectId:this.projectId}),this.pairing=new LE(this,this.logger),this.verify=new rI(this,this.logger,this.storage),this.echoClient=new iI(this.projectId||"",this.logger),this.eventClient=new aI(this,this.logger,t==null?void 0:t.telemetryEnabled)}static async init(t){const e=new Eh(t);await e.initialize();const s=await e.crypto.getClientId();return await e.storage.setItem(sE,s),e}get context(){return A.y(this.logger)}async start(){this.initialized||await this.initialize()}async getLogsBlob(){var t;return(t=this.logChunkController)==null?void 0:t.logsToBlob({clientId:await this.crypto.getClientId()})}async initialize(){this.logger.trace("Initialized");try{await this.crypto.init(),await this.history.init(),await this.expirer.init(),await this.relayer.init(),await this.heartbeat.init(),await this.pairing.init(),this.initialized=!0,this.logger.info("Core Initialization Success")}catch(t){throw this.logger.warn(`Core Initialization Failure at epoch ${Date.now()}`,t),this.logger.error(t.message),t}}}const lI=Eh,Od="wc",Td=2,Fd="client",Ih=`${Od}@${Td}:${Fd}:`,Vc={name:Fd,logger:"error",controller:!1,relayUrl:"wss://relay.walletconnect.com"},np="WALLETCONNECT_DEEPLINK_CHOICE",fI="proposal",Dd="Proposal expired",pI="session",Ls=A.cjs.SEVEN_DAYS,dI="engine",je={wc_sessionPropose:{req:{ttl:A.cjs.FIVE_MINUTES,prompt:!0,tag:1100},res:{ttl:A.cjs.FIVE_MINUTES,prompt:!1,tag:1101},reject:{ttl:A.cjs.FIVE_MINUTES,prompt:!1,tag:1120},autoReject:{ttl:A.cjs.FIVE_MINUTES,prompt:!1,tag:1121}},wc_sessionSettle:{req:{ttl:A.cjs.FIVE_MINUTES,prompt:!1,tag:1102},res:{ttl:A.cjs.FIVE_MINUTES,prompt:!1,tag:1103}},wc_sessionUpdate:{req:{ttl:A.cjs.ONE_DAY,prompt:!1,tag:1104},res:{ttl:A.cjs.ONE_DAY,prompt:!1,tag:1105}},wc_sessionExtend:{req:{ttl:A.cjs.ONE_DAY,prompt:!1,tag:1106},res:{ttl:A.cjs.ONE_DAY,prompt:!1,tag:1107}},wc_sessionRequest:{req:{ttl:A.cjs.FIVE_MINUTES,prompt:!0,tag:1108},res:{ttl:A.cjs.FIVE_MINUTES,prompt:!1,tag:1109}},wc_sessionEvent:{req:{ttl:A.cjs.FIVE_MINUTES,prompt:!0,tag:1110},res:{ttl:A.cjs.FIVE_MINUTES,prompt:!1,tag:1111}},wc_sessionDelete:{req:{ttl:A.cjs.ONE_DAY,prompt:!1,tag:1112},res:{ttl:A.cjs.ONE_DAY,prompt:!1,tag:1113}},wc_sessionPing:{req:{ttl:A.cjs.ONE_DAY,prompt:!1,tag:1114},res:{ttl:A.cjs.ONE_DAY,prompt:!1,tag:1115}},wc_sessionAuthenticate:{req:{ttl:A.cjs.ONE_HOUR,prompt:!0,tag:1116},res:{ttl:A.cjs.ONE_HOUR,prompt:!1,tag:1117},reject:{ttl:A.cjs.FIVE_MINUTES,prompt:!1,tag:1118},autoReject:{ttl:A.cjs.FIVE_MINUTES,prompt:!1,tag:1119}}},Jc={min:A.cjs.FIVE_MINUTES,max:A.cjs.SEVEN_DAYS},ai={idle:"IDLE",active:"ACTIVE"},gI="request",mI=["wc_sessionPropose","wc_sessionRequest","wc_authRequest","wc_sessionAuthenticate"],vI="wc",yI="auth",wI="authKeys",bI="pairingTopics",_I="requests",ga=`${vI}@${1.5}:${yI}:`,ra=`${ga}:PUB_KEY`;var AI=Object.defineProperty,EI=Object.defineProperties,II=Object.getOwnPropertyDescriptors,op=Object.getOwnPropertySymbols,SI=Object.prototype.hasOwnProperty,PI=Object.prototype.propertyIsEnumerable,ap=(i,t,e)=>t in i?AI(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e,Ne=(i,t)=>{for(var e in t||(t={}))SI.call(t,e)&&ap(i,e,t[e]);if(op)for(var e of op(t))PI.call(t,e)&&ap(i,e,t[e]);return i},vs=(i,t)=>EI(i,II(t));class MI extends vA{constructor(t){super(t),this.name=dI,this.events=new A.Gg,this.initialized=!1,this.requestQueue={state:ai.idle,queue:[]},this.sessionRequestQueue={state:ai.idle,queue:[]},this.requestQueueDelay=A.cjs.ONE_SECOND,this.expectedPairingMethodMap=new Map,this.recentlyDeletedMap=new Map,this.recentlyDeletedLimit=200,this.relayMessageCache=[],this.init=async()=>{this.initialized||(await this.cleanup(),this.registerRelayerEvents(),this.registerExpirerEvents(),this.registerPairingEvents(),this.client.core.pairing.register({methods:Object.keys(je)}),this.initialized=!0,setTimeout(()=>{this.sessionRequestQueue.queue=this.getPendingSessionRequests(),this.processSessionRequestQueue()},A.cjs.toMiliseconds(this.requestQueueDelay)))},this.connect=async e=>{await this.isInitialized();const s=vs(Ne({},e),{requiredNamespaces:e.requiredNamespaces||{},optionalNamespaces:e.optionalNamespaces||{}});await this.isValidConnect(s);const{pairingTopic:o,requiredNamespaces:a,optionalNamespaces:h,sessionProperties:p,relays:v}=s;let y=o,M,P=!1;try{y&&(P=this.client.core.pairing.pairings.get(y).active)}catch(W){throw this.client.logger.error(`connect() -> pairing.get(${y}) failed`),W}if(!y||!P){const{topic:W,uri:et}=await this.client.core.pairing.create();y=W,M=et}if(!y){const{message:W}=G("NO_MATCHING_KEY",`connect() pairing topic: ${y}`);throw new Error(W)}const T=await this.client.core.crypto.generateKeyPair(),D=je.wc_sessionPropose.req.ttl||A.cjs.FIVE_MINUTES,k=Ue(D),H=Ne({requiredNamespaces:a,optionalNamespaces:h,relays:v??[{protocol:Md}],proposer:{publicKey:T,metadata:this.client.metadata},expiryTimestamp:k,pairingTopic:y},p&&{sessionProperties:p}),{reject:V,resolve:Q,done:ht}=ys(D,Dd);this.events.once(It("session_connect"),async({error:W,session:et})=>{if(W)V(W);else if(et){et.self.publicKey=T;const ct=vs(Ne({},et),{pairingTopic:H.pairingTopic,requiredNamespaces:H.requiredNamespaces,optionalNamespaces:H.optionalNamespaces});await this.client.session.set(et.topic,ct),await this.setExpiry(et.topic,et.expiry),y&&await this.client.core.pairing.updateMetadata({topic:y,metadata:et.peer.metadata}),this.cleanupDuplicatePairings(ct),Q(ct)}});const ut=await this.sendRequest({topic:y,method:"wc_sessionPropose",params:H,throwOnFailedPublish:!0});return await this.setProposal(ut,Ne({id:ut},H)),{uri:M,approval:ht}},this.pair=async e=>{await this.isInitialized();try{return await this.client.core.pairing.pair(e)}catch(s){throw this.client.logger.error("pair() failed"),s}},this.approve=async e=>{var s,o,a;const h=this.client.core.eventClient.createEvent({properties:{topic:(s=e==null?void 0:e.id)==null?void 0:s.toString(),trace:[Lr.session_approve_started]}});try{await this.isInitialized()}catch(st){throw h.setError(gs.no_internet_connection),st}try{await this.isValidProposalId(e==null?void 0:e.id)}catch(st){throw this.client.logger.error(`approve() -> proposal.get(${e==null?void 0:e.id}) failed`),h.setError(gs.proposal_not_found),st}try{await this.isValidApprove(e)}catch(st){throw this.client.logger.error("approve() -> isValidApprove() failed"),h.setError(gs.session_approve_namespace_validation_failure),st}const{id:p,relayProtocol:v,namespaces:y,sessionProperties:M,sessionConfig:P}=e,T=this.client.proposal.get(p);this.client.core.eventClient.deleteEvent({eventId:h.eventId});const{pairingTopic:D,proposer:k,requiredNamespaces:H,optionalNamespaces:V}=T;let Q=(o=this.client.core.eventClient)==null?void 0:o.getEvent({topic:D});Q||(Q=(a=this.client.core.eventClient)==null?void 0:a.createEvent({type:Lr.session_approve_started,properties:{topic:D,trace:[Lr.session_approve_started,Lr.session_namespaces_validation_success]}}));const ht=await this.client.core.crypto.generateKeyPair(),ut=k.publicKey,W=await this.client.core.crypto.generateSharedKey(ht,ut),et=Ne(Ne({relay:{protocol:v??"irn"},namespaces:y,controller:{publicKey:ht,metadata:this.client.metadata},expiry:Ue(Ls)},M&&{sessionProperties:M}),P&&{sessionConfig:P});Q.addTrace(Lr.subscribing_session_topic);try{await this.client.core.relayer.subscribe(W)}catch(st){throw Q.setError(gs.subscribe_session_topic_failure),st}Q.addTrace(Lr.subscribe_session_topic_success);const ct=vs(Ne({},et),{topic:W,requiredNamespaces:H,optionalNamespaces:V,pairingTopic:D,acknowledged:!1,self:et.controller,peer:{publicKey:k.publicKey,metadata:k.metadata},controller:ht});await this.client.session.set(W,ct),Q.addTrace(Lr.store_session);try{Q.addTrace(Lr.publishing_session_settle),await this.sendRequest({topic:W,method:"wc_sessionSettle",params:et,throwOnFailedPublish:!0}).catch(st=>{throw Q==null||Q.setError(gs.session_settle_publish_failure),st}),Q.addTrace(Lr.session_settle_publish_success),Q.addTrace(Lr.publishing_session_approve),await this.sendResult({id:p,topic:D,result:{relay:{protocol:v??"irn"},responderPublicKey:ht},throwOnFailedPublish:!0}).catch(st=>{throw Q==null||Q.setError(gs.session_approve_publish_failure),st}),Q.addTrace(Lr.session_approve_publish_success)}catch(st){throw this.client.logger.error(st),this.client.session.delete(W,Gt("USER_DISCONNECTED")),await this.client.core.relayer.unsubscribe(W),st}return this.client.core.eventClient.deleteEvent({eventId:Q.eventId}),await this.client.core.pairing.updateMetadata({topic:D,metadata:k.metadata}),await this.client.proposal.delete(p,Gt("USER_DISCONNECTED")),await this.client.core.pairing.activate({topic:D}),await this.setExpiry(W,Ue(Ls)),{topic:W,acknowledged:()=>Promise.resolve(this.client.session.get(W))}},this.reject=async e=>{await this.isInitialized();try{await this.isValidReject(e)}catch(h){throw this.client.logger.error("reject() -> isValidReject() failed"),h}const{id:s,reason:o}=e;let a;try{a=this.client.proposal.get(s).pairingTopic}catch(h){throw this.client.logger.error(`reject() -> proposal.get(${s}) failed`),h}a&&(await this.sendError({id:s,topic:a,error:o,rpcOpts:je.wc_sessionPropose.reject}),await this.client.proposal.delete(s,Gt("USER_DISCONNECTED")))},this.update=async e=>{await this.isInitialized();try{await this.isValidUpdate(e)}catch(P){throw this.client.logger.error("update() -> isValidUpdate() failed"),P}const{topic:s,namespaces:o}=e,{done:a,resolve:h,reject:p}=ys(),v=A.payloadId(),y=A.getBigIntRpcId().toString(),M=this.client.session.get(s).namespaces;return this.events.once(It("session_update",v),({error:P})=>{P?p(P):h()}),await this.client.session.update(s,{namespaces:o}),await this.sendRequest({topic:s,method:"wc_sessionUpdate",params:{namespaces:o},throwOnFailedPublish:!0,clientRpcId:v,relayRpcId:y}).catch(P=>{this.client.logger.error(P),this.client.session.update(s,{namespaces:M}),p(P)}),{acknowledged:a}},this.extend=async e=>{await this.isInitialized();try{await this.isValidExtend(e)}catch(v){throw this.client.logger.error("extend() -> isValidExtend() failed"),v}const{topic:s}=e,o=A.payloadId(),{done:a,resolve:h,reject:p}=ys();return this.events.once(It("session_extend",o),({error:v})=>{v?p(v):h()}),await this.setExpiry(s,Ue(Ls)),this.sendRequest({topic:s,method:"wc_sessionExtend",params:{},clientRpcId:o,throwOnFailedPublish:!0}).catch(v=>{p(v)}),{acknowledged:a}},this.request=async e=>{await this.isInitialized();try{await this.isValidRequest(e)}catch(D){throw this.client.logger.error("request() -> isValidRequest() failed"),D}const{chainId:s,request:o,topic:a,expiry:h=je.wc_sessionRequest.req.ttl}=e,p=this.client.session.get(a),v=A.payloadId(),y=A.getBigIntRpcId().toString(),{done:M,resolve:P,reject:T}=ys(h,"Request expired. Please try again.");return this.events.once(It("session_request",v),({error:D,result:k})=>{D?T(D):P(k)}),await Promise.all([new Promise(async D=>{await this.sendRequest({clientRpcId:v,relayRpcId:y,topic:a,method:"wc_sessionRequest",params:{request:vs(Ne({},o),{expiryTimestamp:Ue(h)}),chainId:s},expiry:h,throwOnFailedPublish:!0}).catch(k=>T(k)),this.client.events.emit("session_request_sent",{topic:a,request:o,chainId:s,id:v}),D()}),new Promise(async D=>{var k;if(!((k=p.sessionConfig)!=null&&k.disableDeepLink)){const H=await rb(this.client.core.storage,np);eb({id:v,topic:a,wcDeepLink:H})}D()}),M()]).then(D=>D[2])},this.respond=async e=>{await this.isInitialized(),await this.isValidRespond(e);const{topic:s,response:o}=e,{id:a}=o;A.isJsonRpcResult(o)?await this.sendResult({id:a,topic:s,result:o.result,throwOnFailedPublish:!0}):A.isJsonRpcError(o)&&await this.sendError({id:a,topic:s,error:o.error}),this.cleanupAfterResponse(e)},this.ping=async e=>{await this.isInitialized();try{await this.isValidPing(e)}catch(o){throw this.client.logger.error("ping() -> isValidPing() failed"),o}const{topic:s}=e;if(this.client.session.keys.includes(s)){const o=A.payloadId(),a=A.getBigIntRpcId().toString(),{done:h,resolve:p,reject:v}=ys();this.events.once(It("session_ping",o),({error:y})=>{y?v(y):p()}),await Promise.all([this.sendRequest({topic:s,method:"wc_sessionPing",params:{},throwOnFailedPublish:!0,clientRpcId:o,relayRpcId:a}),h()])}else this.client.core.pairing.pairings.keys.includes(s)&&await this.client.core.pairing.ping({topic:s})},this.emit=async e=>{await this.isInitialized(),await this.isValidEmit(e);const{topic:s,event:o,chainId:a}=e,h=A.getBigIntRpcId().toString();await this.sendRequest({topic:s,method:"wc_sessionEvent",params:{event:o,chainId:a},throwOnFailedPublish:!0,relayRpcId:h})},this.disconnect=async e=>{await this.isInitialized(),await this.isValidDisconnect(e);const{topic:s}=e;if(this.client.session.keys.includes(s))await this.sendRequest({topic:s,method:"wc_sessionDelete",params:Gt("USER_DISCONNECTED"),throwOnFailedPublish:!0}),await this.deleteSession({topic:s,emitEvent:!1});else if(this.client.core.pairing.pairings.keys.includes(s))await this.client.core.pairing.disconnect({topic:s});else{const{message:o}=G("MISMATCHED_TOPIC",`Session or pairing topic not found: ${s}`);throw new Error(o)}},this.find=e=>(this.isInitialized(),this.client.session.getAll().filter(s=>R3(s,e))),this.getPendingSessionRequests=()=>this.client.pendingRequest.getAll(),this.authenticate=async e=>{this.isInitialized(),this.isValidAuthenticate(e);const{chains:s,statement:o="",uri:a,domain:h,nonce:p,type:v,exp:y,nbf:M,methods:P=[],expiry:T}=e,D=[...e.resources||[]],{topic:k,uri:H}=await this.client.core.pairing.create({methods:["wc_sessionAuthenticate"]});this.client.logger.info({message:"Generated new pairing",pairing:{topic:k,uri:H}});const V=await this.client.core.crypto.generateKeyPair(),Q=ea(V);if(await Promise.all([this.client.auth.authKeys.set(ra,{responseTopic:Q,publicKey:V}),this.client.auth.pairingTopics.set(Q,{topic:Q,pairingTopic:k})]),await this.client.core.relayer.subscribe(Q),this.client.logger.info(`sending request to new pairing topic: ${k}`),P.length>0){const{namespace:u}=$n(s[0]);let d=Y_(u,"request",P);ta(D)&&(d=Z_(d,D.pop())),D.push(d)}const ht=T&&T>je.wc_sessionAuthenticate.req.ttl?T:je.wc_sessionAuthenticate.req.ttl,ut={authPayload:{type:v??"caip122",chains:s,statement:o,aud:a,domain:h,version:"1",nonce:p,iat:new Date().toISOString(),exp:y,nbf:M,resources:D},requester:{publicKey:V,metadata:this.client.metadata},expiryTimestamp:Ue(ht)},W={eip155:{chains:s,methods:[...new Set(["personal_sign",...P])],events:["chainChanged","accountsChanged"]}},et={requiredNamespaces:{},optionalNamespaces:W,relays:[{protocol:"irn"}],pairingTopic:k,proposer:{publicKey:V,metadata:this.client.metadata},expiryTimestamp:Ue(je.wc_sessionPropose.req.ttl)},{done:ct,resolve:st,reject:gt}=ys(ht,"Request expired"),kt=async({error:u,session:d})=>{if(this.events.off(It("session_request",Ct),Te),u)gt(u);else if(d){d.self.publicKey=V,await this.client.session.set(d.topic,d),await this.setExpiry(d.topic,d.expiry),k&&await this.client.core.pairing.updateMetadata({topic:k,metadata:d.peer.metadata});const b=this.client.session.get(d.topic);await this.deleteProposal(Me),st({session:b})}},Te=async u=>{if(await this.deletePendingAuthRequest(Ct,{message:"fulfilled",code:0}),u.error){const S=Gt("WC_METHOD_UNSUPPORTED","wc_sessionAuthenticate");return u.error.code===S.code?void 0:(this.events.off(It("session_connect"),kt),gt(u.error.message))}await this.deleteProposal(Me),this.events.off(It("session_connect"),kt);const{cacaos:d,responder:b}=u.result,I=[],C=[];for(const S of d){await Sf({cacao:S,projectId:this.client.core.projectId})||(this.client.logger.error(S,"Signature verification failed"),gt(Gt("SESSION_SETTLEMENT_FAILED","Signature verification failed")));const{p:f}=S,E=ta(f.resources),lt=[If(f.iss)],ot=aa(f.iss);if(E){const m=Pf(E),$=Mf(E);I.push(...m),lt.push(...$)}for(const m of lt)C.push(`${m}:${ot}`)}const N=await this.client.core.crypto.generateSharedKey(V,b.publicKey);let q;I.length>0&&(q={topic:N,acknowledged:!0,self:{publicKey:V,metadata:this.client.metadata},peer:b,controller:b.publicKey,expiry:Ue(Ls),requiredNamespaces:{},optionalNamespaces:{},relay:{protocol:"irn"},pairingTopic:k,namespaces:Ff([...new Set(I)],[...new Set(C)])},await this.client.core.relayer.subscribe(N),await this.client.session.set(N,q),k&&await this.client.core.pairing.updateMetadata({topic:k,metadata:b.metadata}),q=this.client.session.get(N)),st({auths:d,session:q})},Ct=A.payloadId(),Me=A.payloadId();this.events.once(It("session_connect"),kt),this.events.once(It("session_request",Ct),Te);try{await Promise.all([this.sendRequest({topic:k,method:"wc_sessionAuthenticate",params:ut,expiry:e.expiry,throwOnFailedPublish:!0,clientRpcId:Ct}),this.sendRequest({topic:k,method:"wc_sessionPropose",params:et,expiry:je.wc_sessionPropose.req.ttl,throwOnFailedPublish:!0,clientRpcId:Me})])}catch(u){throw this.events.off(It("session_connect"),kt),this.events.off(It("session_request",Ct),Te),u}return await this.setProposal(Me,Ne({id:Me},et)),await this.setAuthRequest(Ct,{request:vs(Ne({},ut),{verifyContext:{}}),pairingTopic:k}),{uri:H,response:ct}},this.approveSessionAuthenticate=async e=>{const{id:s,auths:o}=e,a=this.client.core.eventClient.createEvent({properties:{topic:s.toString(),trace:[ms.authenticated_session_approve_started]}});try{this.isInitialized()}catch(H){throw a.setError(Fn.no_internet_connection),H}const h=this.getPendingAuthRequest(s);if(!h)throw a.setError(Fn.authenticated_session_pending_request_not_found),new Error(`Could not find pending auth request with id ${s}`);const p=h.requester.publicKey,v=await this.client.core.crypto.generateKeyPair(),y=ea(p),M={type:Li,receiverPublicKey:p,senderPublicKey:v},P=[],T=[];for(const H of o){if(!await Sf({cacao:H,projectId:this.client.core.projectId})){a.setError(Fn.invalid_cacao);const W=Gt("SESSION_SETTLEMENT_FAILED","Signature verification failed");throw await this.sendError({id:s,topic:y,error:W,encodeOpts:M}),new Error(W.message)}a.addTrace(ms.cacaos_verified);const{p:V}=H,Q=ta(V.resources),ht=[If(V.iss)],ut=aa(V.iss);if(Q){const W=Pf(Q),et=Mf(Q);P.push(...W),ht.push(...et)}for(const W of ht)T.push(`${W}:${ut}`)}const D=await this.client.core.crypto.generateSharedKey(v,p);a.addTrace(ms.create_authenticated_session_topic);let k;if((P==null?void 0:P.length)>0){k={topic:D,acknowledged:!0,self:{publicKey:v,metadata:this.client.metadata},peer:{publicKey:p,metadata:h.requester.metadata},controller:p,expiry:Ue(Ls),authentication:o,requiredNamespaces:{},optionalNamespaces:{},relay:{protocol:"irn"},pairingTopic:h.pairingTopic,namespaces:Ff([...new Set(P)],[...new Set(T)])},a.addTrace(ms.subscribing_authenticated_session_topic);try{await this.client.core.relayer.subscribe(D)}catch(H){throw a.setError(Fn.subscribe_authenticated_session_topic_failure),H}a.addTrace(ms.subscribe_authenticated_session_topic_success),await this.client.session.set(D,k),a.addTrace(ms.store_authenticated_session),await this.client.core.pairing.updateMetadata({topic:h.pairingTopic,metadata:h.requester.metadata})}a.addTrace(ms.publishing_authenticated_session_approve);try{await this.sendResult({topic:y,id:s,result:{cacaos:o,responder:{publicKey:v,metadata:this.client.metadata}},encodeOpts:M,throwOnFailedPublish:!0})}catch(H){throw a.setError(Fn.authenticated_session_approve_publish_failure),H}return await this.client.auth.requests.delete(s,{message:"fulfilled",code:0}),await this.client.core.pairing.activate({topic:h.pairingTopic}),this.client.core.eventClient.deleteEvent({eventId:a.eventId}),{session:k}},this.rejectSessionAuthenticate=async e=>{await this.isInitialized();const{id:s,reason:o}=e,a=this.getPendingAuthRequest(s);if(!a)throw new Error(`Could not find pending auth request with id ${s}`);const h=a.requester.publicKey,p=await this.client.core.crypto.generateKeyPair(),v=ea(h),y={type:Li,receiverPublicKey:h,senderPublicKey:p};await this.sendError({id:s,topic:v,error:o,encodeOpts:y,rpcOpts:je.wc_sessionAuthenticate.reject}),await this.client.auth.requests.delete(s,{message:"rejected",code:0}),await this.client.proposal.delete(s,Gt("USER_DISCONNECTED"))},this.formatAuthMessage=e=>{this.isInitialized();const{request:s,iss:o}=e;return cd(s,o)},this.processRelayMessageCache=()=>{setTimeout(async()=>{if(this.relayMessageCache.length!==0)for(;this.relayMessageCache.length>0;)try{const e=this.relayMessageCache.shift();e&&await this.onRelayMessage(e)}catch(e){this.client.logger.error(e)}},50)},this.cleanupDuplicatePairings=async e=>{if(e.pairingTopic)try{const s=this.client.core.pairing.pairings.get(e.pairingTopic),o=this.client.core.pairing.pairings.getAll().filter(a=>{var h,p;return((h=a.peerMetadata)==null?void 0:h.url)&&((p=a.peerMetadata)==null?void 0:p.url)===e.peer.metadata.url&&a.topic&&a.topic!==s.topic});if(o.length===0)return;this.client.logger.info(`Cleaning up ${o.length} duplicate pairing(s)`),await Promise.all(o.map(a=>this.client.core.pairing.disconnect({topic:a.topic}))),this.client.logger.info("Duplicate pairings clean up finished")}catch(s){this.client.logger.error(s)}},this.deleteSession=async e=>{var s;const{topic:o,expirerHasDeleted:a=!1,emitEvent:h=!0,id:p=0}=e,{self:v}=this.client.session.get(o);await this.client.core.relayer.unsubscribe(o),await this.client.session.delete(o,Gt("USER_DISCONNECTED")),this.addToRecentlyDeleted(o,"session"),this.client.core.crypto.keychain.has(v.publicKey)&&await this.client.core.crypto.deleteKeyPair(v.publicKey),this.client.core.crypto.keychain.has(o)&&await this.client.core.crypto.deleteSymKey(o),a||this.client.core.expirer.del(o),this.client.core.storage.removeItem(np).catch(y=>this.client.logger.warn(y)),this.getPendingSessionRequests().forEach(y=>{y.topic===o&&this.deletePendingSessionRequest(y.id,Gt("USER_DISCONNECTED"))}),o===((s=this.sessionRequestQueue.queue[0])==null?void 0:s.topic)&&(this.sessionRequestQueue.state=ai.idle),h&&this.client.events.emit("session_delete",{id:p,topic:o})},this.deleteProposal=async(e,s)=>{if(s)try{const o=this.client.proposal.get(e),a=this.client.core.eventClient.getEvent({topic:o.pairingTopic});a==null||a.setError(gs.proposal_expired)}catch{}await Promise.all([this.client.proposal.delete(e,Gt("USER_DISCONNECTED")),s?Promise.resolve():this.client.core.expirer.del(e)]),this.addToRecentlyDeleted(e,"proposal")},this.deletePendingSessionRequest=async(e,s,o=!1)=>{await Promise.all([this.client.pendingRequest.delete(e,s),o?Promise.resolve():this.client.core.expirer.del(e)]),this.addToRecentlyDeleted(e,"request"),this.sessionRequestQueue.queue=this.sessionRequestQueue.queue.filter(a=>a.id!==e),o&&(this.sessionRequestQueue.state=ai.idle,this.client.events.emit("session_request_expire",{id:e}))},this.deletePendingAuthRequest=async(e,s,o=!1)=>{await Promise.all([this.client.auth.requests.delete(e,s),o?Promise.resolve():this.client.core.expirer.del(e)])},this.setExpiry=async(e,s)=>{this.client.session.keys.includes(e)&&(this.client.core.expirer.set(e,s),await this.client.session.update(e,{expiry:s}))},this.setProposal=async(e,s)=>{this.client.core.expirer.set(e,Ue(je.wc_sessionPropose.req.ttl)),await this.client.proposal.set(e,s)},this.setAuthRequest=async(e,s)=>{const{request:o,pairingTopic:a}=s;this.client.core.expirer.set(e,o.expiryTimestamp),await this.client.auth.requests.set(e,{authPayload:o.authPayload,requester:o.requester,expiryTimestamp:o.expiryTimestamp,id:e,pairingTopic:a,verifyContext:o.verifyContext})},this.setPendingSessionRequest=async e=>{const{id:s,topic:o,params:a,verifyContext:h}=e,p=a.request.expiryTimestamp||Ue(je.wc_sessionRequest.req.ttl);this.client.core.expirer.set(s,p),await this.client.pendingRequest.set(s,{id:s,topic:o,params:a,verifyContext:h})},this.sendRequest=async e=>{const{topic:s,method:o,params:a,expiry:h,relayRpcId:p,clientRpcId:v,throwOnFailedPublish:y}=e,M=A.formatJsonRpcRequest(o,a,v);let P;try{P=await this.client.core.crypto.encode(s,M)}catch(k){throw await this.cleanup(),this.client.logger.error(`sendRequest() -> core.crypto.encode() for topic ${s} failed`),k}let T;if(mI.includes(o)){const k=Ui(JSON.stringify(M)),H=Ui(P);T=await this.client.core.verify.register({id:H,decryptedId:k})}const D=je[o].req;return D.attestation=T,h&&(D.ttl=h),p&&(D.id=p),this.client.core.history.set(s,M),y?(D.internal=vs(Ne({},D.internal),{throwOnFailedPublish:!0}),await this.client.core.relayer.publish(s,P,D)):this.client.core.relayer.publish(s,P,D).catch(k=>this.client.logger.error(k)),M.id},this.sendResult=async e=>{const{id:s,topic:o,result:a,throwOnFailedPublish:h,encodeOpts:p}=e,v=A.formatJsonRpcResult(s,a);let y;try{y=await this.client.core.crypto.encode(o,v,p)}catch(T){throw await this.cleanup(),this.client.logger.error(`sendResult() -> core.crypto.encode() for topic ${o} failed`),T}let M;try{M=await this.client.core.history.get(o,s)}catch(T){throw this.client.logger.error(`sendResult() -> history.get(${o}, ${s}) failed`),T}const P=je[M.request.method].res;h?(P.internal=vs(Ne({},P.internal),{throwOnFailedPublish:!0}),await this.client.core.relayer.publish(o,y,P)):this.client.core.relayer.publish(o,y,P).catch(T=>this.client.logger.error(T)),await this.client.core.history.resolve(v)},this.sendError=async e=>{const{id:s,topic:o,error:a,encodeOpts:h,rpcOpts:p}=e,v=A.formatJsonRpcError(s,a);let y;try{y=await this.client.core.crypto.encode(o,v,h)}catch(T){throw await this.cleanup(),this.client.logger.error(`sendError() -> core.crypto.encode() for topic ${o} failed`),T}let M;try{M=await this.client.core.history.get(o,s)}catch(T){throw this.client.logger.error(`sendError() -> history.get(${o}, ${s}) failed`),T}const P=p||je[M.request.method].res;this.client.core.relayer.publish(o,y,P),await this.client.core.history.resolve(v)},this.cleanup=async()=>{const e=[],s=[];this.client.session.getAll().forEach(o=>{let a=!1;rs(o.expiry)&&(a=!0),this.client.core.crypto.keychain.has(o.topic)||(a=!0),a&&e.push(o.topic)}),this.client.proposal.getAll().forEach(o=>{rs(o.expiryTimestamp)&&s.push(o.id)}),await Promise.all([...e.map(o=>this.deleteSession({topic:o})),...s.map(o=>this.deleteProposal(o))])},this.onRelayEventRequest=async e=>{this.requestQueue.queue.push(e),await this.processRequestsQueue()},this.processRequestsQueue=async()=>{if(this.requestQueue.state===ai.active){this.client.logger.info("Request queue already active, skipping...");return}for(this.client.logger.info(`Request queue starting with ${this.requestQueue.queue.length} requests`);this.requestQueue.queue.length>0;){this.requestQueue.state=ai.active;const e=this.requestQueue.queue.shift();if(e)try{await this.processRequest(e)}catch(s){this.client.logger.warn(s)}}this.requestQueue.state=ai.idle},this.processRequest=async e=>{const{topic:s,payload:o,attestation:a,encryptedId:h}=e,p=o.method;if(!this.shouldIgnorePairingRequest({topic:s,requestMethod:p}))switch(p){case"wc_sessionPropose":return await this.onSessionProposeRequest({topic:s,payload:o,attestation:a,encryptedId:h});case"wc_sessionSettle":return await this.onSessionSettleRequest(s,o);case"wc_sessionUpdate":return await this.onSessionUpdateRequest(s,o);case"wc_sessionExtend":return await this.onSessionExtendRequest(s,o);case"wc_sessionPing":return await this.onSessionPingRequest(s,o);case"wc_sessionDelete":return await this.onSessionDeleteRequest(s,o);case"wc_sessionRequest":return await this.onSessionRequest({topic:s,payload:o,attestation:a,encryptedId:h});case"wc_sessionEvent":return await this.onSessionEventRequest(s,o);case"wc_sessionAuthenticate":return await this.onSessionAuthenticateRequest({topic:s,payload:o,attestation:a,encryptedId:h});default:return this.client.logger.info(`Unsupported request method ${p}`)}},this.onRelayEventResponse=async e=>{const{topic:s,payload:o}=e,a=(await this.client.core.history.get(s,o.id)).request.method;switch(a){case"wc_sessionPropose":return this.onSessionProposeResponse(s,o);case"wc_sessionSettle":return this.onSessionSettleResponse(s,o);case"wc_sessionUpdate":return this.onSessionUpdateResponse(s,o);case"wc_sessionExtend":return this.onSessionExtendResponse(s,o);case"wc_sessionPing":return this.onSessionPingResponse(s,o);case"wc_sessionRequest":return this.onSessionRequestResponse(s,o);case"wc_sessionAuthenticate":return this.onSessionAuthenticateResponse(s,o);default:return this.client.logger.info(`Unsupported response method ${a}`)}},this.onRelayEventUnknownPayload=e=>{const{topic:s}=e,{message:o}=G("MISSING_OR_INVALID",`Decoded payload on topic ${s} is not identifiable as a JSON-RPC request or a response.`);throw new Error(o)},this.shouldIgnorePairingRequest=e=>{const{topic:s,requestMethod:o}=e,a=this.expectedPairingMethodMap.get(s);return!a||a.includes(o)?!1:!!(a.includes("wc_sessionAuthenticate")&&this.client.events.listenerCount("session_authenticate")>0)},this.onSessionProposeRequest=async e=>{const{topic:s,payload:o,attestation:a,encryptedId:h}=e,{params:p,id:v}=o;try{const y=this.client.core.eventClient.getEvent({topic:s});this.isValidConnect(Ne({},o.params));const M=p.expiryTimestamp||Ue(je.wc_sessionPropose.req.ttl),P=Ne({id:v,pairingTopic:s,expiryTimestamp:M},p);await this.setProposal(v,P);const T=await this.getVerifyContext({attestationId:a,hash:Ui(JSON.stringify(o)),encryptedId:h,metadata:P.proposer.metadata});this.client.events.listenerCount("session_proposal")===0&&(console.warn("No listener for session_proposal event"),y==null||y.setError(Bi.proposal_listener_not_found)),y==null||y.addTrace(ci.emit_session_proposal),this.client.events.emit("session_proposal",{id:v,params:P,verifyContext:T})}catch(y){await this.sendError({id:v,topic:s,error:y,rpcOpts:je.wc_sessionPropose.autoReject}),this.client.logger.error(y)}},this.onSessionProposeResponse=async(e,s)=>{const{id:o}=s;if(A.isJsonRpcResult(s)){const{result:a}=s;this.client.logger.trace({type:"method",method:"onSessionProposeResponse",result:a});const h=this.client.proposal.get(o);this.client.logger.trace({type:"method",method:"onSessionProposeResponse",proposal:h});const p=h.proposer.publicKey;this.client.logger.trace({type:"method",method:"onSessionProposeResponse",selfPublicKey:p});const v=a.responderPublicKey;this.client.logger.trace({type:"method",method:"onSessionProposeResponse",peerPublicKey:v});const y=await this.client.core.crypto.generateSharedKey(p,v);this.client.logger.trace({type:"method",method:"onSessionProposeResponse",sessionTopic:y});const M=await this.client.core.relayer.subscribe(y);this.client.logger.trace({type:"method",method:"onSessionProposeResponse",subscriptionId:M}),await this.client.core.pairing.activate({topic:e})}else if(A.isJsonRpcError(s)){await this.client.proposal.delete(o,Gt("USER_DISCONNECTED"));const a=It("session_connect");if(this.events.listenerCount(a)===0)throw new Error(`emitting ${a} without any listeners, 954`);this.events.emit(It("session_connect"),{error:s.error})}},this.onSessionSettleRequest=async(e,s)=>{const{id:o,params:a}=s;try{this.isValidSessionSettleRequest(a);const{relay:h,controller:p,expiry:v,namespaces:y,sessionProperties:M,sessionConfig:P}=s.params,T=Ne(Ne({topic:e,relay:h,expiry:v,namespaces:y,acknowledged:!0,pairingTopic:"",requiredNamespaces:{},optionalNamespaces:{},controller:p.publicKey,self:{publicKey:"",metadata:this.client.metadata},peer:{publicKey:p.publicKey,metadata:p.metadata}},M&&{sessionProperties:M}),P&&{sessionConfig:P}),D=It("session_connect");if(this.events.listenerCount(D)===0)throw new Error(`emitting ${D} without any listeners 997`);this.events.emit(It("session_connect"),{session:T}),await this.sendResult({id:s.id,topic:e,result:!0,throwOnFailedPublish:!0})}catch(h){await this.sendError({id:o,topic:e,error:h}),this.client.logger.error(h)}},this.onSessionSettleResponse=async(e,s)=>{const{id:o}=s;A.isJsonRpcResult(s)?(await this.client.session.update(e,{acknowledged:!0}),this.events.emit(It("session_approve",o),{})):A.isJsonRpcError(s)&&(await this.client.session.delete(e,Gt("USER_DISCONNECTED")),this.events.emit(It("session_approve",o),{error:s.error}))},this.onSessionUpdateRequest=async(e,s)=>{const{params:o,id:a}=s;try{const h=`${e}_session_update`,p=On.get(h);if(p&&this.isRequestOutOfSync(p,a)){this.client.logger.info(`Discarding out of sync request - ${a}`),this.sendError({id:a,topic:e,error:Gt("INVALID_UPDATE_REQUEST")});return}this.isValidUpdate(Ne({topic:e},o));try{On.set(h,a),await this.client.session.update(e,{namespaces:o.namespaces}),await this.sendResult({id:a,topic:e,result:!0,throwOnFailedPublish:!0})}catch(v){throw On.delete(h),v}this.client.events.emit("session_update",{id:a,topic:e,params:o})}catch(h){await this.sendError({id:a,topic:e,error:h}),this.client.logger.error(h)}},this.isRequestOutOfSync=(e,s)=>parseInt(s.toString().slice(0,-3))<=parseInt(e.toString().slice(0,-3)),this.onSessionUpdateResponse=(e,s)=>{const{id:o}=s,a=It("session_update",o);if(this.events.listenerCount(a)===0)throw new Error(`emitting ${a} without any listeners`);A.isJsonRpcResult(s)?this.events.emit(It("session_update",o),{}):A.isJsonRpcError(s)&&this.events.emit(It("session_update",o),{error:s.error})},this.onSessionExtendRequest=async(e,s)=>{const{id:o}=s;try{this.isValidExtend({topic:e}),await this.setExpiry(e,Ue(Ls)),await this.sendResult({id:o,topic:e,result:!0,throwOnFailedPublish:!0}),this.client.events.emit("session_extend",{id:o,topic:e})}catch(a){await this.sendError({id:o,topic:e,error:a}),this.client.logger.error(a)}},this.onSessionExtendResponse=(e,s)=>{const{id:o}=s,a=It("session_extend",o);if(this.events.listenerCount(a)===0)throw new Error(`emitting ${a} without any listeners`);A.isJsonRpcResult(s)?this.events.emit(It("session_extend",o),{}):A.isJsonRpcError(s)&&this.events.emit(It("session_extend",o),{error:s.error})},this.onSessionPingRequest=async(e,s)=>{const{id:o}=s;try{this.isValidPing({topic:e}),await this.sendResult({id:o,topic:e,result:!0,throwOnFailedPublish:!0}),this.client.events.emit("session_ping",{id:o,topic:e})}catch(a){await this.sendError({id:o,topic:e,error:a}),this.client.logger.error(a)}},this.onSessionPingResponse=(e,s)=>{const{id:o}=s,a=It("session_ping",o);if(this.events.listenerCount(a)===0)throw new Error(`emitting ${a} without any listeners`);setTimeout(()=>{A.isJsonRpcResult(s)?this.events.emit(It("session_ping",o),{}):A.isJsonRpcError(s)&&this.events.emit(It("session_ping",o),{error:s.error})},500)},this.onSessionDeleteRequest=async(e,s)=>{const{id:o}=s;try{this.isValidDisconnect({topic:e,reason:s.params}),await Promise.all([new Promise(a=>{this.client.core.relayer.once(ar.publish,async()=>{a(await this.deleteSession({topic:e,id:o}))})}),this.sendResult({id:o,topic:e,result:!0,throwOnFailedPublish:!0}),this.cleanupPendingSentRequestsForTopic({topic:e,error:Gt("USER_DISCONNECTED")})])}catch(a){this.client.logger.error(a)}},this.onSessionRequest=async e=>{var s;const{topic:o,payload:a,attestation:h,encryptedId:p}=e,{id:v,params:y}=a;try{await this.isValidRequest(Ne({topic:o},y));const M=this.client.session.get(o),P=await this.getVerifyContext({attestationId:h,hash:Ui(JSON.stringify(A.formatJsonRpcRequest("wc_sessionRequest",y,v))),encryptedId:p,metadata:M.peer.metadata}),T={id:v,topic:o,params:y,verifyContext:P};await this.setPendingSessionRequest(T),(s=this.client.signConfig)!=null&&s.disableRequestQueue?this.emitSessionRequest(T):(this.addSessionRequestToSessionRequestQueue(T),this.processSessionRequestQueue())}catch(M){await this.sendError({id:v,topic:o,error:M}),this.client.logger.error(M)}},this.onSessionRequestResponse=(e,s)=>{const{id:o}=s,a=It("session_request",o);if(this.events.listenerCount(a)===0)throw new Error(`emitting ${a} without any listeners`);A.isJsonRpcResult(s)?this.events.emit(It("session_request",o),{result:s.result}):A.isJsonRpcError(s)&&this.events.emit(It("session_request",o),{error:s.error})},this.onSessionEventRequest=async(e,s)=>{const{id:o,params:a}=s;try{const h=`${e}_session_event_${a.event.name}`,p=On.get(h);if(p&&this.isRequestOutOfSync(p,o)){this.client.logger.info(`Discarding out of sync request - ${o}`);return}this.isValidEmit(Ne({topic:e},a)),this.client.events.emit("session_event",{id:o,topic:e,params:a}),On.set(h,o)}catch(h){await this.sendError({id:o,topic:e,error:h}),this.client.logger.error(h)}},this.onSessionAuthenticateResponse=(e,s)=>{const{id:o}=s;this.client.logger.trace({type:"method",method:"onSessionAuthenticateResponse",topic:e,payload:s}),A.isJsonRpcResult(s)?this.events.emit(It("session_request",o),{result:s.result}):A.isJsonRpcError(s)&&this.events.emit(It("session_request",o),{error:s.error})},this.onSessionAuthenticateRequest=async e=>{const{topic:s,payload:o,attestation:a,encryptedId:h}=e;try{const{requester:p,authPayload:v,expiryTimestamp:y}=o.params,M=await this.getVerifyContext({attestationId:a,hash:Ui(JSON.stringify(o)),encryptedId:h,metadata:p.metadata}),P={requester:p,pairingTopic:s,id:o.id,authPayload:v,verifyContext:M,expiryTimestamp:y};await this.setAuthRequest(o.id,{request:P,pairingTopic:s}),this.client.events.emit("session_authenticate",{topic:s,params:o.params,id:o.id,verifyContext:M})}catch(p){this.client.logger.error(p);const v=o.params.requester.publicKey,y=await this.client.core.crypto.generateKeyPair(),M={type:Li,receiverPublicKey:v,senderPublicKey:y};await this.sendError({id:o.id,topic:s,error:p,encodeOpts:M,rpcOpts:je.wc_sessionAuthenticate.autoReject})}},this.addSessionRequestToSessionRequestQueue=e=>{this.sessionRequestQueue.queue.push(e)},this.cleanupAfterResponse=e=>{this.deletePendingSessionRequest(e.response.id,{message:"fulfilled",code:0}),setTimeout(()=>{this.sessionRequestQueue.state=ai.idle,this.processSessionRequestQueue()},A.cjs.toMiliseconds(this.requestQueueDelay))},this.cleanupPendingSentRequestsForTopic=({topic:e,error:s})=>{const o=this.client.core.history.pending;o.length>0&&o.filter(a=>a.topic===e&&a.request.method==="wc_sessionRequest").forEach(a=>{const h=a.request.id,p=It("session_request",h);if(this.events.listenerCount(p)===0)throw new Error(`emitting ${p} without any listeners`);this.events.emit(It("session_request",a.request.id),{error:s})})},this.processSessionRequestQueue=()=>{if(this.sessionRequestQueue.state===ai.active){this.client.logger.info("session request queue is already active.");return}const e=this.sessionRequestQueue.queue[0];if(!e){this.client.logger.info("session request queue is empty.");return}try{this.sessionRequestQueue.state=ai.active,this.emitSessionRequest(e)}catch(s){this.client.logger.error(s)}},this.emitSessionRequest=e=>{this.client.events.emit("session_request",e)},this.onPairingCreated=e=>{if(e.methods&&this.expectedPairingMethodMap.set(e.topic,e.methods),e.active)return;const s=this.client.proposal.getAll().find(o=>o.pairingTopic===e.topic);s&&this.onSessionProposeRequest({topic:e.topic,payload:A.formatJsonRpcRequest("wc_sessionPropose",{requiredNamespaces:s.requiredNamespaces,optionalNamespaces:s.optionalNamespaces,relays:s.relays,proposer:s.proposer,sessionProperties:s.sessionProperties},s.id)})},this.isValidConnect=async e=>{if(!sr(e)){const{message:v}=G("MISSING_OR_INVALID",`connect() params: ${JSON.stringify(e)}`);throw new Error(v)}const{pairingTopic:s,requiredNamespaces:o,optionalNamespaces:a,sessionProperties:h,relays:p}=e;if(or(s)||await this.isValidPairingTopic(s),!z3(p)){const{message:v}=G("MISSING_OR_INVALID",`connect() relays: ${p}`);throw new Error(v)}!or(o)&&Qn(o)!==0&&this.validateNamespaces(o,"requiredNamespaces"),!or(a)&&Qn(a)!==0&&this.validateNamespaces(a,"optionalNamespaces"),or(h)||this.validateSessionProps(h,"sessionProperties")},this.validateNamespaces=(e,s)=>{const o=$3(e,"connect()",s);if(o)throw new Error(o.message)},this.isValidApprove=async e=>{if(!sr(e))throw new Error(G("MISSING_OR_INVALID",`approve() params: ${e}`).message);const{id:s,namespaces:o,relayProtocol:a,sessionProperties:h}=e;this.checkRecentlyDeleted(s),await this.isValidProposalId(s);const p=this.client.proposal.get(s),v=zc(o,"approve()");if(v)throw new Error(v.message);const y=kf(p.requiredNamespaces,o,"approve()");if(y)throw new Error(y.message);if(!Pe(a,!0)){const{message:M}=G("MISSING_OR_INVALID",`approve() relayProtocol: ${a}`);throw new Error(M)}or(h)||this.validateSessionProps(h,"sessionProperties")},this.isValidReject=async e=>{if(!sr(e)){const{message:a}=G("MISSING_OR_INVALID",`reject() params: ${e}`);throw new Error(a)}const{id:s,reason:o}=e;if(this.checkRecentlyDeleted(s),await this.isValidProposalId(s),!K3(o)){const{message:a}=G("MISSING_OR_INVALID",`reject() reason: ${JSON.stringify(o)}`);throw new Error(a)}},this.isValidSessionSettleRequest=e=>{if(!sr(e)){const{message:y}=G("MISSING_OR_INVALID",`onSessionSettleRequest() params: ${e}`);throw new Error(y)}const{relay:s,controller:o,namespaces:a,expiry:h}=e;if(!dd(s)){const{message:y}=G("MISSING_OR_INVALID","onSessionSettleRequest() relay protocol should be a string");throw new Error(y)}const p=D3(o,"onSessionSettleRequest()");if(p)throw new Error(p.message);const v=zc(a,"onSessionSettleRequest()");if(v)throw new Error(v.message);if(rs(h)){const{message:y}=G("EXPIRED","onSessionSettleRequest()");throw new Error(y)}},this.isValidUpdate=async e=>{if(!sr(e)){const{message:v}=G("MISSING_OR_INVALID",`update() params: ${e}`);throw new Error(v)}const{topic:s,namespaces:o}=e;this.checkRecentlyDeleted(s),await this.isValidSessionTopic(s);const a=this.client.session.get(s),h=zc(o,"update()");if(h)throw new Error(h.message);const p=kf(a.requiredNamespaces,o,"update()");if(p)throw new Error(p.message)},this.isValidExtend=async e=>{if(!sr(e)){const{message:o}=G("MISSING_OR_INVALID",`extend() params: ${e}`);throw new Error(o)}const{topic:s}=e;this.checkRecentlyDeleted(s),await this.isValidSessionTopic(s)},this.isValidRequest=async e=>{if(!sr(e)){const{message:v}=G("MISSING_OR_INVALID",`request() params: ${e}`);throw new Error(v)}const{topic:s,request:o,chainId:a,expiry:h}=e;this.checkRecentlyDeleted(s),await this.isValidSessionTopic(s);const{namespaces:p}=this.client.session.get(s);if(!qf(p,a)){const{message:v}=G("MISSING_OR_INVALID",`request() chainId: ${a}`);throw new Error(v)}if(!H3(o)){const{message:v}=G("MISSING_OR_INVALID",`request() ${JSON.stringify(o)}`);throw new Error(v)}if(!Q3(p,a,o.method)){const{message:v}=G("MISSING_OR_INVALID",`request() method: ${o.method}`);throw new Error(v)}if(h&&!Z3(h,Jc)){const{message:v}=G("MISSING_OR_INVALID",`request() expiry: ${h}. Expiry must be a number (in seconds) between ${Jc.min} and ${Jc.max}`);throw new Error(v)}},this.isValidRespond=async e=>{var s;if(!sr(e)){const{message:h}=G("MISSING_OR_INVALID",`respond() params: ${e}`);throw new Error(h)}const{topic:o,response:a}=e;try{await this.isValidSessionTopic(o)}catch(h){throw(s=e==null?void 0:e.response)!=null&&s.id&&this.cleanupAfterResponse(e),h}if(!V3(a)){const{message:h}=G("MISSING_OR_INVALID",`respond() response: ${JSON.stringify(a)}`);throw new Error(h)}},this.isValidPing=async e=>{if(!sr(e)){const{message:o}=G("MISSING_OR_INVALID",`ping() params: ${e}`);throw new Error(o)}const{topic:s}=e;await this.isValidSessionOrPairingTopic(s)},this.isValidEmit=async e=>{if(!sr(e)){const{message:p}=G("MISSING_OR_INVALID",`emit() params: ${e}`);throw new Error(p)}const{topic:s,event:o,chainId:a}=e;await this.isValidSessionTopic(s);const{namespaces:h}=this.client.session.get(s);if(!qf(h,a)){const{message:p}=G("MISSING_OR_INVALID",`emit() chainId: ${a}`);throw new Error(p)}if(!J3(o)){const{message:p}=G("MISSING_OR_INVALID",`emit() event: ${JSON.stringify(o)}`);throw new Error(p)}if(!G3(h,a,o.name)){const{message:p}=G("MISSING_OR_INVALID",`emit() event: ${JSON.stringify(o)}`);throw new Error(p)}},this.isValidDisconnect=async e=>{if(!sr(e)){const{message:o}=G("MISSING_OR_INVALID",`disconnect() params: ${e}`);throw new Error(o)}const{topic:s}=e;await this.isValidSessionOrPairingTopic(s)},this.isValidAuthenticate=e=>{const{chains:s,uri:o,domain:a,nonce:h}=e;if(!Array.isArray(s)||s.length===0)throw new Error("chains is required and must be a non-empty array");if(!Pe(o,!1))throw new Error("uri is required parameter");if(!Pe(a,!1))throw new Error("domain is required parameter");if(!Pe(h,!1))throw new Error("nonce is required parameter");if([...new Set(s.map(v=>$n(v).namespace))].length>1)throw new Error("Multi-namespace requests are not supported. Please request single namespace only.");const{namespace:p}=$n(s[0]);if(p!=="eip155")throw new Error("Only eip155 namespace is supported for authenticated sessions. Please use .connect() for non-eip155 chains.")},this.getVerifyContext=async e=>{const{attestationId:s,hash:o,encryptedId:a,metadata:h}=e,p={verified:{verifyUrl:h.verifyUrl||Kn,validation:"UNKNOWN",origin:h.url||""}};try{const v=await this.client.core.verify.resolve({attestationId:s,hash:o,encryptedId:a,verifyUrl:h.verifyUrl});v&&(p.verified.origin=v.origin,p.verified.isScam=v.isScam,p.verified.validation=v.origin===new URL(h.url).origin?"VALID":"INVALID")}catch(v){this.client.logger.warn(v)}return this.client.logger.debug(`Verify context: ${JSON.stringify(p)}`),p},this.validateSessionProps=(e,s)=>{Object.values(e).forEach(o=>{if(!Pe(o,!1)){const{message:a}=G("MISSING_OR_INVALID",`${s} must be in Record<string, string> format. Received: ${JSON.stringify(o)}`);throw new Error(a)}})},this.getPendingAuthRequest=e=>{const s=this.client.auth.requests.get(e);return typeof s=="object"?s:void 0},this.addToRecentlyDeleted=(e,s)=>{if(this.recentlyDeletedMap.set(e,s),this.recentlyDeletedMap.size>=this.recentlyDeletedLimit){let o=0;const a=this.recentlyDeletedLimit/2;for(const h of this.recentlyDeletedMap.keys()){if(o++>=a)break;this.recentlyDeletedMap.delete(h)}}},this.checkRecentlyDeleted=e=>{const s=this.recentlyDeletedMap.get(e);if(s){const{message:o}=G("MISSING_OR_INVALID",`Record was recently deleted - ${s}: ${e}`);throw new Error(o)}}}async isInitialized(){if(!this.initialized){const{message:t}=G("NOT_INITIALIZED",this.name);throw new Error(t)}await this.client.core.relayer.confirmOnlineStateOrThrow()}registerRelayerEvents(){this.client.core.relayer.on(ar.message,t=>{!this.initialized||this.relayMessageCache.length>0?this.relayMessageCache.push(t):this.onRelayMessage(t)})}async onRelayMessage(t){const{topic:e,message:s,attestation:o}=t,{publicKey:a}=this.client.auth.authKeys.keys.includes(ra)?this.client.auth.authKeys.get(ra):{responseTopic:void 0,publicKey:void 0},h=await this.client.core.crypto.decode(e,s,{receiverPublicKey:a});try{A.isJsonRpcRequest(h)?(this.client.core.history.set(e,h),this.onRelayEventRequest({topic:e,payload:h,attestation:o,encryptedId:Ui(s)})):A.isJsonRpcResponse(h)?(await this.client.core.history.resolve(h),await this.onRelayEventResponse({topic:e,payload:h}),this.client.core.history.delete(e,h.id)):this.onRelayEventUnknownPayload({topic:e,payload:h})}catch(p){this.client.logger.error(p)}}registerExpirerEvents(){this.client.core.expirer.on(Rr.expired,async t=>{const{topic:e,id:s}=Pp(t.target);if(s&&this.client.pendingRequest.keys.includes(s))return await this.deletePendingSessionRequest(s,G("EXPIRED"),!0);if(s&&this.client.auth.requests.keys.includes(s))return await this.deletePendingAuthRequest(s,G("EXPIRED"),!0);e?this.client.session.keys.includes(e)&&(await this.deleteSession({topic:e,expirerHasDeleted:!0}),this.client.events.emit("session_expire",{topic:e})):s&&(await this.deleteProposal(s,!0),this.client.events.emit("proposal_expire",{id:s}))})}registerPairingEvents(){this.client.core.pairing.events.on(Js.create,t=>this.onPairingCreated(t)),this.client.core.pairing.events.on(Js.delete,t=>{this.addToRecentlyDeleted(t.topic,"pairing")})}isValidPairingTopic(t){if(!Pe(t,!1)){const{message:e}=G("MISSING_OR_INVALID",`pairing topic should be a string: ${t}`);throw new Error(e)}if(!this.client.core.pairing.pairings.keys.includes(t)){const{message:e}=G("NO_MATCHING_KEY",`pairing topic doesn't exist: ${t}`);throw new Error(e)}if(rs(this.client.core.pairing.pairings.get(t).expiry)){const{message:e}=G("EXPIRED",`pairing topic: ${t}`);throw new Error(e)}}async isValidSessionTopic(t){if(!Pe(t,!1)){const{message:e}=G("MISSING_OR_INVALID",`session topic should be a string: ${t}`);throw new Error(e)}if(this.checkRecentlyDeleted(t),!this.client.session.keys.includes(t)){const{message:e}=G("NO_MATCHING_KEY",`session topic doesn't exist: ${t}`);throw new Error(e)}if(rs(this.client.session.get(t).expiry)){await this.deleteSession({topic:t});const{message:e}=G("EXPIRED",`session topic: ${t}`);throw new Error(e)}if(!this.client.core.crypto.keychain.has(t)){const{message:e}=G("MISSING_OR_INVALID",`session topic does not exist in keychain: ${t}`);throw await this.deleteSession({topic:t}),new Error(e)}}async isValidSessionOrPairingTopic(t){if(this.checkRecentlyDeleted(t),this.client.session.keys.includes(t))await this.isValidSessionTopic(t);else if(this.client.core.pairing.pairings.keys.includes(t))this.isValidPairingTopic(t);else if(Pe(t,!1)){const{message:e}=G("NO_MATCHING_KEY",`session or pairing topic doesn't exist: ${t}`);throw new Error(e)}else{const{message:e}=G("MISSING_OR_INVALID",`session or pairing topic should be a string: ${t}`);throw new Error(e)}}async isValidProposalId(t){if(!L3(t)){const{message:e}=G("MISSING_OR_INVALID",`proposal id should be a number: ${t}`);throw new Error(e)}if(!this.client.proposal.keys.includes(t)){const{message:e}=G("NO_MATCHING_KEY",`proposal id doesn't exist: ${t}`);throw new Error(e)}if(rs(this.client.proposal.get(t).expiryTimestamp)){await this.deleteProposal(t);const{message:e}=G("EXPIRED",`proposal id: ${t}`);throw new Error(e)}}}class CI extends Es{constructor(t,e){super(t,e,fI,Ih),this.core=t,this.logger=e}}class xI extends Es{constructor(t,e){super(t,e,pI,Ih),this.core=t,this.logger=e}}class RI extends Es{constructor(t,e){super(t,e,gI,Ih,s=>s.id),this.core=t,this.logger=e}}class NI extends Es{constructor(t,e){super(t,e,wI,ga,()=>ra),this.core=t,this.logger=e}}class OI extends Es{constructor(t,e){super(t,e,bI,ga),this.core=t,this.logger=e}}class TI extends Es{constructor(t,e){super(t,e,_I,ga,s=>s.id),this.core=t,this.logger=e}}class FI{constructor(t,e){this.core=t,this.logger=e,this.authKeys=new NI(this.core,this.logger),this.pairingTopics=new OI(this.core,this.logger),this.requests=new TI(this.core,this.logger)}async init(){await this.authKeys.init(),await this.pairingTopics.init(),await this.requests.init()}}class Sh extends mA{constructor(t){super(t),this.protocol=Od,this.version=Td,this.name=Vc.name,this.events=new A.eventsExports.EventEmitter,this.on=(s,o)=>this.events.on(s,o),this.once=(s,o)=>this.events.once(s,o),this.off=(s,o)=>this.events.off(s,o),this.removeListener=(s,o)=>this.events.removeListener(s,o),this.removeAllListeners=s=>this.events.removeAllListeners(s),this.connect=async s=>{try{return await this.engine.connect(s)}catch(o){throw this.logger.error(o.message),o}},this.pair=async s=>{try{return await this.engine.pair(s)}catch(o){throw this.logger.error(o.message),o}},this.approve=async s=>{try{return await this.engine.approve(s)}catch(o){throw this.logger.error(o.message),o}},this.reject=async s=>{try{return await this.engine.reject(s)}catch(o){throw this.logger.error(o.message),o}},this.update=async s=>{try{return await this.engine.update(s)}catch(o){throw this.logger.error(o.message),o}},this.extend=async s=>{try{return await this.engine.extend(s)}catch(o){throw this.logger.error(o.message),o}},this.request=async s=>{try{return await this.engine.request(s)}catch(o){throw this.logger.error(o.message),o}},this.respond=async s=>{try{return await this.engine.respond(s)}catch(o){throw this.logger.error(o.message),o}},this.ping=async s=>{try{return await this.engine.ping(s)}catch(o){throw this.logger.error(o.message),o}},this.emit=async s=>{try{return await this.engine.emit(s)}catch(o){throw this.logger.error(o.message),o}},this.disconnect=async s=>{try{return await this.engine.disconnect(s)}catch(o){throw this.logger.error(o.message),o}},this.find=s=>{try{return this.engine.find(s)}catch(o){throw this.logger.error(o.message),o}},this.getPendingSessionRequests=()=>{try{return this.engine.getPendingSessionRequests()}catch(s){throw this.logger.error(s.message),s}},this.authenticate=async s=>{try{return await this.engine.authenticate(s)}catch(o){throw this.logger.error(o.message),o}},this.formatAuthMessage=s=>{try{return this.engine.formatAuthMessage(s)}catch(o){throw this.logger.error(o.message),o}},this.approveSessionAuthenticate=async s=>{try{return await this.engine.approveSessionAuthenticate(s)}catch(o){throw this.logger.error(o.message),o}},this.rejectSessionAuthenticate=async s=>{try{return await this.engine.rejectSessionAuthenticate(s)}catch(o){throw this.logger.error(o.message),o}},this.name=(t==null?void 0:t.name)||Vc.name,this.metadata=(t==null?void 0:t.metadata)||Qw(),this.signConfig=t==null?void 0:t.signConfig;const e=typeof(t==null?void 0:t.logger)<"u"&&typeof(t==null?void 0:t.logger)!="string"?t.logger:A.Wg(A.k({level:(t==null?void 0:t.logger)||Vc.logger}));this.core=(t==null?void 0:t.core)||new lI(t),this.logger=A.E(e,this.name),this.session=new xI(this.core,this.logger),this.proposal=new CI(this.core,this.logger),this.pendingRequest=new RI(this.core,this.logger),this.engine=new MI(this),this.auth=new FI(this.core,this.logger)}static async init(t){const e=new Sh(t);return await e.initialize(),e}get context(){return A.y(this.logger)}get pairing(){return this.core.pairing.pairings}async initialize(){this.logger.trace("Initialized");try{await this.core.start(),await this.session.init(),await this.proposal.init(),await this.pendingRequest.init(),await this.engine.init(),await this.auth.init(),this.logger.info("SignClient Initialization Success"),this.engine.processRelayMessageCache()}catch(t){throw this.logger.info("SignClient Initialization Failure"),this.logger.error(t.message),t}}}const cp="error",DI="wss://relay.walletconnect.com",qI="wc",kI="universal_provider",hp=`${qI}@2:${kI}:`,BI="https://rpc.walletconnect.com/v1/",Hs="generic",Gr={DEFAULT_CHAIN_CHANGED:"default_chain_changed"};var kn=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof A.global<"u"?A.global:typeof self<"u"?self:{},lh={exports:{}};/**
18
+ * @license
19
+ * Lodash <https://lodash.com/>
20
+ * Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
21
+ * Released under MIT license <https://lodash.com/license>
22
+ * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
23
+ * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
24
+ */(function(i,t){(function(){var e,s="4.17.21",o=200,a="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",h="Expected a function",p="Invalid `variable` option passed into `_.template`",v="__lodash_hash_undefined__",y=500,M="__lodash_placeholder__",P=1,T=2,D=4,k=1,H=2,V=1,Q=2,ht=4,ut=8,W=16,et=32,ct=64,st=128,gt=256,kt=512,Te=30,Ct="...",Me=800,u=16,d=1,b=2,I=3,C=1/0,N=9007199254740991,q=17976931348623157e292,S=NaN,f=4294967295,E=f-1,lt=f>>>1,ot=[["ary",st],["bind",V],["bindKey",Q],["curry",ut],["curryRight",W],["flip",kt],["partial",et],["partialRight",ct],["rearg",gt]],m="[object Arguments]",$="[object Array]",j="[object AsyncFunction]",K="[object Boolean]",rt="[object Date]",X="[object DOMException]",tt="[object Error]",at="[object Function]",mt="[object GeneratorFunction]",Y="[object Map]",Ot="[object Number]",Xt="[object Null]",xt="[object Object]",Yr="[object Promise]",te="[object Proxy]",Tt="[object RegExp]",Ce="[object Set]",Ft="[object String]",Bt="[object Symbol]",_i="[object Undefined]",Dt="[object WeakMap]",ee="[object WeakSet]",hr="[object ArrayBuffer]",Nt="[object DataView]",$t="[object Float32Array]",Tr="[object Float64Array]",zt="[object Int8Array]",Lt="[object Int16Array]",Fr="[object Int32Array]",Kt="[object Uint8Array]",Ht="[object Uint8ClampedArray]",Dr="[object Uint16Array]",Vt="[object Uint32Array]",re=/\b__p \+= '';/g,Ai=/\b(__p \+=) '' \+/g,ie=/(__e\(.*?\)|\b__t\)) \+\n'';/g,Yt=/&(?:amp|lt|gt|quot|#39);/g,Wr=/[&<>"']/g,se=RegExp(Yt.source),ne=RegExp(Wr.source),Ei=/<%-([\s\S]+?)%>/g,oe=/<%([\s\S]+?)%>/g,Wt=/<%=([\s\S]+?)%>/g,Ii=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,ae=/^\w*$/,ce=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,qr=/[\\^$.*+?()[\]{}|]/g,he=RegExp(qr.source),Jt=/^\s+/,Si=/\s/,ue=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,le=/\{\n\/\* \[wrapped with (.+)\] \*/,Pi=/,? & /,fe=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,pe=/[()=,{}\[\]\/\s]/,Mi=/\\(\\)?/g,de=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Zt=/\w*$/,Zr=/^[-+]0x[0-9a-f]+$/i,Xr=/^0b[01]+$/i,ti=/^\[object .+?Constructor\]$/,ei=/^0o[0-7]+$/i,ri=/^(?:0|[1-9]\d*)$/,ii=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Ki=/($^)/,on=/['\n\r\u2028\u2029\\]/g,Hi="\\ud800-\\udfff",an="\\u0300-\\u036f",cn="\\ufe20-\\ufe2f",hn="\\u20d0-\\u20ff",Ps=an+cn+hn,Ms="\\u2700-\\u27bf",Cs="a-z\\xdf-\\xf6\\xf8-\\xff",un="\\xac\\xb1\\xd7\\xf7",ln="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",fn="\\u2000-\\u206f",pn=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Mh="A-Z\\xc0-\\xd6\\xd8-\\xde",Ch="\\ufe0e\\ufe0f",xh=un+ln+fn+pn,va="['’]",Ud="["+Hi+"]",Rh="["+xh+"]",eo="["+Ps+"]",Nh="\\d+",$d="["+Ms+"]",Oh="["+Cs+"]",Th="[^"+Hi+xh+Nh+Ms+Cs+Mh+"]",ya="\\ud83c[\\udffb-\\udfff]",zd="(?:"+eo+"|"+ya+")",Fh="[^"+Hi+"]",wa="(?:\\ud83c[\\udde6-\\uddff]){2}",ba="[\\ud800-\\udbff][\\udc00-\\udfff]",xs="["+Mh+"]",Dh="\\u200d",qh="(?:"+Oh+"|"+Th+")",Ld="(?:"+xs+"|"+Th+")",kh="(?:"+va+"(?:d|ll|m|re|s|t|ve))?",Bh="(?:"+va+"(?:D|LL|M|RE|S|T|VE))?",jh=zd+"?",Uh="["+Ch+"]?",Kd="(?:"+Dh+"(?:"+[Fh,wa,ba].join("|")+")"+Uh+jh+")*",Hd="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",Vd="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",$h=Uh+jh+Kd,Jd="(?:"+[$d,wa,ba].join("|")+")"+$h,Qd="(?:"+[Fh+eo+"?",eo,wa,ba,Ud].join("|")+")",Gd=RegExp(va,"g"),Yd=RegExp(eo,"g"),_a=RegExp(ya+"(?="+ya+")|"+Qd+$h,"g"),Wd=RegExp([xs+"?"+Oh+"+"+kh+"(?="+[Rh,xs,"$"].join("|")+")",Ld+"+"+Bh+"(?="+[Rh,xs+qh,"$"].join("|")+")",xs+"?"+qh+"+"+kh,xs+"+"+Bh,Vd,Hd,Nh,Jd].join("|"),"g"),Zd=RegExp("["+Dh+Hi+Ps+Ch+"]"),Xd=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,t0=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],e0=-1,ve={};ve[$t]=ve[Tr]=ve[zt]=ve[Lt]=ve[Fr]=ve[Kt]=ve[Ht]=ve[Dr]=ve[Vt]=!0,ve[m]=ve[$]=ve[hr]=ve[K]=ve[Nt]=ve[rt]=ve[tt]=ve[at]=ve[Y]=ve[Ot]=ve[xt]=ve[Tt]=ve[Ce]=ve[Ft]=ve[Dt]=!1;var me={};me[m]=me[$]=me[hr]=me[Nt]=me[K]=me[rt]=me[$t]=me[Tr]=me[zt]=me[Lt]=me[Fr]=me[Y]=me[Ot]=me[xt]=me[Tt]=me[Ce]=me[Ft]=me[Bt]=me[Kt]=me[Ht]=me[Dr]=me[Vt]=!0,me[tt]=me[at]=me[Dt]=!1;var r0={À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",Ç:"C",ç:"c",Ð:"D",ð:"d",È:"E",É:"E",Ê:"E",Ë:"E",è:"e",é:"e",ê:"e",ë:"e",Ì:"I",Í:"I",Î:"I",Ï:"I",ì:"i",í:"i",î:"i",ï:"i",Ñ:"N",ñ:"n",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",Ù:"U",Ú:"U",Û:"U",Ü:"U",ù:"u",ú:"u",û:"u",ü:"u",Ý:"Y",ý:"y",ÿ:"y",Æ:"Ae",æ:"ae",Þ:"Th",þ:"th",ß:"ss",Ā:"A",Ă:"A",Ą:"A",ā:"a",ă:"a",ą:"a",Ć:"C",Ĉ:"C",Ċ:"C",Č:"C",ć:"c",ĉ:"c",ċ:"c",č:"c",Ď:"D",Đ:"D",ď:"d",đ:"d",Ē:"E",Ĕ:"E",Ė:"E",Ę:"E",Ě:"E",ē:"e",ĕ:"e",ė:"e",ę:"e",ě:"e",Ĝ:"G",Ğ:"G",Ġ:"G",Ģ:"G",ĝ:"g",ğ:"g",ġ:"g",ģ:"g",Ĥ:"H",Ħ:"H",ĥ:"h",ħ:"h",Ĩ:"I",Ī:"I",Ĭ:"I",Į:"I",İ:"I",ĩ:"i",ī:"i",ĭ:"i",į:"i",ı:"i",Ĵ:"J",ĵ:"j",Ķ:"K",ķ:"k",ĸ:"k",Ĺ:"L",Ļ:"L",Ľ:"L",Ŀ:"L",Ł:"L",ĺ:"l",ļ:"l",ľ:"l",ŀ:"l",ł:"l",Ń:"N",Ņ:"N",Ň:"N",Ŋ:"N",ń:"n",ņ:"n",ň:"n",ŋ:"n",Ō:"O",Ŏ:"O",Ő:"O",ō:"o",ŏ:"o",ő:"o",Ŕ:"R",Ŗ:"R",Ř:"R",ŕ:"r",ŗ:"r",ř:"r",Ś:"S",Ŝ:"S",Ş:"S",Š:"S",ś:"s",ŝ:"s",ş:"s",š:"s",Ţ:"T",Ť:"T",Ŧ:"T",ţ:"t",ť:"t",ŧ:"t",Ũ:"U",Ū:"U",Ŭ:"U",Ů:"U",Ű:"U",Ų:"U",ũ:"u",ū:"u",ŭ:"u",ů:"u",ű:"u",ų:"u",Ŵ:"W",ŵ:"w",Ŷ:"Y",ŷ:"y",Ÿ:"Y",Ź:"Z",Ż:"Z",Ž:"Z",ź:"z",ż:"z",ž:"z",IJ:"IJ",ij:"ij",Œ:"Oe",œ:"oe",ʼn:"'n",ſ:"s"},i0={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},s0={"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#39;":"'"},n0={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},o0=parseFloat,a0=parseInt,zh=typeof kn=="object"&&kn&&kn.Object===Object&&kn,c0=typeof self=="object"&&self&&self.Object===Object&&self,qe=zh||c0||Function("return this")(),Aa=t&&!t.nodeType&&t,os=Aa&&!0&&i&&!i.nodeType&&i,Lh=os&&os.exports===Aa,Ea=Lh&&zh.process,wr=function(){try{var O=os&&os.require&&os.require("util").types;return O||Ea&&Ea.binding&&Ea.binding("util")}catch{}}(),Kh=wr&&wr.isArrayBuffer,Hh=wr&&wr.isDate,Vh=wr&&wr.isMap,Jh=wr&&wr.isRegExp,Qh=wr&&wr.isSet,Gh=wr&&wr.isTypedArray;function ur(O,U,B){switch(B.length){case 0:return O.call(U);case 1:return O.call(U,B[0]);case 2:return O.call(U,B[0],B[1]);case 3:return O.call(U,B[0],B[1],B[2])}return O.apply(U,B)}function h0(O,U,B,it){for(var vt=-1,qt=O==null?0:O.length;++vt<qt;){var xe=O[vt];U(it,xe,B(xe),O)}return it}function br(O,U){for(var B=-1,it=O==null?0:O.length;++B<it&&U(O[B],B,O)!==!1;);return O}function u0(O,U){for(var B=O==null?0:O.length;B--&&U(O[B],B,O)!==!1;);return O}function Yh(O,U){for(var B=-1,it=O==null?0:O.length;++B<it;)if(!U(O[B],B,O))return!1;return!0}function Vi(O,U){for(var B=-1,it=O==null?0:O.length,vt=0,qt=[];++B<it;){var xe=O[B];U(xe,B,O)&&(qt[vt++]=xe)}return qt}function ro(O,U){var B=O==null?0:O.length;return!!B&&Rs(O,U,0)>-1}function Ia(O,U,B){for(var it=-1,vt=O==null?0:O.length;++it<vt;)if(B(U,O[it]))return!0;return!1}function we(O,U){for(var B=-1,it=O==null?0:O.length,vt=Array(it);++B<it;)vt[B]=U(O[B],B,O);return vt}function Ji(O,U){for(var B=-1,it=U.length,vt=O.length;++B<it;)O[vt+B]=U[B];return O}function Sa(O,U,B,it){var vt=-1,qt=O==null?0:O.length;for(it&&qt&&(B=O[++vt]);++vt<qt;)B=U(B,O[vt],vt,O);return B}function l0(O,U,B,it){var vt=O==null?0:O.length;for(it&&vt&&(B=O[--vt]);vt--;)B=U(B,O[vt],vt,O);return B}function Pa(O,U){for(var B=-1,it=O==null?0:O.length;++B<it;)if(U(O[B],B,O))return!0;return!1}var f0=Ma("length");function p0(O){return O.split("")}function d0(O){return O.match(fe)||[]}function Wh(O,U,B){var it;return B(O,function(vt,qt,xe){if(U(vt,qt,xe))return it=qt,!1}),it}function io(O,U,B,it){for(var vt=O.length,qt=B+(it?1:-1);it?qt--:++qt<vt;)if(U(O[qt],qt,O))return qt;return-1}function Rs(O,U,B){return U===U?P0(O,U,B):io(O,Zh,B)}function g0(O,U,B,it){for(var vt=B-1,qt=O.length;++vt<qt;)if(it(O[vt],U))return vt;return-1}function Zh(O){return O!==O}function Xh(O,U){var B=O==null?0:O.length;return B?xa(O,U)/B:S}function Ma(O){return function(U){return U==null?e:U[O]}}function Ca(O){return function(U){return O==null?e:O[U]}}function tu(O,U,B,it,vt){return vt(O,function(qt,xe,ge){B=it?(it=!1,qt):U(B,qt,xe,ge)}),B}function m0(O,U){var B=O.length;for(O.sort(U);B--;)O[B]=O[B].value;return O}function xa(O,U){for(var B,it=-1,vt=O.length;++it<vt;){var qt=U(O[it]);qt!==e&&(B=B===e?qt:B+qt)}return B}function Ra(O,U){for(var B=-1,it=Array(O);++B<O;)it[B]=U(B);return it}function v0(O,U){return we(U,function(B){return[B,O[B]]})}function eu(O){return O&&O.slice(0,nu(O)+1).replace(Jt,"")}function lr(O){return function(U){return O(U)}}function Na(O,U){return we(U,function(B){return O[B]})}function dn(O,U){return O.has(U)}function ru(O,U){for(var B=-1,it=O.length;++B<it&&Rs(U,O[B],0)>-1;);return B}function iu(O,U){for(var B=O.length;B--&&Rs(U,O[B],0)>-1;);return B}function y0(O,U){for(var B=O.length,it=0;B--;)O[B]===U&&++it;return it}var w0=Ca(r0),b0=Ca(i0);function _0(O){return"\\"+n0[O]}function A0(O,U){return O==null?e:O[U]}function Ns(O){return Zd.test(O)}function E0(O){return Xd.test(O)}function I0(O){for(var U,B=[];!(U=O.next()).done;)B.push(U.value);return B}function Oa(O){var U=-1,B=Array(O.size);return O.forEach(function(it,vt){B[++U]=[vt,it]}),B}function su(O,U){return function(B){return O(U(B))}}function Qi(O,U){for(var B=-1,it=O.length,vt=0,qt=[];++B<it;){var xe=O[B];(xe===U||xe===M)&&(O[B]=M,qt[vt++]=B)}return qt}function so(O){var U=-1,B=Array(O.size);return O.forEach(function(it){B[++U]=it}),B}function S0(O){var U=-1,B=Array(O.size);return O.forEach(function(it){B[++U]=[it,it]}),B}function P0(O,U,B){for(var it=B-1,vt=O.length;++it<vt;)if(O[it]===U)return it;return-1}function M0(O,U,B){for(var it=B+1;it--;)if(O[it]===U)return it;return it}function Os(O){return Ns(O)?x0(O):f0(O)}function kr(O){return Ns(O)?R0(O):p0(O)}function nu(O){for(var U=O.length;U--&&Si.test(O.charAt(U)););return U}var C0=Ca(s0);function x0(O){for(var U=_a.lastIndex=0;_a.test(O);)++U;return U}function R0(O){return O.match(_a)||[]}function N0(O){return O.match(Wd)||[]}var O0=function O(U){U=U==null?qe:Ts.defaults(qe.Object(),U,Ts.pick(qe,t0));var B=U.Array,it=U.Date,vt=U.Error,qt=U.Function,xe=U.Math,ge=U.Object,Ta=U.RegExp,T0=U.String,_r=U.TypeError,no=B.prototype,F0=qt.prototype,Fs=ge.prototype,oo=U["__core-js_shared__"],ao=F0.toString,Qt=Fs.hasOwnProperty,D0=0,ou=function(){var r=/[^.]+$/.exec(oo&&oo.keys&&oo.keys.IE_PROTO||"");return r?"Symbol(src)_1."+r:""}(),co=Fs.toString,q0=ao.call(ge),k0=qe._,B0=Ta("^"+ao.call(Qt).replace(qr,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),ho=Lh?U.Buffer:e,Gi=U.Symbol,uo=U.Uint8Array,au=ho?ho.allocUnsafe:e,lo=su(ge.getPrototypeOf,ge),cu=ge.create,hu=Fs.propertyIsEnumerable,fo=no.splice,uu=Gi?Gi.isConcatSpreadable:e,gn=Gi?Gi.iterator:e,as=Gi?Gi.toStringTag:e,po=function(){try{var r=fs(ge,"defineProperty");return r({},"",{}),r}catch{}}(),j0=U.clearTimeout!==qe.clearTimeout&&U.clearTimeout,U0=it&&it.now!==qe.Date.now&&it.now,$0=U.setTimeout!==qe.setTimeout&&U.setTimeout,go=xe.ceil,mo=xe.floor,Fa=ge.getOwnPropertySymbols,z0=ho?ho.isBuffer:e,lu=U.isFinite,L0=no.join,K0=su(ge.keys,ge),Re=xe.max,Le=xe.min,H0=it.now,V0=U.parseInt,fu=xe.random,J0=no.reverse,Da=fs(U,"DataView"),mn=fs(U,"Map"),qa=fs(U,"Promise"),Ds=fs(U,"Set"),vn=fs(U,"WeakMap"),yn=fs(ge,"create"),vo=vn&&new vn,qs={},Q0=ps(Da),G0=ps(mn),Y0=ps(qa),W0=ps(Ds),Z0=ps(vn),yo=Gi?Gi.prototype:e,wn=yo?yo.valueOf:e,pu=yo?yo.toString:e;function w(r){if(_e(r)&&!yt(r)&&!(r instanceof St)){if(r instanceof Ar)return r;if(Qt.call(r,"__wrapped__"))return dl(r)}return new Ar(r)}var ks=function(){function r(){}return function(n){if(!be(n))return{};if(cu)return cu(n);r.prototype=n;var c=new r;return r.prototype=e,c}}();function wo(){}function Ar(r,n){this.__wrapped__=r,this.__actions__=[],this.__chain__=!!n,this.__index__=0,this.__values__=e}w.templateSettings={escape:Ei,evaluate:oe,interpolate:Wt,variable:"",imports:{_:w}},w.prototype=wo.prototype,w.prototype.constructor=w,Ar.prototype=ks(wo.prototype),Ar.prototype.constructor=Ar;function St(r){this.__wrapped__=r,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=f,this.__views__=[]}function X0(){var r=new St(this.__wrapped__);return r.__actions__=Xe(this.__actions__),r.__dir__=this.__dir__,r.__filtered__=this.__filtered__,r.__iteratees__=Xe(this.__iteratees__),r.__takeCount__=this.__takeCount__,r.__views__=Xe(this.__views__),r}function tg(){if(this.__filtered__){var r=new St(this);r.__dir__=-1,r.__filtered__=!0}else r=this.clone(),r.__dir__*=-1;return r}function eg(){var r=this.__wrapped__.value(),n=this.__dir__,c=yt(r),l=n<0,g=c?r.length:0,_=p1(0,g,this.__views__),x=_.start,R=_.end,F=R-x,z=l?R:x-1,L=this.__iteratees__,J=L.length,Z=0,nt=Le(F,this.__takeCount__);if(!c||!l&&g==F&&nt==F)return ku(r,this.__actions__);var pt=[];t:for(;F--&&Z<nt;){z+=n;for(var _t=-1,dt=r[z];++_t<J;){var Et=L[_t],Rt=Et.iteratee,dr=Et.type,Qe=Rt(dt);if(dr==b)dt=Qe;else if(!Qe){if(dr==d)continue t;break t}}pt[Z++]=dt}return pt}St.prototype=ks(wo.prototype),St.prototype.constructor=St;function cs(r){var n=-1,c=r==null?0:r.length;for(this.clear();++n<c;){var l=r[n];this.set(l[0],l[1])}}function rg(){this.__data__=yn?yn(null):{},this.size=0}function ig(r){var n=this.has(r)&&delete this.__data__[r];return this.size-=n?1:0,n}function sg(r){var n=this.__data__;if(yn){var c=n[r];return c===v?e:c}return Qt.call(n,r)?n[r]:e}function ng(r){var n=this.__data__;return yn?n[r]!==e:Qt.call(n,r)}function og(r,n){var c=this.__data__;return this.size+=this.has(r)?0:1,c[r]=yn&&n===e?v:n,this}cs.prototype.clear=rg,cs.prototype.delete=ig,cs.prototype.get=sg,cs.prototype.has=ng,cs.prototype.set=og;function Ci(r){var n=-1,c=r==null?0:r.length;for(this.clear();++n<c;){var l=r[n];this.set(l[0],l[1])}}function ag(){this.__data__=[],this.size=0}function cg(r){var n=this.__data__,c=bo(n,r);if(c<0)return!1;var l=n.length-1;return c==l?n.pop():fo.call(n,c,1),--this.size,!0}function hg(r){var n=this.__data__,c=bo(n,r);return c<0?e:n[c][1]}function ug(r){return bo(this.__data__,r)>-1}function lg(r,n){var c=this.__data__,l=bo(c,r);return l<0?(++this.size,c.push([r,n])):c[l][1]=n,this}Ci.prototype.clear=ag,Ci.prototype.delete=cg,Ci.prototype.get=hg,Ci.prototype.has=ug,Ci.prototype.set=lg;function xi(r){var n=-1,c=r==null?0:r.length;for(this.clear();++n<c;){var l=r[n];this.set(l[0],l[1])}}function fg(){this.size=0,this.__data__={hash:new cs,map:new(mn||Ci),string:new cs}}function pg(r){var n=Oo(this,r).delete(r);return this.size-=n?1:0,n}function dg(r){return Oo(this,r).get(r)}function gg(r){return Oo(this,r).has(r)}function mg(r,n){var c=Oo(this,r),l=c.size;return c.set(r,n),this.size+=c.size==l?0:1,this}xi.prototype.clear=fg,xi.prototype.delete=pg,xi.prototype.get=dg,xi.prototype.has=gg,xi.prototype.set=mg;function hs(r){var n=-1,c=r==null?0:r.length;for(this.__data__=new xi;++n<c;)this.add(r[n])}function vg(r){return this.__data__.set(r,v),this}function yg(r){return this.__data__.has(r)}hs.prototype.add=hs.prototype.push=vg,hs.prototype.has=yg;function Br(r){var n=this.__data__=new Ci(r);this.size=n.size}function wg(){this.__data__=new Ci,this.size=0}function bg(r){var n=this.__data__,c=n.delete(r);return this.size=n.size,c}function _g(r){return this.__data__.get(r)}function Ag(r){return this.__data__.has(r)}function Eg(r,n){var c=this.__data__;if(c instanceof Ci){var l=c.__data__;if(!mn||l.length<o-1)return l.push([r,n]),this.size=++c.size,this;c=this.__data__=new xi(l)}return c.set(r,n),this.size=c.size,this}Br.prototype.clear=wg,Br.prototype.delete=bg,Br.prototype.get=_g,Br.prototype.has=Ag,Br.prototype.set=Eg;function du(r,n){var c=yt(r),l=!c&&ds(r),g=!c&&!l&&ts(r),_=!c&&!l&&!g&&$s(r),x=c||l||g||_,R=x?Ra(r.length,T0):[],F=R.length;for(var z in r)(n||Qt.call(r,z))&&!(x&&(z=="length"||g&&(z=="offset"||z=="parent")||_&&(z=="buffer"||z=="byteLength"||z=="byteOffset")||Ti(z,F)))&&R.push(z);return R}function gu(r){var n=r.length;return n?r[Ja(0,n-1)]:e}function Ig(r,n){return To(Xe(r),us(n,0,r.length))}function Sg(r){return To(Xe(r))}function ka(r,n,c){(c!==e&&!jr(r[n],c)||c===e&&!(n in r))&&Ri(r,n,c)}function bn(r,n,c){var l=r[n];(!(Qt.call(r,n)&&jr(l,c))||c===e&&!(n in r))&&Ri(r,n,c)}function bo(r,n){for(var c=r.length;c--;)if(jr(r[c][0],n))return c;return-1}function Pg(r,n,c,l){return Yi(r,function(g,_,x){n(l,g,c(g),x)}),l}function mu(r,n){return r&&ni(n,Fe(n),r)}function Mg(r,n){return r&&ni(n,er(n),r)}function Ri(r,n,c){n=="__proto__"&&po?po(r,n,{configurable:!0,enumerable:!0,value:c,writable:!0}):r[n]=c}function Ba(r,n){for(var c=-1,l=n.length,g=B(l),_=r==null;++c<l;)g[c]=_?e:yc(r,n[c]);return g}function us(r,n,c){return r===r&&(c!==e&&(r=r<=c?r:c),n!==e&&(r=r>=n?r:n)),r}function Er(r,n,c,l,g,_){var x,R=n&P,F=n&T,z=n&D;if(c&&(x=g?c(r,l,g,_):c(r)),x!==e)return x;if(!be(r))return r;var L=yt(r);if(L){if(x=g1(r),!R)return Xe(r,x)}else{var J=Ke(r),Z=J==at||J==mt;if(ts(r))return Uu(r,R);if(J==xt||J==m||Z&&!g){if(x=F||Z?{}:nl(r),!R)return F?s1(r,Mg(x,r)):i1(r,mu(x,r))}else{if(!me[J])return g?r:{};x=m1(r,J,R)}}_||(_=new Br);var nt=_.get(r);if(nt)return nt;_.set(r,x),Fl(r)?r.forEach(function(dt){x.add(Er(dt,n,c,dt,r,_))}):Ol(r)&&r.forEach(function(dt,Et){x.set(Et,Er(dt,n,c,Et,r,_))});var pt=z?F?sc:ic:F?er:Fe,_t=L?e:pt(r);return br(_t||r,function(dt,Et){_t&&(Et=dt,dt=r[Et]),bn(x,Et,Er(dt,n,c,Et,r,_))}),x}function Cg(r){var n=Fe(r);return function(c){return vu(c,r,n)}}function vu(r,n,c){var l=c.length;if(r==null)return!l;for(r=ge(r);l--;){var g=c[l],_=n[g],x=r[g];if(x===e&&!(g in r)||!_(x))return!1}return!0}function yu(r,n,c){if(typeof r!="function")throw new _r(h);return Mn(function(){r.apply(e,c)},n)}function _n(r,n,c,l){var g=-1,_=ro,x=!0,R=r.length,F=[],z=n.length;if(!R)return F;c&&(n=we(n,lr(c))),l?(_=Ia,x=!1):n.length>=o&&(_=dn,x=!1,n=new hs(n));t:for(;++g<R;){var L=r[g],J=c==null?L:c(L);if(L=l||L!==0?L:0,x&&J===J){for(var Z=z;Z--;)if(n[Z]===J)continue t;F.push(L)}else _(n,J,l)||F.push(L)}return F}var Yi=Hu(si),wu=Hu(Ua,!0);function xg(r,n){var c=!0;return Yi(r,function(l,g,_){return c=!!n(l,g,_),c}),c}function _o(r,n,c){for(var l=-1,g=r.length;++l<g;){var _=r[l],x=n(_);if(x!=null&&(R===e?x===x&&!pr(x):c(x,R)))var R=x,F=_}return F}function Rg(r,n,c,l){var g=r.length;for(c=bt(c),c<0&&(c=-c>g?0:g+c),l=l===e||l>g?g:bt(l),l<0&&(l+=g),l=c>l?0:ql(l);c<l;)r[c++]=n;return r}function bu(r,n){var c=[];return Yi(r,function(l,g,_){n(l,g,_)&&c.push(l)}),c}function ke(r,n,c,l,g){var _=-1,x=r.length;for(c||(c=y1),g||(g=[]);++_<x;){var R=r[_];n>0&&c(R)?n>1?ke(R,n-1,c,l,g):Ji(g,R):l||(g[g.length]=R)}return g}var ja=Vu(),_u=Vu(!0);function si(r,n){return r&&ja(r,n,Fe)}function Ua(r,n){return r&&_u(r,n,Fe)}function Ao(r,n){return Vi(n,function(c){return Fi(r[c])})}function ls(r,n){n=Zi(n,r);for(var c=0,l=n.length;r!=null&&c<l;)r=r[oi(n[c++])];return c&&c==l?r:e}function Au(r,n,c){var l=n(r);return yt(r)?l:Ji(l,c(r))}function Ve(r){return r==null?r===e?_i:Xt:as&&as in ge(r)?f1(r):S1(r)}function $a(r,n){return r>n}function Ng(r,n){return r!=null&&Qt.call(r,n)}function Og(r,n){return r!=null&&n in ge(r)}function Tg(r,n,c){return r>=Le(n,c)&&r<Re(n,c)}function za(r,n,c){for(var l=c?Ia:ro,g=r[0].length,_=r.length,x=_,R=B(_),F=1/0,z=[];x--;){var L=r[x];x&&n&&(L=we(L,lr(n))),F=Le(L.length,F),R[x]=!c&&(n||g>=120&&L.length>=120)?new hs(x&&L):e}L=r[0];var J=-1,Z=R[0];t:for(;++J<g&&z.length<F;){var nt=L[J],pt=n?n(nt):nt;if(nt=c||nt!==0?nt:0,!(Z?dn(Z,pt):l(z,pt,c))){for(x=_;--x;){var _t=R[x];if(!(_t?dn(_t,pt):l(r[x],pt,c)))continue t}Z&&Z.push(pt),z.push(nt)}}return z}function Fg(r,n,c,l){return si(r,function(g,_,x){n(l,c(g),_,x)}),l}function An(r,n,c){n=Zi(n,r),r=hl(r,n);var l=r==null?r:r[oi(Sr(n))];return l==null?e:ur(l,r,c)}function Eu(r){return _e(r)&&Ve(r)==m}function Dg(r){return _e(r)&&Ve(r)==hr}function qg(r){return _e(r)&&Ve(r)==rt}function En(r,n,c,l,g){return r===n?!0:r==null||n==null||!_e(r)&&!_e(n)?r!==r&&n!==n:kg(r,n,c,l,En,g)}function kg(r,n,c,l,g,_){var x=yt(r),R=yt(n),F=x?$:Ke(r),z=R?$:Ke(n);F=F==m?xt:F,z=z==m?xt:z;var L=F==xt,J=z==xt,Z=F==z;if(Z&&ts(r)){if(!ts(n))return!1;x=!0,L=!1}if(Z&&!L)return _||(_=new Br),x||$s(r)?rl(r,n,c,l,g,_):u1(r,n,F,c,l,g,_);if(!(c&k)){var nt=L&&Qt.call(r,"__wrapped__"),pt=J&&Qt.call(n,"__wrapped__");if(nt||pt){var _t=nt?r.value():r,dt=pt?n.value():n;return _||(_=new Br),g(_t,dt,c,l,_)}}return Z?(_||(_=new Br),l1(r,n,c,l,g,_)):!1}function Bg(r){return _e(r)&&Ke(r)==Y}function La(r,n,c,l){var g=c.length,_=g,x=!l;if(r==null)return!_;for(r=ge(r);g--;){var R=c[g];if(x&&R[2]?R[1]!==r[R[0]]:!(R[0]in r))return!1}for(;++g<_;){R=c[g];var F=R[0],z=r[F],L=R[1];if(x&&R[2]){if(z===e&&!(F in r))return!1}else{var J=new Br;if(l)var Z=l(z,L,F,r,n,J);if(!(Z===e?En(L,z,k|H,l,J):Z))return!1}}return!0}function Iu(r){if(!be(r)||b1(r))return!1;var n=Fi(r)?B0:ti;return n.test(ps(r))}function jg(r){return _e(r)&&Ve(r)==Tt}function Ug(r){return _e(r)&&Ke(r)==Ce}function $g(r){return _e(r)&&jo(r.length)&&!!ve[Ve(r)]}function Su(r){return typeof r=="function"?r:r==null?rr:typeof r=="object"?yt(r)?Cu(r[0],r[1]):Mu(r):Jl(r)}function Ka(r){if(!Pn(r))return K0(r);var n=[];for(var c in ge(r))Qt.call(r,c)&&c!="constructor"&&n.push(c);return n}function zg(r){if(!be(r))return I1(r);var n=Pn(r),c=[];for(var l in r)l=="constructor"&&(n||!Qt.call(r,l))||c.push(l);return c}function Ha(r,n){return r<n}function Pu(r,n){var c=-1,l=tr(r)?B(r.length):[];return Yi(r,function(g,_,x){l[++c]=n(g,_,x)}),l}function Mu(r){var n=oc(r);return n.length==1&&n[0][2]?al(n[0][0],n[0][1]):function(c){return c===r||La(c,r,n)}}function Cu(r,n){return cc(r)&&ol(n)?al(oi(r),n):function(c){var l=yc(c,r);return l===e&&l===n?wc(c,r):En(n,l,k|H)}}function Eo(r,n,c,l,g){r!==n&&ja(n,function(_,x){if(g||(g=new Br),be(_))Lg(r,n,x,c,Eo,l,g);else{var R=l?l(uc(r,x),_,x+"",r,n,g):e;R===e&&(R=_),ka(r,x,R)}},er)}function Lg(r,n,c,l,g,_,x){var R=uc(r,c),F=uc(n,c),z=x.get(F);if(z){ka(r,c,z);return}var L=_?_(R,F,c+"",r,n,x):e,J=L===e;if(J){var Z=yt(F),nt=!Z&&ts(F),pt=!Z&&!nt&&$s(F);L=F,Z||nt||pt?yt(R)?L=R:Ee(R)?L=Xe(R):nt?(J=!1,L=Uu(F,!0)):pt?(J=!1,L=$u(F,!0)):L=[]:Cn(F)||ds(F)?(L=R,ds(R)?L=kl(R):(!be(R)||Fi(R))&&(L=nl(F))):J=!1}J&&(x.set(F,L),g(L,F,l,_,x),x.delete(F)),ka(r,c,L)}function xu(r,n){var c=r.length;if(c)return n+=n<0?c:0,Ti(n,c)?r[n]:e}function Ru(r,n,c){n.length?n=we(n,function(_){return yt(_)?function(x){return ls(x,_.length===1?_[0]:_)}:_}):n=[rr];var l=-1;n=we(n,lr(ft()));var g=Pu(r,function(_,x,R){var F=we(n,function(z){return z(_)});return{criteria:F,index:++l,value:_}});return m0(g,function(_,x){return r1(_,x,c)})}function Kg(r,n){return Nu(r,n,function(c,l){return wc(r,l)})}function Nu(r,n,c){for(var l=-1,g=n.length,_={};++l<g;){var x=n[l],R=ls(r,x);c(R,x)&&In(_,Zi(x,r),R)}return _}function Hg(r){return function(n){return ls(n,r)}}function Va(r,n,c,l){var g=l?g0:Rs,_=-1,x=n.length,R=r;for(r===n&&(n=Xe(n)),c&&(R=we(r,lr(c)));++_<x;)for(var F=0,z=n[_],L=c?c(z):z;(F=g(R,L,F,l))>-1;)R!==r&&fo.call(R,F,1),fo.call(r,F,1);return r}function Ou(r,n){for(var c=r?n.length:0,l=c-1;c--;){var g=n[c];if(c==l||g!==_){var _=g;Ti(g)?fo.call(r,g,1):Ya(r,g)}}return r}function Ja(r,n){return r+mo(fu()*(n-r+1))}function Vg(r,n,c,l){for(var g=-1,_=Re(go((n-r)/(c||1)),0),x=B(_);_--;)x[l?_:++g]=r,r+=c;return x}function Qa(r,n){var c="";if(!r||n<1||n>N)return c;do n%2&&(c+=r),n=mo(n/2),n&&(r+=r);while(n);return c}function At(r,n){return lc(cl(r,n,rr),r+"")}function Jg(r){return gu(zs(r))}function Qg(r,n){var c=zs(r);return To(c,us(n,0,c.length))}function In(r,n,c,l){if(!be(r))return r;n=Zi(n,r);for(var g=-1,_=n.length,x=_-1,R=r;R!=null&&++g<_;){var F=oi(n[g]),z=c;if(F==="__proto__"||F==="constructor"||F==="prototype")return r;if(g!=x){var L=R[F];z=l?l(L,F,R):e,z===e&&(z=be(L)?L:Ti(n[g+1])?[]:{})}bn(R,F,z),R=R[F]}return r}var Tu=vo?function(r,n){return vo.set(r,n),r}:rr,Gg=po?function(r,n){return po(r,"toString",{configurable:!0,enumerable:!1,value:_c(n),writable:!0})}:rr;function Yg(r){return To(zs(r))}function Ir(r,n,c){var l=-1,g=r.length;n<0&&(n=-n>g?0:g+n),c=c>g?g:c,c<0&&(c+=g),g=n>c?0:c-n>>>0,n>>>=0;for(var _=B(g);++l<g;)_[l]=r[l+n];return _}function Wg(r,n){var c;return Yi(r,function(l,g,_){return c=n(l,g,_),!c}),!!c}function Io(r,n,c){var l=0,g=r==null?l:r.length;if(typeof n=="number"&&n===n&&g<=lt){for(;l<g;){var _=l+g>>>1,x=r[_];x!==null&&!pr(x)&&(c?x<=n:x<n)?l=_+1:g=_}return g}return Ga(r,n,rr,c)}function Ga(r,n,c,l){var g=0,_=r==null?0:r.length;if(_===0)return 0;n=c(n);for(var x=n!==n,R=n===null,F=pr(n),z=n===e;g<_;){var L=mo((g+_)/2),J=c(r[L]),Z=J!==e,nt=J===null,pt=J===J,_t=pr(J);if(x)var dt=l||pt;else z?dt=pt&&(l||Z):R?dt=pt&&Z&&(l||!nt):F?dt=pt&&Z&&!nt&&(l||!_t):nt||_t?dt=!1:dt=l?J<=n:J<n;dt?g=L+1:_=L}return Le(_,E)}function Fu(r,n){for(var c=-1,l=r.length,g=0,_=[];++c<l;){var x=r[c],R=n?n(x):x;if(!c||!jr(R,F)){var F=R;_[g++]=x===0?0:x}}return _}function Du(r){return typeof r=="number"?r:pr(r)?S:+r}function fr(r){if(typeof r=="string")return r;if(yt(r))return we(r,fr)+"";if(pr(r))return pu?pu.call(r):"";var n=r+"";return n=="0"&&1/r==-C?"-0":n}function Wi(r,n,c){var l=-1,g=ro,_=r.length,x=!0,R=[],F=R;if(c)x=!1,g=Ia;else if(_>=o){var z=n?null:c1(r);if(z)return so(z);x=!1,g=dn,F=new hs}else F=n?[]:R;t:for(;++l<_;){var L=r[l],J=n?n(L):L;if(L=c||L!==0?L:0,x&&J===J){for(var Z=F.length;Z--;)if(F[Z]===J)continue t;n&&F.push(J),R.push(L)}else g(F,J,c)||(F!==R&&F.push(J),R.push(L))}return R}function Ya(r,n){return n=Zi(n,r),r=hl(r,n),r==null||delete r[oi(Sr(n))]}function qu(r,n,c,l){return In(r,n,c(ls(r,n)),l)}function So(r,n,c,l){for(var g=r.length,_=l?g:-1;(l?_--:++_<g)&&n(r[_],_,r););return c?Ir(r,l?0:_,l?_+1:g):Ir(r,l?_+1:0,l?g:_)}function ku(r,n){var c=r;return c instanceof St&&(c=c.value()),Sa(n,function(l,g){return g.func.apply(g.thisArg,Ji([l],g.args))},c)}function Wa(r,n,c){var l=r.length;if(l<2)return l?Wi(r[0]):[];for(var g=-1,_=B(l);++g<l;)for(var x=r[g],R=-1;++R<l;)R!=g&&(_[g]=_n(_[g]||x,r[R],n,c));return Wi(ke(_,1),n,c)}function Bu(r,n,c){for(var l=-1,g=r.length,_=n.length,x={};++l<g;){var R=l<_?n[l]:e;c(x,r[l],R)}return x}function Za(r){return Ee(r)?r:[]}function Xa(r){return typeof r=="function"?r:rr}function Zi(r,n){return yt(r)?r:cc(r,n)?[r]:pl(jt(r))}var Zg=At;function Xi(r,n,c){var l=r.length;return c=c===e?l:c,!n&&c>=l?r:Ir(r,n,c)}var ju=j0||function(r){return qe.clearTimeout(r)};function Uu(r,n){if(n)return r.slice();var c=r.length,l=au?au(c):new r.constructor(c);return r.copy(l),l}function tc(r){var n=new r.constructor(r.byteLength);return new uo(n).set(new uo(r)),n}function Xg(r,n){var c=n?tc(r.buffer):r.buffer;return new r.constructor(c,r.byteOffset,r.byteLength)}function t1(r){var n=new r.constructor(r.source,Zt.exec(r));return n.lastIndex=r.lastIndex,n}function e1(r){return wn?ge(wn.call(r)):{}}function $u(r,n){var c=n?tc(r.buffer):r.buffer;return new r.constructor(c,r.byteOffset,r.length)}function zu(r,n){if(r!==n){var c=r!==e,l=r===null,g=r===r,_=pr(r),x=n!==e,R=n===null,F=n===n,z=pr(n);if(!R&&!z&&!_&&r>n||_&&x&&F&&!R&&!z||l&&x&&F||!c&&F||!g)return 1;if(!l&&!_&&!z&&r<n||z&&c&&g&&!l&&!_||R&&c&&g||!x&&g||!F)return-1}return 0}function r1(r,n,c){for(var l=-1,g=r.criteria,_=n.criteria,x=g.length,R=c.length;++l<x;){var F=zu(g[l],_[l]);if(F){if(l>=R)return F;var z=c[l];return F*(z=="desc"?-1:1)}}return r.index-n.index}function Lu(r,n,c,l){for(var g=-1,_=r.length,x=c.length,R=-1,F=n.length,z=Re(_-x,0),L=B(F+z),J=!l;++R<F;)L[R]=n[R];for(;++g<x;)(J||g<_)&&(L[c[g]]=r[g]);for(;z--;)L[R++]=r[g++];return L}function Ku(r,n,c,l){for(var g=-1,_=r.length,x=-1,R=c.length,F=-1,z=n.length,L=Re(_-R,0),J=B(L+z),Z=!l;++g<L;)J[g]=r[g];for(var nt=g;++F<z;)J[nt+F]=n[F];for(;++x<R;)(Z||g<_)&&(J[nt+c[x]]=r[g++]);return J}function Xe(r,n){var c=-1,l=r.length;for(n||(n=B(l));++c<l;)n[c]=r[c];return n}function ni(r,n,c,l){var g=!c;c||(c={});for(var _=-1,x=n.length;++_<x;){var R=n[_],F=l?l(c[R],r[R],R,c,r):e;F===e&&(F=r[R]),g?Ri(c,R,F):bn(c,R,F)}return c}function i1(r,n){return ni(r,ac(r),n)}function s1(r,n){return ni(r,il(r),n)}function Po(r,n){return function(c,l){var g=yt(c)?h0:Pg,_=n?n():{};return g(c,r,ft(l,2),_)}}function Bs(r){return At(function(n,c){var l=-1,g=c.length,_=g>1?c[g-1]:e,x=g>2?c[2]:e;for(_=r.length>3&&typeof _=="function"?(g--,_):e,x&&Je(c[0],c[1],x)&&(_=g<3?e:_,g=1),n=ge(n);++l<g;){var R=c[l];R&&r(n,R,l,_)}return n})}function Hu(r,n){return function(c,l){if(c==null)return c;if(!tr(c))return r(c,l);for(var g=c.length,_=n?g:-1,x=ge(c);(n?_--:++_<g)&&l(x[_],_,x)!==!1;);return c}}function Vu(r){return function(n,c,l){for(var g=-1,_=ge(n),x=l(n),R=x.length;R--;){var F=x[r?R:++g];if(c(_[F],F,_)===!1)break}return n}}function n1(r,n,c){var l=n&V,g=Sn(r);function _(){var x=this&&this!==qe&&this instanceof _?g:r;return x.apply(l?c:this,arguments)}return _}function Ju(r){return function(n){n=jt(n);var c=Ns(n)?kr(n):e,l=c?c[0]:n.charAt(0),g=c?Xi(c,1).join(""):n.slice(1);return l[r]()+g}}function js(r){return function(n){return Sa(Hl(Kl(n).replace(Gd,"")),r,"")}}function Sn(r){return function(){var n=arguments;switch(n.length){case 0:return new r;case 1:return new r(n[0]);case 2:return new r(n[0],n[1]);case 3:return new r(n[0],n[1],n[2]);case 4:return new r(n[0],n[1],n[2],n[3]);case 5:return new r(n[0],n[1],n[2],n[3],n[4]);case 6:return new r(n[0],n[1],n[2],n[3],n[4],n[5]);case 7:return new r(n[0],n[1],n[2],n[3],n[4],n[5],n[6])}var c=ks(r.prototype),l=r.apply(c,n);return be(l)?l:c}}function o1(r,n,c){var l=Sn(r);function g(){for(var _=arguments.length,x=B(_),R=_,F=Us(g);R--;)x[R]=arguments[R];var z=_<3&&x[0]!==F&&x[_-1]!==F?[]:Qi(x,F);if(_-=z.length,_<c)return Zu(r,n,Mo,g.placeholder,e,x,z,e,e,c-_);var L=this&&this!==qe&&this instanceof g?l:r;return ur(L,this,x)}return g}function Qu(r){return function(n,c,l){var g=ge(n);if(!tr(n)){var _=ft(c,3);n=Fe(n),c=function(R){return _(g[R],R,g)}}var x=r(n,c,l);return x>-1?g[_?n[x]:x]:e}}function Gu(r){return Oi(function(n){var c=n.length,l=c,g=Ar.prototype.thru;for(r&&n.reverse();l--;){var _=n[l];if(typeof _!="function")throw new _r(h);if(g&&!x&&No(_)=="wrapper")var x=new Ar([],!0)}for(l=x?l:c;++l<c;){_=n[l];var R=No(_),F=R=="wrapper"?nc(_):e;F&&hc(F[0])&&F[1]==(st|ut|et|gt)&&!F[4].length&&F[9]==1?x=x[No(F[0])].apply(x,F[3]):x=_.length==1&&hc(_)?x[R]():x.thru(_)}return function(){var z=arguments,L=z[0];if(x&&z.length==1&&yt(L))return x.plant(L).value();for(var J=0,Z=c?n[J].apply(this,z):L;++J<c;)Z=n[J].call(this,Z);return Z}})}function Mo(r,n,c,l,g,_,x,R,F,z){var L=n&st,J=n&V,Z=n&Q,nt=n&(ut|W),pt=n&kt,_t=Z?e:Sn(r);function dt(){for(var Et=arguments.length,Rt=B(Et),dr=Et;dr--;)Rt[dr]=arguments[dr];if(nt)var Qe=Us(dt),gr=y0(Rt,Qe);if(l&&(Rt=Lu(Rt,l,g,nt)),_&&(Rt=Ku(Rt,_,x,nt)),Et-=gr,nt&&Et<z){var Ie=Qi(Rt,Qe);return Zu(r,n,Mo,dt.placeholder,c,Rt,Ie,R,F,z-Et)}var Ur=J?c:this,qi=Z?Ur[r]:r;return Et=Rt.length,R?Rt=P1(Rt,R):pt&&Et>1&&Rt.reverse(),L&&F<Et&&(Rt.length=F),this&&this!==qe&&this instanceof dt&&(qi=_t||Sn(qi)),qi.apply(Ur,Rt)}return dt}function Yu(r,n){return function(c,l){return Fg(c,r,n(l),{})}}function Co(r,n){return function(c,l){var g;if(c===e&&l===e)return n;if(c!==e&&(g=c),l!==e){if(g===e)return l;typeof c=="string"||typeof l=="string"?(c=fr(c),l=fr(l)):(c=Du(c),l=Du(l)),g=r(c,l)}return g}}function ec(r){return Oi(function(n){return n=we(n,lr(ft())),At(function(c){var l=this;return r(n,function(g){return ur(g,l,c)})})})}function xo(r,n){n=n===e?" ":fr(n);var c=n.length;if(c<2)return c?Qa(n,r):n;var l=Qa(n,go(r/Os(n)));return Ns(n)?Xi(kr(l),0,r).join(""):l.slice(0,r)}function a1(r,n,c,l){var g=n&V,_=Sn(r);function x(){for(var R=-1,F=arguments.length,z=-1,L=l.length,J=B(L+F),Z=this&&this!==qe&&this instanceof x?_:r;++z<L;)J[z]=l[z];for(;F--;)J[z++]=arguments[++R];return ur(Z,g?c:this,J)}return x}function Wu(r){return function(n,c,l){return l&&typeof l!="number"&&Je(n,c,l)&&(c=l=e),n=Di(n),c===e?(c=n,n=0):c=Di(c),l=l===e?n<c?1:-1:Di(l),Vg(n,c,l,r)}}function Ro(r){return function(n,c){return typeof n=="string"&&typeof c=="string"||(n=Pr(n),c=Pr(c)),r(n,c)}}function Zu(r,n,c,l,g,_,x,R,F,z){var L=n&ut,J=L?x:e,Z=L?e:x,nt=L?_:e,pt=L?e:_;n|=L?et:ct,n&=~(L?ct:et),n&ht||(n&=~(V|Q));var _t=[r,n,g,nt,J,pt,Z,R,F,z],dt=c.apply(e,_t);return hc(r)&&ul(dt,_t),dt.placeholder=l,ll(dt,r,n)}function rc(r){var n=xe[r];return function(c,l){if(c=Pr(c),l=l==null?0:Le(bt(l),292),l&&lu(c)){var g=(jt(c)+"e").split("e"),_=n(g[0]+"e"+(+g[1]+l));return g=(jt(_)+"e").split("e"),+(g[0]+"e"+(+g[1]-l))}return n(c)}}var c1=Ds&&1/so(new Ds([,-0]))[1]==C?function(r){return new Ds(r)}:Ic;function Xu(r){return function(n){var c=Ke(n);return c==Y?Oa(n):c==Ce?S0(n):v0(n,r(n))}}function Ni(r,n,c,l,g,_,x,R){var F=n&Q;if(!F&&typeof r!="function")throw new _r(h);var z=l?l.length:0;if(z||(n&=~(et|ct),l=g=e),x=x===e?x:Re(bt(x),0),R=R===e?R:bt(R),z-=g?g.length:0,n&ct){var L=l,J=g;l=g=e}var Z=F?e:nc(r),nt=[r,n,c,l,g,L,J,_,x,R];if(Z&&E1(nt,Z),r=nt[0],n=nt[1],c=nt[2],l=nt[3],g=nt[4],R=nt[9]=nt[9]===e?F?0:r.length:Re(nt[9]-z,0),!R&&n&(ut|W)&&(n&=~(ut|W)),!n||n==V)var pt=n1(r,n,c);else n==ut||n==W?pt=o1(r,n,R):(n==et||n==(V|et))&&!g.length?pt=a1(r,n,c,l):pt=Mo.apply(e,nt);var _t=Z?Tu:ul;return ll(_t(pt,nt),r,n)}function tl(r,n,c,l){return r===e||jr(r,Fs[c])&&!Qt.call(l,c)?n:r}function el(r,n,c,l,g,_){return be(r)&&be(n)&&(_.set(n,r),Eo(r,n,e,el,_),_.delete(n)),r}function h1(r){return Cn(r)?e:r}function rl(r,n,c,l,g,_){var x=c&k,R=r.length,F=n.length;if(R!=F&&!(x&&F>R))return!1;var z=_.get(r),L=_.get(n);if(z&&L)return z==n&&L==r;var J=-1,Z=!0,nt=c&H?new hs:e;for(_.set(r,n),_.set(n,r);++J<R;){var pt=r[J],_t=n[J];if(l)var dt=x?l(_t,pt,J,n,r,_):l(pt,_t,J,r,n,_);if(dt!==e){if(dt)continue;Z=!1;break}if(nt){if(!Pa(n,function(Et,Rt){if(!dn(nt,Rt)&&(pt===Et||g(pt,Et,c,l,_)))return nt.push(Rt)})){Z=!1;break}}else if(!(pt===_t||g(pt,_t,c,l,_))){Z=!1;break}}return _.delete(r),_.delete(n),Z}function u1(r,n,c,l,g,_,x){switch(c){case Nt:if(r.byteLength!=n.byteLength||r.byteOffset!=n.byteOffset)return!1;r=r.buffer,n=n.buffer;case hr:return!(r.byteLength!=n.byteLength||!_(new uo(r),new uo(n)));case K:case rt:case Ot:return jr(+r,+n);case tt:return r.name==n.name&&r.message==n.message;case Tt:case Ft:return r==n+"";case Y:var R=Oa;case Ce:var F=l&k;if(R||(R=so),r.size!=n.size&&!F)return!1;var z=x.get(r);if(z)return z==n;l|=H,x.set(r,n);var L=rl(R(r),R(n),l,g,_,x);return x.delete(r),L;case Bt:if(wn)return wn.call(r)==wn.call(n)}return!1}function l1(r,n,c,l,g,_){var x=c&k,R=ic(r),F=R.length,z=ic(n),L=z.length;if(F!=L&&!x)return!1;for(var J=F;J--;){var Z=R[J];if(!(x?Z in n:Qt.call(n,Z)))return!1}var nt=_.get(r),pt=_.get(n);if(nt&&pt)return nt==n&&pt==r;var _t=!0;_.set(r,n),_.set(n,r);for(var dt=x;++J<F;){Z=R[J];var Et=r[Z],Rt=n[Z];if(l)var dr=x?l(Rt,Et,Z,n,r,_):l(Et,Rt,Z,r,n,_);if(!(dr===e?Et===Rt||g(Et,Rt,c,l,_):dr)){_t=!1;break}dt||(dt=Z=="constructor")}if(_t&&!dt){var Qe=r.constructor,gr=n.constructor;Qe!=gr&&"constructor"in r&&"constructor"in n&&!(typeof Qe=="function"&&Qe instanceof Qe&&typeof gr=="function"&&gr instanceof gr)&&(_t=!1)}return _.delete(r),_.delete(n),_t}function Oi(r){return lc(cl(r,e,vl),r+"")}function ic(r){return Au(r,Fe,ac)}function sc(r){return Au(r,er,il)}var nc=vo?function(r){return vo.get(r)}:Ic;function No(r){for(var n=r.name+"",c=qs[n],l=Qt.call(qs,n)?c.length:0;l--;){var g=c[l],_=g.func;if(_==null||_==r)return g.name}return n}function Us(r){var n=Qt.call(w,"placeholder")?w:r;return n.placeholder}function ft(){var r=w.iteratee||Ac;return r=r===Ac?Su:r,arguments.length?r(arguments[0],arguments[1]):r}function Oo(r,n){var c=r.__data__;return w1(n)?c[typeof n=="string"?"string":"hash"]:c.map}function oc(r){for(var n=Fe(r),c=n.length;c--;){var l=n[c],g=r[l];n[c]=[l,g,ol(g)]}return n}function fs(r,n){var c=A0(r,n);return Iu(c)?c:e}function f1(r){var n=Qt.call(r,as),c=r[as];try{r[as]=e;var l=!0}catch{}var g=co.call(r);return l&&(n?r[as]=c:delete r[as]),g}var ac=Fa?function(r){return r==null?[]:(r=ge(r),Vi(Fa(r),function(n){return hu.call(r,n)}))}:Sc,il=Fa?function(r){for(var n=[];r;)Ji(n,ac(r)),r=lo(r);return n}:Sc,Ke=Ve;(Da&&Ke(new Da(new ArrayBuffer(1)))!=Nt||mn&&Ke(new mn)!=Y||qa&&Ke(qa.resolve())!=Yr||Ds&&Ke(new Ds)!=Ce||vn&&Ke(new vn)!=Dt)&&(Ke=function(r){var n=Ve(r),c=n==xt?r.constructor:e,l=c?ps(c):"";if(l)switch(l){case Q0:return Nt;case G0:return Y;case Y0:return Yr;case W0:return Ce;case Z0:return Dt}return n});function p1(r,n,c){for(var l=-1,g=c.length;++l<g;){var _=c[l],x=_.size;switch(_.type){case"drop":r+=x;break;case"dropRight":n-=x;break;case"take":n=Le(n,r+x);break;case"takeRight":r=Re(r,n-x);break}}return{start:r,end:n}}function d1(r){var n=r.match(le);return n?n[1].split(Pi):[]}function sl(r,n,c){n=Zi(n,r);for(var l=-1,g=n.length,_=!1;++l<g;){var x=oi(n[l]);if(!(_=r!=null&&c(r,x)))break;r=r[x]}return _||++l!=g?_:(g=r==null?0:r.length,!!g&&jo(g)&&Ti(x,g)&&(yt(r)||ds(r)))}function g1(r){var n=r.length,c=new r.constructor(n);return n&&typeof r[0]=="string"&&Qt.call(r,"index")&&(c.index=r.index,c.input=r.input),c}function nl(r){return typeof r.constructor=="function"&&!Pn(r)?ks(lo(r)):{}}function m1(r,n,c){var l=r.constructor;switch(n){case hr:return tc(r);case K:case rt:return new l(+r);case Nt:return Xg(r,c);case $t:case Tr:case zt:case Lt:case Fr:case Kt:case Ht:case Dr:case Vt:return $u(r,c);case Y:return new l;case Ot:case Ft:return new l(r);case Tt:return t1(r);case Ce:return new l;case Bt:return e1(r)}}function v1(r,n){var c=n.length;if(!c)return r;var l=c-1;return n[l]=(c>1?"& ":"")+n[l],n=n.join(c>2?", ":" "),r.replace(ue,`{
25
+ /* [wrapped with `+n+`] */
26
+ `)}function y1(r){return yt(r)||ds(r)||!!(uu&&r&&r[uu])}function Ti(r,n){var c=typeof r;return n=n??N,!!n&&(c=="number"||c!="symbol"&&ri.test(r))&&r>-1&&r%1==0&&r<n}function Je(r,n,c){if(!be(c))return!1;var l=typeof n;return(l=="number"?tr(c)&&Ti(n,c.length):l=="string"&&n in c)?jr(c[n],r):!1}function cc(r,n){if(yt(r))return!1;var c=typeof r;return c=="number"||c=="symbol"||c=="boolean"||r==null||pr(r)?!0:ae.test(r)||!Ii.test(r)||n!=null&&r in ge(n)}function w1(r){var n=typeof r;return n=="string"||n=="number"||n=="symbol"||n=="boolean"?r!=="__proto__":r===null}function hc(r){var n=No(r),c=w[n];if(typeof c!="function"||!(n in St.prototype))return!1;if(r===c)return!0;var l=nc(c);return!!l&&r===l[0]}function b1(r){return!!ou&&ou in r}var _1=oo?Fi:Pc;function Pn(r){var n=r&&r.constructor,c=typeof n=="function"&&n.prototype||Fs;return r===c}function ol(r){return r===r&&!be(r)}function al(r,n){return function(c){return c==null?!1:c[r]===n&&(n!==e||r in ge(c))}}function A1(r){var n=ko(r,function(l){return c.size===y&&c.clear(),l}),c=n.cache;return n}function E1(r,n){var c=r[1],l=n[1],g=c|l,_=g<(V|Q|st),x=l==st&&c==ut||l==st&&c==gt&&r[7].length<=n[8]||l==(st|gt)&&n[7].length<=n[8]&&c==ut;if(!(_||x))return r;l&V&&(r[2]=n[2],g|=c&V?0:ht);var R=n[3];if(R){var F=r[3];r[3]=F?Lu(F,R,n[4]):R,r[4]=F?Qi(r[3],M):n[4]}return R=n[5],R&&(F=r[5],r[5]=F?Ku(F,R,n[6]):R,r[6]=F?Qi(r[5],M):n[6]),R=n[7],R&&(r[7]=R),l&st&&(r[8]=r[8]==null?n[8]:Le(r[8],n[8])),r[9]==null&&(r[9]=n[9]),r[0]=n[0],r[1]=g,r}function I1(r){var n=[];if(r!=null)for(var c in ge(r))n.push(c);return n}function S1(r){return co.call(r)}function cl(r,n,c){return n=Re(n===e?r.length-1:n,0),function(){for(var l=arguments,g=-1,_=Re(l.length-n,0),x=B(_);++g<_;)x[g]=l[n+g];g=-1;for(var R=B(n+1);++g<n;)R[g]=l[g];return R[n]=c(x),ur(r,this,R)}}function hl(r,n){return n.length<2?r:ls(r,Ir(n,0,-1))}function P1(r,n){for(var c=r.length,l=Le(n.length,c),g=Xe(r);l--;){var _=n[l];r[l]=Ti(_,c)?g[_]:e}return r}function uc(r,n){if(!(n==="constructor"&&typeof r[n]=="function")&&n!="__proto__")return r[n]}var ul=fl(Tu),Mn=$0||function(r,n){return qe.setTimeout(r,n)},lc=fl(Gg);function ll(r,n,c){var l=n+"";return lc(r,v1(l,M1(d1(l),c)))}function fl(r){var n=0,c=0;return function(){var l=H0(),g=u-(l-c);if(c=l,g>0){if(++n>=Me)return arguments[0]}else n=0;return r.apply(e,arguments)}}function To(r,n){var c=-1,l=r.length,g=l-1;for(n=n===e?l:n;++c<n;){var _=Ja(c,g),x=r[_];r[_]=r[c],r[c]=x}return r.length=n,r}var pl=A1(function(r){var n=[];return r.charCodeAt(0)===46&&n.push(""),r.replace(ce,function(c,l,g,_){n.push(g?_.replace(Mi,"$1"):l||c)}),n});function oi(r){if(typeof r=="string"||pr(r))return r;var n=r+"";return n=="0"&&1/r==-C?"-0":n}function ps(r){if(r!=null){try{return ao.call(r)}catch{}try{return r+""}catch{}}return""}function M1(r,n){return br(ot,function(c){var l="_."+c[0];n&c[1]&&!ro(r,l)&&r.push(l)}),r.sort()}function dl(r){if(r instanceof St)return r.clone();var n=new Ar(r.__wrapped__,r.__chain__);return n.__actions__=Xe(r.__actions__),n.__index__=r.__index__,n.__values__=r.__values__,n}function C1(r,n,c){(c?Je(r,n,c):n===e)?n=1:n=Re(bt(n),0);var l=r==null?0:r.length;if(!l||n<1)return[];for(var g=0,_=0,x=B(go(l/n));g<l;)x[_++]=Ir(r,g,g+=n);return x}function x1(r){for(var n=-1,c=r==null?0:r.length,l=0,g=[];++n<c;){var _=r[n];_&&(g[l++]=_)}return g}function R1(){var r=arguments.length;if(!r)return[];for(var n=B(r-1),c=arguments[0],l=r;l--;)n[l-1]=arguments[l];return Ji(yt(c)?Xe(c):[c],ke(n,1))}var N1=At(function(r,n){return Ee(r)?_n(r,ke(n,1,Ee,!0)):[]}),O1=At(function(r,n){var c=Sr(n);return Ee(c)&&(c=e),Ee(r)?_n(r,ke(n,1,Ee,!0),ft(c,2)):[]}),T1=At(function(r,n){var c=Sr(n);return Ee(c)&&(c=e),Ee(r)?_n(r,ke(n,1,Ee,!0),e,c):[]});function F1(r,n,c){var l=r==null?0:r.length;return l?(n=c||n===e?1:bt(n),Ir(r,n<0?0:n,l)):[]}function D1(r,n,c){var l=r==null?0:r.length;return l?(n=c||n===e?1:bt(n),n=l-n,Ir(r,0,n<0?0:n)):[]}function q1(r,n){return r&&r.length?So(r,ft(n,3),!0,!0):[]}function k1(r,n){return r&&r.length?So(r,ft(n,3),!0):[]}function B1(r,n,c,l){var g=r==null?0:r.length;return g?(c&&typeof c!="number"&&Je(r,n,c)&&(c=0,l=g),Rg(r,n,c,l)):[]}function gl(r,n,c){var l=r==null?0:r.length;if(!l)return-1;var g=c==null?0:bt(c);return g<0&&(g=Re(l+g,0)),io(r,ft(n,3),g)}function ml(r,n,c){var l=r==null?0:r.length;if(!l)return-1;var g=l-1;return c!==e&&(g=bt(c),g=c<0?Re(l+g,0):Le(g,l-1)),io(r,ft(n,3),g,!0)}function vl(r){var n=r==null?0:r.length;return n?ke(r,1):[]}function j1(r){var n=r==null?0:r.length;return n?ke(r,C):[]}function U1(r,n){var c=r==null?0:r.length;return c?(n=n===e?1:bt(n),ke(r,n)):[]}function $1(r){for(var n=-1,c=r==null?0:r.length,l={};++n<c;){var g=r[n];l[g[0]]=g[1]}return l}function yl(r){return r&&r.length?r[0]:e}function z1(r,n,c){var l=r==null?0:r.length;if(!l)return-1;var g=c==null?0:bt(c);return g<0&&(g=Re(l+g,0)),Rs(r,n,g)}function L1(r){var n=r==null?0:r.length;return n?Ir(r,0,-1):[]}var K1=At(function(r){var n=we(r,Za);return n.length&&n[0]===r[0]?za(n):[]}),H1=At(function(r){var n=Sr(r),c=we(r,Za);return n===Sr(c)?n=e:c.pop(),c.length&&c[0]===r[0]?za(c,ft(n,2)):[]}),V1=At(function(r){var n=Sr(r),c=we(r,Za);return n=typeof n=="function"?n:e,n&&c.pop(),c.length&&c[0]===r[0]?za(c,e,n):[]});function J1(r,n){return r==null?"":L0.call(r,n)}function Sr(r){var n=r==null?0:r.length;return n?r[n-1]:e}function Q1(r,n,c){var l=r==null?0:r.length;if(!l)return-1;var g=l;return c!==e&&(g=bt(c),g=g<0?Re(l+g,0):Le(g,l-1)),n===n?M0(r,n,g):io(r,Zh,g,!0)}function G1(r,n){return r&&r.length?xu(r,bt(n)):e}var Y1=At(wl);function wl(r,n){return r&&r.length&&n&&n.length?Va(r,n):r}function W1(r,n,c){return r&&r.length&&n&&n.length?Va(r,n,ft(c,2)):r}function Z1(r,n,c){return r&&r.length&&n&&n.length?Va(r,n,e,c):r}var X1=Oi(function(r,n){var c=r==null?0:r.length,l=Ba(r,n);return Ou(r,we(n,function(g){return Ti(g,c)?+g:g}).sort(zu)),l});function tm(r,n){var c=[];if(!(r&&r.length))return c;var l=-1,g=[],_=r.length;for(n=ft(n,3);++l<_;){var x=r[l];n(x,l,r)&&(c.push(x),g.push(l))}return Ou(r,g),c}function fc(r){return r==null?r:J0.call(r)}function em(r,n,c){var l=r==null?0:r.length;return l?(c&&typeof c!="number"&&Je(r,n,c)?(n=0,c=l):(n=n==null?0:bt(n),c=c===e?l:bt(c)),Ir(r,n,c)):[]}function rm(r,n){return Io(r,n)}function im(r,n,c){return Ga(r,n,ft(c,2))}function sm(r,n){var c=r==null?0:r.length;if(c){var l=Io(r,n);if(l<c&&jr(r[l],n))return l}return-1}function nm(r,n){return Io(r,n,!0)}function om(r,n,c){return Ga(r,n,ft(c,2),!0)}function am(r,n){var c=r==null?0:r.length;if(c){var l=Io(r,n,!0)-1;if(jr(r[l],n))return l}return-1}function cm(r){return r&&r.length?Fu(r):[]}function hm(r,n){return r&&r.length?Fu(r,ft(n,2)):[]}function um(r){var n=r==null?0:r.length;return n?Ir(r,1,n):[]}function lm(r,n,c){return r&&r.length?(n=c||n===e?1:bt(n),Ir(r,0,n<0?0:n)):[]}function fm(r,n,c){var l=r==null?0:r.length;return l?(n=c||n===e?1:bt(n),n=l-n,Ir(r,n<0?0:n,l)):[]}function pm(r,n){return r&&r.length?So(r,ft(n,3),!1,!0):[]}function dm(r,n){return r&&r.length?So(r,ft(n,3)):[]}var gm=At(function(r){return Wi(ke(r,1,Ee,!0))}),mm=At(function(r){var n=Sr(r);return Ee(n)&&(n=e),Wi(ke(r,1,Ee,!0),ft(n,2))}),vm=At(function(r){var n=Sr(r);return n=typeof n=="function"?n:e,Wi(ke(r,1,Ee,!0),e,n)});function ym(r){return r&&r.length?Wi(r):[]}function wm(r,n){return r&&r.length?Wi(r,ft(n,2)):[]}function bm(r,n){return n=typeof n=="function"?n:e,r&&r.length?Wi(r,e,n):[]}function pc(r){if(!(r&&r.length))return[];var n=0;return r=Vi(r,function(c){if(Ee(c))return n=Re(c.length,n),!0}),Ra(n,function(c){return we(r,Ma(c))})}function bl(r,n){if(!(r&&r.length))return[];var c=pc(r);return n==null?c:we(c,function(l){return ur(n,e,l)})}var _m=At(function(r,n){return Ee(r)?_n(r,n):[]}),Am=At(function(r){return Wa(Vi(r,Ee))}),Em=At(function(r){var n=Sr(r);return Ee(n)&&(n=e),Wa(Vi(r,Ee),ft(n,2))}),Im=At(function(r){var n=Sr(r);return n=typeof n=="function"?n:e,Wa(Vi(r,Ee),e,n)}),Sm=At(pc);function Pm(r,n){return Bu(r||[],n||[],bn)}function Mm(r,n){return Bu(r||[],n||[],In)}var Cm=At(function(r){var n=r.length,c=n>1?r[n-1]:e;return c=typeof c=="function"?(r.pop(),c):e,bl(r,c)});function _l(r){var n=w(r);return n.__chain__=!0,n}function xm(r,n){return n(r),r}function Fo(r,n){return n(r)}var Rm=Oi(function(r){var n=r.length,c=n?r[0]:0,l=this.__wrapped__,g=function(_){return Ba(_,r)};return n>1||this.__actions__.length||!(l instanceof St)||!Ti(c)?this.thru(g):(l=l.slice(c,+c+(n?1:0)),l.__actions__.push({func:Fo,args:[g],thisArg:e}),new Ar(l,this.__chain__).thru(function(_){return n&&!_.length&&_.push(e),_}))});function Nm(){return _l(this)}function Om(){return new Ar(this.value(),this.__chain__)}function Tm(){this.__values__===e&&(this.__values__=Dl(this.value()));var r=this.__index__>=this.__values__.length,n=r?e:this.__values__[this.__index__++];return{done:r,value:n}}function Fm(){return this}function Dm(r){for(var n,c=this;c instanceof wo;){var l=dl(c);l.__index__=0,l.__values__=e,n?g.__wrapped__=l:n=l;var g=l;c=c.__wrapped__}return g.__wrapped__=r,n}function qm(){var r=this.__wrapped__;if(r instanceof St){var n=r;return this.__actions__.length&&(n=new St(this)),n=n.reverse(),n.__actions__.push({func:Fo,args:[fc],thisArg:e}),new Ar(n,this.__chain__)}return this.thru(fc)}function km(){return ku(this.__wrapped__,this.__actions__)}var Bm=Po(function(r,n,c){Qt.call(r,c)?++r[c]:Ri(r,c,1)});function jm(r,n,c){var l=yt(r)?Yh:xg;return c&&Je(r,n,c)&&(n=e),l(r,ft(n,3))}function Um(r,n){var c=yt(r)?Vi:bu;return c(r,ft(n,3))}var $m=Qu(gl),zm=Qu(ml);function Lm(r,n){return ke(Do(r,n),1)}function Km(r,n){return ke(Do(r,n),C)}function Hm(r,n,c){return c=c===e?1:bt(c),ke(Do(r,n),c)}function Al(r,n){var c=yt(r)?br:Yi;return c(r,ft(n,3))}function El(r,n){var c=yt(r)?u0:wu;return c(r,ft(n,3))}var Vm=Po(function(r,n,c){Qt.call(r,c)?r[c].push(n):Ri(r,c,[n])});function Jm(r,n,c,l){r=tr(r)?r:zs(r),c=c&&!l?bt(c):0;var g=r.length;return c<0&&(c=Re(g+c,0)),Uo(r)?c<=g&&r.indexOf(n,c)>-1:!!g&&Rs(r,n,c)>-1}var Qm=At(function(r,n,c){var l=-1,g=typeof n=="function",_=tr(r)?B(r.length):[];return Yi(r,function(x){_[++l]=g?ur(n,x,c):An(x,n,c)}),_}),Gm=Po(function(r,n,c){Ri(r,c,n)});function Do(r,n){var c=yt(r)?we:Pu;return c(r,ft(n,3))}function Ym(r,n,c,l){return r==null?[]:(yt(n)||(n=n==null?[]:[n]),c=l?e:c,yt(c)||(c=c==null?[]:[c]),Ru(r,n,c))}var Wm=Po(function(r,n,c){r[c?0:1].push(n)},function(){return[[],[]]});function Zm(r,n,c){var l=yt(r)?Sa:tu,g=arguments.length<3;return l(r,ft(n,4),c,g,Yi)}function Xm(r,n,c){var l=yt(r)?l0:tu,g=arguments.length<3;return l(r,ft(n,4),c,g,wu)}function tv(r,n){var c=yt(r)?Vi:bu;return c(r,Bo(ft(n,3)))}function ev(r){var n=yt(r)?gu:Jg;return n(r)}function rv(r,n,c){(c?Je(r,n,c):n===e)?n=1:n=bt(n);var l=yt(r)?Ig:Qg;return l(r,n)}function iv(r){var n=yt(r)?Sg:Yg;return n(r)}function sv(r){if(r==null)return 0;if(tr(r))return Uo(r)?Os(r):r.length;var n=Ke(r);return n==Y||n==Ce?r.size:Ka(r).length}function nv(r,n,c){var l=yt(r)?Pa:Wg;return c&&Je(r,n,c)&&(n=e),l(r,ft(n,3))}var ov=At(function(r,n){if(r==null)return[];var c=n.length;return c>1&&Je(r,n[0],n[1])?n=[]:c>2&&Je(n[0],n[1],n[2])&&(n=[n[0]]),Ru(r,ke(n,1),[])}),qo=U0||function(){return qe.Date.now()};function av(r,n){if(typeof n!="function")throw new _r(h);return r=bt(r),function(){if(--r<1)return n.apply(this,arguments)}}function Il(r,n,c){return n=c?e:n,n=r&&n==null?r.length:n,Ni(r,st,e,e,e,e,n)}function Sl(r,n){var c;if(typeof n!="function")throw new _r(h);return r=bt(r),function(){return--r>0&&(c=n.apply(this,arguments)),r<=1&&(n=e),c}}var dc=At(function(r,n,c){var l=V;if(c.length){var g=Qi(c,Us(dc));l|=et}return Ni(r,l,n,c,g)}),Pl=At(function(r,n,c){var l=V|Q;if(c.length){var g=Qi(c,Us(Pl));l|=et}return Ni(n,l,r,c,g)});function Ml(r,n,c){n=c?e:n;var l=Ni(r,ut,e,e,e,e,e,n);return l.placeholder=Ml.placeholder,l}function Cl(r,n,c){n=c?e:n;var l=Ni(r,W,e,e,e,e,e,n);return l.placeholder=Cl.placeholder,l}function xl(r,n,c){var l,g,_,x,R,F,z=0,L=!1,J=!1,Z=!0;if(typeof r!="function")throw new _r(h);n=Pr(n)||0,be(c)&&(L=!!c.leading,J="maxWait"in c,_=J?Re(Pr(c.maxWait)||0,n):_,Z="trailing"in c?!!c.trailing:Z);function nt(Ie){var Ur=l,qi=g;return l=g=e,z=Ie,x=r.apply(qi,Ur),x}function pt(Ie){return z=Ie,R=Mn(Et,n),L?nt(Ie):x}function _t(Ie){var Ur=Ie-F,qi=Ie-z,Ql=n-Ur;return J?Le(Ql,_-qi):Ql}function dt(Ie){var Ur=Ie-F,qi=Ie-z;return F===e||Ur>=n||Ur<0||J&&qi>=_}function Et(){var Ie=qo();if(dt(Ie))return Rt(Ie);R=Mn(Et,_t(Ie))}function Rt(Ie){return R=e,Z&&l?nt(Ie):(l=g=e,x)}function dr(){R!==e&&ju(R),z=0,l=F=g=R=e}function Qe(){return R===e?x:Rt(qo())}function gr(){var Ie=qo(),Ur=dt(Ie);if(l=arguments,g=this,F=Ie,Ur){if(R===e)return pt(F);if(J)return ju(R),R=Mn(Et,n),nt(F)}return R===e&&(R=Mn(Et,n)),x}return gr.cancel=dr,gr.flush=Qe,gr}var cv=At(function(r,n){return yu(r,1,n)}),hv=At(function(r,n,c){return yu(r,Pr(n)||0,c)});function uv(r){return Ni(r,kt)}function ko(r,n){if(typeof r!="function"||n!=null&&typeof n!="function")throw new _r(h);var c=function(){var l=arguments,g=n?n.apply(this,l):l[0],_=c.cache;if(_.has(g))return _.get(g);var x=r.apply(this,l);return c.cache=_.set(g,x)||_,x};return c.cache=new(ko.Cache||xi),c}ko.Cache=xi;function Bo(r){if(typeof r!="function")throw new _r(h);return function(){var n=arguments;switch(n.length){case 0:return!r.call(this);case 1:return!r.call(this,n[0]);case 2:return!r.call(this,n[0],n[1]);case 3:return!r.call(this,n[0],n[1],n[2])}return!r.apply(this,n)}}function lv(r){return Sl(2,r)}var fv=Zg(function(r,n){n=n.length==1&&yt(n[0])?we(n[0],lr(ft())):we(ke(n,1),lr(ft()));var c=n.length;return At(function(l){for(var g=-1,_=Le(l.length,c);++g<_;)l[g]=n[g].call(this,l[g]);return ur(r,this,l)})}),gc=At(function(r,n){var c=Qi(n,Us(gc));return Ni(r,et,e,n,c)}),Rl=At(function(r,n){var c=Qi(n,Us(Rl));return Ni(r,ct,e,n,c)}),pv=Oi(function(r,n){return Ni(r,gt,e,e,e,n)});function dv(r,n){if(typeof r!="function")throw new _r(h);return n=n===e?n:bt(n),At(r,n)}function gv(r,n){if(typeof r!="function")throw new _r(h);return n=n==null?0:Re(bt(n),0),At(function(c){var l=c[n],g=Xi(c,0,n);return l&&Ji(g,l),ur(r,this,g)})}function mv(r,n,c){var l=!0,g=!0;if(typeof r!="function")throw new _r(h);return be(c)&&(l="leading"in c?!!c.leading:l,g="trailing"in c?!!c.trailing:g),xl(r,n,{leading:l,maxWait:n,trailing:g})}function vv(r){return Il(r,1)}function yv(r,n){return gc(Xa(n),r)}function wv(){if(!arguments.length)return[];var r=arguments[0];return yt(r)?r:[r]}function bv(r){return Er(r,D)}function _v(r,n){return n=typeof n=="function"?n:e,Er(r,D,n)}function Av(r){return Er(r,P|D)}function Ev(r,n){return n=typeof n=="function"?n:e,Er(r,P|D,n)}function Iv(r,n){return n==null||vu(r,n,Fe(n))}function jr(r,n){return r===n||r!==r&&n!==n}var Sv=Ro($a),Pv=Ro(function(r,n){return r>=n}),ds=Eu(function(){return arguments}())?Eu:function(r){return _e(r)&&Qt.call(r,"callee")&&!hu.call(r,"callee")},yt=B.isArray,Mv=Kh?lr(Kh):Dg;function tr(r){return r!=null&&jo(r.length)&&!Fi(r)}function Ee(r){return _e(r)&&tr(r)}function Cv(r){return r===!0||r===!1||_e(r)&&Ve(r)==K}var ts=z0||Pc,xv=Hh?lr(Hh):qg;function Rv(r){return _e(r)&&r.nodeType===1&&!Cn(r)}function Nv(r){if(r==null)return!0;if(tr(r)&&(yt(r)||typeof r=="string"||typeof r.splice=="function"||ts(r)||$s(r)||ds(r)))return!r.length;var n=Ke(r);if(n==Y||n==Ce)return!r.size;if(Pn(r))return!Ka(r).length;for(var c in r)if(Qt.call(r,c))return!1;return!0}function Ov(r,n){return En(r,n)}function Tv(r,n,c){c=typeof c=="function"?c:e;var l=c?c(r,n):e;return l===e?En(r,n,e,c):!!l}function mc(r){if(!_e(r))return!1;var n=Ve(r);return n==tt||n==X||typeof r.message=="string"&&typeof r.name=="string"&&!Cn(r)}function Fv(r){return typeof r=="number"&&lu(r)}function Fi(r){if(!be(r))return!1;var n=Ve(r);return n==at||n==mt||n==j||n==te}function Nl(r){return typeof r=="number"&&r==bt(r)}function jo(r){return typeof r=="number"&&r>-1&&r%1==0&&r<=N}function be(r){var n=typeof r;return r!=null&&(n=="object"||n=="function")}function _e(r){return r!=null&&typeof r=="object"}var Ol=Vh?lr(Vh):Bg;function Dv(r,n){return r===n||La(r,n,oc(n))}function qv(r,n,c){return c=typeof c=="function"?c:e,La(r,n,oc(n),c)}function kv(r){return Tl(r)&&r!=+r}function Bv(r){if(_1(r))throw new vt(a);return Iu(r)}function jv(r){return r===null}function Uv(r){return r==null}function Tl(r){return typeof r=="number"||_e(r)&&Ve(r)==Ot}function Cn(r){if(!_e(r)||Ve(r)!=xt)return!1;var n=lo(r);if(n===null)return!0;var c=Qt.call(n,"constructor")&&n.constructor;return typeof c=="function"&&c instanceof c&&ao.call(c)==q0}var vc=Jh?lr(Jh):jg;function $v(r){return Nl(r)&&r>=-N&&r<=N}var Fl=Qh?lr(Qh):Ug;function Uo(r){return typeof r=="string"||!yt(r)&&_e(r)&&Ve(r)==Ft}function pr(r){return typeof r=="symbol"||_e(r)&&Ve(r)==Bt}var $s=Gh?lr(Gh):$g;function zv(r){return r===e}function Lv(r){return _e(r)&&Ke(r)==Dt}function Kv(r){return _e(r)&&Ve(r)==ee}var Hv=Ro(Ha),Vv=Ro(function(r,n){return r<=n});function Dl(r){if(!r)return[];if(tr(r))return Uo(r)?kr(r):Xe(r);if(gn&&r[gn])return I0(r[gn]());var n=Ke(r),c=n==Y?Oa:n==Ce?so:zs;return c(r)}function Di(r){if(!r)return r===0?r:0;if(r=Pr(r),r===C||r===-C){var n=r<0?-1:1;return n*q}return r===r?r:0}function bt(r){var n=Di(r),c=n%1;return n===n?c?n-c:n:0}function ql(r){return r?us(bt(r),0,f):0}function Pr(r){if(typeof r=="number")return r;if(pr(r))return S;if(be(r)){var n=typeof r.valueOf=="function"?r.valueOf():r;r=be(n)?n+"":n}if(typeof r!="string")return r===0?r:+r;r=eu(r);var c=Xr.test(r);return c||ei.test(r)?a0(r.slice(2),c?2:8):Zr.test(r)?S:+r}function kl(r){return ni(r,er(r))}function Jv(r){return r?us(bt(r),-N,N):r===0?r:0}function jt(r){return r==null?"":fr(r)}var Qv=Bs(function(r,n){if(Pn(n)||tr(n)){ni(n,Fe(n),r);return}for(var c in n)Qt.call(n,c)&&bn(r,c,n[c])}),Bl=Bs(function(r,n){ni(n,er(n),r)}),$o=Bs(function(r,n,c,l){ni(n,er(n),r,l)}),Gv=Bs(function(r,n,c,l){ni(n,Fe(n),r,l)}),Yv=Oi(Ba);function Wv(r,n){var c=ks(r);return n==null?c:mu(c,n)}var Zv=At(function(r,n){r=ge(r);var c=-1,l=n.length,g=l>2?n[2]:e;for(g&&Je(n[0],n[1],g)&&(l=1);++c<l;)for(var _=n[c],x=er(_),R=-1,F=x.length;++R<F;){var z=x[R],L=r[z];(L===e||jr(L,Fs[z])&&!Qt.call(r,z))&&(r[z]=_[z])}return r}),Xv=At(function(r){return r.push(e,el),ur(jl,e,r)});function ty(r,n){return Wh(r,ft(n,3),si)}function ey(r,n){return Wh(r,ft(n,3),Ua)}function ry(r,n){return r==null?r:ja(r,ft(n,3),er)}function iy(r,n){return r==null?r:_u(r,ft(n,3),er)}function sy(r,n){return r&&si(r,ft(n,3))}function ny(r,n){return r&&Ua(r,ft(n,3))}function oy(r){return r==null?[]:Ao(r,Fe(r))}function ay(r){return r==null?[]:Ao(r,er(r))}function yc(r,n,c){var l=r==null?e:ls(r,n);return l===e?c:l}function cy(r,n){return r!=null&&sl(r,n,Ng)}function wc(r,n){return r!=null&&sl(r,n,Og)}var hy=Yu(function(r,n,c){n!=null&&typeof n.toString!="function"&&(n=co.call(n)),r[n]=c},_c(rr)),uy=Yu(function(r,n,c){n!=null&&typeof n.toString!="function"&&(n=co.call(n)),Qt.call(r,n)?r[n].push(c):r[n]=[c]},ft),ly=At(An);function Fe(r){return tr(r)?du(r):Ka(r)}function er(r){return tr(r)?du(r,!0):zg(r)}function fy(r,n){var c={};return n=ft(n,3),si(r,function(l,g,_){Ri(c,n(l,g,_),l)}),c}function py(r,n){var c={};return n=ft(n,3),si(r,function(l,g,_){Ri(c,g,n(l,g,_))}),c}var dy=Bs(function(r,n,c){Eo(r,n,c)}),jl=Bs(function(r,n,c,l){Eo(r,n,c,l)}),gy=Oi(function(r,n){var c={};if(r==null)return c;var l=!1;n=we(n,function(_){return _=Zi(_,r),l||(l=_.length>1),_}),ni(r,sc(r),c),l&&(c=Er(c,P|T|D,h1));for(var g=n.length;g--;)Ya(c,n[g]);return c});function my(r,n){return Ul(r,Bo(ft(n)))}var vy=Oi(function(r,n){return r==null?{}:Kg(r,n)});function Ul(r,n){if(r==null)return{};var c=we(sc(r),function(l){return[l]});return n=ft(n),Nu(r,c,function(l,g){return n(l,g[0])})}function yy(r,n,c){n=Zi(n,r);var l=-1,g=n.length;for(g||(g=1,r=e);++l<g;){var _=r==null?e:r[oi(n[l])];_===e&&(l=g,_=c),r=Fi(_)?_.call(r):_}return r}function wy(r,n,c){return r==null?r:In(r,n,c)}function by(r,n,c,l){return l=typeof l=="function"?l:e,r==null?r:In(r,n,c,l)}var $l=Xu(Fe),zl=Xu(er);function _y(r,n,c){var l=yt(r),g=l||ts(r)||$s(r);if(n=ft(n,4),c==null){var _=r&&r.constructor;g?c=l?new _:[]:be(r)?c=Fi(_)?ks(lo(r)):{}:c={}}return(g?br:si)(r,function(x,R,F){return n(c,x,R,F)}),c}function Ay(r,n){return r==null?!0:Ya(r,n)}function Ey(r,n,c){return r==null?r:qu(r,n,Xa(c))}function Iy(r,n,c,l){return l=typeof l=="function"?l:e,r==null?r:qu(r,n,Xa(c),l)}function zs(r){return r==null?[]:Na(r,Fe(r))}function Sy(r){return r==null?[]:Na(r,er(r))}function Py(r,n,c){return c===e&&(c=n,n=e),c!==e&&(c=Pr(c),c=c===c?c:0),n!==e&&(n=Pr(n),n=n===n?n:0),us(Pr(r),n,c)}function My(r,n,c){return n=Di(n),c===e?(c=n,n=0):c=Di(c),r=Pr(r),Tg(r,n,c)}function Cy(r,n,c){if(c&&typeof c!="boolean"&&Je(r,n,c)&&(n=c=e),c===e&&(typeof n=="boolean"?(c=n,n=e):typeof r=="boolean"&&(c=r,r=e)),r===e&&n===e?(r=0,n=1):(r=Di(r),n===e?(n=r,r=0):n=Di(n)),r>n){var l=r;r=n,n=l}if(c||r%1||n%1){var g=fu();return Le(r+g*(n-r+o0("1e-"+((g+"").length-1))),n)}return Ja(r,n)}var xy=js(function(r,n,c){return n=n.toLowerCase(),r+(c?Ll(n):n)});function Ll(r){return bc(jt(r).toLowerCase())}function Kl(r){return r=jt(r),r&&r.replace(ii,w0).replace(Yd,"")}function Ry(r,n,c){r=jt(r),n=fr(n);var l=r.length;c=c===e?l:us(bt(c),0,l);var g=c;return c-=n.length,c>=0&&r.slice(c,g)==n}function Ny(r){return r=jt(r),r&&ne.test(r)?r.replace(Wr,b0):r}function Oy(r){return r=jt(r),r&&he.test(r)?r.replace(qr,"\\$&"):r}var Ty=js(function(r,n,c){return r+(c?"-":"")+n.toLowerCase()}),Fy=js(function(r,n,c){return r+(c?" ":"")+n.toLowerCase()}),Dy=Ju("toLowerCase");function qy(r,n,c){r=jt(r),n=bt(n);var l=n?Os(r):0;if(!n||l>=n)return r;var g=(n-l)/2;return xo(mo(g),c)+r+xo(go(g),c)}function ky(r,n,c){r=jt(r),n=bt(n);var l=n?Os(r):0;return n&&l<n?r+xo(n-l,c):r}function By(r,n,c){r=jt(r),n=bt(n);var l=n?Os(r):0;return n&&l<n?xo(n-l,c)+r:r}function jy(r,n,c){return c||n==null?n=0:n&&(n=+n),V0(jt(r).replace(Jt,""),n||0)}function Uy(r,n,c){return(c?Je(r,n,c):n===e)?n=1:n=bt(n),Qa(jt(r),n)}function $y(){var r=arguments,n=jt(r[0]);return r.length<3?n:n.replace(r[1],r[2])}var zy=js(function(r,n,c){return r+(c?"_":"")+n.toLowerCase()});function Ly(r,n,c){return c&&typeof c!="number"&&Je(r,n,c)&&(n=c=e),c=c===e?f:c>>>0,c?(r=jt(r),r&&(typeof n=="string"||n!=null&&!vc(n))&&(n=fr(n),!n&&Ns(r))?Xi(kr(r),0,c):r.split(n,c)):[]}var Ky=js(function(r,n,c){return r+(c?" ":"")+bc(n)});function Hy(r,n,c){return r=jt(r),c=c==null?0:us(bt(c),0,r.length),n=fr(n),r.slice(c,c+n.length)==n}function Vy(r,n,c){var l=w.templateSettings;c&&Je(r,n,c)&&(n=e),r=jt(r),n=$o({},n,l,tl);var g=$o({},n.imports,l.imports,tl),_=Fe(g),x=Na(g,_),R,F,z=0,L=n.interpolate||Ki,J="__p += '",Z=Ta((n.escape||Ki).source+"|"+L.source+"|"+(L===Wt?de:Ki).source+"|"+(n.evaluate||Ki).source+"|$","g"),nt="//# sourceURL="+(Qt.call(n,"sourceURL")?(n.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++e0+"]")+`
27
+ `;r.replace(Z,function(dt,Et,Rt,dr,Qe,gr){return Rt||(Rt=dr),J+=r.slice(z,gr).replace(on,_0),Et&&(R=!0,J+=`' +
28
+ __e(`+Et+`) +
29
+ '`),Qe&&(F=!0,J+=`';
30
+ `+Qe+`;
31
+ __p += '`),Rt&&(J+=`' +
32
+ ((__t = (`+Rt+`)) == null ? '' : __t) +
33
+ '`),z=gr+dt.length,dt}),J+=`';
34
+ `;var pt=Qt.call(n,"variable")&&n.variable;if(!pt)J=`with (obj) {
35
+ `+J+`
36
+ }
37
+ `;else if(pe.test(pt))throw new vt(p);J=(F?J.replace(re,""):J).replace(Ai,"$1").replace(ie,"$1;"),J="function("+(pt||"obj")+`) {
38
+ `+(pt?"":`obj || (obj = {});
39
+ `)+"var __t, __p = ''"+(R?", __e = _.escape":"")+(F?`, __j = Array.prototype.join;
40
+ function print() { __p += __j.call(arguments, '') }
41
+ `:`;
42
+ `)+J+`return __p
43
+ }`;var _t=Vl(function(){return qt(_,nt+"return "+J).apply(e,x)});if(_t.source=J,mc(_t))throw _t;return _t}function Jy(r){return jt(r).toLowerCase()}function Qy(r){return jt(r).toUpperCase()}function Gy(r,n,c){if(r=jt(r),r&&(c||n===e))return eu(r);if(!r||!(n=fr(n)))return r;var l=kr(r),g=kr(n),_=ru(l,g),x=iu(l,g)+1;return Xi(l,_,x).join("")}function Yy(r,n,c){if(r=jt(r),r&&(c||n===e))return r.slice(0,nu(r)+1);if(!r||!(n=fr(n)))return r;var l=kr(r),g=iu(l,kr(n))+1;return Xi(l,0,g).join("")}function Wy(r,n,c){if(r=jt(r),r&&(c||n===e))return r.replace(Jt,"");if(!r||!(n=fr(n)))return r;var l=kr(r),g=ru(l,kr(n));return Xi(l,g).join("")}function Zy(r,n){var c=Te,l=Ct;if(be(n)){var g="separator"in n?n.separator:g;c="length"in n?bt(n.length):c,l="omission"in n?fr(n.omission):l}r=jt(r);var _=r.length;if(Ns(r)){var x=kr(r);_=x.length}if(c>=_)return r;var R=c-Os(l);if(R<1)return l;var F=x?Xi(x,0,R).join(""):r.slice(0,R);if(g===e)return F+l;if(x&&(R+=F.length-R),vc(g)){if(r.slice(R).search(g)){var z,L=F;for(g.global||(g=Ta(g.source,jt(Zt.exec(g))+"g")),g.lastIndex=0;z=g.exec(L);)var J=z.index;F=F.slice(0,J===e?R:J)}}else if(r.indexOf(fr(g),R)!=R){var Z=F.lastIndexOf(g);Z>-1&&(F=F.slice(0,Z))}return F+l}function Xy(r){return r=jt(r),r&&se.test(r)?r.replace(Yt,C0):r}var tw=js(function(r,n,c){return r+(c?" ":"")+n.toUpperCase()}),bc=Ju("toUpperCase");function Hl(r,n,c){return r=jt(r),n=c?e:n,n===e?E0(r)?N0(r):d0(r):r.match(n)||[]}var Vl=At(function(r,n){try{return ur(r,e,n)}catch(c){return mc(c)?c:new vt(c)}}),ew=Oi(function(r,n){return br(n,function(c){c=oi(c),Ri(r,c,dc(r[c],r))}),r});function rw(r){var n=r==null?0:r.length,c=ft();return r=n?we(r,function(l){if(typeof l[1]!="function")throw new _r(h);return[c(l[0]),l[1]]}):[],At(function(l){for(var g=-1;++g<n;){var _=r[g];if(ur(_[0],this,l))return ur(_[1],this,l)}})}function iw(r){return Cg(Er(r,P))}function _c(r){return function(){return r}}function sw(r,n){return r==null||r!==r?n:r}var nw=Gu(),ow=Gu(!0);function rr(r){return r}function Ac(r){return Su(typeof r=="function"?r:Er(r,P))}function aw(r){return Mu(Er(r,P))}function cw(r,n){return Cu(r,Er(n,P))}var hw=At(function(r,n){return function(c){return An(c,r,n)}}),uw=At(function(r,n){return function(c){return An(r,c,n)}});function Ec(r,n,c){var l=Fe(n),g=Ao(n,l);c==null&&!(be(n)&&(g.length||!l.length))&&(c=n,n=r,r=this,g=Ao(n,Fe(n)));var _=!(be(c)&&"chain"in c)||!!c.chain,x=Fi(r);return br(g,function(R){var F=n[R];r[R]=F,x&&(r.prototype[R]=function(){var z=this.__chain__;if(_||z){var L=r(this.__wrapped__),J=L.__actions__=Xe(this.__actions__);return J.push({func:F,args:arguments,thisArg:r}),L.__chain__=z,L}return F.apply(r,Ji([this.value()],arguments))})}),r}function lw(){return qe._===this&&(qe._=k0),this}function Ic(){}function fw(r){return r=bt(r),At(function(n){return xu(n,r)})}var pw=ec(we),dw=ec(Yh),gw=ec(Pa);function Jl(r){return cc(r)?Ma(oi(r)):Hg(r)}function mw(r){return function(n){return r==null?e:ls(r,n)}}var vw=Wu(),yw=Wu(!0);function Sc(){return[]}function Pc(){return!1}function ww(){return{}}function bw(){return""}function _w(){return!0}function Aw(r,n){if(r=bt(r),r<1||r>N)return[];var c=f,l=Le(r,f);n=ft(n),r-=f;for(var g=Ra(l,n);++c<r;)n(c);return g}function Ew(r){return yt(r)?we(r,oi):pr(r)?[r]:Xe(pl(jt(r)))}function Iw(r){var n=++D0;return jt(r)+n}var Sw=Co(function(r,n){return r+n},0),Pw=rc("ceil"),Mw=Co(function(r,n){return r/n},1),Cw=rc("floor");function xw(r){return r&&r.length?_o(r,rr,$a):e}function Rw(r,n){return r&&r.length?_o(r,ft(n,2),$a):e}function Nw(r){return Xh(r,rr)}function Ow(r,n){return Xh(r,ft(n,2))}function Tw(r){return r&&r.length?_o(r,rr,Ha):e}function Fw(r,n){return r&&r.length?_o(r,ft(n,2),Ha):e}var Dw=Co(function(r,n){return r*n},1),qw=rc("round"),kw=Co(function(r,n){return r-n},0);function Bw(r){return r&&r.length?xa(r,rr):0}function jw(r,n){return r&&r.length?xa(r,ft(n,2)):0}return w.after=av,w.ary=Il,w.assign=Qv,w.assignIn=Bl,w.assignInWith=$o,w.assignWith=Gv,w.at=Yv,w.before=Sl,w.bind=dc,w.bindAll=ew,w.bindKey=Pl,w.castArray=wv,w.chain=_l,w.chunk=C1,w.compact=x1,w.concat=R1,w.cond=rw,w.conforms=iw,w.constant=_c,w.countBy=Bm,w.create=Wv,w.curry=Ml,w.curryRight=Cl,w.debounce=xl,w.defaults=Zv,w.defaultsDeep=Xv,w.defer=cv,w.delay=hv,w.difference=N1,w.differenceBy=O1,w.differenceWith=T1,w.drop=F1,w.dropRight=D1,w.dropRightWhile=q1,w.dropWhile=k1,w.fill=B1,w.filter=Um,w.flatMap=Lm,w.flatMapDeep=Km,w.flatMapDepth=Hm,w.flatten=vl,w.flattenDeep=j1,w.flattenDepth=U1,w.flip=uv,w.flow=nw,w.flowRight=ow,w.fromPairs=$1,w.functions=oy,w.functionsIn=ay,w.groupBy=Vm,w.initial=L1,w.intersection=K1,w.intersectionBy=H1,w.intersectionWith=V1,w.invert=hy,w.invertBy=uy,w.invokeMap=Qm,w.iteratee=Ac,w.keyBy=Gm,w.keys=Fe,w.keysIn=er,w.map=Do,w.mapKeys=fy,w.mapValues=py,w.matches=aw,w.matchesProperty=cw,w.memoize=ko,w.merge=dy,w.mergeWith=jl,w.method=hw,w.methodOf=uw,w.mixin=Ec,w.negate=Bo,w.nthArg=fw,w.omit=gy,w.omitBy=my,w.once=lv,w.orderBy=Ym,w.over=pw,w.overArgs=fv,w.overEvery=dw,w.overSome=gw,w.partial=gc,w.partialRight=Rl,w.partition=Wm,w.pick=vy,w.pickBy=Ul,w.property=Jl,w.propertyOf=mw,w.pull=Y1,w.pullAll=wl,w.pullAllBy=W1,w.pullAllWith=Z1,w.pullAt=X1,w.range=vw,w.rangeRight=yw,w.rearg=pv,w.reject=tv,w.remove=tm,w.rest=dv,w.reverse=fc,w.sampleSize=rv,w.set=wy,w.setWith=by,w.shuffle=iv,w.slice=em,w.sortBy=ov,w.sortedUniq=cm,w.sortedUniqBy=hm,w.split=Ly,w.spread=gv,w.tail=um,w.take=lm,w.takeRight=fm,w.takeRightWhile=pm,w.takeWhile=dm,w.tap=xm,w.throttle=mv,w.thru=Fo,w.toArray=Dl,w.toPairs=$l,w.toPairsIn=zl,w.toPath=Ew,w.toPlainObject=kl,w.transform=_y,w.unary=vv,w.union=gm,w.unionBy=mm,w.unionWith=vm,w.uniq=ym,w.uniqBy=wm,w.uniqWith=bm,w.unset=Ay,w.unzip=pc,w.unzipWith=bl,w.update=Ey,w.updateWith=Iy,w.values=zs,w.valuesIn=Sy,w.without=_m,w.words=Hl,w.wrap=yv,w.xor=Am,w.xorBy=Em,w.xorWith=Im,w.zip=Sm,w.zipObject=Pm,w.zipObjectDeep=Mm,w.zipWith=Cm,w.entries=$l,w.entriesIn=zl,w.extend=Bl,w.extendWith=$o,Ec(w,w),w.add=Sw,w.attempt=Vl,w.camelCase=xy,w.capitalize=Ll,w.ceil=Pw,w.clamp=Py,w.clone=bv,w.cloneDeep=Av,w.cloneDeepWith=Ev,w.cloneWith=_v,w.conformsTo=Iv,w.deburr=Kl,w.defaultTo=sw,w.divide=Mw,w.endsWith=Ry,w.eq=jr,w.escape=Ny,w.escapeRegExp=Oy,w.every=jm,w.find=$m,w.findIndex=gl,w.findKey=ty,w.findLast=zm,w.findLastIndex=ml,w.findLastKey=ey,w.floor=Cw,w.forEach=Al,w.forEachRight=El,w.forIn=ry,w.forInRight=iy,w.forOwn=sy,w.forOwnRight=ny,w.get=yc,w.gt=Sv,w.gte=Pv,w.has=cy,w.hasIn=wc,w.head=yl,w.identity=rr,w.includes=Jm,w.indexOf=z1,w.inRange=My,w.invoke=ly,w.isArguments=ds,w.isArray=yt,w.isArrayBuffer=Mv,w.isArrayLike=tr,w.isArrayLikeObject=Ee,w.isBoolean=Cv,w.isBuffer=ts,w.isDate=xv,w.isElement=Rv,w.isEmpty=Nv,w.isEqual=Ov,w.isEqualWith=Tv,w.isError=mc,w.isFinite=Fv,w.isFunction=Fi,w.isInteger=Nl,w.isLength=jo,w.isMap=Ol,w.isMatch=Dv,w.isMatchWith=qv,w.isNaN=kv,w.isNative=Bv,w.isNil=Uv,w.isNull=jv,w.isNumber=Tl,w.isObject=be,w.isObjectLike=_e,w.isPlainObject=Cn,w.isRegExp=vc,w.isSafeInteger=$v,w.isSet=Fl,w.isString=Uo,w.isSymbol=pr,w.isTypedArray=$s,w.isUndefined=zv,w.isWeakMap=Lv,w.isWeakSet=Kv,w.join=J1,w.kebabCase=Ty,w.last=Sr,w.lastIndexOf=Q1,w.lowerCase=Fy,w.lowerFirst=Dy,w.lt=Hv,w.lte=Vv,w.max=xw,w.maxBy=Rw,w.mean=Nw,w.meanBy=Ow,w.min=Tw,w.minBy=Fw,w.stubArray=Sc,w.stubFalse=Pc,w.stubObject=ww,w.stubString=bw,w.stubTrue=_w,w.multiply=Dw,w.nth=G1,w.noConflict=lw,w.noop=Ic,w.now=qo,w.pad=qy,w.padEnd=ky,w.padStart=By,w.parseInt=jy,w.random=Cy,w.reduce=Zm,w.reduceRight=Xm,w.repeat=Uy,w.replace=$y,w.result=yy,w.round=qw,w.runInContext=O,w.sample=ev,w.size=sv,w.snakeCase=zy,w.some=nv,w.sortedIndex=rm,w.sortedIndexBy=im,w.sortedIndexOf=sm,w.sortedLastIndex=nm,w.sortedLastIndexBy=om,w.sortedLastIndexOf=am,w.startCase=Ky,w.startsWith=Hy,w.subtract=kw,w.sum=Bw,w.sumBy=jw,w.template=Vy,w.times=Aw,w.toFinite=Di,w.toInteger=bt,w.toLength=ql,w.toLower=Jy,w.toNumber=Pr,w.toSafeInteger=Jv,w.toString=jt,w.toUpper=Qy,w.trim=Gy,w.trimEnd=Yy,w.trimStart=Wy,w.truncate=Zy,w.unescape=Xy,w.uniqueId=Iw,w.upperCase=tw,w.upperFirst=bc,w.each=Al,w.eachRight=El,w.first=yl,Ec(w,function(){var r={};return si(w,function(n,c){Qt.call(w.prototype,c)||(r[c]=n)}),r}(),{chain:!1}),w.VERSION=s,br(["bind","bindKey","curry","curryRight","partial","partialRight"],function(r){w[r].placeholder=w}),br(["drop","take"],function(r,n){St.prototype[r]=function(c){c=c===e?1:Re(bt(c),0);var l=this.__filtered__&&!n?new St(this):this.clone();return l.__filtered__?l.__takeCount__=Le(c,l.__takeCount__):l.__views__.push({size:Le(c,f),type:r+(l.__dir__<0?"Right":"")}),l},St.prototype[r+"Right"]=function(c){return this.reverse()[r](c).reverse()}}),br(["filter","map","takeWhile"],function(r,n){var c=n+1,l=c==d||c==I;St.prototype[r]=function(g){var _=this.clone();return _.__iteratees__.push({iteratee:ft(g,3),type:c}),_.__filtered__=_.__filtered__||l,_}}),br(["head","last"],function(r,n){var c="take"+(n?"Right":"");St.prototype[r]=function(){return this[c](1).value()[0]}}),br(["initial","tail"],function(r,n){var c="drop"+(n?"":"Right");St.prototype[r]=function(){return this.__filtered__?new St(this):this[c](1)}}),St.prototype.compact=function(){return this.filter(rr)},St.prototype.find=function(r){return this.filter(r).head()},St.prototype.findLast=function(r){return this.reverse().find(r)},St.prototype.invokeMap=At(function(r,n){return typeof r=="function"?new St(this):this.map(function(c){return An(c,r,n)})}),St.prototype.reject=function(r){return this.filter(Bo(ft(r)))},St.prototype.slice=function(r,n){r=bt(r);var c=this;return c.__filtered__&&(r>0||n<0)?new St(c):(r<0?c=c.takeRight(-r):r&&(c=c.drop(r)),n!==e&&(n=bt(n),c=n<0?c.dropRight(-n):c.take(n-r)),c)},St.prototype.takeRightWhile=function(r){return this.reverse().takeWhile(r).reverse()},St.prototype.toArray=function(){return this.take(f)},si(St.prototype,function(r,n){var c=/^(?:filter|find|map|reject)|While$/.test(n),l=/^(?:head|last)$/.test(n),g=w[l?"take"+(n=="last"?"Right":""):n],_=l||/^find/.test(n);g&&(w.prototype[n]=function(){var x=this.__wrapped__,R=l?[1]:arguments,F=x instanceof St,z=R[0],L=F||yt(x),J=function(Et){var Rt=g.apply(w,Ji([Et],R));return l&&Z?Rt[0]:Rt};L&&c&&typeof z=="function"&&z.length!=1&&(F=L=!1);var Z=this.__chain__,nt=!!this.__actions__.length,pt=_&&!Z,_t=F&&!nt;if(!_&&L){x=_t?x:new St(this);var dt=r.apply(x,R);return dt.__actions__.push({func:Fo,args:[J],thisArg:e}),new Ar(dt,Z)}return pt&&_t?r.apply(this,R):(dt=this.thru(J),pt?l?dt.value()[0]:dt.value():dt)})}),br(["pop","push","shift","sort","splice","unshift"],function(r){var n=no[r],c=/^(?:push|sort|unshift)$/.test(r)?"tap":"thru",l=/^(?:pop|shift)$/.test(r);w.prototype[r]=function(){var g=arguments;if(l&&!this.__chain__){var _=this.value();return n.apply(yt(_)?_:[],g)}return this[c](function(x){return n.apply(yt(x)?x:[],g)})}}),si(St.prototype,function(r,n){var c=w[n];if(c){var l=c.name+"";Qt.call(qs,l)||(qs[l]=[]),qs[l].push({name:n,func:c})}}),qs[Mo(e,Q).name]=[{name:"wrapper",func:e}],St.prototype.clone=X0,St.prototype.reverse=tg,St.prototype.value=eg,w.prototype.at=Rm,w.prototype.chain=Nm,w.prototype.commit=Om,w.prototype.next=Tm,w.prototype.plant=Dm,w.prototype.reverse=qm,w.prototype.toJSON=w.prototype.valueOf=w.prototype.value=km,w.prototype.first=w.prototype.head,gn&&(w.prototype[gn]=Fm),w},Ts=O0();os?((os.exports=Ts)._=Ts,Aa._=Ts):qe._=Ts}).call(kn)})(lh,lh.exports);var jI=Object.defineProperty,UI=Object.defineProperties,$I=Object.getOwnPropertyDescriptors,up=Object.getOwnPropertySymbols,zI=Object.prototype.hasOwnProperty,LI=Object.prototype.propertyIsEnumerable,lp=(i,t,e)=>t in i?jI(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e,Jo=(i,t)=>{for(var e in t||(t={}))zI.call(t,e)&&lp(i,e,t[e]);if(up)for(var e of up(t))LI.call(t,e)&&lp(i,e,t[e]);return i},KI=(i,t)=>UI(i,$I(t));function Qr(i,t,e){var s;const o=$n(i);return((s=t.rpcMap)==null?void 0:s[o.reference])||`${BI}?chainId=${o.namespace}:${o.reference}&projectId=${e}`}function Ss(i){return i.includes(":")?i.split(":")[1]:i}function qd(i){return i.map(t=>`${t.split(":")[0]}:${t.split(":")[1]}`)}function HI(i,t){const e=Object.keys(t.namespaces).filter(o=>o.includes(i));if(!e.length)return[];const s=[];return e.forEach(o=>{const a=t.namespaces[o].accounts;s.push(...a)}),s}function Qc(i={},t={}){const e=fp(i),s=fp(t);return lh.exports.merge(e,s)}function fp(i){var t,e,s,o;const a={};if(!Qn(i))return a;for(const[h,p]of Object.entries(i)){const v=bh(h)?[h]:p.chains,y=p.methods||[],M=p.events||[],P=p.rpcMap||{},T=Un(h);a[T]=KI(Jo(Jo({},a[T]),p),{chains:Yo(v,(t=a[T])==null?void 0:t.chains),methods:Yo(y,(e=a[T])==null?void 0:e.methods),events:Yo(M,(s=a[T])==null?void 0:s.events),rpcMap:Jo(Jo({},P),(o=a[T])==null?void 0:o.rpcMap)})}return a}function VI(i){return i.includes(":")?i.split(":")[2]:i}function pp(i){const t={};for(const[e,s]of Object.entries(i)){const o=s.methods||[],a=s.events||[],h=s.accounts||[],p=bh(e)?[e]:s.chains?s.chains:qd(s.accounts);t[e]={chains:p,methods:o,events:a,accounts:h}}return t}function Gc(i){return typeof i=="number"?i:i.includes("0x")?parseInt(i,16):(i=i.includes(":")?i.split(":")[1]:i,isNaN(Number(i))?i:Number(i))}const kd={},Ut=i=>kd[i],Yc=(i,t)=>{kd[i]=t};class JI{constructor(t){this.name="polkadot",this.namespace=t.namespace,this.events=Ut("events"),this.client=Ut("client"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(t){this.namespace=Object.assign(this.namespace,t)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const t=this.namespace.chains[0];if(!t)throw new Error("ChainId not found");return t.split(":")[1]}request(t){return this.namespace.methods.includes(t.request.method)?this.client.request(t):this.getHttpProvider().request(t.request)}setDefaultChain(t,e){this.httpProviders[t]||this.setHttpProvider(t,e),this.chainId=t,this.events.emit(Gr.DEFAULT_CHAIN_CHANGED,`${this.name}:${t}`)}getAccounts(){const t=this.namespace.accounts;return t?t.filter(e=>e.split(":")[1]===this.chainId.toString()).map(e=>e.split(":")[2])||[]:[]}createHttpProviders(){const t={};return this.namespace.chains.forEach(e=>{var s;const o=Ss(e);t[o]=this.createHttpProvider(o,(s=this.namespace.rpcMap)==null?void 0:s[e])}),t}getHttpProvider(){const t=`${this.name}:${this.chainId}`,e=this.httpProviders[t];if(typeof e>"u")throw new Error(`JSON-RPC provider for ${t} not found`);return e}setHttpProvider(t,e){const s=this.createHttpProvider(t,e);s&&(this.httpProviders[t]=s)}createHttpProvider(t,e){const s=e||Qr(t,this.namespace,this.client.core.projectId);if(!s)throw new Error(`No RPC url provided for chainId: ${t}`);return new A.o(new A.f$1(s,Ut("disableProviderPing")))}}var QI=Object.defineProperty,GI=Object.defineProperties,YI=Object.getOwnPropertyDescriptors,dp=Object.getOwnPropertySymbols,WI=Object.prototype.hasOwnProperty,ZI=Object.prototype.propertyIsEnumerable,gp=(i,t,e)=>t in i?QI(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e,mp=(i,t)=>{for(var e in t||(t={}))WI.call(t,e)&&gp(i,e,t[e]);if(dp)for(var e of dp(t))ZI.call(t,e)&&gp(i,e,t[e]);return i},vp=(i,t)=>GI(i,YI(t));class XI{constructor(t){this.name="eip155",this.namespace=t.namespace,this.events=Ut("events"),this.client=Ut("client"),this.httpProviders=this.createHttpProviders(),this.chainId=parseInt(this.getDefaultChain())}async request(t){switch(t.request.method){case"eth_requestAccounts":return this.getAccounts();case"eth_accounts":return this.getAccounts();case"wallet_switchEthereumChain":return await this.handleSwitchChain(t);case"eth_chainId":return parseInt(this.getDefaultChain());case"wallet_getCapabilities":return await this.getCapabilities(t)}return this.namespace.methods.includes(t.request.method)?await this.client.request(t):this.getHttpProvider().request(t.request)}updateNamespace(t){this.namespace=Object.assign(this.namespace,t)}setDefaultChain(t,e){this.httpProviders[t]||this.setHttpProvider(parseInt(t),e),this.chainId=parseInt(t),this.events.emit(Gr.DEFAULT_CHAIN_CHANGED,`${this.name}:${t}`)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId.toString();if(this.namespace.defaultChain)return this.namespace.defaultChain;const t=this.namespace.chains[0];if(!t)throw new Error("ChainId not found");return t.split(":")[1]}createHttpProvider(t,e){const s=e||Qr(`${this.name}:${t}`,this.namespace,this.client.core.projectId);if(!s)throw new Error(`No RPC url provided for chainId: ${t}`);return new A.o(new A.f$1(s,Ut("disableProviderPing")))}setHttpProvider(t,e){const s=this.createHttpProvider(t,e);s&&(this.httpProviders[t]=s)}createHttpProviders(){const t={};return this.namespace.chains.forEach(e=>{var s;const o=parseInt(Ss(e));t[o]=this.createHttpProvider(o,(s=this.namespace.rpcMap)==null?void 0:s[e])}),t}getAccounts(){const t=this.namespace.accounts;return t?[...new Set(t.filter(e=>e.split(":")[1]===this.chainId.toString()).map(e=>e.split(":")[2]))]:[]}getHttpProvider(){const t=this.chainId,e=this.httpProviders[t];if(typeof e>"u")throw new Error(`JSON-RPC provider for ${t} not found`);return e}async handleSwitchChain(t){var e,s;let o=t.request.params?(e=t.request.params[0])==null?void 0:e.chainId:"0x0";o=o.startsWith("0x")?o:`0x${o}`;const a=parseInt(o,16);if(this.isChainApproved(a))this.setDefaultChain(`${a}`);else if(this.namespace.methods.includes("wallet_switchEthereumChain"))await this.client.request({topic:t.topic,request:{method:t.request.method,params:[{chainId:o}]},chainId:(s=this.namespace.chains)==null?void 0:s[0]}),this.setDefaultChain(`${a}`);else throw new Error(`Failed to switch to chain 'eip155:${a}'. The chain is not approved or the wallet does not support 'wallet_switchEthereumChain' method.`);return null}isChainApproved(t){return this.namespace.chains.includes(`${this.name}:${t}`)}async getCapabilities(t){var e,s,o;const a=(s=(e=t.request)==null?void 0:e.params)==null?void 0:s[0];if(!a)throw new Error("Missing address parameter in `wallet_getCapabilities` request");const h=this.client.session.get(t.topic),p=((o=h==null?void 0:h.sessionProperties)==null?void 0:o.capabilities)||{};if(p!=null&&p[a])return p==null?void 0:p[a];const v=await this.client.request(t);try{await this.client.session.update(t.topic,{sessionProperties:vp(mp({},h.sessionProperties||{}),{capabilities:vp(mp({},p||{}),{[a]:v})})})}catch(y){console.warn("Failed to update session with capabilities",y)}return v}}class t8{constructor(t){this.name="solana",this.namespace=t.namespace,this.events=Ut("events"),this.client=Ut("client"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(t){this.namespace=Object.assign(this.namespace,t)}requestAccounts(){return this.getAccounts()}request(t){return this.namespace.methods.includes(t.request.method)?this.client.request(t):this.getHttpProvider().request(t.request)}setDefaultChain(t,e){this.httpProviders[t]||this.setHttpProvider(t,e),this.chainId=t,this.events.emit(Gr.DEFAULT_CHAIN_CHANGED,`${this.name}:${t}`)}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const t=this.namespace.chains[0];if(!t)throw new Error("ChainId not found");return t.split(":")[1]}getAccounts(){const t=this.namespace.accounts;return t?[...new Set(t.filter(e=>e.split(":")[1]===this.chainId.toString()).map(e=>e.split(":")[2]))]:[]}createHttpProviders(){const t={};return this.namespace.chains.forEach(e=>{var s;const o=Ss(e);t[o]=this.createHttpProvider(o,(s=this.namespace.rpcMap)==null?void 0:s[e])}),t}getHttpProvider(){const t=`${this.name}:${this.chainId}`,e=this.httpProviders[t];if(typeof e>"u")throw new Error(`JSON-RPC provider for ${t} not found`);return e}setHttpProvider(t,e){const s=this.createHttpProvider(t,e);s&&(this.httpProviders[t]=s)}createHttpProvider(t,e){const s=e||Qr(t,this.namespace,this.client.core.projectId);if(!s)throw new Error(`No RPC url provided for chainId: ${t}`);return new A.o(new A.f$1(s,Ut("disableProviderPing")))}}class e8{constructor(t){this.name="cosmos",this.namespace=t.namespace,this.events=Ut("events"),this.client=Ut("client"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(t){this.namespace=Object.assign(this.namespace,t)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const t=this.namespace.chains[0];if(!t)throw new Error("ChainId not found");return t.split(":")[1]}request(t){return this.namespace.methods.includes(t.request.method)?this.client.request(t):this.getHttpProvider().request(t.request)}setDefaultChain(t,e){this.httpProviders[t]||this.setHttpProvider(t,e),this.chainId=t,this.events.emit(Gr.DEFAULT_CHAIN_CHANGED,`${this.name}:${this.chainId}`)}getAccounts(){const t=this.namespace.accounts;return t?[...new Set(t.filter(e=>e.split(":")[1]===this.chainId.toString()).map(e=>e.split(":")[2]))]:[]}createHttpProviders(){const t={};return this.namespace.chains.forEach(e=>{var s;const o=Ss(e);t[o]=this.createHttpProvider(o,(s=this.namespace.rpcMap)==null?void 0:s[e])}),t}getHttpProvider(){const t=`${this.name}:${this.chainId}`,e=this.httpProviders[t];if(typeof e>"u")throw new Error(`JSON-RPC provider for ${t} not found`);return e}setHttpProvider(t,e){const s=this.createHttpProvider(t,e);s&&(this.httpProviders[t]=s)}createHttpProvider(t,e){const s=e||Qr(t,this.namespace,this.client.core.projectId);if(!s)throw new Error(`No RPC url provided for chainId: ${t}`);return new A.o(new A.f$1(s,Ut("disableProviderPing")))}}class r8{constructor(t){this.name="algorand",this.namespace=t.namespace,this.events=Ut("events"),this.client=Ut("client"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(t){this.namespace=Object.assign(this.namespace,t)}requestAccounts(){return this.getAccounts()}request(t){return this.namespace.methods.includes(t.request.method)?this.client.request(t):this.getHttpProvider().request(t.request)}setDefaultChain(t,e){if(!this.httpProviders[t]){const s=e||Qr(`${this.name}:${t}`,this.namespace,this.client.core.projectId);if(!s)throw new Error(`No RPC url provided for chainId: ${t}`);this.setHttpProvider(t,s)}this.chainId=t,this.events.emit(Gr.DEFAULT_CHAIN_CHANGED,`${this.name}:${this.chainId}`)}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const t=this.namespace.chains[0];if(!t)throw new Error("ChainId not found");return t.split(":")[1]}getAccounts(){const t=this.namespace.accounts;return t?[...new Set(t.filter(e=>e.split(":")[1]===this.chainId.toString()).map(e=>e.split(":")[2]))]:[]}createHttpProviders(){const t={};return this.namespace.chains.forEach(e=>{var s;t[e]=this.createHttpProvider(e,(s=this.namespace.rpcMap)==null?void 0:s[e])}),t}getHttpProvider(){const t=`${this.name}:${this.chainId}`,e=this.httpProviders[t];if(typeof e>"u")throw new Error(`JSON-RPC provider for ${t} not found`);return e}setHttpProvider(t,e){const s=this.createHttpProvider(t,e);s&&(this.httpProviders[t]=s)}createHttpProvider(t,e){const s=e||Qr(t,this.namespace,this.client.core.projectId);return typeof s>"u"?void 0:new A.o(new A.f$1(s,Ut("disableProviderPing")))}}class i8{constructor(t){this.name="cip34",this.namespace=t.namespace,this.events=Ut("events"),this.client=Ut("client"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(t){this.namespace=Object.assign(this.namespace,t)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const t=this.namespace.chains[0];if(!t)throw new Error("ChainId not found");return t.split(":")[1]}request(t){return this.namespace.methods.includes(t.request.method)?this.client.request(t):this.getHttpProvider().request(t.request)}setDefaultChain(t,e){this.httpProviders[t]||this.setHttpProvider(t,e),this.chainId=t,this.events.emit(Gr.DEFAULT_CHAIN_CHANGED,`${this.name}:${this.chainId}`)}getAccounts(){const t=this.namespace.accounts;return t?[...new Set(t.filter(e=>e.split(":")[1]===this.chainId.toString()).map(e=>e.split(":")[2]))]:[]}createHttpProviders(){const t={};return this.namespace.chains.forEach(e=>{const s=this.getCardanoRPCUrl(e),o=Ss(e);t[o]=this.createHttpProvider(o,s)}),t}getHttpProvider(){const t=`${this.name}:${this.chainId}`,e=this.httpProviders[t];if(typeof e>"u")throw new Error(`JSON-RPC provider for ${t} not found`);return e}getCardanoRPCUrl(t){const e=this.namespace.rpcMap;if(e)return e[t]}setHttpProvider(t,e){const s=this.createHttpProvider(t,e);s&&(this.httpProviders[t]=s)}createHttpProvider(t,e){const s=e||this.getCardanoRPCUrl(t);if(!s)throw new Error(`No RPC url provided for chainId: ${t}`);return new A.o(new A.f$1(s,Ut("disableProviderPing")))}}class s8{constructor(t){this.name="elrond",this.namespace=t.namespace,this.events=Ut("events"),this.client=Ut("client"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(t){this.namespace=Object.assign(this.namespace,t)}requestAccounts(){return this.getAccounts()}request(t){return this.namespace.methods.includes(t.request.method)?this.client.request(t):this.getHttpProvider().request(t.request)}setDefaultChain(t,e){this.httpProviders[t]||this.setHttpProvider(t,e),this.chainId=t,this.events.emit(Gr.DEFAULT_CHAIN_CHANGED,`${this.name}:${t}`)}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const t=this.namespace.chains[0];if(!t)throw new Error("ChainId not found");return t.split(":")[1]}getAccounts(){const t=this.namespace.accounts;return t?[...new Set(t.filter(e=>e.split(":")[1]===this.chainId.toString()).map(e=>e.split(":")[2]))]:[]}createHttpProviders(){const t={};return this.namespace.chains.forEach(e=>{var s;const o=Ss(e);t[o]=this.createHttpProvider(o,(s=this.namespace.rpcMap)==null?void 0:s[e])}),t}getHttpProvider(){const t=`${this.name}:${this.chainId}`,e=this.httpProviders[t];if(typeof e>"u")throw new Error(`JSON-RPC provider for ${t} not found`);return e}setHttpProvider(t,e){const s=this.createHttpProvider(t,e);s&&(this.httpProviders[t]=s)}createHttpProvider(t,e){const s=e||Qr(t,this.namespace,this.client.core.projectId);if(!s)throw new Error(`No RPC url provided for chainId: ${t}`);return new A.o(new A.f$1(s,Ut("disableProviderPing")))}}class n8{constructor(t){this.name="multiversx",this.namespace=t.namespace,this.events=Ut("events"),this.client=Ut("client"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(t){this.namespace=Object.assign(this.namespace,t)}requestAccounts(){return this.getAccounts()}request(t){return this.namespace.methods.includes(t.request.method)?this.client.request(t):this.getHttpProvider().request(t.request)}setDefaultChain(t,e){this.httpProviders[t]||this.setHttpProvider(t,e),this.chainId=t,this.events.emit(Gr.DEFAULT_CHAIN_CHANGED,`${this.name}:${t}`)}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const t=this.namespace.chains[0];if(!t)throw new Error("ChainId not found");return t.split(":")[1]}getAccounts(){const t=this.namespace.accounts;return t?[...new Set(t.filter(e=>e.split(":")[1]===this.chainId.toString()).map(e=>e.split(":")[2]))]:[]}createHttpProviders(){const t={};return this.namespace.chains.forEach(e=>{var s;const o=Ss(e);t[o]=this.createHttpProvider(o,(s=this.namespace.rpcMap)==null?void 0:s[e])}),t}getHttpProvider(){const t=`${this.name}:${this.chainId}`,e=this.httpProviders[t];if(typeof e>"u")throw new Error(`JSON-RPC provider for ${t} not found`);return e}setHttpProvider(t,e){const s=this.createHttpProvider(t,e);s&&(this.httpProviders[t]=s)}createHttpProvider(t,e){const s=e||Qr(t,this.namespace,this.client.core.projectId);if(!s)throw new Error(`No RPC url provided for chainId: ${t}`);return new A.o(new A.f$1(s,Ut("disableProviderPing")))}}class o8{constructor(t){this.name="near",this.namespace=t.namespace,this.events=Ut("events"),this.client=Ut("client"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(t){this.namespace=Object.assign(this.namespace,t)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const t=this.namespace.chains[0];if(!t)throw new Error("ChainId not found");return t.split(":")[1]}request(t){return this.namespace.methods.includes(t.request.method)?this.client.request(t):this.getHttpProvider().request(t.request)}setDefaultChain(t,e){if(this.chainId=t,!this.httpProviders[t]){const s=e||Qr(`${this.name}:${t}`,this.namespace);if(!s)throw new Error(`No RPC url provided for chainId: ${t}`);this.setHttpProvider(t,s)}this.events.emit(Gr.DEFAULT_CHAIN_CHANGED,`${this.name}:${this.chainId}`)}getAccounts(){const t=this.namespace.accounts;return t?t.filter(e=>e.split(":")[1]===this.chainId.toString()).map(e=>e.split(":")[2])||[]:[]}createHttpProviders(){const t={};return this.namespace.chains.forEach(e=>{var s;t[e]=this.createHttpProvider(e,(s=this.namespace.rpcMap)==null?void 0:s[e])}),t}getHttpProvider(){const t=`${this.name}:${this.chainId}`,e=this.httpProviders[t];if(typeof e>"u")throw new Error(`JSON-RPC provider for ${t} not found`);return e}setHttpProvider(t,e){const s=this.createHttpProvider(t,e);s&&(this.httpProviders[t]=s)}createHttpProvider(t,e){const s=e||Qr(t,this.namespace);return typeof s>"u"?void 0:new A.o(new A.f$1(s,Ut("disableProviderPing")))}}class a8{constructor(t){this.name=Hs,this.namespace=t.namespace,this.events=Ut("events"),this.client=Ut("client"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(t){this.namespace.chains=[...new Set((this.namespace.chains||[]).concat(t.chains||[]))],this.namespace.accounts=[...new Set((this.namespace.accounts||[]).concat(t.accounts||[]))],this.namespace.methods=[...new Set((this.namespace.methods||[]).concat(t.methods||[]))],this.namespace.events=[...new Set((this.namespace.events||[]).concat(t.events||[]))],this.httpProviders=this.createHttpProviders()}requestAccounts(){return this.getAccounts()}request(t){return this.namespace.methods.includes(t.request.method)?this.client.request(t):this.getHttpProvider(t.chainId).request(t.request)}setDefaultChain(t,e){this.httpProviders[t]||this.setHttpProvider(t,e),this.chainId=t,this.events.emit(Gr.DEFAULT_CHAIN_CHANGED,`${this.name}:${t}`)}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const t=this.namespace.chains[0];if(!t)throw new Error("ChainId not found");return t.split(":")[1]}getAccounts(){const t=this.namespace.accounts;return t?[...new Set(t.filter(e=>e.split(":")[1]===this.chainId.toString()).map(e=>e.split(":")[2]))]:[]}createHttpProviders(){var t,e;const s={};return(e=(t=this.namespace)==null?void 0:t.accounts)==null||e.forEach(o=>{const a=$n(o);s[`${a.namespace}:${a.reference}`]=this.createHttpProvider(o)}),s}getHttpProvider(t){const e=this.httpProviders[t];if(typeof e>"u")throw new Error(`JSON-RPC provider for ${t} not found`);return e}setHttpProvider(t,e){const s=this.createHttpProvider(t,e);s&&(this.httpProviders[t]=s)}createHttpProvider(t,e){const s=e||Qr(t,this.namespace,this.client.core.projectId);if(!s)throw new Error(`No RPC url provided for chainId: ${t}`);return new A.o(new A.f$1(s,Ut("disableProviderPing")))}}var c8=Object.defineProperty,h8=Object.defineProperties,u8=Object.getOwnPropertyDescriptors,yp=Object.getOwnPropertySymbols,l8=Object.prototype.hasOwnProperty,f8=Object.prototype.propertyIsEnumerable,wp=(i,t,e)=>t in i?c8(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e,Qo=(i,t)=>{for(var e in t||(t={}))l8.call(t,e)&&wp(i,e,t[e]);if(yp)for(var e of yp(t))f8.call(t,e)&&wp(i,e,t[e]);return i},Wc=(i,t)=>h8(i,u8(t));class Ph{constructor(t){this.events=new A.Gg,this.rpcProviders={},this.shouldAbortPairingAttempt=!1,this.maxPairingAttempts=10,this.disableProviderPing=!1,this.providerOpts=t,this.logger=typeof(t==null?void 0:t.logger)<"u"&&typeof(t==null?void 0:t.logger)!="string"?t.logger:A.Wg(A.k({level:(t==null?void 0:t.logger)||cp})),this.disableProviderPing=(t==null?void 0:t.disableProviderPing)||!1}static async init(t){const e=new Ph(t);return await e.initialize(),e}async request(t,e,s){const[o,a]=this.validateChain(e);if(!this.session)throw new Error("Please call connect() before request()");return await this.getProvider(o).request({request:Qo({},t),chainId:`${o}:${a}`,topic:this.session.topic,expiry:s})}sendAsync(t,e,s,o){const a=new Date().getTime();this.request(t,s,o).then(h=>e(null,A.formatJsonRpcResult(a,h))).catch(h=>e(h,void 0))}async enable(){if(!this.client)throw new Error("Sign Client not initialized");return this.session||await this.connect({namespaces:this.namespaces,optionalNamespaces:this.optionalNamespaces,sessionProperties:this.sessionProperties}),await this.requestAccounts()}async disconnect(){var t;if(!this.session)throw new Error("Please call connect() before enable()");await this.client.disconnect({topic:(t=this.session)==null?void 0:t.topic,reason:Gt("USER_DISCONNECTED")}),await this.cleanup()}async connect(t){if(!this.client)throw new Error("Sign Client not initialized");if(this.setNamespaces(t),await this.cleanupPendingPairings(),!t.skipPairing)return await this.pair(t.pairingTopic)}async authenticate(t){if(!this.client)throw new Error("Sign Client not initialized");this.setNamespaces(t),await this.cleanupPendingPairings();const{uri:e,response:s}=await this.client.authenticate(t);e&&(this.uri=e,this.events.emit("display_uri",e));const o=await s();if(this.session=o.session,this.session){const a=pp(this.session.namespaces);this.namespaces=Qc(this.namespaces,a),this.persist("namespaces",this.namespaces),this.onConnect()}return o}on(t,e){this.events.on(t,e)}once(t,e){this.events.once(t,e)}removeListener(t,e){this.events.removeListener(t,e)}off(t,e){this.events.off(t,e)}get isWalletConnect(){return!0}async pair(t){this.shouldAbortPairingAttempt=!1;let e=0;do{if(this.shouldAbortPairingAttempt)throw new Error("Pairing aborted");if(e>=this.maxPairingAttempts)throw new Error("Max auto pairing attempts reached");const{uri:s,approval:o}=await this.client.connect({pairingTopic:t,requiredNamespaces:this.namespaces,optionalNamespaces:this.optionalNamespaces,sessionProperties:this.sessionProperties});s&&(this.uri=s,this.events.emit("display_uri",s)),await o().then(a=>{this.session=a;const h=pp(a.namespaces);this.namespaces=Qc(this.namespaces,h),this.persist("namespaces",this.namespaces)}).catch(a=>{if(a.message!==Dd)throw a;e++})}while(!this.session);return this.onConnect(),this.session}setDefaultChain(t,e){try{if(!this.session)return;const[s,o]=this.validateChain(t),a=this.getProvider(s);a.name===Hs?a.setDefaultChain(`${s}:${o}`,e):a.setDefaultChain(o,e)}catch(s){if(!/Please call connect/.test(s.message))throw s}}async cleanupPendingPairings(t={}){this.logger.info("Cleaning up inactive pairings...");const e=this.client.pairing.getAll();if(yi(e)){for(const s of e)t.deletePairings?this.client.core.expirer.set(s.topic,0):await this.client.core.relayer.subscriber.unsubscribe(s.topic);this.logger.info(`Inactive pairings cleared: ${e.length}`)}}abortPairingAttempt(){this.shouldAbortPairingAttempt=!0}async checkStorage(){if(this.namespaces=await this.getFromStore("namespaces"),this.optionalNamespaces=await this.getFromStore("optionalNamespaces")||{},this.client.session.length){const t=this.client.session.keys.length-1;this.session=this.client.session.get(this.client.session.keys[t]),this.createProviders()}}async initialize(){this.logger.trace("Initialized"),await this.createClient(),await this.checkStorage(),this.registerEventListeners()}async createClient(){this.client=this.providerOpts.client||await Sh.init({core:this.providerOpts.core,logger:this.providerOpts.logger||cp,relayUrl:this.providerOpts.relayUrl||DI,projectId:this.providerOpts.projectId,metadata:this.providerOpts.metadata,storageOptions:this.providerOpts.storageOptions,storage:this.providerOpts.storage,name:this.providerOpts.name,customStoragePrefix:this.providerOpts.customStoragePrefix,telemetryEnabled:this.providerOpts.telemetryEnabled}),this.logger.trace("SignClient Initialized")}createProviders(){if(!this.client)throw new Error("Sign Client not initialized");if(!this.session)throw new Error("Session not initialized. Please call connect() before enable()");const t=[...new Set(Object.keys(this.session.namespaces).map(e=>Un(e)))];Yc("client",this.client),Yc("events",this.events),Yc("disableProviderPing",this.disableProviderPing),t.forEach(e=>{if(!this.session)return;const s=HI(e,this.session),o=qd(s),a=Qc(this.namespaces,this.optionalNamespaces),h=Wc(Qo({},a[e]),{accounts:s,chains:o});switch(e){case"eip155":this.rpcProviders[e]=new XI({namespace:h});break;case"algorand":this.rpcProviders[e]=new r8({namespace:h});break;case"solana":this.rpcProviders[e]=new t8({namespace:h});break;case"cosmos":this.rpcProviders[e]=new e8({namespace:h});break;case"polkadot":this.rpcProviders[e]=new JI({namespace:h});break;case"cip34":this.rpcProviders[e]=new i8({namespace:h});break;case"elrond":this.rpcProviders[e]=new s8({namespace:h});break;case"multiversx":this.rpcProviders[e]=new n8({namespace:h});break;case"near":this.rpcProviders[e]=new o8({namespace:h});break;default:this.rpcProviders[Hs]?this.rpcProviders[Hs].updateNamespace(h):this.rpcProviders[Hs]=new a8({namespace:h})}})}registerEventListeners(){if(typeof this.client>"u")throw new Error("Sign Client is not initialized");this.client.on("session_ping",t=>{this.events.emit("session_ping",t)}),this.client.on("session_event",t=>{const{params:e}=t,{event:s}=e;if(s.name==="accountsChanged"){const o=s.data;o&&yi(o)&&this.events.emit("accountsChanged",o.map(VI))}else if(s.name==="chainChanged"){const o=e.chainId,a=e.event.data,h=Un(o),p=Gc(o)!==Gc(a)?`${h}:${Gc(a)}`:o;this.onChainChanged(p)}else this.events.emit(s.name,s.data);this.events.emit("session_event",t)}),this.client.on("session_update",({topic:t,params:e})=>{var s;const{namespaces:o}=e,a=(s=this.client)==null?void 0:s.session.get(t);this.session=Wc(Qo({},a),{namespaces:o}),this.onSessionUpdate(),this.events.emit("session_update",{topic:t,params:e})}),this.client.on("session_delete",async t=>{await this.cleanup(),this.events.emit("session_delete",t),this.events.emit("disconnect",Wc(Qo({},Gt("USER_DISCONNECTED")),{data:t.topic}))}),this.on(Gr.DEFAULT_CHAIN_CHANGED,t=>{this.onChainChanged(t,!0)})}getProvider(t){return this.rpcProviders[t]||this.rpcProviders[Hs]}onSessionUpdate(){Object.keys(this.rpcProviders).forEach(t=>{var e;this.getProvider(t).updateNamespace((e=this.session)==null?void 0:e.namespaces[t])})}setNamespaces(t){const{namespaces:e,optionalNamespaces:s,sessionProperties:o}=t;e&&Object.keys(e).length&&(this.namespaces=e),s&&Object.keys(s).length&&(this.optionalNamespaces=s),this.sessionProperties=o,this.persist("namespaces",e),this.persist("optionalNamespaces",s)}validateChain(t){const[e,s]=(t==null?void 0:t.split(":"))||["",""];if(!this.namespaces||!Object.keys(this.namespaces).length)return[e,s];if(e&&!Object.keys(this.namespaces||{}).map(h=>Un(h)).includes(e))throw new Error(`Namespace '${e}' is not configured. Please call connect() first with namespace config.`);if(e&&s)return[e,s];const o=Un(Object.keys(this.namespaces)[0]),a=this.rpcProviders[o].getDefaultChain();return[o,a]}async requestAccounts(){const[t]=this.validateChain();return await this.getProvider(t).requestAccounts()}onChainChanged(t,e=!1){if(!this.namespaces)return;const[s,o]=this.validateChain(t);o&&(e||this.getProvider(s).setDefaultChain(o),this.namespaces[s]?this.namespaces[s].defaultChain=o:this.namespaces[`${s}:${o}`]?this.namespaces[`${s}:${o}`].defaultChain=o:this.namespaces[`${s}:${o}`]={defaultChain:o},this.persist("namespaces",this.namespaces),this.events.emit("chainChanged",o))}onConnect(){this.createProviders(),this.events.emit("connect",{session:this.session})}async cleanup(){this.session=void 0,this.namespaces=void 0,this.optionalNamespaces=void 0,this.sessionProperties=void 0,this.persist("namespaces",void 0),this.persist("optionalNamespaces",void 0),this.persist("sessionProperties",void 0),await this.cleanupPendingPairings({deletePairings:!0})}persist(t,e){this.client.core.storage.setItem(`${hp}/${t}`,e)}async getFromStore(t){return await this.client.core.storage.getItem(`${hp}/${t}`)}}const p8=Ph,d8="wc",g8="ethereum_provider",m8=`${d8}@2:${g8}:`,v8="https://rpc.walletconnect.com/v1/",ua=["eth_sendTransaction","personal_sign"],Bd=["eth_accounts","eth_requestAccounts","eth_sendRawTransaction","eth_sign","eth_signTransaction","eth_signTypedData","eth_signTypedData_v3","eth_signTypedData_v4","eth_sendTransaction","personal_sign","wallet_switchEthereumChain","wallet_addEthereumChain","wallet_getPermissions","wallet_requestPermissions","wallet_registerOnboarding","wallet_watchAsset","wallet_scanQRCode","wallet_sendCalls","wallet_getCapabilities","wallet_getCallsStatus","wallet_showCallsStatus"],la=["chainChanged","accountsChanged"],jd=["chainChanged","accountsChanged","message","disconnect","connect"];var y8=Object.defineProperty,w8=Object.defineProperties,b8=Object.getOwnPropertyDescriptors,bp=Object.getOwnPropertySymbols,_8=Object.prototype.hasOwnProperty,A8=Object.prototype.propertyIsEnumerable,_p=(i,t,e)=>t in i?y8(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e,Vs=(i,t)=>{for(var e in t||(t={}))_8.call(t,e)&&_p(i,e,t[e]);if(bp)for(var e of bp(t))A8.call(t,e)&&_p(i,e,t[e]);return i},Zc=(i,t)=>w8(i,b8(t));function fa(i){return Number(i[0].split(":")[1])}function Go(i){return`0x${i.toString(16)}`}function E8(i){const{chains:t,optionalChains:e,methods:s,optionalMethods:o,events:a,optionalEvents:h,rpcMap:p}=i;if(!yi(t))throw new Error("Invalid chains");const v={chains:t,methods:s||ua,events:a||la,rpcMap:Vs({},t.length?{[fa(t)]:p[fa(t)]}:{})},y=a==null?void 0:a.filter(D=>!la.includes(D)),M=s==null?void 0:s.filter(D=>!ua.includes(D));if(!e&&!h&&!o&&!(y!=null&&y.length)&&!(M!=null&&M.length))return{required:t.length?v:void 0};const P=(y==null?void 0:y.length)&&(M==null?void 0:M.length)||!e,T={chains:[...new Set(P?v.chains.concat(e||[]):e)],methods:[...new Set(v.methods.concat(o!=null&&o.length?o:Bd))],events:[...new Set(v.events.concat(h!=null&&h.length?h:jd))],rpcMap:p};return{required:t.length?v:void 0,optional:e.length?T:void 0}}class ma{constructor(){this.events=new A.eventsExports.EventEmitter,this.namespace="eip155",this.accounts=[],this.chainId=1,this.STORAGE_KEY=m8,this.on=(t,e)=>(this.events.on(t,e),this),this.once=(t,e)=>(this.events.once(t,e),this),this.removeListener=(t,e)=>(this.events.removeListener(t,e),this),this.off=(t,e)=>(this.events.off(t,e),this),this.parseAccount=t=>this.isCompatibleChainId(t)?this.parseAccountId(t).address:t,this.signer={},this.rpc={}}static async init(t){const e=new ma;return await e.initialize(t),e}async request(t,e){return await this.signer.request(t,this.formatChainId(this.chainId),e)}sendAsync(t,e,s){this.signer.sendAsync(t,e,this.formatChainId(this.chainId),s)}get connected(){return this.signer.client?this.signer.client.core.relayer.connected:!1}get connecting(){return this.signer.client?this.signer.client.core.relayer.connecting:!1}async enable(){return this.session||await this.connect(),await this.request({method:"eth_requestAccounts"})}async connect(t){if(!this.signer.client)throw new Error("Provider not initialized. Call init() first");this.loadConnectOpts(t);const{required:e,optional:s}=E8(this.rpc);try{const o=await new Promise(async(h,p)=>{var v;this.rpc.showQrModal&&((v=this.modal)==null||v.subscribeModal(y=>{!y.open&&!this.signer.session&&(this.signer.abortPairingAttempt(),p(new Error("Connection request reset. Please try again.")))})),await this.signer.connect(Zc(Vs({namespaces:Vs({},e&&{[this.namespace]:e})},s&&{optionalNamespaces:{[this.namespace]:s}}),{pairingTopic:t==null?void 0:t.pairingTopic})).then(y=>{h(y)}).catch(y=>{p(new Error(y.message))})});if(!o)return;const a=Gl(o.namespaces,[this.namespace]);this.setChainIds(this.rpc.chains.length?this.rpc.chains:a),this.setAccounts(a),this.events.emit("connect",{chainId:Go(this.chainId)})}catch(o){throw this.signer.logger.error(o),o}finally{this.modal&&this.modal.closeModal()}}async authenticate(t){if(!this.signer.client)throw new Error("Provider not initialized. Call init() first");this.loadConnectOpts({chains:t==null?void 0:t.chains});try{const e=await new Promise(async(o,a)=>{var h;this.rpc.showQrModal&&((h=this.modal)==null||h.subscribeModal(p=>{!p.open&&!this.signer.session&&(this.signer.abortPairingAttempt(),a(new Error("Connection request reset. Please try again.")))})),await this.signer.authenticate(Zc(Vs({},t),{chains:this.rpc.chains})).then(p=>{o(p)}).catch(p=>{a(new Error(p.message))})}),s=e.session;if(s){const o=Gl(s.namespaces,[this.namespace]);this.setChainIds(this.rpc.chains.length?this.rpc.chains:o),this.setAccounts(o),this.events.emit("connect",{chainId:Go(this.chainId)})}return e}catch(e){throw this.signer.logger.error(e),e}finally{this.modal&&this.modal.closeModal()}}async disconnect(){this.session&&await this.signer.disconnect(),this.reset()}get isWalletConnect(){return!0}get session(){return this.signer.session}registerEventListeners(){this.signer.on("session_event",t=>{const{params:e}=t,{event:s}=e;s.name==="accountsChanged"?(this.accounts=this.parseAccounts(s.data),this.events.emit("accountsChanged",this.accounts)):s.name==="chainChanged"?this.setChainId(this.formatChainId(s.data)):this.events.emit(s.name,s.data),this.events.emit("session_event",t)}),this.signer.on("chainChanged",t=>{const e=parseInt(t);this.chainId=e,this.events.emit("chainChanged",Go(this.chainId)),this.persist()}),this.signer.on("session_update",t=>{this.events.emit("session_update",t)}),this.signer.on("session_delete",t=>{this.reset(),this.events.emit("session_delete",t),this.events.emit("disconnect",Zc(Vs({},Gt("USER_DISCONNECTED")),{data:t.topic,name:"USER_DISCONNECTED"}))}),this.signer.on("display_uri",t=>{var e,s;this.rpc.showQrModal&&((e=this.modal)==null||e.closeModal(),(s=this.modal)==null||s.openModal({uri:t})),this.events.emit("display_uri",t)})}switchEthereumChain(t){this.request({method:"wallet_switchEthereumChain",params:[{chainId:t.toString(16)}]})}isCompatibleChainId(t){return typeof t=="string"?t.startsWith(`${this.namespace}:`):!1}formatChainId(t){return`${this.namespace}:${t}`}parseChainId(t){return Number(t.split(":")[1])}setChainIds(t){const e=t.filter(s=>this.isCompatibleChainId(s)).map(s=>this.parseChainId(s));e.length&&(this.chainId=e[0],this.events.emit("chainChanged",Go(this.chainId)),this.persist())}setChainId(t){if(this.isCompatibleChainId(t)){const e=this.parseChainId(t);this.chainId=e,this.switchEthereumChain(e)}}parseAccountId(t){const[e,s,o]=t.split(":");return{chainId:`${e}:${s}`,address:o}}setAccounts(t){this.accounts=t.filter(e=>this.parseChainId(this.parseAccountId(e).chainId)===this.chainId).map(e=>this.parseAccountId(e).address),this.events.emit("accountsChanged",this.accounts)}getRpcConfig(t){var e,s;const o=(e=t==null?void 0:t.chains)!=null?e:[],a=(s=t==null?void 0:t.optionalChains)!=null?s:[],h=o.concat(a);if(!h.length)throw new Error("No chains specified in either `chains` or `optionalChains`");const p=o.length?(t==null?void 0:t.methods)||ua:[],v=o.length?(t==null?void 0:t.events)||la:[],y=(t==null?void 0:t.optionalMethods)||[],M=(t==null?void 0:t.optionalEvents)||[],P=(t==null?void 0:t.rpcMap)||this.buildRpcMap(h,t.projectId),T=(t==null?void 0:t.qrModalOptions)||void 0;return{chains:o==null?void 0:o.map(D=>this.formatChainId(D)),optionalChains:a.map(D=>this.formatChainId(D)),methods:p,events:v,optionalMethods:y,optionalEvents:M,rpcMap:P,showQrModal:!!(t!=null&&t.showQrModal),qrModalOptions:T,projectId:t.projectId,metadata:t.metadata}}buildRpcMap(t,e){const s={};return t.forEach(o=>{s[o]=this.getRpcUrl(o,e)}),s}async initialize(t){if(this.rpc=this.getRpcConfig(t),this.chainId=this.rpc.chains.length?fa(this.rpc.chains):fa(this.rpc.optionalChains),this.signer=await p8.init({projectId:this.rpc.projectId,metadata:this.rpc.metadata,disableProviderPing:t.disableProviderPing,relayUrl:t.relayUrl,storageOptions:t.storageOptions,customStoragePrefix:t.customStoragePrefix,telemetryEnabled:t.telemetryEnabled}),this.registerEventListeners(),await this.loadPersistedSession(),this.rpc.showQrModal){let e;try{const{WalletConnectModal:s}=await Promise.resolve().then(()=>require("./index-B5dlb2GK.cjs")).then(o=>o.index);e=s}catch{throw new Error("To use QR modal, please install @walletconnect/modal package")}if(e)try{this.modal=new e(Vs({projectId:this.rpc.projectId},this.rpc.qrModalOptions))}catch(s){throw this.signer.logger.error(s),new Error("Could not generate WalletConnectModal Instance")}}}loadConnectOpts(t){if(!t)return;const{chains:e,optionalChains:s,rpcMap:o}=t;e&&yi(e)&&(this.rpc.chains=e.map(a=>this.formatChainId(a)),e.forEach(a=>{this.rpc.rpcMap[a]=(o==null?void 0:o[a])||this.getRpcUrl(a)})),s&&yi(s)&&(this.rpc.optionalChains=[],this.rpc.optionalChains=s==null?void 0:s.map(a=>this.formatChainId(a)),s.forEach(a=>{this.rpc.rpcMap[a]=(o==null?void 0:o[a])||this.getRpcUrl(a)}))}getRpcUrl(t,e){var s;return((s=this.rpc.rpcMap)==null?void 0:s[t])||`${v8}?chainId=eip155:${t}&projectId=${e||this.rpc.projectId}`}async loadPersistedSession(){if(this.session)try{const t=await this.signer.client.core.storage.getItem(`${this.STORAGE_KEY}/chainId`),e=this.session.namespaces[`${this.namespace}:${t}`]?this.session.namespaces[`${this.namespace}:${t}`]:this.session.namespaces[this.namespace];this.setChainIds(t?[this.formatChainId(t)]:e==null?void 0:e.accounts),this.setAccounts(e==null?void 0:e.accounts)}catch(t){this.signer.logger.error("Failed to load persisted session, clearing state..."),this.signer.logger.error(t),await this.disconnect().catch(e=>this.signer.logger.warn(e))}}reset(){this.chainId=1,this.accounts=[]}persist(){this.session&&this.signer.client.core.storage.setItem(`${this.STORAGE_KEY}/chainId`,this.chainId)}parseAccounts(t){return typeof t=="string"||t instanceof String?[this.parseAccount(t)]:t.map(e=>this.parseAccount(e))}}const I8=ma;exports.EthereumProvider=I8;exports.OPTIONAL_EVENTS=jd;exports.OPTIONAL_METHODS=Bd;exports.REQUIRED_EVENTS=la;exports.REQUIRED_METHODS=ua;exports.default=ma;