@cowprotocol/cow-sdk 6.1.0 → 6.2.0-RC.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chains/details/bnb.d.ts +2 -0
- package/dist/chains/details/index.d.ts +2 -0
- package/dist/chains/details/lens.d.ts +2 -0
- package/dist/chains/types.d.ts +4 -2
- package/dist/common/consts/contracts.d.ts +2 -5
- package/dist/index-a1f49549.js +29 -0
- package/dist/index-a1f49549.js.map +1 -0
- package/dist/index.js +4 -4
- package/dist/index.js.map +1 -1
- package/dist/index.modern.mjs +1 -1
- package/dist/index.module.js +4 -4
- package/dist/index.module.js.map +1 -1
- package/dist/package.json +6 -3
- package/dist/schemas/trading/QuoterParameters.ts +4 -2
- package/dist/trading/calculateUniqueOrderId.d.ts +2 -2
- package/dist/trading/getEthFlowTransaction.d.ts +5 -5
- package/dist/{utils-f94c0904.js → utils-65f87588.js} +1 -1
- package/dist/{utils-f94c0904.js.map → utils-65f87588.js.map} +1 -1
- package/dist/{utils-ce940a22.js → utils-674a2b12.js} +1 -1
- package/dist/{utils-ce940a22.js.map → utils-674a2b12.js.map} +1 -1
- package/dist/{utils-6e8340a0.js → utils-bb23b910.js} +2 -2
- package/dist/{utils-6e8340a0.js.map → utils-bb23b910.js.map} +1 -1
- package/package.json +6 -3
- package/dist/index-67580d8b.js +0 -29
- package/dist/index-67580d8b.js.map +0 -1
package/dist/index.module.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import"cross-fetch/polyfill";import{RateLimiter as e}from"limiter";import{backOff as t}from"exponential-backoff";import{utils as r,Contract as n,ethers as i,constants as o,BigNumber as s}from"ethers";import{Signer as a,VoidSigner as u}from"@ethersproject/abstract-signer";import{MetadataApi as l,stringifyDeterministic as c}from"@cowprotocol/app-data";import{keccak256 as d,toUtf8Bytes as h,solidityKeccak256 as p,Interface as f,defaultAbiCoder as m,getCreate2Address as y,joinSignature as g,splitSignature as b,arrayify as v,formatBytes32String as A}from"ethers/lib/utils";import w from"deepmerge";import{ORDER_TYPE_FIELDS as T,OrderKind as E,SigningScheme as I,isTypedDataSigner as S,hashTypedData as k,OrderBalance as P}from"@cowprotocol/contracts";import{Planner as C,Contract as x}from"@weiroll/weiroll.js";export{Contract as WeirollContract,Planner as WeirollPlanner}from"@weiroll/weiroll.js";import{gql as N,request as _}from"graphql-request";import{StandardMerkleTree as R}from"@openzeppelin/merkle-tree";var M,O,B,D;!function(e){e.IN_PROGRESS="in_progress",e.EXECUTED="executed",e.EXPIRED="expired",e.REFUND="refund",e.UNKNOWN="unknown"}(M||(M={})),function(e){e.NO_INTERMEDIATE_TOKENS="NO_INTERMEDIATE_TOKENS",e.API_ERROR="API_ERROR",e.INVALID_API_JSON_RESPONSE="INVALID_API_JSON_RESPONSE",e.ONLY_SELL_ORDER_SUPPORTED="ONLY_SELL_ORDER_SUPPORTED",e.TX_BUILD_ERROR="TX_BUILD_ERROR",e.QUOTE_ERROR="QUOTE_ERROR",e.NO_ROUTES="NO_ROUTES",e.INVALID_BRIDGE="INVALID_BRIDGE"}(O||(O={}));class F extends Error{constructor(e,t){super(e),this.context=void 0,this.context=t,this.name="BridgeProviderQuoteError"}}class L extends Error{constructor(e,t){super(e),this.context=void 0,this.context=t,this.name="BridgeProviderError"}}class U extends Error{constructor(e,t){super(e),this.context=void 0,this.context=t,this.name="BridgeOrderParsingError"}}function G(e){return"bridge"in e}function j(e){return!G(e)}function H(e){if(!G(e))throw new Error("Quote result is not of type BridgeQuoteAndPost. Are you sure the sell and buy chains different?")}function q(e){if(!j(e))throw new Error("Quote result is not of type QuoteAndPost. Are you sure the sell and buy chains are the same?")}function V(e){if(!e)return[];const t=JSON.parse(e);return z(t)&&t.metadata.hooks&&t.metadata.hooks.post||[]}function z(e){return"object"==typeof e&&null!==e&&"version"in e&&"metadata"in e}!function(e){e[e.MAINNET=1]="MAINNET",e[e.GNOSIS_CHAIN=100]="GNOSIS_CHAIN",e[e.ARBITRUM_ONE=42161]="ARBITRUM_ONE",e[e.BASE=8453]="BASE",e[e.POLYGON=137]="POLYGON",e[e.AVALANCHE=43114]="AVALANCHE",e[e.SEPOLIA=11155111]="SEPOLIA"}(B||(B={})),function(e){e[e.OPTIMISM=10]="OPTIMISM"}(D||(D={}));class K extends Error{constructor(e,t){super(e),this.error_code=void 0,this.error_code=t}}const W=function(e,{path:r,query:n,method:i,body:o},s,a){try{const u={Accept:"application/json","Content-Type":"application/json"},l=`${e}${r}${n?"?"+n:""}`,c={method:i,body:(()=>{if(o)return"string"==typeof o?o:JSON.stringify(o)})(),headers:u};return Promise.resolve(t(function(){try{return Promise.resolve(s.removeTokens(1)).then(function(){return Promise.resolve(fetch(l,c)).then(function(e){return Promise.resolve(Z(e)).then(function(t){return e.status>=200&&e.status<300?t:Promise.reject(new J(e,t))})})})}catch(e){return Promise.reject(e)}},a))}catch(e){return Promise.reject(e)}};class J extends Error{constructor(e,t){super("string"==typeof t?t:e.statusText),this.response=void 0,this.body=void 0,this.response=e,this.body=t}}const Q=[408,425,429,500,502,503,504],Y={numOfAttempts:10,maxDelay:Infinity,jitter:"none",retry:e=>!(e instanceof J)||Q.includes(e.response.status)},X={tokensPerInterval:5,interval:"second"},Z=function(e){try{let t;const r=function(){if(204!==e.status)return function(r,n){try{var i=function(){const r=e.headers.get("Content-Type");return function(){if(r)return r.toLowerCase().startsWith("application/json")?Promise.resolve(e.json()).then(function(e){return t=1,e}):Promise.resolve(e.text()).then(function(e){return t=1,e})}()}()}catch(e){return n(e)}return i&&i.then?i.then(void 0,n):i}(0,function(e){console.error(e)})}();return Promise.resolve(r&&r.then?r.then(function(e){return t?e:void 0}):t?r:void 0)}catch(e){return Promise.reject(e)}},$="0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",ee="https://raw.githubusercontent.com/cowprotocol/token-lists/main/src/public/images",te={decimals:18,name:"Wrapped Ether",symbol:"WETH",logoUrl:`${ee}/1/0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2/logo.png`},re={[B.MAINNET]:{...te,chainId:B.MAINNET,address:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"},[B.GNOSIS_CHAIN]:{chainId:B.GNOSIS_CHAIN,address:"0xe91D153E0b41518A2Ce8Dd3D7944Fa863463a97d",decimals:18,name:"Wrapped XDAI",symbol:"WXDAI",logoUrl:`${ee}/100/0xe91d153e0b41518a2ce8dd3d7944fa863463a97d/logo.png`},[B.ARBITRUM_ONE]:{...te,chainId:B.ARBITRUM_ONE,address:"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1"},[B.BASE]:{...te,chainId:B.BASE,address:"0x4200000000000000000000000000000000000006"},[B.SEPOLIA]:{...te,chainId:B.SEPOLIA,address:"0xfFf9976782d46CC05630D1f6eBAb18b2324d6B14"},[B.POLYGON]:{chainId:B.POLYGON,address:"0x0d500b1d8e8ef31e21c99d1db9a6444d3adf1270",decimals:18,name:"Wrapped POL",symbol:"WPOL",logoUrl:`${ee}/137/0x0d500b1d8e8ef31e21c99d1db9a6444d3adf1270/logo.png`},[B.AVALANCHE]:{chainId:B.AVALANCHE,address:"0xb31f66aa3c1e785363f0875a1b74e27b85fd66c7",decimals:18,name:"Wrapped AVAX",symbol:"WAVAX",logoUrl:`${ee}/43114/0xb31f66aa3c1e785363f0875a1b74e27b85fd66c7/logo.png`}},ne={address:$,decimals:18,name:"Ether",symbol:"ETH",logoUrl:`${ee}/1/${$}/logo.png`},ie="https://raw.githubusercontent.com/cowprotocol/cow-sdk/refs/heads/main",oe=`${ie}/src/chains`,se=`${oe}/images/mainnet-logo.svg`,ae={id:B.MAINNET,label:"Ethereum",eip155Label:"Ethereum Mainnet",nativeCurrency:{...ne,chainId:B.MAINNET},addressPrefix:"eth",isTestnet:!1,contracts:{ensRegistry:{address:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e"},ensUniversalResolver:{address:"0xce01f8eee7E479C928F8919abD53E553a36CeF67",blockCreated:19258213},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:14353601}},rpcUrls:{default:{http:["https://eth.merkle.io"]}},color:"#62688F",logo:{light:se,dark:se},website:{name:"Ethereum",url:"https://ethereum.org"},docs:{name:"Ethereum Docs",url:"https://ethereum.org/en/developers/docs"},blockExplorer:{name:"Etherscan",url:"https://etherscan.io"}},ue=`${oe}/images/gnosis-logo.svg`,le={id:B.GNOSIS_CHAIN,label:"Gnosis",eip155Label:"Gnosis",nativeCurrency:{...ne,chainId:B.GNOSIS_CHAIN,name:"xDAI",symbol:"xDAI",logoUrl:`${ee}/100/${$}/logo.png`},addressPrefix:"gno",isTestnet:!1,contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:21022491}},rpcUrls:{default:{http:["https://rpc.gnosischain.com"],webSocket:["wss://rpc.gnosischain.com/wss"]}},color:"#07795B",logo:{light:ue,dark:ue},website:{name:"Gnosis Chain",url:"https://www.gnosischain.com"},docs:{name:"Gnosis Chain Docs",url:"https://docs.gnosischain.com"},blockExplorer:{name:"Gnosisscan",url:"https://gnosisscan.io"},bridges:[{name:"Gnosis Chain Bridge",url:"https://bridge.gnosischain.com"}]},ce=`${oe}/images/arbitrum-logo-light.svg`,de=`${oe}/images/arbitrum-logo-dark.svg`,he={id:B.ARBITRUM_ONE,label:"Arbitrum",eip155Label:"Arbitrum One",nativeCurrency:{...ne,chainId:B.ARBITRUM_ONE},addressPrefix:"arb1",isTestnet:!1,contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:7654707}},rpcUrls:{default:{http:["https://arb1.arbitrum.io/rpc"]}},color:"#1B4ADD",logo:{light:ce,dark:de},website:{name:"Arbitrum",url:"https://arbitrum.io"},docs:{name:"Arbitrum Docs",url:"https://docs.arbitrum.io"},blockExplorer:{name:"Arbiscan",url:"https://arbiscan.io"},bridges:[{name:"Arbitrum Bridge",url:"https://bridge.arbitrum.io"}]},pe=`${oe}/images/base-logo.svg`,fe={id:B.BASE,label:"Base",eip155Label:"Base",nativeCurrency:{...ne,chainId:B.BASE},addressPrefix:"base",isTestnet:!1,contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:5022}},rpcUrls:{default:{http:["https://mainnet.base.org"]}},color:"#0052FF",logo:{light:pe,dark:pe},website:{name:"Base",url:"https://base.org"},docs:{name:"Base Docs",url:"https://docs.base.org"},blockExplorer:{name:"Basescan",url:"https://basescan.org"},bridges:[{name:"Superchain Bridges",url:"https://bridge.base.org/deposit"}]},me=`${oe}/images/sepolia-logo.svg`,ye={id:B.SEPOLIA,label:"Sepolia",eip155Label:"Ethereum Sepolia",nativeCurrency:{...ne,chainId:B.SEPOLIA},addressPrefix:"sep",isTestnet:!0,contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:751532},ensRegistry:{address:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e"},ensUniversalResolver:{address:"0xc8Af999e38273D658BE1b921b88A9Ddf005769cC",blockCreated:5317080}},rpcUrls:{default:{http:["https://sepolia.drpc.org"]}},color:"#C12FF2",logo:{light:me,dark:me},website:{name:"Ethereum",url:"https://sepolia.dev"},docs:{name:"Sepolia Docs",url:"https://ethereum.org/en/developers/docs/networks/#sepolia"},blockExplorer:{name:"Etherscan",url:"https://sepolia.etherscan.io"}},ge=`${oe}/images/avax-logo.svg`,be={id:B.AVALANCHE,label:"Avalanche",eip155Label:"Avalanche C-Chain",logo:{light:ge,dark:ge},nativeCurrency:{...ne,chainId:B.AVALANCHE,name:"Avalanche",symbol:"AVAX",logoUrl:ge},addressPrefix:"avax",isTestnet:!1,contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:11907934}},rpcUrls:{default:{http:["https://api.avax.network/ext/bc/C/rpc"]}},color:"#ff3944",website:{name:"Avalanche",url:"https://www.avax.network/"},docs:{name:"Avalanche Docs",url:"https://build.avax.network/docs"},blockExplorer:{name:"Snowscan",url:"https://snowscan.xyz"}},ve=`${oe}/images/optimism-logo.svg`,Ae={id:10,label:"Optimism",eip155Label:"OP Mainnet",logo:{light:ve,dark:ve},nativeCurrency:{...ne,chainId:10},addressPrefix:"op",isTestnet:!1,contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:4286263}},rpcUrls:{default:{http:["https://mainnet.optimism.io"]}},color:"#ff0420",website:{name:"Optimism",url:"https://optimism.io"},docs:{name:"Optimism Docs",url:"https://docs.optimism.io"},blockExplorer:{name:"Etherscan",url:"https://optimistic.etherscan.io"}},we=`${oe}/images/polygon-logo.svg`,Te={id:B.POLYGON,label:"Polygon",eip155Label:"Polygon Mainnet",logo:{light:we,dark:we},nativeCurrency:{...ne,chainId:B.POLYGON,name:"POL",symbol:"POL",logoUrl:we},addressPrefix:"matic",isTestnet:!1,contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:25770160}},rpcUrls:{default:{http:["https://polygon-rpc.com"]}},color:"#8247e5",website:{name:"Polygon",url:"https://polygon.technology"},docs:{name:"Polygon Docs",url:"https://docs.polygon.technology"},blockExplorer:{name:"Polygonscan",url:"https://polygonscan.com"}},Ee={[B.MAINNET]:ae,[B.GNOSIS_CHAIN]:le,[B.ARBITRUM_ONE]:he,[B.BASE]:fe,[B.AVALANCHE]:be,[B.POLYGON]:Te,[B.SEPOLIA]:ye},Ie=Object.values(Ee),Se=Ie.map(e=>e.id),ke={[D.OPTIMISM]:Ae},Pe=Ie.concat(Object.values(ke)),Ce=Pe.map(e=>e.id);function xe(e){return Se.reduce((t,r)=>({...t,[r]:"function"==typeof e?e(r):e}),{})}function Ne(e){return xe(e)}const _e="0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",Re="0x2f55e8b20D0B9FEFA187AA7d00B6Cbe563605bF5",Me="0xfdaFc9d1902f4e0b84f65F49f244b32b31013b74",Oe="1.0.0",Be="1.0.1",De=Be,Fe={[Oe]:"0x00E989b87700514118Fa55326CD1cCE82faebEF6",[Be]:"0x312f92fe5f1710408B20D52A374fa29e099cFA86"},Le={[Oe]:"0x2CFFA8cf11B90C9F437567b86352169dF4009F73",[Be]:"0xa2704cf562ad418bf0453f4b662ebf6a2489ed88"},Ue={[Oe]:"0x60a034608e57601f61037138819003918201601f19168301916001600160401b038311848410176093578084926040948552833981010312608e57604b602060458360a9565b920160a9565b6080527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc556040516102b490816100bd8239608051818181608f01526101720152f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b0382168203608e5756fe60806040526004361015610018575b3661019457610194565b6000803560e01c908163025b22bc1461003b575063f851a4400361000e5761010d565b3461010a5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261010a5773ffffffffffffffffffffffffffffffffffffffff60043581811691828203610106577f0000000000000000000000000000000000000000000000000000000000000000163314600014610101577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8280a280f35b61023d565b8380fd5b80fd5b346101645760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610164576020610146610169565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b600080fd5b333003610101577f000000000000000000000000000000000000000000000000000000000000000090565b60ff7f68df44b1011761f481358c0f49a711192727fb02c377d697bcb0ea8ff8393ac0541615806101ef575b1561023d5760046040517ff92ee8a9000000000000000000000000000000000000000000000000000000008152fd5b507f400ada75000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000006000351614156101c0565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546000808092368280378136915af43d82803e1561027a573d90f35b3d90fdfea2646970667358221220c7c26ff3040b96a28e96d6d27b743972943aeaef81cc821544c5fe1e24f9b17264736f6c63430008190033",[Be]:"0x60a03461009557601f61033d38819003918201601f19168301916001600160401b0383118484101761009957808492604094855283398101031261009557610052602061004b836100ad565b92016100ad565b6080527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5560405161027b90816100c28239608051818181608b01526101750152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036100955756fe60806040526004361015610018575b3661019757610197565b5f3560e01c8063025b22bc146100375763f851a4400361000e57610116565b346101125760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101125760043573ffffffffffffffffffffffffffffffffffffffff81169081810361011257337f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff160361010d577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2005b61023d565b5f80fd5b34610112575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011257602061014e61016c565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b33300361010d577f000000000000000000000000000000000000000000000000000000000000000090565b60ff7f68df44b1011761f481358c0f49a711192727fb02c377d697bcb0ea8ff8393ac0541615806101f0575b1561023d577ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b507f400ada75000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000005f351614156101c3565b5f807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54368280378136915af43d5f803e15610277573d5ff35b3d5ffd"},Ge=Ne("0x9008D19f58AAbD9eD0D60971565AA8510560ab41"),je=Ne("0xC92E8bdf79f0507f65a392b0ab4667716BFE0110"),He=Ne(Re),qe=Ne(Me),Ve="0xba3cb449bd2b4adddbc894d8697f5170800eadec",ze="0x04501b9b1d52e67f6862d157e00d13419d2d6e95",Ke=Ne(Ve),We=Ne(ze),Je=4294967295;function Qe(e){return function(e){const{ethflowData:t}=e;if(!t)return e;const{userValidTo:r}=t,n=e.onchainUser||e.owner,i=_e;return{...e,validTo:r,owner:n,sellToken:i}}(function(e){const{executedFeeAmount:t,executedFee:r}=e,n=BigInt(t||"0"),i=BigInt(r||"0"),o=String(n+i);return{...e,totalFee:o}}(e))}let Ye=!1;function Xe(e){Ye&&console.log(`[COW TRADING SDK] ${e}`)}function Ze(e){Ye=e}const $e=["prod","staging"],et={env:"prod",chainId:B.MAINNET},tt="https://gnosis.mypinata.cloud/ipfs",rt="https://api.pinata.cloud",nt=(e,t)=>"bigint"==typeof t||"object"==typeof t&&null!==t&&"_isBigNumber"in t?t.toString():t,it={[B.MAINNET]:"https://api.cow.fi/mainnet",[B.GNOSIS_CHAIN]:"https://api.cow.fi/xdai",[B.ARBITRUM_ONE]:"https://api.cow.fi/arbitrum_one",[B.BASE]:"https://api.cow.fi/base",[B.SEPOLIA]:"https://api.cow.fi/sepolia",[B.POLYGON]:"https://api.cow.fi/polygon",[B.AVALANCHE]:"https://api.cow.fi/avalanche"},ot={[B.MAINNET]:"https://barn.api.cow.fi/mainnet",[B.GNOSIS_CHAIN]:"https://barn.api.cow.fi/xdai",[B.ARBITRUM_ONE]:"https://barn.api.cow.fi/arbitrum_one",[B.BASE]:"https://barn.api.cow.fi/base",[B.SEPOLIA]:"https://barn.api.cow.fi/sepolia",[B.POLYGON]:"https://barn.api.cow.fi/polygon",[B.AVALANCHE]:"https://barn.api.cow.fi/avalanche"};function st(e){return Object.keys(e).reduce((t,r)=>{const n=e[r];return void 0!==n&&(t[r]=n),t},{})}class at{constructor(t={}){this.context=void 0,this.rateLimiter=void 0,this.context={...et,...t},this.rateLimiter=new e(t.limiterOpts||X)}getVersion(e={}){return this.fetch({path:"/api/v1/version",method:"GET"},e)}getTrades(e,t={}){if(e.owner&&e.orderUid)return Promise.reject(new K("Cannot specify both owner and orderId"));if(!e.owner&&!e.orderUid)return Promise.reject(new K("Must specify either owner or orderId"));const r=new URLSearchParams(st(e));return this.fetch({path:"/api/v1/trades",method:"GET",query:r},t)}getOrders({owner:e,offset:t=0,limit:r=1e3},n={}){const i=new URLSearchParams(st({offset:t.toString(),limit:r.toString()}));return this.fetch({path:`/api/v1/account/${e}/orders`,method:"GET",query:i},n).then(e=>e.map(Qe))}getTxOrders(e,t={}){return this.fetch({path:`/api/v1/transactions/${e}/orders`,method:"GET"},t).then(e=>e.map(Qe))}getOrder(e,t={}){return this.fetch({path:`/api/v1/orders/${e}`,method:"GET"},t).then(e=>Qe(e))}getOrderCompetitionStatus(e,t={}){return this.fetch({path:`/api/v1/orders/${e}/status`,method:"GET"},t)}getOrderMultiEnv(e,t={}){const{env:r}=this.getContextWithOverride(t),n=$e.filter(e=>e!==r);let i=0;const o=r=>{const s=n[i];return r instanceof J&&404===r.response.status&&s?(i++,this.getOrder(e,{...t,env:s}).catch(o)):Promise.reject(r)};return this.getOrder(e,{...t,env:r}).catch(o)}getQuote(e,t={}){return this.fetch({path:"/api/v1/quote",method:"POST",body:e},t)}sendSignedOrderCancellations(e,t={}){return this.fetch({path:"/api/v1/orders",method:"DELETE",body:e},t)}sendOrder(e,t={}){return this.fetch({path:"/api/v1/orders",method:"POST",body:e},t)}getNativePrice(e,t={}){return this.fetch({path:`/api/v1/token/${e}/native_price`,method:"GET"},t)}getTotalSurplus(e,t={}){return this.fetch({path:`/api/v1/users/${e}/total_surplus`,method:"GET"},t)}getAppData(e,t={}){return this.fetch({path:`/api/v1/app_data/${e}`,method:"GET"},t)}uploadAppData(e,t,r={}){return this.fetch({path:`/api/v1/app_data/${e}`,method:"PUT",body:{fullAppData:t}},r)}getSolverCompetition(e,t={}){return this.fetch({path:`/api/v1/solver_competition${"string"==typeof e?"/by_tx_hash":""}/${e}`,method:"GET"},t)}getOrderLink(e,t){const{chainId:r,env:n}=this.getContextWithOverride(t);return this.getApiBaseUrls(n)[r]+`/api/v1/orders/${e}`}getContextWithOverride(e={}){return{...this.context,...e}}getApiBaseUrls(e){return this.context.baseUrls?this.context.baseUrls:"prod"===e?it:ot}fetch(t,r={}){const{chainId:n,env:i,backoffOpts:o}=this.getContextWithOverride(r),s=this.getApiBaseUrls(i)[n],a=o||Y,u=r.limiterOpts?new e(r.limiterOpts):this.rateLimiter;return Xe(`Fetching OrderBook API: ${s}${t.path}. Params: ${JSON.stringify(t,nt)}`),W(s,t,u,a)}}var ut,lt,ct,dt,ht,pt,ft,mt,yt,gt,bt,vt,At,wt,Tt;!function(e){e.ERC20="erc20",e.INTERNAL="internal"}(ut||(ut={})),function(e){var t;(t=e.type||(e.type={})).OPEN="open",t.SCHEDULED="scheduled",t.ACTIVE="active",t.SOLVED="solved",t.EXECUTING="executing",t.TRADED="traded",t.CANCELLED="cancelled"}(lt||(lt={})),function(e){e.EIP712="eip712",e.ETHSIGN="ethsign"}(ct||(ct={})),function(e){var t;(t=e.placementError||(e.placementError={})).QUOTE_NOT_FOUND="QuoteNotFound",t.VALID_TO_TOO_FAR_IN_FUTURE="ValidToTooFarInFuture",t.PRE_VALIDATION_ERROR="PreValidationError"}(dt||(dt={})),function(e){var t;(t=e.errorType||(e.errorType={})).INVALID_SIGNATURE="InvalidSignature",t.WRONG_OWNER="WrongOwner",t.ORDER_NOT_FOUND="OrderNotFound",t.ALREADY_CANCELLED="AlreadyCancelled",t.ORDER_FULLY_EXECUTED="OrderFullyExecuted",t.ORDER_EXPIRED="OrderExpired",t.ON_CHAIN_ORDER="OnChainOrder"}(ht||(ht={})),function(e){e.MARKET="market",e.LIMIT="limit",e.LIQUIDITY="liquidity"}(pt||(pt={})),function(e){e.BUY="buy",e.SELL="sell"}(ft||(ft={})),function(e){var t;(t=e.errorType||(e.errorType={})).DUPLICATED_ORDER="DuplicatedOrder",t.QUOTE_NOT_FOUND="QuoteNotFound",t.QUOTE_NOT_VERIFIED="QuoteNotVerified",t.INVALID_QUOTE="InvalidQuote",t.MISSING_FROM="MissingFrom",t.WRONG_OWNER="WrongOwner",t.INVALID_EIP1271SIGNATURE="InvalidEip1271Signature",t.INSUFFICIENT_BALANCE="InsufficientBalance",t.INSUFFICIENT_ALLOWANCE="InsufficientAllowance",t.INVALID_SIGNATURE="InvalidSignature",t.SELL_AMOUNT_OVERFLOW="SellAmountOverflow",t.TRANSFER_SIMULATION_FAILED="TransferSimulationFailed",t.ZERO_AMOUNT="ZeroAmount",t.INCOMPATIBLE_SIGNING_SCHEME="IncompatibleSigningScheme",t.TOO_MANY_LIMIT_ORDERS="TooManyLimitOrders",t.TOO_MUCH_GAS="TooMuchGas",t.UNSUPPORTED_BUY_TOKEN_DESTINATION="UnsupportedBuyTokenDestination",t.UNSUPPORTED_SELL_TOKEN_SOURCE="UnsupportedSellTokenSource",t.UNSUPPORTED_ORDER_TYPE="UnsupportedOrderType",t.INSUFFICIENT_VALID_TO="InsufficientValidTo",t.EXCESSIVE_VALID_TO="ExcessiveValidTo",t.INVALID_NATIVE_SELL_TOKEN="InvalidNativeSellToken",t.SAME_BUY_AND_SELL_TOKEN="SameBuyAndSellToken",t.UNSUPPORTED_TOKEN="UnsupportedToken",t.INVALID_APP_DATA="InvalidAppData",t.APP_DATA_HASH_MISMATCH="AppDataHashMismatch",t.APPDATA_FROM_MISMATCH="AppdataFromMismatch"}(mt||(mt={})),function(e){e.BUY="buy"}(yt||(yt={})),function(e){e.SELL="sell"}(gt||(gt={})),function(e){e.PRESIGNATURE_PENDING="presignaturePending",e.OPEN="open",e.FULFILLED="fulfilled",e.CANCELLED="cancelled",e.EXPIRED="expired"}(bt||(bt={})),function(e){var t;(t=e.errorType||(e.errorType={})).QUOTE_NOT_VERIFIED="QuoteNotVerified",t.UNSUPPORTED_TOKEN="UnsupportedToken",t.ZERO_AMOUNT="ZeroAmount",t.UNSUPPORTED_ORDER_TYPE="UnsupportedOrderType"}(vt||(vt={})),function(e){e.FAST="fast",e.OPTIMAL="optimal",e.VERIFIED="verified"}(At||(At={})),function(e){e.ERC20="erc20",e.INTERNAL="internal",e.EXTERNAL="external"}(wt||(wt={})),function(e){e.EIP712="eip712",e.ETHSIGN="ethsign",e.PRESIGN="presign",e.EIP1271="eip1271"}(Tt||(Tt={}));const Et=BigInt(1e4);function It(e){const{sellDecimals:t,buyDecimals:r,orderParams:n}=e,{sellAmountAfterNetworkCosts:i,buyAmountAfterNetworkCosts:o,buyAmountBeforeNetworkCosts:s,isSell:a,networkCostAmount:u,quotePrice:l,sellAmountBeforeNetworkCosts:c}=St({sellDecimals:t,buyDecimals:r,orderParams:n});return{isSell:a,quotePrice:l,sellAmountAfterNetworkCosts:i.big,buyAmountAfterNetworkCosts:o.big,buyAmountBeforeNetworkCosts:s.big,networkCostAmount:u.big,sellAmountBeforeNetworkCosts:c.big}}function St(e){const{sellDecimals:t,buyDecimals:r,orderParams:n}=e,i=n.kind===ft.SELL,o=Pt(n.feeAmount,t),s=Pt(n.sellAmount,t),a=Pt(n.buyAmount,r),u=a.num/s.num,l=Pt(s.big+o.big,t);return{isSell:i,quotePrice:u,networkCostAmount:o,sellAmountBeforeNetworkCosts:s,buyAmountAfterNetworkCosts:a,sellAmountAfterNetworkCosts:l,buyAmountBeforeNetworkCosts:Pt(u*l.num,r)}}function kt(e){var t;const{orderParams:r,sellDecimals:n,buyDecimals:i,slippagePercentBps:o}=e,s=null!==(t=e.partnerFeeBps)&&void 0!==t?t:0,{isSell:a,networkCostAmount:u,sellAmountBeforeNetworkCosts:l,buyAmountAfterNetworkCosts:c,sellAmountAfterNetworkCosts:d,buyAmountBeforeNetworkCosts:h,quotePrice:p}=St({sellDecimals:n,buyDecimals:i,orderParams:r}),{afterPartnerFees:f,partnerFeeAmount:m}=function(e){const{sellAmountAfterNetworkCosts:t,buyAmountAfterNetworkCosts:r,buyAmountBeforeNetworkCosts:n,sellAmountBeforeNetworkCosts:i,isSell:o,partnerFeeBps:s}=e,a=s>0?(o?n.big:i.big)*BigInt(s)/Et:BigInt(0);return{partnerFeeAmount:a,afterPartnerFees:o?{sellAmount:t.big,buyAmount:r.big-a}:{sellAmount:t.big+a,buyAmount:r.big}}}({sellAmountAfterNetworkCosts:d,buyAmountAfterNetworkCosts:c,buyAmountBeforeNetworkCosts:h,sellAmountBeforeNetworkCosts:l,isSell:a,partnerFeeBps:s}),{afterSlippage:y}=function(e){const{afterPartnerFees:t,isSell:r,slippagePercentBps:n}=e,i=e=>e*BigInt(n)/Et;return{afterSlippage:r?{sellAmount:t.sellAmount,buyAmount:t.buyAmount-i(t.buyAmount)}:{sellAmount:t.sellAmount+i(t.sellAmount),buyAmount:t.buyAmount}}}({afterPartnerFees:f,isSell:a,slippagePercentBps:o});return{isSell:a,costs:{networkFee:{amountInSellCurrency:u.big,amountInBuyCurrency:Pt(p*u.num,i).big},partnerFee:{amount:m,bps:s}},beforeNetworkCosts:{sellAmount:l.big,buyAmount:h.big},afterNetworkCosts:{sellAmount:d.big,buyAmount:c.big},afterPartnerFees:f,afterSlippage:y}}function Pt(e,t){if("number"==typeof e){const r=e*10**t,n=r.toFixed();return{big:BigInt(n.includes("e")?r:n),num:e}}const r=BigInt(e);return{big:r,num:Number(r)/10**t}}const Ct={[ct.EIP712]:Tt.EIP712,[ct.ETHSIGN]:Tt.ETHSIGN},xt=BigInt(15e4),Nt=()=>import("./utils-f94c0904.js");class _t{static signOrder(e,t,r){try{return Promise.resolve(Nt()).then(function({signOrder:n}){return n(e,t,r)})}catch(e){return Promise.reject(e)}}static signOrderCancellation(e,t,r){try{return Promise.resolve(Nt()).then(function({signOrderCancellation:n}){return n(e,t,r)})}catch(e){return Promise.reject(e)}}static signOrderCancellations(e,t,r){try{return Promise.resolve(Nt()).then(function({signOrderCancellations:n}){return n(e,t,r)})}catch(e){return Promise.reject(e)}}static getDomain(e){try{return Promise.resolve(Nt()).then(function({getDomain:t}){return t(e)})}catch(e){return Promise.reject(e)}}static generateOrderId(e,t,r){try{return Promise.resolve(Nt()).then(function({generateOrderId:n}){return n(e,t,r)})}catch(e){return Promise.reject(e)}}static getDomainSeparator(e){try{return Promise.resolve(Nt()).then(function({getDomain:t}){return Promise.resolve(import("ethers/lib/utils")).then(function({_TypedDataEncoder:r}){return r.hashDomain(t(e))})})}catch(e){return Promise.reject(e)}}static getEIP712Types(){return{Order:[{name:"sellToken",type:"address"},{name:"buyToken",type:"address"},{name:"receiver",type:"address"},{name:"sellAmount",type:"uint256"},{name:"buyAmount",type:"uint256"},{name:"validTo",type:"uint32"},{name:"appData",type:"bytes32"},{name:"feeAmount",type:"uint256"},{name:"kind",type:"string"},{name:"partiallyFillable",type:"bool"},{name:"sellTokenBalance",type:"string"},{name:"buyTokenBalance",type:"string"}]}}}function Rt(e){if(e){if("volumeBps"in e)return e.volumeBps;if(Array.isArray(e))for(const t of e)if("volumeBps"in t)return t.volumeBps}}function Mt(e){return Ot(e)?Ee[e]:Bt(e)?ke[e]:void 0}function Ot(e){return e in Ee}function Bt(e){return e in ke}function Dt(e){return Ot(e)||Bt(e)}const Ft=10n**6n,Lt=50,Ut={[B.MAINNET]:200,[B.ARBITRUM_ONE]:50,[B.BASE]:50,[B.GNOSIS_CHAIN]:50,[B.SEPOLIA]:50,[B.POLYGON]:50,[B.AVALANCHE]:50};function Gt(e,t){return t?Ut[e]:Lt}function jt(e){return{...e,sellTokenBalance:e.sellTokenBalance,buyTokenBalance:e.buyTokenBalance}}const Ht=1800;function qt({chainId:e,from:t,networkCostsAmount:r="0",isEthFlow:n},i,o){const{sellAmount:s,buyAmount:a,sellToken:u,sellTokenDecimals:l,buyToken:c,buyTokenDecimals:d,kind:h,partiallyFillable:p=!1,slippageBps:f=Gt(e,n),partnerFee:m,validFor:y=Ht}=i,g=i.receiver||t,b=i.validTo||Number(function(e){return BigInt(Math.floor(Date.now()/1e3)+e)}(y)),v={sellToken:u,buyToken:c,sellAmount:s,buyAmount:a,receiver:g,validTo:b,kind:h,feeAmount:r,appData:o,partiallyFillable:p},{afterSlippage:A}=kt({orderParams:v,slippagePercentBps:f,partnerFeeBps:Rt(m),sellDecimals:l,buyDecimals:d});return{sellToken:u,buyToken:c,sellAmount:A.sellAmount.toString(),buyAmount:A.buyAmount.toString(),validTo:b,kind:h,partiallyFillable:p,appData:o,receiver:g,feeAmount:"0",sellTokenBalance:wt.ERC20,buyTokenBalance:ut.ERC20}}const Vt=function(e,t,r,n){try{return Promise.resolve(_t.generateOrderId(e,{...jt(t),validTo:Je,sellToken:re[e].address},{owner:"staging"===n?ze:Ve})).then(function({orderDigest:n,orderId:i}){let o;function s(n){if(n){console.error("ETH FLOW","[calculateUniqueOrderId] ❌ Collision detected: "+i,{sellAmount:t.sellAmount,fee:t.feeAmount});const n=Vt(e,function(e){const t=BigInt(e.buyAmount);return{...e,buyAmount:(t-BigInt(1)).toString()}}(t),r);return o=1,n}return i}return r?Promise.resolve(r(i,n)).then(s):s(r)})}catch(e){return Promise.reject(e)}},zt=[{inputs:[{internalType:"address",name:"impl",type:"address"},{internalType:"bytes32",name:"bName",type:"bytes32"},{internalType:"bytes32",name:"bNode",type:"bytes32"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"InvalidSignature",type:"error"},{inputs:[],name:"NonceAlreadyUsed",type:"error"},{inputs:[],name:"SettingEnsRecordsFailed",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"user",type:"address"},{indexed:!1,internalType:"address",name:"shed",type:"address"}],name:"COWShedBuilt",type:"event"},{inputs:[{internalType:"bytes32",name:"node",type:"bytes32"}],name:"addr",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"baseName",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"baseNode",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"uint256",name:"value",type:"uint256"},{internalType:"bytes",name:"callData",type:"bytes"},{internalType:"bool",name:"allowFailure",type:"bool"},{internalType:"bool",name:"isDelegateCall",type:"bool"}],internalType:"struct Call[]",name:"calls",type:"tuple[]"},{internalType:"bytes32",name:"nonce",type:"bytes32"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"address",name:"user",type:"address"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"executeHooks",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"forwardResolutionNodeToAddress",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"implementation",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"user",type:"address"}],name:"initializeEns",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"bool",name:"withEns",type:"bool"}],name:"initializeProxy",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"node",type:"bytes32"}],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"ownerOf",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"who",type:"address"}],name:"proxyOf",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"reverseResolutionNodeToAddress",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"pure",type:"function"}];class Kt{static createInterface(){return new r.Interface(zt)}static connect(e,t){return new n(e,zt,t)}}Kt.abi=zt;const Wt=[{inputs:[{internalType:"address",name:"_settlement",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"InterfaceNotSupported",type:"error"},{inputs:[],name:"InvalidHandler",type:"error"},{inputs:[],name:"ProofNotAuthed",type:"error"},{inputs:[],name:"SingleOrderNotAuthed",type:"error"},{inputs:[],name:"SwapGuardRestricted",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{components:[{internalType:"contract IConditionalOrder",name:"handler",type:"address"},{internalType:"bytes32",name:"salt",type:"bytes32"},{internalType:"bytes",name:"staticInput",type:"bytes"}],indexed:!1,internalType:"struct IConditionalOrder.ConditionalOrderParams",name:"params",type:"tuple"}],name:"ConditionalOrderCreated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!1,internalType:"bytes32",name:"root",type:"bytes32"},{components:[{internalType:"uint256",name:"location",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],indexed:!1,internalType:"struct ComposableCoW.Proof",name:"proof",type:"tuple"}],name:"MerkleRootSet",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!1,internalType:"contract ISwapGuard",name:"swapGuard",type:"address"}],name:"SwapGuardSet",type:"event"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"bytes32",name:"",type:"bytes32"}],name:"cabinet",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"contract IConditionalOrder",name:"handler",type:"address"},{internalType:"bytes32",name:"salt",type:"bytes32"},{internalType:"bytes",name:"staticInput",type:"bytes"}],internalType:"struct IConditionalOrder.ConditionalOrderParams",name:"params",type:"tuple"},{internalType:"bool",name:"dispatch",type:"bool"}],name:"create",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"contract IConditionalOrder",name:"handler",type:"address"},{internalType:"bytes32",name:"salt",type:"bytes32"},{internalType:"bytes",name:"staticInput",type:"bytes"}],internalType:"struct IConditionalOrder.ConditionalOrderParams",name:"params",type:"tuple"},{internalType:"contract IValueFactory",name:"factory",type:"address"},{internalType:"bytes",name:"data",type:"bytes"},{internalType:"bool",name:"dispatch",type:"bool"}],name:"createWithContext",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"domainSeparator",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{components:[{internalType:"contract IConditionalOrder",name:"handler",type:"address"},{internalType:"bytes32",name:"salt",type:"bytes32"},{internalType:"bytes",name:"staticInput",type:"bytes"}],internalType:"struct IConditionalOrder.ConditionalOrderParams",name:"params",type:"tuple"},{internalType:"bytes",name:"offchainInput",type:"bytes"},{internalType:"bytes32[]",name:"proof",type:"bytes32[]"}],name:"getTradeableOrderWithSignature",outputs:[{components:[{internalType:"contract IERC20",name:"sellToken",type:"address"},{internalType:"contract IERC20",name:"buyToken",type:"address"},{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256",name:"sellAmount",type:"uint256"},{internalType:"uint256",name:"buyAmount",type:"uint256"},{internalType:"uint32",name:"validTo",type:"uint32"},{internalType:"bytes32",name:"appData",type:"bytes32"},{internalType:"uint256",name:"feeAmount",type:"uint256"},{internalType:"bytes32",name:"kind",type:"bytes32"},{internalType:"bool",name:"partiallyFillable",type:"bool"},{internalType:"bytes32",name:"sellTokenBalance",type:"bytes32"},{internalType:"bytes32",name:"buyTokenBalance",type:"bytes32"}],internalType:"struct GPv2Order.Data",name:"order",type:"tuple"},{internalType:"bytes",name:"signature",type:"bytes"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"contract IConditionalOrder",name:"handler",type:"address"},{internalType:"bytes32",name:"salt",type:"bytes32"},{internalType:"bytes",name:"staticInput",type:"bytes"}],internalType:"struct IConditionalOrder.ConditionalOrderParams",name:"params",type:"tuple"}],name:"hash",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"contract Safe",name:"safe",type:"address"},{internalType:"address",name:"sender",type:"address"},{internalType:"bytes32",name:"_hash",type:"bytes32"},{internalType:"bytes32",name:"_domainSeparator",type:"bytes32"},{internalType:"bytes32",name:"",type:"bytes32"},{internalType:"bytes",name:"encodeData",type:"bytes"},{internalType:"bytes",name:"payload",type:"bytes"}],name:"isValidSafeSignature",outputs:[{internalType:"bytes4",name:"magic",type:"bytes4"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"singleOrderHash",type:"bytes32"}],name:"remove",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"roots",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"root",type:"bytes32"},{components:[{internalType:"uint256",name:"location",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],internalType:"struct ComposableCoW.Proof",name:"proof",type:"tuple"}],name:"setRoot",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"root",type:"bytes32"},{components:[{internalType:"uint256",name:"location",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],internalType:"struct ComposableCoW.Proof",name:"proof",type:"tuple"},{internalType:"contract IValueFactory",name:"factory",type:"address"},{internalType:"bytes",name:"data",type:"bytes"}],name:"setRootWithContext",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract ISwapGuard",name:"swapGuard",type:"address"}],name:"setSwapGuard",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"bytes32",name:"",type:"bytes32"}],name:"singleOrders",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"swapGuards",outputs:[{internalType:"contract ISwapGuard",name:"",type:"address"}],stateMutability:"view",type:"function"}];class Jt{static createInterface(){return new r.Interface(Wt)}static connect(e,t){return new n(e,Wt,t)}}Jt.abi=Wt;const Qt=[{inputs:[{components:[{internalType:"contract IERC20",name:"buyToken",type:"address"},{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256",name:"sellAmount",type:"uint256"},{internalType:"uint256",name:"buyAmount",type:"uint256"},{internalType:"bytes32",name:"appData",type:"bytes32"},{internalType:"uint256",name:"feeAmount",type:"uint256"},{internalType:"uint32",name:"validTo",type:"uint32"},{internalType:"bool",name:"partiallyFillable",type:"bool"},{internalType:"int64",name:"quoteId",type:"int64"}],internalType:"struct EthFlowOrder.Data",name:"order",type:"tuple"}],name:"createOrder",outputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"contract IERC20",name:"buyToken",type:"address"},{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256",name:"sellAmount",type:"uint256"},{internalType:"uint256",name:"buyAmount",type:"uint256"},{internalType:"bytes32",name:"appData",type:"bytes32"},{internalType:"uint256",name:"feeAmount",type:"uint256"},{internalType:"uint32",name:"validTo",type:"uint32"},{internalType:"bool",name:"partiallyFillable",type:"bool"},{internalType:"int64",name:"quoteId",type:"int64"}],internalType:"struct EthFlowOrder.Data",name:"order",type:"tuple"}],name:"invalidateOrder",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"orders",outputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"uint32",name:"validTo",type:"uint32"}],stateMutability:"view",type:"function"}];class Yt{static createInterface(){return new r.Interface(Qt)}static connect(e,t){return new n(e,Qt,t)}}Yt.abi=Qt;const Xt=[{anonymous:!1,inputs:[{indexed:!0,internalType:"contract Safe",name:"safe",type:"address"},{indexed:!1,internalType:"bytes32",name:"domainSeparator",type:"bytes32"},{indexed:!1,internalType:"contract ISafeSignatureVerifier",name:"verifier",type:"address"}],name:"AddedDomainVerifier",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"contract Safe",name:"safe",type:"address"},{indexed:!1,internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"AddedInterface",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"contract Safe",name:"safe",type:"address"},{indexed:!1,internalType:"bytes4",name:"selector",type:"bytes4"},{indexed:!1,internalType:"bytes32",name:"method",type:"bytes32"}],name:"AddedSafeMethod",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"contract Safe",name:"safe",type:"address"},{indexed:!1,internalType:"bytes32",name:"domainSeparator",type:"bytes32"},{indexed:!1,internalType:"contract ISafeSignatureVerifier",name:"oldVerifier",type:"address"},{indexed:!1,internalType:"contract ISafeSignatureVerifier",name:"newVerifier",type:"address"}],name:"ChangedDomainVerifier",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"contract Safe",name:"safe",type:"address"},{indexed:!1,internalType:"bytes4",name:"selector",type:"bytes4"},{indexed:!1,internalType:"bytes32",name:"oldMethod",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"newMethod",type:"bytes32"}],name:"ChangedSafeMethod",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"contract Safe",name:"safe",type:"address"},{indexed:!1,internalType:"bytes32",name:"domainSeparator",type:"bytes32"}],name:"RemovedDomainVerifier",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"contract Safe",name:"safe",type:"address"},{indexed:!1,internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"RemovedInterface",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"contract Safe",name:"safe",type:"address"},{indexed:!1,internalType:"bytes4",name:"selector",type:"bytes4"}],name:"RemovedSafeMethod",type:"event"},{stateMutability:"nonpayable",type:"fallback"},{inputs:[{internalType:"contract Safe",name:"",type:"address"},{internalType:"bytes32",name:"",type:"bytes32"}],name:"domainVerifiers",outputs:[{internalType:"contract ISafeSignatureVerifier",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"_hash",type:"bytes32"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"isValidSignature",outputs:[{internalType:"bytes4",name:"magic",type:"bytes4"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"},{internalType:"uint256[]",name:"",type:"uint256[]"},{internalType:"uint256[]",name:"",type:"uint256[]"},{internalType:"bytes",name:"",type:"bytes"}],name:"onERC1155BatchReceived",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"bytes",name:"",type:"bytes"}],name:"onERC1155Received",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"bytes",name:"",type:"bytes"}],name:"onERC721Received",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"contract Safe",name:"",type:"address"},{internalType:"bytes4",name:"",type:"bytes4"}],name:"safeInterfaces",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"contract Safe",name:"",type:"address"},{internalType:"bytes4",name:"",type:"bytes4"}],name:"safeMethods",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"domainSeparator",type:"bytes32"},{internalType:"contract ISafeSignatureVerifier",name:"newVerifier",type:"address"}],name:"setDomainVerifier",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"selector",type:"bytes4"},{internalType:"bytes32",name:"newMethod",type:"bytes32"}],name:"setSafeMethod",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"},{internalType:"bool",name:"supported",type:"bool"}],name:"setSupportedInterface",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"_interfaceId",type:"bytes4"},{internalType:"bytes32[]",name:"handlerWithSelectors",type:"bytes32[]"}],name:"setSupportedInterfaceBatch",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"}];class Zt{static createInterface(){return new r.Interface(Xt)}static connect(e,t){return new n(e,Xt,t)}}Zt.abi=Xt;const $t=[{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!1,internalType:"contract IERC20",name:"sellToken",type:"address"},{indexed:!1,internalType:"contract IERC20",name:"buyToken",type:"address"},{indexed:!1,internalType:"uint256",name:"sellAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"buyAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"feeAmount",type:"uint256"},{indexed:!1,internalType:"bytes",name:"orderUid",type:"bytes"}],name:"Trade",type:"event"},{inputs:[{internalType:"bytes",name:"orderUid",type:"bytes"},{internalType:"bool",name:"signed",type:"bool"}],name:"setPreSignature",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"orderUid",type:"bytes"}],name:"invalidateOrder",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"domainSeparator",outputs:[{name:"",type:"bytes32"}],stateMutability:"nonpayable",type:"function"}];class er{static createInterface(){return new r.Interface($t)}static connect(e,t){return new n(e,$t,t)}}function tr(e,t){return{...e,quoteId:t.id,sellAmount:t.quote.sellAmount,buyAmount:t.quote.buyAmount}}function rr(e){return e.sellToken.toLowerCase()===_e.toLowerCase()}function nr(e){return e+e*BigInt(20)/BigInt(100)}function ir(e,t){const{costs:{networkFee:r,partnerFee:n}}=e;function i(e){return{sellAmount:t(e.sellAmount),buyAmount:t(e.buyAmount)}}return{...e,costs:{...e.costs,networkFee:{...r,amountInSellCurrency:t(r.amountInSellCurrency),amountInBuyCurrency:t(r.amountInBuyCurrency)},partnerFee:{...n,amount:t(n.amount)}},beforeNetworkCosts:i(e.beforeNetworkCosts),afterNetworkCosts:i(e.afterNetworkCosts),afterPartnerFees:i(e.afterPartnerFees),afterSlippage:i(e.afterSlippage)}}function or({quoteParameters:e,sellToken:t}){return{...e,sellToken:t}}function sr(e,t){return{...t,sellToken:re[e].address}}er.abi=$t;const ar=function(e,t,r,n,i={}){try{const{networkCostsAmount:o="0",checkEthFlowOrderExists:s}=i;return Promise.resolve(e.getAddress()).then(function(i){var a;const u=null!==(a=r.slippageBps)&&void 0!==a?a:Gt(n,!0),l={...sr(n,r),slippageBps:u},{quoteId:c}=l,d=function(e,t){return Yt.connect("staging"===t?ze:Ve,e)}(e,l.env),h=qt({chainId:n,isEthFlow:!0,from:i,networkCostsAmount:o},l,t);return Promise.resolve(Vt(n,h,s,l.env)).then(function(e){const r={buyToken:h.buyToken,receiver:h.receiver,sellAmount:h.sellAmount,buyAmount:h.buyAmount,feeAmount:h.feeAmount,partiallyFillable:h.partiallyFillable,quoteId:c,appData:t,validTo:h.validTo.toString()};return Promise.resolve(d.estimateGas.createOrder(r,{value:h.sellAmount}).then(e=>BigInt(e.toHexString())).catch(e=>(console.error(e),xt))).then(function(t){const n=d.interface.encodeFunctionData("createOrder",[r]);return{orderId:e,orderToSign:h,transaction:{data:n,gasLimit:"0x"+nr(t).toString(16),to:d.address,value:"0x"+BigInt(h.sellAmount).toString(16)}}})})})}catch(e){return Promise.reject(e)}},ur=function(e,t,r,n,i={}){try{const{appDataKeccak256:o,fullAppData:s}=r;return Promise.resolve(ar(t,o,n,e.context.chainId,i)).then(function({orderId:r,transaction:n,orderToSign:i}){return Xe("Uploading app-data"),Promise.resolve(e.uploadAppData(o,s)).then(function(){return Xe("Sending on-chain order transaction"),Promise.resolve(t.sendTransaction(n)).then(function(e){return Xe(`On-chain order transaction sent, txHash: ${e.hash}, order: ${r}`),{txHash:e.hash,orderId:r,orderToSign:i,signature:"",signingScheme:Tt.EIP1271}})})})}catch(e){return Promise.reject(e)}},lr=function(e,t,r,n,i={}){try{function o(i){const o=qt({chainId:p,from:i,networkCostsAmount:s,isEthFlow:u},n,r.appDataKeccak256);return Xe("Signing order..."),Promise.resolve(function(){try{return a===Tt.PRESIGN?Promise.resolve({signature:i,signingScheme:Tt.PRESIGN}):Promise.resolve(_t.signOrder(o,p,t)).then(function(e){return{signature:e.signature,signingScheme:Ct[e.signingScheme]}})}catch(e){return Promise.reject(e)}}()).then(function({signature:t,signingScheme:r}){const n={...o,from:i,signature:t,signingScheme:r,quoteId:l,appData:h,appDataHash:d};return Xe("Posting order..."),Promise.resolve(e.sendOrder(n)).then(function(e){return Xe(`Order created, id: ${e}`),{orderId:e,signature:t,signingScheme:r,orderToSign:o}})})}const{networkCostsAmount:s="0",signingScheme:a=Tt.EIP712}=i,u=rr(n);if(u){const f=n.quoteId;if("number"==typeof f)return Promise.resolve(ur(e,t,r,{...n,quoteId:f},i));throw new Error("quoteId is required for EthFlow orders")}const{quoteId:l=null,owner:c}=n,{appDataKeccak256:d,fullAppData:h}=r,p=e.context.chainId;return Promise.resolve(c?o(c):Promise.resolve(t.getAddress()).then(o))}catch(m){return Promise.reject(m)}};var cr="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function dr(e){var t={exports:{}};return e(t,t.exports),t.exports}var hr={__proto__:null,default:{}},pr=dr(function(e){!function(e,t){function r(e,t){if(!e)throw new Error(t||"Assertion failed")}function n(e,t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}function i(e,t,r){if(i.isBN(e))return e;this.negative=0,this.words=null,this.length=0,this.red=null,null!==e&&("le"!==t&&"be"!==t||(r=t,t=10),this._init(e||0,t||10,r||"be"))}var o;"object"==typeof e?e.exports=i:t.BN=i,i.BN=i,i.wordSize=26;try{o="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:hr.Buffer}catch(e){}function s(e,t){var n=e.charCodeAt(t);return n>=48&&n<=57?n-48:n>=65&&n<=70?n-55:n>=97&&n<=102?n-87:void r(!1,"Invalid character in "+e)}function a(e,t,r){var n=s(e,r);return r-1>=t&&(n|=s(e,r-1)<<4),n}function u(e,t,n,i){for(var o=0,s=0,a=Math.min(e.length,n),u=t;u<a;u++){var l=e.charCodeAt(u)-48;o*=i,s=l>=49?l-49+10:l>=17?l-17+10:l,r(l>=0&&s<i,"Invalid character"),o+=s}return o}function l(e,t){e.words=t.words,e.length=t.length,e.negative=t.negative,e.red=t.red}if(i.isBN=function(e){return e instanceof i||null!==e&&"object"==typeof e&&e.constructor.wordSize===i.wordSize&&Array.isArray(e.words)},i.max=function(e,t){return e.cmp(t)>0?e:t},i.min=function(e,t){return e.cmp(t)<0?e:t},i.prototype._init=function(e,t,n){if("number"==typeof e)return this._initNumber(e,t,n);if("object"==typeof e)return this._initArray(e,t,n);"hex"===t&&(t=16),r(t===(0|t)&&t>=2&&t<=36);var i=0;"-"===(e=e.toString().replace(/\s+/g,""))[0]&&(i++,this.negative=1),i<e.length&&(16===t?this._parseHex(e,i,n):(this._parseBase(e,t,i),"le"===n&&this._initArray(this.toArray(),t,n)))},i.prototype._initNumber=function(e,t,n){e<0&&(this.negative=1,e=-e),e<67108864?(this.words=[67108863&e],this.length=1):e<4503599627370496?(this.words=[67108863&e,e/67108864&67108863],this.length=2):(r(e<9007199254740992),this.words=[67108863&e,e/67108864&67108863,1],this.length=3),"le"===n&&this._initArray(this.toArray(),t,n)},i.prototype._initArray=function(e,t,n){if(r("number"==typeof e.length),e.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(e.length/3),this.words=new Array(this.length);for(var i=0;i<this.length;i++)this.words[i]=0;var o,s,a=0;if("be"===n)for(i=e.length-1,o=0;i>=0;i-=3)this.words[o]|=(s=e[i]|e[i-1]<<8|e[i-2]<<16)<<a&67108863,this.words[o+1]=s>>>26-a&67108863,(a+=24)>=26&&(a-=26,o++);else if("le"===n)for(i=0,o=0;i<e.length;i+=3)this.words[o]|=(s=e[i]|e[i+1]<<8|e[i+2]<<16)<<a&67108863,this.words[o+1]=s>>>26-a&67108863,(a+=24)>=26&&(a-=26,o++);return this._strip()},i.prototype._parseHex=function(e,t,r){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var n=0;n<this.length;n++)this.words[n]=0;var i,o=0,s=0;if("be"===r)for(n=e.length-1;n>=t;n-=2)i=a(e,t,n)<<o,this.words[s]|=67108863&i,o>=18?(o-=18,this.words[s+=1]|=i>>>26):o+=8;else for(n=(e.length-t)%2==0?t+1:t;n<e.length;n+=2)i=a(e,t,n)<<o,this.words[s]|=67108863&i,o>=18?(o-=18,this.words[s+=1]|=i>>>26):o+=8;this._strip()},i.prototype._parseBase=function(e,t,r){this.words=[0],this.length=1;for(var n=0,i=1;i<=67108863;i*=t)n++;n--,i=i/t|0;for(var o=e.length-r,s=o%n,a=Math.min(o,o-s)+r,l=0,c=r;c<a;c+=n)l=u(e,c,c+n,t),this.imuln(i),this.words[0]+l<67108864?this.words[0]+=l:this._iaddn(l);if(0!==s){var d=1;for(l=u(e,c,e.length,t),c=0;c<s;c++)d*=t;this.imuln(d),this.words[0]+l<67108864?this.words[0]+=l:this._iaddn(l)}this._strip()},i.prototype.copy=function(e){e.words=new Array(this.length);for(var t=0;t<this.length;t++)e.words[t]=this.words[t];e.length=this.length,e.negative=this.negative,e.red=this.red},i.prototype._move=function(e){l(e,this)},i.prototype.clone=function(){var e=new i(null);return this.copy(e),e},i.prototype._expand=function(e){for(;this.length<e;)this.words[this.length++]=0;return this},i.prototype._strip=function(){for(;this.length>1&&0===this.words[this.length-1];)this.length--;return this._normSign()},i.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},"undefined"!=typeof Symbol&&"function"==typeof Symbol.for)try{i.prototype[Symbol.for("nodejs.util.inspect.custom")]=c}catch(e){i.prototype.inspect=c}else i.prototype.inspect=c;function c(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"}var d=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],h=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],p=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function f(e,t,r){r.negative=t.negative^e.negative;var n=e.length+t.length|0;r.length=n,n=n-1|0;var i=0|e.words[0],o=0|t.words[0],s=i*o,a=s/67108864|0;r.words[0]=67108863&s;for(var u=1;u<n;u++){for(var l=a>>>26,c=67108863&a,d=Math.min(u,t.length-1),h=Math.max(0,u-e.length+1);h<=d;h++)l+=(s=(i=0|e.words[u-h|0])*(o=0|t.words[h])+c)/67108864|0,c=67108863&s;r.words[u]=0|c,a=0|l}return 0!==a?r.words[u]=0|a:r.length--,r._strip()}i.prototype.toString=function(e,t){var n;if(t=0|t||1,16===(e=e||10)||"hex"===e){n="";for(var i=0,o=0,s=0;s<this.length;s++){var a=this.words[s],u=(16777215&(a<<i|o)).toString(16);o=a>>>24-i&16777215,(i+=2)>=26&&(i-=26,s--),n=0!==o||s!==this.length-1?d[6-u.length]+u+n:u+n}for(0!==o&&(n=o.toString(16)+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}if(e===(0|e)&&e>=2&&e<=36){var l=h[e],c=p[e];n="";var f=this.clone();for(f.negative=0;!f.isZero();){var m=f.modrn(c).toString(e);n=(f=f.idivn(c)).isZero()?m+n:d[l-m.length]+m+n}for(this.isZero()&&(n="0"+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}r(!1,"Base should be between 2 and 36")},i.prototype.toNumber=function(){var e=this.words[0];return 2===this.length?e+=67108864*this.words[1]:3===this.length&&1===this.words[2]?e+=4503599627370496+67108864*this.words[1]:this.length>2&&r(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},i.prototype.toJSON=function(){return this.toString(16,2)},o&&(i.prototype.toBuffer=function(e,t){return this.toArrayLike(o,e,t)}),i.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)},i.prototype.toArrayLike=function(e,t,n){this._strip();var i=this.byteLength(),o=n||Math.max(1,i);r(i<=o,"byte array longer than desired length"),r(o>0,"Requested array length <= 0");var s=function(e,t){return e.allocUnsafe?e.allocUnsafe(t):new e(t)}(e,o);return this["_toArrayLike"+("le"===t?"LE":"BE")](s,i),s},i.prototype._toArrayLikeLE=function(e,t){for(var r=0,n=0,i=0,o=0;i<this.length;i++){var s=this.words[i]<<o|n;e[r++]=255&s,r<e.length&&(e[r++]=s>>8&255),r<e.length&&(e[r++]=s>>16&255),6===o?(r<e.length&&(e[r++]=s>>24&255),n=0,o=0):(n=s>>>24,o+=2)}if(r<e.length)for(e[r++]=n;r<e.length;)e[r++]=0},i.prototype._toArrayLikeBE=function(e,t){for(var r=e.length-1,n=0,i=0,o=0;i<this.length;i++){var s=this.words[i]<<o|n;e[r--]=255&s,r>=0&&(e[r--]=s>>8&255),r>=0&&(e[r--]=s>>16&255),6===o?(r>=0&&(e[r--]=s>>24&255),n=0,o=0):(n=s>>>24,o+=2)}if(r>=0)for(e[r--]=n;r>=0;)e[r--]=0},i.prototype._countBits=Math.clz32?function(e){return 32-Math.clz32(e)}:function(e){var t=e,r=0;return t>=4096&&(r+=13,t>>>=13),t>=64&&(r+=7,t>>>=7),t>=8&&(r+=4,t>>>=4),t>=2&&(r+=2,t>>>=2),r+t},i.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,r=0;return 0==(8191&t)&&(r+=13,t>>>=13),0==(127&t)&&(r+=7,t>>>=7),0==(15&t)&&(r+=4,t>>>=4),0==(3&t)&&(r+=2,t>>>=2),0==(1&t)&&r++,r},i.prototype.bitLength=function(){var e=this._countBits(this.words[this.length-1]);return 26*(this.length-1)+e},i.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;t<this.length;t++){var r=this._zeroBits(this.words[t]);if(e+=r,26!==r)break}return e},i.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},i.prototype.toTwos=function(e){return 0!==this.negative?this.abs().inotn(e).iaddn(1):this.clone()},i.prototype.fromTwos=function(e){return this.testn(e-1)?this.notn(e).iaddn(1).ineg():this.clone()},i.prototype.isNeg=function(){return 0!==this.negative},i.prototype.neg=function(){return this.clone().ineg()},i.prototype.ineg=function(){return this.isZero()||(this.negative^=1),this},i.prototype.iuor=function(e){for(;this.length<e.length;)this.words[this.length++]=0;for(var t=0;t<e.length;t++)this.words[t]=this.words[t]|e.words[t];return this._strip()},i.prototype.ior=function(e){return r(0==(this.negative|e.negative)),this.iuor(e)},i.prototype.or=function(e){return this.length>e.length?this.clone().ior(e):e.clone().ior(this)},i.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},i.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var r=0;r<t.length;r++)this.words[r]=this.words[r]&e.words[r];return this.length=t.length,this._strip()},i.prototype.iand=function(e){return r(0==(this.negative|e.negative)),this.iuand(e)},i.prototype.and=function(e){return this.length>e.length?this.clone().iand(e):e.clone().iand(this)},i.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},i.prototype.iuxor=function(e){var t,r;this.length>e.length?(t=this,r=e):(t=e,r=this);for(var n=0;n<r.length;n++)this.words[n]=t.words[n]^r.words[n];if(this!==t)for(;n<t.length;n++)this.words[n]=t.words[n];return this.length=t.length,this._strip()},i.prototype.ixor=function(e){return r(0==(this.negative|e.negative)),this.iuxor(e)},i.prototype.xor=function(e){return this.length>e.length?this.clone().ixor(e):e.clone().ixor(this)},i.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},i.prototype.inotn=function(e){r("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),n=e%26;this._expand(t),n>0&&t--;for(var i=0;i<t;i++)this.words[i]=67108863&~this.words[i];return n>0&&(this.words[i]=~this.words[i]&67108863>>26-n),this._strip()},i.prototype.notn=function(e){return this.clone().inotn(e)},i.prototype.setn=function(e,t){r("number"==typeof e&&e>=0);var n=e/26|0,i=e%26;return this._expand(n+1),this.words[n]=t?this.words[n]|1<<i:this.words[n]&~(1<<i),this._strip()},i.prototype.iadd=function(e){var t,r,n;if(0!==this.negative&&0===e.negative)return this.negative=0,t=this.isub(e),this.negative^=1,this._normSign();if(0===this.negative&&0!==e.negative)return e.negative=0,t=this.isub(e),e.negative=1,t._normSign();this.length>e.length?(r=this,n=e):(r=e,n=this);for(var i=0,o=0;o<n.length;o++)this.words[o]=67108863&(t=(0|r.words[o])+(0|n.words[o])+i),i=t>>>26;for(;0!==i&&o<r.length;o++)this.words[o]=67108863&(t=(0|r.words[o])+i),i=t>>>26;if(this.length=r.length,0!==i)this.words[this.length]=i,this.length++;else if(r!==this)for(;o<r.length;o++)this.words[o]=r.words[o];return this},i.prototype.add=function(e){var t;return 0!==e.negative&&0===this.negative?(e.negative=0,t=this.sub(e),e.negative^=1,t):0===e.negative&&0!==this.negative?(this.negative=0,t=e.sub(this),this.negative=1,t):this.length>e.length?this.clone().iadd(e):e.clone().iadd(this)},i.prototype.isub=function(e){if(0!==e.negative){e.negative=0;var t=this.iadd(e);return e.negative=1,t._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var r,n,i=this.cmp(e);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(r=this,n=e):(r=e,n=this);for(var o=0,s=0;s<n.length;s++)o=(t=(0|r.words[s])-(0|n.words[s])+o)>>26,this.words[s]=67108863&t;for(;0!==o&&s<r.length;s++)o=(t=(0|r.words[s])+o)>>26,this.words[s]=67108863&t;if(0===o&&s<r.length&&r!==this)for(;s<r.length;s++)this.words[s]=r.words[s];return this.length=Math.max(this.length,s),r!==this&&(this.negative=1),this._strip()},i.prototype.sub=function(e){return this.clone().isub(e)};var m=function(e,t,r){var n,i,o,s=e.words,a=t.words,u=r.words,l=0,c=0|s[0],d=8191&c,h=c>>>13,p=0|s[1],f=8191&p,m=p>>>13,y=0|s[2],g=8191&y,b=y>>>13,v=0|s[3],A=8191&v,w=v>>>13,T=0|s[4],E=8191&T,I=T>>>13,S=0|s[5],k=8191&S,P=S>>>13,C=0|s[6],x=8191&C,N=C>>>13,_=0|s[7],R=8191&_,M=_>>>13,O=0|s[8],B=8191&O,D=O>>>13,F=0|s[9],L=8191&F,U=F>>>13,G=0|a[0],j=8191&G,H=G>>>13,q=0|a[1],V=8191&q,z=q>>>13,K=0|a[2],W=8191&K,J=K>>>13,Q=0|a[3],Y=8191&Q,X=Q>>>13,Z=0|a[4],$=8191&Z,ee=Z>>>13,te=0|a[5],re=8191&te,ne=te>>>13,ie=0|a[6],oe=8191&ie,se=ie>>>13,ae=0|a[7],ue=8191&ae,le=ae>>>13,ce=0|a[8],de=8191&ce,he=ce>>>13,pe=0|a[9],fe=8191&pe,me=pe>>>13;r.negative=e.negative^t.negative,r.length=19;var ye=(l+(n=Math.imul(d,j))|0)+((8191&(i=(i=Math.imul(d,H))+Math.imul(h,j)|0))<<13)|0;l=((o=Math.imul(h,H))+(i>>>13)|0)+(ye>>>26)|0,ye&=67108863,n=Math.imul(f,j),i=(i=Math.imul(f,H))+Math.imul(m,j)|0,o=Math.imul(m,H);var ge=(l+(n=n+Math.imul(d,V)|0)|0)+((8191&(i=(i=i+Math.imul(d,z)|0)+Math.imul(h,V)|0))<<13)|0;l=((o=o+Math.imul(h,z)|0)+(i>>>13)|0)+(ge>>>26)|0,ge&=67108863,n=Math.imul(g,j),i=(i=Math.imul(g,H))+Math.imul(b,j)|0,o=Math.imul(b,H),n=n+Math.imul(f,V)|0,i=(i=i+Math.imul(f,z)|0)+Math.imul(m,V)|0,o=o+Math.imul(m,z)|0;var be=(l+(n=n+Math.imul(d,W)|0)|0)+((8191&(i=(i=i+Math.imul(d,J)|0)+Math.imul(h,W)|0))<<13)|0;l=((o=o+Math.imul(h,J)|0)+(i>>>13)|0)+(be>>>26)|0,be&=67108863,n=Math.imul(A,j),i=(i=Math.imul(A,H))+Math.imul(w,j)|0,o=Math.imul(w,H),n=n+Math.imul(g,V)|0,i=(i=i+Math.imul(g,z)|0)+Math.imul(b,V)|0,o=o+Math.imul(b,z)|0,n=n+Math.imul(f,W)|0,i=(i=i+Math.imul(f,J)|0)+Math.imul(m,W)|0,o=o+Math.imul(m,J)|0;var ve=(l+(n=n+Math.imul(d,Y)|0)|0)+((8191&(i=(i=i+Math.imul(d,X)|0)+Math.imul(h,Y)|0))<<13)|0;l=((o=o+Math.imul(h,X)|0)+(i>>>13)|0)+(ve>>>26)|0,ve&=67108863,n=Math.imul(E,j),i=(i=Math.imul(E,H))+Math.imul(I,j)|0,o=Math.imul(I,H),n=n+Math.imul(A,V)|0,i=(i=i+Math.imul(A,z)|0)+Math.imul(w,V)|0,o=o+Math.imul(w,z)|0,n=n+Math.imul(g,W)|0,i=(i=i+Math.imul(g,J)|0)+Math.imul(b,W)|0,o=o+Math.imul(b,J)|0,n=n+Math.imul(f,Y)|0,i=(i=i+Math.imul(f,X)|0)+Math.imul(m,Y)|0,o=o+Math.imul(m,X)|0;var Ae=(l+(n=n+Math.imul(d,$)|0)|0)+((8191&(i=(i=i+Math.imul(d,ee)|0)+Math.imul(h,$)|0))<<13)|0;l=((o=o+Math.imul(h,ee)|0)+(i>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,n=Math.imul(k,j),i=(i=Math.imul(k,H))+Math.imul(P,j)|0,o=Math.imul(P,H),n=n+Math.imul(E,V)|0,i=(i=i+Math.imul(E,z)|0)+Math.imul(I,V)|0,o=o+Math.imul(I,z)|0,n=n+Math.imul(A,W)|0,i=(i=i+Math.imul(A,J)|0)+Math.imul(w,W)|0,o=o+Math.imul(w,J)|0,n=n+Math.imul(g,Y)|0,i=(i=i+Math.imul(g,X)|0)+Math.imul(b,Y)|0,o=o+Math.imul(b,X)|0,n=n+Math.imul(f,$)|0,i=(i=i+Math.imul(f,ee)|0)+Math.imul(m,$)|0,o=o+Math.imul(m,ee)|0;var we=(l+(n=n+Math.imul(d,re)|0)|0)+((8191&(i=(i=i+Math.imul(d,ne)|0)+Math.imul(h,re)|0))<<13)|0;l=((o=o+Math.imul(h,ne)|0)+(i>>>13)|0)+(we>>>26)|0,we&=67108863,n=Math.imul(x,j),i=(i=Math.imul(x,H))+Math.imul(N,j)|0,o=Math.imul(N,H),n=n+Math.imul(k,V)|0,i=(i=i+Math.imul(k,z)|0)+Math.imul(P,V)|0,o=o+Math.imul(P,z)|0,n=n+Math.imul(E,W)|0,i=(i=i+Math.imul(E,J)|0)+Math.imul(I,W)|0,o=o+Math.imul(I,J)|0,n=n+Math.imul(A,Y)|0,i=(i=i+Math.imul(A,X)|0)+Math.imul(w,Y)|0,o=o+Math.imul(w,X)|0,n=n+Math.imul(g,$)|0,i=(i=i+Math.imul(g,ee)|0)+Math.imul(b,$)|0,o=o+Math.imul(b,ee)|0,n=n+Math.imul(f,re)|0,i=(i=i+Math.imul(f,ne)|0)+Math.imul(m,re)|0,o=o+Math.imul(m,ne)|0;var Te=(l+(n=n+Math.imul(d,oe)|0)|0)+((8191&(i=(i=i+Math.imul(d,se)|0)+Math.imul(h,oe)|0))<<13)|0;l=((o=o+Math.imul(h,se)|0)+(i>>>13)|0)+(Te>>>26)|0,Te&=67108863,n=Math.imul(R,j),i=(i=Math.imul(R,H))+Math.imul(M,j)|0,o=Math.imul(M,H),n=n+Math.imul(x,V)|0,i=(i=i+Math.imul(x,z)|0)+Math.imul(N,V)|0,o=o+Math.imul(N,z)|0,n=n+Math.imul(k,W)|0,i=(i=i+Math.imul(k,J)|0)+Math.imul(P,W)|0,o=o+Math.imul(P,J)|0,n=n+Math.imul(E,Y)|0,i=(i=i+Math.imul(E,X)|0)+Math.imul(I,Y)|0,o=o+Math.imul(I,X)|0,n=n+Math.imul(A,$)|0,i=(i=i+Math.imul(A,ee)|0)+Math.imul(w,$)|0,o=o+Math.imul(w,ee)|0,n=n+Math.imul(g,re)|0,i=(i=i+Math.imul(g,ne)|0)+Math.imul(b,re)|0,o=o+Math.imul(b,ne)|0,n=n+Math.imul(f,oe)|0,i=(i=i+Math.imul(f,se)|0)+Math.imul(m,oe)|0,o=o+Math.imul(m,se)|0;var Ee=(l+(n=n+Math.imul(d,ue)|0)|0)+((8191&(i=(i=i+Math.imul(d,le)|0)+Math.imul(h,ue)|0))<<13)|0;l=((o=o+Math.imul(h,le)|0)+(i>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,n=Math.imul(B,j),i=(i=Math.imul(B,H))+Math.imul(D,j)|0,o=Math.imul(D,H),n=n+Math.imul(R,V)|0,i=(i=i+Math.imul(R,z)|0)+Math.imul(M,V)|0,o=o+Math.imul(M,z)|0,n=n+Math.imul(x,W)|0,i=(i=i+Math.imul(x,J)|0)+Math.imul(N,W)|0,o=o+Math.imul(N,J)|0,n=n+Math.imul(k,Y)|0,i=(i=i+Math.imul(k,X)|0)+Math.imul(P,Y)|0,o=o+Math.imul(P,X)|0,n=n+Math.imul(E,$)|0,i=(i=i+Math.imul(E,ee)|0)+Math.imul(I,$)|0,o=o+Math.imul(I,ee)|0,n=n+Math.imul(A,re)|0,i=(i=i+Math.imul(A,ne)|0)+Math.imul(w,re)|0,o=o+Math.imul(w,ne)|0,n=n+Math.imul(g,oe)|0,i=(i=i+Math.imul(g,se)|0)+Math.imul(b,oe)|0,o=o+Math.imul(b,se)|0,n=n+Math.imul(f,ue)|0,i=(i=i+Math.imul(f,le)|0)+Math.imul(m,ue)|0,o=o+Math.imul(m,le)|0;var Ie=(l+(n=n+Math.imul(d,de)|0)|0)+((8191&(i=(i=i+Math.imul(d,he)|0)+Math.imul(h,de)|0))<<13)|0;l=((o=o+Math.imul(h,he)|0)+(i>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,n=Math.imul(L,j),i=(i=Math.imul(L,H))+Math.imul(U,j)|0,o=Math.imul(U,H),n=n+Math.imul(B,V)|0,i=(i=i+Math.imul(B,z)|0)+Math.imul(D,V)|0,o=o+Math.imul(D,z)|0,n=n+Math.imul(R,W)|0,i=(i=i+Math.imul(R,J)|0)+Math.imul(M,W)|0,o=o+Math.imul(M,J)|0,n=n+Math.imul(x,Y)|0,i=(i=i+Math.imul(x,X)|0)+Math.imul(N,Y)|0,o=o+Math.imul(N,X)|0,n=n+Math.imul(k,$)|0,i=(i=i+Math.imul(k,ee)|0)+Math.imul(P,$)|0,o=o+Math.imul(P,ee)|0,n=n+Math.imul(E,re)|0,i=(i=i+Math.imul(E,ne)|0)+Math.imul(I,re)|0,o=o+Math.imul(I,ne)|0,n=n+Math.imul(A,oe)|0,i=(i=i+Math.imul(A,se)|0)+Math.imul(w,oe)|0,o=o+Math.imul(w,se)|0,n=n+Math.imul(g,ue)|0,i=(i=i+Math.imul(g,le)|0)+Math.imul(b,ue)|0,o=o+Math.imul(b,le)|0,n=n+Math.imul(f,de)|0,i=(i=i+Math.imul(f,he)|0)+Math.imul(m,de)|0,o=o+Math.imul(m,he)|0;var Se=(l+(n=n+Math.imul(d,fe)|0)|0)+((8191&(i=(i=i+Math.imul(d,me)|0)+Math.imul(h,fe)|0))<<13)|0;l=((o=o+Math.imul(h,me)|0)+(i>>>13)|0)+(Se>>>26)|0,Se&=67108863,n=Math.imul(L,V),i=(i=Math.imul(L,z))+Math.imul(U,V)|0,o=Math.imul(U,z),n=n+Math.imul(B,W)|0,i=(i=i+Math.imul(B,J)|0)+Math.imul(D,W)|0,o=o+Math.imul(D,J)|0,n=n+Math.imul(R,Y)|0,i=(i=i+Math.imul(R,X)|0)+Math.imul(M,Y)|0,o=o+Math.imul(M,X)|0,n=n+Math.imul(x,$)|0,i=(i=i+Math.imul(x,ee)|0)+Math.imul(N,$)|0,o=o+Math.imul(N,ee)|0,n=n+Math.imul(k,re)|0,i=(i=i+Math.imul(k,ne)|0)+Math.imul(P,re)|0,o=o+Math.imul(P,ne)|0,n=n+Math.imul(E,oe)|0,i=(i=i+Math.imul(E,se)|0)+Math.imul(I,oe)|0,o=o+Math.imul(I,se)|0,n=n+Math.imul(A,ue)|0,i=(i=i+Math.imul(A,le)|0)+Math.imul(w,ue)|0,o=o+Math.imul(w,le)|0,n=n+Math.imul(g,de)|0,i=(i=i+Math.imul(g,he)|0)+Math.imul(b,de)|0,o=o+Math.imul(b,he)|0;var ke=(l+(n=n+Math.imul(f,fe)|0)|0)+((8191&(i=(i=i+Math.imul(f,me)|0)+Math.imul(m,fe)|0))<<13)|0;l=((o=o+Math.imul(m,me)|0)+(i>>>13)|0)+(ke>>>26)|0,ke&=67108863,n=Math.imul(L,W),i=(i=Math.imul(L,J))+Math.imul(U,W)|0,o=Math.imul(U,J),n=n+Math.imul(B,Y)|0,i=(i=i+Math.imul(B,X)|0)+Math.imul(D,Y)|0,o=o+Math.imul(D,X)|0,n=n+Math.imul(R,$)|0,i=(i=i+Math.imul(R,ee)|0)+Math.imul(M,$)|0,o=o+Math.imul(M,ee)|0,n=n+Math.imul(x,re)|0,i=(i=i+Math.imul(x,ne)|0)+Math.imul(N,re)|0,o=o+Math.imul(N,ne)|0,n=n+Math.imul(k,oe)|0,i=(i=i+Math.imul(k,se)|0)+Math.imul(P,oe)|0,o=o+Math.imul(P,se)|0,n=n+Math.imul(E,ue)|0,i=(i=i+Math.imul(E,le)|0)+Math.imul(I,ue)|0,o=o+Math.imul(I,le)|0,n=n+Math.imul(A,de)|0,i=(i=i+Math.imul(A,he)|0)+Math.imul(w,de)|0,o=o+Math.imul(w,he)|0;var Pe=(l+(n=n+Math.imul(g,fe)|0)|0)+((8191&(i=(i=i+Math.imul(g,me)|0)+Math.imul(b,fe)|0))<<13)|0;l=((o=o+Math.imul(b,me)|0)+(i>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,n=Math.imul(L,Y),i=(i=Math.imul(L,X))+Math.imul(U,Y)|0,o=Math.imul(U,X),n=n+Math.imul(B,$)|0,i=(i=i+Math.imul(B,ee)|0)+Math.imul(D,$)|0,o=o+Math.imul(D,ee)|0,n=n+Math.imul(R,re)|0,i=(i=i+Math.imul(R,ne)|0)+Math.imul(M,re)|0,o=o+Math.imul(M,ne)|0,n=n+Math.imul(x,oe)|0,i=(i=i+Math.imul(x,se)|0)+Math.imul(N,oe)|0,o=o+Math.imul(N,se)|0,n=n+Math.imul(k,ue)|0,i=(i=i+Math.imul(k,le)|0)+Math.imul(P,ue)|0,o=o+Math.imul(P,le)|0,n=n+Math.imul(E,de)|0,i=(i=i+Math.imul(E,he)|0)+Math.imul(I,de)|0,o=o+Math.imul(I,he)|0;var Ce=(l+(n=n+Math.imul(A,fe)|0)|0)+((8191&(i=(i=i+Math.imul(A,me)|0)+Math.imul(w,fe)|0))<<13)|0;l=((o=o+Math.imul(w,me)|0)+(i>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,n=Math.imul(L,$),i=(i=Math.imul(L,ee))+Math.imul(U,$)|0,o=Math.imul(U,ee),n=n+Math.imul(B,re)|0,i=(i=i+Math.imul(B,ne)|0)+Math.imul(D,re)|0,o=o+Math.imul(D,ne)|0,n=n+Math.imul(R,oe)|0,i=(i=i+Math.imul(R,se)|0)+Math.imul(M,oe)|0,o=o+Math.imul(M,se)|0,n=n+Math.imul(x,ue)|0,i=(i=i+Math.imul(x,le)|0)+Math.imul(N,ue)|0,o=o+Math.imul(N,le)|0,n=n+Math.imul(k,de)|0,i=(i=i+Math.imul(k,he)|0)+Math.imul(P,de)|0,o=o+Math.imul(P,he)|0;var xe=(l+(n=n+Math.imul(E,fe)|0)|0)+((8191&(i=(i=i+Math.imul(E,me)|0)+Math.imul(I,fe)|0))<<13)|0;l=((o=o+Math.imul(I,me)|0)+(i>>>13)|0)+(xe>>>26)|0,xe&=67108863,n=Math.imul(L,re),i=(i=Math.imul(L,ne))+Math.imul(U,re)|0,o=Math.imul(U,ne),n=n+Math.imul(B,oe)|0,i=(i=i+Math.imul(B,se)|0)+Math.imul(D,oe)|0,o=o+Math.imul(D,se)|0,n=n+Math.imul(R,ue)|0,i=(i=i+Math.imul(R,le)|0)+Math.imul(M,ue)|0,o=o+Math.imul(M,le)|0,n=n+Math.imul(x,de)|0,i=(i=i+Math.imul(x,he)|0)+Math.imul(N,de)|0,o=o+Math.imul(N,he)|0;var Ne=(l+(n=n+Math.imul(k,fe)|0)|0)+((8191&(i=(i=i+Math.imul(k,me)|0)+Math.imul(P,fe)|0))<<13)|0;l=((o=o+Math.imul(P,me)|0)+(i>>>13)|0)+(Ne>>>26)|0,Ne&=67108863,n=Math.imul(L,oe),i=(i=Math.imul(L,se))+Math.imul(U,oe)|0,o=Math.imul(U,se),n=n+Math.imul(B,ue)|0,i=(i=i+Math.imul(B,le)|0)+Math.imul(D,ue)|0,o=o+Math.imul(D,le)|0,n=n+Math.imul(R,de)|0,i=(i=i+Math.imul(R,he)|0)+Math.imul(M,de)|0,o=o+Math.imul(M,he)|0;var _e=(l+(n=n+Math.imul(x,fe)|0)|0)+((8191&(i=(i=i+Math.imul(x,me)|0)+Math.imul(N,fe)|0))<<13)|0;l=((o=o+Math.imul(N,me)|0)+(i>>>13)|0)+(_e>>>26)|0,_e&=67108863,n=Math.imul(L,ue),i=(i=Math.imul(L,le))+Math.imul(U,ue)|0,o=Math.imul(U,le),n=n+Math.imul(B,de)|0,i=(i=i+Math.imul(B,he)|0)+Math.imul(D,de)|0,o=o+Math.imul(D,he)|0;var Re=(l+(n=n+Math.imul(R,fe)|0)|0)+((8191&(i=(i=i+Math.imul(R,me)|0)+Math.imul(M,fe)|0))<<13)|0;l=((o=o+Math.imul(M,me)|0)+(i>>>13)|0)+(Re>>>26)|0,Re&=67108863,n=Math.imul(L,de),i=(i=Math.imul(L,he))+Math.imul(U,de)|0,o=Math.imul(U,he);var Me=(l+(n=n+Math.imul(B,fe)|0)|0)+((8191&(i=(i=i+Math.imul(B,me)|0)+Math.imul(D,fe)|0))<<13)|0;l=((o=o+Math.imul(D,me)|0)+(i>>>13)|0)+(Me>>>26)|0,Me&=67108863;var Oe=(l+(n=Math.imul(L,fe))|0)+((8191&(i=(i=Math.imul(L,me))+Math.imul(U,fe)|0))<<13)|0;return l=((o=Math.imul(U,me))+(i>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,u[0]=ye,u[1]=ge,u[2]=be,u[3]=ve,u[4]=Ae,u[5]=we,u[6]=Te,u[7]=Ee,u[8]=Ie,u[9]=Se,u[10]=ke,u[11]=Pe,u[12]=Ce,u[13]=xe,u[14]=Ne,u[15]=_e,u[16]=Re,u[17]=Me,u[18]=Oe,0!==l&&(u[19]=l,r.length++),r};function y(e,t,r){r.negative=t.negative^e.negative,r.length=e.length+t.length;for(var n=0,i=0,o=0;o<r.length-1;o++){var s=i;i=0;for(var a=67108863&n,u=Math.min(o,t.length-1),l=Math.max(0,o-e.length+1);l<=u;l++){var c=(0|e.words[o-l])*(0|t.words[l]),d=67108863&c;a=67108863&(d=d+a|0),i+=(s=(s=s+(c/67108864|0)|0)+(d>>>26)|0)>>>26,s&=67108863}r.words[o]=a,n=s,s=i}return 0!==n?r.words[o]=n:r.length--,r._strip()}function g(e,t,r){return y(e,t,r)}Math.imul||(m=f),i.prototype.mulTo=function(e,t){var r=this.length+e.length;return 10===this.length&&10===e.length?m(this,e,t):r<63?f(this,e,t):r<1024?y(this,e,t):g(this,e,t)},i.prototype.mul=function(e){var t=new i(null);return t.words=new Array(this.length+e.length),this.mulTo(e,t)},i.prototype.mulf=function(e){var t=new i(null);return t.words=new Array(this.length+e.length),g(this,e,t)},i.prototype.imul=function(e){return this.clone().mulTo(e,this)},i.prototype.imuln=function(e){var t=e<0;t&&(e=-e),r("number"==typeof e),r(e<67108864);for(var n=0,i=0;i<this.length;i++){var o=(0|this.words[i])*e,s=(67108863&o)+(67108863&n);n>>=26,n+=o/67108864|0,n+=s>>>26,this.words[i]=67108863&s}return 0!==n&&(this.words[i]=n,this.length++),t?this.ineg():this},i.prototype.muln=function(e){return this.clone().imuln(e)},i.prototype.sqr=function(){return this.mul(this)},i.prototype.isqr=function(){return this.imul(this.clone())},i.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),r=0;r<t.length;r++)t[r]=e.words[r/26|0]>>>r%26&1;return t}(e);if(0===t.length)return new i(1);for(var r=this,n=0;n<t.length&&0===t[n];n++,r=r.sqr());if(++n<t.length)for(var o=r.sqr();n<t.length;n++,o=o.sqr())0!==t[n]&&(r=r.mul(o));return r},i.prototype.iushln=function(e){r("number"==typeof e&&e>=0);var t,n=e%26,i=(e-n)/26,o=67108863>>>26-n<<26-n;if(0!==n){var s=0;for(t=0;t<this.length;t++){var a=this.words[t]&o;this.words[t]=(0|this.words[t])-a<<n|s,s=a>>>26-n}s&&(this.words[t]=s,this.length++)}if(0!==i){for(t=this.length-1;t>=0;t--)this.words[t+i]=this.words[t];for(t=0;t<i;t++)this.words[t]=0;this.length+=i}return this._strip()},i.prototype.ishln=function(e){return r(0===this.negative),this.iushln(e)},i.prototype.iushrn=function(e,t,n){var i;r("number"==typeof e&&e>=0),i=t?(t-t%26)/26:0;var o=e%26,s=Math.min((e-o)/26,this.length),a=67108863^67108863>>>o<<o,u=n;if(i-=s,i=Math.max(0,i),u){for(var l=0;l<s;l++)u.words[l]=this.words[l];u.length=s}if(0===s);else if(this.length>s)for(this.length-=s,l=0;l<this.length;l++)this.words[l]=this.words[l+s];else this.words[0]=0,this.length=1;var c=0;for(l=this.length-1;l>=0&&(0!==c||l>=i);l--){var d=0|this.words[l];this.words[l]=c<<26-o|d>>>o,c=d&a}return u&&0!==c&&(u.words[u.length++]=c),0===this.length&&(this.words[0]=0,this.length=1),this._strip()},i.prototype.ishrn=function(e,t,n){return r(0===this.negative),this.iushrn(e,t,n)},i.prototype.shln=function(e){return this.clone().ishln(e)},i.prototype.ushln=function(e){return this.clone().iushln(e)},i.prototype.shrn=function(e){return this.clone().ishrn(e)},i.prototype.ushrn=function(e){return this.clone().iushrn(e)},i.prototype.testn=function(e){r("number"==typeof e&&e>=0);var t=e%26,n=(e-t)/26;return!(this.length<=n||!(this.words[n]&1<<t))},i.prototype.imaskn=function(e){r("number"==typeof e&&e>=0);var t=e%26,n=(e-t)/26;return r(0===this.negative,"imaskn works only with positive numbers"),this.length<=n?this:(0!==t&&n++,this.length=Math.min(n,this.length),0!==t&&(this.words[this.length-1]&=67108863^67108863>>>t<<t),this._strip())},i.prototype.maskn=function(e){return this.clone().imaskn(e)},i.prototype.iaddn=function(e){return r("number"==typeof e),r(e<67108864),e<0?this.isubn(-e):0!==this.negative?1===this.length&&(0|this.words[0])<=e?(this.words[0]=e-(0|this.words[0]),this.negative=0,this):(this.negative=0,this.isubn(e),this.negative=1,this):this._iaddn(e)},i.prototype._iaddn=function(e){this.words[0]+=e;for(var t=0;t<this.length&&this.words[t]>=67108864;t++)this.words[t]-=67108864,t===this.length-1?this.words[t+1]=1:this.words[t+1]++;return this.length=Math.max(this.length,t+1),this},i.prototype.isubn=function(e){if(r("number"==typeof e),r(e<67108864),e<0)return this.iaddn(-e);if(0!==this.negative)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var t=0;t<this.length&&this.words[t]<0;t++)this.words[t]+=67108864,this.words[t+1]-=1;return this._strip()},i.prototype.addn=function(e){return this.clone().iaddn(e)},i.prototype.subn=function(e){return this.clone().isubn(e)},i.prototype.iabs=function(){return this.negative=0,this},i.prototype.abs=function(){return this.clone().iabs()},i.prototype._ishlnsubmul=function(e,t,n){var i,o;this._expand(e.length+n);var s=0;for(i=0;i<e.length;i++){o=(0|this.words[i+n])+s;var a=(0|e.words[i])*t;s=((o-=67108863&a)>>26)-(a/67108864|0),this.words[i+n]=67108863&o}for(;i<this.length-n;i++)s=(o=(0|this.words[i+n])+s)>>26,this.words[i+n]=67108863&o;if(0===s)return this._strip();for(r(-1===s),s=0,i=0;i<this.length;i++)s=(o=-(0|this.words[i])+s)>>26,this.words[i]=67108863&o;return this.negative=1,this._strip()},i.prototype._wordDiv=function(e,t){var r,n=this.clone(),o=e,s=0|o.words[o.length-1];0!=(r=26-this._countBits(s))&&(o=o.ushln(r),n.iushln(r),s=0|o.words[o.length-1]);var a,u=n.length-o.length;if("mod"!==t){(a=new i(null)).length=u+1,a.words=new Array(a.length);for(var l=0;l<a.length;l++)a.words[l]=0}var c=n.clone()._ishlnsubmul(o,1,u);0===c.negative&&(n=c,a&&(a.words[u]=1));for(var d=u-1;d>=0;d--){var h=67108864*(0|n.words[o.length+d])+(0|n.words[o.length+d-1]);for(h=Math.min(h/s|0,67108863),n._ishlnsubmul(o,h,d);0!==n.negative;)h--,n.negative=0,n._ishlnsubmul(o,1,d),n.isZero()||(n.negative^=1);a&&(a.words[d]=h)}return a&&a._strip(),n._strip(),"div"!==t&&0!==r&&n.iushrn(r),{div:a||null,mod:n}},i.prototype.divmod=function(e,t,n){return r(!e.isZero()),this.isZero()?{div:new i(0),mod:new i(0)}:0!==this.negative&&0===e.negative?(a=this.neg().divmod(e,t),"mod"!==t&&(o=a.div.neg()),"div"!==t&&(s=a.mod.neg(),n&&0!==s.negative&&s.iadd(e)),{div:o,mod:s}):0===this.negative&&0!==e.negative?(a=this.divmod(e.neg(),t),"mod"!==t&&(o=a.div.neg()),{div:o,mod:a.mod}):0!=(this.negative&e.negative)?(a=this.neg().divmod(e.neg(),t),"div"!==t&&(s=a.mod.neg(),n&&0!==s.negative&&s.isub(e)),{div:a.div,mod:s}):e.length>this.length||this.cmp(e)<0?{div:new i(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new i(this.modrn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new i(this.modrn(e.words[0]))}:this._wordDiv(e,t);var o,s,a},i.prototype.div=function(e){return this.divmod(e,"div",!1).div},i.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},i.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},i.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var r=0!==t.div.negative?t.mod.isub(e):t.mod,n=e.ushrn(1),i=e.andln(1),o=r.cmp(n);return o<0||1===i&&0===o?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},i.prototype.modrn=function(e){var t=e<0;t&&(e=-e),r(e<=67108863);for(var n=(1<<26)%e,i=0,o=this.length-1;o>=0;o--)i=(n*i+(0|this.words[o]))%e;return t?-i:i},i.prototype.modn=function(e){return this.modrn(e)},i.prototype.idivn=function(e){var t=e<0;t&&(e=-e),r(e<=67108863);for(var n=0,i=this.length-1;i>=0;i--){var o=(0|this.words[i])+67108864*n;this.words[i]=o/e|0,n=o%e}return this._strip(),t?this.ineg():this},i.prototype.divn=function(e){return this.clone().idivn(e)},i.prototype.egcd=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var o=new i(1),s=new i(0),a=new i(0),u=new i(1),l=0;t.isEven()&&n.isEven();)t.iushrn(1),n.iushrn(1),++l;for(var c=n.clone(),d=t.clone();!t.isZero();){for(var h=0,p=1;0==(t.words[0]&p)&&h<26;++h,p<<=1);if(h>0)for(t.iushrn(h);h-- >0;)(o.isOdd()||s.isOdd())&&(o.iadd(c),s.isub(d)),o.iushrn(1),s.iushrn(1);for(var f=0,m=1;0==(n.words[0]&m)&&f<26;++f,m<<=1);if(f>0)for(n.iushrn(f);f-- >0;)(a.isOdd()||u.isOdd())&&(a.iadd(c),u.isub(d)),a.iushrn(1),u.iushrn(1);t.cmp(n)>=0?(t.isub(n),o.isub(a),s.isub(u)):(n.isub(t),a.isub(o),u.isub(s))}return{a:a,b:u,gcd:n.iushln(l)}},i.prototype._invmp=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var o,s=new i(1),a=new i(0),u=n.clone();t.cmpn(1)>0&&n.cmpn(1)>0;){for(var l=0,c=1;0==(t.words[0]&c)&&l<26;++l,c<<=1);if(l>0)for(t.iushrn(l);l-- >0;)s.isOdd()&&s.iadd(u),s.iushrn(1);for(var d=0,h=1;0==(n.words[0]&h)&&d<26;++d,h<<=1);if(d>0)for(n.iushrn(d);d-- >0;)a.isOdd()&&a.iadd(u),a.iushrn(1);t.cmp(n)>=0?(t.isub(n),s.isub(a)):(n.isub(t),a.isub(s))}return(o=0===t.cmpn(1)?s:a).cmpn(0)<0&&o.iadd(e),o},i.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),r=e.clone();t.negative=0,r.negative=0;for(var n=0;t.isEven()&&r.isEven();n++)t.iushrn(1),r.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;r.isEven();)r.iushrn(1);var i=t.cmp(r);if(i<0){var o=t;t=r,r=o}else if(0===i||0===r.cmpn(1))break;t.isub(r)}return r.iushln(n)},i.prototype.invm=function(e){return this.egcd(e).a.umod(e)},i.prototype.isEven=function(){return 0==(1&this.words[0])},i.prototype.isOdd=function(){return 1==(1&this.words[0])},i.prototype.andln=function(e){return this.words[0]&e},i.prototype.bincn=function(e){r("number"==typeof e);var t=e%26,n=(e-t)/26,i=1<<t;if(this.length<=n)return this._expand(n+1),this.words[n]|=i,this;for(var o=i,s=n;0!==o&&s<this.length;s++){var a=0|this.words[s];o=(a+=o)>>>26,this.words[s]=a&=67108863}return 0!==o&&(this.words[s]=o,this.length++),this},i.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},i.prototype.cmpn=function(e){var t,n=e<0;if(0!==this.negative&&!n)return-1;if(0===this.negative&&n)return 1;if(this._strip(),this.length>1)t=1;else{n&&(e=-e),r(e<=67108863,"Number is too big");var i=0|this.words[0];t=i===e?0:i<e?-1:1}return 0!==this.negative?0|-t:t},i.prototype.cmp=function(e){if(0!==this.negative&&0===e.negative)return-1;if(0===this.negative&&0!==e.negative)return 1;var t=this.ucmp(e);return 0!==this.negative?0|-t:t},i.prototype.ucmp=function(e){if(this.length>e.length)return 1;if(this.length<e.length)return-1;for(var t=0,r=this.length-1;r>=0;r--){var n=0|this.words[r],i=0|e.words[r];if(n!==i){n<i?t=-1:n>i&&(t=1);break}}return t},i.prototype.gtn=function(e){return 1===this.cmpn(e)},i.prototype.gt=function(e){return 1===this.cmp(e)},i.prototype.gten=function(e){return this.cmpn(e)>=0},i.prototype.gte=function(e){return this.cmp(e)>=0},i.prototype.ltn=function(e){return-1===this.cmpn(e)},i.prototype.lt=function(e){return-1===this.cmp(e)},i.prototype.lten=function(e){return this.cmpn(e)<=0},i.prototype.lte=function(e){return this.cmp(e)<=0},i.prototype.eqn=function(e){return 0===this.cmpn(e)},i.prototype.eq=function(e){return 0===this.cmp(e)},i.red=function(e){return new I(e)},i.prototype.toRed=function(e){return r(!this.red,"Already a number in reduction context"),r(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},i.prototype.fromRed=function(){return r(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},i.prototype._forceRed=function(e){return this.red=e,this},i.prototype.forceRed=function(e){return r(!this.red,"Already a number in reduction context"),this._forceRed(e)},i.prototype.redAdd=function(e){return r(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},i.prototype.redIAdd=function(e){return r(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},i.prototype.redSub=function(e){return r(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},i.prototype.redISub=function(e){return r(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},i.prototype.redShl=function(e){return r(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},i.prototype.redMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},i.prototype.redIMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},i.prototype.redSqr=function(){return r(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},i.prototype.redISqr=function(){return r(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},i.prototype.redSqrt=function(){return r(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},i.prototype.redInvm=function(){return r(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},i.prototype.redNeg=function(){return r(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},i.prototype.redPow=function(e){return r(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var b={k256:null,p224:null,p192:null,p25519:null};function v(e,t){this.name=e,this.p=new i(t,16),this.n=this.p.bitLength(),this.k=new i(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function A(){v.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function w(){v.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function T(){v.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function E(){v.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function I(e){if("string"==typeof e){var t=i._prime(e);this.m=t.p,this.prime=t}else r(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function S(e){I.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new i(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}v.prototype._tmp=function(){var e=new i(null);return e.words=new Array(Math.ceil(this.n/13)),e},v.prototype.ireduce=function(e){var t,r=e;do{this.split(r,this.tmp),t=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(t>this.n);var n=t<this.n?-1:r.ucmp(this.p);return 0===n?(r.words[0]=0,r.length=1):n>0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},v.prototype.split=function(e,t){e.iushrn(this.n,0,t)},v.prototype.imulK=function(e){return e.imul(this.k)},n(A,v),A.prototype.split=function(e,t){for(var r=4194303,n=Math.min(e.length,9),i=0;i<n;i++)t.words[i]=e.words[i];if(t.length=n,e.length<=9)return e.words[0]=0,void(e.length=1);var o=e.words[9];for(t.words[t.length++]=o&r,i=10;i<e.length;i++){var s=0|e.words[i];e.words[i-10]=(s&r)<<4|o>>>22,o=s}e.words[i-10]=o>>>=22,e.length-=0===o&&e.length>10?10:9},A.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,r=0;r<e.length;r++){var n=0|e.words[r];e.words[r]=67108863&(t+=977*n),t=64*n+(t/67108864|0)}return 0===e.words[e.length-1]&&(e.length--,0===e.words[e.length-1]&&e.length--),e},n(w,v),n(T,v),n(E,v),E.prototype.imulK=function(e){for(var t=0,r=0;r<e.length;r++){var n=19*(0|e.words[r])+t,i=67108863&n;n>>>=26,e.words[r]=i,t=n}return 0!==t&&(e.words[e.length++]=t),e},i._prime=function(e){if(b[e])return b[e];var t;if("k256"===e)t=new A;else if("p224"===e)t=new w;else if("p192"===e)t=new T;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new E}return b[e]=t,t},I.prototype._verify1=function(e){r(0===e.negative,"red works only with positives"),r(e.red,"red works only with red numbers")},I.prototype._verify2=function(e,t){r(0==(e.negative|t.negative),"red works only with positives"),r(e.red&&e.red===t.red,"red works only with red numbers")},I.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):(l(e,e.umod(this.m)._forceRed(this)),e)},I.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},I.prototype.add=function(e,t){this._verify2(e,t);var r=e.add(t);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},I.prototype.iadd=function(e,t){this._verify2(e,t);var r=e.iadd(t);return r.cmp(this.m)>=0&&r.isub(this.m),r},I.prototype.sub=function(e,t){this._verify2(e,t);var r=e.sub(t);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},I.prototype.isub=function(e,t){this._verify2(e,t);var r=e.isub(t);return r.cmpn(0)<0&&r.iadd(this.m),r},I.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},I.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},I.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},I.prototype.isqr=function(e){return this.imul(e,e.clone())},I.prototype.sqr=function(e){return this.mul(e,e)},I.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(r(t%2==1),3===t){var n=this.m.add(new i(1)).iushrn(2);return this.pow(e,n)}for(var o=this.m.subn(1),s=0;!o.isZero()&&0===o.andln(1);)s++,o.iushrn(1);r(!o.isZero());var a=new i(1).toRed(this),u=a.redNeg(),l=this.m.subn(1).iushrn(1),c=this.m.bitLength();for(c=new i(2*c*c).toRed(this);0!==this.pow(c,l).cmp(u);)c.redIAdd(u);for(var d=this.pow(c,o),h=this.pow(e,o.addn(1).iushrn(1)),p=this.pow(e,o),f=s;0!==p.cmp(a);){for(var m=p,y=0;0!==m.cmp(a);y++)m=m.redSqr();r(y<f);var g=this.pow(d,new i(1).iushln(f-y-1));h=h.redMul(g),d=g.redSqr(),p=p.redMul(d),f=y}return h},I.prototype.invm=function(e){var t=e._invmp(this.m);return 0!==t.negative?(t.negative=0,this.imod(t).redNeg()):this.imod(t)},I.prototype.pow=function(e,t){if(t.isZero())return new i(1).toRed(this);if(0===t.cmpn(1))return e.clone();var r=new Array(16);r[0]=new i(1).toRed(this),r[1]=e;for(var n=2;n<r.length;n++)r[n]=this.mul(r[n-1],e);var o=r[0],s=0,a=0,u=t.bitLength()%26;for(0===u&&(u=26),n=t.length-1;n>=0;n--){for(var l=t.words[n],c=u-1;c>=0;c--){var d=l>>c&1;o!==r[0]&&(o=this.sqr(o)),0!==d||0!==s?(s<<=1,s|=d,(4==++a||0===n&&0===c)&&(o=this.mul(o,r[s]),a=0,s=0)):a=0}u=26}return o},I.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},I.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},i.mont=function(e){return new S(e)},n(S,I),S.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},S.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},S.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var r=e.imul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},S.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new i(0)._forceRed(this);var r=e.mul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),o=r.isub(n).iushrn(this.shift),s=o;return o.cmp(this.m)>=0?s=o.isub(this.m):o.cmpn(0)<0&&(s=o.iadd(this.m)),s._forceRed(this)},S.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(e,cr)});let fr=!1,mr=!1;const yr={debug:1,default:2,info:2,warning:3,error:4,off:5};let gr=yr.default,br=null;const vr=function(){try{const e=[];if(["NFD","NFC","NFKD","NFKC"].forEach(t=>{try{if("test"!=="test".normalize(t))throw new Error("bad normalize")}catch(r){e.push(t)}}),e.length)throw new Error("missing "+e.join(", "));if(String.fromCharCode(233).normalize("NFD")!==String.fromCharCode(101,769))throw new Error("broken implementation")}catch(e){return e.message}return null}();var Ar,wr;!function(e){e.DEBUG="DEBUG",e.INFO="INFO",e.WARNING="WARNING",e.ERROR="ERROR",e.OFF="OFF"}(Ar||(Ar={})),function(e){e.UNKNOWN_ERROR="UNKNOWN_ERROR",e.NOT_IMPLEMENTED="NOT_IMPLEMENTED",e.UNSUPPORTED_OPERATION="UNSUPPORTED_OPERATION",e.NETWORK_ERROR="NETWORK_ERROR",e.SERVER_ERROR="SERVER_ERROR",e.TIMEOUT="TIMEOUT",e.BUFFER_OVERRUN="BUFFER_OVERRUN",e.NUMERIC_FAULT="NUMERIC_FAULT",e.MISSING_NEW="MISSING_NEW",e.INVALID_ARGUMENT="INVALID_ARGUMENT",e.MISSING_ARGUMENT="MISSING_ARGUMENT",e.UNEXPECTED_ARGUMENT="UNEXPECTED_ARGUMENT",e.CALL_EXCEPTION="CALL_EXCEPTION",e.INSUFFICIENT_FUNDS="INSUFFICIENT_FUNDS",e.NONCE_EXPIRED="NONCE_EXPIRED",e.REPLACEMENT_UNDERPRICED="REPLACEMENT_UNDERPRICED",e.UNPREDICTABLE_GAS_LIMIT="UNPREDICTABLE_GAS_LIMIT",e.TRANSACTION_REPLACED="TRANSACTION_REPLACED",e.ACTION_REJECTED="ACTION_REJECTED"}(wr||(wr={}));const Tr="0123456789abcdef";class Er{constructor(e){Object.defineProperty(this,"version",{enumerable:!0,value:e,writable:!1})}_log(e,t){const r=e.toLowerCase();null==yr[r]&&this.throwArgumentError("invalid log level name","logLevel",e),gr>yr[r]||console.log.apply(console,t)}debug(...e){this._log(Er.levels.DEBUG,e)}info(...e){this._log(Er.levels.INFO,e)}warn(...e){this._log(Er.levels.WARNING,e)}makeError(e,t,r){if(mr)return this.makeError("censored error",t,{});t||(t=Er.errors.UNKNOWN_ERROR),r||(r={});const n=[];Object.keys(r).forEach(e=>{const t=r[e];try{if(t instanceof Uint8Array){let r="";for(let e=0;e<t.length;e++)r+=Tr[t[e]>>4],r+=Tr[15&t[e]];n.push(e+"=Uint8Array(0x"+r+")")}else n.push(e+"="+JSON.stringify(t))}catch(t){n.push(e+"="+JSON.stringify(r[e].toString()))}}),n.push(`code=${t}`),n.push(`version=${this.version}`);const i=e;let o="";switch(t){case wr.NUMERIC_FAULT:{o="NUMERIC_FAULT";const t=e;switch(t){case"overflow":case"underflow":case"division-by-zero":o+="-"+t;break;case"negative-power":case"negative-width":o+="-unsupported";break;case"unbound-bitwise-result":o+="-unbound-result"}break}case wr.CALL_EXCEPTION:case wr.INSUFFICIENT_FUNDS:case wr.MISSING_NEW:case wr.NONCE_EXPIRED:case wr.REPLACEMENT_UNDERPRICED:case wr.TRANSACTION_REPLACED:case wr.UNPREDICTABLE_GAS_LIMIT:o=t}o&&(e+=" [ See: https://links.ethers.org/v5-errors-"+o+" ]"),n.length&&(e+=" ("+n.join(", ")+")");const s=new Error(e);return s.reason=i,s.code=t,Object.keys(r).forEach(function(e){s[e]=r[e]}),s}throwError(e,t,r){throw this.makeError(e,t,r)}throwArgumentError(e,t,r){return this.throwError(e,Er.errors.INVALID_ARGUMENT,{argument:t,value:r})}assert(e,t,r,n){e||this.throwError(t,r,n)}assertArgument(e,t,r,n){e||this.throwArgumentError(t,r,n)}checkNormalize(e){vr&&this.throwError("platform missing String.prototype.normalize",Er.errors.UNSUPPORTED_OPERATION,{operation:"String.prototype.normalize",form:vr})}checkSafeUint53(e,t){"number"==typeof e&&(null==t&&(t="value not safe"),(e<0||e>=9007199254740991)&&this.throwError(t,Er.errors.NUMERIC_FAULT,{operation:"checkSafeInteger",fault:"out-of-safe-range",value:e}),e%1&&this.throwError(t,Er.errors.NUMERIC_FAULT,{operation:"checkSafeInteger",fault:"non-integer",value:e}))}checkArgumentCount(e,t,r){r=r?": "+r:"",e<t&&this.throwError("missing argument"+r,Er.errors.MISSING_ARGUMENT,{count:e,expectedCount:t}),e>t&&this.throwError("too many arguments"+r,Er.errors.UNEXPECTED_ARGUMENT,{count:e,expectedCount:t})}checkNew(e,t){e!==Object&&null!=e||this.throwError("missing new",Er.errors.MISSING_NEW,{name:t.name})}checkAbstract(e,t){e===t?this.throwError("cannot instantiate abstract class "+JSON.stringify(t.name)+" directly; use a sub-class",Er.errors.UNSUPPORTED_OPERATION,{name:e.name,operation:"new"}):e!==Object&&null!=e||this.throwError("missing new",Er.errors.MISSING_NEW,{name:t.name})}static globalLogger(){return br||(br=new Er("logger/5.8.0")),br}static setCensorship(e,t){if(!e&&t&&this.globalLogger().throwError("cannot permanently disable censorship",Er.errors.UNSUPPORTED_OPERATION,{operation:"setCensorship"}),fr){if(!e)return;this.globalLogger().throwError("error censorship permanent",Er.errors.UNSUPPORTED_OPERATION,{operation:"setCensorship"})}mr=!!e,fr=!!t}static setLogLevel(e){const t=yr[e.toLowerCase()];null!=t?gr=t:Er.globalLogger().warn("invalid log level - "+e)}static from(e){return new Er(e)}}Er.errors=wr,Er.levels=Ar;const Ir=new Er("bytes/5.8.0");function Sr(e){return!!e.toHexString}function kr(e){return e.slice||(e.slice=function(){const t=Array.prototype.slice.call(arguments);return kr(new Uint8Array(Array.prototype.slice.apply(e,t)))}),e}function Pr(e){return Mr(e)&&!(e.length%2)||xr(e)}function Cr(e){return"number"==typeof e&&e==e&&e%1==0}function xr(e){if(null==e)return!1;if(e.constructor===Uint8Array)return!0;if("string"==typeof e)return!1;if(!Cr(e.length)||e.length<0)return!1;for(let t=0;t<e.length;t++){const r=e[t];if(!Cr(r)||r<0||r>=256)return!1}return!0}function Nr(e,t){if(t||(t={}),"number"==typeof e){Ir.checkSafeUint53(e,"invalid arrayify value");const t=[];for(;e;)t.unshift(255&e),e=parseInt(String(e/256));return 0===t.length&&t.push(0),kr(new Uint8Array(t))}if(t.allowMissingPrefix&&"string"==typeof e&&"0x"!==e.substring(0,2)&&(e="0x"+e),Sr(e)&&(e=e.toHexString()),Mr(e)){let r=e.substring(2);r.length%2&&("left"===t.hexPad?r="0"+r:"right"===t.hexPad?r+="0":Ir.throwArgumentError("hex data is odd-length","value",e));const n=[];for(let e=0;e<r.length;e+=2)n.push(parseInt(r.substring(e,e+2),16));return kr(new Uint8Array(n))}return xr(e)?kr(new Uint8Array(e)):Ir.throwArgumentError("invalid arrayify value","value",e)}function _r(e){const t=e.map(e=>Nr(e)),r=t.reduce((e,t)=>e+t.length,0),n=new Uint8Array(r);return t.reduce((e,t)=>(n.set(t,e),e+t.length),0),kr(n)}function Rr(e){let t=Nr(e);if(0===t.length)return t;let r=0;for(;r<t.length&&0===t[r];)r++;return r&&(t=t.slice(r)),t}function Mr(e,t){return!("string"!=typeof e||!e.match(/^0x[0-9A-Fa-f]*$/)||t&&e.length!==2+2*t)}const Or="0123456789abcdef";function Br(e,t){if(t||(t={}),"number"==typeof e){Ir.checkSafeUint53(e,"invalid hexlify value");let t="";for(;e;)t=Or[15&e]+t,e=Math.floor(e/16);return t.length?(t.length%2&&(t="0"+t),"0x"+t):"0x00"}if("bigint"==typeof e)return(e=e.toString(16)).length%2?"0x0"+e:"0x"+e;if(t.allowMissingPrefix&&"string"==typeof e&&"0x"!==e.substring(0,2)&&(e="0x"+e),Sr(e))return e.toHexString();if(Mr(e))return e.length%2&&("left"===t.hexPad?e="0x0"+e.substring(2):"right"===t.hexPad?e+="0":Ir.throwArgumentError("hex data is odd-length","value",e)),e.toLowerCase();if(xr(e)){let t="0x";for(let r=0;r<e.length;r++){let n=e[r];t+=Or[(240&n)>>4]+Or[15&n]}return t}return Ir.throwArgumentError("invalid hexlify value","value",e)}function Dr(e){if("string"!=typeof e)e=Br(e);else if(!Mr(e)||e.length%2)return null;return(e.length-2)/2}function Fr(e,t,r){return"string"!=typeof e?e=Br(e):(!Mr(e)||e.length%2)&&Ir.throwArgumentError("invalid hexData","value",e),t=2+2*t,null!=r?"0x"+e.substring(t,2+2*r):"0x"+e.substring(t)}function Lr(e){let t="0x";return e.forEach(e=>{t+=Br(e).substring(2)}),t}function Ur(e){const t=function(e){"string"!=typeof e&&(e=Br(e)),Mr(e)||Ir.throwArgumentError("invalid hex string","value",e),e=e.substring(2);let t=0;for(;t<e.length&&"0"===e[t];)t++;return"0x"+e.substring(t)}(Br(e,{hexPad:"left"}));return"0x"===t?"0x0":t}function Gr(e,t){for("string"!=typeof e?e=Br(e):Mr(e)||Ir.throwArgumentError("invalid hex string","value",e),e.length>2*t+2&&Ir.throwArgumentError("value out of range","value",arguments[1]);e.length<2*t+2;)e="0x0"+e.substring(2);return e}function jr(e){const t={r:"0x",s:"0x",_vs:"0x",recoveryParam:0,v:0,yParityAndS:"0x",compact:"0x"};if(Pr(e)){let r=Nr(e);64===r.length?(t.v=27+(r[32]>>7),r[32]&=127,t.r=Br(r.slice(0,32)),t.s=Br(r.slice(32,64))):65===r.length?(t.r=Br(r.slice(0,32)),t.s=Br(r.slice(32,64)),t.v=r[64]):Ir.throwArgumentError("invalid signature string","signature",e),t.v<27&&(0===t.v||1===t.v?t.v+=27:Ir.throwArgumentError("signature invalid v byte","signature",e)),t.recoveryParam=1-t.v%2,t.recoveryParam&&(r[32]|=128),t._vs=Br(r.slice(32,64))}else{if(t.r=e.r,t.s=e.s,t.v=e.v,t.recoveryParam=e.recoveryParam,t._vs=e._vs,null!=t._vs){const r=function(e,t){(e=Nr(e)).length>t&&Ir.throwArgumentError("value out of range","value",arguments[0]);const r=new Uint8Array(t);return r.set(e,t-e.length),kr(r)}(Nr(t._vs),32);t._vs=Br(r);const n=r[0]>=128?1:0;null==t.recoveryParam?t.recoveryParam=n:t.recoveryParam!==n&&Ir.throwArgumentError("signature recoveryParam mismatch _vs","signature",e),r[0]&=127;const i=Br(r);null==t.s?t.s=i:t.s!==i&&Ir.throwArgumentError("signature v mismatch _vs","signature",e)}null==t.recoveryParam?null==t.v?Ir.throwArgumentError("signature missing v and recoveryParam","signature",e):t.recoveryParam=0===t.v||1===t.v?t.v:1-t.v%2:null==t.v?t.v=27+t.recoveryParam:t.recoveryParam!==(0===t.v||1===t.v?t.v:1-t.v%2)&&Ir.throwArgumentError("signature recoveryParam mismatch v","signature",e),null!=t.r&&Mr(t.r)?t.r=Gr(t.r,32):Ir.throwArgumentError("signature missing or invalid r","signature",e),null!=t.s&&Mr(t.s)?t.s=Gr(t.s,32):Ir.throwArgumentError("signature missing or invalid s","signature",e);const r=Nr(t.s);r[0]>=128&&Ir.throwArgumentError("signature s out of range","signature",e),t.recoveryParam&&(r[0]|=128);const n=Br(r);t._vs&&(Mr(t._vs)||Ir.throwArgumentError("signature invalid _vs","signature",e),t._vs=Gr(t._vs,32)),null==t._vs?t._vs=n:t._vs!==n&&Ir.throwArgumentError("signature _vs mismatch v and s","signature",e)}return t.yParityAndS=t._vs,t.compact=t.r+t.yParityAndS.substring(2),t}function Hr(e){return Br(_r([(e=jr(e)).r,e.s,e.recoveryParam?"0x1c":"0x1b"]))}const qr="bignumber/5.8.0";var Vr=pr.BN;const zr=new Er(qr),Kr={},Wr=9007199254740991;let Jr=!1;class Qr{constructor(e,t){e!==Kr&&zr.throwError("cannot call constructor directly; use BigNumber.from",Er.errors.UNSUPPORTED_OPERATION,{operation:"new (BigNumber)"}),this._hex=t,this._isBigNumber=!0,Object.freeze(this)}fromTwos(e){return Xr(Zr(this).fromTwos(e))}toTwos(e){return Xr(Zr(this).toTwos(e))}abs(){return"-"===this._hex[0]?Qr.from(this._hex.substring(1)):this}add(e){return Xr(Zr(this).add(Zr(e)))}sub(e){return Xr(Zr(this).sub(Zr(e)))}div(e){return Qr.from(e).isZero()&&$r("division-by-zero","div"),Xr(Zr(this).div(Zr(e)))}mul(e){return Xr(Zr(this).mul(Zr(e)))}mod(e){const t=Zr(e);return t.isNeg()&&$r("division-by-zero","mod"),Xr(Zr(this).umod(t))}pow(e){const t=Zr(e);return t.isNeg()&&$r("negative-power","pow"),Xr(Zr(this).pow(t))}and(e){const t=Zr(e);return(this.isNegative()||t.isNeg())&&$r("unbound-bitwise-result","and"),Xr(Zr(this).and(t))}or(e){const t=Zr(e);return(this.isNegative()||t.isNeg())&&$r("unbound-bitwise-result","or"),Xr(Zr(this).or(t))}xor(e){const t=Zr(e);return(this.isNegative()||t.isNeg())&&$r("unbound-bitwise-result","xor"),Xr(Zr(this).xor(t))}mask(e){return(this.isNegative()||e<0)&&$r("negative-width","mask"),Xr(Zr(this).maskn(e))}shl(e){return(this.isNegative()||e<0)&&$r("negative-width","shl"),Xr(Zr(this).shln(e))}shr(e){return(this.isNegative()||e<0)&&$r("negative-width","shr"),Xr(Zr(this).shrn(e))}eq(e){return Zr(this).eq(Zr(e))}lt(e){return Zr(this).lt(Zr(e))}lte(e){return Zr(this).lte(Zr(e))}gt(e){return Zr(this).gt(Zr(e))}gte(e){return Zr(this).gte(Zr(e))}isNegative(){return"-"===this._hex[0]}isZero(){return Zr(this).isZero()}toNumber(){try{return Zr(this).toNumber()}catch(e){$r("overflow","toNumber",this.toString())}return null}toBigInt(){try{return BigInt(this.toString())}catch(e){}return zr.throwError("this platform does not support BigInt",Er.errors.UNSUPPORTED_OPERATION,{value:this.toString()})}toString(){return arguments.length>0&&(10===arguments[0]?Jr||(Jr=!0,zr.warn("BigNumber.toString does not accept any parameters; base-10 is assumed")):zr.throwError(16===arguments[0]?"BigNumber.toString does not accept any parameters; use bigNumber.toHexString()":"BigNumber.toString does not accept parameters",Er.errors.UNEXPECTED_ARGUMENT,{})),Zr(this).toString(10)}toHexString(){return this._hex}toJSON(e){return{type:"BigNumber",hex:this.toHexString()}}static from(e){if(e instanceof Qr)return e;if("string"==typeof e)return e.match(/^-?0x[0-9a-f]+$/i)?new Qr(Kr,Yr(e)):e.match(/^-?[0-9]+$/)?new Qr(Kr,Yr(new Vr(e))):zr.throwArgumentError("invalid BigNumber string","value",e);if("number"==typeof e)return e%1&&$r("underflow","BigNumber.from",e),(e>=Wr||e<=-Wr)&&$r("overflow","BigNumber.from",e),Qr.from(String(e));const t=e;if("bigint"==typeof t)return Qr.from(t.toString());if(xr(t))return Qr.from(Br(t));if(t)if(t.toHexString){const e=t.toHexString();if("string"==typeof e)return Qr.from(e)}else{let e=t._hex;if(null==e&&"BigNumber"===t.type&&(e=t.hex),"string"==typeof e&&(Mr(e)||"-"===e[0]&&Mr(e.substring(1))))return Qr.from(e)}return zr.throwArgumentError("invalid BigNumber value","value",e)}static isBigNumber(e){return!(!e||!e._isBigNumber)}}function Yr(e){if("string"!=typeof e)return Yr(e.toString(16));if("-"===e[0])return"-"===(e=e.substring(1))[0]&&zr.throwArgumentError("invalid hex","value",e),"0x00"===(e=Yr(e))?e:"-"+e;if("0x"!==e.substring(0,2)&&(e="0x"+e),"0x"===e)return"0x00";for(e.length%2&&(e="0x0"+e.substring(2));e.length>4&&"0x00"===e.substring(0,4);)e="0x"+e.substring(4);return e}function Xr(e){return Qr.from(Yr(e))}function Zr(e){const t=Qr.from(e).toHexString();return new Vr("-"===t[0]?"-"+t.substring(3):t.substring(2),16)}function $r(e,t,r){const n={fault:e,operation:t};return null!=r&&(n.value=r),zr.throwError(e,Er.errors.NUMERIC_FAULT,n)}const en=new Er(qr),tn={},rn=Qr.from(0),nn=Qr.from(-1);function on(e,t,r,n){const i={fault:t,operation:r};return void 0!==n&&(i.value=n),en.throwError(e,Er.errors.NUMERIC_FAULT,i)}let sn="0";for(;sn.length<256;)sn+=sn;function an(e){if("number"!=typeof e)try{e=Qr.from(e).toNumber()}catch(e){}return"number"==typeof e&&e>=0&&e<=256&&!(e%1)?"1"+sn.substring(0,e):en.throwArgumentError("invalid decimal size","decimals",e)}function un(e,t){null==t&&(t=0);const r=an(t),n=(e=Qr.from(e)).lt(rn);n&&(e=e.mul(nn));let i=e.mod(r).toString();for(;i.length<r.length-1;)i="0"+i;i=i.match(/^([0-9]*[1-9]|0)(0*)/)[1];const o=e.div(r).toString();return e=1===r.length?o:o+"."+i,n&&(e="-"+e),e}function ln(e,t){null==t&&(t=0);const r=an(t);"string"==typeof e&&e.match(/^-?[0-9.]+$/)||en.throwArgumentError("invalid decimal value","value",e);const n="-"===e.substring(0,1);n&&(e=e.substring(1)),"."===e&&en.throwArgumentError("missing value","value",e);const i=e.split(".");i.length>2&&en.throwArgumentError("too many decimal points","value",e);let o=i[0],s=i[1];for(o||(o="0"),s||(s="0");"0"===s[s.length-1];)s=s.substring(0,s.length-1);for(s.length>r.length-1&&on("fractional component exceeds decimals","underflow","parseFixed"),""===s&&(s="0");s.length<r.length-1;)s+="0";const a=Qr.from(o),u=Qr.from(s);let l=a.mul(r).add(u);return n&&(l=l.mul(nn)),l}class cn{constructor(e,t,r,n){e!==tn&&en.throwError("cannot use FixedFormat constructor; use FixedFormat.from",Er.errors.UNSUPPORTED_OPERATION,{operation:"new FixedFormat"}),this.signed=t,this.width=r,this.decimals=n,this.name=(t?"":"u")+"fixed"+String(r)+"x"+String(n),this._multiplier=an(n),Object.freeze(this)}static from(e){if(e instanceof cn)return e;"number"==typeof e&&(e=`fixed128x${e}`);let t=!0,r=128,n=18;if("string"==typeof e)if("fixed"===e);else if("ufixed"===e)t=!1;else{const i=e.match(/^(u?)fixed([0-9]+)x([0-9]+)$/);i||en.throwArgumentError("invalid fixed format","format",e),t="u"!==i[1],r=parseInt(i[2]),n=parseInt(i[3])}else if(e){const i=(t,r,n)=>null==e[t]?n:(typeof e[t]!==r&&en.throwArgumentError("invalid fixed format ("+t+" not "+r+")","format."+t,e[t]),e[t]);t=i("signed","boolean",t),r=i("width","number",r),n=i("decimals","number",n)}return r%8&&en.throwArgumentError("invalid fixed format width (not byte aligned)","format.width",r),n>80&&en.throwArgumentError("invalid fixed format (decimals too large)","format.decimals",n),new cn(tn,t,r,n)}}class dn{constructor(e,t,r,n){e!==tn&&en.throwError("cannot use FixedNumber constructor; use FixedNumber.from",Er.errors.UNSUPPORTED_OPERATION,{operation:"new FixedFormat"}),this.format=n,this._hex=t,this._value=r,this._isFixedNumber=!0,Object.freeze(this)}_checkFormat(e){this.format.name!==e.format.name&&en.throwArgumentError("incompatible format; use fixedNumber.toFormat","other",e)}addUnsafe(e){this._checkFormat(e);const t=ln(this._value,this.format.decimals),r=ln(e._value,e.format.decimals);return dn.fromValue(t.add(r),this.format.decimals,this.format)}subUnsafe(e){this._checkFormat(e);const t=ln(this._value,this.format.decimals),r=ln(e._value,e.format.decimals);return dn.fromValue(t.sub(r),this.format.decimals,this.format)}mulUnsafe(e){this._checkFormat(e);const t=ln(this._value,this.format.decimals),r=ln(e._value,e.format.decimals);return dn.fromValue(t.mul(r).div(this.format._multiplier),this.format.decimals,this.format)}divUnsafe(e){this._checkFormat(e);const t=ln(this._value,this.format.decimals),r=ln(e._value,e.format.decimals);return dn.fromValue(t.mul(this.format._multiplier).div(r),this.format.decimals,this.format)}floor(){const e=this.toString().split(".");1===e.length&&e.push("0");let t=dn.from(e[0],this.format);const r=!e[1].match(/^(0*)$/);return this.isNegative()&&r&&(t=t.subUnsafe(hn.toFormat(t.format))),t}ceiling(){const e=this.toString().split(".");1===e.length&&e.push("0");let t=dn.from(e[0],this.format);const r=!e[1].match(/^(0*)$/);return!this.isNegative()&&r&&(t=t.addUnsafe(hn.toFormat(t.format))),t}round(e){null==e&&(e=0);const t=this.toString().split(".");if(1===t.length&&t.push("0"),(e<0||e>80||e%1)&&en.throwArgumentError("invalid decimal count","decimals",e),t[1].length<=e)return this;const r=dn.from("1"+sn.substring(0,e),this.format),n=pn.toFormat(this.format);return this.mulUnsafe(r).addUnsafe(n).floor().divUnsafe(r)}isZero(){return"0.0"===this._value||"0"===this._value}isNegative(){return"-"===this._value[0]}toString(){return this._value}toHexString(e){return null==e?this._hex:(e%8&&en.throwArgumentError("invalid byte width","width",e),Gr(Qr.from(this._hex).fromTwos(this.format.width).toTwos(e).toHexString(),e/8))}toUnsafeFloat(){return parseFloat(this.toString())}toFormat(e){return dn.fromString(this._value,e)}static fromValue(e,t,r){return null!=r||null==t||function(e){return null!=e&&(Qr.isBigNumber(e)||"number"==typeof e&&e%1==0||"string"==typeof e&&!!e.match(/^-?[0-9]+$/)||Mr(e)||"bigint"==typeof e||xr(e))}(t)||(r=t,t=null),null==t&&(t=0),null==r&&(r="fixed"),dn.fromString(un(e,t),cn.from(r))}static fromString(e,t){null==t&&(t="fixed");const r=cn.from(t),n=ln(e,r.decimals);!r.signed&&n.lt(rn)&&on("unsigned value cannot be negative","overflow","value",e);let i=null;r.signed?i=n.toTwos(r.width).toHexString():(i=n.toHexString(),i=Gr(i,r.width/8));const o=un(n,r.decimals);return new dn(tn,i,o,r)}static fromBytes(e,t){null==t&&(t="fixed");const r=cn.from(t);if(Nr(e).length>r.width/8)throw new Error("overflow");let n=Qr.from(e);r.signed&&(n=n.fromTwos(r.width));const i=n.toTwos((r.signed?0:1)+r.width).toHexString(),o=un(n,r.decimals);return new dn(tn,i,o,r)}static from(e,t){if("string"==typeof e)return dn.fromString(e,t);if(xr(e))return dn.fromBytes(e,t);try{return dn.fromValue(e,0,t)}catch(e){if(e.code!==Er.errors.INVALID_ARGUMENT)throw e}return en.throwArgumentError("invalid FixedNumber value","value",e)}static isFixedNumber(e){return!(!e||!e._isFixedNumber)}}const hn=dn.from(1),pn=dn.from("0.5");var fn=function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function s(e){try{u(n.next(e))}catch(e){o(e)}}function a(e){try{u(n.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r(function(e){e(t)})).then(s,a)}u((n=n.apply(e,t||[])).next())})};const mn=new Er("properties/5.8.0");function yn(e,t,r){Object.defineProperty(e,t,{enumerable:!0,value:r,writable:!1})}function gn(e,t){for(let r=0;r<32;r++){if(e[t])return e[t];if(!e.prototype||"object"!=typeof e.prototype)break;e=Object.getPrototypeOf(e.prototype).constructor}return null}function bn(e){return fn(this,void 0,void 0,function*(){const t=Object.keys(e).map(t=>Promise.resolve(e[t]).then(e=>({key:t,value:e})));return(yield Promise.all(t)).reduce((e,t)=>(e[t.key]=t.value,e),{})})}function vn(e,t){e&&"object"==typeof e||mn.throwArgumentError("invalid object","object",e),Object.keys(e).forEach(r=>{t[r]||mn.throwArgumentError("invalid object key - "+r,"transaction:"+r,e)})}function An(e){const t={};for(const r in e)t[r]=e[r];return t}const wn={bigint:!0,boolean:!0,function:!0,number:!0,string:!0};function Tn(e){if(null==e||wn[typeof e])return!0;if(Array.isArray(e)||"object"==typeof e){if(!Object.isFrozen(e))return!1;const t=Object.keys(e);for(let r=0;r<t.length;r++){let n=null;try{n=e[t[r]]}catch(e){continue}if(!Tn(n))return!1}return!0}return mn.throwArgumentError("Cannot deepCopy "+typeof e,"object",e)}function En(e){if(Tn(e))return e;if(Array.isArray(e))return Object.freeze(e.map(e=>In(e)));if("object"==typeof e){const t={};for(const r in e){const n=e[r];void 0!==n&&yn(t,r,In(n))}return t}return mn.throwArgumentError("Cannot deepCopy "+typeof e,"object",e)}function In(e){return En(e)}class Sn{constructor(e){for(const t in e)this[t]=In(e[t])}}const kn=new Er("abstract-provider/5.8.0");class Pn extends Sn{static isForkEvent(e){return!(!e||!e._isForkEvent)}}class Cn{constructor(){kn.checkAbstract(new.target,Cn),yn(this,"_isProvider",!0)}getFeeData(){return e=this,r=function*(){const{block:e,gasPrice:t}=yield bn({block:this.getBlock("latest"),gasPrice:this.getGasPrice().catch(e=>null)});let r=null,n=null,i=null;return e&&e.baseFeePerGas&&(r=e.baseFeePerGas,i=Qr.from("1500000000"),n=e.baseFeePerGas.mul(2).add(i)),{lastBaseFeePerGas:r,maxFeePerGas:n,maxPriorityFeePerGas:i,gasPrice:t}},new((t=void 0)||(t=Promise))(function(n,i){function o(e){try{a(r.next(e))}catch(e){i(e)}}function s(e){try{a(r.throw(e))}catch(e){i(e)}}function a(e){var r;e.done?n(e.value):(r=e.value,r instanceof t?r:new t(function(e){e(r)})).then(o,s)}a((r=r.apply(e,[])).next())});var e,t,r}addListener(e,t){return this.on(e,t)}removeListener(e,t){return this.off(e,t)}static isProvider(e){return!(!e||!e._isProvider)}}const xn=new Er("networks/5.8.0");function Nn(e){const t=function(t,r){null==r&&(r={});const n=[];if(t.InfuraProvider&&"-"!==r.infura)try{n.push(new t.InfuraProvider(e,r.infura))}catch(e){}if(t.EtherscanProvider&&"-"!==r.etherscan)try{n.push(new t.EtherscanProvider(e,r.etherscan))}catch(e){}if(t.AlchemyProvider&&"-"!==r.alchemy)try{n.push(new t.AlchemyProvider(e,r.alchemy))}catch(e){}if(t.PocketProvider&&"-"!==r.pocket){const i=["goerli","ropsten","rinkeby","sepolia"];try{const o=new t.PocketProvider(e,r.pocket);o.network&&-1===i.indexOf(o.network.name)&&n.push(o)}catch(e){}}if(t.CloudflareProvider&&"-"!==r.cloudflare)try{n.push(new t.CloudflareProvider(e))}catch(e){}if(t.AnkrProvider&&"-"!==r.ankr)try{const i=["ropsten"],o=new t.AnkrProvider(e,r.ankr);o.network&&-1===i.indexOf(o.network.name)&&n.push(o)}catch(e){}if(t.QuickNodeProvider&&"-"!==r.quicknode)try{n.push(new t.QuickNodeProvider(e,r.quicknode))}catch(e){}if(0===n.length)return null;if(t.FallbackProvider){let i=1;return null!=r.quorum?i=r.quorum:"homestead"===e&&(i=2),new t.FallbackProvider(n,i)}return n[0]};return t.renetwork=function(e){return Nn(e)},t}function _n(e,t){const r=function(r,n){return r.JsonRpcProvider?new r.JsonRpcProvider(e,t):null};return r.renetwork=function(t){return _n(e,t)},r}const Rn={chainId:1,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"homestead",_defaultProvider:Nn("homestead")},Mn={chainId:3,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"ropsten",_defaultProvider:Nn("ropsten")},On={chainId:63,name:"classicMordor",_defaultProvider:_n("https://www.ethercluster.com/mordor","classicMordor")},Bn={unspecified:{chainId:0,name:"unspecified"},homestead:Rn,mainnet:Rn,morden:{chainId:2,name:"morden"},ropsten:Mn,testnet:Mn,rinkeby:{chainId:4,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"rinkeby",_defaultProvider:Nn("rinkeby")},kovan:{chainId:42,name:"kovan",_defaultProvider:Nn("kovan")},goerli:{chainId:5,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"goerli",_defaultProvider:Nn("goerli")},kintsugi:{chainId:1337702,name:"kintsugi"},sepolia:{chainId:11155111,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"sepolia",_defaultProvider:Nn("sepolia")},holesky:{chainId:17e3,name:"holesky",_defaultProvider:Nn("holesky")},classic:{chainId:61,name:"classic",_defaultProvider:_n("https://www.ethercluster.com/etc","classic")},classicMorden:{chainId:62,name:"classicMorden"},classicMordor:On,classicTestnet:On,classicKotti:{chainId:6,name:"classicKotti",_defaultProvider:_n("https://www.ethercluster.com/kotti","classicKotti")},xdai:{chainId:100,name:"xdai"},matic:{chainId:137,name:"matic",_defaultProvider:Nn("matic")},maticmum:{chainId:80001,name:"maticmum",_defaultProvider:Nn("maticmum")},optimism:{chainId:10,name:"optimism",_defaultProvider:Nn("optimism")},"optimism-kovan":{chainId:69,name:"optimism-kovan"},"optimism-goerli":{chainId:420,name:"optimism-goerli"},"optimism-sepolia":{chainId:11155420,name:"optimism-sepolia"},arbitrum:{chainId:42161,name:"arbitrum"},"arbitrum-rinkeby":{chainId:421611,name:"arbitrum-rinkeby"},"arbitrum-goerli":{chainId:421613,name:"arbitrum-goerli"},"arbitrum-sepolia":{chainId:421614,name:"arbitrum-sepolia"},bnb:{chainId:56,name:"bnb"},bnbt:{chainId:97,name:"bnbt"}};function Dn(e){e=atob(e);const t=[];for(let r=0;r<e.length;r++)t.push(e.charCodeAt(r));return Nr(t)}function Fn(e){e=Nr(e);let t="";for(let r=0;r<e.length;r++)t+=String.fromCharCode(e[r]);return btoa(t)}class Ln{constructor(e){yn(this,"alphabet",e),yn(this,"base",e.length),yn(this,"_alphabetMap",{}),yn(this,"_leader",e.charAt(0));for(let t=0;t<e.length;t++)this._alphabetMap[e.charAt(t)]=t}encode(e){let t=Nr(e);if(0===t.length)return"";let r=[0];for(let e=0;e<t.length;++e){let n=t[e];for(let e=0;e<r.length;++e)n+=r[e]<<8,r[e]=n%this.base,n=n/this.base|0;for(;n>0;)r.push(n%this.base),n=n/this.base|0}let n="";for(let e=0;0===t[e]&&e<t.length-1;++e)n+=this._leader;for(let e=r.length-1;e>=0;--e)n+=this.alphabet[r[e]];return n}decode(e){if("string"!=typeof e)throw new TypeError("Expected String");let t=[];if(0===e.length)return new Uint8Array(t);t.push(0);for(let r=0;r<e.length;r++){let n=this._alphabetMap[e[r]];if(void 0===n)throw new Error("Non-base"+this.base+" character");let i=n;for(let e=0;e<t.length;++e)i+=t[e]*this.base,t[e]=255&i,i>>=8;for(;i>0;)t.push(255&i),i>>=8}for(let r=0;e[r]===this._leader&&r<e.length-1;++r)t.push(0);return Nr(new Uint8Array(t.reverse()))}}new Ln("abcdefghijklmnopqrstuvwxyz234567");const Un=new Ln("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"),Gn=/*#__PURE__*/Qr.from(-1),jn=/*#__PURE__*/Qr.from(0),Hn=/*#__PURE__*/Qr.from(1),qn=/*#__PURE__*/Qr.from("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");var Vn=dr(function(e){!function(){var t="input is invalid type",r="object"==typeof window,n=r?window:{};n.JS_SHA3_NO_WINDOW&&(r=!1);var i=!r&&"object"==typeof self;!n.JS_SHA3_NO_NODE_JS&&"object"==typeof process&&process.versions&&process.versions.node?n=cr:i&&(n=self);var o=!n.JS_SHA3_NO_COMMON_JS&&e.exports,s=!n.JS_SHA3_NO_ARRAY_BUFFER&&"undefined"!=typeof ArrayBuffer,a="0123456789abcdef".split(""),u=[4,1024,262144,67108864],l=[0,8,16,24],c=[1,0,32898,0,32906,2147483648,2147516416,2147483648,32907,0,2147483649,0,2147516545,2147483648,32777,2147483648,138,0,136,0,2147516425,0,2147483658,0,2147516555,0,139,2147483648,32905,2147483648,32771,2147483648,32770,2147483648,128,2147483648,32778,0,2147483658,2147483648,2147516545,2147483648,32896,2147483648,2147483649,0,2147516424,2147483648],d=[224,256,384,512],h=[128,256],p=["hex","buffer","arrayBuffer","array","digest"],f={128:168,256:136};!n.JS_SHA3_NO_NODE_JS&&Array.isArray||(Array.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),!s||!n.JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW&&ArrayBuffer.isView||(ArrayBuffer.isView=function(e){return"object"==typeof e&&e.buffer&&e.buffer.constructor===ArrayBuffer});for(var m=function(e,t,r){return function(n){return new N(e,t,e).update(n)[r]()}},y=function(e,t,r){return function(n,i){return new N(e,t,i).update(n)[r]()}},g=function(e,t,r){return function(t,n,i,o){return T["cshake"+e].update(t,n,i,o)[r]()}},b=function(e,t,r){return function(t,n,i,o){return T["kmac"+e].update(t,n,i,o)[r]()}},v=function(e,t,r,n){for(var i=0;i<p.length;++i){var o=p[i];e[o]=t(r,n,o)}return e},A=function(e,t){var r=m(e,t,"hex");return r.create=function(){return new N(e,t,e)},r.update=function(e){return r.create().update(e)},v(r,m,e,t)},w=[{name:"keccak",padding:[1,256,65536,16777216],bits:d,createMethod:A},{name:"sha3",padding:[6,1536,393216,100663296],bits:d,createMethod:A},{name:"shake",padding:[31,7936,2031616,520093696],bits:h,createMethod:function(e,t){var r=y(e,t,"hex");return r.create=function(r){return new N(e,t,r)},r.update=function(e,t){return r.create(t).update(e)},v(r,y,e,t)}},{name:"cshake",padding:u,bits:h,createMethod:function(e,t){var r=f[e],n=g(e,0,"hex");return n.create=function(n,i,o){return i||o?new N(e,t,n).bytepad([i,o],r):T["shake"+e].create(n)},n.update=function(e,t,r,i){return n.create(t,r,i).update(e)},v(n,g,e,t)}},{name:"kmac",padding:u,bits:h,createMethod:function(e,t){var r=f[e],n=b(e,0,"hex");return n.create=function(n,i,o){return new _(e,t,i).bytepad(["KMAC",o],r).bytepad([n],r)},n.update=function(e,t,r,i){return n.create(e,r,i).update(t)},v(n,b,e,t)}}],T={},E=[],I=0;I<w.length;++I)for(var S=w[I],k=S.bits,P=0;P<k.length;++P){var C=S.name+"_"+k[P];if(E.push(C),T[C]=S.createMethod(k[P],S.padding),"sha3"!==S.name){var x=S.name+k[P];E.push(x),T[x]=T[C]}}function N(e,t,r){this.blocks=[],this.s=[],this.padding=t,this.outputBits=r,this.reset=!0,this.finalized=!1,this.block=0,this.start=0,this.blockCount=1600-(e<<1)>>5,this.byteCount=this.blockCount<<2,this.outputBlocks=r>>5,this.extraBytes=(31&r)>>3;for(var n=0;n<50;++n)this.s[n]=0}function _(e,t,r){N.call(this,e,t,r)}N.prototype.update=function(e){if(this.finalized)throw new Error("finalize already called");var r,n=typeof e;if("string"!==n){if("object"!==n)throw new Error(t);if(null===e)throw new Error(t);if(s&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!(Array.isArray(e)||s&&ArrayBuffer.isView(e)))throw new Error(t);r=!0}for(var i,o,a=this.blocks,u=this.byteCount,c=e.length,d=this.blockCount,h=0,p=this.s;h<c;){if(this.reset)for(this.reset=!1,a[0]=this.block,i=1;i<d+1;++i)a[i]=0;if(r)for(i=this.start;h<c&&i<u;++h)a[i>>2]|=e[h]<<l[3&i++];else for(i=this.start;h<c&&i<u;++h)(o=e.charCodeAt(h))<128?a[i>>2]|=o<<l[3&i++]:o<2048?(a[i>>2]|=(192|o>>6)<<l[3&i++],a[i>>2]|=(128|63&o)<<l[3&i++]):o<55296||o>=57344?(a[i>>2]|=(224|o>>12)<<l[3&i++],a[i>>2]|=(128|o>>6&63)<<l[3&i++],a[i>>2]|=(128|63&o)<<l[3&i++]):(o=65536+((1023&o)<<10|1023&e.charCodeAt(++h)),a[i>>2]|=(240|o>>18)<<l[3&i++],a[i>>2]|=(128|o>>12&63)<<l[3&i++],a[i>>2]|=(128|o>>6&63)<<l[3&i++],a[i>>2]|=(128|63&o)<<l[3&i++]);if(this.lastByteIndex=i,i>=u){for(this.start=i-u,this.block=a[d],i=0;i<d;++i)p[i]^=a[i];R(p),this.reset=!0}else this.start=i}return this},N.prototype.encode=function(e,t){var r=255&e,n=1,i=[r];for(r=255&(e>>=8);r>0;)i.unshift(r),r=255&(e>>=8),++n;return t?i.push(n):i.unshift(n),this.update(i),i.length},N.prototype.encodeString=function(e){var r,n=typeof e;if("string"!==n){if("object"!==n)throw new Error(t);if(null===e)throw new Error(t);if(s&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!(Array.isArray(e)||s&&ArrayBuffer.isView(e)))throw new Error(t);r=!0}var i=0;if(r)i=e.length;else for(var o=0;o<e.length;++o){var a=e.charCodeAt(o);a<128?i+=1:a<2048?i+=2:a<55296||a>=57344?i+=3:(a=65536+((1023&a)<<10|1023&e.charCodeAt(++o)),i+=4)}return i+=this.encode(8*i),this.update(e),i},N.prototype.bytepad=function(e,t){for(var r=this.encode(t),n=0;n<e.length;++n)r+=this.encodeString(e[n]);var i=[];return i.length=t-r%t,this.update(i),this},N.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var e=this.blocks,t=this.lastByteIndex,r=this.blockCount,n=this.s;if(e[t>>2]|=this.padding[3&t],this.lastByteIndex===this.byteCount)for(e[0]=e[r],t=1;t<r+1;++t)e[t]=0;for(e[r-1]|=2147483648,t=0;t<r;++t)n[t]^=e[t];R(n)}},N.prototype.toString=N.prototype.hex=function(){this.finalize();for(var e,t=this.blockCount,r=this.s,n=this.outputBlocks,i=this.extraBytes,o=0,s=0,u="";s<n;){for(o=0;o<t&&s<n;++o,++s)u+=a[(e=r[o])>>4&15]+a[15&e]+a[e>>12&15]+a[e>>8&15]+a[e>>20&15]+a[e>>16&15]+a[e>>28&15]+a[e>>24&15];s%t==0&&(R(r),o=0)}return i&&(u+=a[(e=r[o])>>4&15]+a[15&e],i>1&&(u+=a[e>>12&15]+a[e>>8&15]),i>2&&(u+=a[e>>20&15]+a[e>>16&15])),u},N.prototype.arrayBuffer=function(){this.finalize();var e,t=this.blockCount,r=this.s,n=this.outputBlocks,i=this.extraBytes,o=0,s=0,a=this.outputBits>>3;e=i?new ArrayBuffer(n+1<<2):new ArrayBuffer(a);for(var u=new Uint32Array(e);s<n;){for(o=0;o<t&&s<n;++o,++s)u[s]=r[o];s%t==0&&R(r)}return i&&(u[o]=r[o],e=e.slice(0,a)),e},N.prototype.buffer=N.prototype.arrayBuffer,N.prototype.digest=N.prototype.array=function(){this.finalize();for(var e,t,r=this.blockCount,n=this.s,i=this.outputBlocks,o=this.extraBytes,s=0,a=0,u=[];a<i;){for(s=0;s<r&&a<i;++s,++a)u[e=a<<2]=255&(t=n[s]),u[e+1]=t>>8&255,u[e+2]=t>>16&255,u[e+3]=t>>24&255;a%r==0&&R(n)}return o&&(u[e=a<<2]=255&(t=n[s]),o>1&&(u[e+1]=t>>8&255),o>2&&(u[e+2]=t>>16&255)),u},(_.prototype=new N).finalize=function(){return this.encode(this.outputBits,!0),N.prototype.finalize.call(this)};var R=function(e){var t,r,n,i,o,s,a,u,l,d,h,p,f,m,y,g,b,v,A,w,T,E,I,S,k,P,C,x,N,_,R,M,O,B,D,F,L,U,G,j,H,q,V,z,K,W,J,Q,Y,X,Z,$,ee,te,re,ne,ie,oe,se,ae,ue,le,ce;for(n=0;n<48;n+=2)i=e[0]^e[10]^e[20]^e[30]^e[40],o=e[1]^e[11]^e[21]^e[31]^e[41],u=e[4]^e[14]^e[24]^e[34]^e[44],l=e[5]^e[15]^e[25]^e[35]^e[45],d=e[6]^e[16]^e[26]^e[36]^e[46],h=e[7]^e[17]^e[27]^e[37]^e[47],r=(f=e[9]^e[19]^e[29]^e[39]^e[49])^((a=e[3]^e[13]^e[23]^e[33]^e[43])<<1|(s=e[2]^e[12]^e[22]^e[32]^e[42])>>>31),e[0]^=t=(p=e[8]^e[18]^e[28]^e[38]^e[48])^(s<<1|a>>>31),e[1]^=r,e[10]^=t,e[11]^=r,e[20]^=t,e[21]^=r,e[30]^=t,e[31]^=r,e[40]^=t,e[41]^=r,r=o^(l<<1|u>>>31),e[2]^=t=i^(u<<1|l>>>31),e[3]^=r,e[12]^=t,e[13]^=r,e[22]^=t,e[23]^=r,e[32]^=t,e[33]^=r,e[42]^=t,e[43]^=r,r=a^(h<<1|d>>>31),e[4]^=t=s^(d<<1|h>>>31),e[5]^=r,e[14]^=t,e[15]^=r,e[24]^=t,e[25]^=r,e[34]^=t,e[35]^=r,e[44]^=t,e[45]^=r,r=l^(f<<1|p>>>31),e[6]^=t=u^(p<<1|f>>>31),e[7]^=r,e[16]^=t,e[17]^=r,e[26]^=t,e[27]^=r,e[36]^=t,e[37]^=r,e[46]^=t,e[47]^=r,r=h^(o<<1|i>>>31),e[8]^=t=d^(i<<1|o>>>31),e[9]^=r,e[18]^=t,e[19]^=r,e[28]^=t,e[29]^=r,e[38]^=t,e[39]^=r,e[48]^=t,e[49]^=r,y=e[1],W=e[11]<<4|e[10]>>>28,J=e[10]<<4|e[11]>>>28,x=e[20]<<3|e[21]>>>29,N=e[21]<<3|e[20]>>>29,ae=e[31]<<9|e[30]>>>23,ue=e[30]<<9|e[31]>>>23,q=e[40]<<18|e[41]>>>14,V=e[41]<<18|e[40]>>>14,B=e[2]<<1|e[3]>>>31,D=e[3]<<1|e[2]>>>31,b=e[12]<<12|e[13]>>>20,Q=e[22]<<10|e[23]>>>22,Y=e[23]<<10|e[22]>>>22,_=e[33]<<13|e[32]>>>19,R=e[32]<<13|e[33]>>>19,le=e[42]<<2|e[43]>>>30,ce=e[43]<<2|e[42]>>>30,te=e[5]<<30|e[4]>>>2,re=e[4]<<30|e[5]>>>2,F=e[14]<<6|e[15]>>>26,L=e[15]<<6|e[14]>>>26,A=e[24]<<11|e[25]>>>21,X=e[34]<<15|e[35]>>>17,Z=e[35]<<15|e[34]>>>17,M=e[45]<<29|e[44]>>>3,O=e[44]<<29|e[45]>>>3,S=e[6]<<28|e[7]>>>4,k=e[7]<<28|e[6]>>>4,ne=e[17]<<23|e[16]>>>9,ie=e[16]<<23|e[17]>>>9,U=e[26]<<25|e[27]>>>7,G=e[27]<<25|e[26]>>>7,w=e[36]<<21|e[37]>>>11,T=e[37]<<21|e[36]>>>11,$=e[47]<<24|e[46]>>>8,ee=e[46]<<24|e[47]>>>8,z=e[8]<<27|e[9]>>>5,K=e[9]<<27|e[8]>>>5,P=e[18]<<20|e[19]>>>12,C=e[19]<<20|e[18]>>>12,oe=e[29]<<7|e[28]>>>25,se=e[28]<<7|e[29]>>>25,j=e[38]<<8|e[39]>>>24,H=e[39]<<8|e[38]>>>24,E=e[48]<<14|e[49]>>>18,I=e[49]<<14|e[48]>>>18,e[0]=(m=e[0])^~(g=e[13]<<12|e[12]>>>20)&(v=e[25]<<11|e[24]>>>21),e[1]=y^~b&A,e[10]=S^~P&x,e[11]=k^~C&N,e[20]=B^~F&U,e[21]=D^~L&G,e[30]=z^~W&Q,e[31]=K^~J&Y,e[40]=te^~ne&oe,e[41]=re^~ie&se,e[2]=g^~v&w,e[3]=b^~A&T,e[12]=P^~x&_,e[13]=C^~N&R,e[22]=F^~U&j,e[23]=L^~G&H,e[32]=W^~Q&X,e[33]=J^~Y&Z,e[42]=ne^~oe&ae,e[43]=ie^~se&ue,e[4]=v^~w&E,e[5]=A^~T&I,e[14]=x^~_&M,e[15]=N^~R&O,e[24]=U^~j&q,e[25]=G^~H&V,e[34]=Q^~X&$,e[35]=Y^~Z&ee,e[44]=oe^~ae&le,e[45]=se^~ue&ce,e[6]=w^~E&m,e[7]=T^~I&y,e[16]=_^~M&S,e[17]=R^~O&k,e[26]=j^~q&B,e[27]=H^~V&D,e[36]=X^~$&z,e[37]=Z^~ee&K,e[46]=ae^~le&te,e[47]=ue^~ce&re,e[8]=E^~m&g,e[9]=I^~y&b,e[18]=M^~S&P,e[19]=O^~k&C,e[28]=q^~B&F,e[29]=V^~D&L,e[38]=$^~z&W,e[39]=ee^~K&J,e[48]=le^~te&ne,e[49]=ce^~re&ie,e[0]^=c[n],e[1]^=c[n+1]};if(o)e.exports=T;else for(I=0;I<E.length;++I)n[E[I]]=T[E[I]]}()}),zn=Vn;function Kn(e){return"0x"+zn.keccak_256(Nr(e))}const Wn=new Er("strings/5.8.0");var Jn,Qn;function Yn(e,t,r,n,i){if(e===Qn.BAD_PREFIX||e===Qn.UNEXPECTED_CONTINUE){let e=0;for(let n=t+1;n<r.length&&r[n]>>6==2;n++)e++;return e}return e===Qn.OVERRUN?r.length-t-1:0}!function(e){e.current="",e.NFC="NFC",e.NFD="NFD",e.NFKC="NFKC",e.NFKD="NFKD"}(Jn||(Jn={})),function(e){e.UNEXPECTED_CONTINUE="unexpected continuation byte",e.BAD_PREFIX="bad codepoint prefix",e.OVERRUN="string overrun",e.MISSING_CONTINUE="missing continuation byte",e.OUT_OF_RANGE="out of UTF-8 range",e.UTF16_SURROGATE="UTF-16 surrogate",e.OVERLONG="overlong representation"}(Qn||(Qn={}));const Xn=Object.freeze({error:function(e,t,r,n,i){return Wn.throwArgumentError(`invalid codepoint at offset ${t}; ${e}`,"bytes",r)},ignore:Yn,replace:function(e,t,r,n,i){return e===Qn.OVERLONG?(n.push(i),0):(n.push(65533),Yn(e,t,r))}});function Zn(e,t){null==t&&(t=Xn.error),e=Nr(e);const r=[];let n=0;for(;n<e.length;){const i=e[n++];if(i>>7==0){r.push(i);continue}let o=null,s=null;if(192==(224&i))o=1,s=127;else if(224==(240&i))o=2,s=2047;else{if(240!=(248&i)){n+=t(128==(192&i)?Qn.UNEXPECTED_CONTINUE:Qn.BAD_PREFIX,n-1,e,r);continue}o=3,s=65535}if(n-1+o>=e.length){n+=t(Qn.OVERRUN,n-1,e,r);continue}let a=i&(1<<8-o-1)-1;for(let i=0;i<o;i++){let i=e[n];if(128!=(192&i)){n+=t(Qn.MISSING_CONTINUE,n,e,r),a=null;break}a=a<<6|63&i,n++}null!==a&&(a>1114111?n+=t(Qn.OUT_OF_RANGE,n-1-o,e,r,a):a>=55296&&a<=57343?n+=t(Qn.UTF16_SURROGATE,n-1-o,e,r,a):a<=s?n+=t(Qn.OVERLONG,n-1-o,e,r,a):r.push(a))}return r}function $n(e,t=Jn.current){t!=Jn.current&&(Wn.checkNormalize(),e=e.normalize(t));let r=[];for(let t=0;t<e.length;t++){const n=e.charCodeAt(t);if(n<128)r.push(n);else if(n<2048)r.push(n>>6|192),r.push(63&n|128);else if(55296==(64512&n)){t++;const i=e.charCodeAt(t);if(t>=e.length||56320!=(64512&i))throw new Error("invalid utf-8 string");const o=65536+((1023&n)<<10)+(1023&i);r.push(o>>18|240),r.push(o>>12&63|128),r.push(o>>6&63|128),r.push(63&o|128)}else r.push(n>>12|224),r.push(n>>6&63|128),r.push(63&n|128)}return Nr(r)}function ei(e,t){return Zn(e,t).map(e=>e<=65535?String.fromCharCode(e):(e-=65536,String.fromCharCode(55296+(e>>10&1023),56320+(1023&e)))).join("")}function ti(e){return Kn($n(e))}const ri="hash/5.8.0";function ni(e,t){null==t&&(t=1);const r=[],n=r.forEach,i=function(e,t){n.call(e,function(e){t>0&&Array.isArray(e)?i(e,t-1):r.push(e)})};return i(e,t),r}function ii(e){return 1&e?~e>>1:e>>1}function oi(e,t){let r=Array(e);for(let n=0,i=-1;n<e;n++)r[n]=i+=1+t();return r}function si(e,t){let r=Array(e);for(let n=0,i=0;n<e;n++)r[n]=i+=ii(t());return r}function ai(e,t){let r=oi(e(),e),n=e(),i=oi(n,e),o=function(e,t){let r=Array(e);for(let n=0;n<e;n++)r[n]=1+t();return r}(n,e);for(let e=0;e<n;e++)for(let t=0;t<o[e];t++)r.push(i[e]+t);return t?r.map(e=>t[e]):r}function ui(e,t,r){let n=Array(e).fill(void 0).map(()=>[]);for(let i=0;i<t;i++)si(e,r).forEach((e,t)=>n[t].push(e));return n}function li(e,t){let r=1+t(),n=t(),i=function(e){let t=[];for(;;){let r=e();if(0==r)break;t.push(r)}return t}(t);return ni(ui(i.length,1+e,t).map((e,t)=>{const o=e[0],s=e.slice(1);return Array(i[t]).fill(void 0).map((e,t)=>{let i=t*n;return[o+t*r,s.map(e=>e+i)]})}))}function ci(e,t){return ui(1+t(),1+e,t).map(e=>[e[0],e.slice(1)])}const di=function(e){let t=0;return()=>e[t++]}(function(e){let t=0;function r(){return e[t++]<<8|e[t++]}let n=r(),i=1,o=[0,1];for(let e=1;e<n;e++)o.push(i+=r());let s=r(),a=t;t+=s;let u=0,l=0;function c(){return 0==u&&(l=l<<8|e[t++],u=8),l>>--u&1}const d=Math.pow(2,31),h=d>>>1,p=h>>1,f=d-1;let m=0;for(let e=0;e<31;e++)m=m<<1|c();let y=[],g=0,b=d;for(;;){let e=Math.floor(((m-g+1)*i-1)/b),t=0,r=n;for(;r-t>1;){let n=t+r>>>1;e<o[n]?r=n:t=n}if(0==t)break;y.push(t);let s=g+Math.floor(b*o[t]/i),a=g+Math.floor(b*o[t+1]/i)-1;for(;0==((s^a)&h);)m=m<<1&f|c(),s=s<<1&f,a=a<<1&f|1;for(;s&~a&p;)m=m&h|m<<1&f>>>1|c(),s=s<<1^h,a=(a^h)<<1|h|1;g=s,b=1+a-s}let v=n-4;return y.map(t=>{switch(t-v){case 3:return v+65792+(e[a++]<<16|e[a++]<<8|e[a++]);case 2:return v+256+(e[a++]<<8|e[a++]);case 1:return v+e[a++];default:return t-1}})}(Dn("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=="))),hi=new Set(ai(di)),pi=new Set(ai(di)),fi=function(e){let t=[];for(;;){let r=e();if(0==r)break;t.push(li(r,e))}for(;;){let r=e()-1;if(r<0)break;t.push(ci(r,e))}return function(e){const t={};for(let r=0;r<e.length;r++){const n=e[r];t[n[0]]=n[1]}return t}(ni(t))}(di),mi=function(e){let t=ai(e).sort((e,t)=>e-t);return function r(){let n=[];for(;;){let i=ai(e,t);if(0==i.length)break;n.push({set:new Set(i),node:r()})}n.sort((e,t)=>t.set.size-e.set.size);let i=e(),o=i%3;i=i/3|0;let s=!!(1&i);return i>>=1,{branches:n,valid:o,fe0f:s,save:1==i,check:2==i}}()}(di),yi=45,gi=95;function bi(e){return function(e,t=Jn.current){return Zn($n(e,t))}(e)}function vi(e){return e.filter(e=>65039!=e)}function Ai(e){for(let t of e.split(".")){let e=bi(t);try{for(let t=e.lastIndexOf(gi)-1;t>=0;t--)if(e[t]!==gi)throw new Error("underscore only allowed at start");if(e.length>=4&&e.every(e=>e<128)&&e[2]===yi&&e[3]===yi)throw new Error("invalid label extension")}catch(e){throw new Error(`Invalid label "${t}": ${e.message}`)}}return e}function wi(e,t){var r;let n,i,o=mi,s=[],a=e.length;for(t&&(t.length=0);a;){let u=e[--a];if(o=null===(r=o.branches.find(e=>e.set.has(u)))||void 0===r?void 0:r.node,!o)break;if(o.save)i=u;else if(o.check&&u===i)break;s.push(u),o.fe0f&&(s.push(65039),a>0&&65039==e[a-1]&&a--),o.valid&&(n=s.slice(),2==o.valid&&n.splice(1,1),t&&t.push(...e.slice(a).reverse()),e.length=a)}return n}const Ti=new Er(ri),Ei=new Uint8Array(32);function Ii(e){if(0===e.length)throw new Error("invalid ENS name; empty component");return e}function Si(e){const t=$n(function(e){return Ai(function(e,t){let r=bi(e).reverse(),n=[];for(;r.length;){let e=wi(r);if(e){n.push(...t(e));continue}let i=r.pop();if(hi.has(i)){n.push(i);continue}if(pi.has(i))continue;let o=fi[i];if(!o)throw new Error(`Disallowed codepoint: 0x${i.toString(16).toUpperCase()}`);n.push(...o)}return Ai(function(e){return e.normalize("NFC")}(String.fromCodePoint(...n)))}(e,vi))}(e)),r=[];if(0===e.length)return r;let n=0;for(let e=0;e<t.length;e++)46===t[e]&&(r.push(Ii(t.slice(n,e))),n=e+1);if(n>=t.length)throw new Error("invalid ENS name; empty component");return r.push(Ii(t.slice(n))),r}function ki(e){"string"!=typeof e&&Ti.throwArgumentError("invalid ENS name; not a string","name",e);let t=Ei;const r=Si(e);for(;r.length;)t=Kn(_r([t,Kn(r.pop())]));return Br(t)}Ei.fill(0);const Pi=new Er("rlp/5.8.0");function Ci(e){const t=[];for(;e;)t.unshift(255&e),e>>=8;return t}function xi(e,t,r){let n=0;for(let i=0;i<r;i++)n=256*n+e[t+i];return n}function Ni(e){if(Array.isArray(e)){let t=[];if(e.forEach(function(e){t=t.concat(Ni(e))}),t.length<=55)return t.unshift(192+t.length),t;const r=Ci(t.length);return r.unshift(247+r.length),r.concat(t)}Pr(e)||Pi.throwArgumentError("RLP object must be BytesLike","object",e);const t=Array.prototype.slice.call(Nr(e));if(1===t.length&&t[0]<=127)return t;if(t.length<=55)return t.unshift(128+t.length),t;const r=Ci(t.length);return r.unshift(183+r.length),r.concat(t)}function _i(e){return Br(Ni(e))}function Ri(e,t,r,n){const i=[];for(;r<t+1+n;){const o=Mi(e,r);i.push(o.result),(r+=o.consumed)>t+1+n&&Pi.throwError("child data too short",Er.errors.BUFFER_OVERRUN,{})}return{consumed:1+n,result:i}}function Mi(e,t){if(0===e.length&&Pi.throwError("data too short",Er.errors.BUFFER_OVERRUN,{}),e[t]>=248){const r=e[t]-247;t+1+r>e.length&&Pi.throwError("data short segment too short",Er.errors.BUFFER_OVERRUN,{});const n=xi(e,t+1,r);return t+1+r+n>e.length&&Pi.throwError("data long segment too short",Er.errors.BUFFER_OVERRUN,{}),Ri(e,t,t+1+r,r+n)}if(e[t]>=192){const r=e[t]-192;return t+1+r>e.length&&Pi.throwError("data array too short",Er.errors.BUFFER_OVERRUN,{}),Ri(e,t,t+1,r)}if(e[t]>=184){const r=e[t]-183;t+1+r>e.length&&Pi.throwError("data array too short",Er.errors.BUFFER_OVERRUN,{});const n=xi(e,t+1,r);return t+1+r+n>e.length&&Pi.throwError("data array too short",Er.errors.BUFFER_OVERRUN,{}),{consumed:1+r+n,result:Br(e.slice(t+1+r,t+1+r+n))}}if(e[t]>=128){const r=e[t]-128;return t+1+r>e.length&&Pi.throwError("data too short",Er.errors.BUFFER_OVERRUN,{}),{consumed:1+r,result:Br(e.slice(t+1,t+1+r))}}return{consumed:1,result:Br(e[t])}}function Oi(e){const t=Nr(e),r=Mi(t,0);return r.consumed!==t.length&&Pi.throwArgumentError("invalid rlp data","data",e),r.result}const Bi=new Er("address/5.8.0");function Di(e){Mr(e,20)||Bi.throwArgumentError("invalid address","address",e);const t=(e=e.toLowerCase()).substring(2).split(""),r=new Uint8Array(40);for(let e=0;e<40;e++)r[e]=t[e].charCodeAt(0);const n=Nr(Kn(r));for(let e=0;e<40;e+=2)n[e>>1]>>4>=8&&(t[e]=t[e].toUpperCase()),(15&n[e>>1])>=8&&(t[e+1]=t[e+1].toUpperCase());return"0x"+t.join("")}const Fi={};for(let e=0;e<10;e++)Fi[String(e)]=String(e);for(let e=0;e<26;e++)Fi[String.fromCharCode(65+e)]=String(10+e);const Li=Math.floor(function(e){return Math.log10?Math.log10(e):Math.log(e)/Math.LN10}(9007199254740991));function Ui(e){let t=null;if("string"!=typeof e&&Bi.throwArgumentError("invalid address","address",e),e.match(/^(0x)?[0-9a-fA-F]{40}$/))"0x"!==e.substring(0,2)&&(e="0x"+e),t=Di(e),e.match(/([A-F].*[a-f])|([a-f].*[A-F])/)&&t!==e&&Bi.throwArgumentError("bad address checksum","address",e);else if(e.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)){for(e.substring(2,4)!==function(e){let t=(e=(e=e.toUpperCase()).substring(4)+e.substring(0,2)+"00").split("").map(e=>Fi[e]).join("");for(;t.length>=Li;){let e=t.substring(0,Li);t=parseInt(e,10)%97+t.substring(e.length)}let r=String(98-parseInt(t,10)%97);for(;r.length<2;)r="0"+r;return r}(e)&&Bi.throwArgumentError("bad icap checksum","address",e),r=e.substring(4),t=new Vr(r,36).toString(16);t.length<40;)t="0"+t;t=Di("0x"+t)}else Bi.throwArgumentError("invalid address","address",e);var r;return t}function Gi(e){let t=null;try{t=Ui(e.from)}catch(t){Bi.throwArgumentError("missing from address","transaction",e)}return Ui(Fr(Kn(_i([t,Rr(Nr(Qr.from(e.nonce).toHexString()))])),12))}const ji=new Er(ri),Hi=new Uint8Array(32);Hi.fill(0);const qi=Qr.from(-1),Vi=Qr.from(0),zi=Qr.from(1),Ki=Qr.from("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),Wi=Gr(zi.toHexString(),32),Ji=Gr(Vi.toHexString(),32),Qi={name:"string",version:"string",chainId:"uint256",verifyingContract:"address",salt:"bytes32"},Yi=["name","version","chainId","verifyingContract","salt"];function Xi(e){return function(t){return"string"!=typeof t&&ji.throwArgumentError(`invalid domain value for ${JSON.stringify(e)}`,`domain.${e}`,t),t}}const Zi={name:Xi("name"),version:Xi("version"),chainId:function(e){try{return Qr.from(e).toString()}catch(e){}return ji.throwArgumentError('invalid domain value for "chainId"',"domain.chainId",e)},verifyingContract:function(e){try{return Ui(e).toLowerCase()}catch(e){}return ji.throwArgumentError('invalid domain value "verifyingContract"',"domain.verifyingContract",e)},salt:function(e){try{const t=Nr(e);if(32!==t.length)throw new Error("bad length");return Br(t)}catch(e){}return ji.throwArgumentError('invalid domain value "salt"',"domain.salt",e)}};function $i(e){{const t=e.match(/^(u?)int(\d*)$/);if(t){const r=""===t[1],n=parseInt(t[2]||"256");(n%8!=0||n>256||t[2]&&t[2]!==String(n))&&ji.throwArgumentError("invalid numeric width","type",e);const i=Ki.mask(r?n-1:n),o=r?i.add(zi).mul(qi):Vi;return function(t){const r=Qr.from(t);return(r.lt(o)||r.gt(i))&&ji.throwArgumentError(`value out-of-bounds for ${e}`,"value",t),Gr(r.toTwos(256).toHexString(),32)}}}{const t=e.match(/^bytes(\d+)$/);if(t){const r=parseInt(t[1]);return(0===r||r>32||t[1]!==String(r))&&ji.throwArgumentError("invalid bytes width","type",e),function(t){return Nr(t).length!==r&&ji.throwArgumentError(`invalid length for ${e}`,"value",t),function(e){const t=Nr(e),r=t.length%32;return r?Lr([t,Hi.slice(r)]):Br(t)}(t)}}}switch(e){case"address":return function(e){return Gr(Ui(e),32)};case"bool":return function(e){return e?Wi:Ji};case"bytes":return function(e){return Kn(e)};case"string":return function(e){return ti(e)}}return null}function eo(e,t){return`${e}(${t.map(({name:e,type:t})=>t+" "+e).join(",")})`}class to{constructor(e){yn(this,"types",Object.freeze(In(e))),yn(this,"_encoderCache",{}),yn(this,"_types",{});const t={},r={},n={};Object.keys(e).forEach(e=>{t[e]={},r[e]=[],n[e]={}});for(const n in e){const i={};e[n].forEach(o=>{i[o.name]&&ji.throwArgumentError(`duplicate variable name ${JSON.stringify(o.name)} in ${JSON.stringify(n)}`,"types",e),i[o.name]=!0;const s=o.type.match(/^([^\x5b]*)(\x5b|$)/)[1];s===n&&ji.throwArgumentError(`circular type reference to ${JSON.stringify(s)}`,"types",e),$i(s)||(r[s]||ji.throwArgumentError(`unknown type ${JSON.stringify(s)}`,"types",e),r[s].push(n),t[n][s]=!0)})}const i=Object.keys(r).filter(e=>0===r[e].length);0===i.length?ji.throwArgumentError("missing primary type","types",e):i.length>1&&ji.throwArgumentError(`ambiguous primary types or unused types: ${i.map(e=>JSON.stringify(e)).join(", ")}`,"types",e),yn(this,"primaryType",i[0]),function i(o,s){s[o]&&ji.throwArgumentError(`circular type reference to ${JSON.stringify(o)}`,"types",e),s[o]=!0,Object.keys(t[o]).forEach(e=>{r[e]&&(i(e,s),Object.keys(s).forEach(t=>{n[t][e]=!0}))}),delete s[o]}(this.primaryType,{});for(const t in n){const r=Object.keys(n[t]);r.sort(),this._types[t]=eo(t,e[t])+r.map(t=>eo(t,e[t])).join("")}}getEncoder(e){let t=this._encoderCache[e];return t||(t=this._encoderCache[e]=this._getEncoder(e)),t}_getEncoder(e){{const t=$i(e);if(t)return t}const t=e.match(/^(.*)(\x5b(\d*)\x5d)$/);if(t){const e=t[1],r=this.getEncoder(e),n=parseInt(t[3]);return t=>{n>=0&&t.length!==n&&ji.throwArgumentError("array length mismatch; expected length ${ arrayLength }","value",t);let i=t.map(r);return this._types[e]&&(i=i.map(Kn)),Kn(Lr(i))}}const r=this.types[e];if(r){const t=ti(this._types[e]);return e=>{const n=r.map(({name:t,type:r})=>{const n=this.getEncoder(r)(e[t]);return this._types[r]?Kn(n):n});return n.unshift(t),Lr(n)}}return ji.throwArgumentError(`unknown type: ${e}`,"type",e)}encodeType(e){const t=this._types[e];return t||ji.throwArgumentError(`unknown type: ${JSON.stringify(e)}`,"name",e),t}encodeData(e,t){return this.getEncoder(e)(t)}hashStruct(e,t){return Kn(this.encodeData(e,t))}encode(e){return this.encodeData(this.primaryType,e)}hash(e){return this.hashStruct(this.primaryType,e)}_visit(e,t,r){if($i(e))return r(e,t);const n=e.match(/^(.*)(\x5b(\d*)\x5d)$/);if(n){const e=n[1],i=parseInt(n[3]);return i>=0&&t.length!==i&&ji.throwArgumentError("array length mismatch; expected length ${ arrayLength }","value",t),t.map(t=>this._visit(e,t,r))}const i=this.types[e];return i?i.reduce((e,{name:n,type:i})=>(e[n]=this._visit(i,t[n],r),e),{}):ji.throwArgumentError(`unknown type: ${e}`,"type",e)}visit(e,t){return this._visit(this.primaryType,e,t)}static from(e){return new to(e)}static getPrimaryType(e){return to.from(e).primaryType}static hashStruct(e,t,r){return to.from(t).hashStruct(e,r)}static hashDomain(e){const t=[];for(const r in e){const n=Qi[r];n||ji.throwArgumentError(`invalid typed-data domain key: ${JSON.stringify(r)}`,"domain",e),t.push({name:r,type:n})}return t.sort((e,t)=>Yi.indexOf(e.name)-Yi.indexOf(t.name)),to.hashStruct("EIP712Domain",{EIP712Domain:t},e)}static encode(e,t,r){return Lr(["0x1901",to.hashDomain(e),to.from(t).hash(r)])}static hash(e,t,r){return Kn(to.encode(e,t,r))}static resolveNames(e,t,r,n){return i=this,s=function*(){e=An(e);const i={};e.verifyingContract&&!Mr(e.verifyingContract,20)&&(i[e.verifyingContract]="0x");const o=to.from(t);o.visit(r,(e,t)=>("address"!==e||Mr(t,20)||(i[t]="0x"),t));for(const e in i)i[e]=yield n(e);return e.verifyingContract&&i[e.verifyingContract]&&(e.verifyingContract=i[e.verifyingContract]),r=o.visit(r,(e,t)=>"address"===e&&i[t]?i[t]:t),{domain:e,value:r}},new((o=void 0)||(o=Promise))(function(e,t){function r(e){try{a(s.next(e))}catch(e){t(e)}}function n(e){try{a(s.throw(e))}catch(e){t(e)}}function a(t){var i;t.done?e(t.value):(i=t.value,i instanceof o?i:new o(function(e){e(i)})).then(r,n)}a((s=s.apply(i,[])).next())});var i,o,s}static getPayload(e,t,r){to.hashDomain(e);const n={},i=[];Yi.forEach(t=>{const r=e[t];null!=r&&(n[t]=Zi[t](r),i.push({name:t,type:Qi[t]}))});const o=to.from(t),s=An(t);return s.EIP712Domain?ji.throwArgumentError("types must not contain EIP712Domain type","types.EIP712Domain",t):s.EIP712Domain=i,o.encode(r),{types:s,domain:n,primaryType:o.primaryType,message:o.visit(r,(e,t)=>{if(e.match(/^bytes(\d*)/))return Br(Nr(t));if(e.match(/^u?int/))return Qr.from(t).toString();switch(e){case"address":return t.toLowerCase();case"bool":return!!t;case"string":return"string"!=typeof t&&ji.throwArgumentError("invalid string","value",t),t}return ji.throwArgumentError("unsupported type","type",e)})}}}var ro=no;function no(e,t){if(!e)throw new Error(t||"Assertion failed")}function io(e,t){return 55296==(64512&e.charCodeAt(t))&&!(t<0||t+1>=e.length)&&56320==(64512&e.charCodeAt(t+1))}function oo(e){return(e>>>24|e>>>8&65280|e<<8&16711680|(255&e)<<24)>>>0}function so(e){return 1===e.length?"0"+e:e}function ao(e){return 7===e.length?"0"+e:6===e.length?"00"+e:5===e.length?"000"+e:4===e.length?"0000"+e:3===e.length?"00000"+e:2===e.length?"000000"+e:1===e.length?"0000000"+e:e}no.equal=function(e,t,r){if(e!=t)throw new Error(r||"Assertion failed: "+e+" != "+t)};var uo={inherits:dr(function(e){e.exports="function"==typeof Object.create?function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:function(e,t){if(t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}}}),toArray:function(e,t){if(Array.isArray(e))return e.slice();if(!e)return[];var r=[];if("string"==typeof e)if(t){if("hex"===t)for((e=e.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(e="0"+e),i=0;i<e.length;i+=2)r.push(parseInt(e[i]+e[i+1],16))}else for(var n=0,i=0;i<e.length;i++){var o=e.charCodeAt(i);o<128?r[n++]=o:o<2048?(r[n++]=o>>6|192,r[n++]=63&o|128):io(e,i)?(o=65536+((1023&o)<<10)+(1023&e.charCodeAt(++i)),r[n++]=o>>18|240,r[n++]=o>>12&63|128,r[n++]=o>>6&63|128,r[n++]=63&o|128):(r[n++]=o>>12|224,r[n++]=o>>6&63|128,r[n++]=63&o|128)}else for(i=0;i<e.length;i++)r[i]=0|e[i];return r},toHex:function(e){for(var t="",r=0;r<e.length;r++)t+=so(e[r].toString(16));return t},htonl:oo,toHex32:function(e,t){for(var r="",n=0;n<e.length;n++){var i=e[n];"little"===t&&(i=oo(i)),r+=ao(i.toString(16))}return r},zero2:so,zero8:ao,join32:function(e,t,r,n){var i=r-t;ro(i%4==0);for(var o=new Array(i/4),s=0,a=t;s<o.length;s++,a+=4)o[s]=("big"===n?e[a]<<24|e[a+1]<<16|e[a+2]<<8|e[a+3]:e[a+3]<<24|e[a+2]<<16|e[a+1]<<8|e[a])>>>0;return o},split32:function(e,t){for(var r=new Array(4*e.length),n=0,i=0;n<e.length;n++,i+=4){var o=e[n];"big"===t?(r[i]=o>>>24,r[i+1]=o>>>16&255,r[i+2]=o>>>8&255,r[i+3]=255&o):(r[i+3]=o>>>24,r[i+2]=o>>>16&255,r[i+1]=o>>>8&255,r[i]=255&o)}return r},rotr32:function(e,t){return e>>>t|e<<32-t},rotl32:function(e,t){return e<<t|e>>>32-t},sum32:function(e,t){return e+t>>>0},sum32_3:function(e,t,r){return e+t+r>>>0},sum32_4:function(e,t,r,n){return e+t+r+n>>>0},sum32_5:function(e,t,r,n,i){return e+t+r+n+i>>>0},sum64:function(e,t,r,n){var i=n+e[t+1]>>>0;e[t]=(i<n?1:0)+r+e[t]>>>0,e[t+1]=i},sum64_hi:function(e,t,r,n){return(t+n>>>0<t?1:0)+e+r>>>0},sum64_lo:function(e,t,r,n){return t+n>>>0},sum64_4_hi:function(e,t,r,n,i,o,s,a){var u=0,l=t;return u+=(l=l+n>>>0)<t?1:0,u+=(l=l+o>>>0)<o?1:0,e+r+i+s+(u+=(l=l+a>>>0)<a?1:0)>>>0},sum64_4_lo:function(e,t,r,n,i,o,s,a){return t+n+o+a>>>0},sum64_5_hi:function(e,t,r,n,i,o,s,a,u,l){var c=0,d=t;return c+=(d=d+n>>>0)<t?1:0,c+=(d=d+o>>>0)<o?1:0,c+=(d=d+a>>>0)<a?1:0,e+r+i+s+u+(c+=(d=d+l>>>0)<l?1:0)>>>0},sum64_5_lo:function(e,t,r,n,i,o,s,a,u,l){return t+n+o+a+l>>>0},rotr64_hi:function(e,t,r){return(t<<32-r|e>>>r)>>>0},rotr64_lo:function(e,t,r){return(e<<32-r|t>>>r)>>>0},shr64_hi:function(e,t,r){return e>>>r},shr64_lo:function(e,t,r){return(e<<32-r|t>>>r)>>>0}};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}var co=lo;lo.prototype.update=function(e,t){if(e=uo.toArray(e,t),this.pending=this.pending?this.pending.concat(e):e,this.pendingTotal+=e.length,this.pending.length>=this._delta8){var r=(e=this.pending).length%this._delta8;this.pending=e.slice(e.length-r,e.length),0===this.pending.length&&(this.pending=null),e=uo.join32(e,0,e.length-r,this.endian);for(var n=0;n<e.length;n+=this._delta32)this._update(e,n,n+this._delta32)}return this},lo.prototype.digest=function(e){return this.update(this._pad()),ro(null===this.pending),this._digest(e)},lo.prototype._pad=function(){var e=this.pendingTotal,t=this._delta8,r=t-(e+this.padLength)%t,n=new Array(r+this.padLength);n[0]=128;for(var i=1;i<r;i++)n[i]=0;if(e<<=3,"big"===this.endian){for(var o=8;o<this.padLength;o++)n[i++]=0;n[i++]=0,n[i++]=0,n[i++]=0,n[i++]=0,n[i++]=e>>>24&255,n[i++]=e>>>16&255,n[i++]=e>>>8&255,n[i++]=255&e}else for(n[i++]=255&e,n[i++]=e>>>8&255,n[i++]=e>>>16&255,n[i++]=e>>>24&255,n[i++]=0,n[i++]=0,n[i++]=0,n[i++]=0,o=8;o<this.padLength;o++)n[i++]=0;return n};var ho={BlockHash:co},po=uo.rotr32;function fo(e,t,r){return e&t^~e&r}function mo(e,t,r){return e&t^e&r^t&r}var yo=fo,go=mo,bo=uo.rotl32,vo=uo.sum32,Ao=uo.sum32_5,wo=function(e,t,r,n){return 0===e?fo(t,r,n):1===e||3===e?function(e,t,r){return e^t^r}(t,r,n):2===e?mo(t,r,n):void 0},To=ho.BlockHash,Eo=[1518500249,1859775393,2400959708,3395469782];function Io(){if(!(this instanceof Io))return new Io;To.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}uo.inherits(Io,To);var So=Io;Io.blockSize=512,Io.outSize=160,Io.hmacStrength=80,Io.padLength=64,Io.prototype._update=function(e,t){for(var r=this.W,n=0;n<16;n++)r[n]=e[t+n];for(;n<r.length;n++)r[n]=bo(r[n-3]^r[n-8]^r[n-14]^r[n-16],1);var i=this.h[0],o=this.h[1],s=this.h[2],a=this.h[3],u=this.h[4];for(n=0;n<r.length;n++){var l=~~(n/20),c=Ao(bo(i,5),wo(l,o,s,a),u,r[n],Eo[l]);u=a,a=s,s=bo(o,30),o=i,i=c}this.h[0]=vo(this.h[0],i),this.h[1]=vo(this.h[1],o),this.h[2]=vo(this.h[2],s),this.h[3]=vo(this.h[3],a),this.h[4]=vo(this.h[4],u)},Io.prototype._digest=function(e){return"hex"===e?uo.toHex32(this.h,"big"):uo.split32(this.h,"big")};var ko=uo.sum32,Po=uo.sum32_4,Co=uo.sum32_5,xo=yo,No=go,_o=function(e){return po(e,2)^po(e,13)^po(e,22)},Ro=function(e){return po(e,6)^po(e,11)^po(e,25)},Mo=function(e){return po(e,7)^po(e,18)^e>>>3},Oo=function(e){return po(e,17)^po(e,19)^e>>>10},Bo=ho.BlockHash,Do=[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 Fo(){if(!(this instanceof Fo))return new Fo;Bo.call(this),this.h=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],this.k=Do,this.W=new Array(64)}uo.inherits(Fo,Bo);var Lo=Fo;function Uo(){if(!(this instanceof Uo))return new Uo;Lo.call(this),this.h=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]}Fo.blockSize=512,Fo.outSize=256,Fo.hmacStrength=192,Fo.padLength=64,Fo.prototype._update=function(e,t){for(var r=this.W,n=0;n<16;n++)r[n]=e[t+n];for(;n<r.length;n++)r[n]=Po(Oo(r[n-2]),r[n-7],Mo(r[n-15]),r[n-16]);var i=this.h[0],o=this.h[1],s=this.h[2],a=this.h[3],u=this.h[4],l=this.h[5],c=this.h[6],d=this.h[7];for(ro(this.k.length===r.length),n=0;n<r.length;n++){var h=Co(d,Ro(u),xo(u,l,c),this.k[n],r[n]),p=ko(_o(i),No(i,o,s));d=c,c=l,l=u,u=ko(a,h),a=s,s=o,o=i,i=ko(h,p)}this.h[0]=ko(this.h[0],i),this.h[1]=ko(this.h[1],o),this.h[2]=ko(this.h[2],s),this.h[3]=ko(this.h[3],a),this.h[4]=ko(this.h[4],u),this.h[5]=ko(this.h[5],l),this.h[6]=ko(this.h[6],c),this.h[7]=ko(this.h[7],d)},Fo.prototype._digest=function(e){return"hex"===e?uo.toHex32(this.h,"big"):uo.split32(this.h,"big")},uo.inherits(Uo,Lo);var Go=Uo;Uo.blockSize=512,Uo.outSize=224,Uo.hmacStrength=192,Uo.padLength=64,Uo.prototype._digest=function(e){return"hex"===e?uo.toHex32(this.h.slice(0,7),"big"):uo.split32(this.h.slice(0,7),"big")};var jo=uo.rotr64_hi,Ho=uo.rotr64_lo,qo=uo.shr64_hi,Vo=uo.shr64_lo,zo=uo.sum64,Ko=uo.sum64_hi,Wo=uo.sum64_lo,Jo=uo.sum64_4_hi,Qo=uo.sum64_4_lo,Yo=uo.sum64_5_hi,Xo=uo.sum64_5_lo,Zo=ho.BlockHash,$o=[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 es(){if(!(this instanceof es))return new es;Zo.call(this),this.h=[1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209],this.k=$o,this.W=new Array(160)}uo.inherits(es,Zo);var ts=es;function rs(e,t,r,n,i){var o=e&r^~e&i;return o<0&&(o+=4294967296),o}function ns(e,t,r,n,i,o){var s=t&n^~t&o;return s<0&&(s+=4294967296),s}function is(e,t,r,n,i){var o=e&r^e&i^r&i;return o<0&&(o+=4294967296),o}function os(e,t,r,n,i,o){var s=t&n^t&o^n&o;return s<0&&(s+=4294967296),s}function ss(e,t){var r=jo(e,t,28)^jo(t,e,2)^jo(t,e,7);return r<0&&(r+=4294967296),r}function as(e,t){var r=Ho(e,t,28)^Ho(t,e,2)^Ho(t,e,7);return r<0&&(r+=4294967296),r}function us(e,t){var r=jo(e,t,14)^jo(e,t,18)^jo(t,e,9);return r<0&&(r+=4294967296),r}function ls(e,t){var r=Ho(e,t,14)^Ho(e,t,18)^Ho(t,e,9);return r<0&&(r+=4294967296),r}function cs(e,t){var r=jo(e,t,1)^jo(e,t,8)^qo(e,t,7);return r<0&&(r+=4294967296),r}function ds(e,t){var r=Ho(e,t,1)^Ho(e,t,8)^Vo(e,t,7);return r<0&&(r+=4294967296),r}function hs(e,t){var r=jo(e,t,19)^jo(t,e,29)^qo(e,t,6);return r<0&&(r+=4294967296),r}function ps(e,t){var r=Ho(e,t,19)^Ho(t,e,29)^Vo(e,t,6);return r<0&&(r+=4294967296),r}function fs(){if(!(this instanceof fs))return new fs;ts.call(this),this.h=[3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]}es.blockSize=1024,es.outSize=512,es.hmacStrength=192,es.padLength=128,es.prototype._prepareBlock=function(e,t){for(var r=this.W,n=0;n<32;n++)r[n]=e[t+n];for(;n<r.length;n+=2){var i=hs(r[n-4],r[n-3]),o=ps(r[n-4],r[n-3]),s=r[n-14],a=r[n-13],u=cs(r[n-30],r[n-29]),l=ds(r[n-30],r[n-29]),c=r[n-32],d=r[n-31];r[n]=Jo(i,o,s,a,u,l,c,d),r[n+1]=Qo(i,o,s,a,u,l,c,d)}},es.prototype._update=function(e,t){this._prepareBlock(e,t);var r=this.W,n=this.h[0],i=this.h[1],o=this.h[2],s=this.h[3],a=this.h[4],u=this.h[5],l=this.h[6],c=this.h[7],d=this.h[8],h=this.h[9],p=this.h[10],f=this.h[11],m=this.h[12],y=this.h[13],g=this.h[14],b=this.h[15];ro(this.k.length===r.length);for(var v=0;v<r.length;v+=2){var A=g,w=b,T=us(d,h),E=ls(d,h),I=rs(d,0,p,0,m),S=ns(0,h,0,f,0,y),k=this.k[v],P=this.k[v+1],C=r[v],x=r[v+1],N=Yo(A,w,T,E,I,S,k,P,C,x),_=Xo(A,w,T,E,I,S,k,P,C,x);A=ss(n,i),w=as(n,i),T=is(n,0,o,0,a),E=os(0,i,0,s,0,u);var R=Ko(A,w,T,E),M=Wo(A,w,T,E);g=m,b=y,m=p,y=f,p=d,f=h,d=Ko(l,c,N,_),h=Wo(c,c,N,_),l=a,c=u,a=o,u=s,o=n,s=i,n=Ko(N,_,R,M),i=Wo(N,_,R,M)}zo(this.h,0,n,i),zo(this.h,2,o,s),zo(this.h,4,a,u),zo(this.h,6,l,c),zo(this.h,8,d,h),zo(this.h,10,p,f),zo(this.h,12,m,y),zo(this.h,14,g,b)},es.prototype._digest=function(e){return"hex"===e?uo.toHex32(this.h,"big"):uo.split32(this.h,"big")},uo.inherits(fs,ts);var ms=fs;fs.blockSize=1024,fs.outSize=384,fs.hmacStrength=192,fs.padLength=128,fs.prototype._digest=function(e){return"hex"===e?uo.toHex32(this.h.slice(0,12),"big"):uo.split32(this.h.slice(0,12),"big")};var ys={sha1:So,sha224:Go,sha256:Lo,sha384:ms,sha512:ts},gs=uo.rotl32,bs=uo.sum32,vs=uo.sum32_3,As=uo.sum32_4,ws=ho.BlockHash;function Ts(){if(!(this instanceof Ts))return new Ts;ws.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.endian="little"}uo.inherits(Ts,ws);var Es=Ts;function Is(e,t,r,n){return e<=15?t^r^n:e<=31?t&r|~t&n:e<=47?(t|~r)^n:e<=63?t&n|r&~n:t^(r|~n)}function Ss(e){return e<=15?0:e<=31?1518500249:e<=47?1859775393:e<=63?2400959708:2840853838}function ks(e){return e<=15?1352829926:e<=31?1548603684:e<=47?1836072691:e<=63?2053994217:0}Ts.blockSize=512,Ts.outSize=160,Ts.hmacStrength=192,Ts.padLength=64,Ts.prototype._update=function(e,t){for(var r=this.h[0],n=this.h[1],i=this.h[2],o=this.h[3],s=this.h[4],a=r,u=n,l=i,c=o,d=s,h=0;h<80;h++){var p=bs(gs(As(r,Is(h,n,i,o),e[Ps[h]+t],Ss(h)),xs[h]),s);r=s,s=o,o=gs(i,10),i=n,n=p,p=bs(gs(As(a,Is(79-h,u,l,c),e[Cs[h]+t],ks(h)),Ns[h]),d),a=d,d=c,c=gs(l,10),l=u,u=p}p=vs(this.h[1],i,c),this.h[1]=vs(this.h[2],o,d),this.h[2]=vs(this.h[3],s,a),this.h[3]=vs(this.h[4],r,u),this.h[4]=vs(this.h[0],n,l),this.h[0]=p},Ts.prototype._digest=function(e){return"hex"===e?uo.toHex32(this.h,"little"):uo.split32(this.h,"little")};var Ps=[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],Cs=[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],xs=[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],Ns=[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],_s={ripemd160:Es};function Rs(e,t,r){if(!(this instanceof Rs))return new Rs(e,t,r);this.Hash=e,this.blockSize=e.blockSize/8,this.outSize=e.outSize/8,this.inner=null,this.outer=null,this._init(uo.toArray(t,r))}var Ms=Rs;Rs.prototype._init=function(e){e.length>this.blockSize&&(e=(new this.Hash).update(e).digest()),ro(e.length<=this.blockSize);for(var t=e.length;t<this.blockSize;t++)e.push(0);for(t=0;t<e.length;t++)e[t]^=54;for(this.inner=(new this.Hash).update(e),t=0;t<e.length;t++)e[t]^=106;this.outer=(new this.Hash).update(e)},Rs.prototype.update=function(e,t){return this.inner.update(e,t),this},Rs.prototype.digest=function(e){return this.outer.update(this.inner.digest()),this.outer.digest(e)};var Os,Bs=dr(function(e,t){var r=t;r.utils=uo,r.common=ho,r.sha=ys,r.ripemd=_s,r.hmac=Ms,r.sha1=r.sha.sha1,r.sha256=r.sha.sha256,r.sha224=r.sha.sha224,r.sha384=r.sha.sha384,r.sha512=r.sha.sha512,r.ripemd160=r.ripemd.ripemd160}),Ds=Bs;!function(e){e.sha256="sha256",e.sha512="sha512"}(Os||(Os={}));const Fs=new Er("sha2/5.8.0");function Ls(e){return"0x"+Ds.sha256().update(Nr(e)).digest("hex")}function Us(e,t,r){return Os[e]||Fs.throwError("unsupported algorithm "+e,Er.errors.UNSUPPORTED_OPERATION,{operation:"hmac",algorithm:e}),"0x"+Ds.hmac(Ds[e],Nr(t)).update(Nr(r)).digest("hex")}var Gs=function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function s(e){try{u(n.next(e))}catch(e){o(e)}}function a(e){try{u(n.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r(function(e){e(t)})).then(s,a)}u((n=n.apply(e,t||[])).next())})};function js(e,t){return Gs(this,void 0,void 0,function*(){null==t&&(t={});const r={method:t.method||"GET",headers:t.headers||{},body:t.body||void 0};if(!0!==t.skipFetchSetup&&(r.mode="cors",r.cache="no-cache",r.credentials="same-origin",r.redirect="follow",r.referrer="client"),null!=t.fetchOptions){const e=t.fetchOptions;e.mode&&(r.mode=e.mode),e.cache&&(r.cache=e.cache),e.credentials&&(r.credentials=e.credentials),e.redirect&&(r.redirect=e.redirect),e.referrer&&(r.referrer=e.referrer)}const n=yield fetch(e,r),i=yield n.arrayBuffer(),o={};return n.headers.forEach?n.headers.forEach((e,t)=>{o[t.toLowerCase()]=e}):n.headers.keys().forEach(e=>{o[e.toLowerCase()]=n.headers.get(e)}),{headers:o,statusCode:n.status,statusMessage:n.statusText,body:Nr(new Uint8Array(i))}})}var Hs=function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function s(e){try{u(n.next(e))}catch(e){o(e)}}function a(e){try{u(n.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r(function(e){e(t)})).then(s,a)}u((n=n.apply(e,t||[])).next())})};const qs=new Er("web/5.8.0");function Vs(e){return new Promise(t=>{setTimeout(t,e)})}function zs(e,t){if(null==e)return null;if("string"==typeof e)return e;if(Pr(e)){if(t&&("text"===t.split("/")[0]||"application/json"===t.split(";")[0].trim()))try{return ei(e)}catch(e){}return Br(e)}return e}function Ks(e,t,r){let n=null;if(null!=t){n=$n(t);const r="string"==typeof e?{url:e}:An(e);r.headers?0!==Object.keys(r.headers).filter(e=>"content-type"===e.toLowerCase()).length||(r.headers=An(r.headers),r.headers["content-type"]="application/json"):r.headers={"content-type":"application/json"},e=r}return function(e,t,r){const n="object"==typeof e&&null!=e.throttleLimit?e.throttleLimit:12;qs.assertArgument(n>0&&n%1==0,"invalid connection throttle limit","connection.throttleLimit",n);const i="object"==typeof e?e.throttleCallback:null,o="object"==typeof e&&"number"==typeof e.throttleSlotInterval?e.throttleSlotInterval:100;qs.assertArgument(o>0&&o%1==0,"invalid connection throttle slot interval","connection.throttleSlotInterval",o);const s="object"==typeof e&&!!e.errorPassThrough,a={};let u=null;const l={method:"GET"};let c=!1,d=12e4;if("string"==typeof e)u=e;else if("object"==typeof e){if(null!=e&&null!=e.url||qs.throwArgumentError("missing URL","connection.url",e),u=e.url,"number"==typeof e.timeout&&e.timeout>0&&(d=e.timeout),e.headers)for(const t in e.headers)a[t.toLowerCase()]={key:t,value:String(e.headers[t])},["if-none-match","if-modified-since"].indexOf(t.toLowerCase())>=0&&(c=!0);l.allowGzip=!!e.allowGzip,null!=e.user&&null!=e.password&&("https:"!==u.substring(0,6)&&!0!==e.allowInsecureAuthentication&&qs.throwError("basic authentication requires a secure https url",Er.errors.INVALID_ARGUMENT,{argument:"url",url:u,user:e.user,password:"[REDACTED]"}),a.authorization={key:"Authorization",value:"Basic "+Fn($n(e.user+":"+e.password))}),null!=e.skipFetchSetup&&(l.skipFetchSetup=!!e.skipFetchSetup),null!=e.fetchOptions&&(l.fetchOptions=An(e.fetchOptions))}const h=new RegExp("^data:([^;:]*)?(;base64)?,(.*)$","i"),p=u?u.match(h):null;if(p)try{const e={statusCode:200,statusMessage:"OK",headers:{"content-type":p[1]||"text/plain"},body:p[2]?Dn(p[3]):(f=p[3],$n(f.replace(/%([0-9a-f][0-9a-f])/gi,(e,t)=>String.fromCharCode(parseInt(t,16)))))};let t=e.body;return r&&(t=r(e.body,e)),Promise.resolve(t)}catch(e){qs.throwError("processing response error",Er.errors.SERVER_ERROR,{body:zs(p[1],p[2]),error:e,requestBody:null,requestMethod:"GET",url:u})}var f;t&&(l.method="POST",l.body=t,null==a["content-type"]&&(a["content-type"]={key:"Content-Type",value:"application/octet-stream"}),null==a["content-length"]&&(a["content-length"]={key:"Content-Length",value:String(t.length)}));const m={};Object.keys(a).forEach(e=>{const t=a[e];m[t.key]=t.value}),l.headers=m;const y=function(){let e=null;return{promise:new Promise(function(t,r){d&&(e=setTimeout(()=>{null!=e&&(e=null,r(qs.makeError("timeout",Er.errors.TIMEOUT,{requestBody:zs(l.body,m["content-type"]),requestMethod:l.method,timeout:d,url:u})))},d))}),cancel:function(){null!=e&&(clearTimeout(e),e=null)}}}(),g=function(){return Hs(this,void 0,void 0,function*(){for(let e=0;e<n;e++){let t=null;try{if(t=yield js(u,l),e<n)if(301===t.statusCode||302===t.statusCode){if("GET"===l.method&&(t.headers.location||"").match(/^https:/)){u=t.headers.location;continue}}else if(429===t.statusCode){let r=!0;if(i&&(r=yield i(e,u)),r){let r=0;const n=t.headers["retry-after"];r="string"==typeof n&&n.match(/^[1-9][0-9]*$/)?1e3*parseInt(n):o*parseInt(String(Math.random()*Math.pow(2,e))),yield Vs(r);continue}}}catch(e){t=e.response,null==t&&(y.cancel(),qs.throwError("missing response",Er.errors.SERVER_ERROR,{requestBody:zs(l.body,m["content-type"]),requestMethod:l.method,serverError:e,url:u}))}let a=t.body;if(c&&304===t.statusCode?a=null:!s&&(t.statusCode<200||t.statusCode>=300)&&(y.cancel(),qs.throwError("bad response",Er.errors.SERVER_ERROR,{status:t.statusCode,headers:t.headers,body:zs(a,t.headers?t.headers["content-type"]:null),requestBody:zs(l.body,m["content-type"]),requestMethod:l.method,url:u})),r)try{const e=yield r(a,t);return y.cancel(),e}catch(r){if(r.throttleRetry&&e<n){let t=!0;if(i&&(t=yield i(e,u)),t){const t=o*parseInt(String(Math.random()*Math.pow(2,e)));yield Vs(t);continue}}y.cancel(),qs.throwError("processing response error",Er.errors.SERVER_ERROR,{body:zs(a,t.headers?t.headers["content-type"]:null),error:r,requestBody:zs(l.body,m["content-type"]),requestMethod:l.method,url:u})}return y.cancel(),a}return qs.throwError("failed response",Er.errors.SERVER_ERROR,{requestBody:zs(l.body,m["content-type"]),requestMethod:l.method,url:u})})}();return Promise.race([y.promise,g])}(e,n,(e,t)=>{let n=null;if(null!=e)try{n=JSON.parse(ei(e))}catch(t){qs.throwError("invalid JSON",Er.errors.SERVER_ERROR,{body:e,error:t})}return r&&(n=r(n,t)),n})}function Ws(e,t){return t||(t={}),null==(t=An(t)).floor&&(t.floor=0),null==t.ceiling&&(t.ceiling=1e4),null==t.interval&&(t.interval=250),new Promise(function(r,n){let i=null,o=!1;const s=()=>!o&&(o=!0,i&&clearTimeout(i),!0);t.timeout&&(i=setTimeout(()=>{s()&&n(new Error("timeout"))},t.timeout));const a=t.retryLimit;let u=0;!function i(){return e().then(function(e){if(void 0!==e)s()&&r(e);else if(t.oncePoll)t.oncePoll.once("poll",i);else if(t.onceBlock)t.onceBlock.once("block",i);else if(!o){if(u++,u>a)return void(s()&&n(new Error("retry limit reached")));let e=t.interval*parseInt(String(Math.random()*Math.pow(2,u)));e<t.floor&&(e=t.floor),e>t.ceiling&&(e=t.ceiling),setTimeout(i,e)}return null},function(e){s()&&n(e)})}()})}for(var Js="qpzry9x8gf2tvdw0s3jn54khce6mua7l",Qs={},Ys=0;Ys<Js.length;Ys++){var Xs=Js.charAt(Ys);if(void 0!==Qs[Xs])throw new TypeError(Xs+" is ambiguous");Qs[Xs]=Ys}function Zs(e){var t=e>>25;return(33554431&e)<<5^996825010&-(t>>0&1)^642813549&-(t>>1&1)^513874426&-(t>>2&1)^1027748829&-(t>>3&1)^705979059&-(t>>4&1)}const $s="providers/5.8.0";function ea(e,t,r){return e(r={path:t,exports:{},require:function(e,t){return function(){throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs")}()}},r.exports),r.exports}var ta=ra;function ra(e,t){if(!e)throw new Error(t||"Assertion failed")}ra.equal=function(e,t,r){if(e!=t)throw new Error(r||"Assertion failed: "+e+" != "+t)};var na=ea(function(e,t){var r=t;function n(e){return 1===e.length?"0"+e:e}function i(e){for(var t="",r=0;r<e.length;r++)t+=n(e[r].toString(16));return t}r.toArray=function(e,t){if(Array.isArray(e))return e.slice();if(!e)return[];var r=[];if("string"!=typeof e){for(var n=0;n<e.length;n++)r[n]=0|e[n];return r}if("hex"===t)for((e=e.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(e="0"+e),n=0;n<e.length;n+=2)r.push(parseInt(e[n]+e[n+1],16));else for(n=0;n<e.length;n++){var i=e.charCodeAt(n),o=i>>8,s=255&i;o?r.push(o,s):r.push(s)}return r},r.zero2=n,r.toHex=i,r.encode=function(e,t){return"hex"===t?i(e):e}}),ia=ea(function(e,t){var r=t;r.assert=ta,r.toArray=na.toArray,r.zero2=na.zero2,r.toHex=na.toHex,r.encode=na.encode,r.getNAF=function(e,t,r){var n,i=new Array(Math.max(e.bitLength(),r)+1);for(n=0;n<i.length;n+=1)i[n]=0;var o=1<<t+1,s=e.clone();for(n=0;n<i.length;n++){var a,u=s.andln(o-1);s.isOdd()?s.isubn(a=u>(o>>1)-1?(o>>1)-u:u):a=0,i[n]=a,s.iushrn(1)}return i},r.getJSF=function(e,t){var r=[[],[]];e=e.clone(),t=t.clone();for(var n,i=0,o=0;e.cmpn(-i)>0||t.cmpn(-o)>0;){var s,a,u=e.andln(3)+i&3,l=t.andln(3)+o&3;3===u&&(u=-1),3===l&&(l=-1),s=0==(1&u)?0:3!=(n=e.andln(7)+i&7)&&5!==n||2!==l?u:-u,r[0].push(s),a=0==(1&l)?0:3!=(n=t.andln(7)+o&7)&&5!==n||2!==u?l:-l,r[1].push(a),2*i===s+1&&(i=1-i),2*o===a+1&&(o=1-o),e.iushrn(1),t.iushrn(1)}return r},r.cachedProperty=function(e,t,r){var n="_"+t;e.prototype[t]=function(){return void 0!==this[n]?this[n]:this[n]=r.call(this)}},r.parseBytes=function(e){return"string"==typeof e?r.toArray(e,"hex"):e},r.intFromLE=function(e){return new pr(e,"hex","le")}}),oa=ia.getNAF,sa=ia.getJSF,aa=ia.assert;function ua(e,t){this.type=e,this.p=new pr(t.p,16),this.red=t.prime?pr.red(t.prime):pr.mont(this.p),this.zero=new pr(0).toRed(this.red),this.one=new pr(1).toRed(this.red),this.two=new pr(2).toRed(this.red),this.n=t.n&&new pr(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 r=this.n&&this.p.div(this.n);!r||r.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}var la=ua;function ca(e,t){this.curve=e,this.type=t,this.precomputed=null}ua.prototype.point=function(){throw new Error("Not implemented")},ua.prototype.validate=function(){throw new Error("Not implemented")},ua.prototype._fixedNafMul=function(e,t){aa(e.precomputed);var r=e._getDoubles(),n=oa(t,1,this._bitLength),i=(1<<r.step+1)-(r.step%2==0?2:1);i/=3;var o,s,a=[];for(o=0;o<n.length;o+=r.step){s=0;for(var u=o+r.step-1;u>=o;u--)s=(s<<1)+n[u];a.push(s)}for(var l=this.jpoint(null,null,null),c=this.jpoint(null,null,null),d=i;d>0;d--){for(o=0;o<a.length;o++)(s=a[o])===d?c=c.mixedAdd(r.points[o]):s===-d&&(c=c.mixedAdd(r.points[o].neg()));l=l.add(c)}return l.toP()},ua.prototype._wnafMul=function(e,t){for(var r=4,n=e._getNAFPoints(r),i=n.points,o=oa(t,r=n.wnd,this._bitLength),s=this.jpoint(null,null,null),a=o.length-1;a>=0;a--){for(var u=0;a>=0&&0===o[a];a--)u++;if(a>=0&&u++,s=s.dblp(u),a<0)break;var l=o[a];aa(0!==l),s="affine"===e.type?s.mixedAdd(l>0?i[l-1>>1]:i[-l-1>>1].neg()):s.add(l>0?i[l-1>>1]:i[-l-1>>1].neg())}return"affine"===e.type?s.toP():s},ua.prototype._wnafMulAdd=function(e,t,r,n,i){var o,s,a,u=this._wnafT1,l=this._wnafT2,c=this._wnafT3,d=0;for(o=0;o<n;o++){var h=(a=t[o])._getNAFPoints(e);u[o]=h.wnd,l[o]=h.points}for(o=n-1;o>=1;o-=2){var p=o-1,f=o;if(1===u[p]&&1===u[f]){var m=[t[p],null,null,t[f]];0===t[p].y.cmp(t[f].y)?(m[1]=t[p].add(t[f]),m[2]=t[p].toJ().mixedAdd(t[f].neg())):0===t[p].y.cmp(t[f].y.redNeg())?(m[1]=t[p].toJ().mixedAdd(t[f]),m[2]=t[p].add(t[f].neg())):(m[1]=t[p].toJ().mixedAdd(t[f]),m[2]=t[p].toJ().mixedAdd(t[f].neg()));var y=[-3,-1,-5,-7,0,7,5,1,3],g=sa(r[p],r[f]);for(d=Math.max(g[0].length,d),c[p]=new Array(d),c[f]=new Array(d),s=0;s<d;s++)c[p][s]=y[3*(1+(0|g[0][s]))+(1+(0|g[1][s]))],c[f][s]=0,l[p]=m}else c[p]=oa(r[p],u[p],this._bitLength),c[f]=oa(r[f],u[f],this._bitLength),d=Math.max(c[p].length,d),d=Math.max(c[f].length,d)}var b=this.jpoint(null,null,null),v=this._wnafT4;for(o=d;o>=0;o--){for(var A=0;o>=0;){var w=!0;for(s=0;s<n;s++)v[s]=0|c[s][o],0!==v[s]&&(w=!1);if(!w)break;A++,o--}if(o>=0&&A++,b=b.dblp(A),o<0)break;for(s=0;s<n;s++){var T=v[s];0!==T&&(T>0?a=l[s][T-1>>1]:T<0&&(a=l[s][-T-1>>1].neg()),b="affine"===a.type?b.mixedAdd(a):b.add(a))}}for(o=0;o<n;o++)l[o]=null;return i?b:b.toP()},ua.BasePoint=ca,ca.prototype.eq=function(){throw new Error("Not implemented")},ca.prototype.validate=function(){return this.curve.validate(this)},ua.prototype.decodePoint=function(e,t){e=ia.toArray(e,t);var r=this.p.byteLength();if((4===e[0]||6===e[0]||7===e[0])&&e.length-1==2*r)return 6===e[0]?aa(e[e.length-1]%2==0):7===e[0]&&aa(e[e.length-1]%2==1),this.point(e.slice(1,1+r),e.slice(1+r,1+2*r));if((2===e[0]||3===e[0])&&e.length-1===r)return this.pointFromX(e.slice(1,1+r),3===e[0]);throw new Error("Unknown point format")},ca.prototype.encodeCompressed=function(e){return this.encode(e,!0)},ca.prototype._encode=function(e){var t=this.curve.p.byteLength(),r=this.getX().toArray("be",t);return e?[this.getY().isEven()?2:3].concat(r):[4].concat(r,this.getY().toArray("be",t))},ca.prototype.encode=function(e,t){return ia.encode(this._encode(t),e)},ca.prototype.precompute=function(e){if(this.precomputed)return this;var t={doubles:null,naf:null,beta:null};return t.naf=this._getNAFPoints(8),t.doubles=this._getDoubles(4,e),t.beta=this._getBeta(),this.precomputed=t,this},ca.prototype._hasDoubles=function(e){if(!this.precomputed)return!1;var t=this.precomputed.doubles;return!!t&&t.points.length>=Math.ceil((e.bitLength()+1)/t.step)},ca.prototype._getDoubles=function(e,t){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var r=[this],n=this,i=0;i<t;i+=e){for(var o=0;o<e;o++)n=n.dbl();r.push(n)}return{step:e,points:r}},ca.prototype._getNAFPoints=function(e){if(this.precomputed&&this.precomputed.naf)return this.precomputed.naf;for(var t=[this],r=(1<<e)-1,n=1===r?null:this.dbl(),i=1;i<r;i++)t[i]=t[i-1].add(n);return{wnd:e,points:t}},ca.prototype._getBeta=function(){return null},ca.prototype.dblp=function(e){for(var t=this,r=0;r<e;r++)t=t.dbl();return t};var da=ea(function(e){e.exports="function"==typeof Object.create?function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:function(e,t){if(t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}}}),ha=ia.assert;function pa(e){la.call(this,"short",e),this.a=new pr(e.a,16).toRed(this.red),this.b=new pr(e.b,16).toRed(this.red),this.tinv=this.two.redInvm(),this.zeroA=0===this.a.fromRed().cmpn(0),this.threeA=0===this.a.fromRed().sub(this.p).cmpn(-3),this.endo=this._getEndomorphism(e),this._endoWnafT1=new Array(4),this._endoWnafT2=new Array(4)}da(pa,la);var fa=pa;function ma(e,t,r,n){la.BasePoint.call(this,e,"affine"),null===t&&null===r?(this.x=null,this.y=null,this.inf=!0):(this.x=new pr(t,16),this.y=new pr(r,16),n&&(this.x.forceRed(this.curve.red),this.y.forceRed(this.curve.red)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.inf=!1)}function ya(e,t,r,n){la.BasePoint.call(this,e,"jacobian"),null===t&&null===r&&null===n?(this.x=this.curve.one,this.y=this.curve.one,this.z=new pr(0)):(this.x=new pr(t,16),this.y=new pr(r,16),this.z=new pr(n,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}pa.prototype._getEndomorphism=function(e){if(this.zeroA&&this.g&&this.n&&1===this.p.modn(3)){var t,r;if(e.beta)t=new pr(e.beta,16).toRed(this.red);else{var n=this._getEndoRoots(this.p);t=(t=n[0].cmp(n[1])<0?n[0]:n[1]).toRed(this.red)}if(e.lambda)r=new pr(e.lambda,16);else{var i=this._getEndoRoots(this.n);0===this.g.mul(i[0]).x.cmp(this.g.x.redMul(t))?r=i[0]:ha(0===this.g.mul(r=i[1]).x.cmp(this.g.x.redMul(t)))}return{beta:t,lambda:r,basis:e.basis?e.basis.map(function(e){return{a:new pr(e.a,16),b:new pr(e.b,16)}}):this._getEndoBasis(r)}}},pa.prototype._getEndoRoots=function(e){var t=e===this.p?this.red:pr.mont(e),r=new pr(2).toRed(t).redInvm(),n=r.redNeg(),i=new pr(3).toRed(t).redNeg().redSqrt().redMul(r);return[n.redAdd(i).fromRed(),n.redSub(i).fromRed()]},pa.prototype._getEndoBasis=function(e){for(var t,r,n,i,o,s,a,u,l,c=this.n.ushrn(Math.floor(this.n.bitLength()/2)),d=e,h=this.n.clone(),p=new pr(1),f=new pr(0),m=new pr(0),y=new pr(1),g=0;0!==d.cmpn(0);){var b=h.div(d);u=h.sub(b.mul(d)),l=m.sub(b.mul(p));var v=y.sub(b.mul(f));if(!n&&u.cmp(c)<0)t=a.neg(),r=p,n=u.neg(),i=l;else if(n&&2==++g)break;a=u,h=d,d=u,m=p,p=l,y=f,f=v}o=u.neg(),s=l;var A=n.sqr().add(i.sqr());return o.sqr().add(s.sqr()).cmp(A)>=0&&(o=t,s=r),n.negative&&(n=n.neg(),i=i.neg()),o.negative&&(o=o.neg(),s=s.neg()),[{a:n,b:i},{a:o,b:s}]},pa.prototype._endoSplit=function(e){var t=this.endo.basis,r=t[0],n=t[1],i=n.b.mul(e).divRound(this.n),o=r.b.neg().mul(e).divRound(this.n),s=i.mul(r.a),a=o.mul(n.a),u=i.mul(r.b),l=o.mul(n.b);return{k1:e.sub(s).sub(a),k2:u.add(l).neg()}},pa.prototype.pointFromX=function(e,t){(e=new pr(e,16)).red||(e=e.toRed(this.red));var r=e.redSqr().redMul(e).redIAdd(e.redMul(this.a)).redIAdd(this.b),n=r.redSqrt();if(0!==n.redSqr().redSub(r).cmp(this.zero))throw new Error("invalid point");var i=n.fromRed().isOdd();return(t&&!i||!t&&i)&&(n=n.redNeg()),this.point(e,n)},pa.prototype.validate=function(e){if(e.inf)return!0;var t=e.x,r=e.y,n=this.a.redMul(t),i=t.redSqr().redMul(t).redIAdd(n).redIAdd(this.b);return 0===r.redSqr().redISub(i).cmpn(0)},pa.prototype._endoWnafMulAdd=function(e,t,r){for(var n=this._endoWnafT1,i=this._endoWnafT2,o=0;o<e.length;o++){var s=this._endoSplit(t[o]),a=e[o],u=a._getBeta();s.k1.negative&&(s.k1.ineg(),a=a.neg(!0)),s.k2.negative&&(s.k2.ineg(),u=u.neg(!0)),n[2*o]=a,n[2*o+1]=u,i[2*o]=s.k1,i[2*o+1]=s.k2}for(var l=this._wnafMulAdd(1,n,i,2*o,r),c=0;c<2*o;c++)n[c]=null,i[c]=null;return l},da(ma,la.BasePoint),pa.prototype.point=function(e,t,r){return new ma(this,e,t,r)},pa.prototype.pointFromJSON=function(e,t){return ma.fromJSON(this,e,t)},ma.prototype._getBeta=function(){if(this.curve.endo){var e=this.precomputed;if(e&&e.beta)return e.beta;var t=this.curve.point(this.x.redMul(this.curve.endo.beta),this.y);if(e){var r=this.curve,n=function(e){return r.point(e.x.redMul(r.endo.beta),e.y)};e.beta=t,t.precomputed={beta:null,naf:e.naf&&{wnd:e.naf.wnd,points:e.naf.points.map(n)},doubles:e.doubles&&{step:e.doubles.step,points:e.doubles.points.map(n)}}}return t}},ma.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]},ma.fromJSON=function(e,t,r){"string"==typeof t&&(t=JSON.parse(t));var n=e.point(t[0],t[1],r);if(!t[2])return n;function i(t){return e.point(t[0],t[1],r)}var o=t[2];return n.precomputed={beta:null,doubles:o.doubles&&{step:o.doubles.step,points:[n].concat(o.doubles.points.map(i))},naf:o.naf&&{wnd:o.naf.wnd,points:[n].concat(o.naf.points.map(i))}},n},ma.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)+">"},ma.prototype.isInfinity=function(){return this.inf},ma.prototype.add=function(e){if(this.inf)return e;if(e.inf)return this;if(this.eq(e))return this.dbl();if(this.neg().eq(e))return this.curve.point(null,null);if(0===this.x.cmp(e.x))return this.curve.point(null,null);var t=this.y.redSub(e.y);0!==t.cmpn(0)&&(t=t.redMul(this.x.redSub(e.x).redInvm()));var r=t.redSqr().redISub(this.x).redISub(e.x),n=t.redMul(this.x.redSub(r)).redISub(this.y);return this.curve.point(r,n)},ma.prototype.dbl=function(){if(this.inf)return this;var e=this.y.redAdd(this.y);if(0===e.cmpn(0))return this.curve.point(null,null);var t=this.curve.a,r=this.x.redSqr(),n=e.redInvm(),i=r.redAdd(r).redIAdd(r).redIAdd(t).redMul(n),o=i.redSqr().redISub(this.x.redAdd(this.x)),s=i.redMul(this.x.redSub(o)).redISub(this.y);return this.curve.point(o,s)},ma.prototype.getX=function(){return this.x.fromRed()},ma.prototype.getY=function(){return this.y.fromRed()},ma.prototype.mul=function(e){return e=new pr(e,16),this.isInfinity()?this:this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve.endo?this.curve._endoWnafMulAdd([this],[e]):this.curve._wnafMul(this,e)},ma.prototype.mulAdd=function(e,t,r){var n=[this,t],i=[e,r];return this.curve.endo?this.curve._endoWnafMulAdd(n,i):this.curve._wnafMulAdd(1,n,i,2)},ma.prototype.jmulAdd=function(e,t,r){var n=[this,t],i=[e,r];return this.curve.endo?this.curve._endoWnafMulAdd(n,i,!0):this.curve._wnafMulAdd(1,n,i,2,!0)},ma.prototype.eq=function(e){return this===e||this.inf===e.inf&&(this.inf||0===this.x.cmp(e.x)&&0===this.y.cmp(e.y))},ma.prototype.neg=function(e){if(this.inf)return this;var t=this.curve.point(this.x,this.y.redNeg());if(e&&this.precomputed){var r=this.precomputed,n=function(e){return e.neg()};t.precomputed={naf:r.naf&&{wnd:r.naf.wnd,points:r.naf.points.map(n)},doubles:r.doubles&&{step:r.doubles.step,points:r.doubles.points.map(n)}}}return t},ma.prototype.toJ=function(){return this.inf?this.curve.jpoint(null,null,null):this.curve.jpoint(this.x,this.y,this.curve.one)},da(ya,la.BasePoint),pa.prototype.jpoint=function(e,t,r){return new ya(this,e,t,r)},ya.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var e=this.z.redInvm(),t=e.redSqr(),r=this.x.redMul(t),n=this.y.redMul(t).redMul(e);return this.curve.point(r,n)},ya.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},ya.prototype.add=function(e){if(this.isInfinity())return e;if(e.isInfinity())return this;var t=e.z.redSqr(),r=this.z.redSqr(),n=this.x.redMul(t),i=e.x.redMul(r),o=this.y.redMul(t.redMul(e.z)),s=e.y.redMul(r.redMul(this.z)),a=n.redSub(i),u=o.redSub(s);if(0===a.cmpn(0))return 0!==u.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var l=a.redSqr(),c=l.redMul(a),d=n.redMul(l),h=u.redSqr().redIAdd(c).redISub(d).redISub(d),p=u.redMul(d.redISub(h)).redISub(o.redMul(c)),f=this.z.redMul(e.z).redMul(a);return this.curve.jpoint(h,p,f)},ya.prototype.mixedAdd=function(e){if(this.isInfinity())return e.toJ();if(e.isInfinity())return this;var t=this.z.redSqr(),r=this.x,n=e.x.redMul(t),i=this.y,o=e.y.redMul(t).redMul(this.z),s=r.redSub(n),a=i.redSub(o);if(0===s.cmpn(0))return 0!==a.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var u=s.redSqr(),l=u.redMul(s),c=r.redMul(u),d=a.redSqr().redIAdd(l).redISub(c).redISub(c),h=a.redMul(c.redISub(d)).redISub(i.redMul(l)),p=this.z.redMul(s);return this.curve.jpoint(d,h,p)},ya.prototype.dblp=function(e){if(0===e)return this;if(this.isInfinity())return this;if(!e)return this.dbl();var t;if(this.curve.zeroA||this.curve.threeA){var r=this;for(t=0;t<e;t++)r=r.dbl();return r}var n=this.curve.a,i=this.curve.tinv,o=this.x,s=this.y,a=this.z,u=a.redSqr().redSqr(),l=s.redAdd(s);for(t=0;t<e;t++){var c=o.redSqr(),d=l.redSqr(),h=d.redSqr(),p=c.redAdd(c).redIAdd(c).redIAdd(n.redMul(u)),f=o.redMul(d),m=p.redSqr().redISub(f.redAdd(f)),y=f.redISub(m),g=p.redMul(y);g=g.redIAdd(g).redISub(h);var b=l.redMul(a);t+1<e&&(u=u.redMul(h)),o=m,a=b,l=g}return this.curve.jpoint(o,l.redMul(i),a)},ya.prototype.dbl=function(){return this.isInfinity()?this:this.curve.zeroA?this._zeroDbl():this.curve.threeA?this._threeDbl():this._dbl()},ya.prototype._zeroDbl=function(){var e,t,r;if(this.zOne){var n=this.x.redSqr(),i=this.y.redSqr(),o=i.redSqr(),s=this.x.redAdd(i).redSqr().redISub(n).redISub(o);s=s.redIAdd(s);var a=n.redAdd(n).redIAdd(n),u=a.redSqr().redISub(s).redISub(s),l=o.redIAdd(o);l=(l=l.redIAdd(l)).redIAdd(l),e=u,t=a.redMul(s.redISub(u)).redISub(l),r=this.y.redAdd(this.y)}else{var c=this.x.redSqr(),d=this.y.redSqr(),h=d.redSqr(),p=this.x.redAdd(d).redSqr().redISub(c).redISub(h);p=p.redIAdd(p);var f=c.redAdd(c).redIAdd(c),m=f.redSqr(),y=h.redIAdd(h);y=(y=y.redIAdd(y)).redIAdd(y),e=m.redISub(p).redISub(p),t=f.redMul(p.redISub(e)).redISub(y),r=(r=this.y.redMul(this.z)).redIAdd(r)}return this.curve.jpoint(e,t,r)},ya.prototype._threeDbl=function(){var e,t,r;if(this.zOne){var n=this.x.redSqr(),i=this.y.redSqr(),o=i.redSqr(),s=this.x.redAdd(i).redSqr().redISub(n).redISub(o);s=s.redIAdd(s);var a=n.redAdd(n).redIAdd(n).redIAdd(this.curve.a),u=a.redSqr().redISub(s).redISub(s);e=u;var l=o.redIAdd(o);l=(l=l.redIAdd(l)).redIAdd(l),t=a.redMul(s.redISub(u)).redISub(l),r=this.y.redAdd(this.y)}else{var c=this.z.redSqr(),d=this.y.redSqr(),h=this.x.redMul(d),p=this.x.redSub(c).redMul(this.x.redAdd(c));p=p.redAdd(p).redIAdd(p);var f=h.redIAdd(h),m=(f=f.redIAdd(f)).redAdd(f);e=p.redSqr().redISub(m),r=this.y.redAdd(this.z).redSqr().redISub(d).redISub(c);var y=d.redSqr();y=(y=(y=y.redIAdd(y)).redIAdd(y)).redIAdd(y),t=p.redMul(f.redISub(e)).redISub(y)}return this.curve.jpoint(e,t,r)},ya.prototype._dbl=function(){var e=this.curve.a,t=this.x,r=this.y,n=this.z,i=n.redSqr().redSqr(),o=t.redSqr(),s=r.redSqr(),a=o.redAdd(o).redIAdd(o).redIAdd(e.redMul(i)),u=t.redAdd(t),l=(u=u.redIAdd(u)).redMul(s),c=a.redSqr().redISub(l.redAdd(l)),d=l.redISub(c),h=s.redSqr();h=(h=(h=h.redIAdd(h)).redIAdd(h)).redIAdd(h);var p=a.redMul(d).redISub(h),f=r.redAdd(r).redMul(n);return this.curve.jpoint(c,p,f)},ya.prototype.trpl=function(){if(!this.curve.zeroA)return this.dbl().add(this);var e=this.x.redSqr(),t=this.y.redSqr(),r=this.z.redSqr(),n=t.redSqr(),i=e.redAdd(e).redIAdd(e),o=i.redSqr(),s=this.x.redAdd(t).redSqr().redISub(e).redISub(n),a=(s=(s=(s=s.redIAdd(s)).redAdd(s).redIAdd(s)).redISub(o)).redSqr(),u=n.redIAdd(n);u=(u=(u=u.redIAdd(u)).redIAdd(u)).redIAdd(u);var l=i.redIAdd(s).redSqr().redISub(o).redISub(a).redISub(u),c=t.redMul(l);c=(c=c.redIAdd(c)).redIAdd(c);var d=this.x.redMul(a).redISub(c);d=(d=d.redIAdd(d)).redIAdd(d);var h=this.y.redMul(l.redMul(u.redISub(l)).redISub(s.redMul(a)));h=(h=(h=h.redIAdd(h)).redIAdd(h)).redIAdd(h);var p=this.z.redAdd(s).redSqr().redISub(r).redISub(a);return this.curve.jpoint(d,h,p)},ya.prototype.mul=function(e,t){return e=new pr(e,t),this.curve._wnafMul(this,e)},ya.prototype.eq=function(e){if("affine"===e.type)return this.eq(e.toJ());if(this===e)return!0;var t=this.z.redSqr(),r=e.z.redSqr();if(0!==this.x.redMul(r).redISub(e.x.redMul(t)).cmpn(0))return!1;var n=t.redMul(this.z),i=r.redMul(e.z);return 0===this.y.redMul(i).redISub(e.y.redMul(n)).cmpn(0)},ya.prototype.eqXToP=function(e){var t=this.z.redSqr(),r=e.toRed(this.curve.red).redMul(t);if(0===this.x.cmp(r))return!0;for(var n=e.clone(),i=this.curve.redN.redMul(t);;){if(n.iadd(this.curve.n),n.cmp(this.curve.p)>=0)return!1;if(r.redIAdd(i),0===this.x.cmp(r))return!0}},ya.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)+">"},ya.prototype.isInfinity=function(){return 0===this.z.cmpn(0)};var ga=ea(function(e,t){var r=t;r.base=la,r.short=fa,r.mont=null,r.edwards=null}),ba=ea(function(e,t){var r,n=t,i=ia.assert;function o(e){this.curve="short"===e.type?new ga.short(e):"edwards"===e.type?new ga.edwards(e):new ga.mont(e),this.g=this.curve.g,this.n=this.curve.n,this.hash=e.hash,i(this.g.validate(),"Invalid curve"),i(this.g.mul(this.n).isInfinity(),"Invalid curve, G*N != O")}function s(e,t){Object.defineProperty(n,e,{configurable:!0,enumerable:!0,get:function(){var r=new o(t);return Object.defineProperty(n,e,{configurable:!0,enumerable:!0,value:r}),r}})}n.PresetCurve=o,s("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:Ds.sha256,gRed:!1,g:["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012","07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"]}),s("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:Ds.sha256,gRed:!1,g:["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21","bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"]}),s("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:Ds.sha256,gRed:!1,g:["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296","4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"]}),s("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:Ds.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"]}),s("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:Ds.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"]}),s("curve25519",{type:"mont",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"76d06",b:"1",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:Ds.sha256,gRed:!1,g:["9"]}),s("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:Ds.sha256,gRed:!1,g:["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a","6666666666666666666666666666666666666666666666666666666666666658"]});try{r=null.crash()}catch(e){r=void 0}s("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:Ds.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",r]})});function va(e){if(!(this instanceof va))return new va(e);this.hash=e.hash,this.predResist=!!e.predResist,this.outLen=this.hash.outSize,this.minEntropy=e.minEntropy||this.hash.hmacStrength,this._reseed=null,this.reseedInterval=null,this.K=null,this.V=null;var t=na.toArray(e.entropy,e.entropyEnc||"hex"),r=na.toArray(e.nonce,e.nonceEnc||"hex"),n=na.toArray(e.pers,e.persEnc||"hex");ta(t.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(t,r,n)}var Aa=va;va.prototype._init=function(e,t,r){var n=e.concat(t).concat(r);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var i=0;i<this.V.length;i++)this.K[i]=0,this.V[i]=1;this._update(n),this._reseed=1,this.reseedInterval=281474976710656},va.prototype._hmac=function(){return new Ds.hmac(this.hash,this.K)},va.prototype._update=function(e){var t=this._hmac().update(this.V).update([0]);e&&(t=t.update(e)),this.K=t.digest(),this.V=this._hmac().update(this.V).digest(),e&&(this.K=this._hmac().update(this.V).update([1]).update(e).digest(),this.V=this._hmac().update(this.V).digest())},va.prototype.reseed=function(e,t,r,n){"string"!=typeof t&&(n=r,r=t,t=null),e=na.toArray(e,t),r=na.toArray(r,n),ta(e.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(e.concat(r||[])),this._reseed=1},va.prototype.generate=function(e,t,r,n){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");"string"!=typeof t&&(n=r,r=t,t=null),r&&(r=na.toArray(r,n||"hex"),this._update(r));for(var i=[];i.length<e;)this.V=this._hmac().update(this.V).digest(),i=i.concat(this.V);var o=i.slice(0,e);return this._update(r),this._reseed++,na.encode(o,t)};var wa=ia.assert;function Ta(e,t){this.ec=e,this.priv=null,this.pub=null,t.priv&&this._importPrivate(t.priv,t.privEnc),t.pub&&this._importPublic(t.pub,t.pubEnc)}var Ea=Ta;Ta.fromPublic=function(e,t,r){return t instanceof Ta?t:new Ta(e,{pub:t,pubEnc:r})},Ta.fromPrivate=function(e,t,r){return t instanceof Ta?t:new Ta(e,{priv:t,privEnc:r})},Ta.prototype.validate=function(){var e=this.getPublic();return e.isInfinity()?{result:!1,reason:"Invalid public key"}:e.validate()?e.mul(this.ec.curve.n).isInfinity()?{result:!0,reason:null}:{result:!1,reason:"Public key * N != O"}:{result:!1,reason:"Public key is not a point"}},Ta.prototype.getPublic=function(e,t){return"string"==typeof e&&(t=e,e=null),this.pub||(this.pub=this.ec.g.mul(this.priv)),t?this.pub.encode(t,e):this.pub},Ta.prototype.getPrivate=function(e){return"hex"===e?this.priv.toString(16,2):this.priv},Ta.prototype._importPrivate=function(e,t){this.priv=new pr(e,t||16),this.priv=this.priv.umod(this.ec.curve.n)},Ta.prototype._importPublic=function(e,t){if(e.x||e.y)return"mont"===this.ec.curve.type?wa(e.x,"Need x coordinate"):"short"!==this.ec.curve.type&&"edwards"!==this.ec.curve.type||wa(e.x&&e.y,"Need both x and y coordinate"),void(this.pub=this.ec.curve.point(e.x,e.y));this.pub=this.ec.curve.decodePoint(e,t)},Ta.prototype.derive=function(e){return e.validate()||wa(e.validate(),"public point not validated"),e.mul(this.priv).getX()},Ta.prototype.sign=function(e,t,r){return this.ec.sign(e,this,t,r)},Ta.prototype.verify=function(e,t,r){return this.ec.verify(e,t,this,void 0,r)},Ta.prototype.inspect=function(){return"<Key priv: "+(this.priv&&this.priv.toString(16,2))+" pub: "+(this.pub&&this.pub.inspect())+" >"};var Ia=ia.assert;function Sa(e,t){if(e instanceof Sa)return e;this._importDER(e,t)||(Ia(e.r&&e.s,"Signature without r or s"),this.r=new pr(e.r,16),this.s=new pr(e.s,16),this.recoveryParam=void 0===e.recoveryParam?null:e.recoveryParam)}var ka=Sa;function Pa(){this.place=0}function Ca(e,t){var r=e[t.place++];if(!(128&r))return r;var n=15&r;if(0===n||n>4)return!1;if(0===e[t.place])return!1;for(var i=0,o=0,s=t.place;o<n;o++,s++)i<<=8,i|=e[s],i>>>=0;return!(i<=127)&&(t.place=s,i)}function xa(e){for(var t=0,r=e.length-1;!e[t]&&!(128&e[t+1])&&t<r;)t++;return 0===t?e:e.slice(t)}function Na(e,t){if(t<128)e.push(t);else{var r=1+(Math.log(t)/Math.LN2>>>3);for(e.push(128|r);--r;)e.push(t>>>(r<<3)&255);e.push(t)}}Sa.prototype._importDER=function(e,t){e=ia.toArray(e,t);var r=new Pa;if(48!==e[r.place++])return!1;var n=Ca(e,r);if(!1===n)return!1;if(n+r.place!==e.length)return!1;if(2!==e[r.place++])return!1;var i=Ca(e,r);if(!1===i)return!1;if(0!=(128&e[r.place]))return!1;var o=e.slice(r.place,i+r.place);if(r.place+=i,2!==e[r.place++])return!1;var s=Ca(e,r);if(!1===s)return!1;if(e.length!==s+r.place)return!1;if(0!=(128&e[r.place]))return!1;var a=e.slice(r.place,s+r.place);if(0===o[0]){if(!(128&o[1]))return!1;o=o.slice(1)}if(0===a[0]){if(!(128&a[1]))return!1;a=a.slice(1)}return this.r=new pr(o),this.s=new pr(a),this.recoveryParam=null,!0},Sa.prototype.toDER=function(e){var t=this.r.toArray(),r=this.s.toArray();for(128&t[0]&&(t=[0].concat(t)),128&r[0]&&(r=[0].concat(r)),t=xa(t),r=xa(r);!(r[0]||128&r[1]);)r=r.slice(1);var n=[2];Na(n,t.length),(n=n.concat(t)).push(2),Na(n,r.length);var i=n.concat(r),o=[48];return Na(o,i.length),o=o.concat(i),ia.encode(o,e)};var _a=function(){throw new Error("unsupported")},Ra=ia.assert;function Ma(e){if(!(this instanceof Ma))return new Ma(e);"string"==typeof e&&(Ra(Object.prototype.hasOwnProperty.call(ba,e),"Unknown curve "+e),e=ba[e]),e instanceof ba.PresetCurve&&(e={curve:e}),this.curve=e.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=e.curve.g,this.g.precompute(e.curve.n.bitLength()+1),this.hash=e.hash||e.curve.hash}var Oa=Ma;Ma.prototype.keyPair=function(e){return new Ea(this,e)},Ma.prototype.keyFromPrivate=function(e,t){return Ea.fromPrivate(this,e,t)},Ma.prototype.keyFromPublic=function(e,t){return Ea.fromPublic(this,e,t)},Ma.prototype.genKeyPair=function(e){e||(e={});for(var t=new Aa({hash:this.hash,pers:e.pers,persEnc:e.persEnc||"utf8",entropy:e.entropy||_a(),entropyEnc:e.entropy&&e.entropyEnc||"utf8",nonce:this.n.toArray()}),r=this.n.byteLength(),n=this.n.sub(new pr(2));;){var i=new pr(t.generate(r));if(!(i.cmp(n)>0))return i.iaddn(1),this.keyFromPrivate(i)}},Ma.prototype._truncateToN=function(e,t,r){var n;if(pr.isBN(e)||"number"==typeof e)n=(e=new pr(e,16)).byteLength();else if("object"==typeof e)n=e.length,e=new pr(e,16);else{var i=e.toString();n=i.length+1>>>1,e=new pr(i,16)}"number"!=typeof r&&(r=8*n);var o=r-this.n.bitLength();return o>0&&(e=e.ushrn(o)),!t&&e.cmp(this.n)>=0?e.sub(this.n):e},Ma.prototype.sign=function(e,t,r,n){if("object"==typeof r&&(n=r,r=null),n||(n={}),"string"!=typeof e&&"number"!=typeof e&&!pr.isBN(e)){Ra("object"==typeof e&&e&&"number"==typeof e.length,"Expected message to be an array-like, a hex string, or a BN instance"),Ra(e.length>>>0===e.length);for(var i=0;i<e.length;i++)Ra((255&e[i])===e[i])}t=this.keyFromPrivate(t,r),e=this._truncateToN(e,!1,n.msgBitLength),Ra(!e.isNeg(),"Can not sign a negative message");var o=this.n.byteLength(),s=t.getPrivate().toArray("be",o),a=e.toArray("be",o);Ra(new pr(a).eq(e),"Can not sign message");for(var u=new Aa({hash:this.hash,entropy:s,nonce:a,pers:n.pers,persEnc:n.persEnc||"utf8"}),l=this.n.sub(new pr(1)),c=0;;c++){var d=n.k?n.k(c):new pr(u.generate(this.n.byteLength()));if(!((d=this._truncateToN(d,!0)).cmpn(1)<=0||d.cmp(l)>=0)){var h=this.g.mul(d);if(!h.isInfinity()){var p=h.getX(),f=p.umod(this.n);if(0!==f.cmpn(0)){var m=d.invm(this.n).mul(f.mul(t.getPrivate()).iadd(e));if(0!==(m=m.umod(this.n)).cmpn(0)){var y=(h.getY().isOdd()?1:0)|(0!==p.cmp(f)?2:0);return n.canonical&&m.cmp(this.nh)>0&&(m=this.n.sub(m),y^=1),new ka({r:f,s:m,recoveryParam:y})}}}}}},Ma.prototype.verify=function(e,t,r,n,i){i||(i={}),e=this._truncateToN(e,!1,i.msgBitLength),r=this.keyFromPublic(r,n);var o=(t=new ka(t,"hex")).r,s=t.s;if(o.cmpn(1)<0||o.cmp(this.n)>=0)return!1;if(s.cmpn(1)<0||s.cmp(this.n)>=0)return!1;var a,u=s.invm(this.n),l=u.mul(e).umod(this.n),c=u.mul(o).umod(this.n);return this.curve._maxwellTrick?!(a=this.g.jmulAdd(l,r.getPublic(),c)).isInfinity()&&a.eqXToP(o):!(a=this.g.mulAdd(l,r.getPublic(),c)).isInfinity()&&0===a.getX().umod(this.n).cmp(o)},Ma.prototype.recoverPubKey=function(e,t,r,n){Ra((3&r)===r,"The recovery param is more than two bits"),t=new ka(t,n);var i=this.n,o=new pr(e),s=t.r,a=t.s,u=1&r,l=r>>1;if(s.cmp(this.curve.p.umod(this.curve.n))>=0&&l)throw new Error("Unable to find sencond key candinate");s=this.curve.pointFromX(l?s.add(this.curve.n):s,u);var c=t.r.invm(i),d=i.sub(o).mul(c).umod(i),h=a.mul(c).umod(i);return this.g.mulAdd(d,s,h)},Ma.prototype.getKeyRecoveryParam=function(e,t,r,n){if(null!==(t=new ka(t,n)).recoveryParam)return t.recoveryParam;for(var i=0;i<4;i++){var o;try{o=this.recoverPubKey(e,t,i)}catch(e){continue}if(o.eq(r))return i}throw new Error("Unable to find valid recovery factor")};var Ba=ea(function(e,t){var r=t;r.version="6.6.1",r.utils=ia,r.rand=function(){throw new Error("unsupported")},r.curve=ga,r.curves=ba,r.ec=Oa,r.eddsa=null}).ec;const Da=new Er("signing-key/5.8.0");let Fa=null;function La(){return Fa||(Fa=new Ba("secp256k1")),Fa}class Ua{constructor(e){yn(this,"curve","secp256k1"),yn(this,"privateKey",Br(e)),32!==Dr(this.privateKey)&&Da.throwArgumentError("invalid private key","privateKey","[[ REDACTED ]]");const t=La().keyFromPrivate(Nr(this.privateKey));yn(this,"publicKey","0x"+t.getPublic(!1,"hex")),yn(this,"compressedPublicKey","0x"+t.getPublic(!0,"hex")),yn(this,"_isSigningKey",!0)}_addPoint(e){const t=La().keyFromPublic(Nr(this.publicKey)),r=La().keyFromPublic(Nr(e));return"0x"+t.pub.add(r.pub).encodeCompressed("hex")}signDigest(e){const t=La().keyFromPrivate(Nr(this.privateKey)),r=Nr(e);32!==r.length&&Da.throwArgumentError("bad digest length","digest",e);const n=t.sign(r,{canonical:!0});return jr({recoveryParam:n.recoveryParam,r:Gr("0x"+n.r.toString(16),32),s:Gr("0x"+n.s.toString(16),32)})}computeSharedSecret(e){const t=La().keyFromPrivate(Nr(this.privateKey)),r=La().keyFromPublic(Nr(Ga(e)));return Gr("0x"+t.derive(r.getPublic()).toString(16),32)}static isSigningKey(e){return!(!e||!e._isSigningKey)}}function Ga(e,t){const r=Nr(e);if(32===r.length){const e=new Ua(r);return t?"0x"+La().keyFromPrivate(r).getPublic(!0,"hex"):e.publicKey}return 33===r.length?t?Br(r):"0x"+La().keyFromPublic(r).getPublic(!1,"hex"):65===r.length?t?"0x"+La().keyFromPublic(r).getPublic(!0,"hex"):Br(r):Da.throwArgumentError("invalid public or private key","key","[REDACTED]")}const ja=new Er("transactions/5.8.0");var Ha;function qa(e){return"0x"===e?null:Ui(e)}function Va(e){return"0x"===e?jn:Qr.from(e)}!function(e){e[e.legacy=0]="legacy",e[e.eip2930=1]="eip2930",e[e.eip1559=2]="eip1559"}(Ha||(Ha={}));const za=[{name:"nonce",maxLength:32,numeric:!0},{name:"gasPrice",maxLength:32,numeric:!0},{name:"gasLimit",maxLength:32,numeric:!0},{name:"to",length:20},{name:"value",maxLength:32,numeric:!0},{name:"data"}],Ka={chainId:!0,data:!0,gasLimit:!0,gasPrice:!0,nonce:!0,to:!0,type:!0,value:!0};function Wa(e){return Ui(Fr(Kn(Fr(Ga(e),1)),12))}function Ja(e,t){return Wa(function(e,t){const r=jr(t),n={r:Nr(r.r),s:Nr(r.s)};return"0x"+La().recoverPubKey(Nr(e),n,r.recoveryParam).encode("hex",!1)}(Nr(e),t))}function Qa(e,t){const r=Rr(Qr.from(e).toHexString());return r.length>32&&ja.throwArgumentError("invalid length for "+t,"transaction:"+t,e),r}function Ya(e,t){return{address:Ui(e),storageKeys:(t||[]).map((t,r)=>(32!==Dr(t)&&ja.throwArgumentError("invalid access list storageKey",`accessList[${e}:${r}]`,t),t.toLowerCase()))}}function Xa(e){if(Array.isArray(e))return e.map((e,t)=>Array.isArray(e)?(e.length>2&&ja.throwArgumentError("access list expected to be [ address, storageKeys[] ]",`value[${t}]`,e),Ya(e[0],e[1])):Ya(e.address,e.storageKeys));const t=Object.keys(e).map(t=>{const r=e[t].reduce((e,t)=>(e[t]=!0,e),{});return Ya(t,Object.keys(r).sort())});return t.sort((e,t)=>e.address.localeCompare(t.address)),t}function Za(e){return Xa(e).map(e=>[e.address,e.storageKeys])}function $a(e,t){if(null!=e.gasPrice){const t=Qr.from(e.gasPrice),r=Qr.from(e.maxFeePerGas||0);t.eq(r)||ja.throwArgumentError("mismatch EIP-1559 gasPrice != maxFeePerGas","tx",{gasPrice:t,maxFeePerGas:r})}const r=[Qa(e.chainId||0,"chainId"),Qa(e.nonce||0,"nonce"),Qa(e.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),Qa(e.maxFeePerGas||0,"maxFeePerGas"),Qa(e.gasLimit||0,"gasLimit"),null!=e.to?Ui(e.to):"0x",Qa(e.value||0,"value"),e.data||"0x",Za(e.accessList||[])];if(t){const e=jr(t);r.push(Qa(e.recoveryParam,"recoveryParam")),r.push(Rr(e.r)),r.push(Rr(e.s))}return Lr(["0x02",_i(r)])}function eu(e,t){const r=[Qa(e.chainId||0,"chainId"),Qa(e.nonce||0,"nonce"),Qa(e.gasPrice||0,"gasPrice"),Qa(e.gasLimit||0,"gasLimit"),null!=e.to?Ui(e.to):"0x",Qa(e.value||0,"value"),e.data||"0x",Za(e.accessList||[])];if(t){const e=jr(t);r.push(Qa(e.recoveryParam,"recoveryParam")),r.push(Rr(e.r)),r.push(Rr(e.s))}return Lr(["0x01",_i(r)])}function tu(e,t){if(null==e.type||0===e.type)return null!=e.accessList&&ja.throwArgumentError("untyped transactions do not support accessList; include type: 1","transaction",e),function(e,t){vn(e,Ka);const r=[];za.forEach(function(t){let n=e[t.name]||[];const i={};t.numeric&&(i.hexPad="left"),n=Nr(Br(n,i)),t.length&&n.length!==t.length&&n.length>0&&ja.throwArgumentError("invalid length for "+t.name,"transaction:"+t.name,n),t.maxLength&&(n=Rr(n),n.length>t.maxLength&&ja.throwArgumentError("invalid length for "+t.name,"transaction:"+t.name,n)),r.push(Br(n))});let n=0;if(null!=e.chainId?(n=e.chainId,"number"!=typeof n&&ja.throwArgumentError("invalid transaction.chainId","transaction",e)):t&&!Pr(t)&&t.v>28&&(n=Math.floor((t.v-35)/2)),0!==n&&(r.push(Br(n)),r.push("0x"),r.push("0x")),!t)return _i(r);const i=jr(t);let o=27+i.recoveryParam;return 0!==n?(r.pop(),r.pop(),r.pop(),o+=2*n+8,i.v>28&&i.v!==o&&ja.throwArgumentError("transaction.chainId/signature.v mismatch","signature",t)):i.v!==o&&ja.throwArgumentError("transaction.chainId/signature.v mismatch","signature",t),r.push(Br(o)),r.push(Rr(Nr(i.r))),r.push(Rr(Nr(i.s))),_i(r)}(e,t);switch(e.type){case 1:return eu(e,t);case 2:return $a(e,t)}return ja.throwError(`unsupported transaction type: ${e.type}`,Er.errors.UNSUPPORTED_OPERATION,{operation:"serializeTransaction",transactionType:e.type})}function ru(e,t,r){try{const r=Va(t[0]).toNumber();if(0!==r&&1!==r)throw new Error("bad recid");e.v=r}catch(e){ja.throwArgumentError("invalid v for transaction type: 1","v",t[0])}e.r=Gr(t[1],32),e.s=Gr(t[2],32);try{const t=Kn(r(e));e.from=Ja(t,{r:e.r,s:e.s,recoveryParam:e.v})}catch(e){}}const nu=new Er($s);class iu{constructor(){this.formats=this.getDefaultFormats()}getDefaultFormats(){const e={},t=this.address.bind(this),r=this.bigNumber.bind(this),n=this.blockTag.bind(this),i=this.data.bind(this),o=this.hash.bind(this),s=this.hex.bind(this),a=this.number.bind(this),u=this.type.bind(this);return e.transaction={hash:o,type:u,accessList:iu.allowNull(this.accessList.bind(this),null),blockHash:iu.allowNull(o,null),blockNumber:iu.allowNull(a,null),transactionIndex:iu.allowNull(a,null),confirmations:iu.allowNull(a,null),from:t,gasPrice:iu.allowNull(r),maxPriorityFeePerGas:iu.allowNull(r),maxFeePerGas:iu.allowNull(r),gasLimit:r,to:iu.allowNull(t,null),value:r,nonce:a,data:i,r:iu.allowNull(this.uint256),s:iu.allowNull(this.uint256),v:iu.allowNull(a),creates:iu.allowNull(t,null),raw:iu.allowNull(i)},e.transactionRequest={from:iu.allowNull(t),nonce:iu.allowNull(a),gasLimit:iu.allowNull(r),gasPrice:iu.allowNull(r),maxPriorityFeePerGas:iu.allowNull(r),maxFeePerGas:iu.allowNull(r),to:iu.allowNull(t),value:iu.allowNull(r),data:iu.allowNull(e=>this.data(e,!0)),type:iu.allowNull(a),accessList:iu.allowNull(this.accessList.bind(this),null)},e.receiptLog={transactionIndex:a,blockNumber:a,transactionHash:o,address:t,topics:iu.arrayOf(o),data:i,logIndex:a,blockHash:o},e.receipt={to:iu.allowNull(this.address,null),from:iu.allowNull(this.address,null),contractAddress:iu.allowNull(t,null),transactionIndex:a,root:iu.allowNull(s),gasUsed:r,logsBloom:iu.allowNull(i),blockHash:o,transactionHash:o,logs:iu.arrayOf(this.receiptLog.bind(this)),blockNumber:a,confirmations:iu.allowNull(a,null),cumulativeGasUsed:r,effectiveGasPrice:iu.allowNull(r),status:iu.allowNull(a),type:u},e.block={hash:iu.allowNull(o),parentHash:o,number:a,timestamp:a,nonce:iu.allowNull(s),difficulty:this.difficulty.bind(this),gasLimit:r,gasUsed:r,miner:iu.allowNull(t),extraData:i,transactions:iu.allowNull(iu.arrayOf(o)),baseFeePerGas:iu.allowNull(r)},e.blockWithTransactions=An(e.block),e.blockWithTransactions.transactions=iu.allowNull(iu.arrayOf(this.transactionResponse.bind(this))),e.filter={fromBlock:iu.allowNull(n,void 0),toBlock:iu.allowNull(n,void 0),blockHash:iu.allowNull(o,void 0),address:iu.allowNull(t,void 0),topics:iu.allowNull(this.topics.bind(this),void 0)},e.filterLog={blockNumber:iu.allowNull(a),blockHash:iu.allowNull(o),transactionIndex:a,removed:iu.allowNull(this.boolean.bind(this)),address:t,data:iu.allowFalsish(i,"0x"),topics:iu.arrayOf(o),transactionHash:o,logIndex:a},e}accessList(e){return Xa(e||[])}number(e){return"0x"===e?0:Qr.from(e).toNumber()}type(e){return"0x"===e||null==e?0:Qr.from(e).toNumber()}bigNumber(e){return Qr.from(e)}boolean(e){if("boolean"==typeof e)return e;if("string"==typeof e){if("true"===(e=e.toLowerCase()))return!0;if("false"===e)return!1}throw new Error("invalid boolean - "+e)}hex(e,t){return"string"==typeof e&&(t||"0x"===e.substring(0,2)||(e="0x"+e),Mr(e))?e.toLowerCase():nu.throwArgumentError("invalid hash","value",e)}data(e,t){const r=this.hex(e,t);if(r.length%2!=0)throw new Error("invalid data; odd-length - "+e);return r}address(e){return Ui(e)}callAddress(e){if(!Mr(e,32))return null;const t=Ui(Fr(e,12));return"0x0000000000000000000000000000000000000000"===t?null:t}contractAddress(e){return Gi(e)}blockTag(e){if(null==e)return"latest";if("earliest"===e)return"0x0";switch(e){case"earliest":return"0x0";case"latest":case"pending":case"safe":case"finalized":return e}if("number"==typeof e||Mr(e))return Ur(e);throw new Error("invalid blockTag")}hash(e,t){const r=this.hex(e,t);return 32!==Dr(r)?nu.throwArgumentError("invalid hash","value",e):r}difficulty(e){if(null==e)return null;const t=Qr.from(e);try{return t.toNumber()}catch(e){}return null}uint256(e){if(!Mr(e))throw new Error("invalid uint256");return Gr(e,32)}_block(e,t){null!=e.author&&null==e.miner&&(e.miner=e.author);const r=null!=e._difficulty?e._difficulty:e.difficulty,n=iu.check(t,e);return n._difficulty=null==r?null:Qr.from(r),n}block(e){return this._block(e,this.formats.block)}blockWithTransactions(e){return this._block(e,this.formats.blockWithTransactions)}transactionRequest(e){return iu.check(this.formats.transactionRequest,e)}transactionResponse(e){null!=e.gas&&null==e.gasLimit&&(e.gasLimit=e.gas),e.to&&Qr.from(e.to).isZero()&&(e.to="0x0000000000000000000000000000000000000000"),null!=e.input&&null==e.data&&(e.data=e.input),null==e.to&&null==e.creates&&(e.creates=this.contractAddress(e)),1!==e.type&&2!==e.type||null!=e.accessList||(e.accessList=[]);const t=iu.check(this.formats.transaction,e);if(null!=e.chainId){let r=e.chainId;Mr(r)&&(r=Qr.from(r).toNumber()),t.chainId=r}else{let r=e.networkId;null==r&&null==t.v&&(r=e.chainId),Mr(r)&&(r=Qr.from(r).toNumber()),"number"!=typeof r&&null!=t.v&&(r=(t.v-35)/2,r<0&&(r=0),r=parseInt(r)),"number"!=typeof r&&(r=0),t.chainId=r}return t.blockHash&&"x"===t.blockHash.replace(/0/g,"")&&(t.blockHash=null),t}transaction(e){return function(e){const t=Nr(e);if(t[0]>127)return function(e){const t=Oi(e);9!==t.length&&6!==t.length&&ja.throwArgumentError("invalid raw transaction","rawTransaction",e);const r={nonce:Va(t[0]).toNumber(),gasPrice:Va(t[1]),gasLimit:Va(t[2]),to:qa(t[3]),value:Va(t[4]),data:t[5],chainId:0};if(6===t.length)return r;try{r.v=Qr.from(t[6]).toNumber()}catch(e){return r}if(r.r=Gr(t[7],32),r.s=Gr(t[8],32),Qr.from(r.r).isZero()&&Qr.from(r.s).isZero())r.chainId=r.v,r.v=0;else{r.chainId=Math.floor((r.v-35)/2),r.chainId<0&&(r.chainId=0);let n=r.v-27;const i=t.slice(0,6);0!==r.chainId&&(i.push(Br(r.chainId)),i.push("0x"),i.push("0x"),n-=2*r.chainId+8);const o=Kn(_i(i));try{r.from=Ja(o,{r:Br(r.r),s:Br(r.s),recoveryParam:n})}catch(e){}r.hash=Kn(e)}return r.type=null,r}(t);switch(t[0]){case 1:return function(e){const t=Oi(e.slice(1));8!==t.length&&11!==t.length&&ja.throwArgumentError("invalid component count for transaction type: 1","payload",Br(e));const r={type:1,chainId:Va(t[0]).toNumber(),nonce:Va(t[1]).toNumber(),gasPrice:Va(t[2]),gasLimit:Va(t[3]),to:qa(t[4]),value:Va(t[5]),data:t[6],accessList:Xa(t[7])};return 8===t.length||(r.hash=Kn(e),ru(r,t.slice(8),eu)),r}(t);case 2:return function(e){const t=Oi(e.slice(1));9!==t.length&&12!==t.length&&ja.throwArgumentError("invalid component count for transaction type: 2","payload",Br(e));const r=Va(t[2]),n=Va(t[3]),i={type:2,chainId:Va(t[0]).toNumber(),nonce:Va(t[1]).toNumber(),maxPriorityFeePerGas:r,maxFeePerGas:n,gasPrice:null,gasLimit:Va(t[4]),to:qa(t[5]),value:Va(t[6]),data:t[7],accessList:Xa(t[8])};return 9===t.length||(i.hash=Kn(e),ru(i,t.slice(9),$a)),i}(t)}return ja.throwError(`unsupported transaction type: ${t[0]}`,Er.errors.UNSUPPORTED_OPERATION,{operation:"parseTransaction",transactionType:t[0]})}(e)}receiptLog(e){return iu.check(this.formats.receiptLog,e)}receipt(e){const t=iu.check(this.formats.receipt,e);if(null!=t.root)if(t.root.length<=4){const e=Qr.from(t.root).toNumber();0===e||1===e?(null!=t.status&&t.status!==e&&nu.throwArgumentError("alt-root-status/status mismatch","value",{root:t.root,status:t.status}),t.status=e,delete t.root):nu.throwArgumentError("invalid alt-root-status","value.root",t.root)}else 66!==t.root.length&&nu.throwArgumentError("invalid root hash","value.root",t.root);return null!=t.status&&(t.byzantium=!0),t}topics(e){return Array.isArray(e)?e.map(e=>this.topics(e)):null!=e?this.hash(e,!0):null}filter(e){return iu.check(this.formats.filter,e)}filterLog(e){return iu.check(this.formats.filterLog,e)}static check(e,t){const r={};for(const n in e)try{const i=e[n](t[n]);void 0!==i&&(r[n]=i)}catch(e){throw e.checkKey=n,e.checkValue=t[n],e}return r}static allowNull(e,t){return function(r){return null==r?t:e(r)}}static allowFalsish(e,t){return function(r){return r?e(r):t}}static arrayOf(e){return function(t){if(!Array.isArray(t))throw new Error("not an array");const r=[];return t.forEach(function(t){r.push(e(t))}),r}}}var ou=function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function s(e){try{u(n.next(e))}catch(e){o(e)}}function a(e){try{u(n.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r(function(e){e(t)})).then(s,a)}u((n=n.apply(e,t||[])).next())})};const su=new Er($s);function au(e){return null==e?"null":(32!==Dr(e)&&su.throwArgumentError("invalid topic","topic",e),e.toLowerCase())}function uu(e){for(e=e.slice();e.length>0&&null==e[e.length-1];)e.pop();return e.map(e=>{if(Array.isArray(e)){const t={};e.forEach(e=>{t[au(e)]=!0});const r=Object.keys(t);return r.sort(),r.join("|")}return au(e)}).join("&")}function lu(e){if("string"==typeof e){if(32===Dr(e=e.toLowerCase()))return"tx:"+e;if(-1===e.indexOf(":"))return e}else{if(Array.isArray(e))return"filter:*:"+uu(e);if(Pn.isForkEvent(e))throw su.warn("not implemented"),new Error("not implemented");if(e&&"object"==typeof e)return"filter:"+(e.address||"*")+":"+uu(e.topics||[])}throw new Error("invalid event - "+e)}function cu(){return(new Date).getTime()}function du(e){return new Promise(t=>{setTimeout(t,e)})}const hu=["block","network","pending","poll"];class pu{constructor(e,t,r){yn(this,"tag",e),yn(this,"listener",t),yn(this,"once",r),this._lastBlockNumber=-2,this._inflight=!1}get event(){switch(this.type){case"tx":return this.hash;case"filter":return this.filter}return this.tag}get type(){return this.tag.split(":")[0]}get hash(){const e=this.tag.split(":");return"tx"!==e[0]?null:e[1]}get filter(){const e=this.tag.split(":");if("filter"!==e[0])return null;const t=e[1],r=""===(n=e[2])?[]:n.split(/&/g).map(e=>{if(""===e)return[];const t=e.split("|").map(e=>"null"===e?null:e);return 1===t.length?t[0]:t});var n;const i={};return r.length>0&&(i.topics=r),t&&"*"!==t&&(i.address=t),i}pollable(){return this.tag.indexOf(":")>=0||hu.indexOf(this.tag)>=0}}const fu={0:{symbol:"btc",p2pkh:0,p2sh:5,prefix:"bc"},2:{symbol:"ltc",p2pkh:48,p2sh:50,prefix:"ltc"},3:{symbol:"doge",p2pkh:30,p2sh:22},60:{symbol:"eth",ilk:"eth"},61:{symbol:"etc",ilk:"eth"},700:{symbol:"xdai",ilk:"eth"}};function mu(e){return Gr(Qr.from(e).toHexString(),32)}function yu(e){return Un.encode(_r([e,Fr(Ls(Ls(e)),0,4)]))}const gu=new RegExp("^(ipfs)://(.*)$","i"),bu=[new RegExp("^(https)://(.*)$","i"),new RegExp("^(data):(.*)$","i"),gu,new RegExp("^eip155:[0-9]+/(erc[0-9]+):(.*)$","i")];function vu(e,t){try{return ei(Au(e,t))}catch(e){}return null}function Au(e,t){if("0x"===e)return null;const r=Qr.from(Fr(e,t,t+32)).toNumber(),n=Qr.from(Fr(e,r,r+32)).toNumber();return Fr(e,r+32,r+32+n)}function wu(e){return e.match(/^ipfs:\/\/ipfs\//i)?e=e.substring(12):e.match(/^ipfs:\/\//i)?e=e.substring(7):su.throwArgumentError("unsupported IPFS format","link",e),`https://gateway.ipfs.io/ipfs/${e}`}function Tu(e){const t=Nr(e);if(t.length>32)throw new Error("internal; should not happen");const r=new Uint8Array(32);return r.set(t,32-t.length),r}function Eu(e){if(e.length%32==0)return e;const t=new Uint8Array(32*Math.ceil(e.length/32));return t.set(e),t}function Iu(e){const t=[];let r=0;for(let n=0;n<e.length;n++)t.push(null),r+=32;for(let n=0;n<e.length;n++){const i=Nr(e[n]);t[n]=Tu(r),t.push(Tu(i.length)),t.push(Eu(i)),r+=32+32*Math.ceil(i.length/32)}return Lr(t)}class Su{constructor(e,t,r,n){yn(this,"provider",e),yn(this,"name",r),yn(this,"address",e.formatter.address(t)),yn(this,"_resolvedAddress",n)}supportsWildcard(){return this._supportsEip2544||(this._supportsEip2544=this.provider.call({to:this.address,data:"0x01ffc9a79061b92300000000000000000000000000000000000000000000000000000000"}).then(e=>Qr.from(e).eq(1)).catch(e=>{if(e.code===Er.errors.CALL_EXCEPTION)return!1;throw this._supportsEip2544=null,e})),this._supportsEip2544}_fetch(e,t){return ou(this,void 0,void 0,function*(){const r={to:this.address,ccipReadEnabled:!0,data:Lr([e,ki(this.name),t||"0x"])};let n=!1;var i;(yield this.supportsWildcard())&&(n=!0,r.data=Lr(["0x9061b923",Iu([(i=this.name,Br(_r(Si(i).map(e=>{if(e.length>63)throw new Error("invalid DNS encoded entry; length exceeds 63 bytes");const t=new Uint8Array(e.length+1);return t.set(e,1),t[0]=t.length-1,t})))+"00"),r.data])]));try{let e=yield this.provider.call(r);return Nr(e).length%32==4&&su.throwError("resolver threw error",Er.errors.CALL_EXCEPTION,{transaction:r,data:e}),n&&(e=Au(e,0)),e}catch(e){if(e.code===Er.errors.CALL_EXCEPTION)return null;throw e}})}_fetchBytes(e,t){return ou(this,void 0,void 0,function*(){const r=yield this._fetch(e,t);return null!=r?Au(r,0):null})}_getAddress(e,t){const r=fu[String(e)];if(null==r&&su.throwError(`unsupported coin type: ${e}`,Er.errors.UNSUPPORTED_OPERATION,{operation:`getAddress(${e})`}),"eth"===r.ilk)return this.provider.formatter.address(t);const n=Nr(t);if(null!=r.p2pkh){const e=t.match(/^0x76a9([0-9a-f][0-9a-f])([0-9a-f]*)88ac$/);if(e){const t=parseInt(e[1],16);if(e[2].length===2*t&&t>=1&&t<=75)return yu(_r([[r.p2pkh],"0x"+e[2]]))}}if(null!=r.p2sh){const e=t.match(/^0xa9([0-9a-f][0-9a-f])([0-9a-f]*)87$/);if(e){const t=parseInt(e[1],16);if(e[2].length===2*t&&t>=1&&t<=75)return yu(_r([[r.p2sh],"0x"+e[2]]))}}if(null!=r.prefix){const e=n[1];let t=n[0];if(0===t?20!==e&&32!==e&&(t=-1):t=-1,t>=0&&n.length===2+e&&e>=1&&e<=75){const e=function(e){var t=function(e,t,r,n){for(var i=0,o=0,s=[],a=0;a<e.length;++a)for(i=i<<8|e[a],o+=8;o>=5;)s.push(i>>(o-=5)&31);return o>0&&s.push(i<<5-o&31),s}(e);if(Array.isArray(t))return t;throw new Error(t)}(n.slice(2));return e.unshift(t),function(e,t,r){if(e.length+7+t.length>(r=r||90))throw new TypeError("Exceeds length limit");var n=function(e){for(var t=1,r=0;r<e.length;++r){var n=e.charCodeAt(r);if(n<33||n>126)return"Invalid prefix ("+e+")";t=Zs(t)^n>>5}for(t=Zs(t),r=0;r<e.length;++r){var i=e.charCodeAt(r);t=Zs(t)^31&i}return t}(e=e.toLowerCase());if("string"==typeof n)throw new Error(n);for(var i=e+"1",o=0;o<t.length;++o){var s=t[o];if(s>>5!=0)throw new Error("Non 5-bit word");n=Zs(n)^s,i+=Js.charAt(s)}for(o=0;o<6;++o)n=Zs(n);for(n^=1,o=0;o<6;++o)i+=Js.charAt(n>>5*(5-o)&31);return i}(r.prefix,e)}}return null}getAddress(e){return ou(this,void 0,void 0,function*(){if(null==e&&(e=60),60===e)try{const e=yield this._fetch("0x3b3b57de");return"0x"===e||"0x0000000000000000000000000000000000000000000000000000000000000000"===e?null:this.provider.formatter.callAddress(e)}catch(e){if(e.code===Er.errors.CALL_EXCEPTION)return null;throw e}const t=yield this._fetchBytes("0xf1cb7e06",mu(e));if(null==t||"0x"===t)return null;const r=this._getAddress(e,t);return null==r&&su.throwError("invalid or unsupported coin data",Er.errors.UNSUPPORTED_OPERATION,{operation:`getAddress(${e})`,coinType:e,data:t}),r})}getAvatar(){return ou(this,void 0,void 0,function*(){const e=[{type:"name",content:this.name}];try{const t=yield this.getText("avatar");if(null==t)return null;for(let r=0;r<bu.length;r++){const n=t.match(bu[r]);if(null==n)continue;const i=n[1].toLowerCase();switch(i){case"https":return e.push({type:"url",content:t}),{linkage:e,url:t};case"data":return e.push({type:"data",content:t}),{linkage:e,url:t};case"ipfs":return e.push({type:"ipfs",content:t}),{linkage:e,url:wu(t)};case"erc721":case"erc1155":{const r="erc721"===i?"0xc87b56dd":"0x0e89341c";e.push({type:i,content:t});const o=this._resolvedAddress||(yield this.getAddress()),s=(n[2]||"").split("/");if(2!==s.length)return null;const a=yield this.provider.formatter.address(s[0]),u=Gr(Qr.from(s[1]).toHexString(),32);if("erc721"===i){const t=this.provider.formatter.callAddress(yield this.provider.call({to:a,data:Lr(["0x6352211e",u])}));if(o!==t)return null;e.push({type:"owner",content:t})}else if("erc1155"===i){const t=Qr.from(yield this.provider.call({to:a,data:Lr(["0x00fdd58e",Gr(o,32),u])}));if(t.isZero())return null;e.push({type:"balance",content:t.toString()})}const l={to:this.provider.formatter.address(s[0]),data:Lr([r,u])};let c=vu(yield this.provider.call(l),0);if(null==c)return null;e.push({type:"metadata-url-base",content:c}),"erc1155"===i&&(c=c.replace("{id}",u.substring(2)),e.push({type:"metadata-url-expanded",content:c})),c.match(/^ipfs:/i)&&(c=wu(c)),e.push({type:"metadata-url",content:c});const d=yield Ks(c);if(!d)return null;e.push({type:"metadata",content:JSON.stringify(d)});let h=d.image;if("string"!=typeof h)return null;if(h.match(/^(https:\/\/|data:)/i));else{if(null==h.match(gu))return null;e.push({type:"url-ipfs",content:h}),h=wu(h)}return e.push({type:"url",content:h}),{linkage:e,url:h}}}}}catch(e){}return null})}getContentHash(){return ou(this,void 0,void 0,function*(){const e=yield this._fetchBytes("0xbc1c58d1");if(null==e||"0x"===e)return null;const t=e.match(/^0xe3010170(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/);if(t){const e=parseInt(t[3],16);if(t[4].length===2*e)return"ipfs://"+Un.encode("0x"+t[1])}const r=e.match(/^0xe5010172(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/);if(r){const e=parseInt(r[3],16);if(r[4].length===2*e)return"ipns://"+Un.encode("0x"+r[1])}const n=e.match(/^0xe40101fa011b20([0-9a-f]*)$/);if(n&&64===n[1].length)return"bzz://"+n[1];const i=e.match(/^0x90b2c605([0-9a-f]*)$/);if(i&&68===i[1].length){const e={"=":"","+":"-","/":"_"};return"sia://"+Fn("0x"+i[1]).replace(/[=+\/]/g,t=>e[t])}return su.throwError("invalid or unsupported content hash data",Er.errors.UNSUPPORTED_OPERATION,{operation:"getContentHash()",data:e})})}getText(e){return ou(this,void 0,void 0,function*(){let t=$n(e);t=_r([mu(64),mu(t.length),t]),t.length%32!=0&&(t=_r([t,Gr("0x",32-e.length%32)]));const r=yield this._fetchBytes("0x59d1d43c",Br(t));return null==r||"0x"===r?null:ei(r)})}}let ku=null,Pu=1;class Cu extends Cn{constructor(e){if(super(),this._events=[],this._emitted={block:-2},this.disableCcipRead=!1,this.formatter=new.target.getFormatter(),yn(this,"anyNetwork","any"===e),this.anyNetwork&&(e=this.detectNetwork()),e instanceof Promise)this._networkPromise=e,e.catch(e=>{}),this._ready().catch(e=>{});else{const t=gn(new.target,"getNetwork")(e);t?(yn(this,"_network",t),this.emit("network",t,null)):su.throwArgumentError("invalid network","network",e)}this._maxInternalBlockNumber=-1024,this._lastBlockNumber=-2,this._maxFilterBlockRange=10,this._pollingInterval=4e3,this._fastQueryDate=0}_ready(){return ou(this,void 0,void 0,function*(){if(null==this._network){let e=null;if(this._networkPromise)try{e=yield this._networkPromise}catch(e){}null==e&&(e=yield this.detectNetwork()),e||su.throwError("no network detected",Er.errors.UNKNOWN_ERROR,{}),null==this._network&&(this.anyNetwork?this._network=e:yn(this,"_network",e),this.emit("network",e,null))}return this._network})}get ready(){return Ws(()=>this._ready().then(e=>e,e=>{if(e.code!==Er.errors.NETWORK_ERROR||"noNetwork"!==e.event)throw e}))}static getFormatter(){return null==ku&&(ku=new iu),ku}static getNetwork(e){return function(e){if(null==e)return null;if("number"==typeof e){for(const t in Bn){const r=Bn[t];if(r.chainId===e)return{name:r.name,chainId:r.chainId,ensAddress:r.ensAddress||null,_defaultProvider:r._defaultProvider||null}}return{chainId:e,name:"unknown"}}if("string"==typeof e){const t=Bn[e];return null==t?null:{name:t.name,chainId:t.chainId,ensAddress:t.ensAddress,_defaultProvider:t._defaultProvider||null}}const t=Bn[e.name];if(!t)return"number"!=typeof e.chainId&&xn.throwArgumentError("invalid network chainId","network",e),e;0!==e.chainId&&e.chainId!==t.chainId&&xn.throwArgumentError("network chainId mismatch","network",e);let r=e._defaultProvider||null;var n;return null==r&&t._defaultProvider&&(r=(n=t._defaultProvider)&&"function"==typeof n.renetwork?t._defaultProvider.renetwork(e):t._defaultProvider),{name:e.name,chainId:t.chainId,ensAddress:e.ensAddress||t.ensAddress||null,_defaultProvider:r}}(null==e?"homestead":e)}ccipReadFetch(e,t,r){return ou(this,void 0,void 0,function*(){if(this.disableCcipRead||0===r.length)return null;const n=e.to.toLowerCase(),i=t.toLowerCase(),o=[];for(let e=0;e<r.length;e++){const t=r[e],s=t.replace("{sender}",n).replace("{data}",i),a=t.indexOf("{data}")>=0?null:JSON.stringify({data:i,sender:n}),u=yield Ks({url:s,errorPassThrough:!0},a,(e,t)=>(e.status=t.statusCode,e));if(u.data)return u.data;const l=u.message||"unknown error";if(u.status>=400&&u.status<500)return su.throwError(`response not found during CCIP fetch: ${l}`,Er.errors.SERVER_ERROR,{url:t,errorMessage:l});o.push(l)}return su.throwError(`error encountered during CCIP fetch: ${o.map(e=>JSON.stringify(e)).join(", ")}`,Er.errors.SERVER_ERROR,{urls:r,errorMessages:o})})}_getInternalBlockNumber(e){return ou(this,void 0,void 0,function*(){if(yield this._ready(),e>0)for(;this._internalBlockNumber;){const t=this._internalBlockNumber;try{const r=yield t;if(cu()-r.respTime<=e)return r.blockNumber;break}catch(e){if(this._internalBlockNumber===t)break}}const t=cu(),r=bn({blockNumber:this.perform("getBlockNumber",{}),networkError:this.getNetwork().then(e=>null,e=>e)}).then(({blockNumber:e,networkError:n})=>{if(n)throw this._internalBlockNumber===r&&(this._internalBlockNumber=null),n;const i=cu();return(e=Qr.from(e).toNumber())<this._maxInternalBlockNumber&&(e=this._maxInternalBlockNumber),this._maxInternalBlockNumber=e,this._setFastBlockNumber(e),{blockNumber:e,reqTime:t,respTime:i}});return this._internalBlockNumber=r,r.catch(e=>{this._internalBlockNumber===r&&(this._internalBlockNumber=null)}),(yield r).blockNumber})}poll(){return ou(this,void 0,void 0,function*(){const e=Pu++,t=[];let r=null;try{r=yield this._getInternalBlockNumber(100+this.pollingInterval/2)}catch(e){return void this.emit("error",e)}if(this._setFastBlockNumber(r),this.emit("poll",e,r),r!==this._lastBlockNumber){if(-2===this._emitted.block&&(this._emitted.block=r-1),Math.abs(this._emitted.block-r)>1e3)su.warn(`network block skew detected; skipping block events (emitted=${this._emitted.block} blockNumber${r})`),this.emit("error",su.makeError("network block skew detected",Er.errors.NETWORK_ERROR,{blockNumber:r,event:"blockSkew",previousBlockNumber:this._emitted.block})),this.emit("block",r);else for(let e=this._emitted.block+1;e<=r;e++)this.emit("block",e);this._emitted.block!==r&&(this._emitted.block=r,Object.keys(this._emitted).forEach(e=>{if("block"===e)return;const t=this._emitted[e];"pending"!==t&&r-t>12&&delete this._emitted[e]})),-2===this._lastBlockNumber&&(this._lastBlockNumber=r-1),this._events.forEach(e=>{switch(e.type){case"tx":{const r=e.hash;let n=this.getTransactionReceipt(r).then(e=>e&&null!=e.blockNumber?(this._emitted["t:"+r]=e.blockNumber,this.emit(r,e),null):null).catch(e=>{this.emit("error",e)});t.push(n);break}case"filter":if(!e._inflight){e._inflight=!0,-2===e._lastBlockNumber&&(e._lastBlockNumber=r-1);const n=e.filter;n.fromBlock=e._lastBlockNumber+1,n.toBlock=r;const i=n.toBlock-this._maxFilterBlockRange;i>n.fromBlock&&(n.fromBlock=i),n.fromBlock<0&&(n.fromBlock=0);const o=this.getLogs(n).then(t=>{e._inflight=!1,0!==t.length&&t.forEach(t=>{t.blockNumber>e._lastBlockNumber&&(e._lastBlockNumber=t.blockNumber),this._emitted["b:"+t.blockHash]=t.blockNumber,this._emitted["t:"+t.transactionHash]=t.blockNumber,this.emit(n,t)})}).catch(t=>{this.emit("error",t),e._inflight=!1});t.push(o)}}}),this._lastBlockNumber=r,Promise.all(t).then(()=>{this.emit("didPoll",e)}).catch(e=>{this.emit("error",e)})}else this.emit("didPoll",e)})}resetEventsBlock(e){this._lastBlockNumber=e-1,this.polling&&this.poll()}get network(){return this._network}detectNetwork(){return ou(this,void 0,void 0,function*(){return su.throwError("provider does not support network detection",Er.errors.UNSUPPORTED_OPERATION,{operation:"provider.detectNetwork"})})}getNetwork(){return ou(this,void 0,void 0,function*(){const e=yield this._ready(),t=yield this.detectNetwork();if(e.chainId!==t.chainId){if(this.anyNetwork)return this._network=t,this._lastBlockNumber=-2,this._fastBlockNumber=null,this._fastBlockNumberPromise=null,this._fastQueryDate=0,this._emitted.block=-2,this._maxInternalBlockNumber=-1024,this._internalBlockNumber=null,this.emit("network",t,e),yield du(0),this._network;const r=su.makeError("underlying network changed",Er.errors.NETWORK_ERROR,{event:"changed",network:e,detectedNetwork:t});throw this.emit("error",r),r}return e})}get blockNumber(){return this._getInternalBlockNumber(100+this.pollingInterval/2).then(e=>{this._setFastBlockNumber(e)},e=>{}),null!=this._fastBlockNumber?this._fastBlockNumber:-1}get polling(){return null!=this._poller}set polling(e){e&&!this._poller?(this._poller=setInterval(()=>{this.poll()},this.pollingInterval),this._bootstrapPoll||(this._bootstrapPoll=setTimeout(()=>{this.poll(),this._bootstrapPoll=setTimeout(()=>{this._poller||this.poll(),this._bootstrapPoll=null},this.pollingInterval)},0))):!e&&this._poller&&(clearInterval(this._poller),this._poller=null)}get pollingInterval(){return this._pollingInterval}set pollingInterval(e){if("number"!=typeof e||e<=0||parseInt(String(e))!=e)throw new Error("invalid polling interval");this._pollingInterval=e,this._poller&&(clearInterval(this._poller),this._poller=setInterval(()=>{this.poll()},this._pollingInterval))}_getFastBlockNumber(){const e=cu();return e-this._fastQueryDate>2*this._pollingInterval&&(this._fastQueryDate=e,this._fastBlockNumberPromise=this.getBlockNumber().then(e=>((null==this._fastBlockNumber||e>this._fastBlockNumber)&&(this._fastBlockNumber=e),this._fastBlockNumber))),this._fastBlockNumberPromise}_setFastBlockNumber(e){null!=this._fastBlockNumber&&e<this._fastBlockNumber||(this._fastQueryDate=cu(),(null==this._fastBlockNumber||e>this._fastBlockNumber)&&(this._fastBlockNumber=e,this._fastBlockNumberPromise=Promise.resolve(e)))}waitForTransaction(e,t,r){return ou(this,void 0,void 0,function*(){return this._waitForTransaction(e,null==t?1:t,r||0,null)})}_waitForTransaction(e,t,r,n){return ou(this,void 0,void 0,function*(){const i=yield this.getTransactionReceipt(e);return(i?i.confirmations:0)>=t?i:new Promise((i,o)=>{const s=[];let a=!1;const u=function(){return!!a||(a=!0,s.forEach(e=>{e()}),!1)},l=e=>{e.confirmations<t||u()||i(e)};if(this.on(e,l),s.push(()=>{this.removeListener(e,l)}),n){let r=n.startBlock,i=null;const l=s=>ou(this,void 0,void 0,function*(){a||(yield du(1e3),this.getTransactionCount(n.from).then(c=>ou(this,void 0,void 0,function*(){if(!a){if(c<=n.nonce)r=s;else{{const t=yield this.getTransaction(e);if(t&&null!=t.blockNumber)return}for(null==i&&(i=r-3,i<n.startBlock&&(i=n.startBlock));i<=s;){if(a)return;const r=yield this.getBlockWithTransactions(i);for(let i=0;i<r.transactions.length;i++){const s=r.transactions[i];if(s.hash===e)return;if(s.from===n.from&&s.nonce===n.nonce){if(a)return;const r=yield this.waitForTransaction(s.hash,t);if(u())return;let i="replaced";return s.data===n.data&&s.to===n.to&&s.value.eq(n.value)?i="repriced":"0x"===s.data&&s.from===s.to&&s.value.isZero()&&(i="cancelled"),void o(su.makeError("transaction was replaced",Er.errors.TRANSACTION_REPLACED,{cancelled:"replaced"===i||"cancelled"===i,reason:i,replacement:this._wrapTransaction(s),hash:e,receipt:r}))}}i++}}a||this.once("block",l)}}),e=>{a||this.once("block",l)}))});if(a)return;this.once("block",l),s.push(()=>{this.removeListener("block",l)})}if("number"==typeof r&&r>0){const e=setTimeout(()=>{u()||o(su.makeError("timeout exceeded",Er.errors.TIMEOUT,{timeout:r}))},r);e.unref&&e.unref(),s.push(()=>{clearTimeout(e)})}})})}getBlockNumber(){return ou(this,void 0,void 0,function*(){return this._getInternalBlockNumber(0)})}getGasPrice(){return ou(this,void 0,void 0,function*(){yield this.getNetwork();const e=yield this.perform("getGasPrice",{});try{return Qr.from(e)}catch(t){return su.throwError("bad result from backend",Er.errors.SERVER_ERROR,{method:"getGasPrice",result:e,error:t})}})}getBalance(e,t){return ou(this,void 0,void 0,function*(){yield this.getNetwork();const r=yield bn({address:this._getAddress(e),blockTag:this._getBlockTag(t)}),n=yield this.perform("getBalance",r);try{return Qr.from(n)}catch(e){return su.throwError("bad result from backend",Er.errors.SERVER_ERROR,{method:"getBalance",params:r,result:n,error:e})}})}getTransactionCount(e,t){return ou(this,void 0,void 0,function*(){yield this.getNetwork();const r=yield bn({address:this._getAddress(e),blockTag:this._getBlockTag(t)}),n=yield this.perform("getTransactionCount",r);try{return Qr.from(n).toNumber()}catch(e){return su.throwError("bad result from backend",Er.errors.SERVER_ERROR,{method:"getTransactionCount",params:r,result:n,error:e})}})}getCode(e,t){return ou(this,void 0,void 0,function*(){yield this.getNetwork();const r=yield bn({address:this._getAddress(e),blockTag:this._getBlockTag(t)}),n=yield this.perform("getCode",r);try{return Br(n)}catch(e){return su.throwError("bad result from backend",Er.errors.SERVER_ERROR,{method:"getCode",params:r,result:n,error:e})}})}getStorageAt(e,t,r){return ou(this,void 0,void 0,function*(){yield this.getNetwork();const n=yield bn({address:this._getAddress(e),blockTag:this._getBlockTag(r),position:Promise.resolve(t).then(e=>Ur(e))}),i=yield this.perform("getStorageAt",n);try{return Br(i)}catch(e){return su.throwError("bad result from backend",Er.errors.SERVER_ERROR,{method:"getStorageAt",params:n,result:i,error:e})}})}_wrapTransaction(e,t,r){if(null!=t&&32!==Dr(t))throw new Error("invalid response - sendTransaction");const n=e;return null!=t&&e.hash!==t&&su.throwError("Transaction hash mismatch from Provider.sendTransaction.",Er.errors.UNKNOWN_ERROR,{expectedHash:e.hash,returnedHash:t}),n.wait=(t,n)=>ou(this,void 0,void 0,function*(){let i;null==t&&(t=1),null==n&&(n=0),0!==t&&null!=r&&(i={data:e.data,from:e.from,nonce:e.nonce,to:e.to,value:e.value,startBlock:r});const o=yield this._waitForTransaction(e.hash,t,n,i);return null==o&&0===t?null:(this._emitted["t:"+e.hash]=o.blockNumber,0===o.status&&su.throwError("transaction failed",Er.errors.CALL_EXCEPTION,{transactionHash:e.hash,transaction:e,receipt:o}),o)}),n}sendTransaction(e){return ou(this,void 0,void 0,function*(){yield this.getNetwork();const t=yield Promise.resolve(e).then(e=>Br(e)),r=this.formatter.transaction(e);null==r.confirmations&&(r.confirmations=0);const n=yield this._getInternalBlockNumber(100+2*this.pollingInterval);try{const e=yield this.perform("sendTransaction",{signedTransaction:t});return this._wrapTransaction(r,e,n)}catch(e){throw e.transaction=r,e.transactionHash=r.hash,e}})}_getTransactionRequest(e){return ou(this,void 0,void 0,function*(){const t=yield e,r={};return["from","to"].forEach(e=>{null!=t[e]&&(r[e]=Promise.resolve(t[e]).then(e=>e?this._getAddress(e):null))}),["gasLimit","gasPrice","maxFeePerGas","maxPriorityFeePerGas","value"].forEach(e=>{null!=t[e]&&(r[e]=Promise.resolve(t[e]).then(e=>e?Qr.from(e):null))}),["type"].forEach(e=>{null!=t[e]&&(r[e]=Promise.resolve(t[e]).then(e=>null!=e?e:null))}),t.accessList&&(r.accessList=this.formatter.accessList(t.accessList)),["data"].forEach(e=>{null!=t[e]&&(r[e]=Promise.resolve(t[e]).then(e=>e?Br(e):null))}),this.formatter.transactionRequest(yield bn(r))})}_getFilter(e){return ou(this,void 0,void 0,function*(){e=yield e;const t={};return null!=e.address&&(t.address=this._getAddress(e.address)),["blockHash","topics"].forEach(r=>{null!=e[r]&&(t[r]=e[r])}),["fromBlock","toBlock"].forEach(r=>{null!=e[r]&&(t[r]=this._getBlockTag(e[r]))}),this.formatter.filter(yield bn(t))})}_call(e,t,r){return ou(this,void 0,void 0,function*(){r>=10&&su.throwError("CCIP read exceeded maximum redirections",Er.errors.SERVER_ERROR,{redirects:r,transaction:e});const n=e.to,i=yield this.perform("call",{transaction:e,blockTag:t});if(r>=0&&"latest"===t&&null!=n&&"0x556f1830"===i.substring(0,10)&&Dr(i)%32==4)try{const o=Fr(i,4),s=Fr(o,0,32);Qr.from(s).eq(n)||su.throwError("CCIP Read sender did not match",Er.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:e,data:i});const a=[],u=Qr.from(Fr(o,32,64)).toNumber(),l=Qr.from(Fr(o,u,u+32)).toNumber(),c=Fr(o,u+32);for(let t=0;t<l;t++){const r=vu(c,32*t);null==r&&su.throwError("CCIP Read contained corrupt URL string",Er.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:e,data:i}),a.push(r)}const d=Au(o,64);Qr.from(Fr(o,100,128)).isZero()||su.throwError("CCIP Read callback selector included junk",Er.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:e,data:i});const h=Fr(o,96,100),p=Au(o,128),f=yield this.ccipReadFetch(e,d,a);null==f&&su.throwError("CCIP Read disabled or provided no URLs",Er.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:e,data:i});const m={to:n,data:Lr([h,Iu([f,p])])};return this._call(m,t,r+1)}catch(e){if(e.code===Er.errors.SERVER_ERROR)throw e}try{return Br(i)}catch(r){return su.throwError("bad result from backend",Er.errors.SERVER_ERROR,{method:"call",params:{transaction:e,blockTag:t},result:i,error:r})}})}call(e,t){return ou(this,void 0,void 0,function*(){yield this.getNetwork();const r=yield bn({transaction:this._getTransactionRequest(e),blockTag:this._getBlockTag(t),ccipReadEnabled:Promise.resolve(e.ccipReadEnabled)});return this._call(r.transaction,r.blockTag,r.ccipReadEnabled?0:-1)})}estimateGas(e){return ou(this,void 0,void 0,function*(){yield this.getNetwork();const t=yield bn({transaction:this._getTransactionRequest(e)}),r=yield this.perform("estimateGas",t);try{return Qr.from(r)}catch(e){return su.throwError("bad result from backend",Er.errors.SERVER_ERROR,{method:"estimateGas",params:t,result:r,error:e})}})}_getAddress(e){return ou(this,void 0,void 0,function*(){"string"!=typeof(e=yield e)&&su.throwArgumentError("invalid address or ENS name","name",e);const t=yield this.resolveName(e);return null==t&&su.throwError("ENS name not configured",Er.errors.UNSUPPORTED_OPERATION,{operation:`resolveName(${JSON.stringify(e)})`}),t})}_getBlock(e,t){return ou(this,void 0,void 0,function*(){yield this.getNetwork(),e=yield e;let r=-128;const n={includeTransactions:!!t};if(Mr(e,32))n.blockHash=e;else try{n.blockTag=yield this._getBlockTag(e),Mr(n.blockTag)&&(r=parseInt(n.blockTag.substring(2),16))}catch(t){su.throwArgumentError("invalid block hash or block tag","blockHashOrBlockTag",e)}return Ws(()=>ou(this,void 0,void 0,function*(){const e=yield this.perform("getBlock",n);if(null==e)return null!=n.blockHash&&null==this._emitted["b:"+n.blockHash]||null!=n.blockTag&&r>this._emitted.block?null:void 0;if(t){let t=null;for(let r=0;r<e.transactions.length;r++){const n=e.transactions[r];if(null==n.blockNumber)n.confirmations=0;else if(null==n.confirmations){null==t&&(t=yield this._getInternalBlockNumber(100+2*this.pollingInterval));let e=t-n.blockNumber+1;e<=0&&(e=1),n.confirmations=e}}const r=this.formatter.blockWithTransactions(e);return r.transactions=r.transactions.map(e=>this._wrapTransaction(e)),r}return this.formatter.block(e)}),{oncePoll:this})})}getBlock(e){return this._getBlock(e,!1)}getBlockWithTransactions(e){return this._getBlock(e,!0)}getTransaction(e){return ou(this,void 0,void 0,function*(){yield this.getNetwork(),e=yield e;const t={transactionHash:this.formatter.hash(e,!0)};return Ws(()=>ou(this,void 0,void 0,function*(){const r=yield this.perform("getTransaction",t);if(null==r)return null==this._emitted["t:"+e]?null:void 0;const n=this.formatter.transactionResponse(r);if(null==n.blockNumber)n.confirmations=0;else if(null==n.confirmations){let e=(yield this._getInternalBlockNumber(100+2*this.pollingInterval))-n.blockNumber+1;e<=0&&(e=1),n.confirmations=e}return this._wrapTransaction(n)}),{oncePoll:this})})}getTransactionReceipt(e){return ou(this,void 0,void 0,function*(){yield this.getNetwork(),e=yield e;const t={transactionHash:this.formatter.hash(e,!0)};return Ws(()=>ou(this,void 0,void 0,function*(){const r=yield this.perform("getTransactionReceipt",t);if(null==r)return null==this._emitted["t:"+e]?null:void 0;if(null==r.blockHash)return;const n=this.formatter.receipt(r);if(null==n.blockNumber)n.confirmations=0;else if(null==n.confirmations){let e=(yield this._getInternalBlockNumber(100+2*this.pollingInterval))-n.blockNumber+1;e<=0&&(e=1),n.confirmations=e}return n}),{oncePoll:this})})}getLogs(e){return ou(this,void 0,void 0,function*(){yield this.getNetwork();const t=yield bn({filter:this._getFilter(e)}),r=yield this.perform("getLogs",t);return r.forEach(e=>{null==e.removed&&(e.removed=!1)}),iu.arrayOf(this.formatter.filterLog.bind(this.formatter))(r)})}getEtherPrice(){return ou(this,void 0,void 0,function*(){return yield this.getNetwork(),this.perform("getEtherPrice",{})})}_getBlockTag(e){return ou(this,void 0,void 0,function*(){if("number"==typeof(e=yield e)&&e<0){e%1&&su.throwArgumentError("invalid BlockTag","blockTag",e);let t=yield this._getInternalBlockNumber(100+2*this.pollingInterval);return t+=e,t<0&&(t=0),this.formatter.blockTag(t)}return this.formatter.blockTag(e)})}getResolver(e){return ou(this,void 0,void 0,function*(){let t=e;for(;;){if(""===t||"."===t)return null;if("eth"!==e&&"eth"===t)return null;const r=yield this._getResolver(t,"getResolver");if(null!=r){const n=new Su(this,r,e);return t===e||(yield n.supportsWildcard())?n:null}t=t.split(".").slice(1).join(".")}})}_getResolver(e,t){return ou(this,void 0,void 0,function*(){null==t&&(t="ENS");const r=yield this.getNetwork();r.ensAddress||su.throwError("network does not support ENS",Er.errors.UNSUPPORTED_OPERATION,{operation:t,network:r.name});try{const t=yield this.call({to:r.ensAddress,data:"0x0178b8bf"+ki(e).substring(2)});return this.formatter.callAddress(t)}catch(e){}return null})}resolveName(e){return ou(this,void 0,void 0,function*(){e=yield e;try{return Promise.resolve(this.formatter.address(e))}catch(t){if(Mr(e))throw t}"string"!=typeof e&&su.throwArgumentError("invalid ENS name","name",e);const t=yield this.getResolver(e);return t?yield t.getAddress():null})}lookupAddress(e){return ou(this,void 0,void 0,function*(){e=yield e;const t=(e=this.formatter.address(e)).substring(2).toLowerCase()+".addr.reverse",r=yield this._getResolver(t,"lookupAddress");if(null==r)return null;const n=vu(yield this.call({to:r,data:"0x691f3431"+ki(t).substring(2)}),0);return(yield this.resolveName(n))!=e?null:n})}getAvatar(e){return ou(this,void 0,void 0,function*(){let t=null;if(Mr(e)){const r=this.formatter.address(e).substring(2).toLowerCase()+".addr.reverse",n=yield this._getResolver(r,"getAvatar");if(!n)return null;t=new Su(this,n,r);try{const e=yield t.getAvatar();if(e)return e.url}catch(e){if(e.code!==Er.errors.CALL_EXCEPTION)throw e}try{const e=vu(yield this.call({to:n,data:"0x691f3431"+ki(r).substring(2)}),0);t=yield this.getResolver(e)}catch(e){if(e.code!==Er.errors.CALL_EXCEPTION)throw e;return null}}else if(t=yield this.getResolver(e),!t)return null;const r=yield t.getAvatar();return null==r?null:r.url})}perform(e,t){return su.throwError(e+" not implemented",Er.errors.NOT_IMPLEMENTED,{operation:e})}_startEvent(e){this.polling=this._events.filter(e=>e.pollable()).length>0}_stopEvent(e){this.polling=this._events.filter(e=>e.pollable()).length>0}_addEventListener(e,t,r){const n=new pu(lu(e),t,r);return this._events.push(n),this._startEvent(n),this}on(e,t){return this._addEventListener(e,t,!1)}once(e,t){return this._addEventListener(e,t,!0)}emit(e,...t){let r=!1,n=[],i=lu(e);return this._events=this._events.filter(e=>e.tag!==i||(setTimeout(()=>{e.listener.apply(this,t)},0),r=!0,!e.once||(n.push(e),!1))),n.forEach(e=>{this._stopEvent(e)}),r}listenerCount(e){if(!e)return this._events.length;let t=lu(e);return this._events.filter(e=>e.tag===t).length}listeners(e){if(null==e)return this._events.map(e=>e.listener);let t=lu(e);return this._events.filter(e=>e.tag===t).map(e=>e.listener)}off(e,t){if(null==t)return this.removeAllListeners(e);const r=[];let n=!1,i=lu(e);return this._events=this._events.filter(e=>e.tag!==i||e.listener!=t||!!n||(n=!0,r.push(e),!1)),r.forEach(e=>{this._stopEvent(e)}),this}removeAllListeners(e){let t=[];if(null==e)t=this._events,this._events=[];else{const r=lu(e);this._events=this._events.filter(e=>e.tag!==r||(t.push(e),!1))}return t.forEach(e=>{this._stopEvent(e)}),this}}var xu=function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function s(e){try{u(n.next(e))}catch(e){o(e)}}function a(e){try{u(n.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r(function(e){e(t)})).then(s,a)}u((n=n.apply(e,t||[])).next())})};const Nu=new Er($s),_u=["call","estimateGas"];function Ru(e,t){if(null==e)return null;if("string"==typeof e.message&&e.message.match("reverted")){const r=Mr(e.data)?e.data:null;if(!t||r)return{message:e.message,data:r}}if("object"==typeof e){for(const r in e){const n=Ru(e[r],t);if(n)return n}return null}if("string"==typeof e)try{return Ru(JSON.parse(e),t)}catch(e){}return null}function Mu(e,t,r){const n=r.transaction||r.signedTransaction;if("call"===e){const e=Ru(t,!0);if(e)return e.data;Nu.throwError("missing revert data in call exception; Transaction reverted without a reason string",Er.errors.CALL_EXCEPTION,{data:"0x",transaction:n,error:t})}if("estimateGas"===e){let r=Ru(t.body,!1);null==r&&(r=Ru(t,!1)),r&&Nu.throwError("cannot estimate gas; transaction may fail or may require manual gas limit",Er.errors.UNPREDICTABLE_GAS_LIMIT,{reason:r.message,method:e,transaction:n,error:t})}let i=t.message;throw t.code===Er.errors.SERVER_ERROR&&t.error&&"string"==typeof t.error.message?i=t.error.message:"string"==typeof t.body?i=t.body:"string"==typeof t.responseText&&(i=t.responseText),i=(i||"").toLowerCase(),i.match(/insufficient funds|base fee exceeds gas limit|InsufficientFunds/i)&&Nu.throwError("insufficient funds for intrinsic transaction cost",Er.errors.INSUFFICIENT_FUNDS,{error:t,method:e,transaction:n}),i.match(/nonce (is )?too low/i)&&Nu.throwError("nonce has already been used",Er.errors.NONCE_EXPIRED,{error:t,method:e,transaction:n}),i.match(/replacement transaction underpriced|transaction gas price.*too low/i)&&Nu.throwError("replacement fee too low",Er.errors.REPLACEMENT_UNDERPRICED,{error:t,method:e,transaction:n}),i.match(/only replay-protected/i)&&Nu.throwError("legacy pre-eip-155 transactions not supported",Er.errors.UNSUPPORTED_OPERATION,{error:t,method:e,transaction:n}),_u.indexOf(e)>=0&&i.match(/gas required exceeds allowance|always failing transaction|execution reverted|revert/)&&Nu.throwError("cannot estimate gas; transaction may fail or may require manual gas limit",Er.errors.UNPREDICTABLE_GAS_LIMIT,{error:t,method:e,transaction:n}),t}function Ou(e){return new Promise(function(t){setTimeout(t,e)})}function Bu(e){if(e.error){const t=new Error(e.error.message);throw t.code=e.error.code,t.data=e.error.data,t}return e.result}function Du(e){return e?e.toLowerCase():e}const Fu={};class Lu extends a{constructor(e,t,r){if(super(),e!==Fu)throw new Error("do not call the JsonRpcSigner constructor directly; use provider.getSigner");yn(this,"provider",t),null==r&&(r=0),"string"==typeof r?(yn(this,"_address",this.provider.formatter.address(r)),yn(this,"_index",null)):"number"==typeof r?(yn(this,"_index",r),yn(this,"_address",null)):Nu.throwArgumentError("invalid address or index","addressOrIndex",r)}connect(e){return Nu.throwError("cannot alter JSON-RPC Signer connection",Er.errors.UNSUPPORTED_OPERATION,{operation:"connect"})}connectUnchecked(){return new Uu(Fu,this.provider,this._address||this._index)}getAddress(){return this._address?Promise.resolve(this._address):this.provider.send("eth_accounts",[]).then(e=>(e.length<=this._index&&Nu.throwError("unknown account #"+this._index,Er.errors.UNSUPPORTED_OPERATION,{operation:"getAddress"}),this.provider.formatter.address(e[this._index])))}sendUncheckedTransaction(e){e=An(e);const t=this.getAddress().then(e=>(e&&(e=e.toLowerCase()),e));if(null==e.gasLimit){const r=An(e);r.from=t,e.gasLimit=this.provider.estimateGas(r)}return null!=e.to&&(e.to=Promise.resolve(e.to).then(e=>xu(this,void 0,void 0,function*(){if(null==e)return null;const t=yield this.provider.resolveName(e);return null==t&&Nu.throwArgumentError("provided ENS name resolves to null","tx.to",e),t}))),bn({tx:bn(e),sender:t}).then(({tx:t,sender:r})=>{null!=t.from?t.from.toLowerCase()!==r&&Nu.throwArgumentError("from address mismatch","transaction",e):t.from=r;const n=this.provider.constructor.hexlifyTransaction(t,{from:!0});return this.provider.send("eth_sendTransaction",[n]).then(e=>e,e=>("string"==typeof e.message&&e.message.match(/user denied/i)&&Nu.throwError("user rejected transaction",Er.errors.ACTION_REJECTED,{action:"sendTransaction",transaction:t}),Mu("sendTransaction",e,n)))})}signTransaction(e){return Nu.throwError("signing transactions is unsupported",Er.errors.UNSUPPORTED_OPERATION,{operation:"signTransaction"})}sendTransaction(e){return xu(this,void 0,void 0,function*(){const t=yield this.provider._getInternalBlockNumber(100+2*this.provider.pollingInterval),r=yield this.sendUncheckedTransaction(e);try{return yield Ws(()=>xu(this,void 0,void 0,function*(){const e=yield this.provider.getTransaction(r);if(null!==e)return this.provider._wrapTransaction(e,r,t)}),{oncePoll:this.provider})}catch(e){throw e.transactionHash=r,e}})}signMessage(e){return xu(this,void 0,void 0,function*(){const t="string"==typeof e?$n(e):e,r=yield this.getAddress();try{return yield this.provider.send("personal_sign",[Br(t),r.toLowerCase()])}catch(t){throw"string"==typeof t.message&&t.message.match(/user denied/i)&&Nu.throwError("user rejected signing",Er.errors.ACTION_REJECTED,{action:"signMessage",from:r,messageData:e}),t}})}_legacySignMessage(e){return xu(this,void 0,void 0,function*(){const t="string"==typeof e?$n(e):e,r=yield this.getAddress();try{return yield this.provider.send("eth_sign",[r.toLowerCase(),Br(t)])}catch(t){throw"string"==typeof t.message&&t.message.match(/user denied/i)&&Nu.throwError("user rejected signing",Er.errors.ACTION_REJECTED,{action:"_legacySignMessage",from:r,messageData:e}),t}})}_signTypedData(e,t,r){return xu(this,void 0,void 0,function*(){const n=yield to.resolveNames(e,t,r,e=>this.provider.resolveName(e)),i=yield this.getAddress();try{return yield this.provider.send("eth_signTypedData_v4",[i.toLowerCase(),JSON.stringify(to.getPayload(n.domain,t,n.value))])}catch(e){throw"string"==typeof e.message&&e.message.match(/user denied/i)&&Nu.throwError("user rejected signing",Er.errors.ACTION_REJECTED,{action:"_signTypedData",from:i,messageData:{domain:n.domain,types:t,value:n.value}}),e}})}unlock(e){return xu(this,void 0,void 0,function*(){const t=this.provider,r=yield this.getAddress();return t.send("personal_unlockAccount",[r.toLowerCase(),e,null])})}}class Uu extends Lu{sendTransaction(e){return this.sendUncheckedTransaction(e).then(e=>({hash:e,nonce:null,gasLimit:null,gasPrice:null,data:null,value:null,chainId:null,confirmations:0,from:null,wait:t=>this.provider.waitForTransaction(e,t)}))}}const Gu={chainId:!0,data:!0,gasLimit:!0,gasPrice:!0,nonce:!0,to:!0,value:!0,type:!0,accessList:!0,maxFeePerGas:!0,maxPriorityFeePerGas:!0};class ju extends Cu{constructor(e,t){let r=t;null==r&&(r=new Promise((e,t)=>{setTimeout(()=>{this.detectNetwork().then(t=>{e(t)},e=>{t(e)})},0)})),super(r),e||(e=gn(this.constructor,"defaultUrl")()),yn(this,"connection",Object.freeze("string"==typeof e?{url:e}:An(e))),this._nextId=42}get _cache(){return null==this._eventLoopCache&&(this._eventLoopCache={}),this._eventLoopCache}static defaultUrl(){return"http://localhost:8545"}detectNetwork(){return this._cache.detectNetwork||(this._cache.detectNetwork=this._uncachedDetectNetwork(),setTimeout(()=>{this._cache.detectNetwork=null},0)),this._cache.detectNetwork}_uncachedDetectNetwork(){return xu(this,void 0,void 0,function*(){yield Ou(0);let e=null;try{e=yield this.send("eth_chainId",[])}catch(t){try{e=yield this.send("net_version",[])}catch(e){}}if(null!=e){const t=gn(this.constructor,"getNetwork");try{return t(Qr.from(e).toNumber())}catch(t){return Nu.throwError("could not detect network",Er.errors.NETWORK_ERROR,{chainId:e,event:"invalidNetwork",serverError:t})}}return Nu.throwError("could not detect network",Er.errors.NETWORK_ERROR,{event:"noNetwork"})})}getSigner(e){return new Lu(Fu,this,e)}getUncheckedSigner(e){return this.getSigner(e).connectUnchecked()}listAccounts(){return this.send("eth_accounts",[]).then(e=>e.map(e=>this.formatter.address(e)))}send(e,t){const r={method:e,params:t,id:this._nextId++,jsonrpc:"2.0"};this.emit("debug",{action:"request",request:In(r),provider:this});const n=["eth_chainId","eth_blockNumber"].indexOf(e)>=0;if(n&&this._cache[e])return this._cache[e];const i=Ks(this.connection,JSON.stringify(r),Bu).then(e=>(this.emit("debug",{action:"response",request:r,response:e,provider:this}),e),e=>{throw this.emit("debug",{action:"response",error:e,request:r,provider:this}),e});return n&&(this._cache[e]=i,setTimeout(()=>{this._cache[e]=null},0)),i}prepareRequest(e,t){switch(e){case"getBlockNumber":return["eth_blockNumber",[]];case"getGasPrice":return["eth_gasPrice",[]];case"getBalance":return["eth_getBalance",[Du(t.address),t.blockTag]];case"getTransactionCount":return["eth_getTransactionCount",[Du(t.address),t.blockTag]];case"getCode":return["eth_getCode",[Du(t.address),t.blockTag]];case"getStorageAt":return["eth_getStorageAt",[Du(t.address),Gr(t.position,32),t.blockTag]];case"sendTransaction":return["eth_sendRawTransaction",[t.signedTransaction]];case"getBlock":return t.blockTag?["eth_getBlockByNumber",[t.blockTag,!!t.includeTransactions]]:t.blockHash?["eth_getBlockByHash",[t.blockHash,!!t.includeTransactions]]:null;case"getTransaction":return["eth_getTransactionByHash",[t.transactionHash]];case"getTransactionReceipt":return["eth_getTransactionReceipt",[t.transactionHash]];case"call":return["eth_call",[gn(this.constructor,"hexlifyTransaction")(t.transaction,{from:!0}),t.blockTag]];case"estimateGas":return["eth_estimateGas",[gn(this.constructor,"hexlifyTransaction")(t.transaction,{from:!0})]];case"getLogs":return t.filter&&null!=t.filter.address&&(t.filter.address=Du(t.filter.address)),["eth_getLogs",[t.filter]]}return null}perform(e,t){return xu(this,void 0,void 0,function*(){if("call"===e||"estimateGas"===e){const e=t.transaction;if(e&&null!=e.type&&Qr.from(e.type).isZero()&&null==e.maxFeePerGas&&null==e.maxPriorityFeePerGas){const r=yield this.getFeeData();null==r.maxFeePerGas&&null==r.maxPriorityFeePerGas&&((t=An(t)).transaction=An(e),delete t.transaction.type)}}const r=this.prepareRequest(e,t);null==r&&Nu.throwError(e+" not implemented",Er.errors.NOT_IMPLEMENTED,{operation:e});try{return yield this.send(r[0],r[1])}catch(r){return Mu(e,r,t)}})}_startEvent(e){"pending"===e.tag&&this._startPending(),super._startEvent(e)}_startPending(){if(null!=this._pendingFilter)return;const e=this,t=this.send("eth_newPendingTransactionFilter",[]);this._pendingFilter=t,t.then(function(r){return function n(){e.send("eth_getFilterChanges",[r]).then(function(r){if(e._pendingFilter!=t)return null;let n=Promise.resolve();return r.forEach(function(t){e._emitted["t:"+t.toLowerCase()]="pending",n=n.then(function(){return e.getTransaction(t).then(function(t){return e.emit("pending",t),null})})}),n.then(function(){return Ou(1e3)})}).then(function(){if(e._pendingFilter==t)return setTimeout(function(){n()},0),null;e.send("eth_uninstallFilter",[r])}).catch(e=>{})}(),r}).catch(e=>{})}_stopEvent(e){"pending"===e.tag&&0===this.listenerCount("pending")&&(this._pendingFilter=null),super._stopEvent(e)}static hexlifyTransaction(e,t){const r=An(Gu);if(t)for(const e in t)t[e]&&(r[e]=!0);vn(e,r);const n={};return["chainId","gasLimit","gasPrice","type","maxFeePerGas","maxPriorityFeePerGas","nonce","value"].forEach(function(t){if(null==e[t])return;const r=Ur(Qr.from(e[t]));"gasLimit"===t&&(t="gas"),n[t]=r}),["from","to","data"].forEach(function(t){null!=e[t]&&(n[t]=Br(e[t]))}),e.accessList&&(n.accessList=Xa(e.accessList)),n}}const Hu=new Er("random/5.8.0"),qu=function(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if("undefined"!=typeof global)return global;throw new Error("unable to locate global object")}();let Vu=qu.crypto||qu.msCrypto;function zu(e){(e<=0||e>1024||e%1||e!=e)&&Hu.throwArgumentError("invalid length","length",e);const t=new Uint8Array(e);return Vu.getRandomValues(t),Nr(t)}Vu&&Vu.getRandomValues||(Hu.warn("WARNING: Missing strong random number source"),Vu={getRandomValues:function(e){return Hu.throwError("no secure random source avaialble",Er.errors.UNSUPPORTED_OPERATION,{operation:"crypto.getRandomValues"})}});const Ku=new Er($s);let Wu=1;function Ju(e,t){const r="Web3LegacyFetcher";return function(e,n){const i={method:e,params:n,id:Wu++,jsonrpc:"2.0"};return new Promise((e,n)=>{this.emit("debug",{action:"request",fetcher:r,request:In(i),provider:this}),t(i,(t,o)=>{if(t)return this.emit("debug",{action:"response",fetcher:r,error:t,request:i,provider:this}),n(t);if(this.emit("debug",{action:"response",fetcher:r,request:i,response:o,provider:this}),o.error){const e=new Error(o.error.message);return e.code=o.error.code,e.data=o.error.data,n(e)}e(o.result)})})}}class Qu extends ju{constructor(e,t){null==e&&Ku.throwArgumentError("missing provider","provider",e);let r=null,n=null,i=null;"function"==typeof e?(r="unknown:",n=e):(r=e.host||e.path||"",!r&&e.isMetaMask&&(r="metamask"),i=e,e.request?(""===r&&(r="eip-1193:"),n=function(e){return function(t,r){null==r&&(r=[]);const n={method:t,params:r};return this.emit("debug",{action:"request",fetcher:"Eip1193Fetcher",request:In(n),provider:this}),e.request(n).then(e=>(this.emit("debug",{action:"response",fetcher:"Eip1193Fetcher",request:n,response:e,provider:this}),e),e=>{throw this.emit("debug",{action:"response",fetcher:"Eip1193Fetcher",request:n,error:e,provider:this}),e})}}(e)):e.sendAsync?n=Ju(0,e.sendAsync.bind(e)):e.send?n=Ju(0,e.send.bind(e)):Ku.throwArgumentError("unsupported provider","provider",e),r||(r="unknown:")),super(r,t),yn(this,"jsonRpcFetchFunc",n),yn(this,"provider",i)}send(e,t){return this.jsonRpcFetchFunc(e,t)}}function Yu(e,t,r,n,i){let o;e=Nr(e),t=Nr(t);let s=1;const a=new Uint8Array(n),u=new Uint8Array(t.length+4);let l,c;u.set(t);for(let d=1;d<=s;d++){u[t.length]=d>>24&255,u[t.length+1]=d>>16&255,u[t.length+2]=d>>8&255,u[t.length+3]=255&d;let h=Nr(Us(i,e,u));o||(o=h.length,c=new Uint8Array(o),s=Math.ceil(n/o),l=n-(s-1)*o),c.set(h);for(let t=1;t<r;t++){h=Nr(Us(i,e,h));for(let e=0;e<o;e++)c[e]^=h[e]}const p=(d-1)*o,f=d===s?l:o;a.set(Nr(c).slice(0,f),p)}return Br(a)}new Er($s);const Xu=new Er("wordlists/5.8.0");class Zu{constructor(e){Xu.checkAbstract(new.target,Zu),yn(this,"locale",e)}split(e){return e.toLowerCase().split(/ +/g)}join(e){return e.join(" ")}static check(e){const t=[];for(let r=0;r<2048;r++){const n=e.getWord(r);if(r!==e.getWordIndex(n))return"0x";t.push(n)}return ti(t.join("\n")+"\n")}static register(e,t){}}const $u="AbandonAbilityAbleAboutAboveAbsentAbsorbAbstractAbsurdAbuseAccessAccidentAccountAccuseAchieveAcidAcousticAcquireAcrossActActionActorActressActualAdaptAddAddictAddressAdjustAdmitAdultAdvanceAdviceAerobicAffairAffordAfraidAgainAgeAgentAgreeAheadAimAirAirportAisleAlarmAlbumAlcoholAlertAlienAllAlleyAllowAlmostAloneAlphaAlreadyAlsoAlterAlwaysAmateurAmazingAmongAmountAmusedAnalystAnchorAncientAngerAngleAngryAnimalAnkleAnnounceAnnualAnotherAnswerAntennaAntiqueAnxietyAnyApartApologyAppearAppleApproveAprilArchArcticAreaArenaArgueArmArmedArmorArmyAroundArrangeArrestArriveArrowArtArtefactArtistArtworkAskAspectAssaultAssetAssistAssumeAsthmaAthleteAtomAttackAttendAttitudeAttractAuctionAuditAugustAuntAuthorAutoAutumnAverageAvocadoAvoidAwakeAwareAwayAwesomeAwfulAwkwardAxisBabyBachelorBaconBadgeBagBalanceBalconyBallBambooBananaBannerBarBarelyBargainBarrelBaseBasicBasketBattleBeachBeanBeautyBecauseBecomeBeefBeforeBeginBehaveBehindBelieveBelowBeltBenchBenefitBestBetrayBetterBetweenBeyondBicycleBidBikeBindBiologyBirdBirthBitterBlackBladeBlameBlanketBlastBleakBlessBlindBloodBlossomBlouseBlueBlurBlushBoardBoatBodyBoilBombBoneBonusBookBoostBorderBoringBorrowBossBottomBounceBoxBoyBracketBrainBrandBrassBraveBreadBreezeBrickBridgeBriefBrightBringBriskBroccoliBrokenBronzeBroomBrotherBrownBrushBubbleBuddyBudgetBuffaloBuildBulbBulkBulletBundleBunkerBurdenBurgerBurstBusBusinessBusyButterBuyerBuzzCabbageCabinCableCactusCageCakeCallCalmCameraCampCanCanalCancelCandyCannonCanoeCanvasCanyonCapableCapitalCaptainCarCarbonCardCargoCarpetCarryCartCaseCashCasinoCastleCasualCatCatalogCatchCategoryCattleCaughtCauseCautionCaveCeilingCeleryCementCensusCenturyCerealCertainChairChalkChampionChangeChaosChapterChargeChaseChatCheapCheckCheeseChefCherryChestChickenChiefChildChimneyChoiceChooseChronicChuckleChunkChurnCigarCinnamonCircleCitizenCityCivilClaimClapClarifyClawClayCleanClerkCleverClickClientCliffClimbClinicClipClockClogCloseClothCloudClownClubClumpClusterClutchCoachCoastCoconutCodeCoffeeCoilCoinCollectColorColumnCombineComeComfortComicCommonCompanyConcertConductConfirmCongressConnectConsiderControlConvinceCookCoolCopperCopyCoralCoreCornCorrectCostCottonCouchCountryCoupleCourseCousinCoverCoyoteCrackCradleCraftCramCraneCrashCraterCrawlCrazyCreamCreditCreekCrewCricketCrimeCrispCriticCropCrossCrouchCrowdCrucialCruelCruiseCrumbleCrunchCrushCryCrystalCubeCultureCupCupboardCuriousCurrentCurtainCurveCushionCustomCuteCycleDadDamageDampDanceDangerDaringDashDaughterDawnDayDealDebateDebrisDecadeDecemberDecideDeclineDecorateDecreaseDeerDefenseDefineDefyDegreeDelayDeliverDemandDemiseDenialDentistDenyDepartDependDepositDepthDeputyDeriveDescribeDesertDesignDeskDespairDestroyDetailDetectDevelopDeviceDevoteDiagramDialDiamondDiaryDiceDieselDietDifferDigitalDignityDilemmaDinnerDinosaurDirectDirtDisagreeDiscoverDiseaseDishDismissDisorderDisplayDistanceDivertDivideDivorceDizzyDoctorDocumentDogDollDolphinDomainDonateDonkeyDonorDoorDoseDoubleDoveDraftDragonDramaDrasticDrawDreamDressDriftDrillDrinkDripDriveDropDrumDryDuckDumbDuneDuringDustDutchDutyDwarfDynamicEagerEagleEarlyEarnEarthEasilyEastEasyEchoEcologyEconomyEdgeEditEducateEffortEggEightEitherElbowElderElectricElegantElementElephantElevatorEliteElseEmbarkEmbodyEmbraceEmergeEmotionEmployEmpowerEmptyEnableEnactEndEndlessEndorseEnemyEnergyEnforceEngageEngineEnhanceEnjoyEnlistEnoughEnrichEnrollEnsureEnterEntireEntryEnvelopeEpisodeEqualEquipEraEraseErodeErosionErrorEruptEscapeEssayEssenceEstateEternalEthicsEvidenceEvilEvokeEvolveExactExampleExcessExchangeExciteExcludeExcuseExecuteExerciseExhaustExhibitExileExistExitExoticExpandExpectExpireExplainExposeExpressExtendExtraEyeEyebrowFabricFaceFacultyFadeFaintFaithFallFalseFameFamilyFamousFanFancyFantasyFarmFashionFatFatalFatherFatigueFaultFavoriteFeatureFebruaryFederalFeeFeedFeelFemaleFenceFestivalFetchFeverFewFiberFictionFieldFigureFileFilmFilterFinalFindFineFingerFinishFireFirmFirstFiscalFishFitFitnessFixFlagFlameFlashFlatFlavorFleeFlightFlipFloatFlockFloorFlowerFluidFlushFlyFoamFocusFogFoilFoldFollowFoodFootForceForestForgetForkFortuneForumForwardFossilFosterFoundFoxFragileFrameFrequentFreshFriendFringeFrogFrontFrostFrownFrozenFruitFuelFunFunnyFurnaceFuryFutureGadgetGainGalaxyGalleryGameGapGarageGarbageGardenGarlicGarmentGasGaspGateGatherGaugeGazeGeneralGeniusGenreGentleGenuineGestureGhostGiantGiftGiggleGingerGiraffeGirlGiveGladGlanceGlareGlassGlideGlimpseGlobeGloomGloryGloveGlowGlueGoatGoddessGoldGoodGooseGorillaGospelGossipGovernGownGrabGraceGrainGrantGrapeGrassGravityGreatGreenGridGriefGritGroceryGroupGrowGruntGuardGuessGuideGuiltGuitarGunGymHabitHairHalfHammerHamsterHandHappyHarborHardHarshHarvestHatHaveHawkHazardHeadHealthHeartHeavyHedgehogHeightHelloHelmetHelpHenHeroHiddenHighHillHintHipHireHistoryHobbyHockeyHoldHoleHolidayHollowHomeHoneyHoodHopeHornHorrorHorseHospitalHostHotelHourHoverHubHugeHumanHumbleHumorHundredHungryHuntHurdleHurryHurtHusbandHybridIceIconIdeaIdentifyIdleIgnoreIllIllegalIllnessImageImitateImmenseImmuneImpactImposeImproveImpulseInchIncludeIncomeIncreaseIndexIndicateIndoorIndustryInfantInflictInformInhaleInheritInitialInjectInjuryInmateInnerInnocentInputInquiryInsaneInsectInsideInspireInstallIntactInterestIntoInvestInviteInvolveIronIslandIsolateIssueItemIvoryJacketJaguarJarJazzJealousJeansJellyJewelJobJoinJokeJourneyJoyJudgeJuiceJumpJungleJuniorJunkJustKangarooKeenKeepKetchupKeyKickKidKidneyKindKingdomKissKitKitchenKiteKittenKiwiKneeKnifeKnockKnowLabLabelLaborLadderLadyLakeLampLanguageLaptopLargeLaterLatinLaughLaundryLavaLawLawnLawsuitLayerLazyLeaderLeafLearnLeaveLectureLeftLegLegalLegendLeisureLemonLendLengthLensLeopardLessonLetterLevelLiarLibertyLibraryLicenseLifeLiftLightLikeLimbLimitLinkLionLiquidListLittleLiveLizardLoadLoanLobsterLocalLockLogicLonelyLongLoopLotteryLoudLoungeLoveLoyalLuckyLuggageLumberLunarLunchLuxuryLyricsMachineMadMagicMagnetMaidMailMainMajorMakeMammalManManageMandateMangoMansionManualMapleMarbleMarchMarginMarineMarketMarriageMaskMassMasterMatchMaterialMathMatrixMatterMaximumMazeMeadowMeanMeasureMeatMechanicMedalMediaMelodyMeltMemberMemoryMentionMenuMercyMergeMeritMerryMeshMessageMetalMethodMiddleMidnightMilkMillionMimicMindMinimumMinorMinuteMiracleMirrorMiseryMissMistakeMixMixedMixtureMobileModelModifyMomMomentMonitorMonkeyMonsterMonthMoonMoralMoreMorningMosquitoMotherMotionMotorMountainMouseMoveMovieMuchMuffinMuleMultiplyMuscleMuseumMushroomMusicMustMutualMyselfMysteryMythNaiveNameNapkinNarrowNastyNationNatureNearNeckNeedNegativeNeglectNeitherNephewNerveNestNetNetworkNeutralNeverNewsNextNiceNightNobleNoiseNomineeNoodleNormalNorthNoseNotableNoteNothingNoticeNovelNowNuclearNumberNurseNutOakObeyObjectObligeObscureObserveObtainObviousOccurOceanOctoberOdorOffOfferOfficeOftenOilOkayOldOliveOlympicOmitOnceOneOnionOnlineOnlyOpenOperaOpinionOpposeOptionOrangeOrbitOrchardOrderOrdinaryOrganOrientOriginalOrphanOstrichOtherOutdoorOuterOutputOutsideOvalOvenOverOwnOwnerOxygenOysterOzonePactPaddlePagePairPalacePalmPandaPanelPanicPantherPaperParadeParentParkParrotPartyPassPatchPathPatientPatrolPatternPausePavePaymentPeacePeanutPearPeasantPelicanPenPenaltyPencilPeoplePepperPerfectPermitPersonPetPhonePhotoPhrasePhysicalPianoPicnicPicturePiecePigPigeonPillPilotPinkPioneerPipePistolPitchPizzaPlacePlanetPlasticPlatePlayPleasePledgePluckPlugPlungePoemPoetPointPolarPolePolicePondPonyPoolPopularPortionPositionPossiblePostPotatoPotteryPovertyPowderPowerPracticePraisePredictPreferPreparePresentPrettyPreventPricePridePrimaryPrintPriorityPrisonPrivatePrizeProblemProcessProduceProfitProgramProjectPromoteProofPropertyProsperProtectProudProvidePublicPuddingPullPulpPulsePumpkinPunchPupilPuppyPurchasePurityPurposePursePushPutPuzzlePyramidQualityQuantumQuarterQuestionQuickQuitQuizQuoteRabbitRaccoonRaceRackRadarRadioRailRainRaiseRallyRampRanchRandomRangeRapidRareRateRatherRavenRawRazorReadyRealReasonRebelRebuildRecallReceiveRecipeRecordRecycleReduceReflectReformRefuseRegionRegretRegularRejectRelaxReleaseReliefRelyRemainRememberRemindRemoveRenderRenewRentReopenRepairRepeatReplaceReportRequireRescueResembleResistResourceResponseResultRetireRetreatReturnReunionRevealReviewRewardRhythmRibRibbonRiceRichRideRidgeRifleRightRigidRingRiotRippleRiskRitualRivalRiverRoadRoastRobotRobustRocketRomanceRoofRookieRoomRoseRotateRoughRoundRouteRoyalRubberRudeRugRuleRunRunwayRuralSadSaddleSadnessSafeSailSaladSalmonSalonSaltSaluteSameSampleSandSatisfySatoshiSauceSausageSaveSayScaleScanScareScatterSceneSchemeSchoolScienceScissorsScorpionScoutScrapScreenScriptScrubSeaSearchSeasonSeatSecondSecretSectionSecuritySeedSeekSegmentSelectSellSeminarSeniorSenseSentenceSeriesServiceSessionSettleSetupSevenShadowShaftShallowShareShedShellSheriffShieldShiftShineShipShiverShockShoeShootShopShortShoulderShoveShrimpShrugShuffleShySiblingSickSideSiegeSightSignSilentSilkSillySilverSimilarSimpleSinceSingSirenSisterSituateSixSizeSkateSketchSkiSkillSkinSkirtSkullSlabSlamSleepSlenderSliceSlideSlightSlimSloganSlotSlowSlushSmallSmartSmileSmokeSmoothSnackSnakeSnapSniffSnowSoapSoccerSocialSockSodaSoftSolarSoldierSolidSolutionSolveSomeoneSongSoonSorrySortSoulSoundSoupSourceSouthSpaceSpareSpatialSpawnSpeakSpecialSpeedSpellSpendSphereSpiceSpiderSpikeSpinSpiritSplitSpoilSponsorSpoonSportSpotSpraySpreadSpringSpySquareSqueezeSquirrelStableStadiumStaffStageStairsStampStandStartStateStaySteakSteelStemStepStereoStickStillStingStockStomachStoneStoolStoryStoveStrategyStreetStrikeStrongStruggleStudentStuffStumbleStyleSubjectSubmitSubwaySuccessSuchSuddenSufferSugarSuggestSuitSummerSunSunnySunsetSuperSupplySupremeSureSurfaceSurgeSurpriseSurroundSurveySuspectSustainSwallowSwampSwapSwarmSwearSweetSwiftSwimSwingSwitchSwordSymbolSymptomSyrupSystemTableTackleTagTailTalentTalkTankTapeTargetTaskTasteTattooTaxiTeachTeamTellTenTenantTennisTentTermTestTextThankThatThemeThenTheoryThereTheyThingThisThoughtThreeThriveThrowThumbThunderTicketTideTigerTiltTimberTimeTinyTipTiredTissueTitleToastTobaccoTodayToddlerToeTogetherToiletTokenTomatoTomorrowToneTongueTonightToolToothTopTopicToppleTorchTornadoTortoiseTossTotalTouristTowardTowerTownToyTrackTradeTrafficTragicTrainTransferTrapTrashTravelTrayTreatTreeTrendTrialTribeTrickTriggerTrimTripTrophyTroubleTruckTrueTrulyTrumpetTrustTruthTryTubeTuitionTumbleTunaTunnelTurkeyTurnTurtleTwelveTwentyTwiceTwinTwistTwoTypeTypicalUglyUmbrellaUnableUnawareUncleUncoverUnderUndoUnfairUnfoldUnhappyUniformUniqueUnitUniverseUnknownUnlockUntilUnusualUnveilUpdateUpgradeUpholdUponUpperUpsetUrbanUrgeUsageUseUsedUsefulUselessUsualUtilityVacantVacuumVagueValidValleyValveVanVanishVaporVariousVastVaultVehicleVelvetVendorVentureVenueVerbVerifyVersionVeryVesselVeteranViableVibrantViciousVictoryVideoViewVillageVintageViolinVirtualVirusVisaVisitVisualVitalVividVocalVoiceVoidVolcanoVolumeVoteVoyageWageWagonWaitWalkWallWalnutWantWarfareWarmWarriorWashWaspWasteWaterWaveWayWealthWeaponWearWeaselWeatherWebWeddingWeekendWeirdWelcomeWestWetWhaleWhatWheatWheelWhenWhereWhipWhisperWideWidthWifeWildWillWinWindowWineWingWinkWinnerWinterWireWisdomWiseWishWitnessWolfWomanWonderWoodWoolWordWorkWorldWorryWorthWrapWreckWrestleWristWriteWrongYardYearYellowYouYoungYouthZebraZeroZoneZoo";let el=null;function tl(e){if(null==el&&(el=$u.replace(/([A-Z])/g," $1").toLowerCase().substring(1).split(" "),"0x3c8acc1e7b08d8e76f9fda015ef48dc8c710a73cb7e0f77b2c18a9b5a7adde60"!==Zu.check(e)))throw el=null,new Error("BIP39 Wordlist for en (English) FAILED")}const rl=new class extends Zu{constructor(){super("en")}getWord(e){return tl(this),el[e]}getWordIndex(e){return tl(this),el.indexOf(e)}};Zu.register(rl);const nl={en:rl},il=new Er("hdnode/5.8.0"),ol=Qr.from("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),sl=$n("Bitcoin seed"),al=2147483648;function ul(e){return(1<<e)-1<<8-e}function ll(e){return Gr(Br(e),32)}function cl(e){return Un.encode(_r([e,Fr(Ls(Ls(e)),0,4)]))}function dl(e){if(null==e)return nl.en;if("string"==typeof e){const t=nl[e];return null==t&&il.throwArgumentError("unknown locale","wordlist",e),t}return e}const hl={},pl="m/44'/60'/0'/0/0";class fl{constructor(e,t,r,n,i,o,s,a){if(e!==hl)throw new Error("HDNode constructor cannot be called directly");if(t){const e=new Ua(t);yn(this,"privateKey",e.privateKey),yn(this,"publicKey",e.compressedPublicKey)}else yn(this,"privateKey",null),yn(this,"publicKey",Br(r));var u;yn(this,"parentFingerprint",n),yn(this,"fingerprint",Fr((u=Ls(this.publicKey),"0x"+Ds.ripemd160().update(Nr(u)).digest("hex")),0,4)),yn(this,"address",Wa(this.publicKey)),yn(this,"chainCode",i),yn(this,"index",o),yn(this,"depth",s),null==a?(yn(this,"mnemonic",null),yn(this,"path",null)):"string"==typeof a?(yn(this,"mnemonic",null),yn(this,"path",a)):(yn(this,"mnemonic",a),yn(this,"path",a.path))}get extendedKey(){if(this.depth>=256)throw new Error("Depth too large!");return cl(_r([null!=this.privateKey?"0x0488ADE4":"0x0488B21E",Br(this.depth),this.parentFingerprint,Gr(Br(this.index),4),this.chainCode,null!=this.privateKey?_r(["0x00",this.privateKey]):this.publicKey]))}neuter(){return new fl(hl,null,this.publicKey,this.parentFingerprint,this.chainCode,this.index,this.depth,this.path)}_derive(e){if(e>4294967295)throw new Error("invalid index - "+String(e));let t=this.path;t&&(t+="/"+(2147483647&e));const r=new Uint8Array(37);if(e&al){if(!this.privateKey)throw new Error("cannot derive child of neutered node");r.set(Nr(this.privateKey),1),t&&(t+="'")}else r.set(Nr(this.publicKey));for(let t=24;t>=0;t-=8)r[33+(t>>3)]=e>>24-t&255;const n=Nr(Us(Os.sha512,this.chainCode,r)),i=n.slice(0,32),o=n.slice(32);let s=null,a=null;this.privateKey?s=ll(Qr.from(i).add(this.privateKey).mod(ol)):a=new Ua(Br(i))._addPoint(this.publicKey);let u=t;const l=this.mnemonic;return l&&(u=Object.freeze({phrase:l.phrase,path:t,locale:l.locale||"en"})),new fl(hl,s,a,this.fingerprint,ll(o),e,this.depth+1,u)}derivePath(e){const t=e.split("/");if(0===t.length||"m"===t[0]&&0!==this.depth)throw new Error("invalid path - "+e);"m"===t[0]&&t.shift();let r=this;for(let e=0;e<t.length;e++){const n=t[e];if(n.match(/^[0-9]+'$/)){const e=parseInt(n.substring(0,n.length-1));if(e>=al)throw new Error("invalid path index - "+n);r=r._derive(al+e)}else{if(!n.match(/^[0-9]+$/))throw new Error("invalid path component - "+n);{const e=parseInt(n);if(e>=al)throw new Error("invalid path index - "+n);r=r._derive(e)}}}return r}static _fromSeed(e,t){const r=Nr(e);if(r.length<16||r.length>64)throw new Error("invalid seed");const n=Nr(Us(Os.sha512,sl,r));return new fl(hl,ll(n.slice(0,32)),null,"0x00000000",ll(n.slice(32)),0,0,t)}static fromMnemonic(e,t,r){return e=yl(ml(e,r=dl(r)),r),fl._fromSeed(function(e,t){t||(t="");const r=$n("mnemonic"+t,Jn.NFKD);return Yu($n(e,Jn.NFKD),r,2048,64,"sha512")}(e,t),{phrase:e,path:"m",locale:r.locale})}static fromSeed(e){return fl._fromSeed(e,null)}static fromExtendedKey(e){const t=Un.decode(e);82===t.length&&cl(t.slice(0,78))===e||il.throwArgumentError("invalid extended key","extendedKey","[REDACTED]");const r=t[4],n=Br(t.slice(5,9)),i=parseInt(Br(t.slice(9,13)).substring(2),16),o=Br(t.slice(13,45)),s=t.slice(45,78);switch(Br(t.slice(0,4))){case"0x0488b21e":case"0x043587cf":return new fl(hl,null,Br(s),n,o,i,r,null);case"0x0488ade4":case"0x04358394 ":if(0!==s[0])break;return new fl(hl,Br(s.slice(1)),null,n,o,i,r,null)}return il.throwArgumentError("invalid extended key","extendedKey","[REDACTED]")}}function ml(e,t){t=dl(t),il.checkNormalize();const r=t.split(e);if(r.length%3!=0)throw new Error("invalid mnemonic");const n=Nr(new Uint8Array(Math.ceil(11*r.length/8)));let i=0;for(let e=0;e<r.length;e++){let o=t.getWordIndex(r[e].normalize("NFKD"));if(-1===o)throw new Error("invalid mnemonic");for(let e=0;e<11;e++)o&1<<10-e&&(n[i>>3]|=1<<7-i%8),i++}const o=32*r.length/3,s=ul(r.length/3);if((Nr(Ls(n.slice(0,o/8)))[0]&s)!=(n[n.length-1]&s))throw new Error("invalid checksum");return Br(n.slice(0,o/8))}function yl(e,t){if(t=dl(t),(e=Nr(e)).length%4!=0||e.length<16||e.length>32)throw new Error("invalid entropy");const r=[0];let n=11;for(let t=0;t<e.length;t++)n>8?(r[r.length-1]<<=8,r[r.length-1]|=e[t],n-=8):(r[r.length-1]<<=n,r[r.length-1]|=e[t]>>8-n,r.push(e[t]&(1<<8-n)-1),n+=3);const i=e.length/4,o=Nr(Ls(e))[0]&ul(i);return r[r.length-1]<<=i,r[r.length-1]|=o>>8-i,t.join(r.map(e=>t.getWord(e)))}var gl=dr(function(e,t){!function(t){function r(e){return parseInt(e)===e}function n(e){if(!r(e.length))return!1;for(var t=0;t<e.length;t++)if(!r(e[t])||e[t]<0||e[t]>255)return!1;return!0}function i(e,t){if(e.buffer&&ArrayBuffer.isView(e)&&"Uint8Array"===e.name)return t&&(e=e.slice?e.slice():Array.prototype.slice.call(e)),e;if(Array.isArray(e)){if(!n(e))throw new Error("Array contains invalid value: "+e);return new Uint8Array(e)}if(r(e.length)&&n(e))return new Uint8Array(e);throw new Error("unsupported array-like object")}function o(e){return new Uint8Array(e)}function s(e,t,r,n,i){null==n&&null==i||(e=e.slice?e.slice(n,i):Array.prototype.slice.call(e,n,i)),t.set(e,r)}var a,u={toBytes:function(e){var t=[],r=0;for(e=encodeURI(e);r<e.length;){var n=e.charCodeAt(r++);37===n?(t.push(parseInt(e.substr(r,2),16)),r+=2):t.push(n)}return i(t)},fromBytes:function(e){for(var t=[],r=0;r<e.length;){var n=e[r];n<128?(t.push(String.fromCharCode(n)),r++):n>191&&n<224?(t.push(String.fromCharCode((31&n)<<6|63&e[r+1])),r+=2):(t.push(String.fromCharCode((15&n)<<12|(63&e[r+1])<<6|63&e[r+2])),r+=3)}return t.join("")}},l=(a="0123456789abcdef",{toBytes:function(e){for(var t=[],r=0;r<e.length;r+=2)t.push(parseInt(e.substr(r,2),16));return t},fromBytes:function(e){for(var t=[],r=0;r<e.length;r++){var n=e[r];t.push(a[(240&n)>>4]+a[15&n])}return t.join("")}}),c={16:10,24:12,32:14},d=[1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145],h=[99,124,119,123,242,107,111,197,48,1,103,43,254,215,171,118,202,130,201,125,250,89,71,240,173,212,162,175,156,164,114,192,183,253,147,38,54,63,247,204,52,165,229,241,113,216,49,21,4,199,35,195,24,150,5,154,7,18,128,226,235,39,178,117,9,131,44,26,27,110,90,160,82,59,214,179,41,227,47,132,83,209,0,237,32,252,177,91,106,203,190,57,74,76,88,207,208,239,170,251,67,77,51,133,69,249,2,127,80,60,159,168,81,163,64,143,146,157,56,245,188,182,218,33,16,255,243,210,205,12,19,236,95,151,68,23,196,167,126,61,100,93,25,115,96,129,79,220,34,42,144,136,70,238,184,20,222,94,11,219,224,50,58,10,73,6,36,92,194,211,172,98,145,149,228,121,231,200,55,109,141,213,78,169,108,86,244,234,101,122,174,8,186,120,37,46,28,166,180,198,232,221,116,31,75,189,139,138,112,62,181,102,72,3,246,14,97,53,87,185,134,193,29,158,225,248,152,17,105,217,142,148,155,30,135,233,206,85,40,223,140,161,137,13,191,230,66,104,65,153,45,15,176,84,187,22],p=[82,9,106,213,48,54,165,56,191,64,163,158,129,243,215,251,124,227,57,130,155,47,255,135,52,142,67,68,196,222,233,203,84,123,148,50,166,194,35,61,238,76,149,11,66,250,195,78,8,46,161,102,40,217,36,178,118,91,162,73,109,139,209,37,114,248,246,100,134,104,152,22,212,164,92,204,93,101,182,146,108,112,72,80,253,237,185,218,94,21,70,87,167,141,157,132,144,216,171,0,140,188,211,10,247,228,88,5,184,179,69,6,208,44,30,143,202,63,15,2,193,175,189,3,1,19,138,107,58,145,17,65,79,103,220,234,151,242,207,206,240,180,230,115,150,172,116,34,231,173,53,133,226,249,55,232,28,117,223,110,71,241,26,113,29,41,197,137,111,183,98,14,170,24,190,27,252,86,62,75,198,210,121,32,154,219,192,254,120,205,90,244,31,221,168,51,136,7,199,49,177,18,16,89,39,128,236,95,96,81,127,169,25,181,74,13,45,229,122,159,147,201,156,239,160,224,59,77,174,42,245,176,200,235,187,60,131,83,153,97,23,43,4,126,186,119,214,38,225,105,20,99,85,33,12,125],f=[3328402341,4168907908,4000806809,4135287693,4294111757,3597364157,3731845041,2445657428,1613770832,33620227,3462883241,1445669757,3892248089,3050821474,1303096294,3967186586,2412431941,528646813,2311702848,4202528135,4026202645,2992200171,2387036105,4226871307,1101901292,3017069671,1604494077,1169141738,597466303,1403299063,3832705686,2613100635,1974974402,3791519004,1033081774,1277568618,1815492186,2118074177,4126668546,2211236943,1748251740,1369810420,3521504564,4193382664,3799085459,2883115123,1647391059,706024767,134480908,2512897874,1176707941,2646852446,806885416,932615841,168101135,798661301,235341577,605164086,461406363,3756188221,3454790438,1311188841,2142417613,3933566367,302582043,495158174,1479289972,874125870,907746093,3698224818,3025820398,1537253627,2756858614,1983593293,3084310113,2108928974,1378429307,3722699582,1580150641,327451799,2790478837,3117535592,0,3253595436,1075847264,3825007647,2041688520,3059440621,3563743934,2378943302,1740553945,1916352843,2487896798,2555137236,2958579944,2244988746,3151024235,3320835882,1336584933,3992714006,2252555205,2588757463,1714631509,293963156,2319795663,3925473552,67240454,4269768577,2689618160,2017213508,631218106,1269344483,2723238387,1571005438,2151694528,93294474,1066570413,563977660,1882732616,4059428100,1673313503,2008463041,2950355573,1109467491,537923632,3858759450,4260623118,3218264685,2177748300,403442708,638784309,3287084079,3193921505,899127202,2286175436,773265209,2479146071,1437050866,4236148354,2050833735,3362022572,3126681063,840505643,3866325909,3227541664,427917720,2655997905,2749160575,1143087718,1412049534,999329963,193497219,2353415882,3354324521,1807268051,672404540,2816401017,3160301282,369822493,2916866934,3688947771,1681011286,1949973070,336202270,2454276571,201721354,1210328172,3093060836,2680341085,3184776046,1135389935,3294782118,965841320,831886756,3554993207,4068047243,3588745010,2345191491,1849112409,3664604599,26054028,2983581028,2622377682,1235855840,3630984372,2891339514,4092916743,3488279077,3395642799,4101667470,1202630377,268961816,1874508501,4034427016,1243948399,1546530418,941366308,1470539505,1941222599,2546386513,3421038627,2715671932,3899946140,1042226977,2521517021,1639824860,227249030,260737669,3765465232,2084453954,1907733956,3429263018,2420656344,100860677,4160157185,470683154,3261161891,1781871967,2924959737,1773779408,394692241,2579611992,974986535,664706745,3655459128,3958962195,731420851,571543859,3530123707,2849626480,126783113,865375399,765172662,1008606754,361203602,3387549984,2278477385,2857719295,1344809080,2782912378,59542671,1503764984,160008576,437062935,1707065306,3622233649,2218934982,3496503480,2185314755,697932208,1512910199,504303377,2075177163,2824099068,1841019862,739644986],m=[2781242211,2230877308,2582542199,2381740923,234877682,3184946027,2984144751,1418839493,1348481072,50462977,2848876391,2102799147,434634494,1656084439,3863849899,2599188086,1167051466,2636087938,1082771913,2281340285,368048890,3954334041,3381544775,201060592,3963727277,1739838676,4250903202,3930435503,3206782108,4149453988,2531553906,1536934080,3262494647,484572669,2923271059,1783375398,1517041206,1098792767,49674231,1334037708,1550332980,4098991525,886171109,150598129,2481090929,1940642008,1398944049,1059722517,201851908,1385547719,1699095331,1587397571,674240536,2704774806,252314885,3039795866,151914247,908333586,2602270848,1038082786,651029483,1766729511,3447698098,2682942837,454166793,2652734339,1951935532,775166490,758520603,3000790638,4004797018,4217086112,4137964114,1299594043,1639438038,3464344499,2068982057,1054729187,1901997871,2534638724,4121318227,1757008337,0,750906861,1614815264,535035132,3363418545,3988151131,3201591914,1183697867,3647454910,1265776953,3734260298,3566750796,3903871064,1250283471,1807470800,717615087,3847203498,384695291,3313910595,3617213773,1432761139,2484176261,3481945413,283769337,100925954,2180939647,4037038160,1148730428,3123027871,3813386408,4087501137,4267549603,3229630528,2315620239,2906624658,3156319645,1215313976,82966005,3747855548,3245848246,1974459098,1665278241,807407632,451280895,251524083,1841287890,1283575245,337120268,891687699,801369324,3787349855,2721421207,3431482436,959321879,1469301956,4065699751,2197585534,1199193405,2898814052,3887750493,724703513,2514908019,2696962144,2551808385,3516813135,2141445340,1715741218,2119445034,2872807568,2198571144,3398190662,700968686,3547052216,1009259540,2041044702,3803995742,487983883,1991105499,1004265696,1449407026,1316239930,504629770,3683797321,168560134,1816667172,3837287516,1570751170,1857934291,4014189740,2797888098,2822345105,2754712981,936633572,2347923833,852879335,1133234376,1500395319,3084545389,2348912013,1689376213,3533459022,3762923945,3034082412,4205598294,133428468,634383082,2949277029,2398386810,3913789102,403703816,3580869306,2297460856,1867130149,1918643758,607656988,4049053350,3346248884,1368901318,600565992,2090982877,2632479860,557719327,3717614411,3697393085,2249034635,2232388234,2430627952,1115438654,3295786421,2865522278,3633334344,84280067,33027830,303828494,2747425121,1600795957,4188952407,3496589753,2434238086,1486471617,658119965,3106381470,953803233,334231800,3005978776,857870609,3151128937,1890179545,2298973838,2805175444,3056442267,574365214,2450884487,550103529,1233637070,4289353045,2018519080,2057691103,2399374476,4166623649,2148108681,387583245,3664101311,836232934,3330556482,3100665960,3280093505,2955516313,2002398509,287182607,3413881008,4238890068,3597515707,975967766],y=[1671808611,2089089148,2006576759,2072901243,4061003762,1807603307,1873927791,3310653893,810573872,16974337,1739181671,729634347,4263110654,3613570519,2883997099,1989864566,3393556426,2191335298,3376449993,2106063485,4195741690,1508618841,1204391495,4027317232,2917941677,3563566036,2734514082,2951366063,2629772188,2767672228,1922491506,3227229120,3082974647,4246528509,2477669779,644500518,911895606,1061256767,4144166391,3427763148,878471220,2784252325,3845444069,4043897329,1905517169,3631459288,827548209,356461077,67897348,3344078279,593839651,3277757891,405286936,2527147926,84871685,2595565466,118033927,305538066,2157648768,3795705826,3945188843,661212711,2999812018,1973414517,152769033,2208177539,745822252,439235610,455947803,1857215598,1525593178,2700827552,1391895634,994932283,3596728278,3016654259,695947817,3812548067,795958831,2224493444,1408607827,3513301457,0,3979133421,543178784,4229948412,2982705585,1542305371,1790891114,3410398667,3201918910,961245753,1256100938,1289001036,1491644504,3477767631,3496721360,4012557807,2867154858,4212583931,1137018435,1305975373,861234739,2241073541,1171229253,4178635257,33948674,2139225727,1357946960,1011120188,2679776671,2833468328,1374921297,2751356323,1086357568,2408187279,2460827538,2646352285,944271416,4110742005,3168756668,3066132406,3665145818,560153121,271589392,4279952895,4077846003,3530407890,3444343245,202643468,322250259,3962553324,1608629855,2543990167,1154254916,389623319,3294073796,2817676711,2122513534,1028094525,1689045092,1575467613,422261273,1939203699,1621147744,2174228865,1339137615,3699352540,577127458,712922154,2427141008,2290289544,1187679302,3995715566,3100863416,339486740,3732514782,1591917662,186455563,3681988059,3762019296,844522546,978220090,169743370,1239126601,101321734,611076132,1558493276,3260915650,3547250131,2901361580,1655096418,2443721105,2510565781,3828863972,2039214713,3878868455,3359869896,928607799,1840765549,2374762893,3580146133,1322425422,2850048425,1823791212,1459268694,4094161908,3928346602,1706019429,2056189050,2934523822,135794696,3134549946,2022240376,628050469,779246638,472135708,2800834470,3032970164,3327236038,3894660072,3715932637,1956440180,522272287,1272813131,3185336765,2340818315,2323976074,1888542832,1044544574,3049550261,1722469478,1222152264,50660867,4127324150,236067854,1638122081,895445557,1475980887,3117443513,2257655686,3243809217,489110045,2662934430,3778599393,4162055160,2561878936,288563729,1773916777,3648039385,2391345038,2493985684,2612407707,505560094,2274497927,3911240169,3460925390,1442818645,678973480,3749357023,2358182796,2717407649,2306869641,219617805,3218761151,3862026214,1120306242,1756942440,1103331905,2578459033,762796589,252780047,2966125488,1425844308,3151392187,372911126],g=[1667474886,2088535288,2004326894,2071694838,4075949567,1802223062,1869591006,3318043793,808472672,16843522,1734846926,724270422,4278065639,3621216949,2880169549,1987484396,3402253711,2189597983,3385409673,2105378810,4210693615,1499065266,1195886990,4042263547,2913856577,3570689971,2728590687,2947541573,2627518243,2762274643,1920112356,3233831835,3082273397,4261223649,2475929149,640051788,909531756,1061110142,4160160501,3435941763,875846760,2779116625,3857003729,4059105529,1903268834,3638064043,825316194,353713962,67374088,3351728789,589522246,3284360861,404236336,2526454071,84217610,2593830191,117901582,303183396,2155911963,3806477791,3958056653,656894286,2998062463,1970642922,151591698,2206440989,741110872,437923380,454765878,1852748508,1515908788,2694904667,1381168804,993742198,3604373943,3014905469,690584402,3823320797,791638366,2223281939,1398011302,3520161977,0,3991743681,538992704,4244381667,2981218425,1532751286,1785380564,3419096717,3200178535,960056178,1246420628,1280103576,1482221744,3486468741,3503319995,4025428677,2863326543,4227536621,1128514950,1296947098,859002214,2240123921,1162203018,4193849577,33687044,2139062782,1347481760,1010582648,2678045221,2829640523,1364325282,2745433693,1077985408,2408548869,2459086143,2644360225,943212656,4126475505,3166494563,3065430391,3671750063,555836226,269496352,4294908645,4092792573,3537006015,3452783745,202118168,320025894,3974901699,1600119230,2543297077,1145359496,387397934,3301201811,2812801621,2122220284,1027426170,1684319432,1566435258,421079858,1936954854,1616945344,2172753945,1330631070,3705438115,572679748,707427924,2425400123,2290647819,1179044492,4008585671,3099120491,336870440,3739122087,1583276732,185277718,3688593069,3772791771,842159716,976899700,168435220,1229577106,101059084,606366792,1549591736,3267517855,3553849021,2897014595,1650632388,2442242105,2509612081,3840161747,2038008818,3890688725,3368567691,926374254,1835907034,2374863873,3587531953,1313788572,2846482505,1819063512,1448540844,4109633523,3941213647,1701162954,2054852340,2930698567,134748176,3132806511,2021165296,623210314,774795868,471606328,2795958615,3031746419,3334885783,3907527627,3722280097,1953799400,522133822,1263263126,3183336545,2341176845,2324333839,1886425312,1044267644,3048588401,1718004428,1212733584,50529542,4143317495,235803164,1633788866,892690282,1465383342,3115962473,2256965911,3250673817,488449850,2661202215,3789633753,4177007595,2560144171,286339874,1768537042,3654906025,2391705863,2492770099,2610673197,505291324,2273808917,3924369609,3469625735,1431699370,673740880,3755965093,2358021891,2711746649,2307489801,218961690,3217021541,3873845719,1111672452,1751693520,1094828930,2576986153,757954394,252645662,2964376443,1414855848,3149649517,370555436],b=[1374988112,2118214995,437757123,975658646,1001089995,530400753,2902087851,1273168787,540080725,2910219766,2295101073,4110568485,1340463100,3307916247,641025152,3043140495,3736164937,632953703,1172967064,1576976609,3274667266,2169303058,2370213795,1809054150,59727847,361929877,3211623147,2505202138,3569255213,1484005843,1239443753,2395588676,1975683434,4102977912,2572697195,666464733,3202437046,4035489047,3374361702,2110667444,1675577880,3843699074,2538681184,1649639237,2976151520,3144396420,4269907996,4178062228,1883793496,2403728665,2497604743,1383856311,2876494627,1917518562,3810496343,1716890410,3001755655,800440835,2261089178,3543599269,807962610,599762354,33778362,3977675356,2328828971,2809771154,4077384432,1315562145,1708848333,101039829,3509871135,3299278474,875451293,2733856160,92987698,2767645557,193195065,1080094634,1584504582,3178106961,1042385657,2531067453,3711829422,1306967366,2438237621,1908694277,67556463,1615861247,429456164,3602770327,2302690252,1742315127,2968011453,126454664,3877198648,2043211483,2709260871,2084704233,4169408201,0,159417987,841739592,504459436,1817866830,4245618683,260388950,1034867998,908933415,168810852,1750902305,2606453969,607530554,202008497,2472011535,3035535058,463180190,2160117071,1641816226,1517767529,470948374,3801332234,3231722213,1008918595,303765277,235474187,4069246893,766945465,337553864,1475418501,2943682380,4003061179,2743034109,4144047775,1551037884,1147550661,1543208500,2336434550,3408119516,3069049960,3102011747,3610369226,1113818384,328671808,2227573024,2236228733,3535486456,2935566865,3341394285,496906059,3702665459,226906860,2009195472,733156972,2842737049,294930682,1206477858,2835123396,2700099354,1451044056,573804783,2269728455,3644379585,2362090238,2564033334,2801107407,2776292904,3669462566,1068351396,742039012,1350078989,1784663195,1417561698,4136440770,2430122216,775550814,2193862645,2673705150,1775276924,1876241833,3475313331,3366754619,270040487,3902563182,3678124923,3441850377,1851332852,3969562369,2203032232,3868552805,2868897406,566021896,4011190502,3135740889,1248802510,3936291284,699432150,832877231,708780849,3332740144,899835584,1951317047,4236429990,3767586992,866637845,4043610186,1106041591,2144161806,395441711,1984812685,1139781709,3433712980,3835036895,2664543715,1282050075,3240894392,1181045119,2640243204,25965917,4203181171,4211818798,3009879386,2463879762,3910161971,1842759443,2597806476,933301370,1509430414,3943906441,3467192302,3076639029,3776767469,2051518780,2631065433,1441952575,404016761,1942435775,1408749034,1610459739,3745345300,2017778566,3400528769,3110650942,941896748,3265478751,371049330,3168937228,675039627,4279080257,967311729,135050206,3635733660,1683407248,2076935265,3576870512,1215061108,3501741890],v=[1347548327,1400783205,3273267108,2520393566,3409685355,4045380933,2880240216,2471224067,1428173050,4138563181,2441661558,636813900,4233094615,3620022987,2149987652,2411029155,1239331162,1730525723,2554718734,3781033664,46346101,310463728,2743944855,3328955385,3875770207,2501218972,3955191162,3667219033,768917123,3545789473,692707433,1150208456,1786102409,2029293177,1805211710,3710368113,3065962831,401639597,1724457132,3028143674,409198410,2196052529,1620529459,1164071807,3769721975,2226875310,486441376,2499348523,1483753576,428819965,2274680428,3075636216,598438867,3799141122,1474502543,711349675,129166120,53458370,2592523643,2782082824,4063242375,2988687269,3120694122,1559041666,730517276,2460449204,4042459122,2706270690,3446004468,3573941694,533804130,2328143614,2637442643,2695033685,839224033,1973745387,957055980,2856345839,106852767,1371368976,4181598602,1033297158,2933734917,1179510461,3046200461,91341917,1862534868,4284502037,605657339,2547432937,3431546947,2003294622,3182487618,2282195339,954669403,3682191598,1201765386,3917234703,3388507166,0,2198438022,1211247597,2887651696,1315723890,4227665663,1443857720,507358933,657861945,1678381017,560487590,3516619604,975451694,2970356327,261314535,3535072918,2652609425,1333838021,2724322336,1767536459,370938394,182621114,3854606378,1128014560,487725847,185469197,2918353863,3106780840,3356761769,2237133081,1286567175,3152976349,4255350624,2683765030,3160175349,3309594171,878443390,1988838185,3704300486,1756818940,1673061617,3403100636,272786309,1075025698,545572369,2105887268,4174560061,296679730,1841768865,1260232239,4091327024,3960309330,3497509347,1814803222,2578018489,4195456072,575138148,3299409036,446754879,3629546796,4011996048,3347532110,3252238545,4270639778,915985419,3483825537,681933534,651868046,2755636671,3828103837,223377554,2607439820,1649704518,3270937875,3901806776,1580087799,4118987695,3198115200,2087309459,2842678573,3016697106,1003007129,2802849917,1860738147,2077965243,164439672,4100872472,32283319,2827177882,1709610350,2125135846,136428751,3874428392,3652904859,3460984630,3572145929,3593056380,2939266226,824852259,818324884,3224740454,930369212,2801566410,2967507152,355706840,1257309336,4148292826,243256656,790073846,2373340630,1296297904,1422699085,3756299780,3818836405,457992840,3099667487,2135319889,77422314,1560382517,1945798516,788204353,1521706781,1385356242,870912086,325965383,2358957921,2050466060,2388260884,2313884476,4006521127,901210569,3990953189,1014646705,1503449823,1062597235,2031621326,3212035895,3931371469,1533017514,350174575,2256028891,2177544179,1052338372,741876788,1606591296,1914052035,213705253,2334669897,1107234197,1899603969,3725069491,2631447780,2422494913,1635502980,1893020342,1950903388,1120974935],A=[2807058932,1699970625,2764249623,1586903591,1808481195,1173430173,1487645946,59984867,4199882800,1844882806,1989249228,1277555970,3623636965,3419915562,1149249077,2744104290,1514790577,459744698,244860394,3235995134,1963115311,4027744588,2544078150,4190530515,1608975247,2627016082,2062270317,1507497298,2200818878,567498868,1764313568,3359936201,2305455554,2037970062,1047239e3,1910319033,1337376481,2904027272,2892417312,984907214,1243112415,830661914,861968209,2135253587,2011214180,2927934315,2686254721,731183368,1750626376,4246310725,1820824798,4172763771,3542330227,48394827,2404901663,2871682645,671593195,3254988725,2073724613,145085239,2280796200,2779915199,1790575107,2187128086,472615631,3029510009,4075877127,3802222185,4107101658,3201631749,1646252340,4270507174,1402811438,1436590835,3778151818,3950355702,3963161475,4020912224,2667994737,273792366,2331590177,104699613,95345982,3175501286,2377486676,1560637892,3564045318,369057872,4213447064,3919042237,1137477952,2658625497,1119727848,2340947849,1530455833,4007360968,172466556,266959938,516552836,0,2256734592,3980931627,1890328081,1917742170,4294704398,945164165,3575528878,958871085,3647212047,2787207260,1423022939,775562294,1739656202,3876557655,2530391278,2443058075,3310321856,547512796,1265195639,437656594,3121275539,719700128,3762502690,387781147,218828297,3350065803,2830708150,2848461854,428169201,122466165,3720081049,1627235199,648017665,4122762354,1002783846,2117360635,695634755,3336358691,4234721005,4049844452,3704280881,2232435299,574624663,287343814,612205898,1039717051,840019705,2708326185,793451934,821288114,1391201670,3822090177,376187827,3113855344,1224348052,1679968233,2361698556,1058709744,752375421,2431590963,1321699145,3519142200,2734591178,188127444,2177869557,3727205754,2384911031,3215212461,2648976442,2450346104,3432737375,1180849278,331544205,3102249176,4150144569,2952102595,2159976285,2474404304,766078933,313773861,2570832044,2108100632,1668212892,3145456443,2013908262,418672217,3070356634,2594734927,1852171925,3867060991,3473416636,3907448597,2614737639,919489135,164948639,2094410160,2997825956,590424639,2486224549,1723872674,3157750862,3399941250,3501252752,3625268135,2555048196,3673637356,1343127501,4130281361,3599595085,2957853679,1297403050,81781910,3051593425,2283490410,532201772,1367295589,3926170974,895287692,1953757831,1093597963,492483431,3528626907,1446242576,1192455638,1636604631,209336225,344873464,1015671571,669961897,3375740769,3857572124,2973530695,3747192018,1933530610,3464042516,935293895,3454686199,2858115069,1863638845,3683022916,4085369519,3292445032,875313188,1080017571,3279033885,621591778,1233856572,2504130317,24197544,3017672716,3835484340,3247465558,2220981195,3060847922,1551124588,1463996600],w=[4104605777,1097159550,396673818,660510266,2875968315,2638606623,4200115116,3808662347,821712160,1986918061,3430322568,38544885,3856137295,718002117,893681702,1654886325,2975484382,3122358053,3926825029,4274053469,796197571,1290801793,1184342925,3556361835,2405426947,2459735317,1836772287,1381620373,3196267988,1948373848,3764988233,3385345166,3263785589,2390325492,1480485785,3111247143,3780097726,2293045232,548169417,3459953789,3746175075,439452389,1362321559,1400849762,1685577905,1806599355,2174754046,137073913,1214797936,1174215055,3731654548,2079897426,1943217067,1258480242,529487843,1437280870,3945269170,3049390895,3313212038,923313619,679998e3,3215307299,57326082,377642221,3474729866,2041877159,133361907,1776460110,3673476453,96392454,878845905,2801699524,777231668,4082475170,2330014213,4142626212,2213296395,1626319424,1906247262,1846563261,562755902,3708173718,1040559837,3871163981,1418573201,3294430577,114585348,1343618912,2566595609,3186202582,1078185097,3651041127,3896688048,2307622919,425408743,3371096953,2081048481,1108339068,2216610296,0,2156299017,736970802,292596766,1517440620,251657213,2235061775,2933202493,758720310,265905162,1554391400,1532285339,908999204,174567692,1474760595,4002861748,2610011675,3234156416,3693126241,2001430874,303699484,2478443234,2687165888,585122620,454499602,151849742,2345119218,3064510765,514443284,4044981591,1963412655,2581445614,2137062819,19308535,1928707164,1715193156,4219352155,1126790795,600235211,3992742070,3841024952,836553431,1669664834,2535604243,3323011204,1243905413,3141400786,4180808110,698445255,2653899549,2989552604,2253581325,3252932727,3004591147,1891211689,2487810577,3915653703,4237083816,4030667424,2100090966,865136418,1229899655,953270745,3399679628,3557504664,4118925222,2061379749,3079546586,2915017791,983426092,2022837584,1607244650,2118541908,2366882550,3635996816,972512814,3283088770,1568718495,3499326569,3576539503,621982671,2895723464,410887952,2623762152,1002142683,645401037,1494807662,2595684844,1335535747,2507040230,4293295786,3167684641,367585007,3885750714,1865862730,2668221674,2960971305,2763173681,1059270954,2777952454,2724642869,1320957812,2194319100,2429595872,2815956275,77089521,3973773121,3444575871,2448830231,1305906550,4021308739,2857194700,2516901860,3518358430,1787304780,740276417,1699839814,1592394909,2352307457,2272556026,188821243,1729977011,3687994002,274084841,3594982253,3613494426,2701949495,4162096729,322734571,2837966542,1640576439,484830689,1202797690,3537852828,4067639125,349075736,3342319475,4157467219,4255800159,1030690015,1155237496,2951971274,1757691577,607398968,2738905026,499347990,3794078908,1011452712,227885567,2818666809,213114376,3034881240,1455525988,3414450555,850817237,1817998408,3092726480],T=[0,235474187,470948374,303765277,941896748,908933415,607530554,708780849,1883793496,2118214995,1817866830,1649639237,1215061108,1181045119,1417561698,1517767529,3767586992,4003061179,4236429990,4069246893,3635733660,3602770327,3299278474,3400528769,2430122216,2664543715,2362090238,2193862645,2835123396,2801107407,3035535058,3135740889,3678124923,3576870512,3341394285,3374361702,3810496343,3977675356,4279080257,4043610186,2876494627,2776292904,3076639029,3110650942,2472011535,2640243204,2403728665,2169303058,1001089995,899835584,666464733,699432150,59727847,226906860,530400753,294930682,1273168787,1172967064,1475418501,1509430414,1942435775,2110667444,1876241833,1641816226,2910219766,2743034109,2976151520,3211623147,2505202138,2606453969,2302690252,2269728455,3711829422,3543599269,3240894392,3475313331,3843699074,3943906441,4178062228,4144047775,1306967366,1139781709,1374988112,1610459739,1975683434,2076935265,1775276924,1742315127,1034867998,866637845,566021896,800440835,92987698,193195065,429456164,395441711,1984812685,2017778566,1784663195,1683407248,1315562145,1080094634,1383856311,1551037884,101039829,135050206,437757123,337553864,1042385657,807962610,573804783,742039012,2531067453,2564033334,2328828971,2227573024,2935566865,2700099354,3001755655,3168937228,3868552805,3902563182,4203181171,4102977912,3736164937,3501741890,3265478751,3433712980,1106041591,1340463100,1576976609,1408749034,2043211483,2009195472,1708848333,1809054150,832877231,1068351396,766945465,599762354,159417987,126454664,361929877,463180190,2709260871,2943682380,3178106961,3009879386,2572697195,2538681184,2236228733,2336434550,3509871135,3745345300,3441850377,3274667266,3910161971,3877198648,4110568485,4211818798,2597806476,2497604743,2261089178,2295101073,2733856160,2902087851,3202437046,2968011453,3936291284,3835036895,4136440770,4169408201,3535486456,3702665459,3467192302,3231722213,2051518780,1951317047,1716890410,1750902305,1113818384,1282050075,1584504582,1350078989,168810852,67556463,371049330,404016761,841739592,1008918595,775550814,540080725,3969562369,3801332234,4035489047,4269907996,3569255213,3669462566,3366754619,3332740144,2631065433,2463879762,2160117071,2395588676,2767645557,2868897406,3102011747,3069049960,202008497,33778362,270040487,504459436,875451293,975658646,675039627,641025152,2084704233,1917518562,1615861247,1851332852,1147550661,1248802510,1484005843,1451044056,933301370,967311729,733156972,632953703,260388950,25965917,328671808,496906059,1206477858,1239443753,1543208500,1441952575,2144161806,1908694277,1675577880,1842759443,3610369226,3644379585,3408119516,3307916247,4011190502,3776767469,4077384432,4245618683,2809771154,2842737049,3144396420,3043140495,2673705150,2438237621,2203032232,2370213795],E=[0,185469197,370938394,487725847,741876788,657861945,975451694,824852259,1483753576,1400783205,1315723890,1164071807,1950903388,2135319889,1649704518,1767536459,2967507152,3152976349,2801566410,2918353863,2631447780,2547432937,2328143614,2177544179,3901806776,3818836405,4270639778,4118987695,3299409036,3483825537,3535072918,3652904859,2077965243,1893020342,1841768865,1724457132,1474502543,1559041666,1107234197,1257309336,598438867,681933534,901210569,1052338372,261314535,77422314,428819965,310463728,3409685355,3224740454,3710368113,3593056380,3875770207,3960309330,4045380933,4195456072,2471224067,2554718734,2237133081,2388260884,3212035895,3028143674,2842678573,2724322336,4138563181,4255350624,3769721975,3955191162,3667219033,3516619604,3431546947,3347532110,2933734917,2782082824,3099667487,3016697106,2196052529,2313884476,2499348523,2683765030,1179510461,1296297904,1347548327,1533017514,1786102409,1635502980,2087309459,2003294622,507358933,355706840,136428751,53458370,839224033,957055980,605657339,790073846,2373340630,2256028891,2607439820,2422494913,2706270690,2856345839,3075636216,3160175349,3573941694,3725069491,3273267108,3356761769,4181598602,4063242375,4011996048,3828103837,1033297158,915985419,730517276,545572369,296679730,446754879,129166120,213705253,1709610350,1860738147,1945798516,2029293177,1239331162,1120974935,1606591296,1422699085,4148292826,4233094615,3781033664,3931371469,3682191598,3497509347,3446004468,3328955385,2939266226,2755636671,3106780840,2988687269,2198438022,2282195339,2501218972,2652609425,1201765386,1286567175,1371368976,1521706781,1805211710,1620529459,2105887268,1988838185,533804130,350174575,164439672,46346101,870912086,954669403,636813900,788204353,2358957921,2274680428,2592523643,2441661558,2695033685,2880240216,3065962831,3182487618,3572145929,3756299780,3270937875,3388507166,4174560061,4091327024,4006521127,3854606378,1014646705,930369212,711349675,560487590,272786309,457992840,106852767,223377554,1678381017,1862534868,1914052035,2031621326,1211247597,1128014560,1580087799,1428173050,32283319,182621114,401639597,486441376,768917123,651868046,1003007129,818324884,1503449823,1385356242,1333838021,1150208456,1973745387,2125135846,1673061617,1756818940,2970356327,3120694122,2802849917,2887651696,2637442643,2520393566,2334669897,2149987652,3917234703,3799141122,4284502037,4100872472,3309594171,3460984630,3545789473,3629546796,2050466060,1899603969,1814803222,1730525723,1443857720,1560382517,1075025698,1260232239,575138148,692707433,878443390,1062597235,243256656,91341917,409198410,325965383,3403100636,3252238545,3704300486,3620022987,3874428392,3990953189,4042459122,4227665663,2460449204,2578018489,2226875310,2411029155,3198115200,3046200461,2827177882,2743944855],I=[0,218828297,437656594,387781147,875313188,958871085,775562294,590424639,1750626376,1699970625,1917742170,2135253587,1551124588,1367295589,1180849278,1265195639,3501252752,3720081049,3399941250,3350065803,3835484340,3919042237,4270507174,4085369519,3102249176,3051593425,2734591178,2952102595,2361698556,2177869557,2530391278,2614737639,3145456443,3060847922,2708326185,2892417312,2404901663,2187128086,2504130317,2555048196,3542330227,3727205754,3375740769,3292445032,3876557655,3926170974,4246310725,4027744588,1808481195,1723872674,1910319033,2094410160,1608975247,1391201670,1173430173,1224348052,59984867,244860394,428169201,344873464,935293895,984907214,766078933,547512796,1844882806,1627235199,2011214180,2062270317,1507497298,1423022939,1137477952,1321699145,95345982,145085239,532201772,313773861,830661914,1015671571,731183368,648017665,3175501286,2957853679,2807058932,2858115069,2305455554,2220981195,2474404304,2658625497,3575528878,3625268135,3473416636,3254988725,3778151818,3963161475,4213447064,4130281361,3599595085,3683022916,3432737375,3247465558,3802222185,4020912224,4172763771,4122762354,3201631749,3017672716,2764249623,2848461854,2331590177,2280796200,2431590963,2648976442,104699613,188127444,472615631,287343814,840019705,1058709744,671593195,621591778,1852171925,1668212892,1953757831,2037970062,1514790577,1463996600,1080017571,1297403050,3673637356,3623636965,3235995134,3454686199,4007360968,3822090177,4107101658,4190530515,2997825956,3215212461,2830708150,2779915199,2256734592,2340947849,2627016082,2443058075,172466556,122466165,273792366,492483431,1047239e3,861968209,612205898,695634755,1646252340,1863638845,2013908262,1963115311,1446242576,1530455833,1277555970,1093597963,1636604631,1820824798,2073724613,1989249228,1436590835,1487645946,1337376481,1119727848,164948639,81781910,331544205,516552836,1039717051,821288114,669961897,719700128,2973530695,3157750862,2871682645,2787207260,2232435299,2283490410,2667994737,2450346104,3647212047,3564045318,3279033885,3464042516,3980931627,3762502690,4150144569,4199882800,3070356634,3121275539,2904027272,2686254721,2200818878,2384911031,2570832044,2486224549,3747192018,3528626907,3310321856,3359936201,3950355702,3867060991,4049844452,4234721005,1739656202,1790575107,2108100632,1890328081,1402811438,1586903591,1233856572,1149249077,266959938,48394827,369057872,418672217,1002783846,919489135,567498868,752375421,209336225,24197544,376187827,459744698,945164165,895287692,574624663,793451934,1679968233,1764313568,2117360635,1933530610,1343127501,1560637892,1243112415,1192455638,3704280881,3519142200,3336358691,3419915562,3907448597,3857572124,4075877127,4294704398,3029510009,3113855344,2927934315,2744104290,2159976285,2377486676,2594734927,2544078150],S=[0,151849742,303699484,454499602,607398968,758720310,908999204,1059270954,1214797936,1097159550,1517440620,1400849762,1817998408,1699839814,2118541908,2001430874,2429595872,2581445614,2194319100,2345119218,3034881240,3186202582,2801699524,2951971274,3635996816,3518358430,3399679628,3283088770,4237083816,4118925222,4002861748,3885750714,1002142683,850817237,698445255,548169417,529487843,377642221,227885567,77089521,1943217067,2061379749,1640576439,1757691577,1474760595,1592394909,1174215055,1290801793,2875968315,2724642869,3111247143,2960971305,2405426947,2253581325,2638606623,2487810577,3808662347,3926825029,4044981591,4162096729,3342319475,3459953789,3576539503,3693126241,1986918061,2137062819,1685577905,1836772287,1381620373,1532285339,1078185097,1229899655,1040559837,923313619,740276417,621982671,439452389,322734571,137073913,19308535,3871163981,4021308739,4104605777,4255800159,3263785589,3414450555,3499326569,3651041127,2933202493,2815956275,3167684641,3049390895,2330014213,2213296395,2566595609,2448830231,1305906550,1155237496,1607244650,1455525988,1776460110,1626319424,2079897426,1928707164,96392454,213114376,396673818,514443284,562755902,679998e3,865136418,983426092,3708173718,3557504664,3474729866,3323011204,4180808110,4030667424,3945269170,3794078908,2507040230,2623762152,2272556026,2390325492,2975484382,3092726480,2738905026,2857194700,3973773121,3856137295,4274053469,4157467219,3371096953,3252932727,3673476453,3556361835,2763173681,2915017791,3064510765,3215307299,2156299017,2307622919,2459735317,2610011675,2081048481,1963412655,1846563261,1729977011,1480485785,1362321559,1243905413,1126790795,878845905,1030690015,645401037,796197571,274084841,425408743,38544885,188821243,3613494426,3731654548,3313212038,3430322568,4082475170,4200115116,3780097726,3896688048,2668221674,2516901860,2366882550,2216610296,3141400786,2989552604,2837966542,2687165888,1202797690,1320957812,1437280870,1554391400,1669664834,1787304780,1906247262,2022837584,265905162,114585348,499347990,349075736,736970802,585122620,972512814,821712160,2595684844,2478443234,2293045232,2174754046,3196267988,3079546586,2895723464,2777952454,3537852828,3687994002,3234156416,3385345166,4142626212,4293295786,3841024952,3992742070,174567692,57326082,410887952,292596766,777231668,660510266,1011452712,893681702,1108339068,1258480242,1343618912,1494807662,1715193156,1865862730,1948373848,2100090966,2701949495,2818666809,3004591147,3122358053,2235061775,2352307457,2535604243,2653899549,3915653703,3764988233,4219352155,4067639125,3444575871,3294430577,3746175075,3594982253,836553431,953270745,600235211,718002117,367585007,484830689,133361907,251657213,2041877159,1891211689,1806599355,1654886325,1568718495,1418573201,1335535747,1184342925];function k(e){for(var t=[],r=0;r<e.length;r+=4)t.push(e[r]<<24|e[r+1]<<16|e[r+2]<<8|e[r+3]);return t}var P=function(e){if(!(this instanceof P))throw Error("AES must be instanitated with `new`");Object.defineProperty(this,"key",{value:i(e,!0)}),this._prepare()};P.prototype._prepare=function(){var e=c[this.key.length];if(null==e)throw new Error("invalid key size (must be 16, 24 or 32 bytes)");this._Ke=[],this._Kd=[];for(var t=0;t<=e;t++)this._Ke.push([0,0,0,0]),this._Kd.push([0,0,0,0]);var r,n=4*(e+1),i=this.key.length/4,o=k(this.key);for(t=0;t<i;t++)this._Ke[r=t>>2][t%4]=o[t],this._Kd[e-r][t%4]=o[t];for(var s,a=0,u=i;u<n;){if(o[0]^=h[(s=o[i-1])>>16&255]<<24^h[s>>8&255]<<16^h[255&s]<<8^h[s>>24&255]^d[a]<<24,a+=1,8!=i)for(t=1;t<i;t++)o[t]^=o[t-1];else{for(t=1;t<i/2;t++)o[t]^=o[t-1];for(o[i/2]^=h[255&(s=o[i/2-1])]^h[s>>8&255]<<8^h[s>>16&255]<<16^h[s>>24&255]<<24,t=i/2+1;t<i;t++)o[t]^=o[t-1]}for(t=0;t<i&&u<n;)this._Ke[l=u>>2][p=u%4]=o[t],this._Kd[e-l][p]=o[t++],u++}for(var l=1;l<e;l++)for(var p=0;p<4;p++)this._Kd[l][p]=T[(s=this._Kd[l][p])>>24&255]^E[s>>16&255]^I[s>>8&255]^S[255&s]},P.prototype.encrypt=function(e){if(16!=e.length)throw new Error("invalid plaintext size (must be 16 bytes)");for(var t=this._Ke.length-1,r=[0,0,0,0],n=k(e),i=0;i<4;i++)n[i]^=this._Ke[0][i];for(var s=1;s<t;s++){for(i=0;i<4;i++)r[i]=f[n[i]>>24&255]^m[n[(i+1)%4]>>16&255]^y[n[(i+2)%4]>>8&255]^g[255&n[(i+3)%4]]^this._Ke[s][i];n=r.slice()}var a,u=o(16);for(i=0;i<4;i++)u[4*i]=255&(h[n[i]>>24&255]^(a=this._Ke[t][i])>>24),u[4*i+1]=255&(h[n[(i+1)%4]>>16&255]^a>>16),u[4*i+2]=255&(h[n[(i+2)%4]>>8&255]^a>>8),u[4*i+3]=255&(h[255&n[(i+3)%4]]^a);return u},P.prototype.decrypt=function(e){if(16!=e.length)throw new Error("invalid ciphertext size (must be 16 bytes)");for(var t=this._Kd.length-1,r=[0,0,0,0],n=k(e),i=0;i<4;i++)n[i]^=this._Kd[0][i];for(var s=1;s<t;s++){for(i=0;i<4;i++)r[i]=b[n[i]>>24&255]^v[n[(i+3)%4]>>16&255]^A[n[(i+2)%4]>>8&255]^w[255&n[(i+1)%4]]^this._Kd[s][i];n=r.slice()}var a,u=o(16);for(i=0;i<4;i++)u[4*i]=255&(p[n[i]>>24&255]^(a=this._Kd[t][i])>>24),u[4*i+1]=255&(p[n[(i+3)%4]>>16&255]^a>>16),u[4*i+2]=255&(p[n[(i+2)%4]>>8&255]^a>>8),u[4*i+3]=255&(p[255&n[(i+1)%4]]^a);return u};var C=function(e){if(!(this instanceof C))throw Error("AES must be instanitated with `new`");this.description="Electronic Code Block",this.name="ecb",this._aes=new P(e)};C.prototype.encrypt=function(e){if((e=i(e)).length%16!=0)throw new Error("invalid plaintext size (must be multiple of 16 bytes)");for(var t=o(e.length),r=o(16),n=0;n<e.length;n+=16)s(e,r,0,n,n+16),s(r=this._aes.encrypt(r),t,n);return t},C.prototype.decrypt=function(e){if((e=i(e)).length%16!=0)throw new Error("invalid ciphertext size (must be multiple of 16 bytes)");for(var t=o(e.length),r=o(16),n=0;n<e.length;n+=16)s(e,r,0,n,n+16),s(r=this._aes.decrypt(r),t,n);return t};var x=function(e,t){if(!(this instanceof x))throw Error("AES must be instanitated with `new`");if(this.description="Cipher Block Chaining",this.name="cbc",t){if(16!=t.length)throw new Error("invalid initialation vector size (must be 16 bytes)")}else t=o(16);this._lastCipherblock=i(t,!0),this._aes=new P(e)};x.prototype.encrypt=function(e){if((e=i(e)).length%16!=0)throw new Error("invalid plaintext size (must be multiple of 16 bytes)");for(var t=o(e.length),r=o(16),n=0;n<e.length;n+=16){s(e,r,0,n,n+16);for(var a=0;a<16;a++)r[a]^=this._lastCipherblock[a];this._lastCipherblock=this._aes.encrypt(r),s(this._lastCipherblock,t,n)}return t},x.prototype.decrypt=function(e){if((e=i(e)).length%16!=0)throw new Error("invalid ciphertext size (must be multiple of 16 bytes)");for(var t=o(e.length),r=o(16),n=0;n<e.length;n+=16){s(e,r,0,n,n+16),r=this._aes.decrypt(r);for(var a=0;a<16;a++)t[n+a]=r[a]^this._lastCipherblock[a];s(e,this._lastCipherblock,0,n,n+16)}return t};var N=function(e,t,r){if(!(this instanceof N))throw Error("AES must be instanitated with `new`");if(this.description="Cipher Feedback",this.name="cfb",t){if(16!=t.length)throw new Error("invalid initialation vector size (must be 16 size)")}else t=o(16);r||(r=1),this.segmentSize=r,this._shiftRegister=i(t,!0),this._aes=new P(e)};N.prototype.encrypt=function(e){if(e.length%this.segmentSize!=0)throw new Error("invalid plaintext size (must be segmentSize bytes)");for(var t,r=i(e,!0),n=0;n<r.length;n+=this.segmentSize){t=this._aes.encrypt(this._shiftRegister);for(var o=0;o<this.segmentSize;o++)r[n+o]^=t[o];s(this._shiftRegister,this._shiftRegister,0,this.segmentSize),s(r,this._shiftRegister,16-this.segmentSize,n,n+this.segmentSize)}return r},N.prototype.decrypt=function(e){if(e.length%this.segmentSize!=0)throw new Error("invalid ciphertext size (must be segmentSize bytes)");for(var t,r=i(e,!0),n=0;n<r.length;n+=this.segmentSize){t=this._aes.encrypt(this._shiftRegister);for(var o=0;o<this.segmentSize;o++)r[n+o]^=t[o];s(this._shiftRegister,this._shiftRegister,0,this.segmentSize),s(e,this._shiftRegister,16-this.segmentSize,n,n+this.segmentSize)}return r};var _=function(e,t){if(!(this instanceof _))throw Error("AES must be instanitated with `new`");if(this.description="Output Feedback",this.name="ofb",t){if(16!=t.length)throw new Error("invalid initialation vector size (must be 16 bytes)")}else t=o(16);this._lastPrecipher=i(t,!0),this._lastPrecipherIndex=16,this._aes=new P(e)};_.prototype.encrypt=function(e){for(var t=i(e,!0),r=0;r<t.length;r++)16===this._lastPrecipherIndex&&(this._lastPrecipher=this._aes.encrypt(this._lastPrecipher),this._lastPrecipherIndex=0),t[r]^=this._lastPrecipher[this._lastPrecipherIndex++];return t},_.prototype.decrypt=_.prototype.encrypt;var R=function(e){if(!(this instanceof R))throw Error("Counter must be instanitated with `new`");0===e||e||(e=1),"number"==typeof e?(this._counter=o(16),this.setValue(e)):this.setBytes(e)};R.prototype.setValue=function(e){if("number"!=typeof e||parseInt(e)!=e)throw new Error("invalid counter value (must be an integer)");for(var t=15;t>=0;--t)this._counter[t]=e%256,e>>=8},R.prototype.setBytes=function(e){if(16!=(e=i(e,!0)).length)throw new Error("invalid counter bytes size (must be 16 bytes)");this._counter=e},R.prototype.increment=function(){for(var e=15;e>=0;e--){if(255!==this._counter[e]){this._counter[e]++;break}this._counter[e]=0}};var M=function(e,t){if(!(this instanceof M))throw Error("AES must be instanitated with `new`");this.description="Counter",this.name="ctr",t instanceof R||(t=new R(t)),this._counter=t,this._remainingCounter=null,this._remainingCounterIndex=16,this._aes=new P(e)};M.prototype.encrypt=function(e){for(var t=i(e,!0),r=0;r<t.length;r++)16===this._remainingCounterIndex&&(this._remainingCounter=this._aes.encrypt(this._counter._counter),this._remainingCounterIndex=0,this._counter.increment()),t[r]^=this._remainingCounter[this._remainingCounterIndex++];return t},M.prototype.decrypt=M.prototype.encrypt,e.exports={AES:P,Counter:R,ModeOfOperation:{ecb:C,cbc:x,cfb:N,ofb:_,ctr:M},utils:{hex:l,utf8:u},padding:{pkcs7:{pad:function(e){var t=16-(e=i(e,!0)).length%16,r=o(e.length+t);s(e,r);for(var n=e.length;n<r.length;n++)r[n]=t;return r},strip:function(e){if((e=i(e,!0)).length<16)throw new Error("PKCS#7 invalid length");var t=e[e.length-1];if(t>16)throw new Error("PKCS#7 padding byte out of range");for(var r=e.length-t,n=0;n<t;n++)if(e[r+n]!==t)throw new Error("PKCS#7 invalid padding byte");var a=o(r);return s(e,a,0,0,r),a}}},_arrayTest:{coerceArray:i,createArray:o,copyArray:s}}}()});const bl="json-wallets/5.8.0";function vl(e){return"string"==typeof e&&"0x"!==e.substring(0,2)&&(e="0x"+e),Nr(e)}function Al(e,t){for(e=String(e);e.length<t;)e="0"+e;return e}function wl(e){return"string"==typeof e?$n(e,Jn.NFKC):Nr(e)}function Tl(e,t){let r=e;const n=t.toLowerCase().split("/");for(let e=0;e<n.length;e++){let t=null;for(const i in r)if(i.toLowerCase()===n[e]){t=r[i];break}if(null===t)return null;r=t}return r}function El(e){const t=Nr(e);t[6]=15&t[6]|64,t[8]=63&t[8]|128;const r=Br(t);return[r.substring(2,10),r.substring(10,14),r.substring(14,18),r.substring(18,22),r.substring(22,34)].join("-")}const Il=new Er(bl);class Sl extends Sn{isCrowdsaleAccount(e){return!(!e||!e._isCrowdsaleAccount)}}function kl(e,t){const r=JSON.parse(e);t=wl(t);const n=Ui(Tl(r,"ethaddr")),i=vl(Tl(r,"encseed"));i&&i.length%16==0||Il.throwArgumentError("invalid encseed","json",e);const o=Nr(Yu(t,t,2e3,32,"sha256")).slice(0,16),s=i.slice(0,16),a=i.slice(16),u=new gl.ModeOfOperation.cbc(o,s),l=gl.padding.pkcs7.strip(Nr(u.decrypt(a)));let c="";for(let e=0;e<l.length;e++)c+=String.fromCharCode(l[e]);const d=Kn($n(c));return new Sl({_isCrowdsaleAccount:!0,address:n,privateKey:d})}function Pl(e){let t=null;try{t=JSON.parse(e)}catch(e){return!1}return t.encseed&&t.ethaddr}function Cl(e){let t=null;try{t=JSON.parse(e)}catch(e){return!1}return!(!t.version||parseInt(t.version)!==t.version||3!==parseInt(t.version))}var xl=dr(function(e,t){!function(t){const r=2147483647;function n(e){const t=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]);let r=1779033703,n=3144134277,i=1013904242,o=2773480762,s=1359893119,a=2600822924,u=528734635,l=1541459225;const c=new Uint32Array(64);function d(e){let d=0,h=e.length;for(;h>=64;){let p,f,m,y,g,b=r,v=n,A=i,w=o,T=s,E=a,I=u,S=l;for(f=0;f<16;f++)m=d+4*f,c[f]=(255&e[m])<<24|(255&e[m+1])<<16|(255&e[m+2])<<8|255&e[m+3];for(f=16;f<64;f++)p=c[f-2],y=(p>>>17|p<<15)^(p>>>19|p<<13)^p>>>10,p=c[f-15],g=(p>>>7|p<<25)^(p>>>18|p<<14)^p>>>3,c[f]=(y+c[f-7]|0)+(g+c[f-16]|0)|0;for(f=0;f<64;f++)y=(((T>>>6|T<<26)^(T>>>11|T<<21)^(T>>>25|T<<7))+(T&E^~T&I)|0)+(S+(t[f]+c[f]|0)|0)|0,g=((b>>>2|b<<30)^(b>>>13|b<<19)^(b>>>22|b<<10))+(b&v^b&A^v&A)|0,S=I,I=E,E=T,T=w+y|0,w=A,A=v,v=b,b=y+g|0;r=r+b|0,n=n+v|0,i=i+A|0,o=o+w|0,s=s+T|0,a=a+E|0,u=u+I|0,l=l+S|0,d+=64,h-=64}}d(e);let h,p=e.length%64,f=e.length/536870912|0,m=e.length<<3,y=p<56?56:120,g=e.slice(e.length-p,e.length);for(g.push(128),h=p+1;h<y;h++)g.push(0);return g.push(f>>>24&255),g.push(f>>>16&255),g.push(f>>>8&255),g.push(f>>>0&255),g.push(m>>>24&255),g.push(m>>>16&255),g.push(m>>>8&255),g.push(m>>>0&255),d(g),[r>>>24&255,r>>>16&255,r>>>8&255,r>>>0&255,n>>>24&255,n>>>16&255,n>>>8&255,n>>>0&255,i>>>24&255,i>>>16&255,i>>>8&255,i>>>0&255,o>>>24&255,o>>>16&255,o>>>8&255,o>>>0&255,s>>>24&255,s>>>16&255,s>>>8&255,s>>>0&255,a>>>24&255,a>>>16&255,a>>>8&255,a>>>0&255,u>>>24&255,u>>>16&255,u>>>8&255,u>>>0&255,l>>>24&255,l>>>16&255,l>>>8&255,l>>>0&255]}function i(e,t,r){e=e.length<=64?e:n(e);const i=64+t.length+4,o=new Array(i),s=new Array(64);let a,u=[];for(a=0;a<64;a++)o[a]=54;for(a=0;a<e.length;a++)o[a]^=e[a];for(a=0;a<t.length;a++)o[64+a]=t[a];for(a=i-4;a<i;a++)o[a]=0;for(a=0;a<64;a++)s[a]=92;for(a=0;a<e.length;a++)s[a]^=e[a];function l(){for(let e=i-1;e>=i-4;e--){if(o[e]++,o[e]<=255)return;o[e]=0}}for(;r>=32;)l(),u=u.concat(n(s.concat(n(o)))),r-=32;return r>0&&(l(),u=u.concat(n(s.concat(n(o))).slice(0,r))),u}function o(e,t,r,n,i){let o;for(l(e,16*(2*r-1),i,0,16),o=0;o<2*r;o++)u(e,16*o,i,16),a(i,n),l(i,0,e,t+16*o,16);for(o=0;o<r;o++)l(e,t+2*o*16,e,16*o,16);for(o=0;o<r;o++)l(e,t+16*(2*o+1),e,16*(o+r),16)}function s(e,t){return e<<t|e>>>32-t}function a(e,t){l(e,0,t,0,16);for(let e=8;e>0;e-=2)t[4]^=s(t[0]+t[12],7),t[8]^=s(t[4]+t[0],9),t[12]^=s(t[8]+t[4],13),t[0]^=s(t[12]+t[8],18),t[9]^=s(t[5]+t[1],7),t[13]^=s(t[9]+t[5],9),t[1]^=s(t[13]+t[9],13),t[5]^=s(t[1]+t[13],18),t[14]^=s(t[10]+t[6],7),t[2]^=s(t[14]+t[10],9),t[6]^=s(t[2]+t[14],13),t[10]^=s(t[6]+t[2],18),t[3]^=s(t[15]+t[11],7),t[7]^=s(t[3]+t[15],9),t[11]^=s(t[7]+t[3],13),t[15]^=s(t[11]+t[7],18),t[1]^=s(t[0]+t[3],7),t[2]^=s(t[1]+t[0],9),t[3]^=s(t[2]+t[1],13),t[0]^=s(t[3]+t[2],18),t[6]^=s(t[5]+t[4],7),t[7]^=s(t[6]+t[5],9),t[4]^=s(t[7]+t[6],13),t[5]^=s(t[4]+t[7],18),t[11]^=s(t[10]+t[9],7),t[8]^=s(t[11]+t[10],9),t[9]^=s(t[8]+t[11],13),t[10]^=s(t[9]+t[8],18),t[12]^=s(t[15]+t[14],7),t[13]^=s(t[12]+t[15],9),t[14]^=s(t[13]+t[12],13),t[15]^=s(t[14]+t[13],18);for(let r=0;r<16;++r)e[r]+=t[r]}function u(e,t,r,n){for(let i=0;i<n;i++)r[i]^=e[t+i]}function l(e,t,r,n,i){for(;i--;)r[n++]=e[t++]}function c(e){if(!e||"number"!=typeof e.length)return!1;for(let t=0;t<e.length;t++){const r=e[t];if("number"!=typeof r||r%1||r<0||r>=256)return!1}return!0}function d(e,t){if("number"!=typeof e||e%1)throw new Error("invalid "+t);return e}function h(e,t,n,s,a,h,p){if(n=d(n,"N"),s=d(s,"r"),a=d(a,"p"),h=d(h,"dkLen"),0===n||0!=(n&n-1))throw new Error("N must be power of 2");if(n>r/128/s)throw new Error("N too large");if(s>r/128/a)throw new Error("r too large");if(!c(e))throw new Error("password must be an array or buffer");if(e=Array.prototype.slice.call(e),!c(t))throw new Error("salt must be an array or buffer");t=Array.prototype.slice.call(t);let f=i(e,t,128*a*s);const m=new Uint32Array(32*a*s);for(let e=0;e<m.length;e++){const t=4*e;m[e]=(255&f[t+3])<<24|(255&f[t+2])<<16|(255&f[t+1])<<8|(255&f[t+0])<<0}const y=new Uint32Array(64*s),g=new Uint32Array(32*s*n),b=32*s,v=new Uint32Array(16),A=new Uint32Array(16),w=a*n*2;let T,E,I=0,S=null,k=!1,P=0,C=0;const x=p?parseInt(1e3/s):4294967295,N="undefined"!=typeof setImmediate?setImmediate:setTimeout,_=function(){if(k)return p(new Error("cancelled"),I/w);let t;switch(P){case 0:E=32*C*s,l(m,E,y,0,b),P=1,T=0;case 1:t=n-T,t>x&&(t=x);for(let e=0;e<t;e++)l(y,0,g,(T+e)*b,b),o(y,b,s,v,A);if(T+=t,I+=t,p){const e=parseInt(1e3*I/w);if(e!==S){if(k=p(null,I/w),k)break;S=e}}if(T<n)break;T=0,P=2;case 2:t=n-T,t>x&&(t=x);for(let e=0;e<t;e++)u(g,(y[16*(2*s-1)]&n-1)*b,y,b),o(y,b,s,v,A);if(T+=t,I+=t,p){const e=parseInt(1e3*I/w);if(e!==S){if(k=p(null,I/w),k)break;S=e}}if(T<n)break;if(l(y,0,m,E,b),C++,C<a){P=0;break}f=[];for(let e=0;e<m.length;e++)f.push(m[e]>>0&255),f.push(m[e]>>8&255),f.push(m[e]>>16&255),f.push(m[e]>>24&255);const r=i(e,f,h);return p&&p(null,1,r),r}p&&N(_)};if(!p)for(;;){const e=_();if(null!=e)return e}_()}const p={scrypt:function(e,t,r,n,i,o,s){return new Promise(function(a,u){let l=0;s&&s(0),h(e,t,r,n,i,o,function(e,t,r){if(e)u(e);else if(r)s&&1!==l&&s(1),a(new Uint8Array(r));else if(s&&t!==l)return l=t,s(t)})})},syncScrypt:function(e,t,r,n,i,o){return new Uint8Array(h(e,t,r,n,i,o))}};e.exports=p}()}),Nl=xl;const _l=new Er(bl);function Rl(e){return null!=e&&e.mnemonic&&e.mnemonic.phrase}class Ml extends Sn{isKeystoreAccount(e){return!(!e||!e._isKeystoreAccount)}}function Ol(e,t){const r=vl(Tl(e,"crypto/ciphertext"));if(Br(Kn(_r([t.slice(16,32),r]))).substring(2)!==Tl(e,"crypto/mac").toLowerCase())throw new Error("invalid password");const n=function(e,t,r){if("aes-128-ctr"===Tl(e,"crypto/cipher")){const n=vl(Tl(e,"crypto/cipherparams/iv")),i=new gl.Counter(n);return Nr(new gl.ModeOfOperation.ctr(t,i).decrypt(r))}return null}(e,t.slice(0,16),r);n||_l.throwError("unsupported cipher",Er.errors.UNSUPPORTED_OPERATION,{operation:"decrypt"});const i=t.slice(32,64),o=Wa(n);if(e.address){let t=e.address.toLowerCase();if("0x"!==t.substring(0,2)&&(t="0x"+t),Ui(t)!==o)throw new Error("address mismatch")}const s={_isKeystoreAccount:!0,address:o,privateKey:Br(n)};if("0.1"===Tl(e,"x-ethers/version")){const t=vl(Tl(e,"x-ethers/mnemonicCiphertext")),r=vl(Tl(e,"x-ethers/mnemonicCounter")),n=new gl.Counter(r),o=new gl.ModeOfOperation.ctr(i,n),a=Tl(e,"x-ethers/path")||pl,u=Tl(e,"x-ethers/locale")||"en",l=Nr(o.decrypt(t));try{const e=yl(l,u),t=fl.fromMnemonic(e,null,u).derivePath(a);if(t.privateKey!=s.privateKey)throw new Error("mnemonic mismatch");s.mnemonic=t.mnemonic}catch(e){if(e.code!==Er.errors.INVALID_ARGUMENT||"wordlist"!==e.argument)throw e}}return new Ml(s)}function Bl(e,t,r,n,i){return Nr(Yu(e,t,r,n,i))}function Dl(e,t,r,n,i){return Promise.resolve(Bl(e,t,r,n,i))}function Fl(e,t,r,n,i){const o=wl(t),s=Tl(e,"crypto/kdf");if(s&&"string"==typeof s){const t=function(e,t){return _l.throwArgumentError("invalid key-derivation function parameters",e,t)};if("scrypt"===s.toLowerCase()){const r=vl(Tl(e,"crypto/kdfparams/salt")),a=parseInt(Tl(e,"crypto/kdfparams/n")),u=parseInt(Tl(e,"crypto/kdfparams/r")),l=parseInt(Tl(e,"crypto/kdfparams/p"));a&&u&&l||t("kdf",s),0!=(a&a-1)&&t("N",a);const c=parseInt(Tl(e,"crypto/kdfparams/dklen"));return 32!==c&&t("dklen",c),n(o,r,a,u,l,64,i)}if("pbkdf2"===s.toLowerCase()){const n=vl(Tl(e,"crypto/kdfparams/salt"));let i=null;const s=Tl(e,"crypto/kdfparams/prf");"hmac-sha256"===s?i="sha256":"hmac-sha512"===s?i="sha512":t("prf",s);const a=parseInt(Tl(e,"crypto/kdfparams/c")),u=parseInt(Tl(e,"crypto/kdfparams/dklen"));return 32!==u&&t("dklen",u),r(o,n,a,u,i)}}return _l.throwArgumentError("unsupported key-derivation function","kdf",s)}var Ll=function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function s(e){try{u(n.next(e))}catch(e){o(e)}}function a(e){try{u(n.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r(function(e){e(t)})).then(s,a)}u((n=n.apply(e,t||[])).next())})};const Ul=new Er("wallet/5.8.0");class Gl extends a{constructor(e,t){if(super(),null!=(r=e)&&Mr(r.privateKey,32)&&null!=r.address){const t=new Ua(e.privateKey);if(yn(this,"_signingKey",()=>t),yn(this,"address",Wa(this.publicKey)),this.address!==Ui(e.address)&&Ul.throwArgumentError("privateKey/address mismatch","privateKey","[REDACTED]"),function(e){const t=e.mnemonic;return t&&t.phrase}(e)){const t=e.mnemonic;yn(this,"_mnemonic",()=>({phrase:t.phrase,path:t.path||pl,locale:t.locale||"en"}));const r=this.mnemonic;Wa(fl.fromMnemonic(r.phrase,null,r.locale).derivePath(r.path).privateKey)!==this.address&&Ul.throwArgumentError("mnemonic/address mismatch","privateKey","[REDACTED]")}else yn(this,"_mnemonic",()=>null)}else{if(Ua.isSigningKey(e))"secp256k1"!==e.curve&&Ul.throwArgumentError("unsupported curve; must be secp256k1","privateKey","[REDACTED]"),yn(this,"_signingKey",()=>e);else{"string"==typeof e&&e.match(/^[0-9a-f]*$/i)&&64===e.length&&(e="0x"+e);const t=new Ua(e);yn(this,"_signingKey",()=>t)}yn(this,"_mnemonic",()=>null),yn(this,"address",Wa(this.publicKey))}var r;t&&!Cn.isProvider(t)&&Ul.throwArgumentError("invalid provider","provider",t),yn(this,"provider",t||null)}get mnemonic(){return this._mnemonic()}get privateKey(){return this._signingKey().privateKey}get publicKey(){return this._signingKey().publicKey}getAddress(){return Promise.resolve(this.address)}connect(e){return new Gl(this,e)}signTransaction(e){return bn(e).then(t=>{null!=t.from&&(Ui(t.from)!==this.address&&Ul.throwArgumentError("transaction from address mismatch","transaction.from",e.from),delete t.from);const r=this._signingKey().signDigest(Kn(tu(t)));return tu(t,r)})}signMessage(e){return Ll(this,void 0,void 0,function*(){return Hr(this._signingKey().signDigest(function(e){return"string"==typeof e&&(e=$n(e)),Kn(_r([$n("Ethereum Signed Message:\n"),$n(String(e.length)),e]))}(e)))})}_signTypedData(e,t,r){return Ll(this,void 0,void 0,function*(){const n=yield to.resolveNames(e,t,r,e=>(null==this.provider&&Ul.throwError("cannot resolve ENS names without a provider",Er.errors.UNSUPPORTED_OPERATION,{operation:"resolveName",value:e}),this.provider.resolveName(e)));return Hr(this._signingKey().signDigest(to.hash(n.domain,t,n.value)))})}encrypt(e,t,r){if("function"!=typeof t||r||(r=t,t={}),r&&"function"!=typeof r)throw new Error("invalid callback");return t||(t={}),function(e,t,r,n){try{if(Ui(e.address)!==Wa(e.privateKey))throw new Error("address/privateKey mismatch");if(Rl(e)){const t=e.mnemonic;if(fl.fromMnemonic(t.phrase,null,t.locale).derivePath(t.path||pl).privateKey!=e.privateKey)throw new Error("mnemonic mismatch")}}catch(e){return Promise.reject(e)}"function"!=typeof r||n||(n=r,r={}),r||(r={});const i=Nr(e.privateKey),o=wl(t);let s=null,a=null,u=null;if(Rl(e)){const t=e.mnemonic;s=Nr(ml(t.phrase,t.locale||"en")),a=t.path||pl,u=t.locale||"en"}let l=r.client;l||(l="ethers.js");let c=null;c=r.salt?Nr(r.salt):zu(32);let d=null;if(r.iv){if(d=Nr(r.iv),16!==d.length)throw new Error("invalid iv")}else d=zu(16);let h=null;if(r.uuid){if(h=Nr(r.uuid),16!==h.length)throw new Error("invalid uuid")}else h=zu(16);let p=1<<17,f=8,m=1;return r.scrypt&&(r.scrypt.N&&(p=r.scrypt.N),r.scrypt.r&&(f=r.scrypt.r),r.scrypt.p&&(m=r.scrypt.p)),Nl.scrypt(o,c,p,f,m,64,n).then(t=>{const r=(t=Nr(t)).slice(0,16),n=t.slice(16,32),o=t.slice(32,64),y=new gl.Counter(d),g=Nr(new gl.ModeOfOperation.ctr(r,y).encrypt(i)),b=Kn(_r([n,g])),v={address:e.address.substring(2).toLowerCase(),id:El(h),version:3,crypto:{cipher:"aes-128-ctr",cipherparams:{iv:Br(d).substring(2)},ciphertext:Br(g).substring(2),kdf:"scrypt",kdfparams:{salt:Br(c).substring(2),n:p,dklen:32,p:m,r:f},mac:b.substring(2)}};if(s){const e=zu(16),t=new gl.Counter(e),r=Nr(new gl.ModeOfOperation.ctr(o,t).encrypt(s)),n=new Date,i=n.getUTCFullYear()+"-"+Al(n.getUTCMonth()+1,2)+"-"+Al(n.getUTCDate(),2)+"T"+Al(n.getUTCHours(),2)+"-"+Al(n.getUTCMinutes(),2)+"-"+Al(n.getUTCSeconds(),2)+".0Z";v["x-ethers"]={client:l,gethFilename:"UTC--"+i+"--"+v.address,mnemonicCounter:Br(e).substring(2),mnemonicCiphertext:Br(r).substring(2),path:a,locale:u,version:"0.1"}}return JSON.stringify(v)})}(this,e,t,r)}static createRandom(e){let t=zu(16);e||(e={}),e.extraEntropy&&(t=Nr(Fr(Kn(_r([t,e.extraEntropy])),0,16)));const r=yl(t,e.locale);return Gl.fromMnemonic(r,e.path,e.locale)}static fromEncryptedJson(e,t,r){return function(e,t,r){if(Pl(e)){r&&r(0);const n=kl(e,t);return r&&r(1),Promise.resolve(n)}return Cl(e)?function(e,t,r){return n=this,o=function*(){const n=JSON.parse(e);return Ol(n,yield Fl(n,t,Dl,Nl.scrypt,r))},new((i=void 0)||(i=Promise))(function(e,t){function r(e){try{a(o.next(e))}catch(e){t(e)}}function s(e){try{a(o.throw(e))}catch(e){t(e)}}function a(t){var n;t.done?e(t.value):(n=t.value,n instanceof i?n:new i(function(e){e(n)})).then(r,s)}a((o=o.apply(n,[])).next())});var n,i,o}(e,t,r):Promise.reject(new Error("invalid JSON wallet"))}(e,t,r).then(e=>new Gl(e))}static fromEncryptedJsonSync(e,t){return new Gl(function(e,t){if(Pl(e))return kl(e,t);if(Cl(e))return function(e,t){const r=JSON.parse(e);return Ol(r,Fl(r,t,Bl,Nl.syncScrypt))}(e,t);throw new Error("invalid JSON wallet")}(e,t))}static fromMnemonic(e,t,r){return t||(t=pl),new Gl(fl.fromMnemonic(e,null,r).derivePath(t))}}function jl(e){return"string"==typeof e?new Gl(e):"request"in e||"send"in e?new Qu(e).getSigner():e}const Hl=function(e,t){try{const r=t.metadata?.hooks?{...e,metadata:{...e.metadata,hooks:{}}}:e,n=t?w(r,t):r;return Promise.resolve(ql(n)).then(function({fullAppData:e,appDataKeccak256:t}){return{fullAppData:e,appDataKeccak256:t,doc:n}})}catch(e){return Promise.reject(e)}},ql=function(e){try{return Promise.resolve(c(e)).then(function(e){return{fullAppData:e,appDataKeccak256:d(h(e))}})}catch(e){return Promise.reject(e)}},Vl=function({slippageBps:e,appCode:t,orderClass:r,partnerFee:n},i){try{return Promise.resolve(zl.generateAppDataDoc(w({appCode:t,metadata:{quote:{slippageBips:e},orderClass:{orderClass:r},partnerFee:n}},i||{}))).then(function(e){return Promise.resolve(ql(e)).then(function({fullAppData:t,appDataKeccak256:r}){return{doc:e,fullAppData:t,appDataKeccak256:r}})})}catch(e){return Promise.reject(e)}},zl=new l,Kl="Order",Wl=[{name:"name",type:"string"},{name:"version",type:"string"},{name:"chainId",type:"uint256"},{name:"verifyingContract",type:"address"}],Jl=1e6,Ql=BigInt(Jl),Yl=10000n;function Xl(e,t){const r=e*BigInt(Math.floor(t*Jl))/Ql;return r/100n+(r%100n>=50n?1n:0n)}const Zl=1e4,$l=50,ec=.5;function tc(e){const{quote:t,tradeParameters:r,trader:n,isEthFlow:i}=e,{sellTokenDecimals:o,buyTokenDecimals:s}=r,{isSell:a,sellAmountBeforeNetworkCosts:u,sellAmountAfterNetworkCosts:l}=It({sellDecimals:o,buyDecimals:s,orderParams:t.quote}),{feeAmount:c}=t.quote,d=function(e){const{feeAmount:t,multiplyingFactorPercent:r}=e;if(t<0n)throw new Error("Fee amount must be non-negative: "+t);if(r<0)throw new Error("multiplyingFactorPercent must be non-negative: "+r);return Xl(t,r)}({feeAmount:BigInt(c),multiplyingFactorPercent:$l}),h=function(e){const{sellAmountBeforeNetworkCosts:t,sellAmountAfterNetworkCosts:r,isSell:n,slippagePercent:i}=e,o=n?r:t;if(o<=0n)throw new Error("sellAmount must be greater than 0: "+o);if(i<0)throw new Error("slippagePercent must be non-negative: "+i);return Xl(o,i)}({isSell:a,sellAmountBeforeNetworkCosts:u,sellAmountAfterNetworkCosts:l,slippagePercent:ec}),p=function(e){const{sellAmountBeforeNetworkCosts:t,sellAmountAfterNetworkCosts:r,slippage:n,isSell:i}=e,o=i?r:t;if(o<=0n)throw new Error("sellAmount must be greater than 0: "+o);if(n<0n)throw new Error("slippage must be non-negative: "+n);return i?Number(Ft-Ft*(o-n)/o)/Number(Ft):Number(Ft*(o+n)/o-Ft)/Number(Ft)}({isSell:a,sellAmountBeforeNetworkCosts:u,sellAmountAfterNetworkCosts:l,slippage:d+h}),f=function(e){const t="bigint"==typeof e?Number(e*Yl):e*Number(Yl);return Math.round(t)}(p);return Math.max(Math.min(f,Zl),Gt(n.chainId,i))}const rc=function(e,t,r){try{const n=jl(e.signer);return Promise.resolve(nc(n,e)).then(function(i){return Promise.resolve(ic(e,i,t,r)).then(function(e){return{result:{...e.result,signer:n},orderBookApi:e.orderBookApi}})})}catch(e){return Promise.reject(e)}},nc=function(e,t){try{function r(e){return{chainId:t.chainId,appCode:t.appCode,account:e}}const n=t.owner;return Promise.resolve(n?r(n):Promise.resolve(e.getAddress()).then(r))}catch(i){return Promise.reject(i)}},ic=function(e,t,r,n){return Promise.resolve(oc(e,t,r,n)).then(function({quote:e,orderBookApi:r,tradeParameters:n,slippageBps:i,suggestedSlippageBps:o,appDataInfo:s,isEthFlow:a}){const{partnerFee:u,sellTokenDecimals:l,buyTokenDecimals:c}=n,{chainId:d,account:h}=t,p=kt({orderParams:e.quote,slippagePercentBps:i,partnerFeeBps:Rt(u),sellDecimals:l,buyDecimals:c}),f=qt({chainId:d,from:h,networkCostsAmount:e.quote.feeAmount,isEthFlow:a},tr(n,e),s.appDataKeccak256);return Promise.resolve(function(e,t){try{return Promise.resolve(_t.getDomain(e)).then(function(e){return{domain:e,primaryType:Kl,types:{[Kl]:T,EIP712Domain:Wl},message:t}})}catch(e){return Promise.reject(e)}}(d,f)).then(function(t){return{result:{tradeParameters:n,suggestedSlippageBps:o,amountsAndCosts:p,orderToSign:f,quoteResponse:e,appDataInfo:s,orderTypedData:t},orderBookApi:r}})})},oc=function(e,t,r,n){try{const{appCode:i,chainId:o,account:s}=t,a=rr(e),u=a?sr(o,e):e,{sellToken:l,buyToken:c,amount:d,kind:h,partnerFee:p,validFor:f=Ht,slippageBps:m,env:y="prod"}=u;Xe(`getQuote for: Swap ${d} ${l} for ${c} on chain ${o} with ${void 0!==m?`${m} BPS`:"AUTO"} slippage`);const g=n||new at({chainId:o,env:y}),b=u.receiver||s,v="sell"===h;Xe("Building app data...");const A=Gt(o,a),w=null!=m?m:A,T={slippageBps:w,orderClass:"market",appCode:i,partnerFee:p};return Promise.resolve(Vl(T,r?.appData)).then(function(n){const{appDataKeccak256:i,fullAppData:o}=n;Xe(`App data: appDataKeccak256=${i} fullAppData=${o}`);const h={from:s,sellToken:l,buyToken:c,receiver:b,validFor:f,appData:o,appDataHash:i,priceQuality:At.OPTIMAL,signingScheme:Tt.EIP712,...a?sc:{},...v?{kind:gt.SELL,sellAmountBeforeFee:d}:{kind:yt.BUY,buyAmountAfterFee:d},...r?.quoteRequest};return Xe("Getting quote..."),Promise.resolve(g.getQuote(h)).then(function(i){let o;function s(t){return o?t:{...c,appDataInfo:n,tradeParameters:e,slippageBps:w}}const l=tc({isEthFlow:a,quote:i,tradeParameters:u,trader:t,advancedSettings:r}),c={isEthFlow:a,quote:i,orderBookApi:g,suggestedSlippageBps:l},d=function(){if(void 0===m)return function(){if(l>A)return Xe(`Suggested slippage is greater than ${A} BPS (default), using the suggested slippage (${l} BPS)`),Promise.resolve(Vl({...T,slippageBps:l},r?.appData)).then(function(t){Xe(`App data with new suggested slippage: appDataKeccak256=${t.appDataKeccak256} fullAppData=${t.fullAppData}`);const r={...c,appDataInfo:t,tradeParameters:{...e,slippageBps:l},slippageBps:l};return o=1,r});Xe(`Suggested slippage is only ${l} BPS. Using the default slippage (${A} BPS)`)}()}();return d&&d.then?d.then(s):s(d)})})}catch(e){return Promise.reject(e)}},sc={signingScheme:Tt.EIP1271,onchainOrder:!0,verificationGasLimit:0},ac=function({orderBookApi:e,result:{signer:t,appDataInfo:r,quoteResponse:n,tradeParameters:i}},o){try{function s(r){const i=u?.metadata?.quote?.slippageBips,s=u?.metadata?.partnerFee;if(void 0!==i&&(a.slippageBps=i),s&&(a.partnerFee=s),o?.quoteRequest){const{receiver:e,validTo:t,sellToken:r,buyToken:n}=o.quoteRequest;e&&(a.receiver=e),t&&(a.validTo=t),r&&(a.sellToken=r),n&&(a.buyToken=n)}return lr(e,t,r,a,{signingScheme:o?.quoteRequest?.signingScheme,networkCostsAmount:n.quote.feeAmount,...o?.additionalParams})}const a=tr(i,n),u=o?.appData;return Promise.resolve(u?Promise.resolve(Hl(r.doc,u)).then(s):s(r))}catch(l){return Promise.reject(l)}},uc=function(e,t,r){try{return Promise.resolve(rc(e,t,r)).then(function(e){return ac(e,t)})}catch(e){return Promise.reject(e)}},lc=function(e,t,r){try{const n=t?.appData?.metadata?.quote?.slippageBips,i=t?.appData?.metadata?.partnerFee;void 0!==n&&(e.slippageBps=n),i&&(e.partnerFee=i),e.slippageBps||(e.slippageBps=0),e.env||(e.env="prod");const{appCode:o,chainId:s,sellToken:a,buyToken:u,sellAmount:l,buyAmount:c,partnerFee:d}=e;Xe(`Limit order ${l} ${a} for ${c} ${u} on chain ${s}`);const h=jl(e.signer),p=r||new at({chainId:s,env:e.env});return Xe("Building app data..."),Promise.resolve(Vl({slippageBps:e.slippageBps,orderClass:"limit",appCode:o,partnerFee:d},t?.appData)).then(function(r){return lr(p,h,r,e,t?.additionalParams)})}catch(e){return Promise.reject(e)}},cc=function(e,t,r,n){try{const i=er.connect(r,e),o=Ge[t],s=i.interface.encodeFunctionData("setPreSignature",[n,!0]);return Promise.resolve(i.estimateGas.setPreSignature(n,!0).then(e=>BigInt(e.toHexString())).catch(()=>xt)).then(function(e){return{data:s,gasLimit:"0x"+nr(e).toString(16),to:o,value:"0"}})}catch(e){return Promise.reject(e)}};class dc{constructor(e={},t={}){this.traderParams=void 0,this.options=void 0,this.traderParams=e,this.options=t,void 0!==t.enableLogging&&Ze(t.enableLogging)}setTraderParams(e){return this.traderParams={...this.traderParams,...e},this}getQuote(e,t){try{const r=this;return Promise.resolve(rc(r.mergeParams(e),t,r.options.orderBookApi)).then(function(t){return{quoteResults:t.result,postSwapOrderFromQuote:function(r,n){try{return Promise.resolve(n?.beforeOrderSign?.()).then(function(){return ac({...t,result:{...t.result,tradeParameters:or({quoteParameters:t.result.tradeParameters,sellToken:e.sellToken})}},r).catch(e=>{throw n?.onOrderSignError?.(),e}).then(e=>(n?.afterOrderSign?.(),e))})}catch(e){return Promise.reject(e)}}}})}catch(e){return Promise.reject(e)}}getQuoteResults(e,t){try{const r=this;return Promise.resolve(rc(r.mergeParams(e),t,r.options.orderBookApi))}catch(e){return Promise.reject(e)}}postSwapOrder(e,t){try{const r=this;return Promise.resolve(uc(r.mergeParams(e),t,r.options.orderBookApi))}catch(e){return Promise.reject(e)}}postLimitOrder(e,t){try{const r=this;return Promise.resolve(lc(r.mergeParams(e),t,r.options.orderBookApi))}catch(e){return Promise.reject(e)}}postSellNativeCurrencyOrder(e,t){try{const r=this;return Promise.resolve(rc(r.mergeParams(e),t,r.options.orderBookApi)).then(function(r){const{tradeParameters:n,quoteResponse:i}=r.result;return ur(r.orderBookApi,r.result.signer,r.result.appDataInfo,tr(or({quoteParameters:n,sellToken:e.sellToken}),i),t?.additionalParams)})}catch(e){return Promise.reject(e)}}getPreSignTransaction(e){try{const t=this.mergeParams(e),r=jl(t.signer);return Promise.resolve(cc(r,t.chainId,e.account,e.orderId))}catch(e){return Promise.reject(e)}}mergeParams(e){const{chainId:t,signer:r,appCode:n,env:i}=e,o={chainId:t||this.traderParams.chainId,signer:r||this.traderParams.signer,appCode:n||this.traderParams.appCode,env:i||this.traderParams.env};return function(e){if(!function(e){return 0===hc(e).length}(e))throw new Error("Missing trader parameters: "+hc(e).join(", "))}(o),{...e,...o}}}function hc(e){const t=[];return e.chainId||t.push("chainId"),e.signer||t.push("signer"),e.appCode||t.push("appCode"),t}const pc=`${ie}/src/bridging/providers`,fc=24e4,mc=36e4,yc="cow-sdk://bridging/providers";function gc(e){return{callData:"0x00",gasLimit:e.toString(),target:"0x0000000000000000000000000000000000000000",dappId:yc}}function bc(e,t){return e.callData===t.callData&&e.gasLimit===t.gasLimit&&e.target===t.target}const vc=new Er("units/5.8.0"),Ac=["wei","kwei","mwei","gwei","szabo","finney","ether"];function wc(e,t){const r=V(e).find(e=>e.dappId?.startsWith(yc));if(!r)return;const n=r.dappId;return t.find(e=>e.info.dappId===n)}const Tc=function(e){try{const{chainId:t,orderId:r,orderBookApi:n,providers:i,env:o}=e,s={chainId:t,env:o};return Promise.resolve(n.getOrder(r,s)).then(function(e){const o=e.fullAppData&&wc(e.fullAppData,i);if(!o)throw new U(`Unknown Bridge provider in order ${e.uid}. Add provider to the SDK config to be able to decode the order`);return Promise.resolve(n.getTrades({orderUid:e.uid},s)).then(function(n){let i;const s=function(){if(n.length>0){const s=n[0],a=s.txHash;if(!a)throw new U(`No tx hash found for order ${r} . First trade, with log index ${s.logIndex}`);return Promise.resolve(o.getBridgingParams(t,r,a)).then(function({params:r,status:n}){if(!r||!n)throw new U(`Bridging params cannot be derived from transaction: ${a}`);const s={provider:o,chainId:t,order:e,statusResult:{status:M.UNKNOWN},bridgingParams:r,tradeTxHash:a};try{const e=o.getExplorerUrl(r.bridgingId),t={...s,statusResult:n,explorerUrl:e};return i=1,t}catch(e){return console.error("Cannot get bridging status",e),i=1,s}})}}();return s&&s.then?s.then(function(e){return i?e:null}):i?s:null})})}catch(e){return Promise.reject(e)}};class Ec{constructor(e){var t,r;this.options=void 0,this.config=void 0,this.options=e;const{providers:n,...i}=e;if(!n||1!==n.length)throw new Error("Current implementation only supports a single bridge provider");void 0!==e.enableLogging&&Ze(e.enableLogging);const o=null!==(t=e.tradingSdk)&&void 0!==t?t:new dc,s=null!==(r=o?.options.orderBookApi)&&void 0!==r?r:new at;this.config={...i,providers:n,tradingSdk:o,orderBookApi:s}}get provider(){const{providers:e}=this.config;return e[0]}getProviders(){return this.config.providers}getSourceNetworks(){return Promise.resolve(Ie)}getTargetNetworks(){try{return Promise.resolve(this.provider.getNetworks())}catch(e){return Promise.reject(e)}}getBuyTokens(e){try{return Promise.resolve(this.provider.getBuyTokens(e))}catch(e){return Promise.reject(e)}}getQuote(e,t){try{const r=this,{sellTokenChainId:n,buyTokenChainId:i}=e,o=r.config.tradingSdk;return Promise.resolve(n!==i?function(e){try{const{provider:t,swapAndBridgeRequest:r,advancedSettings:n,tradingSdk:i,bridgeHookSigner:o}=e,{kind:s,sellTokenChainId:a,sellTokenAddress:u,buyTokenChainId:l,buyTokenAddress:c,amount:d,signer:h,...f}=r,m=jl(h);if(s!==ft.SELL)throw new Error("Bridging only support SELL orders");return Xe(`Cross-chain ${s} ${d} ${u} (source chain ${a}) for ${c} (target chain ${l})`),Promise.resolve(function(e){try{const{provider:t,swapAndBridgeRequest:r}=e;return Promise.resolve(t.getIntermediateTokens(r)).then(function(e){if(0===e.length)throw new F(O.NO_INTERMEDIATE_TOKENS);const t=e[0];return Xe(`Using ${t} as intermediate tokens`),{...r,sellTokenAddress:t.address,sellTokenDecimals:t.decimals}})}catch(e){return Promise.reject(e)}}({swapAndBridgeRequest:r,provider:t})).then(function(e){return Promise.resolve(t.getGasLimitEstimationForHook(e)).then(function(h){const y=gc(h);Xe(`Using mocked hook for swap gas estimation: ${JSON.stringify(y)}`);const{sellTokenAddress:g,sellTokenDecimals:b}=e,v={...f,kind:s,chainId:a,sellToken:u,buyToken:g,buyTokenDecimals:b,amount:d.toString(),signer:m},{signer:A,...w}=v;Xe(`Getting a quote for the swap (sell token to buy intermediate token). Delegate to trading SDK with params: ${JSON.stringify(w,nt)}`);const T=n?.appData?.metadata?.hooks;return Promise.resolve(i.getQuoteResults(v,{...n,appData:{...n?.appData,metadata:{hooks:{pre:T?.pre,post:[...T?.post||[],y]},bridging:{destinationChainId:l.toString(),destinationTokenAddress:c}}}})).then(function({result:n,orderBookApi:i}){const s=function(i,o,s){try{const u=s?.appData,l=s?.quoteRequest?.receiver,c=s?.quoteRequest?.validTo;return Promise.resolve(function(e){try{const{swapResult:t,bridgeRequestWithoutAmount:r,provider:n,intermediateTokenAmount:i,appDataOverride:o}=e,s={...r,amount:i};return Promise.resolve(function(e,{provider:t,signer:r,hookGasLimit:n,swapResult:i,validToOverride:o}){try{return Promise.resolve(t.getQuote(e)).then(function(s){return Promise.resolve(t.getUnsignedBridgeCall(e,s)).then(function(a){const u=BigInt(o||i.orderToSign.validTo),l=p(["bytes","uint256"],[a.data,u]);return Promise.resolve(t.getSignedHook(e.sellTokenChainId,a,r,l,u,n)).then(function(e){return{hook:e,unsignedBridgeCall:a,bridgingQuote:s}})})})}catch(e){return Promise.reject(e)}}(s,e)).then(function({hook:e,unsignedBridgeCall:r,bridgingQuote:i}){return Promise.resolve(Hl(t.appDataInfo.doc,o||{})).then(function(t){const o=t.doc.metadata.hooks,a=(o?.post||[]).filter(e=>!e.dappId?.startsWith(yc));return Promise.resolve(Hl(t.doc,{metadata:{hooks:{pre:o?.pre,post:[...a,e.postHook]}}})).then(function(t){return{bridgeResult:{providerInfo:n.info,tradeParameters:s,bridgeCallDetails:{unsignedBridgeCall:r,preAuthorizedBridgingHook:e},isSell:i.isSell,expectedFillTimeSeconds:i.expectedFillTimeSeconds,fees:i.fees,limits:i.limits,quoteTimestamp:i.quoteTimestamp,amountsAndCosts:i.amountsAndCosts},bridgeHook:e,appDataInfo:t}})})})}catch(e){return Promise.reject(e)}}({swapAndBridgeRequest:{...r,kind:ft.SELL},swapResult:n,bridgeRequestWithoutAmount:{...e,receiver:l||e.receiver},provider:t,intermediateTokenAmount:a,signer:i,appDataOverride:u,validToOverride:c,hookGasLimit:o})).then(function({bridgeHook:e,appDataInfo:{doc:t,fullAppData:r,appDataKeccak256:i},bridgeResult:o}){return Xe(`Bridge hook for swap: ${JSON.stringify(e)}`),n.tradeParameters.receiver=e.recipient,Xe(`App data for swap: appDataKeccak256=${i}, fullAppData="${r}"`),n.appDataInfo={fullAppData:r,appDataKeccak256:i,doc:t},{bridgeResult:o,swapResult:{...n,tradeParameters:{...n.tradeParameters,receiver:e.recipient}}}})}catch(e){return Promise.reject(e)}},a=n.amountsAndCosts.afterSlippage.buyAmount;return Xe(`Expected to receive ${a} of the intermediate token (${function(e,t){if("string"!=typeof e&&vc.throwArgumentError("value must be a string","value",e),"string"==typeof t){const e=Ac.indexOf(t);-1!==e&&(t=3*e)}return ln(e,null!=t?t:18)}(a.toString(),b).toString()})`),Xe(`Using gas limit: ${h}`),Promise.resolve(s(o?jl(o):m,h)).then(function(e){return{swap:e.swapResult,bridge:e.bridgeResult,postSwapOrderFromQuote:function(e,t){try{return Promise.resolve(t?.beforeBridgingSign?.()).then(function(){return Promise.resolve(s(m,h,e).catch(e=>{throw t?.onBridgingSignError?.(),e})).then(function({swapResult:r}){return Promise.resolve(t?.afterBridgingSign?.()).then(function(){const n={result:{...r,tradeParameters:or({quoteParameters:r.tradeParameters,sellToken:u}),signer:m},orderBookApi:i};return Promise.resolve(t?.beforeOrderSign?.()).then(function(){return ac(n,{...e,appData:r.appDataInfo.doc,quoteRequest:{...e?.quoteRequest,receiver:r.tradeParameters.receiver}}).catch(e=>{throw t?.onOrderSignError?.(),e}).then(function(e){try{return Promise.resolve(t?.afterOrderSign?.()).then(function(){return e})}catch(e){return Promise.reject(e)}})})})})})}catch(e){return Promise.reject(e)}}}})})})})}catch(e){return Promise.reject(e)}}({swapAndBridgeRequest:e,advancedSettings:t,tradingSdk:o,provider:r.provider,bridgeHookSigner:t?.quoteSigner}):function(e){const{quoteBridgeRequest:t,advancedSettings:r,tradingSdk:n}=e,{sellTokenAddress:i,buyTokenAddress:o,amount:s,...a}=t,u={...a,chainId:t.sellTokenChainId,sellToken:i,buyToken:o,amount:s.toString()},{signer:l,...c}=u;return Xe(`Single-chain swap: Delegate to trading SDK with params ${JSON.stringify(c,nt)}`),n.getQuote(u,r)}({quoteBridgeRequest:e,advancedSettings:t,tradingSdk:o}))}catch(e){return Promise.reject(e)}}getOrder(e){try{const t=this,{orderBookApi:r}=t.config,{chainId:n,orderId:i,env:o=r.context.env}=e;return Promise.resolve(Tc({chainId:n,orderId:i,orderBookApi:r,env:o,providers:t.config.providers}))}catch(e){return Promise.reject(e)}}getOrderBridgingStatus(e,t){try{return Promise.resolve(this.provider.getStatus(e,t))}catch(e){return Promise.reject(e)}}getProviderFromAppData(e){return wc(e,this.getProviders())}}class Ic{constructor(e={}){this.options=void 0,this.options=e}getAvailableRoutes({originChainId:e,originToken:t,destinationChainId:r,destinationToken:n}){try{const i=this,o={};return e&&(o.originChainId=e),t&&(o.originToken=t),r&&(o.destinationChainId=r),n&&(o.destinationToken=n),Promise.resolve(i.fetchApi("/available-routes",o,Pc))}catch(e){return Promise.reject(e)}}getSuggestedFees(e){try{const t=this,r={token:e.token,originChainId:e.originChainId.toString(),destinationChainId:e.destinationChainId.toString(),amount:e.amount.toString()};return e.recipient&&(r.recipient=e.recipient),Promise.resolve(t.fetchApi("/suggested-fees",r,Sc))}catch(e){return Promise.reject(e)}}getSupportedTokens(){try{return Promise.resolve(this.fetchApi("/token-list",{}).then(e=>e.map(e=>({...e,logoUrl:e.logoURI}))))}catch(e){return Promise.reject(e)}}getDepositStatus(e){try{return Promise.resolve(this.fetchApi("/deposit/status",{originChainId:e.originChainId,depositId:e.depositId}))}catch(e){return Promise.reject(e)}}fetchApi(e,t,r){try{const n=`${this.options.apiBaseUrl||"https://app.across.to/api"}${e}?${new URLSearchParams(t).toString()}`;return Xe(`Fetching Across API: GET ${n}. Params: ${JSON.stringify(t)}`),Promise.resolve(fetch(n,{method:"GET"})).then(function(t){let n;function i(i){return n?i:Promise.resolve(t.json()).then(function(t){if(r){if(r(t))return t;throw new F(O.INVALID_API_JSON_RESPONSE,{path:e,json:t})}return t})}const o=function(){if(!t.ok)return Promise.resolve(t.json()).then(function(e){throw new F(O.API_ERROR,e)})}();return o&&o.then?o.then(i):i(o)})}catch(e){return Promise.reject(e)}}}function Sc(e){return"object"==typeof e&&null!==e&&"totalRelayFee"in e&&kc(e.totalRelayFee)&&"relayerCapitalFee"in e&&kc(e.relayerCapitalFee)&&"relayerGasFee"in e&&kc(e.relayerGasFee)&&"lpFee"in e&&kc(e.lpFee)&&"timestamp"in e&&"isAmountTooLow"in e&&"quoteBlock"in e&&"spokePoolAddress"in e&&"exclusiveRelayer"in e&&"exclusivityDeadline"in e&&"estimatedFillTimeSec"in e&&"fillDeadline"in e&&"limits"in e&&"object"==typeof(t=e.limits)&&null!==t&&"minDeposit"in t&&"maxDeposit"in t&&"maxDepositInstant"in t&&"maxDepositShortDelay"in t&&"recommendedDepositInstant"in t;var t}function kc(e){return"object"==typeof e&&null!==e&&"pct"in e&&"total"in e}function Pc(e){return!!Array.isArray(e)&&e.every(e=>function(e){return"object"==typeof e&&null!==e&&"originChainId"in e&&"originToken"in e&&"destinationChainId"in e&&"destinationToken"in e&&"originTokenSymbol"in e&&"destinationTokenSymbol"in e}(e))}const Cc=new f(["event FundsDeposited(bytes32 inputToken, bytes32 outputToken, uint256 inputAmount, uint256 outputAmount, uint256 indexed destinationChainId, uint256 indexed depositId, uint32 quoteTimestamp, uint32 fillDeadline, uint32 exclusivityDeadline, bytes32 indexed depositor, bytes32 recipient, bytes32 exclusiveRelayer, bytes message)"]),xc=new f(["event Trade(address owner, address sellToken, address buyToken, uint256 sellAmount, uint256 buyAmount, uint256 feeAmount, bytes orderUid)"]);[{chainId:B.MAINNET,tokens:{usdc:"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",weth:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",wbtc:"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599",dai:"0x6B175474E89094C44Da98b954EedeAC495271d0F",usdt:"0xdAC17F958D2ee523a2206206994597C13D831ec7"}},{chainId:B.POLYGON,tokens:{usdc:"0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",weth:"0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619",wbtc:"0x1BFD67037B42Cf73acF2047067bd4F2C47D9BfD6",dai:"0x8f3Cf7ad23Cd3CaDbD9735AFf958023239c6A063",usdt:"0xc2132D05D31c914a87C6611C10748AEb04B58e8F"}},{chainId:B.ARBITRUM_ONE,tokens:{usdc:"0xaf88d065e77c8cC2239327C5EDb3A432268e5831",weth:"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",wbtc:"0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f",dai:"0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1",usdt:"0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9"}},{chainId:B.BASE,tokens:{usdc:"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",weth:"0x4200000000000000000000000000000000000006",dai:"0x50c5725949A6F0c72E6C4a641F24049A917DB0Cb"}},{chainId:D.OPTIMISM,tokens:{usdc:"0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85",weth:"0x4200000000000000000000000000000000000006",wbtc:"0x68f180fcCe6836688e9084f035309E29Bf0A2095",dai:"0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1",usdt:"0x94b008aA00579c1307B0EF2c499aD98a8ce58e58"}}].reduce((e,t)=>(e[t.chainId]=t,e),{});const Nc=Cc.getEventTopic("FundsDeposited"),_c=xc.getEventTopic("Trade"),Rc={[B.MAINNET]:"0x5c7BCd6E7De5423a257D81B442095A1a6ced35C5",[B.ARBITRUM_ONE]:"0xe35e9842fceaca96570b734083f4a58e8f7c5f2a",[B.BASE]:"0x09aea4b2242abC8bb4BB78D537A67a245A7bEC64",[B.SEPOLIA]:"0x5ef6C01E11889d86803e0B23e3cB3F9E9d97B662",[B.POLYGON]:"0x9295ee1d8C5b022Be115A2AD3c30C72E34e7F096",[B.GNOSIS_CHAIN]:void 0,[B.AVALANCHE]:void 0,[D.OPTIMISM]:void 0},Mc={[B.MAINNET]:"0xf2ae6728b6f146556977Af0A68bFbf5bADA22863",[B.ARBITRUM_ONE]:"0x5771A4b4029832e79a75De7B485E5fBbec28848f",[B.BASE]:"0xd4e943dc6ddc885f6229ce33c2e3dfe402a12c81",[B.GNOSIS_CHAIN]:void 0,[B.SEPOLIA]:void 0,[B.POLYGON]:void 0,[D.OPTIMISM]:void 0,[B.AVALANCHE]:void 0},Oc=10n**18n;function Bc(e,t,r){const{amount:n,sellTokenDecimals:i,buyTokenDecimals:o}=e,s=Pt(n,i),a=s.big,u=Pt(s.num,o).big,l=BigInt(r.totalRelayFee.pct),c=Lc(u,l),d=a-Lc(a,l),h=u-c,p=function(e,t){return e*BigInt(1e4-t)/10000n}(c,t);return{beforeFee:{sellAmount:a,buyAmount:u},afterFee:{sellAmount:a,buyAmount:c},afterSlippage:{sellAmount:a,buyAmount:p},costs:{bridgingFee:{feeBps:(f=l,Fc(f),Number(10000n*f/Oc)),amountInSellCurrency:d,amountInBuyCurrency:h}},slippageBps:t};var f}function Dc(e){return m.decode(["address"],e).toString()}function Fc(e){if(e>Oc||e<0n)throw new Error("Fee cannot exceed 100% or be negative")}function Lc(e,t){return Fc(t),e*(Oc-t)/Oc}const Uc={filled:M.EXECUTED,slowFillRequested:M.EXECUTED,pending:M.IN_PROGRESS,expired:M.EXPIRED,refunded:M.REFUND};let Gc;function jc(e,t,r){if(!e.s){if(r instanceof Hc){if(!r.s)return void(r.o=jc.bind(null,e,t));1&t&&(t=r.s),r=r.v}if(r&&r.then)return void r.then(jc.bind(null,e,t),jc.bind(null,e,2));e.s=t,e.v=r;const n=e.o;n&&n(e)}}const Hc=/*#__PURE__*/function(){function e(){}return e.prototype.then=function(t,r){const n=new e,i=this.s;if(i){const e=1&i?t:r;if(e){try{jc(n,1,e(this.v))}catch(e){jc(n,2,e)}return n}return this}return this.o=function(e){try{const i=e.v;1&e.s?jc(n,1,t?t(i):i):r?jc(n,1,r(i)):jc(n,2,i)}catch(e){jc(n,2,e)}},n},e}(),qc={ExecuteHooks:[{type:"Call[]",name:"calls"},{type:"bytes32",name:"nonce"},{type:"uint256",name:"deadline"}],Call:[{type:"address",name:"target"},{type:"uint256",name:"value"},{type:"bytes",name:"callData"},{type:"bool",name:"allowFailure"},{type:"bool",name:"isDelegateCall"}]};class Vc{constructor(e,t,r=De){this.chainId=void 0,this.customOptions=void 0,this.version=void 0,this.chainId=e,this.customOptions=t,this.version=r}proxyOf(e){const t=m.encode(["address"],[e]),r=p(["bytes","bytes"],[this.proxyCreationCode(),m.encode(["address","address"],[this.getImplementationAddress(),e])]);return y(this.getFactoryAddress(),t,r)}encodeExecuteHooksForFactory(e,t,r,n,i){return(Gc||(Gc=Kt.createInterface()),Gc).encodeFunctionData("executeHooks",[e,t,r,n,i])}signCalls(e,t,r,n,i){try{const o=this;return Promise.resolve(n.getAddress()).then(function(s){const a=o.proxyOf(s),{domain:u,types:l,message:c}=o.infoToSign(e,t,r,a);return Promise.resolve(function(e,t,r,n,i){try{let o,s;function a(e){return o?e:g(b(u))}let u=null;const l=function(e,t){var r,n=-1;e:{for(var i=0;i<t.length;i++){var o=t[i][0];if(o){var s=o();if(s&&s.then)break e;if(s===e){n=i;break}}else n=i}if(-1!==n){do{for(var a=t[n][1];!a;)n++,a=t[n][1];var u=a();if(u&&u.then){r=!0;break e}var l=t[n][2];n++}while(l&&!l());return u}}const c=new Hc,d=jc.bind(null,c,2);return(r?u.then(h):s.then(function r(s){for(;;){if(s===e){n=i;break}if(++i===t.length){if(-1!==n)break;return void jc(c,1,u)}if(o=t[i][0]){if((s=o())&&s.then)return void s.then(r).then(void 0,d)}else n=i}do{for(var a=t[n][1];!a;)n++,a=t[n][1];var u=a();if(u&&u.then)return void u.then(h).then(void 0,d);var l=t[n][2];n++}while(l&&!l());jc(c,1,u)})).then(void 0,d),c;function h(e){for(;;){var r=t[n][2];if(!r||r())break;n++;for(var i=t[n][1];!i;)n++,i=t[n][1];if((e=i())&&e.then)return void e.then(h).then(void 0,d)}jc(c,1,e)}}(e,[[function(){return I.EIP712},function(){if(!S(t))throw new Error("signer does not support signing typed data");return Promise.resolve(t._signTypedData(r,n,i)).then(function(e){u=e,s=1})}],[function(){return I.ETHSIGN},function(){return Promise.resolve(t.signMessage(v(k(r,n,i)))).then(function(e){u=e,s=1})}],[void 0,function(){throw new Error("invalid signing scheme")}]]);return Promise.resolve(l&&l.then?l.then(a):a(l))}catch(c){return Promise.reject(c)}}(i,n,u,l,c))})}catch(e){return Promise.reject(e)}}infoToSign(e,t,r,n){const i={calls:e,nonce:t,deadline:r};return{domain:this.getDomain(n),types:qc,message:i}}getDomain(e){return{name:"COWShed",version:this.version,chainId:this.chainId,verifyingContract:e}}proxyCreationCode(){var e;return null!==(e=this.customOptions?.proxyCreationCode)&&void 0!==e?e:Ue[this.version]}getFactoryAddress(){var e;return null!==(e=this.customOptions?.factoryAddress)&&void 0!==e?e:Fe[this.version]}getImplementationAddress(){var e;return null!==(e=this.customOptions?.implementationAddress)&&void 0!==e?e:Le[this.version]}}const zc=qn.toBigInt();class Kc{constructor(e={},t=De){this.options=void 0,this.version=void 0,this.hooksCache=new Map,this.options=e,this.version=t}getCowShedAccount(e,t){return this.getCowShedHooks(e,this.options?.factoryOptions).proxyOf(t)}signCalls({calls:e,signer:t,chainId:r,nonce:n=Kc.getNonce(),deadline:i=zc,gasLimit:o,defaultGasLimit:s,signingScheme:a=I.EIP712}){try{const u=this,l=u.getCowShedHooks(r),c=t||u.options?.signer;if(!c)throw new Error("Signer is required");const d=jl(c);return Promise.resolve(d.getAddress()).then(function(t){const r=l.proxyOf(t);return Promise.resolve(l.signCalls(e,n,i,d,a)).then(function(a){function u(e){return{cowShedAccount:r,signedMulticall:h,gasLimit:BigInt(e.toString())}}const c=l.encodeExecuteHooksForFactory(e,n,i,t,a),h={to:l.getFactoryAddress(),data:c,value:BigInt(0)};return o?u(o):Promise.resolve(d.estimateGas(h).catch(e=>{const t=`Error estimating gas for the cow-shed call: ${JSON.stringify(h,nt,2)}. Review the factory call`;if(s)return Xe(`${t}, using the default gas limit.`),s;throw new Error(`${t}, or provide the defaultGasLimit parameter.`,{cause:e})})).then(u)})})}catch(e){return Promise.reject(e)}}getCowShedHooks(e,t){let r=this.hooksCache.get(e);return r||(r=new Vc(e,t),this.hooksCache.set(e,r),r)}static getNonce(){return A(Date.now().toString())}}const Wc="abi/5.8.0",Jc=new Er(Wc),Qc={};let Yc={calldata:!0,memory:!0,storage:!0},Xc={calldata:!0,memory:!0};function Zc(e,t){if("bytes"===e||"string"===e){if(Yc[t])return!0}else if("address"===e){if("payable"===t)return!0}else if((e.indexOf("[")>=0||"tuple"===e)&&Xc[t])return!0;return(Yc[t]||"payable"===t)&&Jc.throwArgumentError("invalid modifier","name",t),!1}function $c(e,t){for(let r in t)yn(e,r,t[r])}const ed=Object.freeze({sighash:"sighash",minimal:"minimal",full:"full",json:"json"}),td=new RegExp(/^(.*)\[([0-9]*)\]$/);class rd{constructor(e,t){e!==Qc&&Jc.throwError("use fromString",Er.errors.UNSUPPORTED_OPERATION,{operation:"new ParamType()"}),$c(this,t);let r=this.type.match(td);$c(this,r?{arrayLength:parseInt(r[2]||"-1"),arrayChildren:rd.fromObject({type:r[1],components:this.components}),baseType:"array"}:{arrayLength:null,arrayChildren:null,baseType:null!=this.components?"tuple":this.type}),this._isParamType=!0,Object.freeze(this)}format(e){if(e||(e=ed.sighash),ed[e]||Jc.throwArgumentError("invalid format type","format",e),e===ed.json){let t={type:"tuple"===this.baseType?"tuple":this.type,name:this.name||void 0};return"boolean"==typeof this.indexed&&(t.indexed=this.indexed),this.components&&(t.components=this.components.map(t=>JSON.parse(t.format(e)))),JSON.stringify(t)}let t="";return"array"===this.baseType?(t+=this.arrayChildren.format(e),t+="["+(this.arrayLength<0?"":String(this.arrayLength))+"]"):"tuple"===this.baseType?(e!==ed.sighash&&(t+=this.type),t+="("+this.components.map(t=>t.format(e)).join(e===ed.full?", ":",")+")"):t+=this.type,e!==ed.sighash&&(!0===this.indexed&&(t+=" indexed"),e===ed.full&&this.name&&(t+=" "+this.name)),t}static from(e,t){return"string"==typeof e?rd.fromString(e,t):rd.fromObject(e)}static fromObject(e){return rd.isParamType(e)?e:new rd(Qc,{name:e.name||null,type:pd(e.type),indexed:null==e.indexed?null:!!e.indexed,components:e.components?e.components.map(rd.fromObject):null})}static fromString(e,t){return r=function(e,t){let r=e;function n(t){Jc.throwArgumentError(`unexpected character at position ${t}`,"param",e)}function i(e){let r={type:"",name:"",parent:e,state:{allowType:!0}};return t&&(r.indexed=!1),r}e=e.replace(/\s/g," ");let o={type:"",name:"",state:{allowType:!0}},s=o;for(let r=0;r<e.length;r++){let o=e[r];switch(o){case"(":s.state.allowType&&""===s.type?s.type="tuple":s.state.allowParams||n(r),s.state.allowType=!1,s.type=pd(s.type),s.components=[i(s)],s=s.components[0];break;case")":delete s.state,"indexed"===s.name&&(t||n(r),s.indexed=!0,s.name=""),Zc(s.type,s.name)&&(s.name=""),s.type=pd(s.type);let e=s;s=s.parent,s||n(r),delete e.parent,s.state.allowParams=!1,s.state.allowName=!0,s.state.allowArray=!0;break;case",":delete s.state,"indexed"===s.name&&(t||n(r),s.indexed=!0,s.name=""),Zc(s.type,s.name)&&(s.name=""),s.type=pd(s.type);let a=i(s.parent);s.parent.components.push(a),delete s.parent,s=a;break;case" ":s.state.allowType&&""!==s.type&&(s.type=pd(s.type),delete s.state.allowType,s.state.allowName=!0,s.state.allowParams=!0),s.state.allowName&&""!==s.name&&("indexed"===s.name?(t||n(r),s.indexed&&n(r),s.indexed=!0,s.name=""):Zc(s.type,s.name)?s.name="":s.state.allowName=!1);break;case"[":s.state.allowArray||n(r),s.type+=o,s.state.allowArray=!1,s.state.allowName=!1,s.state.readArray=!0;break;case"]":s.state.readArray||n(r),s.type+=o,s.state.readArray=!1,s.state.allowArray=!0,s.state.allowName=!0;break;default:s.state.allowType?(s.type+=o,s.state.allowParams=!0,s.state.allowArray=!0):s.state.allowName?(s.name+=o,delete s.state.allowArray):s.state.readArray?s.type+=o:n(r)}}return s.parent&&Jc.throwArgumentError("unexpected eof","param",e),delete o.state,"indexed"===s.name?(t||n(r.length-7),s.indexed&&n(r.length-7),s.indexed=!0,s.name=""):Zc(s.type,s.name)&&(s.name=""),o.type=pd(o.type),o}(e,!!t),rd.fromObject({name:r.name,type:r.type,indexed:r.indexed,components:r.components});var r}static isParamType(e){return!(null==e||!e._isParamType)}}function nd(e,t){return function(e){e=e.trim();let t=[],r="",n=0;for(let i=0;i<e.length;i++){let o=e[i];","===o&&0===n?(t.push(r),r=""):(r+=o,"("===o?n++:")"===o&&(n--,-1===n&&Jc.throwArgumentError("unbalanced parenthesis","value",e)))}return r&&t.push(r),t}(e).map(e=>rd.fromString(e,t))}class id{constructor(e,t){e!==Qc&&Jc.throwError("use a static from method",Er.errors.UNSUPPORTED_OPERATION,{operation:"new Fragment()"}),$c(this,t),this._isFragment=!0,Object.freeze(this)}static from(e){return id.isFragment(e)?e:"string"==typeof e?id.fromString(e):id.fromObject(e)}static fromObject(e){if(id.isFragment(e))return e;switch(e.type){case"function":return cd.fromObject(e);case"event":return od.fromObject(e);case"constructor":return ld.fromObject(e);case"error":return hd.fromObject(e);case"fallback":case"receive":return null}return Jc.throwArgumentError("invalid fragment object","value",e)}static fromString(e){return"event"===(e=(e=(e=e.replace(/\s/g," ")).replace(/\(/g," (").replace(/\)/g,") ").replace(/\s+/g," ")).trim()).split(" ")[0]?od.fromString(e.substring(5).trim()):"function"===e.split(" ")[0]?cd.fromString(e.substring(8).trim()):"constructor"===e.split("(")[0].trim()?ld.fromString(e.trim()):"error"===e.split(" ")[0]?hd.fromString(e.substring(5).trim()):Jc.throwArgumentError("unsupported fragment","value",e)}static isFragment(e){return!(!e||!e._isFragment)}}class od extends id{format(e){if(e||(e=ed.sighash),ed[e]||Jc.throwArgumentError("invalid format type","format",e),e===ed.json)return JSON.stringify({type:"event",anonymous:this.anonymous,name:this.name,inputs:this.inputs.map(t=>JSON.parse(t.format(e)))});let t="";return e!==ed.sighash&&(t+="event "),t+=this.name+"("+this.inputs.map(t=>t.format(e)).join(e===ed.full?", ":",")+") ",e!==ed.sighash&&this.anonymous&&(t+="anonymous "),t.trim()}static from(e){return"string"==typeof e?od.fromString(e):od.fromObject(e)}static fromObject(e){if(od.isEventFragment(e))return e;"event"!==e.type&&Jc.throwArgumentError("invalid event object","value",e);const t={name:md(e.name),anonymous:e.anonymous,inputs:e.inputs?e.inputs.map(rd.fromObject):[],type:"event"};return new od(Qc,t)}static fromString(e){let t=e.match(yd);t||Jc.throwArgumentError("invalid event string","value",e);let r=!1;return t[3].split(" ").forEach(e=>{switch(e.trim()){case"anonymous":r=!0;break;case"":break;default:Jc.warn("unknown modifier: "+e)}}),od.fromObject({name:t[1].trim(),anonymous:r,inputs:nd(t[2],!0),type:"event"})}static isEventFragment(e){return e&&e._isFragment&&"event"===e.type}}function sd(e,t){t.gas=null;let r=e.split("@");return 1!==r.length?(r.length>2&&Jc.throwArgumentError("invalid human-readable ABI signature","value",e),r[1].match(/^[0-9]+$/)||Jc.throwArgumentError("invalid human-readable ABI signature gas","value",e),t.gas=Qr.from(r[1]),r[0]):e}function ad(e,t){t.constant=!1,t.payable=!1,t.stateMutability="nonpayable",e.split(" ").forEach(e=>{switch(e.trim()){case"constant":t.constant=!0;break;case"payable":t.payable=!0,t.stateMutability="payable";break;case"nonpayable":t.payable=!1,t.stateMutability="nonpayable";break;case"pure":t.constant=!0,t.stateMutability="pure";break;case"view":t.constant=!0,t.stateMutability="view";break;case"external":case"public":case"":break;default:console.log("unknown modifier: "+e)}})}function ud(e){let t={constant:!1,payable:!0,stateMutability:"payable"};return null!=e.stateMutability?(t.stateMutability=e.stateMutability,t.constant="view"===t.stateMutability||"pure"===t.stateMutability,null!=e.constant&&!!e.constant!==t.constant&&Jc.throwArgumentError("cannot have constant function with mutability "+t.stateMutability,"value",e),t.payable="payable"===t.stateMutability,null!=e.payable&&!!e.payable!==t.payable&&Jc.throwArgumentError("cannot have payable function with mutability "+t.stateMutability,"value",e)):null!=e.payable?(t.payable=!!e.payable,null!=e.constant||t.payable||"constructor"===e.type||Jc.throwArgumentError("unable to determine stateMutability","value",e),t.constant=!!e.constant,t.stateMutability=t.constant?"view":t.payable?"payable":"nonpayable",t.payable&&t.constant&&Jc.throwArgumentError("cannot have constant payable function","value",e)):null!=e.constant?(t.constant=!!e.constant,t.payable=!t.constant,t.stateMutability=t.constant?"view":"payable"):"constructor"!==e.type&&Jc.throwArgumentError("unable to determine stateMutability","value",e),t}class ld extends id{format(e){if(e||(e=ed.sighash),ed[e]||Jc.throwArgumentError("invalid format type","format",e),e===ed.json)return JSON.stringify({type:"constructor",stateMutability:"nonpayable"!==this.stateMutability?this.stateMutability:void 0,payable:this.payable,gas:this.gas?this.gas.toNumber():void 0,inputs:this.inputs.map(t=>JSON.parse(t.format(e)))});e===ed.sighash&&Jc.throwError("cannot format a constructor for sighash",Er.errors.UNSUPPORTED_OPERATION,{operation:"format(sighash)"});let t="constructor("+this.inputs.map(t=>t.format(e)).join(e===ed.full?", ":",")+") ";return this.stateMutability&&"nonpayable"!==this.stateMutability&&(t+=this.stateMutability+" "),t.trim()}static from(e){return"string"==typeof e?ld.fromString(e):ld.fromObject(e)}static fromObject(e){if(ld.isConstructorFragment(e))return e;"constructor"!==e.type&&Jc.throwArgumentError("invalid constructor object","value",e);let t=ud(e);t.constant&&Jc.throwArgumentError("constructor cannot be constant","value",e);const r={name:null,type:e.type,inputs:e.inputs?e.inputs.map(rd.fromObject):[],payable:t.payable,stateMutability:t.stateMutability,gas:e.gas?Qr.from(e.gas):null};return new ld(Qc,r)}static fromString(e){let t={type:"constructor"},r=(e=sd(e,t)).match(yd);return r&&"constructor"===r[1].trim()||Jc.throwArgumentError("invalid constructor string","value",e),t.inputs=nd(r[2].trim(),!1),ad(r[3].trim(),t),ld.fromObject(t)}static isConstructorFragment(e){return e&&e._isFragment&&"constructor"===e.type}}class cd extends ld{format(e){if(e||(e=ed.sighash),ed[e]||Jc.throwArgumentError("invalid format type","format",e),e===ed.json)return JSON.stringify({type:"function",name:this.name,constant:this.constant,stateMutability:"nonpayable"!==this.stateMutability?this.stateMutability:void 0,payable:this.payable,gas:this.gas?this.gas.toNumber():void 0,inputs:this.inputs.map(t=>JSON.parse(t.format(e))),outputs:this.outputs.map(t=>JSON.parse(t.format(e)))});let t="";return e!==ed.sighash&&(t+="function "),t+=this.name+"("+this.inputs.map(t=>t.format(e)).join(e===ed.full?", ":",")+") ",e!==ed.sighash&&(this.stateMutability?"nonpayable"!==this.stateMutability&&(t+=this.stateMutability+" "):this.constant&&(t+="view "),this.outputs&&this.outputs.length&&(t+="returns ("+this.outputs.map(t=>t.format(e)).join(", ")+") "),null!=this.gas&&(t+="@"+this.gas.toString()+" ")),t.trim()}static from(e){return"string"==typeof e?cd.fromString(e):cd.fromObject(e)}static fromObject(e){if(cd.isFunctionFragment(e))return e;"function"!==e.type&&Jc.throwArgumentError("invalid function object","value",e);let t=ud(e);const r={type:e.type,name:md(e.name),constant:t.constant,inputs:e.inputs?e.inputs.map(rd.fromObject):[],outputs:e.outputs?e.outputs.map(rd.fromObject):[],payable:t.payable,stateMutability:t.stateMutability,gas:e.gas?Qr.from(e.gas):null};return new cd(Qc,r)}static fromString(e){let t={type:"function"},r=(e=sd(e,t)).split(" returns ");r.length>2&&Jc.throwArgumentError("invalid function string","value",e);let n=r[0].match(yd);if(n||Jc.throwArgumentError("invalid function signature","value",e),t.name=n[1].trim(),t.name&&md(t.name),t.inputs=nd(n[2],!1),ad(n[3].trim(),t),r.length>1){let n=r[1].match(yd);""==n[1].trim()&&""==n[3].trim()||Jc.throwArgumentError("unexpected tokens","value",e),t.outputs=nd(n[2],!1)}else t.outputs=[];return cd.fromObject(t)}static isFunctionFragment(e){return e&&e._isFragment&&"function"===e.type}}function dd(e){const t=e.format();return"Error(string)"!==t&&"Panic(uint256)"!==t||Jc.throwArgumentError(`cannot specify user defined ${t} error`,"fragment",e),e}class hd extends id{format(e){if(e||(e=ed.sighash),ed[e]||Jc.throwArgumentError("invalid format type","format",e),e===ed.json)return JSON.stringify({type:"error",name:this.name,inputs:this.inputs.map(t=>JSON.parse(t.format(e)))});let t="";return e!==ed.sighash&&(t+="error "),t+=this.name+"("+this.inputs.map(t=>t.format(e)).join(e===ed.full?", ":",")+") ",t.trim()}static from(e){return"string"==typeof e?hd.fromString(e):hd.fromObject(e)}static fromObject(e){if(hd.isErrorFragment(e))return e;"error"!==e.type&&Jc.throwArgumentError("invalid error object","value",e);const t={type:e.type,name:md(e.name),inputs:e.inputs?e.inputs.map(rd.fromObject):[]};return dd(new hd(Qc,t))}static fromString(e){let t={type:"error"},r=e.match(yd);return r||Jc.throwArgumentError("invalid error signature","value",e),t.name=r[1].trim(),t.name&&md(t.name),t.inputs=nd(r[2],!1),dd(hd.fromObject(t))}static isErrorFragment(e){return e&&e._isFragment&&"error"===e.type}}function pd(e){return e.match(/^uint($|[^1-9])/)?e="uint256"+e.substring(4):e.match(/^int($|[^1-9])/)&&(e="int256"+e.substring(3)),e}const fd=new RegExp("^[a-zA-Z$_][a-zA-Z0-9$_]*$");function md(e){return e&&e.match(fd)||Jc.throwArgumentError(`invalid identifier "${e}"`,"value",e),e}const yd=new RegExp("^([^)(]*)\\((.*)\\)([^)(]*)$"),gd=new Er(Wc);class bd{constructor(e,t,r,n){this.name=e,this.type=t,this.localName=r,this.dynamic=n}_throwError(e,t){gd.throwArgumentError(e,this.localName,t)}}class vd{constructor(e){yn(this,"wordSize",e||32),this._data=[],this._dataLength=0,this._padding=new Uint8Array(e)}get data(){return Lr(this._data)}get length(){return this._dataLength}_writeData(e){return this._data.push(e),this._dataLength+=e.length,e.length}appendWriter(e){return this._writeData(_r(e._data))}writeBytes(e){let t=Nr(e);const r=t.length%this.wordSize;return r&&(t=_r([t,this._padding.slice(r)])),this._writeData(t)}_getValue(e){let t=Nr(Qr.from(e));return t.length>this.wordSize&&gd.throwError("value out-of-bounds",Er.errors.BUFFER_OVERRUN,{length:this.wordSize,offset:t.length}),t.length%this.wordSize&&(t=_r([this._padding.slice(t.length%this.wordSize),t])),t}writeValue(e){return this._writeData(this._getValue(e))}writeUpdatableValue(){const e=this._data.length;return this._data.push(this._padding),this._dataLength+=this.wordSize,t=>{this._data[e]=this._getValue(t)}}}class Ad{constructor(e,t,r,n){yn(this,"_data",Nr(e)),yn(this,"wordSize",t||32),yn(this,"_coerceFunc",r),yn(this,"allowLoose",n),this._offset=0}get data(){return Br(this._data)}get consumed(){return this._offset}static coerce(e,t){let r=e.match("^u?int([0-9]+)$");return r&&parseInt(r[1])<=48&&(t=t.toNumber()),t}coerce(e,t){return this._coerceFunc?this._coerceFunc(e,t):Ad.coerce(e,t)}_peekBytes(e,t,r){let n=Math.ceil(t/this.wordSize)*this.wordSize;return this._offset+n>this._data.length&&(this.allowLoose&&r&&this._offset+t<=this._data.length?n=t:gd.throwError("data out-of-bounds",Er.errors.BUFFER_OVERRUN,{length:this._data.length,offset:this._offset+n})),this._data.slice(this._offset,this._offset+n)}subReader(e){return new Ad(this._data.slice(this._offset+e),this.wordSize,this._coerceFunc,this.allowLoose)}readBytes(e,t){let r=this._peekBytes(0,e,!!t);return this._offset+=r.length,r.slice(0,e)}readValue(){return Qr.from(this.readBytes(this.wordSize))}}class wd extends bd{constructor(e){super("address","address",e,!1)}defaultValue(){return"0x0000000000000000000000000000000000000000"}encode(e,t){try{t=Ui(t)}catch(e){this._throwError(e.message,t)}return e.writeValue(t)}decode(e){return Ui(Gr(e.readValue().toHexString(),20))}}class Td extends bd{constructor(e){super(e.name,e.type,void 0,e.dynamic),this.coder=e}defaultValue(){return this.coder.defaultValue()}encode(e,t){return this.coder.encode(e,t)}decode(e){return this.coder.decode(e)}}const Ed=new Er(Wc);function Id(e,t,r){let n=null;if(Array.isArray(r))n=r;else if(r&&"object"==typeof r){let e={};n=t.map(t=>{const n=t.localName;return n||Ed.throwError("cannot encode object for signature with missing names",Er.errors.INVALID_ARGUMENT,{argument:"values",coder:t,value:r}),e[n]&&Ed.throwError("cannot encode object for signature with duplicate names",Er.errors.INVALID_ARGUMENT,{argument:"values",coder:t,value:r}),e[n]=!0,r[n]})}else Ed.throwArgumentError("invalid tuple value","tuple",r);t.length!==n.length&&Ed.throwArgumentError("types/value length mismatch","tuple",r);let i=new vd(e.wordSize),o=new vd(e.wordSize),s=[];t.forEach((e,t)=>{let r=n[t];if(e.dynamic){let t=o.length;e.encode(o,r);let n=i.writeUpdatableValue();s.push(e=>{n(e+t)})}else e.encode(i,r)}),s.forEach(e=>{e(i.length)});let a=e.appendWriter(i);return a+=e.appendWriter(o),a}function Sd(e,t){let r=[],n=e.subReader(0);t.forEach(t=>{let i=null;if(t.dynamic){let r=e.readValue(),o=n.subReader(r.toNumber());try{i=t.decode(o)}catch(e){if(e.code===Er.errors.BUFFER_OVERRUN)throw e;i=e,i.baseType=t.name,i.name=t.localName,i.type=t.type}}else try{i=t.decode(e)}catch(e){if(e.code===Er.errors.BUFFER_OVERRUN)throw e;i=e,i.baseType=t.name,i.name=t.localName,i.type=t.type}null!=i&&r.push(i)});const i=t.reduce((e,t)=>{const r=t.localName;return r&&(e[r]||(e[r]=0),e[r]++),e},{});t.forEach((e,t)=>{let n=e.localName;if(!n||1!==i[n])return;if("length"===n&&(n="_length"),null!=r[n])return;const o=r[t];o instanceof Error?Object.defineProperty(r,n,{enumerable:!0,get:()=>{throw o}}):r[n]=o});for(let e=0;e<r.length;e++){const t=r[e];t instanceof Error&&Object.defineProperty(r,e,{enumerable:!0,get:()=>{throw t}})}return Object.freeze(r)}class kd extends bd{constructor(e,t,r){super("array",e.type+"["+(t>=0?t:"")+"]",r,-1===t||e.dynamic),this.coder=e,this.length=t}defaultValue(){const e=this.coder.defaultValue(),t=[];for(let r=0;r<this.length;r++)t.push(e);return t}encode(e,t){Array.isArray(t)||this._throwError("expected array value",t);let r=this.length;-1===r&&(r=t.length,e.writeValue(t.length)),Ed.checkArgumentCount(t.length,r,"coder array"+(this.localName?" "+this.localName:""));let n=[];for(let e=0;e<t.length;e++)n.push(this.coder);return Id(e,n,t)}decode(e){let t=this.length;-1===t&&(t=e.readValue().toNumber(),32*t>e._data.length&&Ed.throwError("insufficient data length",Er.errors.BUFFER_OVERRUN,{length:e._data.length,count:t}));let r=[];for(let e=0;e<t;e++)r.push(new Td(this.coder));return e.coerce(this.name,Sd(e,r))}}class Pd extends bd{constructor(e){super("bool","bool",e,!1)}defaultValue(){return!1}encode(e,t){return e.writeValue(t?1:0)}decode(e){return e.coerce(this.type,!e.readValue().isZero())}}class Cd extends bd{constructor(e,t){super(e,e,t,!0)}defaultValue(){return"0x"}encode(e,t){t=Nr(t);let r=e.writeValue(t.length);return r+=e.writeBytes(t),r}decode(e){return e.readBytes(e.readValue().toNumber(),!0)}}class xd extends Cd{constructor(e){super("bytes",e)}decode(e){return e.coerce(this.name,Br(super.decode(e)))}}class Nd extends bd{constructor(e,t){let r="bytes"+String(e);super(r,r,t,!1),this.size=e}defaultValue(){return"0x0000000000000000000000000000000000000000000000000000000000000000".substring(0,2+2*this.size)}encode(e,t){let r=Nr(t);return r.length!==this.size&&this._throwError("incorrect data length",t),e.writeBytes(r)}decode(e){return e.coerce(this.name,Br(e.readBytes(this.size)))}}class _d extends bd{constructor(e){super("null","",e,!1)}defaultValue(){return null}encode(e,t){return null!=t&&this._throwError("not null",t),e.writeBytes([])}decode(e){return e.readBytes(0),e.coerce(this.name,null)}}class Rd extends bd{constructor(e,t,r){const n=(t?"int":"uint")+8*e;super(n,n,r,!1),this.size=e,this.signed=t}defaultValue(){return 0}encode(e,t){let r=Qr.from(t),n=qn.mask(8*e.wordSize);if(this.signed){let e=n.mask(8*this.size-1);(r.gt(e)||r.lt(e.add(Hn).mul(Gn)))&&this._throwError("value out-of-bounds",t)}else(r.lt(jn)||r.gt(n.mask(8*this.size)))&&this._throwError("value out-of-bounds",t);return r=r.toTwos(8*this.size).mask(8*this.size),this.signed&&(r=r.fromTwos(8*this.size).toTwos(8*e.wordSize)),e.writeValue(r)}decode(e){let t=e.readValue().mask(8*this.size);return this.signed&&(t=t.fromTwos(8*this.size)),e.coerce(this.name,t)}}class Md extends Cd{constructor(e){super("string",e)}defaultValue(){return""}encode(e,t){return super.encode(e,$n(t))}decode(e){return ei(super.decode(e))}}class Od extends bd{constructor(e,t){let r=!1;const n=[];e.forEach(e=>{e.dynamic&&(r=!0),n.push(e.type)}),super("tuple","tuple("+n.join(",")+")",t,r),this.coders=e}defaultValue(){const e=[];this.coders.forEach(t=>{e.push(t.defaultValue())});const t=this.coders.reduce((e,t)=>{const r=t.localName;return r&&(e[r]||(e[r]=0),e[r]++),e},{});return this.coders.forEach((r,n)=>{let i=r.localName;i&&1===t[i]&&("length"===i&&(i="_length"),null==e[i]&&(e[i]=e[n]))}),Object.freeze(e)}encode(e,t){return Id(e,this.coders,t)}decode(e){return e.coerce(this.name,Sd(e,this.coders))}}const Bd=new Er(Wc),Dd=new RegExp(/^bytes([0-9]*)$/),Fd=new RegExp(/^(u?int)([0-9]*)$/),Ld=new class{constructor(e){yn(this,"coerceFunc",e||null)}_getCoder(e){switch(e.baseType){case"address":return new wd(e.name);case"bool":return new Pd(e.name);case"string":return new Md(e.name);case"bytes":return new xd(e.name);case"array":return new kd(this._getCoder(e.arrayChildren),e.arrayLength,e.name);case"tuple":return new Od((e.components||[]).map(e=>this._getCoder(e)),e.name);case"":return new _d(e.name)}let t=e.type.match(Fd);if(t){let r=parseInt(t[2]||"256");return(0===r||r>256||r%8!=0)&&Bd.throwArgumentError("invalid "+t[1]+" bit length","param",e),new Rd(r/8,"int"===t[1],e.name)}if(t=e.type.match(Dd),t){let r=parseInt(t[1]);return(0===r||r>32)&&Bd.throwArgumentError("invalid bytes length","param",e),new Nd(r,e.name)}return Bd.throwArgumentError("invalid type","type",e.type)}_getWordSize(){return 32}_getReader(e,t){return new Ad(e,this._getWordSize(),this.coerceFunc,t)}_getWriter(){return new vd(this._getWordSize())}getDefaultValue(e){const t=e.map(e=>this._getCoder(rd.from(e)));return new Od(t,"_").defaultValue()}encode(e,t){e.length!==t.length&&Bd.throwError("types/values length mismatch",Er.errors.INVALID_ARGUMENT,{count:{types:e.length,values:t.length},value:{types:e,values:t}});const r=e.map(e=>this._getCoder(rd.from(e))),n=new Od(r,"_"),i=this._getWriter();return n.encode(i,t),i.data}decode(e,t,r){const n=e.map(e=>this._getCoder(rd.from(e)));return new Od(n,"_").decode(this._getReader(Nr(t),r))}},Ud=new Er(Wc);class Gd extends Sn{}class jd extends Sn{}class Hd extends Sn{}class qd extends Sn{static isIndexed(e){return!(!e||!e._isIndexed)}}const Vd={"0x08c379a0":{signature:"Error(string)",name:"Error",inputs:["string"],reason:!0},"0x4e487b71":{signature:"Panic(uint256)",name:"Panic",inputs:["uint256"]}};function zd(e,t){const r=new Error(`deferred error during ABI decoding triggered accessing ${e}`);return r.error=t,r}class Kd{constructor(e){let t=[];t="string"==typeof e?JSON.parse(e):e,yn(this,"fragments",t.map(e=>id.from(e)).filter(e=>null!=e)),yn(this,"_abiCoder",gn(new.target,"getAbiCoder")()),yn(this,"functions",{}),yn(this,"errors",{}),yn(this,"events",{}),yn(this,"structs",{}),this.fragments.forEach(e=>{let t=null;switch(e.type){case"constructor":return this.deploy?void Ud.warn("duplicate definition - constructor"):void yn(this,"deploy",e);case"function":t=this.functions;break;case"event":t=this.events;break;case"error":t=this.errors;break;default:return}let r=e.format();t[r]?Ud.warn("duplicate definition - "+r):t[r]=e}),this.deploy||yn(this,"deploy",ld.from({payable:!1,type:"constructor"})),yn(this,"_isInterface",!0)}format(e){e||(e=ed.full),e===ed.sighash&&Ud.throwArgumentError("interface does not support formatting sighash","format",e);const t=this.fragments.map(t=>t.format(e));return e===ed.json?JSON.stringify(t.map(e=>JSON.parse(e))):t}static getAbiCoder(){return Ld}static getAddress(e){return Ui(e)}static getSighash(e){return Fr(ti(e.format()),0,4)}static getEventTopic(e){return ti(e.format())}getFunction(e){if(Mr(e)){for(const t in this.functions)if(e===this.getSighash(t))return this.functions[t];Ud.throwArgumentError("no matching function","sighash",e)}if(-1===e.indexOf("(")){const t=e.trim(),r=Object.keys(this.functions).filter(e=>e.split("(")[0]===t);return 0===r.length?Ud.throwArgumentError("no matching function","name",t):r.length>1&&Ud.throwArgumentError("multiple matching functions","name",t),this.functions[r[0]]}const t=this.functions[cd.fromString(e).format()];return t||Ud.throwArgumentError("no matching function","signature",e),t}getEvent(e){if(Mr(e)){const t=e.toLowerCase();for(const e in this.events)if(t===this.getEventTopic(e))return this.events[e];Ud.throwArgumentError("no matching event","topichash",t)}if(-1===e.indexOf("(")){const t=e.trim(),r=Object.keys(this.events).filter(e=>e.split("(")[0]===t);return 0===r.length?Ud.throwArgumentError("no matching event","name",t):r.length>1&&Ud.throwArgumentError("multiple matching events","name",t),this.events[r[0]]}const t=this.events[od.fromString(e).format()];return t||Ud.throwArgumentError("no matching event","signature",e),t}getError(e){if(Mr(e)){const t=gn(this.constructor,"getSighash");for(const r in this.errors)if(e===t(this.errors[r]))return this.errors[r];Ud.throwArgumentError("no matching error","sighash",e)}if(-1===e.indexOf("(")){const t=e.trim(),r=Object.keys(this.errors).filter(e=>e.split("(")[0]===t);return 0===r.length?Ud.throwArgumentError("no matching error","name",t):r.length>1&&Ud.throwArgumentError("multiple matching errors","name",t),this.errors[r[0]]}const t=this.errors[cd.fromString(e).format()];return t||Ud.throwArgumentError("no matching error","signature",e),t}getSighash(e){if("string"==typeof e)try{e=this.getFunction(e)}catch(t){try{e=this.getError(e)}catch(e){throw t}}return gn(this.constructor,"getSighash")(e)}getEventTopic(e){return"string"==typeof e&&(e=this.getEvent(e)),gn(this.constructor,"getEventTopic")(e)}_decodeParams(e,t){return this._abiCoder.decode(e,t)}_encodeParams(e,t){return this._abiCoder.encode(e,t)}encodeDeploy(e){return this._encodeParams(this.deploy.inputs,e||[])}decodeErrorResult(e,t){"string"==typeof e&&(e=this.getError(e));const r=Nr(t);return Br(r.slice(0,4))!==this.getSighash(e)&&Ud.throwArgumentError(`data signature does not match error ${e.name}.`,"data",Br(r)),this._decodeParams(e.inputs,r.slice(4))}encodeErrorResult(e,t){return"string"==typeof e&&(e=this.getError(e)),Br(_r([this.getSighash(e),this._encodeParams(e.inputs,t||[])]))}decodeFunctionData(e,t){"string"==typeof e&&(e=this.getFunction(e));const r=Nr(t);return Br(r.slice(0,4))!==this.getSighash(e)&&Ud.throwArgumentError(`data signature does not match function ${e.name}.`,"data",Br(r)),this._decodeParams(e.inputs,r.slice(4))}encodeFunctionData(e,t){return"string"==typeof e&&(e=this.getFunction(e)),Br(_r([this.getSighash(e),this._encodeParams(e.inputs,t||[])]))}decodeFunctionResult(e,t){"string"==typeof e&&(e=this.getFunction(e));let r=Nr(t),n=null,i="",o=null,s=null,a=null;switch(r.length%this._abiCoder._getWordSize()){case 0:try{return this._abiCoder.decode(e.outputs,r)}catch(e){}break;case 4:{const e=Br(r.slice(0,4)),t=Vd[e];if(t)o=this._abiCoder.decode(t.inputs,r.slice(4)),s=t.name,a=t.signature,t.reason&&(n=o[0]),"Error"===s?i=`; VM Exception while processing transaction: reverted with reason string ${JSON.stringify(o[0])}`:"Panic"===s&&(i=`; VM Exception while processing transaction: reverted with panic code ${o[0]}`);else try{const t=this.getError(e);o=this._abiCoder.decode(t.inputs,r.slice(4)),s=t.name,a=t.format()}catch(e){}break}}return Ud.throwError("call revert exception"+i,Er.errors.CALL_EXCEPTION,{method:e.format(),data:Br(t),errorArgs:o,errorName:s,errorSignature:a,reason:n})}encodeFunctionResult(e,t){return"string"==typeof e&&(e=this.getFunction(e)),Br(this._abiCoder.encode(e.outputs,t||[]))}encodeFilterTopics(e,t){"string"==typeof e&&(e=this.getEvent(e)),t.length>e.inputs.length&&Ud.throwError("too many arguments for "+e.format(),Er.errors.UNEXPECTED_ARGUMENT,{argument:"values",value:t});let r=[];e.anonymous||r.push(this.getEventTopic(e));const n=(e,t)=>"string"===e.type?ti(t):"bytes"===e.type?Kn(Br(t)):("bool"===e.type&&"boolean"==typeof t&&(t=t?"0x01":"0x00"),e.type.match(/^u?int/)&&(t=Qr.from(t).toHexString()),"address"===e.type&&this._abiCoder.encode(["address"],[t]),Gr(Br(t),32));for(t.forEach((t,i)=>{let o=e.inputs[i];o.indexed?null==t?r.push(null):"array"===o.baseType||"tuple"===o.baseType?Ud.throwArgumentError("filtering with tuples or arrays not supported","contract."+o.name,t):Array.isArray(t)?r.push(t.map(e=>n(o,e))):r.push(n(o,t)):null!=t&&Ud.throwArgumentError("cannot filter non-indexed parameters; must be null","contract."+o.name,t)});r.length&&null===r[r.length-1];)r.pop();return r}encodeEventLog(e,t){"string"==typeof e&&(e=this.getEvent(e));const r=[],n=[],i=[];return e.anonymous||r.push(this.getEventTopic(e)),t.length!==e.inputs.length&&Ud.throwArgumentError("event arguments/values mismatch","values",t),e.inputs.forEach((e,o)=>{const s=t[o];if(e.indexed)if("string"===e.type)r.push(ti(s));else if("bytes"===e.type)r.push(Kn(s));else{if("tuple"===e.baseType||"array"===e.baseType)throw new Error("not implemented");r.push(this._abiCoder.encode([e.type],[s]))}else n.push(e),i.push(s)}),{data:this._abiCoder.encode(n,i),topics:r}}decodeEventLog(e,t,r){if("string"==typeof e&&(e=this.getEvent(e)),null!=r&&!e.anonymous){let t=this.getEventTopic(e);Mr(r[0],32)&&r[0].toLowerCase()===t||Ud.throwError("fragment/topic mismatch",Er.errors.INVALID_ARGUMENT,{argument:"topics[0]",expected:t,value:r[0]}),r=r.slice(1)}let n=[],i=[],o=[];e.inputs.forEach((e,t)=>{e.indexed?"string"===e.type||"bytes"===e.type||"tuple"===e.baseType||"array"===e.baseType?(n.push(rd.fromObject({type:"bytes32",name:e.name})),o.push(!0)):(n.push(e),o.push(!1)):(i.push(e),o.push(!1))});let s=null!=r?this._abiCoder.decode(n,_r(r)):null,a=this._abiCoder.decode(i,t,!0),u=[],l=0,c=0;e.inputs.forEach((e,t)=>{if(e.indexed)if(null==s)u[t]=new qd({_isIndexed:!0,hash:null});else if(o[t])u[t]=new qd({_isIndexed:!0,hash:s[c++]});else try{u[t]=s[c++]}catch(e){u[t]=e}else try{u[t]=a[l++]}catch(e){u[t]=e}if(e.name&&null==u[e.name]){const r=u[t];r instanceof Error?Object.defineProperty(u,e.name,{enumerable:!0,get:()=>{throw zd(`property ${JSON.stringify(e.name)}`,r)}}):u[e.name]=r}});for(let e=0;e<u.length;e++){const t=u[e];t instanceof Error&&Object.defineProperty(u,e,{enumerable:!0,get:()=>{throw zd(`index ${e}`,t)}})}return Object.freeze(u)}parseTransaction(e){let t=this.getFunction(e.data.substring(0,10).toLowerCase());return t?new jd({args:this._abiCoder.decode(t.inputs,"0x"+e.data.substring(10)),functionFragment:t,name:t.name,signature:t.format(),sighash:this.getSighash(t),value:Qr.from(e.value||"0")}):null}parseLog(e){let t=this.getEvent(e.topics[0]);return!t||t.anonymous?null:new Gd({eventFragment:t,name:t.name,signature:t.format(),topic:this.getEventTopic(t),args:this.decodeEventLog(t,e.data,e.topics)})}parseError(e){const t=Br(e);let r=this.getError(t.substring(0,10).toLowerCase());return r?new Hd({args:this._abiCoder.decode(r.inputs,"0x"+t.substring(10)),errorFragment:r,name:r.name,signature:r.format(),sighash:this.getSighash(r)}):null}static isInterface(e){return!(!e||!e._isInterface)}}var Wd=function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function s(e){try{u(n.next(e))}catch(e){o(e)}}function a(e){try{u(n.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r(function(e){e(t)})).then(s,a)}u((n=n.apply(e,t||[])).next())})};const Jd=new Er("contracts/5.8.0");function Qd(e,t){return Wd(this,void 0,void 0,function*(){const r=yield t;"string"!=typeof r&&Jd.throwArgumentError("invalid address or ENS name","name",r);try{return Ui(r)}catch(e){}e||Jd.throwError("a provider or signer is needed to resolve ENS names",Er.errors.UNSUPPORTED_OPERATION,{operation:"resolveName"});const n=yield e.resolveName(r);return null==n&&Jd.throwArgumentError("resolver or addr is not configured for ENS name","name",r),n})}function Yd(e,t,r){return Wd(this,void 0,void 0,function*(){return Array.isArray(r)?yield Promise.all(r.map((r,n)=>Yd(e,Array.isArray(t)?t[n]:t[r.name],r))):"address"===r.type?yield Qd(e,t):"tuple"===r.type?yield Yd(e,t,r.components):"array"===r.baseType?Array.isArray(t)?yield Promise.all(t.map(t=>Yd(e,t,r.arrayChildren))):Promise.reject(Jd.makeError("invalid value for array",Er.errors.INVALID_ARGUMENT,{argument:"value",value:t})):t})}function Xd(e,t,r){return Wd(this,void 0,void 0,function*(){let n={};r.length===t.inputs.length+1&&"object"==typeof r[r.length-1]&&(n=An(r.pop())),Jd.checkArgumentCount(r.length,t.inputs.length,"passed to contract"),e.signer?n.from=n.from?bn({override:Qd(e.signer,n.from),signer:e.signer.getAddress()}).then(e=>Wd(this,void 0,void 0,function*(){return Ui(e.signer)!==e.override&&Jd.throwError("Contract with a Signer cannot override from",Er.errors.UNSUPPORTED_OPERATION,{operation:"overrides.from"}),e.override})):e.signer.getAddress():n.from&&(n.from=Qd(e.provider,n.from));const i=yield bn({args:Yd(e.signer||e.provider,r,t.inputs),address:e.resolvedAddress,overrides:bn(n)||{}}),o=e.interface.encodeFunctionData(t,i.args),s={data:o,to:i.address},a=i.overrides;if(null!=a.nonce&&(s.nonce=Qr.from(a.nonce).toNumber()),null!=a.gasLimit&&(s.gasLimit=Qr.from(a.gasLimit)),null!=a.gasPrice&&(s.gasPrice=Qr.from(a.gasPrice)),null!=a.maxFeePerGas&&(s.maxFeePerGas=Qr.from(a.maxFeePerGas)),null!=a.maxPriorityFeePerGas&&(s.maxPriorityFeePerGas=Qr.from(a.maxPriorityFeePerGas)),null!=a.from&&(s.from=a.from),null!=a.type&&(s.type=a.type),null!=a.accessList&&(s.accessList=Xa(a.accessList)),null==s.gasLimit&&null!=t.gas){let e=21e3;const r=Nr(o);for(let t=0;t<r.length;t++)e+=4,r[t]&&(e+=64);s.gasLimit=Qr.from(t.gas).add(e)}if(a.value){const e=Qr.from(a.value);e.isZero()||t.payable||Jd.throwError("non-payable method cannot override value",Er.errors.UNSUPPORTED_OPERATION,{operation:"overrides.value",value:n.value}),s.value=e}a.customData&&(s.customData=An(a.customData)),a.ccipReadEnabled&&(s.ccipReadEnabled=!!a.ccipReadEnabled),delete n.nonce,delete n.gasLimit,delete n.gasPrice,delete n.from,delete n.value,delete n.type,delete n.accessList,delete n.maxFeePerGas,delete n.maxPriorityFeePerGas,delete n.customData,delete n.ccipReadEnabled;const u=Object.keys(n).filter(e=>null!=n[e]);return u.length&&Jd.throwError(`cannot override ${u.map(e=>JSON.stringify(e)).join(",")}`,Er.errors.UNSUPPORTED_OPERATION,{operation:"overrides",overrides:u}),s})}function Zd(e,t,r){const n=e.signer||e.provider;return function(...i){return Wd(this,void 0,void 0,function*(){let o;if(i.length===t.inputs.length+1&&"object"==typeof i[i.length-1]){const e=An(i.pop());null!=e.blockTag&&(o=yield e.blockTag),delete e.blockTag,i.push(e)}null!=e.deployTransaction&&(yield e._deployed(o));const s=yield Xd(e,t,i),a=yield n.call(s,o);try{let n=e.interface.decodeFunctionResult(t,a);return r&&1===t.outputs.length&&(n=n[0]),n}catch(t){throw t.code===Er.errors.CALL_EXCEPTION&&(t.address=e.address,t.args=i,t.transaction=s),t}})}}function $d(e,t,r){return t.constant?Zd(e,t,r):function(e,t){return function(...r){return Wd(this,void 0,void 0,function*(){e.signer||Jd.throwError("sending a transaction requires a signer",Er.errors.UNSUPPORTED_OPERATION,{operation:"sendTransaction"}),null!=e.deployTransaction&&(yield e._deployed());const n=yield Xd(e,t,r),i=yield e.signer.sendTransaction(n);return function(e,t){const r=t.wait.bind(t);t.wait=t=>r(t).then(t=>(t.events=t.logs.map(r=>{let n=In(r),i=null;try{i=e.interface.parseLog(r)}catch(e){}return i&&(n.args=i.args,n.decode=(t,r)=>e.interface.decodeEventLog(i.eventFragment,t,r),n.event=i.name,n.eventSignature=i.signature),n.removeListener=()=>e.provider,n.getBlock=()=>e.provider.getBlock(t.blockHash),n.getTransaction=()=>e.provider.getTransaction(t.transactionHash),n.getTransactionReceipt=()=>Promise.resolve(t),n}),t))}(e,i),i})}}(e,t)}function eh(e){return!e.address||null!=e.topics&&0!==e.topics.length?(e.address||"*")+"@"+(e.topics?e.topics.map(e=>Array.isArray(e)?e.join("|"):e).join(":"):""):"*"}class th{constructor(e,t){yn(this,"tag",e),yn(this,"filter",t),this._listeners=[]}addListener(e,t){this._listeners.push({listener:e,once:t})}removeListener(e){let t=!1;this._listeners=this._listeners.filter(r=>!(!t&&r.listener===e&&(t=!0,1)))}removeAllListeners(){this._listeners=[]}listeners(){return this._listeners.map(e=>e.listener)}listenerCount(){return this._listeners.length}run(e){const t=this.listenerCount();return this._listeners=this._listeners.filter(t=>{const r=e.slice();return setTimeout(()=>{t.listener.apply(this,r)},0),!t.once}),t}prepareEvent(e){}getEmit(e){return[e]}}class rh extends th{constructor(){super("error",null)}}class nh extends th{constructor(e,t,r,n){const i={address:e};let o=t.getEventTopic(r);n?(o!==n[0]&&Jd.throwArgumentError("topic mismatch","topics",n),i.topics=n.slice()):i.topics=[o],super(eh(i),i),yn(this,"address",e),yn(this,"interface",t),yn(this,"fragment",r)}prepareEvent(e){super.prepareEvent(e),e.event=this.fragment.name,e.eventSignature=this.fragment.format(),e.decode=(e,t)=>this.interface.decodeEventLog(this.fragment,e,t);try{e.args=this.interface.decodeEventLog(this.fragment,e.data,e.topics)}catch(t){e.args=null,e.decodeError=t}}getEmit(e){const t=function(e){const t=[],r=function(e,n){if(Array.isArray(n))for(let i in n){const o=e.slice();o.push(i);try{r(o,n[i])}catch(e){t.push({path:o,error:e})}}};return r([],e),t}(e.args);if(t.length)throw t[0].error;const r=(e.args||[]).slice();return r.push(e),r}}class ih extends th{constructor(e,t){super("*",{address:e}),yn(this,"address",e),yn(this,"interface",t)}prepareEvent(e){super.prepareEvent(e);try{const t=this.interface.parseLog(e);e.event=t.name,e.eventSignature=t.signature,e.decode=(e,r)=>this.interface.decodeEventLog(t.eventFragment,e,r),e.args=t.args}catch(e){}}}class oh{constructor(e,t,r){yn(this,"interface",gn(new.target,"getInterface")(t)),null==r?(yn(this,"provider",null),yn(this,"signer",null)):a.isSigner(r)?(yn(this,"provider",r.provider||null),yn(this,"signer",r)):Cn.isProvider(r)?(yn(this,"provider",r),yn(this,"signer",null)):Jd.throwArgumentError("invalid signer or provider","signerOrProvider",r),yn(this,"callStatic",{}),yn(this,"estimateGas",{}),yn(this,"functions",{}),yn(this,"populateTransaction",{}),yn(this,"filters",{});{const e={};Object.keys(this.interface.events).forEach(t=>{const r=this.interface.events[t];yn(this.filters,t,(...e)=>({address:this.address,topics:this.interface.encodeFilterTopics(r,e)})),e[r.name]||(e[r.name]=[]),e[r.name].push(t)}),Object.keys(e).forEach(t=>{const r=e[t];1===r.length?yn(this.filters,t,this.filters[r[0]]):Jd.warn(`Duplicate definition of ${t} (${r.join(", ")})`)})}if(yn(this,"_runningEvents",{}),yn(this,"_wrappedEmits",{}),null==e&&Jd.throwArgumentError("invalid contract address or ENS name","addressOrName",e),yn(this,"address",e),this.provider)yn(this,"resolvedAddress",Qd(this.provider,e));else try{yn(this,"resolvedAddress",Promise.resolve(Ui(e)))}catch(e){Jd.throwError("provider is required to use ENS name as contract address",Er.errors.UNSUPPORTED_OPERATION,{operation:"new Contract"})}this.resolvedAddress.catch(e=>{});const n={},i={};Object.keys(this.interface.functions).forEach(e=>{const t=this.interface.functions[e];if(i[e])Jd.warn(`Duplicate ABI entry for ${JSON.stringify(e)}`);else{i[e]=!0;{const r=t.name;n[`%${r}`]||(n[`%${r}`]=[]),n[`%${r}`].push(e)}null==this[e]&&yn(this,e,$d(this,t,!0)),null==this.functions[e]&&yn(this.functions,e,$d(this,t,!1)),null==this.callStatic[e]&&yn(this.callStatic,e,Zd(this,t,!0)),null==this.populateTransaction[e]&&yn(this.populateTransaction,e,function(e,t){return function(...r){return Xd(e,t,r)}}(this,t)),null==this.estimateGas[e]&&yn(this.estimateGas,e,function(e,t){const r=e.signer||e.provider;return function(...n){return Wd(this,void 0,void 0,function*(){r||Jd.throwError("estimate require a provider or signer",Er.errors.UNSUPPORTED_OPERATION,{operation:"estimateGas"});const i=yield Xd(e,t,n);return yield r.estimateGas(i)})}}(this,t))}}),Object.keys(n).forEach(e=>{const t=n[e];if(t.length>1)return;e=e.substring(1);const r=t[0];try{null==this[e]&&yn(this,e,this[r])}catch(e){}null==this.functions[e]&&yn(this.functions,e,this.functions[r]),null==this.callStatic[e]&&yn(this.callStatic,e,this.callStatic[r]),null==this.populateTransaction[e]&&yn(this.populateTransaction,e,this.populateTransaction[r]),null==this.estimateGas[e]&&yn(this.estimateGas,e,this.estimateGas[r])})}static getContractAddress(e){return Gi(e)}static getInterface(e){return Kd.isInterface(e)?e:new Kd(e)}deployed(){return this._deployed()}_deployed(e){return this._deployedPromise||(this._deployedPromise=this.deployTransaction?this.deployTransaction.wait().then(()=>this):this.provider.getCode(this.address,e).then(e=>("0x"===e&&Jd.throwError("contract not deployed",Er.errors.UNSUPPORTED_OPERATION,{contractAddress:this.address,operation:"getDeployed"}),this))),this._deployedPromise}fallback(e){this.signer||Jd.throwError("sending a transactions require a signer",Er.errors.UNSUPPORTED_OPERATION,{operation:"sendTransaction(fallback)"});const t=An(e||{});return["from","to"].forEach(function(e){null!=t[e]&&Jd.throwError("cannot override "+e,Er.errors.UNSUPPORTED_OPERATION,{operation:e})}),t.to=this.resolvedAddress,this.deployed().then(()=>this.signer.sendTransaction(t))}connect(e){"string"==typeof e&&(e=new u(e,this.provider));const t=new this.constructor(this.address,this.interface,e);return this.deployTransaction&&yn(t,"deployTransaction",this.deployTransaction),t}attach(e){return new this.constructor(e,this.interface,this.signer||this.provider)}static isIndexed(e){return qd.isIndexed(e)}_normalizeRunningEvent(e){return this._runningEvents[e.tag]?this._runningEvents[e.tag]:e}_getRunningEvent(e){if("string"==typeof e){if("error"===e)return this._normalizeRunningEvent(new rh);if("event"===e)return this._normalizeRunningEvent(new th("event",null));if("*"===e)return this._normalizeRunningEvent(new ih(this.address,this.interface));const t=this.interface.getEvent(e);return this._normalizeRunningEvent(new nh(this.address,this.interface,t))}if(e.topics&&e.topics.length>0){try{const t=e.topics[0];if("string"!=typeof t)throw new Error("invalid topic");const r=this.interface.getEvent(t);return this._normalizeRunningEvent(new nh(this.address,this.interface,r,e.topics))}catch(e){}const t={address:this.address,topics:e.topics};return this._normalizeRunningEvent(new th(eh(t),t))}return this._normalizeRunningEvent(new ih(this.address,this.interface))}_checkRunningEvents(e){if(0===e.listenerCount()){delete this._runningEvents[e.tag];const t=this._wrappedEmits[e.tag];t&&e.filter&&(this.provider.off(e.filter,t),delete this._wrappedEmits[e.tag])}}_wrapEvent(e,t,r){const n=In(t);return n.removeListener=()=>{r&&(e.removeListener(r),this._checkRunningEvents(e))},n.getBlock=()=>this.provider.getBlock(t.blockHash),n.getTransaction=()=>this.provider.getTransaction(t.transactionHash),n.getTransactionReceipt=()=>this.provider.getTransactionReceipt(t.transactionHash),e.prepareEvent(n),n}_addEventListener(e,t,r){if(this.provider||Jd.throwError("events require a provider or a signer with a provider",Er.errors.UNSUPPORTED_OPERATION,{operation:"once"}),e.addListener(t,r),this._runningEvents[e.tag]=e,!this._wrappedEmits[e.tag]){const r=r=>{let n=this._wrapEvent(e,r,t);if(null==n.decodeError)try{const t=e.getEmit(n);this.emit(e.filter,...t)}catch(e){n.decodeError=e.error}null!=e.filter&&this.emit("event",n),null!=n.decodeError&&this.emit("error",n.decodeError,n)};this._wrappedEmits[e.tag]=r,null!=e.filter&&this.provider.on(e.filter,r)}}queryFilter(e,t,r){const n=this._getRunningEvent(e),i=An(n.filter);return"string"==typeof t&&Mr(t,32)?(null!=r&&Jd.throwArgumentError("cannot specify toBlock with blockhash","toBlock",r),i.blockHash=t):(i.fromBlock=null!=t?t:0,i.toBlock=null!=r?r:"latest"),this.provider.getLogs(i).then(e=>e.map(e=>this._wrapEvent(n,e,null)))}on(e,t){return this._addEventListener(this._getRunningEvent(e),t,!1),this}once(e,t){return this._addEventListener(this._getRunningEvent(e),t,!0),this}emit(e,...t){if(!this.provider)return!1;const r=this._getRunningEvent(e),n=r.run(t)>0;return this._checkRunningEvents(r),n}listenerCount(e){return this.provider?null==e?Object.keys(this._runningEvents).reduce((e,t)=>e+this._runningEvents[t].listenerCount(),0):this._getRunningEvent(e).listenerCount():0}listeners(e){if(!this.provider)return[];if(null==e){const e=[];for(let t in this._runningEvents)this._runningEvents[t].listeners().forEach(t=>{e.push(t)});return e}return this._getRunningEvent(e).listeners()}removeAllListeners(e){if(!this.provider)return this;if(null==e){for(const e in this._runningEvents){const t=this._runningEvents[e];t.removeAllListeners(),this._checkRunningEvents(t)}return this}const t=this._getRunningEvent(e);return t.removeAllListeners(),this._checkRunningEvents(t),this}off(e,t){if(!this.provider)return this;const r=this._getRunningEvent(e);return r.removeListener(t),this._checkRunningEvents(r),this}removeListener(e,t){return this.off(e,t)}}class sh extends oh{}var ah;!function(e){e[e.DELEGATECALL=0]="DELEGATECALL",e[e.CALL=1]="CALL",e[e.STATICCALL=2]="STATICCALL",e[e.CALL_WITH_VALUE=3]="CALL_WITH_VALUE",e[e.CALLTYPE_MASK=3]="CALLTYPE_MASK",e[e.EXTENDED_COMMAND=64]="EXTENDED_COMMAND",e[e.TUPLE_RETURN=128]="TUPLE_RETURN"}(ah||(ah={}));const uh="0x9585c3062Df1C247d5E373Cfca9167F7dC2b5963",lh=[{inputs:[{internalType:"uint256",name:"command_index",type:"uint256"},{internalType:"address",name:"target",type:"address"},{internalType:"string",name:"message",type:"string"}],name:"ExecutionFailed",type:"error"},{inputs:[{internalType:"bytes32[]",name:"commands",type:"bytes32[]"},{internalType:"bytes[]",name:"state",type:"bytes[]"}],name:"execute",outputs:[{internalType:"bytes[]",name:"",type:"bytes[]"}],stateMutability:"payable",type:"function"}];function ch(e){const t=e.plan(),{commands:r,state:n}=t;return new Kd(lh).encodeFunctionData("execute",[r,n])}function dh(e){const t=new C;return e(t),{to:uh,value:BigInt(0),data:ch(t)}}function hh(e,t){return x.createContract(e,t)}function ph(e){return x.createLibrary(e)}const fh=[{inputs:[{internalType:"uint256",name:"_a",type:"uint256"},{internalType:"uint256",name:"_b",type:"uint256"}],name:"multiplyAndSubtract",outputs:[{internalType:"uint256",name:"result",type:"uint256"}],stateMutability:"pure",type:"function"}],mh=[{inputs:[{internalType:"address",name:"_wrappedNativeTokenAddress",type:"address"},{internalType:"uint32",name:"_depositQuoteTimeBuffer",type:"uint32"},{internalType:"uint32",name:"_fillDeadlineBuffer",type:"uint32"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"ClaimedMerkleLeaf",type:"error"},{inputs:[],name:"DepositsArePaused",type:"error"},{inputs:[],name:"DisabledRoute",type:"error"},{inputs:[],name:"ExpiredFillDeadline",type:"error"},{inputs:[],name:"FillsArePaused",type:"error"},{inputs:[],name:"InsufficientSpokePoolBalanceToExecuteLeaf",type:"error"},{inputs:[],name:"InvalidBytes32",type:"error"},{inputs:[],name:"InvalidChainId",type:"error"},{inputs:[],name:"InvalidCrossDomainAdmin",type:"error"},{inputs:[],name:"InvalidDepositorSignature",type:"error"},{inputs:[],name:"InvalidExclusiveRelayer",type:"error"},{inputs:[],name:"InvalidFillDeadline",type:"error"},{inputs:[],name:"InvalidMerkleLeaf",type:"error"},{inputs:[],name:"InvalidMerkleProof",type:"error"},{inputs:[],name:"InvalidPayoutAdjustmentPct",type:"error"},{inputs:[],name:"InvalidQuoteTimestamp",type:"error"},{inputs:[],name:"InvalidRelayerFeePct",type:"error"},{inputs:[],name:"InvalidSlowFillRequest",type:"error"},{inputs:[],name:"InvalidWithdrawalRecipient",type:"error"},{inputs:[{internalType:"bytes",name:"data",type:"bytes"}],name:"LowLevelCallFailed",type:"error"},{inputs:[],name:"MaxTransferSizeExceeded",type:"error"},{inputs:[],name:"MsgValueDoesNotMatchInputAmount",type:"error"},{inputs:[],name:"NoRelayerRefundToClaim",type:"error"},{inputs:[],name:"NoSlowFillsInExclusivityWindow",type:"error"},{inputs:[],name:"NotEOA",type:"error"},{inputs:[],name:"NotExclusiveRelayer",type:"error"},{inputs:[],name:"RelayFilled",type:"error"},{inputs:[],name:"WrongERC7683OrderId",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"previousAdmin",type:"address"},{indexed:!1,internalType:"address",name:"newAdmin",type:"address"}],name:"AdminChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"beacon",type:"address"}],name:"BeaconUpgraded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"l2TokenAddress",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"refundAddress",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!0,internalType:"address",name:"caller",type:"address"}],name:"ClaimedRelayerRefund",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"rootBundleId",type:"uint256"}],name:"EmergencyDeletedRootBundle",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"originToken",type:"address"},{indexed:!0,internalType:"uint256",name:"destinationChainId",type:"uint256"},{indexed:!1,internalType:"bool",name:"enabled",type:"bool"}],name:"EnabledDepositRoute",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"amountToReturn",type:"uint256"},{indexed:!0,internalType:"uint256",name:"chainId",type:"uint256"},{indexed:!1,internalType:"uint256[]",name:"refundAmounts",type:"uint256[]"},{indexed:!0,internalType:"uint32",name:"rootBundleId",type:"uint32"},{indexed:!0,internalType:"uint32",name:"leafId",type:"uint32"},{indexed:!1,internalType:"address",name:"l2TokenAddress",type:"address"},{indexed:!1,internalType:"address[]",name:"refundAddresses",type:"address[]"},{indexed:!1,internalType:"bool",name:"deferredRefunds",type:"bool"},{indexed:!1,internalType:"address",name:"caller",type:"address"}],name:"ExecutedRelayerRefundRoot",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"inputToken",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"outputToken",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"inputAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"outputAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"repaymentChainId",type:"uint256"},{indexed:!0,internalType:"uint256",name:"originChainId",type:"uint256"},{indexed:!0,internalType:"uint256",name:"depositId",type:"uint256"},{indexed:!1,internalType:"uint32",name:"fillDeadline",type:"uint32"},{indexed:!1,internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{indexed:!1,internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"relayer",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"depositor",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"recipient",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"messageHash",type:"bytes32"},{components:[{internalType:"bytes32",name:"updatedRecipient",type:"bytes32"},{internalType:"bytes32",name:"updatedMessageHash",type:"bytes32"},{internalType:"uint256",name:"updatedOutputAmount",type:"uint256"},{internalType:"enum V3SpokePoolInterface.FillType",name:"fillType",type:"uint8"}],indexed:!1,internalType:"struct V3SpokePoolInterface.V3RelayExecutionEventInfo",name:"relayExecutionInfo",type:"tuple"}],name:"FilledRelay",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"inputToken",type:"address"},{indexed:!1,internalType:"address",name:"outputToken",type:"address"},{indexed:!1,internalType:"uint256",name:"inputAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"outputAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"repaymentChainId",type:"uint256"},{indexed:!0,internalType:"uint256",name:"originChainId",type:"uint256"},{indexed:!0,internalType:"uint32",name:"depositId",type:"uint32"},{indexed:!1,internalType:"uint32",name:"fillDeadline",type:"uint32"},{indexed:!1,internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{indexed:!1,internalType:"address",name:"exclusiveRelayer",type:"address"},{indexed:!0,internalType:"address",name:"relayer",type:"address"},{indexed:!1,internalType:"address",name:"depositor",type:"address"},{indexed:!1,internalType:"address",name:"recipient",type:"address"},{indexed:!1,internalType:"bytes",name:"message",type:"bytes"},{components:[{internalType:"address",name:"updatedRecipient",type:"address"},{internalType:"bytes",name:"updatedMessage",type:"bytes"},{internalType:"uint256",name:"updatedOutputAmount",type:"uint256"},{internalType:"enum V3SpokePoolInterface.FillType",name:"fillType",type:"uint8"}],indexed:!1,internalType:"struct V3SpokePoolInterface.LegacyV3RelayExecutionEventInfo",name:"relayExecutionInfo",type:"tuple"}],name:"FilledV3Relay",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"inputToken",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"outputToken",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"inputAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"outputAmount",type:"uint256"},{indexed:!0,internalType:"uint256",name:"destinationChainId",type:"uint256"},{indexed:!0,internalType:"uint256",name:"depositId",type:"uint256"},{indexed:!1,internalType:"uint32",name:"quoteTimestamp",type:"uint32"},{indexed:!1,internalType:"uint32",name:"fillDeadline",type:"uint32"},{indexed:!1,internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{indexed:!0,internalType:"bytes32",name:"depositor",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"recipient",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{indexed:!1,internalType:"bytes",name:"message",type:"bytes"}],name:"FundsDeposited",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint8",name:"version",type:"uint8"}],name:"Initialized",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bool",name:"isPaused",type:"bool"}],name:"PausedDeposits",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bool",name:"isPaused",type:"bool"}],name:"PausedFills",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint32",name:"rootBundleId",type:"uint32"},{indexed:!0,internalType:"bytes32",name:"relayerRefundRoot",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"slowRelayRoot",type:"bytes32"}],name:"RelayedRootBundle",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"inputToken",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"outputToken",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"inputAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"outputAmount",type:"uint256"},{indexed:!0,internalType:"uint256",name:"originChainId",type:"uint256"},{indexed:!0,internalType:"uint256",name:"depositId",type:"uint256"},{indexed:!1,internalType:"uint32",name:"fillDeadline",type:"uint32"},{indexed:!1,internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{indexed:!1,internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"depositor",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"recipient",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"messageHash",type:"bytes32"}],name:"RequestedSlowFill",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"updatedOutputAmount",type:"uint256"},{indexed:!0,internalType:"uint256",name:"depositId",type:"uint256"},{indexed:!0,internalType:"bytes32",name:"depositor",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"updatedRecipient",type:"bytes32"},{indexed:!1,internalType:"bytes",name:"updatedMessage",type:"bytes"},{indexed:!1,internalType:"bytes",name:"depositorSignature",type:"bytes"}],name:"RequestedSpeedUpDeposit",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"updatedOutputAmount",type:"uint256"},{indexed:!0,internalType:"uint32",name:"depositId",type:"uint32"},{indexed:!0,internalType:"address",name:"depositor",type:"address"},{indexed:!1,internalType:"address",name:"updatedRecipient",type:"address"},{indexed:!1,internalType:"bytes",name:"updatedMessage",type:"bytes"},{indexed:!1,internalType:"bytes",name:"depositorSignature",type:"bytes"}],name:"RequestedSpeedUpV3Deposit",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"inputToken",type:"address"},{indexed:!1,internalType:"address",name:"outputToken",type:"address"},{indexed:!1,internalType:"uint256",name:"inputAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"outputAmount",type:"uint256"},{indexed:!0,internalType:"uint256",name:"originChainId",type:"uint256"},{indexed:!0,internalType:"uint32",name:"depositId",type:"uint32"},{indexed:!1,internalType:"uint32",name:"fillDeadline",type:"uint32"},{indexed:!1,internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{indexed:!1,internalType:"address",name:"exclusiveRelayer",type:"address"},{indexed:!1,internalType:"address",name:"depositor",type:"address"},{indexed:!1,internalType:"address",name:"recipient",type:"address"},{indexed:!1,internalType:"bytes",name:"message",type:"bytes"}],name:"RequestedV3SlowFill",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"newWithdrawalRecipient",type:"address"}],name:"SetWithdrawalRecipient",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"newAdmin",type:"address"}],name:"SetXDomainAdmin",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"amountToReturn",type:"uint256"},{indexed:!0,internalType:"uint256",name:"chainId",type:"uint256"},{indexed:!0,internalType:"uint32",name:"leafId",type:"uint32"},{indexed:!0,internalType:"bytes32",name:"l2TokenAddress",type:"bytes32"},{indexed:!1,internalType:"address",name:"caller",type:"address"}],name:"TokensBridged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"implementation",type:"address"}],name:"Upgraded",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"inputToken",type:"address"},{indexed:!1,internalType:"address",name:"outputToken",type:"address"},{indexed:!1,internalType:"uint256",name:"inputAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"outputAmount",type:"uint256"},{indexed:!0,internalType:"uint256",name:"destinationChainId",type:"uint256"},{indexed:!0,internalType:"uint32",name:"depositId",type:"uint32"},{indexed:!1,internalType:"uint32",name:"quoteTimestamp",type:"uint32"},{indexed:!1,internalType:"uint32",name:"fillDeadline",type:"uint32"},{indexed:!1,internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{indexed:!0,internalType:"address",name:"depositor",type:"address"},{indexed:!1,internalType:"address",name:"recipient",type:"address"},{indexed:!1,internalType:"address",name:"exclusiveRelayer",type:"address"},{indexed:!1,internalType:"bytes",name:"message",type:"bytes"}],name:"V3FundsDeposited",type:"event"},{inputs:[],name:"EMPTY_RELAYER",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"EMPTY_REPAYMENT_CHAIN_ID",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"INFINITE_FILL_DEADLINE",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[],name:"MAX_EXCLUSIVITY_PERIOD_SECONDS",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[],name:"MAX_TRANSFER_SIZE",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"UPDATE_ADDRESS_DEPOSIT_DETAILS_HASH",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"UPDATE_BYTES32_DEPOSIT_DETAILS_HASH",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint32",name:"_initialDepositId",type:"uint32"},{internalType:"address",name:"_crossDomainAdmin",type:"address"},{internalType:"address",name:"_withdrawalRecipient",type:"address"}],name:"__SpokePool_init",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"chainId",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"l2TokenAddress",type:"bytes32"},{internalType:"bytes32",name:"refundAddress",type:"bytes32"}],name:"claimRelayerRefund",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"crossDomainAdmin",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"inputToken",type:"bytes32"},{internalType:"bytes32",name:"outputToken",type:"bytes32"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{internalType:"uint32",name:"quoteTimestamp",type:"uint32"},{internalType:"uint32",name:"fillDeadline",type:"uint32"},{internalType:"uint32",name:"exclusivityParameter",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],name:"deposit",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"recipient",type:"address"},{internalType:"address",name:"originToken",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"int64",name:"relayerFeePct",type:"int64"},{internalType:"uint32",name:"quoteTimestamp",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"},{internalType:"uint256",name:"",type:"uint256"}],name:"depositDeprecated_5947912356",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"depositor",type:"address"},{internalType:"address",name:"recipient",type:"address"},{internalType:"address",name:"originToken",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"int64",name:"relayerFeePct",type:"int64"},{internalType:"uint32",name:"quoteTimestamp",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"},{internalType:"uint256",name:"",type:"uint256"}],name:"depositFor",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"inputToken",type:"bytes32"},{internalType:"bytes32",name:"outputToken",type:"bytes32"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{internalType:"uint32",name:"fillDeadlineOffset",type:"uint32"},{internalType:"uint32",name:"exclusivityParameter",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],name:"depositNow",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"depositQuoteTimeBuffer",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"depositor",type:"address"},{internalType:"address",name:"recipient",type:"address"},{internalType:"address",name:"inputToken",type:"address"},{internalType:"address",name:"outputToken",type:"address"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"address",name:"exclusiveRelayer",type:"address"},{internalType:"uint32",name:"quoteTimestamp",type:"uint32"},{internalType:"uint32",name:"fillDeadline",type:"uint32"},{internalType:"uint32",name:"exclusivityParameter",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],name:"depositV3",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"depositor",type:"address"},{internalType:"address",name:"recipient",type:"address"},{internalType:"address",name:"inputToken",type:"address"},{internalType:"address",name:"outputToken",type:"address"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"address",name:"exclusiveRelayer",type:"address"},{internalType:"uint32",name:"fillDeadlineOffset",type:"uint32"},{internalType:"uint32",name:"exclusivityParameter",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],name:"depositV3Now",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"rootBundleId",type:"uint256"}],name:"emergencyDeleteRootBundle",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"}],name:"enabledDepositRoutes",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint32",name:"rootBundleId",type:"uint32"},{components:[{internalType:"uint256",name:"amountToReturn",type:"uint256"},{internalType:"uint256",name:"chainId",type:"uint256"},{internalType:"uint256[]",name:"refundAmounts",type:"uint256[]"},{internalType:"uint32",name:"leafId",type:"uint32"},{internalType:"address",name:"l2TokenAddress",type:"address"},{internalType:"address[]",name:"refundAddresses",type:"address[]"}],internalType:"struct SpokePoolInterface.RelayerRefundLeaf",name:"relayerRefundLeaf",type:"tuple"},{internalType:"bytes32[]",name:"proof",type:"bytes32[]"}],name:"executeRelayerRefundLeaf",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{components:[{components:[{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{internalType:"bytes32",name:"inputToken",type:"bytes32"},{internalType:"bytes32",name:"outputToken",type:"bytes32"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"originChainId",type:"uint256"},{internalType:"uint256",name:"depositId",type:"uint256"},{internalType:"uint32",name:"fillDeadline",type:"uint32"},{internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],internalType:"struct V3SpokePoolInterface.V3RelayData",name:"relayData",type:"tuple"},{internalType:"uint256",name:"chainId",type:"uint256"},{internalType:"uint256",name:"updatedOutputAmount",type:"uint256"}],internalType:"struct V3SpokePoolInterface.V3SlowFill",name:"slowFillLeaf",type:"tuple"},{internalType:"uint32",name:"rootBundleId",type:"uint32"},{internalType:"bytes32[]",name:"proof",type:"bytes32[]"}],name:"executeSlowRelayLeaf",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"orderId",type:"bytes32"},{internalType:"bytes",name:"originData",type:"bytes"},{internalType:"bytes",name:"fillerData",type:"bytes"}],name:"fill",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"fillDeadlineBuffer",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{internalType:"bytes32",name:"inputToken",type:"bytes32"},{internalType:"bytes32",name:"outputToken",type:"bytes32"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"originChainId",type:"uint256"},{internalType:"uint256",name:"depositId",type:"uint256"},{internalType:"uint32",name:"fillDeadline",type:"uint32"},{internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],internalType:"struct V3SpokePoolInterface.V3RelayData",name:"relayData",type:"tuple"},{internalType:"uint256",name:"repaymentChainId",type:"uint256"},{internalType:"bytes32",name:"repaymentAddress",type:"bytes32"}],name:"fillRelay",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{internalType:"bytes32",name:"inputToken",type:"bytes32"},{internalType:"bytes32",name:"outputToken",type:"bytes32"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"originChainId",type:"uint256"},{internalType:"uint256",name:"depositId",type:"uint256"},{internalType:"uint32",name:"fillDeadline",type:"uint32"},{internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],internalType:"struct V3SpokePoolInterface.V3RelayData",name:"relayData",type:"tuple"},{internalType:"uint256",name:"repaymentChainId",type:"uint256"},{internalType:"bytes32",name:"repaymentAddress",type:"bytes32"},{internalType:"uint256",name:"updatedOutputAmount",type:"uint256"},{internalType:"bytes32",name:"updatedRecipient",type:"bytes32"},{internalType:"bytes",name:"updatedMessage",type:"bytes"},{internalType:"bytes",name:"depositorSignature",type:"bytes"}],name:"fillRelayWithUpdatedDeposit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"fillStatuses",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"address",name:"depositor",type:"address"},{internalType:"address",name:"recipient",type:"address"},{internalType:"address",name:"exclusiveRelayer",type:"address"},{internalType:"address",name:"inputToken",type:"address"},{internalType:"address",name:"outputToken",type:"address"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"originChainId",type:"uint256"},{internalType:"uint32",name:"depositId",type:"uint32"},{internalType:"uint32",name:"fillDeadline",type:"uint32"},{internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],internalType:"struct V3SpokePoolInterface.V3RelayDataLegacy",name:"relayData",type:"tuple"},{internalType:"uint256",name:"repaymentChainId",type:"uint256"}],name:"fillV3Relay",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"getCurrentTime",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"l2TokenAddress",type:"address"},{internalType:"address",name:"refundAddress",type:"address"}],name:"getRelayerRefund",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"msgSender",type:"address"},{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"uint256",name:"depositNonce",type:"uint256"}],name:"getUnsafeDepositId",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"pure",type:"function"},{inputs:[{components:[{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{internalType:"bytes32",name:"inputToken",type:"bytes32"},{internalType:"bytes32",name:"outputToken",type:"bytes32"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"originChainId",type:"uint256"},{internalType:"uint256",name:"depositId",type:"uint256"},{internalType:"uint32",name:"fillDeadline",type:"uint32"},{internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],internalType:"struct V3SpokePoolInterface.V3RelayData",name:"relayData",type:"tuple"}],name:"getV3RelayHash",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint32",name:"_initialDepositId",type:"uint32"},{internalType:"address",name:"_withdrawalRecipient",type:"address"}],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes[]",name:"data",type:"bytes[]"}],name:"multicall",outputs:[{internalType:"bytes[]",name:"results",type:"bytes[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"numberOfDeposits",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bool",name:"pause",type:"bool"}],name:"pauseDeposits",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bool",name:"pause",type:"bool"}],name:"pauseFills",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"pausedDeposits",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"pausedFills",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"proxiableUUID",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"relayerRefundRoot",type:"bytes32"},{internalType:"bytes32",name:"slowRelayRoot",type:"bytes32"}],name:"relayRootBundle",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"}],name:"relayerRefund",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{internalType:"bytes32",name:"inputToken",type:"bytes32"},{internalType:"bytes32",name:"outputToken",type:"bytes32"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"originChainId",type:"uint256"},{internalType:"uint256",name:"depositId",type:"uint256"},{internalType:"uint32",name:"fillDeadline",type:"uint32"},{internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],internalType:"struct V3SpokePoolInterface.V3RelayData",name:"relayData",type:"tuple"}],name:"requestSlowFill",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"}],name:"rootBundles",outputs:[{internalType:"bytes32",name:"slowRelayRoot",type:"bytes32"},{internalType:"bytes32",name:"relayerRefundRoot",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"newCrossDomainAdmin",type:"address"}],name:"setCrossDomainAdmin",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"originToken",type:"address"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"bool",name:"enabled",type:"bool"}],name:"setEnableRoute",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newWithdrawalRecipient",type:"address"}],name:"setWithdrawalRecipient",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"uint256",name:"depositId",type:"uint256"},{internalType:"uint256",name:"updatedOutputAmount",type:"uint256"},{internalType:"bytes32",name:"updatedRecipient",type:"bytes32"},{internalType:"bytes",name:"updatedMessage",type:"bytes"},{internalType:"bytes",name:"depositorSignature",type:"bytes"}],name:"speedUpDeposit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"depositor",type:"address"},{internalType:"uint256",name:"depositId",type:"uint256"},{internalType:"uint256",name:"updatedOutputAmount",type:"uint256"},{internalType:"address",name:"updatedRecipient",type:"address"},{internalType:"bytes",name:"updatedMessage",type:"bytes"},{internalType:"bytes",name:"depositorSignature",type:"bytes"}],name:"speedUpV3Deposit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes[]",name:"data",type:"bytes[]"}],name:"tryMulticall",outputs:[{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct MultiCallerUpgradeable.Result[]",name:"results",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"inputToken",type:"bytes32"},{internalType:"bytes32",name:"outputToken",type:"bytes32"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{internalType:"uint256",name:"depositNonce",type:"uint256"},{internalType:"uint32",name:"quoteTimestamp",type:"uint32"},{internalType:"uint32",name:"fillDeadline",type:"uint32"},{internalType:"uint32",name:"exclusivityParameter",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],name:"unsafeDeposit",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"newImplementation",type:"address"}],name:"upgradeTo",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newImplementation",type:"address"},{internalType:"bytes",name:"data",type:"bytes"}],name:"upgradeToAndCall",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"withdrawalRecipient",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"wrappedNativeToken",outputs:[{internalType:"contract WETH9Interface",name:"",type:"address"}],stateMutability:"view",type:"function"},{stateMutability:"payable",type:"receive"}],yh=["function balanceOf(address account) external view returns (uint256)"],gh=["function approve(address spender, uint256 amount) external returns (bool)"],bh=function(e,t,r){try{const n=e.getCowShedAccount(t.sellTokenChainId,t.owner||t.account);return Promise.resolve(r.getCode(n)).then(function(e){return e&&"0x"!==e?fc:6e5})}catch(e){return Promise.reject(e)}},vh=`${yc}/across`,Ah=[ae,Te,he,fe,Ae];class wh{constructor(e){this.api=void 0,this.cowShedSdk=void 0,this.getRpcProvider=void 0,this.supportedTokens=null,this.info={name:"Across",logoUrl:`${pc}/across/across-logo.png`,dappId:vh,website:"https://across.to"},this.api=new Ic(e.apiOptions),this.cowShedSdk=new Kc(e.cowShedOptions),this.getRpcProvider=e.getRpcProvider}getNetworks(){return Promise.resolve(Ah)}getBuyTokens(e){try{return Promise.resolve(this.getSupportedTokensState()).then(function(t){return Object.values(t[e.buyChainId]||{})})}catch(e){return Promise.reject(e)}}getIntermediateTokens(e){try{const t=this;if(e.kind!==E.SELL)throw new F(O.ONLY_SELL_ORDER_SUPPORTED,{kind:e.kind});const{sellTokenChainId:r,buyTokenChainId:n,buyTokenAddress:i}=e;return Promise.resolve(t.getSupportedTokensState()).then(function(e){const t=i.toLowerCase(),o=e[r],s=e[n],a=s&&s[t]?.symbol?.toLowerCase();return a?Object.values(o||{}).filter(e=>e.symbol?.toLowerCase()===a):[]})}catch(e){return Promise.reject(e)}}getQuote(e){try{const t=this,{sellTokenAddress:r,sellTokenChainId:n,buyTokenChainId:i,amount:o,receiver:s}=e;return Promise.resolve(t.api.getSuggestedFees({token:r,originChainId:n,destinationChainId:i,amount:o,recipient:null!=s?s:void 0})).then(function(t){return function(e,t,r){const{kind:n}=e;return{isSell:n===E.SELL,amountsAndCosts:Bc(e,0,r),quoteTimestamp:Number(r.timestamp),expectedFillTimeSeconds:Number(r.estimatedFillTimeSec),fees:{bridgeFee:BigInt(r.relayerCapitalFee.total),destinationGasFee:BigInt(r.relayerGasFee.total)},limits:{minDeposit:BigInt(r.limits.minDeposit),maxDeposit:BigInt(r.limits.maxDeposit)},suggestedFees:r}}(e,0,t)})}catch(e){return Promise.reject(e)}}getUnsignedBridgeCall(e,t){try{return Promise.resolve(function(e){const{request:t,quote:r,cowShedSdk:n}=e,{sellTokenChainId:i,sellTokenAddress:o,buyTokenChainId:s,buyTokenAddress:a,account:u,receiver:l}=t,c=function(e){const t=Rc[e];if(!t)throw new Error("Spoke pool address not found for chain: "+e);return hh(new sh(t,mh),ah.CALL)}(i),d=function(e){const t=Mc[e];if(!t)throw new Error("Math contract address not found for chain: "+e);return hh(new sh(t,fh),ah.CALL)}(i),h=function(e){return hh(new sh(e,yh),ah.STATICCALL)}(o),p=function(e){return hh(new sh(e,gh),ah.CALL)}(o),f=n.getCowShedAccount(i,u),{suggestedFees:m}=r;return dh(e=>{const t=e.add(h.balanceOf(f)),r=BigInt(m.totalRelayFee.pct),n=e.add(d.multiplyAndSubtract(t,r));e.add(p.approve(c.address,t));const i=BigInt(m.timestamp);e.add(c.depositV3(f,l||u,o,a,t,n,s,m.exclusiveRelayer,i,m.fillDeadline,m.exclusivityDeadline,"0x"))})}({request:e,quote:t,cowShedSdk:this.cowShedSdk}))}catch(e){return Promise.reject(e)}}getGasLimitEstimationForHook(e){try{const t=this;return Promise.resolve(bh(t.cowShedSdk,e,t.getRpcProvider(e.sellTokenChainId)))}catch(e){return Promise.reject(e)}}getSignedHook(e,t,r,n,i,o){try{return Promise.resolve(this.cowShedSdk.signCalls({calls:[{target:t.to,value:t.value,callData:t.data,allowFailure:!1,isDelegateCall:!0}],chainId:e,signer:r,gasLimit:BigInt(o),deadline:i,nonce:n})).then(function({signedMulticall:e,cowShedAccount:t,gasLimit:r}){const{to:n,data:i}=e;return{postHook:{target:n,callData:i,gasLimit:r.toString(),dappId:vh},recipient:t}})}catch(e){return Promise.reject(e)}}decodeBridgeHook(e){try{throw new Error("Not implemented")}catch(e){return Promise.reject(e)}}getBridgingParams(e,t,r){try{const n=this;return Promise.resolve(n.getRpcProvider(e).getTransactionReceipt(r)).then(function(r){return Promise.resolve(function(e,t,r){try{const n=function(e,t){const r=Rc[e]?.toLowerCase();if(!r)return[];const n=t.filter(e=>e.address.toLocaleLowerCase()===r&&e.topics[0]===Nc);return n.map(e=>{const{inputToken:t,outputToken:r,inputAmount:n,outputAmount:i,destinationChainId:o,depositId:s,quoteTimestamp:a,fillDeadline:u,exclusivityDeadline:l,depositor:c,recipient:d,exclusiveRelayer:h,message:p}=Cc.parseLog(e).args;return{inputToken:Dc(t),outputToken:Dc(r),inputAmount:n,outputAmount:i,destinationChainId:o,depositId:s,quoteTimestamp:a,fillDeadline:u,exclusivityDeadline:l,depositor:Dc(c),recipient:Dc(d),exclusiveRelayer:h,message:p}})}(e,r.logs);if(0===n.length)return Promise.resolve(null);const i=function(e,t){const r=t.filter(t=>t.address.toLowerCase()===Ge[e].toLowerCase()&&t.topics[0]===_c);return r.map(e=>{const t=xc.parseLog(e).args,{owner:r,sellToken:n,buyToken:i,sellAmount:o,buyAmount:s,feeAmount:a}=t;return{owner:r,sellToken:n,buyToken:i,sellAmount:o,buyAmount:s,feeAmount:a,orderUid:"0x"+e.data.slice(450,562)}})}(e,r.logs),o=i.findIndex(e=>e.orderUid===t);if(o<0)return Promise.resolve(null);const s=n[o];return s?Promise.resolve({inputTokenAddress:s.inputToken,outputTokenAddress:s.outputToken,inputAmount:BigInt(s.inputAmount.toString()),outputAmount:BigInt(s.outputAmount.toString()),owner:s.depositor,quoteTimestamp:parseInt(s.quoteTimestamp.toString()),fillDeadline:parseInt(s.fillDeadline.toString()),recipient:s.recipient,sourceChainId:e,destinationChainId:parseInt(s.destinationChainId.toString()),bridgingId:s.depositId.toString()}):(Xe(`Trade event found at index ${o} but only ${n.length} deposit events available`),Promise.resolve(null))}catch(e){return Promise.reject(e)}}(e,t,r)).then(function(t){return t?Promise.resolve(n.getStatus(t.bridgingId,e)).then(function(e){return{params:t,status:e}}):null})})}catch(e){return Promise.reject(e)}}getExplorerUrl(e){return`https://app.across.to/transactions/${e}`}getStatus(e,t){try{return Promise.resolve(this.api.getDepositStatus({originChainId:t.toString(),depositId:e})).then(function(e){return{status:(t=e.status,Uc[t]),depositTxHash:e.depositTxHash,fillTxHash:e.fillTx};var t})}catch(e){return Promise.reject(e)}}getCancelBridgingTx(e){try{throw new Error("Not implemented")}catch(e){return Promise.reject(e)}}getRefundBridgingTx(e){try{throw new Error("Not implemented")}catch(e){return Promise.reject(e)}}getSupportedTokensState(){try{const e=this;function t(){return e.supportedTokens}const r=function(){if(!e.supportedTokens)return Promise.resolve(e.api.getSupportedTokens()).then(function(t){e.supportedTokens=t.reduce((e,t)=>(e[t.chainId]=e[t.chainId]||{},e[t.chainId][t.address.toLowerCase()]=t,e),{})})}();return Promise.resolve(r&&r.then?r.then(t):t())}catch(n){return Promise.reject(n)}}}const Th=[{type:"constructor",inputs:[{name:"_owner",type:"address",internalType:"address"},{name:"_socketGateway",type:"address",internalType:"address"}],stateMutability:"nonpayable"},{type:"function",name:"addVerifier",inputs:[{name:"routeId",type:"uint32",internalType:"uint32"},{name:"verifier",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"claimOwner",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"nominateOwner",inputs:[{name:"nominee_",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"nominee",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"owner",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"parseCallData",inputs:[{name:"callData",type:"bytes",internalType:"bytes"}],outputs:[{name:"",type:"tuple",internalType:"struct SocketVerifier.UserRequest",components:[{name:"routeId",type:"uint32",internalType:"uint32"},{name:"socketRequest",type:"bytes",internalType:"bytes"}]}],stateMutability:"nonpayable"},{type:"function",name:"routeIdsToVerifiers",inputs:[{name:"",type:"uint32",internalType:"uint32"}],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"socketGateway",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"validateRotueId",inputs:[{name:"callData",type:"bytes",internalType:"bytes"},{name:"expectedRouteId",type:"uint32",internalType:"uint32"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"validateSocketRequest",inputs:[{name:"callData",type:"bytes",internalType:"bytes"},{name:"expectedRequest",type:"tuple",internalType:"struct SocketVerifier.UserRequestValidation",components:[{name:"routeId",type:"uint32",internalType:"uint32"},{name:"socketRequest",type:"tuple",internalType:"struct SocketVerifier.SocketRequest",components:[{name:"amount",type:"uint256",internalType:"uint256"},{name:"recipient",type:"address",internalType:"address"},{name:"toChainId",type:"uint256",internalType:"uint256"},{name:"token",type:"address",internalType:"address"},{name:"signature",type:"bytes4",internalType:"bytes4"}]}]}],outputs:[],stateMutability:"nonpayable"},{type:"event",name:"OwnerClaimed",inputs:[{name:"claimer",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"OwnerNominated",inputs:[{name:"nominee",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"error",name:"AmountNotMatched",inputs:[]},{type:"error",name:"FailedToVerify",inputs:[]},{type:"error",name:"OnlyNominee",inputs:[]},{type:"error",name:"OnlyOwner",inputs:[]},{type:"error",name:"RecipientNotMatched",inputs:[]},{type:"error",name:"RouteIdNotFound",inputs:[]},{type:"error",name:"RouteIdNotMatched",inputs:[]},{type:"error",name:"SignatureNotMatched",inputs:[]},{type:"error",name:"ToChainIdNotMatched",inputs:[]},{type:"error",name:"TokenNotMatched",inputs:[]}],Eh=[{type:"function",name:"approveAndBridge",inputs:[{name:"token",type:"address",internalType:"contract IERC20"},{name:"minAmount",type:"uint256",internalType:"uint256"},{name:"nativeTokenExtraFee",type:"uint256",internalType:"uint256"},{name:"data",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"}],Ih={across:{["0x792ebcb9".toLowerCase()]:{inputAmount:{bytes_startIndex:8,bytes_length:32,bytesString_startIndex:18,bytesString_length:64},outputAmount:{bytes_startIndex:488,bytes_length:32,bytesString_startIndex:978,bytesString_length:64}},["0xe421f352".toLowerCase()]:{inputAmount:{bytes_startIndex:8,bytes_length:32,bytesString_startIndex:18,bytesString_length:64},outputAmount:{bytes_startIndex:392,bytes_length:32,bytesString_startIndex:786,bytesString_length:64}}},cctp:{["0xb7dfe9d0".toLowerCase()]:{inputAmount:{bytes_startIndex:8,bytes_length:32,bytesString_startIndex:18,bytesString_length:64}}}};var Sh;!function(e){e.Across="across",e.CircleCCTP="cctp"}(Sh||(Sh={}));const kh={Across:Sh.Across,"Circle CCTP":Sh.CircleCCTP};var Ph,Ch;function xh(e,t,r){const{amount:n,sellTokenDecimals:i,buyTokenDecimals:o}=e,s=Pt(n,i).big,a=Pt(r.route.output.amount,o).big,u=a,l=r.route.routeDetails.routeFee.amount,c=function(e,t){return e*BigInt(1e4-t)/10000n}(u,t);return{beforeFee:{sellAmount:s,buyAmount:a},afterFee:{sellAmount:s,buyAmount:u},afterSlippage:{sellAmount:s,buyAmount:c},costs:{bridgingFee:{feeBps:function(e,t){if(0n===t)throw new Error("Denominator is 0");if(e>t)throw new Error("Fee amount is greater than amount");return Number((10000n*e+t/2n)/t)}(BigInt(r.route.routeDetails.routeFee.amount),BigInt(n)),amountInSellCurrency:BigInt(l),amountInBuyCurrency:BigInt(0)}},slippageBps:t}}function Nh(e){if(!e||e.length<10)throw new Error("Invalid txData: too short");if(!e.startsWith("0x"))throw new Error("Invalid txData: must start with 0x");const t=e.slice(2);if(t.length<8)throw new Error("Invalid txData: insufficient data for routeId");const r=`0x${t.slice(0,8)}`,n=`0x${t.slice(8)}`;if(n.length<10)throw new Error("Invalid txData: insufficient data for function selector");const i=`${n.slice(0,10)}`;return{routeId:r,encodedFunctionData:n,functionSelector:i}}function _h(e){const t=new URLSearchParams;return Object.entries(e).forEach(([e,r])=>{Array.isArray(r)?t.append(e,r.join(",")):t.append(e,String(r))}),t}!function(e){e.COMPLETED="COMPLETED",e.PENDING="PENDING"}(Ph||(Ph={})),function(e){e.ACROSS="across",e.CCTP="cctp"}(Ch||(Ch={}));const Rh="0xa27A3f5A96DF7D8Be26EE2790999860C00eb688D",Mh={[B.MAINNET]:Rh,[B.GNOSIS_CHAIN]:Rh,[B.ARBITRUM_ONE]:Rh,[B.BASE]:Rh,[B.AVALANCHE]:Rh,[B.POLYGON]:Rh,[B.SEPOLIA]:void 0,[D.OPTIMISM]:Rh},Oh="0x936fa1cfd96849329B18b915773E176718A64b95",Bh={[B.MAINNET]:Oh,[B.GNOSIS_CHAIN]:Oh,[B.ARBITRUM_ONE]:Oh,[B.BASE]:Oh,[B.AVALANCHE]:Oh,[B.POLYGON]:Oh,[B.SEPOLIA]:void 0,[D.OPTIMISM]:Oh};function Dh(e,t){try{var r=e()}catch(e){return t(e)}return r&&r.then?r.then(void 0,t):r}const Fh="https://public-backend.bungee.exchange/api/v1/bungee",Lh="https://microservices.socket.tech/loki",Uh="https://app.across.to/api",Gh=["across","cctp"],jh={bungee:"Bungee Api Error",events:"Bungee Events Api Error",across:"Across Api Error","bungee-manual":"Bungee Manual Api Error"};class Hh{constructor(e={apiBaseUrl:Fh,eventsApiBaseUrl:Lh,acrossApiBaseUrl:Uh,includeBridges:Gh}){this.options=void 0,this.options=e,this.validateBridges(this.getSupportedBridges())}validateBridges(e){if(e?.some(e=>!Gh.includes(e)))throw new L(`Unsupported bridge: ${e.filter(e=>!Gh.includes(e)).join(", ")}`,{includeBridges:e})}getBuyTokens(e,t){try{const r=this,{sellChainId:n,sellTokenAddress:i,buyChainId:o}=e,s=r.getSupportedBridges(t?.includeBridges);r.validateBridges(s);const a={toChainId:o.toString(),includeBridges:s.join(",")};n&&(a.fromChainId=n.toString()),i&&(a.fromTokenAddress=i);const u=_h(a);return Promise.resolve(r.makeApiCall("bungee-manual","/dest-tokens",u)).then(function(e){if(!e.success)throw new L("Bungee Api Error: Buy tokens failed",e);return e.result.map(e=>({...e,logoUrl:e.logoURI}))})}catch(e){return Promise.reject(e)}}getIntermediateTokens(e){try{const t=this,{fromChainId:r,toChainId:n,toTokenAddress:i}=e,o=t.getSupportedBridges(e.includeBridges);t.validateBridges(o);const s=_h({fromChainId:r.toString(),toChainId:n.toString(),toTokenAddress:i,includeBridges:o.join(",")});return Promise.resolve(t.makeApiCall("bungee-manual","/intermediate-tokens",s)).then(function(e){if(!e.success)throw new F(O.NO_INTERMEDIATE_TOKENS,e);return e.result.map(e=>({...e,logoUrl:e.logoURI}))})}catch(e){return Promise.reject(e)}}getBungeeQuoteWithBuildTx(e){try{const t=this;return Promise.resolve(t.getBungeeQuote(e)).then(function(e){return Promise.resolve(t.getBungeeBuildTx(e)).then(function(t){return{bungeeQuote:e,buildTx:t}})})}catch(e){return Promise.reject(e)}}getBungeeQuote(e){try{const t=this;return Promise.resolve(Dh(function(){e.includeBridges=t.getSupportedBridges(e.includeBridges),t.validateBridges(e.includeBridges);const r=_h(e);return Promise.resolve(t.makeApiCall("bungee","/quote",r,qh)).then(function(e){if(!e.success)throw new F(O.QUOTE_ERROR,e);const t=Math.floor(Date.now()/1e3),{manualRoutes:r}=e.result;if(0===r.length)throw new F(O.NO_ROUTES,e.result);const n=r[0];if(!n?.routeDetails?.name)throw new F(O.NO_ROUTES,{manualRoutes:r});const i=kh[n.routeDetails.name];if(!i)throw new F(O.INVALID_BRIDGE,{firstRoute:n});const o=r.sort((e,t)=>Number(t.output.amount)-Number(e.output.amount));return{originChainId:e.result.originChainId,destinationChainId:e.result.destinationChainId,userAddress:e.result.userAddress,receiverAddress:e.result.receiverAddress,input:e.result.input,route:o[0],routeBridge:i,quoteTimestamp:t}})},function(e){throw console.error("🔴 Error getting bungee quote:",e),e}))}catch(e){return Promise.reject(e)}}getBungeeBuildTx(e){try{return Promise.resolve(this.makeApiCall("bungee","/build-tx",{quoteId:e.route.quoteId})).then(function(e){if(!e.success)throw new F(O.TX_BUILD_ERROR,e);return e.result})}catch(e){return Promise.reject(e)}}verifyBungeeBuildTx(e,t,r){try{const n=this,{routeId:i,functionSelector:o}=Nh(t.txData.data),s={amount:e.input.amount,recipient:e.receiverAddress,toChainId:e.destinationChainId.toString(),token:e.input.token.address,signature:o};return Promise.resolve(n.verifyBungeeBuildTxData(e.originChainId,t.txData.data,i,s,r))}catch(e){return Promise.reject(e)}}verifyBungeeBuildTxData(e,t,r,n,o){try{let s;function a(e){let i;if(s)return e;const o={routeId:r,socketRequest:n},a=Dh(function(){return Promise.resolve(c.callStatic.validateSocketRequest(t,o)).then(function(){})},function(e){return console.error("🔴 Error validating socket request:",e),i=1,!1});return a&&a.then?a.then(function(e){return!i||e}):!i||a}const u=jl(o),l=Mh[e];if(!l)throw new F(O.TX_BUILD_ERROR,{originChainId:e,error:"Socket verifier not found"});const c=new i.Contract(l,Th,u),d=Dh(function(){return Promise.resolve(c.callStatic.validateRotueId(t,r)).then(function(){})},function(e){return console.error("🔴 Error validating routeId:",e),s=1,!1});return Promise.resolve(d&&d.then?d.then(a):a(d))}catch(h){return Promise.reject(h)}}getEvents(e){try{return Promise.resolve(this.makeApiCall("events",e.orderId?"/order":"/tx",e,Vh)).then(function(e){if(!e.success)throw new L("Bungee Events Api Error",e);return e.result})}catch(e){return Promise.reject(e)}}getAcrossStatus(e){try{return Promise.resolve(this.makeApiCall("across","/deposit/status",{depositTxHash:e},zh)).then(function(e){return e.status})}catch(e){return Promise.reject(e)}}getSupportedBridges(e){var t;return null!==(t=null!=e?e:this.options.includeBridges)&&void 0!==t?t:Gh}makeApiCall(e,t,r,n){try{const i=this,o=`${{bungee:i.options.apiBaseUrl||Fh,events:i.options.eventsApiBaseUrl||Lh,across:i.options.acrossApiBaseUrl||Uh,"bungee-manual":i.options.manualApiBaseUrl||"https://public-backend.bungee.exchange/api/v1/bungee-manual"}[e]}${t}?${new URLSearchParams(r).toString()}`;return Xe(`Fetching ${e} API: GET ${o}. Params: ${JSON.stringify(r)}`),Promise.resolve(fetch(o,{method:"GET"})).then(function(t){let i;function o(o){return i?o:Promise.resolve(t.json()).then(function(t){if(n&&!n(t))throw new F(O.INVALID_API_JSON_RESPONSE,{json:t,apiType:e,params:r});return t})}const s=function(){if(!t.ok)return Promise.resolve(t.json()).then(function(t){throw new F(O.API_ERROR,{errorBody:t,type:jh[e]})})}();return s&&s.then?s.then(o):o(s)})}catch(e){return Promise.reject(e)}}}function qh(e){if("object"!=typeof e||null===e)return!1;if(!("success"in e)||!("statusCode"in e)||!("result"in e)||"boolean"!=typeof e.success||"number"!=typeof e.statusCode)return!1;const t=e.result;if("object"!=typeof t||null===t)return!1;const r=t;return!!("originChainId"in r&&"destinationChainId"in r&&"userAddress"in r&&"receiverAddress"in r&&"manualRoutes"in r&&Array.isArray(r.manualRoutes))&&r.manualRoutes.every(e=>{if("object"!=typeof e||null===e)return!1;if(!("routeDetails"in e)||"object"!=typeof e.routeDetails||null===e.routeDetails)return!1;if(!("routeFee"in e.routeDetails))return!1;const t=e.routeDetails.routeFee;return"object"==typeof t&&null!==t&&"amount"in t&&"quoteId"in e&&"quoteExpiry"in e&&"output"in e&&"gasFee"in e&&"slippage"in e&&"estimatedTime"in e&&"routeDetails"in e})}function Vh(e){if("object"!=typeof e||null===e)return!1;const t=e;return!!("success"in t&&"result"in t&&"boolean"==typeof t.success&&Array.isArray(t.result))&&t.result.every(e=>"object"==typeof e&&null!==e&&"identifier"in e&&"bridgeName"in e&&"fromChainId"in e&&"isCowswapTrade"in e&&"orderId"in e&&"recipient"in e&&"sender"in e&&"srcTxStatus"in e&&"destTxStatus"in e)}function zh(e){return"object"==typeof e&&null!==e&&"status"in e}const Kh=function(e,t){try{let n;function r(e){if(n)return e;if(i.srcTxStatus===Ph.COMPLETED&&i.destTxStatus===Ph.COMPLETED)return{status:M.EXECUTED,depositTxHash:i.srcTransactionHash,fillTxHash:i.destTransactionHash};throw new Error("Unknown status")}if(!e?.length)return Promise.resolve({status:M.UNKNOWN});const i=e[0];if(i.srcTxStatus===Ph.PENDING)return Promise.resolve({status:M.IN_PROGRESS});const o=function(){if(i.srcTxStatus===Ph.COMPLETED&&i.destTxStatus===Ph.PENDING){function e(e){return n?e:(n=1,{status:M.IN_PROGRESS,depositTxHash:i.srcTransactionHash})}const r=function(){if(i.bridgeName===Ch.ACROSS)return function(e,r){try{var o=Promise.resolve(t(i.orderId)).then(function(e){return"expired"===e?(n=1,{status:M.EXPIRED,depositTxHash:i.srcTransactionHash}):"refunded"===e?(n=1,{status:M.REFUND,depositTxHash:i.srcTransactionHash}):void 0})}catch(e){return r(e)}return o&&o.then?o.then(void 0,r):o}(0,function(e){console.error("BungeeBridgeProvider get across status error",e)})}();return r&&r.then?r.then(e):e(r)}}();return Promise.resolve(o&&o.then?o.then(r):r(o))}catch(s){return Promise.reject(s)}},Wh="cow-sdk://bridging/providers/bungee",Jh=[ae,Te,he,fe,Ae,be];class Qh{constructor(e){this.options=void 0,this.api=void 0,this.cowShedSdk=void 0,this.getRpcProvider=void 0,this.info={name:"Bungee",logoUrl:`${pc}/bungee/bungee-logo.png`,dappId:Wh,website:"https://www.bungee.exchange"},this.options=e,this.api=new Hh(e.apiOptions),this.cowShedSdk=new Kc(e.cowShedOptions),this.getRpcProvider=e.getRpcProvider}getNetworks(){return Promise.resolve(Jh)}getBuyTokens(e){try{return Promise.resolve(this.api.getBuyTokens(e))}catch(e){return Promise.reject(e)}}getIntermediateTokens(e){try{const t=this;if(e.kind!==E.SELL)throw new F(O.ONLY_SELL_ORDER_SUPPORTED,{kind:e.kind});return Promise.resolve(t.api.getIntermediateTokens({fromChainId:e.sellTokenChainId,toChainId:e.buyTokenChainId,toTokenAddress:e.buyTokenAddress}))}catch(e){return Promise.reject(e)}}getQuote(e){try{const t=this,{sellTokenAddress:r,sellTokenChainId:n,buyTokenChainId:i,buyTokenAddress:o,amount:s,receiver:a,account:u,owner:l}=e,c={userAddress:t.cowShedSdk.getCowShedAccount(n,null!=l?l:u),originChainId:n.toString(),destinationChainId:i.toString(),inputToken:r,inputAmount:s.toString(),receiverAddress:null!=a?a:u,outputToken:o,includeBridges:t.options.apiOptions?.includeBridges,enableManual:!0,disableSwapping:!0,disableAuto:!0};return Promise.resolve(t.api.getBungeeQuoteWithBuildTx(c)).then(function(r){return Promise.resolve(t.api.verifyBungeeBuildTx(r.bungeeQuote,r.buildTx,jl(e.signer))).then(function(t){if(!t)throw new F(O.TX_BUILD_ERROR,r);return function(e,t,r){const{kind:n}=e,{bungeeQuote:i,buildTx:o}=r;return{isSell:n===E.SELL,amountsAndCosts:xh(e,0,i),quoteTimestamp:Number(i.quoteTimestamp),expectedFillTimeSeconds:Number(i.route.estimatedTime),fees:{bridgeFee:BigInt(i.route.routeDetails.routeFee.amount),destinationGasFee:BigInt(0)},limits:{minDeposit:BigInt(0),maxDeposit:BigInt(0)},bungeeQuote:i,buildTx:o}}(e,0,r)})})}catch(e){return Promise.reject(e)}}getUnsignedBridgeCall(e,t){try{return Promise.resolve(function(e){try{const{request:t,quote:r}=e,{bungeeQuote:n,buildTx:o}=r,s=n.routeBridge,{functionSelector:a}=Nh(o.txData.data),u=a.toLowerCase();let l=!1,c=0;const d=0n;s===Sh.Across&&(l=!0,c=Ih[s][u].outputAmount.bytes_startIndex);const h=i.utils.defaultAbiCoder.encode(["uint256","bool","uint256"],[Ih[s][u].inputAmount.bytes_startIndex,l,c]);let p=o.txData.data;p.startsWith("0x")&&(p=p.slice(2));let f=h;f.startsWith("0x")&&(f=f.slice(2));const m="0x"+p+f,y=n.input.amount,g=new i.utils.Interface(Eh).encodeFunctionData("approveAndBridge",[t.sellTokenAddress,y,d,m]),b=(t.sellTokenAddress.toLowerCase()===_e.toLowerCase()?BigInt(y):0n)+d,v=Bh[t.sellTokenChainId];if(!v)throw new Error("BungeeApproveAndBridgeV1 not found");return Promise.resolve({to:v,data:g,value:b})}catch(e){return Promise.reject(e)}}({request:e,quote:t}))}catch(e){return Promise.reject(e)}}getGasLimitEstimationForHook(e){try{const t=this;return Promise.resolve(bh(t.cowShedSdk,e,t.getRpcProvider(e.sellTokenChainId)))}catch(e){return Promise.reject(e)}}getSignedHook(e,t,r,n,i,o){try{return Promise.resolve(this.cowShedSdk.signCalls({calls:[{target:t.to,value:t.value,callData:t.data,allowFailure:!1,isDelegateCall:!0}],chainId:e,signer:r,gasLimit:BigInt(o),deadline:i,nonce:n})).then(function({signedMulticall:e,cowShedAccount:t,gasLimit:r}){const{to:n,data:i}=e;return{postHook:{target:n,callData:i,gasLimit:r.toString(),dappId:Wh},recipient:t}})}catch(e){return Promise.reject(e)}}getBridgingParams(e,t,r){try{const e=this;return Promise.resolve(e.api.getEvents({orderId:t})).then(function(r){const n=r[0];return n?Promise.resolve(Kh(r,t=>e.api.getAcrossStatus(t))).then(function(e){return{params:{inputTokenAddress:n.srcTokenAddress,outputTokenAddress:n.destTokenAddress,inputAmount:BigInt(n.srcAmount),outputAmount:n.destAmount?BigInt(n.destAmount):null,owner:n.sender,quoteTimestamp:null,fillDeadline:null,recipient:n.recipient,sourceChainId:n.fromChainId,destinationChainId:n.toChainId,bridgingId:t},status:e}}):null})}catch(e){return Promise.reject(e)}}decodeBridgeHook(e){try{throw new Error("Not implemented")}catch(e){return Promise.reject(e)}}getExplorerUrl(e){return`https://socketscan.io/tx/${e}`}getStatus(e){try{const t=this;return Promise.resolve(t.api.getEvents({orderId:e})).then(function(e){return Kh(e,e=>t.api.getAcrossStatus(e))})}catch(e){return Promise.reject(e)}}getCancelBridgingTx(e){try{throw new Error("Not implemented")}catch(e){return Promise.reject(e)}}getRefundBridgingTx(e){try{throw new Error("Not implemented")}catch(e){return Promise.reject(e)}}}const Yh=N`
|
|
1
|
+
import"cross-fetch/polyfill";import{RateLimiter as e}from"limiter";import{backOff as t}from"exponential-backoff";import{utils as r,Contract as n,ethers as i,constants as o,BigNumber as s}from"ethers";import{Signer as a,VoidSigner as u}from"@ethersproject/abstract-signer";import{MetadataApi as l,stringifyDeterministic as c}from"@cowprotocol/app-data";import{keccak256 as d,toUtf8Bytes as h,solidityKeccak256 as p,Interface as f,defaultAbiCoder as m,getCreate2Address as y,joinSignature as g,splitSignature as b,arrayify as v,formatBytes32String as A}from"ethers/lib/utils";import w from"deepmerge";import{ORDER_TYPE_FIELDS as T,OrderKind as E,SigningScheme as S,isTypedDataSigner as I,hashTypedData as k,OrderBalance as P}from"@cowprotocol/contracts";import{Planner as C,Contract as N}from"@weiroll/weiroll.js";export{Contract as WeirollContract,Planner as WeirollPlanner}from"@weiroll/weiroll.js";import{gql as x,request as _}from"graphql-request";import{StandardMerkleTree as R}from"@openzeppelin/merkle-tree";var M,O,B,D;!function(e){e.IN_PROGRESS="in_progress",e.EXECUTED="executed",e.EXPIRED="expired",e.REFUND="refund",e.UNKNOWN="unknown"}(M||(M={})),function(e){e.NO_INTERMEDIATE_TOKENS="NO_INTERMEDIATE_TOKENS",e.API_ERROR="API_ERROR",e.INVALID_API_JSON_RESPONSE="INVALID_API_JSON_RESPONSE",e.ONLY_SELL_ORDER_SUPPORTED="ONLY_SELL_ORDER_SUPPORTED",e.TX_BUILD_ERROR="TX_BUILD_ERROR",e.QUOTE_ERROR="QUOTE_ERROR",e.NO_ROUTES="NO_ROUTES",e.INVALID_BRIDGE="INVALID_BRIDGE"}(O||(O={}));class L extends Error{constructor(e,t){super(e),this.context=void 0,this.context=t,this.name="BridgeProviderQuoteError"}}class F extends Error{constructor(e,t){super(e),this.context=void 0,this.context=t,this.name="BridgeProviderError"}}class U extends Error{constructor(e,t){super(e),this.context=void 0,this.context=t,this.name="BridgeOrderParsingError"}}function G(e){return"bridge"in e}function j(e){return!G(e)}function H(e){if(!G(e))throw new Error("Quote result is not of type BridgeQuoteAndPost. Are you sure the sell and buy chains different?")}function q(e){if(!j(e))throw new Error("Quote result is not of type QuoteAndPost. Are you sure the sell and buy chains are the same?")}function V(e){if(!e)return[];const t=JSON.parse(e);return z(t)&&t.metadata.hooks&&t.metadata.hooks.post||[]}function z(e){return"object"==typeof e&&null!==e&&"version"in e&&"metadata"in e}!function(e){e[e.MAINNET=1]="MAINNET",e[e.BNB=56]="BNB",e[e.GNOSIS_CHAIN=100]="GNOSIS_CHAIN",e[e.POLYGON=137]="POLYGON",e[e.LENS=232]="LENS",e[e.BASE=8453]="BASE",e[e.ARBITRUM_ONE=42161]="ARBITRUM_ONE",e[e.AVALANCHE=43114]="AVALANCHE",e[e.SEPOLIA=11155111]="SEPOLIA"}(B||(B={})),function(e){e[e.OPTIMISM=10]="OPTIMISM"}(D||(D={}));class K extends Error{constructor(e,t){super(e),this.error_code=void 0,this.error_code=t}}let W=!1;function J(e){W&&console.log(`[COW TRADING SDK] ${e}`)}function Q(e){W=e}const Y="0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",X="https://raw.githubusercontent.com/cowprotocol/token-lists/main/src/public/images",Z={decimals:18,name:"Wrapped Ether",symbol:"WETH",logoUrl:`${X}/1/0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2/logo.png`},$={[B.MAINNET]:ee(B.MAINNET,"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",Z),[B.GNOSIS_CHAIN]:ee(B.GNOSIS_CHAIN,"0xe91D153E0b41518A2Ce8Dd3D7944Fa863463a97d",{decimals:18,name:"Wrapped XDAI",symbol:"WXDAI"}),[B.ARBITRUM_ONE]:ee(B.ARBITRUM_ONE,"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",Z),[B.BASE]:ee(B.BASE,"0x4200000000000000000000000000000000000006",Z),[B.SEPOLIA]:ee(B.SEPOLIA,"0xfFf9976782d46CC05630D1f6eBAb18b2324d6B14",Z),[B.POLYGON]:ee(B.POLYGON,"0x0d500b1d8e8ef31e21c99d1db9a6444d3adf1270",{decimals:18,name:"Wrapped POL",symbol:"WPOL"}),[B.AVALANCHE]:ee(B.AVALANCHE,"0xb31f66aa3c1e785363f0875a1b74e27b85fd66c7",{decimals:18,name:"Wrapped AVAX",symbol:"WAVAX"}),[B.LENS]:ee(B.LENS,"0x6bdc36e20d267ff0dd6097799f82e78907105e2f",{decimals:18,name:"Wrapped GHO",symbol:"WGHO"}),[B.BNB]:ee(B.BNB,"0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c",{decimals:18,name:"Wrapped BNB",symbol:"WBNB"})};function ee(e,t,r){const{logoUrl:n,...i}=r;return{chainId:e,address:t,...i,logoUrl:n||`${X}/${e}/${t.toLowerCase()}/logo.png`}}const te={address:Y,decimals:18,name:"Ether",symbol:"ETH",logoUrl:`${X}/1/${Y}/logo.png`},re="https://raw.githubusercontent.com/cowprotocol/cow-sdk/refs/heads/main",ne=`${re}/src/chains`,ie=`${ne}/images/arbitrum-logo-light.svg`,oe=`${ne}/images/arbitrum-logo-dark.svg`,se={id:B.ARBITRUM_ONE,label:"Arbitrum",eip155Label:"Arbitrum One",nativeCurrency:{...te,chainId:B.ARBITRUM_ONE},addressPrefix:"arb1",isTestnet:!1,contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:7654707}},rpcUrls:{default:{http:["https://arb1.arbitrum.io/rpc"]}},color:"#1B4ADD",logo:{light:ie,dark:oe},website:{name:"Arbitrum",url:"https://arbitrum.io"},docs:{name:"Arbitrum Docs",url:"https://docs.arbitrum.io"},blockExplorer:{name:"Arbiscan",url:"https://arbiscan.io"},bridges:[{name:"Arbitrum Bridge",url:"https://bridge.arbitrum.io"}]},ae=`${ne}/images/base-logo.svg`,ue={id:B.BASE,label:"Base",eip155Label:"Base",nativeCurrency:{...te,chainId:B.BASE},addressPrefix:"base",isTestnet:!1,contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:5022}},rpcUrls:{default:{http:["https://mainnet.base.org"]}},color:"#0052FF",logo:{light:ae,dark:ae},website:{name:"Base",url:"https://base.org"},docs:{name:"Base Docs",url:"https://docs.base.org"},blockExplorer:{name:"Basescan",url:"https://basescan.org"},bridges:[{name:"Superchain Bridges",url:"https://bridge.base.org/deposit"}]},le=`${ne}/images/gnosis-logo.svg`,ce={id:B.GNOSIS_CHAIN,label:"Gnosis",eip155Label:"Gnosis",nativeCurrency:{...te,chainId:B.GNOSIS_CHAIN,name:"xDAI",symbol:"xDAI",logoUrl:`${X}/100/${Y}/logo.png`},addressPrefix:"gno",isTestnet:!1,contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:21022491}},rpcUrls:{default:{http:["https://rpc.gnosischain.com"],webSocket:["wss://rpc.gnosischain.com/wss"]}},color:"#07795B",logo:{light:le,dark:le},website:{name:"Gnosis Chain",url:"https://www.gnosischain.com"},docs:{name:"Gnosis Chain Docs",url:"https://docs.gnosischain.com"},blockExplorer:{name:"Gnosisscan",url:"https://gnosisscan.io"},bridges:[{name:"Gnosis Chain Bridge",url:"https://bridge.gnosischain.com"}]},de=`${ne}/images/mainnet-logo.svg`,he={id:B.MAINNET,label:"Ethereum",eip155Label:"Ethereum Mainnet",nativeCurrency:{...te,chainId:B.MAINNET},addressPrefix:"eth",isTestnet:!1,contracts:{ensRegistry:{address:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e"},ensUniversalResolver:{address:"0xce01f8eee7E479C928F8919abD53E553a36CeF67",blockCreated:19258213},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:14353601}},rpcUrls:{default:{http:["https://eth.merkle.io"]}},color:"#62688F",logo:{light:de,dark:de},website:{name:"Ethereum",url:"https://ethereum.org"},docs:{name:"Ethereum Docs",url:"https://ethereum.org/en/developers/docs"},blockExplorer:{name:"Etherscan",url:"https://etherscan.io"}},pe=`${ne}/images/sepolia-logo.svg`,fe={id:B.SEPOLIA,label:"Sepolia",eip155Label:"Ethereum Sepolia",nativeCurrency:{...te,chainId:B.SEPOLIA},addressPrefix:"sep",isTestnet:!0,contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:751532},ensRegistry:{address:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e"},ensUniversalResolver:{address:"0xc8Af999e38273D658BE1b921b88A9Ddf005769cC",blockCreated:5317080}},rpcUrls:{default:{http:["https://sepolia.drpc.org"]}},color:"#C12FF2",logo:{light:pe,dark:pe},website:{name:"Ethereum",url:"https://sepolia.dev"},docs:{name:"Sepolia Docs",url:"https://ethereum.org/en/developers/docs/networks/#sepolia"},blockExplorer:{name:"Etherscan",url:"https://sepolia.etherscan.io"}},me=`${ne}/images/avax-logo.svg`,ye={id:B.AVALANCHE,label:"Avalanche",eip155Label:"Avalanche C-Chain",logo:{light:me,dark:me},nativeCurrency:{...te,chainId:B.AVALANCHE,name:"Avalanche",symbol:"AVAX",logoUrl:me},addressPrefix:"avax",isTestnet:!1,contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:11907934}},rpcUrls:{default:{http:["https://api.avax.network/ext/bc/C/rpc"]}},color:"#ff3944",website:{name:"Avalanche",url:"https://www.avax.network/"},docs:{name:"Avalanche Docs",url:"https://build.avax.network/docs"},blockExplorer:{name:"Snowscan",url:"https://snowscan.xyz"}},ge=`${ne}/images/bnb-logo.svg`,be={id:B.BNB,label:"BNB",eip155Label:"BNB Chain Mainnet",logo:{light:ge,dark:ge},nativeCurrency:{...te,chainId:B.BNB,name:"BNB Chain Native Token",symbol:"BNB",logoUrl:ge},addressPrefix:"bnb",isTestnet:!1,contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:15921452}},rpcUrls:{default:{http:["https://bsc-dataseed1.bnbchain.org"]}},color:"#F0B90B",website:{name:"BNB Chain",url:"https://www.bnbchain.org"},docs:{name:"BNB Chain Docs",url:"https://docs.bnbchain.org"},blockExplorer:{name:"BNB Smart Chain Explorer",url:"https://bscscan.com"}},ve=`${ne}/images/lens-logo.svg`,Ae=`${X}/1/0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f/logo.png`,we={id:B.LENS,label:"Lens",eip155Label:"Lens Chain Mainnet",logo:{light:ve,dark:ve},nativeCurrency:{...te,chainId:B.LENS,name:"GHO",symbol:"GHO",logoUrl:Ae},addressPrefix:"lens",isTestnet:!1,contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:1724216}},rpcUrls:{default:{http:["https://rpc.lens.xyz"]}},color:"#FFFFFF",website:{name:"Lens",url:"https://www.lens.xyz"},docs:{name:"Lens Docs",url:"https://docs.lens.xyz"},blockExplorer:{name:"Lens Explorer",url:"https://explorer.lens.xyz"},bridges:[{name:"Lens Bridge",url:"https://lens.xyz/bridge"}]},Te=`${ne}/images/optimism-logo.svg`,Ee={id:10,label:"Optimism",eip155Label:"OP Mainnet",logo:{light:Te,dark:Te},nativeCurrency:{...te,chainId:10},addressPrefix:"op",isTestnet:!1,contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:4286263}},rpcUrls:{default:{http:["https://mainnet.optimism.io"]}},color:"#ff0420",website:{name:"Optimism",url:"https://optimism.io"},docs:{name:"Optimism Docs",url:"https://docs.optimism.io"},blockExplorer:{name:"Etherscan",url:"https://optimistic.etherscan.io"}},Se=`${ne}/images/polygon-logo.svg`,Ie={id:B.POLYGON,label:"Polygon",eip155Label:"Polygon Mainnet",logo:{light:Se,dark:Se},nativeCurrency:{...te,chainId:B.POLYGON,name:"POL",symbol:"POL",logoUrl:Se},addressPrefix:"matic",isTestnet:!1,contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:25770160}},rpcUrls:{default:{http:["https://polygon-rpc.com"]}},color:"#8247e5",website:{name:"Polygon",url:"https://polygon.technology"},docs:{name:"Polygon Docs",url:"https://docs.polygon.technology"},blockExplorer:{name:"Polygonscan",url:"https://polygonscan.com"}},ke={[B.MAINNET]:he,[B.GNOSIS_CHAIN]:ce,[B.ARBITRUM_ONE]:se,[B.BASE]:ue,[B.AVALANCHE]:ye,[B.POLYGON]:Ie,[B.BNB]:be,[B.LENS]:we,[B.SEPOLIA]:fe},Pe=Object.values(ke),Ce=Pe.map(e=>e.id),Ne={[D.OPTIMISM]:Ee},xe=Pe.concat(Object.values(Ne)),_e=xe.map(e=>e.id),Re=["prod","staging"],Me={env:"prod",chainId:B.MAINNET};function Oe(e){return Ce.reduce((t,r)=>({...t,[r]:"function"==typeof e?e(r):e}),{})}function Be(e){return Oe(e)}const De="0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",Le="0x2f55e8b20D0B9FEFA187AA7d00B6Cbe563605bF5",Fe="0xfdaFc9d1902f4e0b84f65F49f244b32b31013b74",Ue="1.0.0",Ge="1.0.1",je=Ge,He={[Ue]:"0x00E989b87700514118Fa55326CD1cCE82faebEF6",[Ge]:"0x312f92fe5f1710408B20D52A374fa29e099cFA86"},qe={[Ue]:"0x2CFFA8cf11B90C9F437567b86352169dF4009F73",[Ge]:"0xa2704cf562ad418bf0453f4b662ebf6a2489ed88"},Ve={[Ue]:"0x60a034608e57601f61037138819003918201601f19168301916001600160401b038311848410176093578084926040948552833981010312608e57604b602060458360a9565b920160a9565b6080527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc556040516102b490816100bd8239608051818181608f01526101720152f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b0382168203608e5756fe60806040526004361015610018575b3661019457610194565b6000803560e01c908163025b22bc1461003b575063f851a4400361000e5761010d565b3461010a5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261010a5773ffffffffffffffffffffffffffffffffffffffff60043581811691828203610106577f0000000000000000000000000000000000000000000000000000000000000000163314600014610101577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8280a280f35b61023d565b8380fd5b80fd5b346101645760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610164576020610146610169565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b600080fd5b333003610101577f000000000000000000000000000000000000000000000000000000000000000090565b60ff7f68df44b1011761f481358c0f49a711192727fb02c377d697bcb0ea8ff8393ac0541615806101ef575b1561023d5760046040517ff92ee8a9000000000000000000000000000000000000000000000000000000008152fd5b507f400ada75000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000006000351614156101c0565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546000808092368280378136915af43d82803e1561027a573d90f35b3d90fdfea2646970667358221220c7c26ff3040b96a28e96d6d27b743972943aeaef81cc821544c5fe1e24f9b17264736f6c63430008190033",[Ge]:"0x60a03461009557601f61033d38819003918201601f19168301916001600160401b0383118484101761009957808492604094855283398101031261009557610052602061004b836100ad565b92016100ad565b6080527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5560405161027b90816100c28239608051818181608b01526101750152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036100955756fe60806040526004361015610018575b3661019757610197565b5f3560e01c8063025b22bc146100375763f851a4400361000e57610116565b346101125760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101125760043573ffffffffffffffffffffffffffffffffffffffff81169081810361011257337f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff160361010d577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2005b61023d565b5f80fd5b34610112575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011257602061014e61016c565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b33300361010d577f000000000000000000000000000000000000000000000000000000000000000090565b60ff7f68df44b1011761f481358c0f49a711192727fb02c377d697bcb0ea8ff8393ac0541615806101f0575b1561023d577ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b507f400ada75000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000005f351614156101c3565b5f807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54368280378136915af43d5f803e15610277573d5ff35b3d5ffd"},ze=Be("0x9008D19f58AAbD9eD0D60971565AA8510560ab41"),Ke=Be("0xC92E8bdf79f0507f65a392b0ab4667716BFE0110"),We=Be(Le),Je=Be(Fe),Qe={...Be("0xba3cb449bd2b4adddbc894d8697f5170800eadec"),[B.LENS]:"0x5A5b8aE7a0b4C0EAf453d10DCcfbA413f07ebdC2"},Ye={...Be("0x04501b9b1d52e67f6862d157e00d13419d2d6e95"),[B.LENS]:"0xFb337f8a725A142f65fb9ff4902d41cc901de222"},Xe=4294967295,Ze="https://gnosis.mypinata.cloud/ipfs",$e="https://api.pinata.cloud",et=(e,t)=>"bigint"==typeof t||"object"==typeof t&&null!==t&&"_isBigNumber"in t?t.toString():t,tt=function(e,{path:r,query:n,method:i,body:o},s,a){try{const u={Accept:"application/json","Content-Type":"application/json"},l=`${e}${r}${n?"?"+n:""}`,c={method:i,body:(()=>{if(o)return"string"==typeof o?o:JSON.stringify(o)})(),headers:u};return Promise.resolve(t(function(){try{return Promise.resolve(s.removeTokens(1)).then(function(){return Promise.resolve(fetch(l,c)).then(function(e){return Promise.resolve(st(e)).then(function(t){return e.status>=200&&e.status<300?t:Promise.reject(new rt(e,t))})})})}catch(e){return Promise.reject(e)}},a))}catch(e){return Promise.reject(e)}};class rt extends Error{constructor(e,t){super("string"==typeof t?t:e.statusText),this.response=void 0,this.body=void 0,this.response=e,this.body=t}}const nt=[408,425,429,500,502,503,504],it={numOfAttempts:10,maxDelay:Infinity,jitter:"none",retry:e=>!(e instanceof rt)||nt.includes(e.response.status)},ot={tokensPerInterval:5,interval:"second"},st=function(e){try{let t;const r=function(){if(204!==e.status)return function(r,n){try{var i=function(){const r=e.headers.get("Content-Type");return function(){if(r)return r.toLowerCase().startsWith("application/json")?Promise.resolve(e.json()).then(function(e){return t=1,e}):Promise.resolve(e.text()).then(function(e){return t=1,e})}()}()}catch(e){return n(e)}return i&&i.then?i.then(void 0,n):i}(0,function(e){console.error(e)})}();return Promise.resolve(r&&r.then?r.then(function(e){return t?e:void 0}):t?r:void 0)}catch(e){return Promise.reject(e)}};function at(e){return function(e){const{ethflowData:t}=e;if(!t)return e;const{userValidTo:r}=t,n=e.onchainUser||e.owner,i=De;return{...e,validTo:r,owner:n,sellToken:i}}(function(e){const{executedFeeAmount:t,executedFee:r}=e,n=BigInt(t||"0"),i=BigInt(r||"0"),o=String(n+i);return{...e,totalFee:o}}(e))}const ut={[B.MAINNET]:"https://api.cow.fi/mainnet",[B.GNOSIS_CHAIN]:"https://api.cow.fi/xdai",[B.ARBITRUM_ONE]:"https://api.cow.fi/arbitrum_one",[B.BASE]:"https://api.cow.fi/base",[B.SEPOLIA]:"https://api.cow.fi/sepolia",[B.POLYGON]:"https://api.cow.fi/polygon",[B.AVALANCHE]:"https://api.cow.fi/avalanche",[B.LENS]:"https://api.cow.fi/lens",[B.BNB]:"https://api.cow.fi/bnb"},lt={[B.MAINNET]:"https://barn.api.cow.fi/mainnet",[B.GNOSIS_CHAIN]:"https://barn.api.cow.fi/xdai",[B.ARBITRUM_ONE]:"https://barn.api.cow.fi/arbitrum_one",[B.BASE]:"https://barn.api.cow.fi/base",[B.SEPOLIA]:"https://barn.api.cow.fi/sepolia",[B.POLYGON]:"https://barn.api.cow.fi/polygon",[B.AVALANCHE]:"https://barn.api.cow.fi/avalanche",[B.LENS]:"https://barn.api.cow.fi/lens",[B.BNB]:"https://barn.api.cow.fi/bnb"};function ct(e){return Object.keys(e).reduce((t,r)=>{const n=e[r];return void 0!==n&&(t[r]=n),t},{})}class dt{constructor(t={}){this.context=void 0,this.rateLimiter=void 0,this.context={...Me,...t},this.rateLimiter=new e(t.limiterOpts||ot)}getVersion(e={}){return this.fetch({path:"/api/v1/version",method:"GET"},e)}getTrades(e,t={}){if(e.owner&&e.orderUid)return Promise.reject(new K("Cannot specify both owner and orderId"));if(!e.owner&&!e.orderUid)return Promise.reject(new K("Must specify either owner or orderId"));const r=new URLSearchParams(ct(e));return this.fetch({path:"/api/v1/trades",method:"GET",query:r},t)}getOrders({owner:e,offset:t=0,limit:r=1e3},n={}){const i=new URLSearchParams(ct({offset:t.toString(),limit:r.toString()}));return this.fetch({path:`/api/v1/account/${e}/orders`,method:"GET",query:i},n).then(e=>e.map(at))}getTxOrders(e,t={}){return this.fetch({path:`/api/v1/transactions/${e}/orders`,method:"GET"},t).then(e=>e.map(at))}getOrder(e,t={}){return this.fetch({path:`/api/v1/orders/${e}`,method:"GET"},t).then(e=>at(e))}getOrderCompetitionStatus(e,t={}){return this.fetch({path:`/api/v1/orders/${e}/status`,method:"GET"},t)}getOrderMultiEnv(e,t={}){const{env:r}=this.getContextWithOverride(t),n=Re.filter(e=>e!==r);let i=0;const o=r=>{const s=n[i];return r instanceof rt&&404===r.response.status&&s?(i++,this.getOrder(e,{...t,env:s}).catch(o)):Promise.reject(r)};return this.getOrder(e,{...t,env:r}).catch(o)}getQuote(e,t={}){return this.fetch({path:"/api/v1/quote",method:"POST",body:e},t)}sendSignedOrderCancellations(e,t={}){return this.fetch({path:"/api/v1/orders",method:"DELETE",body:e},t)}sendOrder(e,t={}){return this.fetch({path:"/api/v1/orders",method:"POST",body:e},t)}getNativePrice(e,t={}){return this.fetch({path:`/api/v1/token/${e}/native_price`,method:"GET"},t)}getTotalSurplus(e,t={}){return this.fetch({path:`/api/v1/users/${e}/total_surplus`,method:"GET"},t)}getAppData(e,t={}){return this.fetch({path:`/api/v1/app_data/${e}`,method:"GET"},t)}uploadAppData(e,t,r={}){return this.fetch({path:`/api/v1/app_data/${e}`,method:"PUT",body:{fullAppData:t}},r)}getSolverCompetition(e,t={}){return this.fetch({path:`/api/v1/solver_competition${"string"==typeof e?"/by_tx_hash":""}/${e}`,method:"GET"},t)}getOrderLink(e,t){const{chainId:r,env:n}=this.getContextWithOverride(t);return this.getApiBaseUrls(n)[r]+`/api/v1/orders/${e}`}getContextWithOverride(e={}){return{...this.context,...e}}getApiBaseUrls(e){return this.context.baseUrls?this.context.baseUrls:"prod"===e?ut:lt}fetch(t,r={}){const{chainId:n,env:i,backoffOpts:o}=this.getContextWithOverride(r),s=this.getApiBaseUrls(i)[n],a=o||it,u=r.limiterOpts?new e(r.limiterOpts):this.rateLimiter;return J(`Fetching OrderBook API: ${s}${t.path}. Params: ${JSON.stringify(t,et)}`),tt(s,t,u,a)}}var ht,pt,ft,mt,yt,gt,bt,vt,At,wt,Tt,Et,St,It,kt;!function(e){e.ERC20="erc20",e.INTERNAL="internal"}(ht||(ht={})),function(e){var t;(t=e.type||(e.type={})).OPEN="open",t.SCHEDULED="scheduled",t.ACTIVE="active",t.SOLVED="solved",t.EXECUTING="executing",t.TRADED="traded",t.CANCELLED="cancelled"}(pt||(pt={})),function(e){e.EIP712="eip712",e.ETHSIGN="ethsign"}(ft||(ft={})),function(e){var t;(t=e.placementError||(e.placementError={})).QUOTE_NOT_FOUND="QuoteNotFound",t.VALID_TO_TOO_FAR_IN_FUTURE="ValidToTooFarInFuture",t.PRE_VALIDATION_ERROR="PreValidationError"}(mt||(mt={})),function(e){var t;(t=e.errorType||(e.errorType={})).INVALID_SIGNATURE="InvalidSignature",t.WRONG_OWNER="WrongOwner",t.ORDER_NOT_FOUND="OrderNotFound",t.ALREADY_CANCELLED="AlreadyCancelled",t.ORDER_FULLY_EXECUTED="OrderFullyExecuted",t.ORDER_EXPIRED="OrderExpired",t.ON_CHAIN_ORDER="OnChainOrder"}(yt||(yt={})),function(e){e.MARKET="market",e.LIMIT="limit",e.LIQUIDITY="liquidity"}(gt||(gt={})),function(e){e.BUY="buy",e.SELL="sell"}(bt||(bt={})),function(e){var t;(t=e.errorType||(e.errorType={})).DUPLICATED_ORDER="DuplicatedOrder",t.QUOTE_NOT_FOUND="QuoteNotFound",t.QUOTE_NOT_VERIFIED="QuoteNotVerified",t.INVALID_QUOTE="InvalidQuote",t.MISSING_FROM="MissingFrom",t.WRONG_OWNER="WrongOwner",t.INVALID_EIP1271SIGNATURE="InvalidEip1271Signature",t.INSUFFICIENT_BALANCE="InsufficientBalance",t.INSUFFICIENT_ALLOWANCE="InsufficientAllowance",t.INVALID_SIGNATURE="InvalidSignature",t.SELL_AMOUNT_OVERFLOW="SellAmountOverflow",t.TRANSFER_SIMULATION_FAILED="TransferSimulationFailed",t.ZERO_AMOUNT="ZeroAmount",t.INCOMPATIBLE_SIGNING_SCHEME="IncompatibleSigningScheme",t.TOO_MANY_LIMIT_ORDERS="TooManyLimitOrders",t.TOO_MUCH_GAS="TooMuchGas",t.UNSUPPORTED_BUY_TOKEN_DESTINATION="UnsupportedBuyTokenDestination",t.UNSUPPORTED_SELL_TOKEN_SOURCE="UnsupportedSellTokenSource",t.UNSUPPORTED_ORDER_TYPE="UnsupportedOrderType",t.INSUFFICIENT_VALID_TO="InsufficientValidTo",t.EXCESSIVE_VALID_TO="ExcessiveValidTo",t.INVALID_NATIVE_SELL_TOKEN="InvalidNativeSellToken",t.SAME_BUY_AND_SELL_TOKEN="SameBuyAndSellToken",t.UNSUPPORTED_TOKEN="UnsupportedToken",t.INVALID_APP_DATA="InvalidAppData",t.APP_DATA_HASH_MISMATCH="AppDataHashMismatch",t.APPDATA_FROM_MISMATCH="AppdataFromMismatch"}(vt||(vt={})),function(e){e.BUY="buy"}(At||(At={})),function(e){e.SELL="sell"}(wt||(wt={})),function(e){e.PRESIGNATURE_PENDING="presignaturePending",e.OPEN="open",e.FULFILLED="fulfilled",e.CANCELLED="cancelled",e.EXPIRED="expired"}(Tt||(Tt={})),function(e){var t;(t=e.errorType||(e.errorType={})).QUOTE_NOT_VERIFIED="QuoteNotVerified",t.UNSUPPORTED_TOKEN="UnsupportedToken",t.ZERO_AMOUNT="ZeroAmount",t.UNSUPPORTED_ORDER_TYPE="UnsupportedOrderType"}(Et||(Et={})),function(e){e.FAST="fast",e.OPTIMAL="optimal",e.VERIFIED="verified"}(St||(St={})),function(e){e.ERC20="erc20",e.INTERNAL="internal",e.EXTERNAL="external"}(It||(It={})),function(e){e.EIP712="eip712",e.ETHSIGN="ethsign",e.PRESIGN="presign",e.EIP1271="eip1271"}(kt||(kt={}));const Pt=BigInt(1e4);function Ct(e){const{sellDecimals:t,buyDecimals:r,orderParams:n}=e,{sellAmountAfterNetworkCosts:i,buyAmountAfterNetworkCosts:o,buyAmountBeforeNetworkCosts:s,isSell:a,networkCostAmount:u,quotePrice:l,sellAmountBeforeNetworkCosts:c}=Nt({sellDecimals:t,buyDecimals:r,orderParams:n});return{isSell:a,quotePrice:l,sellAmountAfterNetworkCosts:i.big,buyAmountAfterNetworkCosts:o.big,buyAmountBeforeNetworkCosts:s.big,networkCostAmount:u.big,sellAmountBeforeNetworkCosts:c.big}}function Nt(e){const{sellDecimals:t,buyDecimals:r,orderParams:n}=e,i=n.kind===bt.SELL,o=_t(n.feeAmount,t),s=_t(n.sellAmount,t),a=_t(n.buyAmount,r),u=a.num/s.num,l=_t(s.big+o.big,t);return{isSell:i,quotePrice:u,networkCostAmount:o,sellAmountBeforeNetworkCosts:s,buyAmountAfterNetworkCosts:a,sellAmountAfterNetworkCosts:l,buyAmountBeforeNetworkCosts:_t(u*l.num,r)}}function xt(e){var t;const{orderParams:r,sellDecimals:n,buyDecimals:i,slippagePercentBps:o}=e,s=null!==(t=e.partnerFeeBps)&&void 0!==t?t:0,{isSell:a,networkCostAmount:u,sellAmountBeforeNetworkCosts:l,buyAmountAfterNetworkCosts:c,sellAmountAfterNetworkCosts:d,buyAmountBeforeNetworkCosts:h,quotePrice:p}=Nt({sellDecimals:n,buyDecimals:i,orderParams:r}),{afterPartnerFees:f,partnerFeeAmount:m}=function(e){const{sellAmountAfterNetworkCosts:t,buyAmountAfterNetworkCosts:r,buyAmountBeforeNetworkCosts:n,sellAmountBeforeNetworkCosts:i,isSell:o,partnerFeeBps:s}=e,a=s>0?(o?n.big:i.big)*BigInt(s)/Pt:BigInt(0);return{partnerFeeAmount:a,afterPartnerFees:o?{sellAmount:t.big,buyAmount:r.big-a}:{sellAmount:t.big+a,buyAmount:r.big}}}({sellAmountAfterNetworkCosts:d,buyAmountAfterNetworkCosts:c,buyAmountBeforeNetworkCosts:h,sellAmountBeforeNetworkCosts:l,isSell:a,partnerFeeBps:s}),{afterSlippage:y}=function(e){const{afterPartnerFees:t,isSell:r,slippagePercentBps:n}=e,i=e=>e*BigInt(n)/Pt;return{afterSlippage:r?{sellAmount:t.sellAmount,buyAmount:t.buyAmount-i(t.buyAmount)}:{sellAmount:t.sellAmount+i(t.sellAmount),buyAmount:t.buyAmount}}}({afterPartnerFees:f,isSell:a,slippagePercentBps:o});return{isSell:a,costs:{networkFee:{amountInSellCurrency:u.big,amountInBuyCurrency:_t(p*u.num,i).big},partnerFee:{amount:m,bps:s}},beforeNetworkCosts:{sellAmount:l.big,buyAmount:h.big},afterNetworkCosts:{sellAmount:d.big,buyAmount:c.big},afterPartnerFees:f,afterSlippage:y}}function _t(e,t){if("number"==typeof e){const r=e*10**t,n=r.toFixed();return{big:BigInt(n.includes("e")?r:n),num:e}}const r=BigInt(e);return{big:r,num:Number(r)/10**t}}const Rt={[ft.EIP712]:kt.EIP712,[ft.ETHSIGN]:kt.ETHSIGN},Mt=BigInt(15e4),Ot=()=>import("./utils-65f87588.js");class Bt{static signOrder(e,t,r){try{return Promise.resolve(Ot()).then(function({signOrder:n}){return n(e,t,r)})}catch(e){return Promise.reject(e)}}static signOrderCancellation(e,t,r){try{return Promise.resolve(Ot()).then(function({signOrderCancellation:n}){return n(e,t,r)})}catch(e){return Promise.reject(e)}}static signOrderCancellations(e,t,r){try{return Promise.resolve(Ot()).then(function({signOrderCancellations:n}){return n(e,t,r)})}catch(e){return Promise.reject(e)}}static getDomain(e){try{return Promise.resolve(Ot()).then(function({getDomain:t}){return t(e)})}catch(e){return Promise.reject(e)}}static generateOrderId(e,t,r){try{return Promise.resolve(Ot()).then(function({generateOrderId:n}){return n(e,t,r)})}catch(e){return Promise.reject(e)}}static getDomainSeparator(e){try{return Promise.resolve(Ot()).then(function({getDomain:t}){return Promise.resolve(import("ethers/lib/utils")).then(function({_TypedDataEncoder:r}){return r.hashDomain(t(e))})})}catch(e){return Promise.reject(e)}}static getEIP712Types(){return{Order:[{name:"sellToken",type:"address"},{name:"buyToken",type:"address"},{name:"receiver",type:"address"},{name:"sellAmount",type:"uint256"},{name:"buyAmount",type:"uint256"},{name:"validTo",type:"uint32"},{name:"appData",type:"bytes32"},{name:"feeAmount",type:"uint256"},{name:"kind",type:"string"},{name:"partiallyFillable",type:"bool"},{name:"sellTokenBalance",type:"string"},{name:"buyTokenBalance",type:"string"}]}}}function Dt(e){if(e){if("volumeBps"in e)return e.volumeBps;if(Array.isArray(e))for(const t of e)if("volumeBps"in t)return t.volumeBps}}function Lt(e){return Ft(e)?ke[e]:Ut(e)?Ne[e]:void 0}function Ft(e){return e in ke}function Ut(e){return e in Ne}function Gt(e){return Ft(e)||Ut(e)}const jt=10n**6n,Ht=50,qt={...Oe(Ht),[B.MAINNET]:200};function Vt(e,t){return t?qt[e]:Ht}function zt(e){return{...e,sellTokenBalance:e.sellTokenBalance,buyTokenBalance:e.buyTokenBalance}}const Kt=1800;function Wt({chainId:e,from:t,networkCostsAmount:r="0",isEthFlow:n},i,o){const{sellAmount:s,buyAmount:a,sellToken:u,sellTokenDecimals:l,buyToken:c,buyTokenDecimals:d,kind:h,partiallyFillable:p=!1,slippageBps:f=Vt(e,n),partnerFee:m,validFor:y=Kt}=i,g=i.receiver||t,b=i.validTo||Number(function(e){return BigInt(Math.floor(Date.now()/1e3)+e)}(y)),v={sellToken:u,buyToken:c,sellAmount:s,buyAmount:a,receiver:g,validTo:b,kind:h,feeAmount:r,appData:o,partiallyFillable:p},{afterSlippage:A}=xt({orderParams:v,slippagePercentBps:f,partnerFeeBps:Dt(m),sellDecimals:l,buyDecimals:d});return{sellToken:u,buyToken:c,sellAmount:A.sellAmount.toString(),buyAmount:A.buyAmount.toString(),validTo:b,kind:h,partiallyFillable:p,appData:o,receiver:g,feeAmount:"0",sellTokenBalance:It.ERC20,buyTokenBalance:ht.ERC20}}const Jt=[{inputs:[{internalType:"address",name:"impl",type:"address"},{internalType:"bytes32",name:"bName",type:"bytes32"},{internalType:"bytes32",name:"bNode",type:"bytes32"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"InvalidSignature",type:"error"},{inputs:[],name:"NonceAlreadyUsed",type:"error"},{inputs:[],name:"SettingEnsRecordsFailed",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"user",type:"address"},{indexed:!1,internalType:"address",name:"shed",type:"address"}],name:"COWShedBuilt",type:"event"},{inputs:[{internalType:"bytes32",name:"node",type:"bytes32"}],name:"addr",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"baseName",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"baseNode",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"uint256",name:"value",type:"uint256"},{internalType:"bytes",name:"callData",type:"bytes"},{internalType:"bool",name:"allowFailure",type:"bool"},{internalType:"bool",name:"isDelegateCall",type:"bool"}],internalType:"struct Call[]",name:"calls",type:"tuple[]"},{internalType:"bytes32",name:"nonce",type:"bytes32"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"address",name:"user",type:"address"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"executeHooks",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"forwardResolutionNodeToAddress",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"implementation",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"user",type:"address"}],name:"initializeEns",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"bool",name:"withEns",type:"bool"}],name:"initializeProxy",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"node",type:"bytes32"}],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"ownerOf",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"who",type:"address"}],name:"proxyOf",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"reverseResolutionNodeToAddress",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"pure",type:"function"}];class Qt{static createInterface(){return new r.Interface(Jt)}static connect(e,t){return new n(e,Jt,t)}}Qt.abi=Jt;const Yt=[{inputs:[{internalType:"address",name:"_settlement",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"InterfaceNotSupported",type:"error"},{inputs:[],name:"InvalidHandler",type:"error"},{inputs:[],name:"ProofNotAuthed",type:"error"},{inputs:[],name:"SingleOrderNotAuthed",type:"error"},{inputs:[],name:"SwapGuardRestricted",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{components:[{internalType:"contract IConditionalOrder",name:"handler",type:"address"},{internalType:"bytes32",name:"salt",type:"bytes32"},{internalType:"bytes",name:"staticInput",type:"bytes"}],indexed:!1,internalType:"struct IConditionalOrder.ConditionalOrderParams",name:"params",type:"tuple"}],name:"ConditionalOrderCreated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!1,internalType:"bytes32",name:"root",type:"bytes32"},{components:[{internalType:"uint256",name:"location",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],indexed:!1,internalType:"struct ComposableCoW.Proof",name:"proof",type:"tuple"}],name:"MerkleRootSet",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!1,internalType:"contract ISwapGuard",name:"swapGuard",type:"address"}],name:"SwapGuardSet",type:"event"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"bytes32",name:"",type:"bytes32"}],name:"cabinet",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"contract IConditionalOrder",name:"handler",type:"address"},{internalType:"bytes32",name:"salt",type:"bytes32"},{internalType:"bytes",name:"staticInput",type:"bytes"}],internalType:"struct IConditionalOrder.ConditionalOrderParams",name:"params",type:"tuple"},{internalType:"bool",name:"dispatch",type:"bool"}],name:"create",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"contract IConditionalOrder",name:"handler",type:"address"},{internalType:"bytes32",name:"salt",type:"bytes32"},{internalType:"bytes",name:"staticInput",type:"bytes"}],internalType:"struct IConditionalOrder.ConditionalOrderParams",name:"params",type:"tuple"},{internalType:"contract IValueFactory",name:"factory",type:"address"},{internalType:"bytes",name:"data",type:"bytes"},{internalType:"bool",name:"dispatch",type:"bool"}],name:"createWithContext",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"domainSeparator",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{components:[{internalType:"contract IConditionalOrder",name:"handler",type:"address"},{internalType:"bytes32",name:"salt",type:"bytes32"},{internalType:"bytes",name:"staticInput",type:"bytes"}],internalType:"struct IConditionalOrder.ConditionalOrderParams",name:"params",type:"tuple"},{internalType:"bytes",name:"offchainInput",type:"bytes"},{internalType:"bytes32[]",name:"proof",type:"bytes32[]"}],name:"getTradeableOrderWithSignature",outputs:[{components:[{internalType:"contract IERC20",name:"sellToken",type:"address"},{internalType:"contract IERC20",name:"buyToken",type:"address"},{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256",name:"sellAmount",type:"uint256"},{internalType:"uint256",name:"buyAmount",type:"uint256"},{internalType:"uint32",name:"validTo",type:"uint32"},{internalType:"bytes32",name:"appData",type:"bytes32"},{internalType:"uint256",name:"feeAmount",type:"uint256"},{internalType:"bytes32",name:"kind",type:"bytes32"},{internalType:"bool",name:"partiallyFillable",type:"bool"},{internalType:"bytes32",name:"sellTokenBalance",type:"bytes32"},{internalType:"bytes32",name:"buyTokenBalance",type:"bytes32"}],internalType:"struct GPv2Order.Data",name:"order",type:"tuple"},{internalType:"bytes",name:"signature",type:"bytes"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"contract IConditionalOrder",name:"handler",type:"address"},{internalType:"bytes32",name:"salt",type:"bytes32"},{internalType:"bytes",name:"staticInput",type:"bytes"}],internalType:"struct IConditionalOrder.ConditionalOrderParams",name:"params",type:"tuple"}],name:"hash",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"contract Safe",name:"safe",type:"address"},{internalType:"address",name:"sender",type:"address"},{internalType:"bytes32",name:"_hash",type:"bytes32"},{internalType:"bytes32",name:"_domainSeparator",type:"bytes32"},{internalType:"bytes32",name:"",type:"bytes32"},{internalType:"bytes",name:"encodeData",type:"bytes"},{internalType:"bytes",name:"payload",type:"bytes"}],name:"isValidSafeSignature",outputs:[{internalType:"bytes4",name:"magic",type:"bytes4"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"singleOrderHash",type:"bytes32"}],name:"remove",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"roots",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"root",type:"bytes32"},{components:[{internalType:"uint256",name:"location",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],internalType:"struct ComposableCoW.Proof",name:"proof",type:"tuple"}],name:"setRoot",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"root",type:"bytes32"},{components:[{internalType:"uint256",name:"location",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],internalType:"struct ComposableCoW.Proof",name:"proof",type:"tuple"},{internalType:"contract IValueFactory",name:"factory",type:"address"},{internalType:"bytes",name:"data",type:"bytes"}],name:"setRootWithContext",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract ISwapGuard",name:"swapGuard",type:"address"}],name:"setSwapGuard",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"bytes32",name:"",type:"bytes32"}],name:"singleOrders",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"swapGuards",outputs:[{internalType:"contract ISwapGuard",name:"",type:"address"}],stateMutability:"view",type:"function"}];class Xt{static createInterface(){return new r.Interface(Yt)}static connect(e,t){return new n(e,Yt,t)}}Xt.abi=Yt;const Zt=[{inputs:[{components:[{internalType:"contract IERC20",name:"buyToken",type:"address"},{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256",name:"sellAmount",type:"uint256"},{internalType:"uint256",name:"buyAmount",type:"uint256"},{internalType:"bytes32",name:"appData",type:"bytes32"},{internalType:"uint256",name:"feeAmount",type:"uint256"},{internalType:"uint32",name:"validTo",type:"uint32"},{internalType:"bool",name:"partiallyFillable",type:"bool"},{internalType:"int64",name:"quoteId",type:"int64"}],internalType:"struct EthFlowOrder.Data",name:"order",type:"tuple"}],name:"createOrder",outputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"contract IERC20",name:"buyToken",type:"address"},{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256",name:"sellAmount",type:"uint256"},{internalType:"uint256",name:"buyAmount",type:"uint256"},{internalType:"bytes32",name:"appData",type:"bytes32"},{internalType:"uint256",name:"feeAmount",type:"uint256"},{internalType:"uint32",name:"validTo",type:"uint32"},{internalType:"bool",name:"partiallyFillable",type:"bool"},{internalType:"int64",name:"quoteId",type:"int64"}],internalType:"struct EthFlowOrder.Data",name:"order",type:"tuple"}],name:"invalidateOrder",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"orders",outputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"uint32",name:"validTo",type:"uint32"}],stateMutability:"view",type:"function"}];class $t{static createInterface(){return new r.Interface(Zt)}static connect(e,t){return new n(e,Zt,t)}}$t.abi=Zt;const er=[{anonymous:!1,inputs:[{indexed:!0,internalType:"contract Safe",name:"safe",type:"address"},{indexed:!1,internalType:"bytes32",name:"domainSeparator",type:"bytes32"},{indexed:!1,internalType:"contract ISafeSignatureVerifier",name:"verifier",type:"address"}],name:"AddedDomainVerifier",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"contract Safe",name:"safe",type:"address"},{indexed:!1,internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"AddedInterface",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"contract Safe",name:"safe",type:"address"},{indexed:!1,internalType:"bytes4",name:"selector",type:"bytes4"},{indexed:!1,internalType:"bytes32",name:"method",type:"bytes32"}],name:"AddedSafeMethod",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"contract Safe",name:"safe",type:"address"},{indexed:!1,internalType:"bytes32",name:"domainSeparator",type:"bytes32"},{indexed:!1,internalType:"contract ISafeSignatureVerifier",name:"oldVerifier",type:"address"},{indexed:!1,internalType:"contract ISafeSignatureVerifier",name:"newVerifier",type:"address"}],name:"ChangedDomainVerifier",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"contract Safe",name:"safe",type:"address"},{indexed:!1,internalType:"bytes4",name:"selector",type:"bytes4"},{indexed:!1,internalType:"bytes32",name:"oldMethod",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"newMethod",type:"bytes32"}],name:"ChangedSafeMethod",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"contract Safe",name:"safe",type:"address"},{indexed:!1,internalType:"bytes32",name:"domainSeparator",type:"bytes32"}],name:"RemovedDomainVerifier",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"contract Safe",name:"safe",type:"address"},{indexed:!1,internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"RemovedInterface",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"contract Safe",name:"safe",type:"address"},{indexed:!1,internalType:"bytes4",name:"selector",type:"bytes4"}],name:"RemovedSafeMethod",type:"event"},{stateMutability:"nonpayable",type:"fallback"},{inputs:[{internalType:"contract Safe",name:"",type:"address"},{internalType:"bytes32",name:"",type:"bytes32"}],name:"domainVerifiers",outputs:[{internalType:"contract ISafeSignatureVerifier",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"_hash",type:"bytes32"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"isValidSignature",outputs:[{internalType:"bytes4",name:"magic",type:"bytes4"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"},{internalType:"uint256[]",name:"",type:"uint256[]"},{internalType:"uint256[]",name:"",type:"uint256[]"},{internalType:"bytes",name:"",type:"bytes"}],name:"onERC1155BatchReceived",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"bytes",name:"",type:"bytes"}],name:"onERC1155Received",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"bytes",name:"",type:"bytes"}],name:"onERC721Received",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"contract Safe",name:"",type:"address"},{internalType:"bytes4",name:"",type:"bytes4"}],name:"safeInterfaces",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"contract Safe",name:"",type:"address"},{internalType:"bytes4",name:"",type:"bytes4"}],name:"safeMethods",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"domainSeparator",type:"bytes32"},{internalType:"contract ISafeSignatureVerifier",name:"newVerifier",type:"address"}],name:"setDomainVerifier",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"selector",type:"bytes4"},{internalType:"bytes32",name:"newMethod",type:"bytes32"}],name:"setSafeMethod",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"},{internalType:"bool",name:"supported",type:"bool"}],name:"setSupportedInterface",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"_interfaceId",type:"bytes4"},{internalType:"bytes32[]",name:"handlerWithSelectors",type:"bytes32[]"}],name:"setSupportedInterfaceBatch",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"}];class tr{static createInterface(){return new r.Interface(er)}static connect(e,t){return new n(e,er,t)}}tr.abi=er;const rr=[{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!1,internalType:"contract IERC20",name:"sellToken",type:"address"},{indexed:!1,internalType:"contract IERC20",name:"buyToken",type:"address"},{indexed:!1,internalType:"uint256",name:"sellAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"buyAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"feeAmount",type:"uint256"},{indexed:!1,internalType:"bytes",name:"orderUid",type:"bytes"}],name:"Trade",type:"event"},{inputs:[{internalType:"bytes",name:"orderUid",type:"bytes"},{internalType:"bool",name:"signed",type:"bool"}],name:"setPreSignature",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"orderUid",type:"bytes"}],name:"invalidateOrder",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"domainSeparator",outputs:[{name:"",type:"bytes32"}],stateMutability:"nonpayable",type:"function"}];class nr{static createInterface(){return new r.Interface(rr)}static connect(e,t){return new n(e,rr,t)}}nr.abi=rr;const ir=function(e,t,r,n){try{return Promise.resolve(Bt.generateOrderId(e,{...zt(t),validTo:Xe,sellToken:$[e].address},{owner:"staging"===n?Ye[e]:Qe[e]})).then(function({orderDigest:n,orderId:i}){let o;function s(n){if(n){console.error("ETH FLOW","[calculateUniqueOrderId] ❌ Collision detected: "+i,{sellAmount:t.sellAmount,fee:t.feeAmount});const n=ir(e,function(e){const t=BigInt(e.buyAmount);return{...e,buyAmount:(t-BigInt(1)).toString()}}(t),r);return o=1,n}return i}return r?Promise.resolve(r(i,n)).then(s):s(r)})}catch(e){return Promise.reject(e)}};function or(e,t){return{...e,quoteId:t.id,sellAmount:t.quote.sellAmount,buyAmount:t.quote.buyAmount}}function sr(e){return e.sellToken.toLowerCase()===De.toLowerCase()}function ar(e){return e+e*BigInt(20)/BigInt(100)}function ur(e,t){const{costs:{networkFee:r,partnerFee:n}}=e;function i(e){return{sellAmount:t(e.sellAmount),buyAmount:t(e.buyAmount)}}return{...e,costs:{...e.costs,networkFee:{...r,amountInSellCurrency:t(r.amountInSellCurrency),amountInBuyCurrency:t(r.amountInBuyCurrency)},partnerFee:{...n,amount:t(n.amount)}},beforeNetworkCosts:i(e.beforeNetworkCosts),afterNetworkCosts:i(e.afterNetworkCosts),afterPartnerFees:i(e.afterPartnerFees),afterSlippage:i(e.afterSlippage)}}function lr({quoteParameters:e,sellToken:t}){return{...e,sellToken:t}}function cr(e,t){return{...t,sellToken:$[e].address}}const dr=function(e,t,r,n,i={}){try{const{networkCostsAmount:o="0",checkEthFlowOrderExists:s}=i;return Promise.resolve(e.getAddress()).then(function(i){var a;const u=null!==(a=r.slippageBps)&&void 0!==a?a:Vt(n,!0),l={...cr(n,r),slippageBps:u},{quoteId:c}=l,d=function(e,t,r){return $t.connect("staging"===r?Ye[t]:Qe[t],e)}(e,n,l.env),h=Wt({chainId:n,isEthFlow:!0,from:i,networkCostsAmount:o},l,t);return Promise.resolve(ir(n,h,s,l.env)).then(function(e){const r={buyToken:h.buyToken,receiver:h.receiver,sellAmount:h.sellAmount,buyAmount:h.buyAmount,feeAmount:h.feeAmount,partiallyFillable:h.partiallyFillable,quoteId:c,appData:t,validTo:h.validTo.toString()};return Promise.resolve(d.estimateGas.createOrder(r,{value:h.sellAmount}).then(e=>BigInt(e.toHexString())).catch(e=>(console.error(e),Mt))).then(function(t){const n=d.interface.encodeFunctionData("createOrder",[r]);return{orderId:e,orderToSign:h,transaction:{data:n,gasLimit:"0x"+ar(t).toString(16),to:d.address,value:"0x"+BigInt(h.sellAmount).toString(16)}}})})})}catch(e){return Promise.reject(e)}},hr=function(e,t,r,n,i={}){try{const{appDataKeccak256:o,fullAppData:s}=r;return Promise.resolve(dr(t,o,n,e.context.chainId,i)).then(function({orderId:r,transaction:n,orderToSign:i}){return J("Uploading app-data"),Promise.resolve(e.uploadAppData(o,s)).then(function(){return J("Sending on-chain order transaction"),Promise.resolve(t.sendTransaction(n)).then(function(e){return J(`On-chain order transaction sent, txHash: ${e.hash}, order: ${r}`),{txHash:e.hash,orderId:r,orderToSign:i,signature:"",signingScheme:kt.EIP1271}})})})}catch(e){return Promise.reject(e)}},pr=function(e,t,r,n,i={}){try{function o(i){const o=Wt({chainId:p,from:i,networkCostsAmount:s,isEthFlow:u},n,r.appDataKeccak256);return J("Signing order..."),Promise.resolve(function(){try{return a===kt.PRESIGN?Promise.resolve({signature:i,signingScheme:kt.PRESIGN}):Promise.resolve(Bt.signOrder(o,p,t)).then(function(e){return{signature:e.signature,signingScheme:Rt[e.signingScheme]}})}catch(e){return Promise.reject(e)}}()).then(function({signature:t,signingScheme:r}){const n={...o,from:i,signature:t,signingScheme:r,quoteId:l,appData:h,appDataHash:d};return J("Posting order..."),Promise.resolve(e.sendOrder(n)).then(function(e){return J(`Order created, id: ${e}`),{orderId:e,signature:t,signingScheme:r,orderToSign:o}})})}const{networkCostsAmount:s="0",signingScheme:a=kt.EIP712}=i,u=sr(n);if(u){const f=n.quoteId;if("number"==typeof f)return Promise.resolve(hr(e,t,r,{...n,quoteId:f},i));throw new Error("quoteId is required for EthFlow orders")}const{quoteId:l=null,owner:c}=n,{appDataKeccak256:d,fullAppData:h}=r,p=e.context.chainId;return Promise.resolve(c?o(c):Promise.resolve(t.getAddress()).then(o))}catch(m){return Promise.reject(m)}};var fr="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function mr(e){var t={exports:{}};return e(t,t.exports),t.exports}var yr={__proto__:null,default:{}},gr=mr(function(e){!function(e,t){function r(e,t){if(!e)throw new Error(t||"Assertion failed")}function n(e,t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}function i(e,t,r){if(i.isBN(e))return e;this.negative=0,this.words=null,this.length=0,this.red=null,null!==e&&("le"!==t&&"be"!==t||(r=t,t=10),this._init(e||0,t||10,r||"be"))}var o;"object"==typeof e?e.exports=i:t.BN=i,i.BN=i,i.wordSize=26;try{o="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:yr.Buffer}catch(e){}function s(e,t){var n=e.charCodeAt(t);return n>=48&&n<=57?n-48:n>=65&&n<=70?n-55:n>=97&&n<=102?n-87:void r(!1,"Invalid character in "+e)}function a(e,t,r){var n=s(e,r);return r-1>=t&&(n|=s(e,r-1)<<4),n}function u(e,t,n,i){for(var o=0,s=0,a=Math.min(e.length,n),u=t;u<a;u++){var l=e.charCodeAt(u)-48;o*=i,s=l>=49?l-49+10:l>=17?l-17+10:l,r(l>=0&&s<i,"Invalid character"),o+=s}return o}function l(e,t){e.words=t.words,e.length=t.length,e.negative=t.negative,e.red=t.red}if(i.isBN=function(e){return e instanceof i||null!==e&&"object"==typeof e&&e.constructor.wordSize===i.wordSize&&Array.isArray(e.words)},i.max=function(e,t){return e.cmp(t)>0?e:t},i.min=function(e,t){return e.cmp(t)<0?e:t},i.prototype._init=function(e,t,n){if("number"==typeof e)return this._initNumber(e,t,n);if("object"==typeof e)return this._initArray(e,t,n);"hex"===t&&(t=16),r(t===(0|t)&&t>=2&&t<=36);var i=0;"-"===(e=e.toString().replace(/\s+/g,""))[0]&&(i++,this.negative=1),i<e.length&&(16===t?this._parseHex(e,i,n):(this._parseBase(e,t,i),"le"===n&&this._initArray(this.toArray(),t,n)))},i.prototype._initNumber=function(e,t,n){e<0&&(this.negative=1,e=-e),e<67108864?(this.words=[67108863&e],this.length=1):e<4503599627370496?(this.words=[67108863&e,e/67108864&67108863],this.length=2):(r(e<9007199254740992),this.words=[67108863&e,e/67108864&67108863,1],this.length=3),"le"===n&&this._initArray(this.toArray(),t,n)},i.prototype._initArray=function(e,t,n){if(r("number"==typeof e.length),e.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(e.length/3),this.words=new Array(this.length);for(var i=0;i<this.length;i++)this.words[i]=0;var o,s,a=0;if("be"===n)for(i=e.length-1,o=0;i>=0;i-=3)this.words[o]|=(s=e[i]|e[i-1]<<8|e[i-2]<<16)<<a&67108863,this.words[o+1]=s>>>26-a&67108863,(a+=24)>=26&&(a-=26,o++);else if("le"===n)for(i=0,o=0;i<e.length;i+=3)this.words[o]|=(s=e[i]|e[i+1]<<8|e[i+2]<<16)<<a&67108863,this.words[o+1]=s>>>26-a&67108863,(a+=24)>=26&&(a-=26,o++);return this._strip()},i.prototype._parseHex=function(e,t,r){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var n=0;n<this.length;n++)this.words[n]=0;var i,o=0,s=0;if("be"===r)for(n=e.length-1;n>=t;n-=2)i=a(e,t,n)<<o,this.words[s]|=67108863&i,o>=18?(o-=18,this.words[s+=1]|=i>>>26):o+=8;else for(n=(e.length-t)%2==0?t+1:t;n<e.length;n+=2)i=a(e,t,n)<<o,this.words[s]|=67108863&i,o>=18?(o-=18,this.words[s+=1]|=i>>>26):o+=8;this._strip()},i.prototype._parseBase=function(e,t,r){this.words=[0],this.length=1;for(var n=0,i=1;i<=67108863;i*=t)n++;n--,i=i/t|0;for(var o=e.length-r,s=o%n,a=Math.min(o,o-s)+r,l=0,c=r;c<a;c+=n)l=u(e,c,c+n,t),this.imuln(i),this.words[0]+l<67108864?this.words[0]+=l:this._iaddn(l);if(0!==s){var d=1;for(l=u(e,c,e.length,t),c=0;c<s;c++)d*=t;this.imuln(d),this.words[0]+l<67108864?this.words[0]+=l:this._iaddn(l)}this._strip()},i.prototype.copy=function(e){e.words=new Array(this.length);for(var t=0;t<this.length;t++)e.words[t]=this.words[t];e.length=this.length,e.negative=this.negative,e.red=this.red},i.prototype._move=function(e){l(e,this)},i.prototype.clone=function(){var e=new i(null);return this.copy(e),e},i.prototype._expand=function(e){for(;this.length<e;)this.words[this.length++]=0;return this},i.prototype._strip=function(){for(;this.length>1&&0===this.words[this.length-1];)this.length--;return this._normSign()},i.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},"undefined"!=typeof Symbol&&"function"==typeof Symbol.for)try{i.prototype[Symbol.for("nodejs.util.inspect.custom")]=c}catch(e){i.prototype.inspect=c}else i.prototype.inspect=c;function c(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"}var d=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],h=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],p=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function f(e,t,r){r.negative=t.negative^e.negative;var n=e.length+t.length|0;r.length=n,n=n-1|0;var i=0|e.words[0],o=0|t.words[0],s=i*o,a=s/67108864|0;r.words[0]=67108863&s;for(var u=1;u<n;u++){for(var l=a>>>26,c=67108863&a,d=Math.min(u,t.length-1),h=Math.max(0,u-e.length+1);h<=d;h++)l+=(s=(i=0|e.words[u-h|0])*(o=0|t.words[h])+c)/67108864|0,c=67108863&s;r.words[u]=0|c,a=0|l}return 0!==a?r.words[u]=0|a:r.length--,r._strip()}i.prototype.toString=function(e,t){var n;if(t=0|t||1,16===(e=e||10)||"hex"===e){n="";for(var i=0,o=0,s=0;s<this.length;s++){var a=this.words[s],u=(16777215&(a<<i|o)).toString(16);o=a>>>24-i&16777215,(i+=2)>=26&&(i-=26,s--),n=0!==o||s!==this.length-1?d[6-u.length]+u+n:u+n}for(0!==o&&(n=o.toString(16)+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}if(e===(0|e)&&e>=2&&e<=36){var l=h[e],c=p[e];n="";var f=this.clone();for(f.negative=0;!f.isZero();){var m=f.modrn(c).toString(e);n=(f=f.idivn(c)).isZero()?m+n:d[l-m.length]+m+n}for(this.isZero()&&(n="0"+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}r(!1,"Base should be between 2 and 36")},i.prototype.toNumber=function(){var e=this.words[0];return 2===this.length?e+=67108864*this.words[1]:3===this.length&&1===this.words[2]?e+=4503599627370496+67108864*this.words[1]:this.length>2&&r(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},i.prototype.toJSON=function(){return this.toString(16,2)},o&&(i.prototype.toBuffer=function(e,t){return this.toArrayLike(o,e,t)}),i.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)},i.prototype.toArrayLike=function(e,t,n){this._strip();var i=this.byteLength(),o=n||Math.max(1,i);r(i<=o,"byte array longer than desired length"),r(o>0,"Requested array length <= 0");var s=function(e,t){return e.allocUnsafe?e.allocUnsafe(t):new e(t)}(e,o);return this["_toArrayLike"+("le"===t?"LE":"BE")](s,i),s},i.prototype._toArrayLikeLE=function(e,t){for(var r=0,n=0,i=0,o=0;i<this.length;i++){var s=this.words[i]<<o|n;e[r++]=255&s,r<e.length&&(e[r++]=s>>8&255),r<e.length&&(e[r++]=s>>16&255),6===o?(r<e.length&&(e[r++]=s>>24&255),n=0,o=0):(n=s>>>24,o+=2)}if(r<e.length)for(e[r++]=n;r<e.length;)e[r++]=0},i.prototype._toArrayLikeBE=function(e,t){for(var r=e.length-1,n=0,i=0,o=0;i<this.length;i++){var s=this.words[i]<<o|n;e[r--]=255&s,r>=0&&(e[r--]=s>>8&255),r>=0&&(e[r--]=s>>16&255),6===o?(r>=0&&(e[r--]=s>>24&255),n=0,o=0):(n=s>>>24,o+=2)}if(r>=0)for(e[r--]=n;r>=0;)e[r--]=0},i.prototype._countBits=Math.clz32?function(e){return 32-Math.clz32(e)}:function(e){var t=e,r=0;return t>=4096&&(r+=13,t>>>=13),t>=64&&(r+=7,t>>>=7),t>=8&&(r+=4,t>>>=4),t>=2&&(r+=2,t>>>=2),r+t},i.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,r=0;return 0==(8191&t)&&(r+=13,t>>>=13),0==(127&t)&&(r+=7,t>>>=7),0==(15&t)&&(r+=4,t>>>=4),0==(3&t)&&(r+=2,t>>>=2),0==(1&t)&&r++,r},i.prototype.bitLength=function(){var e=this._countBits(this.words[this.length-1]);return 26*(this.length-1)+e},i.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;t<this.length;t++){var r=this._zeroBits(this.words[t]);if(e+=r,26!==r)break}return e},i.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},i.prototype.toTwos=function(e){return 0!==this.negative?this.abs().inotn(e).iaddn(1):this.clone()},i.prototype.fromTwos=function(e){return this.testn(e-1)?this.notn(e).iaddn(1).ineg():this.clone()},i.prototype.isNeg=function(){return 0!==this.negative},i.prototype.neg=function(){return this.clone().ineg()},i.prototype.ineg=function(){return this.isZero()||(this.negative^=1),this},i.prototype.iuor=function(e){for(;this.length<e.length;)this.words[this.length++]=0;for(var t=0;t<e.length;t++)this.words[t]=this.words[t]|e.words[t];return this._strip()},i.prototype.ior=function(e){return r(0==(this.negative|e.negative)),this.iuor(e)},i.prototype.or=function(e){return this.length>e.length?this.clone().ior(e):e.clone().ior(this)},i.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},i.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var r=0;r<t.length;r++)this.words[r]=this.words[r]&e.words[r];return this.length=t.length,this._strip()},i.prototype.iand=function(e){return r(0==(this.negative|e.negative)),this.iuand(e)},i.prototype.and=function(e){return this.length>e.length?this.clone().iand(e):e.clone().iand(this)},i.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},i.prototype.iuxor=function(e){var t,r;this.length>e.length?(t=this,r=e):(t=e,r=this);for(var n=0;n<r.length;n++)this.words[n]=t.words[n]^r.words[n];if(this!==t)for(;n<t.length;n++)this.words[n]=t.words[n];return this.length=t.length,this._strip()},i.prototype.ixor=function(e){return r(0==(this.negative|e.negative)),this.iuxor(e)},i.prototype.xor=function(e){return this.length>e.length?this.clone().ixor(e):e.clone().ixor(this)},i.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},i.prototype.inotn=function(e){r("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),n=e%26;this._expand(t),n>0&&t--;for(var i=0;i<t;i++)this.words[i]=67108863&~this.words[i];return n>0&&(this.words[i]=~this.words[i]&67108863>>26-n),this._strip()},i.prototype.notn=function(e){return this.clone().inotn(e)},i.prototype.setn=function(e,t){r("number"==typeof e&&e>=0);var n=e/26|0,i=e%26;return this._expand(n+1),this.words[n]=t?this.words[n]|1<<i:this.words[n]&~(1<<i),this._strip()},i.prototype.iadd=function(e){var t,r,n;if(0!==this.negative&&0===e.negative)return this.negative=0,t=this.isub(e),this.negative^=1,this._normSign();if(0===this.negative&&0!==e.negative)return e.negative=0,t=this.isub(e),e.negative=1,t._normSign();this.length>e.length?(r=this,n=e):(r=e,n=this);for(var i=0,o=0;o<n.length;o++)this.words[o]=67108863&(t=(0|r.words[o])+(0|n.words[o])+i),i=t>>>26;for(;0!==i&&o<r.length;o++)this.words[o]=67108863&(t=(0|r.words[o])+i),i=t>>>26;if(this.length=r.length,0!==i)this.words[this.length]=i,this.length++;else if(r!==this)for(;o<r.length;o++)this.words[o]=r.words[o];return this},i.prototype.add=function(e){var t;return 0!==e.negative&&0===this.negative?(e.negative=0,t=this.sub(e),e.negative^=1,t):0===e.negative&&0!==this.negative?(this.negative=0,t=e.sub(this),this.negative=1,t):this.length>e.length?this.clone().iadd(e):e.clone().iadd(this)},i.prototype.isub=function(e){if(0!==e.negative){e.negative=0;var t=this.iadd(e);return e.negative=1,t._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var r,n,i=this.cmp(e);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(r=this,n=e):(r=e,n=this);for(var o=0,s=0;s<n.length;s++)o=(t=(0|r.words[s])-(0|n.words[s])+o)>>26,this.words[s]=67108863&t;for(;0!==o&&s<r.length;s++)o=(t=(0|r.words[s])+o)>>26,this.words[s]=67108863&t;if(0===o&&s<r.length&&r!==this)for(;s<r.length;s++)this.words[s]=r.words[s];return this.length=Math.max(this.length,s),r!==this&&(this.negative=1),this._strip()},i.prototype.sub=function(e){return this.clone().isub(e)};var m=function(e,t,r){var n,i,o,s=e.words,a=t.words,u=r.words,l=0,c=0|s[0],d=8191&c,h=c>>>13,p=0|s[1],f=8191&p,m=p>>>13,y=0|s[2],g=8191&y,b=y>>>13,v=0|s[3],A=8191&v,w=v>>>13,T=0|s[4],E=8191&T,S=T>>>13,I=0|s[5],k=8191&I,P=I>>>13,C=0|s[6],N=8191&C,x=C>>>13,_=0|s[7],R=8191&_,M=_>>>13,O=0|s[8],B=8191&O,D=O>>>13,L=0|s[9],F=8191&L,U=L>>>13,G=0|a[0],j=8191&G,H=G>>>13,q=0|a[1],V=8191&q,z=q>>>13,K=0|a[2],W=8191&K,J=K>>>13,Q=0|a[3],Y=8191&Q,X=Q>>>13,Z=0|a[4],$=8191&Z,ee=Z>>>13,te=0|a[5],re=8191&te,ne=te>>>13,ie=0|a[6],oe=8191&ie,se=ie>>>13,ae=0|a[7],ue=8191&ae,le=ae>>>13,ce=0|a[8],de=8191&ce,he=ce>>>13,pe=0|a[9],fe=8191&pe,me=pe>>>13;r.negative=e.negative^t.negative,r.length=19;var ye=(l+(n=Math.imul(d,j))|0)+((8191&(i=(i=Math.imul(d,H))+Math.imul(h,j)|0))<<13)|0;l=((o=Math.imul(h,H))+(i>>>13)|0)+(ye>>>26)|0,ye&=67108863,n=Math.imul(f,j),i=(i=Math.imul(f,H))+Math.imul(m,j)|0,o=Math.imul(m,H);var ge=(l+(n=n+Math.imul(d,V)|0)|0)+((8191&(i=(i=i+Math.imul(d,z)|0)+Math.imul(h,V)|0))<<13)|0;l=((o=o+Math.imul(h,z)|0)+(i>>>13)|0)+(ge>>>26)|0,ge&=67108863,n=Math.imul(g,j),i=(i=Math.imul(g,H))+Math.imul(b,j)|0,o=Math.imul(b,H),n=n+Math.imul(f,V)|0,i=(i=i+Math.imul(f,z)|0)+Math.imul(m,V)|0,o=o+Math.imul(m,z)|0;var be=(l+(n=n+Math.imul(d,W)|0)|0)+((8191&(i=(i=i+Math.imul(d,J)|0)+Math.imul(h,W)|0))<<13)|0;l=((o=o+Math.imul(h,J)|0)+(i>>>13)|0)+(be>>>26)|0,be&=67108863,n=Math.imul(A,j),i=(i=Math.imul(A,H))+Math.imul(w,j)|0,o=Math.imul(w,H),n=n+Math.imul(g,V)|0,i=(i=i+Math.imul(g,z)|0)+Math.imul(b,V)|0,o=o+Math.imul(b,z)|0,n=n+Math.imul(f,W)|0,i=(i=i+Math.imul(f,J)|0)+Math.imul(m,W)|0,o=o+Math.imul(m,J)|0;var ve=(l+(n=n+Math.imul(d,Y)|0)|0)+((8191&(i=(i=i+Math.imul(d,X)|0)+Math.imul(h,Y)|0))<<13)|0;l=((o=o+Math.imul(h,X)|0)+(i>>>13)|0)+(ve>>>26)|0,ve&=67108863,n=Math.imul(E,j),i=(i=Math.imul(E,H))+Math.imul(S,j)|0,o=Math.imul(S,H),n=n+Math.imul(A,V)|0,i=(i=i+Math.imul(A,z)|0)+Math.imul(w,V)|0,o=o+Math.imul(w,z)|0,n=n+Math.imul(g,W)|0,i=(i=i+Math.imul(g,J)|0)+Math.imul(b,W)|0,o=o+Math.imul(b,J)|0,n=n+Math.imul(f,Y)|0,i=(i=i+Math.imul(f,X)|0)+Math.imul(m,Y)|0,o=o+Math.imul(m,X)|0;var Ae=(l+(n=n+Math.imul(d,$)|0)|0)+((8191&(i=(i=i+Math.imul(d,ee)|0)+Math.imul(h,$)|0))<<13)|0;l=((o=o+Math.imul(h,ee)|0)+(i>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,n=Math.imul(k,j),i=(i=Math.imul(k,H))+Math.imul(P,j)|0,o=Math.imul(P,H),n=n+Math.imul(E,V)|0,i=(i=i+Math.imul(E,z)|0)+Math.imul(S,V)|0,o=o+Math.imul(S,z)|0,n=n+Math.imul(A,W)|0,i=(i=i+Math.imul(A,J)|0)+Math.imul(w,W)|0,o=o+Math.imul(w,J)|0,n=n+Math.imul(g,Y)|0,i=(i=i+Math.imul(g,X)|0)+Math.imul(b,Y)|0,o=o+Math.imul(b,X)|0,n=n+Math.imul(f,$)|0,i=(i=i+Math.imul(f,ee)|0)+Math.imul(m,$)|0,o=o+Math.imul(m,ee)|0;var we=(l+(n=n+Math.imul(d,re)|0)|0)+((8191&(i=(i=i+Math.imul(d,ne)|0)+Math.imul(h,re)|0))<<13)|0;l=((o=o+Math.imul(h,ne)|0)+(i>>>13)|0)+(we>>>26)|0,we&=67108863,n=Math.imul(N,j),i=(i=Math.imul(N,H))+Math.imul(x,j)|0,o=Math.imul(x,H),n=n+Math.imul(k,V)|0,i=(i=i+Math.imul(k,z)|0)+Math.imul(P,V)|0,o=o+Math.imul(P,z)|0,n=n+Math.imul(E,W)|0,i=(i=i+Math.imul(E,J)|0)+Math.imul(S,W)|0,o=o+Math.imul(S,J)|0,n=n+Math.imul(A,Y)|0,i=(i=i+Math.imul(A,X)|0)+Math.imul(w,Y)|0,o=o+Math.imul(w,X)|0,n=n+Math.imul(g,$)|0,i=(i=i+Math.imul(g,ee)|0)+Math.imul(b,$)|0,o=o+Math.imul(b,ee)|0,n=n+Math.imul(f,re)|0,i=(i=i+Math.imul(f,ne)|0)+Math.imul(m,re)|0,o=o+Math.imul(m,ne)|0;var Te=(l+(n=n+Math.imul(d,oe)|0)|0)+((8191&(i=(i=i+Math.imul(d,se)|0)+Math.imul(h,oe)|0))<<13)|0;l=((o=o+Math.imul(h,se)|0)+(i>>>13)|0)+(Te>>>26)|0,Te&=67108863,n=Math.imul(R,j),i=(i=Math.imul(R,H))+Math.imul(M,j)|0,o=Math.imul(M,H),n=n+Math.imul(N,V)|0,i=(i=i+Math.imul(N,z)|0)+Math.imul(x,V)|0,o=o+Math.imul(x,z)|0,n=n+Math.imul(k,W)|0,i=(i=i+Math.imul(k,J)|0)+Math.imul(P,W)|0,o=o+Math.imul(P,J)|0,n=n+Math.imul(E,Y)|0,i=(i=i+Math.imul(E,X)|0)+Math.imul(S,Y)|0,o=o+Math.imul(S,X)|0,n=n+Math.imul(A,$)|0,i=(i=i+Math.imul(A,ee)|0)+Math.imul(w,$)|0,o=o+Math.imul(w,ee)|0,n=n+Math.imul(g,re)|0,i=(i=i+Math.imul(g,ne)|0)+Math.imul(b,re)|0,o=o+Math.imul(b,ne)|0,n=n+Math.imul(f,oe)|0,i=(i=i+Math.imul(f,se)|0)+Math.imul(m,oe)|0,o=o+Math.imul(m,se)|0;var Ee=(l+(n=n+Math.imul(d,ue)|0)|0)+((8191&(i=(i=i+Math.imul(d,le)|0)+Math.imul(h,ue)|0))<<13)|0;l=((o=o+Math.imul(h,le)|0)+(i>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,n=Math.imul(B,j),i=(i=Math.imul(B,H))+Math.imul(D,j)|0,o=Math.imul(D,H),n=n+Math.imul(R,V)|0,i=(i=i+Math.imul(R,z)|0)+Math.imul(M,V)|0,o=o+Math.imul(M,z)|0,n=n+Math.imul(N,W)|0,i=(i=i+Math.imul(N,J)|0)+Math.imul(x,W)|0,o=o+Math.imul(x,J)|0,n=n+Math.imul(k,Y)|0,i=(i=i+Math.imul(k,X)|0)+Math.imul(P,Y)|0,o=o+Math.imul(P,X)|0,n=n+Math.imul(E,$)|0,i=(i=i+Math.imul(E,ee)|0)+Math.imul(S,$)|0,o=o+Math.imul(S,ee)|0,n=n+Math.imul(A,re)|0,i=(i=i+Math.imul(A,ne)|0)+Math.imul(w,re)|0,o=o+Math.imul(w,ne)|0,n=n+Math.imul(g,oe)|0,i=(i=i+Math.imul(g,se)|0)+Math.imul(b,oe)|0,o=o+Math.imul(b,se)|0,n=n+Math.imul(f,ue)|0,i=(i=i+Math.imul(f,le)|0)+Math.imul(m,ue)|0,o=o+Math.imul(m,le)|0;var Se=(l+(n=n+Math.imul(d,de)|0)|0)+((8191&(i=(i=i+Math.imul(d,he)|0)+Math.imul(h,de)|0))<<13)|0;l=((o=o+Math.imul(h,he)|0)+(i>>>13)|0)+(Se>>>26)|0,Se&=67108863,n=Math.imul(F,j),i=(i=Math.imul(F,H))+Math.imul(U,j)|0,o=Math.imul(U,H),n=n+Math.imul(B,V)|0,i=(i=i+Math.imul(B,z)|0)+Math.imul(D,V)|0,o=o+Math.imul(D,z)|0,n=n+Math.imul(R,W)|0,i=(i=i+Math.imul(R,J)|0)+Math.imul(M,W)|0,o=o+Math.imul(M,J)|0,n=n+Math.imul(N,Y)|0,i=(i=i+Math.imul(N,X)|0)+Math.imul(x,Y)|0,o=o+Math.imul(x,X)|0,n=n+Math.imul(k,$)|0,i=(i=i+Math.imul(k,ee)|0)+Math.imul(P,$)|0,o=o+Math.imul(P,ee)|0,n=n+Math.imul(E,re)|0,i=(i=i+Math.imul(E,ne)|0)+Math.imul(S,re)|0,o=o+Math.imul(S,ne)|0,n=n+Math.imul(A,oe)|0,i=(i=i+Math.imul(A,se)|0)+Math.imul(w,oe)|0,o=o+Math.imul(w,se)|0,n=n+Math.imul(g,ue)|0,i=(i=i+Math.imul(g,le)|0)+Math.imul(b,ue)|0,o=o+Math.imul(b,le)|0,n=n+Math.imul(f,de)|0,i=(i=i+Math.imul(f,he)|0)+Math.imul(m,de)|0,o=o+Math.imul(m,he)|0;var Ie=(l+(n=n+Math.imul(d,fe)|0)|0)+((8191&(i=(i=i+Math.imul(d,me)|0)+Math.imul(h,fe)|0))<<13)|0;l=((o=o+Math.imul(h,me)|0)+(i>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,n=Math.imul(F,V),i=(i=Math.imul(F,z))+Math.imul(U,V)|0,o=Math.imul(U,z),n=n+Math.imul(B,W)|0,i=(i=i+Math.imul(B,J)|0)+Math.imul(D,W)|0,o=o+Math.imul(D,J)|0,n=n+Math.imul(R,Y)|0,i=(i=i+Math.imul(R,X)|0)+Math.imul(M,Y)|0,o=o+Math.imul(M,X)|0,n=n+Math.imul(N,$)|0,i=(i=i+Math.imul(N,ee)|0)+Math.imul(x,$)|0,o=o+Math.imul(x,ee)|0,n=n+Math.imul(k,re)|0,i=(i=i+Math.imul(k,ne)|0)+Math.imul(P,re)|0,o=o+Math.imul(P,ne)|0,n=n+Math.imul(E,oe)|0,i=(i=i+Math.imul(E,se)|0)+Math.imul(S,oe)|0,o=o+Math.imul(S,se)|0,n=n+Math.imul(A,ue)|0,i=(i=i+Math.imul(A,le)|0)+Math.imul(w,ue)|0,o=o+Math.imul(w,le)|0,n=n+Math.imul(g,de)|0,i=(i=i+Math.imul(g,he)|0)+Math.imul(b,de)|0,o=o+Math.imul(b,he)|0;var ke=(l+(n=n+Math.imul(f,fe)|0)|0)+((8191&(i=(i=i+Math.imul(f,me)|0)+Math.imul(m,fe)|0))<<13)|0;l=((o=o+Math.imul(m,me)|0)+(i>>>13)|0)+(ke>>>26)|0,ke&=67108863,n=Math.imul(F,W),i=(i=Math.imul(F,J))+Math.imul(U,W)|0,o=Math.imul(U,J),n=n+Math.imul(B,Y)|0,i=(i=i+Math.imul(B,X)|0)+Math.imul(D,Y)|0,o=o+Math.imul(D,X)|0,n=n+Math.imul(R,$)|0,i=(i=i+Math.imul(R,ee)|0)+Math.imul(M,$)|0,o=o+Math.imul(M,ee)|0,n=n+Math.imul(N,re)|0,i=(i=i+Math.imul(N,ne)|0)+Math.imul(x,re)|0,o=o+Math.imul(x,ne)|0,n=n+Math.imul(k,oe)|0,i=(i=i+Math.imul(k,se)|0)+Math.imul(P,oe)|0,o=o+Math.imul(P,se)|0,n=n+Math.imul(E,ue)|0,i=(i=i+Math.imul(E,le)|0)+Math.imul(S,ue)|0,o=o+Math.imul(S,le)|0,n=n+Math.imul(A,de)|0,i=(i=i+Math.imul(A,he)|0)+Math.imul(w,de)|0,o=o+Math.imul(w,he)|0;var Pe=(l+(n=n+Math.imul(g,fe)|0)|0)+((8191&(i=(i=i+Math.imul(g,me)|0)+Math.imul(b,fe)|0))<<13)|0;l=((o=o+Math.imul(b,me)|0)+(i>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,n=Math.imul(F,Y),i=(i=Math.imul(F,X))+Math.imul(U,Y)|0,o=Math.imul(U,X),n=n+Math.imul(B,$)|0,i=(i=i+Math.imul(B,ee)|0)+Math.imul(D,$)|0,o=o+Math.imul(D,ee)|0,n=n+Math.imul(R,re)|0,i=(i=i+Math.imul(R,ne)|0)+Math.imul(M,re)|0,o=o+Math.imul(M,ne)|0,n=n+Math.imul(N,oe)|0,i=(i=i+Math.imul(N,se)|0)+Math.imul(x,oe)|0,o=o+Math.imul(x,se)|0,n=n+Math.imul(k,ue)|0,i=(i=i+Math.imul(k,le)|0)+Math.imul(P,ue)|0,o=o+Math.imul(P,le)|0,n=n+Math.imul(E,de)|0,i=(i=i+Math.imul(E,he)|0)+Math.imul(S,de)|0,o=o+Math.imul(S,he)|0;var Ce=(l+(n=n+Math.imul(A,fe)|0)|0)+((8191&(i=(i=i+Math.imul(A,me)|0)+Math.imul(w,fe)|0))<<13)|0;l=((o=o+Math.imul(w,me)|0)+(i>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,n=Math.imul(F,$),i=(i=Math.imul(F,ee))+Math.imul(U,$)|0,o=Math.imul(U,ee),n=n+Math.imul(B,re)|0,i=(i=i+Math.imul(B,ne)|0)+Math.imul(D,re)|0,o=o+Math.imul(D,ne)|0,n=n+Math.imul(R,oe)|0,i=(i=i+Math.imul(R,se)|0)+Math.imul(M,oe)|0,o=o+Math.imul(M,se)|0,n=n+Math.imul(N,ue)|0,i=(i=i+Math.imul(N,le)|0)+Math.imul(x,ue)|0,o=o+Math.imul(x,le)|0,n=n+Math.imul(k,de)|0,i=(i=i+Math.imul(k,he)|0)+Math.imul(P,de)|0,o=o+Math.imul(P,he)|0;var Ne=(l+(n=n+Math.imul(E,fe)|0)|0)+((8191&(i=(i=i+Math.imul(E,me)|0)+Math.imul(S,fe)|0))<<13)|0;l=((o=o+Math.imul(S,me)|0)+(i>>>13)|0)+(Ne>>>26)|0,Ne&=67108863,n=Math.imul(F,re),i=(i=Math.imul(F,ne))+Math.imul(U,re)|0,o=Math.imul(U,ne),n=n+Math.imul(B,oe)|0,i=(i=i+Math.imul(B,se)|0)+Math.imul(D,oe)|0,o=o+Math.imul(D,se)|0,n=n+Math.imul(R,ue)|0,i=(i=i+Math.imul(R,le)|0)+Math.imul(M,ue)|0,o=o+Math.imul(M,le)|0,n=n+Math.imul(N,de)|0,i=(i=i+Math.imul(N,he)|0)+Math.imul(x,de)|0,o=o+Math.imul(x,he)|0;var xe=(l+(n=n+Math.imul(k,fe)|0)|0)+((8191&(i=(i=i+Math.imul(k,me)|0)+Math.imul(P,fe)|0))<<13)|0;l=((o=o+Math.imul(P,me)|0)+(i>>>13)|0)+(xe>>>26)|0,xe&=67108863,n=Math.imul(F,oe),i=(i=Math.imul(F,se))+Math.imul(U,oe)|0,o=Math.imul(U,se),n=n+Math.imul(B,ue)|0,i=(i=i+Math.imul(B,le)|0)+Math.imul(D,ue)|0,o=o+Math.imul(D,le)|0,n=n+Math.imul(R,de)|0,i=(i=i+Math.imul(R,he)|0)+Math.imul(M,de)|0,o=o+Math.imul(M,he)|0;var _e=(l+(n=n+Math.imul(N,fe)|0)|0)+((8191&(i=(i=i+Math.imul(N,me)|0)+Math.imul(x,fe)|0))<<13)|0;l=((o=o+Math.imul(x,me)|0)+(i>>>13)|0)+(_e>>>26)|0,_e&=67108863,n=Math.imul(F,ue),i=(i=Math.imul(F,le))+Math.imul(U,ue)|0,o=Math.imul(U,le),n=n+Math.imul(B,de)|0,i=(i=i+Math.imul(B,he)|0)+Math.imul(D,de)|0,o=o+Math.imul(D,he)|0;var Re=(l+(n=n+Math.imul(R,fe)|0)|0)+((8191&(i=(i=i+Math.imul(R,me)|0)+Math.imul(M,fe)|0))<<13)|0;l=((o=o+Math.imul(M,me)|0)+(i>>>13)|0)+(Re>>>26)|0,Re&=67108863,n=Math.imul(F,de),i=(i=Math.imul(F,he))+Math.imul(U,de)|0,o=Math.imul(U,he);var Me=(l+(n=n+Math.imul(B,fe)|0)|0)+((8191&(i=(i=i+Math.imul(B,me)|0)+Math.imul(D,fe)|0))<<13)|0;l=((o=o+Math.imul(D,me)|0)+(i>>>13)|0)+(Me>>>26)|0,Me&=67108863;var Oe=(l+(n=Math.imul(F,fe))|0)+((8191&(i=(i=Math.imul(F,me))+Math.imul(U,fe)|0))<<13)|0;return l=((o=Math.imul(U,me))+(i>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,u[0]=ye,u[1]=ge,u[2]=be,u[3]=ve,u[4]=Ae,u[5]=we,u[6]=Te,u[7]=Ee,u[8]=Se,u[9]=Ie,u[10]=ke,u[11]=Pe,u[12]=Ce,u[13]=Ne,u[14]=xe,u[15]=_e,u[16]=Re,u[17]=Me,u[18]=Oe,0!==l&&(u[19]=l,r.length++),r};function y(e,t,r){r.negative=t.negative^e.negative,r.length=e.length+t.length;for(var n=0,i=0,o=0;o<r.length-1;o++){var s=i;i=0;for(var a=67108863&n,u=Math.min(o,t.length-1),l=Math.max(0,o-e.length+1);l<=u;l++){var c=(0|e.words[o-l])*(0|t.words[l]),d=67108863&c;a=67108863&(d=d+a|0),i+=(s=(s=s+(c/67108864|0)|0)+(d>>>26)|0)>>>26,s&=67108863}r.words[o]=a,n=s,s=i}return 0!==n?r.words[o]=n:r.length--,r._strip()}function g(e,t,r){return y(e,t,r)}Math.imul||(m=f),i.prototype.mulTo=function(e,t){var r=this.length+e.length;return 10===this.length&&10===e.length?m(this,e,t):r<63?f(this,e,t):r<1024?y(this,e,t):g(this,e,t)},i.prototype.mul=function(e){var t=new i(null);return t.words=new Array(this.length+e.length),this.mulTo(e,t)},i.prototype.mulf=function(e){var t=new i(null);return t.words=new Array(this.length+e.length),g(this,e,t)},i.prototype.imul=function(e){return this.clone().mulTo(e,this)},i.prototype.imuln=function(e){var t=e<0;t&&(e=-e),r("number"==typeof e),r(e<67108864);for(var n=0,i=0;i<this.length;i++){var o=(0|this.words[i])*e,s=(67108863&o)+(67108863&n);n>>=26,n+=o/67108864|0,n+=s>>>26,this.words[i]=67108863&s}return 0!==n&&(this.words[i]=n,this.length++),t?this.ineg():this},i.prototype.muln=function(e){return this.clone().imuln(e)},i.prototype.sqr=function(){return this.mul(this)},i.prototype.isqr=function(){return this.imul(this.clone())},i.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),r=0;r<t.length;r++)t[r]=e.words[r/26|0]>>>r%26&1;return t}(e);if(0===t.length)return new i(1);for(var r=this,n=0;n<t.length&&0===t[n];n++,r=r.sqr());if(++n<t.length)for(var o=r.sqr();n<t.length;n++,o=o.sqr())0!==t[n]&&(r=r.mul(o));return r},i.prototype.iushln=function(e){r("number"==typeof e&&e>=0);var t,n=e%26,i=(e-n)/26,o=67108863>>>26-n<<26-n;if(0!==n){var s=0;for(t=0;t<this.length;t++){var a=this.words[t]&o;this.words[t]=(0|this.words[t])-a<<n|s,s=a>>>26-n}s&&(this.words[t]=s,this.length++)}if(0!==i){for(t=this.length-1;t>=0;t--)this.words[t+i]=this.words[t];for(t=0;t<i;t++)this.words[t]=0;this.length+=i}return this._strip()},i.prototype.ishln=function(e){return r(0===this.negative),this.iushln(e)},i.prototype.iushrn=function(e,t,n){var i;r("number"==typeof e&&e>=0),i=t?(t-t%26)/26:0;var o=e%26,s=Math.min((e-o)/26,this.length),a=67108863^67108863>>>o<<o,u=n;if(i-=s,i=Math.max(0,i),u){for(var l=0;l<s;l++)u.words[l]=this.words[l];u.length=s}if(0===s);else if(this.length>s)for(this.length-=s,l=0;l<this.length;l++)this.words[l]=this.words[l+s];else this.words[0]=0,this.length=1;var c=0;for(l=this.length-1;l>=0&&(0!==c||l>=i);l--){var d=0|this.words[l];this.words[l]=c<<26-o|d>>>o,c=d&a}return u&&0!==c&&(u.words[u.length++]=c),0===this.length&&(this.words[0]=0,this.length=1),this._strip()},i.prototype.ishrn=function(e,t,n){return r(0===this.negative),this.iushrn(e,t,n)},i.prototype.shln=function(e){return this.clone().ishln(e)},i.prototype.ushln=function(e){return this.clone().iushln(e)},i.prototype.shrn=function(e){return this.clone().ishrn(e)},i.prototype.ushrn=function(e){return this.clone().iushrn(e)},i.prototype.testn=function(e){r("number"==typeof e&&e>=0);var t=e%26,n=(e-t)/26;return!(this.length<=n||!(this.words[n]&1<<t))},i.prototype.imaskn=function(e){r("number"==typeof e&&e>=0);var t=e%26,n=(e-t)/26;return r(0===this.negative,"imaskn works only with positive numbers"),this.length<=n?this:(0!==t&&n++,this.length=Math.min(n,this.length),0!==t&&(this.words[this.length-1]&=67108863^67108863>>>t<<t),this._strip())},i.prototype.maskn=function(e){return this.clone().imaskn(e)},i.prototype.iaddn=function(e){return r("number"==typeof e),r(e<67108864),e<0?this.isubn(-e):0!==this.negative?1===this.length&&(0|this.words[0])<=e?(this.words[0]=e-(0|this.words[0]),this.negative=0,this):(this.negative=0,this.isubn(e),this.negative=1,this):this._iaddn(e)},i.prototype._iaddn=function(e){this.words[0]+=e;for(var t=0;t<this.length&&this.words[t]>=67108864;t++)this.words[t]-=67108864,t===this.length-1?this.words[t+1]=1:this.words[t+1]++;return this.length=Math.max(this.length,t+1),this},i.prototype.isubn=function(e){if(r("number"==typeof e),r(e<67108864),e<0)return this.iaddn(-e);if(0!==this.negative)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var t=0;t<this.length&&this.words[t]<0;t++)this.words[t]+=67108864,this.words[t+1]-=1;return this._strip()},i.prototype.addn=function(e){return this.clone().iaddn(e)},i.prototype.subn=function(e){return this.clone().isubn(e)},i.prototype.iabs=function(){return this.negative=0,this},i.prototype.abs=function(){return this.clone().iabs()},i.prototype._ishlnsubmul=function(e,t,n){var i,o;this._expand(e.length+n);var s=0;for(i=0;i<e.length;i++){o=(0|this.words[i+n])+s;var a=(0|e.words[i])*t;s=((o-=67108863&a)>>26)-(a/67108864|0),this.words[i+n]=67108863&o}for(;i<this.length-n;i++)s=(o=(0|this.words[i+n])+s)>>26,this.words[i+n]=67108863&o;if(0===s)return this._strip();for(r(-1===s),s=0,i=0;i<this.length;i++)s=(o=-(0|this.words[i])+s)>>26,this.words[i]=67108863&o;return this.negative=1,this._strip()},i.prototype._wordDiv=function(e,t){var r,n=this.clone(),o=e,s=0|o.words[o.length-1];0!=(r=26-this._countBits(s))&&(o=o.ushln(r),n.iushln(r),s=0|o.words[o.length-1]);var a,u=n.length-o.length;if("mod"!==t){(a=new i(null)).length=u+1,a.words=new Array(a.length);for(var l=0;l<a.length;l++)a.words[l]=0}var c=n.clone()._ishlnsubmul(o,1,u);0===c.negative&&(n=c,a&&(a.words[u]=1));for(var d=u-1;d>=0;d--){var h=67108864*(0|n.words[o.length+d])+(0|n.words[o.length+d-1]);for(h=Math.min(h/s|0,67108863),n._ishlnsubmul(o,h,d);0!==n.negative;)h--,n.negative=0,n._ishlnsubmul(o,1,d),n.isZero()||(n.negative^=1);a&&(a.words[d]=h)}return a&&a._strip(),n._strip(),"div"!==t&&0!==r&&n.iushrn(r),{div:a||null,mod:n}},i.prototype.divmod=function(e,t,n){return r(!e.isZero()),this.isZero()?{div:new i(0),mod:new i(0)}:0!==this.negative&&0===e.negative?(a=this.neg().divmod(e,t),"mod"!==t&&(o=a.div.neg()),"div"!==t&&(s=a.mod.neg(),n&&0!==s.negative&&s.iadd(e)),{div:o,mod:s}):0===this.negative&&0!==e.negative?(a=this.divmod(e.neg(),t),"mod"!==t&&(o=a.div.neg()),{div:o,mod:a.mod}):0!=(this.negative&e.negative)?(a=this.neg().divmod(e.neg(),t),"div"!==t&&(s=a.mod.neg(),n&&0!==s.negative&&s.isub(e)),{div:a.div,mod:s}):e.length>this.length||this.cmp(e)<0?{div:new i(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new i(this.modrn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new i(this.modrn(e.words[0]))}:this._wordDiv(e,t);var o,s,a},i.prototype.div=function(e){return this.divmod(e,"div",!1).div},i.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},i.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},i.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var r=0!==t.div.negative?t.mod.isub(e):t.mod,n=e.ushrn(1),i=e.andln(1),o=r.cmp(n);return o<0||1===i&&0===o?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},i.prototype.modrn=function(e){var t=e<0;t&&(e=-e),r(e<=67108863);for(var n=(1<<26)%e,i=0,o=this.length-1;o>=0;o--)i=(n*i+(0|this.words[o]))%e;return t?-i:i},i.prototype.modn=function(e){return this.modrn(e)},i.prototype.idivn=function(e){var t=e<0;t&&(e=-e),r(e<=67108863);for(var n=0,i=this.length-1;i>=0;i--){var o=(0|this.words[i])+67108864*n;this.words[i]=o/e|0,n=o%e}return this._strip(),t?this.ineg():this},i.prototype.divn=function(e){return this.clone().idivn(e)},i.prototype.egcd=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var o=new i(1),s=new i(0),a=new i(0),u=new i(1),l=0;t.isEven()&&n.isEven();)t.iushrn(1),n.iushrn(1),++l;for(var c=n.clone(),d=t.clone();!t.isZero();){for(var h=0,p=1;0==(t.words[0]&p)&&h<26;++h,p<<=1);if(h>0)for(t.iushrn(h);h-- >0;)(o.isOdd()||s.isOdd())&&(o.iadd(c),s.isub(d)),o.iushrn(1),s.iushrn(1);for(var f=0,m=1;0==(n.words[0]&m)&&f<26;++f,m<<=1);if(f>0)for(n.iushrn(f);f-- >0;)(a.isOdd()||u.isOdd())&&(a.iadd(c),u.isub(d)),a.iushrn(1),u.iushrn(1);t.cmp(n)>=0?(t.isub(n),o.isub(a),s.isub(u)):(n.isub(t),a.isub(o),u.isub(s))}return{a:a,b:u,gcd:n.iushln(l)}},i.prototype._invmp=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var o,s=new i(1),a=new i(0),u=n.clone();t.cmpn(1)>0&&n.cmpn(1)>0;){for(var l=0,c=1;0==(t.words[0]&c)&&l<26;++l,c<<=1);if(l>0)for(t.iushrn(l);l-- >0;)s.isOdd()&&s.iadd(u),s.iushrn(1);for(var d=0,h=1;0==(n.words[0]&h)&&d<26;++d,h<<=1);if(d>0)for(n.iushrn(d);d-- >0;)a.isOdd()&&a.iadd(u),a.iushrn(1);t.cmp(n)>=0?(t.isub(n),s.isub(a)):(n.isub(t),a.isub(s))}return(o=0===t.cmpn(1)?s:a).cmpn(0)<0&&o.iadd(e),o},i.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),r=e.clone();t.negative=0,r.negative=0;for(var n=0;t.isEven()&&r.isEven();n++)t.iushrn(1),r.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;r.isEven();)r.iushrn(1);var i=t.cmp(r);if(i<0){var o=t;t=r,r=o}else if(0===i||0===r.cmpn(1))break;t.isub(r)}return r.iushln(n)},i.prototype.invm=function(e){return this.egcd(e).a.umod(e)},i.prototype.isEven=function(){return 0==(1&this.words[0])},i.prototype.isOdd=function(){return 1==(1&this.words[0])},i.prototype.andln=function(e){return this.words[0]&e},i.prototype.bincn=function(e){r("number"==typeof e);var t=e%26,n=(e-t)/26,i=1<<t;if(this.length<=n)return this._expand(n+1),this.words[n]|=i,this;for(var o=i,s=n;0!==o&&s<this.length;s++){var a=0|this.words[s];o=(a+=o)>>>26,this.words[s]=a&=67108863}return 0!==o&&(this.words[s]=o,this.length++),this},i.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},i.prototype.cmpn=function(e){var t,n=e<0;if(0!==this.negative&&!n)return-1;if(0===this.negative&&n)return 1;if(this._strip(),this.length>1)t=1;else{n&&(e=-e),r(e<=67108863,"Number is too big");var i=0|this.words[0];t=i===e?0:i<e?-1:1}return 0!==this.negative?0|-t:t},i.prototype.cmp=function(e){if(0!==this.negative&&0===e.negative)return-1;if(0===this.negative&&0!==e.negative)return 1;var t=this.ucmp(e);return 0!==this.negative?0|-t:t},i.prototype.ucmp=function(e){if(this.length>e.length)return 1;if(this.length<e.length)return-1;for(var t=0,r=this.length-1;r>=0;r--){var n=0|this.words[r],i=0|e.words[r];if(n!==i){n<i?t=-1:n>i&&(t=1);break}}return t},i.prototype.gtn=function(e){return 1===this.cmpn(e)},i.prototype.gt=function(e){return 1===this.cmp(e)},i.prototype.gten=function(e){return this.cmpn(e)>=0},i.prototype.gte=function(e){return this.cmp(e)>=0},i.prototype.ltn=function(e){return-1===this.cmpn(e)},i.prototype.lt=function(e){return-1===this.cmp(e)},i.prototype.lten=function(e){return this.cmpn(e)<=0},i.prototype.lte=function(e){return this.cmp(e)<=0},i.prototype.eqn=function(e){return 0===this.cmpn(e)},i.prototype.eq=function(e){return 0===this.cmp(e)},i.red=function(e){return new S(e)},i.prototype.toRed=function(e){return r(!this.red,"Already a number in reduction context"),r(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},i.prototype.fromRed=function(){return r(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},i.prototype._forceRed=function(e){return this.red=e,this},i.prototype.forceRed=function(e){return r(!this.red,"Already a number in reduction context"),this._forceRed(e)},i.prototype.redAdd=function(e){return r(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},i.prototype.redIAdd=function(e){return r(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},i.prototype.redSub=function(e){return r(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},i.prototype.redISub=function(e){return r(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},i.prototype.redShl=function(e){return r(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},i.prototype.redMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},i.prototype.redIMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},i.prototype.redSqr=function(){return r(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},i.prototype.redISqr=function(){return r(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},i.prototype.redSqrt=function(){return r(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},i.prototype.redInvm=function(){return r(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},i.prototype.redNeg=function(){return r(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},i.prototype.redPow=function(e){return r(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var b={k256:null,p224:null,p192:null,p25519:null};function v(e,t){this.name=e,this.p=new i(t,16),this.n=this.p.bitLength(),this.k=new i(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function A(){v.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function w(){v.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function T(){v.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function E(){v.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function S(e){if("string"==typeof e){var t=i._prime(e);this.m=t.p,this.prime=t}else r(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function I(e){S.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new i(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}v.prototype._tmp=function(){var e=new i(null);return e.words=new Array(Math.ceil(this.n/13)),e},v.prototype.ireduce=function(e){var t,r=e;do{this.split(r,this.tmp),t=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(t>this.n);var n=t<this.n?-1:r.ucmp(this.p);return 0===n?(r.words[0]=0,r.length=1):n>0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},v.prototype.split=function(e,t){e.iushrn(this.n,0,t)},v.prototype.imulK=function(e){return e.imul(this.k)},n(A,v),A.prototype.split=function(e,t){for(var r=4194303,n=Math.min(e.length,9),i=0;i<n;i++)t.words[i]=e.words[i];if(t.length=n,e.length<=9)return e.words[0]=0,void(e.length=1);var o=e.words[9];for(t.words[t.length++]=o&r,i=10;i<e.length;i++){var s=0|e.words[i];e.words[i-10]=(s&r)<<4|o>>>22,o=s}e.words[i-10]=o>>>=22,e.length-=0===o&&e.length>10?10:9},A.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,r=0;r<e.length;r++){var n=0|e.words[r];e.words[r]=67108863&(t+=977*n),t=64*n+(t/67108864|0)}return 0===e.words[e.length-1]&&(e.length--,0===e.words[e.length-1]&&e.length--),e},n(w,v),n(T,v),n(E,v),E.prototype.imulK=function(e){for(var t=0,r=0;r<e.length;r++){var n=19*(0|e.words[r])+t,i=67108863&n;n>>>=26,e.words[r]=i,t=n}return 0!==t&&(e.words[e.length++]=t),e},i._prime=function(e){if(b[e])return b[e];var t;if("k256"===e)t=new A;else if("p224"===e)t=new w;else if("p192"===e)t=new T;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new E}return b[e]=t,t},S.prototype._verify1=function(e){r(0===e.negative,"red works only with positives"),r(e.red,"red works only with red numbers")},S.prototype._verify2=function(e,t){r(0==(e.negative|t.negative),"red works only with positives"),r(e.red&&e.red===t.red,"red works only with red numbers")},S.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):(l(e,e.umod(this.m)._forceRed(this)),e)},S.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},S.prototype.add=function(e,t){this._verify2(e,t);var r=e.add(t);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},S.prototype.iadd=function(e,t){this._verify2(e,t);var r=e.iadd(t);return r.cmp(this.m)>=0&&r.isub(this.m),r},S.prototype.sub=function(e,t){this._verify2(e,t);var r=e.sub(t);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},S.prototype.isub=function(e,t){this._verify2(e,t);var r=e.isub(t);return r.cmpn(0)<0&&r.iadd(this.m),r},S.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},S.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},S.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},S.prototype.isqr=function(e){return this.imul(e,e.clone())},S.prototype.sqr=function(e){return this.mul(e,e)},S.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(r(t%2==1),3===t){var n=this.m.add(new i(1)).iushrn(2);return this.pow(e,n)}for(var o=this.m.subn(1),s=0;!o.isZero()&&0===o.andln(1);)s++,o.iushrn(1);r(!o.isZero());var a=new i(1).toRed(this),u=a.redNeg(),l=this.m.subn(1).iushrn(1),c=this.m.bitLength();for(c=new i(2*c*c).toRed(this);0!==this.pow(c,l).cmp(u);)c.redIAdd(u);for(var d=this.pow(c,o),h=this.pow(e,o.addn(1).iushrn(1)),p=this.pow(e,o),f=s;0!==p.cmp(a);){for(var m=p,y=0;0!==m.cmp(a);y++)m=m.redSqr();r(y<f);var g=this.pow(d,new i(1).iushln(f-y-1));h=h.redMul(g),d=g.redSqr(),p=p.redMul(d),f=y}return h},S.prototype.invm=function(e){var t=e._invmp(this.m);return 0!==t.negative?(t.negative=0,this.imod(t).redNeg()):this.imod(t)},S.prototype.pow=function(e,t){if(t.isZero())return new i(1).toRed(this);if(0===t.cmpn(1))return e.clone();var r=new Array(16);r[0]=new i(1).toRed(this),r[1]=e;for(var n=2;n<r.length;n++)r[n]=this.mul(r[n-1],e);var o=r[0],s=0,a=0,u=t.bitLength()%26;for(0===u&&(u=26),n=t.length-1;n>=0;n--){for(var l=t.words[n],c=u-1;c>=0;c--){var d=l>>c&1;o!==r[0]&&(o=this.sqr(o)),0!==d||0!==s?(s<<=1,s|=d,(4==++a||0===n&&0===c)&&(o=this.mul(o,r[s]),a=0,s=0)):a=0}u=26}return o},S.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},S.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},i.mont=function(e){return new I(e)},n(I,S),I.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},I.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},I.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var r=e.imul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},I.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new i(0)._forceRed(this);var r=e.mul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),o=r.isub(n).iushrn(this.shift),s=o;return o.cmp(this.m)>=0?s=o.isub(this.m):o.cmpn(0)<0&&(s=o.iadd(this.m)),s._forceRed(this)},I.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(e,fr)});let br=!1,vr=!1;const Ar={debug:1,default:2,info:2,warning:3,error:4,off:5};let wr=Ar.default,Tr=null;const Er=function(){try{const e=[];if(["NFD","NFC","NFKD","NFKC"].forEach(t=>{try{if("test"!=="test".normalize(t))throw new Error("bad normalize")}catch(r){e.push(t)}}),e.length)throw new Error("missing "+e.join(", "));if(String.fromCharCode(233).normalize("NFD")!==String.fromCharCode(101,769))throw new Error("broken implementation")}catch(e){return e.message}return null}();var Sr,Ir;!function(e){e.DEBUG="DEBUG",e.INFO="INFO",e.WARNING="WARNING",e.ERROR="ERROR",e.OFF="OFF"}(Sr||(Sr={})),function(e){e.UNKNOWN_ERROR="UNKNOWN_ERROR",e.NOT_IMPLEMENTED="NOT_IMPLEMENTED",e.UNSUPPORTED_OPERATION="UNSUPPORTED_OPERATION",e.NETWORK_ERROR="NETWORK_ERROR",e.SERVER_ERROR="SERVER_ERROR",e.TIMEOUT="TIMEOUT",e.BUFFER_OVERRUN="BUFFER_OVERRUN",e.NUMERIC_FAULT="NUMERIC_FAULT",e.MISSING_NEW="MISSING_NEW",e.INVALID_ARGUMENT="INVALID_ARGUMENT",e.MISSING_ARGUMENT="MISSING_ARGUMENT",e.UNEXPECTED_ARGUMENT="UNEXPECTED_ARGUMENT",e.CALL_EXCEPTION="CALL_EXCEPTION",e.INSUFFICIENT_FUNDS="INSUFFICIENT_FUNDS",e.NONCE_EXPIRED="NONCE_EXPIRED",e.REPLACEMENT_UNDERPRICED="REPLACEMENT_UNDERPRICED",e.UNPREDICTABLE_GAS_LIMIT="UNPREDICTABLE_GAS_LIMIT",e.TRANSACTION_REPLACED="TRANSACTION_REPLACED",e.ACTION_REJECTED="ACTION_REJECTED"}(Ir||(Ir={}));const kr="0123456789abcdef";class Pr{constructor(e){Object.defineProperty(this,"version",{enumerable:!0,value:e,writable:!1})}_log(e,t){const r=e.toLowerCase();null==Ar[r]&&this.throwArgumentError("invalid log level name","logLevel",e),wr>Ar[r]||console.log.apply(console,t)}debug(...e){this._log(Pr.levels.DEBUG,e)}info(...e){this._log(Pr.levels.INFO,e)}warn(...e){this._log(Pr.levels.WARNING,e)}makeError(e,t,r){if(vr)return this.makeError("censored error",t,{});t||(t=Pr.errors.UNKNOWN_ERROR),r||(r={});const n=[];Object.keys(r).forEach(e=>{const t=r[e];try{if(t instanceof Uint8Array){let r="";for(let e=0;e<t.length;e++)r+=kr[t[e]>>4],r+=kr[15&t[e]];n.push(e+"=Uint8Array(0x"+r+")")}else n.push(e+"="+JSON.stringify(t))}catch(t){n.push(e+"="+JSON.stringify(r[e].toString()))}}),n.push(`code=${t}`),n.push(`version=${this.version}`);const i=e;let o="";switch(t){case Ir.NUMERIC_FAULT:{o="NUMERIC_FAULT";const t=e;switch(t){case"overflow":case"underflow":case"division-by-zero":o+="-"+t;break;case"negative-power":case"negative-width":o+="-unsupported";break;case"unbound-bitwise-result":o+="-unbound-result"}break}case Ir.CALL_EXCEPTION:case Ir.INSUFFICIENT_FUNDS:case Ir.MISSING_NEW:case Ir.NONCE_EXPIRED:case Ir.REPLACEMENT_UNDERPRICED:case Ir.TRANSACTION_REPLACED:case Ir.UNPREDICTABLE_GAS_LIMIT:o=t}o&&(e+=" [ See: https://links.ethers.org/v5-errors-"+o+" ]"),n.length&&(e+=" ("+n.join(", ")+")");const s=new Error(e);return s.reason=i,s.code=t,Object.keys(r).forEach(function(e){s[e]=r[e]}),s}throwError(e,t,r){throw this.makeError(e,t,r)}throwArgumentError(e,t,r){return this.throwError(e,Pr.errors.INVALID_ARGUMENT,{argument:t,value:r})}assert(e,t,r,n){e||this.throwError(t,r,n)}assertArgument(e,t,r,n){e||this.throwArgumentError(t,r,n)}checkNormalize(e){Er&&this.throwError("platform missing String.prototype.normalize",Pr.errors.UNSUPPORTED_OPERATION,{operation:"String.prototype.normalize",form:Er})}checkSafeUint53(e,t){"number"==typeof e&&(null==t&&(t="value not safe"),(e<0||e>=9007199254740991)&&this.throwError(t,Pr.errors.NUMERIC_FAULT,{operation:"checkSafeInteger",fault:"out-of-safe-range",value:e}),e%1&&this.throwError(t,Pr.errors.NUMERIC_FAULT,{operation:"checkSafeInteger",fault:"non-integer",value:e}))}checkArgumentCount(e,t,r){r=r?": "+r:"",e<t&&this.throwError("missing argument"+r,Pr.errors.MISSING_ARGUMENT,{count:e,expectedCount:t}),e>t&&this.throwError("too many arguments"+r,Pr.errors.UNEXPECTED_ARGUMENT,{count:e,expectedCount:t})}checkNew(e,t){e!==Object&&null!=e||this.throwError("missing new",Pr.errors.MISSING_NEW,{name:t.name})}checkAbstract(e,t){e===t?this.throwError("cannot instantiate abstract class "+JSON.stringify(t.name)+" directly; use a sub-class",Pr.errors.UNSUPPORTED_OPERATION,{name:e.name,operation:"new"}):e!==Object&&null!=e||this.throwError("missing new",Pr.errors.MISSING_NEW,{name:t.name})}static globalLogger(){return Tr||(Tr=new Pr("logger/5.8.0")),Tr}static setCensorship(e,t){if(!e&&t&&this.globalLogger().throwError("cannot permanently disable censorship",Pr.errors.UNSUPPORTED_OPERATION,{operation:"setCensorship"}),br){if(!e)return;this.globalLogger().throwError("error censorship permanent",Pr.errors.UNSUPPORTED_OPERATION,{operation:"setCensorship"})}vr=!!e,br=!!t}static setLogLevel(e){const t=Ar[e.toLowerCase()];null!=t?wr=t:Pr.globalLogger().warn("invalid log level - "+e)}static from(e){return new Pr(e)}}Pr.errors=Ir,Pr.levels=Sr;const Cr=new Pr("bytes/5.8.0");function Nr(e){return!!e.toHexString}function xr(e){return e.slice||(e.slice=function(){const t=Array.prototype.slice.call(arguments);return xr(new Uint8Array(Array.prototype.slice.apply(e,t)))}),e}function _r(e){return Lr(e)&&!(e.length%2)||Mr(e)}function Rr(e){return"number"==typeof e&&e==e&&e%1==0}function Mr(e){if(null==e)return!1;if(e.constructor===Uint8Array)return!0;if("string"==typeof e)return!1;if(!Rr(e.length)||e.length<0)return!1;for(let t=0;t<e.length;t++){const r=e[t];if(!Rr(r)||r<0||r>=256)return!1}return!0}function Or(e,t){if(t||(t={}),"number"==typeof e){Cr.checkSafeUint53(e,"invalid arrayify value");const t=[];for(;e;)t.unshift(255&e),e=parseInt(String(e/256));return 0===t.length&&t.push(0),xr(new Uint8Array(t))}if(t.allowMissingPrefix&&"string"==typeof e&&"0x"!==e.substring(0,2)&&(e="0x"+e),Nr(e)&&(e=e.toHexString()),Lr(e)){let r=e.substring(2);r.length%2&&("left"===t.hexPad?r="0"+r:"right"===t.hexPad?r+="0":Cr.throwArgumentError("hex data is odd-length","value",e));const n=[];for(let e=0;e<r.length;e+=2)n.push(parseInt(r.substring(e,e+2),16));return xr(new Uint8Array(n))}return Mr(e)?xr(new Uint8Array(e)):Cr.throwArgumentError("invalid arrayify value","value",e)}function Br(e){const t=e.map(e=>Or(e)),r=t.reduce((e,t)=>e+t.length,0),n=new Uint8Array(r);return t.reduce((e,t)=>(n.set(t,e),e+t.length),0),xr(n)}function Dr(e){let t=Or(e);if(0===t.length)return t;let r=0;for(;r<t.length&&0===t[r];)r++;return r&&(t=t.slice(r)),t}function Lr(e,t){return!("string"!=typeof e||!e.match(/^0x[0-9A-Fa-f]*$/)||t&&e.length!==2+2*t)}const Fr="0123456789abcdef";function Ur(e,t){if(t||(t={}),"number"==typeof e){Cr.checkSafeUint53(e,"invalid hexlify value");let t="";for(;e;)t=Fr[15&e]+t,e=Math.floor(e/16);return t.length?(t.length%2&&(t="0"+t),"0x"+t):"0x00"}if("bigint"==typeof e)return(e=e.toString(16)).length%2?"0x0"+e:"0x"+e;if(t.allowMissingPrefix&&"string"==typeof e&&"0x"!==e.substring(0,2)&&(e="0x"+e),Nr(e))return e.toHexString();if(Lr(e))return e.length%2&&("left"===t.hexPad?e="0x0"+e.substring(2):"right"===t.hexPad?e+="0":Cr.throwArgumentError("hex data is odd-length","value",e)),e.toLowerCase();if(Mr(e)){let t="0x";for(let r=0;r<e.length;r++){let n=e[r];t+=Fr[(240&n)>>4]+Fr[15&n]}return t}return Cr.throwArgumentError("invalid hexlify value","value",e)}function Gr(e){if("string"!=typeof e)e=Ur(e);else if(!Lr(e)||e.length%2)return null;return(e.length-2)/2}function jr(e,t,r){return"string"!=typeof e?e=Ur(e):(!Lr(e)||e.length%2)&&Cr.throwArgumentError("invalid hexData","value",e),t=2+2*t,null!=r?"0x"+e.substring(t,2+2*r):"0x"+e.substring(t)}function Hr(e){let t="0x";return e.forEach(e=>{t+=Ur(e).substring(2)}),t}function qr(e){const t=function(e){"string"!=typeof e&&(e=Ur(e)),Lr(e)||Cr.throwArgumentError("invalid hex string","value",e),e=e.substring(2);let t=0;for(;t<e.length&&"0"===e[t];)t++;return"0x"+e.substring(t)}(Ur(e,{hexPad:"left"}));return"0x"===t?"0x0":t}function Vr(e,t){for("string"!=typeof e?e=Ur(e):Lr(e)||Cr.throwArgumentError("invalid hex string","value",e),e.length>2*t+2&&Cr.throwArgumentError("value out of range","value",arguments[1]);e.length<2*t+2;)e="0x0"+e.substring(2);return e}function zr(e){const t={r:"0x",s:"0x",_vs:"0x",recoveryParam:0,v:0,yParityAndS:"0x",compact:"0x"};if(_r(e)){let r=Or(e);64===r.length?(t.v=27+(r[32]>>7),r[32]&=127,t.r=Ur(r.slice(0,32)),t.s=Ur(r.slice(32,64))):65===r.length?(t.r=Ur(r.slice(0,32)),t.s=Ur(r.slice(32,64)),t.v=r[64]):Cr.throwArgumentError("invalid signature string","signature",e),t.v<27&&(0===t.v||1===t.v?t.v+=27:Cr.throwArgumentError("signature invalid v byte","signature",e)),t.recoveryParam=1-t.v%2,t.recoveryParam&&(r[32]|=128),t._vs=Ur(r.slice(32,64))}else{if(t.r=e.r,t.s=e.s,t.v=e.v,t.recoveryParam=e.recoveryParam,t._vs=e._vs,null!=t._vs){const r=function(e,t){(e=Or(e)).length>t&&Cr.throwArgumentError("value out of range","value",arguments[0]);const r=new Uint8Array(t);return r.set(e,t-e.length),xr(r)}(Or(t._vs),32);t._vs=Ur(r);const n=r[0]>=128?1:0;null==t.recoveryParam?t.recoveryParam=n:t.recoveryParam!==n&&Cr.throwArgumentError("signature recoveryParam mismatch _vs","signature",e),r[0]&=127;const i=Ur(r);null==t.s?t.s=i:t.s!==i&&Cr.throwArgumentError("signature v mismatch _vs","signature",e)}null==t.recoveryParam?null==t.v?Cr.throwArgumentError("signature missing v and recoveryParam","signature",e):t.recoveryParam=0===t.v||1===t.v?t.v:1-t.v%2:null==t.v?t.v=27+t.recoveryParam:t.recoveryParam!==(0===t.v||1===t.v?t.v:1-t.v%2)&&Cr.throwArgumentError("signature recoveryParam mismatch v","signature",e),null!=t.r&&Lr(t.r)?t.r=Vr(t.r,32):Cr.throwArgumentError("signature missing or invalid r","signature",e),null!=t.s&&Lr(t.s)?t.s=Vr(t.s,32):Cr.throwArgumentError("signature missing or invalid s","signature",e);const r=Or(t.s);r[0]>=128&&Cr.throwArgumentError("signature s out of range","signature",e),t.recoveryParam&&(r[0]|=128);const n=Ur(r);t._vs&&(Lr(t._vs)||Cr.throwArgumentError("signature invalid _vs","signature",e),t._vs=Vr(t._vs,32)),null==t._vs?t._vs=n:t._vs!==n&&Cr.throwArgumentError("signature _vs mismatch v and s","signature",e)}return t.yParityAndS=t._vs,t.compact=t.r+t.yParityAndS.substring(2),t}function Kr(e){return Ur(Br([(e=zr(e)).r,e.s,e.recoveryParam?"0x1c":"0x1b"]))}const Wr="bignumber/5.8.0";var Jr=gr.BN;const Qr=new Pr(Wr),Yr={},Xr=9007199254740991;let Zr=!1;class $r{constructor(e,t){e!==Yr&&Qr.throwError("cannot call constructor directly; use BigNumber.from",Pr.errors.UNSUPPORTED_OPERATION,{operation:"new (BigNumber)"}),this._hex=t,this._isBigNumber=!0,Object.freeze(this)}fromTwos(e){return tn(rn(this).fromTwos(e))}toTwos(e){return tn(rn(this).toTwos(e))}abs(){return"-"===this._hex[0]?$r.from(this._hex.substring(1)):this}add(e){return tn(rn(this).add(rn(e)))}sub(e){return tn(rn(this).sub(rn(e)))}div(e){return $r.from(e).isZero()&&nn("division-by-zero","div"),tn(rn(this).div(rn(e)))}mul(e){return tn(rn(this).mul(rn(e)))}mod(e){const t=rn(e);return t.isNeg()&&nn("division-by-zero","mod"),tn(rn(this).umod(t))}pow(e){const t=rn(e);return t.isNeg()&&nn("negative-power","pow"),tn(rn(this).pow(t))}and(e){const t=rn(e);return(this.isNegative()||t.isNeg())&&nn("unbound-bitwise-result","and"),tn(rn(this).and(t))}or(e){const t=rn(e);return(this.isNegative()||t.isNeg())&&nn("unbound-bitwise-result","or"),tn(rn(this).or(t))}xor(e){const t=rn(e);return(this.isNegative()||t.isNeg())&&nn("unbound-bitwise-result","xor"),tn(rn(this).xor(t))}mask(e){return(this.isNegative()||e<0)&&nn("negative-width","mask"),tn(rn(this).maskn(e))}shl(e){return(this.isNegative()||e<0)&&nn("negative-width","shl"),tn(rn(this).shln(e))}shr(e){return(this.isNegative()||e<0)&&nn("negative-width","shr"),tn(rn(this).shrn(e))}eq(e){return rn(this).eq(rn(e))}lt(e){return rn(this).lt(rn(e))}lte(e){return rn(this).lte(rn(e))}gt(e){return rn(this).gt(rn(e))}gte(e){return rn(this).gte(rn(e))}isNegative(){return"-"===this._hex[0]}isZero(){return rn(this).isZero()}toNumber(){try{return rn(this).toNumber()}catch(e){nn("overflow","toNumber",this.toString())}return null}toBigInt(){try{return BigInt(this.toString())}catch(e){}return Qr.throwError("this platform does not support BigInt",Pr.errors.UNSUPPORTED_OPERATION,{value:this.toString()})}toString(){return arguments.length>0&&(10===arguments[0]?Zr||(Zr=!0,Qr.warn("BigNumber.toString does not accept any parameters; base-10 is assumed")):Qr.throwError(16===arguments[0]?"BigNumber.toString does not accept any parameters; use bigNumber.toHexString()":"BigNumber.toString does not accept parameters",Pr.errors.UNEXPECTED_ARGUMENT,{})),rn(this).toString(10)}toHexString(){return this._hex}toJSON(e){return{type:"BigNumber",hex:this.toHexString()}}static from(e){if(e instanceof $r)return e;if("string"==typeof e)return e.match(/^-?0x[0-9a-f]+$/i)?new $r(Yr,en(e)):e.match(/^-?[0-9]+$/)?new $r(Yr,en(new Jr(e))):Qr.throwArgumentError("invalid BigNumber string","value",e);if("number"==typeof e)return e%1&&nn("underflow","BigNumber.from",e),(e>=Xr||e<=-Xr)&&nn("overflow","BigNumber.from",e),$r.from(String(e));const t=e;if("bigint"==typeof t)return $r.from(t.toString());if(Mr(t))return $r.from(Ur(t));if(t)if(t.toHexString){const e=t.toHexString();if("string"==typeof e)return $r.from(e)}else{let e=t._hex;if(null==e&&"BigNumber"===t.type&&(e=t.hex),"string"==typeof e&&(Lr(e)||"-"===e[0]&&Lr(e.substring(1))))return $r.from(e)}return Qr.throwArgumentError("invalid BigNumber value","value",e)}static isBigNumber(e){return!(!e||!e._isBigNumber)}}function en(e){if("string"!=typeof e)return en(e.toString(16));if("-"===e[0])return"-"===(e=e.substring(1))[0]&&Qr.throwArgumentError("invalid hex","value",e),"0x00"===(e=en(e))?e:"-"+e;if("0x"!==e.substring(0,2)&&(e="0x"+e),"0x"===e)return"0x00";for(e.length%2&&(e="0x0"+e.substring(2));e.length>4&&"0x00"===e.substring(0,4);)e="0x"+e.substring(4);return e}function tn(e){return $r.from(en(e))}function rn(e){const t=$r.from(e).toHexString();return new Jr("-"===t[0]?"-"+t.substring(3):t.substring(2),16)}function nn(e,t,r){const n={fault:e,operation:t};return null!=r&&(n.value=r),Qr.throwError(e,Pr.errors.NUMERIC_FAULT,n)}const on=new Pr(Wr),sn={},an=$r.from(0),un=$r.from(-1);function ln(e,t,r,n){const i={fault:t,operation:r};return void 0!==n&&(i.value=n),on.throwError(e,Pr.errors.NUMERIC_FAULT,i)}let cn="0";for(;cn.length<256;)cn+=cn;function dn(e){if("number"!=typeof e)try{e=$r.from(e).toNumber()}catch(e){}return"number"==typeof e&&e>=0&&e<=256&&!(e%1)?"1"+cn.substring(0,e):on.throwArgumentError("invalid decimal size","decimals",e)}function hn(e,t){null==t&&(t=0);const r=dn(t),n=(e=$r.from(e)).lt(an);n&&(e=e.mul(un));let i=e.mod(r).toString();for(;i.length<r.length-1;)i="0"+i;i=i.match(/^([0-9]*[1-9]|0)(0*)/)[1];const o=e.div(r).toString();return e=1===r.length?o:o+"."+i,n&&(e="-"+e),e}function pn(e,t){null==t&&(t=0);const r=dn(t);"string"==typeof e&&e.match(/^-?[0-9.]+$/)||on.throwArgumentError("invalid decimal value","value",e);const n="-"===e.substring(0,1);n&&(e=e.substring(1)),"."===e&&on.throwArgumentError("missing value","value",e);const i=e.split(".");i.length>2&&on.throwArgumentError("too many decimal points","value",e);let o=i[0],s=i[1];for(o||(o="0"),s||(s="0");"0"===s[s.length-1];)s=s.substring(0,s.length-1);for(s.length>r.length-1&&ln("fractional component exceeds decimals","underflow","parseFixed"),""===s&&(s="0");s.length<r.length-1;)s+="0";const a=$r.from(o),u=$r.from(s);let l=a.mul(r).add(u);return n&&(l=l.mul(un)),l}class fn{constructor(e,t,r,n){e!==sn&&on.throwError("cannot use FixedFormat constructor; use FixedFormat.from",Pr.errors.UNSUPPORTED_OPERATION,{operation:"new FixedFormat"}),this.signed=t,this.width=r,this.decimals=n,this.name=(t?"":"u")+"fixed"+String(r)+"x"+String(n),this._multiplier=dn(n),Object.freeze(this)}static from(e){if(e instanceof fn)return e;"number"==typeof e&&(e=`fixed128x${e}`);let t=!0,r=128,n=18;if("string"==typeof e)if("fixed"===e);else if("ufixed"===e)t=!1;else{const i=e.match(/^(u?)fixed([0-9]+)x([0-9]+)$/);i||on.throwArgumentError("invalid fixed format","format",e),t="u"!==i[1],r=parseInt(i[2]),n=parseInt(i[3])}else if(e){const i=(t,r,n)=>null==e[t]?n:(typeof e[t]!==r&&on.throwArgumentError("invalid fixed format ("+t+" not "+r+")","format."+t,e[t]),e[t]);t=i("signed","boolean",t),r=i("width","number",r),n=i("decimals","number",n)}return r%8&&on.throwArgumentError("invalid fixed format width (not byte aligned)","format.width",r),n>80&&on.throwArgumentError("invalid fixed format (decimals too large)","format.decimals",n),new fn(sn,t,r,n)}}class mn{constructor(e,t,r,n){e!==sn&&on.throwError("cannot use FixedNumber constructor; use FixedNumber.from",Pr.errors.UNSUPPORTED_OPERATION,{operation:"new FixedFormat"}),this.format=n,this._hex=t,this._value=r,this._isFixedNumber=!0,Object.freeze(this)}_checkFormat(e){this.format.name!==e.format.name&&on.throwArgumentError("incompatible format; use fixedNumber.toFormat","other",e)}addUnsafe(e){this._checkFormat(e);const t=pn(this._value,this.format.decimals),r=pn(e._value,e.format.decimals);return mn.fromValue(t.add(r),this.format.decimals,this.format)}subUnsafe(e){this._checkFormat(e);const t=pn(this._value,this.format.decimals),r=pn(e._value,e.format.decimals);return mn.fromValue(t.sub(r),this.format.decimals,this.format)}mulUnsafe(e){this._checkFormat(e);const t=pn(this._value,this.format.decimals),r=pn(e._value,e.format.decimals);return mn.fromValue(t.mul(r).div(this.format._multiplier),this.format.decimals,this.format)}divUnsafe(e){this._checkFormat(e);const t=pn(this._value,this.format.decimals),r=pn(e._value,e.format.decimals);return mn.fromValue(t.mul(this.format._multiplier).div(r),this.format.decimals,this.format)}floor(){const e=this.toString().split(".");1===e.length&&e.push("0");let t=mn.from(e[0],this.format);const r=!e[1].match(/^(0*)$/);return this.isNegative()&&r&&(t=t.subUnsafe(yn.toFormat(t.format))),t}ceiling(){const e=this.toString().split(".");1===e.length&&e.push("0");let t=mn.from(e[0],this.format);const r=!e[1].match(/^(0*)$/);return!this.isNegative()&&r&&(t=t.addUnsafe(yn.toFormat(t.format))),t}round(e){null==e&&(e=0);const t=this.toString().split(".");if(1===t.length&&t.push("0"),(e<0||e>80||e%1)&&on.throwArgumentError("invalid decimal count","decimals",e),t[1].length<=e)return this;const r=mn.from("1"+cn.substring(0,e),this.format),n=gn.toFormat(this.format);return this.mulUnsafe(r).addUnsafe(n).floor().divUnsafe(r)}isZero(){return"0.0"===this._value||"0"===this._value}isNegative(){return"-"===this._value[0]}toString(){return this._value}toHexString(e){return null==e?this._hex:(e%8&&on.throwArgumentError("invalid byte width","width",e),Vr($r.from(this._hex).fromTwos(this.format.width).toTwos(e).toHexString(),e/8))}toUnsafeFloat(){return parseFloat(this.toString())}toFormat(e){return mn.fromString(this._value,e)}static fromValue(e,t,r){return null!=r||null==t||function(e){return null!=e&&($r.isBigNumber(e)||"number"==typeof e&&e%1==0||"string"==typeof e&&!!e.match(/^-?[0-9]+$/)||Lr(e)||"bigint"==typeof e||Mr(e))}(t)||(r=t,t=null),null==t&&(t=0),null==r&&(r="fixed"),mn.fromString(hn(e,t),fn.from(r))}static fromString(e,t){null==t&&(t="fixed");const r=fn.from(t),n=pn(e,r.decimals);!r.signed&&n.lt(an)&&ln("unsigned value cannot be negative","overflow","value",e);let i=null;r.signed?i=n.toTwos(r.width).toHexString():(i=n.toHexString(),i=Vr(i,r.width/8));const o=hn(n,r.decimals);return new mn(sn,i,o,r)}static fromBytes(e,t){null==t&&(t="fixed");const r=fn.from(t);if(Or(e).length>r.width/8)throw new Error("overflow");let n=$r.from(e);r.signed&&(n=n.fromTwos(r.width));const i=n.toTwos((r.signed?0:1)+r.width).toHexString(),o=hn(n,r.decimals);return new mn(sn,i,o,r)}static from(e,t){if("string"==typeof e)return mn.fromString(e,t);if(Mr(e))return mn.fromBytes(e,t);try{return mn.fromValue(e,0,t)}catch(e){if(e.code!==Pr.errors.INVALID_ARGUMENT)throw e}return on.throwArgumentError("invalid FixedNumber value","value",e)}static isFixedNumber(e){return!(!e||!e._isFixedNumber)}}const yn=mn.from(1),gn=mn.from("0.5");var bn=function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function s(e){try{u(n.next(e))}catch(e){o(e)}}function a(e){try{u(n.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r(function(e){e(t)})).then(s,a)}u((n=n.apply(e,t||[])).next())})};const vn=new Pr("properties/5.8.0");function An(e,t,r){Object.defineProperty(e,t,{enumerable:!0,value:r,writable:!1})}function wn(e,t){for(let r=0;r<32;r++){if(e[t])return e[t];if(!e.prototype||"object"!=typeof e.prototype)break;e=Object.getPrototypeOf(e.prototype).constructor}return null}function Tn(e){return bn(this,void 0,void 0,function*(){const t=Object.keys(e).map(t=>Promise.resolve(e[t]).then(e=>({key:t,value:e})));return(yield Promise.all(t)).reduce((e,t)=>(e[t.key]=t.value,e),{})})}function En(e,t){e&&"object"==typeof e||vn.throwArgumentError("invalid object","object",e),Object.keys(e).forEach(r=>{t[r]||vn.throwArgumentError("invalid object key - "+r,"transaction:"+r,e)})}function Sn(e){const t={};for(const r in e)t[r]=e[r];return t}const In={bigint:!0,boolean:!0,function:!0,number:!0,string:!0};function kn(e){if(null==e||In[typeof e])return!0;if(Array.isArray(e)||"object"==typeof e){if(!Object.isFrozen(e))return!1;const t=Object.keys(e);for(let r=0;r<t.length;r++){let n=null;try{n=e[t[r]]}catch(e){continue}if(!kn(n))return!1}return!0}return vn.throwArgumentError("Cannot deepCopy "+typeof e,"object",e)}function Pn(e){if(kn(e))return e;if(Array.isArray(e))return Object.freeze(e.map(e=>Cn(e)));if("object"==typeof e){const t={};for(const r in e){const n=e[r];void 0!==n&&An(t,r,Cn(n))}return t}return vn.throwArgumentError("Cannot deepCopy "+typeof e,"object",e)}function Cn(e){return Pn(e)}class Nn{constructor(e){for(const t in e)this[t]=Cn(e[t])}}const xn=new Pr("abstract-provider/5.8.0");class _n extends Nn{static isForkEvent(e){return!(!e||!e._isForkEvent)}}class Rn{constructor(){xn.checkAbstract(new.target,Rn),An(this,"_isProvider",!0)}getFeeData(){return e=this,r=function*(){const{block:e,gasPrice:t}=yield Tn({block:this.getBlock("latest"),gasPrice:this.getGasPrice().catch(e=>null)});let r=null,n=null,i=null;return e&&e.baseFeePerGas&&(r=e.baseFeePerGas,i=$r.from("1500000000"),n=e.baseFeePerGas.mul(2).add(i)),{lastBaseFeePerGas:r,maxFeePerGas:n,maxPriorityFeePerGas:i,gasPrice:t}},new((t=void 0)||(t=Promise))(function(n,i){function o(e){try{a(r.next(e))}catch(e){i(e)}}function s(e){try{a(r.throw(e))}catch(e){i(e)}}function a(e){var r;e.done?n(e.value):(r=e.value,r instanceof t?r:new t(function(e){e(r)})).then(o,s)}a((r=r.apply(e,[])).next())});var e,t,r}addListener(e,t){return this.on(e,t)}removeListener(e,t){return this.off(e,t)}static isProvider(e){return!(!e||!e._isProvider)}}const Mn=new Pr("networks/5.8.0");function On(e){const t=function(t,r){null==r&&(r={});const n=[];if(t.InfuraProvider&&"-"!==r.infura)try{n.push(new t.InfuraProvider(e,r.infura))}catch(e){}if(t.EtherscanProvider&&"-"!==r.etherscan)try{n.push(new t.EtherscanProvider(e,r.etherscan))}catch(e){}if(t.AlchemyProvider&&"-"!==r.alchemy)try{n.push(new t.AlchemyProvider(e,r.alchemy))}catch(e){}if(t.PocketProvider&&"-"!==r.pocket){const i=["goerli","ropsten","rinkeby","sepolia"];try{const o=new t.PocketProvider(e,r.pocket);o.network&&-1===i.indexOf(o.network.name)&&n.push(o)}catch(e){}}if(t.CloudflareProvider&&"-"!==r.cloudflare)try{n.push(new t.CloudflareProvider(e))}catch(e){}if(t.AnkrProvider&&"-"!==r.ankr)try{const i=["ropsten"],o=new t.AnkrProvider(e,r.ankr);o.network&&-1===i.indexOf(o.network.name)&&n.push(o)}catch(e){}if(t.QuickNodeProvider&&"-"!==r.quicknode)try{n.push(new t.QuickNodeProvider(e,r.quicknode))}catch(e){}if(0===n.length)return null;if(t.FallbackProvider){let i=1;return null!=r.quorum?i=r.quorum:"homestead"===e&&(i=2),new t.FallbackProvider(n,i)}return n[0]};return t.renetwork=function(e){return On(e)},t}function Bn(e,t){const r=function(r,n){return r.JsonRpcProvider?new r.JsonRpcProvider(e,t):null};return r.renetwork=function(t){return Bn(e,t)},r}const Dn={chainId:1,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"homestead",_defaultProvider:On("homestead")},Ln={chainId:3,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"ropsten",_defaultProvider:On("ropsten")},Fn={chainId:63,name:"classicMordor",_defaultProvider:Bn("https://www.ethercluster.com/mordor","classicMordor")},Un={unspecified:{chainId:0,name:"unspecified"},homestead:Dn,mainnet:Dn,morden:{chainId:2,name:"morden"},ropsten:Ln,testnet:Ln,rinkeby:{chainId:4,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"rinkeby",_defaultProvider:On("rinkeby")},kovan:{chainId:42,name:"kovan",_defaultProvider:On("kovan")},goerli:{chainId:5,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"goerli",_defaultProvider:On("goerli")},kintsugi:{chainId:1337702,name:"kintsugi"},sepolia:{chainId:11155111,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"sepolia",_defaultProvider:On("sepolia")},holesky:{chainId:17e3,name:"holesky",_defaultProvider:On("holesky")},classic:{chainId:61,name:"classic",_defaultProvider:Bn("https://www.ethercluster.com/etc","classic")},classicMorden:{chainId:62,name:"classicMorden"},classicMordor:Fn,classicTestnet:Fn,classicKotti:{chainId:6,name:"classicKotti",_defaultProvider:Bn("https://www.ethercluster.com/kotti","classicKotti")},xdai:{chainId:100,name:"xdai"},matic:{chainId:137,name:"matic",_defaultProvider:On("matic")},maticmum:{chainId:80001,name:"maticmum",_defaultProvider:On("maticmum")},optimism:{chainId:10,name:"optimism",_defaultProvider:On("optimism")},"optimism-kovan":{chainId:69,name:"optimism-kovan"},"optimism-goerli":{chainId:420,name:"optimism-goerli"},"optimism-sepolia":{chainId:11155420,name:"optimism-sepolia"},arbitrum:{chainId:42161,name:"arbitrum"},"arbitrum-rinkeby":{chainId:421611,name:"arbitrum-rinkeby"},"arbitrum-goerli":{chainId:421613,name:"arbitrum-goerli"},"arbitrum-sepolia":{chainId:421614,name:"arbitrum-sepolia"},bnb:{chainId:56,name:"bnb"},bnbt:{chainId:97,name:"bnbt"}};function Gn(e){e=atob(e);const t=[];for(let r=0;r<e.length;r++)t.push(e.charCodeAt(r));return Or(t)}function jn(e){e=Or(e);let t="";for(let r=0;r<e.length;r++)t+=String.fromCharCode(e[r]);return btoa(t)}class Hn{constructor(e){An(this,"alphabet",e),An(this,"base",e.length),An(this,"_alphabetMap",{}),An(this,"_leader",e.charAt(0));for(let t=0;t<e.length;t++)this._alphabetMap[e.charAt(t)]=t}encode(e){let t=Or(e);if(0===t.length)return"";let r=[0];for(let e=0;e<t.length;++e){let n=t[e];for(let e=0;e<r.length;++e)n+=r[e]<<8,r[e]=n%this.base,n=n/this.base|0;for(;n>0;)r.push(n%this.base),n=n/this.base|0}let n="";for(let e=0;0===t[e]&&e<t.length-1;++e)n+=this._leader;for(let e=r.length-1;e>=0;--e)n+=this.alphabet[r[e]];return n}decode(e){if("string"!=typeof e)throw new TypeError("Expected String");let t=[];if(0===e.length)return new Uint8Array(t);t.push(0);for(let r=0;r<e.length;r++){let n=this._alphabetMap[e[r]];if(void 0===n)throw new Error("Non-base"+this.base+" character");let i=n;for(let e=0;e<t.length;++e)i+=t[e]*this.base,t[e]=255&i,i>>=8;for(;i>0;)t.push(255&i),i>>=8}for(let r=0;e[r]===this._leader&&r<e.length-1;++r)t.push(0);return Or(new Uint8Array(t.reverse()))}}new Hn("abcdefghijklmnopqrstuvwxyz234567");const qn=new Hn("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"),Vn=/*#__PURE__*/$r.from(-1),zn=/*#__PURE__*/$r.from(0),Kn=/*#__PURE__*/$r.from(1),Wn=/*#__PURE__*/$r.from("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");var Jn=mr(function(e){!function(){var t="input is invalid type",r="object"==typeof window,n=r?window:{};n.JS_SHA3_NO_WINDOW&&(r=!1);var i=!r&&"object"==typeof self;!n.JS_SHA3_NO_NODE_JS&&"object"==typeof process&&process.versions&&process.versions.node?n=fr:i&&(n=self);var o=!n.JS_SHA3_NO_COMMON_JS&&e.exports,s=!n.JS_SHA3_NO_ARRAY_BUFFER&&"undefined"!=typeof ArrayBuffer,a="0123456789abcdef".split(""),u=[4,1024,262144,67108864],l=[0,8,16,24],c=[1,0,32898,0,32906,2147483648,2147516416,2147483648,32907,0,2147483649,0,2147516545,2147483648,32777,2147483648,138,0,136,0,2147516425,0,2147483658,0,2147516555,0,139,2147483648,32905,2147483648,32771,2147483648,32770,2147483648,128,2147483648,32778,0,2147483658,2147483648,2147516545,2147483648,32896,2147483648,2147483649,0,2147516424,2147483648],d=[224,256,384,512],h=[128,256],p=["hex","buffer","arrayBuffer","array","digest"],f={128:168,256:136};!n.JS_SHA3_NO_NODE_JS&&Array.isArray||(Array.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),!s||!n.JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW&&ArrayBuffer.isView||(ArrayBuffer.isView=function(e){return"object"==typeof e&&e.buffer&&e.buffer.constructor===ArrayBuffer});for(var m=function(e,t,r){return function(n){return new x(e,t,e).update(n)[r]()}},y=function(e,t,r){return function(n,i){return new x(e,t,i).update(n)[r]()}},g=function(e,t,r){return function(t,n,i,o){return T["cshake"+e].update(t,n,i,o)[r]()}},b=function(e,t,r){return function(t,n,i,o){return T["kmac"+e].update(t,n,i,o)[r]()}},v=function(e,t,r,n){for(var i=0;i<p.length;++i){var o=p[i];e[o]=t(r,n,o)}return e},A=function(e,t){var r=m(e,t,"hex");return r.create=function(){return new x(e,t,e)},r.update=function(e){return r.create().update(e)},v(r,m,e,t)},w=[{name:"keccak",padding:[1,256,65536,16777216],bits:d,createMethod:A},{name:"sha3",padding:[6,1536,393216,100663296],bits:d,createMethod:A},{name:"shake",padding:[31,7936,2031616,520093696],bits:h,createMethod:function(e,t){var r=y(e,t,"hex");return r.create=function(r){return new x(e,t,r)},r.update=function(e,t){return r.create(t).update(e)},v(r,y,e,t)}},{name:"cshake",padding:u,bits:h,createMethod:function(e,t){var r=f[e],n=g(e,0,"hex");return n.create=function(n,i,o){return i||o?new x(e,t,n).bytepad([i,o],r):T["shake"+e].create(n)},n.update=function(e,t,r,i){return n.create(t,r,i).update(e)},v(n,g,e,t)}},{name:"kmac",padding:u,bits:h,createMethod:function(e,t){var r=f[e],n=b(e,0,"hex");return n.create=function(n,i,o){return new _(e,t,i).bytepad(["KMAC",o],r).bytepad([n],r)},n.update=function(e,t,r,i){return n.create(e,r,i).update(t)},v(n,b,e,t)}}],T={},E=[],S=0;S<w.length;++S)for(var I=w[S],k=I.bits,P=0;P<k.length;++P){var C=I.name+"_"+k[P];if(E.push(C),T[C]=I.createMethod(k[P],I.padding),"sha3"!==I.name){var N=I.name+k[P];E.push(N),T[N]=T[C]}}function x(e,t,r){this.blocks=[],this.s=[],this.padding=t,this.outputBits=r,this.reset=!0,this.finalized=!1,this.block=0,this.start=0,this.blockCount=1600-(e<<1)>>5,this.byteCount=this.blockCount<<2,this.outputBlocks=r>>5,this.extraBytes=(31&r)>>3;for(var n=0;n<50;++n)this.s[n]=0}function _(e,t,r){x.call(this,e,t,r)}x.prototype.update=function(e){if(this.finalized)throw new Error("finalize already called");var r,n=typeof e;if("string"!==n){if("object"!==n)throw new Error(t);if(null===e)throw new Error(t);if(s&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!(Array.isArray(e)||s&&ArrayBuffer.isView(e)))throw new Error(t);r=!0}for(var i,o,a=this.blocks,u=this.byteCount,c=e.length,d=this.blockCount,h=0,p=this.s;h<c;){if(this.reset)for(this.reset=!1,a[0]=this.block,i=1;i<d+1;++i)a[i]=0;if(r)for(i=this.start;h<c&&i<u;++h)a[i>>2]|=e[h]<<l[3&i++];else for(i=this.start;h<c&&i<u;++h)(o=e.charCodeAt(h))<128?a[i>>2]|=o<<l[3&i++]:o<2048?(a[i>>2]|=(192|o>>6)<<l[3&i++],a[i>>2]|=(128|63&o)<<l[3&i++]):o<55296||o>=57344?(a[i>>2]|=(224|o>>12)<<l[3&i++],a[i>>2]|=(128|o>>6&63)<<l[3&i++],a[i>>2]|=(128|63&o)<<l[3&i++]):(o=65536+((1023&o)<<10|1023&e.charCodeAt(++h)),a[i>>2]|=(240|o>>18)<<l[3&i++],a[i>>2]|=(128|o>>12&63)<<l[3&i++],a[i>>2]|=(128|o>>6&63)<<l[3&i++],a[i>>2]|=(128|63&o)<<l[3&i++]);if(this.lastByteIndex=i,i>=u){for(this.start=i-u,this.block=a[d],i=0;i<d;++i)p[i]^=a[i];R(p),this.reset=!0}else this.start=i}return this},x.prototype.encode=function(e,t){var r=255&e,n=1,i=[r];for(r=255&(e>>=8);r>0;)i.unshift(r),r=255&(e>>=8),++n;return t?i.push(n):i.unshift(n),this.update(i),i.length},x.prototype.encodeString=function(e){var r,n=typeof e;if("string"!==n){if("object"!==n)throw new Error(t);if(null===e)throw new Error(t);if(s&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!(Array.isArray(e)||s&&ArrayBuffer.isView(e)))throw new Error(t);r=!0}var i=0;if(r)i=e.length;else for(var o=0;o<e.length;++o){var a=e.charCodeAt(o);a<128?i+=1:a<2048?i+=2:a<55296||a>=57344?i+=3:(a=65536+((1023&a)<<10|1023&e.charCodeAt(++o)),i+=4)}return i+=this.encode(8*i),this.update(e),i},x.prototype.bytepad=function(e,t){for(var r=this.encode(t),n=0;n<e.length;++n)r+=this.encodeString(e[n]);var i=[];return i.length=t-r%t,this.update(i),this},x.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var e=this.blocks,t=this.lastByteIndex,r=this.blockCount,n=this.s;if(e[t>>2]|=this.padding[3&t],this.lastByteIndex===this.byteCount)for(e[0]=e[r],t=1;t<r+1;++t)e[t]=0;for(e[r-1]|=2147483648,t=0;t<r;++t)n[t]^=e[t];R(n)}},x.prototype.toString=x.prototype.hex=function(){this.finalize();for(var e,t=this.blockCount,r=this.s,n=this.outputBlocks,i=this.extraBytes,o=0,s=0,u="";s<n;){for(o=0;o<t&&s<n;++o,++s)u+=a[(e=r[o])>>4&15]+a[15&e]+a[e>>12&15]+a[e>>8&15]+a[e>>20&15]+a[e>>16&15]+a[e>>28&15]+a[e>>24&15];s%t==0&&(R(r),o=0)}return i&&(u+=a[(e=r[o])>>4&15]+a[15&e],i>1&&(u+=a[e>>12&15]+a[e>>8&15]),i>2&&(u+=a[e>>20&15]+a[e>>16&15])),u},x.prototype.arrayBuffer=function(){this.finalize();var e,t=this.blockCount,r=this.s,n=this.outputBlocks,i=this.extraBytes,o=0,s=0,a=this.outputBits>>3;e=i?new ArrayBuffer(n+1<<2):new ArrayBuffer(a);for(var u=new Uint32Array(e);s<n;){for(o=0;o<t&&s<n;++o,++s)u[s]=r[o];s%t==0&&R(r)}return i&&(u[o]=r[o],e=e.slice(0,a)),e},x.prototype.buffer=x.prototype.arrayBuffer,x.prototype.digest=x.prototype.array=function(){this.finalize();for(var e,t,r=this.blockCount,n=this.s,i=this.outputBlocks,o=this.extraBytes,s=0,a=0,u=[];a<i;){for(s=0;s<r&&a<i;++s,++a)u[e=a<<2]=255&(t=n[s]),u[e+1]=t>>8&255,u[e+2]=t>>16&255,u[e+3]=t>>24&255;a%r==0&&R(n)}return o&&(u[e=a<<2]=255&(t=n[s]),o>1&&(u[e+1]=t>>8&255),o>2&&(u[e+2]=t>>16&255)),u},(_.prototype=new x).finalize=function(){return this.encode(this.outputBits,!0),x.prototype.finalize.call(this)};var R=function(e){var t,r,n,i,o,s,a,u,l,d,h,p,f,m,y,g,b,v,A,w,T,E,S,I,k,P,C,N,x,_,R,M,O,B,D,L,F,U,G,j,H,q,V,z,K,W,J,Q,Y,X,Z,$,ee,te,re,ne,ie,oe,se,ae,ue,le,ce;for(n=0;n<48;n+=2)i=e[0]^e[10]^e[20]^e[30]^e[40],o=e[1]^e[11]^e[21]^e[31]^e[41],u=e[4]^e[14]^e[24]^e[34]^e[44],l=e[5]^e[15]^e[25]^e[35]^e[45],d=e[6]^e[16]^e[26]^e[36]^e[46],h=e[7]^e[17]^e[27]^e[37]^e[47],r=(f=e[9]^e[19]^e[29]^e[39]^e[49])^((a=e[3]^e[13]^e[23]^e[33]^e[43])<<1|(s=e[2]^e[12]^e[22]^e[32]^e[42])>>>31),e[0]^=t=(p=e[8]^e[18]^e[28]^e[38]^e[48])^(s<<1|a>>>31),e[1]^=r,e[10]^=t,e[11]^=r,e[20]^=t,e[21]^=r,e[30]^=t,e[31]^=r,e[40]^=t,e[41]^=r,r=o^(l<<1|u>>>31),e[2]^=t=i^(u<<1|l>>>31),e[3]^=r,e[12]^=t,e[13]^=r,e[22]^=t,e[23]^=r,e[32]^=t,e[33]^=r,e[42]^=t,e[43]^=r,r=a^(h<<1|d>>>31),e[4]^=t=s^(d<<1|h>>>31),e[5]^=r,e[14]^=t,e[15]^=r,e[24]^=t,e[25]^=r,e[34]^=t,e[35]^=r,e[44]^=t,e[45]^=r,r=l^(f<<1|p>>>31),e[6]^=t=u^(p<<1|f>>>31),e[7]^=r,e[16]^=t,e[17]^=r,e[26]^=t,e[27]^=r,e[36]^=t,e[37]^=r,e[46]^=t,e[47]^=r,r=h^(o<<1|i>>>31),e[8]^=t=d^(i<<1|o>>>31),e[9]^=r,e[18]^=t,e[19]^=r,e[28]^=t,e[29]^=r,e[38]^=t,e[39]^=r,e[48]^=t,e[49]^=r,y=e[1],W=e[11]<<4|e[10]>>>28,J=e[10]<<4|e[11]>>>28,N=e[20]<<3|e[21]>>>29,x=e[21]<<3|e[20]>>>29,ae=e[31]<<9|e[30]>>>23,ue=e[30]<<9|e[31]>>>23,q=e[40]<<18|e[41]>>>14,V=e[41]<<18|e[40]>>>14,B=e[2]<<1|e[3]>>>31,D=e[3]<<1|e[2]>>>31,b=e[12]<<12|e[13]>>>20,Q=e[22]<<10|e[23]>>>22,Y=e[23]<<10|e[22]>>>22,_=e[33]<<13|e[32]>>>19,R=e[32]<<13|e[33]>>>19,le=e[42]<<2|e[43]>>>30,ce=e[43]<<2|e[42]>>>30,te=e[5]<<30|e[4]>>>2,re=e[4]<<30|e[5]>>>2,L=e[14]<<6|e[15]>>>26,F=e[15]<<6|e[14]>>>26,A=e[24]<<11|e[25]>>>21,X=e[34]<<15|e[35]>>>17,Z=e[35]<<15|e[34]>>>17,M=e[45]<<29|e[44]>>>3,O=e[44]<<29|e[45]>>>3,I=e[6]<<28|e[7]>>>4,k=e[7]<<28|e[6]>>>4,ne=e[17]<<23|e[16]>>>9,ie=e[16]<<23|e[17]>>>9,U=e[26]<<25|e[27]>>>7,G=e[27]<<25|e[26]>>>7,w=e[36]<<21|e[37]>>>11,T=e[37]<<21|e[36]>>>11,$=e[47]<<24|e[46]>>>8,ee=e[46]<<24|e[47]>>>8,z=e[8]<<27|e[9]>>>5,K=e[9]<<27|e[8]>>>5,P=e[18]<<20|e[19]>>>12,C=e[19]<<20|e[18]>>>12,oe=e[29]<<7|e[28]>>>25,se=e[28]<<7|e[29]>>>25,j=e[38]<<8|e[39]>>>24,H=e[39]<<8|e[38]>>>24,E=e[48]<<14|e[49]>>>18,S=e[49]<<14|e[48]>>>18,e[0]=(m=e[0])^~(g=e[13]<<12|e[12]>>>20)&(v=e[25]<<11|e[24]>>>21),e[1]=y^~b&A,e[10]=I^~P&N,e[11]=k^~C&x,e[20]=B^~L&U,e[21]=D^~F&G,e[30]=z^~W&Q,e[31]=K^~J&Y,e[40]=te^~ne&oe,e[41]=re^~ie&se,e[2]=g^~v&w,e[3]=b^~A&T,e[12]=P^~N&_,e[13]=C^~x&R,e[22]=L^~U&j,e[23]=F^~G&H,e[32]=W^~Q&X,e[33]=J^~Y&Z,e[42]=ne^~oe&ae,e[43]=ie^~se&ue,e[4]=v^~w&E,e[5]=A^~T&S,e[14]=N^~_&M,e[15]=x^~R&O,e[24]=U^~j&q,e[25]=G^~H&V,e[34]=Q^~X&$,e[35]=Y^~Z&ee,e[44]=oe^~ae&le,e[45]=se^~ue&ce,e[6]=w^~E&m,e[7]=T^~S&y,e[16]=_^~M&I,e[17]=R^~O&k,e[26]=j^~q&B,e[27]=H^~V&D,e[36]=X^~$&z,e[37]=Z^~ee&K,e[46]=ae^~le&te,e[47]=ue^~ce&re,e[8]=E^~m&g,e[9]=S^~y&b,e[18]=M^~I&P,e[19]=O^~k&C,e[28]=q^~B&L,e[29]=V^~D&F,e[38]=$^~z&W,e[39]=ee^~K&J,e[48]=le^~te&ne,e[49]=ce^~re&ie,e[0]^=c[n],e[1]^=c[n+1]};if(o)e.exports=T;else for(S=0;S<E.length;++S)n[E[S]]=T[E[S]]}()}),Qn=Jn;function Yn(e){return"0x"+Qn.keccak_256(Or(e))}const Xn=new Pr("strings/5.8.0");var Zn,$n;function ei(e,t,r,n,i){if(e===$n.BAD_PREFIX||e===$n.UNEXPECTED_CONTINUE){let e=0;for(let n=t+1;n<r.length&&r[n]>>6==2;n++)e++;return e}return e===$n.OVERRUN?r.length-t-1:0}!function(e){e.current="",e.NFC="NFC",e.NFD="NFD",e.NFKC="NFKC",e.NFKD="NFKD"}(Zn||(Zn={})),function(e){e.UNEXPECTED_CONTINUE="unexpected continuation byte",e.BAD_PREFIX="bad codepoint prefix",e.OVERRUN="string overrun",e.MISSING_CONTINUE="missing continuation byte",e.OUT_OF_RANGE="out of UTF-8 range",e.UTF16_SURROGATE="UTF-16 surrogate",e.OVERLONG="overlong representation"}($n||($n={}));const ti=Object.freeze({error:function(e,t,r,n,i){return Xn.throwArgumentError(`invalid codepoint at offset ${t}; ${e}`,"bytes",r)},ignore:ei,replace:function(e,t,r,n,i){return e===$n.OVERLONG?(n.push(i),0):(n.push(65533),ei(e,t,r))}});function ri(e,t){null==t&&(t=ti.error),e=Or(e);const r=[];let n=0;for(;n<e.length;){const i=e[n++];if(i>>7==0){r.push(i);continue}let o=null,s=null;if(192==(224&i))o=1,s=127;else if(224==(240&i))o=2,s=2047;else{if(240!=(248&i)){n+=t(128==(192&i)?$n.UNEXPECTED_CONTINUE:$n.BAD_PREFIX,n-1,e,r);continue}o=3,s=65535}if(n-1+o>=e.length){n+=t($n.OVERRUN,n-1,e,r);continue}let a=i&(1<<8-o-1)-1;for(let i=0;i<o;i++){let i=e[n];if(128!=(192&i)){n+=t($n.MISSING_CONTINUE,n,e,r),a=null;break}a=a<<6|63&i,n++}null!==a&&(a>1114111?n+=t($n.OUT_OF_RANGE,n-1-o,e,r,a):a>=55296&&a<=57343?n+=t($n.UTF16_SURROGATE,n-1-o,e,r,a):a<=s?n+=t($n.OVERLONG,n-1-o,e,r,a):r.push(a))}return r}function ni(e,t=Zn.current){t!=Zn.current&&(Xn.checkNormalize(),e=e.normalize(t));let r=[];for(let t=0;t<e.length;t++){const n=e.charCodeAt(t);if(n<128)r.push(n);else if(n<2048)r.push(n>>6|192),r.push(63&n|128);else if(55296==(64512&n)){t++;const i=e.charCodeAt(t);if(t>=e.length||56320!=(64512&i))throw new Error("invalid utf-8 string");const o=65536+((1023&n)<<10)+(1023&i);r.push(o>>18|240),r.push(o>>12&63|128),r.push(o>>6&63|128),r.push(63&o|128)}else r.push(n>>12|224),r.push(n>>6&63|128),r.push(63&n|128)}return Or(r)}function ii(e,t){return ri(e,t).map(e=>e<=65535?String.fromCharCode(e):(e-=65536,String.fromCharCode(55296+(e>>10&1023),56320+(1023&e)))).join("")}function oi(e){return Yn(ni(e))}const si="hash/5.8.0";function ai(e,t){null==t&&(t=1);const r=[],n=r.forEach,i=function(e,t){n.call(e,function(e){t>0&&Array.isArray(e)?i(e,t-1):r.push(e)})};return i(e,t),r}function ui(e){return 1&e?~e>>1:e>>1}function li(e,t){let r=Array(e);for(let n=0,i=-1;n<e;n++)r[n]=i+=1+t();return r}function ci(e,t){let r=Array(e);for(let n=0,i=0;n<e;n++)r[n]=i+=ui(t());return r}function di(e,t){let r=li(e(),e),n=e(),i=li(n,e),o=function(e,t){let r=Array(e);for(let n=0;n<e;n++)r[n]=1+t();return r}(n,e);for(let e=0;e<n;e++)for(let t=0;t<o[e];t++)r.push(i[e]+t);return t?r.map(e=>t[e]):r}function hi(e,t,r){let n=Array(e).fill(void 0).map(()=>[]);for(let i=0;i<t;i++)ci(e,r).forEach((e,t)=>n[t].push(e));return n}function pi(e,t){let r=1+t(),n=t(),i=function(e){let t=[];for(;;){let r=e();if(0==r)break;t.push(r)}return t}(t);return ai(hi(i.length,1+e,t).map((e,t)=>{const o=e[0],s=e.slice(1);return Array(i[t]).fill(void 0).map((e,t)=>{let i=t*n;return[o+t*r,s.map(e=>e+i)]})}))}function fi(e,t){return hi(1+t(),1+e,t).map(e=>[e[0],e.slice(1)])}const mi=function(e){let t=0;return()=>e[t++]}(function(e){let t=0;function r(){return e[t++]<<8|e[t++]}let n=r(),i=1,o=[0,1];for(let e=1;e<n;e++)o.push(i+=r());let s=r(),a=t;t+=s;let u=0,l=0;function c(){return 0==u&&(l=l<<8|e[t++],u=8),l>>--u&1}const d=Math.pow(2,31),h=d>>>1,p=h>>1,f=d-1;let m=0;for(let e=0;e<31;e++)m=m<<1|c();let y=[],g=0,b=d;for(;;){let e=Math.floor(((m-g+1)*i-1)/b),t=0,r=n;for(;r-t>1;){let n=t+r>>>1;e<o[n]?r=n:t=n}if(0==t)break;y.push(t);let s=g+Math.floor(b*o[t]/i),a=g+Math.floor(b*o[t+1]/i)-1;for(;0==((s^a)&h);)m=m<<1&f|c(),s=s<<1&f,a=a<<1&f|1;for(;s&~a&p;)m=m&h|m<<1&f>>>1|c(),s=s<<1^h,a=(a^h)<<1|h|1;g=s,b=1+a-s}let v=n-4;return y.map(t=>{switch(t-v){case 3:return v+65792+(e[a++]<<16|e[a++]<<8|e[a++]);case 2:return v+256+(e[a++]<<8|e[a++]);case 1:return v+e[a++];default:return t-1}})}(Gn("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=="))),yi=new Set(di(mi)),gi=new Set(di(mi)),bi=function(e){let t=[];for(;;){let r=e();if(0==r)break;t.push(pi(r,e))}for(;;){let r=e()-1;if(r<0)break;t.push(fi(r,e))}return function(e){const t={};for(let r=0;r<e.length;r++){const n=e[r];t[n[0]]=n[1]}return t}(ai(t))}(mi),vi=function(e){let t=di(e).sort((e,t)=>e-t);return function r(){let n=[];for(;;){let i=di(e,t);if(0==i.length)break;n.push({set:new Set(i),node:r()})}n.sort((e,t)=>t.set.size-e.set.size);let i=e(),o=i%3;i=i/3|0;let s=!!(1&i);return i>>=1,{branches:n,valid:o,fe0f:s,save:1==i,check:2==i}}()}(mi),Ai=45,wi=95;function Ti(e){return function(e,t=Zn.current){return ri(ni(e,t))}(e)}function Ei(e){return e.filter(e=>65039!=e)}function Si(e){for(let t of e.split(".")){let e=Ti(t);try{for(let t=e.lastIndexOf(wi)-1;t>=0;t--)if(e[t]!==wi)throw new Error("underscore only allowed at start");if(e.length>=4&&e.every(e=>e<128)&&e[2]===Ai&&e[3]===Ai)throw new Error("invalid label extension")}catch(e){throw new Error(`Invalid label "${t}": ${e.message}`)}}return e}function Ii(e,t){var r;let n,i,o=vi,s=[],a=e.length;for(t&&(t.length=0);a;){let u=e[--a];if(o=null===(r=o.branches.find(e=>e.set.has(u)))||void 0===r?void 0:r.node,!o)break;if(o.save)i=u;else if(o.check&&u===i)break;s.push(u),o.fe0f&&(s.push(65039),a>0&&65039==e[a-1]&&a--),o.valid&&(n=s.slice(),2==o.valid&&n.splice(1,1),t&&t.push(...e.slice(a).reverse()),e.length=a)}return n}const ki=new Pr(si),Pi=new Uint8Array(32);function Ci(e){if(0===e.length)throw new Error("invalid ENS name; empty component");return e}function Ni(e){const t=ni(function(e){return Si(function(e,t){let r=Ti(e).reverse(),n=[];for(;r.length;){let e=Ii(r);if(e){n.push(...t(e));continue}let i=r.pop();if(yi.has(i)){n.push(i);continue}if(gi.has(i))continue;let o=bi[i];if(!o)throw new Error(`Disallowed codepoint: 0x${i.toString(16).toUpperCase()}`);n.push(...o)}return Si(function(e){return e.normalize("NFC")}(String.fromCodePoint(...n)))}(e,Ei))}(e)),r=[];if(0===e.length)return r;let n=0;for(let e=0;e<t.length;e++)46===t[e]&&(r.push(Ci(t.slice(n,e))),n=e+1);if(n>=t.length)throw new Error("invalid ENS name; empty component");return r.push(Ci(t.slice(n))),r}function xi(e){"string"!=typeof e&&ki.throwArgumentError("invalid ENS name; not a string","name",e);let t=Pi;const r=Ni(e);for(;r.length;)t=Yn(Br([t,Yn(r.pop())]));return Ur(t)}Pi.fill(0);const _i=new Pr("rlp/5.8.0");function Ri(e){const t=[];for(;e;)t.unshift(255&e),e>>=8;return t}function Mi(e,t,r){let n=0;for(let i=0;i<r;i++)n=256*n+e[t+i];return n}function Oi(e){if(Array.isArray(e)){let t=[];if(e.forEach(function(e){t=t.concat(Oi(e))}),t.length<=55)return t.unshift(192+t.length),t;const r=Ri(t.length);return r.unshift(247+r.length),r.concat(t)}_r(e)||_i.throwArgumentError("RLP object must be BytesLike","object",e);const t=Array.prototype.slice.call(Or(e));if(1===t.length&&t[0]<=127)return t;if(t.length<=55)return t.unshift(128+t.length),t;const r=Ri(t.length);return r.unshift(183+r.length),r.concat(t)}function Bi(e){return Ur(Oi(e))}function Di(e,t,r,n){const i=[];for(;r<t+1+n;){const o=Li(e,r);i.push(o.result),(r+=o.consumed)>t+1+n&&_i.throwError("child data too short",Pr.errors.BUFFER_OVERRUN,{})}return{consumed:1+n,result:i}}function Li(e,t){if(0===e.length&&_i.throwError("data too short",Pr.errors.BUFFER_OVERRUN,{}),e[t]>=248){const r=e[t]-247;t+1+r>e.length&&_i.throwError("data short segment too short",Pr.errors.BUFFER_OVERRUN,{});const n=Mi(e,t+1,r);return t+1+r+n>e.length&&_i.throwError("data long segment too short",Pr.errors.BUFFER_OVERRUN,{}),Di(e,t,t+1+r,r+n)}if(e[t]>=192){const r=e[t]-192;return t+1+r>e.length&&_i.throwError("data array too short",Pr.errors.BUFFER_OVERRUN,{}),Di(e,t,t+1,r)}if(e[t]>=184){const r=e[t]-183;t+1+r>e.length&&_i.throwError("data array too short",Pr.errors.BUFFER_OVERRUN,{});const n=Mi(e,t+1,r);return t+1+r+n>e.length&&_i.throwError("data array too short",Pr.errors.BUFFER_OVERRUN,{}),{consumed:1+r+n,result:Ur(e.slice(t+1+r,t+1+r+n))}}if(e[t]>=128){const r=e[t]-128;return t+1+r>e.length&&_i.throwError("data too short",Pr.errors.BUFFER_OVERRUN,{}),{consumed:1+r,result:Ur(e.slice(t+1,t+1+r))}}return{consumed:1,result:Ur(e[t])}}function Fi(e){const t=Or(e),r=Li(t,0);return r.consumed!==t.length&&_i.throwArgumentError("invalid rlp data","data",e),r.result}const Ui=new Pr("address/5.8.0");function Gi(e){Lr(e,20)||Ui.throwArgumentError("invalid address","address",e);const t=(e=e.toLowerCase()).substring(2).split(""),r=new Uint8Array(40);for(let e=0;e<40;e++)r[e]=t[e].charCodeAt(0);const n=Or(Yn(r));for(let e=0;e<40;e+=2)n[e>>1]>>4>=8&&(t[e]=t[e].toUpperCase()),(15&n[e>>1])>=8&&(t[e+1]=t[e+1].toUpperCase());return"0x"+t.join("")}const ji={};for(let e=0;e<10;e++)ji[String(e)]=String(e);for(let e=0;e<26;e++)ji[String.fromCharCode(65+e)]=String(10+e);const Hi=Math.floor(function(e){return Math.log10?Math.log10(e):Math.log(e)/Math.LN10}(9007199254740991));function qi(e){let t=null;if("string"!=typeof e&&Ui.throwArgumentError("invalid address","address",e),e.match(/^(0x)?[0-9a-fA-F]{40}$/))"0x"!==e.substring(0,2)&&(e="0x"+e),t=Gi(e),e.match(/([A-F].*[a-f])|([a-f].*[A-F])/)&&t!==e&&Ui.throwArgumentError("bad address checksum","address",e);else if(e.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)){for(e.substring(2,4)!==function(e){let t=(e=(e=e.toUpperCase()).substring(4)+e.substring(0,2)+"00").split("").map(e=>ji[e]).join("");for(;t.length>=Hi;){let e=t.substring(0,Hi);t=parseInt(e,10)%97+t.substring(e.length)}let r=String(98-parseInt(t,10)%97);for(;r.length<2;)r="0"+r;return r}(e)&&Ui.throwArgumentError("bad icap checksum","address",e),r=e.substring(4),t=new Jr(r,36).toString(16);t.length<40;)t="0"+t;t=Gi("0x"+t)}else Ui.throwArgumentError("invalid address","address",e);var r;return t}function Vi(e){let t=null;try{t=qi(e.from)}catch(t){Ui.throwArgumentError("missing from address","transaction",e)}return qi(jr(Yn(Bi([t,Dr(Or($r.from(e.nonce).toHexString()))])),12))}const zi=new Pr(si),Ki=new Uint8Array(32);Ki.fill(0);const Wi=$r.from(-1),Ji=$r.from(0),Qi=$r.from(1),Yi=$r.from("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),Xi=Vr(Qi.toHexString(),32),Zi=Vr(Ji.toHexString(),32),$i={name:"string",version:"string",chainId:"uint256",verifyingContract:"address",salt:"bytes32"},eo=["name","version","chainId","verifyingContract","salt"];function to(e){return function(t){return"string"!=typeof t&&zi.throwArgumentError(`invalid domain value for ${JSON.stringify(e)}`,`domain.${e}`,t),t}}const ro={name:to("name"),version:to("version"),chainId:function(e){try{return $r.from(e).toString()}catch(e){}return zi.throwArgumentError('invalid domain value for "chainId"',"domain.chainId",e)},verifyingContract:function(e){try{return qi(e).toLowerCase()}catch(e){}return zi.throwArgumentError('invalid domain value "verifyingContract"',"domain.verifyingContract",e)},salt:function(e){try{const t=Or(e);if(32!==t.length)throw new Error("bad length");return Ur(t)}catch(e){}return zi.throwArgumentError('invalid domain value "salt"',"domain.salt",e)}};function no(e){{const t=e.match(/^(u?)int(\d*)$/);if(t){const r=""===t[1],n=parseInt(t[2]||"256");(n%8!=0||n>256||t[2]&&t[2]!==String(n))&&zi.throwArgumentError("invalid numeric width","type",e);const i=Yi.mask(r?n-1:n),o=r?i.add(Qi).mul(Wi):Ji;return function(t){const r=$r.from(t);return(r.lt(o)||r.gt(i))&&zi.throwArgumentError(`value out-of-bounds for ${e}`,"value",t),Vr(r.toTwos(256).toHexString(),32)}}}{const t=e.match(/^bytes(\d+)$/);if(t){const r=parseInt(t[1]);return(0===r||r>32||t[1]!==String(r))&&zi.throwArgumentError("invalid bytes width","type",e),function(t){return Or(t).length!==r&&zi.throwArgumentError(`invalid length for ${e}`,"value",t),function(e){const t=Or(e),r=t.length%32;return r?Hr([t,Ki.slice(r)]):Ur(t)}(t)}}}switch(e){case"address":return function(e){return Vr(qi(e),32)};case"bool":return function(e){return e?Xi:Zi};case"bytes":return function(e){return Yn(e)};case"string":return function(e){return oi(e)}}return null}function io(e,t){return`${e}(${t.map(({name:e,type:t})=>t+" "+e).join(",")})`}class oo{constructor(e){An(this,"types",Object.freeze(Cn(e))),An(this,"_encoderCache",{}),An(this,"_types",{});const t={},r={},n={};Object.keys(e).forEach(e=>{t[e]={},r[e]=[],n[e]={}});for(const n in e){const i={};e[n].forEach(o=>{i[o.name]&&zi.throwArgumentError(`duplicate variable name ${JSON.stringify(o.name)} in ${JSON.stringify(n)}`,"types",e),i[o.name]=!0;const s=o.type.match(/^([^\x5b]*)(\x5b|$)/)[1];s===n&&zi.throwArgumentError(`circular type reference to ${JSON.stringify(s)}`,"types",e),no(s)||(r[s]||zi.throwArgumentError(`unknown type ${JSON.stringify(s)}`,"types",e),r[s].push(n),t[n][s]=!0)})}const i=Object.keys(r).filter(e=>0===r[e].length);0===i.length?zi.throwArgumentError("missing primary type","types",e):i.length>1&&zi.throwArgumentError(`ambiguous primary types or unused types: ${i.map(e=>JSON.stringify(e)).join(", ")}`,"types",e),An(this,"primaryType",i[0]),function i(o,s){s[o]&&zi.throwArgumentError(`circular type reference to ${JSON.stringify(o)}`,"types",e),s[o]=!0,Object.keys(t[o]).forEach(e=>{r[e]&&(i(e,s),Object.keys(s).forEach(t=>{n[t][e]=!0}))}),delete s[o]}(this.primaryType,{});for(const t in n){const r=Object.keys(n[t]);r.sort(),this._types[t]=io(t,e[t])+r.map(t=>io(t,e[t])).join("")}}getEncoder(e){let t=this._encoderCache[e];return t||(t=this._encoderCache[e]=this._getEncoder(e)),t}_getEncoder(e){{const t=no(e);if(t)return t}const t=e.match(/^(.*)(\x5b(\d*)\x5d)$/);if(t){const e=t[1],r=this.getEncoder(e),n=parseInt(t[3]);return t=>{n>=0&&t.length!==n&&zi.throwArgumentError("array length mismatch; expected length ${ arrayLength }","value",t);let i=t.map(r);return this._types[e]&&(i=i.map(Yn)),Yn(Hr(i))}}const r=this.types[e];if(r){const t=oi(this._types[e]);return e=>{const n=r.map(({name:t,type:r})=>{const n=this.getEncoder(r)(e[t]);return this._types[r]?Yn(n):n});return n.unshift(t),Hr(n)}}return zi.throwArgumentError(`unknown type: ${e}`,"type",e)}encodeType(e){const t=this._types[e];return t||zi.throwArgumentError(`unknown type: ${JSON.stringify(e)}`,"name",e),t}encodeData(e,t){return this.getEncoder(e)(t)}hashStruct(e,t){return Yn(this.encodeData(e,t))}encode(e){return this.encodeData(this.primaryType,e)}hash(e){return this.hashStruct(this.primaryType,e)}_visit(e,t,r){if(no(e))return r(e,t);const n=e.match(/^(.*)(\x5b(\d*)\x5d)$/);if(n){const e=n[1],i=parseInt(n[3]);return i>=0&&t.length!==i&&zi.throwArgumentError("array length mismatch; expected length ${ arrayLength }","value",t),t.map(t=>this._visit(e,t,r))}const i=this.types[e];return i?i.reduce((e,{name:n,type:i})=>(e[n]=this._visit(i,t[n],r),e),{}):zi.throwArgumentError(`unknown type: ${e}`,"type",e)}visit(e,t){return this._visit(this.primaryType,e,t)}static from(e){return new oo(e)}static getPrimaryType(e){return oo.from(e).primaryType}static hashStruct(e,t,r){return oo.from(t).hashStruct(e,r)}static hashDomain(e){const t=[];for(const r in e){const n=$i[r];n||zi.throwArgumentError(`invalid typed-data domain key: ${JSON.stringify(r)}`,"domain",e),t.push({name:r,type:n})}return t.sort((e,t)=>eo.indexOf(e.name)-eo.indexOf(t.name)),oo.hashStruct("EIP712Domain",{EIP712Domain:t},e)}static encode(e,t,r){return Hr(["0x1901",oo.hashDomain(e),oo.from(t).hash(r)])}static hash(e,t,r){return Yn(oo.encode(e,t,r))}static resolveNames(e,t,r,n){return i=this,s=function*(){e=Sn(e);const i={};e.verifyingContract&&!Lr(e.verifyingContract,20)&&(i[e.verifyingContract]="0x");const o=oo.from(t);o.visit(r,(e,t)=>("address"!==e||Lr(t,20)||(i[t]="0x"),t));for(const e in i)i[e]=yield n(e);return e.verifyingContract&&i[e.verifyingContract]&&(e.verifyingContract=i[e.verifyingContract]),r=o.visit(r,(e,t)=>"address"===e&&i[t]?i[t]:t),{domain:e,value:r}},new((o=void 0)||(o=Promise))(function(e,t){function r(e){try{a(s.next(e))}catch(e){t(e)}}function n(e){try{a(s.throw(e))}catch(e){t(e)}}function a(t){var i;t.done?e(t.value):(i=t.value,i instanceof o?i:new o(function(e){e(i)})).then(r,n)}a((s=s.apply(i,[])).next())});var i,o,s}static getPayload(e,t,r){oo.hashDomain(e);const n={},i=[];eo.forEach(t=>{const r=e[t];null!=r&&(n[t]=ro[t](r),i.push({name:t,type:$i[t]}))});const o=oo.from(t),s=Sn(t);return s.EIP712Domain?zi.throwArgumentError("types must not contain EIP712Domain type","types.EIP712Domain",t):s.EIP712Domain=i,o.encode(r),{types:s,domain:n,primaryType:o.primaryType,message:o.visit(r,(e,t)=>{if(e.match(/^bytes(\d*)/))return Ur(Or(t));if(e.match(/^u?int/))return $r.from(t).toString();switch(e){case"address":return t.toLowerCase();case"bool":return!!t;case"string":return"string"!=typeof t&&zi.throwArgumentError("invalid string","value",t),t}return zi.throwArgumentError("unsupported type","type",e)})}}}var so=ao;function ao(e,t){if(!e)throw new Error(t||"Assertion failed")}function uo(e,t){return 55296==(64512&e.charCodeAt(t))&&!(t<0||t+1>=e.length)&&56320==(64512&e.charCodeAt(t+1))}function lo(e){return(e>>>24|e>>>8&65280|e<<8&16711680|(255&e)<<24)>>>0}function co(e){return 1===e.length?"0"+e:e}function ho(e){return 7===e.length?"0"+e:6===e.length?"00"+e:5===e.length?"000"+e:4===e.length?"0000"+e:3===e.length?"00000"+e:2===e.length?"000000"+e:1===e.length?"0000000"+e:e}ao.equal=function(e,t,r){if(e!=t)throw new Error(r||"Assertion failed: "+e+" != "+t)};var po={inherits:mr(function(e){e.exports="function"==typeof Object.create?function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:function(e,t){if(t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}}}),toArray:function(e,t){if(Array.isArray(e))return e.slice();if(!e)return[];var r=[];if("string"==typeof e)if(t){if("hex"===t)for((e=e.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(e="0"+e),i=0;i<e.length;i+=2)r.push(parseInt(e[i]+e[i+1],16))}else for(var n=0,i=0;i<e.length;i++){var o=e.charCodeAt(i);o<128?r[n++]=o:o<2048?(r[n++]=o>>6|192,r[n++]=63&o|128):uo(e,i)?(o=65536+((1023&o)<<10)+(1023&e.charCodeAt(++i)),r[n++]=o>>18|240,r[n++]=o>>12&63|128,r[n++]=o>>6&63|128,r[n++]=63&o|128):(r[n++]=o>>12|224,r[n++]=o>>6&63|128,r[n++]=63&o|128)}else for(i=0;i<e.length;i++)r[i]=0|e[i];return r},toHex:function(e){for(var t="",r=0;r<e.length;r++)t+=co(e[r].toString(16));return t},htonl:lo,toHex32:function(e,t){for(var r="",n=0;n<e.length;n++){var i=e[n];"little"===t&&(i=lo(i)),r+=ho(i.toString(16))}return r},zero2:co,zero8:ho,join32:function(e,t,r,n){var i=r-t;so(i%4==0);for(var o=new Array(i/4),s=0,a=t;s<o.length;s++,a+=4)o[s]=("big"===n?e[a]<<24|e[a+1]<<16|e[a+2]<<8|e[a+3]:e[a+3]<<24|e[a+2]<<16|e[a+1]<<8|e[a])>>>0;return o},split32:function(e,t){for(var r=new Array(4*e.length),n=0,i=0;n<e.length;n++,i+=4){var o=e[n];"big"===t?(r[i]=o>>>24,r[i+1]=o>>>16&255,r[i+2]=o>>>8&255,r[i+3]=255&o):(r[i+3]=o>>>24,r[i+2]=o>>>16&255,r[i+1]=o>>>8&255,r[i]=255&o)}return r},rotr32:function(e,t){return e>>>t|e<<32-t},rotl32:function(e,t){return e<<t|e>>>32-t},sum32:function(e,t){return e+t>>>0},sum32_3:function(e,t,r){return e+t+r>>>0},sum32_4:function(e,t,r,n){return e+t+r+n>>>0},sum32_5:function(e,t,r,n,i){return e+t+r+n+i>>>0},sum64:function(e,t,r,n){var i=n+e[t+1]>>>0;e[t]=(i<n?1:0)+r+e[t]>>>0,e[t+1]=i},sum64_hi:function(e,t,r,n){return(t+n>>>0<t?1:0)+e+r>>>0},sum64_lo:function(e,t,r,n){return t+n>>>0},sum64_4_hi:function(e,t,r,n,i,o,s,a){var u=0,l=t;return u+=(l=l+n>>>0)<t?1:0,u+=(l=l+o>>>0)<o?1:0,e+r+i+s+(u+=(l=l+a>>>0)<a?1:0)>>>0},sum64_4_lo:function(e,t,r,n,i,o,s,a){return t+n+o+a>>>0},sum64_5_hi:function(e,t,r,n,i,o,s,a,u,l){var c=0,d=t;return c+=(d=d+n>>>0)<t?1:0,c+=(d=d+o>>>0)<o?1:0,c+=(d=d+a>>>0)<a?1:0,e+r+i+s+u+(c+=(d=d+l>>>0)<l?1:0)>>>0},sum64_5_lo:function(e,t,r,n,i,o,s,a,u,l){return t+n+o+a+l>>>0},rotr64_hi:function(e,t,r){return(t<<32-r|e>>>r)>>>0},rotr64_lo:function(e,t,r){return(e<<32-r|t>>>r)>>>0},shr64_hi:function(e,t,r){return e>>>r},shr64_lo:function(e,t,r){return(e<<32-r|t>>>r)>>>0}};function fo(){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}var mo=fo;fo.prototype.update=function(e,t){if(e=po.toArray(e,t),this.pending=this.pending?this.pending.concat(e):e,this.pendingTotal+=e.length,this.pending.length>=this._delta8){var r=(e=this.pending).length%this._delta8;this.pending=e.slice(e.length-r,e.length),0===this.pending.length&&(this.pending=null),e=po.join32(e,0,e.length-r,this.endian);for(var n=0;n<e.length;n+=this._delta32)this._update(e,n,n+this._delta32)}return this},fo.prototype.digest=function(e){return this.update(this._pad()),so(null===this.pending),this._digest(e)},fo.prototype._pad=function(){var e=this.pendingTotal,t=this._delta8,r=t-(e+this.padLength)%t,n=new Array(r+this.padLength);n[0]=128;for(var i=1;i<r;i++)n[i]=0;if(e<<=3,"big"===this.endian){for(var o=8;o<this.padLength;o++)n[i++]=0;n[i++]=0,n[i++]=0,n[i++]=0,n[i++]=0,n[i++]=e>>>24&255,n[i++]=e>>>16&255,n[i++]=e>>>8&255,n[i++]=255&e}else for(n[i++]=255&e,n[i++]=e>>>8&255,n[i++]=e>>>16&255,n[i++]=e>>>24&255,n[i++]=0,n[i++]=0,n[i++]=0,n[i++]=0,o=8;o<this.padLength;o++)n[i++]=0;return n};var yo={BlockHash:mo},go=po.rotr32;function bo(e,t,r){return e&t^~e&r}function vo(e,t,r){return e&t^e&r^t&r}var Ao=bo,wo=vo,To=po.rotl32,Eo=po.sum32,So=po.sum32_5,Io=function(e,t,r,n){return 0===e?bo(t,r,n):1===e||3===e?function(e,t,r){return e^t^r}(t,r,n):2===e?vo(t,r,n):void 0},ko=yo.BlockHash,Po=[1518500249,1859775393,2400959708,3395469782];function Co(){if(!(this instanceof Co))return new Co;ko.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}po.inherits(Co,ko);var No=Co;Co.blockSize=512,Co.outSize=160,Co.hmacStrength=80,Co.padLength=64,Co.prototype._update=function(e,t){for(var r=this.W,n=0;n<16;n++)r[n]=e[t+n];for(;n<r.length;n++)r[n]=To(r[n-3]^r[n-8]^r[n-14]^r[n-16],1);var i=this.h[0],o=this.h[1],s=this.h[2],a=this.h[3],u=this.h[4];for(n=0;n<r.length;n++){var l=~~(n/20),c=So(To(i,5),Io(l,o,s,a),u,r[n],Po[l]);u=a,a=s,s=To(o,30),o=i,i=c}this.h[0]=Eo(this.h[0],i),this.h[1]=Eo(this.h[1],o),this.h[2]=Eo(this.h[2],s),this.h[3]=Eo(this.h[3],a),this.h[4]=Eo(this.h[4],u)},Co.prototype._digest=function(e){return"hex"===e?po.toHex32(this.h,"big"):po.split32(this.h,"big")};var xo=po.sum32,_o=po.sum32_4,Ro=po.sum32_5,Mo=Ao,Oo=wo,Bo=function(e){return go(e,2)^go(e,13)^go(e,22)},Do=function(e){return go(e,6)^go(e,11)^go(e,25)},Lo=function(e){return go(e,7)^go(e,18)^e>>>3},Fo=function(e){return go(e,17)^go(e,19)^e>>>10},Uo=yo.BlockHash,Go=[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 jo(){if(!(this instanceof jo))return new jo;Uo.call(this),this.h=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],this.k=Go,this.W=new Array(64)}po.inherits(jo,Uo);var Ho=jo;function qo(){if(!(this instanceof qo))return new qo;Ho.call(this),this.h=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]}jo.blockSize=512,jo.outSize=256,jo.hmacStrength=192,jo.padLength=64,jo.prototype._update=function(e,t){for(var r=this.W,n=0;n<16;n++)r[n]=e[t+n];for(;n<r.length;n++)r[n]=_o(Fo(r[n-2]),r[n-7],Lo(r[n-15]),r[n-16]);var i=this.h[0],o=this.h[1],s=this.h[2],a=this.h[3],u=this.h[4],l=this.h[5],c=this.h[6],d=this.h[7];for(so(this.k.length===r.length),n=0;n<r.length;n++){var h=Ro(d,Do(u),Mo(u,l,c),this.k[n],r[n]),p=xo(Bo(i),Oo(i,o,s));d=c,c=l,l=u,u=xo(a,h),a=s,s=o,o=i,i=xo(h,p)}this.h[0]=xo(this.h[0],i),this.h[1]=xo(this.h[1],o),this.h[2]=xo(this.h[2],s),this.h[3]=xo(this.h[3],a),this.h[4]=xo(this.h[4],u),this.h[5]=xo(this.h[5],l),this.h[6]=xo(this.h[6],c),this.h[7]=xo(this.h[7],d)},jo.prototype._digest=function(e){return"hex"===e?po.toHex32(this.h,"big"):po.split32(this.h,"big")},po.inherits(qo,Ho);var Vo=qo;qo.blockSize=512,qo.outSize=224,qo.hmacStrength=192,qo.padLength=64,qo.prototype._digest=function(e){return"hex"===e?po.toHex32(this.h.slice(0,7),"big"):po.split32(this.h.slice(0,7),"big")};var zo=po.rotr64_hi,Ko=po.rotr64_lo,Wo=po.shr64_hi,Jo=po.shr64_lo,Qo=po.sum64,Yo=po.sum64_hi,Xo=po.sum64_lo,Zo=po.sum64_4_hi,$o=po.sum64_4_lo,es=po.sum64_5_hi,ts=po.sum64_5_lo,rs=yo.BlockHash,ns=[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 is(){if(!(this instanceof is))return new is;rs.call(this),this.h=[1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209],this.k=ns,this.W=new Array(160)}po.inherits(is,rs);var os=is;function ss(e,t,r,n,i){var o=e&r^~e&i;return o<0&&(o+=4294967296),o}function as(e,t,r,n,i,o){var s=t&n^~t&o;return s<0&&(s+=4294967296),s}function us(e,t,r,n,i){var o=e&r^e&i^r&i;return o<0&&(o+=4294967296),o}function ls(e,t,r,n,i,o){var s=t&n^t&o^n&o;return s<0&&(s+=4294967296),s}function cs(e,t){var r=zo(e,t,28)^zo(t,e,2)^zo(t,e,7);return r<0&&(r+=4294967296),r}function ds(e,t){var r=Ko(e,t,28)^Ko(t,e,2)^Ko(t,e,7);return r<0&&(r+=4294967296),r}function hs(e,t){var r=zo(e,t,14)^zo(e,t,18)^zo(t,e,9);return r<0&&(r+=4294967296),r}function ps(e,t){var r=Ko(e,t,14)^Ko(e,t,18)^Ko(t,e,9);return r<0&&(r+=4294967296),r}function fs(e,t){var r=zo(e,t,1)^zo(e,t,8)^Wo(e,t,7);return r<0&&(r+=4294967296),r}function ms(e,t){var r=Ko(e,t,1)^Ko(e,t,8)^Jo(e,t,7);return r<0&&(r+=4294967296),r}function ys(e,t){var r=zo(e,t,19)^zo(t,e,29)^Wo(e,t,6);return r<0&&(r+=4294967296),r}function gs(e,t){var r=Ko(e,t,19)^Ko(t,e,29)^Jo(e,t,6);return r<0&&(r+=4294967296),r}function bs(){if(!(this instanceof bs))return new bs;os.call(this),this.h=[3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]}is.blockSize=1024,is.outSize=512,is.hmacStrength=192,is.padLength=128,is.prototype._prepareBlock=function(e,t){for(var r=this.W,n=0;n<32;n++)r[n]=e[t+n];for(;n<r.length;n+=2){var i=ys(r[n-4],r[n-3]),o=gs(r[n-4],r[n-3]),s=r[n-14],a=r[n-13],u=fs(r[n-30],r[n-29]),l=ms(r[n-30],r[n-29]),c=r[n-32],d=r[n-31];r[n]=Zo(i,o,s,a,u,l,c,d),r[n+1]=$o(i,o,s,a,u,l,c,d)}},is.prototype._update=function(e,t){this._prepareBlock(e,t);var r=this.W,n=this.h[0],i=this.h[1],o=this.h[2],s=this.h[3],a=this.h[4],u=this.h[5],l=this.h[6],c=this.h[7],d=this.h[8],h=this.h[9],p=this.h[10],f=this.h[11],m=this.h[12],y=this.h[13],g=this.h[14],b=this.h[15];so(this.k.length===r.length);for(var v=0;v<r.length;v+=2){var A=g,w=b,T=hs(d,h),E=ps(d,h),S=ss(d,0,p,0,m),I=as(0,h,0,f,0,y),k=this.k[v],P=this.k[v+1],C=r[v],N=r[v+1],x=es(A,w,T,E,S,I,k,P,C,N),_=ts(A,w,T,E,S,I,k,P,C,N);A=cs(n,i),w=ds(n,i),T=us(n,0,o,0,a),E=ls(0,i,0,s,0,u);var R=Yo(A,w,T,E),M=Xo(A,w,T,E);g=m,b=y,m=p,y=f,p=d,f=h,d=Yo(l,c,x,_),h=Xo(c,c,x,_),l=a,c=u,a=o,u=s,o=n,s=i,n=Yo(x,_,R,M),i=Xo(x,_,R,M)}Qo(this.h,0,n,i),Qo(this.h,2,o,s),Qo(this.h,4,a,u),Qo(this.h,6,l,c),Qo(this.h,8,d,h),Qo(this.h,10,p,f),Qo(this.h,12,m,y),Qo(this.h,14,g,b)},is.prototype._digest=function(e){return"hex"===e?po.toHex32(this.h,"big"):po.split32(this.h,"big")},po.inherits(bs,os);var vs=bs;bs.blockSize=1024,bs.outSize=384,bs.hmacStrength=192,bs.padLength=128,bs.prototype._digest=function(e){return"hex"===e?po.toHex32(this.h.slice(0,12),"big"):po.split32(this.h.slice(0,12),"big")};var As={sha1:No,sha224:Vo,sha256:Ho,sha384:vs,sha512:os},ws=po.rotl32,Ts=po.sum32,Es=po.sum32_3,Ss=po.sum32_4,Is=yo.BlockHash;function ks(){if(!(this instanceof ks))return new ks;Is.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.endian="little"}po.inherits(ks,Is);var Ps=ks;function Cs(e,t,r,n){return e<=15?t^r^n:e<=31?t&r|~t&n:e<=47?(t|~r)^n:e<=63?t&n|r&~n:t^(r|~n)}function Ns(e){return e<=15?0:e<=31?1518500249:e<=47?1859775393:e<=63?2400959708:2840853838}function xs(e){return e<=15?1352829926:e<=31?1548603684:e<=47?1836072691:e<=63?2053994217:0}ks.blockSize=512,ks.outSize=160,ks.hmacStrength=192,ks.padLength=64,ks.prototype._update=function(e,t){for(var r=this.h[0],n=this.h[1],i=this.h[2],o=this.h[3],s=this.h[4],a=r,u=n,l=i,c=o,d=s,h=0;h<80;h++){var p=Ts(ws(Ss(r,Cs(h,n,i,o),e[_s[h]+t],Ns(h)),Ms[h]),s);r=s,s=o,o=ws(i,10),i=n,n=p,p=Ts(ws(Ss(a,Cs(79-h,u,l,c),e[Rs[h]+t],xs(h)),Os[h]),d),a=d,d=c,c=ws(l,10),l=u,u=p}p=Es(this.h[1],i,c),this.h[1]=Es(this.h[2],o,d),this.h[2]=Es(this.h[3],s,a),this.h[3]=Es(this.h[4],r,u),this.h[4]=Es(this.h[0],n,l),this.h[0]=p},ks.prototype._digest=function(e){return"hex"===e?po.toHex32(this.h,"little"):po.split32(this.h,"little")};var _s=[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],Rs=[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],Ms=[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],Os=[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],Bs={ripemd160:Ps};function Ds(e,t,r){if(!(this instanceof Ds))return new Ds(e,t,r);this.Hash=e,this.blockSize=e.blockSize/8,this.outSize=e.outSize/8,this.inner=null,this.outer=null,this._init(po.toArray(t,r))}var Ls=Ds;Ds.prototype._init=function(e){e.length>this.blockSize&&(e=(new this.Hash).update(e).digest()),so(e.length<=this.blockSize);for(var t=e.length;t<this.blockSize;t++)e.push(0);for(t=0;t<e.length;t++)e[t]^=54;for(this.inner=(new this.Hash).update(e),t=0;t<e.length;t++)e[t]^=106;this.outer=(new this.Hash).update(e)},Ds.prototype.update=function(e,t){return this.inner.update(e,t),this},Ds.prototype.digest=function(e){return this.outer.update(this.inner.digest()),this.outer.digest(e)};var Fs,Us=mr(function(e,t){var r=t;r.utils=po,r.common=yo,r.sha=As,r.ripemd=Bs,r.hmac=Ls,r.sha1=r.sha.sha1,r.sha256=r.sha.sha256,r.sha224=r.sha.sha224,r.sha384=r.sha.sha384,r.sha512=r.sha.sha512,r.ripemd160=r.ripemd.ripemd160}),Gs=Us;!function(e){e.sha256="sha256",e.sha512="sha512"}(Fs||(Fs={}));const js=new Pr("sha2/5.8.0");function Hs(e){return"0x"+Gs.sha256().update(Or(e)).digest("hex")}function qs(e,t,r){return Fs[e]||js.throwError("unsupported algorithm "+e,Pr.errors.UNSUPPORTED_OPERATION,{operation:"hmac",algorithm:e}),"0x"+Gs.hmac(Gs[e],Or(t)).update(Or(r)).digest("hex")}var Vs=function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function s(e){try{u(n.next(e))}catch(e){o(e)}}function a(e){try{u(n.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r(function(e){e(t)})).then(s,a)}u((n=n.apply(e,t||[])).next())})};function zs(e,t){return Vs(this,void 0,void 0,function*(){null==t&&(t={});const r={method:t.method||"GET",headers:t.headers||{},body:t.body||void 0};if(!0!==t.skipFetchSetup&&(r.mode="cors",r.cache="no-cache",r.credentials="same-origin",r.redirect="follow",r.referrer="client"),null!=t.fetchOptions){const e=t.fetchOptions;e.mode&&(r.mode=e.mode),e.cache&&(r.cache=e.cache),e.credentials&&(r.credentials=e.credentials),e.redirect&&(r.redirect=e.redirect),e.referrer&&(r.referrer=e.referrer)}const n=yield fetch(e,r),i=yield n.arrayBuffer(),o={};return n.headers.forEach?n.headers.forEach((e,t)=>{o[t.toLowerCase()]=e}):n.headers.keys().forEach(e=>{o[e.toLowerCase()]=n.headers.get(e)}),{headers:o,statusCode:n.status,statusMessage:n.statusText,body:Or(new Uint8Array(i))}})}var Ks=function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function s(e){try{u(n.next(e))}catch(e){o(e)}}function a(e){try{u(n.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r(function(e){e(t)})).then(s,a)}u((n=n.apply(e,t||[])).next())})};const Ws=new Pr("web/5.8.0");function Js(e){return new Promise(t=>{setTimeout(t,e)})}function Qs(e,t){if(null==e)return null;if("string"==typeof e)return e;if(_r(e)){if(t&&("text"===t.split("/")[0]||"application/json"===t.split(";")[0].trim()))try{return ii(e)}catch(e){}return Ur(e)}return e}function Ys(e,t,r){let n=null;if(null!=t){n=ni(t);const r="string"==typeof e?{url:e}:Sn(e);r.headers?0!==Object.keys(r.headers).filter(e=>"content-type"===e.toLowerCase()).length||(r.headers=Sn(r.headers),r.headers["content-type"]="application/json"):r.headers={"content-type":"application/json"},e=r}return function(e,t,r){const n="object"==typeof e&&null!=e.throttleLimit?e.throttleLimit:12;Ws.assertArgument(n>0&&n%1==0,"invalid connection throttle limit","connection.throttleLimit",n);const i="object"==typeof e?e.throttleCallback:null,o="object"==typeof e&&"number"==typeof e.throttleSlotInterval?e.throttleSlotInterval:100;Ws.assertArgument(o>0&&o%1==0,"invalid connection throttle slot interval","connection.throttleSlotInterval",o);const s="object"==typeof e&&!!e.errorPassThrough,a={};let u=null;const l={method:"GET"};let c=!1,d=12e4;if("string"==typeof e)u=e;else if("object"==typeof e){if(null!=e&&null!=e.url||Ws.throwArgumentError("missing URL","connection.url",e),u=e.url,"number"==typeof e.timeout&&e.timeout>0&&(d=e.timeout),e.headers)for(const t in e.headers)a[t.toLowerCase()]={key:t,value:String(e.headers[t])},["if-none-match","if-modified-since"].indexOf(t.toLowerCase())>=0&&(c=!0);l.allowGzip=!!e.allowGzip,null!=e.user&&null!=e.password&&("https:"!==u.substring(0,6)&&!0!==e.allowInsecureAuthentication&&Ws.throwError("basic authentication requires a secure https url",Pr.errors.INVALID_ARGUMENT,{argument:"url",url:u,user:e.user,password:"[REDACTED]"}),a.authorization={key:"Authorization",value:"Basic "+jn(ni(e.user+":"+e.password))}),null!=e.skipFetchSetup&&(l.skipFetchSetup=!!e.skipFetchSetup),null!=e.fetchOptions&&(l.fetchOptions=Sn(e.fetchOptions))}const h=new RegExp("^data:([^;:]*)?(;base64)?,(.*)$","i"),p=u?u.match(h):null;if(p)try{const e={statusCode:200,statusMessage:"OK",headers:{"content-type":p[1]||"text/plain"},body:p[2]?Gn(p[3]):(f=p[3],ni(f.replace(/%([0-9a-f][0-9a-f])/gi,(e,t)=>String.fromCharCode(parseInt(t,16)))))};let t=e.body;return r&&(t=r(e.body,e)),Promise.resolve(t)}catch(e){Ws.throwError("processing response error",Pr.errors.SERVER_ERROR,{body:Qs(p[1],p[2]),error:e,requestBody:null,requestMethod:"GET",url:u})}var f;t&&(l.method="POST",l.body=t,null==a["content-type"]&&(a["content-type"]={key:"Content-Type",value:"application/octet-stream"}),null==a["content-length"]&&(a["content-length"]={key:"Content-Length",value:String(t.length)}));const m={};Object.keys(a).forEach(e=>{const t=a[e];m[t.key]=t.value}),l.headers=m;const y=function(){let e=null;return{promise:new Promise(function(t,r){d&&(e=setTimeout(()=>{null!=e&&(e=null,r(Ws.makeError("timeout",Pr.errors.TIMEOUT,{requestBody:Qs(l.body,m["content-type"]),requestMethod:l.method,timeout:d,url:u})))},d))}),cancel:function(){null!=e&&(clearTimeout(e),e=null)}}}(),g=function(){return Ks(this,void 0,void 0,function*(){for(let e=0;e<n;e++){let t=null;try{if(t=yield zs(u,l),e<n)if(301===t.statusCode||302===t.statusCode){if("GET"===l.method&&(t.headers.location||"").match(/^https:/)){u=t.headers.location;continue}}else if(429===t.statusCode){let r=!0;if(i&&(r=yield i(e,u)),r){let r=0;const n=t.headers["retry-after"];r="string"==typeof n&&n.match(/^[1-9][0-9]*$/)?1e3*parseInt(n):o*parseInt(String(Math.random()*Math.pow(2,e))),yield Js(r);continue}}}catch(e){t=e.response,null==t&&(y.cancel(),Ws.throwError("missing response",Pr.errors.SERVER_ERROR,{requestBody:Qs(l.body,m["content-type"]),requestMethod:l.method,serverError:e,url:u}))}let a=t.body;if(c&&304===t.statusCode?a=null:!s&&(t.statusCode<200||t.statusCode>=300)&&(y.cancel(),Ws.throwError("bad response",Pr.errors.SERVER_ERROR,{status:t.statusCode,headers:t.headers,body:Qs(a,t.headers?t.headers["content-type"]:null),requestBody:Qs(l.body,m["content-type"]),requestMethod:l.method,url:u})),r)try{const e=yield r(a,t);return y.cancel(),e}catch(r){if(r.throttleRetry&&e<n){let t=!0;if(i&&(t=yield i(e,u)),t){const t=o*parseInt(String(Math.random()*Math.pow(2,e)));yield Js(t);continue}}y.cancel(),Ws.throwError("processing response error",Pr.errors.SERVER_ERROR,{body:Qs(a,t.headers?t.headers["content-type"]:null),error:r,requestBody:Qs(l.body,m["content-type"]),requestMethod:l.method,url:u})}return y.cancel(),a}return Ws.throwError("failed response",Pr.errors.SERVER_ERROR,{requestBody:Qs(l.body,m["content-type"]),requestMethod:l.method,url:u})})}();return Promise.race([y.promise,g])}(e,n,(e,t)=>{let n=null;if(null!=e)try{n=JSON.parse(ii(e))}catch(t){Ws.throwError("invalid JSON",Pr.errors.SERVER_ERROR,{body:e,error:t})}return r&&(n=r(n,t)),n})}function Xs(e,t){return t||(t={}),null==(t=Sn(t)).floor&&(t.floor=0),null==t.ceiling&&(t.ceiling=1e4),null==t.interval&&(t.interval=250),new Promise(function(r,n){let i=null,o=!1;const s=()=>!o&&(o=!0,i&&clearTimeout(i),!0);t.timeout&&(i=setTimeout(()=>{s()&&n(new Error("timeout"))},t.timeout));const a=t.retryLimit;let u=0;!function i(){return e().then(function(e){if(void 0!==e)s()&&r(e);else if(t.oncePoll)t.oncePoll.once("poll",i);else if(t.onceBlock)t.onceBlock.once("block",i);else if(!o){if(u++,u>a)return void(s()&&n(new Error("retry limit reached")));let e=t.interval*parseInt(String(Math.random()*Math.pow(2,u)));e<t.floor&&(e=t.floor),e>t.ceiling&&(e=t.ceiling),setTimeout(i,e)}return null},function(e){s()&&n(e)})}()})}for(var Zs="qpzry9x8gf2tvdw0s3jn54khce6mua7l",$s={},ea=0;ea<Zs.length;ea++){var ta=Zs.charAt(ea);if(void 0!==$s[ta])throw new TypeError(ta+" is ambiguous");$s[ta]=ea}function ra(e){var t=e>>25;return(33554431&e)<<5^996825010&-(t>>0&1)^642813549&-(t>>1&1)^513874426&-(t>>2&1)^1027748829&-(t>>3&1)^705979059&-(t>>4&1)}const na="providers/5.8.0";function ia(e,t,r){return e(r={path:t,exports:{},require:function(e,t){return function(){throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs")}()}},r.exports),r.exports}var oa=sa;function sa(e,t){if(!e)throw new Error(t||"Assertion failed")}sa.equal=function(e,t,r){if(e!=t)throw new Error(r||"Assertion failed: "+e+" != "+t)};var aa=ia(function(e,t){var r=t;function n(e){return 1===e.length?"0"+e:e}function i(e){for(var t="",r=0;r<e.length;r++)t+=n(e[r].toString(16));return t}r.toArray=function(e,t){if(Array.isArray(e))return e.slice();if(!e)return[];var r=[];if("string"!=typeof e){for(var n=0;n<e.length;n++)r[n]=0|e[n];return r}if("hex"===t)for((e=e.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(e="0"+e),n=0;n<e.length;n+=2)r.push(parseInt(e[n]+e[n+1],16));else for(n=0;n<e.length;n++){var i=e.charCodeAt(n),o=i>>8,s=255&i;o?r.push(o,s):r.push(s)}return r},r.zero2=n,r.toHex=i,r.encode=function(e,t){return"hex"===t?i(e):e}}),ua=ia(function(e,t){var r=t;r.assert=oa,r.toArray=aa.toArray,r.zero2=aa.zero2,r.toHex=aa.toHex,r.encode=aa.encode,r.getNAF=function(e,t,r){var n,i=new Array(Math.max(e.bitLength(),r)+1);for(n=0;n<i.length;n+=1)i[n]=0;var o=1<<t+1,s=e.clone();for(n=0;n<i.length;n++){var a,u=s.andln(o-1);s.isOdd()?s.isubn(a=u>(o>>1)-1?(o>>1)-u:u):a=0,i[n]=a,s.iushrn(1)}return i},r.getJSF=function(e,t){var r=[[],[]];e=e.clone(),t=t.clone();for(var n,i=0,o=0;e.cmpn(-i)>0||t.cmpn(-o)>0;){var s,a,u=e.andln(3)+i&3,l=t.andln(3)+o&3;3===u&&(u=-1),3===l&&(l=-1),s=0==(1&u)?0:3!=(n=e.andln(7)+i&7)&&5!==n||2!==l?u:-u,r[0].push(s),a=0==(1&l)?0:3!=(n=t.andln(7)+o&7)&&5!==n||2!==u?l:-l,r[1].push(a),2*i===s+1&&(i=1-i),2*o===a+1&&(o=1-o),e.iushrn(1),t.iushrn(1)}return r},r.cachedProperty=function(e,t,r){var n="_"+t;e.prototype[t]=function(){return void 0!==this[n]?this[n]:this[n]=r.call(this)}},r.parseBytes=function(e){return"string"==typeof e?r.toArray(e,"hex"):e},r.intFromLE=function(e){return new gr(e,"hex","le")}}),la=ua.getNAF,ca=ua.getJSF,da=ua.assert;function ha(e,t){this.type=e,this.p=new gr(t.p,16),this.red=t.prime?gr.red(t.prime):gr.mont(this.p),this.zero=new gr(0).toRed(this.red),this.one=new gr(1).toRed(this.red),this.two=new gr(2).toRed(this.red),this.n=t.n&&new gr(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 r=this.n&&this.p.div(this.n);!r||r.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}var pa=ha;function fa(e,t){this.curve=e,this.type=t,this.precomputed=null}ha.prototype.point=function(){throw new Error("Not implemented")},ha.prototype.validate=function(){throw new Error("Not implemented")},ha.prototype._fixedNafMul=function(e,t){da(e.precomputed);var r=e._getDoubles(),n=la(t,1,this._bitLength),i=(1<<r.step+1)-(r.step%2==0?2:1);i/=3;var o,s,a=[];for(o=0;o<n.length;o+=r.step){s=0;for(var u=o+r.step-1;u>=o;u--)s=(s<<1)+n[u];a.push(s)}for(var l=this.jpoint(null,null,null),c=this.jpoint(null,null,null),d=i;d>0;d--){for(o=0;o<a.length;o++)(s=a[o])===d?c=c.mixedAdd(r.points[o]):s===-d&&(c=c.mixedAdd(r.points[o].neg()));l=l.add(c)}return l.toP()},ha.prototype._wnafMul=function(e,t){for(var r=4,n=e._getNAFPoints(r),i=n.points,o=la(t,r=n.wnd,this._bitLength),s=this.jpoint(null,null,null),a=o.length-1;a>=0;a--){for(var u=0;a>=0&&0===o[a];a--)u++;if(a>=0&&u++,s=s.dblp(u),a<0)break;var l=o[a];da(0!==l),s="affine"===e.type?s.mixedAdd(l>0?i[l-1>>1]:i[-l-1>>1].neg()):s.add(l>0?i[l-1>>1]:i[-l-1>>1].neg())}return"affine"===e.type?s.toP():s},ha.prototype._wnafMulAdd=function(e,t,r,n,i){var o,s,a,u=this._wnafT1,l=this._wnafT2,c=this._wnafT3,d=0;for(o=0;o<n;o++){var h=(a=t[o])._getNAFPoints(e);u[o]=h.wnd,l[o]=h.points}for(o=n-1;o>=1;o-=2){var p=o-1,f=o;if(1===u[p]&&1===u[f]){var m=[t[p],null,null,t[f]];0===t[p].y.cmp(t[f].y)?(m[1]=t[p].add(t[f]),m[2]=t[p].toJ().mixedAdd(t[f].neg())):0===t[p].y.cmp(t[f].y.redNeg())?(m[1]=t[p].toJ().mixedAdd(t[f]),m[2]=t[p].add(t[f].neg())):(m[1]=t[p].toJ().mixedAdd(t[f]),m[2]=t[p].toJ().mixedAdd(t[f].neg()));var y=[-3,-1,-5,-7,0,7,5,1,3],g=ca(r[p],r[f]);for(d=Math.max(g[0].length,d),c[p]=new Array(d),c[f]=new Array(d),s=0;s<d;s++)c[p][s]=y[3*(1+(0|g[0][s]))+(1+(0|g[1][s]))],c[f][s]=0,l[p]=m}else c[p]=la(r[p],u[p],this._bitLength),c[f]=la(r[f],u[f],this._bitLength),d=Math.max(c[p].length,d),d=Math.max(c[f].length,d)}var b=this.jpoint(null,null,null),v=this._wnafT4;for(o=d;o>=0;o--){for(var A=0;o>=0;){var w=!0;for(s=0;s<n;s++)v[s]=0|c[s][o],0!==v[s]&&(w=!1);if(!w)break;A++,o--}if(o>=0&&A++,b=b.dblp(A),o<0)break;for(s=0;s<n;s++){var T=v[s];0!==T&&(T>0?a=l[s][T-1>>1]:T<0&&(a=l[s][-T-1>>1].neg()),b="affine"===a.type?b.mixedAdd(a):b.add(a))}}for(o=0;o<n;o++)l[o]=null;return i?b:b.toP()},ha.BasePoint=fa,fa.prototype.eq=function(){throw new Error("Not implemented")},fa.prototype.validate=function(){return this.curve.validate(this)},ha.prototype.decodePoint=function(e,t){e=ua.toArray(e,t);var r=this.p.byteLength();if((4===e[0]||6===e[0]||7===e[0])&&e.length-1==2*r)return 6===e[0]?da(e[e.length-1]%2==0):7===e[0]&&da(e[e.length-1]%2==1),this.point(e.slice(1,1+r),e.slice(1+r,1+2*r));if((2===e[0]||3===e[0])&&e.length-1===r)return this.pointFromX(e.slice(1,1+r),3===e[0]);throw new Error("Unknown point format")},fa.prototype.encodeCompressed=function(e){return this.encode(e,!0)},fa.prototype._encode=function(e){var t=this.curve.p.byteLength(),r=this.getX().toArray("be",t);return e?[this.getY().isEven()?2:3].concat(r):[4].concat(r,this.getY().toArray("be",t))},fa.prototype.encode=function(e,t){return ua.encode(this._encode(t),e)},fa.prototype.precompute=function(e){if(this.precomputed)return this;var t={doubles:null,naf:null,beta:null};return t.naf=this._getNAFPoints(8),t.doubles=this._getDoubles(4,e),t.beta=this._getBeta(),this.precomputed=t,this},fa.prototype._hasDoubles=function(e){if(!this.precomputed)return!1;var t=this.precomputed.doubles;return!!t&&t.points.length>=Math.ceil((e.bitLength()+1)/t.step)},fa.prototype._getDoubles=function(e,t){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var r=[this],n=this,i=0;i<t;i+=e){for(var o=0;o<e;o++)n=n.dbl();r.push(n)}return{step:e,points:r}},fa.prototype._getNAFPoints=function(e){if(this.precomputed&&this.precomputed.naf)return this.precomputed.naf;for(var t=[this],r=(1<<e)-1,n=1===r?null:this.dbl(),i=1;i<r;i++)t[i]=t[i-1].add(n);return{wnd:e,points:t}},fa.prototype._getBeta=function(){return null},fa.prototype.dblp=function(e){for(var t=this,r=0;r<e;r++)t=t.dbl();return t};var ma=ia(function(e){e.exports="function"==typeof Object.create?function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:function(e,t){if(t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}}}),ya=ua.assert;function ga(e){pa.call(this,"short",e),this.a=new gr(e.a,16).toRed(this.red),this.b=new gr(e.b,16).toRed(this.red),this.tinv=this.two.redInvm(),this.zeroA=0===this.a.fromRed().cmpn(0),this.threeA=0===this.a.fromRed().sub(this.p).cmpn(-3),this.endo=this._getEndomorphism(e),this._endoWnafT1=new Array(4),this._endoWnafT2=new Array(4)}ma(ga,pa);var ba=ga;function va(e,t,r,n){pa.BasePoint.call(this,e,"affine"),null===t&&null===r?(this.x=null,this.y=null,this.inf=!0):(this.x=new gr(t,16),this.y=new gr(r,16),n&&(this.x.forceRed(this.curve.red),this.y.forceRed(this.curve.red)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.inf=!1)}function Aa(e,t,r,n){pa.BasePoint.call(this,e,"jacobian"),null===t&&null===r&&null===n?(this.x=this.curve.one,this.y=this.curve.one,this.z=new gr(0)):(this.x=new gr(t,16),this.y=new gr(r,16),this.z=new gr(n,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}ga.prototype._getEndomorphism=function(e){if(this.zeroA&&this.g&&this.n&&1===this.p.modn(3)){var t,r;if(e.beta)t=new gr(e.beta,16).toRed(this.red);else{var n=this._getEndoRoots(this.p);t=(t=n[0].cmp(n[1])<0?n[0]:n[1]).toRed(this.red)}if(e.lambda)r=new gr(e.lambda,16);else{var i=this._getEndoRoots(this.n);0===this.g.mul(i[0]).x.cmp(this.g.x.redMul(t))?r=i[0]:ya(0===this.g.mul(r=i[1]).x.cmp(this.g.x.redMul(t)))}return{beta:t,lambda:r,basis:e.basis?e.basis.map(function(e){return{a:new gr(e.a,16),b:new gr(e.b,16)}}):this._getEndoBasis(r)}}},ga.prototype._getEndoRoots=function(e){var t=e===this.p?this.red:gr.mont(e),r=new gr(2).toRed(t).redInvm(),n=r.redNeg(),i=new gr(3).toRed(t).redNeg().redSqrt().redMul(r);return[n.redAdd(i).fromRed(),n.redSub(i).fromRed()]},ga.prototype._getEndoBasis=function(e){for(var t,r,n,i,o,s,a,u,l,c=this.n.ushrn(Math.floor(this.n.bitLength()/2)),d=e,h=this.n.clone(),p=new gr(1),f=new gr(0),m=new gr(0),y=new gr(1),g=0;0!==d.cmpn(0);){var b=h.div(d);u=h.sub(b.mul(d)),l=m.sub(b.mul(p));var v=y.sub(b.mul(f));if(!n&&u.cmp(c)<0)t=a.neg(),r=p,n=u.neg(),i=l;else if(n&&2==++g)break;a=u,h=d,d=u,m=p,p=l,y=f,f=v}o=u.neg(),s=l;var A=n.sqr().add(i.sqr());return o.sqr().add(s.sqr()).cmp(A)>=0&&(o=t,s=r),n.negative&&(n=n.neg(),i=i.neg()),o.negative&&(o=o.neg(),s=s.neg()),[{a:n,b:i},{a:o,b:s}]},ga.prototype._endoSplit=function(e){var t=this.endo.basis,r=t[0],n=t[1],i=n.b.mul(e).divRound(this.n),o=r.b.neg().mul(e).divRound(this.n),s=i.mul(r.a),a=o.mul(n.a),u=i.mul(r.b),l=o.mul(n.b);return{k1:e.sub(s).sub(a),k2:u.add(l).neg()}},ga.prototype.pointFromX=function(e,t){(e=new gr(e,16)).red||(e=e.toRed(this.red));var r=e.redSqr().redMul(e).redIAdd(e.redMul(this.a)).redIAdd(this.b),n=r.redSqrt();if(0!==n.redSqr().redSub(r).cmp(this.zero))throw new Error("invalid point");var i=n.fromRed().isOdd();return(t&&!i||!t&&i)&&(n=n.redNeg()),this.point(e,n)},ga.prototype.validate=function(e){if(e.inf)return!0;var t=e.x,r=e.y,n=this.a.redMul(t),i=t.redSqr().redMul(t).redIAdd(n).redIAdd(this.b);return 0===r.redSqr().redISub(i).cmpn(0)},ga.prototype._endoWnafMulAdd=function(e,t,r){for(var n=this._endoWnafT1,i=this._endoWnafT2,o=0;o<e.length;o++){var s=this._endoSplit(t[o]),a=e[o],u=a._getBeta();s.k1.negative&&(s.k1.ineg(),a=a.neg(!0)),s.k2.negative&&(s.k2.ineg(),u=u.neg(!0)),n[2*o]=a,n[2*o+1]=u,i[2*o]=s.k1,i[2*o+1]=s.k2}for(var l=this._wnafMulAdd(1,n,i,2*o,r),c=0;c<2*o;c++)n[c]=null,i[c]=null;return l},ma(va,pa.BasePoint),ga.prototype.point=function(e,t,r){return new va(this,e,t,r)},ga.prototype.pointFromJSON=function(e,t){return va.fromJSON(this,e,t)},va.prototype._getBeta=function(){if(this.curve.endo){var e=this.precomputed;if(e&&e.beta)return e.beta;var t=this.curve.point(this.x.redMul(this.curve.endo.beta),this.y);if(e){var r=this.curve,n=function(e){return r.point(e.x.redMul(r.endo.beta),e.y)};e.beta=t,t.precomputed={beta:null,naf:e.naf&&{wnd:e.naf.wnd,points:e.naf.points.map(n)},doubles:e.doubles&&{step:e.doubles.step,points:e.doubles.points.map(n)}}}return t}},va.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]},va.fromJSON=function(e,t,r){"string"==typeof t&&(t=JSON.parse(t));var n=e.point(t[0],t[1],r);if(!t[2])return n;function i(t){return e.point(t[0],t[1],r)}var o=t[2];return n.precomputed={beta:null,doubles:o.doubles&&{step:o.doubles.step,points:[n].concat(o.doubles.points.map(i))},naf:o.naf&&{wnd:o.naf.wnd,points:[n].concat(o.naf.points.map(i))}},n},va.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)+">"},va.prototype.isInfinity=function(){return this.inf},va.prototype.add=function(e){if(this.inf)return e;if(e.inf)return this;if(this.eq(e))return this.dbl();if(this.neg().eq(e))return this.curve.point(null,null);if(0===this.x.cmp(e.x))return this.curve.point(null,null);var t=this.y.redSub(e.y);0!==t.cmpn(0)&&(t=t.redMul(this.x.redSub(e.x).redInvm()));var r=t.redSqr().redISub(this.x).redISub(e.x),n=t.redMul(this.x.redSub(r)).redISub(this.y);return this.curve.point(r,n)},va.prototype.dbl=function(){if(this.inf)return this;var e=this.y.redAdd(this.y);if(0===e.cmpn(0))return this.curve.point(null,null);var t=this.curve.a,r=this.x.redSqr(),n=e.redInvm(),i=r.redAdd(r).redIAdd(r).redIAdd(t).redMul(n),o=i.redSqr().redISub(this.x.redAdd(this.x)),s=i.redMul(this.x.redSub(o)).redISub(this.y);return this.curve.point(o,s)},va.prototype.getX=function(){return this.x.fromRed()},va.prototype.getY=function(){return this.y.fromRed()},va.prototype.mul=function(e){return e=new gr(e,16),this.isInfinity()?this:this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve.endo?this.curve._endoWnafMulAdd([this],[e]):this.curve._wnafMul(this,e)},va.prototype.mulAdd=function(e,t,r){var n=[this,t],i=[e,r];return this.curve.endo?this.curve._endoWnafMulAdd(n,i):this.curve._wnafMulAdd(1,n,i,2)},va.prototype.jmulAdd=function(e,t,r){var n=[this,t],i=[e,r];return this.curve.endo?this.curve._endoWnafMulAdd(n,i,!0):this.curve._wnafMulAdd(1,n,i,2,!0)},va.prototype.eq=function(e){return this===e||this.inf===e.inf&&(this.inf||0===this.x.cmp(e.x)&&0===this.y.cmp(e.y))},va.prototype.neg=function(e){if(this.inf)return this;var t=this.curve.point(this.x,this.y.redNeg());if(e&&this.precomputed){var r=this.precomputed,n=function(e){return e.neg()};t.precomputed={naf:r.naf&&{wnd:r.naf.wnd,points:r.naf.points.map(n)},doubles:r.doubles&&{step:r.doubles.step,points:r.doubles.points.map(n)}}}return t},va.prototype.toJ=function(){return this.inf?this.curve.jpoint(null,null,null):this.curve.jpoint(this.x,this.y,this.curve.one)},ma(Aa,pa.BasePoint),ga.prototype.jpoint=function(e,t,r){return new Aa(this,e,t,r)},Aa.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var e=this.z.redInvm(),t=e.redSqr(),r=this.x.redMul(t),n=this.y.redMul(t).redMul(e);return this.curve.point(r,n)},Aa.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},Aa.prototype.add=function(e){if(this.isInfinity())return e;if(e.isInfinity())return this;var t=e.z.redSqr(),r=this.z.redSqr(),n=this.x.redMul(t),i=e.x.redMul(r),o=this.y.redMul(t.redMul(e.z)),s=e.y.redMul(r.redMul(this.z)),a=n.redSub(i),u=o.redSub(s);if(0===a.cmpn(0))return 0!==u.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var l=a.redSqr(),c=l.redMul(a),d=n.redMul(l),h=u.redSqr().redIAdd(c).redISub(d).redISub(d),p=u.redMul(d.redISub(h)).redISub(o.redMul(c)),f=this.z.redMul(e.z).redMul(a);return this.curve.jpoint(h,p,f)},Aa.prototype.mixedAdd=function(e){if(this.isInfinity())return e.toJ();if(e.isInfinity())return this;var t=this.z.redSqr(),r=this.x,n=e.x.redMul(t),i=this.y,o=e.y.redMul(t).redMul(this.z),s=r.redSub(n),a=i.redSub(o);if(0===s.cmpn(0))return 0!==a.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var u=s.redSqr(),l=u.redMul(s),c=r.redMul(u),d=a.redSqr().redIAdd(l).redISub(c).redISub(c),h=a.redMul(c.redISub(d)).redISub(i.redMul(l)),p=this.z.redMul(s);return this.curve.jpoint(d,h,p)},Aa.prototype.dblp=function(e){if(0===e)return this;if(this.isInfinity())return this;if(!e)return this.dbl();var t;if(this.curve.zeroA||this.curve.threeA){var r=this;for(t=0;t<e;t++)r=r.dbl();return r}var n=this.curve.a,i=this.curve.tinv,o=this.x,s=this.y,a=this.z,u=a.redSqr().redSqr(),l=s.redAdd(s);for(t=0;t<e;t++){var c=o.redSqr(),d=l.redSqr(),h=d.redSqr(),p=c.redAdd(c).redIAdd(c).redIAdd(n.redMul(u)),f=o.redMul(d),m=p.redSqr().redISub(f.redAdd(f)),y=f.redISub(m),g=p.redMul(y);g=g.redIAdd(g).redISub(h);var b=l.redMul(a);t+1<e&&(u=u.redMul(h)),o=m,a=b,l=g}return this.curve.jpoint(o,l.redMul(i),a)},Aa.prototype.dbl=function(){return this.isInfinity()?this:this.curve.zeroA?this._zeroDbl():this.curve.threeA?this._threeDbl():this._dbl()},Aa.prototype._zeroDbl=function(){var e,t,r;if(this.zOne){var n=this.x.redSqr(),i=this.y.redSqr(),o=i.redSqr(),s=this.x.redAdd(i).redSqr().redISub(n).redISub(o);s=s.redIAdd(s);var a=n.redAdd(n).redIAdd(n),u=a.redSqr().redISub(s).redISub(s),l=o.redIAdd(o);l=(l=l.redIAdd(l)).redIAdd(l),e=u,t=a.redMul(s.redISub(u)).redISub(l),r=this.y.redAdd(this.y)}else{var c=this.x.redSqr(),d=this.y.redSqr(),h=d.redSqr(),p=this.x.redAdd(d).redSqr().redISub(c).redISub(h);p=p.redIAdd(p);var f=c.redAdd(c).redIAdd(c),m=f.redSqr(),y=h.redIAdd(h);y=(y=y.redIAdd(y)).redIAdd(y),e=m.redISub(p).redISub(p),t=f.redMul(p.redISub(e)).redISub(y),r=(r=this.y.redMul(this.z)).redIAdd(r)}return this.curve.jpoint(e,t,r)},Aa.prototype._threeDbl=function(){var e,t,r;if(this.zOne){var n=this.x.redSqr(),i=this.y.redSqr(),o=i.redSqr(),s=this.x.redAdd(i).redSqr().redISub(n).redISub(o);s=s.redIAdd(s);var a=n.redAdd(n).redIAdd(n).redIAdd(this.curve.a),u=a.redSqr().redISub(s).redISub(s);e=u;var l=o.redIAdd(o);l=(l=l.redIAdd(l)).redIAdd(l),t=a.redMul(s.redISub(u)).redISub(l),r=this.y.redAdd(this.y)}else{var c=this.z.redSqr(),d=this.y.redSqr(),h=this.x.redMul(d),p=this.x.redSub(c).redMul(this.x.redAdd(c));p=p.redAdd(p).redIAdd(p);var f=h.redIAdd(h),m=(f=f.redIAdd(f)).redAdd(f);e=p.redSqr().redISub(m),r=this.y.redAdd(this.z).redSqr().redISub(d).redISub(c);var y=d.redSqr();y=(y=(y=y.redIAdd(y)).redIAdd(y)).redIAdd(y),t=p.redMul(f.redISub(e)).redISub(y)}return this.curve.jpoint(e,t,r)},Aa.prototype._dbl=function(){var e=this.curve.a,t=this.x,r=this.y,n=this.z,i=n.redSqr().redSqr(),o=t.redSqr(),s=r.redSqr(),a=o.redAdd(o).redIAdd(o).redIAdd(e.redMul(i)),u=t.redAdd(t),l=(u=u.redIAdd(u)).redMul(s),c=a.redSqr().redISub(l.redAdd(l)),d=l.redISub(c),h=s.redSqr();h=(h=(h=h.redIAdd(h)).redIAdd(h)).redIAdd(h);var p=a.redMul(d).redISub(h),f=r.redAdd(r).redMul(n);return this.curve.jpoint(c,p,f)},Aa.prototype.trpl=function(){if(!this.curve.zeroA)return this.dbl().add(this);var e=this.x.redSqr(),t=this.y.redSqr(),r=this.z.redSqr(),n=t.redSqr(),i=e.redAdd(e).redIAdd(e),o=i.redSqr(),s=this.x.redAdd(t).redSqr().redISub(e).redISub(n),a=(s=(s=(s=s.redIAdd(s)).redAdd(s).redIAdd(s)).redISub(o)).redSqr(),u=n.redIAdd(n);u=(u=(u=u.redIAdd(u)).redIAdd(u)).redIAdd(u);var l=i.redIAdd(s).redSqr().redISub(o).redISub(a).redISub(u),c=t.redMul(l);c=(c=c.redIAdd(c)).redIAdd(c);var d=this.x.redMul(a).redISub(c);d=(d=d.redIAdd(d)).redIAdd(d);var h=this.y.redMul(l.redMul(u.redISub(l)).redISub(s.redMul(a)));h=(h=(h=h.redIAdd(h)).redIAdd(h)).redIAdd(h);var p=this.z.redAdd(s).redSqr().redISub(r).redISub(a);return this.curve.jpoint(d,h,p)},Aa.prototype.mul=function(e,t){return e=new gr(e,t),this.curve._wnafMul(this,e)},Aa.prototype.eq=function(e){if("affine"===e.type)return this.eq(e.toJ());if(this===e)return!0;var t=this.z.redSqr(),r=e.z.redSqr();if(0!==this.x.redMul(r).redISub(e.x.redMul(t)).cmpn(0))return!1;var n=t.redMul(this.z),i=r.redMul(e.z);return 0===this.y.redMul(i).redISub(e.y.redMul(n)).cmpn(0)},Aa.prototype.eqXToP=function(e){var t=this.z.redSqr(),r=e.toRed(this.curve.red).redMul(t);if(0===this.x.cmp(r))return!0;for(var n=e.clone(),i=this.curve.redN.redMul(t);;){if(n.iadd(this.curve.n),n.cmp(this.curve.p)>=0)return!1;if(r.redIAdd(i),0===this.x.cmp(r))return!0}},Aa.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)+">"},Aa.prototype.isInfinity=function(){return 0===this.z.cmpn(0)};var wa=ia(function(e,t){var r=t;r.base=pa,r.short=ba,r.mont=null,r.edwards=null}),Ta=ia(function(e,t){var r,n=t,i=ua.assert;function o(e){this.curve="short"===e.type?new wa.short(e):"edwards"===e.type?new wa.edwards(e):new wa.mont(e),this.g=this.curve.g,this.n=this.curve.n,this.hash=e.hash,i(this.g.validate(),"Invalid curve"),i(this.g.mul(this.n).isInfinity(),"Invalid curve, G*N != O")}function s(e,t){Object.defineProperty(n,e,{configurable:!0,enumerable:!0,get:function(){var r=new o(t);return Object.defineProperty(n,e,{configurable:!0,enumerable:!0,value:r}),r}})}n.PresetCurve=o,s("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:Gs.sha256,gRed:!1,g:["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012","07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"]}),s("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:Gs.sha256,gRed:!1,g:["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21","bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"]}),s("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:Gs.sha256,gRed:!1,g:["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296","4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"]}),s("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:Gs.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"]}),s("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:Gs.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"]}),s("curve25519",{type:"mont",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"76d06",b:"1",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:Gs.sha256,gRed:!1,g:["9"]}),s("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:Gs.sha256,gRed:!1,g:["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a","6666666666666666666666666666666666666666666666666666666666666658"]});try{r=null.crash()}catch(e){r=void 0}s("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:Gs.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",r]})});function Ea(e){if(!(this instanceof Ea))return new Ea(e);this.hash=e.hash,this.predResist=!!e.predResist,this.outLen=this.hash.outSize,this.minEntropy=e.minEntropy||this.hash.hmacStrength,this._reseed=null,this.reseedInterval=null,this.K=null,this.V=null;var t=aa.toArray(e.entropy,e.entropyEnc||"hex"),r=aa.toArray(e.nonce,e.nonceEnc||"hex"),n=aa.toArray(e.pers,e.persEnc||"hex");oa(t.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(t,r,n)}var Sa=Ea;Ea.prototype._init=function(e,t,r){var n=e.concat(t).concat(r);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var i=0;i<this.V.length;i++)this.K[i]=0,this.V[i]=1;this._update(n),this._reseed=1,this.reseedInterval=281474976710656},Ea.prototype._hmac=function(){return new Gs.hmac(this.hash,this.K)},Ea.prototype._update=function(e){var t=this._hmac().update(this.V).update([0]);e&&(t=t.update(e)),this.K=t.digest(),this.V=this._hmac().update(this.V).digest(),e&&(this.K=this._hmac().update(this.V).update([1]).update(e).digest(),this.V=this._hmac().update(this.V).digest())},Ea.prototype.reseed=function(e,t,r,n){"string"!=typeof t&&(n=r,r=t,t=null),e=aa.toArray(e,t),r=aa.toArray(r,n),oa(e.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(e.concat(r||[])),this._reseed=1},Ea.prototype.generate=function(e,t,r,n){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");"string"!=typeof t&&(n=r,r=t,t=null),r&&(r=aa.toArray(r,n||"hex"),this._update(r));for(var i=[];i.length<e;)this.V=this._hmac().update(this.V).digest(),i=i.concat(this.V);var o=i.slice(0,e);return this._update(r),this._reseed++,aa.encode(o,t)};var Ia=ua.assert;function ka(e,t){this.ec=e,this.priv=null,this.pub=null,t.priv&&this._importPrivate(t.priv,t.privEnc),t.pub&&this._importPublic(t.pub,t.pubEnc)}var Pa=ka;ka.fromPublic=function(e,t,r){return t instanceof ka?t:new ka(e,{pub:t,pubEnc:r})},ka.fromPrivate=function(e,t,r){return t instanceof ka?t:new ka(e,{priv:t,privEnc:r})},ka.prototype.validate=function(){var e=this.getPublic();return e.isInfinity()?{result:!1,reason:"Invalid public key"}:e.validate()?e.mul(this.ec.curve.n).isInfinity()?{result:!0,reason:null}:{result:!1,reason:"Public key * N != O"}:{result:!1,reason:"Public key is not a point"}},ka.prototype.getPublic=function(e,t){return"string"==typeof e&&(t=e,e=null),this.pub||(this.pub=this.ec.g.mul(this.priv)),t?this.pub.encode(t,e):this.pub},ka.prototype.getPrivate=function(e){return"hex"===e?this.priv.toString(16,2):this.priv},ka.prototype._importPrivate=function(e,t){this.priv=new gr(e,t||16),this.priv=this.priv.umod(this.ec.curve.n)},ka.prototype._importPublic=function(e,t){if(e.x||e.y)return"mont"===this.ec.curve.type?Ia(e.x,"Need x coordinate"):"short"!==this.ec.curve.type&&"edwards"!==this.ec.curve.type||Ia(e.x&&e.y,"Need both x and y coordinate"),void(this.pub=this.ec.curve.point(e.x,e.y));this.pub=this.ec.curve.decodePoint(e,t)},ka.prototype.derive=function(e){return e.validate()||Ia(e.validate(),"public point not validated"),e.mul(this.priv).getX()},ka.prototype.sign=function(e,t,r){return this.ec.sign(e,this,t,r)},ka.prototype.verify=function(e,t,r){return this.ec.verify(e,t,this,void 0,r)},ka.prototype.inspect=function(){return"<Key priv: "+(this.priv&&this.priv.toString(16,2))+" pub: "+(this.pub&&this.pub.inspect())+" >"};var Ca=ua.assert;function Na(e,t){if(e instanceof Na)return e;this._importDER(e,t)||(Ca(e.r&&e.s,"Signature without r or s"),this.r=new gr(e.r,16),this.s=new gr(e.s,16),this.recoveryParam=void 0===e.recoveryParam?null:e.recoveryParam)}var xa=Na;function _a(){this.place=0}function Ra(e,t){var r=e[t.place++];if(!(128&r))return r;var n=15&r;if(0===n||n>4)return!1;if(0===e[t.place])return!1;for(var i=0,o=0,s=t.place;o<n;o++,s++)i<<=8,i|=e[s],i>>>=0;return!(i<=127)&&(t.place=s,i)}function Ma(e){for(var t=0,r=e.length-1;!e[t]&&!(128&e[t+1])&&t<r;)t++;return 0===t?e:e.slice(t)}function Oa(e,t){if(t<128)e.push(t);else{var r=1+(Math.log(t)/Math.LN2>>>3);for(e.push(128|r);--r;)e.push(t>>>(r<<3)&255);e.push(t)}}Na.prototype._importDER=function(e,t){e=ua.toArray(e,t);var r=new _a;if(48!==e[r.place++])return!1;var n=Ra(e,r);if(!1===n)return!1;if(n+r.place!==e.length)return!1;if(2!==e[r.place++])return!1;var i=Ra(e,r);if(!1===i)return!1;if(0!=(128&e[r.place]))return!1;var o=e.slice(r.place,i+r.place);if(r.place+=i,2!==e[r.place++])return!1;var s=Ra(e,r);if(!1===s)return!1;if(e.length!==s+r.place)return!1;if(0!=(128&e[r.place]))return!1;var a=e.slice(r.place,s+r.place);if(0===o[0]){if(!(128&o[1]))return!1;o=o.slice(1)}if(0===a[0]){if(!(128&a[1]))return!1;a=a.slice(1)}return this.r=new gr(o),this.s=new gr(a),this.recoveryParam=null,!0},Na.prototype.toDER=function(e){var t=this.r.toArray(),r=this.s.toArray();for(128&t[0]&&(t=[0].concat(t)),128&r[0]&&(r=[0].concat(r)),t=Ma(t),r=Ma(r);!(r[0]||128&r[1]);)r=r.slice(1);var n=[2];Oa(n,t.length),(n=n.concat(t)).push(2),Oa(n,r.length);var i=n.concat(r),o=[48];return Oa(o,i.length),o=o.concat(i),ua.encode(o,e)};var Ba=function(){throw new Error("unsupported")},Da=ua.assert;function La(e){if(!(this instanceof La))return new La(e);"string"==typeof e&&(Da(Object.prototype.hasOwnProperty.call(Ta,e),"Unknown curve "+e),e=Ta[e]),e instanceof Ta.PresetCurve&&(e={curve:e}),this.curve=e.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=e.curve.g,this.g.precompute(e.curve.n.bitLength()+1),this.hash=e.hash||e.curve.hash}var Fa=La;La.prototype.keyPair=function(e){return new Pa(this,e)},La.prototype.keyFromPrivate=function(e,t){return Pa.fromPrivate(this,e,t)},La.prototype.keyFromPublic=function(e,t){return Pa.fromPublic(this,e,t)},La.prototype.genKeyPair=function(e){e||(e={});for(var t=new Sa({hash:this.hash,pers:e.pers,persEnc:e.persEnc||"utf8",entropy:e.entropy||Ba(),entropyEnc:e.entropy&&e.entropyEnc||"utf8",nonce:this.n.toArray()}),r=this.n.byteLength(),n=this.n.sub(new gr(2));;){var i=new gr(t.generate(r));if(!(i.cmp(n)>0))return i.iaddn(1),this.keyFromPrivate(i)}},La.prototype._truncateToN=function(e,t,r){var n;if(gr.isBN(e)||"number"==typeof e)n=(e=new gr(e,16)).byteLength();else if("object"==typeof e)n=e.length,e=new gr(e,16);else{var i=e.toString();n=i.length+1>>>1,e=new gr(i,16)}"number"!=typeof r&&(r=8*n);var o=r-this.n.bitLength();return o>0&&(e=e.ushrn(o)),!t&&e.cmp(this.n)>=0?e.sub(this.n):e},La.prototype.sign=function(e,t,r,n){if("object"==typeof r&&(n=r,r=null),n||(n={}),"string"!=typeof e&&"number"!=typeof e&&!gr.isBN(e)){Da("object"==typeof e&&e&&"number"==typeof e.length,"Expected message to be an array-like, a hex string, or a BN instance"),Da(e.length>>>0===e.length);for(var i=0;i<e.length;i++)Da((255&e[i])===e[i])}t=this.keyFromPrivate(t,r),e=this._truncateToN(e,!1,n.msgBitLength),Da(!e.isNeg(),"Can not sign a negative message");var o=this.n.byteLength(),s=t.getPrivate().toArray("be",o),a=e.toArray("be",o);Da(new gr(a).eq(e),"Can not sign message");for(var u=new Sa({hash:this.hash,entropy:s,nonce:a,pers:n.pers,persEnc:n.persEnc||"utf8"}),l=this.n.sub(new gr(1)),c=0;;c++){var d=n.k?n.k(c):new gr(u.generate(this.n.byteLength()));if(!((d=this._truncateToN(d,!0)).cmpn(1)<=0||d.cmp(l)>=0)){var h=this.g.mul(d);if(!h.isInfinity()){var p=h.getX(),f=p.umod(this.n);if(0!==f.cmpn(0)){var m=d.invm(this.n).mul(f.mul(t.getPrivate()).iadd(e));if(0!==(m=m.umod(this.n)).cmpn(0)){var y=(h.getY().isOdd()?1:0)|(0!==p.cmp(f)?2:0);return n.canonical&&m.cmp(this.nh)>0&&(m=this.n.sub(m),y^=1),new xa({r:f,s:m,recoveryParam:y})}}}}}},La.prototype.verify=function(e,t,r,n,i){i||(i={}),e=this._truncateToN(e,!1,i.msgBitLength),r=this.keyFromPublic(r,n);var o=(t=new xa(t,"hex")).r,s=t.s;if(o.cmpn(1)<0||o.cmp(this.n)>=0)return!1;if(s.cmpn(1)<0||s.cmp(this.n)>=0)return!1;var a,u=s.invm(this.n),l=u.mul(e).umod(this.n),c=u.mul(o).umod(this.n);return this.curve._maxwellTrick?!(a=this.g.jmulAdd(l,r.getPublic(),c)).isInfinity()&&a.eqXToP(o):!(a=this.g.mulAdd(l,r.getPublic(),c)).isInfinity()&&0===a.getX().umod(this.n).cmp(o)},La.prototype.recoverPubKey=function(e,t,r,n){Da((3&r)===r,"The recovery param is more than two bits"),t=new xa(t,n);var i=this.n,o=new gr(e),s=t.r,a=t.s,u=1&r,l=r>>1;if(s.cmp(this.curve.p.umod(this.curve.n))>=0&&l)throw new Error("Unable to find sencond key candinate");s=this.curve.pointFromX(l?s.add(this.curve.n):s,u);var c=t.r.invm(i),d=i.sub(o).mul(c).umod(i),h=a.mul(c).umod(i);return this.g.mulAdd(d,s,h)},La.prototype.getKeyRecoveryParam=function(e,t,r,n){if(null!==(t=new xa(t,n)).recoveryParam)return t.recoveryParam;for(var i=0;i<4;i++){var o;try{o=this.recoverPubKey(e,t,i)}catch(e){continue}if(o.eq(r))return i}throw new Error("Unable to find valid recovery factor")};var Ua=ia(function(e,t){var r=t;r.version="6.6.1",r.utils=ua,r.rand=function(){throw new Error("unsupported")},r.curve=wa,r.curves=Ta,r.ec=Fa,r.eddsa=null}).ec;const Ga=new Pr("signing-key/5.8.0");let ja=null;function Ha(){return ja||(ja=new Ua("secp256k1")),ja}class qa{constructor(e){An(this,"curve","secp256k1"),An(this,"privateKey",Ur(e)),32!==Gr(this.privateKey)&&Ga.throwArgumentError("invalid private key","privateKey","[[ REDACTED ]]");const t=Ha().keyFromPrivate(Or(this.privateKey));An(this,"publicKey","0x"+t.getPublic(!1,"hex")),An(this,"compressedPublicKey","0x"+t.getPublic(!0,"hex")),An(this,"_isSigningKey",!0)}_addPoint(e){const t=Ha().keyFromPublic(Or(this.publicKey)),r=Ha().keyFromPublic(Or(e));return"0x"+t.pub.add(r.pub).encodeCompressed("hex")}signDigest(e){const t=Ha().keyFromPrivate(Or(this.privateKey)),r=Or(e);32!==r.length&&Ga.throwArgumentError("bad digest length","digest",e);const n=t.sign(r,{canonical:!0});return zr({recoveryParam:n.recoveryParam,r:Vr("0x"+n.r.toString(16),32),s:Vr("0x"+n.s.toString(16),32)})}computeSharedSecret(e){const t=Ha().keyFromPrivate(Or(this.privateKey)),r=Ha().keyFromPublic(Or(Va(e)));return Vr("0x"+t.derive(r.getPublic()).toString(16),32)}static isSigningKey(e){return!(!e||!e._isSigningKey)}}function Va(e,t){const r=Or(e);if(32===r.length){const e=new qa(r);return t?"0x"+Ha().keyFromPrivate(r).getPublic(!0,"hex"):e.publicKey}return 33===r.length?t?Ur(r):"0x"+Ha().keyFromPublic(r).getPublic(!1,"hex"):65===r.length?t?"0x"+Ha().keyFromPublic(r).getPublic(!0,"hex"):Ur(r):Ga.throwArgumentError("invalid public or private key","key","[REDACTED]")}const za=new Pr("transactions/5.8.0");var Ka;function Wa(e){return"0x"===e?null:qi(e)}function Ja(e){return"0x"===e?zn:$r.from(e)}!function(e){e[e.legacy=0]="legacy",e[e.eip2930=1]="eip2930",e[e.eip1559=2]="eip1559"}(Ka||(Ka={}));const Qa=[{name:"nonce",maxLength:32,numeric:!0},{name:"gasPrice",maxLength:32,numeric:!0},{name:"gasLimit",maxLength:32,numeric:!0},{name:"to",length:20},{name:"value",maxLength:32,numeric:!0},{name:"data"}],Ya={chainId:!0,data:!0,gasLimit:!0,gasPrice:!0,nonce:!0,to:!0,type:!0,value:!0};function Xa(e){return qi(jr(Yn(jr(Va(e),1)),12))}function Za(e,t){return Xa(function(e,t){const r=zr(t),n={r:Or(r.r),s:Or(r.s)};return"0x"+Ha().recoverPubKey(Or(e),n,r.recoveryParam).encode("hex",!1)}(Or(e),t))}function $a(e,t){const r=Dr($r.from(e).toHexString());return r.length>32&&za.throwArgumentError("invalid length for "+t,"transaction:"+t,e),r}function eu(e,t){return{address:qi(e),storageKeys:(t||[]).map((t,r)=>(32!==Gr(t)&&za.throwArgumentError("invalid access list storageKey",`accessList[${e}:${r}]`,t),t.toLowerCase()))}}function tu(e){if(Array.isArray(e))return e.map((e,t)=>Array.isArray(e)?(e.length>2&&za.throwArgumentError("access list expected to be [ address, storageKeys[] ]",`value[${t}]`,e),eu(e[0],e[1])):eu(e.address,e.storageKeys));const t=Object.keys(e).map(t=>{const r=e[t].reduce((e,t)=>(e[t]=!0,e),{});return eu(t,Object.keys(r).sort())});return t.sort((e,t)=>e.address.localeCompare(t.address)),t}function ru(e){return tu(e).map(e=>[e.address,e.storageKeys])}function nu(e,t){if(null!=e.gasPrice){const t=$r.from(e.gasPrice),r=$r.from(e.maxFeePerGas||0);t.eq(r)||za.throwArgumentError("mismatch EIP-1559 gasPrice != maxFeePerGas","tx",{gasPrice:t,maxFeePerGas:r})}const r=[$a(e.chainId||0,"chainId"),$a(e.nonce||0,"nonce"),$a(e.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),$a(e.maxFeePerGas||0,"maxFeePerGas"),$a(e.gasLimit||0,"gasLimit"),null!=e.to?qi(e.to):"0x",$a(e.value||0,"value"),e.data||"0x",ru(e.accessList||[])];if(t){const e=zr(t);r.push($a(e.recoveryParam,"recoveryParam")),r.push(Dr(e.r)),r.push(Dr(e.s))}return Hr(["0x02",Bi(r)])}function iu(e,t){const r=[$a(e.chainId||0,"chainId"),$a(e.nonce||0,"nonce"),$a(e.gasPrice||0,"gasPrice"),$a(e.gasLimit||0,"gasLimit"),null!=e.to?qi(e.to):"0x",$a(e.value||0,"value"),e.data||"0x",ru(e.accessList||[])];if(t){const e=zr(t);r.push($a(e.recoveryParam,"recoveryParam")),r.push(Dr(e.r)),r.push(Dr(e.s))}return Hr(["0x01",Bi(r)])}function ou(e,t){if(null==e.type||0===e.type)return null!=e.accessList&&za.throwArgumentError("untyped transactions do not support accessList; include type: 1","transaction",e),function(e,t){En(e,Ya);const r=[];Qa.forEach(function(t){let n=e[t.name]||[];const i={};t.numeric&&(i.hexPad="left"),n=Or(Ur(n,i)),t.length&&n.length!==t.length&&n.length>0&&za.throwArgumentError("invalid length for "+t.name,"transaction:"+t.name,n),t.maxLength&&(n=Dr(n),n.length>t.maxLength&&za.throwArgumentError("invalid length for "+t.name,"transaction:"+t.name,n)),r.push(Ur(n))});let n=0;if(null!=e.chainId?(n=e.chainId,"number"!=typeof n&&za.throwArgumentError("invalid transaction.chainId","transaction",e)):t&&!_r(t)&&t.v>28&&(n=Math.floor((t.v-35)/2)),0!==n&&(r.push(Ur(n)),r.push("0x"),r.push("0x")),!t)return Bi(r);const i=zr(t);let o=27+i.recoveryParam;return 0!==n?(r.pop(),r.pop(),r.pop(),o+=2*n+8,i.v>28&&i.v!==o&&za.throwArgumentError("transaction.chainId/signature.v mismatch","signature",t)):i.v!==o&&za.throwArgumentError("transaction.chainId/signature.v mismatch","signature",t),r.push(Ur(o)),r.push(Dr(Or(i.r))),r.push(Dr(Or(i.s))),Bi(r)}(e,t);switch(e.type){case 1:return iu(e,t);case 2:return nu(e,t)}return za.throwError(`unsupported transaction type: ${e.type}`,Pr.errors.UNSUPPORTED_OPERATION,{operation:"serializeTransaction",transactionType:e.type})}function su(e,t,r){try{const r=Ja(t[0]).toNumber();if(0!==r&&1!==r)throw new Error("bad recid");e.v=r}catch(e){za.throwArgumentError("invalid v for transaction type: 1","v",t[0])}e.r=Vr(t[1],32),e.s=Vr(t[2],32);try{const t=Yn(r(e));e.from=Za(t,{r:e.r,s:e.s,recoveryParam:e.v})}catch(e){}}const au=new Pr(na);class uu{constructor(){this.formats=this.getDefaultFormats()}getDefaultFormats(){const e={},t=this.address.bind(this),r=this.bigNumber.bind(this),n=this.blockTag.bind(this),i=this.data.bind(this),o=this.hash.bind(this),s=this.hex.bind(this),a=this.number.bind(this),u=this.type.bind(this);return e.transaction={hash:o,type:u,accessList:uu.allowNull(this.accessList.bind(this),null),blockHash:uu.allowNull(o,null),blockNumber:uu.allowNull(a,null),transactionIndex:uu.allowNull(a,null),confirmations:uu.allowNull(a,null),from:t,gasPrice:uu.allowNull(r),maxPriorityFeePerGas:uu.allowNull(r),maxFeePerGas:uu.allowNull(r),gasLimit:r,to:uu.allowNull(t,null),value:r,nonce:a,data:i,r:uu.allowNull(this.uint256),s:uu.allowNull(this.uint256),v:uu.allowNull(a),creates:uu.allowNull(t,null),raw:uu.allowNull(i)},e.transactionRequest={from:uu.allowNull(t),nonce:uu.allowNull(a),gasLimit:uu.allowNull(r),gasPrice:uu.allowNull(r),maxPriorityFeePerGas:uu.allowNull(r),maxFeePerGas:uu.allowNull(r),to:uu.allowNull(t),value:uu.allowNull(r),data:uu.allowNull(e=>this.data(e,!0)),type:uu.allowNull(a),accessList:uu.allowNull(this.accessList.bind(this),null)},e.receiptLog={transactionIndex:a,blockNumber:a,transactionHash:o,address:t,topics:uu.arrayOf(o),data:i,logIndex:a,blockHash:o},e.receipt={to:uu.allowNull(this.address,null),from:uu.allowNull(this.address,null),contractAddress:uu.allowNull(t,null),transactionIndex:a,root:uu.allowNull(s),gasUsed:r,logsBloom:uu.allowNull(i),blockHash:o,transactionHash:o,logs:uu.arrayOf(this.receiptLog.bind(this)),blockNumber:a,confirmations:uu.allowNull(a,null),cumulativeGasUsed:r,effectiveGasPrice:uu.allowNull(r),status:uu.allowNull(a),type:u},e.block={hash:uu.allowNull(o),parentHash:o,number:a,timestamp:a,nonce:uu.allowNull(s),difficulty:this.difficulty.bind(this),gasLimit:r,gasUsed:r,miner:uu.allowNull(t),extraData:i,transactions:uu.allowNull(uu.arrayOf(o)),baseFeePerGas:uu.allowNull(r)},e.blockWithTransactions=Sn(e.block),e.blockWithTransactions.transactions=uu.allowNull(uu.arrayOf(this.transactionResponse.bind(this))),e.filter={fromBlock:uu.allowNull(n,void 0),toBlock:uu.allowNull(n,void 0),blockHash:uu.allowNull(o,void 0),address:uu.allowNull(t,void 0),topics:uu.allowNull(this.topics.bind(this),void 0)},e.filterLog={blockNumber:uu.allowNull(a),blockHash:uu.allowNull(o),transactionIndex:a,removed:uu.allowNull(this.boolean.bind(this)),address:t,data:uu.allowFalsish(i,"0x"),topics:uu.arrayOf(o),transactionHash:o,logIndex:a},e}accessList(e){return tu(e||[])}number(e){return"0x"===e?0:$r.from(e).toNumber()}type(e){return"0x"===e||null==e?0:$r.from(e).toNumber()}bigNumber(e){return $r.from(e)}boolean(e){if("boolean"==typeof e)return e;if("string"==typeof e){if("true"===(e=e.toLowerCase()))return!0;if("false"===e)return!1}throw new Error("invalid boolean - "+e)}hex(e,t){return"string"==typeof e&&(t||"0x"===e.substring(0,2)||(e="0x"+e),Lr(e))?e.toLowerCase():au.throwArgumentError("invalid hash","value",e)}data(e,t){const r=this.hex(e,t);if(r.length%2!=0)throw new Error("invalid data; odd-length - "+e);return r}address(e){return qi(e)}callAddress(e){if(!Lr(e,32))return null;const t=qi(jr(e,12));return"0x0000000000000000000000000000000000000000"===t?null:t}contractAddress(e){return Vi(e)}blockTag(e){if(null==e)return"latest";if("earliest"===e)return"0x0";switch(e){case"earliest":return"0x0";case"latest":case"pending":case"safe":case"finalized":return e}if("number"==typeof e||Lr(e))return qr(e);throw new Error("invalid blockTag")}hash(e,t){const r=this.hex(e,t);return 32!==Gr(r)?au.throwArgumentError("invalid hash","value",e):r}difficulty(e){if(null==e)return null;const t=$r.from(e);try{return t.toNumber()}catch(e){}return null}uint256(e){if(!Lr(e))throw new Error("invalid uint256");return Vr(e,32)}_block(e,t){null!=e.author&&null==e.miner&&(e.miner=e.author);const r=null!=e._difficulty?e._difficulty:e.difficulty,n=uu.check(t,e);return n._difficulty=null==r?null:$r.from(r),n}block(e){return this._block(e,this.formats.block)}blockWithTransactions(e){return this._block(e,this.formats.blockWithTransactions)}transactionRequest(e){return uu.check(this.formats.transactionRequest,e)}transactionResponse(e){null!=e.gas&&null==e.gasLimit&&(e.gasLimit=e.gas),e.to&&$r.from(e.to).isZero()&&(e.to="0x0000000000000000000000000000000000000000"),null!=e.input&&null==e.data&&(e.data=e.input),null==e.to&&null==e.creates&&(e.creates=this.contractAddress(e)),1!==e.type&&2!==e.type||null!=e.accessList||(e.accessList=[]);const t=uu.check(this.formats.transaction,e);if(null!=e.chainId){let r=e.chainId;Lr(r)&&(r=$r.from(r).toNumber()),t.chainId=r}else{let r=e.networkId;null==r&&null==t.v&&(r=e.chainId),Lr(r)&&(r=$r.from(r).toNumber()),"number"!=typeof r&&null!=t.v&&(r=(t.v-35)/2,r<0&&(r=0),r=parseInt(r)),"number"!=typeof r&&(r=0),t.chainId=r}return t.blockHash&&"x"===t.blockHash.replace(/0/g,"")&&(t.blockHash=null),t}transaction(e){return function(e){const t=Or(e);if(t[0]>127)return function(e){const t=Fi(e);9!==t.length&&6!==t.length&&za.throwArgumentError("invalid raw transaction","rawTransaction",e);const r={nonce:Ja(t[0]).toNumber(),gasPrice:Ja(t[1]),gasLimit:Ja(t[2]),to:Wa(t[3]),value:Ja(t[4]),data:t[5],chainId:0};if(6===t.length)return r;try{r.v=$r.from(t[6]).toNumber()}catch(e){return r}if(r.r=Vr(t[7],32),r.s=Vr(t[8],32),$r.from(r.r).isZero()&&$r.from(r.s).isZero())r.chainId=r.v,r.v=0;else{r.chainId=Math.floor((r.v-35)/2),r.chainId<0&&(r.chainId=0);let n=r.v-27;const i=t.slice(0,6);0!==r.chainId&&(i.push(Ur(r.chainId)),i.push("0x"),i.push("0x"),n-=2*r.chainId+8);const o=Yn(Bi(i));try{r.from=Za(o,{r:Ur(r.r),s:Ur(r.s),recoveryParam:n})}catch(e){}r.hash=Yn(e)}return r.type=null,r}(t);switch(t[0]){case 1:return function(e){const t=Fi(e.slice(1));8!==t.length&&11!==t.length&&za.throwArgumentError("invalid component count for transaction type: 1","payload",Ur(e));const r={type:1,chainId:Ja(t[0]).toNumber(),nonce:Ja(t[1]).toNumber(),gasPrice:Ja(t[2]),gasLimit:Ja(t[3]),to:Wa(t[4]),value:Ja(t[5]),data:t[6],accessList:tu(t[7])};return 8===t.length||(r.hash=Yn(e),su(r,t.slice(8),iu)),r}(t);case 2:return function(e){const t=Fi(e.slice(1));9!==t.length&&12!==t.length&&za.throwArgumentError("invalid component count for transaction type: 2","payload",Ur(e));const r=Ja(t[2]),n=Ja(t[3]),i={type:2,chainId:Ja(t[0]).toNumber(),nonce:Ja(t[1]).toNumber(),maxPriorityFeePerGas:r,maxFeePerGas:n,gasPrice:null,gasLimit:Ja(t[4]),to:Wa(t[5]),value:Ja(t[6]),data:t[7],accessList:tu(t[8])};return 9===t.length||(i.hash=Yn(e),su(i,t.slice(9),nu)),i}(t)}return za.throwError(`unsupported transaction type: ${t[0]}`,Pr.errors.UNSUPPORTED_OPERATION,{operation:"parseTransaction",transactionType:t[0]})}(e)}receiptLog(e){return uu.check(this.formats.receiptLog,e)}receipt(e){const t=uu.check(this.formats.receipt,e);if(null!=t.root)if(t.root.length<=4){const e=$r.from(t.root).toNumber();0===e||1===e?(null!=t.status&&t.status!==e&&au.throwArgumentError("alt-root-status/status mismatch","value",{root:t.root,status:t.status}),t.status=e,delete t.root):au.throwArgumentError("invalid alt-root-status","value.root",t.root)}else 66!==t.root.length&&au.throwArgumentError("invalid root hash","value.root",t.root);return null!=t.status&&(t.byzantium=!0),t}topics(e){return Array.isArray(e)?e.map(e=>this.topics(e)):null!=e?this.hash(e,!0):null}filter(e){return uu.check(this.formats.filter,e)}filterLog(e){return uu.check(this.formats.filterLog,e)}static check(e,t){const r={};for(const n in e)try{const i=e[n](t[n]);void 0!==i&&(r[n]=i)}catch(e){throw e.checkKey=n,e.checkValue=t[n],e}return r}static allowNull(e,t){return function(r){return null==r?t:e(r)}}static allowFalsish(e,t){return function(r){return r?e(r):t}}static arrayOf(e){return function(t){if(!Array.isArray(t))throw new Error("not an array");const r=[];return t.forEach(function(t){r.push(e(t))}),r}}}var lu=function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function s(e){try{u(n.next(e))}catch(e){o(e)}}function a(e){try{u(n.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r(function(e){e(t)})).then(s,a)}u((n=n.apply(e,t||[])).next())})};const cu=new Pr(na);function du(e){return null==e?"null":(32!==Gr(e)&&cu.throwArgumentError("invalid topic","topic",e),e.toLowerCase())}function hu(e){for(e=e.slice();e.length>0&&null==e[e.length-1];)e.pop();return e.map(e=>{if(Array.isArray(e)){const t={};e.forEach(e=>{t[du(e)]=!0});const r=Object.keys(t);return r.sort(),r.join("|")}return du(e)}).join("&")}function pu(e){if("string"==typeof e){if(32===Gr(e=e.toLowerCase()))return"tx:"+e;if(-1===e.indexOf(":"))return e}else{if(Array.isArray(e))return"filter:*:"+hu(e);if(_n.isForkEvent(e))throw cu.warn("not implemented"),new Error("not implemented");if(e&&"object"==typeof e)return"filter:"+(e.address||"*")+":"+hu(e.topics||[])}throw new Error("invalid event - "+e)}function fu(){return(new Date).getTime()}function mu(e){return new Promise(t=>{setTimeout(t,e)})}const yu=["block","network","pending","poll"];class gu{constructor(e,t,r){An(this,"tag",e),An(this,"listener",t),An(this,"once",r),this._lastBlockNumber=-2,this._inflight=!1}get event(){switch(this.type){case"tx":return this.hash;case"filter":return this.filter}return this.tag}get type(){return this.tag.split(":")[0]}get hash(){const e=this.tag.split(":");return"tx"!==e[0]?null:e[1]}get filter(){const e=this.tag.split(":");if("filter"!==e[0])return null;const t=e[1],r=""===(n=e[2])?[]:n.split(/&/g).map(e=>{if(""===e)return[];const t=e.split("|").map(e=>"null"===e?null:e);return 1===t.length?t[0]:t});var n;const i={};return r.length>0&&(i.topics=r),t&&"*"!==t&&(i.address=t),i}pollable(){return this.tag.indexOf(":")>=0||yu.indexOf(this.tag)>=0}}const bu={0:{symbol:"btc",p2pkh:0,p2sh:5,prefix:"bc"},2:{symbol:"ltc",p2pkh:48,p2sh:50,prefix:"ltc"},3:{symbol:"doge",p2pkh:30,p2sh:22},60:{symbol:"eth",ilk:"eth"},61:{symbol:"etc",ilk:"eth"},700:{symbol:"xdai",ilk:"eth"}};function vu(e){return Vr($r.from(e).toHexString(),32)}function Au(e){return qn.encode(Br([e,jr(Hs(Hs(e)),0,4)]))}const wu=new RegExp("^(ipfs)://(.*)$","i"),Tu=[new RegExp("^(https)://(.*)$","i"),new RegExp("^(data):(.*)$","i"),wu,new RegExp("^eip155:[0-9]+/(erc[0-9]+):(.*)$","i")];function Eu(e,t){try{return ii(Su(e,t))}catch(e){}return null}function Su(e,t){if("0x"===e)return null;const r=$r.from(jr(e,t,t+32)).toNumber(),n=$r.from(jr(e,r,r+32)).toNumber();return jr(e,r+32,r+32+n)}function Iu(e){return e.match(/^ipfs:\/\/ipfs\//i)?e=e.substring(12):e.match(/^ipfs:\/\//i)?e=e.substring(7):cu.throwArgumentError("unsupported IPFS format","link",e),`https://gateway.ipfs.io/ipfs/${e}`}function ku(e){const t=Or(e);if(t.length>32)throw new Error("internal; should not happen");const r=new Uint8Array(32);return r.set(t,32-t.length),r}function Pu(e){if(e.length%32==0)return e;const t=new Uint8Array(32*Math.ceil(e.length/32));return t.set(e),t}function Cu(e){const t=[];let r=0;for(let n=0;n<e.length;n++)t.push(null),r+=32;for(let n=0;n<e.length;n++){const i=Or(e[n]);t[n]=ku(r),t.push(ku(i.length)),t.push(Pu(i)),r+=32+32*Math.ceil(i.length/32)}return Hr(t)}class Nu{constructor(e,t,r,n){An(this,"provider",e),An(this,"name",r),An(this,"address",e.formatter.address(t)),An(this,"_resolvedAddress",n)}supportsWildcard(){return this._supportsEip2544||(this._supportsEip2544=this.provider.call({to:this.address,data:"0x01ffc9a79061b92300000000000000000000000000000000000000000000000000000000"}).then(e=>$r.from(e).eq(1)).catch(e=>{if(e.code===Pr.errors.CALL_EXCEPTION)return!1;throw this._supportsEip2544=null,e})),this._supportsEip2544}_fetch(e,t){return lu(this,void 0,void 0,function*(){const r={to:this.address,ccipReadEnabled:!0,data:Hr([e,xi(this.name),t||"0x"])};let n=!1;var i;(yield this.supportsWildcard())&&(n=!0,r.data=Hr(["0x9061b923",Cu([(i=this.name,Ur(Br(Ni(i).map(e=>{if(e.length>63)throw new Error("invalid DNS encoded entry; length exceeds 63 bytes");const t=new Uint8Array(e.length+1);return t.set(e,1),t[0]=t.length-1,t})))+"00"),r.data])]));try{let e=yield this.provider.call(r);return Or(e).length%32==4&&cu.throwError("resolver threw error",Pr.errors.CALL_EXCEPTION,{transaction:r,data:e}),n&&(e=Su(e,0)),e}catch(e){if(e.code===Pr.errors.CALL_EXCEPTION)return null;throw e}})}_fetchBytes(e,t){return lu(this,void 0,void 0,function*(){const r=yield this._fetch(e,t);return null!=r?Su(r,0):null})}_getAddress(e,t){const r=bu[String(e)];if(null==r&&cu.throwError(`unsupported coin type: ${e}`,Pr.errors.UNSUPPORTED_OPERATION,{operation:`getAddress(${e})`}),"eth"===r.ilk)return this.provider.formatter.address(t);const n=Or(t);if(null!=r.p2pkh){const e=t.match(/^0x76a9([0-9a-f][0-9a-f])([0-9a-f]*)88ac$/);if(e){const t=parseInt(e[1],16);if(e[2].length===2*t&&t>=1&&t<=75)return Au(Br([[r.p2pkh],"0x"+e[2]]))}}if(null!=r.p2sh){const e=t.match(/^0xa9([0-9a-f][0-9a-f])([0-9a-f]*)87$/);if(e){const t=parseInt(e[1],16);if(e[2].length===2*t&&t>=1&&t<=75)return Au(Br([[r.p2sh],"0x"+e[2]]))}}if(null!=r.prefix){const e=n[1];let t=n[0];if(0===t?20!==e&&32!==e&&(t=-1):t=-1,t>=0&&n.length===2+e&&e>=1&&e<=75){const e=function(e){var t=function(e,t,r,n){for(var i=0,o=0,s=[],a=0;a<e.length;++a)for(i=i<<8|e[a],o+=8;o>=5;)s.push(i>>(o-=5)&31);return o>0&&s.push(i<<5-o&31),s}(e);if(Array.isArray(t))return t;throw new Error(t)}(n.slice(2));return e.unshift(t),function(e,t,r){if(e.length+7+t.length>(r=r||90))throw new TypeError("Exceeds length limit");var n=function(e){for(var t=1,r=0;r<e.length;++r){var n=e.charCodeAt(r);if(n<33||n>126)return"Invalid prefix ("+e+")";t=ra(t)^n>>5}for(t=ra(t),r=0;r<e.length;++r){var i=e.charCodeAt(r);t=ra(t)^31&i}return t}(e=e.toLowerCase());if("string"==typeof n)throw new Error(n);for(var i=e+"1",o=0;o<t.length;++o){var s=t[o];if(s>>5!=0)throw new Error("Non 5-bit word");n=ra(n)^s,i+=Zs.charAt(s)}for(o=0;o<6;++o)n=ra(n);for(n^=1,o=0;o<6;++o)i+=Zs.charAt(n>>5*(5-o)&31);return i}(r.prefix,e)}}return null}getAddress(e){return lu(this,void 0,void 0,function*(){if(null==e&&(e=60),60===e)try{const e=yield this._fetch("0x3b3b57de");return"0x"===e||"0x0000000000000000000000000000000000000000000000000000000000000000"===e?null:this.provider.formatter.callAddress(e)}catch(e){if(e.code===Pr.errors.CALL_EXCEPTION)return null;throw e}const t=yield this._fetchBytes("0xf1cb7e06",vu(e));if(null==t||"0x"===t)return null;const r=this._getAddress(e,t);return null==r&&cu.throwError("invalid or unsupported coin data",Pr.errors.UNSUPPORTED_OPERATION,{operation:`getAddress(${e})`,coinType:e,data:t}),r})}getAvatar(){return lu(this,void 0,void 0,function*(){const e=[{type:"name",content:this.name}];try{const t=yield this.getText("avatar");if(null==t)return null;for(let r=0;r<Tu.length;r++){const n=t.match(Tu[r]);if(null==n)continue;const i=n[1].toLowerCase();switch(i){case"https":return e.push({type:"url",content:t}),{linkage:e,url:t};case"data":return e.push({type:"data",content:t}),{linkage:e,url:t};case"ipfs":return e.push({type:"ipfs",content:t}),{linkage:e,url:Iu(t)};case"erc721":case"erc1155":{const r="erc721"===i?"0xc87b56dd":"0x0e89341c";e.push({type:i,content:t});const o=this._resolvedAddress||(yield this.getAddress()),s=(n[2]||"").split("/");if(2!==s.length)return null;const a=yield this.provider.formatter.address(s[0]),u=Vr($r.from(s[1]).toHexString(),32);if("erc721"===i){const t=this.provider.formatter.callAddress(yield this.provider.call({to:a,data:Hr(["0x6352211e",u])}));if(o!==t)return null;e.push({type:"owner",content:t})}else if("erc1155"===i){const t=$r.from(yield this.provider.call({to:a,data:Hr(["0x00fdd58e",Vr(o,32),u])}));if(t.isZero())return null;e.push({type:"balance",content:t.toString()})}const l={to:this.provider.formatter.address(s[0]),data:Hr([r,u])};let c=Eu(yield this.provider.call(l),0);if(null==c)return null;e.push({type:"metadata-url-base",content:c}),"erc1155"===i&&(c=c.replace("{id}",u.substring(2)),e.push({type:"metadata-url-expanded",content:c})),c.match(/^ipfs:/i)&&(c=Iu(c)),e.push({type:"metadata-url",content:c});const d=yield Ys(c);if(!d)return null;e.push({type:"metadata",content:JSON.stringify(d)});let h=d.image;if("string"!=typeof h)return null;if(h.match(/^(https:\/\/|data:)/i));else{if(null==h.match(wu))return null;e.push({type:"url-ipfs",content:h}),h=Iu(h)}return e.push({type:"url",content:h}),{linkage:e,url:h}}}}}catch(e){}return null})}getContentHash(){return lu(this,void 0,void 0,function*(){const e=yield this._fetchBytes("0xbc1c58d1");if(null==e||"0x"===e)return null;const t=e.match(/^0xe3010170(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/);if(t){const e=parseInt(t[3],16);if(t[4].length===2*e)return"ipfs://"+qn.encode("0x"+t[1])}const r=e.match(/^0xe5010172(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/);if(r){const e=parseInt(r[3],16);if(r[4].length===2*e)return"ipns://"+qn.encode("0x"+r[1])}const n=e.match(/^0xe40101fa011b20([0-9a-f]*)$/);if(n&&64===n[1].length)return"bzz://"+n[1];const i=e.match(/^0x90b2c605([0-9a-f]*)$/);if(i&&68===i[1].length){const e={"=":"","+":"-","/":"_"};return"sia://"+jn("0x"+i[1]).replace(/[=+\/]/g,t=>e[t])}return cu.throwError("invalid or unsupported content hash data",Pr.errors.UNSUPPORTED_OPERATION,{operation:"getContentHash()",data:e})})}getText(e){return lu(this,void 0,void 0,function*(){let t=ni(e);t=Br([vu(64),vu(t.length),t]),t.length%32!=0&&(t=Br([t,Vr("0x",32-e.length%32)]));const r=yield this._fetchBytes("0x59d1d43c",Ur(t));return null==r||"0x"===r?null:ii(r)})}}let xu=null,_u=1;class Ru extends Rn{constructor(e){if(super(),this._events=[],this._emitted={block:-2},this.disableCcipRead=!1,this.formatter=new.target.getFormatter(),An(this,"anyNetwork","any"===e),this.anyNetwork&&(e=this.detectNetwork()),e instanceof Promise)this._networkPromise=e,e.catch(e=>{}),this._ready().catch(e=>{});else{const t=wn(new.target,"getNetwork")(e);t?(An(this,"_network",t),this.emit("network",t,null)):cu.throwArgumentError("invalid network","network",e)}this._maxInternalBlockNumber=-1024,this._lastBlockNumber=-2,this._maxFilterBlockRange=10,this._pollingInterval=4e3,this._fastQueryDate=0}_ready(){return lu(this,void 0,void 0,function*(){if(null==this._network){let e=null;if(this._networkPromise)try{e=yield this._networkPromise}catch(e){}null==e&&(e=yield this.detectNetwork()),e||cu.throwError("no network detected",Pr.errors.UNKNOWN_ERROR,{}),null==this._network&&(this.anyNetwork?this._network=e:An(this,"_network",e),this.emit("network",e,null))}return this._network})}get ready(){return Xs(()=>this._ready().then(e=>e,e=>{if(e.code!==Pr.errors.NETWORK_ERROR||"noNetwork"!==e.event)throw e}))}static getFormatter(){return null==xu&&(xu=new uu),xu}static getNetwork(e){return function(e){if(null==e)return null;if("number"==typeof e){for(const t in Un){const r=Un[t];if(r.chainId===e)return{name:r.name,chainId:r.chainId,ensAddress:r.ensAddress||null,_defaultProvider:r._defaultProvider||null}}return{chainId:e,name:"unknown"}}if("string"==typeof e){const t=Un[e];return null==t?null:{name:t.name,chainId:t.chainId,ensAddress:t.ensAddress,_defaultProvider:t._defaultProvider||null}}const t=Un[e.name];if(!t)return"number"!=typeof e.chainId&&Mn.throwArgumentError("invalid network chainId","network",e),e;0!==e.chainId&&e.chainId!==t.chainId&&Mn.throwArgumentError("network chainId mismatch","network",e);let r=e._defaultProvider||null;var n;return null==r&&t._defaultProvider&&(r=(n=t._defaultProvider)&&"function"==typeof n.renetwork?t._defaultProvider.renetwork(e):t._defaultProvider),{name:e.name,chainId:t.chainId,ensAddress:e.ensAddress||t.ensAddress||null,_defaultProvider:r}}(null==e?"homestead":e)}ccipReadFetch(e,t,r){return lu(this,void 0,void 0,function*(){if(this.disableCcipRead||0===r.length)return null;const n=e.to.toLowerCase(),i=t.toLowerCase(),o=[];for(let e=0;e<r.length;e++){const t=r[e],s=t.replace("{sender}",n).replace("{data}",i),a=t.indexOf("{data}")>=0?null:JSON.stringify({data:i,sender:n}),u=yield Ys({url:s,errorPassThrough:!0},a,(e,t)=>(e.status=t.statusCode,e));if(u.data)return u.data;const l=u.message||"unknown error";if(u.status>=400&&u.status<500)return cu.throwError(`response not found during CCIP fetch: ${l}`,Pr.errors.SERVER_ERROR,{url:t,errorMessage:l});o.push(l)}return cu.throwError(`error encountered during CCIP fetch: ${o.map(e=>JSON.stringify(e)).join(", ")}`,Pr.errors.SERVER_ERROR,{urls:r,errorMessages:o})})}_getInternalBlockNumber(e){return lu(this,void 0,void 0,function*(){if(yield this._ready(),e>0)for(;this._internalBlockNumber;){const t=this._internalBlockNumber;try{const r=yield t;if(fu()-r.respTime<=e)return r.blockNumber;break}catch(e){if(this._internalBlockNumber===t)break}}const t=fu(),r=Tn({blockNumber:this.perform("getBlockNumber",{}),networkError:this.getNetwork().then(e=>null,e=>e)}).then(({blockNumber:e,networkError:n})=>{if(n)throw this._internalBlockNumber===r&&(this._internalBlockNumber=null),n;const i=fu();return(e=$r.from(e).toNumber())<this._maxInternalBlockNumber&&(e=this._maxInternalBlockNumber),this._maxInternalBlockNumber=e,this._setFastBlockNumber(e),{blockNumber:e,reqTime:t,respTime:i}});return this._internalBlockNumber=r,r.catch(e=>{this._internalBlockNumber===r&&(this._internalBlockNumber=null)}),(yield r).blockNumber})}poll(){return lu(this,void 0,void 0,function*(){const e=_u++,t=[];let r=null;try{r=yield this._getInternalBlockNumber(100+this.pollingInterval/2)}catch(e){return void this.emit("error",e)}if(this._setFastBlockNumber(r),this.emit("poll",e,r),r!==this._lastBlockNumber){if(-2===this._emitted.block&&(this._emitted.block=r-1),Math.abs(this._emitted.block-r)>1e3)cu.warn(`network block skew detected; skipping block events (emitted=${this._emitted.block} blockNumber${r})`),this.emit("error",cu.makeError("network block skew detected",Pr.errors.NETWORK_ERROR,{blockNumber:r,event:"blockSkew",previousBlockNumber:this._emitted.block})),this.emit("block",r);else for(let e=this._emitted.block+1;e<=r;e++)this.emit("block",e);this._emitted.block!==r&&(this._emitted.block=r,Object.keys(this._emitted).forEach(e=>{if("block"===e)return;const t=this._emitted[e];"pending"!==t&&r-t>12&&delete this._emitted[e]})),-2===this._lastBlockNumber&&(this._lastBlockNumber=r-1),this._events.forEach(e=>{switch(e.type){case"tx":{const r=e.hash;let n=this.getTransactionReceipt(r).then(e=>e&&null!=e.blockNumber?(this._emitted["t:"+r]=e.blockNumber,this.emit(r,e),null):null).catch(e=>{this.emit("error",e)});t.push(n);break}case"filter":if(!e._inflight){e._inflight=!0,-2===e._lastBlockNumber&&(e._lastBlockNumber=r-1);const n=e.filter;n.fromBlock=e._lastBlockNumber+1,n.toBlock=r;const i=n.toBlock-this._maxFilterBlockRange;i>n.fromBlock&&(n.fromBlock=i),n.fromBlock<0&&(n.fromBlock=0);const o=this.getLogs(n).then(t=>{e._inflight=!1,0!==t.length&&t.forEach(t=>{t.blockNumber>e._lastBlockNumber&&(e._lastBlockNumber=t.blockNumber),this._emitted["b:"+t.blockHash]=t.blockNumber,this._emitted["t:"+t.transactionHash]=t.blockNumber,this.emit(n,t)})}).catch(t=>{this.emit("error",t),e._inflight=!1});t.push(o)}}}),this._lastBlockNumber=r,Promise.all(t).then(()=>{this.emit("didPoll",e)}).catch(e=>{this.emit("error",e)})}else this.emit("didPoll",e)})}resetEventsBlock(e){this._lastBlockNumber=e-1,this.polling&&this.poll()}get network(){return this._network}detectNetwork(){return lu(this,void 0,void 0,function*(){return cu.throwError("provider does not support network detection",Pr.errors.UNSUPPORTED_OPERATION,{operation:"provider.detectNetwork"})})}getNetwork(){return lu(this,void 0,void 0,function*(){const e=yield this._ready(),t=yield this.detectNetwork();if(e.chainId!==t.chainId){if(this.anyNetwork)return this._network=t,this._lastBlockNumber=-2,this._fastBlockNumber=null,this._fastBlockNumberPromise=null,this._fastQueryDate=0,this._emitted.block=-2,this._maxInternalBlockNumber=-1024,this._internalBlockNumber=null,this.emit("network",t,e),yield mu(0),this._network;const r=cu.makeError("underlying network changed",Pr.errors.NETWORK_ERROR,{event:"changed",network:e,detectedNetwork:t});throw this.emit("error",r),r}return e})}get blockNumber(){return this._getInternalBlockNumber(100+this.pollingInterval/2).then(e=>{this._setFastBlockNumber(e)},e=>{}),null!=this._fastBlockNumber?this._fastBlockNumber:-1}get polling(){return null!=this._poller}set polling(e){e&&!this._poller?(this._poller=setInterval(()=>{this.poll()},this.pollingInterval),this._bootstrapPoll||(this._bootstrapPoll=setTimeout(()=>{this.poll(),this._bootstrapPoll=setTimeout(()=>{this._poller||this.poll(),this._bootstrapPoll=null},this.pollingInterval)},0))):!e&&this._poller&&(clearInterval(this._poller),this._poller=null)}get pollingInterval(){return this._pollingInterval}set pollingInterval(e){if("number"!=typeof e||e<=0||parseInt(String(e))!=e)throw new Error("invalid polling interval");this._pollingInterval=e,this._poller&&(clearInterval(this._poller),this._poller=setInterval(()=>{this.poll()},this._pollingInterval))}_getFastBlockNumber(){const e=fu();return e-this._fastQueryDate>2*this._pollingInterval&&(this._fastQueryDate=e,this._fastBlockNumberPromise=this.getBlockNumber().then(e=>((null==this._fastBlockNumber||e>this._fastBlockNumber)&&(this._fastBlockNumber=e),this._fastBlockNumber))),this._fastBlockNumberPromise}_setFastBlockNumber(e){null!=this._fastBlockNumber&&e<this._fastBlockNumber||(this._fastQueryDate=fu(),(null==this._fastBlockNumber||e>this._fastBlockNumber)&&(this._fastBlockNumber=e,this._fastBlockNumberPromise=Promise.resolve(e)))}waitForTransaction(e,t,r){return lu(this,void 0,void 0,function*(){return this._waitForTransaction(e,null==t?1:t,r||0,null)})}_waitForTransaction(e,t,r,n){return lu(this,void 0,void 0,function*(){const i=yield this.getTransactionReceipt(e);return(i?i.confirmations:0)>=t?i:new Promise((i,o)=>{const s=[];let a=!1;const u=function(){return!!a||(a=!0,s.forEach(e=>{e()}),!1)},l=e=>{e.confirmations<t||u()||i(e)};if(this.on(e,l),s.push(()=>{this.removeListener(e,l)}),n){let r=n.startBlock,i=null;const l=s=>lu(this,void 0,void 0,function*(){a||(yield mu(1e3),this.getTransactionCount(n.from).then(c=>lu(this,void 0,void 0,function*(){if(!a){if(c<=n.nonce)r=s;else{{const t=yield this.getTransaction(e);if(t&&null!=t.blockNumber)return}for(null==i&&(i=r-3,i<n.startBlock&&(i=n.startBlock));i<=s;){if(a)return;const r=yield this.getBlockWithTransactions(i);for(let i=0;i<r.transactions.length;i++){const s=r.transactions[i];if(s.hash===e)return;if(s.from===n.from&&s.nonce===n.nonce){if(a)return;const r=yield this.waitForTransaction(s.hash,t);if(u())return;let i="replaced";return s.data===n.data&&s.to===n.to&&s.value.eq(n.value)?i="repriced":"0x"===s.data&&s.from===s.to&&s.value.isZero()&&(i="cancelled"),void o(cu.makeError("transaction was replaced",Pr.errors.TRANSACTION_REPLACED,{cancelled:"replaced"===i||"cancelled"===i,reason:i,replacement:this._wrapTransaction(s),hash:e,receipt:r}))}}i++}}a||this.once("block",l)}}),e=>{a||this.once("block",l)}))});if(a)return;this.once("block",l),s.push(()=>{this.removeListener("block",l)})}if("number"==typeof r&&r>0){const e=setTimeout(()=>{u()||o(cu.makeError("timeout exceeded",Pr.errors.TIMEOUT,{timeout:r}))},r);e.unref&&e.unref(),s.push(()=>{clearTimeout(e)})}})})}getBlockNumber(){return lu(this,void 0,void 0,function*(){return this._getInternalBlockNumber(0)})}getGasPrice(){return lu(this,void 0,void 0,function*(){yield this.getNetwork();const e=yield this.perform("getGasPrice",{});try{return $r.from(e)}catch(t){return cu.throwError("bad result from backend",Pr.errors.SERVER_ERROR,{method:"getGasPrice",result:e,error:t})}})}getBalance(e,t){return lu(this,void 0,void 0,function*(){yield this.getNetwork();const r=yield Tn({address:this._getAddress(e),blockTag:this._getBlockTag(t)}),n=yield this.perform("getBalance",r);try{return $r.from(n)}catch(e){return cu.throwError("bad result from backend",Pr.errors.SERVER_ERROR,{method:"getBalance",params:r,result:n,error:e})}})}getTransactionCount(e,t){return lu(this,void 0,void 0,function*(){yield this.getNetwork();const r=yield Tn({address:this._getAddress(e),blockTag:this._getBlockTag(t)}),n=yield this.perform("getTransactionCount",r);try{return $r.from(n).toNumber()}catch(e){return cu.throwError("bad result from backend",Pr.errors.SERVER_ERROR,{method:"getTransactionCount",params:r,result:n,error:e})}})}getCode(e,t){return lu(this,void 0,void 0,function*(){yield this.getNetwork();const r=yield Tn({address:this._getAddress(e),blockTag:this._getBlockTag(t)}),n=yield this.perform("getCode",r);try{return Ur(n)}catch(e){return cu.throwError("bad result from backend",Pr.errors.SERVER_ERROR,{method:"getCode",params:r,result:n,error:e})}})}getStorageAt(e,t,r){return lu(this,void 0,void 0,function*(){yield this.getNetwork();const n=yield Tn({address:this._getAddress(e),blockTag:this._getBlockTag(r),position:Promise.resolve(t).then(e=>qr(e))}),i=yield this.perform("getStorageAt",n);try{return Ur(i)}catch(e){return cu.throwError("bad result from backend",Pr.errors.SERVER_ERROR,{method:"getStorageAt",params:n,result:i,error:e})}})}_wrapTransaction(e,t,r){if(null!=t&&32!==Gr(t))throw new Error("invalid response - sendTransaction");const n=e;return null!=t&&e.hash!==t&&cu.throwError("Transaction hash mismatch from Provider.sendTransaction.",Pr.errors.UNKNOWN_ERROR,{expectedHash:e.hash,returnedHash:t}),n.wait=(t,n)=>lu(this,void 0,void 0,function*(){let i;null==t&&(t=1),null==n&&(n=0),0!==t&&null!=r&&(i={data:e.data,from:e.from,nonce:e.nonce,to:e.to,value:e.value,startBlock:r});const o=yield this._waitForTransaction(e.hash,t,n,i);return null==o&&0===t?null:(this._emitted["t:"+e.hash]=o.blockNumber,0===o.status&&cu.throwError("transaction failed",Pr.errors.CALL_EXCEPTION,{transactionHash:e.hash,transaction:e,receipt:o}),o)}),n}sendTransaction(e){return lu(this,void 0,void 0,function*(){yield this.getNetwork();const t=yield Promise.resolve(e).then(e=>Ur(e)),r=this.formatter.transaction(e);null==r.confirmations&&(r.confirmations=0);const n=yield this._getInternalBlockNumber(100+2*this.pollingInterval);try{const e=yield this.perform("sendTransaction",{signedTransaction:t});return this._wrapTransaction(r,e,n)}catch(e){throw e.transaction=r,e.transactionHash=r.hash,e}})}_getTransactionRequest(e){return lu(this,void 0,void 0,function*(){const t=yield e,r={};return["from","to"].forEach(e=>{null!=t[e]&&(r[e]=Promise.resolve(t[e]).then(e=>e?this._getAddress(e):null))}),["gasLimit","gasPrice","maxFeePerGas","maxPriorityFeePerGas","value"].forEach(e=>{null!=t[e]&&(r[e]=Promise.resolve(t[e]).then(e=>e?$r.from(e):null))}),["type"].forEach(e=>{null!=t[e]&&(r[e]=Promise.resolve(t[e]).then(e=>null!=e?e:null))}),t.accessList&&(r.accessList=this.formatter.accessList(t.accessList)),["data"].forEach(e=>{null!=t[e]&&(r[e]=Promise.resolve(t[e]).then(e=>e?Ur(e):null))}),this.formatter.transactionRequest(yield Tn(r))})}_getFilter(e){return lu(this,void 0,void 0,function*(){e=yield e;const t={};return null!=e.address&&(t.address=this._getAddress(e.address)),["blockHash","topics"].forEach(r=>{null!=e[r]&&(t[r]=e[r])}),["fromBlock","toBlock"].forEach(r=>{null!=e[r]&&(t[r]=this._getBlockTag(e[r]))}),this.formatter.filter(yield Tn(t))})}_call(e,t,r){return lu(this,void 0,void 0,function*(){r>=10&&cu.throwError("CCIP read exceeded maximum redirections",Pr.errors.SERVER_ERROR,{redirects:r,transaction:e});const n=e.to,i=yield this.perform("call",{transaction:e,blockTag:t});if(r>=0&&"latest"===t&&null!=n&&"0x556f1830"===i.substring(0,10)&&Gr(i)%32==4)try{const o=jr(i,4),s=jr(o,0,32);$r.from(s).eq(n)||cu.throwError("CCIP Read sender did not match",Pr.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:e,data:i});const a=[],u=$r.from(jr(o,32,64)).toNumber(),l=$r.from(jr(o,u,u+32)).toNumber(),c=jr(o,u+32);for(let t=0;t<l;t++){const r=Eu(c,32*t);null==r&&cu.throwError("CCIP Read contained corrupt URL string",Pr.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:e,data:i}),a.push(r)}const d=Su(o,64);$r.from(jr(o,100,128)).isZero()||cu.throwError("CCIP Read callback selector included junk",Pr.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:e,data:i});const h=jr(o,96,100),p=Su(o,128),f=yield this.ccipReadFetch(e,d,a);null==f&&cu.throwError("CCIP Read disabled or provided no URLs",Pr.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:e,data:i});const m={to:n,data:Hr([h,Cu([f,p])])};return this._call(m,t,r+1)}catch(e){if(e.code===Pr.errors.SERVER_ERROR)throw e}try{return Ur(i)}catch(r){return cu.throwError("bad result from backend",Pr.errors.SERVER_ERROR,{method:"call",params:{transaction:e,blockTag:t},result:i,error:r})}})}call(e,t){return lu(this,void 0,void 0,function*(){yield this.getNetwork();const r=yield Tn({transaction:this._getTransactionRequest(e),blockTag:this._getBlockTag(t),ccipReadEnabled:Promise.resolve(e.ccipReadEnabled)});return this._call(r.transaction,r.blockTag,r.ccipReadEnabled?0:-1)})}estimateGas(e){return lu(this,void 0,void 0,function*(){yield this.getNetwork();const t=yield Tn({transaction:this._getTransactionRequest(e)}),r=yield this.perform("estimateGas",t);try{return $r.from(r)}catch(e){return cu.throwError("bad result from backend",Pr.errors.SERVER_ERROR,{method:"estimateGas",params:t,result:r,error:e})}})}_getAddress(e){return lu(this,void 0,void 0,function*(){"string"!=typeof(e=yield e)&&cu.throwArgumentError("invalid address or ENS name","name",e);const t=yield this.resolveName(e);return null==t&&cu.throwError("ENS name not configured",Pr.errors.UNSUPPORTED_OPERATION,{operation:`resolveName(${JSON.stringify(e)})`}),t})}_getBlock(e,t){return lu(this,void 0,void 0,function*(){yield this.getNetwork(),e=yield e;let r=-128;const n={includeTransactions:!!t};if(Lr(e,32))n.blockHash=e;else try{n.blockTag=yield this._getBlockTag(e),Lr(n.blockTag)&&(r=parseInt(n.blockTag.substring(2),16))}catch(t){cu.throwArgumentError("invalid block hash or block tag","blockHashOrBlockTag",e)}return Xs(()=>lu(this,void 0,void 0,function*(){const e=yield this.perform("getBlock",n);if(null==e)return null!=n.blockHash&&null==this._emitted["b:"+n.blockHash]||null!=n.blockTag&&r>this._emitted.block?null:void 0;if(t){let t=null;for(let r=0;r<e.transactions.length;r++){const n=e.transactions[r];if(null==n.blockNumber)n.confirmations=0;else if(null==n.confirmations){null==t&&(t=yield this._getInternalBlockNumber(100+2*this.pollingInterval));let e=t-n.blockNumber+1;e<=0&&(e=1),n.confirmations=e}}const r=this.formatter.blockWithTransactions(e);return r.transactions=r.transactions.map(e=>this._wrapTransaction(e)),r}return this.formatter.block(e)}),{oncePoll:this})})}getBlock(e){return this._getBlock(e,!1)}getBlockWithTransactions(e){return this._getBlock(e,!0)}getTransaction(e){return lu(this,void 0,void 0,function*(){yield this.getNetwork(),e=yield e;const t={transactionHash:this.formatter.hash(e,!0)};return Xs(()=>lu(this,void 0,void 0,function*(){const r=yield this.perform("getTransaction",t);if(null==r)return null==this._emitted["t:"+e]?null:void 0;const n=this.formatter.transactionResponse(r);if(null==n.blockNumber)n.confirmations=0;else if(null==n.confirmations){let e=(yield this._getInternalBlockNumber(100+2*this.pollingInterval))-n.blockNumber+1;e<=0&&(e=1),n.confirmations=e}return this._wrapTransaction(n)}),{oncePoll:this})})}getTransactionReceipt(e){return lu(this,void 0,void 0,function*(){yield this.getNetwork(),e=yield e;const t={transactionHash:this.formatter.hash(e,!0)};return Xs(()=>lu(this,void 0,void 0,function*(){const r=yield this.perform("getTransactionReceipt",t);if(null==r)return null==this._emitted["t:"+e]?null:void 0;if(null==r.blockHash)return;const n=this.formatter.receipt(r);if(null==n.blockNumber)n.confirmations=0;else if(null==n.confirmations){let e=(yield this._getInternalBlockNumber(100+2*this.pollingInterval))-n.blockNumber+1;e<=0&&(e=1),n.confirmations=e}return n}),{oncePoll:this})})}getLogs(e){return lu(this,void 0,void 0,function*(){yield this.getNetwork();const t=yield Tn({filter:this._getFilter(e)}),r=yield this.perform("getLogs",t);return r.forEach(e=>{null==e.removed&&(e.removed=!1)}),uu.arrayOf(this.formatter.filterLog.bind(this.formatter))(r)})}getEtherPrice(){return lu(this,void 0,void 0,function*(){return yield this.getNetwork(),this.perform("getEtherPrice",{})})}_getBlockTag(e){return lu(this,void 0,void 0,function*(){if("number"==typeof(e=yield e)&&e<0){e%1&&cu.throwArgumentError("invalid BlockTag","blockTag",e);let t=yield this._getInternalBlockNumber(100+2*this.pollingInterval);return t+=e,t<0&&(t=0),this.formatter.blockTag(t)}return this.formatter.blockTag(e)})}getResolver(e){return lu(this,void 0,void 0,function*(){let t=e;for(;;){if(""===t||"."===t)return null;if("eth"!==e&&"eth"===t)return null;const r=yield this._getResolver(t,"getResolver");if(null!=r){const n=new Nu(this,r,e);return t===e||(yield n.supportsWildcard())?n:null}t=t.split(".").slice(1).join(".")}})}_getResolver(e,t){return lu(this,void 0,void 0,function*(){null==t&&(t="ENS");const r=yield this.getNetwork();r.ensAddress||cu.throwError("network does not support ENS",Pr.errors.UNSUPPORTED_OPERATION,{operation:t,network:r.name});try{const t=yield this.call({to:r.ensAddress,data:"0x0178b8bf"+xi(e).substring(2)});return this.formatter.callAddress(t)}catch(e){}return null})}resolveName(e){return lu(this,void 0,void 0,function*(){e=yield e;try{return Promise.resolve(this.formatter.address(e))}catch(t){if(Lr(e))throw t}"string"!=typeof e&&cu.throwArgumentError("invalid ENS name","name",e);const t=yield this.getResolver(e);return t?yield t.getAddress():null})}lookupAddress(e){return lu(this,void 0,void 0,function*(){e=yield e;const t=(e=this.formatter.address(e)).substring(2).toLowerCase()+".addr.reverse",r=yield this._getResolver(t,"lookupAddress");if(null==r)return null;const n=Eu(yield this.call({to:r,data:"0x691f3431"+xi(t).substring(2)}),0);return(yield this.resolveName(n))!=e?null:n})}getAvatar(e){return lu(this,void 0,void 0,function*(){let t=null;if(Lr(e)){const r=this.formatter.address(e).substring(2).toLowerCase()+".addr.reverse",n=yield this._getResolver(r,"getAvatar");if(!n)return null;t=new Nu(this,n,r);try{const e=yield t.getAvatar();if(e)return e.url}catch(e){if(e.code!==Pr.errors.CALL_EXCEPTION)throw e}try{const e=Eu(yield this.call({to:n,data:"0x691f3431"+xi(r).substring(2)}),0);t=yield this.getResolver(e)}catch(e){if(e.code!==Pr.errors.CALL_EXCEPTION)throw e;return null}}else if(t=yield this.getResolver(e),!t)return null;const r=yield t.getAvatar();return null==r?null:r.url})}perform(e,t){return cu.throwError(e+" not implemented",Pr.errors.NOT_IMPLEMENTED,{operation:e})}_startEvent(e){this.polling=this._events.filter(e=>e.pollable()).length>0}_stopEvent(e){this.polling=this._events.filter(e=>e.pollable()).length>0}_addEventListener(e,t,r){const n=new gu(pu(e),t,r);return this._events.push(n),this._startEvent(n),this}on(e,t){return this._addEventListener(e,t,!1)}once(e,t){return this._addEventListener(e,t,!0)}emit(e,...t){let r=!1,n=[],i=pu(e);return this._events=this._events.filter(e=>e.tag!==i||(setTimeout(()=>{e.listener.apply(this,t)},0),r=!0,!e.once||(n.push(e),!1))),n.forEach(e=>{this._stopEvent(e)}),r}listenerCount(e){if(!e)return this._events.length;let t=pu(e);return this._events.filter(e=>e.tag===t).length}listeners(e){if(null==e)return this._events.map(e=>e.listener);let t=pu(e);return this._events.filter(e=>e.tag===t).map(e=>e.listener)}off(e,t){if(null==t)return this.removeAllListeners(e);const r=[];let n=!1,i=pu(e);return this._events=this._events.filter(e=>e.tag!==i||e.listener!=t||!!n||(n=!0,r.push(e),!1)),r.forEach(e=>{this._stopEvent(e)}),this}removeAllListeners(e){let t=[];if(null==e)t=this._events,this._events=[];else{const r=pu(e);this._events=this._events.filter(e=>e.tag!==r||(t.push(e),!1))}return t.forEach(e=>{this._stopEvent(e)}),this}}var Mu=function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function s(e){try{u(n.next(e))}catch(e){o(e)}}function a(e){try{u(n.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r(function(e){e(t)})).then(s,a)}u((n=n.apply(e,t||[])).next())})};const Ou=new Pr(na),Bu=["call","estimateGas"];function Du(e,t){if(null==e)return null;if("string"==typeof e.message&&e.message.match("reverted")){const r=Lr(e.data)?e.data:null;if(!t||r)return{message:e.message,data:r}}if("object"==typeof e){for(const r in e){const n=Du(e[r],t);if(n)return n}return null}if("string"==typeof e)try{return Du(JSON.parse(e),t)}catch(e){}return null}function Lu(e,t,r){const n=r.transaction||r.signedTransaction;if("call"===e){const e=Du(t,!0);if(e)return e.data;Ou.throwError("missing revert data in call exception; Transaction reverted without a reason string",Pr.errors.CALL_EXCEPTION,{data:"0x",transaction:n,error:t})}if("estimateGas"===e){let r=Du(t.body,!1);null==r&&(r=Du(t,!1)),r&&Ou.throwError("cannot estimate gas; transaction may fail or may require manual gas limit",Pr.errors.UNPREDICTABLE_GAS_LIMIT,{reason:r.message,method:e,transaction:n,error:t})}let i=t.message;throw t.code===Pr.errors.SERVER_ERROR&&t.error&&"string"==typeof t.error.message?i=t.error.message:"string"==typeof t.body?i=t.body:"string"==typeof t.responseText&&(i=t.responseText),i=(i||"").toLowerCase(),i.match(/insufficient funds|base fee exceeds gas limit|InsufficientFunds/i)&&Ou.throwError("insufficient funds for intrinsic transaction cost",Pr.errors.INSUFFICIENT_FUNDS,{error:t,method:e,transaction:n}),i.match(/nonce (is )?too low/i)&&Ou.throwError("nonce has already been used",Pr.errors.NONCE_EXPIRED,{error:t,method:e,transaction:n}),i.match(/replacement transaction underpriced|transaction gas price.*too low/i)&&Ou.throwError("replacement fee too low",Pr.errors.REPLACEMENT_UNDERPRICED,{error:t,method:e,transaction:n}),i.match(/only replay-protected/i)&&Ou.throwError("legacy pre-eip-155 transactions not supported",Pr.errors.UNSUPPORTED_OPERATION,{error:t,method:e,transaction:n}),Bu.indexOf(e)>=0&&i.match(/gas required exceeds allowance|always failing transaction|execution reverted|revert/)&&Ou.throwError("cannot estimate gas; transaction may fail or may require manual gas limit",Pr.errors.UNPREDICTABLE_GAS_LIMIT,{error:t,method:e,transaction:n}),t}function Fu(e){return new Promise(function(t){setTimeout(t,e)})}function Uu(e){if(e.error){const t=new Error(e.error.message);throw t.code=e.error.code,t.data=e.error.data,t}return e.result}function Gu(e){return e?e.toLowerCase():e}const ju={};class Hu extends a{constructor(e,t,r){if(super(),e!==ju)throw new Error("do not call the JsonRpcSigner constructor directly; use provider.getSigner");An(this,"provider",t),null==r&&(r=0),"string"==typeof r?(An(this,"_address",this.provider.formatter.address(r)),An(this,"_index",null)):"number"==typeof r?(An(this,"_index",r),An(this,"_address",null)):Ou.throwArgumentError("invalid address or index","addressOrIndex",r)}connect(e){return Ou.throwError("cannot alter JSON-RPC Signer connection",Pr.errors.UNSUPPORTED_OPERATION,{operation:"connect"})}connectUnchecked(){return new qu(ju,this.provider,this._address||this._index)}getAddress(){return this._address?Promise.resolve(this._address):this.provider.send("eth_accounts",[]).then(e=>(e.length<=this._index&&Ou.throwError("unknown account #"+this._index,Pr.errors.UNSUPPORTED_OPERATION,{operation:"getAddress"}),this.provider.formatter.address(e[this._index])))}sendUncheckedTransaction(e){e=Sn(e);const t=this.getAddress().then(e=>(e&&(e=e.toLowerCase()),e));if(null==e.gasLimit){const r=Sn(e);r.from=t,e.gasLimit=this.provider.estimateGas(r)}return null!=e.to&&(e.to=Promise.resolve(e.to).then(e=>Mu(this,void 0,void 0,function*(){if(null==e)return null;const t=yield this.provider.resolveName(e);return null==t&&Ou.throwArgumentError("provided ENS name resolves to null","tx.to",e),t}))),Tn({tx:Tn(e),sender:t}).then(({tx:t,sender:r})=>{null!=t.from?t.from.toLowerCase()!==r&&Ou.throwArgumentError("from address mismatch","transaction",e):t.from=r;const n=this.provider.constructor.hexlifyTransaction(t,{from:!0});return this.provider.send("eth_sendTransaction",[n]).then(e=>e,e=>("string"==typeof e.message&&e.message.match(/user denied/i)&&Ou.throwError("user rejected transaction",Pr.errors.ACTION_REJECTED,{action:"sendTransaction",transaction:t}),Lu("sendTransaction",e,n)))})}signTransaction(e){return Ou.throwError("signing transactions is unsupported",Pr.errors.UNSUPPORTED_OPERATION,{operation:"signTransaction"})}sendTransaction(e){return Mu(this,void 0,void 0,function*(){const t=yield this.provider._getInternalBlockNumber(100+2*this.provider.pollingInterval),r=yield this.sendUncheckedTransaction(e);try{return yield Xs(()=>Mu(this,void 0,void 0,function*(){const e=yield this.provider.getTransaction(r);if(null!==e)return this.provider._wrapTransaction(e,r,t)}),{oncePoll:this.provider})}catch(e){throw e.transactionHash=r,e}})}signMessage(e){return Mu(this,void 0,void 0,function*(){const t="string"==typeof e?ni(e):e,r=yield this.getAddress();try{return yield this.provider.send("personal_sign",[Ur(t),r.toLowerCase()])}catch(t){throw"string"==typeof t.message&&t.message.match(/user denied/i)&&Ou.throwError("user rejected signing",Pr.errors.ACTION_REJECTED,{action:"signMessage",from:r,messageData:e}),t}})}_legacySignMessage(e){return Mu(this,void 0,void 0,function*(){const t="string"==typeof e?ni(e):e,r=yield this.getAddress();try{return yield this.provider.send("eth_sign",[r.toLowerCase(),Ur(t)])}catch(t){throw"string"==typeof t.message&&t.message.match(/user denied/i)&&Ou.throwError("user rejected signing",Pr.errors.ACTION_REJECTED,{action:"_legacySignMessage",from:r,messageData:e}),t}})}_signTypedData(e,t,r){return Mu(this,void 0,void 0,function*(){const n=yield oo.resolveNames(e,t,r,e=>this.provider.resolveName(e)),i=yield this.getAddress();try{return yield this.provider.send("eth_signTypedData_v4",[i.toLowerCase(),JSON.stringify(oo.getPayload(n.domain,t,n.value))])}catch(e){throw"string"==typeof e.message&&e.message.match(/user denied/i)&&Ou.throwError("user rejected signing",Pr.errors.ACTION_REJECTED,{action:"_signTypedData",from:i,messageData:{domain:n.domain,types:t,value:n.value}}),e}})}unlock(e){return Mu(this,void 0,void 0,function*(){const t=this.provider,r=yield this.getAddress();return t.send("personal_unlockAccount",[r.toLowerCase(),e,null])})}}class qu extends Hu{sendTransaction(e){return this.sendUncheckedTransaction(e).then(e=>({hash:e,nonce:null,gasLimit:null,gasPrice:null,data:null,value:null,chainId:null,confirmations:0,from:null,wait:t=>this.provider.waitForTransaction(e,t)}))}}const Vu={chainId:!0,data:!0,gasLimit:!0,gasPrice:!0,nonce:!0,to:!0,value:!0,type:!0,accessList:!0,maxFeePerGas:!0,maxPriorityFeePerGas:!0};class zu extends Ru{constructor(e,t){let r=t;null==r&&(r=new Promise((e,t)=>{setTimeout(()=>{this.detectNetwork().then(t=>{e(t)},e=>{t(e)})},0)})),super(r),e||(e=wn(this.constructor,"defaultUrl")()),An(this,"connection",Object.freeze("string"==typeof e?{url:e}:Sn(e))),this._nextId=42}get _cache(){return null==this._eventLoopCache&&(this._eventLoopCache={}),this._eventLoopCache}static defaultUrl(){return"http://localhost:8545"}detectNetwork(){return this._cache.detectNetwork||(this._cache.detectNetwork=this._uncachedDetectNetwork(),setTimeout(()=>{this._cache.detectNetwork=null},0)),this._cache.detectNetwork}_uncachedDetectNetwork(){return Mu(this,void 0,void 0,function*(){yield Fu(0);let e=null;try{e=yield this.send("eth_chainId",[])}catch(t){try{e=yield this.send("net_version",[])}catch(e){}}if(null!=e){const t=wn(this.constructor,"getNetwork");try{return t($r.from(e).toNumber())}catch(t){return Ou.throwError("could not detect network",Pr.errors.NETWORK_ERROR,{chainId:e,event:"invalidNetwork",serverError:t})}}return Ou.throwError("could not detect network",Pr.errors.NETWORK_ERROR,{event:"noNetwork"})})}getSigner(e){return new Hu(ju,this,e)}getUncheckedSigner(e){return this.getSigner(e).connectUnchecked()}listAccounts(){return this.send("eth_accounts",[]).then(e=>e.map(e=>this.formatter.address(e)))}send(e,t){const r={method:e,params:t,id:this._nextId++,jsonrpc:"2.0"};this.emit("debug",{action:"request",request:Cn(r),provider:this});const n=["eth_chainId","eth_blockNumber"].indexOf(e)>=0;if(n&&this._cache[e])return this._cache[e];const i=Ys(this.connection,JSON.stringify(r),Uu).then(e=>(this.emit("debug",{action:"response",request:r,response:e,provider:this}),e),e=>{throw this.emit("debug",{action:"response",error:e,request:r,provider:this}),e});return n&&(this._cache[e]=i,setTimeout(()=>{this._cache[e]=null},0)),i}prepareRequest(e,t){switch(e){case"getBlockNumber":return["eth_blockNumber",[]];case"getGasPrice":return["eth_gasPrice",[]];case"getBalance":return["eth_getBalance",[Gu(t.address),t.blockTag]];case"getTransactionCount":return["eth_getTransactionCount",[Gu(t.address),t.blockTag]];case"getCode":return["eth_getCode",[Gu(t.address),t.blockTag]];case"getStorageAt":return["eth_getStorageAt",[Gu(t.address),Vr(t.position,32),t.blockTag]];case"sendTransaction":return["eth_sendRawTransaction",[t.signedTransaction]];case"getBlock":return t.blockTag?["eth_getBlockByNumber",[t.blockTag,!!t.includeTransactions]]:t.blockHash?["eth_getBlockByHash",[t.blockHash,!!t.includeTransactions]]:null;case"getTransaction":return["eth_getTransactionByHash",[t.transactionHash]];case"getTransactionReceipt":return["eth_getTransactionReceipt",[t.transactionHash]];case"call":return["eth_call",[wn(this.constructor,"hexlifyTransaction")(t.transaction,{from:!0}),t.blockTag]];case"estimateGas":return["eth_estimateGas",[wn(this.constructor,"hexlifyTransaction")(t.transaction,{from:!0})]];case"getLogs":return t.filter&&null!=t.filter.address&&(t.filter.address=Gu(t.filter.address)),["eth_getLogs",[t.filter]]}return null}perform(e,t){return Mu(this,void 0,void 0,function*(){if("call"===e||"estimateGas"===e){const e=t.transaction;if(e&&null!=e.type&&$r.from(e.type).isZero()&&null==e.maxFeePerGas&&null==e.maxPriorityFeePerGas){const r=yield this.getFeeData();null==r.maxFeePerGas&&null==r.maxPriorityFeePerGas&&((t=Sn(t)).transaction=Sn(e),delete t.transaction.type)}}const r=this.prepareRequest(e,t);null==r&&Ou.throwError(e+" not implemented",Pr.errors.NOT_IMPLEMENTED,{operation:e});try{return yield this.send(r[0],r[1])}catch(r){return Lu(e,r,t)}})}_startEvent(e){"pending"===e.tag&&this._startPending(),super._startEvent(e)}_startPending(){if(null!=this._pendingFilter)return;const e=this,t=this.send("eth_newPendingTransactionFilter",[]);this._pendingFilter=t,t.then(function(r){return function n(){e.send("eth_getFilterChanges",[r]).then(function(r){if(e._pendingFilter!=t)return null;let n=Promise.resolve();return r.forEach(function(t){e._emitted["t:"+t.toLowerCase()]="pending",n=n.then(function(){return e.getTransaction(t).then(function(t){return e.emit("pending",t),null})})}),n.then(function(){return Fu(1e3)})}).then(function(){if(e._pendingFilter==t)return setTimeout(function(){n()},0),null;e.send("eth_uninstallFilter",[r])}).catch(e=>{})}(),r}).catch(e=>{})}_stopEvent(e){"pending"===e.tag&&0===this.listenerCount("pending")&&(this._pendingFilter=null),super._stopEvent(e)}static hexlifyTransaction(e,t){const r=Sn(Vu);if(t)for(const e in t)t[e]&&(r[e]=!0);En(e,r);const n={};return["chainId","gasLimit","gasPrice","type","maxFeePerGas","maxPriorityFeePerGas","nonce","value"].forEach(function(t){if(null==e[t])return;const r=qr($r.from(e[t]));"gasLimit"===t&&(t="gas"),n[t]=r}),["from","to","data"].forEach(function(t){null!=e[t]&&(n[t]=Ur(e[t]))}),e.accessList&&(n.accessList=tu(e.accessList)),n}}const Ku=new Pr("random/5.8.0"),Wu=function(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if("undefined"!=typeof global)return global;throw new Error("unable to locate global object")}();let Ju=Wu.crypto||Wu.msCrypto;function Qu(e){(e<=0||e>1024||e%1||e!=e)&&Ku.throwArgumentError("invalid length","length",e);const t=new Uint8Array(e);return Ju.getRandomValues(t),Or(t)}Ju&&Ju.getRandomValues||(Ku.warn("WARNING: Missing strong random number source"),Ju={getRandomValues:function(e){return Ku.throwError("no secure random source avaialble",Pr.errors.UNSUPPORTED_OPERATION,{operation:"crypto.getRandomValues"})}});const Yu=new Pr(na);let Xu=1;function Zu(e,t){const r="Web3LegacyFetcher";return function(e,n){const i={method:e,params:n,id:Xu++,jsonrpc:"2.0"};return new Promise((e,n)=>{this.emit("debug",{action:"request",fetcher:r,request:Cn(i),provider:this}),t(i,(t,o)=>{if(t)return this.emit("debug",{action:"response",fetcher:r,error:t,request:i,provider:this}),n(t);if(this.emit("debug",{action:"response",fetcher:r,request:i,response:o,provider:this}),o.error){const e=new Error(o.error.message);return e.code=o.error.code,e.data=o.error.data,n(e)}e(o.result)})})}}class $u extends zu{constructor(e,t){null==e&&Yu.throwArgumentError("missing provider","provider",e);let r=null,n=null,i=null;"function"==typeof e?(r="unknown:",n=e):(r=e.host||e.path||"",!r&&e.isMetaMask&&(r="metamask"),i=e,e.request?(""===r&&(r="eip-1193:"),n=function(e){return function(t,r){null==r&&(r=[]);const n={method:t,params:r};return this.emit("debug",{action:"request",fetcher:"Eip1193Fetcher",request:Cn(n),provider:this}),e.request(n).then(e=>(this.emit("debug",{action:"response",fetcher:"Eip1193Fetcher",request:n,response:e,provider:this}),e),e=>{throw this.emit("debug",{action:"response",fetcher:"Eip1193Fetcher",request:n,error:e,provider:this}),e})}}(e)):e.sendAsync?n=Zu(0,e.sendAsync.bind(e)):e.send?n=Zu(0,e.send.bind(e)):Yu.throwArgumentError("unsupported provider","provider",e),r||(r="unknown:")),super(r,t),An(this,"jsonRpcFetchFunc",n),An(this,"provider",i)}send(e,t){return this.jsonRpcFetchFunc(e,t)}}function el(e,t,r,n,i){let o;e=Or(e),t=Or(t);let s=1;const a=new Uint8Array(n),u=new Uint8Array(t.length+4);let l,c;u.set(t);for(let d=1;d<=s;d++){u[t.length]=d>>24&255,u[t.length+1]=d>>16&255,u[t.length+2]=d>>8&255,u[t.length+3]=255&d;let h=Or(qs(i,e,u));o||(o=h.length,c=new Uint8Array(o),s=Math.ceil(n/o),l=n-(s-1)*o),c.set(h);for(let t=1;t<r;t++){h=Or(qs(i,e,h));for(let e=0;e<o;e++)c[e]^=h[e]}const p=(d-1)*o,f=d===s?l:o;a.set(Or(c).slice(0,f),p)}return Ur(a)}new Pr(na);const tl=new Pr("wordlists/5.8.0");class rl{constructor(e){tl.checkAbstract(new.target,rl),An(this,"locale",e)}split(e){return e.toLowerCase().split(/ +/g)}join(e){return e.join(" ")}static check(e){const t=[];for(let r=0;r<2048;r++){const n=e.getWord(r);if(r!==e.getWordIndex(n))return"0x";t.push(n)}return oi(t.join("\n")+"\n")}static register(e,t){}}const nl="AbandonAbilityAbleAboutAboveAbsentAbsorbAbstractAbsurdAbuseAccessAccidentAccountAccuseAchieveAcidAcousticAcquireAcrossActActionActorActressActualAdaptAddAddictAddressAdjustAdmitAdultAdvanceAdviceAerobicAffairAffordAfraidAgainAgeAgentAgreeAheadAimAirAirportAisleAlarmAlbumAlcoholAlertAlienAllAlleyAllowAlmostAloneAlphaAlreadyAlsoAlterAlwaysAmateurAmazingAmongAmountAmusedAnalystAnchorAncientAngerAngleAngryAnimalAnkleAnnounceAnnualAnotherAnswerAntennaAntiqueAnxietyAnyApartApologyAppearAppleApproveAprilArchArcticAreaArenaArgueArmArmedArmorArmyAroundArrangeArrestArriveArrowArtArtefactArtistArtworkAskAspectAssaultAssetAssistAssumeAsthmaAthleteAtomAttackAttendAttitudeAttractAuctionAuditAugustAuntAuthorAutoAutumnAverageAvocadoAvoidAwakeAwareAwayAwesomeAwfulAwkwardAxisBabyBachelorBaconBadgeBagBalanceBalconyBallBambooBananaBannerBarBarelyBargainBarrelBaseBasicBasketBattleBeachBeanBeautyBecauseBecomeBeefBeforeBeginBehaveBehindBelieveBelowBeltBenchBenefitBestBetrayBetterBetweenBeyondBicycleBidBikeBindBiologyBirdBirthBitterBlackBladeBlameBlanketBlastBleakBlessBlindBloodBlossomBlouseBlueBlurBlushBoardBoatBodyBoilBombBoneBonusBookBoostBorderBoringBorrowBossBottomBounceBoxBoyBracketBrainBrandBrassBraveBreadBreezeBrickBridgeBriefBrightBringBriskBroccoliBrokenBronzeBroomBrotherBrownBrushBubbleBuddyBudgetBuffaloBuildBulbBulkBulletBundleBunkerBurdenBurgerBurstBusBusinessBusyButterBuyerBuzzCabbageCabinCableCactusCageCakeCallCalmCameraCampCanCanalCancelCandyCannonCanoeCanvasCanyonCapableCapitalCaptainCarCarbonCardCargoCarpetCarryCartCaseCashCasinoCastleCasualCatCatalogCatchCategoryCattleCaughtCauseCautionCaveCeilingCeleryCementCensusCenturyCerealCertainChairChalkChampionChangeChaosChapterChargeChaseChatCheapCheckCheeseChefCherryChestChickenChiefChildChimneyChoiceChooseChronicChuckleChunkChurnCigarCinnamonCircleCitizenCityCivilClaimClapClarifyClawClayCleanClerkCleverClickClientCliffClimbClinicClipClockClogCloseClothCloudClownClubClumpClusterClutchCoachCoastCoconutCodeCoffeeCoilCoinCollectColorColumnCombineComeComfortComicCommonCompanyConcertConductConfirmCongressConnectConsiderControlConvinceCookCoolCopperCopyCoralCoreCornCorrectCostCottonCouchCountryCoupleCourseCousinCoverCoyoteCrackCradleCraftCramCraneCrashCraterCrawlCrazyCreamCreditCreekCrewCricketCrimeCrispCriticCropCrossCrouchCrowdCrucialCruelCruiseCrumbleCrunchCrushCryCrystalCubeCultureCupCupboardCuriousCurrentCurtainCurveCushionCustomCuteCycleDadDamageDampDanceDangerDaringDashDaughterDawnDayDealDebateDebrisDecadeDecemberDecideDeclineDecorateDecreaseDeerDefenseDefineDefyDegreeDelayDeliverDemandDemiseDenialDentistDenyDepartDependDepositDepthDeputyDeriveDescribeDesertDesignDeskDespairDestroyDetailDetectDevelopDeviceDevoteDiagramDialDiamondDiaryDiceDieselDietDifferDigitalDignityDilemmaDinnerDinosaurDirectDirtDisagreeDiscoverDiseaseDishDismissDisorderDisplayDistanceDivertDivideDivorceDizzyDoctorDocumentDogDollDolphinDomainDonateDonkeyDonorDoorDoseDoubleDoveDraftDragonDramaDrasticDrawDreamDressDriftDrillDrinkDripDriveDropDrumDryDuckDumbDuneDuringDustDutchDutyDwarfDynamicEagerEagleEarlyEarnEarthEasilyEastEasyEchoEcologyEconomyEdgeEditEducateEffortEggEightEitherElbowElderElectricElegantElementElephantElevatorEliteElseEmbarkEmbodyEmbraceEmergeEmotionEmployEmpowerEmptyEnableEnactEndEndlessEndorseEnemyEnergyEnforceEngageEngineEnhanceEnjoyEnlistEnoughEnrichEnrollEnsureEnterEntireEntryEnvelopeEpisodeEqualEquipEraEraseErodeErosionErrorEruptEscapeEssayEssenceEstateEternalEthicsEvidenceEvilEvokeEvolveExactExampleExcessExchangeExciteExcludeExcuseExecuteExerciseExhaustExhibitExileExistExitExoticExpandExpectExpireExplainExposeExpressExtendExtraEyeEyebrowFabricFaceFacultyFadeFaintFaithFallFalseFameFamilyFamousFanFancyFantasyFarmFashionFatFatalFatherFatigueFaultFavoriteFeatureFebruaryFederalFeeFeedFeelFemaleFenceFestivalFetchFeverFewFiberFictionFieldFigureFileFilmFilterFinalFindFineFingerFinishFireFirmFirstFiscalFishFitFitnessFixFlagFlameFlashFlatFlavorFleeFlightFlipFloatFlockFloorFlowerFluidFlushFlyFoamFocusFogFoilFoldFollowFoodFootForceForestForgetForkFortuneForumForwardFossilFosterFoundFoxFragileFrameFrequentFreshFriendFringeFrogFrontFrostFrownFrozenFruitFuelFunFunnyFurnaceFuryFutureGadgetGainGalaxyGalleryGameGapGarageGarbageGardenGarlicGarmentGasGaspGateGatherGaugeGazeGeneralGeniusGenreGentleGenuineGestureGhostGiantGiftGiggleGingerGiraffeGirlGiveGladGlanceGlareGlassGlideGlimpseGlobeGloomGloryGloveGlowGlueGoatGoddessGoldGoodGooseGorillaGospelGossipGovernGownGrabGraceGrainGrantGrapeGrassGravityGreatGreenGridGriefGritGroceryGroupGrowGruntGuardGuessGuideGuiltGuitarGunGymHabitHairHalfHammerHamsterHandHappyHarborHardHarshHarvestHatHaveHawkHazardHeadHealthHeartHeavyHedgehogHeightHelloHelmetHelpHenHeroHiddenHighHillHintHipHireHistoryHobbyHockeyHoldHoleHolidayHollowHomeHoneyHoodHopeHornHorrorHorseHospitalHostHotelHourHoverHubHugeHumanHumbleHumorHundredHungryHuntHurdleHurryHurtHusbandHybridIceIconIdeaIdentifyIdleIgnoreIllIllegalIllnessImageImitateImmenseImmuneImpactImposeImproveImpulseInchIncludeIncomeIncreaseIndexIndicateIndoorIndustryInfantInflictInformInhaleInheritInitialInjectInjuryInmateInnerInnocentInputInquiryInsaneInsectInsideInspireInstallIntactInterestIntoInvestInviteInvolveIronIslandIsolateIssueItemIvoryJacketJaguarJarJazzJealousJeansJellyJewelJobJoinJokeJourneyJoyJudgeJuiceJumpJungleJuniorJunkJustKangarooKeenKeepKetchupKeyKickKidKidneyKindKingdomKissKitKitchenKiteKittenKiwiKneeKnifeKnockKnowLabLabelLaborLadderLadyLakeLampLanguageLaptopLargeLaterLatinLaughLaundryLavaLawLawnLawsuitLayerLazyLeaderLeafLearnLeaveLectureLeftLegLegalLegendLeisureLemonLendLengthLensLeopardLessonLetterLevelLiarLibertyLibraryLicenseLifeLiftLightLikeLimbLimitLinkLionLiquidListLittleLiveLizardLoadLoanLobsterLocalLockLogicLonelyLongLoopLotteryLoudLoungeLoveLoyalLuckyLuggageLumberLunarLunchLuxuryLyricsMachineMadMagicMagnetMaidMailMainMajorMakeMammalManManageMandateMangoMansionManualMapleMarbleMarchMarginMarineMarketMarriageMaskMassMasterMatchMaterialMathMatrixMatterMaximumMazeMeadowMeanMeasureMeatMechanicMedalMediaMelodyMeltMemberMemoryMentionMenuMercyMergeMeritMerryMeshMessageMetalMethodMiddleMidnightMilkMillionMimicMindMinimumMinorMinuteMiracleMirrorMiseryMissMistakeMixMixedMixtureMobileModelModifyMomMomentMonitorMonkeyMonsterMonthMoonMoralMoreMorningMosquitoMotherMotionMotorMountainMouseMoveMovieMuchMuffinMuleMultiplyMuscleMuseumMushroomMusicMustMutualMyselfMysteryMythNaiveNameNapkinNarrowNastyNationNatureNearNeckNeedNegativeNeglectNeitherNephewNerveNestNetNetworkNeutralNeverNewsNextNiceNightNobleNoiseNomineeNoodleNormalNorthNoseNotableNoteNothingNoticeNovelNowNuclearNumberNurseNutOakObeyObjectObligeObscureObserveObtainObviousOccurOceanOctoberOdorOffOfferOfficeOftenOilOkayOldOliveOlympicOmitOnceOneOnionOnlineOnlyOpenOperaOpinionOpposeOptionOrangeOrbitOrchardOrderOrdinaryOrganOrientOriginalOrphanOstrichOtherOutdoorOuterOutputOutsideOvalOvenOverOwnOwnerOxygenOysterOzonePactPaddlePagePairPalacePalmPandaPanelPanicPantherPaperParadeParentParkParrotPartyPassPatchPathPatientPatrolPatternPausePavePaymentPeacePeanutPearPeasantPelicanPenPenaltyPencilPeoplePepperPerfectPermitPersonPetPhonePhotoPhrasePhysicalPianoPicnicPicturePiecePigPigeonPillPilotPinkPioneerPipePistolPitchPizzaPlacePlanetPlasticPlatePlayPleasePledgePluckPlugPlungePoemPoetPointPolarPolePolicePondPonyPoolPopularPortionPositionPossiblePostPotatoPotteryPovertyPowderPowerPracticePraisePredictPreferPreparePresentPrettyPreventPricePridePrimaryPrintPriorityPrisonPrivatePrizeProblemProcessProduceProfitProgramProjectPromoteProofPropertyProsperProtectProudProvidePublicPuddingPullPulpPulsePumpkinPunchPupilPuppyPurchasePurityPurposePursePushPutPuzzlePyramidQualityQuantumQuarterQuestionQuickQuitQuizQuoteRabbitRaccoonRaceRackRadarRadioRailRainRaiseRallyRampRanchRandomRangeRapidRareRateRatherRavenRawRazorReadyRealReasonRebelRebuildRecallReceiveRecipeRecordRecycleReduceReflectReformRefuseRegionRegretRegularRejectRelaxReleaseReliefRelyRemainRememberRemindRemoveRenderRenewRentReopenRepairRepeatReplaceReportRequireRescueResembleResistResourceResponseResultRetireRetreatReturnReunionRevealReviewRewardRhythmRibRibbonRiceRichRideRidgeRifleRightRigidRingRiotRippleRiskRitualRivalRiverRoadRoastRobotRobustRocketRomanceRoofRookieRoomRoseRotateRoughRoundRouteRoyalRubberRudeRugRuleRunRunwayRuralSadSaddleSadnessSafeSailSaladSalmonSalonSaltSaluteSameSampleSandSatisfySatoshiSauceSausageSaveSayScaleScanScareScatterSceneSchemeSchoolScienceScissorsScorpionScoutScrapScreenScriptScrubSeaSearchSeasonSeatSecondSecretSectionSecuritySeedSeekSegmentSelectSellSeminarSeniorSenseSentenceSeriesServiceSessionSettleSetupSevenShadowShaftShallowShareShedShellSheriffShieldShiftShineShipShiverShockShoeShootShopShortShoulderShoveShrimpShrugShuffleShySiblingSickSideSiegeSightSignSilentSilkSillySilverSimilarSimpleSinceSingSirenSisterSituateSixSizeSkateSketchSkiSkillSkinSkirtSkullSlabSlamSleepSlenderSliceSlideSlightSlimSloganSlotSlowSlushSmallSmartSmileSmokeSmoothSnackSnakeSnapSniffSnowSoapSoccerSocialSockSodaSoftSolarSoldierSolidSolutionSolveSomeoneSongSoonSorrySortSoulSoundSoupSourceSouthSpaceSpareSpatialSpawnSpeakSpecialSpeedSpellSpendSphereSpiceSpiderSpikeSpinSpiritSplitSpoilSponsorSpoonSportSpotSpraySpreadSpringSpySquareSqueezeSquirrelStableStadiumStaffStageStairsStampStandStartStateStaySteakSteelStemStepStereoStickStillStingStockStomachStoneStoolStoryStoveStrategyStreetStrikeStrongStruggleStudentStuffStumbleStyleSubjectSubmitSubwaySuccessSuchSuddenSufferSugarSuggestSuitSummerSunSunnySunsetSuperSupplySupremeSureSurfaceSurgeSurpriseSurroundSurveySuspectSustainSwallowSwampSwapSwarmSwearSweetSwiftSwimSwingSwitchSwordSymbolSymptomSyrupSystemTableTackleTagTailTalentTalkTankTapeTargetTaskTasteTattooTaxiTeachTeamTellTenTenantTennisTentTermTestTextThankThatThemeThenTheoryThereTheyThingThisThoughtThreeThriveThrowThumbThunderTicketTideTigerTiltTimberTimeTinyTipTiredTissueTitleToastTobaccoTodayToddlerToeTogetherToiletTokenTomatoTomorrowToneTongueTonightToolToothTopTopicToppleTorchTornadoTortoiseTossTotalTouristTowardTowerTownToyTrackTradeTrafficTragicTrainTransferTrapTrashTravelTrayTreatTreeTrendTrialTribeTrickTriggerTrimTripTrophyTroubleTruckTrueTrulyTrumpetTrustTruthTryTubeTuitionTumbleTunaTunnelTurkeyTurnTurtleTwelveTwentyTwiceTwinTwistTwoTypeTypicalUglyUmbrellaUnableUnawareUncleUncoverUnderUndoUnfairUnfoldUnhappyUniformUniqueUnitUniverseUnknownUnlockUntilUnusualUnveilUpdateUpgradeUpholdUponUpperUpsetUrbanUrgeUsageUseUsedUsefulUselessUsualUtilityVacantVacuumVagueValidValleyValveVanVanishVaporVariousVastVaultVehicleVelvetVendorVentureVenueVerbVerifyVersionVeryVesselVeteranViableVibrantViciousVictoryVideoViewVillageVintageViolinVirtualVirusVisaVisitVisualVitalVividVocalVoiceVoidVolcanoVolumeVoteVoyageWageWagonWaitWalkWallWalnutWantWarfareWarmWarriorWashWaspWasteWaterWaveWayWealthWeaponWearWeaselWeatherWebWeddingWeekendWeirdWelcomeWestWetWhaleWhatWheatWheelWhenWhereWhipWhisperWideWidthWifeWildWillWinWindowWineWingWinkWinnerWinterWireWisdomWiseWishWitnessWolfWomanWonderWoodWoolWordWorkWorldWorryWorthWrapWreckWrestleWristWriteWrongYardYearYellowYouYoungYouthZebraZeroZoneZoo";let il=null;function ol(e){if(null==il&&(il=nl.replace(/([A-Z])/g," $1").toLowerCase().substring(1).split(" "),"0x3c8acc1e7b08d8e76f9fda015ef48dc8c710a73cb7e0f77b2c18a9b5a7adde60"!==rl.check(e)))throw il=null,new Error("BIP39 Wordlist for en (English) FAILED")}const sl=new class extends rl{constructor(){super("en")}getWord(e){return ol(this),il[e]}getWordIndex(e){return ol(this),il.indexOf(e)}};rl.register(sl);const al={en:sl},ul=new Pr("hdnode/5.8.0"),ll=$r.from("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),cl=ni("Bitcoin seed"),dl=2147483648;function hl(e){return(1<<e)-1<<8-e}function pl(e){return Vr(Ur(e),32)}function fl(e){return qn.encode(Br([e,jr(Hs(Hs(e)),0,4)]))}function ml(e){if(null==e)return al.en;if("string"==typeof e){const t=al[e];return null==t&&ul.throwArgumentError("unknown locale","wordlist",e),t}return e}const yl={},gl="m/44'/60'/0'/0/0";class bl{constructor(e,t,r,n,i,o,s,a){if(e!==yl)throw new Error("HDNode constructor cannot be called directly");if(t){const e=new qa(t);An(this,"privateKey",e.privateKey),An(this,"publicKey",e.compressedPublicKey)}else An(this,"privateKey",null),An(this,"publicKey",Ur(r));var u;An(this,"parentFingerprint",n),An(this,"fingerprint",jr((u=Hs(this.publicKey),"0x"+Gs.ripemd160().update(Or(u)).digest("hex")),0,4)),An(this,"address",Xa(this.publicKey)),An(this,"chainCode",i),An(this,"index",o),An(this,"depth",s),null==a?(An(this,"mnemonic",null),An(this,"path",null)):"string"==typeof a?(An(this,"mnemonic",null),An(this,"path",a)):(An(this,"mnemonic",a),An(this,"path",a.path))}get extendedKey(){if(this.depth>=256)throw new Error("Depth too large!");return fl(Br([null!=this.privateKey?"0x0488ADE4":"0x0488B21E",Ur(this.depth),this.parentFingerprint,Vr(Ur(this.index),4),this.chainCode,null!=this.privateKey?Br(["0x00",this.privateKey]):this.publicKey]))}neuter(){return new bl(yl,null,this.publicKey,this.parentFingerprint,this.chainCode,this.index,this.depth,this.path)}_derive(e){if(e>4294967295)throw new Error("invalid index - "+String(e));let t=this.path;t&&(t+="/"+(2147483647&e));const r=new Uint8Array(37);if(e&dl){if(!this.privateKey)throw new Error("cannot derive child of neutered node");r.set(Or(this.privateKey),1),t&&(t+="'")}else r.set(Or(this.publicKey));for(let t=24;t>=0;t-=8)r[33+(t>>3)]=e>>24-t&255;const n=Or(qs(Fs.sha512,this.chainCode,r)),i=n.slice(0,32),o=n.slice(32);let s=null,a=null;this.privateKey?s=pl($r.from(i).add(this.privateKey).mod(ll)):a=new qa(Ur(i))._addPoint(this.publicKey);let u=t;const l=this.mnemonic;return l&&(u=Object.freeze({phrase:l.phrase,path:t,locale:l.locale||"en"})),new bl(yl,s,a,this.fingerprint,pl(o),e,this.depth+1,u)}derivePath(e){const t=e.split("/");if(0===t.length||"m"===t[0]&&0!==this.depth)throw new Error("invalid path - "+e);"m"===t[0]&&t.shift();let r=this;for(let e=0;e<t.length;e++){const n=t[e];if(n.match(/^[0-9]+'$/)){const e=parseInt(n.substring(0,n.length-1));if(e>=dl)throw new Error("invalid path index - "+n);r=r._derive(dl+e)}else{if(!n.match(/^[0-9]+$/))throw new Error("invalid path component - "+n);{const e=parseInt(n);if(e>=dl)throw new Error("invalid path index - "+n);r=r._derive(e)}}}return r}static _fromSeed(e,t){const r=Or(e);if(r.length<16||r.length>64)throw new Error("invalid seed");const n=Or(qs(Fs.sha512,cl,r));return new bl(yl,pl(n.slice(0,32)),null,"0x00000000",pl(n.slice(32)),0,0,t)}static fromMnemonic(e,t,r){return e=Al(vl(e,r=ml(r)),r),bl._fromSeed(function(e,t){t||(t="");const r=ni("mnemonic"+t,Zn.NFKD);return el(ni(e,Zn.NFKD),r,2048,64,"sha512")}(e,t),{phrase:e,path:"m",locale:r.locale})}static fromSeed(e){return bl._fromSeed(e,null)}static fromExtendedKey(e){const t=qn.decode(e);82===t.length&&fl(t.slice(0,78))===e||ul.throwArgumentError("invalid extended key","extendedKey","[REDACTED]");const r=t[4],n=Ur(t.slice(5,9)),i=parseInt(Ur(t.slice(9,13)).substring(2),16),o=Ur(t.slice(13,45)),s=t.slice(45,78);switch(Ur(t.slice(0,4))){case"0x0488b21e":case"0x043587cf":return new bl(yl,null,Ur(s),n,o,i,r,null);case"0x0488ade4":case"0x04358394 ":if(0!==s[0])break;return new bl(yl,Ur(s.slice(1)),null,n,o,i,r,null)}return ul.throwArgumentError("invalid extended key","extendedKey","[REDACTED]")}}function vl(e,t){t=ml(t),ul.checkNormalize();const r=t.split(e);if(r.length%3!=0)throw new Error("invalid mnemonic");const n=Or(new Uint8Array(Math.ceil(11*r.length/8)));let i=0;for(let e=0;e<r.length;e++){let o=t.getWordIndex(r[e].normalize("NFKD"));if(-1===o)throw new Error("invalid mnemonic");for(let e=0;e<11;e++)o&1<<10-e&&(n[i>>3]|=1<<7-i%8),i++}const o=32*r.length/3,s=hl(r.length/3);if((Or(Hs(n.slice(0,o/8)))[0]&s)!=(n[n.length-1]&s))throw new Error("invalid checksum");return Ur(n.slice(0,o/8))}function Al(e,t){if(t=ml(t),(e=Or(e)).length%4!=0||e.length<16||e.length>32)throw new Error("invalid entropy");const r=[0];let n=11;for(let t=0;t<e.length;t++)n>8?(r[r.length-1]<<=8,r[r.length-1]|=e[t],n-=8):(r[r.length-1]<<=n,r[r.length-1]|=e[t]>>8-n,r.push(e[t]&(1<<8-n)-1),n+=3);const i=e.length/4,o=Or(Hs(e))[0]&hl(i);return r[r.length-1]<<=i,r[r.length-1]|=o>>8-i,t.join(r.map(e=>t.getWord(e)))}var wl=mr(function(e,t){!function(t){function r(e){return parseInt(e)===e}function n(e){if(!r(e.length))return!1;for(var t=0;t<e.length;t++)if(!r(e[t])||e[t]<0||e[t]>255)return!1;return!0}function i(e,t){if(e.buffer&&ArrayBuffer.isView(e)&&"Uint8Array"===e.name)return t&&(e=e.slice?e.slice():Array.prototype.slice.call(e)),e;if(Array.isArray(e)){if(!n(e))throw new Error("Array contains invalid value: "+e);return new Uint8Array(e)}if(r(e.length)&&n(e))return new Uint8Array(e);throw new Error("unsupported array-like object")}function o(e){return new Uint8Array(e)}function s(e,t,r,n,i){null==n&&null==i||(e=e.slice?e.slice(n,i):Array.prototype.slice.call(e,n,i)),t.set(e,r)}var a,u={toBytes:function(e){var t=[],r=0;for(e=encodeURI(e);r<e.length;){var n=e.charCodeAt(r++);37===n?(t.push(parseInt(e.substr(r,2),16)),r+=2):t.push(n)}return i(t)},fromBytes:function(e){for(var t=[],r=0;r<e.length;){var n=e[r];n<128?(t.push(String.fromCharCode(n)),r++):n>191&&n<224?(t.push(String.fromCharCode((31&n)<<6|63&e[r+1])),r+=2):(t.push(String.fromCharCode((15&n)<<12|(63&e[r+1])<<6|63&e[r+2])),r+=3)}return t.join("")}},l=(a="0123456789abcdef",{toBytes:function(e){for(var t=[],r=0;r<e.length;r+=2)t.push(parseInt(e.substr(r,2),16));return t},fromBytes:function(e){for(var t=[],r=0;r<e.length;r++){var n=e[r];t.push(a[(240&n)>>4]+a[15&n])}return t.join("")}}),c={16:10,24:12,32:14},d=[1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145],h=[99,124,119,123,242,107,111,197,48,1,103,43,254,215,171,118,202,130,201,125,250,89,71,240,173,212,162,175,156,164,114,192,183,253,147,38,54,63,247,204,52,165,229,241,113,216,49,21,4,199,35,195,24,150,5,154,7,18,128,226,235,39,178,117,9,131,44,26,27,110,90,160,82,59,214,179,41,227,47,132,83,209,0,237,32,252,177,91,106,203,190,57,74,76,88,207,208,239,170,251,67,77,51,133,69,249,2,127,80,60,159,168,81,163,64,143,146,157,56,245,188,182,218,33,16,255,243,210,205,12,19,236,95,151,68,23,196,167,126,61,100,93,25,115,96,129,79,220,34,42,144,136,70,238,184,20,222,94,11,219,224,50,58,10,73,6,36,92,194,211,172,98,145,149,228,121,231,200,55,109,141,213,78,169,108,86,244,234,101,122,174,8,186,120,37,46,28,166,180,198,232,221,116,31,75,189,139,138,112,62,181,102,72,3,246,14,97,53,87,185,134,193,29,158,225,248,152,17,105,217,142,148,155,30,135,233,206,85,40,223,140,161,137,13,191,230,66,104,65,153,45,15,176,84,187,22],p=[82,9,106,213,48,54,165,56,191,64,163,158,129,243,215,251,124,227,57,130,155,47,255,135,52,142,67,68,196,222,233,203,84,123,148,50,166,194,35,61,238,76,149,11,66,250,195,78,8,46,161,102,40,217,36,178,118,91,162,73,109,139,209,37,114,248,246,100,134,104,152,22,212,164,92,204,93,101,182,146,108,112,72,80,253,237,185,218,94,21,70,87,167,141,157,132,144,216,171,0,140,188,211,10,247,228,88,5,184,179,69,6,208,44,30,143,202,63,15,2,193,175,189,3,1,19,138,107,58,145,17,65,79,103,220,234,151,242,207,206,240,180,230,115,150,172,116,34,231,173,53,133,226,249,55,232,28,117,223,110,71,241,26,113,29,41,197,137,111,183,98,14,170,24,190,27,252,86,62,75,198,210,121,32,154,219,192,254,120,205,90,244,31,221,168,51,136,7,199,49,177,18,16,89,39,128,236,95,96,81,127,169,25,181,74,13,45,229,122,159,147,201,156,239,160,224,59,77,174,42,245,176,200,235,187,60,131,83,153,97,23,43,4,126,186,119,214,38,225,105,20,99,85,33,12,125],f=[3328402341,4168907908,4000806809,4135287693,4294111757,3597364157,3731845041,2445657428,1613770832,33620227,3462883241,1445669757,3892248089,3050821474,1303096294,3967186586,2412431941,528646813,2311702848,4202528135,4026202645,2992200171,2387036105,4226871307,1101901292,3017069671,1604494077,1169141738,597466303,1403299063,3832705686,2613100635,1974974402,3791519004,1033081774,1277568618,1815492186,2118074177,4126668546,2211236943,1748251740,1369810420,3521504564,4193382664,3799085459,2883115123,1647391059,706024767,134480908,2512897874,1176707941,2646852446,806885416,932615841,168101135,798661301,235341577,605164086,461406363,3756188221,3454790438,1311188841,2142417613,3933566367,302582043,495158174,1479289972,874125870,907746093,3698224818,3025820398,1537253627,2756858614,1983593293,3084310113,2108928974,1378429307,3722699582,1580150641,327451799,2790478837,3117535592,0,3253595436,1075847264,3825007647,2041688520,3059440621,3563743934,2378943302,1740553945,1916352843,2487896798,2555137236,2958579944,2244988746,3151024235,3320835882,1336584933,3992714006,2252555205,2588757463,1714631509,293963156,2319795663,3925473552,67240454,4269768577,2689618160,2017213508,631218106,1269344483,2723238387,1571005438,2151694528,93294474,1066570413,563977660,1882732616,4059428100,1673313503,2008463041,2950355573,1109467491,537923632,3858759450,4260623118,3218264685,2177748300,403442708,638784309,3287084079,3193921505,899127202,2286175436,773265209,2479146071,1437050866,4236148354,2050833735,3362022572,3126681063,840505643,3866325909,3227541664,427917720,2655997905,2749160575,1143087718,1412049534,999329963,193497219,2353415882,3354324521,1807268051,672404540,2816401017,3160301282,369822493,2916866934,3688947771,1681011286,1949973070,336202270,2454276571,201721354,1210328172,3093060836,2680341085,3184776046,1135389935,3294782118,965841320,831886756,3554993207,4068047243,3588745010,2345191491,1849112409,3664604599,26054028,2983581028,2622377682,1235855840,3630984372,2891339514,4092916743,3488279077,3395642799,4101667470,1202630377,268961816,1874508501,4034427016,1243948399,1546530418,941366308,1470539505,1941222599,2546386513,3421038627,2715671932,3899946140,1042226977,2521517021,1639824860,227249030,260737669,3765465232,2084453954,1907733956,3429263018,2420656344,100860677,4160157185,470683154,3261161891,1781871967,2924959737,1773779408,394692241,2579611992,974986535,664706745,3655459128,3958962195,731420851,571543859,3530123707,2849626480,126783113,865375399,765172662,1008606754,361203602,3387549984,2278477385,2857719295,1344809080,2782912378,59542671,1503764984,160008576,437062935,1707065306,3622233649,2218934982,3496503480,2185314755,697932208,1512910199,504303377,2075177163,2824099068,1841019862,739644986],m=[2781242211,2230877308,2582542199,2381740923,234877682,3184946027,2984144751,1418839493,1348481072,50462977,2848876391,2102799147,434634494,1656084439,3863849899,2599188086,1167051466,2636087938,1082771913,2281340285,368048890,3954334041,3381544775,201060592,3963727277,1739838676,4250903202,3930435503,3206782108,4149453988,2531553906,1536934080,3262494647,484572669,2923271059,1783375398,1517041206,1098792767,49674231,1334037708,1550332980,4098991525,886171109,150598129,2481090929,1940642008,1398944049,1059722517,201851908,1385547719,1699095331,1587397571,674240536,2704774806,252314885,3039795866,151914247,908333586,2602270848,1038082786,651029483,1766729511,3447698098,2682942837,454166793,2652734339,1951935532,775166490,758520603,3000790638,4004797018,4217086112,4137964114,1299594043,1639438038,3464344499,2068982057,1054729187,1901997871,2534638724,4121318227,1757008337,0,750906861,1614815264,535035132,3363418545,3988151131,3201591914,1183697867,3647454910,1265776953,3734260298,3566750796,3903871064,1250283471,1807470800,717615087,3847203498,384695291,3313910595,3617213773,1432761139,2484176261,3481945413,283769337,100925954,2180939647,4037038160,1148730428,3123027871,3813386408,4087501137,4267549603,3229630528,2315620239,2906624658,3156319645,1215313976,82966005,3747855548,3245848246,1974459098,1665278241,807407632,451280895,251524083,1841287890,1283575245,337120268,891687699,801369324,3787349855,2721421207,3431482436,959321879,1469301956,4065699751,2197585534,1199193405,2898814052,3887750493,724703513,2514908019,2696962144,2551808385,3516813135,2141445340,1715741218,2119445034,2872807568,2198571144,3398190662,700968686,3547052216,1009259540,2041044702,3803995742,487983883,1991105499,1004265696,1449407026,1316239930,504629770,3683797321,168560134,1816667172,3837287516,1570751170,1857934291,4014189740,2797888098,2822345105,2754712981,936633572,2347923833,852879335,1133234376,1500395319,3084545389,2348912013,1689376213,3533459022,3762923945,3034082412,4205598294,133428468,634383082,2949277029,2398386810,3913789102,403703816,3580869306,2297460856,1867130149,1918643758,607656988,4049053350,3346248884,1368901318,600565992,2090982877,2632479860,557719327,3717614411,3697393085,2249034635,2232388234,2430627952,1115438654,3295786421,2865522278,3633334344,84280067,33027830,303828494,2747425121,1600795957,4188952407,3496589753,2434238086,1486471617,658119965,3106381470,953803233,334231800,3005978776,857870609,3151128937,1890179545,2298973838,2805175444,3056442267,574365214,2450884487,550103529,1233637070,4289353045,2018519080,2057691103,2399374476,4166623649,2148108681,387583245,3664101311,836232934,3330556482,3100665960,3280093505,2955516313,2002398509,287182607,3413881008,4238890068,3597515707,975967766],y=[1671808611,2089089148,2006576759,2072901243,4061003762,1807603307,1873927791,3310653893,810573872,16974337,1739181671,729634347,4263110654,3613570519,2883997099,1989864566,3393556426,2191335298,3376449993,2106063485,4195741690,1508618841,1204391495,4027317232,2917941677,3563566036,2734514082,2951366063,2629772188,2767672228,1922491506,3227229120,3082974647,4246528509,2477669779,644500518,911895606,1061256767,4144166391,3427763148,878471220,2784252325,3845444069,4043897329,1905517169,3631459288,827548209,356461077,67897348,3344078279,593839651,3277757891,405286936,2527147926,84871685,2595565466,118033927,305538066,2157648768,3795705826,3945188843,661212711,2999812018,1973414517,152769033,2208177539,745822252,439235610,455947803,1857215598,1525593178,2700827552,1391895634,994932283,3596728278,3016654259,695947817,3812548067,795958831,2224493444,1408607827,3513301457,0,3979133421,543178784,4229948412,2982705585,1542305371,1790891114,3410398667,3201918910,961245753,1256100938,1289001036,1491644504,3477767631,3496721360,4012557807,2867154858,4212583931,1137018435,1305975373,861234739,2241073541,1171229253,4178635257,33948674,2139225727,1357946960,1011120188,2679776671,2833468328,1374921297,2751356323,1086357568,2408187279,2460827538,2646352285,944271416,4110742005,3168756668,3066132406,3665145818,560153121,271589392,4279952895,4077846003,3530407890,3444343245,202643468,322250259,3962553324,1608629855,2543990167,1154254916,389623319,3294073796,2817676711,2122513534,1028094525,1689045092,1575467613,422261273,1939203699,1621147744,2174228865,1339137615,3699352540,577127458,712922154,2427141008,2290289544,1187679302,3995715566,3100863416,339486740,3732514782,1591917662,186455563,3681988059,3762019296,844522546,978220090,169743370,1239126601,101321734,611076132,1558493276,3260915650,3547250131,2901361580,1655096418,2443721105,2510565781,3828863972,2039214713,3878868455,3359869896,928607799,1840765549,2374762893,3580146133,1322425422,2850048425,1823791212,1459268694,4094161908,3928346602,1706019429,2056189050,2934523822,135794696,3134549946,2022240376,628050469,779246638,472135708,2800834470,3032970164,3327236038,3894660072,3715932637,1956440180,522272287,1272813131,3185336765,2340818315,2323976074,1888542832,1044544574,3049550261,1722469478,1222152264,50660867,4127324150,236067854,1638122081,895445557,1475980887,3117443513,2257655686,3243809217,489110045,2662934430,3778599393,4162055160,2561878936,288563729,1773916777,3648039385,2391345038,2493985684,2612407707,505560094,2274497927,3911240169,3460925390,1442818645,678973480,3749357023,2358182796,2717407649,2306869641,219617805,3218761151,3862026214,1120306242,1756942440,1103331905,2578459033,762796589,252780047,2966125488,1425844308,3151392187,372911126],g=[1667474886,2088535288,2004326894,2071694838,4075949567,1802223062,1869591006,3318043793,808472672,16843522,1734846926,724270422,4278065639,3621216949,2880169549,1987484396,3402253711,2189597983,3385409673,2105378810,4210693615,1499065266,1195886990,4042263547,2913856577,3570689971,2728590687,2947541573,2627518243,2762274643,1920112356,3233831835,3082273397,4261223649,2475929149,640051788,909531756,1061110142,4160160501,3435941763,875846760,2779116625,3857003729,4059105529,1903268834,3638064043,825316194,353713962,67374088,3351728789,589522246,3284360861,404236336,2526454071,84217610,2593830191,117901582,303183396,2155911963,3806477791,3958056653,656894286,2998062463,1970642922,151591698,2206440989,741110872,437923380,454765878,1852748508,1515908788,2694904667,1381168804,993742198,3604373943,3014905469,690584402,3823320797,791638366,2223281939,1398011302,3520161977,0,3991743681,538992704,4244381667,2981218425,1532751286,1785380564,3419096717,3200178535,960056178,1246420628,1280103576,1482221744,3486468741,3503319995,4025428677,2863326543,4227536621,1128514950,1296947098,859002214,2240123921,1162203018,4193849577,33687044,2139062782,1347481760,1010582648,2678045221,2829640523,1364325282,2745433693,1077985408,2408548869,2459086143,2644360225,943212656,4126475505,3166494563,3065430391,3671750063,555836226,269496352,4294908645,4092792573,3537006015,3452783745,202118168,320025894,3974901699,1600119230,2543297077,1145359496,387397934,3301201811,2812801621,2122220284,1027426170,1684319432,1566435258,421079858,1936954854,1616945344,2172753945,1330631070,3705438115,572679748,707427924,2425400123,2290647819,1179044492,4008585671,3099120491,336870440,3739122087,1583276732,185277718,3688593069,3772791771,842159716,976899700,168435220,1229577106,101059084,606366792,1549591736,3267517855,3553849021,2897014595,1650632388,2442242105,2509612081,3840161747,2038008818,3890688725,3368567691,926374254,1835907034,2374863873,3587531953,1313788572,2846482505,1819063512,1448540844,4109633523,3941213647,1701162954,2054852340,2930698567,134748176,3132806511,2021165296,623210314,774795868,471606328,2795958615,3031746419,3334885783,3907527627,3722280097,1953799400,522133822,1263263126,3183336545,2341176845,2324333839,1886425312,1044267644,3048588401,1718004428,1212733584,50529542,4143317495,235803164,1633788866,892690282,1465383342,3115962473,2256965911,3250673817,488449850,2661202215,3789633753,4177007595,2560144171,286339874,1768537042,3654906025,2391705863,2492770099,2610673197,505291324,2273808917,3924369609,3469625735,1431699370,673740880,3755965093,2358021891,2711746649,2307489801,218961690,3217021541,3873845719,1111672452,1751693520,1094828930,2576986153,757954394,252645662,2964376443,1414855848,3149649517,370555436],b=[1374988112,2118214995,437757123,975658646,1001089995,530400753,2902087851,1273168787,540080725,2910219766,2295101073,4110568485,1340463100,3307916247,641025152,3043140495,3736164937,632953703,1172967064,1576976609,3274667266,2169303058,2370213795,1809054150,59727847,361929877,3211623147,2505202138,3569255213,1484005843,1239443753,2395588676,1975683434,4102977912,2572697195,666464733,3202437046,4035489047,3374361702,2110667444,1675577880,3843699074,2538681184,1649639237,2976151520,3144396420,4269907996,4178062228,1883793496,2403728665,2497604743,1383856311,2876494627,1917518562,3810496343,1716890410,3001755655,800440835,2261089178,3543599269,807962610,599762354,33778362,3977675356,2328828971,2809771154,4077384432,1315562145,1708848333,101039829,3509871135,3299278474,875451293,2733856160,92987698,2767645557,193195065,1080094634,1584504582,3178106961,1042385657,2531067453,3711829422,1306967366,2438237621,1908694277,67556463,1615861247,429456164,3602770327,2302690252,1742315127,2968011453,126454664,3877198648,2043211483,2709260871,2084704233,4169408201,0,159417987,841739592,504459436,1817866830,4245618683,260388950,1034867998,908933415,168810852,1750902305,2606453969,607530554,202008497,2472011535,3035535058,463180190,2160117071,1641816226,1517767529,470948374,3801332234,3231722213,1008918595,303765277,235474187,4069246893,766945465,337553864,1475418501,2943682380,4003061179,2743034109,4144047775,1551037884,1147550661,1543208500,2336434550,3408119516,3069049960,3102011747,3610369226,1113818384,328671808,2227573024,2236228733,3535486456,2935566865,3341394285,496906059,3702665459,226906860,2009195472,733156972,2842737049,294930682,1206477858,2835123396,2700099354,1451044056,573804783,2269728455,3644379585,2362090238,2564033334,2801107407,2776292904,3669462566,1068351396,742039012,1350078989,1784663195,1417561698,4136440770,2430122216,775550814,2193862645,2673705150,1775276924,1876241833,3475313331,3366754619,270040487,3902563182,3678124923,3441850377,1851332852,3969562369,2203032232,3868552805,2868897406,566021896,4011190502,3135740889,1248802510,3936291284,699432150,832877231,708780849,3332740144,899835584,1951317047,4236429990,3767586992,866637845,4043610186,1106041591,2144161806,395441711,1984812685,1139781709,3433712980,3835036895,2664543715,1282050075,3240894392,1181045119,2640243204,25965917,4203181171,4211818798,3009879386,2463879762,3910161971,1842759443,2597806476,933301370,1509430414,3943906441,3467192302,3076639029,3776767469,2051518780,2631065433,1441952575,404016761,1942435775,1408749034,1610459739,3745345300,2017778566,3400528769,3110650942,941896748,3265478751,371049330,3168937228,675039627,4279080257,967311729,135050206,3635733660,1683407248,2076935265,3576870512,1215061108,3501741890],v=[1347548327,1400783205,3273267108,2520393566,3409685355,4045380933,2880240216,2471224067,1428173050,4138563181,2441661558,636813900,4233094615,3620022987,2149987652,2411029155,1239331162,1730525723,2554718734,3781033664,46346101,310463728,2743944855,3328955385,3875770207,2501218972,3955191162,3667219033,768917123,3545789473,692707433,1150208456,1786102409,2029293177,1805211710,3710368113,3065962831,401639597,1724457132,3028143674,409198410,2196052529,1620529459,1164071807,3769721975,2226875310,486441376,2499348523,1483753576,428819965,2274680428,3075636216,598438867,3799141122,1474502543,711349675,129166120,53458370,2592523643,2782082824,4063242375,2988687269,3120694122,1559041666,730517276,2460449204,4042459122,2706270690,3446004468,3573941694,533804130,2328143614,2637442643,2695033685,839224033,1973745387,957055980,2856345839,106852767,1371368976,4181598602,1033297158,2933734917,1179510461,3046200461,91341917,1862534868,4284502037,605657339,2547432937,3431546947,2003294622,3182487618,2282195339,954669403,3682191598,1201765386,3917234703,3388507166,0,2198438022,1211247597,2887651696,1315723890,4227665663,1443857720,507358933,657861945,1678381017,560487590,3516619604,975451694,2970356327,261314535,3535072918,2652609425,1333838021,2724322336,1767536459,370938394,182621114,3854606378,1128014560,487725847,185469197,2918353863,3106780840,3356761769,2237133081,1286567175,3152976349,4255350624,2683765030,3160175349,3309594171,878443390,1988838185,3704300486,1756818940,1673061617,3403100636,272786309,1075025698,545572369,2105887268,4174560061,296679730,1841768865,1260232239,4091327024,3960309330,3497509347,1814803222,2578018489,4195456072,575138148,3299409036,446754879,3629546796,4011996048,3347532110,3252238545,4270639778,915985419,3483825537,681933534,651868046,2755636671,3828103837,223377554,2607439820,1649704518,3270937875,3901806776,1580087799,4118987695,3198115200,2087309459,2842678573,3016697106,1003007129,2802849917,1860738147,2077965243,164439672,4100872472,32283319,2827177882,1709610350,2125135846,136428751,3874428392,3652904859,3460984630,3572145929,3593056380,2939266226,824852259,818324884,3224740454,930369212,2801566410,2967507152,355706840,1257309336,4148292826,243256656,790073846,2373340630,1296297904,1422699085,3756299780,3818836405,457992840,3099667487,2135319889,77422314,1560382517,1945798516,788204353,1521706781,1385356242,870912086,325965383,2358957921,2050466060,2388260884,2313884476,4006521127,901210569,3990953189,1014646705,1503449823,1062597235,2031621326,3212035895,3931371469,1533017514,350174575,2256028891,2177544179,1052338372,741876788,1606591296,1914052035,213705253,2334669897,1107234197,1899603969,3725069491,2631447780,2422494913,1635502980,1893020342,1950903388,1120974935],A=[2807058932,1699970625,2764249623,1586903591,1808481195,1173430173,1487645946,59984867,4199882800,1844882806,1989249228,1277555970,3623636965,3419915562,1149249077,2744104290,1514790577,459744698,244860394,3235995134,1963115311,4027744588,2544078150,4190530515,1608975247,2627016082,2062270317,1507497298,2200818878,567498868,1764313568,3359936201,2305455554,2037970062,1047239e3,1910319033,1337376481,2904027272,2892417312,984907214,1243112415,830661914,861968209,2135253587,2011214180,2927934315,2686254721,731183368,1750626376,4246310725,1820824798,4172763771,3542330227,48394827,2404901663,2871682645,671593195,3254988725,2073724613,145085239,2280796200,2779915199,1790575107,2187128086,472615631,3029510009,4075877127,3802222185,4107101658,3201631749,1646252340,4270507174,1402811438,1436590835,3778151818,3950355702,3963161475,4020912224,2667994737,273792366,2331590177,104699613,95345982,3175501286,2377486676,1560637892,3564045318,369057872,4213447064,3919042237,1137477952,2658625497,1119727848,2340947849,1530455833,4007360968,172466556,266959938,516552836,0,2256734592,3980931627,1890328081,1917742170,4294704398,945164165,3575528878,958871085,3647212047,2787207260,1423022939,775562294,1739656202,3876557655,2530391278,2443058075,3310321856,547512796,1265195639,437656594,3121275539,719700128,3762502690,387781147,218828297,3350065803,2830708150,2848461854,428169201,122466165,3720081049,1627235199,648017665,4122762354,1002783846,2117360635,695634755,3336358691,4234721005,4049844452,3704280881,2232435299,574624663,287343814,612205898,1039717051,840019705,2708326185,793451934,821288114,1391201670,3822090177,376187827,3113855344,1224348052,1679968233,2361698556,1058709744,752375421,2431590963,1321699145,3519142200,2734591178,188127444,2177869557,3727205754,2384911031,3215212461,2648976442,2450346104,3432737375,1180849278,331544205,3102249176,4150144569,2952102595,2159976285,2474404304,766078933,313773861,2570832044,2108100632,1668212892,3145456443,2013908262,418672217,3070356634,2594734927,1852171925,3867060991,3473416636,3907448597,2614737639,919489135,164948639,2094410160,2997825956,590424639,2486224549,1723872674,3157750862,3399941250,3501252752,3625268135,2555048196,3673637356,1343127501,4130281361,3599595085,2957853679,1297403050,81781910,3051593425,2283490410,532201772,1367295589,3926170974,895287692,1953757831,1093597963,492483431,3528626907,1446242576,1192455638,1636604631,209336225,344873464,1015671571,669961897,3375740769,3857572124,2973530695,3747192018,1933530610,3464042516,935293895,3454686199,2858115069,1863638845,3683022916,4085369519,3292445032,875313188,1080017571,3279033885,621591778,1233856572,2504130317,24197544,3017672716,3835484340,3247465558,2220981195,3060847922,1551124588,1463996600],w=[4104605777,1097159550,396673818,660510266,2875968315,2638606623,4200115116,3808662347,821712160,1986918061,3430322568,38544885,3856137295,718002117,893681702,1654886325,2975484382,3122358053,3926825029,4274053469,796197571,1290801793,1184342925,3556361835,2405426947,2459735317,1836772287,1381620373,3196267988,1948373848,3764988233,3385345166,3263785589,2390325492,1480485785,3111247143,3780097726,2293045232,548169417,3459953789,3746175075,439452389,1362321559,1400849762,1685577905,1806599355,2174754046,137073913,1214797936,1174215055,3731654548,2079897426,1943217067,1258480242,529487843,1437280870,3945269170,3049390895,3313212038,923313619,679998e3,3215307299,57326082,377642221,3474729866,2041877159,133361907,1776460110,3673476453,96392454,878845905,2801699524,777231668,4082475170,2330014213,4142626212,2213296395,1626319424,1906247262,1846563261,562755902,3708173718,1040559837,3871163981,1418573201,3294430577,114585348,1343618912,2566595609,3186202582,1078185097,3651041127,3896688048,2307622919,425408743,3371096953,2081048481,1108339068,2216610296,0,2156299017,736970802,292596766,1517440620,251657213,2235061775,2933202493,758720310,265905162,1554391400,1532285339,908999204,174567692,1474760595,4002861748,2610011675,3234156416,3693126241,2001430874,303699484,2478443234,2687165888,585122620,454499602,151849742,2345119218,3064510765,514443284,4044981591,1963412655,2581445614,2137062819,19308535,1928707164,1715193156,4219352155,1126790795,600235211,3992742070,3841024952,836553431,1669664834,2535604243,3323011204,1243905413,3141400786,4180808110,698445255,2653899549,2989552604,2253581325,3252932727,3004591147,1891211689,2487810577,3915653703,4237083816,4030667424,2100090966,865136418,1229899655,953270745,3399679628,3557504664,4118925222,2061379749,3079546586,2915017791,983426092,2022837584,1607244650,2118541908,2366882550,3635996816,972512814,3283088770,1568718495,3499326569,3576539503,621982671,2895723464,410887952,2623762152,1002142683,645401037,1494807662,2595684844,1335535747,2507040230,4293295786,3167684641,367585007,3885750714,1865862730,2668221674,2960971305,2763173681,1059270954,2777952454,2724642869,1320957812,2194319100,2429595872,2815956275,77089521,3973773121,3444575871,2448830231,1305906550,4021308739,2857194700,2516901860,3518358430,1787304780,740276417,1699839814,1592394909,2352307457,2272556026,188821243,1729977011,3687994002,274084841,3594982253,3613494426,2701949495,4162096729,322734571,2837966542,1640576439,484830689,1202797690,3537852828,4067639125,349075736,3342319475,4157467219,4255800159,1030690015,1155237496,2951971274,1757691577,607398968,2738905026,499347990,3794078908,1011452712,227885567,2818666809,213114376,3034881240,1455525988,3414450555,850817237,1817998408,3092726480],T=[0,235474187,470948374,303765277,941896748,908933415,607530554,708780849,1883793496,2118214995,1817866830,1649639237,1215061108,1181045119,1417561698,1517767529,3767586992,4003061179,4236429990,4069246893,3635733660,3602770327,3299278474,3400528769,2430122216,2664543715,2362090238,2193862645,2835123396,2801107407,3035535058,3135740889,3678124923,3576870512,3341394285,3374361702,3810496343,3977675356,4279080257,4043610186,2876494627,2776292904,3076639029,3110650942,2472011535,2640243204,2403728665,2169303058,1001089995,899835584,666464733,699432150,59727847,226906860,530400753,294930682,1273168787,1172967064,1475418501,1509430414,1942435775,2110667444,1876241833,1641816226,2910219766,2743034109,2976151520,3211623147,2505202138,2606453969,2302690252,2269728455,3711829422,3543599269,3240894392,3475313331,3843699074,3943906441,4178062228,4144047775,1306967366,1139781709,1374988112,1610459739,1975683434,2076935265,1775276924,1742315127,1034867998,866637845,566021896,800440835,92987698,193195065,429456164,395441711,1984812685,2017778566,1784663195,1683407248,1315562145,1080094634,1383856311,1551037884,101039829,135050206,437757123,337553864,1042385657,807962610,573804783,742039012,2531067453,2564033334,2328828971,2227573024,2935566865,2700099354,3001755655,3168937228,3868552805,3902563182,4203181171,4102977912,3736164937,3501741890,3265478751,3433712980,1106041591,1340463100,1576976609,1408749034,2043211483,2009195472,1708848333,1809054150,832877231,1068351396,766945465,599762354,159417987,126454664,361929877,463180190,2709260871,2943682380,3178106961,3009879386,2572697195,2538681184,2236228733,2336434550,3509871135,3745345300,3441850377,3274667266,3910161971,3877198648,4110568485,4211818798,2597806476,2497604743,2261089178,2295101073,2733856160,2902087851,3202437046,2968011453,3936291284,3835036895,4136440770,4169408201,3535486456,3702665459,3467192302,3231722213,2051518780,1951317047,1716890410,1750902305,1113818384,1282050075,1584504582,1350078989,168810852,67556463,371049330,404016761,841739592,1008918595,775550814,540080725,3969562369,3801332234,4035489047,4269907996,3569255213,3669462566,3366754619,3332740144,2631065433,2463879762,2160117071,2395588676,2767645557,2868897406,3102011747,3069049960,202008497,33778362,270040487,504459436,875451293,975658646,675039627,641025152,2084704233,1917518562,1615861247,1851332852,1147550661,1248802510,1484005843,1451044056,933301370,967311729,733156972,632953703,260388950,25965917,328671808,496906059,1206477858,1239443753,1543208500,1441952575,2144161806,1908694277,1675577880,1842759443,3610369226,3644379585,3408119516,3307916247,4011190502,3776767469,4077384432,4245618683,2809771154,2842737049,3144396420,3043140495,2673705150,2438237621,2203032232,2370213795],E=[0,185469197,370938394,487725847,741876788,657861945,975451694,824852259,1483753576,1400783205,1315723890,1164071807,1950903388,2135319889,1649704518,1767536459,2967507152,3152976349,2801566410,2918353863,2631447780,2547432937,2328143614,2177544179,3901806776,3818836405,4270639778,4118987695,3299409036,3483825537,3535072918,3652904859,2077965243,1893020342,1841768865,1724457132,1474502543,1559041666,1107234197,1257309336,598438867,681933534,901210569,1052338372,261314535,77422314,428819965,310463728,3409685355,3224740454,3710368113,3593056380,3875770207,3960309330,4045380933,4195456072,2471224067,2554718734,2237133081,2388260884,3212035895,3028143674,2842678573,2724322336,4138563181,4255350624,3769721975,3955191162,3667219033,3516619604,3431546947,3347532110,2933734917,2782082824,3099667487,3016697106,2196052529,2313884476,2499348523,2683765030,1179510461,1296297904,1347548327,1533017514,1786102409,1635502980,2087309459,2003294622,507358933,355706840,136428751,53458370,839224033,957055980,605657339,790073846,2373340630,2256028891,2607439820,2422494913,2706270690,2856345839,3075636216,3160175349,3573941694,3725069491,3273267108,3356761769,4181598602,4063242375,4011996048,3828103837,1033297158,915985419,730517276,545572369,296679730,446754879,129166120,213705253,1709610350,1860738147,1945798516,2029293177,1239331162,1120974935,1606591296,1422699085,4148292826,4233094615,3781033664,3931371469,3682191598,3497509347,3446004468,3328955385,2939266226,2755636671,3106780840,2988687269,2198438022,2282195339,2501218972,2652609425,1201765386,1286567175,1371368976,1521706781,1805211710,1620529459,2105887268,1988838185,533804130,350174575,164439672,46346101,870912086,954669403,636813900,788204353,2358957921,2274680428,2592523643,2441661558,2695033685,2880240216,3065962831,3182487618,3572145929,3756299780,3270937875,3388507166,4174560061,4091327024,4006521127,3854606378,1014646705,930369212,711349675,560487590,272786309,457992840,106852767,223377554,1678381017,1862534868,1914052035,2031621326,1211247597,1128014560,1580087799,1428173050,32283319,182621114,401639597,486441376,768917123,651868046,1003007129,818324884,1503449823,1385356242,1333838021,1150208456,1973745387,2125135846,1673061617,1756818940,2970356327,3120694122,2802849917,2887651696,2637442643,2520393566,2334669897,2149987652,3917234703,3799141122,4284502037,4100872472,3309594171,3460984630,3545789473,3629546796,2050466060,1899603969,1814803222,1730525723,1443857720,1560382517,1075025698,1260232239,575138148,692707433,878443390,1062597235,243256656,91341917,409198410,325965383,3403100636,3252238545,3704300486,3620022987,3874428392,3990953189,4042459122,4227665663,2460449204,2578018489,2226875310,2411029155,3198115200,3046200461,2827177882,2743944855],S=[0,218828297,437656594,387781147,875313188,958871085,775562294,590424639,1750626376,1699970625,1917742170,2135253587,1551124588,1367295589,1180849278,1265195639,3501252752,3720081049,3399941250,3350065803,3835484340,3919042237,4270507174,4085369519,3102249176,3051593425,2734591178,2952102595,2361698556,2177869557,2530391278,2614737639,3145456443,3060847922,2708326185,2892417312,2404901663,2187128086,2504130317,2555048196,3542330227,3727205754,3375740769,3292445032,3876557655,3926170974,4246310725,4027744588,1808481195,1723872674,1910319033,2094410160,1608975247,1391201670,1173430173,1224348052,59984867,244860394,428169201,344873464,935293895,984907214,766078933,547512796,1844882806,1627235199,2011214180,2062270317,1507497298,1423022939,1137477952,1321699145,95345982,145085239,532201772,313773861,830661914,1015671571,731183368,648017665,3175501286,2957853679,2807058932,2858115069,2305455554,2220981195,2474404304,2658625497,3575528878,3625268135,3473416636,3254988725,3778151818,3963161475,4213447064,4130281361,3599595085,3683022916,3432737375,3247465558,3802222185,4020912224,4172763771,4122762354,3201631749,3017672716,2764249623,2848461854,2331590177,2280796200,2431590963,2648976442,104699613,188127444,472615631,287343814,840019705,1058709744,671593195,621591778,1852171925,1668212892,1953757831,2037970062,1514790577,1463996600,1080017571,1297403050,3673637356,3623636965,3235995134,3454686199,4007360968,3822090177,4107101658,4190530515,2997825956,3215212461,2830708150,2779915199,2256734592,2340947849,2627016082,2443058075,172466556,122466165,273792366,492483431,1047239e3,861968209,612205898,695634755,1646252340,1863638845,2013908262,1963115311,1446242576,1530455833,1277555970,1093597963,1636604631,1820824798,2073724613,1989249228,1436590835,1487645946,1337376481,1119727848,164948639,81781910,331544205,516552836,1039717051,821288114,669961897,719700128,2973530695,3157750862,2871682645,2787207260,2232435299,2283490410,2667994737,2450346104,3647212047,3564045318,3279033885,3464042516,3980931627,3762502690,4150144569,4199882800,3070356634,3121275539,2904027272,2686254721,2200818878,2384911031,2570832044,2486224549,3747192018,3528626907,3310321856,3359936201,3950355702,3867060991,4049844452,4234721005,1739656202,1790575107,2108100632,1890328081,1402811438,1586903591,1233856572,1149249077,266959938,48394827,369057872,418672217,1002783846,919489135,567498868,752375421,209336225,24197544,376187827,459744698,945164165,895287692,574624663,793451934,1679968233,1764313568,2117360635,1933530610,1343127501,1560637892,1243112415,1192455638,3704280881,3519142200,3336358691,3419915562,3907448597,3857572124,4075877127,4294704398,3029510009,3113855344,2927934315,2744104290,2159976285,2377486676,2594734927,2544078150],I=[0,151849742,303699484,454499602,607398968,758720310,908999204,1059270954,1214797936,1097159550,1517440620,1400849762,1817998408,1699839814,2118541908,2001430874,2429595872,2581445614,2194319100,2345119218,3034881240,3186202582,2801699524,2951971274,3635996816,3518358430,3399679628,3283088770,4237083816,4118925222,4002861748,3885750714,1002142683,850817237,698445255,548169417,529487843,377642221,227885567,77089521,1943217067,2061379749,1640576439,1757691577,1474760595,1592394909,1174215055,1290801793,2875968315,2724642869,3111247143,2960971305,2405426947,2253581325,2638606623,2487810577,3808662347,3926825029,4044981591,4162096729,3342319475,3459953789,3576539503,3693126241,1986918061,2137062819,1685577905,1836772287,1381620373,1532285339,1078185097,1229899655,1040559837,923313619,740276417,621982671,439452389,322734571,137073913,19308535,3871163981,4021308739,4104605777,4255800159,3263785589,3414450555,3499326569,3651041127,2933202493,2815956275,3167684641,3049390895,2330014213,2213296395,2566595609,2448830231,1305906550,1155237496,1607244650,1455525988,1776460110,1626319424,2079897426,1928707164,96392454,213114376,396673818,514443284,562755902,679998e3,865136418,983426092,3708173718,3557504664,3474729866,3323011204,4180808110,4030667424,3945269170,3794078908,2507040230,2623762152,2272556026,2390325492,2975484382,3092726480,2738905026,2857194700,3973773121,3856137295,4274053469,4157467219,3371096953,3252932727,3673476453,3556361835,2763173681,2915017791,3064510765,3215307299,2156299017,2307622919,2459735317,2610011675,2081048481,1963412655,1846563261,1729977011,1480485785,1362321559,1243905413,1126790795,878845905,1030690015,645401037,796197571,274084841,425408743,38544885,188821243,3613494426,3731654548,3313212038,3430322568,4082475170,4200115116,3780097726,3896688048,2668221674,2516901860,2366882550,2216610296,3141400786,2989552604,2837966542,2687165888,1202797690,1320957812,1437280870,1554391400,1669664834,1787304780,1906247262,2022837584,265905162,114585348,499347990,349075736,736970802,585122620,972512814,821712160,2595684844,2478443234,2293045232,2174754046,3196267988,3079546586,2895723464,2777952454,3537852828,3687994002,3234156416,3385345166,4142626212,4293295786,3841024952,3992742070,174567692,57326082,410887952,292596766,777231668,660510266,1011452712,893681702,1108339068,1258480242,1343618912,1494807662,1715193156,1865862730,1948373848,2100090966,2701949495,2818666809,3004591147,3122358053,2235061775,2352307457,2535604243,2653899549,3915653703,3764988233,4219352155,4067639125,3444575871,3294430577,3746175075,3594982253,836553431,953270745,600235211,718002117,367585007,484830689,133361907,251657213,2041877159,1891211689,1806599355,1654886325,1568718495,1418573201,1335535747,1184342925];function k(e){for(var t=[],r=0;r<e.length;r+=4)t.push(e[r]<<24|e[r+1]<<16|e[r+2]<<8|e[r+3]);return t}var P=function(e){if(!(this instanceof P))throw Error("AES must be instanitated with `new`");Object.defineProperty(this,"key",{value:i(e,!0)}),this._prepare()};P.prototype._prepare=function(){var e=c[this.key.length];if(null==e)throw new Error("invalid key size (must be 16, 24 or 32 bytes)");this._Ke=[],this._Kd=[];for(var t=0;t<=e;t++)this._Ke.push([0,0,0,0]),this._Kd.push([0,0,0,0]);var r,n=4*(e+1),i=this.key.length/4,o=k(this.key);for(t=0;t<i;t++)this._Ke[r=t>>2][t%4]=o[t],this._Kd[e-r][t%4]=o[t];for(var s,a=0,u=i;u<n;){if(o[0]^=h[(s=o[i-1])>>16&255]<<24^h[s>>8&255]<<16^h[255&s]<<8^h[s>>24&255]^d[a]<<24,a+=1,8!=i)for(t=1;t<i;t++)o[t]^=o[t-1];else{for(t=1;t<i/2;t++)o[t]^=o[t-1];for(o[i/2]^=h[255&(s=o[i/2-1])]^h[s>>8&255]<<8^h[s>>16&255]<<16^h[s>>24&255]<<24,t=i/2+1;t<i;t++)o[t]^=o[t-1]}for(t=0;t<i&&u<n;)this._Ke[l=u>>2][p=u%4]=o[t],this._Kd[e-l][p]=o[t++],u++}for(var l=1;l<e;l++)for(var p=0;p<4;p++)this._Kd[l][p]=T[(s=this._Kd[l][p])>>24&255]^E[s>>16&255]^S[s>>8&255]^I[255&s]},P.prototype.encrypt=function(e){if(16!=e.length)throw new Error("invalid plaintext size (must be 16 bytes)");for(var t=this._Ke.length-1,r=[0,0,0,0],n=k(e),i=0;i<4;i++)n[i]^=this._Ke[0][i];for(var s=1;s<t;s++){for(i=0;i<4;i++)r[i]=f[n[i]>>24&255]^m[n[(i+1)%4]>>16&255]^y[n[(i+2)%4]>>8&255]^g[255&n[(i+3)%4]]^this._Ke[s][i];n=r.slice()}var a,u=o(16);for(i=0;i<4;i++)u[4*i]=255&(h[n[i]>>24&255]^(a=this._Ke[t][i])>>24),u[4*i+1]=255&(h[n[(i+1)%4]>>16&255]^a>>16),u[4*i+2]=255&(h[n[(i+2)%4]>>8&255]^a>>8),u[4*i+3]=255&(h[255&n[(i+3)%4]]^a);return u},P.prototype.decrypt=function(e){if(16!=e.length)throw new Error("invalid ciphertext size (must be 16 bytes)");for(var t=this._Kd.length-1,r=[0,0,0,0],n=k(e),i=0;i<4;i++)n[i]^=this._Kd[0][i];for(var s=1;s<t;s++){for(i=0;i<4;i++)r[i]=b[n[i]>>24&255]^v[n[(i+3)%4]>>16&255]^A[n[(i+2)%4]>>8&255]^w[255&n[(i+1)%4]]^this._Kd[s][i];n=r.slice()}var a,u=o(16);for(i=0;i<4;i++)u[4*i]=255&(p[n[i]>>24&255]^(a=this._Kd[t][i])>>24),u[4*i+1]=255&(p[n[(i+3)%4]>>16&255]^a>>16),u[4*i+2]=255&(p[n[(i+2)%4]>>8&255]^a>>8),u[4*i+3]=255&(p[255&n[(i+1)%4]]^a);return u};var C=function(e){if(!(this instanceof C))throw Error("AES must be instanitated with `new`");this.description="Electronic Code Block",this.name="ecb",this._aes=new P(e)};C.prototype.encrypt=function(e){if((e=i(e)).length%16!=0)throw new Error("invalid plaintext size (must be multiple of 16 bytes)");for(var t=o(e.length),r=o(16),n=0;n<e.length;n+=16)s(e,r,0,n,n+16),s(r=this._aes.encrypt(r),t,n);return t},C.prototype.decrypt=function(e){if((e=i(e)).length%16!=0)throw new Error("invalid ciphertext size (must be multiple of 16 bytes)");for(var t=o(e.length),r=o(16),n=0;n<e.length;n+=16)s(e,r,0,n,n+16),s(r=this._aes.decrypt(r),t,n);return t};var N=function(e,t){if(!(this instanceof N))throw Error("AES must be instanitated with `new`");if(this.description="Cipher Block Chaining",this.name="cbc",t){if(16!=t.length)throw new Error("invalid initialation vector size (must be 16 bytes)")}else t=o(16);this._lastCipherblock=i(t,!0),this._aes=new P(e)};N.prototype.encrypt=function(e){if((e=i(e)).length%16!=0)throw new Error("invalid plaintext size (must be multiple of 16 bytes)");for(var t=o(e.length),r=o(16),n=0;n<e.length;n+=16){s(e,r,0,n,n+16);for(var a=0;a<16;a++)r[a]^=this._lastCipherblock[a];this._lastCipherblock=this._aes.encrypt(r),s(this._lastCipherblock,t,n)}return t},N.prototype.decrypt=function(e){if((e=i(e)).length%16!=0)throw new Error("invalid ciphertext size (must be multiple of 16 bytes)");for(var t=o(e.length),r=o(16),n=0;n<e.length;n+=16){s(e,r,0,n,n+16),r=this._aes.decrypt(r);for(var a=0;a<16;a++)t[n+a]=r[a]^this._lastCipherblock[a];s(e,this._lastCipherblock,0,n,n+16)}return t};var x=function(e,t,r){if(!(this instanceof x))throw Error("AES must be instanitated with `new`");if(this.description="Cipher Feedback",this.name="cfb",t){if(16!=t.length)throw new Error("invalid initialation vector size (must be 16 size)")}else t=o(16);r||(r=1),this.segmentSize=r,this._shiftRegister=i(t,!0),this._aes=new P(e)};x.prototype.encrypt=function(e){if(e.length%this.segmentSize!=0)throw new Error("invalid plaintext size (must be segmentSize bytes)");for(var t,r=i(e,!0),n=0;n<r.length;n+=this.segmentSize){t=this._aes.encrypt(this._shiftRegister);for(var o=0;o<this.segmentSize;o++)r[n+o]^=t[o];s(this._shiftRegister,this._shiftRegister,0,this.segmentSize),s(r,this._shiftRegister,16-this.segmentSize,n,n+this.segmentSize)}return r},x.prototype.decrypt=function(e){if(e.length%this.segmentSize!=0)throw new Error("invalid ciphertext size (must be segmentSize bytes)");for(var t,r=i(e,!0),n=0;n<r.length;n+=this.segmentSize){t=this._aes.encrypt(this._shiftRegister);for(var o=0;o<this.segmentSize;o++)r[n+o]^=t[o];s(this._shiftRegister,this._shiftRegister,0,this.segmentSize),s(e,this._shiftRegister,16-this.segmentSize,n,n+this.segmentSize)}return r};var _=function(e,t){if(!(this instanceof _))throw Error("AES must be instanitated with `new`");if(this.description="Output Feedback",this.name="ofb",t){if(16!=t.length)throw new Error("invalid initialation vector size (must be 16 bytes)")}else t=o(16);this._lastPrecipher=i(t,!0),this._lastPrecipherIndex=16,this._aes=new P(e)};_.prototype.encrypt=function(e){for(var t=i(e,!0),r=0;r<t.length;r++)16===this._lastPrecipherIndex&&(this._lastPrecipher=this._aes.encrypt(this._lastPrecipher),this._lastPrecipherIndex=0),t[r]^=this._lastPrecipher[this._lastPrecipherIndex++];return t},_.prototype.decrypt=_.prototype.encrypt;var R=function(e){if(!(this instanceof R))throw Error("Counter must be instanitated with `new`");0===e||e||(e=1),"number"==typeof e?(this._counter=o(16),this.setValue(e)):this.setBytes(e)};R.prototype.setValue=function(e){if("number"!=typeof e||parseInt(e)!=e)throw new Error("invalid counter value (must be an integer)");for(var t=15;t>=0;--t)this._counter[t]=e%256,e>>=8},R.prototype.setBytes=function(e){if(16!=(e=i(e,!0)).length)throw new Error("invalid counter bytes size (must be 16 bytes)");this._counter=e},R.prototype.increment=function(){for(var e=15;e>=0;e--){if(255!==this._counter[e]){this._counter[e]++;break}this._counter[e]=0}};var M=function(e,t){if(!(this instanceof M))throw Error("AES must be instanitated with `new`");this.description="Counter",this.name="ctr",t instanceof R||(t=new R(t)),this._counter=t,this._remainingCounter=null,this._remainingCounterIndex=16,this._aes=new P(e)};M.prototype.encrypt=function(e){for(var t=i(e,!0),r=0;r<t.length;r++)16===this._remainingCounterIndex&&(this._remainingCounter=this._aes.encrypt(this._counter._counter),this._remainingCounterIndex=0,this._counter.increment()),t[r]^=this._remainingCounter[this._remainingCounterIndex++];return t},M.prototype.decrypt=M.prototype.encrypt,e.exports={AES:P,Counter:R,ModeOfOperation:{ecb:C,cbc:N,cfb:x,ofb:_,ctr:M},utils:{hex:l,utf8:u},padding:{pkcs7:{pad:function(e){var t=16-(e=i(e,!0)).length%16,r=o(e.length+t);s(e,r);for(var n=e.length;n<r.length;n++)r[n]=t;return r},strip:function(e){if((e=i(e,!0)).length<16)throw new Error("PKCS#7 invalid length");var t=e[e.length-1];if(t>16)throw new Error("PKCS#7 padding byte out of range");for(var r=e.length-t,n=0;n<t;n++)if(e[r+n]!==t)throw new Error("PKCS#7 invalid padding byte");var a=o(r);return s(e,a,0,0,r),a}}},_arrayTest:{coerceArray:i,createArray:o,copyArray:s}}}()});const Tl="json-wallets/5.8.0";function El(e){return"string"==typeof e&&"0x"!==e.substring(0,2)&&(e="0x"+e),Or(e)}function Sl(e,t){for(e=String(e);e.length<t;)e="0"+e;return e}function Il(e){return"string"==typeof e?ni(e,Zn.NFKC):Or(e)}function kl(e,t){let r=e;const n=t.toLowerCase().split("/");for(let e=0;e<n.length;e++){let t=null;for(const i in r)if(i.toLowerCase()===n[e]){t=r[i];break}if(null===t)return null;r=t}return r}function Pl(e){const t=Or(e);t[6]=15&t[6]|64,t[8]=63&t[8]|128;const r=Ur(t);return[r.substring(2,10),r.substring(10,14),r.substring(14,18),r.substring(18,22),r.substring(22,34)].join("-")}const Cl=new Pr(Tl);class Nl extends Nn{isCrowdsaleAccount(e){return!(!e||!e._isCrowdsaleAccount)}}function xl(e,t){const r=JSON.parse(e);t=Il(t);const n=qi(kl(r,"ethaddr")),i=El(kl(r,"encseed"));i&&i.length%16==0||Cl.throwArgumentError("invalid encseed","json",e);const o=Or(el(t,t,2e3,32,"sha256")).slice(0,16),s=i.slice(0,16),a=i.slice(16),u=new wl.ModeOfOperation.cbc(o,s),l=wl.padding.pkcs7.strip(Or(u.decrypt(a)));let c="";for(let e=0;e<l.length;e++)c+=String.fromCharCode(l[e]);const d=Yn(ni(c));return new Nl({_isCrowdsaleAccount:!0,address:n,privateKey:d})}function _l(e){let t=null;try{t=JSON.parse(e)}catch(e){return!1}return t.encseed&&t.ethaddr}function Rl(e){let t=null;try{t=JSON.parse(e)}catch(e){return!1}return!(!t.version||parseInt(t.version)!==t.version||3!==parseInt(t.version))}var Ml=mr(function(e,t){!function(t){const r=2147483647;function n(e){const t=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]);let r=1779033703,n=3144134277,i=1013904242,o=2773480762,s=1359893119,a=2600822924,u=528734635,l=1541459225;const c=new Uint32Array(64);function d(e){let d=0,h=e.length;for(;h>=64;){let p,f,m,y,g,b=r,v=n,A=i,w=o,T=s,E=a,S=u,I=l;for(f=0;f<16;f++)m=d+4*f,c[f]=(255&e[m])<<24|(255&e[m+1])<<16|(255&e[m+2])<<8|255&e[m+3];for(f=16;f<64;f++)p=c[f-2],y=(p>>>17|p<<15)^(p>>>19|p<<13)^p>>>10,p=c[f-15],g=(p>>>7|p<<25)^(p>>>18|p<<14)^p>>>3,c[f]=(y+c[f-7]|0)+(g+c[f-16]|0)|0;for(f=0;f<64;f++)y=(((T>>>6|T<<26)^(T>>>11|T<<21)^(T>>>25|T<<7))+(T&E^~T&S)|0)+(I+(t[f]+c[f]|0)|0)|0,g=((b>>>2|b<<30)^(b>>>13|b<<19)^(b>>>22|b<<10))+(b&v^b&A^v&A)|0,I=S,S=E,E=T,T=w+y|0,w=A,A=v,v=b,b=y+g|0;r=r+b|0,n=n+v|0,i=i+A|0,o=o+w|0,s=s+T|0,a=a+E|0,u=u+S|0,l=l+I|0,d+=64,h-=64}}d(e);let h,p=e.length%64,f=e.length/536870912|0,m=e.length<<3,y=p<56?56:120,g=e.slice(e.length-p,e.length);for(g.push(128),h=p+1;h<y;h++)g.push(0);return g.push(f>>>24&255),g.push(f>>>16&255),g.push(f>>>8&255),g.push(f>>>0&255),g.push(m>>>24&255),g.push(m>>>16&255),g.push(m>>>8&255),g.push(m>>>0&255),d(g),[r>>>24&255,r>>>16&255,r>>>8&255,r>>>0&255,n>>>24&255,n>>>16&255,n>>>8&255,n>>>0&255,i>>>24&255,i>>>16&255,i>>>8&255,i>>>0&255,o>>>24&255,o>>>16&255,o>>>8&255,o>>>0&255,s>>>24&255,s>>>16&255,s>>>8&255,s>>>0&255,a>>>24&255,a>>>16&255,a>>>8&255,a>>>0&255,u>>>24&255,u>>>16&255,u>>>8&255,u>>>0&255,l>>>24&255,l>>>16&255,l>>>8&255,l>>>0&255]}function i(e,t,r){e=e.length<=64?e:n(e);const i=64+t.length+4,o=new Array(i),s=new Array(64);let a,u=[];for(a=0;a<64;a++)o[a]=54;for(a=0;a<e.length;a++)o[a]^=e[a];for(a=0;a<t.length;a++)o[64+a]=t[a];for(a=i-4;a<i;a++)o[a]=0;for(a=0;a<64;a++)s[a]=92;for(a=0;a<e.length;a++)s[a]^=e[a];function l(){for(let e=i-1;e>=i-4;e--){if(o[e]++,o[e]<=255)return;o[e]=0}}for(;r>=32;)l(),u=u.concat(n(s.concat(n(o)))),r-=32;return r>0&&(l(),u=u.concat(n(s.concat(n(o))).slice(0,r))),u}function o(e,t,r,n,i){let o;for(l(e,16*(2*r-1),i,0,16),o=0;o<2*r;o++)u(e,16*o,i,16),a(i,n),l(i,0,e,t+16*o,16);for(o=0;o<r;o++)l(e,t+2*o*16,e,16*o,16);for(o=0;o<r;o++)l(e,t+16*(2*o+1),e,16*(o+r),16)}function s(e,t){return e<<t|e>>>32-t}function a(e,t){l(e,0,t,0,16);for(let e=8;e>0;e-=2)t[4]^=s(t[0]+t[12],7),t[8]^=s(t[4]+t[0],9),t[12]^=s(t[8]+t[4],13),t[0]^=s(t[12]+t[8],18),t[9]^=s(t[5]+t[1],7),t[13]^=s(t[9]+t[5],9),t[1]^=s(t[13]+t[9],13),t[5]^=s(t[1]+t[13],18),t[14]^=s(t[10]+t[6],7),t[2]^=s(t[14]+t[10],9),t[6]^=s(t[2]+t[14],13),t[10]^=s(t[6]+t[2],18),t[3]^=s(t[15]+t[11],7),t[7]^=s(t[3]+t[15],9),t[11]^=s(t[7]+t[3],13),t[15]^=s(t[11]+t[7],18),t[1]^=s(t[0]+t[3],7),t[2]^=s(t[1]+t[0],9),t[3]^=s(t[2]+t[1],13),t[0]^=s(t[3]+t[2],18),t[6]^=s(t[5]+t[4],7),t[7]^=s(t[6]+t[5],9),t[4]^=s(t[7]+t[6],13),t[5]^=s(t[4]+t[7],18),t[11]^=s(t[10]+t[9],7),t[8]^=s(t[11]+t[10],9),t[9]^=s(t[8]+t[11],13),t[10]^=s(t[9]+t[8],18),t[12]^=s(t[15]+t[14],7),t[13]^=s(t[12]+t[15],9),t[14]^=s(t[13]+t[12],13),t[15]^=s(t[14]+t[13],18);for(let r=0;r<16;++r)e[r]+=t[r]}function u(e,t,r,n){for(let i=0;i<n;i++)r[i]^=e[t+i]}function l(e,t,r,n,i){for(;i--;)r[n++]=e[t++]}function c(e){if(!e||"number"!=typeof e.length)return!1;for(let t=0;t<e.length;t++){const r=e[t];if("number"!=typeof r||r%1||r<0||r>=256)return!1}return!0}function d(e,t){if("number"!=typeof e||e%1)throw new Error("invalid "+t);return e}function h(e,t,n,s,a,h,p){if(n=d(n,"N"),s=d(s,"r"),a=d(a,"p"),h=d(h,"dkLen"),0===n||0!=(n&n-1))throw new Error("N must be power of 2");if(n>r/128/s)throw new Error("N too large");if(s>r/128/a)throw new Error("r too large");if(!c(e))throw new Error("password must be an array or buffer");if(e=Array.prototype.slice.call(e),!c(t))throw new Error("salt must be an array or buffer");t=Array.prototype.slice.call(t);let f=i(e,t,128*a*s);const m=new Uint32Array(32*a*s);for(let e=0;e<m.length;e++){const t=4*e;m[e]=(255&f[t+3])<<24|(255&f[t+2])<<16|(255&f[t+1])<<8|(255&f[t+0])<<0}const y=new Uint32Array(64*s),g=new Uint32Array(32*s*n),b=32*s,v=new Uint32Array(16),A=new Uint32Array(16),w=a*n*2;let T,E,S=0,I=null,k=!1,P=0,C=0;const N=p?parseInt(1e3/s):4294967295,x="undefined"!=typeof setImmediate?setImmediate:setTimeout,_=function(){if(k)return p(new Error("cancelled"),S/w);let t;switch(P){case 0:E=32*C*s,l(m,E,y,0,b),P=1,T=0;case 1:t=n-T,t>N&&(t=N);for(let e=0;e<t;e++)l(y,0,g,(T+e)*b,b),o(y,b,s,v,A);if(T+=t,S+=t,p){const e=parseInt(1e3*S/w);if(e!==I){if(k=p(null,S/w),k)break;I=e}}if(T<n)break;T=0,P=2;case 2:t=n-T,t>N&&(t=N);for(let e=0;e<t;e++)u(g,(y[16*(2*s-1)]&n-1)*b,y,b),o(y,b,s,v,A);if(T+=t,S+=t,p){const e=parseInt(1e3*S/w);if(e!==I){if(k=p(null,S/w),k)break;I=e}}if(T<n)break;if(l(y,0,m,E,b),C++,C<a){P=0;break}f=[];for(let e=0;e<m.length;e++)f.push(m[e]>>0&255),f.push(m[e]>>8&255),f.push(m[e]>>16&255),f.push(m[e]>>24&255);const r=i(e,f,h);return p&&p(null,1,r),r}p&&x(_)};if(!p)for(;;){const e=_();if(null!=e)return e}_()}const p={scrypt:function(e,t,r,n,i,o,s){return new Promise(function(a,u){let l=0;s&&s(0),h(e,t,r,n,i,o,function(e,t,r){if(e)u(e);else if(r)s&&1!==l&&s(1),a(new Uint8Array(r));else if(s&&t!==l)return l=t,s(t)})})},syncScrypt:function(e,t,r,n,i,o){return new Uint8Array(h(e,t,r,n,i,o))}};e.exports=p}()}),Ol=Ml;const Bl=new Pr(Tl);function Dl(e){return null!=e&&e.mnemonic&&e.mnemonic.phrase}class Ll extends Nn{isKeystoreAccount(e){return!(!e||!e._isKeystoreAccount)}}function Fl(e,t){const r=El(kl(e,"crypto/ciphertext"));if(Ur(Yn(Br([t.slice(16,32),r]))).substring(2)!==kl(e,"crypto/mac").toLowerCase())throw new Error("invalid password");const n=function(e,t,r){if("aes-128-ctr"===kl(e,"crypto/cipher")){const n=El(kl(e,"crypto/cipherparams/iv")),i=new wl.Counter(n);return Or(new wl.ModeOfOperation.ctr(t,i).decrypt(r))}return null}(e,t.slice(0,16),r);n||Bl.throwError("unsupported cipher",Pr.errors.UNSUPPORTED_OPERATION,{operation:"decrypt"});const i=t.slice(32,64),o=Xa(n);if(e.address){let t=e.address.toLowerCase();if("0x"!==t.substring(0,2)&&(t="0x"+t),qi(t)!==o)throw new Error("address mismatch")}const s={_isKeystoreAccount:!0,address:o,privateKey:Ur(n)};if("0.1"===kl(e,"x-ethers/version")){const t=El(kl(e,"x-ethers/mnemonicCiphertext")),r=El(kl(e,"x-ethers/mnemonicCounter")),n=new wl.Counter(r),o=new wl.ModeOfOperation.ctr(i,n),a=kl(e,"x-ethers/path")||gl,u=kl(e,"x-ethers/locale")||"en",l=Or(o.decrypt(t));try{const e=Al(l,u),t=bl.fromMnemonic(e,null,u).derivePath(a);if(t.privateKey!=s.privateKey)throw new Error("mnemonic mismatch");s.mnemonic=t.mnemonic}catch(e){if(e.code!==Pr.errors.INVALID_ARGUMENT||"wordlist"!==e.argument)throw e}}return new Ll(s)}function Ul(e,t,r,n,i){return Or(el(e,t,r,n,i))}function Gl(e,t,r,n,i){return Promise.resolve(Ul(e,t,r,n,i))}function jl(e,t,r,n,i){const o=Il(t),s=kl(e,"crypto/kdf");if(s&&"string"==typeof s){const t=function(e,t){return Bl.throwArgumentError("invalid key-derivation function parameters",e,t)};if("scrypt"===s.toLowerCase()){const r=El(kl(e,"crypto/kdfparams/salt")),a=parseInt(kl(e,"crypto/kdfparams/n")),u=parseInt(kl(e,"crypto/kdfparams/r")),l=parseInt(kl(e,"crypto/kdfparams/p"));a&&u&&l||t("kdf",s),0!=(a&a-1)&&t("N",a);const c=parseInt(kl(e,"crypto/kdfparams/dklen"));return 32!==c&&t("dklen",c),n(o,r,a,u,l,64,i)}if("pbkdf2"===s.toLowerCase()){const n=El(kl(e,"crypto/kdfparams/salt"));let i=null;const s=kl(e,"crypto/kdfparams/prf");"hmac-sha256"===s?i="sha256":"hmac-sha512"===s?i="sha512":t("prf",s);const a=parseInt(kl(e,"crypto/kdfparams/c")),u=parseInt(kl(e,"crypto/kdfparams/dklen"));return 32!==u&&t("dklen",u),r(o,n,a,u,i)}}return Bl.throwArgumentError("unsupported key-derivation function","kdf",s)}var Hl=function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function s(e){try{u(n.next(e))}catch(e){o(e)}}function a(e){try{u(n.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r(function(e){e(t)})).then(s,a)}u((n=n.apply(e,t||[])).next())})};const ql=new Pr("wallet/5.8.0");class Vl extends a{constructor(e,t){if(super(),null!=(r=e)&&Lr(r.privateKey,32)&&null!=r.address){const t=new qa(e.privateKey);if(An(this,"_signingKey",()=>t),An(this,"address",Xa(this.publicKey)),this.address!==qi(e.address)&&ql.throwArgumentError("privateKey/address mismatch","privateKey","[REDACTED]"),function(e){const t=e.mnemonic;return t&&t.phrase}(e)){const t=e.mnemonic;An(this,"_mnemonic",()=>({phrase:t.phrase,path:t.path||gl,locale:t.locale||"en"}));const r=this.mnemonic;Xa(bl.fromMnemonic(r.phrase,null,r.locale).derivePath(r.path).privateKey)!==this.address&&ql.throwArgumentError("mnemonic/address mismatch","privateKey","[REDACTED]")}else An(this,"_mnemonic",()=>null)}else{if(qa.isSigningKey(e))"secp256k1"!==e.curve&&ql.throwArgumentError("unsupported curve; must be secp256k1","privateKey","[REDACTED]"),An(this,"_signingKey",()=>e);else{"string"==typeof e&&e.match(/^[0-9a-f]*$/i)&&64===e.length&&(e="0x"+e);const t=new qa(e);An(this,"_signingKey",()=>t)}An(this,"_mnemonic",()=>null),An(this,"address",Xa(this.publicKey))}var r;t&&!Rn.isProvider(t)&&ql.throwArgumentError("invalid provider","provider",t),An(this,"provider",t||null)}get mnemonic(){return this._mnemonic()}get privateKey(){return this._signingKey().privateKey}get publicKey(){return this._signingKey().publicKey}getAddress(){return Promise.resolve(this.address)}connect(e){return new Vl(this,e)}signTransaction(e){return Tn(e).then(t=>{null!=t.from&&(qi(t.from)!==this.address&&ql.throwArgumentError("transaction from address mismatch","transaction.from",e.from),delete t.from);const r=this._signingKey().signDigest(Yn(ou(t)));return ou(t,r)})}signMessage(e){return Hl(this,void 0,void 0,function*(){return Kr(this._signingKey().signDigest(function(e){return"string"==typeof e&&(e=ni(e)),Yn(Br([ni("Ethereum Signed Message:\n"),ni(String(e.length)),e]))}(e)))})}_signTypedData(e,t,r){return Hl(this,void 0,void 0,function*(){const n=yield oo.resolveNames(e,t,r,e=>(null==this.provider&&ql.throwError("cannot resolve ENS names without a provider",Pr.errors.UNSUPPORTED_OPERATION,{operation:"resolveName",value:e}),this.provider.resolveName(e)));return Kr(this._signingKey().signDigest(oo.hash(n.domain,t,n.value)))})}encrypt(e,t,r){if("function"!=typeof t||r||(r=t,t={}),r&&"function"!=typeof r)throw new Error("invalid callback");return t||(t={}),function(e,t,r,n){try{if(qi(e.address)!==Xa(e.privateKey))throw new Error("address/privateKey mismatch");if(Dl(e)){const t=e.mnemonic;if(bl.fromMnemonic(t.phrase,null,t.locale).derivePath(t.path||gl).privateKey!=e.privateKey)throw new Error("mnemonic mismatch")}}catch(e){return Promise.reject(e)}"function"!=typeof r||n||(n=r,r={}),r||(r={});const i=Or(e.privateKey),o=Il(t);let s=null,a=null,u=null;if(Dl(e)){const t=e.mnemonic;s=Or(vl(t.phrase,t.locale||"en")),a=t.path||gl,u=t.locale||"en"}let l=r.client;l||(l="ethers.js");let c=null;c=r.salt?Or(r.salt):Qu(32);let d=null;if(r.iv){if(d=Or(r.iv),16!==d.length)throw new Error("invalid iv")}else d=Qu(16);let h=null;if(r.uuid){if(h=Or(r.uuid),16!==h.length)throw new Error("invalid uuid")}else h=Qu(16);let p=1<<17,f=8,m=1;return r.scrypt&&(r.scrypt.N&&(p=r.scrypt.N),r.scrypt.r&&(f=r.scrypt.r),r.scrypt.p&&(m=r.scrypt.p)),Ol.scrypt(o,c,p,f,m,64,n).then(t=>{const r=(t=Or(t)).slice(0,16),n=t.slice(16,32),o=t.slice(32,64),y=new wl.Counter(d),g=Or(new wl.ModeOfOperation.ctr(r,y).encrypt(i)),b=Yn(Br([n,g])),v={address:e.address.substring(2).toLowerCase(),id:Pl(h),version:3,crypto:{cipher:"aes-128-ctr",cipherparams:{iv:Ur(d).substring(2)},ciphertext:Ur(g).substring(2),kdf:"scrypt",kdfparams:{salt:Ur(c).substring(2),n:p,dklen:32,p:m,r:f},mac:b.substring(2)}};if(s){const e=Qu(16),t=new wl.Counter(e),r=Or(new wl.ModeOfOperation.ctr(o,t).encrypt(s)),n=new Date,i=n.getUTCFullYear()+"-"+Sl(n.getUTCMonth()+1,2)+"-"+Sl(n.getUTCDate(),2)+"T"+Sl(n.getUTCHours(),2)+"-"+Sl(n.getUTCMinutes(),2)+"-"+Sl(n.getUTCSeconds(),2)+".0Z";v["x-ethers"]={client:l,gethFilename:"UTC--"+i+"--"+v.address,mnemonicCounter:Ur(e).substring(2),mnemonicCiphertext:Ur(r).substring(2),path:a,locale:u,version:"0.1"}}return JSON.stringify(v)})}(this,e,t,r)}static createRandom(e){let t=Qu(16);e||(e={}),e.extraEntropy&&(t=Or(jr(Yn(Br([t,e.extraEntropy])),0,16)));const r=Al(t,e.locale);return Vl.fromMnemonic(r,e.path,e.locale)}static fromEncryptedJson(e,t,r){return function(e,t,r){if(_l(e)){r&&r(0);const n=xl(e,t);return r&&r(1),Promise.resolve(n)}return Rl(e)?function(e,t,r){return n=this,o=function*(){const n=JSON.parse(e);return Fl(n,yield jl(n,t,Gl,Ol.scrypt,r))},new((i=void 0)||(i=Promise))(function(e,t){function r(e){try{a(o.next(e))}catch(e){t(e)}}function s(e){try{a(o.throw(e))}catch(e){t(e)}}function a(t){var n;t.done?e(t.value):(n=t.value,n instanceof i?n:new i(function(e){e(n)})).then(r,s)}a((o=o.apply(n,[])).next())});var n,i,o}(e,t,r):Promise.reject(new Error("invalid JSON wallet"))}(e,t,r).then(e=>new Vl(e))}static fromEncryptedJsonSync(e,t){return new Vl(function(e,t){if(_l(e))return xl(e,t);if(Rl(e))return function(e,t){const r=JSON.parse(e);return Fl(r,jl(r,t,Ul,Ol.syncScrypt))}(e,t);throw new Error("invalid JSON wallet")}(e,t))}static fromMnemonic(e,t,r){return t||(t=gl),new Vl(bl.fromMnemonic(e,null,r).derivePath(t))}}function zl(e){return"string"==typeof e?new Vl(e):"request"in e||"send"in e?new $u(e).getSigner():e}const Kl=function(e,t){try{const r=t.metadata?.hooks?{...e,metadata:{...e.metadata,hooks:{}}}:e,n=t?w(r,t):r;return Promise.resolve(Wl(n)).then(function({fullAppData:e,appDataKeccak256:t}){return{fullAppData:e,appDataKeccak256:t,doc:n}})}catch(e){return Promise.reject(e)}},Wl=function(e){try{return Promise.resolve(c(e)).then(function(e){return{fullAppData:e,appDataKeccak256:d(h(e))}})}catch(e){return Promise.reject(e)}},Jl=function({slippageBps:e,appCode:t,orderClass:r,partnerFee:n},i){try{return Promise.resolve(Ql.generateAppDataDoc(w({appCode:t,metadata:{quote:{slippageBips:e},orderClass:{orderClass:r},partnerFee:n}},i||{}))).then(function(e){return Promise.resolve(Wl(e)).then(function({fullAppData:t,appDataKeccak256:r}){return{doc:e,fullAppData:t,appDataKeccak256:r}})})}catch(e){return Promise.reject(e)}},Ql=new l,Yl="Order",Xl=[{name:"name",type:"string"},{name:"version",type:"string"},{name:"chainId",type:"uint256"},{name:"verifyingContract",type:"address"}],Zl=1e6,$l=BigInt(Zl),ec=10000n;function tc(e,t){const r=e*BigInt(Math.floor(t*Zl))/$l;return r/100n+(r%100n>=50n?1n:0n)}const rc=1e4,nc=50,ic=.5;function oc(e){const{quote:t,tradeParameters:r,trader:n,isEthFlow:i}=e,{sellTokenDecimals:o,buyTokenDecimals:s}=r,{isSell:a,sellAmountBeforeNetworkCosts:u,sellAmountAfterNetworkCosts:l}=Ct({sellDecimals:o,buyDecimals:s,orderParams:t.quote}),{feeAmount:c}=t.quote,d=function(e){const{feeAmount:t,multiplyingFactorPercent:r}=e;if(t<0n)throw new Error("Fee amount must be non-negative: "+t);if(r<0)throw new Error("multiplyingFactorPercent must be non-negative: "+r);return tc(t,r)}({feeAmount:BigInt(c),multiplyingFactorPercent:nc}),h=function(e){const{sellAmountBeforeNetworkCosts:t,sellAmountAfterNetworkCosts:r,isSell:n,slippagePercent:i}=e,o=n?r:t;if(o<=0n)throw new Error("sellAmount must be greater than 0: "+o);if(i<0)throw new Error("slippagePercent must be non-negative: "+i);return tc(o,i)}({isSell:a,sellAmountBeforeNetworkCosts:u,sellAmountAfterNetworkCosts:l,slippagePercent:ic}),p=function(e){const{sellAmountBeforeNetworkCosts:t,sellAmountAfterNetworkCosts:r,slippage:n,isSell:i}=e,o=i?r:t;if(o<=0n)throw new Error("sellAmount must be greater than 0: "+o);if(n<0n)throw new Error("slippage must be non-negative: "+n);return i?Number(jt-jt*(o-n)/o)/Number(jt):Number(jt*(o+n)/o-jt)/Number(jt)}({isSell:a,sellAmountBeforeNetworkCosts:u,sellAmountAfterNetworkCosts:l,slippage:d+h}),f=function(e){const t="bigint"==typeof e?Number(e*ec):e*Number(ec);return Math.round(t)}(p);return Math.max(Math.min(f,rc),Vt(n.chainId,i))}const sc=function(e,t,r){try{const n=zl(e.signer);return Promise.resolve(ac(n,e)).then(function(i){return Promise.resolve(uc(e,i,t,r)).then(function(e){return{result:{...e.result,signer:n},orderBookApi:e.orderBookApi}})})}catch(e){return Promise.reject(e)}},ac=function(e,t){try{function r(e){return{chainId:t.chainId,appCode:t.appCode,account:e}}const n=t.owner;return Promise.resolve(n?r(n):Promise.resolve(e.getAddress()).then(r))}catch(i){return Promise.reject(i)}},uc=function(e,t,r,n){return Promise.resolve(lc(e,t,r,n)).then(function({quote:e,orderBookApi:r,tradeParameters:n,slippageBps:i,suggestedSlippageBps:o,appDataInfo:s,isEthFlow:a}){const{partnerFee:u,sellTokenDecimals:l,buyTokenDecimals:c}=n,{chainId:d,account:h}=t,p=xt({orderParams:e.quote,slippagePercentBps:i,partnerFeeBps:Dt(u),sellDecimals:l,buyDecimals:c}),f=Wt({chainId:d,from:h,networkCostsAmount:e.quote.feeAmount,isEthFlow:a},or(n,e),s.appDataKeccak256);return Promise.resolve(function(e,t){try{return Promise.resolve(Bt.getDomain(e)).then(function(e){return{domain:e,primaryType:Yl,types:{[Yl]:T,EIP712Domain:Xl},message:t}})}catch(e){return Promise.reject(e)}}(d,f)).then(function(t){return{result:{tradeParameters:n,suggestedSlippageBps:o,amountsAndCosts:p,orderToSign:f,quoteResponse:e,appDataInfo:s,orderTypedData:t},orderBookApi:r}})})},lc=function(e,t,r,n){try{const{appCode:i,chainId:o,account:s}=t,a=sr(e),u=a?cr(o,e):e,{sellToken:l,buyToken:c,amount:d,kind:h,partnerFee:p,validFor:f=Kt,slippageBps:m,env:y="prod"}=u;J(`getQuote for: Swap ${d} ${l} for ${c} on chain ${o} with ${void 0!==m?`${m} BPS`:"AUTO"} slippage`);const g=n||new dt({chainId:o,env:y}),b=u.receiver||s,v="sell"===h;J("Building app data...");const A=Vt(o,a),w=null!=m?m:A,T={slippageBps:w,orderClass:"market",appCode:i,partnerFee:p};return Promise.resolve(Jl(T,r?.appData)).then(function(n){const{appDataKeccak256:i,fullAppData:o}=n;J(`App data: appDataKeccak256=${i} fullAppData=${o}`);const h={from:s,sellToken:l,buyToken:c,receiver:b,validFor:f,appData:o,appDataHash:i,priceQuality:St.OPTIMAL,signingScheme:kt.EIP712,...a?cc:{},...v?{kind:wt.SELL,sellAmountBeforeFee:d}:{kind:At.BUY,buyAmountAfterFee:d},...r?.quoteRequest};return J("Getting quote..."),Promise.resolve(g.getQuote(h)).then(function(i){let o;function s(t){return o?t:{...c,appDataInfo:n,tradeParameters:e,slippageBps:w}}const l=oc({isEthFlow:a,quote:i,tradeParameters:u,trader:t,advancedSettings:r}),c={isEthFlow:a,quote:i,orderBookApi:g,suggestedSlippageBps:l},d=function(){if(void 0===m)return function(){if(l>A)return J(`Suggested slippage is greater than ${A} BPS (default), using the suggested slippage (${l} BPS)`),Promise.resolve(Jl({...T,slippageBps:l},r?.appData)).then(function(t){J(`App data with new suggested slippage: appDataKeccak256=${t.appDataKeccak256} fullAppData=${t.fullAppData}`);const r={...c,appDataInfo:t,tradeParameters:{...e,slippageBps:l},slippageBps:l};return o=1,r});J(`Suggested slippage is only ${l} BPS. Using the default slippage (${A} BPS)`)}()}();return d&&d.then?d.then(s):s(d)})})}catch(e){return Promise.reject(e)}},cc={signingScheme:kt.EIP1271,onchainOrder:!0,verificationGasLimit:0},dc=function({orderBookApi:e,result:{signer:t,appDataInfo:r,quoteResponse:n,tradeParameters:i}},o){try{function s(r){const i=u?.metadata?.quote?.slippageBips,s=u?.metadata?.partnerFee;if(void 0!==i&&(a.slippageBps=i),s&&(a.partnerFee=s),o?.quoteRequest){const{receiver:e,validTo:t,sellToken:r,buyToken:n}=o.quoteRequest;e&&(a.receiver=e),t&&(a.validTo=t),r&&(a.sellToken=r),n&&(a.buyToken=n)}return pr(e,t,r,a,{signingScheme:o?.quoteRequest?.signingScheme,networkCostsAmount:n.quote.feeAmount,...o?.additionalParams})}const a=or(i,n),u=o?.appData;return Promise.resolve(u?Promise.resolve(Kl(r.doc,u)).then(s):s(r))}catch(l){return Promise.reject(l)}},hc=function(e,t,r){try{return Promise.resolve(sc(e,t,r)).then(function(e){return dc(e,t)})}catch(e){return Promise.reject(e)}},pc=function(e,t,r){try{const n=t?.appData?.metadata?.quote?.slippageBips,i=t?.appData?.metadata?.partnerFee;void 0!==n&&(e.slippageBps=n),i&&(e.partnerFee=i),e.slippageBps||(e.slippageBps=0),e.env||(e.env="prod");const{appCode:o,chainId:s,sellToken:a,buyToken:u,sellAmount:l,buyAmount:c,partnerFee:d}=e;J(`Limit order ${l} ${a} for ${c} ${u} on chain ${s}`);const h=zl(e.signer),p=r||new dt({chainId:s,env:e.env});return J("Building app data..."),Promise.resolve(Jl({slippageBps:e.slippageBps,orderClass:"limit",appCode:o,partnerFee:d},t?.appData)).then(function(r){return pr(p,h,r,e,t?.additionalParams)})}catch(e){return Promise.reject(e)}},fc=function(e,t,r,n){try{const i=nr.connect(r,e),o=ze[t],s=i.interface.encodeFunctionData("setPreSignature",[n,!0]);return Promise.resolve(i.estimateGas.setPreSignature(n,!0).then(e=>BigInt(e.toHexString())).catch(()=>Mt)).then(function(e){return{data:s,gasLimit:"0x"+ar(e).toString(16),to:o,value:"0"}})}catch(e){return Promise.reject(e)}};class mc{constructor(e={},t={}){this.traderParams=void 0,this.options=void 0,this.traderParams=e,this.options=t,void 0!==t.enableLogging&&Q(t.enableLogging)}setTraderParams(e){return this.traderParams={...this.traderParams,...e},this}getQuote(e,t){try{const r=this;return Promise.resolve(sc(r.mergeParams(e),t,r.options.orderBookApi)).then(function(t){return{quoteResults:t.result,postSwapOrderFromQuote:function(r,n){try{return Promise.resolve(n?.beforeOrderSign?.()).then(function(){return dc({...t,result:{...t.result,tradeParameters:lr({quoteParameters:t.result.tradeParameters,sellToken:e.sellToken})}},r).catch(e=>{throw n?.onOrderSignError?.(),e}).then(e=>(n?.afterOrderSign?.(),e))})}catch(e){return Promise.reject(e)}}}})}catch(e){return Promise.reject(e)}}getQuoteResults(e,t){try{const r=this;return Promise.resolve(sc(r.mergeParams(e),t,r.options.orderBookApi))}catch(e){return Promise.reject(e)}}postSwapOrder(e,t){try{const r=this;return Promise.resolve(hc(r.mergeParams(e),t,r.options.orderBookApi))}catch(e){return Promise.reject(e)}}postLimitOrder(e,t){try{const r=this;return Promise.resolve(pc(r.mergeParams(e),t,r.options.orderBookApi))}catch(e){return Promise.reject(e)}}postSellNativeCurrencyOrder(e,t){try{const r=this;return Promise.resolve(sc(r.mergeParams(e),t,r.options.orderBookApi)).then(function(r){const{tradeParameters:n,quoteResponse:i}=r.result;return hr(r.orderBookApi,r.result.signer,r.result.appDataInfo,or(lr({quoteParameters:n,sellToken:e.sellToken}),i),t?.additionalParams)})}catch(e){return Promise.reject(e)}}getPreSignTransaction(e){try{const t=this.mergeParams(e),r=zl(t.signer);return Promise.resolve(fc(r,t.chainId,e.account,e.orderId))}catch(e){return Promise.reject(e)}}mergeParams(e){const{chainId:t,signer:r,appCode:n,env:i}=e,o={chainId:t||this.traderParams.chainId,signer:r||this.traderParams.signer,appCode:n||this.traderParams.appCode,env:i||this.traderParams.env};return function(e){if(!function(e){return 0===yc(e).length}(e))throw new Error("Missing trader parameters: "+yc(e).join(", "))}(o),{...e,...o}}}function yc(e){const t=[];return e.chainId||t.push("chainId"),e.signer||t.push("signer"),e.appCode||t.push("appCode"),t}const gc=`${re}/src/bridging/providers`,bc=24e4,vc=36e4,Ac="cow-sdk://bridging/providers";function wc(e){return{callData:"0x00",gasLimit:e.toString(),target:"0x0000000000000000000000000000000000000000",dappId:Ac}}function Tc(e,t){return e.callData===t.callData&&e.gasLimit===t.gasLimit&&e.target===t.target}const Ec=new Pr("units/5.8.0"),Sc=["wei","kwei","mwei","gwei","szabo","finney","ether"];function Ic(e,t){const r=V(e).find(e=>e.dappId?.startsWith(Ac));if(!r)return;const n=r.dappId;return t.find(e=>e.info.dappId===n)}const kc=function(e){try{const{chainId:t,orderId:r,orderBookApi:n,providers:i,env:o}=e,s={chainId:t,env:o};return Promise.resolve(n.getOrder(r,s)).then(function(e){const o=e.fullAppData&&Ic(e.fullAppData,i);if(!o)throw new U(`Unknown Bridge provider in order ${e.uid}. Add provider to the SDK config to be able to decode the order`);return Promise.resolve(n.getTrades({orderUid:e.uid},s)).then(function(n){let i;const s=function(){if(n.length>0){const s=n[0],a=s.txHash;if(!a)throw new U(`No tx hash found for order ${r} . First trade, with log index ${s.logIndex}`);return Promise.resolve(o.getBridgingParams(t,r,a)).then(function({params:r,status:n}){if(!r||!n)throw new U(`Bridging params cannot be derived from transaction: ${a}`);const s={provider:o,chainId:t,order:e,statusResult:{status:M.UNKNOWN},bridgingParams:r,tradeTxHash:a};try{const e=o.getExplorerUrl(r.bridgingId),t={...s,statusResult:n,explorerUrl:e};return i=1,t}catch(e){return console.error("Cannot get bridging status",e),i=1,s}})}}();return s&&s.then?s.then(function(e){return i?e:null}):i?s:null})})}catch(e){return Promise.reject(e)}};class Pc{constructor(e){var t,r;this.options=void 0,this.config=void 0,this.options=e;const{providers:n,...i}=e;if(!n||1!==n.length)throw new Error("Current implementation only supports a single bridge provider");void 0!==e.enableLogging&&Q(e.enableLogging);const o=null!==(t=e.tradingSdk)&&void 0!==t?t:new mc,s=null!==(r=o?.options.orderBookApi)&&void 0!==r?r:new dt;this.config={...i,providers:n,tradingSdk:o,orderBookApi:s}}get provider(){const{providers:e}=this.config;return e[0]}getProviders(){return this.config.providers}getSourceNetworks(){return Promise.resolve(Pe)}getTargetNetworks(){try{return Promise.resolve(this.provider.getNetworks())}catch(e){return Promise.reject(e)}}getBuyTokens(e){try{return Promise.resolve(this.provider.getBuyTokens(e))}catch(e){return Promise.reject(e)}}getQuote(e,t){try{const r=this,{sellTokenChainId:n,buyTokenChainId:i}=e,o=r.config.tradingSdk;return Promise.resolve(n!==i?function(e){try{const{provider:t,swapAndBridgeRequest:r,advancedSettings:n,tradingSdk:i,bridgeHookSigner:o}=e,{kind:s,sellTokenChainId:a,sellTokenAddress:u,buyTokenChainId:l,buyTokenAddress:c,amount:d,signer:h,...f}=r,m=zl(h);if(s!==bt.SELL)throw new Error("Bridging only support SELL orders");return J(`Cross-chain ${s} ${d} ${u} (source chain ${a}) for ${c} (target chain ${l})`),Promise.resolve(function(e){try{const{provider:t,swapAndBridgeRequest:r}=e;return Promise.resolve(t.getIntermediateTokens(r)).then(function(e){if(0===e.length)throw new L(O.NO_INTERMEDIATE_TOKENS);const t=e[0];return J(`Using ${t} as intermediate tokens`),{...r,sellTokenAddress:t.address,sellTokenDecimals:t.decimals}})}catch(e){return Promise.reject(e)}}({swapAndBridgeRequest:r,provider:t})).then(function(e){return Promise.resolve(t.getGasLimitEstimationForHook(e)).then(function(h){const y=wc(h);J(`Using mocked hook for swap gas estimation: ${JSON.stringify(y)}`);const{sellTokenAddress:g,sellTokenDecimals:b}=e,v={...f,kind:s,chainId:a,sellToken:u,buyToken:g,buyTokenDecimals:b,amount:d.toString(),signer:m},{signer:A,...w}=v;J(`Getting a quote for the swap (sell token to buy intermediate token). Delegate to trading SDK with params: ${JSON.stringify(w,et)}`);const T=n?.appData?.metadata?.hooks;return Promise.resolve(i.getQuoteResults(v,{...n,appData:{...n?.appData,metadata:{hooks:{pre:T?.pre,post:[...T?.post||[],y]},bridging:{destinationChainId:l.toString(),destinationTokenAddress:c}}}})).then(function({result:n,orderBookApi:i}){const s=function(i,o,s){try{const u=s?.appData,l=s?.quoteRequest?.receiver,c=s?.quoteRequest?.validTo;return Promise.resolve(function(e){try{const{swapResult:t,bridgeRequestWithoutAmount:r,provider:n,intermediateTokenAmount:i,appDataOverride:o}=e,s={...r,amount:i};return Promise.resolve(function(e,{provider:t,signer:r,hookGasLimit:n,swapResult:i,validToOverride:o}){try{return Promise.resolve(t.getQuote(e)).then(function(s){return Promise.resolve(t.getUnsignedBridgeCall(e,s)).then(function(a){const u=BigInt(o||i.orderToSign.validTo),l=p(["bytes","uint256"],[a.data,u]);return Promise.resolve(t.getSignedHook(e.sellTokenChainId,a,r,l,u,n)).then(function(e){return{hook:e,unsignedBridgeCall:a,bridgingQuote:s}})})})}catch(e){return Promise.reject(e)}}(s,e)).then(function({hook:e,unsignedBridgeCall:r,bridgingQuote:i}){return Promise.resolve(Kl(t.appDataInfo.doc,o||{})).then(function(t){const o=t.doc.metadata.hooks,a=(o?.post||[]).filter(e=>!e.dappId?.startsWith(Ac));return Promise.resolve(Kl(t.doc,{metadata:{hooks:{pre:o?.pre,post:[...a,e.postHook]}}})).then(function(t){return{bridgeResult:{providerInfo:n.info,tradeParameters:s,bridgeCallDetails:{unsignedBridgeCall:r,preAuthorizedBridgingHook:e},isSell:i.isSell,expectedFillTimeSeconds:i.expectedFillTimeSeconds,fees:i.fees,limits:i.limits,quoteTimestamp:i.quoteTimestamp,amountsAndCosts:i.amountsAndCosts},bridgeHook:e,appDataInfo:t}})})})}catch(e){return Promise.reject(e)}}({swapAndBridgeRequest:{...r,kind:bt.SELL},swapResult:n,bridgeRequestWithoutAmount:{...e,receiver:l||e.receiver},provider:t,intermediateTokenAmount:a,signer:i,appDataOverride:u,validToOverride:c,hookGasLimit:o})).then(function({bridgeHook:e,appDataInfo:{doc:t,fullAppData:r,appDataKeccak256:i},bridgeResult:o}){return J(`Bridge hook for swap: ${JSON.stringify(e)}`),n.tradeParameters.receiver=e.recipient,J(`App data for swap: appDataKeccak256=${i}, fullAppData="${r}"`),n.appDataInfo={fullAppData:r,appDataKeccak256:i,doc:t},{bridgeResult:o,swapResult:{...n,tradeParameters:{...n.tradeParameters,receiver:e.recipient}}}})}catch(e){return Promise.reject(e)}},a=n.amountsAndCosts.afterSlippage.buyAmount;return J(`Expected to receive ${a} of the intermediate token (${function(e,t){if("string"!=typeof e&&Ec.throwArgumentError("value must be a string","value",e),"string"==typeof t){const e=Sc.indexOf(t);-1!==e&&(t=3*e)}return pn(e,null!=t?t:18)}(a.toString(),b).toString()})`),J(`Using gas limit: ${h}`),Promise.resolve(s(o?zl(o):m,h)).then(function(e){return{swap:e.swapResult,bridge:e.bridgeResult,postSwapOrderFromQuote:function(e,t){try{return Promise.resolve(t?.beforeBridgingSign?.()).then(function(){return Promise.resolve(s(m,h,e).catch(e=>{throw t?.onBridgingSignError?.(),e})).then(function({swapResult:r}){return Promise.resolve(t?.afterBridgingSign?.()).then(function(){const n={result:{...r,tradeParameters:lr({quoteParameters:r.tradeParameters,sellToken:u}),signer:m},orderBookApi:i};return Promise.resolve(t?.beforeOrderSign?.()).then(function(){return dc(n,{...e,appData:r.appDataInfo.doc,quoteRequest:{...e?.quoteRequest,receiver:r.tradeParameters.receiver}}).catch(e=>{throw t?.onOrderSignError?.(),e}).then(function(e){try{return Promise.resolve(t?.afterOrderSign?.()).then(function(){return e})}catch(e){return Promise.reject(e)}})})})})})}catch(e){return Promise.reject(e)}}}})})})})}catch(e){return Promise.reject(e)}}({swapAndBridgeRequest:e,advancedSettings:t,tradingSdk:o,provider:r.provider,bridgeHookSigner:t?.quoteSigner}):function(e){const{quoteBridgeRequest:t,advancedSettings:r,tradingSdk:n}=e,{sellTokenAddress:i,buyTokenAddress:o,amount:s,...a}=t,u={...a,chainId:t.sellTokenChainId,sellToken:i,buyToken:o,amount:s.toString()},{signer:l,...c}=u;return J(`Single-chain swap: Delegate to trading SDK with params ${JSON.stringify(c,et)}`),n.getQuote(u,r)}({quoteBridgeRequest:e,advancedSettings:t,tradingSdk:o}))}catch(e){return Promise.reject(e)}}getOrder(e){try{const t=this,{orderBookApi:r}=t.config,{chainId:n,orderId:i,env:o=r.context.env}=e;return Promise.resolve(kc({chainId:n,orderId:i,orderBookApi:r,env:o,providers:t.config.providers}))}catch(e){return Promise.reject(e)}}getOrderBridgingStatus(e,t){try{return Promise.resolve(this.provider.getStatus(e,t))}catch(e){return Promise.reject(e)}}getProviderFromAppData(e){return Ic(e,this.getProviders())}}class Cc{constructor(e={}){this.options=void 0,this.options=e}getAvailableRoutes({originChainId:e,originToken:t,destinationChainId:r,destinationToken:n}){try{const i=this,o={};return e&&(o.originChainId=e),t&&(o.originToken=t),r&&(o.destinationChainId=r),n&&(o.destinationToken=n),Promise.resolve(i.fetchApi("/available-routes",o,_c))}catch(e){return Promise.reject(e)}}getSuggestedFees(e){try{const t=this,r={token:e.token,originChainId:e.originChainId.toString(),destinationChainId:e.destinationChainId.toString(),amount:e.amount.toString()};return e.recipient&&(r.recipient=e.recipient),Promise.resolve(t.fetchApi("/suggested-fees",r,Nc))}catch(e){return Promise.reject(e)}}getSupportedTokens(){try{return Promise.resolve(this.fetchApi("/token-list",{}).then(e=>e.map(e=>({...e,logoUrl:e.logoURI}))))}catch(e){return Promise.reject(e)}}getDepositStatus(e){try{return Promise.resolve(this.fetchApi("/deposit/status",{originChainId:e.originChainId,depositId:e.depositId}))}catch(e){return Promise.reject(e)}}fetchApi(e,t,r){try{const n=`${this.options.apiBaseUrl||"https://app.across.to/api"}${e}?${new URLSearchParams(t).toString()}`;return J(`Fetching Across API: GET ${n}. Params: ${JSON.stringify(t)}`),Promise.resolve(fetch(n,{method:"GET"})).then(function(t){let n;function i(i){return n?i:Promise.resolve(t.json()).then(function(t){if(r){if(r(t))return t;throw new L(O.INVALID_API_JSON_RESPONSE,{path:e,json:t})}return t})}const o=function(){if(!t.ok)return Promise.resolve(t.json()).then(function(e){throw new L(O.API_ERROR,e)})}();return o&&o.then?o.then(i):i(o)})}catch(e){return Promise.reject(e)}}}function Nc(e){return"object"==typeof e&&null!==e&&"totalRelayFee"in e&&xc(e.totalRelayFee)&&"relayerCapitalFee"in e&&xc(e.relayerCapitalFee)&&"relayerGasFee"in e&&xc(e.relayerGasFee)&&"lpFee"in e&&xc(e.lpFee)&&"timestamp"in e&&"isAmountTooLow"in e&&"quoteBlock"in e&&"spokePoolAddress"in e&&"exclusiveRelayer"in e&&"exclusivityDeadline"in e&&"estimatedFillTimeSec"in e&&"fillDeadline"in e&&"limits"in e&&"object"==typeof(t=e.limits)&&null!==t&&"minDeposit"in t&&"maxDeposit"in t&&"maxDepositInstant"in t&&"maxDepositShortDelay"in t&&"recommendedDepositInstant"in t;var t}function xc(e){return"object"==typeof e&&null!==e&&"pct"in e&&"total"in e}function _c(e){return!!Array.isArray(e)&&e.every(e=>function(e){return"object"==typeof e&&null!==e&&"originChainId"in e&&"originToken"in e&&"destinationChainId"in e&&"destinationToken"in e&&"originTokenSymbol"in e&&"destinationTokenSymbol"in e}(e))}const Rc=new f(["event FundsDeposited(bytes32 inputToken, bytes32 outputToken, uint256 inputAmount, uint256 outputAmount, uint256 indexed destinationChainId, uint256 indexed depositId, uint32 quoteTimestamp, uint32 fillDeadline, uint32 exclusivityDeadline, bytes32 indexed depositor, bytes32 recipient, bytes32 exclusiveRelayer, bytes message)"]),Mc=new f(["event Trade(address owner, address sellToken, address buyToken, uint256 sellAmount, uint256 buyAmount, uint256 feeAmount, bytes orderUid)"]);[{chainId:B.MAINNET,tokens:{usdc:"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",weth:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",wbtc:"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599",dai:"0x6B175474E89094C44Da98b954EedeAC495271d0F",usdt:"0xdAC17F958D2ee523a2206206994597C13D831ec7"}},{chainId:B.POLYGON,tokens:{usdc:"0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",weth:"0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619",wbtc:"0x1BFD67037B42Cf73acF2047067bd4F2C47D9BfD6",dai:"0x8f3Cf7ad23Cd3CaDbD9735AFf958023239c6A063",usdt:"0xc2132D05D31c914a87C6611C10748AEb04B58e8F"}},{chainId:B.ARBITRUM_ONE,tokens:{usdc:"0xaf88d065e77c8cC2239327C5EDb3A432268e5831",weth:"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",wbtc:"0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f",dai:"0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1",usdt:"0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9"}},{chainId:B.BASE,tokens:{usdc:"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",weth:"0x4200000000000000000000000000000000000006",dai:"0x50c5725949A6F0c72E6C4a641F24049A917DB0Cb"}},{chainId:D.OPTIMISM,tokens:{usdc:"0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85",weth:"0x4200000000000000000000000000000000000006",wbtc:"0x68f180fcCe6836688e9084f035309E29Bf0A2095",dai:"0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1",usdt:"0x94b008aA00579c1307B0EF2c499aD98a8ce58e58"}}].reduce((e,t)=>(e[t.chainId]=t,e),{});const Oc=Rc.getEventTopic("FundsDeposited"),Bc=Mc.getEventTopic("Trade"),Dc={[B.MAINNET]:"0x5c7BCd6E7De5423a257D81B442095A1a6ced35C5",[B.ARBITRUM_ONE]:"0xe35e9842fceaca96570b734083f4a58e8f7c5f2a",[B.BASE]:"0x09aea4b2242abC8bb4BB78D537A67a245A7bEC64",[B.SEPOLIA]:"0x5ef6C01E11889d86803e0B23e3cB3F9E9d97B662",[B.POLYGON]:"0x9295ee1d8C5b022Be115A2AD3c30C72E34e7F096",[B.LENS]:"0xe7cb3e167e7475dE1331Cf6E0CEb187654619E12",[B.BNB]:"0x4e8E101924eDE233C13e2D8622DC8aED2872d505",[B.GNOSIS_CHAIN]:void 0,[B.AVALANCHE]:void 0,[D.OPTIMISM]:void 0},Lc={[B.MAINNET]:"0xf2ae6728b6f146556977Af0A68bFbf5bADA22863",[B.ARBITRUM_ONE]:"0x5771A4b4029832e79a75De7B485E5fBbec28848f",[B.BASE]:"0xd4e943dc6ddc885f6229ce33c2e3dfe402a12c81",[B.GNOSIS_CHAIN]:void 0,[B.SEPOLIA]:void 0,[B.POLYGON]:void 0,[D.OPTIMISM]:void 0,[B.AVALANCHE]:void 0,[B.LENS]:void 0,[B.BNB]:void 0},Fc=10n**18n;function Uc(e,t,r){const{amount:n,sellTokenDecimals:i,buyTokenDecimals:o}=e,s=_t(n,i),a=s.big,u=_t(s.num,o).big,l=BigInt(r.totalRelayFee.pct),c=Hc(u,l),d=a-Hc(a,l),h=u-c,p=function(e,t){return e*BigInt(1e4-t)/10000n}(c,t);return{beforeFee:{sellAmount:a,buyAmount:u},afterFee:{sellAmount:a,buyAmount:c},afterSlippage:{sellAmount:a,buyAmount:p},costs:{bridgingFee:{feeBps:(f=l,jc(f),Number(10000n*f/Fc)),amountInSellCurrency:d,amountInBuyCurrency:h}},slippageBps:t};var f}function Gc(e){return m.decode(["address"],e).toString()}function jc(e){if(e>Fc||e<0n)throw new Error("Fee cannot exceed 100% or be negative")}function Hc(e,t){return jc(t),e*(Fc-t)/Fc}const qc={filled:M.EXECUTED,slowFillRequested:M.EXECUTED,pending:M.IN_PROGRESS,expired:M.EXPIRED,refunded:M.REFUND};let Vc;function zc(e,t,r){if(!e.s){if(r instanceof Kc){if(!r.s)return void(r.o=zc.bind(null,e,t));1&t&&(t=r.s),r=r.v}if(r&&r.then)return void r.then(zc.bind(null,e,t),zc.bind(null,e,2));e.s=t,e.v=r;const n=e.o;n&&n(e)}}const Kc=/*#__PURE__*/function(){function e(){}return e.prototype.then=function(t,r){const n=new e,i=this.s;if(i){const e=1&i?t:r;if(e){try{zc(n,1,e(this.v))}catch(e){zc(n,2,e)}return n}return this}return this.o=function(e){try{const i=e.v;1&e.s?zc(n,1,t?t(i):i):r?zc(n,1,r(i)):zc(n,2,i)}catch(e){zc(n,2,e)}},n},e}(),Wc={ExecuteHooks:[{type:"Call[]",name:"calls"},{type:"bytes32",name:"nonce"},{type:"uint256",name:"deadline"}],Call:[{type:"address",name:"target"},{type:"uint256",name:"value"},{type:"bytes",name:"callData"},{type:"bool",name:"allowFailure"},{type:"bool",name:"isDelegateCall"}]};class Jc{constructor(e,t,r=je){this.chainId=void 0,this.customOptions=void 0,this.version=void 0,this.chainId=e,this.customOptions=t,this.version=r}proxyOf(e){const t=m.encode(["address"],[e]),r=p(["bytes","bytes"],[this.proxyCreationCode(),m.encode(["address","address"],[this.getImplementationAddress(),e])]);return y(this.getFactoryAddress(),t,r)}encodeExecuteHooksForFactory(e,t,r,n,i){return(Vc||(Vc=Qt.createInterface()),Vc).encodeFunctionData("executeHooks",[e,t,r,n,i])}signCalls(e,t,r,n,i){try{const o=this;return Promise.resolve(n.getAddress()).then(function(s){const a=o.proxyOf(s),{domain:u,types:l,message:c}=o.infoToSign(e,t,r,a);return Promise.resolve(function(e,t,r,n,i){try{let o,s;function a(e){return o?e:g(b(u))}let u=null;const l=function(e,t){var r,n=-1;e:{for(var i=0;i<t.length;i++){var o=t[i][0];if(o){var s=o();if(s&&s.then)break e;if(s===e){n=i;break}}else n=i}if(-1!==n){do{for(var a=t[n][1];!a;)n++,a=t[n][1];var u=a();if(u&&u.then){r=!0;break e}var l=t[n][2];n++}while(l&&!l());return u}}const c=new Kc,d=zc.bind(null,c,2);return(r?u.then(h):s.then(function r(s){for(;;){if(s===e){n=i;break}if(++i===t.length){if(-1!==n)break;return void zc(c,1,u)}if(o=t[i][0]){if((s=o())&&s.then)return void s.then(r).then(void 0,d)}else n=i}do{for(var a=t[n][1];!a;)n++,a=t[n][1];var u=a();if(u&&u.then)return void u.then(h).then(void 0,d);var l=t[n][2];n++}while(l&&!l());zc(c,1,u)})).then(void 0,d),c;function h(e){for(;;){var r=t[n][2];if(!r||r())break;n++;for(var i=t[n][1];!i;)n++,i=t[n][1];if((e=i())&&e.then)return void e.then(h).then(void 0,d)}zc(c,1,e)}}(e,[[function(){return S.EIP712},function(){if(!I(t))throw new Error("signer does not support signing typed data");return Promise.resolve(t._signTypedData(r,n,i)).then(function(e){u=e,s=1})}],[function(){return S.ETHSIGN},function(){return Promise.resolve(t.signMessage(v(k(r,n,i)))).then(function(e){u=e,s=1})}],[void 0,function(){throw new Error("invalid signing scheme")}]]);return Promise.resolve(l&&l.then?l.then(a):a(l))}catch(c){return Promise.reject(c)}}(i,n,u,l,c))})}catch(e){return Promise.reject(e)}}infoToSign(e,t,r,n){const i={calls:e,nonce:t,deadline:r};return{domain:this.getDomain(n),types:Wc,message:i}}getDomain(e){return{name:"COWShed",version:this.version,chainId:this.chainId,verifyingContract:e}}proxyCreationCode(){var e;return null!==(e=this.customOptions?.proxyCreationCode)&&void 0!==e?e:Ve[this.version]}getFactoryAddress(){var e;return null!==(e=this.customOptions?.factoryAddress)&&void 0!==e?e:He[this.version]}getImplementationAddress(){var e;return null!==(e=this.customOptions?.implementationAddress)&&void 0!==e?e:qe[this.version]}}const Qc=Wn.toBigInt();class Yc{constructor(e={},t=je){this.options=void 0,this.version=void 0,this.hooksCache=new Map,this.options=e,this.version=t}getCowShedAccount(e,t){return this.getCowShedHooks(e,this.options?.factoryOptions).proxyOf(t)}signCalls({calls:e,signer:t,chainId:r,nonce:n=Yc.getNonce(),deadline:i=Qc,gasLimit:o,defaultGasLimit:s,signingScheme:a=S.EIP712}){try{const u=this,l=u.getCowShedHooks(r),c=t||u.options?.signer;if(!c)throw new Error("Signer is required");const d=zl(c);return Promise.resolve(d.getAddress()).then(function(t){const r=l.proxyOf(t);return Promise.resolve(l.signCalls(e,n,i,d,a)).then(function(a){function u(e){return{cowShedAccount:r,signedMulticall:h,gasLimit:BigInt(e.toString())}}const c=l.encodeExecuteHooksForFactory(e,n,i,t,a),h={to:l.getFactoryAddress(),data:c,value:BigInt(0)};return o?u(o):Promise.resolve(d.estimateGas(h).catch(e=>{const t=`Error estimating gas for the cow-shed call: ${JSON.stringify(h,et,2)}. Review the factory call`;if(s)return J(`${t}, using the default gas limit.`),s;throw new Error(`${t}, or provide the defaultGasLimit parameter.`,{cause:e})})).then(u)})})}catch(e){return Promise.reject(e)}}getCowShedHooks(e,t){let r=this.hooksCache.get(e);return r||(r=new Jc(e,t),this.hooksCache.set(e,r),r)}static getNonce(){return A(Date.now().toString())}}const Xc="abi/5.8.0",Zc=new Pr(Xc),$c={};let ed={calldata:!0,memory:!0,storage:!0},td={calldata:!0,memory:!0};function rd(e,t){if("bytes"===e||"string"===e){if(ed[t])return!0}else if("address"===e){if("payable"===t)return!0}else if((e.indexOf("[")>=0||"tuple"===e)&&td[t])return!0;return(ed[t]||"payable"===t)&&Zc.throwArgumentError("invalid modifier","name",t),!1}function nd(e,t){for(let r in t)An(e,r,t[r])}const id=Object.freeze({sighash:"sighash",minimal:"minimal",full:"full",json:"json"}),od=new RegExp(/^(.*)\[([0-9]*)\]$/);class sd{constructor(e,t){e!==$c&&Zc.throwError("use fromString",Pr.errors.UNSUPPORTED_OPERATION,{operation:"new ParamType()"}),nd(this,t);let r=this.type.match(od);nd(this,r?{arrayLength:parseInt(r[2]||"-1"),arrayChildren:sd.fromObject({type:r[1],components:this.components}),baseType:"array"}:{arrayLength:null,arrayChildren:null,baseType:null!=this.components?"tuple":this.type}),this._isParamType=!0,Object.freeze(this)}format(e){if(e||(e=id.sighash),id[e]||Zc.throwArgumentError("invalid format type","format",e),e===id.json){let t={type:"tuple"===this.baseType?"tuple":this.type,name:this.name||void 0};return"boolean"==typeof this.indexed&&(t.indexed=this.indexed),this.components&&(t.components=this.components.map(t=>JSON.parse(t.format(e)))),JSON.stringify(t)}let t="";return"array"===this.baseType?(t+=this.arrayChildren.format(e),t+="["+(this.arrayLength<0?"":String(this.arrayLength))+"]"):"tuple"===this.baseType?(e!==id.sighash&&(t+=this.type),t+="("+this.components.map(t=>t.format(e)).join(e===id.full?", ":",")+")"):t+=this.type,e!==id.sighash&&(!0===this.indexed&&(t+=" indexed"),e===id.full&&this.name&&(t+=" "+this.name)),t}static from(e,t){return"string"==typeof e?sd.fromString(e,t):sd.fromObject(e)}static fromObject(e){return sd.isParamType(e)?e:new sd($c,{name:e.name||null,type:gd(e.type),indexed:null==e.indexed?null:!!e.indexed,components:e.components?e.components.map(sd.fromObject):null})}static fromString(e,t){return r=function(e,t){let r=e;function n(t){Zc.throwArgumentError(`unexpected character at position ${t}`,"param",e)}function i(e){let r={type:"",name:"",parent:e,state:{allowType:!0}};return t&&(r.indexed=!1),r}e=e.replace(/\s/g," ");let o={type:"",name:"",state:{allowType:!0}},s=o;for(let r=0;r<e.length;r++){let o=e[r];switch(o){case"(":s.state.allowType&&""===s.type?s.type="tuple":s.state.allowParams||n(r),s.state.allowType=!1,s.type=gd(s.type),s.components=[i(s)],s=s.components[0];break;case")":delete s.state,"indexed"===s.name&&(t||n(r),s.indexed=!0,s.name=""),rd(s.type,s.name)&&(s.name=""),s.type=gd(s.type);let e=s;s=s.parent,s||n(r),delete e.parent,s.state.allowParams=!1,s.state.allowName=!0,s.state.allowArray=!0;break;case",":delete s.state,"indexed"===s.name&&(t||n(r),s.indexed=!0,s.name=""),rd(s.type,s.name)&&(s.name=""),s.type=gd(s.type);let a=i(s.parent);s.parent.components.push(a),delete s.parent,s=a;break;case" ":s.state.allowType&&""!==s.type&&(s.type=gd(s.type),delete s.state.allowType,s.state.allowName=!0,s.state.allowParams=!0),s.state.allowName&&""!==s.name&&("indexed"===s.name?(t||n(r),s.indexed&&n(r),s.indexed=!0,s.name=""):rd(s.type,s.name)?s.name="":s.state.allowName=!1);break;case"[":s.state.allowArray||n(r),s.type+=o,s.state.allowArray=!1,s.state.allowName=!1,s.state.readArray=!0;break;case"]":s.state.readArray||n(r),s.type+=o,s.state.readArray=!1,s.state.allowArray=!0,s.state.allowName=!0;break;default:s.state.allowType?(s.type+=o,s.state.allowParams=!0,s.state.allowArray=!0):s.state.allowName?(s.name+=o,delete s.state.allowArray):s.state.readArray?s.type+=o:n(r)}}return s.parent&&Zc.throwArgumentError("unexpected eof","param",e),delete o.state,"indexed"===s.name?(t||n(r.length-7),s.indexed&&n(r.length-7),s.indexed=!0,s.name=""):rd(s.type,s.name)&&(s.name=""),o.type=gd(o.type),o}(e,!!t),sd.fromObject({name:r.name,type:r.type,indexed:r.indexed,components:r.components});var r}static isParamType(e){return!(null==e||!e._isParamType)}}function ad(e,t){return function(e){e=e.trim();let t=[],r="",n=0;for(let i=0;i<e.length;i++){let o=e[i];","===o&&0===n?(t.push(r),r=""):(r+=o,"("===o?n++:")"===o&&(n--,-1===n&&Zc.throwArgumentError("unbalanced parenthesis","value",e)))}return r&&t.push(r),t}(e).map(e=>sd.fromString(e,t))}class ud{constructor(e,t){e!==$c&&Zc.throwError("use a static from method",Pr.errors.UNSUPPORTED_OPERATION,{operation:"new Fragment()"}),nd(this,t),this._isFragment=!0,Object.freeze(this)}static from(e){return ud.isFragment(e)?e:"string"==typeof e?ud.fromString(e):ud.fromObject(e)}static fromObject(e){if(ud.isFragment(e))return e;switch(e.type){case"function":return fd.fromObject(e);case"event":return ld.fromObject(e);case"constructor":return pd.fromObject(e);case"error":return yd.fromObject(e);case"fallback":case"receive":return null}return Zc.throwArgumentError("invalid fragment object","value",e)}static fromString(e){return"event"===(e=(e=(e=e.replace(/\s/g," ")).replace(/\(/g," (").replace(/\)/g,") ").replace(/\s+/g," ")).trim()).split(" ")[0]?ld.fromString(e.substring(5).trim()):"function"===e.split(" ")[0]?fd.fromString(e.substring(8).trim()):"constructor"===e.split("(")[0].trim()?pd.fromString(e.trim()):"error"===e.split(" ")[0]?yd.fromString(e.substring(5).trim()):Zc.throwArgumentError("unsupported fragment","value",e)}static isFragment(e){return!(!e||!e._isFragment)}}class ld extends ud{format(e){if(e||(e=id.sighash),id[e]||Zc.throwArgumentError("invalid format type","format",e),e===id.json)return JSON.stringify({type:"event",anonymous:this.anonymous,name:this.name,inputs:this.inputs.map(t=>JSON.parse(t.format(e)))});let t="";return e!==id.sighash&&(t+="event "),t+=this.name+"("+this.inputs.map(t=>t.format(e)).join(e===id.full?", ":",")+") ",e!==id.sighash&&this.anonymous&&(t+="anonymous "),t.trim()}static from(e){return"string"==typeof e?ld.fromString(e):ld.fromObject(e)}static fromObject(e){if(ld.isEventFragment(e))return e;"event"!==e.type&&Zc.throwArgumentError("invalid event object","value",e);const t={name:vd(e.name),anonymous:e.anonymous,inputs:e.inputs?e.inputs.map(sd.fromObject):[],type:"event"};return new ld($c,t)}static fromString(e){let t=e.match(Ad);t||Zc.throwArgumentError("invalid event string","value",e);let r=!1;return t[3].split(" ").forEach(e=>{switch(e.trim()){case"anonymous":r=!0;break;case"":break;default:Zc.warn("unknown modifier: "+e)}}),ld.fromObject({name:t[1].trim(),anonymous:r,inputs:ad(t[2],!0),type:"event"})}static isEventFragment(e){return e&&e._isFragment&&"event"===e.type}}function cd(e,t){t.gas=null;let r=e.split("@");return 1!==r.length?(r.length>2&&Zc.throwArgumentError("invalid human-readable ABI signature","value",e),r[1].match(/^[0-9]+$/)||Zc.throwArgumentError("invalid human-readable ABI signature gas","value",e),t.gas=$r.from(r[1]),r[0]):e}function dd(e,t){t.constant=!1,t.payable=!1,t.stateMutability="nonpayable",e.split(" ").forEach(e=>{switch(e.trim()){case"constant":t.constant=!0;break;case"payable":t.payable=!0,t.stateMutability="payable";break;case"nonpayable":t.payable=!1,t.stateMutability="nonpayable";break;case"pure":t.constant=!0,t.stateMutability="pure";break;case"view":t.constant=!0,t.stateMutability="view";break;case"external":case"public":case"":break;default:console.log("unknown modifier: "+e)}})}function hd(e){let t={constant:!1,payable:!0,stateMutability:"payable"};return null!=e.stateMutability?(t.stateMutability=e.stateMutability,t.constant="view"===t.stateMutability||"pure"===t.stateMutability,null!=e.constant&&!!e.constant!==t.constant&&Zc.throwArgumentError("cannot have constant function with mutability "+t.stateMutability,"value",e),t.payable="payable"===t.stateMutability,null!=e.payable&&!!e.payable!==t.payable&&Zc.throwArgumentError("cannot have payable function with mutability "+t.stateMutability,"value",e)):null!=e.payable?(t.payable=!!e.payable,null!=e.constant||t.payable||"constructor"===e.type||Zc.throwArgumentError("unable to determine stateMutability","value",e),t.constant=!!e.constant,t.stateMutability=t.constant?"view":t.payable?"payable":"nonpayable",t.payable&&t.constant&&Zc.throwArgumentError("cannot have constant payable function","value",e)):null!=e.constant?(t.constant=!!e.constant,t.payable=!t.constant,t.stateMutability=t.constant?"view":"payable"):"constructor"!==e.type&&Zc.throwArgumentError("unable to determine stateMutability","value",e),t}class pd extends ud{format(e){if(e||(e=id.sighash),id[e]||Zc.throwArgumentError("invalid format type","format",e),e===id.json)return JSON.stringify({type:"constructor",stateMutability:"nonpayable"!==this.stateMutability?this.stateMutability:void 0,payable:this.payable,gas:this.gas?this.gas.toNumber():void 0,inputs:this.inputs.map(t=>JSON.parse(t.format(e)))});e===id.sighash&&Zc.throwError("cannot format a constructor for sighash",Pr.errors.UNSUPPORTED_OPERATION,{operation:"format(sighash)"});let t="constructor("+this.inputs.map(t=>t.format(e)).join(e===id.full?", ":",")+") ";return this.stateMutability&&"nonpayable"!==this.stateMutability&&(t+=this.stateMutability+" "),t.trim()}static from(e){return"string"==typeof e?pd.fromString(e):pd.fromObject(e)}static fromObject(e){if(pd.isConstructorFragment(e))return e;"constructor"!==e.type&&Zc.throwArgumentError("invalid constructor object","value",e);let t=hd(e);t.constant&&Zc.throwArgumentError("constructor cannot be constant","value",e);const r={name:null,type:e.type,inputs:e.inputs?e.inputs.map(sd.fromObject):[],payable:t.payable,stateMutability:t.stateMutability,gas:e.gas?$r.from(e.gas):null};return new pd($c,r)}static fromString(e){let t={type:"constructor"},r=(e=cd(e,t)).match(Ad);return r&&"constructor"===r[1].trim()||Zc.throwArgumentError("invalid constructor string","value",e),t.inputs=ad(r[2].trim(),!1),dd(r[3].trim(),t),pd.fromObject(t)}static isConstructorFragment(e){return e&&e._isFragment&&"constructor"===e.type}}class fd extends pd{format(e){if(e||(e=id.sighash),id[e]||Zc.throwArgumentError("invalid format type","format",e),e===id.json)return JSON.stringify({type:"function",name:this.name,constant:this.constant,stateMutability:"nonpayable"!==this.stateMutability?this.stateMutability:void 0,payable:this.payable,gas:this.gas?this.gas.toNumber():void 0,inputs:this.inputs.map(t=>JSON.parse(t.format(e))),outputs:this.outputs.map(t=>JSON.parse(t.format(e)))});let t="";return e!==id.sighash&&(t+="function "),t+=this.name+"("+this.inputs.map(t=>t.format(e)).join(e===id.full?", ":",")+") ",e!==id.sighash&&(this.stateMutability?"nonpayable"!==this.stateMutability&&(t+=this.stateMutability+" "):this.constant&&(t+="view "),this.outputs&&this.outputs.length&&(t+="returns ("+this.outputs.map(t=>t.format(e)).join(", ")+") "),null!=this.gas&&(t+="@"+this.gas.toString()+" ")),t.trim()}static from(e){return"string"==typeof e?fd.fromString(e):fd.fromObject(e)}static fromObject(e){if(fd.isFunctionFragment(e))return e;"function"!==e.type&&Zc.throwArgumentError("invalid function object","value",e);let t=hd(e);const r={type:e.type,name:vd(e.name),constant:t.constant,inputs:e.inputs?e.inputs.map(sd.fromObject):[],outputs:e.outputs?e.outputs.map(sd.fromObject):[],payable:t.payable,stateMutability:t.stateMutability,gas:e.gas?$r.from(e.gas):null};return new fd($c,r)}static fromString(e){let t={type:"function"},r=(e=cd(e,t)).split(" returns ");r.length>2&&Zc.throwArgumentError("invalid function string","value",e);let n=r[0].match(Ad);if(n||Zc.throwArgumentError("invalid function signature","value",e),t.name=n[1].trim(),t.name&&vd(t.name),t.inputs=ad(n[2],!1),dd(n[3].trim(),t),r.length>1){let n=r[1].match(Ad);""==n[1].trim()&&""==n[3].trim()||Zc.throwArgumentError("unexpected tokens","value",e),t.outputs=ad(n[2],!1)}else t.outputs=[];return fd.fromObject(t)}static isFunctionFragment(e){return e&&e._isFragment&&"function"===e.type}}function md(e){const t=e.format();return"Error(string)"!==t&&"Panic(uint256)"!==t||Zc.throwArgumentError(`cannot specify user defined ${t} error`,"fragment",e),e}class yd extends ud{format(e){if(e||(e=id.sighash),id[e]||Zc.throwArgumentError("invalid format type","format",e),e===id.json)return JSON.stringify({type:"error",name:this.name,inputs:this.inputs.map(t=>JSON.parse(t.format(e)))});let t="";return e!==id.sighash&&(t+="error "),t+=this.name+"("+this.inputs.map(t=>t.format(e)).join(e===id.full?", ":",")+") ",t.trim()}static from(e){return"string"==typeof e?yd.fromString(e):yd.fromObject(e)}static fromObject(e){if(yd.isErrorFragment(e))return e;"error"!==e.type&&Zc.throwArgumentError("invalid error object","value",e);const t={type:e.type,name:vd(e.name),inputs:e.inputs?e.inputs.map(sd.fromObject):[]};return md(new yd($c,t))}static fromString(e){let t={type:"error"},r=e.match(Ad);return r||Zc.throwArgumentError("invalid error signature","value",e),t.name=r[1].trim(),t.name&&vd(t.name),t.inputs=ad(r[2],!1),md(yd.fromObject(t))}static isErrorFragment(e){return e&&e._isFragment&&"error"===e.type}}function gd(e){return e.match(/^uint($|[^1-9])/)?e="uint256"+e.substring(4):e.match(/^int($|[^1-9])/)&&(e="int256"+e.substring(3)),e}const bd=new RegExp("^[a-zA-Z$_][a-zA-Z0-9$_]*$");function vd(e){return e&&e.match(bd)||Zc.throwArgumentError(`invalid identifier "${e}"`,"value",e),e}const Ad=new RegExp("^([^)(]*)\\((.*)\\)([^)(]*)$"),wd=new Pr(Xc);class Td{constructor(e,t,r,n){this.name=e,this.type=t,this.localName=r,this.dynamic=n}_throwError(e,t){wd.throwArgumentError(e,this.localName,t)}}class Ed{constructor(e){An(this,"wordSize",e||32),this._data=[],this._dataLength=0,this._padding=new Uint8Array(e)}get data(){return Hr(this._data)}get length(){return this._dataLength}_writeData(e){return this._data.push(e),this._dataLength+=e.length,e.length}appendWriter(e){return this._writeData(Br(e._data))}writeBytes(e){let t=Or(e);const r=t.length%this.wordSize;return r&&(t=Br([t,this._padding.slice(r)])),this._writeData(t)}_getValue(e){let t=Or($r.from(e));return t.length>this.wordSize&&wd.throwError("value out-of-bounds",Pr.errors.BUFFER_OVERRUN,{length:this.wordSize,offset:t.length}),t.length%this.wordSize&&(t=Br([this._padding.slice(t.length%this.wordSize),t])),t}writeValue(e){return this._writeData(this._getValue(e))}writeUpdatableValue(){const e=this._data.length;return this._data.push(this._padding),this._dataLength+=this.wordSize,t=>{this._data[e]=this._getValue(t)}}}class Sd{constructor(e,t,r,n){An(this,"_data",Or(e)),An(this,"wordSize",t||32),An(this,"_coerceFunc",r),An(this,"allowLoose",n),this._offset=0}get data(){return Ur(this._data)}get consumed(){return this._offset}static coerce(e,t){let r=e.match("^u?int([0-9]+)$");return r&&parseInt(r[1])<=48&&(t=t.toNumber()),t}coerce(e,t){return this._coerceFunc?this._coerceFunc(e,t):Sd.coerce(e,t)}_peekBytes(e,t,r){let n=Math.ceil(t/this.wordSize)*this.wordSize;return this._offset+n>this._data.length&&(this.allowLoose&&r&&this._offset+t<=this._data.length?n=t:wd.throwError("data out-of-bounds",Pr.errors.BUFFER_OVERRUN,{length:this._data.length,offset:this._offset+n})),this._data.slice(this._offset,this._offset+n)}subReader(e){return new Sd(this._data.slice(this._offset+e),this.wordSize,this._coerceFunc,this.allowLoose)}readBytes(e,t){let r=this._peekBytes(0,e,!!t);return this._offset+=r.length,r.slice(0,e)}readValue(){return $r.from(this.readBytes(this.wordSize))}}class Id extends Td{constructor(e){super("address","address",e,!1)}defaultValue(){return"0x0000000000000000000000000000000000000000"}encode(e,t){try{t=qi(t)}catch(e){this._throwError(e.message,t)}return e.writeValue(t)}decode(e){return qi(Vr(e.readValue().toHexString(),20))}}class kd extends Td{constructor(e){super(e.name,e.type,void 0,e.dynamic),this.coder=e}defaultValue(){return this.coder.defaultValue()}encode(e,t){return this.coder.encode(e,t)}decode(e){return this.coder.decode(e)}}const Pd=new Pr(Xc);function Cd(e,t,r){let n=null;if(Array.isArray(r))n=r;else if(r&&"object"==typeof r){let e={};n=t.map(t=>{const n=t.localName;return n||Pd.throwError("cannot encode object for signature with missing names",Pr.errors.INVALID_ARGUMENT,{argument:"values",coder:t,value:r}),e[n]&&Pd.throwError("cannot encode object for signature with duplicate names",Pr.errors.INVALID_ARGUMENT,{argument:"values",coder:t,value:r}),e[n]=!0,r[n]})}else Pd.throwArgumentError("invalid tuple value","tuple",r);t.length!==n.length&&Pd.throwArgumentError("types/value length mismatch","tuple",r);let i=new Ed(e.wordSize),o=new Ed(e.wordSize),s=[];t.forEach((e,t)=>{let r=n[t];if(e.dynamic){let t=o.length;e.encode(o,r);let n=i.writeUpdatableValue();s.push(e=>{n(e+t)})}else e.encode(i,r)}),s.forEach(e=>{e(i.length)});let a=e.appendWriter(i);return a+=e.appendWriter(o),a}function Nd(e,t){let r=[],n=e.subReader(0);t.forEach(t=>{let i=null;if(t.dynamic){let r=e.readValue(),o=n.subReader(r.toNumber());try{i=t.decode(o)}catch(e){if(e.code===Pr.errors.BUFFER_OVERRUN)throw e;i=e,i.baseType=t.name,i.name=t.localName,i.type=t.type}}else try{i=t.decode(e)}catch(e){if(e.code===Pr.errors.BUFFER_OVERRUN)throw e;i=e,i.baseType=t.name,i.name=t.localName,i.type=t.type}null!=i&&r.push(i)});const i=t.reduce((e,t)=>{const r=t.localName;return r&&(e[r]||(e[r]=0),e[r]++),e},{});t.forEach((e,t)=>{let n=e.localName;if(!n||1!==i[n])return;if("length"===n&&(n="_length"),null!=r[n])return;const o=r[t];o instanceof Error?Object.defineProperty(r,n,{enumerable:!0,get:()=>{throw o}}):r[n]=o});for(let e=0;e<r.length;e++){const t=r[e];t instanceof Error&&Object.defineProperty(r,e,{enumerable:!0,get:()=>{throw t}})}return Object.freeze(r)}class xd extends Td{constructor(e,t,r){super("array",e.type+"["+(t>=0?t:"")+"]",r,-1===t||e.dynamic),this.coder=e,this.length=t}defaultValue(){const e=this.coder.defaultValue(),t=[];for(let r=0;r<this.length;r++)t.push(e);return t}encode(e,t){Array.isArray(t)||this._throwError("expected array value",t);let r=this.length;-1===r&&(r=t.length,e.writeValue(t.length)),Pd.checkArgumentCount(t.length,r,"coder array"+(this.localName?" "+this.localName:""));let n=[];for(let e=0;e<t.length;e++)n.push(this.coder);return Cd(e,n,t)}decode(e){let t=this.length;-1===t&&(t=e.readValue().toNumber(),32*t>e._data.length&&Pd.throwError("insufficient data length",Pr.errors.BUFFER_OVERRUN,{length:e._data.length,count:t}));let r=[];for(let e=0;e<t;e++)r.push(new kd(this.coder));return e.coerce(this.name,Nd(e,r))}}class _d extends Td{constructor(e){super("bool","bool",e,!1)}defaultValue(){return!1}encode(e,t){return e.writeValue(t?1:0)}decode(e){return e.coerce(this.type,!e.readValue().isZero())}}class Rd extends Td{constructor(e,t){super(e,e,t,!0)}defaultValue(){return"0x"}encode(e,t){t=Or(t);let r=e.writeValue(t.length);return r+=e.writeBytes(t),r}decode(e){return e.readBytes(e.readValue().toNumber(),!0)}}class Md extends Rd{constructor(e){super("bytes",e)}decode(e){return e.coerce(this.name,Ur(super.decode(e)))}}class Od extends Td{constructor(e,t){let r="bytes"+String(e);super(r,r,t,!1),this.size=e}defaultValue(){return"0x0000000000000000000000000000000000000000000000000000000000000000".substring(0,2+2*this.size)}encode(e,t){let r=Or(t);return r.length!==this.size&&this._throwError("incorrect data length",t),e.writeBytes(r)}decode(e){return e.coerce(this.name,Ur(e.readBytes(this.size)))}}class Bd extends Td{constructor(e){super("null","",e,!1)}defaultValue(){return null}encode(e,t){return null!=t&&this._throwError("not null",t),e.writeBytes([])}decode(e){return e.readBytes(0),e.coerce(this.name,null)}}class Dd extends Td{constructor(e,t,r){const n=(t?"int":"uint")+8*e;super(n,n,r,!1),this.size=e,this.signed=t}defaultValue(){return 0}encode(e,t){let r=$r.from(t),n=Wn.mask(8*e.wordSize);if(this.signed){let e=n.mask(8*this.size-1);(r.gt(e)||r.lt(e.add(Kn).mul(Vn)))&&this._throwError("value out-of-bounds",t)}else(r.lt(zn)||r.gt(n.mask(8*this.size)))&&this._throwError("value out-of-bounds",t);return r=r.toTwos(8*this.size).mask(8*this.size),this.signed&&(r=r.fromTwos(8*this.size).toTwos(8*e.wordSize)),e.writeValue(r)}decode(e){let t=e.readValue().mask(8*this.size);return this.signed&&(t=t.fromTwos(8*this.size)),e.coerce(this.name,t)}}class Ld extends Rd{constructor(e){super("string",e)}defaultValue(){return""}encode(e,t){return super.encode(e,ni(t))}decode(e){return ii(super.decode(e))}}class Fd extends Td{constructor(e,t){let r=!1;const n=[];e.forEach(e=>{e.dynamic&&(r=!0),n.push(e.type)}),super("tuple","tuple("+n.join(",")+")",t,r),this.coders=e}defaultValue(){const e=[];this.coders.forEach(t=>{e.push(t.defaultValue())});const t=this.coders.reduce((e,t)=>{const r=t.localName;return r&&(e[r]||(e[r]=0),e[r]++),e},{});return this.coders.forEach((r,n)=>{let i=r.localName;i&&1===t[i]&&("length"===i&&(i="_length"),null==e[i]&&(e[i]=e[n]))}),Object.freeze(e)}encode(e,t){return Cd(e,this.coders,t)}decode(e){return e.coerce(this.name,Nd(e,this.coders))}}const Ud=new Pr(Xc),Gd=new RegExp(/^bytes([0-9]*)$/),jd=new RegExp(/^(u?int)([0-9]*)$/),Hd=new class{constructor(e){An(this,"coerceFunc",e||null)}_getCoder(e){switch(e.baseType){case"address":return new Id(e.name);case"bool":return new _d(e.name);case"string":return new Ld(e.name);case"bytes":return new Md(e.name);case"array":return new xd(this._getCoder(e.arrayChildren),e.arrayLength,e.name);case"tuple":return new Fd((e.components||[]).map(e=>this._getCoder(e)),e.name);case"":return new Bd(e.name)}let t=e.type.match(jd);if(t){let r=parseInt(t[2]||"256");return(0===r||r>256||r%8!=0)&&Ud.throwArgumentError("invalid "+t[1]+" bit length","param",e),new Dd(r/8,"int"===t[1],e.name)}if(t=e.type.match(Gd),t){let r=parseInt(t[1]);return(0===r||r>32)&&Ud.throwArgumentError("invalid bytes length","param",e),new Od(r,e.name)}return Ud.throwArgumentError("invalid type","type",e.type)}_getWordSize(){return 32}_getReader(e,t){return new Sd(e,this._getWordSize(),this.coerceFunc,t)}_getWriter(){return new Ed(this._getWordSize())}getDefaultValue(e){const t=e.map(e=>this._getCoder(sd.from(e)));return new Fd(t,"_").defaultValue()}encode(e,t){e.length!==t.length&&Ud.throwError("types/values length mismatch",Pr.errors.INVALID_ARGUMENT,{count:{types:e.length,values:t.length},value:{types:e,values:t}});const r=e.map(e=>this._getCoder(sd.from(e))),n=new Fd(r,"_"),i=this._getWriter();return n.encode(i,t),i.data}decode(e,t,r){const n=e.map(e=>this._getCoder(sd.from(e)));return new Fd(n,"_").decode(this._getReader(Or(t),r))}},qd=new Pr(Xc);class Vd extends Nn{}class zd extends Nn{}class Kd extends Nn{}class Wd extends Nn{static isIndexed(e){return!(!e||!e._isIndexed)}}const Jd={"0x08c379a0":{signature:"Error(string)",name:"Error",inputs:["string"],reason:!0},"0x4e487b71":{signature:"Panic(uint256)",name:"Panic",inputs:["uint256"]}};function Qd(e,t){const r=new Error(`deferred error during ABI decoding triggered accessing ${e}`);return r.error=t,r}class Yd{constructor(e){let t=[];t="string"==typeof e?JSON.parse(e):e,An(this,"fragments",t.map(e=>ud.from(e)).filter(e=>null!=e)),An(this,"_abiCoder",wn(new.target,"getAbiCoder")()),An(this,"functions",{}),An(this,"errors",{}),An(this,"events",{}),An(this,"structs",{}),this.fragments.forEach(e=>{let t=null;switch(e.type){case"constructor":return this.deploy?void qd.warn("duplicate definition - constructor"):void An(this,"deploy",e);case"function":t=this.functions;break;case"event":t=this.events;break;case"error":t=this.errors;break;default:return}let r=e.format();t[r]?qd.warn("duplicate definition - "+r):t[r]=e}),this.deploy||An(this,"deploy",pd.from({payable:!1,type:"constructor"})),An(this,"_isInterface",!0)}format(e){e||(e=id.full),e===id.sighash&&qd.throwArgumentError("interface does not support formatting sighash","format",e);const t=this.fragments.map(t=>t.format(e));return e===id.json?JSON.stringify(t.map(e=>JSON.parse(e))):t}static getAbiCoder(){return Hd}static getAddress(e){return qi(e)}static getSighash(e){return jr(oi(e.format()),0,4)}static getEventTopic(e){return oi(e.format())}getFunction(e){if(Lr(e)){for(const t in this.functions)if(e===this.getSighash(t))return this.functions[t];qd.throwArgumentError("no matching function","sighash",e)}if(-1===e.indexOf("(")){const t=e.trim(),r=Object.keys(this.functions).filter(e=>e.split("(")[0]===t);return 0===r.length?qd.throwArgumentError("no matching function","name",t):r.length>1&&qd.throwArgumentError("multiple matching functions","name",t),this.functions[r[0]]}const t=this.functions[fd.fromString(e).format()];return t||qd.throwArgumentError("no matching function","signature",e),t}getEvent(e){if(Lr(e)){const t=e.toLowerCase();for(const e in this.events)if(t===this.getEventTopic(e))return this.events[e];qd.throwArgumentError("no matching event","topichash",t)}if(-1===e.indexOf("(")){const t=e.trim(),r=Object.keys(this.events).filter(e=>e.split("(")[0]===t);return 0===r.length?qd.throwArgumentError("no matching event","name",t):r.length>1&&qd.throwArgumentError("multiple matching events","name",t),this.events[r[0]]}const t=this.events[ld.fromString(e).format()];return t||qd.throwArgumentError("no matching event","signature",e),t}getError(e){if(Lr(e)){const t=wn(this.constructor,"getSighash");for(const r in this.errors)if(e===t(this.errors[r]))return this.errors[r];qd.throwArgumentError("no matching error","sighash",e)}if(-1===e.indexOf("(")){const t=e.trim(),r=Object.keys(this.errors).filter(e=>e.split("(")[0]===t);return 0===r.length?qd.throwArgumentError("no matching error","name",t):r.length>1&&qd.throwArgumentError("multiple matching errors","name",t),this.errors[r[0]]}const t=this.errors[fd.fromString(e).format()];return t||qd.throwArgumentError("no matching error","signature",e),t}getSighash(e){if("string"==typeof e)try{e=this.getFunction(e)}catch(t){try{e=this.getError(e)}catch(e){throw t}}return wn(this.constructor,"getSighash")(e)}getEventTopic(e){return"string"==typeof e&&(e=this.getEvent(e)),wn(this.constructor,"getEventTopic")(e)}_decodeParams(e,t){return this._abiCoder.decode(e,t)}_encodeParams(e,t){return this._abiCoder.encode(e,t)}encodeDeploy(e){return this._encodeParams(this.deploy.inputs,e||[])}decodeErrorResult(e,t){"string"==typeof e&&(e=this.getError(e));const r=Or(t);return Ur(r.slice(0,4))!==this.getSighash(e)&&qd.throwArgumentError(`data signature does not match error ${e.name}.`,"data",Ur(r)),this._decodeParams(e.inputs,r.slice(4))}encodeErrorResult(e,t){return"string"==typeof e&&(e=this.getError(e)),Ur(Br([this.getSighash(e),this._encodeParams(e.inputs,t||[])]))}decodeFunctionData(e,t){"string"==typeof e&&(e=this.getFunction(e));const r=Or(t);return Ur(r.slice(0,4))!==this.getSighash(e)&&qd.throwArgumentError(`data signature does not match function ${e.name}.`,"data",Ur(r)),this._decodeParams(e.inputs,r.slice(4))}encodeFunctionData(e,t){return"string"==typeof e&&(e=this.getFunction(e)),Ur(Br([this.getSighash(e),this._encodeParams(e.inputs,t||[])]))}decodeFunctionResult(e,t){"string"==typeof e&&(e=this.getFunction(e));let r=Or(t),n=null,i="",o=null,s=null,a=null;switch(r.length%this._abiCoder._getWordSize()){case 0:try{return this._abiCoder.decode(e.outputs,r)}catch(e){}break;case 4:{const e=Ur(r.slice(0,4)),t=Jd[e];if(t)o=this._abiCoder.decode(t.inputs,r.slice(4)),s=t.name,a=t.signature,t.reason&&(n=o[0]),"Error"===s?i=`; VM Exception while processing transaction: reverted with reason string ${JSON.stringify(o[0])}`:"Panic"===s&&(i=`; VM Exception while processing transaction: reverted with panic code ${o[0]}`);else try{const t=this.getError(e);o=this._abiCoder.decode(t.inputs,r.slice(4)),s=t.name,a=t.format()}catch(e){}break}}return qd.throwError("call revert exception"+i,Pr.errors.CALL_EXCEPTION,{method:e.format(),data:Ur(t),errorArgs:o,errorName:s,errorSignature:a,reason:n})}encodeFunctionResult(e,t){return"string"==typeof e&&(e=this.getFunction(e)),Ur(this._abiCoder.encode(e.outputs,t||[]))}encodeFilterTopics(e,t){"string"==typeof e&&(e=this.getEvent(e)),t.length>e.inputs.length&&qd.throwError("too many arguments for "+e.format(),Pr.errors.UNEXPECTED_ARGUMENT,{argument:"values",value:t});let r=[];e.anonymous||r.push(this.getEventTopic(e));const n=(e,t)=>"string"===e.type?oi(t):"bytes"===e.type?Yn(Ur(t)):("bool"===e.type&&"boolean"==typeof t&&(t=t?"0x01":"0x00"),e.type.match(/^u?int/)&&(t=$r.from(t).toHexString()),"address"===e.type&&this._abiCoder.encode(["address"],[t]),Vr(Ur(t),32));for(t.forEach((t,i)=>{let o=e.inputs[i];o.indexed?null==t?r.push(null):"array"===o.baseType||"tuple"===o.baseType?qd.throwArgumentError("filtering with tuples or arrays not supported","contract."+o.name,t):Array.isArray(t)?r.push(t.map(e=>n(o,e))):r.push(n(o,t)):null!=t&&qd.throwArgumentError("cannot filter non-indexed parameters; must be null","contract."+o.name,t)});r.length&&null===r[r.length-1];)r.pop();return r}encodeEventLog(e,t){"string"==typeof e&&(e=this.getEvent(e));const r=[],n=[],i=[];return e.anonymous||r.push(this.getEventTopic(e)),t.length!==e.inputs.length&&qd.throwArgumentError("event arguments/values mismatch","values",t),e.inputs.forEach((e,o)=>{const s=t[o];if(e.indexed)if("string"===e.type)r.push(oi(s));else if("bytes"===e.type)r.push(Yn(s));else{if("tuple"===e.baseType||"array"===e.baseType)throw new Error("not implemented");r.push(this._abiCoder.encode([e.type],[s]))}else n.push(e),i.push(s)}),{data:this._abiCoder.encode(n,i),topics:r}}decodeEventLog(e,t,r){if("string"==typeof e&&(e=this.getEvent(e)),null!=r&&!e.anonymous){let t=this.getEventTopic(e);Lr(r[0],32)&&r[0].toLowerCase()===t||qd.throwError("fragment/topic mismatch",Pr.errors.INVALID_ARGUMENT,{argument:"topics[0]",expected:t,value:r[0]}),r=r.slice(1)}let n=[],i=[],o=[];e.inputs.forEach((e,t)=>{e.indexed?"string"===e.type||"bytes"===e.type||"tuple"===e.baseType||"array"===e.baseType?(n.push(sd.fromObject({type:"bytes32",name:e.name})),o.push(!0)):(n.push(e),o.push(!1)):(i.push(e),o.push(!1))});let s=null!=r?this._abiCoder.decode(n,Br(r)):null,a=this._abiCoder.decode(i,t,!0),u=[],l=0,c=0;e.inputs.forEach((e,t)=>{if(e.indexed)if(null==s)u[t]=new Wd({_isIndexed:!0,hash:null});else if(o[t])u[t]=new Wd({_isIndexed:!0,hash:s[c++]});else try{u[t]=s[c++]}catch(e){u[t]=e}else try{u[t]=a[l++]}catch(e){u[t]=e}if(e.name&&null==u[e.name]){const r=u[t];r instanceof Error?Object.defineProperty(u,e.name,{enumerable:!0,get:()=>{throw Qd(`property ${JSON.stringify(e.name)}`,r)}}):u[e.name]=r}});for(let e=0;e<u.length;e++){const t=u[e];t instanceof Error&&Object.defineProperty(u,e,{enumerable:!0,get:()=>{throw Qd(`index ${e}`,t)}})}return Object.freeze(u)}parseTransaction(e){let t=this.getFunction(e.data.substring(0,10).toLowerCase());return t?new zd({args:this._abiCoder.decode(t.inputs,"0x"+e.data.substring(10)),functionFragment:t,name:t.name,signature:t.format(),sighash:this.getSighash(t),value:$r.from(e.value||"0")}):null}parseLog(e){let t=this.getEvent(e.topics[0]);return!t||t.anonymous?null:new Vd({eventFragment:t,name:t.name,signature:t.format(),topic:this.getEventTopic(t),args:this.decodeEventLog(t,e.data,e.topics)})}parseError(e){const t=Ur(e);let r=this.getError(t.substring(0,10).toLowerCase());return r?new Kd({args:this._abiCoder.decode(r.inputs,"0x"+t.substring(10)),errorFragment:r,name:r.name,signature:r.format(),sighash:this.getSighash(r)}):null}static isInterface(e){return!(!e||!e._isInterface)}}var Xd=function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function s(e){try{u(n.next(e))}catch(e){o(e)}}function a(e){try{u(n.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r(function(e){e(t)})).then(s,a)}u((n=n.apply(e,t||[])).next())})};const Zd=new Pr("contracts/5.8.0");function $d(e,t){return Xd(this,void 0,void 0,function*(){const r=yield t;"string"!=typeof r&&Zd.throwArgumentError("invalid address or ENS name","name",r);try{return qi(r)}catch(e){}e||Zd.throwError("a provider or signer is needed to resolve ENS names",Pr.errors.UNSUPPORTED_OPERATION,{operation:"resolveName"});const n=yield e.resolveName(r);return null==n&&Zd.throwArgumentError("resolver or addr is not configured for ENS name","name",r),n})}function eh(e,t,r){return Xd(this,void 0,void 0,function*(){return Array.isArray(r)?yield Promise.all(r.map((r,n)=>eh(e,Array.isArray(t)?t[n]:t[r.name],r))):"address"===r.type?yield $d(e,t):"tuple"===r.type?yield eh(e,t,r.components):"array"===r.baseType?Array.isArray(t)?yield Promise.all(t.map(t=>eh(e,t,r.arrayChildren))):Promise.reject(Zd.makeError("invalid value for array",Pr.errors.INVALID_ARGUMENT,{argument:"value",value:t})):t})}function th(e,t,r){return Xd(this,void 0,void 0,function*(){let n={};r.length===t.inputs.length+1&&"object"==typeof r[r.length-1]&&(n=Sn(r.pop())),Zd.checkArgumentCount(r.length,t.inputs.length,"passed to contract"),e.signer?n.from=n.from?Tn({override:$d(e.signer,n.from),signer:e.signer.getAddress()}).then(e=>Xd(this,void 0,void 0,function*(){return qi(e.signer)!==e.override&&Zd.throwError("Contract with a Signer cannot override from",Pr.errors.UNSUPPORTED_OPERATION,{operation:"overrides.from"}),e.override})):e.signer.getAddress():n.from&&(n.from=$d(e.provider,n.from));const i=yield Tn({args:eh(e.signer||e.provider,r,t.inputs),address:e.resolvedAddress,overrides:Tn(n)||{}}),o=e.interface.encodeFunctionData(t,i.args),s={data:o,to:i.address},a=i.overrides;if(null!=a.nonce&&(s.nonce=$r.from(a.nonce).toNumber()),null!=a.gasLimit&&(s.gasLimit=$r.from(a.gasLimit)),null!=a.gasPrice&&(s.gasPrice=$r.from(a.gasPrice)),null!=a.maxFeePerGas&&(s.maxFeePerGas=$r.from(a.maxFeePerGas)),null!=a.maxPriorityFeePerGas&&(s.maxPriorityFeePerGas=$r.from(a.maxPriorityFeePerGas)),null!=a.from&&(s.from=a.from),null!=a.type&&(s.type=a.type),null!=a.accessList&&(s.accessList=tu(a.accessList)),null==s.gasLimit&&null!=t.gas){let e=21e3;const r=Or(o);for(let t=0;t<r.length;t++)e+=4,r[t]&&(e+=64);s.gasLimit=$r.from(t.gas).add(e)}if(a.value){const e=$r.from(a.value);e.isZero()||t.payable||Zd.throwError("non-payable method cannot override value",Pr.errors.UNSUPPORTED_OPERATION,{operation:"overrides.value",value:n.value}),s.value=e}a.customData&&(s.customData=Sn(a.customData)),a.ccipReadEnabled&&(s.ccipReadEnabled=!!a.ccipReadEnabled),delete n.nonce,delete n.gasLimit,delete n.gasPrice,delete n.from,delete n.value,delete n.type,delete n.accessList,delete n.maxFeePerGas,delete n.maxPriorityFeePerGas,delete n.customData,delete n.ccipReadEnabled;const u=Object.keys(n).filter(e=>null!=n[e]);return u.length&&Zd.throwError(`cannot override ${u.map(e=>JSON.stringify(e)).join(",")}`,Pr.errors.UNSUPPORTED_OPERATION,{operation:"overrides",overrides:u}),s})}function rh(e,t,r){const n=e.signer||e.provider;return function(...i){return Xd(this,void 0,void 0,function*(){let o;if(i.length===t.inputs.length+1&&"object"==typeof i[i.length-1]){const e=Sn(i.pop());null!=e.blockTag&&(o=yield e.blockTag),delete e.blockTag,i.push(e)}null!=e.deployTransaction&&(yield e._deployed(o));const s=yield th(e,t,i),a=yield n.call(s,o);try{let n=e.interface.decodeFunctionResult(t,a);return r&&1===t.outputs.length&&(n=n[0]),n}catch(t){throw t.code===Pr.errors.CALL_EXCEPTION&&(t.address=e.address,t.args=i,t.transaction=s),t}})}}function nh(e,t,r){return t.constant?rh(e,t,r):function(e,t){return function(...r){return Xd(this,void 0,void 0,function*(){e.signer||Zd.throwError("sending a transaction requires a signer",Pr.errors.UNSUPPORTED_OPERATION,{operation:"sendTransaction"}),null!=e.deployTransaction&&(yield e._deployed());const n=yield th(e,t,r),i=yield e.signer.sendTransaction(n);return function(e,t){const r=t.wait.bind(t);t.wait=t=>r(t).then(t=>(t.events=t.logs.map(r=>{let n=Cn(r),i=null;try{i=e.interface.parseLog(r)}catch(e){}return i&&(n.args=i.args,n.decode=(t,r)=>e.interface.decodeEventLog(i.eventFragment,t,r),n.event=i.name,n.eventSignature=i.signature),n.removeListener=()=>e.provider,n.getBlock=()=>e.provider.getBlock(t.blockHash),n.getTransaction=()=>e.provider.getTransaction(t.transactionHash),n.getTransactionReceipt=()=>Promise.resolve(t),n}),t))}(e,i),i})}}(e,t)}function ih(e){return!e.address||null!=e.topics&&0!==e.topics.length?(e.address||"*")+"@"+(e.topics?e.topics.map(e=>Array.isArray(e)?e.join("|"):e).join(":"):""):"*"}class oh{constructor(e,t){An(this,"tag",e),An(this,"filter",t),this._listeners=[]}addListener(e,t){this._listeners.push({listener:e,once:t})}removeListener(e){let t=!1;this._listeners=this._listeners.filter(r=>!(!t&&r.listener===e&&(t=!0,1)))}removeAllListeners(){this._listeners=[]}listeners(){return this._listeners.map(e=>e.listener)}listenerCount(){return this._listeners.length}run(e){const t=this.listenerCount();return this._listeners=this._listeners.filter(t=>{const r=e.slice();return setTimeout(()=>{t.listener.apply(this,r)},0),!t.once}),t}prepareEvent(e){}getEmit(e){return[e]}}class sh extends oh{constructor(){super("error",null)}}class ah extends oh{constructor(e,t,r,n){const i={address:e};let o=t.getEventTopic(r);n?(o!==n[0]&&Zd.throwArgumentError("topic mismatch","topics",n),i.topics=n.slice()):i.topics=[o],super(ih(i),i),An(this,"address",e),An(this,"interface",t),An(this,"fragment",r)}prepareEvent(e){super.prepareEvent(e),e.event=this.fragment.name,e.eventSignature=this.fragment.format(),e.decode=(e,t)=>this.interface.decodeEventLog(this.fragment,e,t);try{e.args=this.interface.decodeEventLog(this.fragment,e.data,e.topics)}catch(t){e.args=null,e.decodeError=t}}getEmit(e){const t=function(e){const t=[],r=function(e,n){if(Array.isArray(n))for(let i in n){const o=e.slice();o.push(i);try{r(o,n[i])}catch(e){t.push({path:o,error:e})}}};return r([],e),t}(e.args);if(t.length)throw t[0].error;const r=(e.args||[]).slice();return r.push(e),r}}class uh extends oh{constructor(e,t){super("*",{address:e}),An(this,"address",e),An(this,"interface",t)}prepareEvent(e){super.prepareEvent(e);try{const t=this.interface.parseLog(e);e.event=t.name,e.eventSignature=t.signature,e.decode=(e,r)=>this.interface.decodeEventLog(t.eventFragment,e,r),e.args=t.args}catch(e){}}}class lh{constructor(e,t,r){An(this,"interface",wn(new.target,"getInterface")(t)),null==r?(An(this,"provider",null),An(this,"signer",null)):a.isSigner(r)?(An(this,"provider",r.provider||null),An(this,"signer",r)):Rn.isProvider(r)?(An(this,"provider",r),An(this,"signer",null)):Zd.throwArgumentError("invalid signer or provider","signerOrProvider",r),An(this,"callStatic",{}),An(this,"estimateGas",{}),An(this,"functions",{}),An(this,"populateTransaction",{}),An(this,"filters",{});{const e={};Object.keys(this.interface.events).forEach(t=>{const r=this.interface.events[t];An(this.filters,t,(...e)=>({address:this.address,topics:this.interface.encodeFilterTopics(r,e)})),e[r.name]||(e[r.name]=[]),e[r.name].push(t)}),Object.keys(e).forEach(t=>{const r=e[t];1===r.length?An(this.filters,t,this.filters[r[0]]):Zd.warn(`Duplicate definition of ${t} (${r.join(", ")})`)})}if(An(this,"_runningEvents",{}),An(this,"_wrappedEmits",{}),null==e&&Zd.throwArgumentError("invalid contract address or ENS name","addressOrName",e),An(this,"address",e),this.provider)An(this,"resolvedAddress",$d(this.provider,e));else try{An(this,"resolvedAddress",Promise.resolve(qi(e)))}catch(e){Zd.throwError("provider is required to use ENS name as contract address",Pr.errors.UNSUPPORTED_OPERATION,{operation:"new Contract"})}this.resolvedAddress.catch(e=>{});const n={},i={};Object.keys(this.interface.functions).forEach(e=>{const t=this.interface.functions[e];if(i[e])Zd.warn(`Duplicate ABI entry for ${JSON.stringify(e)}`);else{i[e]=!0;{const r=t.name;n[`%${r}`]||(n[`%${r}`]=[]),n[`%${r}`].push(e)}null==this[e]&&An(this,e,nh(this,t,!0)),null==this.functions[e]&&An(this.functions,e,nh(this,t,!1)),null==this.callStatic[e]&&An(this.callStatic,e,rh(this,t,!0)),null==this.populateTransaction[e]&&An(this.populateTransaction,e,function(e,t){return function(...r){return th(e,t,r)}}(this,t)),null==this.estimateGas[e]&&An(this.estimateGas,e,function(e,t){const r=e.signer||e.provider;return function(...n){return Xd(this,void 0,void 0,function*(){r||Zd.throwError("estimate require a provider or signer",Pr.errors.UNSUPPORTED_OPERATION,{operation:"estimateGas"});const i=yield th(e,t,n);return yield r.estimateGas(i)})}}(this,t))}}),Object.keys(n).forEach(e=>{const t=n[e];if(t.length>1)return;e=e.substring(1);const r=t[0];try{null==this[e]&&An(this,e,this[r])}catch(e){}null==this.functions[e]&&An(this.functions,e,this.functions[r]),null==this.callStatic[e]&&An(this.callStatic,e,this.callStatic[r]),null==this.populateTransaction[e]&&An(this.populateTransaction,e,this.populateTransaction[r]),null==this.estimateGas[e]&&An(this.estimateGas,e,this.estimateGas[r])})}static getContractAddress(e){return Vi(e)}static getInterface(e){return Yd.isInterface(e)?e:new Yd(e)}deployed(){return this._deployed()}_deployed(e){return this._deployedPromise||(this._deployedPromise=this.deployTransaction?this.deployTransaction.wait().then(()=>this):this.provider.getCode(this.address,e).then(e=>("0x"===e&&Zd.throwError("contract not deployed",Pr.errors.UNSUPPORTED_OPERATION,{contractAddress:this.address,operation:"getDeployed"}),this))),this._deployedPromise}fallback(e){this.signer||Zd.throwError("sending a transactions require a signer",Pr.errors.UNSUPPORTED_OPERATION,{operation:"sendTransaction(fallback)"});const t=Sn(e||{});return["from","to"].forEach(function(e){null!=t[e]&&Zd.throwError("cannot override "+e,Pr.errors.UNSUPPORTED_OPERATION,{operation:e})}),t.to=this.resolvedAddress,this.deployed().then(()=>this.signer.sendTransaction(t))}connect(e){"string"==typeof e&&(e=new u(e,this.provider));const t=new this.constructor(this.address,this.interface,e);return this.deployTransaction&&An(t,"deployTransaction",this.deployTransaction),t}attach(e){return new this.constructor(e,this.interface,this.signer||this.provider)}static isIndexed(e){return Wd.isIndexed(e)}_normalizeRunningEvent(e){return this._runningEvents[e.tag]?this._runningEvents[e.tag]:e}_getRunningEvent(e){if("string"==typeof e){if("error"===e)return this._normalizeRunningEvent(new sh);if("event"===e)return this._normalizeRunningEvent(new oh("event",null));if("*"===e)return this._normalizeRunningEvent(new uh(this.address,this.interface));const t=this.interface.getEvent(e);return this._normalizeRunningEvent(new ah(this.address,this.interface,t))}if(e.topics&&e.topics.length>0){try{const t=e.topics[0];if("string"!=typeof t)throw new Error("invalid topic");const r=this.interface.getEvent(t);return this._normalizeRunningEvent(new ah(this.address,this.interface,r,e.topics))}catch(e){}const t={address:this.address,topics:e.topics};return this._normalizeRunningEvent(new oh(ih(t),t))}return this._normalizeRunningEvent(new uh(this.address,this.interface))}_checkRunningEvents(e){if(0===e.listenerCount()){delete this._runningEvents[e.tag];const t=this._wrappedEmits[e.tag];t&&e.filter&&(this.provider.off(e.filter,t),delete this._wrappedEmits[e.tag])}}_wrapEvent(e,t,r){const n=Cn(t);return n.removeListener=()=>{r&&(e.removeListener(r),this._checkRunningEvents(e))},n.getBlock=()=>this.provider.getBlock(t.blockHash),n.getTransaction=()=>this.provider.getTransaction(t.transactionHash),n.getTransactionReceipt=()=>this.provider.getTransactionReceipt(t.transactionHash),e.prepareEvent(n),n}_addEventListener(e,t,r){if(this.provider||Zd.throwError("events require a provider or a signer with a provider",Pr.errors.UNSUPPORTED_OPERATION,{operation:"once"}),e.addListener(t,r),this._runningEvents[e.tag]=e,!this._wrappedEmits[e.tag]){const r=r=>{let n=this._wrapEvent(e,r,t);if(null==n.decodeError)try{const t=e.getEmit(n);this.emit(e.filter,...t)}catch(e){n.decodeError=e.error}null!=e.filter&&this.emit("event",n),null!=n.decodeError&&this.emit("error",n.decodeError,n)};this._wrappedEmits[e.tag]=r,null!=e.filter&&this.provider.on(e.filter,r)}}queryFilter(e,t,r){const n=this._getRunningEvent(e),i=Sn(n.filter);return"string"==typeof t&&Lr(t,32)?(null!=r&&Zd.throwArgumentError("cannot specify toBlock with blockhash","toBlock",r),i.blockHash=t):(i.fromBlock=null!=t?t:0,i.toBlock=null!=r?r:"latest"),this.provider.getLogs(i).then(e=>e.map(e=>this._wrapEvent(n,e,null)))}on(e,t){return this._addEventListener(this._getRunningEvent(e),t,!1),this}once(e,t){return this._addEventListener(this._getRunningEvent(e),t,!0),this}emit(e,...t){if(!this.provider)return!1;const r=this._getRunningEvent(e),n=r.run(t)>0;return this._checkRunningEvents(r),n}listenerCount(e){return this.provider?null==e?Object.keys(this._runningEvents).reduce((e,t)=>e+this._runningEvents[t].listenerCount(),0):this._getRunningEvent(e).listenerCount():0}listeners(e){if(!this.provider)return[];if(null==e){const e=[];for(let t in this._runningEvents)this._runningEvents[t].listeners().forEach(t=>{e.push(t)});return e}return this._getRunningEvent(e).listeners()}removeAllListeners(e){if(!this.provider)return this;if(null==e){for(const e in this._runningEvents){const t=this._runningEvents[e];t.removeAllListeners(),this._checkRunningEvents(t)}return this}const t=this._getRunningEvent(e);return t.removeAllListeners(),this._checkRunningEvents(t),this}off(e,t){if(!this.provider)return this;const r=this._getRunningEvent(e);return r.removeListener(t),this._checkRunningEvents(r),this}removeListener(e,t){return this.off(e,t)}}class ch extends lh{}var dh;!function(e){e[e.DELEGATECALL=0]="DELEGATECALL",e[e.CALL=1]="CALL",e[e.STATICCALL=2]="STATICCALL",e[e.CALL_WITH_VALUE=3]="CALL_WITH_VALUE",e[e.CALLTYPE_MASK=3]="CALLTYPE_MASK",e[e.EXTENDED_COMMAND=64]="EXTENDED_COMMAND",e[e.TUPLE_RETURN=128]="TUPLE_RETURN"}(dh||(dh={}));const hh="0x9585c3062Df1C247d5E373Cfca9167F7dC2b5963",ph=[{inputs:[{internalType:"uint256",name:"command_index",type:"uint256"},{internalType:"address",name:"target",type:"address"},{internalType:"string",name:"message",type:"string"}],name:"ExecutionFailed",type:"error"},{inputs:[{internalType:"bytes32[]",name:"commands",type:"bytes32[]"},{internalType:"bytes[]",name:"state",type:"bytes[]"}],name:"execute",outputs:[{internalType:"bytes[]",name:"",type:"bytes[]"}],stateMutability:"payable",type:"function"}];function fh(e){const t=e.plan(),{commands:r,state:n}=t;return new Yd(ph).encodeFunctionData("execute",[r,n])}function mh(e){const t=new C;return e(t),{to:hh,value:BigInt(0),data:fh(t)}}function yh(e,t){return N.createContract(e,t)}function gh(e){return N.createLibrary(e)}const bh=[{inputs:[{internalType:"uint256",name:"_a",type:"uint256"},{internalType:"uint256",name:"_b",type:"uint256"}],name:"multiplyAndSubtract",outputs:[{internalType:"uint256",name:"result",type:"uint256"}],stateMutability:"pure",type:"function"}],vh=[{inputs:[{internalType:"address",name:"_wrappedNativeTokenAddress",type:"address"},{internalType:"uint32",name:"_depositQuoteTimeBuffer",type:"uint32"},{internalType:"uint32",name:"_fillDeadlineBuffer",type:"uint32"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"ClaimedMerkleLeaf",type:"error"},{inputs:[],name:"DepositsArePaused",type:"error"},{inputs:[],name:"DisabledRoute",type:"error"},{inputs:[],name:"ExpiredFillDeadline",type:"error"},{inputs:[],name:"FillsArePaused",type:"error"},{inputs:[],name:"InsufficientSpokePoolBalanceToExecuteLeaf",type:"error"},{inputs:[],name:"InvalidBytes32",type:"error"},{inputs:[],name:"InvalidChainId",type:"error"},{inputs:[],name:"InvalidCrossDomainAdmin",type:"error"},{inputs:[],name:"InvalidDepositorSignature",type:"error"},{inputs:[],name:"InvalidExclusiveRelayer",type:"error"},{inputs:[],name:"InvalidFillDeadline",type:"error"},{inputs:[],name:"InvalidMerkleLeaf",type:"error"},{inputs:[],name:"InvalidMerkleProof",type:"error"},{inputs:[],name:"InvalidPayoutAdjustmentPct",type:"error"},{inputs:[],name:"InvalidQuoteTimestamp",type:"error"},{inputs:[],name:"InvalidRelayerFeePct",type:"error"},{inputs:[],name:"InvalidSlowFillRequest",type:"error"},{inputs:[],name:"InvalidWithdrawalRecipient",type:"error"},{inputs:[{internalType:"bytes",name:"data",type:"bytes"}],name:"LowLevelCallFailed",type:"error"},{inputs:[],name:"MaxTransferSizeExceeded",type:"error"},{inputs:[],name:"MsgValueDoesNotMatchInputAmount",type:"error"},{inputs:[],name:"NoRelayerRefundToClaim",type:"error"},{inputs:[],name:"NoSlowFillsInExclusivityWindow",type:"error"},{inputs:[],name:"NotEOA",type:"error"},{inputs:[],name:"NotExclusiveRelayer",type:"error"},{inputs:[],name:"RelayFilled",type:"error"},{inputs:[],name:"WrongERC7683OrderId",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"previousAdmin",type:"address"},{indexed:!1,internalType:"address",name:"newAdmin",type:"address"}],name:"AdminChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"beacon",type:"address"}],name:"BeaconUpgraded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"l2TokenAddress",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"refundAddress",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!0,internalType:"address",name:"caller",type:"address"}],name:"ClaimedRelayerRefund",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"rootBundleId",type:"uint256"}],name:"EmergencyDeletedRootBundle",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"originToken",type:"address"},{indexed:!0,internalType:"uint256",name:"destinationChainId",type:"uint256"},{indexed:!1,internalType:"bool",name:"enabled",type:"bool"}],name:"EnabledDepositRoute",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"amountToReturn",type:"uint256"},{indexed:!0,internalType:"uint256",name:"chainId",type:"uint256"},{indexed:!1,internalType:"uint256[]",name:"refundAmounts",type:"uint256[]"},{indexed:!0,internalType:"uint32",name:"rootBundleId",type:"uint32"},{indexed:!0,internalType:"uint32",name:"leafId",type:"uint32"},{indexed:!1,internalType:"address",name:"l2TokenAddress",type:"address"},{indexed:!1,internalType:"address[]",name:"refundAddresses",type:"address[]"},{indexed:!1,internalType:"bool",name:"deferredRefunds",type:"bool"},{indexed:!1,internalType:"address",name:"caller",type:"address"}],name:"ExecutedRelayerRefundRoot",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"inputToken",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"outputToken",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"inputAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"outputAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"repaymentChainId",type:"uint256"},{indexed:!0,internalType:"uint256",name:"originChainId",type:"uint256"},{indexed:!0,internalType:"uint256",name:"depositId",type:"uint256"},{indexed:!1,internalType:"uint32",name:"fillDeadline",type:"uint32"},{indexed:!1,internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{indexed:!1,internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"relayer",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"depositor",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"recipient",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"messageHash",type:"bytes32"},{components:[{internalType:"bytes32",name:"updatedRecipient",type:"bytes32"},{internalType:"bytes32",name:"updatedMessageHash",type:"bytes32"},{internalType:"uint256",name:"updatedOutputAmount",type:"uint256"},{internalType:"enum V3SpokePoolInterface.FillType",name:"fillType",type:"uint8"}],indexed:!1,internalType:"struct V3SpokePoolInterface.V3RelayExecutionEventInfo",name:"relayExecutionInfo",type:"tuple"}],name:"FilledRelay",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"inputToken",type:"address"},{indexed:!1,internalType:"address",name:"outputToken",type:"address"},{indexed:!1,internalType:"uint256",name:"inputAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"outputAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"repaymentChainId",type:"uint256"},{indexed:!0,internalType:"uint256",name:"originChainId",type:"uint256"},{indexed:!0,internalType:"uint32",name:"depositId",type:"uint32"},{indexed:!1,internalType:"uint32",name:"fillDeadline",type:"uint32"},{indexed:!1,internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{indexed:!1,internalType:"address",name:"exclusiveRelayer",type:"address"},{indexed:!0,internalType:"address",name:"relayer",type:"address"},{indexed:!1,internalType:"address",name:"depositor",type:"address"},{indexed:!1,internalType:"address",name:"recipient",type:"address"},{indexed:!1,internalType:"bytes",name:"message",type:"bytes"},{components:[{internalType:"address",name:"updatedRecipient",type:"address"},{internalType:"bytes",name:"updatedMessage",type:"bytes"},{internalType:"uint256",name:"updatedOutputAmount",type:"uint256"},{internalType:"enum V3SpokePoolInterface.FillType",name:"fillType",type:"uint8"}],indexed:!1,internalType:"struct V3SpokePoolInterface.LegacyV3RelayExecutionEventInfo",name:"relayExecutionInfo",type:"tuple"}],name:"FilledV3Relay",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"inputToken",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"outputToken",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"inputAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"outputAmount",type:"uint256"},{indexed:!0,internalType:"uint256",name:"destinationChainId",type:"uint256"},{indexed:!0,internalType:"uint256",name:"depositId",type:"uint256"},{indexed:!1,internalType:"uint32",name:"quoteTimestamp",type:"uint32"},{indexed:!1,internalType:"uint32",name:"fillDeadline",type:"uint32"},{indexed:!1,internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{indexed:!0,internalType:"bytes32",name:"depositor",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"recipient",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{indexed:!1,internalType:"bytes",name:"message",type:"bytes"}],name:"FundsDeposited",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint8",name:"version",type:"uint8"}],name:"Initialized",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bool",name:"isPaused",type:"bool"}],name:"PausedDeposits",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bool",name:"isPaused",type:"bool"}],name:"PausedFills",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint32",name:"rootBundleId",type:"uint32"},{indexed:!0,internalType:"bytes32",name:"relayerRefundRoot",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"slowRelayRoot",type:"bytes32"}],name:"RelayedRootBundle",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"inputToken",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"outputToken",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"inputAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"outputAmount",type:"uint256"},{indexed:!0,internalType:"uint256",name:"originChainId",type:"uint256"},{indexed:!0,internalType:"uint256",name:"depositId",type:"uint256"},{indexed:!1,internalType:"uint32",name:"fillDeadline",type:"uint32"},{indexed:!1,internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{indexed:!1,internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"depositor",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"recipient",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"messageHash",type:"bytes32"}],name:"RequestedSlowFill",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"updatedOutputAmount",type:"uint256"},{indexed:!0,internalType:"uint256",name:"depositId",type:"uint256"},{indexed:!0,internalType:"bytes32",name:"depositor",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"updatedRecipient",type:"bytes32"},{indexed:!1,internalType:"bytes",name:"updatedMessage",type:"bytes"},{indexed:!1,internalType:"bytes",name:"depositorSignature",type:"bytes"}],name:"RequestedSpeedUpDeposit",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"updatedOutputAmount",type:"uint256"},{indexed:!0,internalType:"uint32",name:"depositId",type:"uint32"},{indexed:!0,internalType:"address",name:"depositor",type:"address"},{indexed:!1,internalType:"address",name:"updatedRecipient",type:"address"},{indexed:!1,internalType:"bytes",name:"updatedMessage",type:"bytes"},{indexed:!1,internalType:"bytes",name:"depositorSignature",type:"bytes"}],name:"RequestedSpeedUpV3Deposit",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"inputToken",type:"address"},{indexed:!1,internalType:"address",name:"outputToken",type:"address"},{indexed:!1,internalType:"uint256",name:"inputAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"outputAmount",type:"uint256"},{indexed:!0,internalType:"uint256",name:"originChainId",type:"uint256"},{indexed:!0,internalType:"uint32",name:"depositId",type:"uint32"},{indexed:!1,internalType:"uint32",name:"fillDeadline",type:"uint32"},{indexed:!1,internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{indexed:!1,internalType:"address",name:"exclusiveRelayer",type:"address"},{indexed:!1,internalType:"address",name:"depositor",type:"address"},{indexed:!1,internalType:"address",name:"recipient",type:"address"},{indexed:!1,internalType:"bytes",name:"message",type:"bytes"}],name:"RequestedV3SlowFill",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"newWithdrawalRecipient",type:"address"}],name:"SetWithdrawalRecipient",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"newAdmin",type:"address"}],name:"SetXDomainAdmin",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"amountToReturn",type:"uint256"},{indexed:!0,internalType:"uint256",name:"chainId",type:"uint256"},{indexed:!0,internalType:"uint32",name:"leafId",type:"uint32"},{indexed:!0,internalType:"bytes32",name:"l2TokenAddress",type:"bytes32"},{indexed:!1,internalType:"address",name:"caller",type:"address"}],name:"TokensBridged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"implementation",type:"address"}],name:"Upgraded",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"inputToken",type:"address"},{indexed:!1,internalType:"address",name:"outputToken",type:"address"},{indexed:!1,internalType:"uint256",name:"inputAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"outputAmount",type:"uint256"},{indexed:!0,internalType:"uint256",name:"destinationChainId",type:"uint256"},{indexed:!0,internalType:"uint32",name:"depositId",type:"uint32"},{indexed:!1,internalType:"uint32",name:"quoteTimestamp",type:"uint32"},{indexed:!1,internalType:"uint32",name:"fillDeadline",type:"uint32"},{indexed:!1,internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{indexed:!0,internalType:"address",name:"depositor",type:"address"},{indexed:!1,internalType:"address",name:"recipient",type:"address"},{indexed:!1,internalType:"address",name:"exclusiveRelayer",type:"address"},{indexed:!1,internalType:"bytes",name:"message",type:"bytes"}],name:"V3FundsDeposited",type:"event"},{inputs:[],name:"EMPTY_RELAYER",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"EMPTY_REPAYMENT_CHAIN_ID",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"INFINITE_FILL_DEADLINE",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[],name:"MAX_EXCLUSIVITY_PERIOD_SECONDS",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[],name:"MAX_TRANSFER_SIZE",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"UPDATE_ADDRESS_DEPOSIT_DETAILS_HASH",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"UPDATE_BYTES32_DEPOSIT_DETAILS_HASH",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint32",name:"_initialDepositId",type:"uint32"},{internalType:"address",name:"_crossDomainAdmin",type:"address"},{internalType:"address",name:"_withdrawalRecipient",type:"address"}],name:"__SpokePool_init",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"chainId",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"l2TokenAddress",type:"bytes32"},{internalType:"bytes32",name:"refundAddress",type:"bytes32"}],name:"claimRelayerRefund",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"crossDomainAdmin",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"inputToken",type:"bytes32"},{internalType:"bytes32",name:"outputToken",type:"bytes32"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{internalType:"uint32",name:"quoteTimestamp",type:"uint32"},{internalType:"uint32",name:"fillDeadline",type:"uint32"},{internalType:"uint32",name:"exclusivityParameter",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],name:"deposit",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"recipient",type:"address"},{internalType:"address",name:"originToken",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"int64",name:"relayerFeePct",type:"int64"},{internalType:"uint32",name:"quoteTimestamp",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"},{internalType:"uint256",name:"",type:"uint256"}],name:"depositDeprecated_5947912356",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"depositor",type:"address"},{internalType:"address",name:"recipient",type:"address"},{internalType:"address",name:"originToken",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"int64",name:"relayerFeePct",type:"int64"},{internalType:"uint32",name:"quoteTimestamp",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"},{internalType:"uint256",name:"",type:"uint256"}],name:"depositFor",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"inputToken",type:"bytes32"},{internalType:"bytes32",name:"outputToken",type:"bytes32"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{internalType:"uint32",name:"fillDeadlineOffset",type:"uint32"},{internalType:"uint32",name:"exclusivityParameter",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],name:"depositNow",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"depositQuoteTimeBuffer",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"depositor",type:"address"},{internalType:"address",name:"recipient",type:"address"},{internalType:"address",name:"inputToken",type:"address"},{internalType:"address",name:"outputToken",type:"address"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"address",name:"exclusiveRelayer",type:"address"},{internalType:"uint32",name:"quoteTimestamp",type:"uint32"},{internalType:"uint32",name:"fillDeadline",type:"uint32"},{internalType:"uint32",name:"exclusivityParameter",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],name:"depositV3",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"depositor",type:"address"},{internalType:"address",name:"recipient",type:"address"},{internalType:"address",name:"inputToken",type:"address"},{internalType:"address",name:"outputToken",type:"address"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"address",name:"exclusiveRelayer",type:"address"},{internalType:"uint32",name:"fillDeadlineOffset",type:"uint32"},{internalType:"uint32",name:"exclusivityParameter",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],name:"depositV3Now",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"rootBundleId",type:"uint256"}],name:"emergencyDeleteRootBundle",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"}],name:"enabledDepositRoutes",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint32",name:"rootBundleId",type:"uint32"},{components:[{internalType:"uint256",name:"amountToReturn",type:"uint256"},{internalType:"uint256",name:"chainId",type:"uint256"},{internalType:"uint256[]",name:"refundAmounts",type:"uint256[]"},{internalType:"uint32",name:"leafId",type:"uint32"},{internalType:"address",name:"l2TokenAddress",type:"address"},{internalType:"address[]",name:"refundAddresses",type:"address[]"}],internalType:"struct SpokePoolInterface.RelayerRefundLeaf",name:"relayerRefundLeaf",type:"tuple"},{internalType:"bytes32[]",name:"proof",type:"bytes32[]"}],name:"executeRelayerRefundLeaf",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{components:[{components:[{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{internalType:"bytes32",name:"inputToken",type:"bytes32"},{internalType:"bytes32",name:"outputToken",type:"bytes32"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"originChainId",type:"uint256"},{internalType:"uint256",name:"depositId",type:"uint256"},{internalType:"uint32",name:"fillDeadline",type:"uint32"},{internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],internalType:"struct V3SpokePoolInterface.V3RelayData",name:"relayData",type:"tuple"},{internalType:"uint256",name:"chainId",type:"uint256"},{internalType:"uint256",name:"updatedOutputAmount",type:"uint256"}],internalType:"struct V3SpokePoolInterface.V3SlowFill",name:"slowFillLeaf",type:"tuple"},{internalType:"uint32",name:"rootBundleId",type:"uint32"},{internalType:"bytes32[]",name:"proof",type:"bytes32[]"}],name:"executeSlowRelayLeaf",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"orderId",type:"bytes32"},{internalType:"bytes",name:"originData",type:"bytes"},{internalType:"bytes",name:"fillerData",type:"bytes"}],name:"fill",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"fillDeadlineBuffer",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{internalType:"bytes32",name:"inputToken",type:"bytes32"},{internalType:"bytes32",name:"outputToken",type:"bytes32"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"originChainId",type:"uint256"},{internalType:"uint256",name:"depositId",type:"uint256"},{internalType:"uint32",name:"fillDeadline",type:"uint32"},{internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],internalType:"struct V3SpokePoolInterface.V3RelayData",name:"relayData",type:"tuple"},{internalType:"uint256",name:"repaymentChainId",type:"uint256"},{internalType:"bytes32",name:"repaymentAddress",type:"bytes32"}],name:"fillRelay",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{internalType:"bytes32",name:"inputToken",type:"bytes32"},{internalType:"bytes32",name:"outputToken",type:"bytes32"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"originChainId",type:"uint256"},{internalType:"uint256",name:"depositId",type:"uint256"},{internalType:"uint32",name:"fillDeadline",type:"uint32"},{internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],internalType:"struct V3SpokePoolInterface.V3RelayData",name:"relayData",type:"tuple"},{internalType:"uint256",name:"repaymentChainId",type:"uint256"},{internalType:"bytes32",name:"repaymentAddress",type:"bytes32"},{internalType:"uint256",name:"updatedOutputAmount",type:"uint256"},{internalType:"bytes32",name:"updatedRecipient",type:"bytes32"},{internalType:"bytes",name:"updatedMessage",type:"bytes"},{internalType:"bytes",name:"depositorSignature",type:"bytes"}],name:"fillRelayWithUpdatedDeposit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"fillStatuses",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"address",name:"depositor",type:"address"},{internalType:"address",name:"recipient",type:"address"},{internalType:"address",name:"exclusiveRelayer",type:"address"},{internalType:"address",name:"inputToken",type:"address"},{internalType:"address",name:"outputToken",type:"address"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"originChainId",type:"uint256"},{internalType:"uint32",name:"depositId",type:"uint32"},{internalType:"uint32",name:"fillDeadline",type:"uint32"},{internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],internalType:"struct V3SpokePoolInterface.V3RelayDataLegacy",name:"relayData",type:"tuple"},{internalType:"uint256",name:"repaymentChainId",type:"uint256"}],name:"fillV3Relay",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"getCurrentTime",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"l2TokenAddress",type:"address"},{internalType:"address",name:"refundAddress",type:"address"}],name:"getRelayerRefund",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"msgSender",type:"address"},{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"uint256",name:"depositNonce",type:"uint256"}],name:"getUnsafeDepositId",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"pure",type:"function"},{inputs:[{components:[{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{internalType:"bytes32",name:"inputToken",type:"bytes32"},{internalType:"bytes32",name:"outputToken",type:"bytes32"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"originChainId",type:"uint256"},{internalType:"uint256",name:"depositId",type:"uint256"},{internalType:"uint32",name:"fillDeadline",type:"uint32"},{internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],internalType:"struct V3SpokePoolInterface.V3RelayData",name:"relayData",type:"tuple"}],name:"getV3RelayHash",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint32",name:"_initialDepositId",type:"uint32"},{internalType:"address",name:"_withdrawalRecipient",type:"address"}],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes[]",name:"data",type:"bytes[]"}],name:"multicall",outputs:[{internalType:"bytes[]",name:"results",type:"bytes[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"numberOfDeposits",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bool",name:"pause",type:"bool"}],name:"pauseDeposits",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bool",name:"pause",type:"bool"}],name:"pauseFills",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"pausedDeposits",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"pausedFills",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"proxiableUUID",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"relayerRefundRoot",type:"bytes32"},{internalType:"bytes32",name:"slowRelayRoot",type:"bytes32"}],name:"relayRootBundle",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"}],name:"relayerRefund",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{internalType:"bytes32",name:"inputToken",type:"bytes32"},{internalType:"bytes32",name:"outputToken",type:"bytes32"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"originChainId",type:"uint256"},{internalType:"uint256",name:"depositId",type:"uint256"},{internalType:"uint32",name:"fillDeadline",type:"uint32"},{internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],internalType:"struct V3SpokePoolInterface.V3RelayData",name:"relayData",type:"tuple"}],name:"requestSlowFill",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"}],name:"rootBundles",outputs:[{internalType:"bytes32",name:"slowRelayRoot",type:"bytes32"},{internalType:"bytes32",name:"relayerRefundRoot",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"newCrossDomainAdmin",type:"address"}],name:"setCrossDomainAdmin",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"originToken",type:"address"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"bool",name:"enabled",type:"bool"}],name:"setEnableRoute",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newWithdrawalRecipient",type:"address"}],name:"setWithdrawalRecipient",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"uint256",name:"depositId",type:"uint256"},{internalType:"uint256",name:"updatedOutputAmount",type:"uint256"},{internalType:"bytes32",name:"updatedRecipient",type:"bytes32"},{internalType:"bytes",name:"updatedMessage",type:"bytes"},{internalType:"bytes",name:"depositorSignature",type:"bytes"}],name:"speedUpDeposit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"depositor",type:"address"},{internalType:"uint256",name:"depositId",type:"uint256"},{internalType:"uint256",name:"updatedOutputAmount",type:"uint256"},{internalType:"address",name:"updatedRecipient",type:"address"},{internalType:"bytes",name:"updatedMessage",type:"bytes"},{internalType:"bytes",name:"depositorSignature",type:"bytes"}],name:"speedUpV3Deposit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes[]",name:"data",type:"bytes[]"}],name:"tryMulticall",outputs:[{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct MultiCallerUpgradeable.Result[]",name:"results",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"inputToken",type:"bytes32"},{internalType:"bytes32",name:"outputToken",type:"bytes32"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{internalType:"uint256",name:"depositNonce",type:"uint256"},{internalType:"uint32",name:"quoteTimestamp",type:"uint32"},{internalType:"uint32",name:"fillDeadline",type:"uint32"},{internalType:"uint32",name:"exclusivityParameter",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],name:"unsafeDeposit",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"newImplementation",type:"address"}],name:"upgradeTo",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newImplementation",type:"address"},{internalType:"bytes",name:"data",type:"bytes"}],name:"upgradeToAndCall",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"withdrawalRecipient",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"wrappedNativeToken",outputs:[{internalType:"contract WETH9Interface",name:"",type:"address"}],stateMutability:"view",type:"function"},{stateMutability:"payable",type:"receive"}],Ah=["function balanceOf(address account) external view returns (uint256)"],wh=["function approve(address spender, uint256 amount) external returns (bool)"],Th=function(e,t,r){try{const n=e.getCowShedAccount(t.sellTokenChainId,t.owner||t.account);return Promise.resolve(r.getCode(n)).then(function(e){return e&&"0x"!==e?bc:6e5})}catch(e){return Promise.reject(e)}},Eh=`${Ac}/across`,Sh=[he,Ie,se,ue,Ee];class Ih{constructor(e){this.api=void 0,this.cowShedSdk=void 0,this.getRpcProvider=void 0,this.supportedTokens=null,this.info={name:"Across",logoUrl:`${gc}/across/across-logo.png`,dappId:Eh,website:"https://across.to"},this.api=new Cc(e.apiOptions),this.cowShedSdk=new Yc(e.cowShedOptions),this.getRpcProvider=e.getRpcProvider}getNetworks(){return Promise.resolve(Sh)}getBuyTokens(e){try{return Promise.resolve(this.getSupportedTokensState()).then(function(t){return Object.values(t[e.buyChainId]||{})})}catch(e){return Promise.reject(e)}}getIntermediateTokens(e){try{const t=this;if(e.kind!==E.SELL)throw new L(O.ONLY_SELL_ORDER_SUPPORTED,{kind:e.kind});const{sellTokenChainId:r,buyTokenChainId:n,buyTokenAddress:i}=e;return Promise.resolve(t.getSupportedTokensState()).then(function(e){const t=i.toLowerCase(),o=e[r],s=e[n],a=s&&s[t]?.symbol?.toLowerCase();return a?Object.values(o||{}).filter(e=>e.symbol?.toLowerCase()===a):[]})}catch(e){return Promise.reject(e)}}getQuote(e){try{const t=this,{sellTokenAddress:r,sellTokenChainId:n,buyTokenChainId:i,amount:o,receiver:s}=e;return Promise.resolve(t.api.getSuggestedFees({token:r,originChainId:n,destinationChainId:i,amount:o,recipient:null!=s?s:void 0})).then(function(t){return function(e,t,r){const{kind:n}=e;return{isSell:n===E.SELL,amountsAndCosts:Uc(e,0,r),quoteTimestamp:Number(r.timestamp),expectedFillTimeSeconds:Number(r.estimatedFillTimeSec),fees:{bridgeFee:BigInt(r.relayerCapitalFee.total),destinationGasFee:BigInt(r.relayerGasFee.total)},limits:{minDeposit:BigInt(r.limits.minDeposit),maxDeposit:BigInt(r.limits.maxDeposit)},suggestedFees:r}}(e,0,t)})}catch(e){return Promise.reject(e)}}getUnsignedBridgeCall(e,t){try{return Promise.resolve(function(e){const{request:t,quote:r,cowShedSdk:n}=e,{sellTokenChainId:i,sellTokenAddress:o,buyTokenChainId:s,buyTokenAddress:a,account:u,receiver:l}=t,c=function(e){const t=Dc[e];if(!t)throw new Error("Spoke pool address not found for chain: "+e);return yh(new ch(t,vh),dh.CALL)}(i),d=function(e){const t=Lc[e];if(!t)throw new Error("Math contract address not found for chain: "+e);return yh(new ch(t,bh),dh.CALL)}(i),h=function(e){return yh(new ch(e,Ah),dh.STATICCALL)}(o),p=function(e){return yh(new ch(e,wh),dh.CALL)}(o),f=n.getCowShedAccount(i,u),{suggestedFees:m}=r;return mh(e=>{const t=e.add(h.balanceOf(f)),r=BigInt(m.totalRelayFee.pct),n=e.add(d.multiplyAndSubtract(t,r));e.add(p.approve(c.address,t));const i=BigInt(m.timestamp);e.add(c.depositV3(f,l||u,o,a,t,n,s,m.exclusiveRelayer,i,m.fillDeadline,m.exclusivityDeadline,"0x"))})}({request:e,quote:t,cowShedSdk:this.cowShedSdk}))}catch(e){return Promise.reject(e)}}getGasLimitEstimationForHook(e){try{const t=this;return Promise.resolve(Th(t.cowShedSdk,e,t.getRpcProvider(e.sellTokenChainId)))}catch(e){return Promise.reject(e)}}getSignedHook(e,t,r,n,i,o){try{return Promise.resolve(this.cowShedSdk.signCalls({calls:[{target:t.to,value:t.value,callData:t.data,allowFailure:!1,isDelegateCall:!0}],chainId:e,signer:r,gasLimit:BigInt(o),deadline:i,nonce:n})).then(function({signedMulticall:e,cowShedAccount:t,gasLimit:r}){const{to:n,data:i}=e;return{postHook:{target:n,callData:i,gasLimit:r.toString(),dappId:Eh},recipient:t}})}catch(e){return Promise.reject(e)}}decodeBridgeHook(e){try{throw new Error("Not implemented")}catch(e){return Promise.reject(e)}}getBridgingParams(e,t,r){try{const n=this;return Promise.resolve(n.getRpcProvider(e).getTransactionReceipt(r)).then(function(r){return Promise.resolve(function(e,t,r){try{const n=function(e,t){const r=Dc[e]?.toLowerCase();if(!r)return[];const n=t.filter(e=>e.address.toLocaleLowerCase()===r&&e.topics[0]===Oc);return n.map(e=>{const{inputToken:t,outputToken:r,inputAmount:n,outputAmount:i,destinationChainId:o,depositId:s,quoteTimestamp:a,fillDeadline:u,exclusivityDeadline:l,depositor:c,recipient:d,exclusiveRelayer:h,message:p}=Rc.parseLog(e).args;return{inputToken:Gc(t),outputToken:Gc(r),inputAmount:n,outputAmount:i,destinationChainId:o,depositId:s,quoteTimestamp:a,fillDeadline:u,exclusivityDeadline:l,depositor:Gc(c),recipient:Gc(d),exclusiveRelayer:h,message:p}})}(e,r.logs);if(0===n.length)return Promise.resolve(null);const i=function(e,t){const r=t.filter(t=>t.address.toLowerCase()===ze[e].toLowerCase()&&t.topics[0]===Bc);return r.map(e=>{const t=Mc.parseLog(e).args,{owner:r,sellToken:n,buyToken:i,sellAmount:o,buyAmount:s,feeAmount:a}=t;return{owner:r,sellToken:n,buyToken:i,sellAmount:o,buyAmount:s,feeAmount:a,orderUid:"0x"+e.data.slice(450,562)}})}(e,r.logs),o=i.findIndex(e=>e.orderUid===t);if(o<0)return Promise.resolve(null);const s=n[o];return s?Promise.resolve({inputTokenAddress:s.inputToken,outputTokenAddress:s.outputToken,inputAmount:BigInt(s.inputAmount.toString()),outputAmount:BigInt(s.outputAmount.toString()),owner:s.depositor,quoteTimestamp:parseInt(s.quoteTimestamp.toString()),fillDeadline:parseInt(s.fillDeadline.toString()),recipient:s.recipient,sourceChainId:e,destinationChainId:parseInt(s.destinationChainId.toString()),bridgingId:s.depositId.toString()}):(J(`Trade event found at index ${o} but only ${n.length} deposit events available`),Promise.resolve(null))}catch(e){return Promise.reject(e)}}(e,t,r)).then(function(t){return t?Promise.resolve(n.getStatus(t.bridgingId,e)).then(function(e){return{params:t,status:e}}):null})})}catch(e){return Promise.reject(e)}}getExplorerUrl(e){return`https://app.across.to/transactions/${e}`}getStatus(e,t){try{return Promise.resolve(this.api.getDepositStatus({originChainId:t.toString(),depositId:e})).then(function(e){return{status:(t=e.status,qc[t]),depositTxHash:e.depositTxHash,fillTxHash:e.fillTx};var t})}catch(e){return Promise.reject(e)}}getCancelBridgingTx(e){try{throw new Error("Not implemented")}catch(e){return Promise.reject(e)}}getRefundBridgingTx(e){try{throw new Error("Not implemented")}catch(e){return Promise.reject(e)}}getSupportedTokensState(){try{const e=this;function t(){return e.supportedTokens}const r=function(){if(!e.supportedTokens)return Promise.resolve(e.api.getSupportedTokens()).then(function(t){e.supportedTokens=t.reduce((e,t)=>(e[t.chainId]=e[t.chainId]||{},e[t.chainId][t.address.toLowerCase()]=t,e),{})})}();return Promise.resolve(r&&r.then?r.then(t):t())}catch(n){return Promise.reject(n)}}}const kh=[{type:"constructor",inputs:[{name:"_owner",type:"address",internalType:"address"},{name:"_socketGateway",type:"address",internalType:"address"}],stateMutability:"nonpayable"},{type:"function",name:"addVerifier",inputs:[{name:"routeId",type:"uint32",internalType:"uint32"},{name:"verifier",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"claimOwner",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"nominateOwner",inputs:[{name:"nominee_",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"nominee",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"owner",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"parseCallData",inputs:[{name:"callData",type:"bytes",internalType:"bytes"}],outputs:[{name:"",type:"tuple",internalType:"struct SocketVerifier.UserRequest",components:[{name:"routeId",type:"uint32",internalType:"uint32"},{name:"socketRequest",type:"bytes",internalType:"bytes"}]}],stateMutability:"nonpayable"},{type:"function",name:"routeIdsToVerifiers",inputs:[{name:"",type:"uint32",internalType:"uint32"}],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"socketGateway",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"validateRotueId",inputs:[{name:"callData",type:"bytes",internalType:"bytes"},{name:"expectedRouteId",type:"uint32",internalType:"uint32"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"validateSocketRequest",inputs:[{name:"callData",type:"bytes",internalType:"bytes"},{name:"expectedRequest",type:"tuple",internalType:"struct SocketVerifier.UserRequestValidation",components:[{name:"routeId",type:"uint32",internalType:"uint32"},{name:"socketRequest",type:"tuple",internalType:"struct SocketVerifier.SocketRequest",components:[{name:"amount",type:"uint256",internalType:"uint256"},{name:"recipient",type:"address",internalType:"address"},{name:"toChainId",type:"uint256",internalType:"uint256"},{name:"token",type:"address",internalType:"address"},{name:"signature",type:"bytes4",internalType:"bytes4"}]}]}],outputs:[],stateMutability:"nonpayable"},{type:"event",name:"OwnerClaimed",inputs:[{name:"claimer",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"OwnerNominated",inputs:[{name:"nominee",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"error",name:"AmountNotMatched",inputs:[]},{type:"error",name:"FailedToVerify",inputs:[]},{type:"error",name:"OnlyNominee",inputs:[]},{type:"error",name:"OnlyOwner",inputs:[]},{type:"error",name:"RecipientNotMatched",inputs:[]},{type:"error",name:"RouteIdNotFound",inputs:[]},{type:"error",name:"RouteIdNotMatched",inputs:[]},{type:"error",name:"SignatureNotMatched",inputs:[]},{type:"error",name:"ToChainIdNotMatched",inputs:[]},{type:"error",name:"TokenNotMatched",inputs:[]}],Ph=[{type:"function",name:"approveAndBridge",inputs:[{name:"token",type:"address",internalType:"contract IERC20"},{name:"minAmount",type:"uint256",internalType:"uint256"},{name:"nativeTokenExtraFee",type:"uint256",internalType:"uint256"},{name:"data",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"}],Ch={across:{["0x792ebcb9".toLowerCase()]:{inputAmount:{bytes_startIndex:8,bytes_length:32,bytesString_startIndex:18,bytesString_length:64},outputAmount:{bytes_startIndex:488,bytes_length:32,bytesString_startIndex:978,bytesString_length:64}},["0xe421f352".toLowerCase()]:{inputAmount:{bytes_startIndex:8,bytes_length:32,bytesString_startIndex:18,bytesString_length:64},outputAmount:{bytes_startIndex:392,bytes_length:32,bytesString_startIndex:786,bytesString_length:64}}},cctp:{["0xb7dfe9d0".toLowerCase()]:{inputAmount:{bytes_startIndex:8,bytes_length:32,bytesString_startIndex:18,bytesString_length:64}}}};var Nh;!function(e){e.Across="across",e.CircleCCTP="cctp"}(Nh||(Nh={}));const xh={Across:Nh.Across,"Circle CCTP":Nh.CircleCCTP};var _h,Rh;function Mh(e,t,r){const{amount:n,sellTokenDecimals:i,buyTokenDecimals:o}=e,s=_t(n,i).big,a=_t(r.route.output.amount,o).big,u=a,l=r.route.routeDetails.routeFee.amount,c=function(e,t){return e*BigInt(1e4-t)/10000n}(u,t);return{beforeFee:{sellAmount:s,buyAmount:a},afterFee:{sellAmount:s,buyAmount:u},afterSlippage:{sellAmount:s,buyAmount:c},costs:{bridgingFee:{feeBps:function(e,t){if(0n===t)throw new Error("Denominator is 0");if(e>t)throw new Error("Fee amount is greater than amount");return Number((10000n*e+t/2n)/t)}(BigInt(r.route.routeDetails.routeFee.amount),BigInt(n)),amountInSellCurrency:BigInt(l),amountInBuyCurrency:BigInt(0)}},slippageBps:t}}function Oh(e){if(!e||e.length<10)throw new Error("Invalid txData: too short");if(!e.startsWith("0x"))throw new Error("Invalid txData: must start with 0x");const t=e.slice(2);if(t.length<8)throw new Error("Invalid txData: insufficient data for routeId");const r=`0x${t.slice(0,8)}`,n=`0x${t.slice(8)}`;if(n.length<10)throw new Error("Invalid txData: insufficient data for function selector");const i=`${n.slice(0,10)}`;return{routeId:r,encodedFunctionData:n,functionSelector:i}}function Bh(e){const t=new URLSearchParams;return Object.entries(e).forEach(([e,r])=>{Array.isArray(r)?t.append(e,r.join(",")):t.append(e,String(r))}),t}!function(e){e.COMPLETED="COMPLETED",e.PENDING="PENDING"}(_h||(_h={})),function(e){e.ACROSS="across",e.CCTP="cctp"}(Rh||(Rh={}));const Dh="0xa27A3f5A96DF7D8Be26EE2790999860C00eb688D",Lh={[B.MAINNET]:Dh,[B.GNOSIS_CHAIN]:Dh,[B.ARBITRUM_ONE]:Dh,[B.BASE]:Dh,[B.AVALANCHE]:Dh,[B.POLYGON]:Dh,[B.LENS]:void 0,[B.BNB]:void 0,[B.SEPOLIA]:void 0,[D.OPTIMISM]:Dh},Fh="0x936fa1cfd96849329B18b915773E176718A64b95",Uh={[B.MAINNET]:Fh,[B.GNOSIS_CHAIN]:Fh,[B.ARBITRUM_ONE]:Fh,[B.BASE]:Fh,[B.AVALANCHE]:Fh,[B.POLYGON]:Fh,[B.LENS]:void 0,[B.BNB]:void 0,[B.SEPOLIA]:void 0,[D.OPTIMISM]:Fh};function Gh(e,t){try{var r=e()}catch(e){return t(e)}return r&&r.then?r.then(void 0,t):r}const jh="https://public-backend.bungee.exchange/api/v1/bungee",Hh="https://microservices.socket.tech/loki",qh="https://app.across.to/api",Vh=["across","cctp"],zh={bungee:"Bungee Api Error",events:"Bungee Events Api Error",across:"Across Api Error","bungee-manual":"Bungee Manual Api Error"};class Kh{constructor(e={apiBaseUrl:jh,eventsApiBaseUrl:Hh,acrossApiBaseUrl:qh,includeBridges:Vh}){this.options=void 0,this.options=e,this.validateBridges(this.getSupportedBridges())}validateBridges(e){if(e?.some(e=>!Vh.includes(e)))throw new F(`Unsupported bridge: ${e.filter(e=>!Vh.includes(e)).join(", ")}`,{includeBridges:e})}getBuyTokens(e,t){try{const r=this,{sellChainId:n,sellTokenAddress:i,buyChainId:o}=e,s=r.getSupportedBridges(t?.includeBridges);r.validateBridges(s);const a={toChainId:o.toString(),includeBridges:s.join(",")};n&&(a.fromChainId=n.toString()),i&&(a.fromTokenAddress=i);const u=Bh(a);return Promise.resolve(r.makeApiCall("bungee-manual","/dest-tokens",u)).then(function(e){if(!e.success)throw new F("Bungee Api Error: Buy tokens failed",e);return e.result.map(e=>({...e,logoUrl:e.logoURI}))})}catch(e){return Promise.reject(e)}}getIntermediateTokens(e){try{const t=this,{fromChainId:r,toChainId:n,toTokenAddress:i}=e,o=t.getSupportedBridges(e.includeBridges);t.validateBridges(o);const s=Bh({fromChainId:r.toString(),toChainId:n.toString(),toTokenAddress:i,includeBridges:o.join(",")});return Promise.resolve(t.makeApiCall("bungee-manual","/intermediate-tokens",s)).then(function(e){if(!e.success)throw new L(O.NO_INTERMEDIATE_TOKENS,e);return e.result.map(e=>({...e,logoUrl:e.logoURI}))})}catch(e){return Promise.reject(e)}}getBungeeQuoteWithBuildTx(e){try{const t=this;return Promise.resolve(t.getBungeeQuote(e)).then(function(e){return Promise.resolve(t.getBungeeBuildTx(e)).then(function(t){return{bungeeQuote:e,buildTx:t}})})}catch(e){return Promise.reject(e)}}getBungeeQuote(e){try{const t=this;return Promise.resolve(Gh(function(){e.includeBridges=t.getSupportedBridges(e.includeBridges),t.validateBridges(e.includeBridges);const r=Bh(e);return Promise.resolve(t.makeApiCall("bungee","/quote",r,Wh)).then(function(e){if(!e.success)throw new L(O.QUOTE_ERROR,e);const t=Math.floor(Date.now()/1e3),{manualRoutes:r}=e.result;if(0===r.length)throw new L(O.NO_ROUTES,e.result);const n=r[0];if(!n?.routeDetails?.name)throw new L(O.NO_ROUTES,{manualRoutes:r});const i=xh[n.routeDetails.name];if(!i)throw new L(O.INVALID_BRIDGE,{firstRoute:n});const o=r.sort((e,t)=>Number(t.output.amount)-Number(e.output.amount));return{originChainId:e.result.originChainId,destinationChainId:e.result.destinationChainId,userAddress:e.result.userAddress,receiverAddress:e.result.receiverAddress,input:e.result.input,route:o[0],routeBridge:i,quoteTimestamp:t}})},function(e){throw console.error("🔴 Error getting bungee quote:",e),e}))}catch(e){return Promise.reject(e)}}getBungeeBuildTx(e){try{return Promise.resolve(this.makeApiCall("bungee","/build-tx",{quoteId:e.route.quoteId})).then(function(e){if(!e.success)throw new L(O.TX_BUILD_ERROR,e);return e.result})}catch(e){return Promise.reject(e)}}verifyBungeeBuildTx(e,t,r){try{const n=this,{routeId:i,functionSelector:o}=Oh(t.txData.data),s={amount:e.input.amount,recipient:e.receiverAddress,toChainId:e.destinationChainId.toString(),token:e.input.token.address,signature:o};return Promise.resolve(n.verifyBungeeBuildTxData(e.originChainId,t.txData.data,i,s,r))}catch(e){return Promise.reject(e)}}verifyBungeeBuildTxData(e,t,r,n,o){try{let s;function a(e){let i;if(s)return e;const o={routeId:r,socketRequest:n},a=Gh(function(){return Promise.resolve(c.callStatic.validateSocketRequest(t,o)).then(function(){})},function(e){return console.error("🔴 Error validating socket request:",e),i=1,!1});return a&&a.then?a.then(function(e){return!i||e}):!i||a}const u=zl(o),l=Lh[e];if(!l)throw new L(O.TX_BUILD_ERROR,{originChainId:e,error:"Socket verifier not found"});const c=new i.Contract(l,kh,u),d=Gh(function(){return Promise.resolve(c.callStatic.validateRotueId(t,r)).then(function(){})},function(e){return console.error("🔴 Error validating routeId:",e),s=1,!1});return Promise.resolve(d&&d.then?d.then(a):a(d))}catch(h){return Promise.reject(h)}}getEvents(e){try{return Promise.resolve(this.makeApiCall("events",e.orderId?"/order":"/tx",e,Jh)).then(function(e){if(!e.success)throw new F("Bungee Events Api Error",e);return e.result})}catch(e){return Promise.reject(e)}}getAcrossStatus(e){try{return Promise.resolve(this.makeApiCall("across","/deposit/status",{depositTxHash:e},Qh)).then(function(e){return e.status})}catch(e){return Promise.reject(e)}}getSupportedBridges(e){var t;return null!==(t=null!=e?e:this.options.includeBridges)&&void 0!==t?t:Vh}makeApiCall(e,t,r,n){try{const i=this,o=`${{bungee:i.options.apiBaseUrl||jh,events:i.options.eventsApiBaseUrl||Hh,across:i.options.acrossApiBaseUrl||qh,"bungee-manual":i.options.manualApiBaseUrl||"https://public-backend.bungee.exchange/api/v1/bungee-manual"}[e]}${t}?${new URLSearchParams(r).toString()}`;return J(`Fetching ${e} API: GET ${o}. Params: ${JSON.stringify(r)}`),Promise.resolve(fetch(o,{method:"GET"})).then(function(t){let i;function o(o){return i?o:Promise.resolve(t.json()).then(function(t){if(n&&!n(t))throw new L(O.INVALID_API_JSON_RESPONSE,{json:t,apiType:e,params:r});return t})}const s=function(){if(!t.ok)return Promise.resolve(t.json()).then(function(t){throw new L(O.API_ERROR,{errorBody:t,type:zh[e]})})}();return s&&s.then?s.then(o):o(s)})}catch(e){return Promise.reject(e)}}}function Wh(e){if("object"!=typeof e||null===e)return!1;if(!("success"in e)||!("statusCode"in e)||!("result"in e)||"boolean"!=typeof e.success||"number"!=typeof e.statusCode)return!1;const t=e.result;if("object"!=typeof t||null===t)return!1;const r=t;return!!("originChainId"in r&&"destinationChainId"in r&&"userAddress"in r&&"receiverAddress"in r&&"manualRoutes"in r&&Array.isArray(r.manualRoutes))&&r.manualRoutes.every(e=>{if("object"!=typeof e||null===e)return!1;if(!("routeDetails"in e)||"object"!=typeof e.routeDetails||null===e.routeDetails)return!1;if(!("routeFee"in e.routeDetails))return!1;const t=e.routeDetails.routeFee;return"object"==typeof t&&null!==t&&"amount"in t&&"quoteId"in e&&"quoteExpiry"in e&&"output"in e&&"gasFee"in e&&"slippage"in e&&"estimatedTime"in e&&"routeDetails"in e})}function Jh(e){if("object"!=typeof e||null===e)return!1;const t=e;return!!("success"in t&&"result"in t&&"boolean"==typeof t.success&&Array.isArray(t.result))&&t.result.every(e=>"object"==typeof e&&null!==e&&"identifier"in e&&"bridgeName"in e&&"fromChainId"in e&&"isCowswapTrade"in e&&"orderId"in e&&"recipient"in e&&"sender"in e&&"srcTxStatus"in e&&"destTxStatus"in e)}function Qh(e){return"object"==typeof e&&null!==e&&"status"in e}const Yh=function(e,t){try{let n;function r(e){if(n)return e;if(i.srcTxStatus===_h.COMPLETED&&i.destTxStatus===_h.COMPLETED)return{status:M.EXECUTED,depositTxHash:i.srcTransactionHash,fillTxHash:i.destTransactionHash};throw new Error("Unknown status")}if(!e?.length)return Promise.resolve({status:M.UNKNOWN});const i=e[0];if(i.srcTxStatus===_h.PENDING)return Promise.resolve({status:M.IN_PROGRESS});const o=function(){if(i.srcTxStatus===_h.COMPLETED&&i.destTxStatus===_h.PENDING){function e(e){return n?e:(n=1,{status:M.IN_PROGRESS,depositTxHash:i.srcTransactionHash})}const r=function(){if(i.bridgeName===Rh.ACROSS)return function(e,r){try{var o=Promise.resolve(t(i.orderId)).then(function(e){return"expired"===e?(n=1,{status:M.EXPIRED,depositTxHash:i.srcTransactionHash}):"refunded"===e?(n=1,{status:M.REFUND,depositTxHash:i.srcTransactionHash}):void 0})}catch(e){return r(e)}return o&&o.then?o.then(void 0,r):o}(0,function(e){console.error("BungeeBridgeProvider get across status error",e)})}();return r&&r.then?r.then(e):e(r)}}();return Promise.resolve(o&&o.then?o.then(r):r(o))}catch(s){return Promise.reject(s)}},Xh="cow-sdk://bridging/providers/bungee",Zh=[he,Ie,se,ue,Ee,ye];class $h{constructor(e){this.options=void 0,this.api=void 0,this.cowShedSdk=void 0,this.getRpcProvider=void 0,this.info={name:"Bungee",logoUrl:`${gc}/bungee/bungee-logo.png`,dappId:Xh,website:"https://www.bungee.exchange"},this.options=e,this.api=new Kh(e.apiOptions),this.cowShedSdk=new Yc(e.cowShedOptions),this.getRpcProvider=e.getRpcProvider}getNetworks(){return Promise.resolve(Zh)}getBuyTokens(e){try{return Promise.resolve(this.api.getBuyTokens(e))}catch(e){return Promise.reject(e)}}getIntermediateTokens(e){try{const t=this;if(e.kind!==E.SELL)throw new L(O.ONLY_SELL_ORDER_SUPPORTED,{kind:e.kind});return Promise.resolve(t.api.getIntermediateTokens({fromChainId:e.sellTokenChainId,toChainId:e.buyTokenChainId,toTokenAddress:e.buyTokenAddress}))}catch(e){return Promise.reject(e)}}getQuote(e){try{const t=this,{sellTokenAddress:r,sellTokenChainId:n,buyTokenChainId:i,buyTokenAddress:o,amount:s,receiver:a,account:u,owner:l}=e,c={userAddress:t.cowShedSdk.getCowShedAccount(n,null!=l?l:u),originChainId:n.toString(),destinationChainId:i.toString(),inputToken:r,inputAmount:s.toString(),receiverAddress:null!=a?a:u,outputToken:o,includeBridges:t.options.apiOptions?.includeBridges,enableManual:!0,disableSwapping:!0,disableAuto:!0};return Promise.resolve(t.api.getBungeeQuoteWithBuildTx(c)).then(function(r){return Promise.resolve(t.api.verifyBungeeBuildTx(r.bungeeQuote,r.buildTx,zl(e.signer))).then(function(t){if(!t)throw new L(O.TX_BUILD_ERROR,r);return function(e,t,r){const{kind:n}=e,{bungeeQuote:i,buildTx:o}=r;return{isSell:n===E.SELL,amountsAndCosts:Mh(e,0,i),quoteTimestamp:Number(i.quoteTimestamp),expectedFillTimeSeconds:Number(i.route.estimatedTime),fees:{bridgeFee:BigInt(i.route.routeDetails.routeFee.amount),destinationGasFee:BigInt(0)},limits:{minDeposit:BigInt(0),maxDeposit:BigInt(0)},bungeeQuote:i,buildTx:o}}(e,0,r)})})}catch(e){return Promise.reject(e)}}getUnsignedBridgeCall(e,t){try{return Promise.resolve(function(e){try{const{request:t,quote:r}=e,{bungeeQuote:n,buildTx:o}=r,s=n.routeBridge,{functionSelector:a}=Oh(o.txData.data),u=a.toLowerCase();let l=!1,c=0;const d=0n;s===Nh.Across&&(l=!0,c=Ch[s][u].outputAmount.bytes_startIndex);const h=i.utils.defaultAbiCoder.encode(["uint256","bool","uint256"],[Ch[s][u].inputAmount.bytes_startIndex,l,c]);let p=o.txData.data;p.startsWith("0x")&&(p=p.slice(2));let f=h;f.startsWith("0x")&&(f=f.slice(2));const m="0x"+p+f,y=n.input.amount,g=new i.utils.Interface(Ph).encodeFunctionData("approveAndBridge",[t.sellTokenAddress,y,d,m]),b=(t.sellTokenAddress.toLowerCase()===De.toLowerCase()?BigInt(y):0n)+d,v=Uh[t.sellTokenChainId];if(!v)throw new Error("BungeeApproveAndBridgeV1 not found");return Promise.resolve({to:v,data:g,value:b})}catch(e){return Promise.reject(e)}}({request:e,quote:t}))}catch(e){return Promise.reject(e)}}getGasLimitEstimationForHook(e){try{const t=this;return Promise.resolve(Th(t.cowShedSdk,e,t.getRpcProvider(e.sellTokenChainId)))}catch(e){return Promise.reject(e)}}getSignedHook(e,t,r,n,i,o){try{return Promise.resolve(this.cowShedSdk.signCalls({calls:[{target:t.to,value:t.value,callData:t.data,allowFailure:!1,isDelegateCall:!0}],chainId:e,signer:r,gasLimit:BigInt(o),deadline:i,nonce:n})).then(function({signedMulticall:e,cowShedAccount:t,gasLimit:r}){const{to:n,data:i}=e;return{postHook:{target:n,callData:i,gasLimit:r.toString(),dappId:Xh},recipient:t}})}catch(e){return Promise.reject(e)}}getBridgingParams(e,t,r){try{const e=this;return Promise.resolve(e.api.getEvents({orderId:t})).then(function(r){const n=r[0];return n?Promise.resolve(Yh(r,t=>e.api.getAcrossStatus(t))).then(function(e){return{params:{inputTokenAddress:n.srcTokenAddress,outputTokenAddress:n.destTokenAddress,inputAmount:BigInt(n.srcAmount),outputAmount:n.destAmount?BigInt(n.destAmount):null,owner:n.sender,quoteTimestamp:null,fillDeadline:null,recipient:n.recipient,sourceChainId:n.fromChainId,destinationChainId:n.toChainId,bridgingId:t},status:e}}):null})}catch(e){return Promise.reject(e)}}decodeBridgeHook(e){try{throw new Error("Not implemented")}catch(e){return Promise.reject(e)}}getExplorerUrl(e){return`https://socketscan.io/tx/${e}`}getStatus(e){try{const t=this;return Promise.resolve(t.api.getEvents({orderId:e})).then(function(e){return Yh(e,e=>t.api.getAcrossStatus(e))})}catch(e){return Promise.reject(e)}}getCancelBridgingTx(e){try{throw new Error("Not implemented")}catch(e){return Promise.reject(e)}}getRefundBridgingTx(e){try{throw new Error("Not implemented")}catch(e){return Promise.reject(e)}}}const ep=x`
|
|
2
2
|
query Totals {
|
|
3
3
|
totals {
|
|
4
4
|
tokens
|
|
@@ -11,19 +11,19 @@ import"cross-fetch/polyfill";import{RateLimiter as e}from"limiter";import{backOf
|
|
|
11
11
|
feesEth
|
|
12
12
|
}
|
|
13
13
|
}
|
|
14
|
-
`,
|
|
14
|
+
`,tp=x`
|
|
15
15
|
query LastDaysVolume($days: Int!) {
|
|
16
16
|
dailyTotals(orderBy: timestamp, orderDirection: desc, first: $days) {
|
|
17
17
|
timestamp
|
|
18
18
|
volumeUsd
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
|
-
`,
|
|
21
|
+
`,rp=x`
|
|
22
22
|
query LastHoursVolume($hours: Int!) {
|
|
23
23
|
hourlyTotals(orderBy: timestamp, orderDirection: desc, first: $hours) {
|
|
24
24
|
timestamp
|
|
25
25
|
volumeUsd
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
|
-
`,$h="https://api.thegraph.com/subgraphs/name/cowprotocol",ep={[B.MAINNET]:$h+"/cow",[B.GNOSIS_CHAIN]:$h+"/cow-gc",[B.ARBITRUM_ONE]:null,[B.BASE]:null,[B.SEPOLIA]:null,[B.POLYGON]:null,[B.AVALANCHE]:null},tp={[B.MAINNET]:$h+"/cow-staging",[B.GNOSIS_CHAIN]:$h+"/cow-gc-staging",[B.ARBITRUM_ONE]:null,[B.BASE]:null,[B.SEPOLIA]:null,[B.POLYGON]:null,[B.AVALANCHE]:null};class rp{constructor(e={}){this.API_NAME="CoW Protocol Subgraph",this.context=void 0,this.context={...et,...e}}getTotals(e={}){try{return Promise.resolve(this.runQuery(Yh,void 0,e)).then(function(e){return e.totals[0]})}catch(e){return Promise.reject(e)}}getLastDaysVolume(e,t={}){try{return Promise.resolve(this.runQuery(Xh,{days:e},t))}catch(e){return Promise.reject(e)}}getLastHoursVolume(e,t={}){try{return Promise.resolve(this.runQuery(Zh,{hours:e},t))}catch(e){return Promise.reject(e)}}runQuery(e,t=undefined,r={}){try{const n=this,{chainId:i,env:o}=n.getContextWithOverride(r),s=n.getEnvConfigs(o)[i];if(null===s)throw new Error("Unsupported Network. The subgraph API is not available in the Network "+i);return Promise.resolve(function(r,n){try{var i=Promise.resolve(_(s,e,t))}catch(e){return n(e)}return i&&i.then?i.then(void 0,n):i}(0,function(r){throw console.error(`[subgraph:${n.API_NAME}]`,r),new K(`Error running query: ${e}. Variables: ${JSON.stringify(t)}. API: ${s}. Inner Error: ${r}`)}))}catch(e){return Promise.reject(e)}}getContextWithOverride(e={}){return{...this.context,...e}}getEnvConfigs(e){return this.context.baseUrls?this.context.baseUrls:"prod"===e?ep:tp}}var np,ip;!function(e){e[e.PRIVATE=0]="PRIVATE",e[e.EMITTED=1]="EMITTED",e[e.SWARM=2]="SWARM",e[e.WAKU=3]="WAKU",e[e.RESERVED=4]="RESERVED",e[e.IPFS=5]="IPFS"}(np||(np={})),function(e){e.SUCCESS="SUCCESS",e.UNEXPECTED_ERROR="UNEXPECTED_ERROR",e.TRY_NEXT_BLOCK="TRY_NEXT_BLOCK",e.TRY_ON_BLOCK="TRY_ON_BLOCK",e.TRY_AT_EPOCH="TRY_AT_EPOCH",e.DONT_TRY_AGAIN="DONT_TRY_AGAIN"}(ip||(ip={}));const op=function(e){try{return Promise.resolve(e.getBlock("latest")).then(function(e){return{blockNumber:e.number,blockTimestamp:e.timestamp}})}catch(e){return Promise.reject(e)}},sp=function(e,t,r,n){try{const i=Zt.connect(He[r],n);return Promise.resolve(i.callStatic.domainVerifiers(e,t))}catch(e){return Promise.reject(e)}},ap=["erc20","0x5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc9"],up=["external","0xabee3b73373acd583a130924aad6dc38cfdc44ba0555ba94ce2ff63980ea0632"],lp=["internal","0x4ac99ace14ee0a5ef932dc609df0943ab7ac16b7583634612f8dc35a4289a6ce"],cp=["sell","0xf3b277728b3fee749481eb3e0b3b48980dbbab78658fc419025cb16eee346775"],dp=["buy","0x6ed88e868af0a1983e3886d5f3e95a2fafbd6c3450bc229e27342283dc429ccc"],hp=["tuple(address handler, bytes32 salt, bytes staticInput)"],pp=(e,t)=>`${t}@${e}`;function fp(e,t){return e===He[t]}function mp(e,t){return e===qe[t]}function yp(e,t){return Zt.createInterface().encodeFunctionData("setDomainVerifier",[e,t])}function gp(e){return r.defaultAbiCoder.encode(hp,[e])}function bp(e){const{handler:t,salt:n,staticInput:i}=r.defaultAbiCoder.decode(hp,e)[0];return{handler:t,salt:n,staticInput:i}}function vp(e,t){try{r.defaultAbiCoder.encode(e,t)}catch{return!1}return!0}function Ap(e){return new Date(1e3*e).toISOString()}function wp(e){if(ap.includes(e))return P.ERC20;if(up.includes(e))return P.EXTERNAL;if(lp.includes(e))return P.INTERNAL;throw new Error(`Unknown balance type: ${e}`)}function Tp(e){if(cp.includes(e))return E.SELL;if(dp.includes(e))return E.BUY;throw new Error(`Unknown kind: ${e}`)}function Ep(e){const{sellToken:t,sellAmount:r,buyToken:n,buyAmount:i,buyTokenBalance:o,sellTokenBalance:s,feeAmount:a,kind:u,receiver:l,validTo:c,partiallyFillable:d,appData:h}=e;return{sellToken:t,sellAmount:r,buyToken:n,buyAmount:i,feeAmount:a,receiver:l,partiallyFillable:d,appData:h,validTo:Number(c),kind:Tp(u.toString()),sellTokenBalance:wp(s.toString()),buyTokenBalance:wp(o.toString())}}function Ip(e){return e.isValid}let Sp,kp;function Pp(){return Sp||(Sp=Jt.createInterface()),Sp}function Cp(e,t){return kp||(kp=Jt.connect(qe[e],t)),kp}class xp{constructor(e){this.handler=void 0,this.salt=void 0,this.data=void 0,this.staticInput=void 0,this.hasOffChainInput=void 0;const{handler:t,salt:n=r.keccak256(r.randomBytes(32)),data:o,hasOffChainInput:s=!1}=e;if(!i.utils.isAddress(t))throw new Error(`Invalid handler: ${t}`);if(!i.utils.isHexString(n)||32!==i.utils.hexDataLength(n))throw new Error(`Invalid salt: ${n}`);this.handler=t,this.salt=n,this.data=o,this.staticInput=this.transformDataToStruct(o),this.hasOffChainInput=s}get context(){}assertIsValid(){const e=this.isValid();if(!Ip(e))throw new Error(`Invalid order: ${e.reason}`)}get createCalldata(){this.assertIsValid();const e=this.context,t=Pp(),n={handler:this.handler,salt:this.salt,staticInput:this.encodeStaticInput()};if(e){const i=e.factoryArgs?r.defaultAbiCoder.encode(e.factoryArgs.argsType,e.factoryArgs.args):"0x";return t.encodeFunctionData("createWithContext",[n,e.address,i,!0])}return t.encodeFunctionData("create",[n,!0])}get removeCalldata(){return this.assertIsValid(),Pp().encodeFunctionData("remove",[this.id])}get id(){return r.keccak256(this.serialize())}get ctx(){return this.isSingleOrder?this.id:o.HashZero}get leaf(){return{handler:this.handler,salt:this.salt,staticInput:this.encodeStaticInput()}}static leafToId(e){return r.keccak256(gp(e))}get offChainInput(){return"0x"}encodeStaticInputHelper(e,t){return r.defaultAbiCoder.encode(e,[t])}poll(e){try{const t=this,{chainId:r,owner:n,provider:i,orderBookApi:o}=e,s=Cp(r,i);return Promise.resolve(function(i,a){try{var u=function(){const i=t.isValid();return Ip(i)?Promise.resolve(t.pollValidate(e)).then(function(i){return i||Promise.resolve(t.isAuthorized(e)).then(function(i){return i?Promise.resolve(s.getTradeableOrderWithSignature(n,t.leaf,t.offChainInput,[])).then(function([i,s]){return Promise.resolve(function(e,t,r){try{return Promise.resolve(import("@cowprotocol/contracts")).then(function({computeOrderUid:n}){return Promise.resolve(_t.getDomain(e)).then(function(e){return n(e,r,t)})})}catch(e){return Promise.reject(e)}}(r,n,Ep(i))).then(function(r){return Promise.resolve(o.getOrder(r).then(()=>!0).catch(()=>!1)).then(function(n){let o;function a(e){return o?e:{result:ip.SUCCESS,order:i,signature:s}}const u=function(){if(n)return Promise.resolve(t.handlePollFailedAlreadyPresent(r,i,e)).then(function(e){return e?(o=1,e):(o=1,{result:ip.TRY_NEXT_BLOCK,reason:"Order already in orderbook"})})}();return u&&u.then?u.then(a):a(u)})})}):{result:ip.DONT_TRY_AGAIN,reason:`NotAuthorized: Order ${t.id} is not authorized for ${n} on chain ${r}`}})}):{result:ip.DONT_TRY_AGAIN,reason:`InvalidConditionalOrder. Reason: ${i.reason}`}}()}catch(e){return a(e)}return u&&u.then?u.then(void 0,a):u}(0,function(e){return{result:ip.UNEXPECTED_ERROR,error:e}}))}catch(e){return Promise.reject(e)}}isAuthorized(e){const{chainId:t,owner:r,provider:n}=e;return Cp(t,n).callStatic.singleOrders(r,this.id)}cabinet(e){const{chainId:t,owner:r,provider:n}=e;return Cp(t,n).callStatic.cabinet(r,this.ctx)}static deserializeHelper(e,t,n,i){try{const{handler:o,salt:s,staticInput:a}=bp(e);if(o!=t)throw new Error("HandlerMismatch");const[u]=r.defaultAbiCoder.decode(n,a);return i(u,s)}catch(e){throw"HandlerMismatch"===e.message?e:new Error("InvalidSerializedConditionalOrder")}}}const Np=["address","bytes32","bytes"],_p=["tuple(bytes32[] proof, tuple(address handler, bytes32 salt, bytes staticInput) params)[]"];class Rp{constructor(e,t,r,n=np.PRIVATE){if(this.chain=void 0,this.location=void 0,this.orders={},this.tree=void 0,this.ctx=void 0,this.chain=e,this.location=n,t&&0===Object.keys(t).length)throw new Error("orders must have non-zero length");if(t&&!r||!t&&r)throw new Error("orders cannot have undefined root");for(const e in t)if(t.hasOwnProperty(e)){const r=t[e];if(!Rp.orderTypeRegistry.hasOwnProperty(r.orderType))throw new Error(`Unknown order type: ${r.orderType}`)}if(t&&(this.orders=t,this.getOrGenerateTree().root!==r))throw new Error("root mismatch")}static fromJSON(e){const{chain:t,orders:r,root:n,location:i}=JSON.parse(e,(e,t)=>{if("orders"===e&&"object"==typeof t&&null!==t){const e={};for(const r in t)if(t.hasOwnProperty(r)){const{orderType:n,...i}=t[r];if(!Rp.orderTypeRegistry.hasOwnProperty(n))throw new Error(`Unknown order type: ${n}`);e[r]=new(0,Rp.orderTypeRegistry[n])(i)}return e}return"object"==typeof t&&null!==t&&t.hasOwnProperty("type")&&t.hasOwnProperty("hex")&&"BigNumber"===t.type?s.from(t):t}),o=new Rp(t,r,n);return o.location=i,o}toJSON(){const e=this.getOrGenerateTree().root;return JSON.stringify({...this,root:e},(e,t)=>{if("tree"!==e){if("object"==typeof t&&null!==t&&"orderType"in t){const e=t;return{...e,orderType:e.orderType}}return t}})}add(e){e.assertIsValid(),this.orders[e.id]=e,this.reset()}remove(e){delete this.orders[e],this.reset()}update(e,t){const r=t(this.orders[e],this.ctx);delete this.orders[e],this.orders[r.id]=r,this.reset()}getById(e){return this.orders[e]}getByIndex(e){return this.orders[this.orderIds[e]]}get orderIds(){return Object.keys(this.orders)}get root(){return this.getOrGenerateTree().root}getOrGenerateTree(){return this.tree||(this.tree=R.of(Object.values(this.orders).map(e=>[...Object.values(e.leaf)]),Np)),this.tree}static decodeFromJSON(e){return JSON.parse(e)}prepareProofStruct(e,t,n){try{const i=this;void 0===e&&(e=i.location);const o=function(){try{switch(e){case np.PRIVATE:return Promise.resolve("0x");case np.EMITTED:return Promise.resolve(i.encodeToABI(t));case np.SWARM:case np.WAKU:case np.IPFS:if(!n)throw new Error("Must provide an uploader function");return Promise.resolve(function(e,r){try{var o=Promise.resolve(n(i.encodeToJSON(t)))}catch(e){return r(e)}return o&&o.then?o.then(void 0,r):o}(0,function(t){throw new Error(`Error uploading to decentralized storage ${e}: ${t}`)}));default:throw new Error("Unsupported location")}}catch(e){return Promise.reject(e)}};return Promise.resolve(o().then(t=>{try{return r.hexlify(r.arrayify(t)),i.location=e,{location:e,data:t}}catch{throw new Error("data returned by uploader is invalid")}}).catch(e=>{throw new Error(`Error preparing proof struct: ${e}`)}))}catch(e){return Promise.reject(e)}}static poll(e,t,r,n,i){try{function o(r){return Promise.resolve(s.getTradeableOrderWithSignature(e,t.params,r,t.proof))}const s=Cp(r,n);return Promise.resolve(i?Promise.resolve(i(e,t.params)).then(o):o("0x"))}catch(a){return Promise.reject(a)}}dumpProofs(e){return this.encodeToJSON(e)}dumpProofsAndParams(e){return this.getProofs(e)}getProofs(e){return[...this.getOrGenerateTree().entries()].map(([t,r])=>e&&e(r)||void 0===e?{idx:t,value:r}:void 0).reduce((e,t)=>{if(t){const r={handler:t.value[0],salt:t.value[1],staticInput:t.value[2]};e.push({proof:this.getOrGenerateTree().getProof(t.idx),params:r})}return e},[])}encodeToABI(e){return r.defaultAbiCoder.encode(_p,[this.getProofs(e)])}encodeToJSON(e){return JSON.stringify(this.getProofs(e))}reset(){this.tree=void 0}static registerOrderType(e,t){Rp.orderTypeRegistry[e]=t}static resetOrderTypeRegistry(){Rp.orderTypeRegistry={}}}Rp.orderTypeRegistry={};class Mp{constructor(e){this.knownOrderTypes=void 0,this.knownOrderTypes=Object.entries(e).reduce((e,[t,r])=>(e[t.toLowerCase()]=r,e),{})}fromParams(e){const{handler:t}=e,r=this.knownOrderTypes[t.toLocaleLowerCase()];if(r)return r(e)}}const Op="0x6cF1e9cA41f7611dEf408122793c358a3d11E5a5",Bp="0x52eD56Da04309Aca4c3FECC595298d80C2f16BAc",Dp=s.from(2).pow(32).sub(1),Fp=s.from(31536e3),Lp=["tuple(address sellToken, address buyToken, address receiver, uint256 partSellAmount, uint256 minPartLimit, uint256 t0, uint256 n, uint256 t, uint256 span, bytes32 appData)"];var Up,Gp;!function(e){e.AUTO="AUTO",e.LIMIT_DURATION="LIMIT_DURATION"}(Up||(Up={})),function(e){e.AT_MINING_TIME="AT_MINING_TIME",e.AT_EPOCH="AT_EPOCH"}(Gp||(Gp={}));const jp={startType:Gp.AT_MINING_TIME},Hp={durationType:Up.AUTO};class qp extends xp{constructor(e){const{handler:t,salt:r,data:n,hasOffChainInput:i}=e;if(t!==Op)throw new Error(`InvalidHandler: Expected: ${Op}, provided: ${t}`);super({handler:Op,salt:r,data:n,hasOffChainInput:i}),this.isSingleOrder=!0}static fromData(e,t){return new qp({handler:Op,data:e,salt:t})}static fromParams(e){return qp.deserialize(gp(e))}get context(){return this.staticInput.t0.gt(0)?super.context:{address:Bp,factoryArgs:void 0}}get orderType(){return"twap"}isValid(){const e=(()=>{const{sellToken:e,sellAmount:t,buyToken:r,buyAmount:n,startTime:i=jp,numberOfParts:s,timeBetweenParts:a,durationOfPart:u=Hp}=this.data;if(e==r)return"InvalidSameToken";if(e==o.AddressZero||r==o.AddressZero)return"InvalidToken";if(!t.gt(o.Zero))return"InvalidSellAmount";if(!n.gt(o.Zero))return"InvalidMinBuyAmount";if(i.startType===Gp.AT_EPOCH){const e=i.epoch;if(!e.gte(o.Zero)||!e.lt(Dp))return"InvalidStartTime"}return s.gt(o.One)&&s.lte(Dp)?a.gt(o.Zero)&&a.lte(Fp)?u.durationType!==Up.LIMIT_DURATION||u.duration.lte(a)?vp(Lp,[this.staticInput])?void 0:"InvalidData":"InvalidSpan":"InvalidFrequency":"InvalidNumParts"})();return e?{isValid:!1,reason:e}:{isValid:!0}}startTimestamp(e){try{const t=this,{startTime:n}=t.data;return n?.startType===Gp.AT_EPOCH?Promise.resolve(n.epoch.toNumber()):Promise.resolve(t.cabinet(e)).then(function(e){const t=r.defaultAbiCoder.decode(["uint256"],e)[0];if(t.gt(Dp))throw new Error(`Cabinet epoch out of range: ${t.toString()}`);const n=t.toNumber();if(0===n)throw new Error("Cabinet is not set. Required for TWAP orders that start at mining time.");return n})}catch(e){return Promise.reject(e)}}endTimestamp(e){const{numberOfParts:t,timeBetweenParts:r,durationOfPart:n}=this.data;return n&&n.durationType===Up.LIMIT_DURATION?e+t.sub(1).mul(r).add(n.duration).toNumber():e+t.mul(r).toNumber()}pollValidate(e){try{const t=this;return Promise.resolve(op(e.provider)).then(function(r){const{blockInfo:n=r}=e,{blockTimestamp:i}=n;return function(r,n){try{var o=Promise.resolve(t.startTimestamp(e)).then(function(e){if(e>i)return{result:ip.TRY_AT_EPOCH,epoch:e,reason:`TWAP hasn't started yet. Starts at ${e} (${Ap(e)})`};const r=t.endTimestamp(e);return i>=r?{result:ip.DONT_TRY_AGAIN,reason:`TWAP has expired. Expired at ${r} (${Ap(r)})`}:void 0})}catch(e){return n(e)}return o&&o.then?o.then(void 0,n):o}(0,function(e){const t=e;return t?.message?.includes("Cabinet is not set")?{result:ip.DONT_TRY_AGAIN,reason:`${t?.message}. User likely removed the order.`}:t?.message?.includes("Cabinet epoch out of range")?{result:ip.DONT_TRY_AGAIN,reason:`${t?.message}`}:{result:ip.UNEXPECTED_ERROR,reason:`Unexpected error: ${t.message}`,error:t}})})}catch(e){return Promise.reject(e)}}handlePollFailedAlreadyPresent(e,t,r){try{const e=this;return Promise.resolve(op(r.provider)).then(function(t){const{blockInfo:n=t}=r,{blockTimestamp:i}=n,o=e.data.timeBetweenParts.toNumber(),{numberOfParts:s}=e.data;return Promise.resolve(e.startTimestamp(r)).then(function(e){if(i<e)return{result:ip.UNEXPECTED_ERROR,reason:`TWAP part hash't started. First TWAP part start at ${e} (${Ap(e)})`,error:void 0};const t=s.mul(o).add(e).toNumber();if(i>=t)return{result:ip.UNEXPECTED_ERROR,reason:`TWAP is expired. Expired at ${t} (${Ap(t)})`,error:void 0};const r=Math.floor((i-e)/o);if(r===s.toNumber()-1)return{result:ip.DONT_TRY_AGAIN,reason:`Current active TWAP part (${r+1}/${s}) is already in the Order Book. This was the last TWAP part, no more orders need to be placed`};const n=e+(r+1)*o;return{result:ip.TRY_AT_EPOCH,epoch:n,reason:`Current active TWAP part (${r+1}/${s}) is already in the Order Book. TWAP part ${r+2} doesn't start until ${n} (${Ap(n)})`}})})}catch(e){return Promise.reject(e)}}serialize(){return gp(this.leaf)}encodeStaticInput(){return super.encodeStaticInputHelper(Lp,this.staticInput)}static deserialize(e){return super.deserializeHelper(e,Op,Lp,(e,t)=>new qp({handler:Op,salt:t,data:zp(e)}))}toString(){const{sellAmount:e,sellToken:t,buyAmount:r,buyToken:n,numberOfParts:i,startTime:o=jp,timeBetweenParts:s,durationOfPart:a=Hp,receiver:u,appData:l}=this.data,c=o.startType===Gp.AT_MINING_TIME?"AT_MINING_TIME":o.epoch.toNumber(),d=a.durationType===Up.AUTO?"AUTO":a.duration.toNumber(),h={sellAmount:e.toString(),sellToken:t,buyAmount:r.toString(),buyToken:n,numberOfParts:i.toString(),startTime:c,timeBetweenParts:s.toNumber(),durationOfPart:d,receiver:u,appData:l};return`${this.orderType} (${this.id}): ${JSON.stringify(h)}`}transformDataToStruct(e){return Vp(e)}transformStructToData(e){return zp(e)}}function Vp(e){const{sellAmount:t,buyAmount:r,numberOfParts:n,startTime:i=jp,timeBetweenParts:s,durationOfPart:a=Hp,...u}=e,{partSellAmount:l,minPartLimit:c}=n&&!n.isZero()?{partSellAmount:t.div(n),minPartLimit:r.div(n)}:{partSellAmount:o.Zero,minPartLimit:o.Zero};return{partSellAmount:l,minPartLimit:c,t0:i.startType===Gp.AT_MINING_TIME?o.Zero:i.epoch,n:n,t:s,span:a.durationType===Up.AUTO?o.Zero:a.duration,...u}}function zp(e){const{n:t,partSellAmount:r,minPartLimit:n,t:i,t0:o,span:s,sellToken:a,buyToken:u,receiver:l,appData:c}=e,d=s.isZero()?{durationType:Up.AUTO}:{durationType:Up.LIMIT_DURATION,duration:s},h=o.isZero()?{startType:Gp.AT_MINING_TIME}:{startType:Gp.AT_EPOCH,epoch:o};return{sellAmount:r.mul(t),buyAmount:n.mul(t),startTime:h,numberOfParts:t,timeBetweenParts:i,durationOfPart:d,sellToken:a,buyToken:u,receiver:l,appData:c}}const Kp={[Op]:e=>qp.fromParams(e)};export{ke as ADDITIONAL_TARGET_CHAINS_MAP,Pe as ALL_CHAINS,Ce as ALL_CHAINS_IDS,Ie as ALL_SUPPORTED_CHAINS,Ee as ALL_SUPPORTED_CHAINS_MAP,Se as ALL_SUPPORTED_CHAIN_IDS,wh as AcrossBridgeProvider,D as AdditionalTargetChainId,ze as BARN_ETH_FLOW_ADDRESS,We as BARN_ETH_FLOW_ADDRESSES,U as BridgeOrderParsingError,L as BridgeProviderError,F as BridgeProviderQuoteError,O as BridgeQuoteErrors,M as BridgeStatus,Ec as BridgingSdk,Qh as BungeeBridgeProvider,ut as BuyTokenDestination,Me as COMPOSABLE_COW,qe as COMPOSABLE_COW_CONTRACT_ADDRESS,hp as CONDITIONAL_ORDER_PARAMS_ABI,Ge as COW_PROTOCOL_SETTLEMENT_CONTRACT_ADDRESS,je as COW_PROTOCOL_VAULT_RELAYER_ADDRESS,Oe as COW_SHED_1_0_0_VERSION,Be as COW_SHED_1_0_1_VERSION,qc as COW_SHED_712_TYPES,Fe as COW_SHED_FACTORY,Le as COW_SHED_IMPLEMENTATION,De as COW_SHED_LATEST_VERSION,mc as COW_SHED_PROXY_CREATION_GAS,Ue as COW_SHED_PROXY_INIT_CODE,Bp as CURRENT_BLOCK_TIMESTAMP_FACTORY_ADDRESS,lt as CompetitionOrderStatus,xp as ConditionalOrder,Mp as ConditionalOrderFactory,K as CowError,Vc as CowShedHooks,Kc as CowShedSdk,Y as DEFAULT_BACKOFF_OPTIONS,Kp as DEFAULT_CONDITIONAL_ORDER_REGISTRY,et as DEFAULT_COW_API_CONTEXT,fc as DEFAULT_GAS_COST_FOR_HOOK_ESTIMATION,tt as DEFAULT_IPFS_READ_URI,rt as DEFAULT_IPFS_WRITE_URI,X as DEFAULT_LIMITER_OPTIONS,pp as DEFAULT_TOKEN_FORMATTER,Up as DurationType,$e as ENVS_LIST,_e as ETH_ADDRESS,Ve as ETH_FLOW_ADDRESS,Ke as ETH_FLOW_ADDRESSES,Re as EXTENSIBLE_FALLBACK_HANDLER,He as EXTENSIBLE_FALLBACK_HANDLER_CONTRACT_ADDRESS,ct as EcdsaSigningScheme,yc as HOOK_DAPP_BRIDGE_PROVIDER_PREFIX,Fp as MAX_FREQUENCY,Dp as MAX_UINT32,Je as MAX_VALID_TO_EPOCH,Rp as Multiplexer,$ as NATIVE_CURRENCY_ADDRESS,it as ORDER_BOOK_PROD_CONFIG,ot as ORDER_BOOK_STAGING_CONFIG,Kl as ORDER_PRIMARY_TYPE,dt as OnchainOrderData,at as OrderBookApi,J as OrderBookApiError,ht as OrderCancellationError,pt as OrderClass,ft as OrderKind,mt as OrderPostError,yt as OrderQuoteSideKindBuy,gt as OrderQuoteSideKindSell,_t as OrderSigningUtils,bt as OrderStatus,ip as PollResultCode,vt as PriceEstimationError,At as PriceQuality,np as ProofLocation,pc as RAW_PROVIDERS_FILES_PATH,ep as SUBGRAPH_PROD_CONFIG,tp as SUBGRAPH_STAGING_CONFIG,wt as SellTokenSource,Tt as SigningScheme,Gp as StartTimeValue,rp as SubgraphApi,B as SupportedChainId,ee as TOKEN_LIST_IMAGES_PATH,Op as TWAP_ADDRESS,dc as TradingSdk,qp as Twap,re as WRAPPED_NATIVE_CURRENCIES,ah as WeirollCommandFlags,he as arbitrumOne,bc as areHooksEqual,H as assertIsBridgeQuoteAndPost,q as assertIsQuoteAndPost,be as avalanche,fe as base,Vl as buildAppData,Vt as calculateUniqueOrderId,yp as createSetDomainVerifierTx,hh as createWeirollContract,dh as createWeirollDelegateCall,ph as createWeirollLibrary,bp as decodeParams,Ze as enableLogging,gp as encodeParams,Ap as formatEpoch,Ep as fromStructToOrder,ql as generateAppDataFromDoc,Pt as getBigNumber,op as getBlockInfo,Mt as getChainInfo,Tc as getCrossChainOrder,sp as getDomainVerifier,ar as getEthFlowTransaction,gc as getHookMockForCostEstimation,Ip as getIsValidResult,qt as getOrderToSign,Rt as getPartnerFeeBps,V as getPostHooks,cc as getPreSignTransaction,ic as getQuote,kt as getQuoteAmountsAndCosts,It as getQuoteAmountsWithCosts,rc as getQuoteWithSigner,le as gnosisChain,Bt as isAdditionalTargetChain,z as isAppDoc,G as isBridgeQuoteAndPost,mp as isComposableCow,fp as isExtensibleFallbackHandler,j as isQuoteAndPost,Ot as isSupportedChain,Dt as isTargetChainId,vp as isValidAbi,ae as mainnet,Ne as mapAddressToSupportedNetworks,ir as mapQuoteAmountsAndCosts,xe as mapSupportedNetworks,Hl as mergeAppDataDoc,ne as nativeCurrencyTemplate,Ae as optimism,Te as polygon,lr as postCoWProtocolTrade,lc as postLimitOrder,ur as postSellNativeCurrencyOrder,uc as postSwapOrder,ac as postSwapOrderFromQuote,W as request,ye as sepolia,tc as suggestSlippageBps,tr as swapParamsToLimitOrderParams,Vp as transformDataToStruct,zp as transformStructToData};
|
|
28
|
+
`,np="https://api.thegraph.com/subgraphs/name/cowprotocol",ip={[B.MAINNET]:np+"/cow",[B.GNOSIS_CHAIN]:np+"/cow-gc",[B.ARBITRUM_ONE]:null,[B.BASE]:null,[B.SEPOLIA]:null,[B.POLYGON]:null,[B.AVALANCHE]:null,[B.LENS]:null,[B.BNB]:null},op={[B.MAINNET]:np+"/cow-staging",[B.GNOSIS_CHAIN]:np+"/cow-gc-staging",[B.ARBITRUM_ONE]:null,[B.BASE]:null,[B.SEPOLIA]:null,[B.POLYGON]:null,[B.AVALANCHE]:null,[B.LENS]:null,[B.BNB]:null};class sp{constructor(e={}){this.API_NAME="CoW Protocol Subgraph",this.context=void 0,this.context={...Me,...e}}getTotals(e={}){try{return Promise.resolve(this.runQuery(ep,void 0,e)).then(function(e){return e.totals[0]})}catch(e){return Promise.reject(e)}}getLastDaysVolume(e,t={}){try{return Promise.resolve(this.runQuery(tp,{days:e},t))}catch(e){return Promise.reject(e)}}getLastHoursVolume(e,t={}){try{return Promise.resolve(this.runQuery(rp,{hours:e},t))}catch(e){return Promise.reject(e)}}runQuery(e,t=undefined,r={}){try{const n=this,{chainId:i,env:o}=n.getContextWithOverride(r),s=n.getEnvConfigs(o)[i];if(null===s)throw new Error("Unsupported Network. The subgraph API is not available in the Network "+i);return Promise.resolve(function(r,n){try{var i=Promise.resolve(_(s,e,t))}catch(e){return n(e)}return i&&i.then?i.then(void 0,n):i}(0,function(r){throw console.error(`[subgraph:${n.API_NAME}]`,r),new K(`Error running query: ${e}. Variables: ${JSON.stringify(t)}. API: ${s}. Inner Error: ${r}`)}))}catch(e){return Promise.reject(e)}}getContextWithOverride(e={}){return{...this.context,...e}}getEnvConfigs(e){return this.context.baseUrls?this.context.baseUrls:"prod"===e?ip:op}}var ap,up;!function(e){e[e.PRIVATE=0]="PRIVATE",e[e.EMITTED=1]="EMITTED",e[e.SWARM=2]="SWARM",e[e.WAKU=3]="WAKU",e[e.RESERVED=4]="RESERVED",e[e.IPFS=5]="IPFS"}(ap||(ap={})),function(e){e.SUCCESS="SUCCESS",e.UNEXPECTED_ERROR="UNEXPECTED_ERROR",e.TRY_NEXT_BLOCK="TRY_NEXT_BLOCK",e.TRY_ON_BLOCK="TRY_ON_BLOCK",e.TRY_AT_EPOCH="TRY_AT_EPOCH",e.DONT_TRY_AGAIN="DONT_TRY_AGAIN"}(up||(up={}));const lp=function(e){try{return Promise.resolve(e.getBlock("latest")).then(function(e){return{blockNumber:e.number,blockTimestamp:e.timestamp}})}catch(e){return Promise.reject(e)}},cp=function(e,t,r,n){try{const i=tr.connect(We[r],n);return Promise.resolve(i.callStatic.domainVerifiers(e,t))}catch(e){return Promise.reject(e)}},dp=["erc20","0x5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc9"],hp=["external","0xabee3b73373acd583a130924aad6dc38cfdc44ba0555ba94ce2ff63980ea0632"],pp=["internal","0x4ac99ace14ee0a5ef932dc609df0943ab7ac16b7583634612f8dc35a4289a6ce"],fp=["sell","0xf3b277728b3fee749481eb3e0b3b48980dbbab78658fc419025cb16eee346775"],mp=["buy","0x6ed88e868af0a1983e3886d5f3e95a2fafbd6c3450bc229e27342283dc429ccc"],yp=["tuple(address handler, bytes32 salt, bytes staticInput)"],gp=(e,t)=>`${t}@${e}`;function bp(e,t){return e===We[t]}function vp(e,t){return e===Je[t]}function Ap(e,t){return tr.createInterface().encodeFunctionData("setDomainVerifier",[e,t])}function wp(e){return r.defaultAbiCoder.encode(yp,[e])}function Tp(e){const{handler:t,salt:n,staticInput:i}=r.defaultAbiCoder.decode(yp,e)[0];return{handler:t,salt:n,staticInput:i}}function Ep(e,t){try{r.defaultAbiCoder.encode(e,t)}catch{return!1}return!0}function Sp(e){return new Date(1e3*e).toISOString()}function Ip(e){if(dp.includes(e))return P.ERC20;if(hp.includes(e))return P.EXTERNAL;if(pp.includes(e))return P.INTERNAL;throw new Error(`Unknown balance type: ${e}`)}function kp(e){if(fp.includes(e))return E.SELL;if(mp.includes(e))return E.BUY;throw new Error(`Unknown kind: ${e}`)}function Pp(e){const{sellToken:t,sellAmount:r,buyToken:n,buyAmount:i,buyTokenBalance:o,sellTokenBalance:s,feeAmount:a,kind:u,receiver:l,validTo:c,partiallyFillable:d,appData:h}=e;return{sellToken:t,sellAmount:r,buyToken:n,buyAmount:i,feeAmount:a,receiver:l,partiallyFillable:d,appData:h,validTo:Number(c),kind:kp(u.toString()),sellTokenBalance:Ip(s.toString()),buyTokenBalance:Ip(o.toString())}}function Cp(e){return e.isValid}let Np,xp;function _p(){return Np||(Np=Xt.createInterface()),Np}function Rp(e,t){return xp||(xp=Xt.connect(Je[e],t)),xp}class Mp{constructor(e){this.handler=void 0,this.salt=void 0,this.data=void 0,this.staticInput=void 0,this.hasOffChainInput=void 0;const{handler:t,salt:n=r.keccak256(r.randomBytes(32)),data:o,hasOffChainInput:s=!1}=e;if(!i.utils.isAddress(t))throw new Error(`Invalid handler: ${t}`);if(!i.utils.isHexString(n)||32!==i.utils.hexDataLength(n))throw new Error(`Invalid salt: ${n}`);this.handler=t,this.salt=n,this.data=o,this.staticInput=this.transformDataToStruct(o),this.hasOffChainInput=s}get context(){}assertIsValid(){const e=this.isValid();if(!Cp(e))throw new Error(`Invalid order: ${e.reason}`)}get createCalldata(){this.assertIsValid();const e=this.context,t=_p(),n={handler:this.handler,salt:this.salt,staticInput:this.encodeStaticInput()};if(e){const i=e.factoryArgs?r.defaultAbiCoder.encode(e.factoryArgs.argsType,e.factoryArgs.args):"0x";return t.encodeFunctionData("createWithContext",[n,e.address,i,!0])}return t.encodeFunctionData("create",[n,!0])}get removeCalldata(){return this.assertIsValid(),_p().encodeFunctionData("remove",[this.id])}get id(){return r.keccak256(this.serialize())}get ctx(){return this.isSingleOrder?this.id:o.HashZero}get leaf(){return{handler:this.handler,salt:this.salt,staticInput:this.encodeStaticInput()}}static leafToId(e){return r.keccak256(wp(e))}get offChainInput(){return"0x"}encodeStaticInputHelper(e,t){return r.defaultAbiCoder.encode(e,[t])}poll(e){try{const t=this,{chainId:r,owner:n,provider:i,orderBookApi:o}=e,s=Rp(r,i);return Promise.resolve(function(i,a){try{var u=function(){const i=t.isValid();return Cp(i)?Promise.resolve(t.pollValidate(e)).then(function(i){return i||Promise.resolve(t.isAuthorized(e)).then(function(i){return i?Promise.resolve(s.getTradeableOrderWithSignature(n,t.leaf,t.offChainInput,[])).then(function([i,s]){return Promise.resolve(function(e,t,r){try{return Promise.resolve(import("@cowprotocol/contracts")).then(function({computeOrderUid:n}){return Promise.resolve(Bt.getDomain(e)).then(function(e){return n(e,r,t)})})}catch(e){return Promise.reject(e)}}(r,n,Pp(i))).then(function(r){return Promise.resolve(o.getOrder(r).then(()=>!0).catch(()=>!1)).then(function(n){let o;function a(e){return o?e:{result:up.SUCCESS,order:i,signature:s}}const u=function(){if(n)return Promise.resolve(t.handlePollFailedAlreadyPresent(r,i,e)).then(function(e){return e?(o=1,e):(o=1,{result:up.TRY_NEXT_BLOCK,reason:"Order already in orderbook"})})}();return u&&u.then?u.then(a):a(u)})})}):{result:up.DONT_TRY_AGAIN,reason:`NotAuthorized: Order ${t.id} is not authorized for ${n} on chain ${r}`}})}):{result:up.DONT_TRY_AGAIN,reason:`InvalidConditionalOrder. Reason: ${i.reason}`}}()}catch(e){return a(e)}return u&&u.then?u.then(void 0,a):u}(0,function(e){return{result:up.UNEXPECTED_ERROR,error:e}}))}catch(e){return Promise.reject(e)}}isAuthorized(e){const{chainId:t,owner:r,provider:n}=e;return Rp(t,n).callStatic.singleOrders(r,this.id)}cabinet(e){const{chainId:t,owner:r,provider:n}=e;return Rp(t,n).callStatic.cabinet(r,this.ctx)}static deserializeHelper(e,t,n,i){try{const{handler:o,salt:s,staticInput:a}=Tp(e);if(o!=t)throw new Error("HandlerMismatch");const[u]=r.defaultAbiCoder.decode(n,a);return i(u,s)}catch(e){throw"HandlerMismatch"===e.message?e:new Error("InvalidSerializedConditionalOrder")}}}const Op=["address","bytes32","bytes"],Bp=["tuple(bytes32[] proof, tuple(address handler, bytes32 salt, bytes staticInput) params)[]"];class Dp{constructor(e,t,r,n=ap.PRIVATE){if(this.chain=void 0,this.location=void 0,this.orders={},this.tree=void 0,this.ctx=void 0,this.chain=e,this.location=n,t&&0===Object.keys(t).length)throw new Error("orders must have non-zero length");if(t&&!r||!t&&r)throw new Error("orders cannot have undefined root");for(const e in t)if(t.hasOwnProperty(e)){const r=t[e];if(!Dp.orderTypeRegistry.hasOwnProperty(r.orderType))throw new Error(`Unknown order type: ${r.orderType}`)}if(t&&(this.orders=t,this.getOrGenerateTree().root!==r))throw new Error("root mismatch")}static fromJSON(e){const{chain:t,orders:r,root:n,location:i}=JSON.parse(e,(e,t)=>{if("orders"===e&&"object"==typeof t&&null!==t){const e={};for(const r in t)if(t.hasOwnProperty(r)){const{orderType:n,...i}=t[r];if(!Dp.orderTypeRegistry.hasOwnProperty(n))throw new Error(`Unknown order type: ${n}`);e[r]=new(0,Dp.orderTypeRegistry[n])(i)}return e}return"object"==typeof t&&null!==t&&t.hasOwnProperty("type")&&t.hasOwnProperty("hex")&&"BigNumber"===t.type?s.from(t):t}),o=new Dp(t,r,n);return o.location=i,o}toJSON(){const e=this.getOrGenerateTree().root;return JSON.stringify({...this,root:e},(e,t)=>{if("tree"!==e){if("object"==typeof t&&null!==t&&"orderType"in t){const e=t;return{...e,orderType:e.orderType}}return t}})}add(e){e.assertIsValid(),this.orders[e.id]=e,this.reset()}remove(e){delete this.orders[e],this.reset()}update(e,t){const r=t(this.orders[e],this.ctx);delete this.orders[e],this.orders[r.id]=r,this.reset()}getById(e){return this.orders[e]}getByIndex(e){return this.orders[this.orderIds[e]]}get orderIds(){return Object.keys(this.orders)}get root(){return this.getOrGenerateTree().root}getOrGenerateTree(){return this.tree||(this.tree=R.of(Object.values(this.orders).map(e=>[...Object.values(e.leaf)]),Op)),this.tree}static decodeFromJSON(e){return JSON.parse(e)}prepareProofStruct(e,t,n){try{const i=this;void 0===e&&(e=i.location);const o=function(){try{switch(e){case ap.PRIVATE:return Promise.resolve("0x");case ap.EMITTED:return Promise.resolve(i.encodeToABI(t));case ap.SWARM:case ap.WAKU:case ap.IPFS:if(!n)throw new Error("Must provide an uploader function");return Promise.resolve(function(e,r){try{var o=Promise.resolve(n(i.encodeToJSON(t)))}catch(e){return r(e)}return o&&o.then?o.then(void 0,r):o}(0,function(t){throw new Error(`Error uploading to decentralized storage ${e}: ${t}`)}));default:throw new Error("Unsupported location")}}catch(e){return Promise.reject(e)}};return Promise.resolve(o().then(t=>{try{return r.hexlify(r.arrayify(t)),i.location=e,{location:e,data:t}}catch{throw new Error("data returned by uploader is invalid")}}).catch(e=>{throw new Error(`Error preparing proof struct: ${e}`)}))}catch(e){return Promise.reject(e)}}static poll(e,t,r,n,i){try{function o(r){return Promise.resolve(s.getTradeableOrderWithSignature(e,t.params,r,t.proof))}const s=Rp(r,n);return Promise.resolve(i?Promise.resolve(i(e,t.params)).then(o):o("0x"))}catch(a){return Promise.reject(a)}}dumpProofs(e){return this.encodeToJSON(e)}dumpProofsAndParams(e){return this.getProofs(e)}getProofs(e){return[...this.getOrGenerateTree().entries()].map(([t,r])=>e&&e(r)||void 0===e?{idx:t,value:r}:void 0).reduce((e,t)=>{if(t){const r={handler:t.value[0],salt:t.value[1],staticInput:t.value[2]};e.push({proof:this.getOrGenerateTree().getProof(t.idx),params:r})}return e},[])}encodeToABI(e){return r.defaultAbiCoder.encode(Bp,[this.getProofs(e)])}encodeToJSON(e){return JSON.stringify(this.getProofs(e))}reset(){this.tree=void 0}static registerOrderType(e,t){Dp.orderTypeRegistry[e]=t}static resetOrderTypeRegistry(){Dp.orderTypeRegistry={}}}Dp.orderTypeRegistry={};class Lp{constructor(e){this.knownOrderTypes=void 0,this.knownOrderTypes=Object.entries(e).reduce((e,[t,r])=>(e[t.toLowerCase()]=r,e),{})}fromParams(e){const{handler:t}=e,r=this.knownOrderTypes[t.toLocaleLowerCase()];if(r)return r(e)}}const Fp="0x6cF1e9cA41f7611dEf408122793c358a3d11E5a5",Up="0x52eD56Da04309Aca4c3FECC595298d80C2f16BAc",Gp=s.from(2).pow(32).sub(1),jp=s.from(31536e3),Hp=["tuple(address sellToken, address buyToken, address receiver, uint256 partSellAmount, uint256 minPartLimit, uint256 t0, uint256 n, uint256 t, uint256 span, bytes32 appData)"];var qp,Vp;!function(e){e.AUTO="AUTO",e.LIMIT_DURATION="LIMIT_DURATION"}(qp||(qp={})),function(e){e.AT_MINING_TIME="AT_MINING_TIME",e.AT_EPOCH="AT_EPOCH"}(Vp||(Vp={}));const zp={startType:Vp.AT_MINING_TIME},Kp={durationType:qp.AUTO};class Wp extends Mp{constructor(e){const{handler:t,salt:r,data:n,hasOffChainInput:i}=e;if(t!==Fp)throw new Error(`InvalidHandler: Expected: ${Fp}, provided: ${t}`);super({handler:Fp,salt:r,data:n,hasOffChainInput:i}),this.isSingleOrder=!0}static fromData(e,t){return new Wp({handler:Fp,data:e,salt:t})}static fromParams(e){return Wp.deserialize(wp(e))}get context(){return this.staticInput.t0.gt(0)?super.context:{address:Up,factoryArgs:void 0}}get orderType(){return"twap"}isValid(){const e=(()=>{const{sellToken:e,sellAmount:t,buyToken:r,buyAmount:n,startTime:i=zp,numberOfParts:s,timeBetweenParts:a,durationOfPart:u=Kp}=this.data;if(e==r)return"InvalidSameToken";if(e==o.AddressZero||r==o.AddressZero)return"InvalidToken";if(!t.gt(o.Zero))return"InvalidSellAmount";if(!n.gt(o.Zero))return"InvalidMinBuyAmount";if(i.startType===Vp.AT_EPOCH){const e=i.epoch;if(!e.gte(o.Zero)||!e.lt(Gp))return"InvalidStartTime"}return s.gt(o.One)&&s.lte(Gp)?a.gt(o.Zero)&&a.lte(jp)?u.durationType!==qp.LIMIT_DURATION||u.duration.lte(a)?Ep(Hp,[this.staticInput])?void 0:"InvalidData":"InvalidSpan":"InvalidFrequency":"InvalidNumParts"})();return e?{isValid:!1,reason:e}:{isValid:!0}}startTimestamp(e){try{const t=this,{startTime:n}=t.data;return n?.startType===Vp.AT_EPOCH?Promise.resolve(n.epoch.toNumber()):Promise.resolve(t.cabinet(e)).then(function(e){const t=r.defaultAbiCoder.decode(["uint256"],e)[0];if(t.gt(Gp))throw new Error(`Cabinet epoch out of range: ${t.toString()}`);const n=t.toNumber();if(0===n)throw new Error("Cabinet is not set. Required for TWAP orders that start at mining time.");return n})}catch(e){return Promise.reject(e)}}endTimestamp(e){const{numberOfParts:t,timeBetweenParts:r,durationOfPart:n}=this.data;return n&&n.durationType===qp.LIMIT_DURATION?e+t.sub(1).mul(r).add(n.duration).toNumber():e+t.mul(r).toNumber()}pollValidate(e){try{const t=this;return Promise.resolve(lp(e.provider)).then(function(r){const{blockInfo:n=r}=e,{blockTimestamp:i}=n;return function(r,n){try{var o=Promise.resolve(t.startTimestamp(e)).then(function(e){if(e>i)return{result:up.TRY_AT_EPOCH,epoch:e,reason:`TWAP hasn't started yet. Starts at ${e} (${Sp(e)})`};const r=t.endTimestamp(e);return i>=r?{result:up.DONT_TRY_AGAIN,reason:`TWAP has expired. Expired at ${r} (${Sp(r)})`}:void 0})}catch(e){return n(e)}return o&&o.then?o.then(void 0,n):o}(0,function(e){const t=e;return t?.message?.includes("Cabinet is not set")?{result:up.DONT_TRY_AGAIN,reason:`${t?.message}. User likely removed the order.`}:t?.message?.includes("Cabinet epoch out of range")?{result:up.DONT_TRY_AGAIN,reason:`${t?.message}`}:{result:up.UNEXPECTED_ERROR,reason:`Unexpected error: ${t.message}`,error:t}})})}catch(e){return Promise.reject(e)}}handlePollFailedAlreadyPresent(e,t,r){try{const e=this;return Promise.resolve(lp(r.provider)).then(function(t){const{blockInfo:n=t}=r,{blockTimestamp:i}=n,o=e.data.timeBetweenParts.toNumber(),{numberOfParts:s}=e.data;return Promise.resolve(e.startTimestamp(r)).then(function(e){if(i<e)return{result:up.UNEXPECTED_ERROR,reason:`TWAP part hash't started. First TWAP part start at ${e} (${Sp(e)})`,error:void 0};const t=s.mul(o).add(e).toNumber();if(i>=t)return{result:up.UNEXPECTED_ERROR,reason:`TWAP is expired. Expired at ${t} (${Sp(t)})`,error:void 0};const r=Math.floor((i-e)/o);if(r===s.toNumber()-1)return{result:up.DONT_TRY_AGAIN,reason:`Current active TWAP part (${r+1}/${s}) is already in the Order Book. This was the last TWAP part, no more orders need to be placed`};const n=e+(r+1)*o;return{result:up.TRY_AT_EPOCH,epoch:n,reason:`Current active TWAP part (${r+1}/${s}) is already in the Order Book. TWAP part ${r+2} doesn't start until ${n} (${Sp(n)})`}})})}catch(e){return Promise.reject(e)}}serialize(){return wp(this.leaf)}encodeStaticInput(){return super.encodeStaticInputHelper(Hp,this.staticInput)}static deserialize(e){return super.deserializeHelper(e,Fp,Hp,(e,t)=>new Wp({handler:Fp,salt:t,data:Qp(e)}))}toString(){const{sellAmount:e,sellToken:t,buyAmount:r,buyToken:n,numberOfParts:i,startTime:o=zp,timeBetweenParts:s,durationOfPart:a=Kp,receiver:u,appData:l}=this.data,c=o.startType===Vp.AT_MINING_TIME?"AT_MINING_TIME":o.epoch.toNumber(),d=a.durationType===qp.AUTO?"AUTO":a.duration.toNumber(),h={sellAmount:e.toString(),sellToken:t,buyAmount:r.toString(),buyToken:n,numberOfParts:i.toString(),startTime:c,timeBetweenParts:s.toNumber(),durationOfPart:d,receiver:u,appData:l};return`${this.orderType} (${this.id}): ${JSON.stringify(h)}`}transformDataToStruct(e){return Jp(e)}transformStructToData(e){return Qp(e)}}function Jp(e){const{sellAmount:t,buyAmount:r,numberOfParts:n,startTime:i=zp,timeBetweenParts:s,durationOfPart:a=Kp,...u}=e,{partSellAmount:l,minPartLimit:c}=n&&!n.isZero()?{partSellAmount:t.div(n),minPartLimit:r.div(n)}:{partSellAmount:o.Zero,minPartLimit:o.Zero};return{partSellAmount:l,minPartLimit:c,t0:i.startType===Vp.AT_MINING_TIME?o.Zero:i.epoch,n:n,t:s,span:a.durationType===qp.AUTO?o.Zero:a.duration,...u}}function Qp(e){const{n:t,partSellAmount:r,minPartLimit:n,t:i,t0:o,span:s,sellToken:a,buyToken:u,receiver:l,appData:c}=e,d=s.isZero()?{durationType:qp.AUTO}:{durationType:qp.LIMIT_DURATION,duration:s},h=o.isZero()?{startType:Vp.AT_MINING_TIME}:{startType:Vp.AT_EPOCH,epoch:o};return{sellAmount:r.mul(t),buyAmount:n.mul(t),startTime:h,numberOfParts:t,timeBetweenParts:i,durationOfPart:d,sellToken:a,buyToken:u,receiver:l,appData:c}}const Yp={[Fp]:e=>Wp.fromParams(e)};export{Ne as ADDITIONAL_TARGET_CHAINS_MAP,xe as ALL_CHAINS,_e as ALL_CHAINS_IDS,Pe as ALL_SUPPORTED_CHAINS,ke as ALL_SUPPORTED_CHAINS_MAP,Ce as ALL_SUPPORTED_CHAIN_IDS,Ih as AcrossBridgeProvider,D as AdditionalTargetChainId,Ye as BARN_ETH_FLOW_ADDRESSES,U as BridgeOrderParsingError,F as BridgeProviderError,L as BridgeProviderQuoteError,O as BridgeQuoteErrors,M as BridgeStatus,Pc as BridgingSdk,$h as BungeeBridgeProvider,ht as BuyTokenDestination,Fe as COMPOSABLE_COW,Je as COMPOSABLE_COW_CONTRACT_ADDRESS,yp as CONDITIONAL_ORDER_PARAMS_ABI,ze as COW_PROTOCOL_SETTLEMENT_CONTRACT_ADDRESS,Ke as COW_PROTOCOL_VAULT_RELAYER_ADDRESS,Ue as COW_SHED_1_0_0_VERSION,Ge as COW_SHED_1_0_1_VERSION,Wc as COW_SHED_712_TYPES,He as COW_SHED_FACTORY,qe as COW_SHED_IMPLEMENTATION,je as COW_SHED_LATEST_VERSION,vc as COW_SHED_PROXY_CREATION_GAS,Ve as COW_SHED_PROXY_INIT_CODE,Up as CURRENT_BLOCK_TIMESTAMP_FACTORY_ADDRESS,pt as CompetitionOrderStatus,Mp as ConditionalOrder,Lp as ConditionalOrderFactory,K as CowError,Jc as CowShedHooks,Yc as CowShedSdk,it as DEFAULT_BACKOFF_OPTIONS,Yp as DEFAULT_CONDITIONAL_ORDER_REGISTRY,Me as DEFAULT_COW_API_CONTEXT,bc as DEFAULT_GAS_COST_FOR_HOOK_ESTIMATION,Ze as DEFAULT_IPFS_READ_URI,$e as DEFAULT_IPFS_WRITE_URI,ot as DEFAULT_LIMITER_OPTIONS,gp as DEFAULT_TOKEN_FORMATTER,qp as DurationType,Re as ENVS_LIST,De as ETH_ADDRESS,Qe as ETH_FLOW_ADDRESSES,Le as EXTENSIBLE_FALLBACK_HANDLER,We as EXTENSIBLE_FALLBACK_HANDLER_CONTRACT_ADDRESS,ft as EcdsaSigningScheme,Ac as HOOK_DAPP_BRIDGE_PROVIDER_PREFIX,jp as MAX_FREQUENCY,Gp as MAX_UINT32,Xe as MAX_VALID_TO_EPOCH,Dp as Multiplexer,Y as NATIVE_CURRENCY_ADDRESS,ut as ORDER_BOOK_PROD_CONFIG,lt as ORDER_BOOK_STAGING_CONFIG,Yl as ORDER_PRIMARY_TYPE,mt as OnchainOrderData,dt as OrderBookApi,rt as OrderBookApiError,yt as OrderCancellationError,gt as OrderClass,bt as OrderKind,vt as OrderPostError,At as OrderQuoteSideKindBuy,wt as OrderQuoteSideKindSell,Bt as OrderSigningUtils,Tt as OrderStatus,up as PollResultCode,Et as PriceEstimationError,St as PriceQuality,ap as ProofLocation,gc as RAW_PROVIDERS_FILES_PATH,ip as SUBGRAPH_PROD_CONFIG,op as SUBGRAPH_STAGING_CONFIG,It as SellTokenSource,kt as SigningScheme,Vp as StartTimeValue,sp as SubgraphApi,B as SupportedChainId,X as TOKEN_LIST_IMAGES_PATH,Fp as TWAP_ADDRESS,mc as TradingSdk,Wp as Twap,$ as WRAPPED_NATIVE_CURRENCIES,dh as WeirollCommandFlags,se as arbitrumOne,Tc as areHooksEqual,H as assertIsBridgeQuoteAndPost,q as assertIsQuoteAndPost,ye as avalanche,ue as base,be as bnb,Jl as buildAppData,ir as calculateUniqueOrderId,Ap as createSetDomainVerifierTx,yh as createWeirollContract,mh as createWeirollDelegateCall,gh as createWeirollLibrary,Tp as decodeParams,Q as enableLogging,wp as encodeParams,Sp as formatEpoch,Pp as fromStructToOrder,Wl as generateAppDataFromDoc,_t as getBigNumber,lp as getBlockInfo,Lt as getChainInfo,kc as getCrossChainOrder,cp as getDomainVerifier,dr as getEthFlowTransaction,wc as getHookMockForCostEstimation,Cp as getIsValidResult,Wt as getOrderToSign,Dt as getPartnerFeeBps,V as getPostHooks,fc as getPreSignTransaction,uc as getQuote,xt as getQuoteAmountsAndCosts,Ct as getQuoteAmountsWithCosts,sc as getQuoteWithSigner,ce as gnosisChain,Ut as isAdditionalTargetChain,z as isAppDoc,G as isBridgeQuoteAndPost,vp as isComposableCow,bp as isExtensibleFallbackHandler,j as isQuoteAndPost,Ft as isSupportedChain,Gt as isTargetChainId,Ep as isValidAbi,we as lens,he as mainnet,Be as mapAddressToSupportedNetworks,ur as mapQuoteAmountsAndCosts,Oe as mapSupportedNetworks,Kl as mergeAppDataDoc,te as nativeCurrencyTemplate,Ee as optimism,Ie as polygon,pr as postCoWProtocolTrade,pc as postLimitOrder,hr as postSellNativeCurrencyOrder,hc as postSwapOrder,dc as postSwapOrderFromQuote,tt as request,fe as sepolia,oc as suggestSlippageBps,or as swapParamsToLimitOrderParams,Jp as transformDataToStruct,Qp as transformStructToData};
|
|
29
29
|
//# sourceMappingURL=index.module.js.map
|